From 80a4ba3b81202db296ee6fe8f1f177c755a9750a Mon Sep 17 00:00:00 2001 From: Mike Maietta Date: Tue, 9 Dec 2025 08:23:27 -0800 Subject: [PATCH 01/65] updating all engines to node 22 --- .changeset/small-times-scream.md | 16 ++++++++++++++++ package.json | 2 +- packages/app-builder-lib/package.json | 2 +- packages/builder-util-runtime/package.json | 2 +- packages/builder-util/package.json | 3 +++ packages/dmg-builder/package.json | 3 +++ .../package.json | 3 +++ packages/electron-builder/package.json | 2 +- .../electron-forge-maker-appimage/package.json | 3 +++ .../electron-forge-maker-nsis-web/package.json | 3 +++ packages/electron-forge-maker-nsis/package.json | 3 +++ packages/electron-forge-maker-snap/package.json | 3 +++ packages/electron-publish/package.json | 3 +++ packages/electron-updater/package.json | 3 +++ 14 files changed, 47 insertions(+), 4 deletions(-) create mode 100644 .changeset/small-times-scream.md diff --git a/.changeset/small-times-scream.md b/.changeset/small-times-scream.md new file mode 100644 index 00000000000..4abe247b365 --- /dev/null +++ b/.changeset/small-times-scream.md @@ -0,0 +1,16 @@ +--- +"electron-builder-squirrel-windows": major +"electron-forge-maker-appimage": major +"electron-forge-maker-nsis-web": major +"electron-forge-maker-nsis": major +"electron-forge-maker-snap": major +"builder-util-runtime": major +"electron-builder": major +"electron-publish": major +"electron-updater": major +"app-builder-lib": major +"builder-util": major +"dmg-builder": major +--- + +chore(node): bumping all engines to node 22 to support latest versions of `electron/*` packages diff --git a/package.json b/package.json index 980d7a79c03..c07b2e19375 100644 --- a/package.json +++ b/package.json @@ -62,7 +62,7 @@ "vitest": "^3.2.2" }, "engines": { - "node": ">=14.14", + "node": ">=22.12.0", "pnpm": ">=10" }, "packageManager": "pnpm@10.18.0+sha512.e804f889f1cecc40d572db084eec3e4881739f8dec69c0ff10d2d1beff9a4e309383ba27b5b750059d7f4c149535b6cd0d2cb1ed3aeb739239a4284a68f40cfa", diff --git a/packages/app-builder-lib/package.json b/packages/app-builder-lib/package.json index 951ea77442e..9da387c8b7a 100644 --- a/packages/app-builder-lib/package.json +++ b/packages/app-builder-lib/package.json @@ -16,7 +16,7 @@ "directory": "packages/app-builder-lib" }, "engines": { - "node": ">=14.0.0" + "node": ">=22.12.0" }, "keywords": [ "electron", diff --git a/packages/builder-util-runtime/package.json b/packages/builder-util-runtime/package.json index 4071ff5c327..d9373986996 100644 --- a/packages/builder-util-runtime/package.json +++ b/packages/builder-util-runtime/package.json @@ -15,7 +15,7 @@ "out" ], "engines": { - "node": ">=12.0.0" + "node": ">=22.12.0" }, "dependencies": { "debug": "^4.3.4", diff --git a/packages/builder-util/package.json b/packages/builder-util/package.json index e1d231e61f6..83e1e82326f 100644 --- a/packages/builder-util/package.json +++ b/packages/builder-util/package.json @@ -33,6 +33,9 @@ "tiny-async-pool": "1.3.0" }, "typings": "./out/util.d.ts", + "engines": { + "node": ">=22.12.0" + }, "devDependencies": { "@types/cross-spawn": "6.0.6", "@types/fs-extra": "^9.0.11", diff --git a/packages/dmg-builder/package.json b/packages/dmg-builder/package.json index 466918e9869..f530ccbd5af 100644 --- a/packages/dmg-builder/package.json +++ b/packages/dmg-builder/package.json @@ -23,6 +23,9 @@ "iconv-lite": "^0.6.2", "js-yaml": "^4.1.0" }, + "engines": { + "node": ">=22.12.0" + }, "optionalDependencies": { "dmg-license": "^1.0.11" }, diff --git a/packages/electron-builder-squirrel-windows/package.json b/packages/electron-builder-squirrel-windows/package.json index c590445ca22..c3025e7f22e 100644 --- a/packages/electron-builder-squirrel-windows/package.json +++ b/packages/electron-builder-squirrel-windows/package.json @@ -20,6 +20,9 @@ "builder-util": "workspace:*", "electron-winstaller": "5.4.0" }, + "engines": { + "node": ">=22.12.0" + }, "devDependencies": { "@types/archiver": "5.3.1", "@types/fs-extra": "9.0.13" diff --git a/packages/electron-builder/package.json b/packages/electron-builder/package.json index afe7c6427f7..efc5a566d8b 100644 --- a/packages/electron-builder/package.json +++ b/packages/electron-builder/package.json @@ -16,7 +16,7 @@ "directory": "packages/electron-builder" }, "engines": { - "node": ">=14.0.0" + "node": ">=22.12.0" }, "keywords": [ "electron", diff --git a/packages/electron-forge-maker-appimage/package.json b/packages/electron-forge-maker-appimage/package.json index b02e93d7b5d..46e6d986377 100644 --- a/packages/electron-forge-maker-appimage/package.json +++ b/packages/electron-forge-maker-appimage/package.json @@ -16,5 +16,8 @@ ], "dependencies": { "app-builder-lib": "workspace:*" + }, + "engines": { + "node": ">=22.12.0" } } diff --git a/packages/electron-forge-maker-nsis-web/package.json b/packages/electron-forge-maker-nsis-web/package.json index 5458eb65127..64d34635195 100644 --- a/packages/electron-forge-maker-nsis-web/package.json +++ b/packages/electron-forge-maker-nsis-web/package.json @@ -16,5 +16,8 @@ ], "dependencies": { "app-builder-lib": "workspace:*" + }, + "engines": { + "node": ">=22.12.0" } } diff --git a/packages/electron-forge-maker-nsis/package.json b/packages/electron-forge-maker-nsis/package.json index a50e51cf5f5..8e5ee18fa6f 100644 --- a/packages/electron-forge-maker-nsis/package.json +++ b/packages/electron-forge-maker-nsis/package.json @@ -16,5 +16,8 @@ ], "dependencies": { "app-builder-lib": "workspace:*" + }, + "engines": { + "node": ">=22.12.0" } } diff --git a/packages/electron-forge-maker-snap/package.json b/packages/electron-forge-maker-snap/package.json index e5e2151c7c1..9e69665a535 100644 --- a/packages/electron-forge-maker-snap/package.json +++ b/packages/electron-forge-maker-snap/package.json @@ -16,5 +16,8 @@ ], "dependencies": { "app-builder-lib": "workspace:*" + }, + "engines": { + "node": ">=22.12.0" } } diff --git a/packages/electron-publish/package.json b/packages/electron-publish/package.json index 41f3b5d915f..b3bcd8a6a3a 100644 --- a/packages/electron-publish/package.json +++ b/packages/electron-publish/package.json @@ -27,5 +27,8 @@ "typings": "./out/index.d.ts", "devDependencies": { "@types/mime": "2.0.3" + }, + "engines": { + "node": ">=22.12.0" } } diff --git a/packages/electron-updater/package.json b/packages/electron-updater/package.json index f9683ff9040..19ddfdb8fad 100644 --- a/packages/electron-updater/package.json +++ b/packages/electron-updater/package.json @@ -36,5 +36,8 @@ "typings": "./out/main.d.ts", "publishConfig": { "tag": "next" + }, + "engines": { + "node": ">=22.12.0" } } From 5a5d2b7d95961315f4e4624d57034ab98aa09708 Mon Sep 17 00:00:00 2001 From: Mike Maietta Date: Tue, 9 Dec 2025 08:45:18 -0800 Subject: [PATCH 02/65] tmp save for .js extension migration --- package.json | 1 + packages/app-builder-lib/package.json | 3 +- packages/app-builder-lib/src/Framework.ts | 4 +- .../app-builder-lib/src/ProtonFramework.ts | 8 ++-- packages/app-builder-lib/src/appInfo.ts | 6 +-- packages/app-builder-lib/src/asar/asarUtil.ts | 2 +- .../app-builder-lib/src/asar/integrity.ts | 2 +- .../src/codeSign/macCodeSign.ts | 2 +- .../src/codeSign/signManager.ts | 4 +- .../src/codeSign/windowsSignAzureManager.ts | 6 +-- .../src/codeSign/windowsSignToolManager.ts | 6 +-- packages/app-builder-lib/src/configuration.ts | 34 +++++++------- .../src/electron/ElectronFramework.ts | 8 ++-- .../src/electron/electronMac.ts | 2 +- .../src/electron/electronVersion.ts | 2 +- .../src/electron/injectFFMPEG.ts | 2 +- packages/app-builder-lib/src/fileMatcher.ts | 6 +-- .../app-builder-lib/src/fileTransformer.ts | 4 +- packages/app-builder-lib/src/forge-maker.ts | 4 +- packages/app-builder-lib/src/index.ts | 8 ++-- packages/app-builder-lib/src/linuxPackager.ts | 20 ++++----- packages/app-builder-lib/src/macPackager.ts | 28 ++++++------ .../bunNodeModulesCollector.ts | 6 +-- .../src/node-module-collector/index.ts | 14 +++--- .../src/node-module-collector/moduleCache.ts | 2 +- .../nodeModulesCollector.ts | 8 ++-- .../npmNodeModulesCollector.ts | 6 +-- .../pnpmNodeModulesCollector.ts | 6 +-- .../yarnBerryNodeModulesCollector.ts | 6 +-- .../yarnNodeModulesCollector.ts | 6 +-- .../app-builder-lib/src/options/MsiOptions.ts | 2 +- .../src/options/MsiWrappedOptions.ts | 2 +- .../options/PlatformSpecificBuildOptions.ts | 2 +- .../src/options/SnapOptions.ts | 2 +- packages/app-builder-lib/src/packager.ts | 44 +++++++++---------- packages/app-builder-lib/src/packagerApi.ts | 8 ++-- .../app-builder-lib/src/platformPackager.ts | 24 +++++----- .../src/publish/PublishManager.ts | 2 +- .../src/publish/updateInfoBuilder.ts | 2 +- .../src/targets/AppImageTarget.ts | 4 +- .../app-builder-lib/src/targets/AppxTarget.ts | 2 +- .../src/targets/ArchiveTarget.ts | 4 +- .../src/targets/FlatpakTarget.ts | 4 +- .../app-builder-lib/src/targets/FpmTarget.ts | 4 +- .../app-builder-lib/src/targets/MsiTarget.ts | 2 +- .../src/targets/MsiWrappedTarget.ts | 2 +- .../app-builder-lib/src/targets/archive.ts | 2 +- .../targets/differentialUpdateInfoBuilder.ts | 2 +- .../src/targets/nsis/Defines.ts | 2 +- .../src/targets/nsis/NsisTarget.ts | 14 +++--- .../src/targets/nsis/WebInstallerTarget.ts | 6 +-- .../src/targets/nsis/nsisLang.ts | 6 +-- .../src/targets/nsis/nsisLicense.ts | 6 +-- .../src/targets/nsis/nsisUtil.ts | 4 +- packages/app-builder-lib/src/targets/snap.ts | 4 +- .../src/targets/targetFactory.ts | 2 +- .../src/util/NodeModuleCopyHelper.ts | 6 +-- .../app-builder-lib/src/util/appFileCopier.ts | 6 +-- .../app-builder-lib/src/util/config/config.ts | 2 +- packages/app-builder-lib/src/util/license.ts | 2 +- .../src/util/packageDependencies.ts | 2 +- .../src/util/packageMetadata.ts | 2 +- packages/app-builder-lib/src/util/yarn.ts | 6 +-- packages/app-builder-lib/src/vm/MonoVm.ts | 2 +- .../app-builder-lib/src/vm/ParallelsVm.ts | 2 +- packages/app-builder-lib/src/vm/PwshVm.ts | 2 +- packages/app-builder-lib/src/vm/WineVm.ts | 2 +- packages/app-builder-lib/src/vm/vm.ts | 2 +- packages/app-builder-lib/src/winPackager.ts | 42 +++++++++--------- packages/builder-util-runtime/package.json | 3 +- .../src/ProgressCallbackTransform.ts | 2 +- .../builder-util-runtime/src/httpExecutor.ts | 8 ++-- packages/builder-util-runtime/src/retry.ts | 2 +- packages/builder-util-runtime/src/uuid.ts | 2 +- packages/builder-util-runtime/src/xml.ts | 2 +- packages/builder-util/src/DebugLogger.ts | 4 +- packages/builder-util/src/asyncTaskManager.ts | 4 +- packages/builder-util/src/deepAssign.ts | 2 +- packages/builder-util/src/fs.ts | 4 +- packages/builder-util/src/util.ts | 4 +- packages/dmg-builder/package.json | 3 +- packages/dmg-builder/src/dmg.ts | 6 +-- packages/dmg-builder/src/dmgLicense.ts | 2 +- packages/dmg-builder/src/dmgUtil.ts | 4 +- packages/dmg-builder/src/hdiuil.ts | 2 +- packages/dmg-builder/src/licenseButtons.ts | 4 +- .../package.json | 3 +- packages/electron-builder/package.json | 3 +- packages/electron-builder/src/cli/cli.ts | 6 +-- packages/electron-builder/src/publish.ts | 2 +- packages/electron-publish/package.json | 3 +- .../src/bitbucketPublisher.ts | 2 +- .../electron-publish/src/gitHubPublisher.ts | 6 +-- .../electron-publish/src/gitlabPublisher.ts | 4 +- .../electron-publish/src/httpPublisher.ts | 2 +- packages/electron-publish/src/index.ts | 2 +- .../electron-publish/src/keygenPublisher.ts | 2 +- .../electron-publish/src/multiProgress.ts | 2 +- packages/electron-publish/src/publisher.ts | 2 +- .../electron-publish/src/s3/s3Publisher.ts | 2 +- .../src/s3/spacesPublisher.ts | 2 +- .../src/snapStorePublisher.ts | 2 +- packages/electron-updater/package.json | 3 +- .../electron-updater/src/AppImageUpdater.ts | 12 ++--- packages/electron-updater/src/AppUpdater.ts | 22 +++++----- packages/electron-updater/src/BaseUpdater.ts | 4 +- packages/electron-updater/src/DebUpdater.ts | 12 ++--- .../src/DownloadedUpdateHelper.ts | 4 +- .../src/ElectronAppAdapter.ts | 2 +- packages/electron-updater/src/LinuxUpdater.ts | 4 +- packages/electron-updater/src/MacUpdater.ts | 10 ++--- packages/electron-updater/src/NsisUpdater.ts | 18 ++++---- .../electron-updater/src/PacmanUpdater.ts | 12 ++--- packages/electron-updater/src/RpmUpdater.ts | 12 ++--- .../differentialDownloader/DataSplitter.ts | 2 +- .../DifferentialDownloader.ts | 8 ++-- ...hEmbeddedBlockMapDifferentialDownloader.ts | 2 +- .../GenericDifferentialDownloader.ts | 2 +- .../multipleRangeDownloader.ts | 6 +-- packages/electron-updater/src/main.ts | 2 +- .../electron-updater/src/providerFactory.ts | 16 +++---- .../src/providers/BitbucketProvider.ts | 2 +- .../src/providers/GenericProvider.ts | 2 +- .../src/providers/GitHubProvider.ts | 2 +- .../src/providers/GitLabProvider.ts | 2 +- .../src/providers/KeygenProvider.ts | 2 +- .../src/providers/PrivateGitHubProvider.ts | 4 +- packages/electron-updater/src/types.ts | 2 +- .../windowsExecutableCodeSignatureVerifier.ts | 2 +- pnpm-lock.yaml | 8 ++++ test/src/BuildTest.ts | 6 +-- test/src/ExtraBuildResourcesTest.ts | 8 ++-- test/src/HoistedNodeModuleTest.ts | 4 +- test/src/PublishManagerTest.ts | 4 +- test/src/concurrentBuildsTest.ts | 2 +- test/src/configurationValidationTest.ts | 2 +- test/src/extraMetadataTest.ts | 4 +- test/src/filesTest.ts | 4 +- test/src/globTest.ts | 6 +-- test/src/helpers/downloadElectron.ts | 2 +- test/src/helpers/packTester.ts | 6 +-- test/src/helpers/updaterTestUtil.ts | 4 +- test/src/helpers/verifySmartUnpack.ts | 2 +- test/src/helpers/winHelper.ts | 6 +-- test/src/ignoreTest.ts | 4 +- test/src/mainEntryTest.ts | 2 +- test/src/packageManagerTest.ts | 6 +-- test/src/protonTest.ts | 2 +- .../GitlabPublisher.integration.test.ts | 4 +- .../publisher/gitlab/GitlabPublisherTest.ts | 2 +- test/src/rebuilderTest.ts | 6 +-- tsconfig-base.json | 8 ++-- 152 files changed, 421 insertions(+), 407 deletions(-) diff --git a/package.json b/package.json index c07b2e19375..8aa3ca411f8 100644 --- a/package.json +++ b/package.json @@ -40,6 +40,7 @@ "@eslint/eslintrc": "^3.3.1", "@eslint/js": "^9.37.0", "@stylistic/eslint-plugin": "^2.8.0", + "@tsconfig/node22": "^22.0.5", "@types/node": "^22.7.4", "@typescript-eslint/eslint-plugin": "8.17.0", "@typescript-eslint/parser": "8.17.0", diff --git a/packages/app-builder-lib/package.json b/packages/app-builder-lib/package.json index 9da387c8b7a..1a84b37eedb 100644 --- a/packages/app-builder-lib/package.json +++ b/packages/app-builder-lib/package.json @@ -2,7 +2,8 @@ "name": "app-builder-lib", "description": "electron-builder lib", "version": "26.3.5", - "main": "out/index.js", + "type": "module", + "exports": "./out/index.js", "files": [ "out", "templates", diff --git a/packages/app-builder-lib/src/Framework.ts b/packages/app-builder-lib/src/Framework.ts index a875efe8c1e..cec5b8e064d 100644 --- a/packages/app-builder-lib/src/Framework.ts +++ b/packages/app-builder-lib/src/Framework.ts @@ -1,6 +1,6 @@ import { FileTransformer } from "builder-util" -import { AsarIntegrity } from "./asar/integrity" -import { AfterPackContext, ElectronPlatformName, Platform, PlatformPackager } from "./index" +import { AsarIntegrity } from "./asar/integrity.js.js" +import { AfterPackContext, ElectronPlatformName, Platform, PlatformPackager } from "./index.js.js" export interface Framework { readonly name: string diff --git a/packages/app-builder-lib/src/ProtonFramework.ts b/packages/app-builder-lib/src/ProtonFramework.ts index ebf1b2efb71..77797b1c351 100644 --- a/packages/app-builder-lib/src/ProtonFramework.ts +++ b/packages/app-builder-lib/src/ProtonFramework.ts @@ -1,9 +1,9 @@ import { FileTransformer, log } from "builder-util" import { safeStringifyJson } from "builder-util-runtime" -import { Platform } from "./core" -import { NODE_MODULES_PATTERN } from "./fileTransformer" -import { LibUiFramework } from "./frameworks/LibUiFramework" -import { getTemplatePath } from "./util/pathManager" +import { Platform } from "./core.js.js" +import { NODE_MODULES_PATTERN } from "./fileTransformer.js.js" +import { LibUiFramework } from "./frameworks/LibUiFramework.js.js" +import { getTemplatePath } from "./util/pathManager.js.js" export class ProtonFramework extends LibUiFramework { readonly name = "proton" diff --git a/packages/app-builder-lib/src/appInfo.ts b/packages/app-builder-lib/src/appInfo.ts index 1b053977d64..0c37ccb1a6d 100644 --- a/packages/app-builder-lib/src/appInfo.ts +++ b/packages/app-builder-lib/src/appInfo.ts @@ -2,9 +2,9 @@ import { isEmptyOrSpaces, log } from "builder-util" import { Nullish } from "builder-util-runtime" import { sanitizeFileName } from "builder-util/out/filename" import { prerelease } from "semver" -import { PlatformSpecificBuildOptions } from "./options/PlatformSpecificBuildOptions" -import { Packager } from "./packager" -import { expandMacro } from "./util/macroExpander" +import { PlatformSpecificBuildOptions } from "./options/PlatformSpecificBuildOptions.js.js" +import { Packager } from "./packager.js.js" +import { expandMacro } from "./util/macroExpander.js.js" // fpm bug - rpm build --description is not escaped, well... decided to replace quite to smart quote // http://leancrew.com/all-this/2010/11/smart-quotes-in-javascript/ diff --git a/packages/app-builder-lib/src/asar/asarUtil.ts b/packages/app-builder-lib/src/asar/asarUtil.ts index 88580499a8e..1ece2af90b1 100644 --- a/packages/app-builder-lib/src/asar/asarUtil.ts +++ b/packages/app-builder-lib/src/asar/asarUtil.ts @@ -7,7 +7,7 @@ import * as path from "path" import { AsarOptions } from "../options/PlatformSpecificBuildOptions" import { PlatformPackager } from "../platformPackager" import { ResolvedFileSet, getDestinationPath } from "../util/appFileCopier" -import { detectUnpackedDirs } from "./unpackDetector" +import { detectUnpackedDirs } from "./unpackDetector.js.js" import { Readable } from "stream" import * as os from "os" diff --git a/packages/app-builder-lib/src/asar/integrity.ts b/packages/app-builder-lib/src/asar/integrity.ts index 10012924b94..8ee052c6d81 100644 --- a/packages/app-builder-lib/src/asar/integrity.ts +++ b/packages/app-builder-lib/src/asar/integrity.ts @@ -3,7 +3,7 @@ import { createHash } from "crypto" import { readdir } from "fs/promises" import * as path from "path" import { FileMatcher } from "../fileMatcher" -import { readAsarHeader } from "./asar" +import { readAsarHeader } from "./asar.js.js" export interface AsarIntegrityOptions { readonly resourcesPath: string diff --git a/packages/app-builder-lib/src/codeSign/macCodeSign.ts b/packages/app-builder-lib/src/codeSign/macCodeSign.ts index 20b838848df..0cbd10460ff 100644 --- a/packages/app-builder-lib/src/codeSign/macCodeSign.ts +++ b/packages/app-builder-lib/src/codeSign/macCodeSign.ts @@ -10,7 +10,7 @@ import { homedir, tmpdir } from "os" import * as path from "path" import { getTempName } from "temp-file" import { isAutoDiscoveryCodeSignIdentity } from "../util/flags" -import { importCertificate } from "./codesign" +import { importCertificate } from "./codesign.js.js" export const appleCertificatePrefixes = ["Developer ID Application:", "Developer ID Installer:", "3rd Party Mac Developer Application:", "3rd Party Mac Developer Installer:"] diff --git a/packages/app-builder-lib/src/codeSign/signManager.ts b/packages/app-builder-lib/src/codeSign/signManager.ts index 6825c355017..23b44daddd7 100644 --- a/packages/app-builder-lib/src/codeSign/signManager.ts +++ b/packages/app-builder-lib/src/codeSign/signManager.ts @@ -2,8 +2,8 @@ import { MemoLazy, Nullish } from "builder-util-runtime" import { Lazy } from "lazy-val" import { Target } from "../core" import { WindowsConfiguration } from "../options/winOptions" -import { WindowsSignOptions } from "./windowsCodeSign" -import { CertificateFromStoreInfo, FileCodeSigningInfo } from "./windowsSignToolManager" +import { WindowsSignOptions } from "./windowsCodeSign.js.js" +import { CertificateFromStoreInfo, FileCodeSigningInfo } from "./windowsSignToolManager.js.js" export interface SignManager { readonly computedPublisherName: Lazy | null> diff --git a/packages/app-builder-lib/src/codeSign/windowsSignAzureManager.ts b/packages/app-builder-lib/src/codeSign/windowsSignAzureManager.ts index 35e75add43d..b5123e1585c 100644 --- a/packages/app-builder-lib/src/codeSign/windowsSignAzureManager.ts +++ b/packages/app-builder-lib/src/codeSign/windowsSignAzureManager.ts @@ -3,9 +3,9 @@ import { MemoLazy } from "builder-util-runtime" import { Lazy } from "lazy-val" import { WindowsAzureSigningConfiguration, WindowsConfiguration } from "../options/winOptions" import { WinPackager } from "../winPackager" -import { SignManager } from "./signManager" -import { WindowsSignOptions } from "./windowsCodeSign" -import { CertificateFromStoreInfo, FileCodeSigningInfo } from "./windowsSignToolManager" +import { SignManager } from "./signManager.js.js" +import { WindowsSignOptions } from "./windowsCodeSign.js.js" +import { CertificateFromStoreInfo, FileCodeSigningInfo } from "./windowsSignToolManager.js.js" export class WindowsSignAzureManager implements SignManager { private readonly platformSpecificBuildOptions: WindowsConfiguration diff --git a/packages/app-builder-lib/src/codeSign/windowsSignToolManager.ts b/packages/app-builder-lib/src/codeSign/windowsSignToolManager.ts index 00aeeec2a94..506ea63069c 100644 --- a/packages/app-builder-lib/src/codeSign/windowsSignToolManager.ts +++ b/packages/app-builder-lib/src/codeSign/windowsSignToolManager.ts @@ -14,9 +14,9 @@ import { isUseSystemSigncode } from "../util/flags" import { resolveFunction } from "../util/resolve" import { VmManager } from "../vm/vm" import { WinPackager } from "../winPackager" -import { importCertificate } from "./codesign" -import { SignManager } from "./signManager" -import { WindowsSignOptions } from "./windowsCodeSign" +import { importCertificate } from "./codesign.js.js" +import { SignManager } from "./signManager.js.js" +import { WindowsSignOptions } from "./windowsCodeSign.js.js" export function getSignVendorPath() { return getBin("winCodeSign") diff --git a/packages/app-builder-lib/src/configuration.ts b/packages/app-builder-lib/src/configuration.ts index 1d7283e3ff5..e747a0e47c7 100644 --- a/packages/app-builder-lib/src/configuration.ts +++ b/packages/app-builder-lib/src/configuration.ts @@ -1,21 +1,21 @@ import { Arch } from "builder-util" -import { BeforeBuildContext, Target } from "./core" -import { ElectronBrandingOptions, ElectronDownloadOptions } from "./electron/ElectronFramework" -import { PrepareApplicationStageDirectoryOptions } from "./Framework" -import { AppXOptions } from "./options/AppXOptions" -import { AppImageOptions, DebOptions, FlatpakOptions, LinuxConfiguration, LinuxTargetSpecificOptions } from "./options/linuxOptions" -import { DmgOptions, MacConfiguration, MasConfiguration } from "./options/macOptions" -import { MsiOptions } from "./options/MsiOptions" -import { MsiWrappedOptions } from "./options/MsiWrappedOptions" -import { PkgOptions } from "./options/pkgOptions" -import { PlatformSpecificBuildOptions } from "./options/PlatformSpecificBuildOptions" -import { SnapOptions } from "./options/SnapOptions" -import { SquirrelWindowsOptions } from "./options/SquirrelWindowsOptions" -import { WindowsConfiguration } from "./options/winOptions" -import { BuildResult } from "./packager" -import { ArtifactBuildStarted, ArtifactCreated } from "./packagerApi" -import { PlatformPackager } from "./platformPackager" -import { NsisOptions, NsisWebOptions, PortableOptions } from "./targets/nsis/nsisOptions" +import { BeforeBuildContext, Target } from "./core.js.js" +import { ElectronBrandingOptions, ElectronDownloadOptions } from "./electron/ElectronFramework.js.js" +import { PrepareApplicationStageDirectoryOptions } from "./Framework.js.js" +import { AppXOptions } from "./options/AppXOptions.js.js" +import { AppImageOptions, DebOptions, FlatpakOptions, LinuxConfiguration, LinuxTargetSpecificOptions } from "./options/linuxOptions.js.js" +import { DmgOptions, MacConfiguration, MasConfiguration } from "./options/macOptions.js.js" +import { MsiOptions } from "./options/MsiOptions.js.js" +import { MsiWrappedOptions } from "./options/MsiWrappedOptions.js.js" +import { PkgOptions } from "./options/pkgOptions.js.js" +import { PlatformSpecificBuildOptions } from "./options/PlatformSpecificBuildOptions.js.js" +import { SnapOptions } from "./options/SnapOptions.js.js" +import { SquirrelWindowsOptions } from "./options/SquirrelWindowsOptions.js.js" +import { WindowsConfiguration } from "./options/winOptions.js.js" +import { BuildResult } from "./packager.js.js" +import { ArtifactBuildStarted, ArtifactCreated } from "./packagerApi.js.js" +import { PlatformPackager } from "./platformPackager.js.js" +import { NsisOptions, NsisWebOptions, PortableOptions } from "./targets/nsis/nsisOptions.js.js" // duplicate appId here because it is important /** diff --git a/packages/app-builder-lib/src/electron/ElectronFramework.ts b/packages/app-builder-lib/src/electron/ElectronFramework.ts index e9c1cc5ada7..d326a337b62 100644 --- a/packages/app-builder-lib/src/electron/ElectronFramework.ts +++ b/packages/app-builder-lib/src/electron/ElectronFramework.ts @@ -9,10 +9,10 @@ import { LinuxPackager } from "../linuxPackager" import { MacPackager } from "../macPackager" import { getTemplatePath } from "../util/pathManager" import { resolveFunction } from "../util/resolve" -import { createMacApp } from "./electronMac" -import { computeElectronVersion, getElectronVersionFromInstalled } from "./electronVersion" -import { addWinAsarIntegrity } from "./electronWin" -import injectFFMPEG from "./injectFFMPEG" +import { createMacApp } from "./electronMac.js.js" +import { computeElectronVersion, getElectronVersionFromInstalled } from "./electronVersion.js.js" +import { addWinAsarIntegrity } from "./electronWin.js.js" +import injectFFMPEG from "./injectFFMPEG.js.js" export type ElectronPlatformName = "darwin" | "linux" | "win32" | "mas" diff --git a/packages/app-builder-lib/src/electron/electronMac.ts b/packages/app-builder-lib/src/electron/electronMac.ts index 5b46b793fd3..edba4cfdb17 100644 --- a/packages/app-builder-lib/src/electron/electronMac.ts +++ b/packages/app-builder-lib/src/electron/electronMac.ts @@ -7,7 +7,7 @@ import { AsarIntegrity } from "../asar/integrity" import { MacPackager } from "../macPackager" import { normalizeExt } from "../platformPackager" import { savePlistFile, parsePlistFile, PlistObject, PlistValue } from "../util/plist" -import { createBrandingOpts } from "./ElectronFramework" +import { createBrandingOpts } from "./ElectronFramework.js.js" function doRename(basePath: string, oldName: string, newName: string) { return rename(path.join(basePath, oldName), path.join(basePath, newName)) diff --git a/packages/app-builder-lib/src/electron/electronVersion.ts b/packages/app-builder-lib/src/electron/electronVersion.ts index 8d5ba107e8f..583a05b2c99 100644 --- a/packages/app-builder-lib/src/electron/electronVersion.ts +++ b/packages/app-builder-lib/src/electron/electronVersion.ts @@ -7,7 +7,7 @@ import * as semver from "semver" import { Configuration } from "../configuration" import { getConfig } from "../util/config/config" import { orNullIfFileNotExist } from "../util/config/load" -import { getProjectRootPath } from "./search-module" +import { getProjectRootPath } from "./search-module.js.js" export type MetadataValue = Lazy | null> diff --git a/packages/app-builder-lib/src/electron/injectFFMPEG.ts b/packages/app-builder-lib/src/electron/injectFFMPEG.ts index 0d4815d47b4..3880fc853b2 100644 --- a/packages/app-builder-lib/src/electron/injectFFMPEG.ts +++ b/packages/app-builder-lib/src/electron/injectFFMPEG.ts @@ -1,6 +1,6 @@ import * as fs from "fs" import * as path from "path" -import { ElectronPlatformName } from "./ElectronFramework" +import { ElectronPlatformName } from "./ElectronFramework.js.js" import { log } from "builder-util" import { getBin } from "../binDownload" diff --git a/packages/app-builder-lib/src/fileMatcher.ts b/packages/app-builder-lib/src/fileMatcher.ts index dfbdb908bf6..34a7cc5b594 100644 --- a/packages/app-builder-lib/src/fileMatcher.ts +++ b/packages/app-builder-lib/src/fileMatcher.ts @@ -3,9 +3,9 @@ import { Nullish } from "builder-util-runtime" import { mkdir } from "fs/promises" import { Minimatch } from "minimatch" import * as path from "path" -import { Configuration, FileSet, Packager, PlatformSpecificBuildOptions } from "./index" -import { PlatformPackager } from "./platformPackager" -import { createFilter, hasMagic } from "./util/filter" +import { Configuration, FileSet, Packager, PlatformSpecificBuildOptions } from "./index.js.js" +import { PlatformPackager } from "./platformPackager.js.js" +import { createFilter, hasMagic } from "./util/filter.js.js" // https://github.com/electron-userland/electron-builder/issues/733 const minimatchOptions = { dot: true } diff --git a/packages/app-builder-lib/src/fileTransformer.ts b/packages/app-builder-lib/src/fileTransformer.ts index ac3054cd777..4ec24835026 100644 --- a/packages/app-builder-lib/src/fileTransformer.ts +++ b/packages/app-builder-lib/src/fileTransformer.ts @@ -1,8 +1,8 @@ import { debug, deepAssign, FileTransformer, log } from "builder-util" import { readFile } from "fs/promises" import * as path from "path" -import { Configuration } from "./configuration" -import { Packager } from "./packager" +import { Configuration } from "./configuration.js.js" +import { Packager } from "./packager.js.js" /** @internal */ export const NODE_MODULES_PATTERN = `${path.sep}node_modules${path.sep}` diff --git a/packages/app-builder-lib/src/forge-maker.ts b/packages/app-builder-lib/src/forge-maker.ts index 640e1f37675..88733be7648 100644 --- a/packages/app-builder-lib/src/forge-maker.ts +++ b/packages/app-builder-lib/src/forge-maker.ts @@ -1,6 +1,6 @@ import * as path from "path" -import { build } from "./index" -import { PackagerOptions } from "./packagerApi" +import { build } from "./index.js.js" +import { PackagerOptions } from "./packagerApi.js.js" export interface ForgeOptions { readonly dir: string diff --git a/packages/app-builder-lib/src/index.ts b/packages/app-builder-lib/src/index.ts index b2c2b69707b..c51edd92112 100644 --- a/packages/app-builder-lib/src/index.ts +++ b/packages/app-builder-lib/src/index.ts @@ -1,10 +1,10 @@ import { InvalidConfigurationError, executeFinally, log } from "builder-util" import { asArray } from "builder-util-runtime" import { PublishOptions } from "electron-publish" -import { Packager } from "./packager" -import { PackagerOptions } from "./packagerApi" -import { PublishManager } from "./publish/PublishManager" -import { resolveFunction } from "./util/resolve" +import { Packager } from "./packager.js.js" +import { PackagerOptions } from "./packagerApi.js.js" +import { PublishManager } from "./publish/PublishManager.js.js" +import { resolveFunction } from "./util/resolve.js.js" export { Arch, archFromString, getArchSuffix } from "builder-util" export { AppInfo } from "./appInfo" diff --git a/packages/app-builder-lib/src/linuxPackager.ts b/packages/app-builder-lib/src/linuxPackager.ts index a772e2fef9d..8ca43096352 100644 --- a/packages/app-builder-lib/src/linuxPackager.ts +++ b/packages/app-builder-lib/src/linuxPackager.ts @@ -1,15 +1,15 @@ import { Arch } from "builder-util" import { sanitizeFileName } from "builder-util/out/filename" -import { DIR_TARGET, Platform, Target } from "./core" -import { LinuxConfiguration } from "./options/linuxOptions" -import { Packager } from "./packager" -import { PlatformPackager } from "./platformPackager" -import AppImageTarget from "./targets/AppImageTarget" -import FlatpakTarget from "./targets/FlatpakTarget" -import FpmTarget from "./targets/FpmTarget" -import { LinuxTargetHelper } from "./targets/LinuxTargetHelper" -import SnapTarget from "./targets/snap" -import { createCommonTarget } from "./targets/targetFactory" +import { DIR_TARGET, Platform, Target } from "./core.js.js" +import { LinuxConfiguration } from "./options/linuxOptions.js.js" +import { Packager } from "./packager.js.js" +import { PlatformPackager } from "./platformPackager.js.js" +import AppImageTarget from "./targets/AppImageTarget.js.js" +import FlatpakTarget from "./targets/FlatpakTarget.js.js" +import FpmTarget from "./targets/FpmTarget.js.js" +import { LinuxTargetHelper } from "./targets/LinuxTargetHelper.js.js" +import SnapTarget from "./targets/snap.js.js" +import { createCommonTarget } from "./targets/targetFactory.js.js" export class LinuxPackager extends PlatformPackager { readonly executableName: string diff --git a/packages/app-builder-lib/src/macPackager.ts b/packages/app-builder-lib/src/macPackager.ts index a84fa7c88bc..e456d55f0d2 100644 --- a/packages/app-builder-lib/src/macPackager.ts +++ b/packages/app-builder-lib/src/macPackager.ts @@ -22,20 +22,20 @@ import * as fs from "fs/promises" import { mkdir, readdir } from "fs/promises" import { Lazy } from "lazy-val" import * as path from "path" -import { AppInfo } from "./appInfo" -import { CertType, CodeSigningInfo, createKeychain, CreateKeychainOptions, findIdentity, isSignAllowed, removeKeychain, reportError, sign } from "./codeSign/macCodeSign" -import { DIR_TARGET, Platform, Target } from "./core" -import { AfterPackContext, ElectronPlatformName } from "./index" -import { MacConfiguration, MasConfiguration } from "./options/macOptions" -import { Packager } from "./packager" -import { chooseNotNull, DoPackOptions, PlatformPackager } from "./platformPackager" -import { ArchiveTarget } from "./targets/ArchiveTarget" -import { PkgTarget, prepareProductBuildArgs } from "./targets/pkg" -import { createCommonTarget, NoOpTarget } from "./targets/targetFactory" -import { isMacOsHighSierra } from "./util/macosVersion" -import { getTemplatePath } from "./util/pathManager" -import { resolveFunction } from "./util/resolve" -import { expandMacro as doExpandMacro } from "./util/macroExpander" +import { AppInfo } from "./appInfo.js.js" +import { CertType, CodeSigningInfo, createKeychain, CreateKeychainOptions, findIdentity, isSignAllowed, removeKeychain, reportError, sign } from "./codeSign/macCodeSign.js.js" +import { DIR_TARGET, Platform, Target } from "./core.js.js" +import { AfterPackContext, ElectronPlatformName } from "./index.js.js" +import { MacConfiguration, MasConfiguration } from "./options/macOptions.js.js" +import { Packager } from "./packager.js.js" +import { chooseNotNull, DoPackOptions, PlatformPackager } from "./platformPackager.js.js" +import { ArchiveTarget } from "./targets/ArchiveTarget.js.js" +import { PkgTarget, prepareProductBuildArgs } from "./targets/pkg.js.js" +import { createCommonTarget, NoOpTarget } from "./targets/targetFactory.js.js" +import { isMacOsHighSierra } from "./util/macosVersion.js.js" +import { getTemplatePath } from "./util/pathManager.js.js" +import { resolveFunction } from "./util/resolve.js.js" +import { expandMacro as doExpandMacro } from "./util/macroExpander.js.js" import { makeUniversalApp } from "@electron/universal" export type CustomMacSignOptions = SignOptions diff --git a/packages/app-builder-lib/src/node-module-collector/bunNodeModulesCollector.ts b/packages/app-builder-lib/src/node-module-collector/bunNodeModulesCollector.ts index 412d8f35599..4009560de88 100644 --- a/packages/app-builder-lib/src/node-module-collector/bunNodeModulesCollector.ts +++ b/packages/app-builder-lib/src/node-module-collector/bunNodeModulesCollector.ts @@ -1,7 +1,7 @@ import { log } from "builder-util" -import { NpmNodeModulesCollector } from "./npmNodeModulesCollector" -import { PM } from "./packageManager" -import { NpmDependency } from "./types" +import { NpmNodeModulesCollector } from "./npmNodeModulesCollector.js.js" +import { PM } from "./packageManager.js.js" +import { NpmDependency } from "./types.js.js" export class BunNodeModulesCollector extends NpmNodeModulesCollector { public readonly installOptions = { manager: PM.BUN, lockfile: "bun.lock" } diff --git a/packages/app-builder-lib/src/node-module-collector/index.ts b/packages/app-builder-lib/src/node-module-collector/index.ts index 926a3b5e08e..4c4191515cd 100644 --- a/packages/app-builder-lib/src/node-module-collector/index.ts +++ b/packages/app-builder-lib/src/node-module-collector/index.ts @@ -1,12 +1,12 @@ import { CancellationToken, Nullish } from "builder-util-runtime" import { TmpDir } from "temp-file" -import { NpmNodeModulesCollector } from "./npmNodeModulesCollector" -import { detectPackageManager, getPackageManagerCommand, PM } from "./packageManager" -import { PnpmNodeModulesCollector } from "./pnpmNodeModulesCollector" -import { NodeModuleInfo } from "./types" -import { YarnBerryNodeModulesCollector } from "./yarnBerryNodeModulesCollector" -import { YarnNodeModulesCollector } from "./yarnNodeModulesCollector" -import { BunNodeModulesCollector } from "./bunNodeModulesCollector" +import { NpmNodeModulesCollector } from "./npmNodeModulesCollector.js.js" +import { detectPackageManager, getPackageManagerCommand, PM } from "./packageManager.js.js" +import { PnpmNodeModulesCollector } from "./pnpmNodeModulesCollector.js.js" +import { NodeModuleInfo } from "./types.js.js" +import { YarnBerryNodeModulesCollector } from "./yarnBerryNodeModulesCollector.js.js" +import { YarnNodeModulesCollector } from "./yarnNodeModulesCollector.js.js" +import { BunNodeModulesCollector } from "./bunNodeModulesCollector.js.js" import { Lazy } from "lazy-val" import { spawn, log, exists } from "builder-util" import * as fs from "fs-extra" diff --git a/packages/app-builder-lib/src/node-module-collector/moduleCache.ts b/packages/app-builder-lib/src/node-module-collector/moduleCache.ts index 95b740bf58f..85343dd4401 100644 --- a/packages/app-builder-lib/src/node-module-collector/moduleCache.ts +++ b/packages/app-builder-lib/src/node-module-collector/moduleCache.ts @@ -1,5 +1,5 @@ import { exists, log } from "builder-util" -import { PackageJson } from "./types" +import { PackageJson } from "./types.js.js" import * as fs from "fs-extra" import { resolve } from "path" diff --git a/packages/app-builder-lib/src/node-module-collector/nodeModulesCollector.ts b/packages/app-builder-lib/src/node-module-collector/nodeModulesCollector.ts index 30265052928..7e645c9b57c 100644 --- a/packages/app-builder-lib/src/node-module-collector/nodeModulesCollector.ts +++ b/packages/app-builder-lib/src/node-module-collector/nodeModulesCollector.ts @@ -6,10 +6,10 @@ import { createWriteStream } from "fs-extra" import { Lazy } from "lazy-val" import * as path from "path" import * as semver from "semver" -import { hoist, type HoisterResult, type HoisterTree } from "./hoist" -import { ModuleCache } from "./moduleCache" -import { getPackageManagerCommand, PM } from "./packageManager" -import type { Dependency, DependencyGraph, NodeModuleInfo } from "./types" +import { hoist, type HoisterResult, type HoisterTree } from "./hoist.js.js" +import { ModuleCache } from "./moduleCache.js.js" +import { getPackageManagerCommand, PM } from "./packageManager.js.js" +import type { Dependency, DependencyGraph, NodeModuleInfo } from "./types.js.js" type Result = { packageDir: string; version: string } | null export abstract class NodeModulesCollector, OptionalDepType> { diff --git a/packages/app-builder-lib/src/node-module-collector/npmNodeModulesCollector.ts b/packages/app-builder-lib/src/node-module-collector/npmNodeModulesCollector.ts index 0eff617a7a6..f2086d468bb 100644 --- a/packages/app-builder-lib/src/node-module-collector/npmNodeModulesCollector.ts +++ b/packages/app-builder-lib/src/node-module-collector/npmNodeModulesCollector.ts @@ -1,8 +1,8 @@ import { log } from "builder-util" import * as path from "path" -import { NodeModulesCollector } from "./nodeModulesCollector" -import { PM } from "./packageManager" -import { NpmDependency, PackageJson } from "./types" +import { NodeModulesCollector } from "./nodeModulesCollector.js.js" +import { PM } from "./packageManager.js.js" +import { NpmDependency, PackageJson } from "./types.js.js" export class NpmNodeModulesCollector extends NodeModulesCollector { public readonly installOptions = { diff --git a/packages/app-builder-lib/src/node-module-collector/pnpmNodeModulesCollector.ts b/packages/app-builder-lib/src/node-module-collector/pnpmNodeModulesCollector.ts index 266daa8121b..4972b2e2799 100644 --- a/packages/app-builder-lib/src/node-module-collector/pnpmNodeModulesCollector.ts +++ b/packages/app-builder-lib/src/node-module-collector/pnpmNodeModulesCollector.ts @@ -1,8 +1,8 @@ import { isEmptyOrSpaces, log } from "builder-util" import * as path from "path" -import { NodeModulesCollector } from "./nodeModulesCollector" -import { PM } from "./packageManager" -import { PackageJson, PnpmDependency } from "./types" +import { NodeModulesCollector } from "./nodeModulesCollector.js.js" +import { PM } from "./packageManager.js.js" +import { PackageJson, PnpmDependency } from "./types.js.js" export class PnpmNodeModulesCollector extends NodeModulesCollector { public readonly installOptions = { diff --git a/packages/app-builder-lib/src/node-module-collector/yarnBerryNodeModulesCollector.ts b/packages/app-builder-lib/src/node-module-collector/yarnBerryNodeModulesCollector.ts index 02122454db0..de65a2f0573 100644 --- a/packages/app-builder-lib/src/node-module-collector/yarnBerryNodeModulesCollector.ts +++ b/packages/app-builder-lib/src/node-module-collector/yarnBerryNodeModulesCollector.ts @@ -1,8 +1,8 @@ import { log } from "builder-util" import { Lazy } from "lazy-val" -import { NpmNodeModulesCollector } from "./npmNodeModulesCollector" -import { PM } from "./packageManager" -import { NpmDependency } from "./types" +import { NpmNodeModulesCollector } from "./npmNodeModulesCollector.js.js" +import { PM } from "./packageManager.js.js" +import { NpmDependency } from "./types.js.js" type YarnSetupInfo = { yarnVersion: string | null diff --git a/packages/app-builder-lib/src/node-module-collector/yarnNodeModulesCollector.ts b/packages/app-builder-lib/src/node-module-collector/yarnNodeModulesCollector.ts index cdec2f9e63c..9a923cc13f5 100644 --- a/packages/app-builder-lib/src/node-module-collector/yarnNodeModulesCollector.ts +++ b/packages/app-builder-lib/src/node-module-collector/yarnNodeModulesCollector.ts @@ -1,9 +1,9 @@ import { log } from "builder-util" import { Lazy } from "lazy-val" import * as path from "path" -import { NodeModulesCollector } from "./nodeModulesCollector" -import { PM } from "./packageManager" -import { PackageJson, YarnDependency } from "./types" +import { NodeModulesCollector } from "./nodeModulesCollector.js.js" +import { PM } from "./packageManager.js.js" +import { PackageJson, YarnDependency } from "./types.js.js" type YarnListJsonLine = | { diff --git a/packages/app-builder-lib/src/options/MsiOptions.ts b/packages/app-builder-lib/src/options/MsiOptions.ts index 3b905847941..1b6fede0e72 100644 --- a/packages/app-builder-lib/src/options/MsiOptions.ts +++ b/packages/app-builder-lib/src/options/MsiOptions.ts @@ -1,5 +1,5 @@ import { TargetSpecificOptions } from "../core" -import { CommonWindowsInstallerConfiguration } from "./CommonWindowsInstallerConfiguration" +import { CommonWindowsInstallerConfiguration } from "./CommonWindowsInstallerConfiguration.js.js" export interface MsiOptions extends CommonWindowsInstallerConfiguration, TargetSpecificOptions { /** diff --git a/packages/app-builder-lib/src/options/MsiWrappedOptions.ts b/packages/app-builder-lib/src/options/MsiWrappedOptions.ts index 282693f775b..39cf1028717 100644 --- a/packages/app-builder-lib/src/options/MsiWrappedOptions.ts +++ b/packages/app-builder-lib/src/options/MsiWrappedOptions.ts @@ -1,5 +1,5 @@ import { TargetSpecificOptions } from "../core" -import { CommonWindowsInstallerConfiguration } from "./CommonWindowsInstallerConfiguration" +import { CommonWindowsInstallerConfiguration } from "./CommonWindowsInstallerConfiguration.js.js" export interface MsiWrappedOptions extends CommonWindowsInstallerConfiguration, TargetSpecificOptions { /** diff --git a/packages/app-builder-lib/src/options/PlatformSpecificBuildOptions.ts b/packages/app-builder-lib/src/options/PlatformSpecificBuildOptions.ts index 9017928eac8..f3029c9608c 100644 --- a/packages/app-builder-lib/src/options/PlatformSpecificBuildOptions.ts +++ b/packages/app-builder-lib/src/options/PlatformSpecificBuildOptions.ts @@ -1,5 +1,5 @@ import { CompressionLevel, Publish, TargetConfiguration, TargetSpecificOptions } from "../core" -import { FileAssociation } from "./FileAssociation" +import { FileAssociation } from "./FileAssociation.js.js" export interface FileSet { /** diff --git a/packages/app-builder-lib/src/options/SnapOptions.ts b/packages/app-builder-lib/src/options/SnapOptions.ts index 1ea3fbcb59a..d43d2355c15 100644 --- a/packages/app-builder-lib/src/options/SnapOptions.ts +++ b/packages/app-builder-lib/src/options/SnapOptions.ts @@ -1,5 +1,5 @@ import { TargetSpecificOptions } from "../core" -import { CommonLinuxOptions } from "./linuxOptions" +import { CommonLinuxOptions } from "./linuxOptions.js.js" export interface SnapOptions extends CommonLinuxOptions, TargetSpecificOptions { /** diff --git a/packages/app-builder-lib/src/packager.ts b/packages/app-builder-lib/src/packager.ts index 17728e2d8d4..236c362c527 100644 --- a/packages/app-builder-lib/src/packager.ts +++ b/packages/app-builder-lib/src/packager.ts @@ -21,29 +21,29 @@ import { isCI } from "ci-info" import { Lazy } from "lazy-val" import { release as getOsRelease } from "os" import * as path from "path" -import { AppInfo } from "./appInfo" -import { readAsarJson } from "./asar/asar" -import { AfterExtractContext, AfterPackContext, BeforePackContext, Configuration, Hook } from "./configuration" -import { Platform, SourceRepositoryInfo, Target } from "./core" -import { createElectronFrameworkSupport } from "./electron/ElectronFramework" -import { Framework } from "./Framework" -import { LibUiFramework } from "./frameworks/LibUiFramework" -import { Metadata } from "./options/metadata" -import { ArtifactBuildStarted, ArtifactCreated, PackagerOptions } from "./packagerApi" -import { PlatformPackager } from "./platformPackager" -import { ProtonFramework } from "./ProtonFramework" -import { computeArchToTargetNamesMap, createTargets, NoOpTarget } from "./targets/targetFactory" -import { computeDefaultAppDirectory, getConfig, validateConfiguration } from "./util/config/config" -import { expandMacro } from "./util/macroExpander" -import { createLazyProductionDeps, NodeModuleDirInfo, NodeModuleInfo } from "./util/packageDependencies" -import { checkMetadata, readPackageJson } from "./util/packageMetadata" -import { getRepositoryInfo } from "./util/repositoryInfo" -import { resolveFunction } from "./util/resolve" -import { installOrRebuild, nodeGypRebuild } from "./util/yarn" -import { PACKAGE_VERSION } from "./version" -import { AsyncEventEmitter, HandlerType } from "./util/asyncEventEmitter" +import { AppInfo } from "./appInfo.js.js" +import { readAsarJson } from "./asar/asar.js.js" +import { AfterExtractContext, AfterPackContext, BeforePackContext, Configuration, Hook } from "./configuration.js.js" +import { Platform, SourceRepositoryInfo, Target } from "./core.js.js" +import { createElectronFrameworkSupport } from "./electron/ElectronFramework.js.js" +import { Framework } from "./Framework.js.js" +import { LibUiFramework } from "./frameworks/LibUiFramework.js.js" +import { Metadata } from "./options/metadata.js.js" +import { ArtifactBuildStarted, ArtifactCreated, PackagerOptions } from "./packagerApi.js.js" +import { PlatformPackager } from "./platformPackager.js.js" +import { ProtonFramework } from "./ProtonFramework.js.js" +import { computeArchToTargetNamesMap, createTargets, NoOpTarget } from "./targets/targetFactory.js.js" +import { computeDefaultAppDirectory, getConfig, validateConfiguration } from "./util/config/config.js.js" +import { expandMacro } from "./util/macroExpander.js.js" +import { createLazyProductionDeps, NodeModuleDirInfo, NodeModuleInfo } from "./util/packageDependencies.js.js" +import { checkMetadata, readPackageJson } from "./util/packageMetadata.js.js" +import { getRepositoryInfo } from "./util/repositoryInfo.js.js" +import { resolveFunction } from "./util/resolve.js.js" +import { installOrRebuild, nodeGypRebuild } from "./util/yarn.js.js" +import { PACKAGE_VERSION } from "./version.js.js" +import { AsyncEventEmitter, HandlerType } from "./util/asyncEventEmitter.js.js" import asyncPool from "tiny-async-pool" -import { determinePackageManagerEnv, PM } from "./node-module-collector" +import { determinePackageManagerEnv, PM } from "./node-module-collector.js.js" async function createFrameworkInfo(configuration: Configuration, packager: Packager): Promise { let framework = configuration.framework diff --git a/packages/app-builder-lib/src/packagerApi.ts b/packages/app-builder-lib/src/packagerApi.ts index 28a490c146a..6ea6145af03 100644 --- a/packages/app-builder-lib/src/packagerApi.ts +++ b/packages/app-builder-lib/src/packagerApi.ts @@ -1,10 +1,10 @@ import { Arch } from "builder-util" import { PublishConfiguration } from "builder-util-runtime" import { UploadTask } from "electron-publish" -import { Configuration } from "./configuration" -import { Platform, Target } from "./core" -import { Packager } from "./packager" -import { PlatformPackager } from "./platformPackager" +import { Configuration } from "./configuration.js.js" +import { Platform, Target } from "./core.js.js" +import { Packager } from "./packager.js.js" +import { PlatformPackager } from "./platformPackager.js.js" export interface PackagerOptions { targets?: Map>> diff --git a/packages/app-builder-lib/src/platformPackager.ts b/packages/app-builder-lib/src/platformPackager.ts index 4889b51722e..076290393e0 100644 --- a/packages/app-builder-lib/src/platformPackager.ts +++ b/packages/app-builder-lib/src/platformPackager.ts @@ -22,14 +22,14 @@ import { Minimatch } from "minimatch" import * as path from "path" import * as fs from "fs/promises" import * as os from "os" -import { AppInfo } from "./appInfo" -import { checkFileInArchive } from "./asar/asarFileChecker" -import { AsarPackager } from "./asar/asarUtil" -import { AsarIntegrity, computeData } from "./asar/integrity" -import { FuseOptionsV1 } from "./configuration" -import { copyFiles, FileMatcher, getFileMatchers, GetFileMatchersOptions, getMainFileMatchers, getNodeModuleFileMatcher } from "./fileMatcher" -import { createTransformer, isElectronCompileUsed } from "./fileTransformer" -import { Framework, isElectronBased } from "./Framework" +import { AppInfo } from "./appInfo.js.js" +import { checkFileInArchive } from "./asar/asarFileChecker.js.js" +import { AsarPackager } from "./asar/asarUtil.js.js" +import { AsarIntegrity, computeData } from "./asar/integrity.js.js" +import { FuseOptionsV1 } from "./configuration.js.js" +import { copyFiles, FileMatcher, getFileMatchers, GetFileMatchersOptions, getMainFileMatchers, getNodeModuleFileMatcher } from "./fileMatcher.js.js" +import { createTransformer, isElectronCompileUsed } from "./fileTransformer.js.js" +import { Framework, isElectronBased } from "./Framework.js.js" import { AfterPackContext, AsarOptions, @@ -45,10 +45,10 @@ import { Target, TargetSpecificOptions, } from "./index" -import { executeAppBuilderAsJson } from "./util/appBuilder" -import { computeFileSets, computeNodeModuleFileSets, copyAppFiles, ELECTRON_COMPILE_SHIM_FILENAME, transformFiles } from "./util/appFileCopier" -import { expandMacro as doExpandMacro } from "./util/macroExpander" -import { AssetCatalogResult, generateAssetCatalogForIcon } from "./util/macosIconComposer" +import { executeAppBuilderAsJson } from "./util/appBuilder.js.js" +import { computeFileSets, computeNodeModuleFileSets, copyAppFiles, ELECTRON_COMPILE_SHIM_FILENAME, transformFiles } from "./util/appFileCopier.js.js" +import { expandMacro as doExpandMacro } from "./util/macroExpander.js.js" +import { AssetCatalogResult, generateAssetCatalogForIcon } from "./util/macosIconComposer.js.js" export type DoPackOptions = { outDir: string diff --git a/packages/app-builder-lib/src/publish/PublishManager.ts b/packages/app-builder-lib/src/publish/PublishManager.ts index 4937da21301..642191b0b27 100644 --- a/packages/app-builder-lib/src/publish/PublishManager.ts +++ b/packages/app-builder-lib/src/publish/PublishManager.ts @@ -40,7 +40,7 @@ import { Packager } from "../packager" import { PlatformPackager } from "../platformPackager" import { expandMacro } from "../util/macroExpander" import { WinPackager } from "../winPackager" -import { createUpdateInfoTasks, UpdateInfoFileTask, writeUpdateInfoFiles } from "./updateInfoBuilder" +import { createUpdateInfoTasks, UpdateInfoFileTask, writeUpdateInfoFiles } from "./updateInfoBuilder.js.js" import { resolveModule } from "../util/resolve" const publishForPrWarning = diff --git a/packages/app-builder-lib/src/publish/updateInfoBuilder.ts b/packages/app-builder-lib/src/publish/updateInfoBuilder.ts index 76f3bce4213..819dc5d522e 100644 --- a/packages/app-builder-lib/src/publish/updateInfoBuilder.ts +++ b/packages/app-builder-lib/src/publish/updateInfoBuilder.ts @@ -11,7 +11,7 @@ import { Packager } from "../packager" import { ArtifactCreated } from "../packagerApi" import { PlatformPackager } from "../platformPackager" import { hashFile } from "../util/hash" -import { computeDownloadUrl, getPublishConfigsForUpdateInfo } from "./PublishManager" +import { computeDownloadUrl, getPublishConfigsForUpdateInfo } from "./PublishManager.js.js" async function getReleaseInfo(packager: PlatformPackager) { const releaseInfo: ReleaseInfo = { ...(packager.platformSpecificBuildOptions.releaseInfo || packager.config.releaseInfo) } diff --git a/packages/app-builder-lib/src/targets/AppImageTarget.ts b/packages/app-builder-lib/src/targets/AppImageTarget.ts index 797420aff1e..95f032dffb8 100644 --- a/packages/app-builder-lib/src/targets/AppImageTarget.ts +++ b/packages/app-builder-lib/src/targets/AppImageTarget.ts @@ -8,8 +8,8 @@ import { AppImageOptions } from "../options/linuxOptions" import { getAppUpdatePublishConfiguration } from "../publish/PublishManager" import { executeAppBuilderAsJson, objectToArgs } from "../util/appBuilder" import { getNotLocalizedLicenseFile } from "../util/license" -import { LinuxTargetHelper } from "./LinuxTargetHelper" -import { createStageDir } from "./targetUtil" +import { LinuxTargetHelper } from "./LinuxTargetHelper.js.js" +import { createStageDir } from "./targetUtil.js.js" // https://unix.stackexchange.com/questions/375191/append-to-sub-directory-inside-squashfs-file export default class AppImageTarget extends Target { diff --git a/packages/app-builder-lib/src/targets/AppxTarget.ts b/packages/app-builder-lib/src/targets/AppxTarget.ts index 07f71532e8c..e9f6663afde 100644 --- a/packages/app-builder-lib/src/targets/AppxTarget.ts +++ b/packages/app-builder-lib/src/targets/AppxTarget.ts @@ -8,7 +8,7 @@ import { Target } from "../core" import { getTemplatePath } from "../util/pathManager" import { VmManager } from "../vm/vm" import { WinPackager } from "../winPackager" -import { createStageDir } from "./targetUtil" +import { createStageDir } from "./targetUtil.js.js" const APPX_ASSETS_DIR_NAME = "appx" diff --git a/packages/app-builder-lib/src/targets/ArchiveTarget.ts b/packages/app-builder-lib/src/targets/ArchiveTarget.ts index 272c25fc76d..86414c12efe 100644 --- a/packages/app-builder-lib/src/targets/ArchiveTarget.ts +++ b/packages/app-builder-lib/src/targets/ArchiveTarget.ts @@ -3,8 +3,8 @@ import * as path from "path" import { Platform, Target, TargetSpecificOptions } from "../core" import { copyFiles, getFileMatchers } from "../fileMatcher" import { PlatformPackager } from "../platformPackager" -import { archive, tar } from "./archive" -import { appendBlockmap, createBlockmap } from "./differentialUpdateInfoBuilder" +import { archive, tar } from "./archive.js.js" +import { appendBlockmap, createBlockmap } from "./differentialUpdateInfoBuilder.js.js" export class ArchiveTarget extends Target { readonly options: TargetSpecificOptions = (this.packager.config as any)[this.name] diff --git a/packages/app-builder-lib/src/targets/FlatpakTarget.ts b/packages/app-builder-lib/src/targets/FlatpakTarget.ts index c19013873f2..33d938fd2ae 100644 --- a/packages/app-builder-lib/src/targets/FlatpakTarget.ts +++ b/packages/app-builder-lib/src/targets/FlatpakTarget.ts @@ -6,8 +6,8 @@ import { Target } from "../core" import { LinuxPackager } from "../linuxPackager" import { FlatpakOptions } from "../options/linuxOptions" import { getNotLocalizedLicenseFile } from "../util/license" -import { LinuxTargetHelper } from "./LinuxTargetHelper" -import { createStageDir, StageDir } from "./targetUtil" +import { LinuxTargetHelper } from "./LinuxTargetHelper.js.js" +import { createStageDir, StageDir } from "./targetUtil.js.js" export default class FlatpakTarget extends Target { readonly options: FlatpakOptions = { diff --git a/packages/app-builder-lib/src/targets/FpmTarget.ts b/packages/app-builder-lib/src/targets/FpmTarget.ts index 87e6235e9b3..502e364427f 100644 --- a/packages/app-builder-lib/src/targets/FpmTarget.ts +++ b/packages/app-builder-lib/src/targets/FpmTarget.ts @@ -15,8 +15,8 @@ import { computeEnv } from "../util/bundledTool" import { hashFile } from "../util/hash" import { isMacOsSierra } from "../util/macosVersion" import { getTemplatePath } from "../util/pathManager" -import { installPrefix, LinuxTargetHelper } from "./LinuxTargetHelper" -import { getFpmPath, getLinuxToolsPath } from "./tools" +import { installPrefix, LinuxTargetHelper } from "./LinuxTargetHelper.js.js" +import { getFpmPath, getLinuxToolsPath } from "./tools.js.js" interface FpmOptions { name: string diff --git a/packages/app-builder-lib/src/targets/MsiTarget.ts b/packages/app-builder-lib/src/targets/MsiTarget.ts index cc323a020f2..e172dbc91da 100644 --- a/packages/app-builder-lib/src/targets/MsiTarget.ts +++ b/packages/app-builder-lib/src/targets/MsiTarget.ts @@ -14,7 +14,7 @@ import { getTemplatePath } from "../util/pathManager" import { VmManager } from "../vm/vm" import { WineVmManager } from "../vm/WineVm" import { WinPackager } from "../winPackager" -import { createStageDir, getWindowsInstallationDirName } from "./targetUtil" +import { createStageDir, getWindowsInstallationDirName } from "./targetUtil.js.js" const ELECTRON_BUILDER_UPGRADE_CODE_NS_UUID = UUID.parse("d752fe43-5d44-44d5-9fc9-6dd1bf19d5cc") const ROOT_DIR_ID = "APPLICATIONFOLDER" diff --git a/packages/app-builder-lib/src/targets/MsiWrappedTarget.ts b/packages/app-builder-lib/src/targets/MsiWrappedTarget.ts index fa69fb343f7..c59a03fa101 100644 --- a/packages/app-builder-lib/src/targets/MsiWrappedTarget.ts +++ b/packages/app-builder-lib/src/targets/MsiWrappedTarget.ts @@ -5,7 +5,7 @@ import { MsiWrappedOptions } from "../" import { TargetConfiguration } from "../core" import { FinalCommonWindowsInstallerOptions } from "../options/CommonWindowsInstallerConfiguration" import { WinPackager } from "../winPackager" -import MsiTarget from "./MsiTarget" +import MsiTarget from "./MsiTarget.js.js" const ELECTRON_MSI_WRAPPED_NS_UUID = UUID.parse("467f7bb2-a83c-442f-b776-394d316e8e53") diff --git a/packages/app-builder-lib/src/targets/archive.ts b/packages/app-builder-lib/src/targets/archive.ts index be66e4c5e63..b4883fb7f72 100644 --- a/packages/app-builder-lib/src/targets/archive.ts +++ b/packages/app-builder-lib/src/targets/archive.ts @@ -4,7 +4,7 @@ import * as path from "path" import { create, CreateOptions, FileOptions } from "tar" import { TmpDir } from "temp-file" import { CompressionLevel } from "../core" -import { getLinuxToolsPath } from "./tools" +import { getLinuxToolsPath } from "./tools.js.js" /** @internal */ export async function tar(compression: CompressionLevel | any, format: string, outFile: string, dirToArchive: string, isMacApp: boolean, tempDirManager: TmpDir): Promise { diff --git a/packages/app-builder-lib/src/targets/differentialUpdateInfoBuilder.ts b/packages/app-builder-lib/src/targets/differentialUpdateInfoBuilder.ts index b5c71541367..71869cf1f0b 100644 --- a/packages/app-builder-lib/src/targets/differentialUpdateInfoBuilder.ts +++ b/packages/app-builder-lib/src/targets/differentialUpdateInfoBuilder.ts @@ -4,7 +4,7 @@ import * as path from "path" import { Target } from "../core" import { PlatformPackager } from "../platformPackager" import { executeAppBuilderAsJson } from "../util/appBuilder" -import { ArchiveOptions } from "./archive" +import { ArchiveOptions } from "./archive.js.js" export const BLOCK_MAP_FILE_SUFFIX = ".blockmap" diff --git a/packages/app-builder-lib/src/targets/nsis/Defines.ts b/packages/app-builder-lib/src/targets/nsis/Defines.ts index 912f07993f7..aa5e8052d85 100644 --- a/packages/app-builder-lib/src/targets/nsis/Defines.ts +++ b/packages/app-builder-lib/src/targets/nsis/Defines.ts @@ -1,4 +1,4 @@ -import { PortableOptions } from "./nsisOptions" +import { PortableOptions } from "./nsisOptions.js.js" /** * Parameters declared as environment variables in NSIS scripts. * The documentation vaguely explains "All other electron-builder specific flags (e.g. ONE_CLICK) are still defined." diff --git a/packages/app-builder-lib/src/targets/nsis/NsisTarget.ts b/packages/app-builder-lib/src/targets/nsis/NsisTarget.ts index d95633edaf2..d0358d8355f 100644 --- a/packages/app-builder-lib/src/targets/nsis/NsisTarget.ts +++ b/packages/app-builder-lib/src/targets/nsis/NsisTarget.ts @@ -31,13 +31,13 @@ import { WinPackager } from "../../winPackager" import { archive, ArchiveOptions } from "../archive" import { appendBlockmap, configureDifferentialAwareArchiveOptions, createBlockmap, createNsisWebDifferentialUpdateInfo } from "../differentialUpdateInfoBuilder" import { getWindowsInstallationAppPackageName, getWindowsInstallationDirName } from "../targetUtil" -import { Commands } from "./Commands" -import { Defines } from "./Defines" -import { addCustomMessageFileInclude, createAddLangsMacro, LangConfigurator } from "./nsisLang" -import { computeLicensePage } from "./nsisLicense" -import { NsisOptions, PortableOptions } from "./nsisOptions" -import { NsisScriptGenerator } from "./nsisScriptGenerator" -import { AppPackageHelper, NSIS_PATH, NSIS_RESOURCES_PATH, NsisTargetOptions, nsisTemplatesDir, UninstallerReader } from "./nsisUtil" +import { Commands } from "./Commands.js.js" +import { Defines } from "./Defines.js.js" +import { addCustomMessageFileInclude, createAddLangsMacro, LangConfigurator } from "./nsisLang.js.js" +import { computeLicensePage } from "./nsisLicense.js.js" +import { NsisOptions, PortableOptions } from "./nsisOptions.js.js" +import { NsisScriptGenerator } from "./nsisScriptGenerator.js.js" +import { AppPackageHelper, NSIS_PATH, NSIS_RESOURCES_PATH, NsisTargetOptions, nsisTemplatesDir, UninstallerReader } from "./nsisUtil.js.js" const debug = _debug("electron-builder:nsis") diff --git a/packages/app-builder-lib/src/targets/nsis/WebInstallerTarget.ts b/packages/app-builder-lib/src/targets/nsis/WebInstallerTarget.ts index cad495bdc36..de96916cd1b 100644 --- a/packages/app-builder-lib/src/targets/nsis/WebInstallerTarget.ts +++ b/packages/app-builder-lib/src/targets/nsis/WebInstallerTarget.ts @@ -1,9 +1,9 @@ import { Arch, log } from "builder-util" import { computeDownloadUrl, getPublishConfigs, getPublishConfigsForUpdateInfo } from "../../publish/PublishManager" import { WinPackager } from "../../winPackager" -import { NsisWebOptions } from "./nsisOptions" -import { NsisTarget } from "./NsisTarget" -import { AppPackageHelper } from "./nsisUtil" +import { NsisWebOptions } from "./nsisOptions.js.js" +import { NsisTarget } from "./NsisTarget.js.js" +import { AppPackageHelper } from "./nsisUtil.js.js" /** @private */ export class WebInstallerTarget extends NsisTarget { diff --git a/packages/app-builder-lib/src/targets/nsis/nsisLang.ts b/packages/app-builder-lib/src/targets/nsis/nsisLang.ts index c93779eb350..778fb6f67c8 100644 --- a/packages/app-builder-lib/src/targets/nsis/nsisLang.ts +++ b/packages/app-builder-lib/src/targets/nsis/nsisLang.ts @@ -5,9 +5,9 @@ import { load } from "js-yaml" import * as path from "path" import { PlatformPackager } from "../../platformPackager" import { bundledLanguages, langIdToName, lcid, toLangWithRegion } from "../../util/langs" -import { NsisOptions } from "./nsisOptions" -import { NsisScriptGenerator } from "./nsisScriptGenerator" -import { nsisTemplatesDir } from "./nsisUtil" +import { NsisOptions } from "./nsisOptions.js.js" +import { NsisScriptGenerator } from "./nsisScriptGenerator.js.js" +import { nsisTemplatesDir } from "./nsisUtil.js.js" const debug = _debug("electron-builder:nsis") diff --git a/packages/app-builder-lib/src/targets/nsis/nsisLicense.ts b/packages/app-builder-lib/src/targets/nsis/nsisLicense.ts index a5cfaf799cd..b08ebe1d1be 100644 --- a/packages/app-builder-lib/src/targets/nsis/nsisLicense.ts +++ b/packages/app-builder-lib/src/targets/nsis/nsisLicense.ts @@ -4,9 +4,9 @@ import * as path from "path" import { lcid } from "../../util/langs" import { getLicenseFiles, getNotLocalizedLicenseFile } from "../../util/license" import { WinPackager } from "../../winPackager" -import { NsisOptions } from "./nsisOptions" -import { NsisScriptGenerator } from "./nsisScriptGenerator" -import { nsisTemplatesDir } from "./nsisUtil" +import { NsisOptions } from "./nsisOptions.js.js" +import { NsisScriptGenerator } from "./nsisScriptGenerator.js.js" +import { nsisTemplatesDir } from "./nsisUtil.js.js" function convertFileToUtf8WithBOMSync(filePath: string): boolean { try { diff --git a/packages/app-builder-lib/src/targets/nsis/nsisUtil.ts b/packages/app-builder-lib/src/targets/nsis/nsisUtil.ts index c0efb72cd61..61f9e4f8f26 100644 --- a/packages/app-builder-lib/src/targets/nsis/nsisUtil.ts +++ b/packages/app-builder-lib/src/targets/nsis/nsisUtil.ts @@ -5,8 +5,8 @@ import * as path from "path" import * as zlib from "zlib" import { getBinFromCustomLoc, getBinFromUrl } from "../../binDownload" import { getTemplatePath } from "../../util/pathManager" -import { NsisOptions } from "./nsisOptions" -import { NsisTarget } from "./NsisTarget" +import { NsisOptions } from "./nsisOptions.js.js" +import { NsisTarget } from "./NsisTarget.js.js" export const nsisTemplatesDir = getTemplatePath("nsis") diff --git a/packages/app-builder-lib/src/targets/snap.ts b/packages/app-builder-lib/src/targets/snap.ts index 6dfc35a1552..3e279e725d3 100644 --- a/packages/app-builder-lib/src/targets/snap.ts +++ b/packages/app-builder-lib/src/targets/snap.ts @@ -9,8 +9,8 @@ import { Publish, Target } from "../core" import { LinuxPackager } from "../linuxPackager" import { PlugDescriptor, SnapOptions } from "../options/SnapOptions" import { getTemplatePath } from "../util/pathManager" -import { LinuxTargetHelper } from "./LinuxTargetHelper" -import { createStageDirPath } from "./targetUtil" +import { LinuxTargetHelper } from "./LinuxTargetHelper.js.js" +import { createStageDirPath } from "./targetUtil.js.js" const defaultPlugs = ["desktop", "desktop-legacy", "home", "x11", "wayland", "unity7", "browser-support", "network", "gsettings", "audio-playback", "pulseaudio", "opengl"] diff --git a/packages/app-builder-lib/src/targets/targetFactory.ts b/packages/app-builder-lib/src/targets/targetFactory.ts index 744d13a1f3a..baa61c53e12 100644 --- a/packages/app-builder-lib/src/targets/targetFactory.ts +++ b/packages/app-builder-lib/src/targets/targetFactory.ts @@ -1,7 +1,7 @@ import { addValue, Arch, archFromString, ArchType, asArray } from "builder-util" import { DEFAULT_TARGET, DIR_TARGET, Platform, Target, TargetConfiguration } from "../core" import { PlatformPackager } from "../platformPackager" -import { ArchiveTarget } from "./ArchiveTarget" +import { ArchiveTarget } from "./ArchiveTarget.js.js" const archiveTargets = new Set(["zip", "7z", "tar.xz", "tar.lz", "tar.gz", "tar.bz2"]) diff --git a/packages/app-builder-lib/src/util/NodeModuleCopyHelper.ts b/packages/app-builder-lib/src/util/NodeModuleCopyHelper.ts index 2d1b8333a5b..63c19a3f9f9 100644 --- a/packages/app-builder-lib/src/util/NodeModuleCopyHelper.ts +++ b/packages/app-builder-lib/src/util/NodeModuleCopyHelper.ts @@ -5,9 +5,9 @@ import * as path from "path" import asyncPool from "tiny-async-pool" import { excludedNames, FileMatcher } from "../fileMatcher" import { Packager } from "../packager" -import { FileCopyHelper } from "./AppFileWalker" -import { NodeModuleInfo } from "./packageDependencies" -import { resolveFunction } from "./resolve" +import { FileCopyHelper } from "./AppFileWalker.js.js" +import { NodeModuleInfo } from "./packageDependencies.js.js" +import { resolveFunction } from "./resolve.js.js" const excludedFiles = new Set( [ diff --git a/packages/app-builder-lib/src/util/appFileCopier.ts b/packages/app-builder-lib/src/util/appFileCopier.ts index d0fc6d3a996..87707e63e7b 100644 --- a/packages/app-builder-lib/src/util/appFileCopier.ts +++ b/packages/app-builder-lib/src/util/appFileCopier.ts @@ -10,9 +10,9 @@ import { excludedExts, FileMatcher } from "../fileMatcher" import { createElectronCompilerHost, NODE_MODULES_PATTERN } from "../fileTransformer" import { Packager } from "../packager" import { PlatformPackager } from "../platformPackager" -import { AppFileWalker } from "./AppFileWalker" -import { NodeModuleCopyHelper } from "./NodeModuleCopyHelper" -import { NodeModuleInfo } from "./packageDependencies" +import { AppFileWalker } from "./AppFileWalker.js.js" +import { NodeModuleCopyHelper } from "./NodeModuleCopyHelper.js.js" +import { NodeModuleInfo } from "./packageDependencies.js.js" import { getNodeModules } from "../node-module-collector" const BOWER_COMPONENTS_PATTERN = `${path.sep}bower_components${path.sep}` diff --git a/packages/app-builder-lib/src/util/config/config.ts b/packages/app-builder-lib/src/util/config/config.ts index 4bcefb9b9c3..9b908189e89 100644 --- a/packages/app-builder-lib/src/util/config/config.ts +++ b/packages/app-builder-lib/src/util/config/config.ts @@ -7,7 +7,7 @@ import { Configuration } from "../../configuration" import { FileSet } from "../../options/PlatformSpecificBuildOptions" import { reactCra } from "../../presets/rectCra" import { PACKAGE_VERSION } from "../../version" -import { getConfig as _getConfig, loadParentConfig, orNullIfFileNotExist, ReadConfigRequest } from "./load" +import { getConfig as _getConfig, loadParentConfig, orNullIfFileNotExist, ReadConfigRequest } from "./load.js.js" const validateSchema = require("@develar/schema-utils") // https://github.com/electron-userland/electron-builder/issues/1847 diff --git a/packages/app-builder-lib/src/util/license.ts b/packages/app-builder-lib/src/util/license.ts index 7b9f06eeee6..835320830a3 100644 --- a/packages/app-builder-lib/src/util/license.ts +++ b/packages/app-builder-lib/src/util/license.ts @@ -1,7 +1,7 @@ import { Nullish } from "builder-util-runtime" import * as path from "path" import { PlatformPackager } from "../platformPackager" -import { langIdToName, toLangWithRegion } from "./langs" +import { langIdToName, toLangWithRegion } from "./langs.js.js" export function getLicenseAssets(fileNames: Array, packager: PlatformPackager) { return fileNames diff --git a/packages/app-builder-lib/src/util/packageDependencies.ts b/packages/app-builder-lib/src/util/packageDependencies.ts index 86e11442a57..25990054904 100644 --- a/packages/app-builder-lib/src/util/packageDependencies.ts +++ b/packages/app-builder-lib/src/util/packageDependencies.ts @@ -1,5 +1,5 @@ import { Lazy } from "lazy-val" -import { executeAppBuilderAsJson } from "./appBuilder" +import { executeAppBuilderAsJson } from "./appBuilder.js.js" export function createLazyProductionDeps(projectDir: string, excludedDependencies: Array | null, flatten: T) { return new Lazy(async () => { diff --git a/packages/app-builder-lib/src/util/packageMetadata.ts b/packages/app-builder-lib/src/util/packageMetadata.ts index 7379225ac75..7d0ea1dcc34 100644 --- a/packages/app-builder-lib/src/util/packageMetadata.ts +++ b/packages/app-builder-lib/src/util/packageMetadata.ts @@ -4,7 +4,7 @@ import { readFile, readJson, readJsonSync } from "fs-extra" import * as path from "path" import * as semver from "semver" import { Metadata } from "../options/metadata" -import { normalizePackageData } from "./normalizePackageData" +import { normalizePackageData } from "./normalizePackageData.js.js" /** @internal */ export async function readPackageJson(file: string): Promise { diff --git a/packages/app-builder-lib/src/util/yarn.ts b/packages/app-builder-lib/src/util/yarn.ts index a4b004cff4e..0113e7f9ea1 100644 --- a/packages/app-builder-lib/src/util/yarn.ts +++ b/packages/app-builder-lib/src/util/yarn.ts @@ -4,11 +4,11 @@ import { Lazy } from "lazy-val" import { homedir } from "os" import * as path from "path" import { Configuration } from "../configuration" -import { executeAppBuilderAndWriteJson } from "./appBuilder" +import { executeAppBuilderAndWriteJson } from "./appBuilder.js.js" import { PM, getPackageManagerCommand } from "../node-module-collector" import { detectPackageManager } from "../node-module-collector/packageManager" -import { NodeModuleDirInfo } from "./packageDependencies" -import { rebuild as remoteRebuild } from "./rebuild" +import { NodeModuleDirInfo } from "./packageDependencies.js.js" +import { rebuild as remoteRebuild } from "./rebuild.js.js" import * as which from "which" import { RebuildOptions as ElectronRebuildOptions } from "@electron/rebuild" import { Nullish } from "builder-util-runtime" diff --git a/packages/app-builder-lib/src/vm/MonoVm.ts b/packages/app-builder-lib/src/vm/MonoVm.ts index fc97d8361fb..8cfb85be537 100644 --- a/packages/app-builder-lib/src/vm/MonoVm.ts +++ b/packages/app-builder-lib/src/vm/MonoVm.ts @@ -1,6 +1,6 @@ import { exec, ExtraSpawnOptions, spawn } from "builder-util" import { ExecFileOptions, SpawnOptions } from "child_process" -import { VmManager } from "./vm" +import { VmManager } from "./vm.js.js" export class MonoVmManager extends VmManager { constructor() { diff --git a/packages/app-builder-lib/src/vm/ParallelsVm.ts b/packages/app-builder-lib/src/vm/ParallelsVm.ts index 58c25190221..7179b40e06f 100644 --- a/packages/app-builder-lib/src/vm/ParallelsVm.ts +++ b/packages/app-builder-lib/src/vm/ParallelsVm.ts @@ -1,6 +1,6 @@ import { DebugLogger, ExtraSpawnOptions, exec, log, spawn } from "builder-util" import { ExecFileOptions, SpawnOptions, execFileSync } from "child_process" -import { VmManager } from "./vm" +import { VmManager } from "./vm.js.js" /** @internal */ export async function parseVmList(debugLogger: DebugLogger) { diff --git a/packages/app-builder-lib/src/vm/PwshVm.ts b/packages/app-builder-lib/src/vm/PwshVm.ts index 17a73e774ed..97545aba757 100644 --- a/packages/app-builder-lib/src/vm/PwshVm.ts +++ b/packages/app-builder-lib/src/vm/PwshVm.ts @@ -1,6 +1,6 @@ import { log } from "builder-util" import { Lazy } from "lazy-val" -import { isPwshAvailable, VmManager } from "./vm" +import { isPwshAvailable, VmManager } from "./vm.js.js" export class PwshVmManager extends VmManager { constructor() { diff --git a/packages/app-builder-lib/src/vm/WineVm.ts b/packages/app-builder-lib/src/vm/WineVm.ts index 2158ba865bd..6425964063f 100644 --- a/packages/app-builder-lib/src/vm/WineVm.ts +++ b/packages/app-builder-lib/src/vm/WineVm.ts @@ -2,7 +2,7 @@ import { ExtraSpawnOptions } from "builder-util" import { ExecFileOptions, SpawnOptions } from "child_process" import * as path from "path" import { execWine } from "../wine" -import { VmManager } from "./vm" +import { VmManager } from "./vm.js.js" export class WineVmManager extends VmManager { constructor() { diff --git a/packages/app-builder-lib/src/vm/vm.ts b/packages/app-builder-lib/src/vm/vm.ts index fd59430fa4a..3813863b886 100644 --- a/packages/app-builder-lib/src/vm/vm.ts +++ b/packages/app-builder-lib/src/vm/vm.ts @@ -2,7 +2,7 @@ import { DebugLogger, exec, ExtraSpawnOptions, InvalidConfigurationError, log, s import { ExecFileOptions, SpawnOptions } from "child_process" import { Lazy } from "lazy-val" import * as path from "path" -import { ParallelsVm } from "./ParallelsVm" +import { ParallelsVm } from "./ParallelsVm.js.js" export class VmManager { get pathSep(): string { return path.sep diff --git a/packages/app-builder-lib/src/winPackager.ts b/packages/app-builder-lib/src/winPackager.ts index 66932c00433..941bc6c68fc 100644 --- a/packages/app-builder-lib/src/winPackager.ts +++ b/packages/app-builder-lib/src/winPackager.ts @@ -5,27 +5,27 @@ import { readdir } from "fs/promises" import { isCI } from "ci-info" import { Lazy } from "lazy-val" import * as path from "path" -import { SignManager } from "./codeSign/signManager" -import { signWindows, WindowsSignOptions } from "./codeSign/windowsCodeSign" -import { WindowsSignAzureManager } from "./codeSign/windowsSignAzureManager" -import { FileCodeSigningInfo, getSignVendorPath, WindowsSignToolManager } from "./codeSign/windowsSignToolManager" -import { AfterPackContext } from "./configuration" -import { DIR_TARGET, Platform, Target } from "./core" -import { RequestedExecutionLevel, WindowsConfiguration } from "./options/winOptions" -import { Packager } from "./packager" -import { chooseNotNull, PlatformPackager } from "./platformPackager" -import AppXTarget from "./targets/AppxTarget" -import MsiTarget from "./targets/MsiTarget" -import MsiWrappedTarget from "./targets/MsiWrappedTarget" -import { NsisTarget } from "./targets/nsis/NsisTarget" -import { AppPackageHelper, CopyElevateHelper } from "./targets/nsis/nsisUtil" -import { WebInstallerTarget } from "./targets/nsis/WebInstallerTarget" -import { createCommonTarget } from "./targets/targetFactory" -import { BuildCacheManager, digest } from "./util/cacheManager" -import { isBuildCacheEnabled } from "./util/flags" -import { time } from "./util/timer" -import { getWindowsVm, VmManager } from "./vm/vm" -import { execWine } from "./wine" +import { SignManager } from "./codeSign/signManager.js.js" +import { signWindows, WindowsSignOptions } from "./codeSign/windowsCodeSign.js.js" +import { WindowsSignAzureManager } from "./codeSign/windowsSignAzureManager.js.js" +import { FileCodeSigningInfo, getSignVendorPath, WindowsSignToolManager } from "./codeSign/windowsSignToolManager.js.js" +import { AfterPackContext } from "./configuration.js.js" +import { DIR_TARGET, Platform, Target } from "./core.js.js" +import { RequestedExecutionLevel, WindowsConfiguration } from "./options/winOptions.js.js" +import { Packager } from "./packager.js.js" +import { chooseNotNull, PlatformPackager } from "./platformPackager.js.js" +import AppXTarget from "./targets/AppxTarget.js.js" +import MsiTarget from "./targets/MsiTarget.js.js" +import MsiWrappedTarget from "./targets/MsiWrappedTarget.js.js" +import { NsisTarget } from "./targets/nsis/NsisTarget.js.js" +import { AppPackageHelper, CopyElevateHelper } from "./targets/nsis/nsisUtil.js.js" +import { WebInstallerTarget } from "./targets/nsis/WebInstallerTarget.js.js" +import { createCommonTarget } from "./targets/targetFactory.js.js" +import { BuildCacheManager, digest } from "./util/cacheManager.js.js" +import { isBuildCacheEnabled } from "./util/flags.js.js" +import { time } from "./util/timer.js.js" +import { getWindowsVm, VmManager } from "./vm/vm.js.js" +import { execWine } from "./wine.js.js" export class WinPackager extends PlatformPackager { _iconPath = new Lazy(() => this.getOrConvertIcon("ico")) diff --git a/packages/builder-util-runtime/package.json b/packages/builder-util-runtime/package.json index d9373986996..971acbdeeaf 100644 --- a/packages/builder-util-runtime/package.json +++ b/packages/builder-util-runtime/package.json @@ -1,7 +1,8 @@ { "name": "builder-util-runtime", "version": "9.5.1", - "main": "out/index.js", + "type": "module", + "exports": "./out/index.js", "author": "Vladimir Krivosheev", "license": "MIT", "repository": { diff --git a/packages/builder-util-runtime/src/ProgressCallbackTransform.ts b/packages/builder-util-runtime/src/ProgressCallbackTransform.ts index 39fd25ea75a..1e9e8562232 100644 --- a/packages/builder-util-runtime/src/ProgressCallbackTransform.ts +++ b/packages/builder-util-runtime/src/ProgressCallbackTransform.ts @@ -1,5 +1,5 @@ import { Transform } from "stream" -import { CancellationToken } from "./CancellationToken" +import { CancellationToken } from "./CancellationToken.js" export interface ProgressInfo { total: number diff --git a/packages/builder-util-runtime/src/httpExecutor.ts b/packages/builder-util-runtime/src/httpExecutor.ts index 3502ac33351..9d8aa574d15 100644 --- a/packages/builder-util-runtime/src/httpExecutor.ts +++ b/packages/builder-util-runtime/src/httpExecutor.ts @@ -5,10 +5,10 @@ import { IncomingMessage, OutgoingHttpHeader, OutgoingHttpHeaders, RequestOption import { Socket } from "net" import { Transform } from "stream" import { URL } from "url" -import { Nullish } from "." -import { CancellationToken } from "./CancellationToken" -import { newError } from "./error" -import { ProgressCallbackTransform, ProgressInfo } from "./ProgressCallbackTransform" +import { Nullish } from "./index.js.js.js" +import { CancellationToken } from "./CancellationToken.js.js.js" +import { newError } from "./error.js.js.js" +import { ProgressCallbackTransform, ProgressInfo } from "./ProgressCallbackTransform.js.js.js" const debug = _debug("electron-builder") diff --git a/packages/builder-util-runtime/src/retry.ts b/packages/builder-util-runtime/src/retry.ts index d55dc5fa986..dee771a9e3a 100644 --- a/packages/builder-util-runtime/src/retry.ts +++ b/packages/builder-util-runtime/src/retry.ts @@ -1,4 +1,4 @@ -import { CancellationToken } from "./CancellationToken" +import { CancellationToken } from "./CancellationToken.js.js" export async function retry( task: () => Promise, diff --git a/packages/builder-util-runtime/src/uuid.ts b/packages/builder-util-runtime/src/uuid.ts index 74d5f6f1ca2..cab21137910 100644 --- a/packages/builder-util-runtime/src/uuid.ts +++ b/packages/builder-util-runtime/src/uuid.ts @@ -1,5 +1,5 @@ import { createHash, randomBytes } from "crypto" -import { newError } from "./error" +import { newError } from "./error.js.js" const invalidName = "options.name must be either a string or a Buffer" diff --git a/packages/builder-util-runtime/src/xml.ts b/packages/builder-util-runtime/src/xml.ts index d172124e0f4..ea53572a7c5 100644 --- a/packages/builder-util-runtime/src/xml.ts +++ b/packages/builder-util-runtime/src/xml.ts @@ -1,5 +1,5 @@ import * as sax from "sax" -import { newError } from "./error" +import { newError } from "./error.js.js" export class XElement { value = "" diff --git a/packages/builder-util/src/DebugLogger.ts b/packages/builder-util/src/DebugLogger.ts index 52517934f76..e39e0c2cf61 100644 --- a/packages/builder-util/src/DebugLogger.ts +++ b/packages/builder-util/src/DebugLogger.ts @@ -1,6 +1,6 @@ import { outputFile } from "fs-extra" -import { serializeToYaml } from "./util" -import { mapToObject } from "./mapper" +import { serializeToYaml } from "./util.js.js" +import { mapToObject } from "./mapper.js.js" export class DebugLogger { readonly data = new Map() diff --git a/packages/builder-util/src/asyncTaskManager.ts b/packages/builder-util/src/asyncTaskManager.ts index f27ca28b8d7..7a74e4002fe 100644 --- a/packages/builder-util/src/asyncTaskManager.ts +++ b/packages/builder-util/src/asyncTaskManager.ts @@ -1,6 +1,6 @@ import { CancellationToken } from "builder-util-runtime" -import { log } from "./log" -import { NestedError } from "./promise" +import { log } from "./log.js.js" +import { NestedError } from "./promise.js.js" export class AsyncTaskManager { readonly tasks: Array> = [] diff --git a/packages/builder-util/src/deepAssign.ts b/packages/builder-util/src/deepAssign.ts index 478b1842043..e3c5fce2d99 100644 --- a/packages/builder-util/src/deepAssign.ts +++ b/packages/builder-util/src/deepAssign.ts @@ -1,4 +1,4 @@ -import { isValidKey } from "./mapper" +import { isValidKey } from "./mapper.js.js" function isObject(x: any) { if (Array.isArray(x)) { diff --git a/packages/builder-util/src/fs.ts b/packages/builder-util/src/fs.ts index 40c4498fe2f..9d44e0f4eeb 100644 --- a/packages/builder-util/src/fs.ts +++ b/packages/builder-util/src/fs.ts @@ -6,8 +6,8 @@ import { platform } from "os" import * as path from "path" import { Mode } from "stat-mode" import asyncPool from "tiny-async-pool" -import { log } from "./log" -import { orIfFileNotExist, orNullIfFileNotExist } from "./promise" +import { log } from "./log.js.js" +import { orIfFileNotExist, orNullIfFileNotExist } from "./promise.js.js" export const MAX_FILE_REQUESTS = 8 diff --git a/packages/builder-util/src/util.ts b/packages/builder-util/src/util.ts index 360631a4266..bbd571c80cf 100644 --- a/packages/builder-util/src/util.ts +++ b/packages/builder-util/src/util.ts @@ -8,8 +8,8 @@ import _debug from "debug" import { dump } from "js-yaml" import * as path from "path" import { install as installSourceMap } from "source-map-support" -import { getPath7za } from "./7za" -import { debug, log } from "./log" +import { getPath7za } from "./7za.js.js" +import { debug, log } from "./log.js.js" if (process.env.JEST_WORKER_ID == null) { installSourceMap() diff --git a/packages/dmg-builder/package.json b/packages/dmg-builder/package.json index f530ccbd5af..3cca82a6cf6 100644 --- a/packages/dmg-builder/package.json +++ b/packages/dmg-builder/package.json @@ -1,7 +1,8 @@ { "name": "dmg-builder", "version": "26.3.5", - "main": "out/dmgUtil.js", + "type": "module", + "exports": "./out/dmgUtil.js", "author": "Vladimir Krivosheev", "license": "MIT", "repository": { diff --git a/packages/dmg-builder/src/dmg.ts b/packages/dmg-builder/src/dmg.ts index 29c004e66f5..ccb4ac55ee3 100644 --- a/packages/dmg-builder/src/dmg.ts +++ b/packages/dmg-builder/src/dmg.ts @@ -6,9 +6,9 @@ import { Arch, exec, getArchSuffix, InvalidConfigurationError, isEmptyOrSpaces } import { sanitizeFileName } from "builder-util/out/filename" import { release as getOsRelease } from "os" import * as path from "path" -import { addLicenseToDmg } from "./dmgLicense" -import { computeBackground, customizeDmg } from "./dmgUtil" -import { hdiUtil } from "./hdiuil" +import { addLicenseToDmg } from "./dmgLicense.js.js" +import { computeBackground, customizeDmg } from "./dmgUtil.js.js" +import { hdiUtil } from "./hdiuil.js.js" export interface DmgBuildConfig { title: string diff --git a/packages/dmg-builder/src/dmgLicense.ts b/packages/dmg-builder/src/dmgLicense.ts index 22f99542a73..b9589811015 100644 --- a/packages/dmg-builder/src/dmgLicense.ts +++ b/packages/dmg-builder/src/dmgLicense.ts @@ -4,7 +4,7 @@ import { log } from "builder-util" import { dmgLicenseFromJSON } from "dmg-license" import { readFile, readJson } from "fs-extra" import { load } from "js-yaml" -import { getLicenseButtonsFile } from "./licenseButtons" +import { getLicenseButtonsFile } from "./licenseButtons.js.js" // License Specifications // https://github.com/argv-minus-one/dmg-license/blob/HEAD/docs/License%20Specifications.md diff --git a/packages/dmg-builder/src/dmgUtil.ts b/packages/dmg-builder/src/dmgUtil.ts index add70ea24d4..691e25323c4 100644 --- a/packages/dmg-builder/src/dmgUtil.ts +++ b/packages/dmg-builder/src/dmgUtil.ts @@ -1,9 +1,9 @@ import { DmgOptions, MacPackager, PlatformPackager } from "app-builder-lib" import { exec, executeFinally, exists, isEmptyOrSpaces, TmpDir } from "builder-util" import * as path from "path" -import { hdiUtil, hdiutilTransientExitCodes } from "./hdiuil" +import { hdiUtil, hdiutilTransientExitCodes } from "./hdiuil.js.js" import { writeFile } from "fs-extra" -import { DmgBuildConfig } from "./dmg" +import { DmgBuildConfig } from "./dmg.js.js" export { DmgTarget } from "./dmg" diff --git a/packages/dmg-builder/src/hdiuil.ts b/packages/dmg-builder/src/hdiuil.ts index 2df92c9eb39..31bf7e36dd6 100644 --- a/packages/dmg-builder/src/hdiuil.ts +++ b/packages/dmg-builder/src/hdiuil.ts @@ -52,7 +52,7 @@ const shouldRetry = (args: string[]) => (error: any) => { } export async function hdiUtil(args: string[]): Promise { - return retry(() => exec("hdiutil", args), { + return await retry(() => exec("hdiutil", args), { retries: 5, interval: 5000, backoff: 2000, diff --git a/packages/dmg-builder/src/licenseButtons.ts b/packages/dmg-builder/src/licenseButtons.ts index aac1ae12c58..e26a07d2193 100644 --- a/packages/dmg-builder/src/licenseButtons.ts +++ b/packages/dmg-builder/src/licenseButtons.ts @@ -4,8 +4,8 @@ import { log } from "builder-util" import { readFile } from "fs-extra" import * as iconv from "iconv-lite" import { load } from "js-yaml" -import { serializeString } from "./dmgUtil" -import { getDefaultButtons } from "./licenseDefaultButtons" +import { serializeString } from "./dmgUtil.js.js" +import { getDefaultButtons } from "./licenseDefaultButtons.js.js" export async function getLicenseButtonsFile(packager: PlatformPackager): Promise> { return getLicenseAssets( diff --git a/packages/electron-builder-squirrel-windows/package.json b/packages/electron-builder-squirrel-windows/package.json index c3025e7f22e..dd9e4acd7aa 100644 --- a/packages/electron-builder-squirrel-windows/package.json +++ b/packages/electron-builder-squirrel-windows/package.json @@ -1,7 +1,8 @@ { "name": "electron-builder-squirrel-windows", "version": "26.3.5", - "main": "out/SquirrelWindowsTarget.js", + "type": "module", + "exports": "./out/SquirrelWindowsTarget.js", "author": "Vladimir Krivosheev", "license": "MIT", "repository": { diff --git a/packages/electron-builder/package.json b/packages/electron-builder/package.json index efc5a566d8b..cd0e52bbd46 100644 --- a/packages/electron-builder/package.json +++ b/packages/electron-builder/package.json @@ -2,7 +2,8 @@ "name": "electron-builder", "description": "A complete solution to package and build a ready for distribution Electron app for MacOS, Windows and Linux with “auto update” support out of the box", "version": "26.3.5", - "main": "out/index.js", + "type": "module", + "exports": "./out/index.js", "files": [ "out" ], diff --git a/packages/electron-builder/src/cli/cli.ts b/packages/electron-builder/src/cli/cli.ts index 114b9df2380..315e98fadc8 100644 --- a/packages/electron-builder/src/cli/cli.ts +++ b/packages/electron-builder/src/cli/cli.ts @@ -10,9 +10,9 @@ import { isCI } from "ci-info" import * as path from "path" import { build, configureBuildCommand, createYargs } from "../builder" import { configurePublishCommand, publish } from "../publish" -import { createSelfSignedCert } from "./create-self-signed-cert" -import { configureInstallAppDepsCommand, installAppDeps } from "./install-app-deps" -import { start } from "./start" +import { createSelfSignedCert } from "./create-self-signed-cert.js.js" +import { configureInstallAppDepsCommand, installAppDeps } from "./install-app-deps.js.js" +import { start } from "./start.js.js" // tslint:disable:no-unused-expression void createYargs() diff --git a/packages/electron-builder/src/publish.ts b/packages/electron-builder/src/publish.ts index 626ed6247be..bfea0dee611 100644 --- a/packages/electron-builder/src/publish.ts +++ b/packages/electron-builder/src/publish.ts @@ -9,7 +9,7 @@ import { PublishPolicy } from "electron-publish" import * as chalk from "chalk" import * as path from "path" import * as yargs from "yargs" -import { BuildOptions, normalizeOptions } from "./builder" +import { BuildOptions, normalizeOptions } from "./builder.js.js" /** @internal */ export function configurePublishCommand(yargs: yargs.Argv): yargs.Argv { diff --git a/packages/electron-publish/package.json b/packages/electron-publish/package.json index b3bcd8a6a3a..c505f274608 100644 --- a/packages/electron-publish/package.json +++ b/packages/electron-publish/package.json @@ -1,7 +1,8 @@ { "name": "electron-publish", "version": "26.3.4", - "main": "out/index.js", + "type": "module", + "exports": "./out/index.js", "author": "Vladimir Krivosheev", "license": "MIT", "repository": { diff --git a/packages/electron-publish/src/bitbucketPublisher.ts b/packages/electron-publish/src/bitbucketPublisher.ts index 5fc1397b234..e176e3dacf0 100644 --- a/packages/electron-publish/src/bitbucketPublisher.ts +++ b/packages/electron-publish/src/bitbucketPublisher.ts @@ -5,7 +5,7 @@ import * as FormData from "form-data" import { readFile } from "fs-extra" import { ClientRequest, RequestOptions } from "http" import { PublishContext } from "./" -import { HttpPublisher } from "./httpPublisher" +import { HttpPublisher } from "./httpPublisher.js.js" export class BitbucketPublisher extends HttpPublisher { readonly providerName = "bitbucket" diff --git a/packages/electron-publish/src/gitHubPublisher.ts b/packages/electron-publish/src/gitHubPublisher.ts index 922ad6b2ca2..afc9c1cbdd7 100644 --- a/packages/electron-publish/src/gitHubPublisher.ts +++ b/packages/electron-publish/src/gitHubPublisher.ts @@ -4,9 +4,9 @@ import { ClientRequest } from "http" import { Lazy } from "lazy-val" import * as mime from "mime" import { parse as parseUrl, UrlWithStringQuery } from "url" -import { HttpPublisher } from "./httpPublisher" -import { PublishContext, PublishOptions } from "./index" -import { getCiTag } from "./publisher" +import { HttpPublisher } from "./httpPublisher.js.js" +import { PublishContext, PublishOptions } from "./index.js.js" +import { getCiTag } from "./publisher.js.js" export interface Release { id: number diff --git a/packages/electron-publish/src/gitlabPublisher.ts b/packages/electron-publish/src/gitlabPublisher.ts index 9250fb0fb63..ad2c41a0061 100644 --- a/packages/electron-publish/src/gitlabPublisher.ts +++ b/packages/electron-publish/src/gitlabPublisher.ts @@ -8,8 +8,8 @@ import { Lazy } from "lazy-val" import * as mime from "mime" import * as FormData from "form-data" import { URL } from "url" -import { HttpPublisher } from "./httpPublisher" -import { PublishContext } from "./index" +import { HttpPublisher } from "./httpPublisher.js.js" +import { PublishContext } from "./index.js.js" type RequestProcessor = (request: ClientRequest, reject: (error: Error) => void) => void diff --git a/packages/electron-publish/src/httpPublisher.ts b/packages/electron-publish/src/httpPublisher.ts index 8c19d036575..40618cf7370 100644 --- a/packages/electron-publish/src/httpPublisher.ts +++ b/packages/electron-publish/src/httpPublisher.ts @@ -3,7 +3,7 @@ import { stat } from "fs-extra" import { ClientRequest } from "http" import { basename } from "path" import { PublishContext, UploadTask } from "." -import { Publisher } from "./publisher" +import { Publisher } from "./publisher.js.js" export abstract class HttpPublisher extends Publisher { protected constructor( diff --git a/packages/electron-publish/src/index.ts b/packages/electron-publish/src/index.ts index b2471778988..c043f271f6b 100644 --- a/packages/electron-publish/src/index.ts +++ b/packages/electron-publish/src/index.ts @@ -1,6 +1,6 @@ import { Arch } from "builder-util" import { CancellationToken } from "builder-util-runtime" -import { MultiProgress } from "./multiProgress" +import { MultiProgress } from "./multiProgress.js.js" export { BitbucketPublisher } from "./bitbucketPublisher" export { GitHubPublisher } from "./gitHubPublisher" diff --git a/packages/electron-publish/src/keygenPublisher.ts b/packages/electron-publish/src/keygenPublisher.ts index 9e5a709de53..cfedf1fc6f4 100644 --- a/packages/electron-publish/src/keygenPublisher.ts +++ b/packages/electron-publish/src/keygenPublisher.ts @@ -4,7 +4,7 @@ import { KeygenOptions } from "builder-util-runtime/out/publishOptions" import { getCompleteExtname } from "builder-util/out/filename" import { ClientRequest, RequestOptions } from "http" import { PublishContext } from "./" -import { HttpPublisher } from "./httpPublisher" +import { HttpPublisher } from "./httpPublisher.js.js" type RecursivePartial = { [P in keyof T]?: RecursivePartial diff --git a/packages/electron-publish/src/multiProgress.ts b/packages/electron-publish/src/multiProgress.ts index 6321d51141d..31ac916b627 100644 --- a/packages/electron-publish/src/multiProgress.ts +++ b/packages/electron-publish/src/multiProgress.ts @@ -1,5 +1,5 @@ import { setPrinter } from "builder-util" -import { ProgressBar } from "./progress" +import { ProgressBar } from "./progress.js.js" export class MultiProgress { private readonly stream = process.stdout as any diff --git a/packages/electron-publish/src/publisher.ts b/packages/electron-publish/src/publisher.ts index 57fbd51c3ea..b0e5050139c 100644 --- a/packages/electron-publish/src/publisher.ts +++ b/packages/electron-publish/src/publisher.ts @@ -3,7 +3,7 @@ import { ProgressCallbackTransform, PublishProvider } from "builder-util-runtime import * as chalk from "chalk" import { createReadStream, Stats } from "fs-extra" import { PublishContext, UploadTask } from "." -import { ProgressBar } from "./progress" +import { ProgressBar } from "./progress.js.js" const progressBarOptions = { incomplete: " ", diff --git a/packages/electron-publish/src/s3/s3Publisher.ts b/packages/electron-publish/src/s3/s3Publisher.ts index 404805fe6c8..cad7762885f 100644 --- a/packages/electron-publish/src/s3/s3Publisher.ts +++ b/packages/electron-publish/src/s3/s3Publisher.ts @@ -1,7 +1,7 @@ import { executeAppBuilder, InvalidConfigurationError, log } from "builder-util" import { S3Options } from "builder-util-runtime" import { PublishContext } from ".." -import { BaseS3Publisher } from "./baseS3Publisher" +import { BaseS3Publisher } from "./baseS3Publisher.js.js" export class S3Publisher extends BaseS3Publisher { readonly providerName = "s3" diff --git a/packages/electron-publish/src/s3/spacesPublisher.ts b/packages/electron-publish/src/s3/spacesPublisher.ts index d5149602910..551314a126d 100644 --- a/packages/electron-publish/src/s3/spacesPublisher.ts +++ b/packages/electron-publish/src/s3/spacesPublisher.ts @@ -1,7 +1,7 @@ import { InvalidConfigurationError, isEmptyOrSpaces } from "builder-util" import { SpacesOptions } from "builder-util-runtime" import { PublishContext } from "../" -import { BaseS3Publisher } from "./baseS3Publisher" +import { BaseS3Publisher } from "./baseS3Publisher.js.js" export class SpacesPublisher extends BaseS3Publisher { readonly providerName = "spaces" diff --git a/packages/electron-publish/src/snapStorePublisher.ts b/packages/electron-publish/src/snapStorePublisher.ts index 52a31c9f54e..a86c823d69e 100644 --- a/packages/electron-publish/src/snapStorePublisher.ts +++ b/packages/electron-publish/src/snapStorePublisher.ts @@ -2,7 +2,7 @@ import { executeAppBuilder } from "builder-util" import { SnapStoreOptions } from "builder-util-runtime/out/publishOptions" import * as path from "path" import { PublishContext, UploadTask } from "." -import { Publisher } from "./publisher" +import { Publisher } from "./publisher.js.js" export class SnapStorePublisher extends Publisher { readonly providerName = "snapStore" diff --git a/packages/electron-updater/package.json b/packages/electron-updater/package.json index 19ddfdb8fad..4a922f6bcf7 100644 --- a/packages/electron-updater/package.json +++ b/packages/electron-updater/package.json @@ -2,7 +2,8 @@ "name": "electron-updater", "version": "6.7.3", "description": "Cross platform updater for electron applications", - "main": "out/main.js", + "type": "module", + "exports": "./out/index.js", "author": "Vladimir Krivosheev", "license": "MIT", "repository": { diff --git a/packages/electron-updater/src/AppImageUpdater.ts b/packages/electron-updater/src/AppImageUpdater.ts index 15c95a71e66..866ad3c1c69 100644 --- a/packages/electron-updater/src/AppImageUpdater.ts +++ b/packages/electron-updater/src/AppImageUpdater.ts @@ -3,12 +3,12 @@ import { execFileSync } from "child_process" import { chmod } from "fs-extra" import { unlinkSync } from "fs" import * as path from "path" -import { DownloadUpdateOptions } from "./AppUpdater" -import { BaseUpdater, InstallOptions } from "./BaseUpdater" -import { DifferentialDownloaderOptions } from "./differentialDownloader/DifferentialDownloader" -import { FileWithEmbeddedBlockMapDifferentialDownloader } from "./differentialDownloader/FileWithEmbeddedBlockMapDifferentialDownloader" -import { findFile, Provider } from "./providers/Provider" -import { DOWNLOAD_PROGRESS, ResolvedUpdateFileInfo } from "./types" +import { DownloadUpdateOptions } from "./AppUpdater.js.js" +import { BaseUpdater, InstallOptions } from "./BaseUpdater.js.js" +import { DifferentialDownloaderOptions } from "./differentialDownloader/DifferentialDownloader.js.js" +import { FileWithEmbeddedBlockMapDifferentialDownloader } from "./differentialDownloader/FileWithEmbeddedBlockMapDifferentialDownloader.js.js" +import { findFile, Provider } from "./providers/Provider.js.js" +import { DOWNLOAD_PROGRESS, ResolvedUpdateFileInfo } from "./types.js.js" export class AppImageUpdater extends BaseUpdater { constructor(options?: AllPublishOptions | null, app?: any) { diff --git a/packages/electron-updater/src/AppUpdater.ts b/packages/electron-updater/src/AppUpdater.ts index e69afe62d35..303c548b2fa 100644 --- a/packages/electron-updater/src/AppUpdater.ts +++ b/packages/electron-updater/src/AppUpdater.ts @@ -21,21 +21,21 @@ import { load } from "js-yaml" import { Lazy } from "lazy-val" import * as path from "path" import { eq as isVersionsEqual, gt as isVersionGreaterThan, lt as isVersionLessThan, parse as parseVersion, prerelease as getVersionPreleaseComponents, SemVer } from "semver" -import { AppAdapter } from "./AppAdapter" -import { createTempUpdateFile, DownloadedUpdateHelper } from "./DownloadedUpdateHelper" -import { ElectronAppAdapter } from "./ElectronAppAdapter" -import { ElectronHttpExecutor, getNetSession, LoginCallback } from "./electronHttpExecutor" -import { GenericProvider } from "./providers/GenericProvider" -import { createClient, isUrlProbablySupportMultiRangeRequests } from "./providerFactory" -import { Provider, ProviderPlatform } from "./providers/Provider" +import { AppAdapter } from "./AppAdapter.js.js" +import { createTempUpdateFile, DownloadedUpdateHelper } from "./DownloadedUpdateHelper.js.js" +import { ElectronAppAdapter } from "./ElectronAppAdapter.js.js" +import { ElectronHttpExecutor, getNetSession, LoginCallback } from "./electronHttpExecutor.js.js" +import { GenericProvider } from "./providers/GenericProvider.js.js" +import { createClient, isUrlProbablySupportMultiRangeRequests } from "./providerFactory.js.js" +import { Provider, ProviderPlatform } from "./providers/Provider.js.js" import type { TypedEmitter } from "tiny-typed-emitter" import Session = Electron.Session import type { AuthInfo } from "electron" import { gunzipSync, gzipSync } from "zlib" -import { DifferentialDownloaderOptions } from "./differentialDownloader/DifferentialDownloader" -import { GenericDifferentialDownloader } from "./differentialDownloader/GenericDifferentialDownloader" -import { DOWNLOAD_PROGRESS, Logger, ResolvedUpdateFileInfo, UPDATE_DOWNLOADED, UpdateCheckResult, UpdateDownloadedEvent, UpdaterSignal } from "./types" -import { VerifyUpdateSupport } from "./main" +import { DifferentialDownloaderOptions } from "./differentialDownloader/DifferentialDownloader.js.js" +import { GenericDifferentialDownloader } from "./differentialDownloader/GenericDifferentialDownloader.js.js" +import { DOWNLOAD_PROGRESS, Logger, ResolvedUpdateFileInfo, UPDATE_DOWNLOADED, UpdateCheckResult, UpdateDownloadedEvent, UpdaterSignal } from "./types.js.js" +import { VerifyUpdateSupport } from "./main.js.js" export type AppUpdaterEvents = { error: (error: Error, message?: string) => void diff --git a/packages/electron-updater/src/BaseUpdater.ts b/packages/electron-updater/src/BaseUpdater.ts index f8fc13964aa..d4473b83fae 100644 --- a/packages/electron-updater/src/BaseUpdater.ts +++ b/packages/electron-updater/src/BaseUpdater.ts @@ -1,7 +1,7 @@ import { AllPublishOptions } from "builder-util-runtime" import { spawn, SpawnOptions, spawnSync, StdioOptions } from "child_process" -import { AppAdapter } from "./AppAdapter" -import { AppUpdater, DownloadExecutorTask } from "./AppUpdater" +import { AppAdapter } from "./AppAdapter.js.js" +import { AppUpdater, DownloadExecutorTask } from "./AppUpdater.js.js" export abstract class BaseUpdater extends AppUpdater { protected quitAndInstallCalled = false diff --git a/packages/electron-updater/src/DebUpdater.ts b/packages/electron-updater/src/DebUpdater.ts index c3512c8f72e..9ec87e72790 100644 --- a/packages/electron-updater/src/DebUpdater.ts +++ b/packages/electron-updater/src/DebUpdater.ts @@ -1,10 +1,10 @@ import { AllPublishOptions } from "builder-util-runtime" -import { AppAdapter } from "./AppAdapter" -import { DownloadUpdateOptions } from "./AppUpdater" -import { InstallOptions } from "./BaseUpdater" -import { findFile } from "./providers/Provider" -import { DOWNLOAD_PROGRESS, Logger } from "./types" -import { LinuxUpdater } from "./LinuxUpdater" +import { AppAdapter } from "./AppAdapter.js.js" +import { DownloadUpdateOptions } from "./AppUpdater.js.js" +import { InstallOptions } from "./BaseUpdater.js.js" +import { findFile } from "./providers/Provider.js.js" +import { DOWNLOAD_PROGRESS, Logger } from "./types.js.js" +import { LinuxUpdater } from "./LinuxUpdater.js.js" export class DebUpdater extends LinuxUpdater { constructor(options?: AllPublishOptions | null, app?: AppAdapter) { diff --git a/packages/electron-updater/src/DownloadedUpdateHelper.ts b/packages/electron-updater/src/DownloadedUpdateHelper.ts index c032d790892..db7fe0de6c1 100644 --- a/packages/electron-updater/src/DownloadedUpdateHelper.ts +++ b/packages/electron-updater/src/DownloadedUpdateHelper.ts @@ -3,8 +3,8 @@ import { createHash } from "crypto" import { createReadStream } from "fs" // @ts-ignore import * as isEqual from "lodash.isequal" -import { ResolvedUpdateFileInfo } from "./types" -import { Logger } from "./types" +import { ResolvedUpdateFileInfo } from "./types.js.js" +import { Logger } from "./types.js.js" import { pathExists, readJson, emptyDir, outputJson, unlink } from "fs-extra" import * as path from "path" diff --git a/packages/electron-updater/src/ElectronAppAdapter.ts b/packages/electron-updater/src/ElectronAppAdapter.ts index a4480f8624f..b3dc0cd3819 100644 --- a/packages/electron-updater/src/ElectronAppAdapter.ts +++ b/packages/electron-updater/src/ElectronAppAdapter.ts @@ -1,5 +1,5 @@ import * as path from "path" -import { AppAdapter, getAppCacheDir } from "./AppAdapter" +import { AppAdapter, getAppCacheDir } from "./AppAdapter.js.js" export class ElectronAppAdapter implements AppAdapter { constructor(private readonly app = require("electron").app) {} diff --git a/packages/electron-updater/src/LinuxUpdater.ts b/packages/electron-updater/src/LinuxUpdater.ts index 53a5eadf3a6..d362e1ddbba 100644 --- a/packages/electron-updater/src/LinuxUpdater.ts +++ b/packages/electron-updater/src/LinuxUpdater.ts @@ -1,6 +1,6 @@ import { AllPublishOptions } from "builder-util-runtime" -import { AppAdapter } from "./AppAdapter" -import { BaseUpdater } from "./BaseUpdater" +import { AppAdapter } from "./AppAdapter.js.js" +import { BaseUpdater } from "./BaseUpdater.js.js" export abstract class LinuxUpdater extends BaseUpdater { constructor(options?: AllPublishOptions | null, app?: AppAdapter) { diff --git a/packages/electron-updater/src/MacUpdater.ts b/packages/electron-updater/src/MacUpdater.ts index 0a76b2a1701..3d95523bca6 100644 --- a/packages/electron-updater/src/MacUpdater.ts +++ b/packages/electron-updater/src/MacUpdater.ts @@ -3,11 +3,11 @@ import { pathExistsSync, stat, copyFile } from "fs-extra" import { createReadStream } from "fs" import * as path from "path" import { createServer, IncomingMessage, Server, ServerResponse } from "http" -import { AppAdapter } from "./AppAdapter" -import { AppUpdater, DownloadUpdateOptions } from "./AppUpdater" -import { ResolvedUpdateFileInfo } from "./main" -import { UpdateDownloadedEvent } from "./types" -import { findFile } from "./providers/Provider" +import { AppAdapter } from "./AppAdapter.js.js" +import { AppUpdater, DownloadUpdateOptions } from "./AppUpdater.js.js" +import { ResolvedUpdateFileInfo } from "./main.js.js" +import { UpdateDownloadedEvent } from "./types.js.js" +import { findFile } from "./providers/Provider.js.js" import AutoUpdater = Electron.AutoUpdater import { execFileSync } from "child_process" import { randomBytes } from "crypto" diff --git a/packages/electron-updater/src/NsisUpdater.ts b/packages/electron-updater/src/NsisUpdater.ts index ada9e9ed7ba..492f1b191a7 100644 --- a/packages/electron-updater/src/NsisUpdater.ts +++ b/packages/electron-updater/src/NsisUpdater.ts @@ -1,15 +1,15 @@ import { AllPublishOptions, newError, PackageFileInfo, CURRENT_APP_INSTALLER_FILE_NAME, CURRENT_APP_PACKAGE_FILE_NAME } from "builder-util-runtime" import * as path from "path" -import { AppAdapter } from "./AppAdapter" -import { DownloadUpdateOptions } from "./AppUpdater" -import { BaseUpdater, InstallOptions } from "./BaseUpdater" -import { DifferentialDownloaderOptions } from "./differentialDownloader/DifferentialDownloader" -import { FileWithEmbeddedBlockMapDifferentialDownloader } from "./differentialDownloader/FileWithEmbeddedBlockMapDifferentialDownloader" -import { DOWNLOAD_PROGRESS } from "./types" -import { VerifyUpdateCodeSignature } from "./main" -import { findFile, Provider } from "./providers/Provider" +import { AppAdapter } from "./AppAdapter.js.js" +import { DownloadUpdateOptions } from "./AppUpdater.js.js" +import { BaseUpdater, InstallOptions } from "./BaseUpdater.js.js" +import { DifferentialDownloaderOptions } from "./differentialDownloader/DifferentialDownloader.js.js" +import { FileWithEmbeddedBlockMapDifferentialDownloader } from "./differentialDownloader/FileWithEmbeddedBlockMapDifferentialDownloader.js.js" +import { DOWNLOAD_PROGRESS } from "./types.js.js" +import { VerifyUpdateCodeSignature } from "./main.js.js" +import { findFile, Provider } from "./providers/Provider.js.js" import { unlink } from "fs-extra" -import { verifySignature } from "./windowsExecutableCodeSignatureVerifier" +import { verifySignature } from "./windowsExecutableCodeSignatureVerifier.js.js" import { URL } from "url" export class NsisUpdater extends BaseUpdater { diff --git a/packages/electron-updater/src/PacmanUpdater.ts b/packages/electron-updater/src/PacmanUpdater.ts index c329c8a9e86..86c0eabdbb7 100644 --- a/packages/electron-updater/src/PacmanUpdater.ts +++ b/packages/electron-updater/src/PacmanUpdater.ts @@ -1,10 +1,10 @@ import { AllPublishOptions } from "builder-util-runtime" -import { AppAdapter } from "./AppAdapter" -import { DownloadUpdateOptions } from "./AppUpdater" -import { InstallOptions } from "./BaseUpdater" -import { DOWNLOAD_PROGRESS, Logger } from "./types" -import { findFile } from "./providers/Provider" -import { LinuxUpdater } from "./LinuxUpdater" +import { AppAdapter } from "./AppAdapter.js.js" +import { DownloadUpdateOptions } from "./AppUpdater.js.js" +import { InstallOptions } from "./BaseUpdater.js.js" +import { DOWNLOAD_PROGRESS, Logger } from "./types.js.js" +import { findFile } from "./providers/Provider.js.js" +import { LinuxUpdater } from "./LinuxUpdater.js.js" export class PacmanUpdater extends LinuxUpdater { constructor(options?: AllPublishOptions | null, app?: AppAdapter) { diff --git a/packages/electron-updater/src/RpmUpdater.ts b/packages/electron-updater/src/RpmUpdater.ts index eb2b360ed5e..9b17c5f648e 100644 --- a/packages/electron-updater/src/RpmUpdater.ts +++ b/packages/electron-updater/src/RpmUpdater.ts @@ -1,10 +1,10 @@ import { AllPublishOptions } from "builder-util-runtime" -import { AppAdapter } from "./AppAdapter" -import { DownloadUpdateOptions } from "./AppUpdater" -import { InstallOptions } from "./BaseUpdater" -import { DOWNLOAD_PROGRESS, Logger } from "./types" -import { findFile } from "./providers/Provider" -import { LinuxUpdater } from "./LinuxUpdater" +import { AppAdapter } from "./AppAdapter.js.js" +import { DownloadUpdateOptions } from "./AppUpdater.js.js" +import { InstallOptions } from "./BaseUpdater.js.js" +import { DOWNLOAD_PROGRESS, Logger } from "./types.js.js" +import { findFile } from "./providers/Provider.js.js" +import { LinuxUpdater } from "./LinuxUpdater.js.js" export class RpmUpdater extends LinuxUpdater { constructor(options?: AllPublishOptions | null, app?: AppAdapter) { diff --git a/packages/electron-updater/src/differentialDownloader/DataSplitter.ts b/packages/electron-updater/src/differentialDownloader/DataSplitter.ts index 08625290256..905952768e2 100644 --- a/packages/electron-updater/src/differentialDownloader/DataSplitter.ts +++ b/packages/electron-updater/src/differentialDownloader/DataSplitter.ts @@ -1,7 +1,7 @@ import { newError } from "builder-util-runtime" import { createReadStream } from "fs" import { Writable } from "stream" -import { Operation, OperationKind } from "./downloadPlanBuilder" +import { Operation, OperationKind } from "./downloadPlanBuilder.js.js" const DOUBLE_CRLF = Buffer.from("\r\n\r\n") diff --git a/packages/electron-updater/src/differentialDownloader/DifferentialDownloader.ts b/packages/electron-updater/src/differentialDownloader/DifferentialDownloader.ts index e92faab4e33..029368ddcce 100644 --- a/packages/electron-updater/src/differentialDownloader/DifferentialDownloader.ts +++ b/packages/electron-updater/src/differentialDownloader/DifferentialDownloader.ts @@ -5,11 +5,11 @@ import { createWriteStream } from "fs" import { OutgoingHttpHeaders, RequestOptions } from "http" import { ProgressInfo, CancellationToken } from "builder-util-runtime" import { Logger } from "../types" -import { copyData } from "./DataSplitter" +import { copyData } from "./DataSplitter.js.js" import { URL } from "url" -import { computeOperations, Operation, OperationKind } from "./downloadPlanBuilder" -import { checkIsRangesSupported, executeTasksUsingMultipleRangeRequests } from "./multipleRangeDownloader" -import { ProgressDifferentialDownloadCallbackTransform, ProgressDifferentialDownloadInfo } from "./ProgressDifferentialDownloadCallbackTransform" +import { computeOperations, Operation, OperationKind } from "./downloadPlanBuilder.js.js" +import { checkIsRangesSupported, executeTasksUsingMultipleRangeRequests } from "./multipleRangeDownloader.js.js" +import { ProgressDifferentialDownloadCallbackTransform, ProgressDifferentialDownloadInfo } from "./ProgressDifferentialDownloadCallbackTransform.js.js" export interface DifferentialDownloaderOptions { readonly oldFile: string diff --git a/packages/electron-updater/src/differentialDownloader/FileWithEmbeddedBlockMapDifferentialDownloader.ts b/packages/electron-updater/src/differentialDownloader/FileWithEmbeddedBlockMapDifferentialDownloader.ts index d4446db1d7a..c03ef51b16b 100644 --- a/packages/electron-updater/src/differentialDownloader/FileWithEmbeddedBlockMapDifferentialDownloader.ts +++ b/packages/electron-updater/src/differentialDownloader/FileWithEmbeddedBlockMapDifferentialDownloader.ts @@ -1,6 +1,6 @@ import { BlockMap } from "builder-util-runtime/out/blockMapApi" import { close, fstat, open, read } from "fs-extra" -import { DifferentialDownloader } from "./DifferentialDownloader" +import { DifferentialDownloader } from "./DifferentialDownloader.js.js" import { inflateRawSync } from "zlib" export class FileWithEmbeddedBlockMapDifferentialDownloader extends DifferentialDownloader { diff --git a/packages/electron-updater/src/differentialDownloader/GenericDifferentialDownloader.ts b/packages/electron-updater/src/differentialDownloader/GenericDifferentialDownloader.ts index b7727d6c564..03b43de19ac 100644 --- a/packages/electron-updater/src/differentialDownloader/GenericDifferentialDownloader.ts +++ b/packages/electron-updater/src/differentialDownloader/GenericDifferentialDownloader.ts @@ -1,5 +1,5 @@ import { BlockMap } from "builder-util-runtime/out/blockMapApi" -import { DifferentialDownloader } from "./DifferentialDownloader" +import { DifferentialDownloader } from "./DifferentialDownloader.js.js" export class GenericDifferentialDownloader extends DifferentialDownloader { download(oldBlockMap: BlockMap, newBlockMap: BlockMap): Promise { diff --git a/packages/electron-updater/src/differentialDownloader/multipleRangeDownloader.ts b/packages/electron-updater/src/differentialDownloader/multipleRangeDownloader.ts index b4255e1064c..a8024aed462 100644 --- a/packages/electron-updater/src/differentialDownloader/multipleRangeDownloader.ts +++ b/packages/electron-updater/src/differentialDownloader/multipleRangeDownloader.ts @@ -1,9 +1,9 @@ import { createHttpError, safeGetHeader } from "builder-util-runtime" import { IncomingMessage } from "http" import { Writable } from "stream" -import { copyData, DataSplitter, PartListDataTask } from "./DataSplitter" -import { DifferentialDownloader } from "./DifferentialDownloader" -import { Operation, OperationKind } from "./downloadPlanBuilder" +import { copyData, DataSplitter, PartListDataTask } from "./DataSplitter.js.js" +import { DifferentialDownloader } from "./DifferentialDownloader.js.js" +import { Operation, OperationKind } from "./downloadPlanBuilder.js.js" export function executeTasksUsingMultipleRangeRequests( differentialDownloader: DifferentialDownloader, diff --git a/packages/electron-updater/src/main.ts b/packages/electron-updater/src/main.ts index 2b9a02904fb..e70aafdcfa5 100644 --- a/packages/electron-updater/src/main.ts +++ b/packages/electron-updater/src/main.ts @@ -1,6 +1,6 @@ import { existsSync, readFileSync } from "fs-extra" import * as path from "path" -import { AppUpdater } from "./AppUpdater" +import { AppUpdater } from "./AppUpdater.js.js" import { UpdateInfo } from "builder-util-runtime" export { BaseUpdater } from "./BaseUpdater" diff --git a/packages/electron-updater/src/providerFactory.ts b/packages/electron-updater/src/providerFactory.ts index 8f1e35a4c4d..fc1ab575f5a 100644 --- a/packages/electron-updater/src/providerFactory.ts +++ b/packages/electron-updater/src/providerFactory.ts @@ -11,14 +11,14 @@ import { newError, PublishConfiguration, } from "builder-util-runtime" -import { AppUpdater } from "./AppUpdater" -import { BitbucketProvider } from "./providers/BitbucketProvider" -import { GenericProvider } from "./providers/GenericProvider" -import { GitHubProvider } from "./providers/GitHubProvider" -import { GitLabProvider } from "./providers/GitLabProvider" -import { KeygenProvider } from "./providers/KeygenProvider" -import { PrivateGitHubProvider } from "./providers/PrivateGitHubProvider" -import { Provider, ProviderRuntimeOptions } from "./providers/Provider" +import { AppUpdater } from "./AppUpdater.js.js" +import { BitbucketProvider } from "./providers/BitbucketProvider.js.js" +import { GenericProvider } from "./providers/GenericProvider.js.js" +import { GitHubProvider } from "./providers/GitHubProvider.js.js" +import { GitLabProvider } from "./providers/GitLabProvider.js.js" +import { KeygenProvider } from "./providers/KeygenProvider.js.js" +import { PrivateGitHubProvider } from "./providers/PrivateGitHubProvider.js.js" +import { Provider, ProviderRuntimeOptions } from "./providers/Provider.js.js" export function isUrlProbablySupportMultiRangeRequests(url: string): boolean { return !url.includes("s3.amazonaws.com") diff --git a/packages/electron-updater/src/providers/BitbucketProvider.ts b/packages/electron-updater/src/providers/BitbucketProvider.ts index 824a5fca77f..334e5d48e6b 100644 --- a/packages/electron-updater/src/providers/BitbucketProvider.ts +++ b/packages/electron-updater/src/providers/BitbucketProvider.ts @@ -2,7 +2,7 @@ import { CancellationToken, BitbucketOptions, newError, UpdateInfo } from "build import { AppUpdater } from "../AppUpdater" import { ResolvedUpdateFileInfo } from "../types" import { getChannelFilename, newBaseUrl, newUrlFromBase } from "../util" -import { parseUpdateInfo, Provider, ProviderRuntimeOptions, resolveFiles } from "./Provider" +import { parseUpdateInfo, Provider, ProviderRuntimeOptions, resolveFiles } from "./Provider.js.js" export class BitbucketProvider extends Provider { private readonly baseUrl: URL diff --git a/packages/electron-updater/src/providers/GenericProvider.ts b/packages/electron-updater/src/providers/GenericProvider.ts index b5a23d0013c..263ca938d05 100644 --- a/packages/electron-updater/src/providers/GenericProvider.ts +++ b/packages/electron-updater/src/providers/GenericProvider.ts @@ -2,7 +2,7 @@ import { GenericServerOptions, HttpError, newError, UpdateInfo } from "builder-u import { AppUpdater } from "../AppUpdater" import { ResolvedUpdateFileInfo } from "../types" import { getChannelFilename, newBaseUrl, newUrlFromBase } from "../util" -import { parseUpdateInfo, Provider, ProviderRuntimeOptions, resolveFiles } from "./Provider" +import { parseUpdateInfo, Provider, ProviderRuntimeOptions, resolveFiles } from "./Provider.js.js" export class GenericProvider extends Provider { private readonly baseUrl = newBaseUrl(this.configuration.url) diff --git a/packages/electron-updater/src/providers/GitHubProvider.ts b/packages/electron-updater/src/providers/GitHubProvider.ts index 3a14f0f6df8..d86ffb9cb36 100644 --- a/packages/electron-updater/src/providers/GitHubProvider.ts +++ b/packages/electron-updater/src/providers/GitHubProvider.ts @@ -4,7 +4,7 @@ import { URL } from "url" import { AppUpdater } from "../AppUpdater" import { ResolvedUpdateFileInfo } from "../types" import { getChannelFilename, newBaseUrl, newUrlFromBase } from "../util" -import { parseUpdateInfo, Provider, ProviderRuntimeOptions, resolveFiles } from "./Provider" +import { parseUpdateInfo, Provider, ProviderRuntimeOptions, resolveFiles } from "./Provider.js.js" const hrefRegExp = /\/tag\/([^/]+)$/ diff --git a/packages/electron-updater/src/providers/GitLabProvider.ts b/packages/electron-updater/src/providers/GitLabProvider.ts index 8b9a3bd0285..2e5eb752512 100644 --- a/packages/electron-updater/src/providers/GitLabProvider.ts +++ b/packages/electron-updater/src/providers/GitLabProvider.ts @@ -5,7 +5,7 @@ import * as escapeRegExp from "lodash.escaperegexp" import { AppUpdater } from "../AppUpdater" import { ResolvedUpdateFileInfo } from "../types" import { getChannelFilename, newBaseUrl, newUrlFromBase } from "../util" -import { getFileList, parseUpdateInfo, Provider, ProviderRuntimeOptions } from "./Provider" +import { getFileList, parseUpdateInfo, Provider, ProviderRuntimeOptions } from "./Provider.js.js" interface GitlabUpdateInfo extends UpdateInfo { tag: string diff --git a/packages/electron-updater/src/providers/KeygenProvider.ts b/packages/electron-updater/src/providers/KeygenProvider.ts index 6842628a030..d2dd94d3cdd 100644 --- a/packages/electron-updater/src/providers/KeygenProvider.ts +++ b/packages/electron-updater/src/providers/KeygenProvider.ts @@ -2,7 +2,7 @@ import { CancellationToken, KeygenOptions, newError, UpdateInfo } from "builder- import { AppUpdater } from "../AppUpdater" import { ResolvedUpdateFileInfo } from "../types" import { getChannelFilename, newBaseUrl, newUrlFromBase } from "../util" -import { parseUpdateInfo, Provider, ProviderRuntimeOptions, resolveFiles } from "./Provider" +import { parseUpdateInfo, Provider, ProviderRuntimeOptions, resolveFiles } from "./Provider.js.js" export class KeygenProvider extends Provider { private readonly defaultHostname = "api.keygen.sh" diff --git a/packages/electron-updater/src/providers/PrivateGitHubProvider.ts b/packages/electron-updater/src/providers/PrivateGitHubProvider.ts index 708d50a2c32..bffdb0e2f44 100644 --- a/packages/electron-updater/src/providers/PrivateGitHubProvider.ts +++ b/packages/electron-updater/src/providers/PrivateGitHubProvider.ts @@ -5,9 +5,9 @@ import * as path from "path" import { AppUpdater } from "../AppUpdater" import { URL } from "url" import { getChannelFilename, newUrlFromBase } from "../util" -import { BaseGitHubProvider } from "./GitHubProvider" +import { BaseGitHubProvider } from "./GitHubProvider.js.js" import { ResolvedUpdateFileInfo } from "../types" -import { getFileList, ProviderRuntimeOptions } from "./Provider" +import { getFileList, ProviderRuntimeOptions } from "./Provider.js.js" export interface PrivateGitHubUpdateInfo extends UpdateInfo { assets: Array diff --git a/packages/electron-updater/src/types.ts b/packages/electron-updater/src/types.ts index d4e92de3c24..237f101c97b 100644 --- a/packages/electron-updater/src/types.ts +++ b/packages/electron-updater/src/types.ts @@ -1,7 +1,7 @@ import { CancellationToken, PackageFileInfo, ProgressInfo, UpdateFileInfo, UpdateInfo } from "builder-util-runtime" import { EventEmitter } from "events" import { URL } from "url" -import { LoginCallback } from "./electronHttpExecutor" +import { LoginCallback } from "./electronHttpExecutor.js.js" export { CancellationToken, PackageFileInfo, ProgressInfo, UpdateFileInfo, UpdateInfo } diff --git a/packages/electron-updater/src/windowsExecutableCodeSignatureVerifier.ts b/packages/electron-updater/src/windowsExecutableCodeSignatureVerifier.ts index f35f2aa88d3..0f592d3f2d3 100644 --- a/packages/electron-updater/src/windowsExecutableCodeSignatureVerifier.ts +++ b/packages/electron-updater/src/windowsExecutableCodeSignatureVerifier.ts @@ -1,7 +1,7 @@ import { parseDn } from "builder-util-runtime" import { execFile, execFileSync, ExecFileOptions } from "child_process" import * as os from "os" -import { Logger } from "./types" +import { Logger } from "./types.js.js" import * as path from "path" function preparePowerShellExec(command: string, timeout?: number) { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 83603d52e46..49b20e6992b 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -38,6 +38,9 @@ importers: '@stylistic/eslint-plugin': specifier: ^2.8.0 version: 2.13.0(eslint@9.39.1(jiti@2.4.2))(typescript@5.8.2) + '@tsconfig/node22': + specifier: ^22.0.5 + version: 22.0.5 '@types/node': specifier: ^22.7.4 version: 22.13.17 @@ -2258,6 +2261,9 @@ packages: '@tsconfig/node16@1.0.4': resolution: {integrity: sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==} + '@tsconfig/node22@22.0.5': + resolution: {integrity: sha512-hLf2ld+sYN/BtOJjHUWOk568dvjFQkHnLNa6zce25GIH+vxKfvTgm3qpaH6ToF5tu/NN0IH66s+Bb5wElHrLcw==} + '@types/adm-zip@0.5.6': resolution: {integrity: sha512-lRlcSLg5Yoo7C2H2AUiAoYlvifWoCx/se7iUNiCBTfEVVYFVn+Tr9ZGed4K73tYgLe9O4PjdJvbxlkdAOx/qiw==} @@ -7243,6 +7249,8 @@ snapshots: '@tsconfig/node16@1.0.4': {} + '@tsconfig/node22@22.0.5': {} + '@types/adm-zip@0.5.6': dependencies: '@types/node': 22.13.17 diff --git a/test/src/BuildTest.ts b/test/src/BuildTest.ts index 3bf8ad93554..35663b1572b 100644 --- a/test/src/BuildTest.ts +++ b/test/src/BuildTest.ts @@ -5,9 +5,9 @@ import { createYargs } from "electron-builder/out/builder" import { promises as fs } from "fs" import { outputFile, outputJson } from "fs-extra" import * as path from "path" -import { app, appTwo, appTwoThrows, assertPack, getFixtureDir, linuxDirTarget, modifyPackageJson, packageJson, toSystemIndependentPath } from "./helpers/packTester" -import { ELECTRON_VERSION } from "./helpers/testConfig" -import { verifySmartUnpack } from "./helpers/verifySmartUnpack" +import { app, appTwo, appTwoThrows, assertPack, getFixtureDir, linuxDirTarget, modifyPackageJson, packageJson, toSystemIndependentPath } from "./helpers/packTester.js" +import { ELECTRON_VERSION } from "./helpers/testConfig.js" +import { verifySmartUnpack } from "./helpers/verifySmartUnpack.js" import { PM } from "app-builder-lib/src/node-module-collector/packageManager" test.ifLinux("cli", ({ expect }) => { diff --git a/test/src/ExtraBuildResourcesTest.ts b/test/src/ExtraBuildResourcesTest.ts index 3652f279f6a..00ec42dd7e3 100644 --- a/test/src/ExtraBuildResourcesTest.ts +++ b/test/src/ExtraBuildResourcesTest.ts @@ -1,10 +1,10 @@ import { Arch, build, PackagerOptions, Platform } from "electron-builder" import * as fs from "fs" import * as path from "path" -import { assertThat } from "./helpers/fileAssert" -import { app, assertPack, linuxDirTarget, modifyPackageJson } from "./helpers/packTester" -import { ELECTRON_VERSION, getElectronCacheDir } from "./helpers/testConfig" -import { expectUpdateMetadata } from "./helpers/winHelper" +import { assertThat } from "./helpers/fileAssert.js" +import { app, assertPack, linuxDirTarget, modifyPackageJson } from "./helpers/packTester.js" +import { ELECTRON_VERSION, getElectronCacheDir } from "./helpers/testConfig.js" +import { expectUpdateMetadata } from "./helpers/winHelper.js" import { ExpectStatic } from "vitest" import * as unzipper from "unzipper" import { TmpDir } from "temp-file" diff --git a/test/src/HoistedNodeModuleTest.ts b/test/src/HoistedNodeModuleTest.ts index 5d190271803..688e6468a8b 100644 --- a/test/src/HoistedNodeModuleTest.ts +++ b/test/src/HoistedNodeModuleTest.ts @@ -3,8 +3,8 @@ import { spawn } from "builder-util/out/util" import { Arch, DIR_TARGET, Platform } from "electron-builder" import { copySync, mkdirSync, outputFile, readJsonSync, rmSync, symlink, writeJsonSync } from "fs-extra" import * as path from "path" -import { appTwoThrows, assertPack, linuxDirTarget, modifyPackageJson, verifyAsarFileTree } from "./helpers/packTester" -import { ELECTRON_VERSION } from "./helpers/testConfig" +import { appTwoThrows, assertPack, linuxDirTarget, modifyPackageJson, verifyAsarFileTree } from "./helpers/packTester.js" +import { ELECTRON_VERSION } from "./helpers/testConfig.js" import { execSync } from "child_process" test("yarn workspace", ({ expect }) => diff --git a/test/src/PublishManagerTest.ts b/test/src/PublishManagerTest.ts index 5685dbe551e..00eceb83552 100644 --- a/test/src/PublishManagerTest.ts +++ b/test/src/PublishManagerTest.ts @@ -2,8 +2,8 @@ import { GenericServerOptions, GithubOptions, KeygenOptions, SpacesOptions } fro import { Arch, createTargets, Platform } from "electron-builder" import { outputFile } from "fs-extra" import * as path from "path" -import { assertThat } from "./helpers/fileAssert" -import { app, checkDirContents } from "./helpers/packTester" +import { assertThat } from "./helpers/fileAssert.js" +import { app, checkDirContents } from "./helpers/packTester.js" function spacesPublisher(publishAutoUpdate = true): SpacesOptions { return { diff --git a/test/src/concurrentBuildsTest.ts b/test/src/concurrentBuildsTest.ts index 3436494efd3..c9e86f0d1f6 100644 --- a/test/src/concurrentBuildsTest.ts +++ b/test/src/concurrentBuildsTest.ts @@ -1,7 +1,7 @@ import { Arch, Configuration, DIR_TARGET, Platform } from "app-builder-lib" import { deepAssign } from "builder-util" import { TmpDir } from "temp-file" -import { assertPack, modifyPackageJson } from "./helpers/packTester" +import { assertPack, modifyPackageJson } from "./helpers/packTester.js" const options = { timeout: 15 * 60 * 1000 } diff --git a/test/src/configurationValidationTest.ts b/test/src/configurationValidationTest.ts index 3a62d14d860..4165c402c86 100644 --- a/test/src/configurationValidationTest.ts +++ b/test/src/configurationValidationTest.ts @@ -2,7 +2,7 @@ import { validateConfiguration } from "app-builder-lib/out/util/config/config" import { Arch, DebugLogger } from "builder-util" import { Configuration, Platform } from "electron-builder" import { CliOptions, configureBuildCommand, createYargs, normalizeOptions } from "electron-builder/out/builder" -import { app, appThrows, linuxDirTarget } from "./helpers/packTester" +import { app, appThrows, linuxDirTarget } from "./helpers/packTester.js" test.ifDevOrLinuxCi("validation", ({ expect }) => appThrows( diff --git a/test/src/extraMetadataTest.ts b/test/src/extraMetadataTest.ts index 04d8ebdff69..68b3c7ca0d1 100644 --- a/test/src/extraMetadataTest.ts +++ b/test/src/extraMetadataTest.ts @@ -3,8 +3,8 @@ import { Platform } from "electron-builder" import { coerceTypes } from "electron-builder/out/builder" import { readJson } from "fs-extra" import * as path from "path" -import { assertThat } from "./helpers/fileAssert" -import { app, linuxDirTarget, modifyPackageJson } from "./helpers/packTester" +import { assertThat } from "./helpers/fileAssert.js" +import { app, linuxDirTarget, modifyPackageJson } from "./helpers/packTester.js" import { ExpectStatic } from "vitest" function createExtraMetadataTest(expect: ExpectStatic, asar: boolean) { diff --git a/test/src/filesTest.ts b/test/src/filesTest.ts index 8dbb245daf2..b5d597e72c7 100644 --- a/test/src/filesTest.ts +++ b/test/src/filesTest.ts @@ -4,8 +4,8 @@ import { outputFile } from "fs-extra" import * as fs from "fs/promises" import * as path from "path" import { Mode, RWX } from "stat-mode" -import { assertThat } from "./helpers/fileAssert" -import { app, appThrows, assertPack, checkDirContents, linuxDirTarget, modifyPackageJson } from "./helpers/packTester" +import { assertThat } from "./helpers/fileAssert.js" +import { app, appThrows, assertPack, checkDirContents, linuxDirTarget, modifyPackageJson } from "./helpers/packTester.js" import { ExpectStatic } from "vitest" test.ifDevOrLinuxCi("expand not defined env", ({ expect }) => diff --git a/test/src/globTest.ts b/test/src/globTest.ts index c4fe600a553..49161445cfa 100644 --- a/test/src/globTest.ts +++ b/test/src/globTest.ts @@ -5,9 +5,9 @@ import { outputFile } from "fs-extra" import * as fs from "fs/promises" import * as path from "path" import { ExpectStatic } from "vitest" -import { assertThat } from "./helpers/fileAssert" -import { app, appThrows, assertPack, linuxDirTarget, modifyPackageJson, PackedContext, removeUnstableProperties, verifyAsarFileTree } from "./helpers/packTester" -import { verifySmartUnpack } from "./helpers/verifySmartUnpack" +import { assertThat } from "./helpers/fileAssert.js" +import { app, appThrows, assertPack, linuxDirTarget, modifyPackageJson, PackedContext, removeUnstableProperties, verifyAsarFileTree } from "./helpers/packTester.js" +import { verifySmartUnpack } from "./helpers/verifySmartUnpack.js" async function createFiles(appDir: string) { await Promise.all([ diff --git a/test/src/helpers/downloadElectron.ts b/test/src/helpers/downloadElectron.ts index 62510d67c00..ff50c547a43 100644 --- a/test/src/helpers/downloadElectron.ts +++ b/test/src/helpers/downloadElectron.ts @@ -2,7 +2,7 @@ import { isCI as isCi } from "ci-info" import * as fs from "fs/promises" import * as path from "path" import { gte } from "semver" -import { ELECTRON_VERSION, getElectronCacheDir } from "./testConfig" +import { ELECTRON_VERSION, getElectronCacheDir } from "./testConfig.js" const executeAppBuilder: (options: any) => Promise = require(path.join(__dirname, "../../..", "packages/builder-util")).executeAppBuilder diff --git a/test/src/helpers/packTester.ts b/test/src/helpers/packTester.ts index 7f937324d32..802f6d7eae7 100644 --- a/test/src/helpers/packTester.ts +++ b/test/src/helpers/packTester.ts @@ -18,15 +18,15 @@ import { NtExecutable, NtExecutableResource } from "resedit" import { TmpDir } from "temp-file" import { getCollectorByPackageManager, PM } from "app-builder-lib/out/node-module-collector" import { promisify } from "util" -import { CSC_LINK, WIN_CSC_LINK } from "./codeSignData" -import { assertThat } from "./fileAssert" +import { CSC_LINK, WIN_CSC_LINK } from "./codeSignData.js" +import { assertThat } from "./fileAssert.js" import AdmZip from "adm-zip" // @ts-ignore import sanitizeFileName from "sanitize-filename" import type { ExpectStatic } from "vitest" import { computeDefaultAppDirectory } from "app-builder-lib/out/util/config/config" import { installDependencies } from "app-builder-lib/out/util/yarn" -import { ELECTRON_VERSION } from "./testConfig" +import { ELECTRON_VERSION } from "./testConfig.js" import { createLazyProductionDeps } from "app-builder-lib/out/util/packageDependencies" import { execSync } from "child_process" import { detectPackageManager } from "app-builder-lib/out/node-module-collector/packageManager" diff --git a/test/src/helpers/updaterTestUtil.ts b/test/src/helpers/updaterTestUtil.ts index 3fcb17f77eb..90efb4a6331 100644 --- a/test/src/helpers/updaterTestUtil.ts +++ b/test/src/helpers/updaterTestUtil.ts @@ -4,8 +4,8 @@ import { AppUpdater, MacUpdater, NsisUpdater } from "electron-updater" import { NoOpLogger, TestOnlyUpdaterOptions } from "electron-updater/out/AppUpdater" import { outputFile, writeFile } from "fs-extra" import * as path from "path" -import { assertThat } from "./fileAssert" -import { TestAppAdapter } from "./TestAppAdapter" +import { assertThat } from "./fileAssert.js" +import { TestAppAdapter } from "./TestAppAdapter.js" import { ExpectStatic } from "vitest" const tmpDir = new TmpDir("updater-test-util") diff --git a/test/src/helpers/verifySmartUnpack.ts b/test/src/helpers/verifySmartUnpack.ts index 4f846e36f5d..554a70a05a1 100644 --- a/test/src/helpers/verifySmartUnpack.ts +++ b/test/src/helpers/verifySmartUnpack.ts @@ -2,7 +2,7 @@ import { AsarFilesystem, readAsar } from "app-builder-lib/out/asar/asar" import { walk } from "builder-util" import { readFileSync } from "fs" import * as path from "path" -import { toSystemIndependentPath } from "./packTester" +import { toSystemIndependentPath } from "./packTester.js" import { ExpectStatic } from "vitest" export function removeUnstableProperties(data: any) { diff --git a/test/src/helpers/winHelper.ts b/test/src/helpers/winHelper.ts index e1f38cbaa37..c6d7a1f8a94 100644 --- a/test/src/helpers/winHelper.ts +++ b/test/src/helpers/winHelper.ts @@ -5,9 +5,9 @@ import { outputFile } from "fs-extra" import * as fs from "fs/promises" import { load } from "js-yaml" import * as path from "path" -import { assertThat } from "./fileAssert" -import { PackedContext } from "./packTester" -import { diff, WineManager } from "./wine" +import { assertThat } from "./fileAssert.js" +import { PackedContext } from "./packTester.js" +import { diff, WineManager } from "./wine.js" import { ExpectStatic } from "vitest" export async function expectUpdateMetadata(expect: ExpectStatic, context: PackedContext, arch: Arch = Arch.ia32, requireCodeSign: boolean = false): Promise { diff --git a/test/src/ignoreTest.ts b/test/src/ignoreTest.ts index 05d98687098..c3f2420f914 100644 --- a/test/src/ignoreTest.ts +++ b/test/src/ignoreTest.ts @@ -1,8 +1,8 @@ import { DIR_TARGET, Platform, archFromString } from "electron-builder" import { outputFile } from "fs-extra" import * as path from "path" -import { assertThat } from "./helpers/fileAssert" -import { app, checkDirContents, linuxDirTarget, modifyPackageJson } from "./helpers/packTester" +import { assertThat } from "./helpers/fileAssert.js" +import { app, checkDirContents, linuxDirTarget, modifyPackageJson } from "./helpers/packTester.js" import { PM } from "app-builder-lib/out/node-module-collector/packageManager" const currentProcessTarget = Platform.LINUX.createTarget(DIR_TARGET, archFromString(process.arch)) diff --git a/test/src/mainEntryTest.ts b/test/src/mainEntryTest.ts index dc459285f1e..1512c5ff277 100644 --- a/test/src/mainEntryTest.ts +++ b/test/src/mainEntryTest.ts @@ -1,7 +1,7 @@ import { createTargets, DIR_TARGET, Platform } from "electron-builder" import * as fs from "fs/promises" import * as path from "path" -import { appTwoThrows, assertPack, modifyPackageJson } from "./helpers/packTester" +import { appTwoThrows, assertPack, modifyPackageJson } from "./helpers/packTester.js" const packagerOptions = { targets: createTargets([Platform.LINUX, Platform.MAC], DIR_TARGET), diff --git a/test/src/packageManagerTest.ts b/test/src/packageManagerTest.ts index 6d09f141844..2bd33f9999d 100644 --- a/test/src/packageManagerTest.ts +++ b/test/src/packageManagerTest.ts @@ -3,9 +3,9 @@ import { PM } from "app-builder-lib/src/node-module-collector" import { execSync } from "child_process" import { copyFile, outputFile, rm, writeFile } from "fs-extra" import * as path from "path" -import { assertThat } from "./helpers/fileAssert" -import { app, assertPack, getFixtureDir, getPackageManagerWithVersion, linuxDirTarget, modifyPackageJson, verifyAsarFileTree } from "./helpers/packTester" -import { ELECTRON_VERSION } from "./helpers/testConfig" +import { assertThat } from "./helpers/fileAssert.js" +import { app, assertPack, getFixtureDir, getPackageManagerWithVersion, linuxDirTarget, modifyPackageJson, verifyAsarFileTree } from "./helpers/packTester.js" +import { ELECTRON_VERSION } from "./helpers/testConfig.js" const yarnVersion = getPackageManagerWithVersion(PM.YARN).prepareEntry const yarnBerryVersion = getPackageManagerWithVersion(PM.YARN_BERRY).prepareEntry diff --git a/test/src/protonTest.ts b/test/src/protonTest.ts index 3fd5d184746..8cbae14874f 100644 --- a/test/src/protonTest.ts +++ b/test/src/protonTest.ts @@ -1,6 +1,6 @@ import { copyDir } from "builder-util" import { Arch, Platform } from "electron-builder" -import { app, AssertPackOptions } from "./helpers/packTester" +import { app, AssertPackOptions } from "./helpers/packTester.js" const checkOptions: AssertPackOptions = { projectDirCreated: async projectDir => { diff --git a/test/src/publisher/gitlab/GitlabPublisher.integration.test.ts b/test/src/publisher/gitlab/GitlabPublisher.integration.test.ts index f60f69487c9..026bbfa0a04 100644 --- a/test/src/publisher/gitlab/GitlabPublisher.integration.test.ts +++ b/test/src/publisher/gitlab/GitlabPublisher.integration.test.ts @@ -2,8 +2,8 @@ import { Arch } from "builder-util" import { CancellationToken } from "builder-util-runtime" import { GitlabPublisher, PublishContext } from "electron-publish" import { afterAll, beforeEach, describe, expect, test } from "vitest" -import { GitlabTestFixtures } from "./GitlabTestFixtures" -import { GitlabTestHelper } from "./GitlabTestHelper" +import { GitlabTestFixtures } from "./GitlabTestFixtures.js" +import { GitlabTestHelper } from "./GitlabTestHelper.js" /** * GitLab Publisher Integration Tests diff --git a/test/src/publisher/gitlab/GitlabPublisherTest.ts b/test/src/publisher/gitlab/GitlabPublisherTest.ts index 8563fb86e1d..c09ac27b953 100644 --- a/test/src/publisher/gitlab/GitlabPublisherTest.ts +++ b/test/src/publisher/gitlab/GitlabPublisherTest.ts @@ -1,7 +1,7 @@ import { CancellationToken, GitlabOptions } from "builder-util-runtime" import { GitlabPublisher, PublishContext } from "electron-publish" import { beforeEach, describe, test, vi } from "vitest" -import { GitlabTestFixtures } from "./GitlabTestFixtures" +import { GitlabTestFixtures } from "./GitlabTestFixtures.js" // Mock the HTTP executor to avoid real network calls vi.mock("builder-util", async () => { diff --git a/test/src/rebuilderTest.ts b/test/src/rebuilderTest.ts index 931fa843de7..fad00e97f76 100644 --- a/test/src/rebuilderTest.ts +++ b/test/src/rebuilderTest.ts @@ -2,9 +2,9 @@ import { Configuration, Platform } from "app-builder-lib" import { PM } from "app-builder-lib/out/node-module-collector" import { exists } from "builder-util/src/util" import path from "path" -import { assertPack, linuxDirTarget, modifyPackageJson } from "./helpers/packTester" -import { ELECTRON_VERSION } from "./helpers/testConfig" -import { verifySmartUnpack } from "./helpers/verifySmartUnpack" +import { assertPack, linuxDirTarget, modifyPackageJson } from "./helpers/packTester.js" +import { ELECTRON_VERSION } from "./helpers/testConfig.js" +import { verifySmartUnpack } from "./helpers/verifySmartUnpack.js" const packageConfig = (data: any) => { data.name = "@packageManagers/test-app-yarn-workspace" diff --git a/tsconfig-base.json b/tsconfig-base.json index f05e98abd57..9285427129d 100644 --- a/tsconfig-base.json +++ b/tsconfig-base.json @@ -1,15 +1,13 @@ { + "extends": "@tsconfig/node22/tsconfig.json", "compilerOptions": { - "target": "es2019", - "module": "CommonJS", - "esModuleInterop": false, "forceConsistentCasingInFileNames": true, - "moduleResolution": "node", "skipLibCheck": true, - "strict": true, + "noUnusedLocals": true, "noFallthroughCasesInSwitch": true, "noImplicitReturns": true, + "allowJs": true, "inlineSources": true, From d26567f581342ee571135ae1a80772ebc39364a4 Mon Sep 17 00:00:00 2001 From: Mike Maietta Date: Tue, 9 Dec 2025 09:18:12 -0800 Subject: [PATCH 03/65] tmp save --- packages/app-builder-lib/src/asar/asarUtil.ts | 6 ++--- .../app-builder-lib/src/asar/integrity.ts | 2 +- .../src/asar/unpackDetector.ts | 2 +- .../app-builder-lib/src/codeSign/codesign.ts | 2 +- .../src/codeSign/macCodeSign.ts | 2 +- .../src/codeSign/signManager.ts | 4 ++-- .../src/codeSign/windowsCodeSign.ts | 4 ++-- .../src/codeSign/windowsSignAzureManager.ts | 4 ++-- .../src/codeSign/windowsSignToolManager.ts | 20 ++++++++-------- .../src/electron/ElectronFramework.ts | 14 +++++------ .../src/electron/electronMac.ts | 10 ++++---- .../src/electron/electronVersion.ts | 6 ++--- .../src/electron/electronWin.ts | 2 +- .../src/electron/injectFFMPEG.ts | 4 ++-- .../src/frameworks/LibUiFramework.ts | 12 +++++----- packages/app-builder-lib/src/index.ts | 2 +- .../src/options/AppXOptions.ts | 2 +- .../CommonWindowsInstallerConfiguration.ts | 2 +- .../app-builder-lib/src/options/MsiOptions.ts | 2 +- .../src/options/MsiWrappedOptions.ts | 2 +- .../options/PlatformSpecificBuildOptions.ts | 2 +- .../src/options/SnapOptions.ts | 2 +- .../src/options/SquirrelWindowsOptions.ts | 2 +- .../src/options/linuxOptions.ts | 2 +- .../app-builder-lib/src/options/macOptions.ts | 4 ++-- .../app-builder-lib/src/options/metadata.ts | 2 +- .../app-builder-lib/src/options/pkgOptions.ts | 2 +- .../app-builder-lib/src/options/winOptions.ts | 4 ++-- .../app-builder-lib/src/platformPackager.ts | 2 +- .../app-builder-lib/src/presets/rectCra.ts | 2 +- .../src/publish/PublishManager.ts | 12 +++++----- .../src/publish/updateInfoBuilder.ts | 12 +++++----- .../src/targets/AppImageTarget.ts | 12 +++++----- .../app-builder-lib/src/targets/AppxTarget.ts | 10 ++++---- .../src/targets/ArchiveTarget.ts | 6 ++--- .../src/targets/FlatpakTarget.ts | 8 +++---- .../app-builder-lib/src/targets/FpmTarget.ts | 24 +++++++++---------- .../src/targets/LinuxTargetHelper.ts | 6 ++--- .../app-builder-lib/src/targets/MsiTarget.ts | 16 ++++++------- .../src/targets/MsiWrappedTarget.ts | 6 ++--- .../app-builder-lib/src/targets/archive.ts | 2 +- .../targets/differentialUpdateInfoBuilder.ts | 6 ++--- .../src/targets/nsis/NsisTarget.ts | 22 ++++++++--------- .../src/targets/nsis/WebInstallerTarget.ts | 4 ++-- .../src/targets/nsis/nsisLang.ts | 4 ++-- .../src/targets/nsis/nsisLicense.ts | 6 ++--- .../src/targets/nsis/nsisOptions.ts | 4 ++-- .../src/targets/nsis/nsisUtil.ts | 4 ++-- packages/app-builder-lib/src/targets/pkg.ts | 14 +++++------ packages/app-builder-lib/src/targets/snap.ts | 10 ++++---- .../src/targets/targetFactory.ts | 4 ++-- .../app-builder-lib/src/targets/targetUtil.ts | 2 +- packages/app-builder-lib/src/targets/tools.ts | 2 +- .../app-builder-lib/src/util/AppFileWalker.ts | 4 ++-- .../src/util/NodeModuleCopyHelper.ts | 4 ++-- .../app-builder-lib/src/util/appFileCopier.ts | 14 +++++------ .../app-builder-lib/src/util/config/config.ts | 8 +++---- .../app-builder-lib/src/util/config/load.ts | 2 +- packages/app-builder-lib/src/util/license.ts | 2 +- .../app-builder-lib/src/util/macroExpander.ts | 2 +- .../src/util/packageMetadata.ts | 2 +- .../src/util/repositoryInfo.ts | 4 ++-- packages/app-builder-lib/src/util/resolve.ts | 2 +- packages/app-builder-lib/src/util/yarn.ts | 6 ++--- packages/app-builder-lib/src/vm/WineVm.ts | 2 +- packages/builder-util/src/util.ts | 2 +- packages/dmg-builder/src/dmgUtil.ts | 2 +- packages/electron-builder/src/cli/cli.ts | 4 ++-- packages/electron-publish/src/index.ts | 2 +- .../src/s3/baseS3Publisher.ts | 2 +- .../DifferentialDownloader.ts | 2 +- .../downloadPlanBuilder.ts | 2 +- packages/electron-updater/src/main.ts | 2 +- .../src/providers/BitbucketProvider.ts | 6 ++--- .../src/providers/GenericProvider.ts | 6 ++--- .../src/providers/GitHubProvider.ts | 6 ++--- .../src/providers/GitLabProvider.ts | 6 ++--- .../src/providers/KeygenProvider.ts | 6 ++--- .../src/providers/PrivateGitHubProvider.ts | 6 ++--- .../src/providers/Provider.ts | 6 ++--- 80 files changed, 218 insertions(+), 218 deletions(-) diff --git a/packages/app-builder-lib/src/asar/asarUtil.ts b/packages/app-builder-lib/src/asar/asarUtil.ts index 1ece2af90b1..4bf37172a1a 100644 --- a/packages/app-builder-lib/src/asar/asarUtil.ts +++ b/packages/app-builder-lib/src/asar/asarUtil.ts @@ -4,9 +4,9 @@ import { exists, Filter } from "builder-util/out/fs" import * as fs from "fs-extra" import { readlink } from "fs-extra" import * as path from "path" -import { AsarOptions } from "../options/PlatformSpecificBuildOptions" -import { PlatformPackager } from "../platformPackager" -import { ResolvedFileSet, getDestinationPath } from "../util/appFileCopier" +import { AsarOptions } from "../options/PlatformSpecificBuildOptions.js" +import { PlatformPackager } from "../platformPackager.js" +import { ResolvedFileSet, getDestinationPath } from "../util/appFileCopier.js" import { detectUnpackedDirs } from "./unpackDetector.js.js" import { Readable } from "stream" import * as os from "os" diff --git a/packages/app-builder-lib/src/asar/integrity.ts b/packages/app-builder-lib/src/asar/integrity.ts index 8ee052c6d81..4ae3abb687e 100644 --- a/packages/app-builder-lib/src/asar/integrity.ts +++ b/packages/app-builder-lib/src/asar/integrity.ts @@ -2,7 +2,7 @@ import { FilterStats, log, statOrNull, walk } from "builder-util" import { createHash } from "crypto" import { readdir } from "fs/promises" import * as path from "path" -import { FileMatcher } from "../fileMatcher" +import { FileMatcher } from "../fileMatcher.js" import { readAsarHeader } from "./asar.js.js" export interface AsarIntegrityOptions { diff --git a/packages/app-builder-lib/src/asar/unpackDetector.ts b/packages/app-builder-lib/src/asar/unpackDetector.ts index fce460c4c2d..5be0d6d2c88 100644 --- a/packages/app-builder-lib/src/asar/unpackDetector.ts +++ b/packages/app-builder-lib/src/asar/unpackDetector.ts @@ -1,7 +1,7 @@ import { FilterStats, log } from "builder-util" import { isBinaryFileSync } from "isbinaryfile" import * as path from "path" -import { ResolvedFileSet } from "../util/appFileCopier" +import { ResolvedFileSet } from "../util/appFileCopier.js" export function isLibOrExe(file: string): boolean { // https://github.com/electron-userland/electron-builder/issues/3038 diff --git a/packages/app-builder-lib/src/codeSign/codesign.ts b/packages/app-builder-lib/src/codeSign/codesign.ts index 4a8d0e2d292..cce2b4d5edf 100644 --- a/packages/app-builder-lib/src/codeSign/codesign.ts +++ b/packages/app-builder-lib/src/codeSign/codesign.ts @@ -3,7 +3,7 @@ import { outputFile } from "fs-extra" import { homedir } from "os" import * as path from "path" import { TmpDir } from "temp-file" -import { download } from "../binDownload" +import { download } from "../binDownload.js" /** @private */ export async function importCertificate(cscLink: string, tmpDir: TmpDir, currentDir: string): Promise { diff --git a/packages/app-builder-lib/src/codeSign/macCodeSign.ts b/packages/app-builder-lib/src/codeSign/macCodeSign.ts index 0cbd10460ff..d0d1759c24e 100644 --- a/packages/app-builder-lib/src/codeSign/macCodeSign.ts +++ b/packages/app-builder-lib/src/codeSign/macCodeSign.ts @@ -9,7 +9,7 @@ import { Lazy } from "lazy-val" import { homedir, tmpdir } from "os" import * as path from "path" import { getTempName } from "temp-file" -import { isAutoDiscoveryCodeSignIdentity } from "../util/flags" +import { isAutoDiscoveryCodeSignIdentity } from "../util/flags.js" import { importCertificate } from "./codesign.js.js" export const appleCertificatePrefixes = ["Developer ID Application:", "Developer ID Installer:", "3rd Party Mac Developer Application:", "3rd Party Mac Developer Installer:"] diff --git a/packages/app-builder-lib/src/codeSign/signManager.ts b/packages/app-builder-lib/src/codeSign/signManager.ts index 23b44daddd7..ccc8987b06b 100644 --- a/packages/app-builder-lib/src/codeSign/signManager.ts +++ b/packages/app-builder-lib/src/codeSign/signManager.ts @@ -1,7 +1,7 @@ import { MemoLazy, Nullish } from "builder-util-runtime" import { Lazy } from "lazy-val" -import { Target } from "../core" -import { WindowsConfiguration } from "../options/winOptions" +import { Target } from "../core.js" +import { WindowsConfiguration } from "../options/winOptions.js" import { WindowsSignOptions } from "./windowsCodeSign.js.js" import { CertificateFromStoreInfo, FileCodeSigningInfo } from "./windowsSignToolManager.js.js" diff --git a/packages/app-builder-lib/src/codeSign/windowsCodeSign.ts b/packages/app-builder-lib/src/codeSign/windowsCodeSign.ts index 8eb63b66774..71a196dd3cf 100644 --- a/packages/app-builder-lib/src/codeSign/windowsCodeSign.ts +++ b/packages/app-builder-lib/src/codeSign/windowsCodeSign.ts @@ -1,6 +1,6 @@ import { log, retry } from "builder-util" -import { WindowsConfiguration } from "../options/winOptions" -import { WinPackager } from "../winPackager" +import { WindowsConfiguration } from "../options/winOptions.js" +import { WinPackager } from "../winPackager.js" export interface WindowsSignOptions { readonly path: string diff --git a/packages/app-builder-lib/src/codeSign/windowsSignAzureManager.ts b/packages/app-builder-lib/src/codeSign/windowsSignAzureManager.ts index b5123e1585c..b81d6eff553 100644 --- a/packages/app-builder-lib/src/codeSign/windowsSignAzureManager.ts +++ b/packages/app-builder-lib/src/codeSign/windowsSignAzureManager.ts @@ -1,8 +1,8 @@ import { asArray, InvalidConfigurationError, log } from "builder-util" import { MemoLazy } from "builder-util-runtime" import { Lazy } from "lazy-val" -import { WindowsAzureSigningConfiguration, WindowsConfiguration } from "../options/winOptions" -import { WinPackager } from "../winPackager" +import { WindowsAzureSigningConfiguration, WindowsConfiguration } from "../options/winOptions.js" +import { WinPackager } from "../winPackager.js" import { SignManager } from "./signManager.js.js" import { WindowsSignOptions } from "./windowsCodeSign.js.js" import { CertificateFromStoreInfo, FileCodeSigningInfo } from "./windowsSignToolManager.js.js" diff --git a/packages/app-builder-lib/src/codeSign/windowsSignToolManager.ts b/packages/app-builder-lib/src/codeSign/windowsSignToolManager.ts index 506ea63069c..8f9f84a717a 100644 --- a/packages/app-builder-lib/src/codeSign/windowsSignToolManager.ts +++ b/packages/app-builder-lib/src/codeSign/windowsSignToolManager.ts @@ -4,16 +4,16 @@ import { rename } from "fs-extra" import { Lazy } from "lazy-val" import * as os from "os" import * as path from "path" -import { getBin } from "../binDownload" -import { Target } from "../core" -import { WindowsConfiguration } from "../options/winOptions" -import AppXTarget from "../targets/AppxTarget" -import { executeAppBuilderAsJson } from "../util/appBuilder" -import { computeToolEnv, ToolInfo } from "../util/bundledTool" -import { isUseSystemSigncode } from "../util/flags" -import { resolveFunction } from "../util/resolve" -import { VmManager } from "../vm/vm" -import { WinPackager } from "../winPackager" +import { getBin } from "../binDownload.js" +import { Target } from "../core.js" +import { WindowsConfiguration } from "../options/winOptions.js" +import AppXTarget from "../targets/AppxTarget.js" +import { executeAppBuilderAsJson } from "../util/appBuilder.js" +import { computeToolEnv, ToolInfo } from "../util/bundledTool.js" +import { isUseSystemSigncode } from "../util/flags.js" +import { resolveFunction } from "../util/resolve.js" +import { VmManager } from "../vm/vm.js" +import { WinPackager } from "../winPackager.js" import { importCertificate } from "./codesign.js.js" import { SignManager } from "./signManager.js.js" import { WindowsSignOptions } from "./windowsCodeSign.js.js" diff --git a/packages/app-builder-lib/src/electron/ElectronFramework.ts b/packages/app-builder-lib/src/electron/ElectronFramework.ts index d326a337b62..004cfd2fb3c 100644 --- a/packages/app-builder-lib/src/electron/ElectronFramework.ts +++ b/packages/app-builder-lib/src/electron/ElectronFramework.ts @@ -2,13 +2,13 @@ import { asArray, copyDir, DO_NOT_USE_HARD_LINKS, executeAppBuilder, isEmptyOrSp import { emptyDir, readdir, rename, rm } from "fs-extra" import * as path from "path" import asyncPool from "tiny-async-pool" -import { Configuration } from "../configuration" -import { BeforeCopyExtraFilesOptions, Framework, PrepareApplicationStageDirectoryOptions } from "../Framework" -import { Packager, Platform } from "../index" -import { LinuxPackager } from "../linuxPackager" -import { MacPackager } from "../macPackager" -import { getTemplatePath } from "../util/pathManager" -import { resolveFunction } from "../util/resolve" +import { Configuration } from "../configuration.js" +import { BeforeCopyExtraFilesOptions, Framework, PrepareApplicationStageDirectoryOptions } from "../Framework.js" +import { Packager, Platform } from "../index.js" +import { LinuxPackager } from "../linuxPackager.js" +import { MacPackager } from "../macPackager.js" +import { getTemplatePath } from "../util/pathManager.js" +import { resolveFunction } from "../util/resolve.js" import { createMacApp } from "./electronMac.js.js" import { computeElectronVersion, getElectronVersionFromInstalled } from "./electronVersion.js.js" import { addWinAsarIntegrity } from "./electronWin.js.js" diff --git a/packages/app-builder-lib/src/electron/electronMac.ts b/packages/app-builder-lib/src/electron/electronMac.ts index edba4cfdb17..e44d35762ca 100644 --- a/packages/app-builder-lib/src/electron/electronMac.ts +++ b/packages/app-builder-lib/src/electron/electronMac.ts @@ -2,11 +2,11 @@ import { asArray, copyOrLinkFile, getPlatformIconFileName, InvalidConfigurationE import { rename, utimes } from "fs/promises" import * as path from "path" import * as fs from "fs" -import { filterCFBundleIdentifier } from "../appInfo" -import { AsarIntegrity } from "../asar/integrity" -import { MacPackager } from "../macPackager" -import { normalizeExt } from "../platformPackager" -import { savePlistFile, parsePlistFile, PlistObject, PlistValue } from "../util/plist" +import { filterCFBundleIdentifier } from "../appInfo.js" +import { AsarIntegrity } from "../asar/integrity.js" +import { MacPackager } from "../macPackager.js" +import { normalizeExt } from "../platformPackager.js" +import { savePlistFile, parsePlistFile, PlistObject, PlistValue } from "../util/plist.js" import { createBrandingOpts } from "./ElectronFramework.js.js" function doRename(basePath: string, oldName: string, newName: string) { diff --git a/packages/app-builder-lib/src/electron/electronVersion.ts b/packages/app-builder-lib/src/electron/electronVersion.ts index 583a05b2c99..b5fa119c488 100644 --- a/packages/app-builder-lib/src/electron/electronVersion.ts +++ b/packages/app-builder-lib/src/electron/electronVersion.ts @@ -4,9 +4,9 @@ import { readJson } from "fs-extra" import { Lazy } from "lazy-val" import * as path from "path" import * as semver from "semver" -import { Configuration } from "../configuration" -import { getConfig } from "../util/config/config" -import { orNullIfFileNotExist } from "../util/config/load" +import { Configuration } from "../configuration.js" +import { getConfig } from "../util/config/config.js" +import { orNullIfFileNotExist } from "../util/config/load.js" import { getProjectRootPath } from "./search-module.js.js" export type MetadataValue = Lazy | null> diff --git a/packages/app-builder-lib/src/electron/electronWin.ts b/packages/app-builder-lib/src/electron/electronWin.ts index aa36f88c735..75f1925d4b5 100644 --- a/packages/app-builder-lib/src/electron/electronWin.ts +++ b/packages/app-builder-lib/src/electron/electronWin.ts @@ -2,7 +2,7 @@ import { log } from "builder-util" import { readFile, writeFile } from "fs/promises" import * as path from "path" import { NtExecutable, NtExecutableResource, Resource } from "resedit" -import { AsarIntegrity } from "../asar/integrity" +import { AsarIntegrity } from "../asar/integrity.js" /** @internal */ export async function addWinAsarIntegrity(executablePath: string, asarIntegrity: AsarIntegrity) { diff --git a/packages/app-builder-lib/src/electron/injectFFMPEG.ts b/packages/app-builder-lib/src/electron/injectFFMPEG.ts index 3880fc853b2..ccbfb4149b7 100644 --- a/packages/app-builder-lib/src/electron/injectFFMPEG.ts +++ b/packages/app-builder-lib/src/electron/injectFFMPEG.ts @@ -3,8 +3,8 @@ import * as path from "path" import { ElectronPlatformName } from "./ElectronFramework.js.js" import { log } from "builder-util" -import { getBin } from "../binDownload" -import { PrepareApplicationStageDirectoryOptions } from "../Framework" +import { getBin } from "../binDownload.js" +import { PrepareApplicationStageDirectoryOptions } from "../Framework.js" // NOTE: Adapted from https://github.com/MarshallOfSound/electron-packager-plugin-non-proprietary-codecs-ffmpeg to resolve dependency vulnerabilities const downloadFFMPEG = async (electronVersion: string, platform: ElectronPlatformName, arch: string) => { diff --git a/packages/app-builder-lib/src/frameworks/LibUiFramework.ts b/packages/app-builder-lib/src/frameworks/LibUiFramework.ts index 82f7de429ff..92b74f517e5 100644 --- a/packages/app-builder-lib/src/frameworks/LibUiFramework.ts +++ b/packages/app-builder-lib/src/frameworks/LibUiFramework.ts @@ -2,12 +2,12 @@ import { executeAppBuilder } from "builder-util" import { emptyDir } from "fs-extra" import { chmod, mkdir, rename, writeFile } from "fs/promises" import * as path from "path" -import { AfterPackContext } from "../configuration" -import { Platform } from "../core" -import { Framework, PrepareApplicationStageDirectoryOptions } from "../Framework" -import { LinuxPackager } from "../linuxPackager" -import { MacPackager } from "../macPackager" -import { savePlistFile } from "../util/plist" +import { AfterPackContext } from "../configuration.js" +import { Platform } from "../core.js" +import { Framework, PrepareApplicationStageDirectoryOptions } from "../Framework.js" +import { LinuxPackager } from "../linuxPackager.js" +import { MacPackager } from "../macPackager.js" +import { savePlistFile } from "../util/plist.js" export class LibUiFramework implements Framework { readonly name: string = "libui" diff --git a/packages/app-builder-lib/src/index.ts b/packages/app-builder-lib/src/index.ts index c51edd92112..22a1e5f4d82 100644 --- a/packages/app-builder-lib/src/index.ts +++ b/packages/app-builder-lib/src/index.ts @@ -7,7 +7,7 @@ import { PublishManager } from "./publish/PublishManager.js.js" import { resolveFunction } from "./util/resolve.js.js" export { Arch, archFromString, getArchSuffix } from "builder-util" -export { AppInfo } from "./appInfo" +export { AppInfo } from "./appInfo.js" export { AfterExtractContext, AfterPackContext, diff --git a/packages/app-builder-lib/src/options/AppXOptions.ts b/packages/app-builder-lib/src/options/AppXOptions.ts index d5f0ee39d0c..4b0a913964d 100644 --- a/packages/app-builder-lib/src/options/AppXOptions.ts +++ b/packages/app-builder-lib/src/options/AppXOptions.ts @@ -1,4 +1,4 @@ -import { TargetSpecificOptions } from "../core" +import { TargetSpecificOptions } from "../core.js" export interface AppXOptions extends TargetSpecificOptions { /** diff --git a/packages/app-builder-lib/src/options/CommonWindowsInstallerConfiguration.ts b/packages/app-builder-lib/src/options/CommonWindowsInstallerConfiguration.ts index af503c8ae0d..9d33ca0e000 100644 --- a/packages/app-builder-lib/src/options/CommonWindowsInstallerConfiguration.ts +++ b/packages/app-builder-lib/src/options/CommonWindowsInstallerConfiguration.ts @@ -1,6 +1,6 @@ import { InvalidConfigurationError, isEmptyOrSpaces } from "builder-util" import { sanitizeFileName } from "builder-util/out/filename" -import { WinPackager } from "../winPackager" +import { WinPackager } from "../winPackager.js" export interface CommonWindowsInstallerConfiguration { readonly oneClick?: boolean diff --git a/packages/app-builder-lib/src/options/MsiOptions.ts b/packages/app-builder-lib/src/options/MsiOptions.ts index 1b6fede0e72..756355356c8 100644 --- a/packages/app-builder-lib/src/options/MsiOptions.ts +++ b/packages/app-builder-lib/src/options/MsiOptions.ts @@ -1,4 +1,4 @@ -import { TargetSpecificOptions } from "../core" +import { TargetSpecificOptions } from "../core.js" import { CommonWindowsInstallerConfiguration } from "./CommonWindowsInstallerConfiguration.js.js" export interface MsiOptions extends CommonWindowsInstallerConfiguration, TargetSpecificOptions { diff --git a/packages/app-builder-lib/src/options/MsiWrappedOptions.ts b/packages/app-builder-lib/src/options/MsiWrappedOptions.ts index 39cf1028717..5a1d16293eb 100644 --- a/packages/app-builder-lib/src/options/MsiWrappedOptions.ts +++ b/packages/app-builder-lib/src/options/MsiWrappedOptions.ts @@ -1,4 +1,4 @@ -import { TargetSpecificOptions } from "../core" +import { TargetSpecificOptions } from "../core.js" import { CommonWindowsInstallerConfiguration } from "./CommonWindowsInstallerConfiguration.js.js" export interface MsiWrappedOptions extends CommonWindowsInstallerConfiguration, TargetSpecificOptions { diff --git a/packages/app-builder-lib/src/options/PlatformSpecificBuildOptions.ts b/packages/app-builder-lib/src/options/PlatformSpecificBuildOptions.ts index f3029c9608c..8c14c36f567 100644 --- a/packages/app-builder-lib/src/options/PlatformSpecificBuildOptions.ts +++ b/packages/app-builder-lib/src/options/PlatformSpecificBuildOptions.ts @@ -1,4 +1,4 @@ -import { CompressionLevel, Publish, TargetConfiguration, TargetSpecificOptions } from "../core" +import { CompressionLevel, Publish, TargetConfiguration, TargetSpecificOptions } from "../core.js" import { FileAssociation } from "./FileAssociation.js.js" export interface FileSet { diff --git a/packages/app-builder-lib/src/options/SnapOptions.ts b/packages/app-builder-lib/src/options/SnapOptions.ts index d43d2355c15..df0449f2370 100644 --- a/packages/app-builder-lib/src/options/SnapOptions.ts +++ b/packages/app-builder-lib/src/options/SnapOptions.ts @@ -1,4 +1,4 @@ -import { TargetSpecificOptions } from "../core" +import { TargetSpecificOptions } from "../core.js" import { CommonLinuxOptions } from "./linuxOptions.js.js" export interface SnapOptions extends CommonLinuxOptions, TargetSpecificOptions { diff --git a/packages/app-builder-lib/src/options/SquirrelWindowsOptions.ts b/packages/app-builder-lib/src/options/SquirrelWindowsOptions.ts index 9bb97db6e3e..c9176c70e7f 100644 --- a/packages/app-builder-lib/src/options/SquirrelWindowsOptions.ts +++ b/packages/app-builder-lib/src/options/SquirrelWindowsOptions.ts @@ -1,7 +1,7 @@ /** * Squirrel.Windows options. */ -import { TargetSpecificOptions } from "../core" +import { TargetSpecificOptions } from "../core.js" export interface SquirrelWindowsOptions extends TargetSpecificOptions { /** diff --git a/packages/app-builder-lib/src/options/linuxOptions.ts b/packages/app-builder-lib/src/options/linuxOptions.ts index ef9fbd16637..2688e585f58 100644 --- a/packages/app-builder-lib/src/options/linuxOptions.ts +++ b/packages/app-builder-lib/src/options/linuxOptions.ts @@ -1,4 +1,4 @@ -import { PlatformSpecificBuildOptions, TargetConfigType, TargetSpecificOptions } from "../index" +import { PlatformSpecificBuildOptions, TargetConfigType, TargetSpecificOptions } from "../index.js" /** * Example Spec: https://specifications.freedesktop.org/desktop-entry-spec/latest/example.html diff --git a/packages/app-builder-lib/src/options/macOptions.ts b/packages/app-builder-lib/src/options/macOptions.ts index 3fd756bd8e1..b3adfbfff16 100644 --- a/packages/app-builder-lib/src/options/macOptions.ts +++ b/packages/app-builder-lib/src/options/macOptions.ts @@ -1,5 +1,5 @@ -import { PlatformSpecificBuildOptions, TargetConfiguration, TargetSpecificOptions } from "../index" -import { CustomMacSign } from "../macPackager" +import { PlatformSpecificBuildOptions, TargetConfiguration, TargetSpecificOptions } from "../index.js" +import { CustomMacSign } from "../macPackager.js" export type MacOsTargetName = "default" | "dmg" | "mas" | "mas-dev" | "pkg" | "7z" | "zip" | "tar.xz" | "tar.lz" | "tar.gz" | "tar.bz2" | "dir" diff --git a/packages/app-builder-lib/src/options/metadata.ts b/packages/app-builder-lib/src/options/metadata.ts index 223362255a7..24d1b93e301 100644 --- a/packages/app-builder-lib/src/options/metadata.ts +++ b/packages/app-builder-lib/src/options/metadata.ts @@ -1,4 +1,4 @@ -import { Configuration } from "../configuration" +import { Configuration } from "../configuration.js" export interface Metadata { /** diff --git a/packages/app-builder-lib/src/options/pkgOptions.ts b/packages/app-builder-lib/src/options/pkgOptions.ts index 4c6f0079e99..de0fedb1320 100644 --- a/packages/app-builder-lib/src/options/pkgOptions.ts +++ b/packages/app-builder-lib/src/options/pkgOptions.ts @@ -1,4 +1,4 @@ -import { TargetSpecificOptions } from "../core" +import { TargetSpecificOptions } from "../core.js" // noinspection SpellCheckingInspection export type BackgroundAlignment = "center" | "left" | "right" | "top" | "bottom" | "topleft" | "topright" | "bottomleft" | "bottomright" diff --git a/packages/app-builder-lib/src/options/winOptions.ts b/packages/app-builder-lib/src/options/winOptions.ts index 6f4568b9b41..a82a746382f 100644 --- a/packages/app-builder-lib/src/options/winOptions.ts +++ b/packages/app-builder-lib/src/options/winOptions.ts @@ -1,6 +1,6 @@ import { Nullish } from "builder-util-runtime" -import { CustomWindowsSign } from "../codeSign/windowsSignToolManager" -import { PlatformSpecificBuildOptions, TargetConfigType } from "../index" +import { CustomWindowsSign } from "../codeSign/windowsSignToolManager.js" +import { PlatformSpecificBuildOptions, TargetConfigType } from "../index.js" export interface WindowsConfiguration extends PlatformSpecificBuildOptions { /** diff --git a/packages/app-builder-lib/src/platformPackager.ts b/packages/app-builder-lib/src/platformPackager.ts index 076290393e0..277d974403e 100644 --- a/packages/app-builder-lib/src/platformPackager.ts +++ b/packages/app-builder-lib/src/platformPackager.ts @@ -44,7 +44,7 @@ import { PlatformSpecificBuildOptions, Target, TargetSpecificOptions, -} from "./index" +} from "./index.js" import { executeAppBuilderAsJson } from "./util/appBuilder.js.js" import { computeFileSets, computeNodeModuleFileSets, copyAppFiles, ELECTRON_COMPILE_SHIM_FILENAME, transformFiles } from "./util/appFileCopier.js.js" import { expandMacro as doExpandMacro } from "./util/macroExpander.js.js" diff --git a/packages/app-builder-lib/src/presets/rectCra.ts b/packages/app-builder-lib/src/presets/rectCra.ts index 5d610cf64e6..311a17f9076 100644 --- a/packages/app-builder-lib/src/presets/rectCra.ts +++ b/packages/app-builder-lib/src/presets/rectCra.ts @@ -1,6 +1,6 @@ import { log, statOrNull } from "builder-util" import * as path from "path" -import { Configuration } from "../configuration" +import { Configuration } from "../configuration.js" /** @internal */ export async function reactCra(projectDir: string): Promise { diff --git a/packages/app-builder-lib/src/publish/PublishManager.ts b/packages/app-builder-lib/src/publish/PublishManager.ts index 642191b0b27..493f4e35a4a 100644 --- a/packages/app-builder-lib/src/publish/PublishManager.ts +++ b/packages/app-builder-lib/src/publish/PublishManager.ts @@ -35,13 +35,13 @@ import { isCI } from "ci-info" import * as path from "path" import { WriteStream as TtyWriteStream } from "tty" import * as url from "url" -import { AppInfo, ArtifactCreated, Configuration, Platform, PlatformSpecificBuildOptions, Target } from "../index" -import { Packager } from "../packager" -import { PlatformPackager } from "../platformPackager" -import { expandMacro } from "../util/macroExpander" -import { WinPackager } from "../winPackager" +import { AppInfo, ArtifactCreated, Configuration, Platform, PlatformSpecificBuildOptions, Target } from "../index.js" +import { Packager } from "../packager.js" +import { PlatformPackager } from "../platformPackager.js" +import { expandMacro } from "../util/macroExpander.js" +import { WinPackager } from "../winPackager.js" import { createUpdateInfoTasks, UpdateInfoFileTask, writeUpdateInfoFiles } from "./updateInfoBuilder.js.js" -import { resolveModule } from "../util/resolve" +import { resolveModule } from "../util/resolve.js" const publishForPrWarning = "There are serious security concerns with PUBLISH_FOR_PULL_REQUEST=true (see the CircleCI documentation (https://circleci.com/docs/1.0/fork-pr-builds/) for details)" + diff --git a/packages/app-builder-lib/src/publish/updateInfoBuilder.ts b/packages/app-builder-lib/src/publish/updateInfoBuilder.ts index 819dc5d522e..a0ac118e3ae 100644 --- a/packages/app-builder-lib/src/publish/updateInfoBuilder.ts +++ b/packages/app-builder-lib/src/publish/updateInfoBuilder.ts @@ -5,12 +5,12 @@ import { outputFile, outputJson, readFile } from "fs-extra" import { Lazy } from "lazy-val" import * as path from "path" import * as semver from "semver" -import { Platform } from "../core" -import { ReleaseInfo } from "../options/PlatformSpecificBuildOptions" -import { Packager } from "../packager" -import { ArtifactCreated } from "../packagerApi" -import { PlatformPackager } from "../platformPackager" -import { hashFile } from "../util/hash" +import { Platform } from "../core.js" +import { ReleaseInfo } from "../options/PlatformSpecificBuildOptions.js" +import { Packager } from "../packager.js" +import { ArtifactCreated } from "../packagerApi.js" +import { PlatformPackager } from "../platformPackager.js" +import { hashFile } from "../util/hash.js" import { computeDownloadUrl, getPublishConfigsForUpdateInfo } from "./PublishManager.js.js" async function getReleaseInfo(packager: PlatformPackager) { diff --git a/packages/app-builder-lib/src/targets/AppImageTarget.ts b/packages/app-builder-lib/src/targets/AppImageTarget.ts index 95f032dffb8..0d30d8495e1 100644 --- a/packages/app-builder-lib/src/targets/AppImageTarget.ts +++ b/packages/app-builder-lib/src/targets/AppImageTarget.ts @@ -2,12 +2,12 @@ import { Arch, serializeToYaml } from "builder-util" import { outputFile } from "fs-extra" import { Lazy } from "lazy-val" import * as path from "path" -import { Target } from "../core" -import { LinuxPackager } from "../linuxPackager" -import { AppImageOptions } from "../options/linuxOptions" -import { getAppUpdatePublishConfiguration } from "../publish/PublishManager" -import { executeAppBuilderAsJson, objectToArgs } from "../util/appBuilder" -import { getNotLocalizedLicenseFile } from "../util/license" +import { Target } from "../core.js" +import { LinuxPackager } from "../linuxPackager.js" +import { AppImageOptions } from "../options/linuxOptions.js" +import { getAppUpdatePublishConfiguration } from "../publish/PublishManager.js" +import { executeAppBuilderAsJson, objectToArgs } from "../util/appBuilder.js" +import { getNotLocalizedLicenseFile } from "../util/license.js" import { LinuxTargetHelper } from "./LinuxTargetHelper.js.js" import { createStageDir } from "./targetUtil.js.js" diff --git a/packages/app-builder-lib/src/targets/AppxTarget.ts b/packages/app-builder-lib/src/targets/AppxTarget.ts index e9f6663afde..1a1ac94b3d9 100644 --- a/packages/app-builder-lib/src/targets/AppxTarget.ts +++ b/packages/app-builder-lib/src/targets/AppxTarget.ts @@ -3,11 +3,11 @@ import { Nullish } from "builder-util-runtime" import { emptyDir, readdir, readFile, writeFile } from "fs-extra" import * as path from "path" import { AppXOptions } from "../" -import { getSignVendorPath, isOldWin6 } from "../codeSign/windowsSignToolManager" -import { Target } from "../core" -import { getTemplatePath } from "../util/pathManager" -import { VmManager } from "../vm/vm" -import { WinPackager } from "../winPackager" +import { getSignVendorPath, isOldWin6 } from "../codeSign/windowsSignToolManager.js" +import { Target } from "../core.js" +import { getTemplatePath } from "../util/pathManager.js" +import { VmManager } from "../vm/vm.js" +import { WinPackager } from "../winPackager.js" import { createStageDir } from "./targetUtil.js.js" const APPX_ASSETS_DIR_NAME = "appx" diff --git a/packages/app-builder-lib/src/targets/ArchiveTarget.ts b/packages/app-builder-lib/src/targets/ArchiveTarget.ts index 86414c12efe..da9d07497aa 100644 --- a/packages/app-builder-lib/src/targets/ArchiveTarget.ts +++ b/packages/app-builder-lib/src/targets/ArchiveTarget.ts @@ -1,8 +1,8 @@ import { Arch, defaultArchFromString } from "builder-util" import * as path from "path" -import { Platform, Target, TargetSpecificOptions } from "../core" -import { copyFiles, getFileMatchers } from "../fileMatcher" -import { PlatformPackager } from "../platformPackager" +import { Platform, Target, TargetSpecificOptions } from "../core.js" +import { copyFiles, getFileMatchers } from "../fileMatcher.js" +import { PlatformPackager } from "../platformPackager.js" import { archive, tar } from "./archive.js.js" import { appendBlockmap, createBlockmap } from "./differentialUpdateInfoBuilder.js.js" diff --git a/packages/app-builder-lib/src/targets/FlatpakTarget.ts b/packages/app-builder-lib/src/targets/FlatpakTarget.ts index 33d938fd2ae..b2906178f83 100644 --- a/packages/app-builder-lib/src/targets/FlatpakTarget.ts +++ b/packages/app-builder-lib/src/targets/FlatpakTarget.ts @@ -2,10 +2,10 @@ import { bundle as bundleFlatpak, FlatpakBundlerBuildOptions, FlatpakManifest } import { Arch, copyFile, toLinuxArchString } from "builder-util" import { chmod, outputFile } from "fs-extra" import * as path from "path" -import { Target } from "../core" -import { LinuxPackager } from "../linuxPackager" -import { FlatpakOptions } from "../options/linuxOptions" -import { getNotLocalizedLicenseFile } from "../util/license" +import { Target } from "../core.js" +import { LinuxPackager } from "../linuxPackager.js" +import { FlatpakOptions } from "../options/linuxOptions.js" +import { getNotLocalizedLicenseFile } from "../util/license.js" import { LinuxTargetHelper } from "./LinuxTargetHelper.js.js" import { createStageDir, StageDir } from "./targetUtil.js.js" diff --git a/packages/app-builder-lib/src/targets/FpmTarget.ts b/packages/app-builder-lib/src/targets/FpmTarget.ts index 502e364427f..2f83004f40c 100644 --- a/packages/app-builder-lib/src/targets/FpmTarget.ts +++ b/packages/app-builder-lib/src/targets/FpmTarget.ts @@ -3,18 +3,18 @@ import { Nullish } from "builder-util-runtime" import { copyFile, outputFile, stat } from "fs-extra" import { mkdir, readFile } from "fs/promises" import * as path from "path" -import { smarten } from "../appInfo" -import { Target } from "../core" -import * as errorMessages from "../errorMessages" -import { LinuxPackager } from "../linuxPackager" -import { DebOptions, LinuxTargetSpecificOptions } from "../options/linuxOptions" -import { ArtifactCreated } from "../packagerApi" -import { getAppUpdatePublishConfiguration } from "../publish/PublishManager" -import { objectToArgs } from "../util/appBuilder" -import { computeEnv } from "../util/bundledTool" -import { hashFile } from "../util/hash" -import { isMacOsSierra } from "../util/macosVersion" -import { getTemplatePath } from "../util/pathManager" +import { smarten } from "../appInfo.js" +import { Target } from "../core.js" +import * as errorMessages from "../errorMessages.js" +import { LinuxPackager } from "../linuxPackager.js" +import { DebOptions, LinuxTargetSpecificOptions } from "../options/linuxOptions.js" +import { ArtifactCreated } from "../packagerApi.js" +import { getAppUpdatePublishConfiguration } from "../publish/PublishManager.js" +import { objectToArgs } from "../util/appBuilder.js" +import { computeEnv } from "../util/bundledTool.js" +import { hashFile } from "../util/hash.js" +import { isMacOsSierra } from "../util/macosVersion.js" +import { getTemplatePath } from "../util/pathManager.js" import { installPrefix, LinuxTargetHelper } from "./LinuxTargetHelper.js.js" import { getFpmPath, getLinuxToolsPath } from "./tools.js.js" diff --git a/packages/app-builder-lib/src/targets/LinuxTargetHelper.ts b/packages/app-builder-lib/src/targets/LinuxTargetHelper.ts index 14f24257c71..71ae9033a4a 100644 --- a/packages/app-builder-lib/src/targets/LinuxTargetHelper.ts +++ b/packages/app-builder-lib/src/targets/LinuxTargetHelper.ts @@ -2,9 +2,9 @@ import { asArray, exists, isEmptyOrSpaces, log } from "builder-util" import { outputFile } from "fs-extra" import { Lazy } from "lazy-val" import { join } from "path" -import { LinuxPackager } from "../linuxPackager" -import { LinuxTargetSpecificOptions } from "../options/linuxOptions" -import { IconInfo } from "../platformPackager" +import { LinuxPackager } from "../linuxPackager.js" +import { LinuxTargetSpecificOptions } from "../options/linuxOptions.js" +import { IconInfo } from "../platformPackager.js" export const installPrefix = "/opt" diff --git a/packages/app-builder-lib/src/targets/MsiTarget.ts b/packages/app-builder-lib/src/targets/MsiTarget.ts index e172dbc91da..b064cca44e4 100644 --- a/packages/app-builder-lib/src/targets/MsiTarget.ts +++ b/packages/app-builder-lib/src/targets/MsiTarget.ts @@ -6,14 +6,14 @@ import { readFile, writeFile } from "fs/promises" import { Lazy } from "lazy-val" import * as path from "path" import { MsiOptions } from "../" -import { getBinFromUrl } from "../binDownload" -import { Target } from "../core" -import { DesktopShortcutCreationPolicy, FinalCommonWindowsInstallerOptions, getEffectiveOptions } from "../options/CommonWindowsInstallerConfiguration" -import { normalizeExt } from "../platformPackager" -import { getTemplatePath } from "../util/pathManager" -import { VmManager } from "../vm/vm" -import { WineVmManager } from "../vm/WineVm" -import { WinPackager } from "../winPackager" +import { getBinFromUrl } from "../binDownload.js" +import { Target } from "../core.js" +import { DesktopShortcutCreationPolicy, FinalCommonWindowsInstallerOptions, getEffectiveOptions } from "../options/CommonWindowsInstallerConfiguration.js" +import { normalizeExt } from "../platformPackager.js" +import { getTemplatePath } from "../util/pathManager.js" +import { VmManager } from "../vm/vm.js" +import { WineVmManager } from "../vm/WineVm.js" +import { WinPackager } from "../winPackager.js" import { createStageDir, getWindowsInstallationDirName } from "./targetUtil.js.js" const ELECTRON_BUILDER_UPGRADE_CODE_NS_UUID = UUID.parse("d752fe43-5d44-44d5-9fc9-6dd1bf19d5cc") diff --git a/packages/app-builder-lib/src/targets/MsiWrappedTarget.ts b/packages/app-builder-lib/src/targets/MsiWrappedTarget.ts index c59a03fa101..4c7b5c12ccf 100644 --- a/packages/app-builder-lib/src/targets/MsiWrappedTarget.ts +++ b/packages/app-builder-lib/src/targets/MsiWrappedTarget.ts @@ -2,9 +2,9 @@ import { Arch, deepAssign } from "builder-util" import { UUID } from "builder-util-runtime" import * as path from "path" import { MsiWrappedOptions } from "../" -import { TargetConfiguration } from "../core" -import { FinalCommonWindowsInstallerOptions } from "../options/CommonWindowsInstallerConfiguration" -import { WinPackager } from "../winPackager" +import { TargetConfiguration } from "../core.js" +import { FinalCommonWindowsInstallerOptions } from "../options/CommonWindowsInstallerConfiguration.js" +import { WinPackager } from "../winPackager.js" import MsiTarget from "./MsiTarget.js.js" const ELECTRON_MSI_WRAPPED_NS_UUID = UUID.parse("467f7bb2-a83c-442f-b776-394d316e8e53") diff --git a/packages/app-builder-lib/src/targets/archive.ts b/packages/app-builder-lib/src/targets/archive.ts index b4883fb7f72..9e6429eb869 100644 --- a/packages/app-builder-lib/src/targets/archive.ts +++ b/packages/app-builder-lib/src/targets/archive.ts @@ -3,7 +3,7 @@ import { move } from "fs-extra" import * as path from "path" import { create, CreateOptions, FileOptions } from "tar" import { TmpDir } from "temp-file" -import { CompressionLevel } from "../core" +import { CompressionLevel } from "../core.js" import { getLinuxToolsPath } from "./tools.js.js" /** @internal */ diff --git a/packages/app-builder-lib/src/targets/differentialUpdateInfoBuilder.ts b/packages/app-builder-lib/src/targets/differentialUpdateInfoBuilder.ts index 71869cf1f0b..32c66d9b5ab 100644 --- a/packages/app-builder-lib/src/targets/differentialUpdateInfoBuilder.ts +++ b/packages/app-builder-lib/src/targets/differentialUpdateInfoBuilder.ts @@ -1,9 +1,9 @@ import { log } from "builder-util" import { BlockMapDataHolder, PackageFileInfo } from "builder-util-runtime" import * as path from "path" -import { Target } from "../core" -import { PlatformPackager } from "../platformPackager" -import { executeAppBuilderAsJson } from "../util/appBuilder" +import { Target } from "../core.js" +import { PlatformPackager } from "../platformPackager.js" +import { executeAppBuilderAsJson } from "../util/appBuilder.js" import { ArchiveOptions } from "./archive.js.js" export const BLOCK_MAP_FILE_SUFFIX = ".blockmap" diff --git a/packages/app-builder-lib/src/targets/nsis/NsisTarget.ts b/packages/app-builder-lib/src/targets/nsis/NsisTarget.ts index d0358d8355f..d3eb1723632 100644 --- a/packages/app-builder-lib/src/targets/nsis/NsisTarget.ts +++ b/packages/app-builder-lib/src/targets/nsis/NsisTarget.ts @@ -20,17 +20,17 @@ import _debug from "debug" import * as fs from "fs" import { readFile, stat, unlink } from "fs-extra" import * as path from "path" -import { Target } from "../../core" -import { DesktopShortcutCreationPolicy, getEffectiveOptions } from "../../options/CommonWindowsInstallerConfiguration" -import { chooseNotNull, computeSafeArtifactNameIfNeeded, normalizeExt } from "../../platformPackager" -import { hashFile } from "../../util/hash" -import { isMacOsCatalina } from "../../util/macosVersion" -import { time } from "../../util/timer" -import { execWine } from "../../wine" -import { WinPackager } from "../../winPackager" -import { archive, ArchiveOptions } from "../archive" -import { appendBlockmap, configureDifferentialAwareArchiveOptions, createBlockmap, createNsisWebDifferentialUpdateInfo } from "../differentialUpdateInfoBuilder" -import { getWindowsInstallationAppPackageName, getWindowsInstallationDirName } from "../targetUtil" +import { Target } from "../../core.js" +import { DesktopShortcutCreationPolicy, getEffectiveOptions } from "../../options/CommonWindowsInstallerConfiguration.js" +import { chooseNotNull, computeSafeArtifactNameIfNeeded, normalizeExt } from "../../platformPackager.js" +import { hashFile } from "../../util/hash.js" +import { isMacOsCatalina } from "../../util/macosVersion.js" +import { time } from "../../util/timer.js" +import { execWine } from "../../wine.js" +import { WinPackager } from "../../winPackager.js" +import { archive, ArchiveOptions } from "../archive.js" +import { appendBlockmap, configureDifferentialAwareArchiveOptions, createBlockmap, createNsisWebDifferentialUpdateInfo } from "../differentialUpdateInfoBuilder.js" +import { getWindowsInstallationAppPackageName, getWindowsInstallationDirName } from "../targetUtil.js" import { Commands } from "./Commands.js.js" import { Defines } from "./Defines.js.js" import { addCustomMessageFileInclude, createAddLangsMacro, LangConfigurator } from "./nsisLang.js.js" diff --git a/packages/app-builder-lib/src/targets/nsis/WebInstallerTarget.ts b/packages/app-builder-lib/src/targets/nsis/WebInstallerTarget.ts index de96916cd1b..bc16c003062 100644 --- a/packages/app-builder-lib/src/targets/nsis/WebInstallerTarget.ts +++ b/packages/app-builder-lib/src/targets/nsis/WebInstallerTarget.ts @@ -1,6 +1,6 @@ import { Arch, log } from "builder-util" -import { computeDownloadUrl, getPublishConfigs, getPublishConfigsForUpdateInfo } from "../../publish/PublishManager" -import { WinPackager } from "../../winPackager" +import { computeDownloadUrl, getPublishConfigs, getPublishConfigsForUpdateInfo } from "../../publish/PublishManager.js" +import { WinPackager } from "../../winPackager.js" import { NsisWebOptions } from "./nsisOptions.js.js" import { NsisTarget } from "./NsisTarget.js.js" import { AppPackageHelper } from "./nsisUtil.js.js" diff --git a/packages/app-builder-lib/src/targets/nsis/nsisLang.ts b/packages/app-builder-lib/src/targets/nsis/nsisLang.ts index 778fb6f67c8..e673c58bc03 100644 --- a/packages/app-builder-lib/src/targets/nsis/nsisLang.ts +++ b/packages/app-builder-lib/src/targets/nsis/nsisLang.ts @@ -3,8 +3,8 @@ import _debug from "debug" import { outputFile, readFile } from "fs-extra" import { load } from "js-yaml" import * as path from "path" -import { PlatformPackager } from "../../platformPackager" -import { bundledLanguages, langIdToName, lcid, toLangWithRegion } from "../../util/langs" +import { PlatformPackager } from "../../platformPackager.js" +import { bundledLanguages, langIdToName, lcid, toLangWithRegion } from "../../util/langs.js" import { NsisOptions } from "./nsisOptions.js.js" import { NsisScriptGenerator } from "./nsisScriptGenerator.js.js" import { nsisTemplatesDir } from "./nsisUtil.js.js" diff --git a/packages/app-builder-lib/src/targets/nsis/nsisLicense.ts b/packages/app-builder-lib/src/targets/nsis/nsisLicense.ts index b08ebe1d1be..c8cee8aae0f 100644 --- a/packages/app-builder-lib/src/targets/nsis/nsisLicense.ts +++ b/packages/app-builder-lib/src/targets/nsis/nsisLicense.ts @@ -1,9 +1,9 @@ import { log } from "builder-util" import * as fs from "fs" import * as path from "path" -import { lcid } from "../../util/langs" -import { getLicenseFiles, getNotLocalizedLicenseFile } from "../../util/license" -import { WinPackager } from "../../winPackager" +import { lcid } from "../../util/langs.js" +import { getLicenseFiles, getNotLocalizedLicenseFile } from "../../util/license.js" +import { WinPackager } from "../../winPackager.js" import { NsisOptions } from "./nsisOptions.js.js" import { NsisScriptGenerator } from "./nsisScriptGenerator.js.js" import { nsisTemplatesDir } from "./nsisUtil.js.js" diff --git a/packages/app-builder-lib/src/targets/nsis/nsisOptions.ts b/packages/app-builder-lib/src/targets/nsis/nsisOptions.ts index f6c17f655a4..ff97b067d61 100644 --- a/packages/app-builder-lib/src/targets/nsis/nsisOptions.ts +++ b/packages/app-builder-lib/src/targets/nsis/nsisOptions.ts @@ -1,5 +1,5 @@ -import { CommonWindowsInstallerConfiguration } from "../.." -import { TargetSpecificOptions } from "../../core" +import { CommonWindowsInstallerConfiguration } from "../...js" +import { TargetSpecificOptions } from "../../core.js" export interface CustomNsisBinary { /** diff --git a/packages/app-builder-lib/src/targets/nsis/nsisUtil.ts b/packages/app-builder-lib/src/targets/nsis/nsisUtil.ts index 61f9e4f8f26..b8dd6a0b1c6 100644 --- a/packages/app-builder-lib/src/targets/nsis/nsisUtil.ts +++ b/packages/app-builder-lib/src/targets/nsis/nsisUtil.ts @@ -3,8 +3,8 @@ import { PackageFileInfo } from "builder-util-runtime" import * as fs from "fs/promises" import * as path from "path" import * as zlib from "zlib" -import { getBinFromCustomLoc, getBinFromUrl } from "../../binDownload" -import { getTemplatePath } from "../../util/pathManager" +import { getBinFromCustomLoc, getBinFromUrl } from "../../binDownload.js" +import { getTemplatePath } from "../../util/pathManager.js" import { NsisOptions } from "./nsisOptions.js.js" import { NsisTarget } from "./NsisTarget.js.js" diff --git a/packages/app-builder-lib/src/targets/pkg.ts b/packages/app-builder-lib/src/targets/pkg.ts index 8bf509e41fb..e4fc0f4e621 100644 --- a/packages/app-builder-lib/src/targets/pkg.ts +++ b/packages/app-builder-lib/src/targets/pkg.ts @@ -3,13 +3,13 @@ import { Nullish } from "builder-util-runtime" import { readdirSync } from "fs" import { readFile, unlink, writeFile } from "fs/promises" import * as path from "path" -import { filterCFBundleIdentifier } from "../appInfo" -import { findIdentity, Identity } from "../codeSign/macCodeSign" -import { Target } from "../core" -import { MacPackager } from "../macPackager" -import { PkgOptions } from "../options/pkgOptions" -import { savePlistFile, parsePlistFile, PlistObject } from "../util/plist" -import { getNotLocalizedLicenseFile } from "../util/license" +import { filterCFBundleIdentifier } from "../appInfo.js" +import { findIdentity, Identity } from "../codeSign/macCodeSign.js" +import { Target } from "../core.js" +import { MacPackager } from "../macPackager.js" +import { PkgOptions } from "../options/pkgOptions.js" +import { savePlistFile, parsePlistFile, PlistObject } from "../util/plist.js" +import { getNotLocalizedLicenseFile } from "../util/license.js" const certType = "Developer ID Installer" diff --git a/packages/app-builder-lib/src/targets/snap.ts b/packages/app-builder-lib/src/targets/snap.ts index 3e279e725d3..31cdae30c6c 100644 --- a/packages/app-builder-lib/src/targets/snap.ts +++ b/packages/app-builder-lib/src/targets/snap.ts @@ -4,11 +4,11 @@ import { outputFile, readFile } from "fs-extra" import { load } from "js-yaml" import * as path from "path" import * as semver from "semver" -import { Configuration } from "../configuration" -import { Publish, Target } from "../core" -import { LinuxPackager } from "../linuxPackager" -import { PlugDescriptor, SnapOptions } from "../options/SnapOptions" -import { getTemplatePath } from "../util/pathManager" +import { Configuration } from "../configuration.js" +import { Publish, Target } from "../core.js" +import { LinuxPackager } from "../linuxPackager.js" +import { PlugDescriptor, SnapOptions } from "../options/SnapOptions.js" +import { getTemplatePath } from "../util/pathManager.js" import { LinuxTargetHelper } from "./LinuxTargetHelper.js.js" import { createStageDirPath } from "./targetUtil.js.js" diff --git a/packages/app-builder-lib/src/targets/targetFactory.ts b/packages/app-builder-lib/src/targets/targetFactory.ts index baa61c53e12..cfdf6392e17 100644 --- a/packages/app-builder-lib/src/targets/targetFactory.ts +++ b/packages/app-builder-lib/src/targets/targetFactory.ts @@ -1,6 +1,6 @@ import { addValue, Arch, archFromString, ArchType, asArray } from "builder-util" -import { DEFAULT_TARGET, DIR_TARGET, Platform, Target, TargetConfiguration } from "../core" -import { PlatformPackager } from "../platformPackager" +import { DEFAULT_TARGET, DIR_TARGET, Platform, Target, TargetConfiguration } from "../core.js" +import { PlatformPackager } from "../platformPackager.js" import { ArchiveTarget } from "./ArchiveTarget.js.js" const archiveTargets = new Set(["zip", "7z", "tar.xz", "tar.lz", "tar.gz", "tar.bz2"]) diff --git a/packages/app-builder-lib/src/targets/targetUtil.ts b/packages/app-builder-lib/src/targets/targetUtil.ts index cb7fb2a8cff..1c62fd9afde 100644 --- a/packages/app-builder-lib/src/targets/targetUtil.ts +++ b/packages/app-builder-lib/src/targets/targetUtil.ts @@ -2,7 +2,7 @@ import { Arch, debug } from "builder-util" import * as fs from "fs/promises" import * as path from "path" import { AppInfo, Target } from "../" -import { PlatformPackager } from "../platformPackager" +import { PlatformPackager } from "../platformPackager.js" export class StageDir { constructor(readonly dir: string) {} diff --git a/packages/app-builder-lib/src/targets/tools.ts b/packages/app-builder-lib/src/targets/tools.ts index c3a4f535a3a..089df14cf95 100644 --- a/packages/app-builder-lib/src/targets/tools.ts +++ b/packages/app-builder-lib/src/targets/tools.ts @@ -1,5 +1,5 @@ import * as path from "path" -import { getBinFromUrl } from "../binDownload" +import { getBinFromUrl } from "../binDownload.js" export function getLinuxToolsPath() { return getBinFromUrl("linux-tools-mac-10.12.3", "linux-tools-mac-10.12.3.7z", "SQ8fqIRVXuQVWnVgaMTDWyf2TLAJjJYw3tRSqQJECmgF6qdM7Kogfa6KD49RbGzzMYIFca9Uw3MdsxzOPRWcYw==") diff --git a/packages/app-builder-lib/src/util/AppFileWalker.ts b/packages/app-builder-lib/src/util/AppFileWalker.ts index c0f5a4c7b2e..107c4480e70 100644 --- a/packages/app-builder-lib/src/util/AppFileWalker.ts +++ b/packages/app-builder-lib/src/util/AppFileWalker.ts @@ -1,8 +1,8 @@ import { FileConsumer, Filter, FilterStats } from "builder-util" import { readlink, stat, Stats } from "fs-extra" import * as path from "path" -import { FileMatcher } from "../fileMatcher" -import { Packager } from "../packager" +import { FileMatcher } from "../fileMatcher.js" +import { Packager } from "../packager.js" function addAllPatternIfNeed(matcher: FileMatcher) { if (!matcher.isSpecifiedAsEmptyArray && (matcher.isEmpty() || matcher.containsOnlyIgnore())) { diff --git a/packages/app-builder-lib/src/util/NodeModuleCopyHelper.ts b/packages/app-builder-lib/src/util/NodeModuleCopyHelper.ts index 63c19a3f9f9..a408e317969 100644 --- a/packages/app-builder-lib/src/util/NodeModuleCopyHelper.ts +++ b/packages/app-builder-lib/src/util/NodeModuleCopyHelper.ts @@ -3,8 +3,8 @@ import { realpathSync } from "fs" import { lstat, lstatSync, readdir } from "fs-extra" import * as path from "path" import asyncPool from "tiny-async-pool" -import { excludedNames, FileMatcher } from "../fileMatcher" -import { Packager } from "../packager" +import { excludedNames, FileMatcher } from "../fileMatcher.js" +import { Packager } from "../packager.js" import { FileCopyHelper } from "./AppFileWalker.js.js" import { NodeModuleInfo } from "./packageDependencies.js.js" import { resolveFunction } from "./resolve.js.js" diff --git a/packages/app-builder-lib/src/util/appFileCopier.ts b/packages/app-builder-lib/src/util/appFileCopier.ts index 87707e63e7b..98963811d65 100644 --- a/packages/app-builder-lib/src/util/appFileCopier.ts +++ b/packages/app-builder-lib/src/util/appFileCopier.ts @@ -4,16 +4,16 @@ import { ensureSymlink } from "fs-extra" import { mkdir, readlink } from "fs/promises" import * as path from "path" import asyncPool from "tiny-async-pool" -import { isLibOrExe } from "../asar/unpackDetector" -import { Platform } from "../core" -import { excludedExts, FileMatcher } from "../fileMatcher" -import { createElectronCompilerHost, NODE_MODULES_PATTERN } from "../fileTransformer" -import { Packager } from "../packager" -import { PlatformPackager } from "../platformPackager" +import { isLibOrExe } from "../asar/unpackDetector.js" +import { Platform } from "../core.js" +import { excludedExts, FileMatcher } from "../fileMatcher.js" +import { createElectronCompilerHost, NODE_MODULES_PATTERN } from "../fileTransformer.js" +import { Packager } from "../packager.js" +import { PlatformPackager } from "../platformPackager.js" import { AppFileWalker } from "./AppFileWalker.js.js" import { NodeModuleCopyHelper } from "./NodeModuleCopyHelper.js.js" import { NodeModuleInfo } from "./packageDependencies.js.js" -import { getNodeModules } from "../node-module-collector" +import { getNodeModules } from "../node-module-collector.js" const BOWER_COMPONENTS_PATTERN = `${path.sep}bower_components${path.sep}` /** @internal */ diff --git a/packages/app-builder-lib/src/util/config/config.ts b/packages/app-builder-lib/src/util/config/config.ts index 9b908189e89..18a8d052b23 100644 --- a/packages/app-builder-lib/src/util/config/config.ts +++ b/packages/app-builder-lib/src/util/config/config.ts @@ -3,10 +3,10 @@ import { Nullish } from "builder-util-runtime" import { readJson } from "fs-extra" import { Lazy } from "lazy-val" import * as path from "path" -import { Configuration } from "../../configuration" -import { FileSet } from "../../options/PlatformSpecificBuildOptions" -import { reactCra } from "../../presets/rectCra" -import { PACKAGE_VERSION } from "../../version" +import { Configuration } from "../../configuration.js" +import { FileSet } from "../../options/PlatformSpecificBuildOptions.js" +import { reactCra } from "../../presets/rectCra.js" +import { PACKAGE_VERSION } from "../../version.js" import { getConfig as _getConfig, loadParentConfig, orNullIfFileNotExist, ReadConfigRequest } from "./load.js.js" const validateSchema = require("@develar/schema-utils") diff --git a/packages/app-builder-lib/src/util/config/load.ts b/packages/app-builder-lib/src/util/config/load.ts index 2c398084dd4..a0b883207db 100644 --- a/packages/app-builder-lib/src/util/config/load.ts +++ b/packages/app-builder-lib/src/util/config/load.ts @@ -6,7 +6,7 @@ import { createJiti } from "jiti" import { load } from "js-yaml" import { Lazy } from "lazy-val" import * as path from "path" -import { resolveModule } from "../resolve" +import { resolveModule } from "../resolve.js" const jiti = createJiti(__filename) diff --git a/packages/app-builder-lib/src/util/license.ts b/packages/app-builder-lib/src/util/license.ts index 835320830a3..8f268f45b0c 100644 --- a/packages/app-builder-lib/src/util/license.ts +++ b/packages/app-builder-lib/src/util/license.ts @@ -1,6 +1,6 @@ import { Nullish } from "builder-util-runtime" import * as path from "path" -import { PlatformPackager } from "../platformPackager" +import { PlatformPackager } from "../platformPackager.js" import { langIdToName, toLangWithRegion } from "./langs.js.js" export function getLicenseAssets(fileNames: Array, packager: PlatformPackager) { diff --git a/packages/app-builder-lib/src/util/macroExpander.ts b/packages/app-builder-lib/src/util/macroExpander.ts index 33e9109e92c..8ae9a4baccf 100644 --- a/packages/app-builder-lib/src/util/macroExpander.ts +++ b/packages/app-builder-lib/src/util/macroExpander.ts @@ -1,6 +1,6 @@ import { InvalidConfigurationError } from "builder-util" import { Nullish } from "builder-util-runtime" -import { AppInfo } from "../appInfo" +import { AppInfo } from "../appInfo.js" export function expandMacro(pattern: string, arch: string | Nullish, appInfo: AppInfo, extra: any = {}, isProductNameSanitized = true): string { if (arch == null) { diff --git a/packages/app-builder-lib/src/util/packageMetadata.ts b/packages/app-builder-lib/src/util/packageMetadata.ts index 7d0ea1dcc34..74714b094a0 100644 --- a/packages/app-builder-lib/src/util/packageMetadata.ts +++ b/packages/app-builder-lib/src/util/packageMetadata.ts @@ -3,7 +3,7 @@ import { Nullish } from "builder-util-runtime" import { readFile, readJson, readJsonSync } from "fs-extra" import * as path from "path" import * as semver from "semver" -import { Metadata } from "../options/metadata" +import { Metadata } from "../options/metadata.js" import { normalizePackageData } from "./normalizePackageData.js.js" /** @internal */ diff --git a/packages/app-builder-lib/src/util/repositoryInfo.ts b/packages/app-builder-lib/src/util/repositoryInfo.ts index 2a24592f259..c5a6ee98e02 100644 --- a/packages/app-builder-lib/src/util/repositoryInfo.ts +++ b/packages/app-builder-lib/src/util/repositoryInfo.ts @@ -2,8 +2,8 @@ import { orNullIfFileNotExist } from "builder-util" import { readFile } from "fs-extra" import GitHost, { fromUrl } from "hosted-git-info" import * as path from "path" -import { SourceRepositoryInfo } from "../core" -import { Metadata, RepositoryInfo } from "../options/metadata" +import { SourceRepositoryInfo } from "../core.js" +import { Metadata, RepositoryInfo } from "../options/metadata.js" export function getRepositoryInfo(projectDir: string, metadata?: Metadata, devMetadata?: Metadata | null): Promise { return _getInfo(projectDir, (devMetadata == null ? null : devMetadata.repository) || (metadata == null ? null : metadata.repository)) diff --git a/packages/app-builder-lib/src/util/resolve.ts b/packages/app-builder-lib/src/util/resolve.ts index 6fabf84197f..93bf6822fe9 100644 --- a/packages/app-builder-lib/src/util/resolve.ts +++ b/packages/app-builder-lib/src/util/resolve.ts @@ -1,7 +1,7 @@ import { log } from "builder-util/out/log" import debug from "debug" import * as path from "path" -import * as requireMaybe from "../../helpers/dynamic-import" +import * as requireMaybe from "../../helpers/dynamic-import.js" export async function resolveModule(type: string | undefined, name: string): Promise { try { diff --git a/packages/app-builder-lib/src/util/yarn.ts b/packages/app-builder-lib/src/util/yarn.ts index 0113e7f9ea1..fd447abb010 100644 --- a/packages/app-builder-lib/src/util/yarn.ts +++ b/packages/app-builder-lib/src/util/yarn.ts @@ -3,10 +3,10 @@ import { pathExists } from "fs-extra" import { Lazy } from "lazy-val" import { homedir } from "os" import * as path from "path" -import { Configuration } from "../configuration" +import { Configuration } from "../configuration.js" import { executeAppBuilderAndWriteJson } from "./appBuilder.js.js" -import { PM, getPackageManagerCommand } from "../node-module-collector" -import { detectPackageManager } from "../node-module-collector/packageManager" +import { PM, getPackageManagerCommand } from "../node-module-collector.js" +import { detectPackageManager } from "../node-module-collector/packageManager.js" import { NodeModuleDirInfo } from "./packageDependencies.js.js" import { rebuild as remoteRebuild } from "./rebuild.js.js" import * as which from "which" diff --git a/packages/app-builder-lib/src/vm/WineVm.ts b/packages/app-builder-lib/src/vm/WineVm.ts index 6425964063f..956d5c97e34 100644 --- a/packages/app-builder-lib/src/vm/WineVm.ts +++ b/packages/app-builder-lib/src/vm/WineVm.ts @@ -1,7 +1,7 @@ import { ExtraSpawnOptions } from "builder-util" import { ExecFileOptions, SpawnOptions } from "child_process" import * as path from "path" -import { execWine } from "../wine" +import { execWine } from "../wine.js" import { VmManager } from "./vm.js.js" export class WineVmManager extends VmManager { diff --git a/packages/builder-util/src/util.ts b/packages/builder-util/src/util.ts index bbd571c80cf..5727744db00 100644 --- a/packages/builder-util/src/util.ts +++ b/packages/builder-util/src/util.ts @@ -17,7 +17,7 @@ if (process.env.JEST_WORKER_ID == null) { export { safeStringifyJson, retry } from "builder-util-runtime" export { TmpDir } from "temp-file" -export * from "./arch" +export * from "./arch.js" export { Arch, archFromString, ArchType, defaultArchFromString, getArchCliNames, getArchSuffix, toLinuxArchString } from "./arch" export { AsyncTaskManager } from "./asyncTaskManager" export { DebugLogger } from "./DebugLogger" diff --git a/packages/dmg-builder/src/dmgUtil.ts b/packages/dmg-builder/src/dmgUtil.ts index 691e25323c4..cf0b4538835 100644 --- a/packages/dmg-builder/src/dmgUtil.ts +++ b/packages/dmg-builder/src/dmgUtil.ts @@ -5,7 +5,7 @@ import { hdiUtil, hdiutilTransientExitCodes } from "./hdiuil.js.js" import { writeFile } from "fs-extra" import { DmgBuildConfig } from "./dmg.js.js" -export { DmgTarget } from "./dmg" +export { DmgTarget } from "./dmg.js" const root = path.join(__dirname, "..") diff --git a/packages/electron-builder/src/cli/cli.ts b/packages/electron-builder/src/cli/cli.ts index 315e98fadc8..1961aa47c0e 100644 --- a/packages/electron-builder/src/cli/cli.ts +++ b/packages/electron-builder/src/cli/cli.ts @@ -8,8 +8,8 @@ import * as chalk from "chalk" import { readJson } from "fs-extra" import { isCI } from "ci-info" import * as path from "path" -import { build, configureBuildCommand, createYargs } from "../builder" -import { configurePublishCommand, publish } from "../publish" +import { build, configureBuildCommand, createYargs } from "../builder.js" +import { configurePublishCommand, publish } from "../publish.js" import { createSelfSignedCert } from "./create-self-signed-cert.js.js" import { configureInstallAppDepsCommand, installAppDeps } from "./install-app-deps.js.js" import { start } from "./start.js.js" diff --git a/packages/electron-publish/src/index.ts b/packages/electron-publish/src/index.ts index c043f271f6b..afa128c61e3 100644 --- a/packages/electron-publish/src/index.ts +++ b/packages/electron-publish/src/index.ts @@ -2,7 +2,7 @@ import { Arch } from "builder-util" import { CancellationToken } from "builder-util-runtime" import { MultiProgress } from "./multiProgress.js.js" -export { BitbucketPublisher } from "./bitbucketPublisher" +export { BitbucketPublisher } from "./bitbucketPublisher.js" export { GitHubPublisher } from "./gitHubPublisher" export { GitlabPublisher } from "./gitlabPublisher" export { KeygenPublisher } from "./keygenPublisher" diff --git a/packages/electron-publish/src/s3/baseS3Publisher.ts b/packages/electron-publish/src/s3/baseS3Publisher.ts index ca4016864a5..dd258174f81 100644 --- a/packages/electron-publish/src/s3/baseS3Publisher.ts +++ b/packages/electron-publish/src/s3/baseS3Publisher.ts @@ -3,7 +3,7 @@ import { BaseS3Options } from "builder-util-runtime" import { mkdir, symlink } from "fs/promises" import * as path from "path" import { PublishContext, UploadTask } from ".." -import { Publisher } from "../publisher" +import { Publisher } from "../publisher.js" export abstract class BaseS3Publisher extends Publisher { protected constructor( diff --git a/packages/electron-updater/src/differentialDownloader/DifferentialDownloader.ts b/packages/electron-updater/src/differentialDownloader/DifferentialDownloader.ts index 029368ddcce..7889fa24fb3 100644 --- a/packages/electron-updater/src/differentialDownloader/DifferentialDownloader.ts +++ b/packages/electron-updater/src/differentialDownloader/DifferentialDownloader.ts @@ -4,7 +4,7 @@ import { close, open } from "fs-extra" import { createWriteStream } from "fs" import { OutgoingHttpHeaders, RequestOptions } from "http" import { ProgressInfo, CancellationToken } from "builder-util-runtime" -import { Logger } from "../types" +import { Logger } from "../types.js" import { copyData } from "./DataSplitter.js.js" import { URL } from "url" import { computeOperations, Operation, OperationKind } from "./downloadPlanBuilder.js.js" diff --git a/packages/electron-updater/src/differentialDownloader/downloadPlanBuilder.ts b/packages/electron-updater/src/differentialDownloader/downloadPlanBuilder.ts index 7a7c1612c0a..fbf900ccbc4 100644 --- a/packages/electron-updater/src/differentialDownloader/downloadPlanBuilder.ts +++ b/packages/electron-updater/src/differentialDownloader/downloadPlanBuilder.ts @@ -1,5 +1,5 @@ import { BlockMap, BlockMapFile } from "builder-util-runtime/out/blockMapApi" -import { Logger } from "../types" +import { Logger } from "../types.js" export enum OperationKind { COPY, diff --git a/packages/electron-updater/src/main.ts b/packages/electron-updater/src/main.ts index e70aafdcfa5..bb1ca9ddfde 100644 --- a/packages/electron-updater/src/main.ts +++ b/packages/electron-updater/src/main.ts @@ -3,7 +3,7 @@ import * as path from "path" import { AppUpdater } from "./AppUpdater.js.js" import { UpdateInfo } from "builder-util-runtime" -export { BaseUpdater } from "./BaseUpdater" +export { BaseUpdater } from "./BaseUpdater.js" export { AppUpdater, NoOpLogger } from "./AppUpdater" export { Provider } from "./providers/Provider" export { AppImageUpdater } from "./AppImageUpdater" diff --git a/packages/electron-updater/src/providers/BitbucketProvider.ts b/packages/electron-updater/src/providers/BitbucketProvider.ts index 334e5d48e6b..24da7a04546 100644 --- a/packages/electron-updater/src/providers/BitbucketProvider.ts +++ b/packages/electron-updater/src/providers/BitbucketProvider.ts @@ -1,7 +1,7 @@ import { CancellationToken, BitbucketOptions, newError, UpdateInfo } from "builder-util-runtime" -import { AppUpdater } from "../AppUpdater" -import { ResolvedUpdateFileInfo } from "../types" -import { getChannelFilename, newBaseUrl, newUrlFromBase } from "../util" +import { AppUpdater } from "../AppUpdater.js" +import { ResolvedUpdateFileInfo } from "../types.js" +import { getChannelFilename, newBaseUrl, newUrlFromBase } from "../util.js" import { parseUpdateInfo, Provider, ProviderRuntimeOptions, resolveFiles } from "./Provider.js.js" export class BitbucketProvider extends Provider { diff --git a/packages/electron-updater/src/providers/GenericProvider.ts b/packages/electron-updater/src/providers/GenericProvider.ts index 263ca938d05..f4a74b4dfa2 100644 --- a/packages/electron-updater/src/providers/GenericProvider.ts +++ b/packages/electron-updater/src/providers/GenericProvider.ts @@ -1,7 +1,7 @@ import { GenericServerOptions, HttpError, newError, UpdateInfo } from "builder-util-runtime" -import { AppUpdater } from "../AppUpdater" -import { ResolvedUpdateFileInfo } from "../types" -import { getChannelFilename, newBaseUrl, newUrlFromBase } from "../util" +import { AppUpdater } from "../AppUpdater.js" +import { ResolvedUpdateFileInfo } from "../types.js" +import { getChannelFilename, newBaseUrl, newUrlFromBase } from "../util.js" import { parseUpdateInfo, Provider, ProviderRuntimeOptions, resolveFiles } from "./Provider.js.js" export class GenericProvider extends Provider { diff --git a/packages/electron-updater/src/providers/GitHubProvider.ts b/packages/electron-updater/src/providers/GitHubProvider.ts index d86ffb9cb36..e8ba6b0c895 100644 --- a/packages/electron-updater/src/providers/GitHubProvider.ts +++ b/packages/electron-updater/src/providers/GitHubProvider.ts @@ -1,9 +1,9 @@ import { CancellationToken, GithubOptions, githubUrl, HttpError, newError, parseXml, ReleaseNoteInfo, UpdateInfo, XElement } from "builder-util-runtime" import * as semver from "semver" import { URL } from "url" -import { AppUpdater } from "../AppUpdater" -import { ResolvedUpdateFileInfo } from "../types" -import { getChannelFilename, newBaseUrl, newUrlFromBase } from "../util" +import { AppUpdater } from "../AppUpdater.js" +import { ResolvedUpdateFileInfo } from "../types.js" +import { getChannelFilename, newBaseUrl, newUrlFromBase } from "../util.js" import { parseUpdateInfo, Provider, ProviderRuntimeOptions, resolveFiles } from "./Provider.js.js" const hrefRegExp = /\/tag\/([^/]+)$/ diff --git a/packages/electron-updater/src/providers/GitLabProvider.ts b/packages/electron-updater/src/providers/GitLabProvider.ts index 2e5eb752512..a7c831ea678 100644 --- a/packages/electron-updater/src/providers/GitLabProvider.ts +++ b/packages/electron-updater/src/providers/GitLabProvider.ts @@ -2,9 +2,9 @@ import { CancellationToken, GitlabOptions, HttpError, newError, UpdateFileInfo, import { URL } from "url" // @ts-ignore import * as escapeRegExp from "lodash.escaperegexp" -import { AppUpdater } from "../AppUpdater" -import { ResolvedUpdateFileInfo } from "../types" -import { getChannelFilename, newBaseUrl, newUrlFromBase } from "../util" +import { AppUpdater } from "../AppUpdater.js" +import { ResolvedUpdateFileInfo } from "../types.js" +import { getChannelFilename, newBaseUrl, newUrlFromBase } from "../util.js" import { getFileList, parseUpdateInfo, Provider, ProviderRuntimeOptions } from "./Provider.js.js" interface GitlabUpdateInfo extends UpdateInfo { diff --git a/packages/electron-updater/src/providers/KeygenProvider.ts b/packages/electron-updater/src/providers/KeygenProvider.ts index d2dd94d3cdd..6aeb8ed773c 100644 --- a/packages/electron-updater/src/providers/KeygenProvider.ts +++ b/packages/electron-updater/src/providers/KeygenProvider.ts @@ -1,7 +1,7 @@ import { CancellationToken, KeygenOptions, newError, UpdateInfo } from "builder-util-runtime" -import { AppUpdater } from "../AppUpdater" -import { ResolvedUpdateFileInfo } from "../types" -import { getChannelFilename, newBaseUrl, newUrlFromBase } from "../util" +import { AppUpdater } from "../AppUpdater.js" +import { ResolvedUpdateFileInfo } from "../types.js" +import { getChannelFilename, newBaseUrl, newUrlFromBase } from "../util.js" import { parseUpdateInfo, Provider, ProviderRuntimeOptions, resolveFiles } from "./Provider.js.js" export class KeygenProvider extends Provider { diff --git a/packages/electron-updater/src/providers/PrivateGitHubProvider.ts b/packages/electron-updater/src/providers/PrivateGitHubProvider.ts index bffdb0e2f44..5f922c2f9c7 100644 --- a/packages/electron-updater/src/providers/PrivateGitHubProvider.ts +++ b/packages/electron-updater/src/providers/PrivateGitHubProvider.ts @@ -2,11 +2,11 @@ import { CancellationToken, GithubOptions, HttpError, newError, UpdateInfo } fro import { OutgoingHttpHeaders, RequestOptions } from "http" import { load } from "js-yaml" import * as path from "path" -import { AppUpdater } from "../AppUpdater" +import { AppUpdater } from "../AppUpdater.js" import { URL } from "url" -import { getChannelFilename, newUrlFromBase } from "../util" +import { getChannelFilename, newUrlFromBase } from "../util.js" import { BaseGitHubProvider } from "./GitHubProvider.js.js" -import { ResolvedUpdateFileInfo } from "../types" +import { ResolvedUpdateFileInfo } from "../types.js" import { getFileList, ProviderRuntimeOptions } from "./Provider.js.js" export interface PrivateGitHubUpdateInfo extends UpdateInfo { diff --git a/packages/electron-updater/src/providers/Provider.ts b/packages/electron-updater/src/providers/Provider.ts index 4d247325b33..6098a1f62d5 100644 --- a/packages/electron-updater/src/providers/Provider.ts +++ b/packages/electron-updater/src/providers/Provider.ts @@ -2,9 +2,9 @@ import { CancellationToken, configureRequestUrl, newError, safeStringifyJson, Up import { OutgoingHttpHeaders, RequestOptions } from "http" import { load } from "js-yaml" import { URL } from "url" -import { ElectronHttpExecutor } from "../electronHttpExecutor" -import { ResolvedUpdateFileInfo } from "../types" -import { newUrlFromBase } from "../util" +import { ElectronHttpExecutor } from "../electronHttpExecutor.js" +import { ResolvedUpdateFileInfo } from "../types.js" +import { newUrlFromBase } from "../util.js" // @ts-ignore import * as escapeRegExp from "lodash.escaperegexp" From c92b222656cf899208e406382ce5577e728fa550 Mon Sep 17 00:00:00 2001 From: Mike Maietta Date: Tue, 9 Dec 2025 19:11:15 -0800 Subject: [PATCH 04/65] tmp save for .js extension migration --- packages/app-builder-lib/src/Framework.ts | 4 +- .../app-builder-lib/src/ProtonFramework.ts | 8 +-- packages/app-builder-lib/src/appInfo.ts | 11 ++-- .../src/asar/asarFileChecker.ts | 2 +- packages/app-builder-lib/src/asar/asarUtil.ts | 4 +- .../app-builder-lib/src/asar/integrity.ts | 2 +- packages/app-builder-lib/src/binDownload.ts | 2 +- .../src/codeSign/macCodeSign.ts | 8 +-- .../src/codeSign/signManager.ts | 4 +- .../src/codeSign/windowsSignAzureManager.ts | 6 +- .../src/codeSign/windowsSignToolManager.ts | 6 +- packages/app-builder-lib/src/configuration.ts | 34 +++++----- .../src/electron/ElectronFramework.ts | 8 +-- .../src/electron/electronMac.ts | 2 +- .../src/electron/electronVersion.ts | 2 +- .../src/electron/electronWin.ts | 4 +- .../src/electron/injectFFMPEG.ts | 2 +- packages/app-builder-lib/src/fileMatcher.ts | 6 +- .../app-builder-lib/src/fileTransformer.ts | 4 +- packages/app-builder-lib/src/forge-maker.ts | 4 +- packages/app-builder-lib/src/index.ts | 65 ++++++++++--------- packages/app-builder-lib/src/linuxPackager.ts | 22 +++---- packages/app-builder-lib/src/macPackager.ts | 34 +++++----- .../bunNodeModulesCollector.ts | 6 +- .../src/node-module-collector/index.ts | 14 ++-- .../src/node-module-collector/moduleCache.ts | 2 +- .../nodeModulesCollector.ts | 8 +-- .../npmNodeModulesCollector.ts | 6 +- .../pnpmNodeModulesCollector.ts | 6 +- .../yarnBerryNodeModulesCollector.ts | 6 +- .../yarnNodeModulesCollector.ts | 6 +- .../CommonWindowsInstallerConfiguration.ts | 2 +- .../app-builder-lib/src/options/MsiOptions.ts | 2 +- .../src/options/MsiWrappedOptions.ts | 2 +- .../options/PlatformSpecificBuildOptions.ts | 2 +- .../src/options/SnapOptions.ts | 2 +- packages/app-builder-lib/src/packager.ts | 50 +++++++------- packages/app-builder-lib/src/packagerApi.ts | 8 +-- .../app-builder-lib/src/platformPackager.ts | 24 +++---- .../src/publish/PublishManager.ts | 4 +- .../src/publish/updateInfoBuilder.ts | 2 +- .../src/targets/AppImageTarget.ts | 7 +- .../app-builder-lib/src/targets/AppxTarget.ts | 7 +- .../src/targets/ArchiveTarget.ts | 7 +- .../src/targets/FlatpakTarget.ts | 13 ++-- .../app-builder-lib/src/targets/FpmTarget.ts | 7 +- .../app-builder-lib/src/targets/MsiTarget.ts | 7 +- .../src/targets/MsiWrappedTarget.ts | 4 +- .../app-builder-lib/src/targets/archive.ts | 2 +- .../targets/differentialUpdateInfoBuilder.ts | 2 +- .../src/targets/nsis/Defines.ts | 2 +- .../src/targets/nsis/NsisTarget.ts | 14 ++-- .../src/targets/nsis/WebInstallerTarget.ts | 6 +- .../src/targets/nsis/nsisLang.ts | 6 +- .../src/targets/nsis/nsisLicense.ts | 6 +- .../src/targets/nsis/nsisOptions.ts | 2 +- .../src/targets/nsis/nsisUtil.ts | 4 +- packages/app-builder-lib/src/targets/pkg.ts | 13 ++-- packages/app-builder-lib/src/targets/snap.ts | 7 +- .../src/targets/targetFactory.ts | 2 +- .../app-builder-lib/src/targets/targetUtil.ts | 2 +- .../src/util/NodeModuleCopyHelper.ts | 6 +- .../app-builder-lib/src/util/appFileCopier.ts | 8 +-- .../app-builder-lib/src/util/config/config.ts | 2 +- packages/app-builder-lib/src/util/license.ts | 2 +- .../src/util/packageDependencies.ts | 2 +- .../src/util/packageMetadata.ts | 2 +- packages/app-builder-lib/src/util/resolve.ts | 2 +- packages/app-builder-lib/src/util/yarn.ts | 8 +-- packages/app-builder-lib/src/vm/MonoVm.ts | 2 +- .../app-builder-lib/src/vm/ParallelsVm.ts | 2 +- packages/app-builder-lib/src/vm/PwshVm.ts | 2 +- packages/app-builder-lib/src/vm/WineVm.ts | 2 +- packages/app-builder-lib/src/vm/vm.ts | 2 +- packages/app-builder-lib/src/winPackager.ts | 42 ++++++------ .../builder-util-runtime/src/httpExecutor.ts | 8 +-- packages/builder-util-runtime/src/index.ts | 24 +++---- .../src/publishOptions.ts | 2 +- packages/builder-util-runtime/src/retry.ts | 2 +- packages/builder-util-runtime/src/uuid.ts | 2 +- packages/builder-util-runtime/src/xml.ts | 2 +- packages/builder-util/src/DebugLogger.ts | 4 +- packages/builder-util/src/asyncTaskManager.ts | 4 +- packages/builder-util/src/deepAssign.ts | 2 +- packages/builder-util/src/fs.ts | 4 +- packages/builder-util/src/util.ts | 5 +- packages/dmg-builder/src/dmg.ts | 14 ++-- packages/dmg-builder/src/dmgLicense.ts | 2 +- packages/dmg-builder/src/dmgUtil.ts | 4 +- packages/dmg-builder/src/licenseButtons.ts | 4 +- .../src/SquirrelWindowsTarget.ts | 2 +- packages/electron-builder/src/cli/cli.ts | 6 +- .../src/cli/create-self-signed-cert.ts | 2 +- packages/electron-builder/src/publish.ts | 2 +- .../src/bitbucketPublisher.ts | 8 +-- .../electron-publish/src/gitHubPublisher.ts | 6 +- .../electron-publish/src/gitlabPublisher.ts | 6 +- .../electron-publish/src/httpPublisher.ts | 4 +- packages/electron-publish/src/index.ts | 21 +++--- .../electron-publish/src/keygenPublisher.ts | 8 +-- .../electron-publish/src/multiProgress.ts | 2 +- packages/electron-publish/src/publisher.ts | 4 +- .../src/s3/baseS3Publisher.ts | 2 +- .../electron-publish/src/s3/s3Publisher.ts | 4 +- .../src/s3/spacesPublisher.ts | 4 +- .../src/snapStorePublisher.ts | 6 +- .../electron-updater/src/AppImageUpdater.ts | 12 ++-- packages/electron-updater/src/AppUpdater.ts | 22 +++---- packages/electron-updater/src/BaseUpdater.ts | 4 +- packages/electron-updater/src/DebUpdater.ts | 12 ++-- .../src/DownloadedUpdateHelper.ts | 4 +- .../src/ElectronAppAdapter.ts | 2 +- packages/electron-updater/src/LinuxUpdater.ts | 4 +- packages/electron-updater/src/MacUpdater.ts | 10 +-- packages/electron-updater/src/NsisUpdater.ts | 18 ++--- .../electron-updater/src/PacmanUpdater.ts | 12 ++-- packages/electron-updater/src/RpmUpdater.ts | 12 ++-- .../differentialDownloader/DataSplitter.ts | 2 +- .../DifferentialDownloader.ts | 8 +-- ...hEmbeddedBlockMapDifferentialDownloader.ts | 2 +- .../GenericDifferentialDownloader.ts | 2 +- .../multipleRangeDownloader.ts | 6 +- packages/electron-updater/src/main.ts | 2 +- .../electron-updater/src/providerFactory.ts | 16 ++--- .../src/providers/BitbucketProvider.ts | 2 +- .../src/providers/GenericProvider.ts | 2 +- .../src/providers/GitHubProvider.ts | 2 +- .../src/providers/GitLabProvider.ts | 2 +- .../src/providers/KeygenProvider.ts | 2 +- .../src/providers/PrivateGitHubProvider.ts | 4 +- packages/electron-updater/src/types.ts | 2 +- .../windowsExecutableCodeSignatureVerifier.ts | 2 +- test/src/filenameUtilTest.ts | 2 +- 133 files changed, 476 insertions(+), 464 deletions(-) diff --git a/packages/app-builder-lib/src/Framework.ts b/packages/app-builder-lib/src/Framework.ts index cec5b8e064d..e9aa387244d 100644 --- a/packages/app-builder-lib/src/Framework.ts +++ b/packages/app-builder-lib/src/Framework.ts @@ -1,6 +1,6 @@ import { FileTransformer } from "builder-util" -import { AsarIntegrity } from "./asar/integrity.js.js" -import { AfterPackContext, ElectronPlatformName, Platform, PlatformPackager } from "./index.js.js" +import { AsarIntegrity } from "./asar/integrity.js" +import { AfterPackContext, ElectronPlatformName, Platform, PlatformPackager } from "./index.js" export interface Framework { readonly name: string diff --git a/packages/app-builder-lib/src/ProtonFramework.ts b/packages/app-builder-lib/src/ProtonFramework.ts index 77797b1c351..b8015285020 100644 --- a/packages/app-builder-lib/src/ProtonFramework.ts +++ b/packages/app-builder-lib/src/ProtonFramework.ts @@ -1,9 +1,9 @@ import { FileTransformer, log } from "builder-util" import { safeStringifyJson } from "builder-util-runtime" -import { Platform } from "./core.js.js" -import { NODE_MODULES_PATTERN } from "./fileTransformer.js.js" -import { LibUiFramework } from "./frameworks/LibUiFramework.js.js" -import { getTemplatePath } from "./util/pathManager.js.js" +import { Platform } from "./core.js" +import { NODE_MODULES_PATTERN } from "./fileTransformer.js" +import { LibUiFramework } from "./frameworks/LibUiFramework.js" +import { getTemplatePath } from "./util/pathManager.js" export class ProtonFramework extends LibUiFramework { readonly name = "proton" diff --git a/packages/app-builder-lib/src/appInfo.ts b/packages/app-builder-lib/src/appInfo.ts index 0c37ccb1a6d..e1b38b4bf9d 100644 --- a/packages/app-builder-lib/src/appInfo.ts +++ b/packages/app-builder-lib/src/appInfo.ts @@ -1,10 +1,10 @@ import { isEmptyOrSpaces, log } from "builder-util" import { Nullish } from "builder-util-runtime" -import { sanitizeFileName } from "builder-util/out/filename" +import { sanitizeFileName } from "builder-util" import { prerelease } from "semver" -import { PlatformSpecificBuildOptions } from "./options/PlatformSpecificBuildOptions.js.js" -import { Packager } from "./packager.js.js" -import { expandMacro } from "./util/macroExpander.js.js" +import { PlatformSpecificBuildOptions } from "./options/PlatformSpecificBuildOptions.js" +import { Packager } from "./packager.js" +import { expandMacro } from "./util/macroExpander.js" // fpm bug - rpm build --description is not escaped, well... decided to replace quite to smart quote // http://leancrew.com/all-this/2010/11/smart-quotes-in-javascript/ @@ -21,7 +21,7 @@ export function smarten(s: string): string { } export class AppInfo { - readonly description = smarten(this.info.metadata.description || "") + readonly description: string readonly version: string readonly type: string | undefined readonly shortVersion: string | undefined @@ -40,6 +40,7 @@ export class AppInfo { private readonly platformSpecificOptions: PlatformSpecificBuildOptions | null = null, normalizeNfd = false ) { + this.description = smarten(this.info.metadata.description || "") this.version = info.metadata.version! this.type = info.metadata.type diff --git a/packages/app-builder-lib/src/asar/asarFileChecker.ts b/packages/app-builder-lib/src/asar/asarFileChecker.ts index da9daa56a9a..16e44783fd5 100644 --- a/packages/app-builder-lib/src/asar/asarFileChecker.ts +++ b/packages/app-builder-lib/src/asar/asarFileChecker.ts @@ -1,5 +1,5 @@ import * as asar from "@electron/asar" -import { FilesystemEntry, FilesystemFileEntry } from "@electron/asar/lib/filesystem" +import { FilesystemEntry, FilesystemFileEntry } from "@electron/asar/lib/filesystem.js" export function checkFileInArchive(asarFile: string, relativeFile: string, messagePrefix: string) { function error(text: string) { diff --git a/packages/app-builder-lib/src/asar/asarUtil.ts b/packages/app-builder-lib/src/asar/asarUtil.ts index 4bf37172a1a..3b2ea0e793a 100644 --- a/packages/app-builder-lib/src/asar/asarUtil.ts +++ b/packages/app-builder-lib/src/asar/asarUtil.ts @@ -1,13 +1,13 @@ import { createPackageFromStreams, AsarStreamType, AsarDirectory } from "@electron/asar" import { log } from "builder-util" -import { exists, Filter } from "builder-util/out/fs" +import { exists, Filter } from "builder-util" import * as fs from "fs-extra" import { readlink } from "fs-extra" import * as path from "path" import { AsarOptions } from "../options/PlatformSpecificBuildOptions.js" import { PlatformPackager } from "../platformPackager.js" import { ResolvedFileSet, getDestinationPath } from "../util/appFileCopier.js" -import { detectUnpackedDirs } from "./unpackDetector.js.js" +import { detectUnpackedDirs } from "./unpackDetector.js" import { Readable } from "stream" import * as os from "os" diff --git a/packages/app-builder-lib/src/asar/integrity.ts b/packages/app-builder-lib/src/asar/integrity.ts index 4ae3abb687e..868285d10db 100644 --- a/packages/app-builder-lib/src/asar/integrity.ts +++ b/packages/app-builder-lib/src/asar/integrity.ts @@ -3,7 +3,7 @@ import { createHash } from "crypto" import { readdir } from "fs/promises" import * as path from "path" import { FileMatcher } from "../fileMatcher.js" -import { readAsarHeader } from "./asar.js.js" +import { readAsarHeader } from "./asar.js" export interface AsarIntegrityOptions { readonly resourcesPath: string diff --git a/packages/app-builder-lib/src/binDownload.ts b/packages/app-builder-lib/src/binDownload.ts index 88d50264787..07360c57c8a 100644 --- a/packages/app-builder-lib/src/binDownload.ts +++ b/packages/app-builder-lib/src/binDownload.ts @@ -1,6 +1,6 @@ import { executeAppBuilder } from "builder-util" import { Nullish } from "builder-util-runtime" -import { sanitizeFileName } from "builder-util/out/filename" +import { sanitizeFileName } from "builder-util" import * as path from "path" const versionToPromise = new Map>() diff --git a/packages/app-builder-lib/src/codeSign/macCodeSign.ts b/packages/app-builder-lib/src/codeSign/macCodeSign.ts index d0d1759c24e..6dc833e2295 100644 --- a/packages/app-builder-lib/src/codeSign/macCodeSign.ts +++ b/packages/app-builder-lib/src/codeSign/macCodeSign.ts @@ -1,6 +1,4 @@ -import { signAsync } from "@electron/osx-sign" -import { SignOptions } from "@electron/osx-sign/dist/cjs/types" -import { Identity as _Identity } from "@electron/osx-sign/dist/cjs/util-identities" +import { signAsync, SignOptions } from "@electron/osx-sign" import { copyFile, exec, Fields, InvalidConfigurationError, isEmptyOrSpaces, isEnvTrue, isPullRequest, log, Logger, retry, TmpDir, unlinkIfExists } from "builder-util" import { Nullish } from "builder-util-runtime" import { createHash, randomBytes } from "crypto" @@ -10,7 +8,7 @@ import { homedir, tmpdir } from "os" import * as path from "path" import { getTempName } from "temp-file" import { isAutoDiscoveryCodeSignIdentity } from "../util/flags.js" -import { importCertificate } from "./codesign.js.js" +import { importCertificate } from "./codesign.js" export const appleCertificatePrefixes = ["Developer ID Application:", "Developer ID Installer:", "3rd Party Mac Developer Application:", "3rd Party Mac Developer Installer:"] @@ -318,7 +316,7 @@ function parseIdentity(line: string): Identity { const firstQuoteIndex = line.indexOf('"') const name = line.substring(firstQuoteIndex + 1, line.lastIndexOf('"')) const hash = line.substring(0, firstQuoteIndex - 1) - return new _Identity(name, hash) + return new Identity(name, hash) } export function findIdentity(certType: CertType, qualifier?: string | null, keychain?: string | null): Promise { diff --git a/packages/app-builder-lib/src/codeSign/signManager.ts b/packages/app-builder-lib/src/codeSign/signManager.ts index ccc8987b06b..ee6ac00ed8b 100644 --- a/packages/app-builder-lib/src/codeSign/signManager.ts +++ b/packages/app-builder-lib/src/codeSign/signManager.ts @@ -2,8 +2,8 @@ import { MemoLazy, Nullish } from "builder-util-runtime" import { Lazy } from "lazy-val" import { Target } from "../core.js" import { WindowsConfiguration } from "../options/winOptions.js" -import { WindowsSignOptions } from "./windowsCodeSign.js.js" -import { CertificateFromStoreInfo, FileCodeSigningInfo } from "./windowsSignToolManager.js.js" +import { WindowsSignOptions } from "./windowsCodeSign.js" +import { CertificateFromStoreInfo, FileCodeSigningInfo } from "./windowsSignToolManager.js" export interface SignManager { readonly computedPublisherName: Lazy | null> diff --git a/packages/app-builder-lib/src/codeSign/windowsSignAzureManager.ts b/packages/app-builder-lib/src/codeSign/windowsSignAzureManager.ts index b81d6eff553..b5007865847 100644 --- a/packages/app-builder-lib/src/codeSign/windowsSignAzureManager.ts +++ b/packages/app-builder-lib/src/codeSign/windowsSignAzureManager.ts @@ -3,9 +3,9 @@ import { MemoLazy } from "builder-util-runtime" import { Lazy } from "lazy-val" import { WindowsAzureSigningConfiguration, WindowsConfiguration } from "../options/winOptions.js" import { WinPackager } from "../winPackager.js" -import { SignManager } from "./signManager.js.js" -import { WindowsSignOptions } from "./windowsCodeSign.js.js" -import { CertificateFromStoreInfo, FileCodeSigningInfo } from "./windowsSignToolManager.js.js" +import { SignManager } from "./signManager.js" +import { WindowsSignOptions } from "./windowsCodeSign.js" +import { CertificateFromStoreInfo, FileCodeSigningInfo } from "./windowsSignToolManager.js" export class WindowsSignAzureManager implements SignManager { private readonly platformSpecificBuildOptions: WindowsConfiguration diff --git a/packages/app-builder-lib/src/codeSign/windowsSignToolManager.ts b/packages/app-builder-lib/src/codeSign/windowsSignToolManager.ts index 8f9f84a717a..9f3020159e3 100644 --- a/packages/app-builder-lib/src/codeSign/windowsSignToolManager.ts +++ b/packages/app-builder-lib/src/codeSign/windowsSignToolManager.ts @@ -14,9 +14,9 @@ import { isUseSystemSigncode } from "../util/flags.js" import { resolveFunction } from "../util/resolve.js" import { VmManager } from "../vm/vm.js" import { WinPackager } from "../winPackager.js" -import { importCertificate } from "./codesign.js.js" -import { SignManager } from "./signManager.js.js" -import { WindowsSignOptions } from "./windowsCodeSign.js.js" +import { importCertificate } from "./codesign.js" +import { SignManager } from "./signManager.js" +import { WindowsSignOptions } from "./windowsCodeSign.js" export function getSignVendorPath() { return getBin("winCodeSign") diff --git a/packages/app-builder-lib/src/configuration.ts b/packages/app-builder-lib/src/configuration.ts index e747a0e47c7..c11c6f4d438 100644 --- a/packages/app-builder-lib/src/configuration.ts +++ b/packages/app-builder-lib/src/configuration.ts @@ -1,21 +1,21 @@ import { Arch } from "builder-util" -import { BeforeBuildContext, Target } from "./core.js.js" -import { ElectronBrandingOptions, ElectronDownloadOptions } from "./electron/ElectronFramework.js.js" -import { PrepareApplicationStageDirectoryOptions } from "./Framework.js.js" -import { AppXOptions } from "./options/AppXOptions.js.js" -import { AppImageOptions, DebOptions, FlatpakOptions, LinuxConfiguration, LinuxTargetSpecificOptions } from "./options/linuxOptions.js.js" -import { DmgOptions, MacConfiguration, MasConfiguration } from "./options/macOptions.js.js" -import { MsiOptions } from "./options/MsiOptions.js.js" -import { MsiWrappedOptions } from "./options/MsiWrappedOptions.js.js" -import { PkgOptions } from "./options/pkgOptions.js.js" -import { PlatformSpecificBuildOptions } from "./options/PlatformSpecificBuildOptions.js.js" -import { SnapOptions } from "./options/SnapOptions.js.js" -import { SquirrelWindowsOptions } from "./options/SquirrelWindowsOptions.js.js" -import { WindowsConfiguration } from "./options/winOptions.js.js" -import { BuildResult } from "./packager.js.js" -import { ArtifactBuildStarted, ArtifactCreated } from "./packagerApi.js.js" -import { PlatformPackager } from "./platformPackager.js.js" -import { NsisOptions, NsisWebOptions, PortableOptions } from "./targets/nsis/nsisOptions.js.js" +import { BeforeBuildContext, Target } from "./core.js" +import { ElectronBrandingOptions, ElectronDownloadOptions } from "./electron/ElectronFramework.js" +import { PrepareApplicationStageDirectoryOptions } from "./Framework.js" +import { AppXOptions } from "./options/AppXOptions.js" +import { AppImageOptions, DebOptions, FlatpakOptions, LinuxConfiguration, LinuxTargetSpecificOptions } from "./options/linuxOptions.js" +import { DmgOptions, MacConfiguration, MasConfiguration } from "./options/macOptions.js" +import { MsiOptions } from "./options/MsiOptions.js" +import { MsiWrappedOptions } from "./options/MsiWrappedOptions.js" +import { PkgOptions } from "./options/pkgOptions.js" +import { PlatformSpecificBuildOptions } from "./options/PlatformSpecificBuildOptions.js" +import { SnapOptions } from "./options/SnapOptions.js" +import { SquirrelWindowsOptions } from "./options/SquirrelWindowsOptions.js" +import { WindowsConfiguration } from "./options/winOptions.js" +import { BuildResult } from "./packager.js" +import { ArtifactBuildStarted, ArtifactCreated } from "./packagerApi.js" +import { PlatformPackager } from "./platformPackager.js" +import { NsisOptions, NsisWebOptions, PortableOptions } from "./targets/nsis/nsisOptions.js" // duplicate appId here because it is important /** diff --git a/packages/app-builder-lib/src/electron/ElectronFramework.ts b/packages/app-builder-lib/src/electron/ElectronFramework.ts index 004cfd2fb3c..8b445267e5c 100644 --- a/packages/app-builder-lib/src/electron/ElectronFramework.ts +++ b/packages/app-builder-lib/src/electron/ElectronFramework.ts @@ -9,10 +9,10 @@ import { LinuxPackager } from "../linuxPackager.js" import { MacPackager } from "../macPackager.js" import { getTemplatePath } from "../util/pathManager.js" import { resolveFunction } from "../util/resolve.js" -import { createMacApp } from "./electronMac.js.js" -import { computeElectronVersion, getElectronVersionFromInstalled } from "./electronVersion.js.js" -import { addWinAsarIntegrity } from "./electronWin.js.js" -import injectFFMPEG from "./injectFFMPEG.js.js" +import { createMacApp } from "./electronMac.js" +import { computeElectronVersion, getElectronVersionFromInstalled } from "./electronVersion.js" +import { addWinAsarIntegrity } from "./electronWin.js" +import injectFFMPEG from "./injectFFMPEG.js" export type ElectronPlatformName = "darwin" | "linux" | "win32" | "mas" diff --git a/packages/app-builder-lib/src/electron/electronMac.ts b/packages/app-builder-lib/src/electron/electronMac.ts index e44d35762ca..8f252cf55bf 100644 --- a/packages/app-builder-lib/src/electron/electronMac.ts +++ b/packages/app-builder-lib/src/electron/electronMac.ts @@ -7,7 +7,7 @@ import { AsarIntegrity } from "../asar/integrity.js" import { MacPackager } from "../macPackager.js" import { normalizeExt } from "../platformPackager.js" import { savePlistFile, parsePlistFile, PlistObject, PlistValue } from "../util/plist.js" -import { createBrandingOpts } from "./ElectronFramework.js.js" +import { createBrandingOpts } from "./ElectronFramework.js" function doRename(basePath: string, oldName: string, newName: string) { return rename(path.join(basePath, oldName), path.join(basePath, newName)) diff --git a/packages/app-builder-lib/src/electron/electronVersion.ts b/packages/app-builder-lib/src/electron/electronVersion.ts index b5fa119c488..01358aaff82 100644 --- a/packages/app-builder-lib/src/electron/electronVersion.ts +++ b/packages/app-builder-lib/src/electron/electronVersion.ts @@ -7,7 +7,7 @@ import * as semver from "semver" import { Configuration } from "../configuration.js" import { getConfig } from "../util/config/config.js" import { orNullIfFileNotExist } from "../util/config/load.js" -import { getProjectRootPath } from "./search-module.js.js" +import { getProjectRootPath } from "./search-module.js" export type MetadataValue = Lazy | null> diff --git a/packages/app-builder-lib/src/electron/electronWin.ts b/packages/app-builder-lib/src/electron/electronWin.ts index 75f1925d4b5..b4d2f483247 100644 --- a/packages/app-builder-lib/src/electron/electronWin.ts +++ b/packages/app-builder-lib/src/electron/electronWin.ts @@ -27,10 +27,12 @@ export async function addWinAsarIntegrity(executablePath: string, asarIntegrity: value, })) + const encoder = new TextEncoder() + resource.entries.push({ type: "INTEGRITY", id: "ELECTRONASAR", - bin: Buffer.from(JSON.stringify(integrityList)), + bin: encoder.encode(JSON.stringify(integrityList)).buffer as ArrayBuffer, lang: languages[0].lang, codepage: languages[0].codepage, }) diff --git a/packages/app-builder-lib/src/electron/injectFFMPEG.ts b/packages/app-builder-lib/src/electron/injectFFMPEG.ts index ccbfb4149b7..94cb7c2139f 100644 --- a/packages/app-builder-lib/src/electron/injectFFMPEG.ts +++ b/packages/app-builder-lib/src/electron/injectFFMPEG.ts @@ -1,6 +1,6 @@ import * as fs from "fs" import * as path from "path" -import { ElectronPlatformName } from "./ElectronFramework.js.js" +import { ElectronPlatformName } from "./ElectronFramework.js" import { log } from "builder-util" import { getBin } from "../binDownload.js" diff --git a/packages/app-builder-lib/src/fileMatcher.ts b/packages/app-builder-lib/src/fileMatcher.ts index 34a7cc5b594..acedaec63f8 100644 --- a/packages/app-builder-lib/src/fileMatcher.ts +++ b/packages/app-builder-lib/src/fileMatcher.ts @@ -3,9 +3,9 @@ import { Nullish } from "builder-util-runtime" import { mkdir } from "fs/promises" import { Minimatch } from "minimatch" import * as path from "path" -import { Configuration, FileSet, Packager, PlatformSpecificBuildOptions } from "./index.js.js" -import { PlatformPackager } from "./platformPackager.js.js" -import { createFilter, hasMagic } from "./util/filter.js.js" +import { Configuration, FileSet, Packager, PlatformSpecificBuildOptions } from "./index.js" +import { PlatformPackager } from "./platformPackager.js" +import { createFilter, hasMagic } from "./util/filter.js" // https://github.com/electron-userland/electron-builder/issues/733 const minimatchOptions = { dot: true } diff --git a/packages/app-builder-lib/src/fileTransformer.ts b/packages/app-builder-lib/src/fileTransformer.ts index 4ec24835026..e411de8e303 100644 --- a/packages/app-builder-lib/src/fileTransformer.ts +++ b/packages/app-builder-lib/src/fileTransformer.ts @@ -1,8 +1,8 @@ import { debug, deepAssign, FileTransformer, log } from "builder-util" import { readFile } from "fs/promises" import * as path from "path" -import { Configuration } from "./configuration.js.js" -import { Packager } from "./packager.js.js" +import { Configuration } from "./configuration.js" +import { Packager } from "./packager.js" /** @internal */ export const NODE_MODULES_PATTERN = `${path.sep}node_modules${path.sep}` diff --git a/packages/app-builder-lib/src/forge-maker.ts b/packages/app-builder-lib/src/forge-maker.ts index 88733be7648..64b589a21cd 100644 --- a/packages/app-builder-lib/src/forge-maker.ts +++ b/packages/app-builder-lib/src/forge-maker.ts @@ -1,6 +1,6 @@ import * as path from "path" -import { build } from "./index.js.js" -import { PackagerOptions } from "./packagerApi.js.js" +import { build } from "./index.js" +import { PackagerOptions } from "./packagerApi.js" export interface ForgeOptions { readonly dir: string diff --git a/packages/app-builder-lib/src/index.ts b/packages/app-builder-lib/src/index.ts index 22a1e5f4d82..5d513af9683 100644 --- a/packages/app-builder-lib/src/index.ts +++ b/packages/app-builder-lib/src/index.ts @@ -1,10 +1,10 @@ import { InvalidConfigurationError, executeFinally, log } from "builder-util" import { asArray } from "builder-util-runtime" import { PublishOptions } from "electron-publish" -import { Packager } from "./packager.js.js" -import { PackagerOptions } from "./packagerApi.js.js" -import { PublishManager } from "./publish/PublishManager.js.js" -import { resolveFunction } from "./util/resolve.js.js" +import { Packager } from "./packager.js" +import { PackagerOptions } from "./packagerApi.js" +import { PublishManager } from "./publish/PublishManager.js" +import { resolveFunction } from "./util/resolve.js" export { Arch, archFromString, getArchSuffix } from "builder-util" export { AppInfo } from "./appInfo.js" @@ -19,7 +19,7 @@ export { Hooks, MetadataDirectories, PackContext, -} from "./configuration" +} from "./configuration.js" export { BeforeBuildContext, CompressionLevel, @@ -31,42 +31,43 @@ export { TargetConfigType, TargetConfiguration, TargetSpecificOptions, -} from "./core" -export { ElectronBrandingOptions, ElectronDownloadOptions, ElectronPlatformName } from "./electron/ElectronFramework" -export { AppXOptions } from "./options/AppXOptions" -export { CommonWindowsInstallerConfiguration } from "./options/CommonWindowsInstallerConfiguration" -export { FileAssociation } from "./options/FileAssociation" -export { AppImageOptions, CommonLinuxOptions, DebOptions, FlatpakOptions, LinuxConfiguration, LinuxDesktopFile, LinuxTargetSpecificOptions } from "./options/linuxOptions" -export { DmgContent, DmgOptions, DmgWindow, MacConfiguration, MacOsTargetName, MasConfiguration } from "./options/macOptions" -export { AuthorMetadata, Metadata, RepositoryInfo } from "./options/metadata" -export { MsiOptions } from "./options/MsiOptions" -export { MsiWrappedOptions } from "./options/MsiWrappedOptions" -export { BackgroundAlignment, BackgroundScaling, PkgBackgroundOptions, PkgOptions } from "./options/pkgOptions" -export { AsarOptions, FileSet, FilesBuildOptions, PlatformSpecificBuildOptions, Protocol, ReleaseInfo } from "./options/PlatformSpecificBuildOptions" -export { PlugDescriptor, SlotDescriptor, SnapOptions } from "./options/SnapOptions" -export { SquirrelWindowsOptions } from "./options/SquirrelWindowsOptions" -export { WindowsAzureSigningConfiguration, WindowsConfiguration, WindowsSigntoolConfiguration } from "./options/winOptions" -export { BuildResult, Packager } from "./packager" -export { ArtifactBuildStarted, ArtifactCreated, PackagerOptions } from "./packagerApi" -export { CommonNsisOptions, CustomNsisBinary, NsisOptions, NsisWebOptions, PortableOptions } from "./targets/nsis/nsisOptions" +} from "./core.js" +export { ElectronBrandingOptions, ElectronDownloadOptions, ElectronPlatformName } from "./electron/ElectronFramework.js" +export { AppXOptions } from "./options/AppXOptions.js" +export { CommonWindowsInstallerConfiguration } from "./options/CommonWindowsInstallerConfiguration.js" +export { FileAssociation } from "./options/FileAssociation.js" +export { AppImageOptions, CommonLinuxOptions, DebOptions, FlatpakOptions, LinuxConfiguration, LinuxDesktopFile, LinuxTargetSpecificOptions } from "./options/linuxOptions.js" +export { DmgContent, DmgOptions, DmgWindow, MacConfiguration, MacOsTargetName, MasConfiguration } from "./options/macOptions.js" +export { AuthorMetadata, Metadata, RepositoryInfo } from "./options/metadata.js" +export { MsiOptions } from "./options/MsiOptions.js" +export { MsiWrappedOptions } from "./options/MsiWrappedOptions.js" +export { BackgroundAlignment, BackgroundScaling, PkgBackgroundOptions, PkgOptions } from "./options/pkgOptions.js" +export { AsarOptions, FileSet, FilesBuildOptions, PlatformSpecificBuildOptions, Protocol, ReleaseInfo } from "./options/PlatformSpecificBuildOptions.js" +export { PlugDescriptor, SlotDescriptor, SnapOptions } from "./options/SnapOptions.js" +export { SquirrelWindowsOptions } from "./options/SquirrelWindowsOptions.js" +export { WindowsAzureSigningConfiguration, WindowsConfiguration, WindowsSigntoolConfiguration } from "./options/winOptions.js" +export { BuildResult, Packager } from "./packager.js" +export { ArtifactBuildStarted, ArtifactCreated, PackagerOptions } from "./packagerApi.js" +export { CommonNsisOptions, CustomNsisBinary, NsisOptions, NsisWebOptions, PortableOptions } from "./targets/nsis/nsisOptions.js" export { CancellationToken, ProgressInfo } from "builder-util-runtime" export { PublishOptions, UploadTask } from "electron-publish" -export { WindowsSignOptions } from "./codeSign/windowsCodeSign" +export { WindowsSignOptions } from "./codeSign/windowsCodeSign.js" export { CertificateFromStoreInfo, CustomWindowsSign, CustomWindowsSignTaskConfiguration, FileCodeSigningInfo, WindowsSignTaskConfiguration, -} from "./codeSign/windowsSignToolManager" -export { ForgeOptions, buildForge } from "./forge-maker" -export { Framework, PrepareApplicationStageDirectoryOptions } from "./Framework" -export { LinuxPackager } from "./linuxPackager" -export { CustomMacSign, CustomMacSignOptions, MacPackager } from "./macPackager" -export { PlatformPackager } from "./platformPackager" -export { PublishManager } from "./publish/PublishManager" -export { WinPackager } from "./winPackager" +} from "./codeSign/windowsSignToolManager.js" +export { ForgeOptions, buildForge } from "./forge-maker.js" +export { Framework, PrepareApplicationStageDirectoryOptions } from "./Framework.js" +export { LinuxPackager } from "./linuxPackager.js" +export { CustomMacSign, CustomMacSignOptions, MacPackager } from "./macPackager.js" +export { PlatformPackager } from "./platformPackager.js" +export { PublishManager } from "./publish/PublishManager.js" +export { WinPackager } from "./winPackager.js" +export { findIdentity, isSignAllowed } from "./codeSign/macCodeSign.js" const expectedOptions = new Set(["publish", "targets", "mac", "win", "linux", "projectDir", "platformPackagerFactory", "config", "effectiveOptionComputed", "prepackaged"]) diff --git a/packages/app-builder-lib/src/linuxPackager.ts b/packages/app-builder-lib/src/linuxPackager.ts index 8ca43096352..f488ac03520 100644 --- a/packages/app-builder-lib/src/linuxPackager.ts +++ b/packages/app-builder-lib/src/linuxPackager.ts @@ -1,15 +1,15 @@ import { Arch } from "builder-util" -import { sanitizeFileName } from "builder-util/out/filename" -import { DIR_TARGET, Platform, Target } from "./core.js.js" -import { LinuxConfiguration } from "./options/linuxOptions.js.js" -import { Packager } from "./packager.js.js" -import { PlatformPackager } from "./platformPackager.js.js" -import AppImageTarget from "./targets/AppImageTarget.js.js" -import FlatpakTarget from "./targets/FlatpakTarget.js.js" -import FpmTarget from "./targets/FpmTarget.js.js" -import { LinuxTargetHelper } from "./targets/LinuxTargetHelper.js.js" -import SnapTarget from "./targets/snap.js.js" -import { createCommonTarget } from "./targets/targetFactory.js.js" +import { sanitizeFileName } from "builder-util" +import { DIR_TARGET, Platform, Target } from "./core.js" +import { LinuxConfiguration } from "./options/linuxOptions.js" +import { Packager } from "./packager.js" +import { PlatformPackager } from "./platformPackager.js" +import AppImageTarget from "./targets/AppImageTarget.js" +import FlatpakTarget from "./targets/FlatpakTarget.js" +import FpmTarget from "./targets/FpmTarget.js" +import { LinuxTargetHelper } from "./targets/LinuxTargetHelper.js" +import SnapTarget from "./targets/snap.js" +import { createCommonTarget } from "./targets/targetFactory.js" export class LinuxPackager extends PlatformPackager { readonly executableName: string diff --git a/packages/app-builder-lib/src/macPackager.ts b/packages/app-builder-lib/src/macPackager.ts index e456d55f0d2..53a9d9c4775 100644 --- a/packages/app-builder-lib/src/macPackager.ts +++ b/packages/app-builder-lib/src/macPackager.ts @@ -1,7 +1,7 @@ import { notarize } from "@electron/notarize" -import { NotarizeOptionsNotaryTool, NotaryToolKeychainCredentials } from "@electron/notarize/lib/types" -import { PerFileSignOptions, SignOptions } from "@electron/osx-sign/dist/cjs/types" -import { Identity } from "@electron/osx-sign/dist/cjs/util-identities" +import { NotarizeOptionsNotaryTool, NotaryToolKeychainCredentials } from "@electron/notarize/lib/types.js" +import { PerFileSignOptions, SignOptions } from "@electron/osx-sign/dist/cjs/types.js" +import { Identity } from "@electron/osx-sign/dist/cjs/util-identities.js" import { Arch, AsyncTaskManager, @@ -22,20 +22,20 @@ import * as fs from "fs/promises" import { mkdir, readdir } from "fs/promises" import { Lazy } from "lazy-val" import * as path from "path" -import { AppInfo } from "./appInfo.js.js" -import { CertType, CodeSigningInfo, createKeychain, CreateKeychainOptions, findIdentity, isSignAllowed, removeKeychain, reportError, sign } from "./codeSign/macCodeSign.js.js" -import { DIR_TARGET, Platform, Target } from "./core.js.js" -import { AfterPackContext, ElectronPlatformName } from "./index.js.js" -import { MacConfiguration, MasConfiguration } from "./options/macOptions.js.js" -import { Packager } from "./packager.js.js" -import { chooseNotNull, DoPackOptions, PlatformPackager } from "./platformPackager.js.js" -import { ArchiveTarget } from "./targets/ArchiveTarget.js.js" -import { PkgTarget, prepareProductBuildArgs } from "./targets/pkg.js.js" -import { createCommonTarget, NoOpTarget } from "./targets/targetFactory.js.js" -import { isMacOsHighSierra } from "./util/macosVersion.js.js" -import { getTemplatePath } from "./util/pathManager.js.js" -import { resolveFunction } from "./util/resolve.js.js" -import { expandMacro as doExpandMacro } from "./util/macroExpander.js.js" +import { AppInfo } from "./appInfo.js" +import { CertType, CodeSigningInfo, createKeychain, CreateKeychainOptions, findIdentity, isSignAllowed, removeKeychain, reportError, sign } from "./codeSign/macCodeSign.js" +import { DIR_TARGET, Platform, Target } from "./core.js" +import { AfterPackContext, ElectronPlatformName } from "./index.js" +import { MacConfiguration, MasConfiguration } from "./options/macOptions.js" +import { Packager } from "./packager.js" +import { chooseNotNull, DoPackOptions, PlatformPackager } from "./platformPackager.js" +import { ArchiveTarget } from "./targets/ArchiveTarget.js" +import { PkgTarget, prepareProductBuildArgs } from "./targets/pkg.js" +import { createCommonTarget, NoOpTarget } from "./targets/targetFactory.js" +import { isMacOsHighSierra } from "./util/macosVersion.js" +import { getTemplatePath } from "./util/pathManager.js" +import { resolveFunction } from "./util/resolve.js" +import { expandMacro as doExpandMacro } from "./util/macroExpander.js" import { makeUniversalApp } from "@electron/universal" export type CustomMacSignOptions = SignOptions diff --git a/packages/app-builder-lib/src/node-module-collector/bunNodeModulesCollector.ts b/packages/app-builder-lib/src/node-module-collector/bunNodeModulesCollector.ts index 4009560de88..bfb6d99f2ef 100644 --- a/packages/app-builder-lib/src/node-module-collector/bunNodeModulesCollector.ts +++ b/packages/app-builder-lib/src/node-module-collector/bunNodeModulesCollector.ts @@ -1,7 +1,7 @@ import { log } from "builder-util" -import { NpmNodeModulesCollector } from "./npmNodeModulesCollector.js.js" -import { PM } from "./packageManager.js.js" -import { NpmDependency } from "./types.js.js" +import { NpmNodeModulesCollector } from "./npmNodeModulesCollector.js" +import { PM } from "./packageManager.js" +import { NpmDependency } from "./types.js" export class BunNodeModulesCollector extends NpmNodeModulesCollector { public readonly installOptions = { manager: PM.BUN, lockfile: "bun.lock" } diff --git a/packages/app-builder-lib/src/node-module-collector/index.ts b/packages/app-builder-lib/src/node-module-collector/index.ts index 4c4191515cd..afc11d70e5f 100644 --- a/packages/app-builder-lib/src/node-module-collector/index.ts +++ b/packages/app-builder-lib/src/node-module-collector/index.ts @@ -1,12 +1,12 @@ import { CancellationToken, Nullish } from "builder-util-runtime" import { TmpDir } from "temp-file" -import { NpmNodeModulesCollector } from "./npmNodeModulesCollector.js.js" -import { detectPackageManager, getPackageManagerCommand, PM } from "./packageManager.js.js" -import { PnpmNodeModulesCollector } from "./pnpmNodeModulesCollector.js.js" -import { NodeModuleInfo } from "./types.js.js" -import { YarnBerryNodeModulesCollector } from "./yarnBerryNodeModulesCollector.js.js" -import { YarnNodeModulesCollector } from "./yarnNodeModulesCollector.js.js" -import { BunNodeModulesCollector } from "./bunNodeModulesCollector.js.js" +import { NpmNodeModulesCollector } from "./npmNodeModulesCollector.js" +import { detectPackageManager, getPackageManagerCommand, PM } from "./packageManager.js" +import { PnpmNodeModulesCollector } from "./pnpmNodeModulesCollector.js" +import { NodeModuleInfo } from "./types.js" +import { YarnBerryNodeModulesCollector } from "./yarnBerryNodeModulesCollector.js" +import { YarnNodeModulesCollector } from "./yarnNodeModulesCollector.js" +import { BunNodeModulesCollector } from "./bunNodeModulesCollector.js" import { Lazy } from "lazy-val" import { spawn, log, exists } from "builder-util" import * as fs from "fs-extra" diff --git a/packages/app-builder-lib/src/node-module-collector/moduleCache.ts b/packages/app-builder-lib/src/node-module-collector/moduleCache.ts index 85343dd4401..d0f29bde382 100644 --- a/packages/app-builder-lib/src/node-module-collector/moduleCache.ts +++ b/packages/app-builder-lib/src/node-module-collector/moduleCache.ts @@ -1,5 +1,5 @@ import { exists, log } from "builder-util" -import { PackageJson } from "./types.js.js" +import { PackageJson } from "./types.js" import * as fs from "fs-extra" import { resolve } from "path" diff --git a/packages/app-builder-lib/src/node-module-collector/nodeModulesCollector.ts b/packages/app-builder-lib/src/node-module-collector/nodeModulesCollector.ts index 7e645c9b57c..559dc10e1f9 100644 --- a/packages/app-builder-lib/src/node-module-collector/nodeModulesCollector.ts +++ b/packages/app-builder-lib/src/node-module-collector/nodeModulesCollector.ts @@ -6,10 +6,10 @@ import { createWriteStream } from "fs-extra" import { Lazy } from "lazy-val" import * as path from "path" import * as semver from "semver" -import { hoist, type HoisterResult, type HoisterTree } from "./hoist.js.js" -import { ModuleCache } from "./moduleCache.js.js" -import { getPackageManagerCommand, PM } from "./packageManager.js.js" -import type { Dependency, DependencyGraph, NodeModuleInfo } from "./types.js.js" +import { hoist, type HoisterResult, type HoisterTree } from "./hoist.js" +import { ModuleCache } from "./moduleCache.js" +import { getPackageManagerCommand, PM } from "./packageManager.js" +import type { Dependency, DependencyGraph, NodeModuleInfo } from "./types.js" type Result = { packageDir: string; version: string } | null export abstract class NodeModulesCollector, OptionalDepType> { diff --git a/packages/app-builder-lib/src/node-module-collector/npmNodeModulesCollector.ts b/packages/app-builder-lib/src/node-module-collector/npmNodeModulesCollector.ts index f2086d468bb..af58725edff 100644 --- a/packages/app-builder-lib/src/node-module-collector/npmNodeModulesCollector.ts +++ b/packages/app-builder-lib/src/node-module-collector/npmNodeModulesCollector.ts @@ -1,8 +1,8 @@ import { log } from "builder-util" import * as path from "path" -import { NodeModulesCollector } from "./nodeModulesCollector.js.js" -import { PM } from "./packageManager.js.js" -import { NpmDependency, PackageJson } from "./types.js.js" +import { NodeModulesCollector } from "./nodeModulesCollector.js" +import { PM } from "./packageManager.js" +import { NpmDependency, PackageJson } from "./types.js" export class NpmNodeModulesCollector extends NodeModulesCollector { public readonly installOptions = { diff --git a/packages/app-builder-lib/src/node-module-collector/pnpmNodeModulesCollector.ts b/packages/app-builder-lib/src/node-module-collector/pnpmNodeModulesCollector.ts index 4972b2e2799..4c1315f6e56 100644 --- a/packages/app-builder-lib/src/node-module-collector/pnpmNodeModulesCollector.ts +++ b/packages/app-builder-lib/src/node-module-collector/pnpmNodeModulesCollector.ts @@ -1,8 +1,8 @@ import { isEmptyOrSpaces, log } from "builder-util" import * as path from "path" -import { NodeModulesCollector } from "./nodeModulesCollector.js.js" -import { PM } from "./packageManager.js.js" -import { PackageJson, PnpmDependency } from "./types.js.js" +import { NodeModulesCollector } from "./nodeModulesCollector.js" +import { PM } from "./packageManager.js" +import { PackageJson, PnpmDependency } from "./types.js" export class PnpmNodeModulesCollector extends NodeModulesCollector { public readonly installOptions = { diff --git a/packages/app-builder-lib/src/node-module-collector/yarnBerryNodeModulesCollector.ts b/packages/app-builder-lib/src/node-module-collector/yarnBerryNodeModulesCollector.ts index de65a2f0573..b3d28d9504f 100644 --- a/packages/app-builder-lib/src/node-module-collector/yarnBerryNodeModulesCollector.ts +++ b/packages/app-builder-lib/src/node-module-collector/yarnBerryNodeModulesCollector.ts @@ -1,8 +1,8 @@ import { log } from "builder-util" import { Lazy } from "lazy-val" -import { NpmNodeModulesCollector } from "./npmNodeModulesCollector.js.js" -import { PM } from "./packageManager.js.js" -import { NpmDependency } from "./types.js.js" +import { NpmNodeModulesCollector } from "./npmNodeModulesCollector.js" +import { PM } from "./packageManager.js" +import { NpmDependency } from "./types.js" type YarnSetupInfo = { yarnVersion: string | null diff --git a/packages/app-builder-lib/src/node-module-collector/yarnNodeModulesCollector.ts b/packages/app-builder-lib/src/node-module-collector/yarnNodeModulesCollector.ts index 9a923cc13f5..ce114dc9862 100644 --- a/packages/app-builder-lib/src/node-module-collector/yarnNodeModulesCollector.ts +++ b/packages/app-builder-lib/src/node-module-collector/yarnNodeModulesCollector.ts @@ -1,9 +1,9 @@ import { log } from "builder-util" import { Lazy } from "lazy-val" import * as path from "path" -import { NodeModulesCollector } from "./nodeModulesCollector.js.js" -import { PM } from "./packageManager.js.js" -import { PackageJson, YarnDependency } from "./types.js.js" +import { NodeModulesCollector } from "./nodeModulesCollector.js" +import { PM } from "./packageManager.js" +import { PackageJson, YarnDependency } from "./types.js" type YarnListJsonLine = | { diff --git a/packages/app-builder-lib/src/options/CommonWindowsInstallerConfiguration.ts b/packages/app-builder-lib/src/options/CommonWindowsInstallerConfiguration.ts index 9d33ca0e000..04739580a91 100644 --- a/packages/app-builder-lib/src/options/CommonWindowsInstallerConfiguration.ts +++ b/packages/app-builder-lib/src/options/CommonWindowsInstallerConfiguration.ts @@ -1,5 +1,5 @@ import { InvalidConfigurationError, isEmptyOrSpaces } from "builder-util" -import { sanitizeFileName } from "builder-util/out/filename" +import { sanitizeFileName } from "builder-util" import { WinPackager } from "../winPackager.js" export interface CommonWindowsInstallerConfiguration { diff --git a/packages/app-builder-lib/src/options/MsiOptions.ts b/packages/app-builder-lib/src/options/MsiOptions.ts index 756355356c8..1a18b784fdc 100644 --- a/packages/app-builder-lib/src/options/MsiOptions.ts +++ b/packages/app-builder-lib/src/options/MsiOptions.ts @@ -1,5 +1,5 @@ import { TargetSpecificOptions } from "../core.js" -import { CommonWindowsInstallerConfiguration } from "./CommonWindowsInstallerConfiguration.js.js" +import { CommonWindowsInstallerConfiguration } from "./CommonWindowsInstallerConfiguration.js" export interface MsiOptions extends CommonWindowsInstallerConfiguration, TargetSpecificOptions { /** diff --git a/packages/app-builder-lib/src/options/MsiWrappedOptions.ts b/packages/app-builder-lib/src/options/MsiWrappedOptions.ts index 5a1d16293eb..e937333b53b 100644 --- a/packages/app-builder-lib/src/options/MsiWrappedOptions.ts +++ b/packages/app-builder-lib/src/options/MsiWrappedOptions.ts @@ -1,5 +1,5 @@ import { TargetSpecificOptions } from "../core.js" -import { CommonWindowsInstallerConfiguration } from "./CommonWindowsInstallerConfiguration.js.js" +import { CommonWindowsInstallerConfiguration } from "./CommonWindowsInstallerConfiguration.js" export interface MsiWrappedOptions extends CommonWindowsInstallerConfiguration, TargetSpecificOptions { /** diff --git a/packages/app-builder-lib/src/options/PlatformSpecificBuildOptions.ts b/packages/app-builder-lib/src/options/PlatformSpecificBuildOptions.ts index 8c14c36f567..3e7d399f95b 100644 --- a/packages/app-builder-lib/src/options/PlatformSpecificBuildOptions.ts +++ b/packages/app-builder-lib/src/options/PlatformSpecificBuildOptions.ts @@ -1,5 +1,5 @@ import { CompressionLevel, Publish, TargetConfiguration, TargetSpecificOptions } from "../core.js" -import { FileAssociation } from "./FileAssociation.js.js" +import { FileAssociation } from "./FileAssociation.js" export interface FileSet { /** diff --git a/packages/app-builder-lib/src/options/SnapOptions.ts b/packages/app-builder-lib/src/options/SnapOptions.ts index df0449f2370..930e676d52a 100644 --- a/packages/app-builder-lib/src/options/SnapOptions.ts +++ b/packages/app-builder-lib/src/options/SnapOptions.ts @@ -1,5 +1,5 @@ import { TargetSpecificOptions } from "../core.js" -import { CommonLinuxOptions } from "./linuxOptions.js.js" +import { CommonLinuxOptions } from "./linuxOptions.js" export interface SnapOptions extends CommonLinuxOptions, TargetSpecificOptions { /** diff --git a/packages/app-builder-lib/src/packager.ts b/packages/app-builder-lib/src/packager.ts index 236c362c527..297ff43aeb6 100644 --- a/packages/app-builder-lib/src/packager.ts +++ b/packages/app-builder-lib/src/packager.ts @@ -21,29 +21,29 @@ import { isCI } from "ci-info" import { Lazy } from "lazy-val" import { release as getOsRelease } from "os" import * as path from "path" -import { AppInfo } from "./appInfo.js.js" -import { readAsarJson } from "./asar/asar.js.js" -import { AfterExtractContext, AfterPackContext, BeforePackContext, Configuration, Hook } from "./configuration.js.js" -import { Platform, SourceRepositoryInfo, Target } from "./core.js.js" -import { createElectronFrameworkSupport } from "./electron/ElectronFramework.js.js" -import { Framework } from "./Framework.js.js" -import { LibUiFramework } from "./frameworks/LibUiFramework.js.js" -import { Metadata } from "./options/metadata.js.js" -import { ArtifactBuildStarted, ArtifactCreated, PackagerOptions } from "./packagerApi.js.js" -import { PlatformPackager } from "./platformPackager.js.js" -import { ProtonFramework } from "./ProtonFramework.js.js" -import { computeArchToTargetNamesMap, createTargets, NoOpTarget } from "./targets/targetFactory.js.js" -import { computeDefaultAppDirectory, getConfig, validateConfiguration } from "./util/config/config.js.js" -import { expandMacro } from "./util/macroExpander.js.js" -import { createLazyProductionDeps, NodeModuleDirInfo, NodeModuleInfo } from "./util/packageDependencies.js.js" -import { checkMetadata, readPackageJson } from "./util/packageMetadata.js.js" -import { getRepositoryInfo } from "./util/repositoryInfo.js.js" -import { resolveFunction } from "./util/resolve.js.js" -import { installOrRebuild, nodeGypRebuild } from "./util/yarn.js.js" -import { PACKAGE_VERSION } from "./version.js.js" -import { AsyncEventEmitter, HandlerType } from "./util/asyncEventEmitter.js.js" +import { AppInfo } from "./appInfo.js" +import { readAsarJson } from "./asar/asar.js" +import { AfterExtractContext, AfterPackContext, BeforePackContext, Configuration, Hook } from "./configuration.js" +import { Platform, SourceRepositoryInfo, Target } from "./core.js" +import { createElectronFrameworkSupport } from "./electron/ElectronFramework.js" +import { Framework } from "./Framework.js" +import { LibUiFramework } from "./frameworks/LibUiFramework.js" +import { Metadata } from "./options/metadata.js" +import { ArtifactBuildStarted, ArtifactCreated, PackagerOptions } from "./packagerApi.js" +import { PlatformPackager } from "./platformPackager.js" +import { ProtonFramework } from "./ProtonFramework.js" +import { computeArchToTargetNamesMap, createTargets, NoOpTarget } from "./targets/targetFactory.js" +import { computeDefaultAppDirectory, getConfig, validateConfiguration } from "./util/config/config.js" +import { expandMacro } from "./util/macroExpander.js" +import { createLazyProductionDeps, NodeModuleDirInfo, NodeModuleInfo } from "./util/packageDependencies.js" +import { checkMetadata, readPackageJson } from "./util/packageMetadata.js" +import { getRepositoryInfo } from "./util/repositoryInfo.js" +import { resolveFunction } from "./util/resolve.js" +import { installOrRebuild, nodeGypRebuild } from "./util/yarn.js" +import { PACKAGE_VERSION } from "./version.js" +import { AsyncEventEmitter, HandlerType } from "./util/asyncEventEmitter.js" import asyncPool from "tiny-async-pool" -import { determinePackageManagerEnv, PM } from "./node-module-collector.js.js" +import { determinePackageManagerEnv, PM } from "./node-module-collector/index.js" async function createFrameworkInfo(configuration: Configuration, packager: Packager): Promise { let framework = configuration.framework @@ -579,17 +579,17 @@ export class Packager { switch (platform) { case Platform.MAC: { - const helperClass = (await import("./macPackager")).MacPackager + const helperClass = (await import("./macPackager.js")).MacPackager return new helperClass(this) } case Platform.WINDOWS: { - const helperClass = (await import("./winPackager")).WinPackager + const helperClass = (await import("./winPackager.js")).WinPackager return new helperClass(this) } case Platform.LINUX: - return new (await import("./linuxPackager")).LinuxPackager(this) + return new (await import("./linuxPackager.js")).LinuxPackager(this) default: throw new Error(`Unknown platform: ${platform}`) diff --git a/packages/app-builder-lib/src/packagerApi.ts b/packages/app-builder-lib/src/packagerApi.ts index 6ea6145af03..16c5a42a9ba 100644 --- a/packages/app-builder-lib/src/packagerApi.ts +++ b/packages/app-builder-lib/src/packagerApi.ts @@ -1,10 +1,10 @@ import { Arch } from "builder-util" import { PublishConfiguration } from "builder-util-runtime" import { UploadTask } from "electron-publish" -import { Configuration } from "./configuration.js.js" -import { Platform, Target } from "./core.js.js" -import { Packager } from "./packager.js.js" -import { PlatformPackager } from "./platformPackager.js.js" +import { Configuration } from "./configuration.js" +import { Platform, Target } from "./core.js" +import { Packager } from "./packager.js" +import { PlatformPackager } from "./platformPackager.js" export interface PackagerOptions { targets?: Map>> diff --git a/packages/app-builder-lib/src/platformPackager.ts b/packages/app-builder-lib/src/platformPackager.ts index 277d974403e..738db00ccad 100644 --- a/packages/app-builder-lib/src/platformPackager.ts +++ b/packages/app-builder-lib/src/platformPackager.ts @@ -22,14 +22,14 @@ import { Minimatch } from "minimatch" import * as path from "path" import * as fs from "fs/promises" import * as os from "os" -import { AppInfo } from "./appInfo.js.js" -import { checkFileInArchive } from "./asar/asarFileChecker.js.js" -import { AsarPackager } from "./asar/asarUtil.js.js" -import { AsarIntegrity, computeData } from "./asar/integrity.js.js" -import { FuseOptionsV1 } from "./configuration.js.js" -import { copyFiles, FileMatcher, getFileMatchers, GetFileMatchersOptions, getMainFileMatchers, getNodeModuleFileMatcher } from "./fileMatcher.js.js" -import { createTransformer, isElectronCompileUsed } from "./fileTransformer.js.js" -import { Framework, isElectronBased } from "./Framework.js.js" +import { AppInfo } from "./appInfo.js" +import { checkFileInArchive } from "./asar/asarFileChecker.js" +import { AsarPackager } from "./asar/asarUtil.js" +import { AsarIntegrity, computeData } from "./asar/integrity.js" +import { FuseOptionsV1 } from "./configuration.js" +import { copyFiles, FileMatcher, getFileMatchers, GetFileMatchersOptions, getMainFileMatchers, getNodeModuleFileMatcher } from "./fileMatcher.js" +import { createTransformer, isElectronCompileUsed } from "./fileTransformer.js" +import { Framework, isElectronBased } from "./Framework.js" import { AfterPackContext, AsarOptions, @@ -45,10 +45,10 @@ import { Target, TargetSpecificOptions, } from "./index.js" -import { executeAppBuilderAsJson } from "./util/appBuilder.js.js" -import { computeFileSets, computeNodeModuleFileSets, copyAppFiles, ELECTRON_COMPILE_SHIM_FILENAME, transformFiles } from "./util/appFileCopier.js.js" -import { expandMacro as doExpandMacro } from "./util/macroExpander.js.js" -import { AssetCatalogResult, generateAssetCatalogForIcon } from "./util/macosIconComposer.js.js" +import { executeAppBuilderAsJson } from "./util/appBuilder.js" +import { computeFileSets, computeNodeModuleFileSets, copyAppFiles, ELECTRON_COMPILE_SHIM_FILENAME, transformFiles } from "./util/appFileCopier.js" +import { expandMacro as doExpandMacro } from "./util/macroExpander.js" +import { AssetCatalogResult, generateAssetCatalogForIcon } from "./util/macosIconComposer.js" export type DoPackOptions = { outDir: string diff --git a/packages/app-builder-lib/src/publish/PublishManager.ts b/packages/app-builder-lib/src/publish/PublishManager.ts index 493f4e35a4a..9da6be6341b 100644 --- a/packages/app-builder-lib/src/publish/PublishManager.ts +++ b/packages/app-builder-lib/src/publish/PublishManager.ts @@ -29,7 +29,7 @@ import { SpacesPublisher, UploadTask, } from "electron-publish" -import { MultiProgress } from "electron-publish/out/multiProgress" +import { MultiProgress } from "electron-publish" import { writeFile } from "fs/promises" import { isCI } from "ci-info" import * as path from "path" @@ -40,7 +40,7 @@ import { Packager } from "../packager.js" import { PlatformPackager } from "../platformPackager.js" import { expandMacro } from "../util/macroExpander.js" import { WinPackager } from "../winPackager.js" -import { createUpdateInfoTasks, UpdateInfoFileTask, writeUpdateInfoFiles } from "./updateInfoBuilder.js.js" +import { createUpdateInfoTasks, UpdateInfoFileTask, writeUpdateInfoFiles } from "./updateInfoBuilder.js" import { resolveModule } from "../util/resolve.js" const publishForPrWarning = diff --git a/packages/app-builder-lib/src/publish/updateInfoBuilder.ts b/packages/app-builder-lib/src/publish/updateInfoBuilder.ts index a0ac118e3ae..2590df52b37 100644 --- a/packages/app-builder-lib/src/publish/updateInfoBuilder.ts +++ b/packages/app-builder-lib/src/publish/updateInfoBuilder.ts @@ -11,7 +11,7 @@ import { Packager } from "../packager.js" import { ArtifactCreated } from "../packagerApi.js" import { PlatformPackager } from "../platformPackager.js" import { hashFile } from "../util/hash.js" -import { computeDownloadUrl, getPublishConfigsForUpdateInfo } from "./PublishManager.js.js" +import { computeDownloadUrl, getPublishConfigsForUpdateInfo } from "./PublishManager.js" async function getReleaseInfo(packager: PlatformPackager) { const releaseInfo: ReleaseInfo = { ...(packager.platformSpecificBuildOptions.releaseInfo || packager.config.releaseInfo) } diff --git a/packages/app-builder-lib/src/targets/AppImageTarget.ts b/packages/app-builder-lib/src/targets/AppImageTarget.ts index 0d30d8495e1..81e3705d16d 100644 --- a/packages/app-builder-lib/src/targets/AppImageTarget.ts +++ b/packages/app-builder-lib/src/targets/AppImageTarget.ts @@ -8,12 +8,12 @@ import { AppImageOptions } from "../options/linuxOptions.js" import { getAppUpdatePublishConfiguration } from "../publish/PublishManager.js" import { executeAppBuilderAsJson, objectToArgs } from "../util/appBuilder.js" import { getNotLocalizedLicenseFile } from "../util/license.js" -import { LinuxTargetHelper } from "./LinuxTargetHelper.js.js" -import { createStageDir } from "./targetUtil.js.js" +import { LinuxTargetHelper } from "./LinuxTargetHelper.js" +import { createStageDir } from "./targetUtil.js" // https://unix.stackexchange.com/questions/375191/append-to-sub-directory-inside-squashfs-file export default class AppImageTarget extends Target { - readonly options: AppImageOptions = { ...this.packager.platformSpecificBuildOptions, ...(this.packager.config as any)[this.name] } + readonly options: AppImageOptions private readonly desktopEntry: Lazy constructor( @@ -23,6 +23,7 @@ export default class AppImageTarget extends Target { readonly outDir: string ) { super("appImage") + this.options = { ...this.packager.platformSpecificBuildOptions, ...(this.packager.config as any)[this.name] } this.desktopEntry = new Lazy(() => { const args = this.options.executableArgs?.join(" ") || "--no-sandbox" diff --git a/packages/app-builder-lib/src/targets/AppxTarget.ts b/packages/app-builder-lib/src/targets/AppxTarget.ts index 1a1ac94b3d9..7ea1a725685 100644 --- a/packages/app-builder-lib/src/targets/AppxTarget.ts +++ b/packages/app-builder-lib/src/targets/AppxTarget.ts @@ -2,13 +2,13 @@ import { Arch, asArray, copyOrLinkFile, deepAssign, InvalidConfigurationError, l import { Nullish } from "builder-util-runtime" import { emptyDir, readdir, readFile, writeFile } from "fs-extra" import * as path from "path" -import { AppXOptions } from "../" +import { AppXOptions } from "../index.js" import { getSignVendorPath, isOldWin6 } from "../codeSign/windowsSignToolManager.js" import { Target } from "../core.js" import { getTemplatePath } from "../util/pathManager.js" import { VmManager } from "../vm/vm.js" import { WinPackager } from "../winPackager.js" -import { createStageDir } from "./targetUtil.js.js" +import { createStageDir } from "./targetUtil.js" const APPX_ASSETS_DIR_NAME = "appx" @@ -47,7 +47,7 @@ const restrictedApplicationIdValues = [ const DEFAULT_RESOURCE_LANG = "en-US" export default class AppXTarget extends Target { - readonly options: AppXOptions = deepAssign({}, this.packager.platformSpecificBuildOptions, this.packager.config.appx) + readonly options: AppXOptions isAsyncSupported = false @@ -56,6 +56,7 @@ export default class AppXTarget extends Target { readonly outDir: string ) { super("appx") + this.options = deepAssign({}, this.packager.platformSpecificBuildOptions, this.packager.config.appx) if (process.platform !== "darwin" && (process.platform !== "win32" || isOldWin6())) { throw new Error("AppX is supported only on Windows 10 or Windows Server 2012 R2 (version number 6.3+)") diff --git a/packages/app-builder-lib/src/targets/ArchiveTarget.ts b/packages/app-builder-lib/src/targets/ArchiveTarget.ts index da9d07497aa..14f305fd3e2 100644 --- a/packages/app-builder-lib/src/targets/ArchiveTarget.ts +++ b/packages/app-builder-lib/src/targets/ArchiveTarget.ts @@ -3,11 +3,11 @@ import * as path from "path" import { Platform, Target, TargetSpecificOptions } from "../core.js" import { copyFiles, getFileMatchers } from "../fileMatcher.js" import { PlatformPackager } from "../platformPackager.js" -import { archive, tar } from "./archive.js.js" -import { appendBlockmap, createBlockmap } from "./differentialUpdateInfoBuilder.js.js" +import { archive, tar } from "./archive.js" +import { appendBlockmap, createBlockmap } from "./differentialUpdateInfoBuilder.js" export class ArchiveTarget extends Target { - readonly options: TargetSpecificOptions = (this.packager.config as any)[this.name] + readonly options: TargetSpecificOptions constructor( name: string, @@ -16,6 +16,7 @@ export class ArchiveTarget extends Target { private readonly isWriteUpdateInfo = false ) { super(name) + this.options = (this.packager.config as any)[this.name] } async build(appOutDir: string, arch: Arch): Promise { diff --git a/packages/app-builder-lib/src/targets/FlatpakTarget.ts b/packages/app-builder-lib/src/targets/FlatpakTarget.ts index b2906178f83..c3e09c15212 100644 --- a/packages/app-builder-lib/src/targets/FlatpakTarget.ts +++ b/packages/app-builder-lib/src/targets/FlatpakTarget.ts @@ -6,14 +6,11 @@ import { Target } from "../core.js" import { LinuxPackager } from "../linuxPackager.js" import { FlatpakOptions } from "../options/linuxOptions.js" import { getNotLocalizedLicenseFile } from "../util/license.js" -import { LinuxTargetHelper } from "./LinuxTargetHelper.js.js" -import { createStageDir, StageDir } from "./targetUtil.js.js" +import { LinuxTargetHelper } from "./LinuxTargetHelper.js" +import { createStageDir, StageDir } from "./targetUtil.js" export default class FlatpakTarget extends Target { - readonly options: FlatpakOptions = { - ...this.packager.platformSpecificBuildOptions, - ...(this.packager.config as any)[this.name], - } + readonly options: FlatpakOptions constructor( name: string, @@ -22,6 +19,10 @@ export default class FlatpakTarget extends Target { readonly outDir: string ) { super(name) + this.options = { + ...this.packager.platformSpecificBuildOptions, + ...(this.packager.config as any)[this.name], + } } get appId(): string { diff --git a/packages/app-builder-lib/src/targets/FpmTarget.ts b/packages/app-builder-lib/src/targets/FpmTarget.ts index 2f83004f40c..c8dd1e0c144 100644 --- a/packages/app-builder-lib/src/targets/FpmTarget.ts +++ b/packages/app-builder-lib/src/targets/FpmTarget.ts @@ -15,8 +15,8 @@ import { computeEnv } from "../util/bundledTool.js" import { hashFile } from "../util/hash.js" import { isMacOsSierra } from "../util/macosVersion.js" import { getTemplatePath } from "../util/pathManager.js" -import { installPrefix, LinuxTargetHelper } from "./LinuxTargetHelper.js.js" -import { getFpmPath, getLinuxToolsPath } from "./tools.js.js" +import { installPrefix, LinuxTargetHelper } from "./LinuxTargetHelper.js" +import { getFpmPath, getLinuxToolsPath } from "./tools.js" interface FpmOptions { name: string @@ -32,7 +32,7 @@ interface ScriptFiles { } export default class FpmTarget extends Target { - readonly options: LinuxTargetSpecificOptions = { ...this.packager.platformSpecificBuildOptions, ...(this.packager.config as any)[this.name] } + readonly options: LinuxTargetSpecificOptions private readonly scriptFiles: Promise @@ -43,6 +43,7 @@ export default class FpmTarget extends Target { readonly outDir: string ) { super(name, false) + this.options = { ...this.packager.platformSpecificBuildOptions, ...(this.packager.config as any)[this.name] } this.scriptFiles = this.createScripts() } diff --git a/packages/app-builder-lib/src/targets/MsiTarget.ts b/packages/app-builder-lib/src/targets/MsiTarget.ts index b064cca44e4..8bb158d0c7a 100644 --- a/packages/app-builder-lib/src/targets/MsiTarget.ts +++ b/packages/app-builder-lib/src/targets/MsiTarget.ts @@ -5,7 +5,7 @@ import * as ejs from "ejs" import { readFile, writeFile } from "fs/promises" import { Lazy } from "lazy-val" import * as path from "path" -import { MsiOptions } from "../" +import { MsiOptions } from "../index.js" import { getBinFromUrl } from "../binDownload.js" import { Target } from "../core.js" import { DesktopShortcutCreationPolicy, FinalCommonWindowsInstallerOptions, getEffectiveOptions } from "../options/CommonWindowsInstallerConfiguration.js" @@ -14,7 +14,7 @@ import { getTemplatePath } from "../util/pathManager.js" import { VmManager } from "../vm/vm.js" import { WineVmManager } from "../vm/WineVm.js" import { WinPackager } from "../winPackager.js" -import { createStageDir, getWindowsInstallationDirName } from "./targetUtil.js.js" +import { createStageDir, getWindowsInstallationDirName } from "./targetUtil.js" const ELECTRON_BUILDER_UPGRADE_CODE_NS_UUID = UUID.parse("d752fe43-5d44-44d5-9fc9-6dd1bf19d5cc") const ROOT_DIR_ID = "APPLICATIONFOLDER" @@ -23,7 +23,7 @@ const ROOT_DIR_ID = "APPLICATIONFOLDER" export default class MsiTarget extends Target { protected readonly vm = process.platform === "win32" ? new VmManager() : new WineVmManager() - readonly options: MsiOptions = deepAssign(this.packager.platformSpecificBuildOptions, this.packager.config.msi) + readonly options: MsiOptions constructor( protected readonly packager: WinPackager, @@ -32,6 +32,7 @@ export default class MsiTarget extends Target { isAsyncSupported = true ) { super(name, isAsyncSupported) + this.options = deepAssign(this.packager.platformSpecificBuildOptions, this.packager.config.msi) } protected projectTemplate = new Lazy<(data: any) => string>(async () => { diff --git a/packages/app-builder-lib/src/targets/MsiWrappedTarget.ts b/packages/app-builder-lib/src/targets/MsiWrappedTarget.ts index 4c7b5c12ccf..6496086682c 100644 --- a/packages/app-builder-lib/src/targets/MsiWrappedTarget.ts +++ b/packages/app-builder-lib/src/targets/MsiWrappedTarget.ts @@ -1,11 +1,11 @@ import { Arch, deepAssign } from "builder-util" import { UUID } from "builder-util-runtime" import * as path from "path" -import { MsiWrappedOptions } from "../" +import { MsiWrappedOptions } from "../index.js" import { TargetConfiguration } from "../core.js" import { FinalCommonWindowsInstallerOptions } from "../options/CommonWindowsInstallerConfiguration.js" import { WinPackager } from "../winPackager.js" -import MsiTarget from "./MsiTarget.js.js" +import MsiTarget from "./MsiTarget.js" const ELECTRON_MSI_WRAPPED_NS_UUID = UUID.parse("467f7bb2-a83c-442f-b776-394d316e8e53") diff --git a/packages/app-builder-lib/src/targets/archive.ts b/packages/app-builder-lib/src/targets/archive.ts index 9e6429eb869..eaec0ac25fc 100644 --- a/packages/app-builder-lib/src/targets/archive.ts +++ b/packages/app-builder-lib/src/targets/archive.ts @@ -4,7 +4,7 @@ import * as path from "path" import { create, CreateOptions, FileOptions } from "tar" import { TmpDir } from "temp-file" import { CompressionLevel } from "../core.js" -import { getLinuxToolsPath } from "./tools.js.js" +import { getLinuxToolsPath } from "./tools.js" /** @internal */ export async function tar(compression: CompressionLevel | any, format: string, outFile: string, dirToArchive: string, isMacApp: boolean, tempDirManager: TmpDir): Promise { diff --git a/packages/app-builder-lib/src/targets/differentialUpdateInfoBuilder.ts b/packages/app-builder-lib/src/targets/differentialUpdateInfoBuilder.ts index 32c66d9b5ab..a06ed91e8aa 100644 --- a/packages/app-builder-lib/src/targets/differentialUpdateInfoBuilder.ts +++ b/packages/app-builder-lib/src/targets/differentialUpdateInfoBuilder.ts @@ -4,7 +4,7 @@ import * as path from "path" import { Target } from "../core.js" import { PlatformPackager } from "../platformPackager.js" import { executeAppBuilderAsJson } from "../util/appBuilder.js" -import { ArchiveOptions } from "./archive.js.js" +import { ArchiveOptions } from "./archive.js" export const BLOCK_MAP_FILE_SUFFIX = ".blockmap" diff --git a/packages/app-builder-lib/src/targets/nsis/Defines.ts b/packages/app-builder-lib/src/targets/nsis/Defines.ts index aa5e8052d85..fcad4e185ff 100644 --- a/packages/app-builder-lib/src/targets/nsis/Defines.ts +++ b/packages/app-builder-lib/src/targets/nsis/Defines.ts @@ -1,4 +1,4 @@ -import { PortableOptions } from "./nsisOptions.js.js" +import { PortableOptions } from "./nsisOptions.js" /** * Parameters declared as environment variables in NSIS scripts. * The documentation vaguely explains "All other electron-builder specific flags (e.g. ONE_CLICK) are still defined." diff --git a/packages/app-builder-lib/src/targets/nsis/NsisTarget.ts b/packages/app-builder-lib/src/targets/nsis/NsisTarget.ts index d3eb1723632..31e353c42f4 100644 --- a/packages/app-builder-lib/src/targets/nsis/NsisTarget.ts +++ b/packages/app-builder-lib/src/targets/nsis/NsisTarget.ts @@ -31,13 +31,13 @@ import { WinPackager } from "../../winPackager.js" import { archive, ArchiveOptions } from "../archive.js" import { appendBlockmap, configureDifferentialAwareArchiveOptions, createBlockmap, createNsisWebDifferentialUpdateInfo } from "../differentialUpdateInfoBuilder.js" import { getWindowsInstallationAppPackageName, getWindowsInstallationDirName } from "../targetUtil.js" -import { Commands } from "./Commands.js.js" -import { Defines } from "./Defines.js.js" -import { addCustomMessageFileInclude, createAddLangsMacro, LangConfigurator } from "./nsisLang.js.js" -import { computeLicensePage } from "./nsisLicense.js.js" -import { NsisOptions, PortableOptions } from "./nsisOptions.js.js" -import { NsisScriptGenerator } from "./nsisScriptGenerator.js.js" -import { AppPackageHelper, NSIS_PATH, NSIS_RESOURCES_PATH, NsisTargetOptions, nsisTemplatesDir, UninstallerReader } from "./nsisUtil.js.js" +import { Commands } from "./Commands.js" +import { Defines } from "./Defines.js" +import { addCustomMessageFileInclude, createAddLangsMacro, LangConfigurator } from "./nsisLang.js" +import { computeLicensePage } from "./nsisLicense.js" +import { NsisOptions, PortableOptions } from "./nsisOptions.js" +import { NsisScriptGenerator } from "./nsisScriptGenerator.js" +import { AppPackageHelper, NSIS_PATH, NSIS_RESOURCES_PATH, NsisTargetOptions, nsisTemplatesDir, UninstallerReader } from "./nsisUtil.js" const debug = _debug("electron-builder:nsis") diff --git a/packages/app-builder-lib/src/targets/nsis/WebInstallerTarget.ts b/packages/app-builder-lib/src/targets/nsis/WebInstallerTarget.ts index bc16c003062..235c00fc6ca 100644 --- a/packages/app-builder-lib/src/targets/nsis/WebInstallerTarget.ts +++ b/packages/app-builder-lib/src/targets/nsis/WebInstallerTarget.ts @@ -1,9 +1,9 @@ import { Arch, log } from "builder-util" import { computeDownloadUrl, getPublishConfigs, getPublishConfigsForUpdateInfo } from "../../publish/PublishManager.js" import { WinPackager } from "../../winPackager.js" -import { NsisWebOptions } from "./nsisOptions.js.js" -import { NsisTarget } from "./NsisTarget.js.js" -import { AppPackageHelper } from "./nsisUtil.js.js" +import { NsisWebOptions } from "./nsisOptions.js" +import { NsisTarget } from "./NsisTarget.js" +import { AppPackageHelper } from "./nsisUtil.js" /** @private */ export class WebInstallerTarget extends NsisTarget { diff --git a/packages/app-builder-lib/src/targets/nsis/nsisLang.ts b/packages/app-builder-lib/src/targets/nsis/nsisLang.ts index e673c58bc03..36a1e5455e5 100644 --- a/packages/app-builder-lib/src/targets/nsis/nsisLang.ts +++ b/packages/app-builder-lib/src/targets/nsis/nsisLang.ts @@ -5,9 +5,9 @@ import { load } from "js-yaml" import * as path from "path" import { PlatformPackager } from "../../platformPackager.js" import { bundledLanguages, langIdToName, lcid, toLangWithRegion } from "../../util/langs.js" -import { NsisOptions } from "./nsisOptions.js.js" -import { NsisScriptGenerator } from "./nsisScriptGenerator.js.js" -import { nsisTemplatesDir } from "./nsisUtil.js.js" +import { NsisOptions } from "./nsisOptions.js" +import { NsisScriptGenerator } from "./nsisScriptGenerator.js" +import { nsisTemplatesDir } from "./nsisUtil.js" const debug = _debug("electron-builder:nsis") diff --git a/packages/app-builder-lib/src/targets/nsis/nsisLicense.ts b/packages/app-builder-lib/src/targets/nsis/nsisLicense.ts index c8cee8aae0f..436689606ef 100644 --- a/packages/app-builder-lib/src/targets/nsis/nsisLicense.ts +++ b/packages/app-builder-lib/src/targets/nsis/nsisLicense.ts @@ -4,9 +4,9 @@ import * as path from "path" import { lcid } from "../../util/langs.js" import { getLicenseFiles, getNotLocalizedLicenseFile } from "../../util/license.js" import { WinPackager } from "../../winPackager.js" -import { NsisOptions } from "./nsisOptions.js.js" -import { NsisScriptGenerator } from "./nsisScriptGenerator.js.js" -import { nsisTemplatesDir } from "./nsisUtil.js.js" +import { NsisOptions } from "./nsisOptions.js" +import { NsisScriptGenerator } from "./nsisScriptGenerator.js" +import { nsisTemplatesDir } from "./nsisUtil.js" function convertFileToUtf8WithBOMSync(filePath: string): boolean { try { diff --git a/packages/app-builder-lib/src/targets/nsis/nsisOptions.ts b/packages/app-builder-lib/src/targets/nsis/nsisOptions.ts index ff97b067d61..4540a65d61d 100644 --- a/packages/app-builder-lib/src/targets/nsis/nsisOptions.ts +++ b/packages/app-builder-lib/src/targets/nsis/nsisOptions.ts @@ -1,4 +1,4 @@ -import { CommonWindowsInstallerConfiguration } from "../...js" +import { CommonWindowsInstallerConfiguration } from "../../options/CommonWindowsInstallerConfiguration.js" import { TargetSpecificOptions } from "../../core.js" export interface CustomNsisBinary { diff --git a/packages/app-builder-lib/src/targets/nsis/nsisUtil.ts b/packages/app-builder-lib/src/targets/nsis/nsisUtil.ts index b8dd6a0b1c6..9e741a60d19 100644 --- a/packages/app-builder-lib/src/targets/nsis/nsisUtil.ts +++ b/packages/app-builder-lib/src/targets/nsis/nsisUtil.ts @@ -5,8 +5,8 @@ import * as path from "path" import * as zlib from "zlib" import { getBinFromCustomLoc, getBinFromUrl } from "../../binDownload.js" import { getTemplatePath } from "../../util/pathManager.js" -import { NsisOptions } from "./nsisOptions.js.js" -import { NsisTarget } from "./NsisTarget.js.js" +import { NsisOptions } from "./nsisOptions.js" +import { NsisTarget } from "./NsisTarget.js" export const nsisTemplatesDir = getTemplatePath("nsis") diff --git a/packages/app-builder-lib/src/targets/pkg.ts b/packages/app-builder-lib/src/targets/pkg.ts index e4fc0f4e621..eba3a4fa04b 100644 --- a/packages/app-builder-lib/src/targets/pkg.ts +++ b/packages/app-builder-lib/src/targets/pkg.ts @@ -39,18 +39,19 @@ type ExtraPackages = { // productbuild --scripts doesn't work (because scripts in this case not added to our package) // https://github.com/electron-userland/@electron/osx-sign/issues/96#issuecomment-274986942 export class PkgTarget extends Target { - readonly options: PkgOptions = { - allowAnywhere: true, - allowCurrentUserHome: true, - allowRootDirectory: true, - ...this.packager.config.pkg, - } + readonly options: PkgOptions constructor( private readonly packager: MacPackager, readonly outDir: string ) { super("pkg") + this.options = { + allowAnywhere: true, + allowCurrentUserHome: true, + allowRootDirectory: true, + ...this.packager.config.pkg, + } } async build(appPath: string, arch: Arch): Promise { diff --git a/packages/app-builder-lib/src/targets/snap.ts b/packages/app-builder-lib/src/targets/snap.ts index 31cdae30c6c..434aace4609 100644 --- a/packages/app-builder-lib/src/targets/snap.ts +++ b/packages/app-builder-lib/src/targets/snap.ts @@ -9,13 +9,13 @@ import { Publish, Target } from "../core.js" import { LinuxPackager } from "../linuxPackager.js" import { PlugDescriptor, SnapOptions } from "../options/SnapOptions.js" import { getTemplatePath } from "../util/pathManager.js" -import { LinuxTargetHelper } from "./LinuxTargetHelper.js.js" -import { createStageDirPath } from "./targetUtil.js.js" +import { LinuxTargetHelper } from "./LinuxTargetHelper.js" +import { createStageDirPath } from "./targetUtil.js" const defaultPlugs = ["desktop", "desktop-legacy", "home", "x11", "wayland", "unity7", "browser-support", "network", "gsettings", "audio-playback", "pulseaudio", "opengl"] export default class SnapTarget extends Target { - readonly options: SnapOptions = { ...this.packager.platformSpecificBuildOptions, ...(this.packager.config as any)[this.name] } + readonly options: SnapOptions public isUseTemplateApp = false @@ -26,6 +26,7 @@ export default class SnapTarget extends Target { readonly outDir: string ) { super(name) + this.options = { ...this.packager.platformSpecificBuildOptions, ...(this.packager.config as any)[this.name] } } private replaceDefault(inList: Array | Nullish, defaultList: Array) { diff --git a/packages/app-builder-lib/src/targets/targetFactory.ts b/packages/app-builder-lib/src/targets/targetFactory.ts index cfdf6392e17..8d1cf37b542 100644 --- a/packages/app-builder-lib/src/targets/targetFactory.ts +++ b/packages/app-builder-lib/src/targets/targetFactory.ts @@ -1,7 +1,7 @@ import { addValue, Arch, archFromString, ArchType, asArray } from "builder-util" import { DEFAULT_TARGET, DIR_TARGET, Platform, Target, TargetConfiguration } from "../core.js" import { PlatformPackager } from "../platformPackager.js" -import { ArchiveTarget } from "./ArchiveTarget.js.js" +import { ArchiveTarget } from "./ArchiveTarget.js" const archiveTargets = new Set(["zip", "7z", "tar.xz", "tar.lz", "tar.gz", "tar.bz2"]) diff --git a/packages/app-builder-lib/src/targets/targetUtil.ts b/packages/app-builder-lib/src/targets/targetUtil.ts index 1c62fd9afde..70a3668c14d 100644 --- a/packages/app-builder-lib/src/targets/targetUtil.ts +++ b/packages/app-builder-lib/src/targets/targetUtil.ts @@ -1,7 +1,7 @@ import { Arch, debug } from "builder-util" import * as fs from "fs/promises" import * as path from "path" -import { AppInfo, Target } from "../" +import { AppInfo, Target } from "../index.js" import { PlatformPackager } from "../platformPackager.js" export class StageDir { diff --git a/packages/app-builder-lib/src/util/NodeModuleCopyHelper.ts b/packages/app-builder-lib/src/util/NodeModuleCopyHelper.ts index a408e317969..87264106008 100644 --- a/packages/app-builder-lib/src/util/NodeModuleCopyHelper.ts +++ b/packages/app-builder-lib/src/util/NodeModuleCopyHelper.ts @@ -5,9 +5,9 @@ import * as path from "path" import asyncPool from "tiny-async-pool" import { excludedNames, FileMatcher } from "../fileMatcher.js" import { Packager } from "../packager.js" -import { FileCopyHelper } from "./AppFileWalker.js.js" -import { NodeModuleInfo } from "./packageDependencies.js.js" -import { resolveFunction } from "./resolve.js.js" +import { FileCopyHelper } from "./AppFileWalker.js" +import { NodeModuleInfo } from "./packageDependencies.js" +import { resolveFunction } from "./resolve.js" const excludedFiles = new Set( [ diff --git a/packages/app-builder-lib/src/util/appFileCopier.ts b/packages/app-builder-lib/src/util/appFileCopier.ts index 98963811d65..783cc12d6e1 100644 --- a/packages/app-builder-lib/src/util/appFileCopier.ts +++ b/packages/app-builder-lib/src/util/appFileCopier.ts @@ -10,10 +10,10 @@ import { excludedExts, FileMatcher } from "../fileMatcher.js" import { createElectronCompilerHost, NODE_MODULES_PATTERN } from "../fileTransformer.js" import { Packager } from "../packager.js" import { PlatformPackager } from "../platformPackager.js" -import { AppFileWalker } from "./AppFileWalker.js.js" -import { NodeModuleCopyHelper } from "./NodeModuleCopyHelper.js.js" -import { NodeModuleInfo } from "./packageDependencies.js.js" -import { getNodeModules } from "../node-module-collector.js" +import { AppFileWalker } from "./AppFileWalker.js" +import { NodeModuleCopyHelper } from "./NodeModuleCopyHelper.js" +import { NodeModuleInfo } from "./packageDependencies.js" +import { getNodeModules } from "../node-module-collector/index.js" const BOWER_COMPONENTS_PATTERN = `${path.sep}bower_components${path.sep}` /** @internal */ diff --git a/packages/app-builder-lib/src/util/config/config.ts b/packages/app-builder-lib/src/util/config/config.ts index 18a8d052b23..4cf14807e94 100644 --- a/packages/app-builder-lib/src/util/config/config.ts +++ b/packages/app-builder-lib/src/util/config/config.ts @@ -7,7 +7,7 @@ import { Configuration } from "../../configuration.js" import { FileSet } from "../../options/PlatformSpecificBuildOptions.js" import { reactCra } from "../../presets/rectCra.js" import { PACKAGE_VERSION } from "../../version.js" -import { getConfig as _getConfig, loadParentConfig, orNullIfFileNotExist, ReadConfigRequest } from "./load.js.js" +import { getConfig as _getConfig, loadParentConfig, orNullIfFileNotExist, ReadConfigRequest } from "./load.js" const validateSchema = require("@develar/schema-utils") // https://github.com/electron-userland/electron-builder/issues/1847 diff --git a/packages/app-builder-lib/src/util/license.ts b/packages/app-builder-lib/src/util/license.ts index 8f268f45b0c..da20e4dd392 100644 --- a/packages/app-builder-lib/src/util/license.ts +++ b/packages/app-builder-lib/src/util/license.ts @@ -1,7 +1,7 @@ import { Nullish } from "builder-util-runtime" import * as path from "path" import { PlatformPackager } from "../platformPackager.js" -import { langIdToName, toLangWithRegion } from "./langs.js.js" +import { langIdToName, toLangWithRegion } from "./langs.js" export function getLicenseAssets(fileNames: Array, packager: PlatformPackager) { return fileNames diff --git a/packages/app-builder-lib/src/util/packageDependencies.ts b/packages/app-builder-lib/src/util/packageDependencies.ts index 25990054904..9d586f0f6a0 100644 --- a/packages/app-builder-lib/src/util/packageDependencies.ts +++ b/packages/app-builder-lib/src/util/packageDependencies.ts @@ -1,5 +1,5 @@ import { Lazy } from "lazy-val" -import { executeAppBuilderAsJson } from "./appBuilder.js.js" +import { executeAppBuilderAsJson } from "./appBuilder.js" export function createLazyProductionDeps(projectDir: string, excludedDependencies: Array | null, flatten: T) { return new Lazy(async () => { diff --git a/packages/app-builder-lib/src/util/packageMetadata.ts b/packages/app-builder-lib/src/util/packageMetadata.ts index 74714b094a0..b00255ab915 100644 --- a/packages/app-builder-lib/src/util/packageMetadata.ts +++ b/packages/app-builder-lib/src/util/packageMetadata.ts @@ -4,7 +4,7 @@ import { readFile, readJson, readJsonSync } from "fs-extra" import * as path from "path" import * as semver from "semver" import { Metadata } from "../options/metadata.js" -import { normalizePackageData } from "./normalizePackageData.js.js" +import { normalizePackageData } from "./normalizePackageData.js" /** @internal */ export async function readPackageJson(file: string): Promise { diff --git a/packages/app-builder-lib/src/util/resolve.ts b/packages/app-builder-lib/src/util/resolve.ts index 93bf6822fe9..85792d89a75 100644 --- a/packages/app-builder-lib/src/util/resolve.ts +++ b/packages/app-builder-lib/src/util/resolve.ts @@ -1,4 +1,4 @@ -import { log } from "builder-util/out/log" +import { log } from "builder-util" import debug from "debug" import * as path from "path" import * as requireMaybe from "../../helpers/dynamic-import.js" diff --git a/packages/app-builder-lib/src/util/yarn.ts b/packages/app-builder-lib/src/util/yarn.ts index fd447abb010..073cffaa576 100644 --- a/packages/app-builder-lib/src/util/yarn.ts +++ b/packages/app-builder-lib/src/util/yarn.ts @@ -4,11 +4,11 @@ import { Lazy } from "lazy-val" import { homedir } from "os" import * as path from "path" import { Configuration } from "../configuration.js" -import { executeAppBuilderAndWriteJson } from "./appBuilder.js.js" -import { PM, getPackageManagerCommand } from "../node-module-collector.js" +import { executeAppBuilderAndWriteJson } from "./appBuilder.js" +import { PM, getPackageManagerCommand } from "../node-module-collector/index.js" import { detectPackageManager } from "../node-module-collector/packageManager.js" -import { NodeModuleDirInfo } from "./packageDependencies.js.js" -import { rebuild as remoteRebuild } from "./rebuild.js.js" +import { NodeModuleDirInfo } from "./packageDependencies.js" +import { rebuild as remoteRebuild } from "./rebuild.js" import * as which from "which" import { RebuildOptions as ElectronRebuildOptions } from "@electron/rebuild" import { Nullish } from "builder-util-runtime" diff --git a/packages/app-builder-lib/src/vm/MonoVm.ts b/packages/app-builder-lib/src/vm/MonoVm.ts index 8cfb85be537..ad354bfb3a9 100644 --- a/packages/app-builder-lib/src/vm/MonoVm.ts +++ b/packages/app-builder-lib/src/vm/MonoVm.ts @@ -1,6 +1,6 @@ import { exec, ExtraSpawnOptions, spawn } from "builder-util" import { ExecFileOptions, SpawnOptions } from "child_process" -import { VmManager } from "./vm.js.js" +import { VmManager } from "./vm.js" export class MonoVmManager extends VmManager { constructor() { diff --git a/packages/app-builder-lib/src/vm/ParallelsVm.ts b/packages/app-builder-lib/src/vm/ParallelsVm.ts index 7179b40e06f..948a4e46bdf 100644 --- a/packages/app-builder-lib/src/vm/ParallelsVm.ts +++ b/packages/app-builder-lib/src/vm/ParallelsVm.ts @@ -1,6 +1,6 @@ import { DebugLogger, ExtraSpawnOptions, exec, log, spawn } from "builder-util" import { ExecFileOptions, SpawnOptions, execFileSync } from "child_process" -import { VmManager } from "./vm.js.js" +import { VmManager } from "./vm.js" /** @internal */ export async function parseVmList(debugLogger: DebugLogger) { diff --git a/packages/app-builder-lib/src/vm/PwshVm.ts b/packages/app-builder-lib/src/vm/PwshVm.ts index 97545aba757..2f8df53f949 100644 --- a/packages/app-builder-lib/src/vm/PwshVm.ts +++ b/packages/app-builder-lib/src/vm/PwshVm.ts @@ -1,6 +1,6 @@ import { log } from "builder-util" import { Lazy } from "lazy-val" -import { isPwshAvailable, VmManager } from "./vm.js.js" +import { isPwshAvailable, VmManager } from "./vm.js" export class PwshVmManager extends VmManager { constructor() { diff --git a/packages/app-builder-lib/src/vm/WineVm.ts b/packages/app-builder-lib/src/vm/WineVm.ts index 956d5c97e34..f0a6a974948 100644 --- a/packages/app-builder-lib/src/vm/WineVm.ts +++ b/packages/app-builder-lib/src/vm/WineVm.ts @@ -2,7 +2,7 @@ import { ExtraSpawnOptions } from "builder-util" import { ExecFileOptions, SpawnOptions } from "child_process" import * as path from "path" import { execWine } from "../wine.js" -import { VmManager } from "./vm.js.js" +import { VmManager } from "./vm.js" export class WineVmManager extends VmManager { constructor() { diff --git a/packages/app-builder-lib/src/vm/vm.ts b/packages/app-builder-lib/src/vm/vm.ts index 3813863b886..aa03a6baab2 100644 --- a/packages/app-builder-lib/src/vm/vm.ts +++ b/packages/app-builder-lib/src/vm/vm.ts @@ -2,7 +2,7 @@ import { DebugLogger, exec, ExtraSpawnOptions, InvalidConfigurationError, log, s import { ExecFileOptions, SpawnOptions } from "child_process" import { Lazy } from "lazy-val" import * as path from "path" -import { ParallelsVm } from "./ParallelsVm.js.js" +import { ParallelsVm } from "./ParallelsVm.js" export class VmManager { get pathSep(): string { return path.sep diff --git a/packages/app-builder-lib/src/winPackager.ts b/packages/app-builder-lib/src/winPackager.ts index 941bc6c68fc..d608a1d9b40 100644 --- a/packages/app-builder-lib/src/winPackager.ts +++ b/packages/app-builder-lib/src/winPackager.ts @@ -5,27 +5,27 @@ import { readdir } from "fs/promises" import { isCI } from "ci-info" import { Lazy } from "lazy-val" import * as path from "path" -import { SignManager } from "./codeSign/signManager.js.js" -import { signWindows, WindowsSignOptions } from "./codeSign/windowsCodeSign.js.js" -import { WindowsSignAzureManager } from "./codeSign/windowsSignAzureManager.js.js" -import { FileCodeSigningInfo, getSignVendorPath, WindowsSignToolManager } from "./codeSign/windowsSignToolManager.js.js" -import { AfterPackContext } from "./configuration.js.js" -import { DIR_TARGET, Platform, Target } from "./core.js.js" -import { RequestedExecutionLevel, WindowsConfiguration } from "./options/winOptions.js.js" -import { Packager } from "./packager.js.js" -import { chooseNotNull, PlatformPackager } from "./platformPackager.js.js" -import AppXTarget from "./targets/AppxTarget.js.js" -import MsiTarget from "./targets/MsiTarget.js.js" -import MsiWrappedTarget from "./targets/MsiWrappedTarget.js.js" -import { NsisTarget } from "./targets/nsis/NsisTarget.js.js" -import { AppPackageHelper, CopyElevateHelper } from "./targets/nsis/nsisUtil.js.js" -import { WebInstallerTarget } from "./targets/nsis/WebInstallerTarget.js.js" -import { createCommonTarget } from "./targets/targetFactory.js.js" -import { BuildCacheManager, digest } from "./util/cacheManager.js.js" -import { isBuildCacheEnabled } from "./util/flags.js.js" -import { time } from "./util/timer.js.js" -import { getWindowsVm, VmManager } from "./vm/vm.js.js" -import { execWine } from "./wine.js.js" +import { SignManager } from "./codeSign/signManager.js" +import { signWindows, WindowsSignOptions } from "./codeSign/windowsCodeSign.js" +import { WindowsSignAzureManager } from "./codeSign/windowsSignAzureManager.js" +import { FileCodeSigningInfo, getSignVendorPath, WindowsSignToolManager } from "./codeSign/windowsSignToolManager.js" +import { AfterPackContext } from "./configuration.js" +import { DIR_TARGET, Platform, Target } from "./core.js" +import { RequestedExecutionLevel, WindowsConfiguration } from "./options/winOptions.js" +import { Packager } from "./packager.js" +import { chooseNotNull, PlatformPackager } from "./platformPackager.js" +import AppXTarget from "./targets/AppxTarget.js" +import MsiTarget from "./targets/MsiTarget.js" +import MsiWrappedTarget from "./targets/MsiWrappedTarget.js" +import { NsisTarget } from "./targets/nsis/NsisTarget.js" +import { AppPackageHelper, CopyElevateHelper } from "./targets/nsis/nsisUtil.js" +import { WebInstallerTarget } from "./targets/nsis/WebInstallerTarget.js" +import { createCommonTarget } from "./targets/targetFactory.js" +import { BuildCacheManager, digest } from "./util/cacheManager.js" +import { isBuildCacheEnabled } from "./util/flags.js" +import { time } from "./util/timer.js" +import { getWindowsVm, VmManager } from "./vm/vm.js" +import { execWine } from "./wine.js" export class WinPackager extends PlatformPackager { _iconPath = new Lazy(() => this.getOrConvertIcon("ico")) diff --git a/packages/builder-util-runtime/src/httpExecutor.ts b/packages/builder-util-runtime/src/httpExecutor.ts index 9d8aa574d15..0dfd2d290f4 100644 --- a/packages/builder-util-runtime/src/httpExecutor.ts +++ b/packages/builder-util-runtime/src/httpExecutor.ts @@ -5,10 +5,10 @@ import { IncomingMessage, OutgoingHttpHeader, OutgoingHttpHeaders, RequestOption import { Socket } from "net" import { Transform } from "stream" import { URL } from "url" -import { Nullish } from "./index.js.js.js" -import { CancellationToken } from "./CancellationToken.js.js.js" -import { newError } from "./error.js.js.js" -import { ProgressCallbackTransform, ProgressInfo } from "./ProgressCallbackTransform.js.js.js" +import { Nullish } from "./index.js" +import { CancellationToken } from "./CancellationToken.js" +import { newError } from "./error.js" +import { ProgressCallbackTransform, ProgressInfo } from "./ProgressCallbackTransform.js" const debug = _debug("electron-builder") diff --git a/packages/builder-util-runtime/src/index.ts b/packages/builder-util-runtime/src/index.ts index 4f1fd21686f..3ff2a6930f4 100644 --- a/packages/builder-util-runtime/src/index.ts +++ b/packages/builder-util-runtime/src/index.ts @@ -1,6 +1,6 @@ -export { BlockMap } from "./blockMapApi" -export { CancellationError, CancellationToken } from "./CancellationToken" -export { newError } from "./error" +export { BlockMap } from "./blockMapApi.js" +export { CancellationError, CancellationToken } from "./CancellationToken.js" +export { newError } from "./error.js" export { configureRequestOptions, configureRequestOptionsFromUrl, @@ -14,9 +14,9 @@ export { RequestHeaders, safeGetHeader, safeStringifyJson, -} from "./httpExecutor" -export { MemoLazy } from "./MemoLazy" -export { ProgressCallbackTransform, ProgressInfo } from "./ProgressCallbackTransform" +} from "./httpExecutor.js" +export { MemoLazy } from "./MemoLazy.js" +export { ProgressCallbackTransform, ProgressInfo } from "./ProgressCallbackTransform.js" export { AllPublishOptions, BaseS3Options, @@ -36,12 +36,12 @@ export { SpacesOptions, GitlabReleaseInfo, GitlabReleaseAsset, -} from "./publishOptions" -export { retry } from "./retry" -export { parseDn } from "./rfc2253Parser" -export { BlockMapDataHolder, PackageFileInfo, ReleaseNoteInfo, UpdateFileInfo, UpdateInfo, WindowsUpdateInfo } from "./updateInfo" -export { UUID } from "./uuid" -export { parseXml, XElement } from "./xml" +} from "./publishOptions.js" +export { retry } from "./retry.js" +export { parseDn } from "./rfc2253Parser.js" +export { BlockMapDataHolder, PackageFileInfo, ReleaseNoteInfo, UpdateFileInfo, UpdateInfo, WindowsUpdateInfo } from "./updateInfo.js" +export { UUID } from "./uuid.js" +export { parseXml, XElement } from "./xml.js" // nsis export const CURRENT_APP_INSTALLER_FILE_NAME = "installer.exe" diff --git a/packages/builder-util-runtime/src/publishOptions.ts b/packages/builder-util-runtime/src/publishOptions.ts index c2a366fd158..02c86ba07ee 100644 --- a/packages/builder-util-runtime/src/publishOptions.ts +++ b/packages/builder-util-runtime/src/publishOptions.ts @@ -1,5 +1,5 @@ import { OutgoingHttpHeaders } from "http" -import { Nullish } from "." +import { Nullish } from "./index.js" export type PublishProvider = "github" | "gitlab" | "s3" | "spaces" | "generic" | "custom" | "snapStore" | "keygen" | "bitbucket" diff --git a/packages/builder-util-runtime/src/retry.ts b/packages/builder-util-runtime/src/retry.ts index dee771a9e3a..041262eaf9f 100644 --- a/packages/builder-util-runtime/src/retry.ts +++ b/packages/builder-util-runtime/src/retry.ts @@ -1,4 +1,4 @@ -import { CancellationToken } from "./CancellationToken.js.js" +import { CancellationToken } from "./CancellationToken.js" export async function retry( task: () => Promise, diff --git a/packages/builder-util-runtime/src/uuid.ts b/packages/builder-util-runtime/src/uuid.ts index cab21137910..224ce9fe6aa 100644 --- a/packages/builder-util-runtime/src/uuid.ts +++ b/packages/builder-util-runtime/src/uuid.ts @@ -1,5 +1,5 @@ import { createHash, randomBytes } from "crypto" -import { newError } from "./error.js.js" +import { newError } from "./error.js" const invalidName = "options.name must be either a string or a Buffer" diff --git a/packages/builder-util-runtime/src/xml.ts b/packages/builder-util-runtime/src/xml.ts index ea53572a7c5..6985419c24e 100644 --- a/packages/builder-util-runtime/src/xml.ts +++ b/packages/builder-util-runtime/src/xml.ts @@ -1,5 +1,5 @@ import * as sax from "sax" -import { newError } from "./error.js.js" +import { newError } from "./error.js" export class XElement { value = "" diff --git a/packages/builder-util/src/DebugLogger.ts b/packages/builder-util/src/DebugLogger.ts index e39e0c2cf61..637239445e8 100644 --- a/packages/builder-util/src/DebugLogger.ts +++ b/packages/builder-util/src/DebugLogger.ts @@ -1,6 +1,6 @@ import { outputFile } from "fs-extra" -import { serializeToYaml } from "./util.js.js" -import { mapToObject } from "./mapper.js.js" +import { serializeToYaml } from "./util.js" +import { mapToObject } from "./mapper.js" export class DebugLogger { readonly data = new Map() diff --git a/packages/builder-util/src/asyncTaskManager.ts b/packages/builder-util/src/asyncTaskManager.ts index 7a74e4002fe..b02467c3b45 100644 --- a/packages/builder-util/src/asyncTaskManager.ts +++ b/packages/builder-util/src/asyncTaskManager.ts @@ -1,6 +1,6 @@ import { CancellationToken } from "builder-util-runtime" -import { log } from "./log.js.js" -import { NestedError } from "./promise.js.js" +import { log } from "./log.js" +import { NestedError } from "./promise.js" export class AsyncTaskManager { readonly tasks: Array> = [] diff --git a/packages/builder-util/src/deepAssign.ts b/packages/builder-util/src/deepAssign.ts index e3c5fce2d99..0e00591cee7 100644 --- a/packages/builder-util/src/deepAssign.ts +++ b/packages/builder-util/src/deepAssign.ts @@ -1,4 +1,4 @@ -import { isValidKey } from "./mapper.js.js" +import { isValidKey } from "./mapper.js" function isObject(x: any) { if (Array.isArray(x)) { diff --git a/packages/builder-util/src/fs.ts b/packages/builder-util/src/fs.ts index 9d44e0f4eeb..5e33a8d7cd7 100644 --- a/packages/builder-util/src/fs.ts +++ b/packages/builder-util/src/fs.ts @@ -6,8 +6,8 @@ import { platform } from "os" import * as path from "path" import { Mode } from "stat-mode" import asyncPool from "tiny-async-pool" -import { log } from "./log.js.js" -import { orIfFileNotExist, orNullIfFileNotExist } from "./promise.js.js" +import { log } from "./log.js" +import { orIfFileNotExist, orNullIfFileNotExist } from "./promise.js" export const MAX_FILE_REQUESTS = 8 diff --git a/packages/builder-util/src/util.ts b/packages/builder-util/src/util.ts index 5727744db00..bf55d7b3219 100644 --- a/packages/builder-util/src/util.ts +++ b/packages/builder-util/src/util.ts @@ -8,13 +8,14 @@ import _debug from "debug" import { dump } from "js-yaml" import * as path from "path" import { install as installSourceMap } from "source-map-support" -import { getPath7za } from "./7za.js.js" -import { debug, log } from "./log.js.js" +import { getPath7za } from "./7za.js" +import { debug, log } from "./log.js" if (process.env.JEST_WORKER_ID == null) { installSourceMap() } +export { getCompleteExtname, sanitizeFileName } from "./filename" export { safeStringifyJson, retry } from "builder-util-runtime" export { TmpDir } from "temp-file" export * from "./arch.js" diff --git a/packages/dmg-builder/src/dmg.ts b/packages/dmg-builder/src/dmg.ts index ccb4ac55ee3..371c9829d2b 100644 --- a/packages/dmg-builder/src/dmg.ts +++ b/packages/dmg-builder/src/dmg.ts @@ -1,14 +1,14 @@ import { DmgOptions, Target } from "app-builder-lib" -import { findIdentity, isSignAllowed } from "app-builder-lib/out/codeSign/macCodeSign" -import { MacPackager } from "app-builder-lib/out/macPackager" -import { createBlockmap } from "app-builder-lib/out/targets/differentialUpdateInfoBuilder" +import { findIdentity, isSignAllowed } from "app-builder-lib" +import { MacPackager } from "app-builder-lib/out/macPackager.js" +import { createBlockmap } from "app-builder-lib/out/targets/differentialUpdateInfoBuilder.js" import { Arch, exec, getArchSuffix, InvalidConfigurationError, isEmptyOrSpaces } from "builder-util" -import { sanitizeFileName } from "builder-util/out/filename" +import { sanitizeFileName } from "builder-util" import { release as getOsRelease } from "os" import * as path from "path" -import { addLicenseToDmg } from "./dmgLicense.js.js" -import { computeBackground, customizeDmg } from "./dmgUtil.js.js" -import { hdiUtil } from "./hdiuil.js.js" +import { addLicenseToDmg } from "./dmgLicense.js" +import { computeBackground, customizeDmg } from "./dmgUtil.js" +import { hdiUtil } from "./hdiuil.js" export interface DmgBuildConfig { title: string diff --git a/packages/dmg-builder/src/dmgLicense.ts b/packages/dmg-builder/src/dmgLicense.ts index b9589811015..de6b5f7b0be 100644 --- a/packages/dmg-builder/src/dmgLicense.ts +++ b/packages/dmg-builder/src/dmgLicense.ts @@ -4,7 +4,7 @@ import { log } from "builder-util" import { dmgLicenseFromJSON } from "dmg-license" import { readFile, readJson } from "fs-extra" import { load } from "js-yaml" -import { getLicenseButtonsFile } from "./licenseButtons.js.js" +import { getLicenseButtonsFile } from "./licenseButtons.js" // License Specifications // https://github.com/argv-minus-one/dmg-license/blob/HEAD/docs/License%20Specifications.md diff --git a/packages/dmg-builder/src/dmgUtil.ts b/packages/dmg-builder/src/dmgUtil.ts index cf0b4538835..779026f15cf 100644 --- a/packages/dmg-builder/src/dmgUtil.ts +++ b/packages/dmg-builder/src/dmgUtil.ts @@ -1,9 +1,9 @@ import { DmgOptions, MacPackager, PlatformPackager } from "app-builder-lib" import { exec, executeFinally, exists, isEmptyOrSpaces, TmpDir } from "builder-util" import * as path from "path" -import { hdiUtil, hdiutilTransientExitCodes } from "./hdiuil.js.js" +import { hdiUtil, hdiutilTransientExitCodes } from "./hdiuil.js" import { writeFile } from "fs-extra" -import { DmgBuildConfig } from "./dmg.js.js" +import { DmgBuildConfig } from "./dmg.js" export { DmgTarget } from "./dmg.js" diff --git a/packages/dmg-builder/src/licenseButtons.ts b/packages/dmg-builder/src/licenseButtons.ts index e26a07d2193..890de834dc4 100644 --- a/packages/dmg-builder/src/licenseButtons.ts +++ b/packages/dmg-builder/src/licenseButtons.ts @@ -4,8 +4,8 @@ import { log } from "builder-util" import { readFile } from "fs-extra" import * as iconv from "iconv-lite" import { load } from "js-yaml" -import { serializeString } from "./dmgUtil.js.js" -import { getDefaultButtons } from "./licenseDefaultButtons.js.js" +import { serializeString } from "./dmgUtil.js" +import { getDefaultButtons } from "./licenseDefaultButtons.js" export async function getLicenseButtonsFile(packager: PlatformPackager): Promise> { return getLicenseAssets( diff --git a/packages/electron-builder-squirrel-windows/src/SquirrelWindowsTarget.ts b/packages/electron-builder-squirrel-windows/src/SquirrelWindowsTarget.ts index e92edc95ad5..a4b513ce956 100644 --- a/packages/electron-builder-squirrel-windows/src/SquirrelWindowsTarget.ts +++ b/packages/electron-builder-squirrel-windows/src/SquirrelWindowsTarget.ts @@ -1,7 +1,7 @@ import { InvalidConfigurationError, log, isEmptyOrSpaces } from "builder-util" import { execWine } from "app-builder-lib/out/wine" import { getBinFromUrl } from "app-builder-lib/out/binDownload" -import { sanitizeFileName } from "builder-util/out/filename" +import { sanitizeFileName } from "builder-util" import { Arch, getArchSuffix, SquirrelWindowsOptions, Target, WinPackager } from "app-builder-lib" import * as path from "path" import * as fs from "fs" diff --git a/packages/electron-builder/src/cli/cli.ts b/packages/electron-builder/src/cli/cli.ts index 1961aa47c0e..797ae0f7bf4 100644 --- a/packages/electron-builder/src/cli/cli.ts +++ b/packages/electron-builder/src/cli/cli.ts @@ -10,9 +10,9 @@ import { isCI } from "ci-info" import * as path from "path" import { build, configureBuildCommand, createYargs } from "../builder.js" import { configurePublishCommand, publish } from "../publish.js" -import { createSelfSignedCert } from "./create-self-signed-cert.js.js" -import { configureInstallAppDepsCommand, installAppDeps } from "./install-app-deps.js.js" -import { start } from "./start.js.js" +import { createSelfSignedCert } from "./create-self-signed-cert.js" +import { configureInstallAppDepsCommand, installAppDeps } from "./install-app-deps.js" +import { start } from "./start.js" // tslint:disable:no-unused-expression void createYargs() diff --git a/packages/electron-builder/src/cli/create-self-signed-cert.ts b/packages/electron-builder/src/cli/create-self-signed-cert.ts index 1ce7ec3eac5..8e9b629bffb 100644 --- a/packages/electron-builder/src/cli/create-self-signed-cert.ts +++ b/packages/electron-builder/src/cli/create-self-signed-cert.ts @@ -1,6 +1,6 @@ import { getSignVendorPath } from "app-builder-lib/out/codeSign/windowsSignToolManager" import { exec, log, spawn, TmpDir, unlinkIfExists } from "builder-util" -import { sanitizeFileName } from "builder-util/out/filename" +import { sanitizeFileName } from "builder-util" import * as chalk from "chalk" import { mkdir } from "fs/promises" import * as path from "path" diff --git a/packages/electron-builder/src/publish.ts b/packages/electron-builder/src/publish.ts index bfea0dee611..a673095a0a2 100644 --- a/packages/electron-builder/src/publish.ts +++ b/packages/electron-builder/src/publish.ts @@ -9,7 +9,7 @@ import { PublishPolicy } from "electron-publish" import * as chalk from "chalk" import * as path from "path" import * as yargs from "yargs" -import { BuildOptions, normalizeOptions } from "./builder.js.js" +import { BuildOptions, normalizeOptions } from "./builder.js" /** @internal */ export function configurePublishCommand(yargs: yargs.Argv): yargs.Argv { diff --git a/packages/electron-publish/src/bitbucketPublisher.ts b/packages/electron-publish/src/bitbucketPublisher.ts index e176e3dacf0..f055a5b9616 100644 --- a/packages/electron-publish/src/bitbucketPublisher.ts +++ b/packages/electron-publish/src/bitbucketPublisher.ts @@ -1,11 +1,11 @@ import { Arch, httpExecutor, InvalidConfigurationError, isEmptyOrSpaces, log } from "builder-util" import { configureRequestOptions, HttpExecutor } from "builder-util-runtime" -import { BitbucketOptions } from "builder-util-runtime/out/publishOptions" -import * as FormData from "form-data" +import { BitbucketOptions } from "builder-util-runtime" +import FormData from "form-data" import { readFile } from "fs-extra" import { ClientRequest, RequestOptions } from "http" -import { PublishContext } from "./" -import { HttpPublisher } from "./httpPublisher.js.js" +import { PublishContext } from "./index.js" +import { HttpPublisher } from "./httpPublisher.js" export class BitbucketPublisher extends HttpPublisher { readonly providerName = "bitbucket" diff --git a/packages/electron-publish/src/gitHubPublisher.ts b/packages/electron-publish/src/gitHubPublisher.ts index afc9c1cbdd7..fbdc44b21c1 100644 --- a/packages/electron-publish/src/gitHubPublisher.ts +++ b/packages/electron-publish/src/gitHubPublisher.ts @@ -4,9 +4,9 @@ import { ClientRequest } from "http" import { Lazy } from "lazy-val" import * as mime from "mime" import { parse as parseUrl, UrlWithStringQuery } from "url" -import { HttpPublisher } from "./httpPublisher.js.js" -import { PublishContext, PublishOptions } from "./index.js.js" -import { getCiTag } from "./publisher.js.js" +import { HttpPublisher } from "./httpPublisher.js" +import { PublishContext, PublishOptions } from "./index.js" +import { getCiTag } from "./publisher.js" export interface Release { id: number diff --git a/packages/electron-publish/src/gitlabPublisher.ts b/packages/electron-publish/src/gitlabPublisher.ts index ad2c41a0061..5784203fa0a 100644 --- a/packages/electron-publish/src/gitlabPublisher.ts +++ b/packages/electron-publish/src/gitlabPublisher.ts @@ -6,10 +6,10 @@ import { configureRequestOptions, GitlabOptions, GitlabReleaseInfo, parseJson, H import { ClientRequest } from "http" import { Lazy } from "lazy-val" import * as mime from "mime" -import * as FormData from "form-data" +import FormData from "form-data" import { URL } from "url" -import { HttpPublisher } from "./httpPublisher.js.js" -import { PublishContext } from "./index.js.js" +import { HttpPublisher } from "./httpPublisher.js" +import { PublishContext } from "./index.js" type RequestProcessor = (request: ClientRequest, reject: (error: Error) => void) => void diff --git a/packages/electron-publish/src/httpPublisher.ts b/packages/electron-publish/src/httpPublisher.ts index 40618cf7370..903775386be 100644 --- a/packages/electron-publish/src/httpPublisher.ts +++ b/packages/electron-publish/src/httpPublisher.ts @@ -2,8 +2,8 @@ import { Arch } from "builder-util" import { stat } from "fs-extra" import { ClientRequest } from "http" import { basename } from "path" -import { PublishContext, UploadTask } from "." -import { Publisher } from "./publisher.js.js" +import { PublishContext, UploadTask } from "./index.js" +import { Publisher } from "./publisher.js" export abstract class HttpPublisher extends Publisher { protected constructor( diff --git a/packages/electron-publish/src/index.ts b/packages/electron-publish/src/index.ts index afa128c61e3..4795b4c4d1e 100644 --- a/packages/electron-publish/src/index.ts +++ b/packages/electron-publish/src/index.ts @@ -1,25 +1,26 @@ import { Arch } from "builder-util" import { CancellationToken } from "builder-util-runtime" -import { MultiProgress } from "./multiProgress.js.js" +import { MultiProgress } from "./multiProgress.js" export { BitbucketPublisher } from "./bitbucketPublisher.js" -export { GitHubPublisher } from "./gitHubPublisher" -export { GitlabPublisher } from "./gitlabPublisher" -export { KeygenPublisher } from "./keygenPublisher" -export { S3Publisher } from "./s3/s3Publisher" -export { SpacesPublisher } from "./s3/spacesPublisher" -export { SnapStorePublisher } from "./snapStorePublisher" +export { GitHubPublisher } from "./gitHubPublisher.js" +export { GitlabPublisher } from "./gitlabPublisher.js" +export { KeygenPublisher } from "./keygenPublisher.js" +export { S3Publisher } from "./s3/s3Publisher.js" +export { SpacesPublisher } from "./s3/spacesPublisher.js" +export { SnapStorePublisher } from "./snapStorePublisher.js" export type PublishPolicy = "onTag" | "onTagOrDraft" | "always" | "never" -export { ProgressCallback } from "./progress" +export { MultiProgress } +export { ProgressCallback } from "./progress.js" export interface PublishOptions { publish?: PublishPolicy | null } -export { HttpPublisher } from "./httpPublisher" -export { getCiTag, Publisher } from "./publisher" +export { HttpPublisher } from "./httpPublisher.js" +export { getCiTag, Publisher } from "./publisher.js" export interface PublishContext { readonly cancellationToken: CancellationToken diff --git a/packages/electron-publish/src/keygenPublisher.ts b/packages/electron-publish/src/keygenPublisher.ts index cfedf1fc6f4..d15383675fc 100644 --- a/packages/electron-publish/src/keygenPublisher.ts +++ b/packages/electron-publish/src/keygenPublisher.ts @@ -1,10 +1,10 @@ import { Arch, httpExecutor, InvalidConfigurationError, isEmptyOrSpaces, log } from "builder-util" import { configureRequestOptions, HttpExecutor, parseJson } from "builder-util-runtime" -import { KeygenOptions } from "builder-util-runtime/out/publishOptions" -import { getCompleteExtname } from "builder-util/out/filename" +import { KeygenOptions } from "builder-util-runtime" +import { getCompleteExtname } from "builder-util" import { ClientRequest, RequestOptions } from "http" -import { PublishContext } from "./" -import { HttpPublisher } from "./httpPublisher.js.js" +import { PublishContext } from "./index.js" +import { HttpPublisher } from "./httpPublisher.js" type RecursivePartial = { [P in keyof T]?: RecursivePartial diff --git a/packages/electron-publish/src/multiProgress.ts b/packages/electron-publish/src/multiProgress.ts index 31ac916b627..7da359a9965 100644 --- a/packages/electron-publish/src/multiProgress.ts +++ b/packages/electron-publish/src/multiProgress.ts @@ -1,5 +1,5 @@ import { setPrinter } from "builder-util" -import { ProgressBar } from "./progress.js.js" +import { ProgressBar } from "./progress.js" export class MultiProgress { private readonly stream = process.stdout as any diff --git a/packages/electron-publish/src/publisher.ts b/packages/electron-publish/src/publisher.ts index b0e5050139c..ae7946c2f51 100644 --- a/packages/electron-publish/src/publisher.ts +++ b/packages/electron-publish/src/publisher.ts @@ -2,8 +2,8 @@ import { log, PADDING } from "builder-util" import { ProgressCallbackTransform, PublishProvider } from "builder-util-runtime" import * as chalk from "chalk" import { createReadStream, Stats } from "fs-extra" -import { PublishContext, UploadTask } from "." -import { ProgressBar } from "./progress.js.js" +import { PublishContext, UploadTask } from "./index.js" +import { ProgressBar } from "./progress.js" const progressBarOptions = { incomplete: " ", diff --git a/packages/electron-publish/src/s3/baseS3Publisher.ts b/packages/electron-publish/src/s3/baseS3Publisher.ts index dd258174f81..7b37c688d8e 100644 --- a/packages/electron-publish/src/s3/baseS3Publisher.ts +++ b/packages/electron-publish/src/s3/baseS3Publisher.ts @@ -2,7 +2,7 @@ import { executeAppBuilder, log } from "builder-util" import { BaseS3Options } from "builder-util-runtime" import { mkdir, symlink } from "fs/promises" import * as path from "path" -import { PublishContext, UploadTask } from ".." +import { PublishContext, UploadTask } from "../index.js" import { Publisher } from "../publisher.js" export abstract class BaseS3Publisher extends Publisher { diff --git a/packages/electron-publish/src/s3/s3Publisher.ts b/packages/electron-publish/src/s3/s3Publisher.ts index cad7762885f..e2c4d4d4747 100644 --- a/packages/electron-publish/src/s3/s3Publisher.ts +++ b/packages/electron-publish/src/s3/s3Publisher.ts @@ -1,7 +1,7 @@ import { executeAppBuilder, InvalidConfigurationError, log } from "builder-util" import { S3Options } from "builder-util-runtime" -import { PublishContext } from ".." -import { BaseS3Publisher } from "./baseS3Publisher.js.js" +import { PublishContext } from "../index.js" +import { BaseS3Publisher } from "./baseS3Publisher.js" export class S3Publisher extends BaseS3Publisher { readonly providerName = "s3" diff --git a/packages/electron-publish/src/s3/spacesPublisher.ts b/packages/electron-publish/src/s3/spacesPublisher.ts index 551314a126d..b39cfab82ff 100644 --- a/packages/electron-publish/src/s3/spacesPublisher.ts +++ b/packages/electron-publish/src/s3/spacesPublisher.ts @@ -1,7 +1,7 @@ import { InvalidConfigurationError, isEmptyOrSpaces } from "builder-util" import { SpacesOptions } from "builder-util-runtime" -import { PublishContext } from "../" -import { BaseS3Publisher } from "./baseS3Publisher.js.js" +import { PublishContext } from "../index.js" +import { BaseS3Publisher } from "./baseS3Publisher.js" export class SpacesPublisher extends BaseS3Publisher { readonly providerName = "spaces" diff --git a/packages/electron-publish/src/snapStorePublisher.ts b/packages/electron-publish/src/snapStorePublisher.ts index a86c823d69e..313cca391fe 100644 --- a/packages/electron-publish/src/snapStorePublisher.ts +++ b/packages/electron-publish/src/snapStorePublisher.ts @@ -1,8 +1,8 @@ import { executeAppBuilder } from "builder-util" -import { SnapStoreOptions } from "builder-util-runtime/out/publishOptions" +import { SnapStoreOptions } from "builder-util-runtime" import * as path from "path" -import { PublishContext, UploadTask } from "." -import { Publisher } from "./publisher.js.js" +import { PublishContext, UploadTask } from "./index.js" +import { Publisher } from "./publisher.js" export class SnapStorePublisher extends Publisher { readonly providerName = "snapStore" diff --git a/packages/electron-updater/src/AppImageUpdater.ts b/packages/electron-updater/src/AppImageUpdater.ts index 866ad3c1c69..108b591fa6d 100644 --- a/packages/electron-updater/src/AppImageUpdater.ts +++ b/packages/electron-updater/src/AppImageUpdater.ts @@ -3,12 +3,12 @@ import { execFileSync } from "child_process" import { chmod } from "fs-extra" import { unlinkSync } from "fs" import * as path from "path" -import { DownloadUpdateOptions } from "./AppUpdater.js.js" -import { BaseUpdater, InstallOptions } from "./BaseUpdater.js.js" -import { DifferentialDownloaderOptions } from "./differentialDownloader/DifferentialDownloader.js.js" -import { FileWithEmbeddedBlockMapDifferentialDownloader } from "./differentialDownloader/FileWithEmbeddedBlockMapDifferentialDownloader.js.js" -import { findFile, Provider } from "./providers/Provider.js.js" -import { DOWNLOAD_PROGRESS, ResolvedUpdateFileInfo } from "./types.js.js" +import { DownloadUpdateOptions } from "./AppUpdater.js" +import { BaseUpdater, InstallOptions } from "./BaseUpdater.js" +import { DifferentialDownloaderOptions } from "./differentialDownloader/DifferentialDownloader.js" +import { FileWithEmbeddedBlockMapDifferentialDownloader } from "./differentialDownloader/FileWithEmbeddedBlockMapDifferentialDownloader.js" +import { findFile, Provider } from "./providers/Provider.js" +import { DOWNLOAD_PROGRESS, ResolvedUpdateFileInfo } from "./types.js" export class AppImageUpdater extends BaseUpdater { constructor(options?: AllPublishOptions | null, app?: any) { diff --git a/packages/electron-updater/src/AppUpdater.ts b/packages/electron-updater/src/AppUpdater.ts index 303c548b2fa..637822ebed0 100644 --- a/packages/electron-updater/src/AppUpdater.ts +++ b/packages/electron-updater/src/AppUpdater.ts @@ -21,21 +21,21 @@ import { load } from "js-yaml" import { Lazy } from "lazy-val" import * as path from "path" import { eq as isVersionsEqual, gt as isVersionGreaterThan, lt as isVersionLessThan, parse as parseVersion, prerelease as getVersionPreleaseComponents, SemVer } from "semver" -import { AppAdapter } from "./AppAdapter.js.js" -import { createTempUpdateFile, DownloadedUpdateHelper } from "./DownloadedUpdateHelper.js.js" -import { ElectronAppAdapter } from "./ElectronAppAdapter.js.js" -import { ElectronHttpExecutor, getNetSession, LoginCallback } from "./electronHttpExecutor.js.js" -import { GenericProvider } from "./providers/GenericProvider.js.js" -import { createClient, isUrlProbablySupportMultiRangeRequests } from "./providerFactory.js.js" -import { Provider, ProviderPlatform } from "./providers/Provider.js.js" +import { AppAdapter } from "./AppAdapter.js" +import { createTempUpdateFile, DownloadedUpdateHelper } from "./DownloadedUpdateHelper.js" +import { ElectronAppAdapter } from "./ElectronAppAdapter.js" +import { ElectronHttpExecutor, getNetSession, LoginCallback } from "./electronHttpExecutor.js" +import { GenericProvider } from "./providers/GenericProvider.js" +import { createClient, isUrlProbablySupportMultiRangeRequests } from "./providerFactory.js" +import { Provider, ProviderPlatform } from "./providers/Provider.js" import type { TypedEmitter } from "tiny-typed-emitter" import Session = Electron.Session import type { AuthInfo } from "electron" import { gunzipSync, gzipSync } from "zlib" -import { DifferentialDownloaderOptions } from "./differentialDownloader/DifferentialDownloader.js.js" -import { GenericDifferentialDownloader } from "./differentialDownloader/GenericDifferentialDownloader.js.js" -import { DOWNLOAD_PROGRESS, Logger, ResolvedUpdateFileInfo, UPDATE_DOWNLOADED, UpdateCheckResult, UpdateDownloadedEvent, UpdaterSignal } from "./types.js.js" -import { VerifyUpdateSupport } from "./main.js.js" +import { DifferentialDownloaderOptions } from "./differentialDownloader/DifferentialDownloader.js" +import { GenericDifferentialDownloader } from "./differentialDownloader/GenericDifferentialDownloader.js" +import { DOWNLOAD_PROGRESS, Logger, ResolvedUpdateFileInfo, UPDATE_DOWNLOADED, UpdateCheckResult, UpdateDownloadedEvent, UpdaterSignal } from "./types.js" +import { VerifyUpdateSupport } from "./main.js" export type AppUpdaterEvents = { error: (error: Error, message?: string) => void diff --git a/packages/electron-updater/src/BaseUpdater.ts b/packages/electron-updater/src/BaseUpdater.ts index d4473b83fae..e516a358ffb 100644 --- a/packages/electron-updater/src/BaseUpdater.ts +++ b/packages/electron-updater/src/BaseUpdater.ts @@ -1,7 +1,7 @@ import { AllPublishOptions } from "builder-util-runtime" import { spawn, SpawnOptions, spawnSync, StdioOptions } from "child_process" -import { AppAdapter } from "./AppAdapter.js.js" -import { AppUpdater, DownloadExecutorTask } from "./AppUpdater.js.js" +import { AppAdapter } from "./AppAdapter.js" +import { AppUpdater, DownloadExecutorTask } from "./AppUpdater.js" export abstract class BaseUpdater extends AppUpdater { protected quitAndInstallCalled = false diff --git a/packages/electron-updater/src/DebUpdater.ts b/packages/electron-updater/src/DebUpdater.ts index 9ec87e72790..9c0d537af3b 100644 --- a/packages/electron-updater/src/DebUpdater.ts +++ b/packages/electron-updater/src/DebUpdater.ts @@ -1,10 +1,10 @@ import { AllPublishOptions } from "builder-util-runtime" -import { AppAdapter } from "./AppAdapter.js.js" -import { DownloadUpdateOptions } from "./AppUpdater.js.js" -import { InstallOptions } from "./BaseUpdater.js.js" -import { findFile } from "./providers/Provider.js.js" -import { DOWNLOAD_PROGRESS, Logger } from "./types.js.js" -import { LinuxUpdater } from "./LinuxUpdater.js.js" +import { AppAdapter } from "./AppAdapter.js" +import { DownloadUpdateOptions } from "./AppUpdater.js" +import { InstallOptions } from "./BaseUpdater.js" +import { findFile } from "./providers/Provider.js" +import { DOWNLOAD_PROGRESS, Logger } from "./types.js" +import { LinuxUpdater } from "./LinuxUpdater.js" export class DebUpdater extends LinuxUpdater { constructor(options?: AllPublishOptions | null, app?: AppAdapter) { diff --git a/packages/electron-updater/src/DownloadedUpdateHelper.ts b/packages/electron-updater/src/DownloadedUpdateHelper.ts index db7fe0de6c1..0844727b0ae 100644 --- a/packages/electron-updater/src/DownloadedUpdateHelper.ts +++ b/packages/electron-updater/src/DownloadedUpdateHelper.ts @@ -3,8 +3,8 @@ import { createHash } from "crypto" import { createReadStream } from "fs" // @ts-ignore import * as isEqual from "lodash.isequal" -import { ResolvedUpdateFileInfo } from "./types.js.js" -import { Logger } from "./types.js.js" +import { ResolvedUpdateFileInfo } from "./types.js" +import { Logger } from "./types.js" import { pathExists, readJson, emptyDir, outputJson, unlink } from "fs-extra" import * as path from "path" diff --git a/packages/electron-updater/src/ElectronAppAdapter.ts b/packages/electron-updater/src/ElectronAppAdapter.ts index b3dc0cd3819..748e6930d18 100644 --- a/packages/electron-updater/src/ElectronAppAdapter.ts +++ b/packages/electron-updater/src/ElectronAppAdapter.ts @@ -1,5 +1,5 @@ import * as path from "path" -import { AppAdapter, getAppCacheDir } from "./AppAdapter.js.js" +import { AppAdapter, getAppCacheDir } from "./AppAdapter.js" export class ElectronAppAdapter implements AppAdapter { constructor(private readonly app = require("electron").app) {} diff --git a/packages/electron-updater/src/LinuxUpdater.ts b/packages/electron-updater/src/LinuxUpdater.ts index d362e1ddbba..f2081c4f7f4 100644 --- a/packages/electron-updater/src/LinuxUpdater.ts +++ b/packages/electron-updater/src/LinuxUpdater.ts @@ -1,6 +1,6 @@ import { AllPublishOptions } from "builder-util-runtime" -import { AppAdapter } from "./AppAdapter.js.js" -import { BaseUpdater } from "./BaseUpdater.js.js" +import { AppAdapter } from "./AppAdapter.js" +import { BaseUpdater } from "./BaseUpdater.js" export abstract class LinuxUpdater extends BaseUpdater { constructor(options?: AllPublishOptions | null, app?: AppAdapter) { diff --git a/packages/electron-updater/src/MacUpdater.ts b/packages/electron-updater/src/MacUpdater.ts index 3d95523bca6..640f9d3fb1c 100644 --- a/packages/electron-updater/src/MacUpdater.ts +++ b/packages/electron-updater/src/MacUpdater.ts @@ -3,11 +3,11 @@ import { pathExistsSync, stat, copyFile } from "fs-extra" import { createReadStream } from "fs" import * as path from "path" import { createServer, IncomingMessage, Server, ServerResponse } from "http" -import { AppAdapter } from "./AppAdapter.js.js" -import { AppUpdater, DownloadUpdateOptions } from "./AppUpdater.js.js" -import { ResolvedUpdateFileInfo } from "./main.js.js" -import { UpdateDownloadedEvent } from "./types.js.js" -import { findFile } from "./providers/Provider.js.js" +import { AppAdapter } from "./AppAdapter.js" +import { AppUpdater, DownloadUpdateOptions } from "./AppUpdater.js" +import { ResolvedUpdateFileInfo } from "./main.js" +import { UpdateDownloadedEvent } from "./types.js" +import { findFile } from "./providers/Provider.js" import AutoUpdater = Electron.AutoUpdater import { execFileSync } from "child_process" import { randomBytes } from "crypto" diff --git a/packages/electron-updater/src/NsisUpdater.ts b/packages/electron-updater/src/NsisUpdater.ts index 492f1b191a7..70966a1fb37 100644 --- a/packages/electron-updater/src/NsisUpdater.ts +++ b/packages/electron-updater/src/NsisUpdater.ts @@ -1,15 +1,15 @@ import { AllPublishOptions, newError, PackageFileInfo, CURRENT_APP_INSTALLER_FILE_NAME, CURRENT_APP_PACKAGE_FILE_NAME } from "builder-util-runtime" import * as path from "path" -import { AppAdapter } from "./AppAdapter.js.js" -import { DownloadUpdateOptions } from "./AppUpdater.js.js" -import { BaseUpdater, InstallOptions } from "./BaseUpdater.js.js" -import { DifferentialDownloaderOptions } from "./differentialDownloader/DifferentialDownloader.js.js" -import { FileWithEmbeddedBlockMapDifferentialDownloader } from "./differentialDownloader/FileWithEmbeddedBlockMapDifferentialDownloader.js.js" -import { DOWNLOAD_PROGRESS } from "./types.js.js" -import { VerifyUpdateCodeSignature } from "./main.js.js" -import { findFile, Provider } from "./providers/Provider.js.js" +import { AppAdapter } from "./AppAdapter.js" +import { DownloadUpdateOptions } from "./AppUpdater.js" +import { BaseUpdater, InstallOptions } from "./BaseUpdater.js" +import { DifferentialDownloaderOptions } from "./differentialDownloader/DifferentialDownloader.js" +import { FileWithEmbeddedBlockMapDifferentialDownloader } from "./differentialDownloader/FileWithEmbeddedBlockMapDifferentialDownloader.js" +import { DOWNLOAD_PROGRESS } from "./types.js" +import { VerifyUpdateCodeSignature } from "./main.js" +import { findFile, Provider } from "./providers/Provider.js" import { unlink } from "fs-extra" -import { verifySignature } from "./windowsExecutableCodeSignatureVerifier.js.js" +import { verifySignature } from "./windowsExecutableCodeSignatureVerifier.js" import { URL } from "url" export class NsisUpdater extends BaseUpdater { diff --git a/packages/electron-updater/src/PacmanUpdater.ts b/packages/electron-updater/src/PacmanUpdater.ts index 86c0eabdbb7..8c3b5b6f1b1 100644 --- a/packages/electron-updater/src/PacmanUpdater.ts +++ b/packages/electron-updater/src/PacmanUpdater.ts @@ -1,10 +1,10 @@ import { AllPublishOptions } from "builder-util-runtime" -import { AppAdapter } from "./AppAdapter.js.js" -import { DownloadUpdateOptions } from "./AppUpdater.js.js" -import { InstallOptions } from "./BaseUpdater.js.js" -import { DOWNLOAD_PROGRESS, Logger } from "./types.js.js" -import { findFile } from "./providers/Provider.js.js" -import { LinuxUpdater } from "./LinuxUpdater.js.js" +import { AppAdapter } from "./AppAdapter.js" +import { DownloadUpdateOptions } from "./AppUpdater.js" +import { InstallOptions } from "./BaseUpdater.js" +import { DOWNLOAD_PROGRESS, Logger } from "./types.js" +import { findFile } from "./providers/Provider.js" +import { LinuxUpdater } from "./LinuxUpdater.js" export class PacmanUpdater extends LinuxUpdater { constructor(options?: AllPublishOptions | null, app?: AppAdapter) { diff --git a/packages/electron-updater/src/RpmUpdater.ts b/packages/electron-updater/src/RpmUpdater.ts index 9b17c5f648e..3df356a8a71 100644 --- a/packages/electron-updater/src/RpmUpdater.ts +++ b/packages/electron-updater/src/RpmUpdater.ts @@ -1,10 +1,10 @@ import { AllPublishOptions } from "builder-util-runtime" -import { AppAdapter } from "./AppAdapter.js.js" -import { DownloadUpdateOptions } from "./AppUpdater.js.js" -import { InstallOptions } from "./BaseUpdater.js.js" -import { DOWNLOAD_PROGRESS, Logger } from "./types.js.js" -import { findFile } from "./providers/Provider.js.js" -import { LinuxUpdater } from "./LinuxUpdater.js.js" +import { AppAdapter } from "./AppAdapter.js" +import { DownloadUpdateOptions } from "./AppUpdater.js" +import { InstallOptions } from "./BaseUpdater.js" +import { DOWNLOAD_PROGRESS, Logger } from "./types.js" +import { findFile } from "./providers/Provider.js" +import { LinuxUpdater } from "./LinuxUpdater.js" export class RpmUpdater extends LinuxUpdater { constructor(options?: AllPublishOptions | null, app?: AppAdapter) { diff --git a/packages/electron-updater/src/differentialDownloader/DataSplitter.ts b/packages/electron-updater/src/differentialDownloader/DataSplitter.ts index 905952768e2..84c38d94216 100644 --- a/packages/electron-updater/src/differentialDownloader/DataSplitter.ts +++ b/packages/electron-updater/src/differentialDownloader/DataSplitter.ts @@ -1,7 +1,7 @@ import { newError } from "builder-util-runtime" import { createReadStream } from "fs" import { Writable } from "stream" -import { Operation, OperationKind } from "./downloadPlanBuilder.js.js" +import { Operation, OperationKind } from "./downloadPlanBuilder.js" const DOUBLE_CRLF = Buffer.from("\r\n\r\n") diff --git a/packages/electron-updater/src/differentialDownloader/DifferentialDownloader.ts b/packages/electron-updater/src/differentialDownloader/DifferentialDownloader.ts index 7889fa24fb3..2365a97ac80 100644 --- a/packages/electron-updater/src/differentialDownloader/DifferentialDownloader.ts +++ b/packages/electron-updater/src/differentialDownloader/DifferentialDownloader.ts @@ -5,11 +5,11 @@ import { createWriteStream } from "fs" import { OutgoingHttpHeaders, RequestOptions } from "http" import { ProgressInfo, CancellationToken } from "builder-util-runtime" import { Logger } from "../types.js" -import { copyData } from "./DataSplitter.js.js" +import { copyData } from "./DataSplitter.js" import { URL } from "url" -import { computeOperations, Operation, OperationKind } from "./downloadPlanBuilder.js.js" -import { checkIsRangesSupported, executeTasksUsingMultipleRangeRequests } from "./multipleRangeDownloader.js.js" -import { ProgressDifferentialDownloadCallbackTransform, ProgressDifferentialDownloadInfo } from "./ProgressDifferentialDownloadCallbackTransform.js.js" +import { computeOperations, Operation, OperationKind } from "./downloadPlanBuilder.js" +import { checkIsRangesSupported, executeTasksUsingMultipleRangeRequests } from "./multipleRangeDownloader.js" +import { ProgressDifferentialDownloadCallbackTransform, ProgressDifferentialDownloadInfo } from "./ProgressDifferentialDownloadCallbackTransform.js" export interface DifferentialDownloaderOptions { readonly oldFile: string diff --git a/packages/electron-updater/src/differentialDownloader/FileWithEmbeddedBlockMapDifferentialDownloader.ts b/packages/electron-updater/src/differentialDownloader/FileWithEmbeddedBlockMapDifferentialDownloader.ts index c03ef51b16b..39bed50475a 100644 --- a/packages/electron-updater/src/differentialDownloader/FileWithEmbeddedBlockMapDifferentialDownloader.ts +++ b/packages/electron-updater/src/differentialDownloader/FileWithEmbeddedBlockMapDifferentialDownloader.ts @@ -1,6 +1,6 @@ import { BlockMap } from "builder-util-runtime/out/blockMapApi" import { close, fstat, open, read } from "fs-extra" -import { DifferentialDownloader } from "./DifferentialDownloader.js.js" +import { DifferentialDownloader } from "./DifferentialDownloader.js" import { inflateRawSync } from "zlib" export class FileWithEmbeddedBlockMapDifferentialDownloader extends DifferentialDownloader { diff --git a/packages/electron-updater/src/differentialDownloader/GenericDifferentialDownloader.ts b/packages/electron-updater/src/differentialDownloader/GenericDifferentialDownloader.ts index 03b43de19ac..a0501375cff 100644 --- a/packages/electron-updater/src/differentialDownloader/GenericDifferentialDownloader.ts +++ b/packages/electron-updater/src/differentialDownloader/GenericDifferentialDownloader.ts @@ -1,5 +1,5 @@ import { BlockMap } from "builder-util-runtime/out/blockMapApi" -import { DifferentialDownloader } from "./DifferentialDownloader.js.js" +import { DifferentialDownloader } from "./DifferentialDownloader.js" export class GenericDifferentialDownloader extends DifferentialDownloader { download(oldBlockMap: BlockMap, newBlockMap: BlockMap): Promise { diff --git a/packages/electron-updater/src/differentialDownloader/multipleRangeDownloader.ts b/packages/electron-updater/src/differentialDownloader/multipleRangeDownloader.ts index a8024aed462..650739b5891 100644 --- a/packages/electron-updater/src/differentialDownloader/multipleRangeDownloader.ts +++ b/packages/electron-updater/src/differentialDownloader/multipleRangeDownloader.ts @@ -1,9 +1,9 @@ import { createHttpError, safeGetHeader } from "builder-util-runtime" import { IncomingMessage } from "http" import { Writable } from "stream" -import { copyData, DataSplitter, PartListDataTask } from "./DataSplitter.js.js" -import { DifferentialDownloader } from "./DifferentialDownloader.js.js" -import { Operation, OperationKind } from "./downloadPlanBuilder.js.js" +import { copyData, DataSplitter, PartListDataTask } from "./DataSplitter.js" +import { DifferentialDownloader } from "./DifferentialDownloader.js" +import { Operation, OperationKind } from "./downloadPlanBuilder.js" export function executeTasksUsingMultipleRangeRequests( differentialDownloader: DifferentialDownloader, diff --git a/packages/electron-updater/src/main.ts b/packages/electron-updater/src/main.ts index bb1ca9ddfde..6a8d4ce9fb5 100644 --- a/packages/electron-updater/src/main.ts +++ b/packages/electron-updater/src/main.ts @@ -1,6 +1,6 @@ import { existsSync, readFileSync } from "fs-extra" import * as path from "path" -import { AppUpdater } from "./AppUpdater.js.js" +import { AppUpdater } from "./AppUpdater.js" import { UpdateInfo } from "builder-util-runtime" export { BaseUpdater } from "./BaseUpdater.js" diff --git a/packages/electron-updater/src/providerFactory.ts b/packages/electron-updater/src/providerFactory.ts index fc1ab575f5a..91f13e17b75 100644 --- a/packages/electron-updater/src/providerFactory.ts +++ b/packages/electron-updater/src/providerFactory.ts @@ -11,14 +11,14 @@ import { newError, PublishConfiguration, } from "builder-util-runtime" -import { AppUpdater } from "./AppUpdater.js.js" -import { BitbucketProvider } from "./providers/BitbucketProvider.js.js" -import { GenericProvider } from "./providers/GenericProvider.js.js" -import { GitHubProvider } from "./providers/GitHubProvider.js.js" -import { GitLabProvider } from "./providers/GitLabProvider.js.js" -import { KeygenProvider } from "./providers/KeygenProvider.js.js" -import { PrivateGitHubProvider } from "./providers/PrivateGitHubProvider.js.js" -import { Provider, ProviderRuntimeOptions } from "./providers/Provider.js.js" +import { AppUpdater } from "./AppUpdater.js" +import { BitbucketProvider } from "./providers/BitbucketProvider.js" +import { GenericProvider } from "./providers/GenericProvider.js" +import { GitHubProvider } from "./providers/GitHubProvider.js" +import { GitLabProvider } from "./providers/GitLabProvider.js" +import { KeygenProvider } from "./providers/KeygenProvider.js" +import { PrivateGitHubProvider } from "./providers/PrivateGitHubProvider.js" +import { Provider, ProviderRuntimeOptions } from "./providers/Provider.js" export function isUrlProbablySupportMultiRangeRequests(url: string): boolean { return !url.includes("s3.amazonaws.com") diff --git a/packages/electron-updater/src/providers/BitbucketProvider.ts b/packages/electron-updater/src/providers/BitbucketProvider.ts index 24da7a04546..d36e7d797de 100644 --- a/packages/electron-updater/src/providers/BitbucketProvider.ts +++ b/packages/electron-updater/src/providers/BitbucketProvider.ts @@ -2,7 +2,7 @@ import { CancellationToken, BitbucketOptions, newError, UpdateInfo } from "build import { AppUpdater } from "../AppUpdater.js" import { ResolvedUpdateFileInfo } from "../types.js" import { getChannelFilename, newBaseUrl, newUrlFromBase } from "../util.js" -import { parseUpdateInfo, Provider, ProviderRuntimeOptions, resolveFiles } from "./Provider.js.js" +import { parseUpdateInfo, Provider, ProviderRuntimeOptions, resolveFiles } from "./Provider.js" export class BitbucketProvider extends Provider { private readonly baseUrl: URL diff --git a/packages/electron-updater/src/providers/GenericProvider.ts b/packages/electron-updater/src/providers/GenericProvider.ts index f4a74b4dfa2..a1604b8ba55 100644 --- a/packages/electron-updater/src/providers/GenericProvider.ts +++ b/packages/electron-updater/src/providers/GenericProvider.ts @@ -2,7 +2,7 @@ import { GenericServerOptions, HttpError, newError, UpdateInfo } from "builder-u import { AppUpdater } from "../AppUpdater.js" import { ResolvedUpdateFileInfo } from "../types.js" import { getChannelFilename, newBaseUrl, newUrlFromBase } from "../util.js" -import { parseUpdateInfo, Provider, ProviderRuntimeOptions, resolveFiles } from "./Provider.js.js" +import { parseUpdateInfo, Provider, ProviderRuntimeOptions, resolveFiles } from "./Provider.js" export class GenericProvider extends Provider { private readonly baseUrl = newBaseUrl(this.configuration.url) diff --git a/packages/electron-updater/src/providers/GitHubProvider.ts b/packages/electron-updater/src/providers/GitHubProvider.ts index e8ba6b0c895..000a9d9c639 100644 --- a/packages/electron-updater/src/providers/GitHubProvider.ts +++ b/packages/electron-updater/src/providers/GitHubProvider.ts @@ -4,7 +4,7 @@ import { URL } from "url" import { AppUpdater } from "../AppUpdater.js" import { ResolvedUpdateFileInfo } from "../types.js" import { getChannelFilename, newBaseUrl, newUrlFromBase } from "../util.js" -import { parseUpdateInfo, Provider, ProviderRuntimeOptions, resolveFiles } from "./Provider.js.js" +import { parseUpdateInfo, Provider, ProviderRuntimeOptions, resolveFiles } from "./Provider.js" const hrefRegExp = /\/tag\/([^/]+)$/ diff --git a/packages/electron-updater/src/providers/GitLabProvider.ts b/packages/electron-updater/src/providers/GitLabProvider.ts index a7c831ea678..5f507930104 100644 --- a/packages/electron-updater/src/providers/GitLabProvider.ts +++ b/packages/electron-updater/src/providers/GitLabProvider.ts @@ -5,7 +5,7 @@ import * as escapeRegExp from "lodash.escaperegexp" import { AppUpdater } from "../AppUpdater.js" import { ResolvedUpdateFileInfo } from "../types.js" import { getChannelFilename, newBaseUrl, newUrlFromBase } from "../util.js" -import { getFileList, parseUpdateInfo, Provider, ProviderRuntimeOptions } from "./Provider.js.js" +import { getFileList, parseUpdateInfo, Provider, ProviderRuntimeOptions } from "./Provider.js" interface GitlabUpdateInfo extends UpdateInfo { tag: string diff --git a/packages/electron-updater/src/providers/KeygenProvider.ts b/packages/electron-updater/src/providers/KeygenProvider.ts index 6aeb8ed773c..5007598e9a8 100644 --- a/packages/electron-updater/src/providers/KeygenProvider.ts +++ b/packages/electron-updater/src/providers/KeygenProvider.ts @@ -2,7 +2,7 @@ import { CancellationToken, KeygenOptions, newError, UpdateInfo } from "builder- import { AppUpdater } from "../AppUpdater.js" import { ResolvedUpdateFileInfo } from "../types.js" import { getChannelFilename, newBaseUrl, newUrlFromBase } from "../util.js" -import { parseUpdateInfo, Provider, ProviderRuntimeOptions, resolveFiles } from "./Provider.js.js" +import { parseUpdateInfo, Provider, ProviderRuntimeOptions, resolveFiles } from "./Provider.js" export class KeygenProvider extends Provider { private readonly defaultHostname = "api.keygen.sh" diff --git a/packages/electron-updater/src/providers/PrivateGitHubProvider.ts b/packages/electron-updater/src/providers/PrivateGitHubProvider.ts index 5f922c2f9c7..1ffbd183b59 100644 --- a/packages/electron-updater/src/providers/PrivateGitHubProvider.ts +++ b/packages/electron-updater/src/providers/PrivateGitHubProvider.ts @@ -5,9 +5,9 @@ import * as path from "path" import { AppUpdater } from "../AppUpdater.js" import { URL } from "url" import { getChannelFilename, newUrlFromBase } from "../util.js" -import { BaseGitHubProvider } from "./GitHubProvider.js.js" +import { BaseGitHubProvider } from "./GitHubProvider.js" import { ResolvedUpdateFileInfo } from "../types.js" -import { getFileList, ProviderRuntimeOptions } from "./Provider.js.js" +import { getFileList, ProviderRuntimeOptions } from "./Provider.js" export interface PrivateGitHubUpdateInfo extends UpdateInfo { assets: Array diff --git a/packages/electron-updater/src/types.ts b/packages/electron-updater/src/types.ts index 237f101c97b..94a394c9827 100644 --- a/packages/electron-updater/src/types.ts +++ b/packages/electron-updater/src/types.ts @@ -1,7 +1,7 @@ import { CancellationToken, PackageFileInfo, ProgressInfo, UpdateFileInfo, UpdateInfo } from "builder-util-runtime" import { EventEmitter } from "events" import { URL } from "url" -import { LoginCallback } from "./electronHttpExecutor.js.js" +import { LoginCallback } from "./electronHttpExecutor.js" export { CancellationToken, PackageFileInfo, ProgressInfo, UpdateFileInfo, UpdateInfo } diff --git a/packages/electron-updater/src/windowsExecutableCodeSignatureVerifier.ts b/packages/electron-updater/src/windowsExecutableCodeSignatureVerifier.ts index 0f592d3f2d3..e7f23c8f612 100644 --- a/packages/electron-updater/src/windowsExecutableCodeSignatureVerifier.ts +++ b/packages/electron-updater/src/windowsExecutableCodeSignatureVerifier.ts @@ -1,7 +1,7 @@ import { parseDn } from "builder-util-runtime" import { execFile, execFileSync, ExecFileOptions } from "child_process" import * as os from "os" -import { Logger } from "./types.js.js" +import { Logger } from "./types.js" import * as path from "path" function preparePowerShellExec(command: string, timeout?: number) { diff --git a/test/src/filenameUtilTest.ts b/test/src/filenameUtilTest.ts index f9ba2726789..6b4c2b8209e 100644 --- a/test/src/filenameUtilTest.ts +++ b/test/src/filenameUtilTest.ts @@ -1,4 +1,4 @@ -import { getCompleteExtname } from "builder-util/out/filename" +import { getCompleteExtname } from "builder-util" // [inputFilename, expectedExtname] const tests = [ From c9512585235e5d3f9bee30c7dd36b716ce29980c Mon Sep 17 00:00:00 2001 From: Mike Maietta Date: Wed, 10 Dec 2025 14:03:25 -0800 Subject: [PATCH 05/65] tmp save --- packages/app-builder-lib/src/index.ts | 15 +++ .../nodeModulesCollector.ts | 90 +++++++++++++++++- .../npmNodeModulesCollector.ts | 91 ------------------- packages/app-builder-lib/src/vm/vm.ts | 4 +- packages/dmg-builder/src/dmg.ts | 3 +- packages/dmg-builder/src/dmgLicense.ts | 2 +- packages/dmg-builder/src/licenseButtons.ts | 2 +- packages/electron-builder/src/cli/cli.ts | 6 +- .../src/cli/create-self-signed-cert.ts | 2 +- .../src/cli/install-app-deps.ts | 17 ++-- 10 files changed, 121 insertions(+), 111 deletions(-) diff --git a/packages/app-builder-lib/src/index.ts b/packages/app-builder-lib/src/index.ts index 5d513af9683..7907db404c7 100644 --- a/packages/app-builder-lib/src/index.ts +++ b/packages/app-builder-lib/src/index.ts @@ -68,6 +68,21 @@ export { PlatformPackager } from "./platformPackager.js" export { PublishManager } from "./publish/PublishManager.js" export { WinPackager } from "./winPackager.js" export { findIdentity, isSignAllowed } from "./codeSign/macCodeSign.js" +export { getLicenseFiles, getLicenseAssets } from "./util/license.js" + +export { resolveFunction } from "./util/resolve.js" +export { executeAppBuilderAsJson } from "./util/appBuilder.js" +export { getElectronVersion } from "./electron/electronVersion.js" +export { loadEnv } from "./util/config/load.js" +export { nodeGypRebuild } from "./util/yarn.js" +export { getSignVendorPath } from "./codeSign/windowsSignToolManager.js" + +export { computeDefaultAppDirectory, getConfig } from "./util/config/config.js" +export { orNullIfFileNotExist } from "./util/config/load.js" +export { createLazyProductionDeps } from "./util/packageDependencies.js" +export { installOrRebuild } from "./util/yarn.js" +export { PACKAGE_VERSION } from "./version.js" +export { determinePackageManagerEnv } from "./node-module-collector/index.js" const expectedOptions = new Set(["publish", "targets", "mac", "win", "linux", "projectDir", "platformPackagerFactory", "config", "effectiveOptionComputed", "prepackaged"]) diff --git a/packages/app-builder-lib/src/node-module-collector/nodeModulesCollector.ts b/packages/app-builder-lib/src/node-module-collector/nodeModulesCollector.ts index 559dc10e1f9..2887860e422 100644 --- a/packages/app-builder-lib/src/node-module-collector/nodeModulesCollector.ts +++ b/packages/app-builder-lib/src/node-module-collector/nodeModulesCollector.ts @@ -9,7 +9,7 @@ import * as semver from "semver" import { hoist, type HoisterResult, type HoisterTree } from "./hoist.js" import { ModuleCache } from "./moduleCache.js" import { getPackageManagerCommand, PM } from "./packageManager.js" -import type { Dependency, DependencyGraph, NodeModuleInfo } from "./types.js" +import type { Dependency, DependencyGraph, NodeModuleInfo, PackageJson } from "./types.js" type Result = { packageDir: string; version: string } | null export abstract class NodeModulesCollector, OptionalDepType> { @@ -119,7 +119,11 @@ export abstract class NodeModulesCollector { + log.info({ pm: this.installOptions.manager, error: error.message }, "unable to process dependency tree, falling back to using manual node_modules traversal") + // node_modules linker fallback. (Slower due to system ops, so we only use it as a fallback) [such as when corepack env will not allow npm CLI to extract tree] + return this.buildNodeModulesTreeManually(this.rootDir) + }) } protected cacheKey(pkg: ProdDepType): string { @@ -256,6 +260,7 @@ export abstract class NodeModulesCollector { + // Track visited packages by their resolved path to prevent infinite loops + const visited = new Set() + + /** + * Recursively builds dependency tree starting from a package directory. + */ + const buildFromPackage = async (packageDir: string): Promise => { + const pkgPath = path.join(packageDir, "package.json") + + log.debug({ pkgPath }, "building dependency node from package.json") + + if (!(await this.cache.exists[pkgPath])) { + throw new Error(`package.json not found at ${pkgPath}`) + } + + const pkg: PackageJson = await this.cache.packageJson[pkgPath] + const resolvedPackageDir = await this.cache.realPath[packageDir] + + // Use resolved path as the unique identifier to prevent circular dependencies + if (visited.has(resolvedPackageDir)) { + log.debug({ name: pkg.name, version: pkg.version, path: resolvedPackageDir }, "skipping already visited package") + return { + name: pkg.name, + version: pkg.version, + path: resolvedPackageDir, + } + } + + visited.add(resolvedPackageDir) + + const prodDeps: Record = {} + const allProdDepNames = { + ...pkg.dependencies, + ...pkg.optionalDependencies, + } + + // Process all production and optional dependencies + for (const [depName, depVersion] of Object.entries(allProdDepNames)) { + try { + const depPath = await this.locatePackageVersion(resolvedPackageDir, depName, depVersion) + + if (!depPath || depPath.packageDir.length === 0) { + log.warn({ package: pkg.name, dependency: depName, version: depVersion }, "dependency not found, skipping") + continue + } + + const resolvedDepPath = await this.cache.realPath[depPath.packageDir] + const logFields = { package: pkg.name, dependency: depName, resolvedPath: resolvedDepPath } + + // Skip if this dependency resolves to the base directory or any parent we're already processing + if (resolvedDepPath === resolvedPackageDir || resolvedDepPath === (await this.cache.realPath[baseDir])) { + log.debug(logFields, "skipping self-referential dependency") + continue + } + + log.debug(logFields, "processing production dependency") + + // Recursively build the dependency tree for this dependency + prodDeps[depName] = await buildFromPackage(resolvedDepPath) + } catch (error: any) { + log.warn({ package: pkg.name, dependency: depName, error: error.message }, "failed to process dependency, skipping") + } + } + + return { + name: pkg.name, + version: pkg.version, + path: resolvedPackageDir, + dependencies: Object.keys(prodDeps).length > 0 ? prodDeps : undefined, + optionalDependencies: pkg.optionalDependencies, + } + } + + return buildFromPackage(baseDir) + } + protected async locatePackageVersion(parentDir: string, pkgName: string, requiredRange?: string): Promise { // 1) check direct parent node_modules/pkgName first const direct = path.join(path.resolve(parentDir), "node_modules", pkgName, "package.json") diff --git a/packages/app-builder-lib/src/node-module-collector/npmNodeModulesCollector.ts b/packages/app-builder-lib/src/node-module-collector/npmNodeModulesCollector.ts index af58725edff..7446a18d4ad 100644 --- a/packages/app-builder-lib/src/node-module-collector/npmNodeModulesCollector.ts +++ b/packages/app-builder-lib/src/node-module-collector/npmNodeModulesCollector.ts @@ -14,16 +14,6 @@ export class NpmNodeModulesCollector extends NodeModulesCollector { - try { - return await super.getDependenciesTree(pm) - } catch (error: any) { - log.info({ pm: this.installOptions.manager, parser: PM.NPM, error: error.message }, "unable to process dependency tree, falling back to using manual node_modules traversal") - } - // node_modules linker fallback. (Slower due to system ops, so we only use it as a fallback) [such as when corepack env will not allow npm CLI to extract tree] - return this.buildNodeModulesTreeManually(this.rootDir) - } - protected async collectAllDependencies(tree: NpmDependency) { for (const [, value] of Object.entries(tree.dependencies || {})) { if (this.isDuplicatedNpmDependency(value)) { @@ -72,87 +62,6 @@ export class NpmNodeModulesCollector extends NodeModulesCollector { - // Track visited packages by their resolved path to prevent infinite loops - const visited = new Set() - - /** - * Recursively builds dependency tree starting from a package directory. - */ - const buildFromPackage = async (packageDir: string): Promise => { - const pkgPath = path.join(packageDir, "package.json") - - log.debug({ pkgPath }, "building dependency node from package.json") - - if (!(await this.cache.exists[pkgPath])) { - throw new Error(`package.json not found at ${pkgPath}`) - } - - const pkg: PackageJson = await this.cache.packageJson[pkgPath] - const resolvedPackageDir = await this.cache.realPath[packageDir] - - // Use resolved path as the unique identifier to prevent circular dependencies - if (visited.has(resolvedPackageDir)) { - log.debug({ name: pkg.name, version: pkg.version, path: resolvedPackageDir }, "skipping already visited package") - return { - name: pkg.name, - version: pkg.version, - path: resolvedPackageDir, - } - } - - visited.add(resolvedPackageDir) - - const prodDeps: Record = {} - const allProdDepNames = { - ...pkg.dependencies, - ...pkg.optionalDependencies, - } - - // Process all production and optional dependencies - for (const [depName, depVersion] of Object.entries(allProdDepNames)) { - try { - const depPath = await this.locatePackageVersion(resolvedPackageDir, depName, depVersion) - - if (!depPath || depPath.packageDir.length === 0) { - log.warn({ package: pkg.name, dependency: depName, version: depVersion }, "dependency not found, skipping") - continue - } - - const resolvedDepPath = await this.cache.realPath[depPath.packageDir] - const logFields = { package: pkg.name, dependency: depName, resolvedPath: resolvedDepPath } - - // Skip if this dependency resolves to the base directory or any parent we're already processing - if (resolvedDepPath === resolvedPackageDir || resolvedDepPath === (await this.cache.realPath[baseDir])) { - log.debug(logFields, "skipping self-referential dependency") - continue - } - - log.debug(logFields, "processing production dependency") - - // Recursively build the dependency tree for this dependency - prodDeps[depName] = await buildFromPackage(resolvedDepPath) - } catch (error: any) { - log.warn({ package: pkg.name, dependency: depName, error: error.message }, "failed to process dependency, skipping") - } - } - - return { - name: pkg.name, - version: pkg.version, - path: resolvedPackageDir, - dependencies: Object.keys(prodDeps).length > 0 ? prodDeps : undefined, - optionalDependencies: pkg.optionalDependencies, - } - } - - return buildFromPackage(baseDir) - } - protected async parseDependenciesTree(jsonBlob: string): Promise { return Promise.resolve(JSON.parse(jsonBlob)) } diff --git a/packages/app-builder-lib/src/vm/vm.ts b/packages/app-builder-lib/src/vm/vm.ts index aa03a6baab2..0a8c3bc3e28 100644 --- a/packages/app-builder-lib/src/vm/vm.ts +++ b/packages/app-builder-lib/src/vm/vm.ts @@ -34,13 +34,13 @@ export class VmManager { } export async function getWindowsVm(debugLogger: DebugLogger): Promise { - const parallelsVmModule = await import("./ParallelsVm") + const parallelsVmModule = await import("./ParallelsVm.js") let vmList: ParallelsVm[] = [] try { vmList = (await parallelsVmModule.parseVmList(debugLogger)).filter(it => ["win-10", "win-11"].includes(it.os)) } catch (_error) { if ((await isPwshAvailable.value) && (await isWineAvailable.value)) { - const vmModule = await import("./PwshVm") + const vmModule = await import("./PwshVm.js") return new vmModule.PwshVmManager() } } diff --git a/packages/dmg-builder/src/dmg.ts b/packages/dmg-builder/src/dmg.ts index 371c9829d2b..541fb3754ee 100644 --- a/packages/dmg-builder/src/dmg.ts +++ b/packages/dmg-builder/src/dmg.ts @@ -43,7 +43,7 @@ export interface DmgBuildConfig { }> } export class DmgTarget extends Target { - readonly options: DmgOptions = this.packager.config.dmg || Object.create(null) + readonly options: DmgOptions isAsyncSupported = false @@ -52,6 +52,7 @@ export class DmgTarget extends Target { readonly outDir: string ) { super("dmg") + this.options = this.packager.config.dmg || Object.create(null) } async build(appPath: string, arch: Arch) { diff --git a/packages/dmg-builder/src/dmgLicense.ts b/packages/dmg-builder/src/dmgLicense.ts index de6b5f7b0be..104a00289f9 100644 --- a/packages/dmg-builder/src/dmgLicense.ts +++ b/packages/dmg-builder/src/dmgLicense.ts @@ -1,10 +1,10 @@ import { PlatformPackager } from "app-builder-lib" -import { getLicenseFiles } from "app-builder-lib/out/util/license" import { log } from "builder-util" import { dmgLicenseFromJSON } from "dmg-license" import { readFile, readJson } from "fs-extra" import { load } from "js-yaml" import { getLicenseButtonsFile } from "./licenseButtons.js" +import { getLicenseFiles } from "app-builder-lib" // License Specifications // https://github.com/argv-minus-one/dmg-license/blob/HEAD/docs/License%20Specifications.md diff --git a/packages/dmg-builder/src/licenseButtons.ts b/packages/dmg-builder/src/licenseButtons.ts index 890de834dc4..029bbb85369 100644 --- a/packages/dmg-builder/src/licenseButtons.ts +++ b/packages/dmg-builder/src/licenseButtons.ts @@ -1,5 +1,5 @@ import { PlatformPackager } from "app-builder-lib" -import { getLicenseAssets } from "app-builder-lib/out/util/license" +import { getLicenseAssets } from "app-builder-lib" import { log } from "builder-util" import { readFile } from "fs-extra" import * as iconv from "iconv-lite" diff --git a/packages/electron-builder/src/cli/cli.ts b/packages/electron-builder/src/cli/cli.ts index 797ae0f7bf4..ef55c4e2b8a 100644 --- a/packages/electron-builder/src/cli/cli.ts +++ b/packages/electron-builder/src/cli/cli.ts @@ -1,8 +1,8 @@ #! /usr/bin/env node -import { getElectronVersion } from "app-builder-lib/out/electron/electronVersion" -import { loadEnv } from "app-builder-lib/out/util/config/load" -import { nodeGypRebuild } from "app-builder-lib/out/util/yarn" +import { getElectronVersion } from "app-builder-lib" +import { loadEnv } from "app-builder-lib" +import { nodeGypRebuild } from "app-builder-lib" import { ExecError, InvalidConfigurationError, log } from "builder-util" import * as chalk from "chalk" import { readJson } from "fs-extra" diff --git a/packages/electron-builder/src/cli/create-self-signed-cert.ts b/packages/electron-builder/src/cli/create-self-signed-cert.ts index 8e9b629bffb..a6edf45639c 100644 --- a/packages/electron-builder/src/cli/create-self-signed-cert.ts +++ b/packages/electron-builder/src/cli/create-self-signed-cert.ts @@ -1,4 +1,4 @@ -import { getSignVendorPath } from "app-builder-lib/out/codeSign/windowsSignToolManager" +import { getSignVendorPath } from "app-builder-lib" import { exec, log, spawn, TmpDir, unlinkIfExists } from "builder-util" import { sanitizeFileName } from "builder-util" import * as chalk from "chalk" diff --git a/packages/electron-builder/src/cli/install-app-deps.ts b/packages/electron-builder/src/cli/install-app-deps.ts index b18f0c7aa5c..dbe86e23970 100644 --- a/packages/electron-builder/src/cli/install-app-deps.ts +++ b/packages/electron-builder/src/cli/install-app-deps.ts @@ -1,13 +1,12 @@ #! /usr/bin/env node - -import { getElectronVersion } from "app-builder-lib/out/electron/electronVersion" -import { computeDefaultAppDirectory, getConfig } from "app-builder-lib/out/util/config/config" -import { orNullIfFileNotExist } from "app-builder-lib/out/util/config/load" -import { createLazyProductionDeps } from "app-builder-lib/out/util/packageDependencies" -import { installOrRebuild } from "app-builder-lib/out/util/yarn" -import { PACKAGE_VERSION } from "app-builder-lib/out/version" -import { determinePackageManagerEnv } from "app-builder-lib/out/node-module-collector" -import { getArchCliNames, log, printErrorAndExit } from "builder-util" +import { getElectronVersion } from "app-builder-lib" +import { determinePackageManagerEnv } from "app-builder-lib/src/node-module-collector/index.js" +import { computeDefaultAppDirectory } from "app-builder-lib/src/util/config/config.js" +import { getConfig } from "app-builder-lib/src/util/config/config.js" +import { createLazyProductionDeps } from "app-builder-lib/src/util/packageDependencies.js" +import { installOrRebuild } from "app-builder-lib/src/util/yarn.js" +import { PACKAGE_VERSION } from "app-builder-lib/src/version.js" +import { getArchCliNames, log, orNullIfFileNotExist, printErrorAndExit } from "builder-util" import { readJson } from "fs-extra" import { Lazy } from "lazy-val" import * as path from "path" From 850646b29a49be6dd834957c05565f4cd1c4a797 Mon Sep 17 00:00:00 2001 From: Mike Maietta Date: Wed, 10 Dec 2025 14:18:27 -0800 Subject: [PATCH 06/65] move the manual node module traversal to the root abstract class. Add `env: { COREPACK_ENABLE_STRICT: "0", ...process.env },` to allow `npm list` to work across environments. extract fallback node collector (Traversal) to separate class due to differing parsing logic from NPM collector --- .changeset/some-taxis-double.md | 5 + .../bunNodeModulesCollector.ts | 14 +- .../src/node-module-collector/index.ts | 4 + .../nodeModulesCollector.ts | 244 ++++--- .../npmNodeModulesCollector.ts | 102 +-- .../node-module-collector/packageManager.ts | 2 + .../traversalNodeModulesCollector.ts | 122 ++++ .../src/node-module-collector/types.ts | 5 +- .../yarnBerryNodeModulesCollector.ts | 4 +- .../yarnNodeModulesCollector.ts | 16 - .../app-builder-lib/src/util/appFileCopier.ts | 32 +- test/fixtures/build-hook.cjs | 2 +- test/fixtures/build-hook.mjs | 2 +- test/snapshots/HoistedNodeModuleTest.js.snap | 650 +++++++++--------- test/src/concurrentBuildsTest.ts | 2 +- test/src/helpers/packTester.ts | 7 +- test/src/packageManagerTest.ts | 2 +- vite.config.ts | 6 +- 18 files changed, 647 insertions(+), 574 deletions(-) create mode 100644 .changeset/some-taxis-double.md create mode 100644 packages/app-builder-lib/src/node-module-collector/traversalNodeModulesCollector.ts diff --git a/.changeset/some-taxis-double.md b/.changeset/some-taxis-double.md new file mode 100644 index 00000000000..c167228b827 --- /dev/null +++ b/.changeset/some-taxis-double.md @@ -0,0 +1,5 @@ +--- +"app-builder-lib": patch +--- + +chore: move the manual node module traversal to the separate class. Add `env: { COREPACK_ENABLE_STRICT: "0", ...process.env },` to allow `npm list` to work across environments. diff --git a/packages/app-builder-lib/src/node-module-collector/bunNodeModulesCollector.ts b/packages/app-builder-lib/src/node-module-collector/bunNodeModulesCollector.ts index 412d8f35599..2817ae10a54 100644 --- a/packages/app-builder-lib/src/node-module-collector/bunNodeModulesCollector.ts +++ b/packages/app-builder-lib/src/node-module-collector/bunNodeModulesCollector.ts @@ -1,17 +1,13 @@ import { log } from "builder-util" -import { NpmNodeModulesCollector } from "./npmNodeModulesCollector" import { PM } from "./packageManager" import { NpmDependency } from "./types" +import { TraversalNodeModulesCollector } from "./traversalNodeModulesCollector" -export class BunNodeModulesCollector extends NpmNodeModulesCollector { +export class BunNodeModulesCollector extends TraversalNodeModulesCollector { public readonly installOptions = { manager: PM.BUN, lockfile: "bun.lock" } - protected async getDependenciesTree(_pm: PM): Promise { - log.info(null, "bun does not support any CLI for dependency tree extraction, falling back to NPM node module collector") - return super.getDependenciesTree(PM.NPM) - } - - protected isProdDependency(packageName: string, tree: NpmDependency): boolean { - return tree.dependencies?.[packageName] != null || tree.optionalDependencies?.[packageName] != null + protected async getDependenciesTree(pm: PM): Promise { + log.info(null, "note: bun does not support any CLI for dependency tree extraction, utilizing manual traversal of node_modules") + return super.getDependenciesTree(pm) } } diff --git a/packages/app-builder-lib/src/node-module-collector/index.ts b/packages/app-builder-lib/src/node-module-collector/index.ts index 926a3b5e08e..aa9d01a5427 100644 --- a/packages/app-builder-lib/src/node-module-collector/index.ts +++ b/packages/app-builder-lib/src/node-module-collector/index.ts @@ -11,6 +11,7 @@ import { Lazy } from "lazy-val" import { spawn, log, exists } from "builder-util" import * as fs from "fs-extra" import * as path from "path" +import { TraversalNodeModulesCollector } from "./traversalNodeModulesCollector" export { getPackageManagerCommand, PM } @@ -26,6 +27,9 @@ export function getCollectorByPackageManager(pm: PM, rootDir: string, tempDirMan return new BunNodeModulesCollector(rootDir, tempDirManager) case PM.NPM: return new NpmNodeModulesCollector(rootDir, tempDirManager) + // should never access this case (as it's internally a fallback), but TS needs a default and we need to satisfy it + case PM.TRAVERSAL: + return new TraversalNodeModulesCollector(rootDir, tempDirManager) } } diff --git a/packages/app-builder-lib/src/node-module-collector/nodeModulesCollector.ts b/packages/app-builder-lib/src/node-module-collector/nodeModulesCollector.ts index 30265052928..aeacd287613 100644 --- a/packages/app-builder-lib/src/node-module-collector/nodeModulesCollector.ts +++ b/packages/app-builder-lib/src/node-module-collector/nodeModulesCollector.ts @@ -1,22 +1,22 @@ import { log, retry, TmpDir } from "builder-util" import { CancellationToken } from "builder-util-runtime" import * as childProcess from "child_process" -import * as fs from "fs-extra" import { createWriteStream } from "fs-extra" import { Lazy } from "lazy-val" +import { hoist, type HoisterResult, type HoisterTree } from "./hoist.js" +import { ModuleCache } from "./moduleCache.js" +import { getPackageManagerCommand, PM } from "./packageManager.js" +import type { Dependency, DependencyGraph, NodeModuleInfo } from "./types.js" import * as path from "path" import * as semver from "semver" -import { hoist, type HoisterResult, type HoisterTree } from "./hoist" -import { ModuleCache } from "./moduleCache" -import { getPackageManagerCommand, PM } from "./packageManager" -import type { Dependency, DependencyGraph, NodeModuleInfo } from "./types" -type Result = { packageDir: string; version: string } | null +import * as fs from "fs-extra" export abstract class NodeModulesCollector, OptionalDepType> { private readonly nodeModules: NodeModuleInfo[] = [] protected readonly allDependencies: Map = new Map() protected readonly productionGraph: DependencyGraph = {} protected readonly cache: ModuleCache = new ModuleCache() + // private readonly manualNodeModulesCollector = new TraversalNodeModulesCollector(this.rootDir, this.tempDirManager) protected isHoisted = new Lazy(async () => { const { manager } = this.installOptions @@ -39,29 +39,16 @@ export abstract class NodeModulesCollector { + public async getNodeModules({ packageName }: { cancellationToken: CancellationToken; packageName: string }): Promise { const tree: ProdDepType = await this.getDependenciesTree(this.installOptions.manager) - - if (cancellationToken.cancelled) { - throw new Error("getNodeModules cancelled after fetching dependency tree") - } - await this.collectAllDependencies(tree, packageName) - const realTree: ProdDepType = await this.getTreeFromWorkspaces(tree, packageName) await this.extractProductionDependencyGraph(realTree, packageName) - - if (cancellationToken.cancelled) { - throw new Error("getNodeModules cancelled after building production graph") - } - const hoisterResult: HoisterResult = hoist(this.transformToHoisterTree(this.productionGraph, packageName), { check: log.isDebugEnabled, }) - await this._getNodeModules(hoisterResult.dependencies, this.nodeModules) log.debug({ packageName, depCount: this.nodeModules.length }, "node modules collection complete") - return this.nodeModules } @@ -72,9 +59,33 @@ export abstract class NodeModulesCollector - protected abstract extractProductionDependencyGraph(tree: Dependency, dependencyId: string): Promise protected abstract collectAllDependencies(tree: Dependency, appPackageName: string): Promise + protected async extractProductionDependencyGraph(tree: ProdDepType, dependencyId: string): Promise { + if (this.productionGraph[dependencyId]) { + return + } + // Initialize with empty dependencies array first to mark this dependency as "in progress" + // After initialization, if there are libraries with the same name+version later, they will not be searched recursively again + // This will prevents infinite loops when circular dependencies are encountered. + this.productionGraph[dependencyId] = { dependencies: [] } + + const resolvedDeps = tree.dependencies + const collectedDependencies: string[] = [] + if (resolvedDeps && Object.keys(resolvedDeps).length > 0) { + for (const packageName in resolvedDeps) { + if (!this.isProdDependency(packageName, tree)) { + continue + } + const dependency = resolvedDeps[packageName] + const childDependencyId = this.packageVersionString(dependency) + await this.extractProductionDependencyGraph(dependency, childDependencyId) + collectedDependencies.push(childDependencyId) + } + } + this.productionGraph[dependencyId] = { dependencies: collectedDependencies } + } + protected async getDependenciesTree(pm: PM): Promise { const command = getPackageManagerCommand(pm) const args = this.getArgs() @@ -122,29 +133,6 @@ export abstract class NodeModulesCollector { if (!(tree.workspaces && tree.dependencies)) { return tree @@ -221,70 +209,39 @@ export abstract class NodeModulesCollector a.name.localeCompare(b.name)) } - async asyncExec(command: string, args: string[], cwd: string = this.rootDir): Promise<{ stdout: string | undefined; stderr: string | undefined }> { - const file = await this.tempDirManager.getTempFile({ prefix: "exec-", suffix: ".txt" }) - try { - await this.streamCollectorCommandToFile(command, args, cwd, file) - const result = await fs.readFile(file, { encoding: "utf8" }) - return { stdout: result?.trim(), stderr: undefined } - } catch (error: any) { - log.debug({ error: error.message }, "failed to execute command") - return { stdout: undefined, stderr: error.message } - } + protected isProdDependency(packageName: string, tree: ProdDepType): boolean { + return tree.dependencies?.[packageName] != null || tree.optionalDependencies?.[packageName] != null } - async streamCollectorCommandToFile(command: string, args: string[], cwd: string, tempOutputFile: string) { - const execName = path.basename(command, path.extname(command)) - const isWindowsScriptFile = process.platform === "win32" && path.extname(command).toLowerCase() === ".cmd" - if (isWindowsScriptFile) { - // If the command is a Windows script file (.cmd), we need to wrap it in a .bat file to ensure it runs correctly with cmd.exe - // This is necessary because .cmd files are not directly executable in the same way as .bat files. - // We create a temporary .bat file that calls the .cmd file with the provided arguments. The .bat file will be executed by cmd.exe. - // Note: This is a workaround for Windows command execution quirks for specifically when `shell: false` - const tempBatFile = await this.tempDirManager.getTempFile({ - prefix: execName, - suffix: ".bat", - }) - const batScript = `@echo off\r\n"${command}" %*\r\n` // <-- CRLF required for .bat - await fs.writeFile(tempBatFile, batScript, { encoding: "utf8" }) - command = "cmd.exe" - args = ["/c", tempBatFile, ...args] - } - - await new Promise((resolve, reject) => { - const outStream = createWriteStream(tempOutputFile) - - const child = childProcess.spawn(command, args, { - cwd, - shell: false, // required to prevent console logs polution from shell profile loading when `true` - }) + // ----- PROTECTED HELPERS FOR ALL COLLECTORS ----- + protected cacheKey(pkg: ProdDepType): string { + const rel = path.relative(this.rootDir, pkg.path) + return `${pkg.name}::${pkg.version}::${rel ?? "."}` + } - let stderr = "" - child.stdout.pipe(outStream) - child.stderr.on("data", chunk => { - stderr += chunk.toString() - }) - child.on("error", err => { - reject(new Error(`Node module collector spawn failed: ${err.message}`)) - }) + protected packageVersionString(pkg: Pick): string { + return `${pkg.name}@${pkg.version}` + } - child.on("close", code => { - outStream.close() - // https://github.com/npm/npm/issues/17624 - const shouldIgnore = code === 1 && "npm" === execName.toLowerCase() && args.includes("list") - if (shouldIgnore) { - log.debug(null, "`npm list` returned non-zero exit code, but it MIGHT be expected (https://github.com/npm/npm/issues/17624). Check stderr for details.") - } - if (stderr.length > 0) { - log.debug({ stderr }, "note: there was node module collector output on stderr") - } - const shouldResolve = code === 0 || shouldIgnore - return shouldResolve ? resolve() : reject(new Error(`Node module collector process exited with code ${code}:\n${stderr}`)) - }) - }) + /** + * Parse a dependency identifier like "@scope/pkg@1.2.3" or "pkg@1.2.3" + */ + protected parseNameVersion(identifier: string): { name: string; version: string } { + const lastAt = identifier.lastIndexOf("@") + if (lastAt <= 0) { + // fallback for scoped packages or malformed strings + return { name: identifier, version: "unknown" } + } + const name = identifier.slice(0, lastAt) + const version = identifier.slice(lastAt + 1) + return { name, version } } - protected async locatePackageVersion(parentDir: string, pkgName: string, requiredRange?: string): Promise { + // ---------------------------------------------------------------- + // ----- PROTECTED HELPERS FOR MANUAL NODE_MODULES TRAVERSAL ------ + // ---------------------------------------------------------------- + + protected async locatePackageVersion(parentDir: string, pkgName: string, requiredRange?: string): Promise<{ packageDir: string; version: string } | null> { // 1) check direct parent node_modules/pkgName first const direct = path.join(path.resolve(parentDir), "node_modules", pkgName, "package.json") if (await this.cache.exists[direct]) { @@ -340,7 +297,7 @@ export abstract class NodeModulesCollector { + private async upwardSearch(parentDir: string, pkgName: string, requiredRange?: string): Promise<{ packageDir: string; version: string } | null> { let current = path.resolve(parentDir) const root = path.parse(current).root while (true) { @@ -368,7 +325,13 @@ export abstract class NodeModulesCollector { + private async downwardSearch( + parentDir: string, + pkgName: string, + requiredRange?: string, + maxExplored = 2000, + maxDepth = 6 + ): Promise<{ packageDir: string; version: string } | null> { const start = path.join(path.resolve(parentDir), "node_modules") if (!(await this.cache.exists[start]) || !(await this.cache.lstat[start]).isDirectory()) { return null @@ -465,4 +428,77 @@ export abstract class NodeModulesCollector { + const file = await this.tempDirManager.getTempFile({ prefix: "exec-", suffix: ".txt" }) + try { + await this.streamCollectorCommandToFile(command, args, cwd, file) + const result = await fs.readFile(file, { encoding: "utf8" }) + return { stdout: result?.trim(), stderr: undefined } + } catch (error: any) { + log.debug({ command, args, error: error.message }, "failed to execute command") + return { stdout: undefined, stderr: error.message } + } + } + + async streamCollectorCommandToFile(command: string, args: string[], cwd: string, tempOutputFile: string) { + const execName = path.basename(command, path.extname(command)) + const isWindowsScriptFile = process.platform === "win32" && path.extname(command).toLowerCase() === ".cmd" + if (isWindowsScriptFile) { + // If the command is a Windows script file (.cmd), we need to wrap it in a .bat file to ensure it runs correctly with cmd.exe + // This is necessary because .cmd files are not directly executable in the same way as .bat files. + // We create a temporary .bat file that calls the .cmd file with the provided arguments. The .bat file will be executed by cmd.exe. + // Note: This is a workaround for Windows command execution quirks for specifically when `shell: false` + const tempBatFile = await this.tempDirManager.getTempFile({ + prefix: execName, + suffix: ".bat", + }) + const batScript = `@echo off\r\n"${command}" %*\r\n` // <-- CRLF required for .bat + await fs.writeFile(tempBatFile, batScript, { encoding: "utf8" }) + command = "cmd.exe" + args = ["/c", tempBatFile, ...args] + } + + await new Promise((resolve, reject) => { + const outStream = createWriteStream(tempOutputFile) + + const child = childProcess.spawn(command, args, { + cwd, + env: { COREPACK_ENABLE_STRICT: "0", ...process.env }, + shell: false, // required to prevent console logs polution from shell profile loading when `true` + }) + + let stderr = "" + child.stdout.pipe(outStream) + child.stderr.on("data", chunk => { + stderr += chunk.toString() + }) + child.on("error", err => { + reject(new Error(`Node module collector spawn failed: ${err.message}`)) + }) + + child.on("close", code => { + outStream.close() + // https://github.com/npm/npm/issues/17624 + const shouldIgnore = code === 1 && "npm" === execName.toLowerCase() && args.includes("list") + if (shouldIgnore) { + log.debug(null, "`npm list` returned non-zero exit code, but it MIGHT be expected (https://github.com/npm/npm/issues/17624). Check stderr for details.") + } + if (stderr.length > 0) { + log.debug({ stderr }, "note: there was node module collector output on stderr") + } + const shouldResolve = code === 0 || shouldIgnore + return shouldResolve ? resolve() : reject(new Error(`Node module collector process exited with code ${code}:\n${stderr}`)) + }) + // this.cancellationToken.onCancel(() => { + // outStream.close() + // child.kill("SIGINT") + // reject(new Error("Node module collector process was cancelled")) + // }) + }) + } } diff --git a/packages/app-builder-lib/src/node-module-collector/npmNodeModulesCollector.ts b/packages/app-builder-lib/src/node-module-collector/npmNodeModulesCollector.ts index 1d646740b28..777127abd06 100644 --- a/packages/app-builder-lib/src/node-module-collector/npmNodeModulesCollector.ts +++ b/packages/app-builder-lib/src/node-module-collector/npmNodeModulesCollector.ts @@ -1,8 +1,6 @@ -import { log } from "builder-util" -import * as path from "path" -import { NodeModulesCollector } from "./nodeModulesCollector" -import { PM } from "./packageManager" -import { NpmDependency, PackageJson } from "./types" +import { NodeModulesCollector } from "./nodeModulesCollector.js" +import { PM } from "./packageManager.js" +import { NpmDependency } from "./types.js" export class NpmNodeModulesCollector extends NodeModulesCollector { public readonly installOptions = { @@ -14,16 +12,6 @@ export class NpmNodeModulesCollector extends NodeModulesCollector { - try { - return await super.getDependenciesTree(pm) - } catch (error: any) { - log.info({ pm: this.installOptions.manager, parser: PM.NPM, error: error.message }, "unable to process dependency tree, falling back to using manual node_modules traversal") - } - // node_modules linker fallback. (Slower due to system ops, so we only use it as a fallback) [such as when corepack env will not allow npm CLI to extract tree] - return this.buildNodeModulesTreeManually(this.rootDir) - } - protected async collectAllDependencies(tree: NpmDependency) { for (const [, value] of Object.entries(tree.dependencies || {})) { if (this.isDuplicatedNpmDependency(value)) { @@ -69,89 +57,9 @@ export class NpmNodeModulesCollector extends NodeModulesCollector { - // Track visited packages by their resolved path to prevent infinite loops - const visited = new Set() - - /** - * Recursively builds dependency tree starting from a package directory. - */ - const buildFromPackage = async (packageDir: string): Promise => { - const pkgPath = path.join(packageDir, "package.json") - - log.debug({ pkgPath }, "building dependency node from package.json") - - if (!(await this.cache.exists[pkgPath])) { - throw new Error(`package.json not found at ${pkgPath}`) - } - - const pkg: PackageJson = await this.cache.packageJson[pkgPath] - const resolvedPackageDir = await this.cache.realPath[packageDir] - - // Use resolved path as the unique identifier to prevent circular dependencies - if (visited.has(resolvedPackageDir)) { - log.debug({ name: pkg.name, version: pkg.version, path: resolvedPackageDir }, "skipping already visited package") - return { - name: pkg.name, - version: pkg.version, - path: resolvedPackageDir, - } - } - - visited.add(resolvedPackageDir) - - const prodDeps: Record = {} - const allProdDepNames = { - ...pkg.dependencies, - ...pkg.optionalDependencies, - } - - // Process all production and optional dependencies - for (const [depName, depVersion] of Object.entries(allProdDepNames)) { - try { - const depPath = await this.locatePackageVersion(resolvedPackageDir, depName, depVersion) - - if (!depPath || depPath.packageDir.length === 0) { - log.warn({ package: pkg.name, dependency: depName, version: depVersion }, "dependency not found, skipping") - continue - } - - const resolvedDepPath = await this.cache.realPath[depPath.packageDir] - const logFields = { package: pkg.name, dependency: depName, resolvedPath: resolvedDepPath } - - // Skip if this dependency resolves to the base directory or any parent we're already processing - if (resolvedDepPath === resolvedPackageDir || resolvedDepPath === (await this.cache.realPath[baseDir])) { - log.debug(logFields, "skipping self-referential dependency") - continue - } - - log.debug(logFields, "processing production dependency") - - // Recursively build the dependency tree for this dependency - prodDeps[depName] = await buildFromPackage(resolvedDepPath) - } catch (error: any) { - log.warn({ package: pkg.name, dependency: depName, error: error.message }, "failed to process dependency, skipping") - } - } - - return { - name: pkg.name, - version: pkg.version, - path: resolvedPackageDir, - dependencies: Object.keys(prodDeps).length > 0 ? prodDeps : undefined, - optionalDependencies: pkg.optionalDependencies, - } - } - - return buildFromPackage(baseDir) + return tree._dependencies?.[packageName] != null // || super.isProdDependency(packageName, tree) } protected async parseDependenciesTree(jsonBlob: string): Promise { diff --git a/packages/app-builder-lib/src/node-module-collector/packageManager.ts b/packages/app-builder-lib/src/node-module-collector/packageManager.ts index 9064d6752ad..5e8ba6f7082 100644 --- a/packages/app-builder-lib/src/node-module-collector/packageManager.ts +++ b/packages/app-builder-lib/src/node-module-collector/packageManager.ts @@ -9,6 +9,7 @@ export enum PM { YARN_BERRY = "yarn-berry", BUN = "bun", NPM = "npm", + TRAVERSAL = "traversal", } // Cache for resolved paths @@ -18,6 +19,7 @@ const pmPathCache: Record = { [PM.PNPM]: undefined, [PM.YARN_BERRY]: undefined, [PM.BUN]: undefined, + [PM.TRAVERSAL]: undefined, } function resolveCommand(pm: PM): string { diff --git a/packages/app-builder-lib/src/node-module-collector/traversalNodeModulesCollector.ts b/packages/app-builder-lib/src/node-module-collector/traversalNodeModulesCollector.ts new file mode 100644 index 00000000000..04ee6fb29c4 --- /dev/null +++ b/packages/app-builder-lib/src/node-module-collector/traversalNodeModulesCollector.ts @@ -0,0 +1,122 @@ +import { log } from "builder-util" +import { NodeModulesCollector } from "./nodeModulesCollector" +import { PM } from "./packageManager.js" +import { Dependency, PackageJson, TraversedDependency } from "./types.js" +import * as path from "path" + +// manual traversal of node_modules for package managers without CLI support for dependency tree extraction (e.g., bun) OR as a fallback (e.g. corepack enabled w/ strict mode) +export class TraversalNodeModulesCollector extends NodeModulesCollector { + // so that tests can still install deps and verify manual collection + // public installOptions = { + // manager: PM.NPM, + // lockfile: "package-lock.json", + // } + public installOptions = { + manager: PM.TRAVERSAL, + lockfile: "none", + } + protected getArgs(): string[] { + return [] + } + + protected getDependenciesTree(_pm: PM): Promise { + return this.buildNodeModulesTreeManually(this.rootDir) + } + + protected async collectAllDependencies(tree: Dependency, appPackageName: string) { + for (const [, value] of Object.entries(tree.dependencies || {})) { + this.allDependencies.set(this.packageVersionString(value), value) + await this.collectAllDependencies(value, appPackageName) + } + } + + protected isProdDependency(packageName: string, tree: Dependency): boolean { + return tree.dependencies?.[packageName] != null || tree.optionalDependencies?.[packageName] != null + } + + protected async parseDependenciesTree(jsonBlob: string): Promise { + return Promise.resolve(JSON.parse(jsonBlob)) + } + + /** + * Builds a dependency tree using only package.json dependencies and optionalDependencies. + * This skips devDependencies and uses Node.js module resolution (require.resolve). + */ + private buildNodeModulesTreeManually(baseDir: string): Promise { + // Track visited packages by their resolved path to prevent infinite loops + const visited = new Set() + + /** + * Recursively builds dependency tree starting from a package directory. + */ + const buildFromPackage = async (packageDir: string): Promise => { + const pkgPath = path.join(packageDir, "package.json") + + log.debug({ pkgPath }, "building dependency node from package.json") + + if (!(await this.cache.exists[pkgPath])) { + throw new Error(`package.json not found at ${pkgPath}`) + } + + const pkg: PackageJson = await this.cache.packageJson[pkgPath] + const resolvedPackageDir = await this.cache.realPath[packageDir] + + // Use resolved path as the unique identifier to prevent circular dependencies + if (visited.has(resolvedPackageDir)) { + log.debug({ name: pkg.name, version: pkg.version, path: resolvedPackageDir }, "skipping already visited package") + + return { + name: pkg.name, + version: pkg.version, + path: resolvedPackageDir, + } + } + + visited.add(resolvedPackageDir) + + const prodDeps: Record = {} + const allProdDepNames = { + ...pkg.dependencies, + ...pkg.optionalDependencies, + } + + // Process all production and optional dependencies + for (const [depName, depVersion] of Object.entries(allProdDepNames)) { + try { + const depPath = await this.locatePackageVersion(resolvedPackageDir, depName, depVersion) + + if (!depPath || depPath.packageDir.length === 0) { + log.warn({ package: pkg.name, dependency: depName, version: depVersion }, "dependency not found, skipping") + continue + } + + const resolvedDepPath = await this.cache.realPath[depPath.packageDir] + const logFields = { package: pkg.name, dependency: depName, resolvedPath: resolvedDepPath } + + // Skip if this dependency resolves to the base directory or any parent we're already processing + if (resolvedDepPath === resolvedPackageDir || resolvedDepPath === (await this.cache.realPath[baseDir])) { + log.debug(logFields, "skipping self-referential dependency") + continue + } + + log.debug(logFields, "processing production dependency") + + // Recursively build the dependency tree for this dependency + prodDeps[depName] = await buildFromPackage(resolvedDepPath) + } catch (error: any) { + log.warn({ package: pkg.name, dependency: depName, error: error.message }, "failed to process dependency, skipping") + } + } + + return { + name: pkg.name, + version: pkg.version, + path: resolvedPackageDir, + dependencies: Object.keys(prodDeps).length > 0 ? prodDeps : undefined, + optionalDependencies: pkg.optionalDependencies, + } + } + + return buildFromPackage(baseDir) + } +} diff --git a/packages/app-builder-lib/src/node-module-collector/types.ts b/packages/app-builder-lib/src/node-module-collector/types.ts index 6fe8d5eb604..794b63fe502 100644 --- a/packages/app-builder-lib/src/node-module-collector/types.ts +++ b/packages/app-builder-lib/src/node-module-collector/types.ts @@ -38,7 +38,7 @@ export interface PnpmDependency extends Dependency { readonly resolved?: string - // implicit dependencies + // implicit dependencies, returned only through `npm list` readonly _dependencies?: { [packageName: string]: string } @@ -50,6 +50,9 @@ export interface YarnBerryDependency extends Dependency {} +// eslint-disable-next-line @typescript-eslint/no-empty-object-type +export interface TraversedDependency extends Dependency {} + export type Dependency = Dependencies & ParsedDependencyTree export type Dependencies = { diff --git a/packages/app-builder-lib/src/node-module-collector/yarnBerryNodeModulesCollector.ts b/packages/app-builder-lib/src/node-module-collector/yarnBerryNodeModulesCollector.ts index 9aff7906b91..8fc7b637607 100644 --- a/packages/app-builder-lib/src/node-module-collector/yarnBerryNodeModulesCollector.ts +++ b/packages/app-builder-lib/src/node-module-collector/yarnBerryNodeModulesCollector.ts @@ -29,14 +29,14 @@ export class YarnBerryNodeModulesCollector extends NpmNodeModulesCollector { protected async getDependenciesTree(_pm: PM): Promise { const isPnp = await this.yarnSetupInfo.value.then(info => !!info.isPnP) if (isPnp) { - log.warn(null, "Yarn PnP extraction not supported directly due to virtual file paths (.zip/), falling back to NPM node module collector") + log.warn(null, "Yarn PnP extraction not supported directly due to virtual file paths (.zip/), utilizing NPM node module collector") } return super.getDependenciesTree(PM.NPM) } protected isProdDependency(packageName: string, tree: NpmDependency): boolean { - return tree._dependencies?.[packageName] != null || tree.dependencies?.[packageName] != null || tree.optionalDependencies?.[packageName] != null + return super.isProdDependency(packageName, tree) || tree.dependencies?.[packageName] != null || tree.optionalDependencies?.[packageName] == null } private async detectYarnSetup(rootDir: string): Promise { diff --git a/packages/app-builder-lib/src/node-module-collector/yarnNodeModulesCollector.ts b/packages/app-builder-lib/src/node-module-collector/yarnNodeModulesCollector.ts index cdec2f9e63c..7caa95a7c8b 100644 --- a/packages/app-builder-lib/src/node-module-collector/yarnNodeModulesCollector.ts +++ b/packages/app-builder-lib/src/node-module-collector/yarnNodeModulesCollector.ts @@ -64,22 +64,6 @@ export class YarnNodeModulesCollector extends NodeModulesCollector { const lines = jsonBlob .split("\n") diff --git a/packages/app-builder-lib/src/util/appFileCopier.ts b/packages/app-builder-lib/src/util/appFileCopier.ts index d0fc6d3a996..59ecc9be221 100644 --- a/packages/app-builder-lib/src/util/appFileCopier.ts +++ b/packages/app-builder-lib/src/util/appFileCopier.ts @@ -13,7 +13,7 @@ import { PlatformPackager } from "../platformPackager" import { AppFileWalker } from "./AppFileWalker" import { NodeModuleCopyHelper } from "./NodeModuleCopyHelper" import { NodeModuleInfo } from "./packageDependencies" -import { getNodeModules } from "../node-module-collector" +import { getNodeModules, PM } from "../node-module-collector" const BOWER_COMPONENTS_PATTERN = `${path.sep}bower_components${path.sep}` /** @internal */ @@ -183,20 +183,26 @@ export async function computeNodeModuleFileSets(platformPackager: PlatformPackag let deps: Array = [] const searchDirectories = Array.from(new Set([projectDir, appDir, await packager.getWorkspaceRoot()])).filter((it): it is string => it != null) - for (const dir of searchDirectories) { - if (cancellationToken.cancelled) { - throw new Error("user cancelled") - } + const pmApproaches = [await packager.getPackageManager(), PM.TRAVERSAL] + for (const pm of pmApproaches) { + for (const dir of searchDirectories) { + if (cancellationToken.cancelled) { + throw new Error("user cancelled") + } - const dirDeps = await getNodeModules(await packager.getPackageManager(), { rootDir: dir, tempDirManager, cancellationToken, packageName: packager.metadata.name! }) - if (dirDeps.length > 0) { - log.debug({ dir, nodeModules: dirDeps }, "collected node modules") - deps = dirDeps - break + const options = { rootDir: dir, tempDirManager, cancellationToken, packageName: packager.metadata.name! } + deps = await getNodeModules(pm, options) + if (deps.length > 0) { + break + } + const attempt = searchDirectories.indexOf(dir) + if (attempt < searchDirectories.length - 1) { + log.info({ searchDir: dir, attempt }, "no node modules found in collection, trying next search directory") + } } - const attempt = searchDirectories.indexOf(dir) - if (attempt < searchDirectories.length - 1) { - log.info({ searchDir: dir, attempt }, "no node modules found in collection, trying next search directory") + if (deps.length > 0) { + log.debug({ pm, nodeModules: deps }, "collected node modules") + break } } if (deps.length === 0) { diff --git a/test/fixtures/build-hook.cjs b/test/fixtures/build-hook.cjs index 3893a36aa9a..d579a0daa63 100644 --- a/test/fixtures/build-hook.cjs +++ b/test/fixtures/build-hook.cjs @@ -1 +1 @@ -module.exports = console.log \ No newline at end of file +module.exports = ({packager, target, ...obj}) => console.log(obj) \ No newline at end of file diff --git a/test/fixtures/build-hook.mjs b/test/fixtures/build-hook.mjs index 4d147fb5f2a..d4a5700a23f 100644 --- a/test/fixtures/build-hook.mjs +++ b/test/fixtures/build-hook.mjs @@ -1,4 +1,4 @@ -const func = console.log +const func = ({packager, target, ...obj}) => console.log(obj) export const artifactBuildStarted = func export const artifactBuildCompleted = func diff --git a/test/snapshots/HoistedNodeModuleTest.js.snap b/test/snapshots/HoistedNodeModuleTest.js.snap index 94369184591..c795eaa954c 100644 --- a/test/snapshots/HoistedNodeModuleTest.js.snap +++ b/test/snapshots/HoistedNodeModuleTest.js.snap @@ -90355,11 +90355,11 @@ exports[`yarn ms 2`] = ` { "files": { "index.html": { - "offset": "50445469", + "offset": "50445467", "size": 378, }, "index.js": { - "offset": "50445847", + "offset": "50445845", "size": 619, }, "node_modules": { @@ -119340,11 +119340,11 @@ exports[`yarn ms 2`] = ` "undici-types": { "files": { "LICENSE": { - "offset": "48549792", + "offset": "48549791", "size": 1090, }, "package.json": { - "offset": "48550882", + "offset": "48550881", "size": 325, }, }, @@ -119353,7 +119353,7 @@ exports[`yarn ms 2`] = ` }, "package.json": { "offset": "48549041", - "size": 751, + "size": 750, }, }, }, @@ -119361,12 +119361,12 @@ exports[`yarn ms 2`] = ` "files": { "LICENSE": { "executable": true, - "offset": "48551207", + "offset": "48551206", "size": 1141, }, "package.json": { "executable": true, - "offset": "48552348", + "offset": "48552347", "size": 611, }, }, @@ -119374,11 +119374,11 @@ exports[`yarn ms 2`] = ` "pg-pool": { "files": { "LICENSE": { - "offset": "48552959", + "offset": "48552958", "size": 1141, }, "package.json": { - "offset": "48554100", + "offset": "48554099", "size": 579, }, }, @@ -119386,11 +119386,11 @@ exports[`yarn ms 2`] = ` "shimmer": { "files": { "LICENSE": { - "offset": "48554679", + "offset": "48554678", "size": 1141, }, "package.json": { - "offset": "48555820", + "offset": "48555819", "size": 555, }, }, @@ -119398,7 +119398,7 @@ exports[`yarn ms 2`] = ` "tedious": { "files": { "LICENSE": { - "offset": "48556375", + "offset": "48556374", "size": 1141, }, "node_modules": { @@ -119408,12 +119408,12 @@ exports[`yarn ms 2`] = ` "node": { "files": { "LICENSE": { - "offset": "48558098", + "offset": "48558097", "size": 1141, }, "package.json": { - "offset": "48559239", - "size": 751, + "offset": "48559238", + "size": 750, }, }, }, @@ -119422,7 +119422,7 @@ exports[`yarn ms 2`] = ` }, }, "package.json": { - "offset": "48557516", + "offset": "48557515", "size": 582, }, }, @@ -119432,14 +119432,14 @@ exports[`yarn ms 2`] = ` "acorn": { "files": { "LICENSE": { - "offset": "48559990", + "offset": "48559988", "size": 1099, }, "bin": { "files": { "acorn": { "executable": true, - "offset": "48561089", + "offset": "48561087", "size": 60, }, }, @@ -119447,25 +119447,25 @@ exports[`yarn ms 2`] = ` "dist": { "files": { "acorn.d.mts": { - "offset": "48561149", + "offset": "48561147", "size": 21989, }, "acorn.js": { - "offset": "48583138", + "offset": "48583136", "size": 241575, }, "acorn.mjs": { - "offset": "48824713", + "offset": "48824711", "size": 229792, }, "bin.js": { - "offset": "49054505", + "offset": "49054503", "size": 3329, }, }, }, "package.json": { - "offset": "49057834", + "offset": "49057832", "size": 997, }, }, @@ -119473,29 +119473,29 @@ exports[`yarn ms 2`] = ` "acorn-import-attributes": { "files": { "LICENSE": { - "offset": "49058831", + "offset": "49058829", "size": 1069, }, "lib": { "files": { "index.js": { - "offset": "49059900", + "offset": "49059898", "size": 10482, }, "index.mjs": { - "offset": "49070382", + "offset": "49070380", "size": 9400, }, }, }, "package.json": { - "offset": "49079782", + "offset": "49079780", "size": 1002, }, "src": { "files": { "index.js": { - "offset": "49080784", + "offset": "49080782", "size": 9400, }, }, @@ -119506,29 +119506,29 @@ exports[`yarn ms 2`] = ` "files": { "LICENSE": { "executable": true, - "offset": "49090184", + "offset": "49090182", "size": 1085, }, "dist": { "files": { "lexer.js": { - "offset": "49091269", + "offset": "49091267", "size": 33507, }, "lexer.mjs": { - "offset": "49124776", + "offset": "49124774", "size": 33480, }, }, }, "lexer.js": { "executable": true, - "offset": "49158256", + "offset": "49158254", "size": 53714, }, "package.json": { "executable": true, - "offset": "49211970", + "offset": "49211968", "size": 829, }, }, @@ -119536,7 +119536,7 @@ exports[`yarn ms 2`] = ` "debug": { "files": { "LICENSE": { - "offset": "49212799", + "offset": "49212797", "size": 1139, }, "node_modules": { @@ -119544,15 +119544,15 @@ exports[`yarn ms 2`] = ` "ms": { "files": { "index.js": { - "offset": "49232908", + "offset": "49232906", "size": 3024, }, "license.md": { - "offset": "49235932", + "offset": "49235930", "size": 1079, }, "package.json": { - "offset": "49237011", + "offset": "49237009", "size": 497, }, }, @@ -119560,25 +119560,25 @@ exports[`yarn ms 2`] = ` }, }, "package.json": { - "offset": "49213938", + "offset": "49213936", "size": 910, }, "src": { "files": { "browser.js": { - "offset": "49214848", + "offset": "49214846", "size": 6103, }, "common.js": { - "offset": "49220951", + "offset": "49220949", "size": 6915, }, "index.js": { - "offset": "49227866", + "offset": "49227864", "size": 314, }, "node.js": { - "offset": "49228180", + "offset": "49228178", "size": 4728, }, }, @@ -119588,39 +119588,39 @@ exports[`yarn ms 2`] = ` "deepmerge": { "files": { ".editorconfig": { - "offset": "49237508", + "offset": "49237506", "size": 113, }, ".eslintcache": { - "offset": "49237621", + "offset": "49237619", "size": 382, }, "dist": { "files": { "cjs.js": { - "offset": "49238003", + "offset": "49238001", "size": 4048, }, "umd.js": { - "offset": "49242051", + "offset": "49242049", "size": 4420, }, }, }, "index.js": { - "offset": "49246471", + "offset": "49246469", "size": 3293, }, "license.txt": { - "offset": "49249764", + "offset": "49249762", "size": 1116, }, "package.json": { - "offset": "49250880", + "offset": "49250878", "size": 729, }, "rollup.config.js": { - "offset": "49251609", + "offset": "49251607", "size": 343, }, }, @@ -119628,19 +119628,19 @@ exports[`yarn ms 2`] = ` "electron-clear-data": { "files": { "LICENSE.md": { - "offset": "49251952", + "offset": "49251950", "size": 1059, }, "dist": { "files": { "main.js": { - "offset": "49253011", + "offset": "49253009", "size": 1734, }, }, }, "package.json": { - "offset": "49254745", + "offset": "49254743", "size": 960, }, }, @@ -119648,27 +119648,27 @@ exports[`yarn ms 2`] = ` "forwarded-parse": { "files": { "LICENSE": { - "offset": "49255705", + "offset": "49255703", "size": 1055, }, "index.js": { - "offset": "49256760", + "offset": "49256758", "size": 4192, }, "lib": { "files": { "ascii.js": { - "offset": "49260952", + "offset": "49260950", "size": 2230, }, "error.js": { - "offset": "49263182", + "offset": "49263180", "size": 465, }, }, }, "package.json": { - "offset": "49263647", + "offset": "49263645", "size": 465, }, }, @@ -119676,23 +119676,23 @@ exports[`yarn ms 2`] = ` "function-bind": { "files": { ".nycrc": { - "offset": "49264112", + "offset": "49264110", "size": 216, }, "LICENSE": { - "offset": "49264328", + "offset": "49264326", "size": 1052, }, "implementation.js": { - "offset": "49265380", + "offset": "49265378", "size": 2043, }, "index.js": { - "offset": "49267423", + "offset": "49267421", "size": 126, }, "package.json": { - "offset": "49267549", + "offset": "49267547", "size": 1329, }, }, @@ -119700,15 +119700,15 @@ exports[`yarn ms 2`] = ` "hasown": { "files": { ".nycrc": { - "offset": "49268878", + "offset": "49268876", "size": 216, }, "LICENSE": { - "offset": "49269094", + "offset": "49269092", "size": 1083, }, "index.js": { - "offset": "49270177", + "offset": "49270175", "size": 206, }, "node_modules": { @@ -119716,23 +119716,23 @@ exports[`yarn ms 2`] = ` "function-bind": { "files": { ".nycrc": { - "offset": "49271930", + "offset": "49271928", "size": 216, }, "LICENSE": { - "offset": "49272146", + "offset": "49272144", "size": 1052, }, "implementation.js": { - "offset": "49273198", + "offset": "49273196", "size": 2043, }, "index.js": { - "offset": "49275241", + "offset": "49275239", "size": 126, }, "package.json": { - "offset": "49275367", + "offset": "49275365", "size": 1329, }, }, @@ -119740,11 +119740,11 @@ exports[`yarn ms 2`] = ` }, }, "package.json": { - "offset": "49270383", + "offset": "49270381", "size": 1474, }, "tsconfig.json": { - "offset": "49271857", + "offset": "49271855", "size": 73, }, }, @@ -119752,65 +119752,65 @@ exports[`yarn ms 2`] = ` "import-in-the-middle": { "files": { ".editorconfig": { - "offset": "49276696", + "offset": "49276694", "size": 215, }, ".eslintrc.yaml": { - "offset": "49276911", + "offset": "49276909", "size": 551, }, ".release-please-manifest.json": { - "offset": "49277462", + "offset": "49277460", "size": 20, }, "CODE_OF_CONDUCT.md": { - "offset": "49277482", + "offset": "49277480", "size": 148, }, "CONTRIBUTING.md": { - "offset": "49277630", + "offset": "49277628", "size": 1409, }, "GOVERNANCE.md": { - "offset": "49279039", + "offset": "49279037", "size": 1267, }, "LICENSE": { - "offset": "49280306", + "offset": "49280304", "size": 11357, }, "LICENSE-3rdparty.csv": { - "offset": "49291663", + "offset": "49291661", "size": 203, }, "NOTICE": { - "offset": "49291866", + "offset": "49291864", "size": 1491, }, "hook.js": { - "offset": "49293357", + "offset": "49293355", "size": 14810, }, "hook.mjs": { - "offset": "49308167", + "offset": "49308165", "size": 412, }, "index.js": { - "offset": "49308579", + "offset": "49308577", "size": 4716, }, "lib": { "files": { "get-esm-exports.js": { - "offset": "49313295", + "offset": "49313293", "size": 3441, }, "get-exports.js": { - "offset": "49316736", + "offset": "49316734", "size": 6405, }, "register.js": { - "offset": "49323141", + "offset": "49323139", "size": 1712, }, }, @@ -119820,14 +119820,14 @@ exports[`yarn ms 2`] = ` "acorn": { "files": { "LICENSE": { - "offset": "49326857", + "offset": "49326855", "size": 1099, }, "bin": { "files": { "acorn": { "executable": true, - "offset": "49327956", + "offset": "49327954", "size": 60, }, }, @@ -119835,25 +119835,25 @@ exports[`yarn ms 2`] = ` "dist": { "files": { "acorn.d.mts": { - "offset": "49328016", + "offset": "49328014", "size": 21989, }, "acorn.js": { - "offset": "49350005", + "offset": "49350003", "size": 241575, }, "acorn.mjs": { - "offset": "49591580", + "offset": "49591578", "size": 229792, }, "bin.js": { - "offset": "49821372", + "offset": "49821370", "size": 3329, }, }, }, "package.json": { - "offset": "49824701", + "offset": "49824699", "size": 997, }, }, @@ -119861,29 +119861,29 @@ exports[`yarn ms 2`] = ` "acorn-import-attributes": { "files": { "LICENSE": { - "offset": "49825698", + "offset": "49825696", "size": 1069, }, "lib": { "files": { "index.js": { - "offset": "49826767", + "offset": "49826765", "size": 10482, }, "index.mjs": { - "offset": "49837249", + "offset": "49837247", "size": 9400, }, }, }, "package.json": { - "offset": "49846649", + "offset": "49846647", "size": 1002, }, "src": { "files": { "index.js": { - "offset": "49847651", + "offset": "49847649", "size": 9400, }, }, @@ -119894,29 +119894,29 @@ exports[`yarn ms 2`] = ` "files": { "LICENSE": { "executable": true, - "offset": "49857051", + "offset": "49857049", "size": 1085, }, "dist": { "files": { "lexer.js": { - "offset": "49858136", + "offset": "49858134", "size": 33507, }, "lexer.mjs": { - "offset": "49891643", + "offset": "49891641", "size": 33480, }, }, }, "lexer.js": { "executable": true, - "offset": "49925123", + "offset": "49925121", "size": 53714, }, "package.json": { "executable": true, - "offset": "49978837", + "offset": "49978835", "size": 829, }, }, @@ -119924,15 +119924,15 @@ exports[`yarn ms 2`] = ` "module-details-from-path": { "files": { "LICENSE": { - "offset": "49979666", + "offset": "49979664", "size": 1091, }, "index.js": { - "offset": "49980757", + "offset": "49980755", "size": 965, }, "package.json": { - "offset": "49981722", + "offset": "49981720", "size": 675, }, }, @@ -119940,15 +119940,15 @@ exports[`yarn ms 2`] = ` }, }, "package.json": { - "offset": "49324853", + "offset": "49324851", "size": 1399, }, "release-please-config.json": { - "offset": "49326252", + "offset": "49326250", "size": 300, }, "tsconfig.json": { - "offset": "49326552", + "offset": "49326550", "size": 305, }, }, @@ -119956,19 +119956,19 @@ exports[`yarn ms 2`] = ` "is-core-module": { "files": { ".nycrc": { - "offset": "49982397", + "offset": "49982395", "size": 139, }, "LICENSE": { - "offset": "49982536", + "offset": "49982534", "size": 1078, }, "core.json": { - "offset": "49983614", + "offset": "49983612", "size": 5953, }, "index.js": { - "offset": "49989567", + "offset": "49989565", "size": 1766, }, "node_modules": { @@ -119976,23 +119976,23 @@ exports[`yarn ms 2`] = ` "hasown": { "files": { ".nycrc": { - "offset": "49992569", + "offset": "49992567", "size": 216, }, "LICENSE": { - "offset": "49992785", + "offset": "49992783", "size": 1083, }, "index.js": { - "offset": "49993868", + "offset": "49993866", "size": 206, }, "package.json": { - "offset": "49994074", + "offset": "49994072", "size": 1474, }, "tsconfig.json": { - "offset": "49995548", + "offset": "49995546", "size": 73, }, }, @@ -120000,7 +120000,7 @@ exports[`yarn ms 2`] = ` }, }, "package.json": { - "offset": "49991333", + "offset": "49991331", "size": 1236, }, }, @@ -120008,15 +120008,15 @@ exports[`yarn ms 2`] = ` "module-details-from-path": { "files": { "LICENSE": { - "offset": "49995621", + "offset": "49995619", "size": 1091, }, "index.js": { - "offset": "49996712", + "offset": "49996710", "size": 965, }, "package.json": { - "offset": "49997677", + "offset": "49997675", "size": 675, }, }, @@ -120024,15 +120024,15 @@ exports[`yarn ms 2`] = ` "ms": { "files": { "index.js": { - "offset": "49998352", + "offset": "49998350", "size": 3024, }, "license.md": { - "offset": "50001376", + "offset": "50001374", "size": 1079, }, "package.json": { - "offset": "50002455", + "offset": "50002453", "size": 497, }, }, @@ -120040,15 +120040,15 @@ exports[`yarn ms 2`] = ` "path-parse": { "files": { "LICENSE": { - "offset": "50002952", + "offset": "50002950", "size": 1080, }, "index.js": { - "offset": "50004032", + "offset": "50004030", "size": 1893, }, "package.json": { - "offset": "50005925", + "offset": "50005923", "size": 362, }, }, @@ -120056,15 +120056,15 @@ exports[`yarn ms 2`] = ` "pg-int8": { "files": { "LICENSE": { - "offset": "50006287", + "offset": "50006285", "size": 750, }, "index.js": { - "offset": "50007037", + "offset": "50007035", "size": 1572, }, "package.json": { - "offset": "50008609", + "offset": "50008607", "size": 402, }, }, @@ -120072,81 +120072,81 @@ exports[`yarn ms 2`] = ` "pg-protocol": { "files": { "LICENSE": { - "offset": "50009011", + "offset": "50009009", "size": 1077, }, "dist": { "files": { "b.js": { - "offset": "50010088", + "offset": "50010086", "size": 636, }, "b.js.map": { - "offset": "50010724", + "offset": "50010722", "size": 792, }, "buffer-reader.js": { - "offset": "50011516", + "offset": "50011514", "size": 1639, }, "buffer-reader.js.map": { - "offset": "50013155", + "offset": "50013153", "size": 1747, }, "buffer-writer.js": { - "offset": "50014902", + "offset": "50014900", "size": 2772, }, "buffer-writer.js.map": { - "offset": "50017674", + "offset": "50017672", "size": 3087, }, "inbound-parser.test.js": { - "offset": "50020761", + "offset": "50020759", "size": 19234, }, "inbound-parser.test.js.map": { - "offset": "50039995", + "offset": "50039993", "size": 14688, }, "index.js": { - "offset": "50054683", + "offset": "50054681", "size": 791, }, "index.js.map": { - "offset": "50055474", + "offset": "50055472", "size": 522, }, "messages.js": { - "offset": "50055996", + "offset": "50055994", "size": 4973, }, "messages.js.map": { - "offset": "50060969", + "offset": "50060967", "size": 3383, }, "outbound-serializer.test.js": { - "offset": "50064352", + "offset": "50064350", "size": 11065, }, "outbound-serializer.test.js.map": { - "offset": "50075417", + "offset": "50075415", "size": 10276, }, "parser.js": { - "offset": "50085693", + "offset": "50085691", "size": 13824, }, "parser.js.map": { - "offset": "50099517", + "offset": "50099515", "size": 11246, }, "serializer.js": { - "offset": "50110763", + "offset": "50110761", "size": 6937, }, "serializer.js.map": { - "offset": "50117700", + "offset": "50117698", "size": 7124, }, }, @@ -120154,61 +120154,61 @@ exports[`yarn ms 2`] = ` "esm": { "files": { "index.js": { - "offset": "50124824", + "offset": "50124822", "size": 325, }, }, }, "package.json": { - "offset": "50125149", + "offset": "50125147", "size": 871, }, "src": { "files": { "b.ts": { - "offset": "50126020", + "offset": "50126018", "size": 473, }, "buffer-reader.ts": { - "offset": "50126493", + "offset": "50126491", "size": 1440, }, "buffer-writer.ts": { - "offset": "50127933", + "offset": "50127931", "size": 2503, }, "inbound-parser.test.ts": { - "offset": "50130436", + "offset": "50130434", "size": 15158, }, "index.ts": { - "offset": "50145594", + "offset": "50145592", "size": 443, }, "messages.ts": { - "offset": "50146037", + "offset": "50146035", "size": 6458, }, "outbound-serializer.test.ts": { - "offset": "50152495", + "offset": "50152493", "size": 8562, }, "parser.ts": { - "offset": "50161057", + "offset": "50161055", "size": 13469, }, "serializer.ts": { - "offset": "50174526", + "offset": "50174524", "size": 7193, }, "testing": { "files": { "buffer-list.ts": { - "offset": "50181719", + "offset": "50181717", "size": 1727, }, "test-buffers.ts": { - "offset": "50183446", + "offset": "50183444", "size": 4360, }, }, @@ -120220,33 +120220,33 @@ exports[`yarn ms 2`] = ` "pg-types": { "files": { "Makefile": { - "offset": "50187806", + "offset": "50187804", "size": 232, }, "index.js": { - "offset": "50188038", + "offset": "50188036", "size": 1214, }, "index.test-d.ts": { - "offset": "50189252", + "offset": "50189250", "size": 759, }, "lib": { "files": { "arrayParser.js": { - "offset": "50190011", + "offset": "50190009", "size": 208, }, "binaryParsers.js": { - "offset": "50190219", + "offset": "50190217", "size": 6063, }, "builtins.js": { - "offset": "50196282", + "offset": "50196280", "size": 1564, }, "textParsers.js": { - "offset": "50197846", + "offset": "50197844", "size": 5367, }, }, @@ -120256,15 +120256,15 @@ exports[`yarn ms 2`] = ` "postgres-array": { "files": { "index.js": { - "offset": "50203920", + "offset": "50203918", "size": 2320, }, "license": { - "offset": "50206240", + "offset": "50206238", "size": 1111, }, "package.json": { - "offset": "50207351", + "offset": "50207349", "size": 526, }, }, @@ -120272,15 +120272,15 @@ exports[`yarn ms 2`] = ` "postgres-bytea": { "files": { "index.js": { - "offset": "50207877", + "offset": "50207875", "size": 823, }, "license": { - "offset": "50208700", + "offset": "50208698", "size": 1111, }, "package.json": { - "offset": "50209811", + "offset": "50209809", "size": 480, }, }, @@ -120288,15 +120288,15 @@ exports[`yarn ms 2`] = ` "postgres-date": { "files": { "index.js": { - "offset": "50210291", + "offset": "50210289", "size": 2676, }, "license": { - "offset": "50212967", + "offset": "50212965", "size": 1111, }, "package.json": { - "offset": "50214078", + "offset": "50214076", "size": 485, }, }, @@ -120304,15 +120304,15 @@ exports[`yarn ms 2`] = ` "postgres-interval": { "files": { "index.js": { - "offset": "50214563", + "offset": "50214561", "size": 3413, }, "license": { - "offset": "50217976", + "offset": "50217974", "size": 1111, }, "package.json": { - "offset": "50219087", + "offset": "50219085", "size": 540, }, }, @@ -120320,7 +120320,7 @@ exports[`yarn ms 2`] = ` }, }, "package.json": { - "offset": "50203213", + "offset": "50203211", "size": 707, }, }, @@ -120328,15 +120328,15 @@ exports[`yarn ms 2`] = ` "postgres-array": { "files": { "index.js": { - "offset": "50219627", + "offset": "50219625", "size": 2320, }, "license": { - "offset": "50221947", + "offset": "50221945", "size": 1111, }, "package.json": { - "offset": "50223058", + "offset": "50223056", "size": 526, }, }, @@ -120344,15 +120344,15 @@ exports[`yarn ms 2`] = ` "postgres-bytea": { "files": { "index.js": { - "offset": "50223584", + "offset": "50223582", "size": 823, }, "license": { - "offset": "50224407", + "offset": "50224405", "size": 1111, }, "package.json": { - "offset": "50225518", + "offset": "50225516", "size": 480, }, }, @@ -120360,15 +120360,15 @@ exports[`yarn ms 2`] = ` "postgres-date": { "files": { "index.js": { - "offset": "50225998", + "offset": "50225996", "size": 2676, }, "license": { - "offset": "50228674", + "offset": "50228672", "size": 1111, }, "package.json": { - "offset": "50229785", + "offset": "50229783", "size": 485, }, }, @@ -120376,11 +120376,11 @@ exports[`yarn ms 2`] = ` "postgres-interval": { "files": { "index.js": { - "offset": "50230270", + "offset": "50230268", "size": 3413, }, "license": { - "offset": "50233683", + "offset": "50233681", "size": 1111, }, "node_modules": { @@ -120388,23 +120388,23 @@ exports[`yarn ms 2`] = ` "xtend": { "files": { "LICENSE": { - "offset": "50235334", + "offset": "50235332", "size": 1078, }, "immutable.js": { - "offset": "50236412", + "offset": "50236410", "size": 384, }, "mutable.js": { - "offset": "50236796", + "offset": "50236794", "size": 369, }, "package.json": { - "offset": "50237165", + "offset": "50237163", "size": 701, }, "test.js": { - "offset": "50237866", + "offset": "50237864", "size": 2307, }, }, @@ -120412,7 +120412,7 @@ exports[`yarn ms 2`] = ` }, }, "package.json": { - "offset": "50234794", + "offset": "50234792", "size": 540, }, }, @@ -120420,11 +120420,11 @@ exports[`yarn ms 2`] = ` "require-in-the-middle": { "files": { "LICENSE": { - "offset": "50240173", + "offset": "50240171", "size": 1192, }, "index.js": { - "offset": "50241365", + "offset": "50241363", "size": 14148, }, "node_modules": { @@ -120432,29 +120432,29 @@ exports[`yarn ms 2`] = ` "debug": { "files": { "LICENSE": { - "offset": "50256483", + "offset": "50256481", "size": 1139, }, "package.json": { - "offset": "50257622", + "offset": "50257620", "size": 910, }, "src": { "files": { "browser.js": { - "offset": "50258532", + "offset": "50258530", "size": 6103, }, "common.js": { - "offset": "50264635", + "offset": "50264633", "size": 6915, }, "index.js": { - "offset": "50271550", + "offset": "50271548", "size": 314, }, "node.js": { - "offset": "50271864", + "offset": "50271862", "size": 4728, }, }, @@ -120464,80 +120464,80 @@ exports[`yarn ms 2`] = ` "resolve": { "files": { ".editorconfig": { - "offset": "50276592", + "offset": "50276590", "size": 605, }, "LICENSE": { - "offset": "50277197", + "offset": "50277195", "size": 1071, }, "SECURITY.md": { - "offset": "50278268", + "offset": "50278266", "size": 357, }, "async.js": { - "offset": "50278625", + "offset": "50278623", "size": 56, }, "bin": { "files": { "resolve": { "executable": true, - "offset": "50278681", + "offset": "50278679", "size": 1535, }, }, }, "index.js": { - "offset": "50280216", + "offset": "50280214", "size": 174, }, "lib": { "files": { "async.js": { - "offset": "50280390", + "offset": "50280388", "size": 11517, }, "caller.js": { - "offset": "50291907", + "offset": "50291905", "size": 354, }, "core.js": { - "offset": "50292261", + "offset": "50292259", "size": 309, }, "core.json": { - "offset": "50292570", + "offset": "50292568", "size": 5953, }, "homedir.js": { - "offset": "50298523", + "offset": "50298521", "size": 805, }, "is-core.js": { - "offset": "50299328", + "offset": "50299326", "size": 116, }, "node-modules-paths.js": { - "offset": "50299444", + "offset": "50299442", "size": 1365, }, "normalize-options.js": { - "offset": "50300809", + "offset": "50300807", "size": 348, }, "sync.js": { - "offset": "50301157", + "offset": "50301155", "size": 7147, }, }, }, "package.json": { - "offset": "50308304", + "offset": "50308302", "size": 1318, }, "sync.js": { - "offset": "50309622", + "offset": "50309620", "size": 55, }, }, @@ -120545,7 +120545,7 @@ exports[`yarn ms 2`] = ` }, }, "package.json": { - "offset": "50255513", + "offset": "50255511", "size": 970, }, }, @@ -120553,70 +120553,70 @@ exports[`yarn ms 2`] = ` "resolve": { "files": { ".editorconfig": { - "offset": "50309677", + "offset": "50309675", "size": 605, }, "LICENSE": { - "offset": "50310282", + "offset": "50310280", "size": 1071, }, "SECURITY.md": { - "offset": "50311353", + "offset": "50311351", "size": 357, }, "async.js": { - "offset": "50311710", + "offset": "50311708", "size": 56, }, "bin": { "files": { "resolve": { "executable": true, - "offset": "50311766", + "offset": "50311764", "size": 1535, }, }, }, "index.js": { - "offset": "50313301", + "offset": "50313299", "size": 174, }, "lib": { "files": { "async.js": { - "offset": "50313475", + "offset": "50313473", "size": 11517, }, "caller.js": { - "offset": "50324992", + "offset": "50324990", "size": 354, }, "core.js": { - "offset": "50325346", + "offset": "50325344", "size": 309, }, "core.json": { - "offset": "50325655", + "offset": "50325653", "size": 5953, }, "homedir.js": { - "offset": "50331608", + "offset": "50331606", "size": 805, }, "is-core.js": { - "offset": "50332413", + "offset": "50332411", "size": 116, }, "node-modules-paths.js": { - "offset": "50332529", + "offset": "50332527", "size": 1365, }, "normalize-options.js": { - "offset": "50333894", + "offset": "50333892", "size": 348, }, "sync.js": { - "offset": "50334242", + "offset": "50334240", "size": 7147, }, }, @@ -120626,23 +120626,23 @@ exports[`yarn ms 2`] = ` "is-core-module": { "files": { ".nycrc": { - "offset": "50342762", + "offset": "50342760", "size": 139, }, "LICENSE": { - "offset": "50342901", + "offset": "50342899", "size": 1078, }, "core.json": { - "offset": "50343979", + "offset": "50343977", "size": 5953, }, "index.js": { - "offset": "50349932", + "offset": "50349930", "size": 1766, }, "package.json": { - "offset": "50351698", + "offset": "50351696", "size": 1236, }, }, @@ -120650,15 +120650,15 @@ exports[`yarn ms 2`] = ` "path-parse": { "files": { "LICENSE": { - "offset": "50352934", + "offset": "50352932", "size": 1080, }, "index.js": { - "offset": "50354014", + "offset": "50354012", "size": 1893, }, "package.json": { - "offset": "50355907", + "offset": "50355905", "size": 362, }, }, @@ -120666,23 +120666,23 @@ exports[`yarn ms 2`] = ` "supports-preserve-symlinks-flag": { "files": { ".nycrc": { - "offset": "50356269", + "offset": "50356267", "size": 139, }, "LICENSE": { - "offset": "50356408", + "offset": "50356406", "size": 1067, }, "browser.js": { - "offset": "50357475", + "offset": "50357473", "size": 38, }, "index.js": { - "offset": "50357513", + "offset": "50357511", "size": 293, }, "package.json": { - "offset": "50357806", + "offset": "50357804", "size": 1266, }, }, @@ -120690,11 +120690,11 @@ exports[`yarn ms 2`] = ` }, }, "package.json": { - "offset": "50341389", + "offset": "50341387", "size": 1318, }, "sync.js": { - "offset": "50342707", + "offset": "50342705", "size": 55, }, }, @@ -120702,14 +120702,14 @@ exports[`yarn ms 2`] = ` "semver": { "files": { "LICENSE": { - "offset": "50359072", + "offset": "50359070", "size": 765, }, "bin": { "files": { "semver.js": { "executable": true, - "offset": "50359837", + "offset": "50359835", "size": 4739, }, }, @@ -120717,19 +120717,19 @@ exports[`yarn ms 2`] = ` "classes": { "files": { "comparator.js": { - "offset": "50364576", + "offset": "50364574", "size": 3631, }, "index.js": { - "offset": "50368207", + "offset": "50368205", "size": 143, }, "range.js": { - "offset": "50368350", + "offset": "50368348", "size": 14977, }, "semver.js": { - "offset": "50383327", + "offset": "50383325", "size": 9480, }, }, @@ -120737,191 +120737,191 @@ exports[`yarn ms 2`] = ` "functions": { "files": { "clean.js": { - "offset": "50392807", + "offset": "50392805", "size": 205, }, "cmp.js": { - "offset": "50393012", + "offset": "50393010", "size": 961, }, "coerce.js": { - "offset": "50393973", + "offset": "50393971", "size": 2004, }, "compare-build.js": { - "offset": "50395977", + "offset": "50395975", "size": 281, }, "compare-loose.js": { - "offset": "50396258", + "offset": "50396256", "size": 132, }, "compare.js": { - "offset": "50396390", + "offset": "50396388", "size": 170, }, "diff.js": { - "offset": "50396560", + "offset": "50396558", "size": 1421, }, "eq.js": { - "offset": "50397981", + "offset": "50397979", "size": 126, }, "gt.js": { - "offset": "50398107", + "offset": "50398105", "size": 124, }, "gte.js": { - "offset": "50398231", + "offset": "50398229", "size": 127, }, "inc.js": { - "offset": "50398358", + "offset": "50398356", "size": 478, }, "lt.js": { - "offset": "50398836", + "offset": "50398834", "size": 124, }, "lte.js": { - "offset": "50398960", + "offset": "50398958", "size": 127, }, "major.js": { - "offset": "50399087", + "offset": "50399085", "size": 136, }, "minor.js": { - "offset": "50399223", + "offset": "50399221", "size": 136, }, "neq.js": { - "offset": "50399359", + "offset": "50399357", "size": 128, }, "parse.js": { - "offset": "50399487", + "offset": "50399485", "size": 331, }, "patch.js": { - "offset": "50399818", + "offset": "50399816", "size": 136, }, "prerelease.js": { - "offset": "50399954", + "offset": "50399952", "size": 234, }, "rcompare.js": { - "offset": "50400188", + "offset": "50400186", "size": 132, }, "rsort.js": { - "offset": "50400320", + "offset": "50400318", "size": 163, }, "satisfies.js": { - "offset": "50400483", + "offset": "50400481", "size": 247, }, "sort.js": { - "offset": "50400730", + "offset": "50400728", "size": 161, }, "valid.js": { - "offset": "50400891", + "offset": "50400889", "size": 176, }, }, }, "index.js": { - "offset": "50401067", + "offset": "50401065", "size": 2630, }, "internal": { "files": { "constants.js": { - "offset": "50403697", + "offset": "50403695", "size": 873, }, "debug.js": { - "offset": "50404570", + "offset": "50404568", "size": 240, }, "identifiers.js": { - "offset": "50404810", + "offset": "50404808", "size": 525, }, "lrucache.js": { - "offset": "50405335", + "offset": "50405333", "size": 802, }, "parse-options.js": { - "offset": "50406137", + "offset": "50406135", "size": 338, }, "re.js": { - "offset": "50406475", + "offset": "50406473", "size": 8141, }, }, }, "package.json": { - "offset": "50414616", + "offset": "50414614", "size": 1350, }, "preload.js": { - "offset": "50415966", + "offset": "50415964", "size": 83, }, "range.bnf": { - "offset": "50416049", + "offset": "50416047", "size": 619, }, "ranges": { "files": { "gtr.js": { - "offset": "50416668", + "offset": "50416666", "size": 231, }, "intersects.js": { - "offset": "50416899", + "offset": "50416897", "size": 224, }, "ltr.js": { - "offset": "50417123", + "offset": "50417121", "size": 227, }, "max-satisfying.js": { - "offset": "50417350", + "offset": "50417348", "size": 593, }, "min-satisfying.js": { - "offset": "50417943", + "offset": "50417941", "size": 591, }, "min-version.js": { - "offset": "50418534", + "offset": "50418532", "size": 1514, }, "outside.js": { - "offset": "50420048", + "offset": "50420046", "size": 2204, }, "simplify.js": { - "offset": "50422252", + "offset": "50422250", "size": 1355, }, "subset.js": { - "offset": "50423607", + "offset": "50423605", "size": 7524, }, "to-comparators.js": { - "offset": "50431131", + "offset": "50431129", "size": 282, }, "valid.js": { - "offset": "50431413", + "offset": "50431411", "size": 326, }, }, @@ -120931,15 +120931,15 @@ exports[`yarn ms 2`] = ` "shimmer": { "files": { "LICENSE": { - "offset": "50431739", + "offset": "50431737", "size": 1327, }, "index.js": { - "offset": "50433066", + "offset": "50433064", "size": 2943, }, "package.json": { - "offset": "50436009", + "offset": "50436007", "size": 403, }, }, @@ -120947,23 +120947,23 @@ exports[`yarn ms 2`] = ` "supports-preserve-symlinks-flag": { "files": { ".nycrc": { - "offset": "50436412", + "offset": "50436410", "size": 139, }, "LICENSE": { - "offset": "50436551", + "offset": "50436549", "size": 1067, }, "browser.js": { - "offset": "50437618", + "offset": "50437616", "size": 38, }, "index.js": { - "offset": "50437656", + "offset": "50437654", "size": 293, }, "package.json": { - "offset": "50437949", + "offset": "50437947", "size": 1266, }, }, @@ -120971,11 +120971,11 @@ exports[`yarn ms 2`] = ` "undici-types": { "files": { "LICENSE": { - "offset": "50439215", + "offset": "50439213", "size": 1090, }, "package.json": { - "offset": "50440305", + "offset": "50440303", "size": 325, }, }, @@ -120983,23 +120983,23 @@ exports[`yarn ms 2`] = ` "xtend": { "files": { "LICENSE": { - "offset": "50440630", + "offset": "50440628", "size": 1078, }, "immutable.js": { - "offset": "50441708", + "offset": "50441706", "size": 384, }, "mutable.js": { - "offset": "50442092", + "offset": "50442090", "size": 369, }, "package.json": { - "offset": "50442461", + "offset": "50442459", "size": 701, }, "test.js": { - "offset": "50443162", + "offset": "50443160", "size": 2307, }, }, @@ -121007,7 +121007,7 @@ exports[`yarn ms 2`] = ` }, }, "package.json": { - "offset": "50446466", + "offset": "50446464", "size": 409, }, }, diff --git a/test/src/concurrentBuildsTest.ts b/test/src/concurrentBuildsTest.ts index 3436494efd3..b44941baaa6 100644 --- a/test/src/concurrentBuildsTest.ts +++ b/test/src/concurrentBuildsTest.ts @@ -3,7 +3,7 @@ import { deepAssign } from "builder-util" import { TmpDir } from "temp-file" import { assertPack, modifyPackageJson } from "./helpers/packTester" -const options = { timeout: 15 * 60 * 1000 } +const options = { timeout: 20 * 60 * 1000 } const winTargets = Platform.WINDOWS.createTarget([DIR_TARGET, "nsis"], Arch.x64, Arch.arm64) const macTargets = Platform.MAC.createTarget([DIR_TARGET, "zip", "dmg", "mas"], Arch.arm64, Arch.x64) diff --git a/test/src/helpers/packTester.ts b/test/src/helpers/packTester.ts index 7f937324d32..31b725be480 100644 --- a/test/src/helpers/packTester.ts +++ b/test/src/helpers/packTester.ts @@ -37,6 +37,7 @@ const PACKAGE_MANAGER_VERSION_MAP = { [PM.YARN_BERRY]: { cli: "yarn", version: "3.5.0" }, [PM.PNPM]: { cli: "pnpm", version: "10.18.0" }, [PM.BUN]: { cli: "bun", version: "1.3.2" }, + [PM.TRAVERSAL]: { cli: "npm", version: "9.8.1" }, // use npm to install, we're testing manual node traversal, but we still need something to install the dependencies } export function getPackageManagerWithVersion(pm: PM, packageManagerAndVersionString?: string) { @@ -148,7 +149,11 @@ export async function assertPack(expect: ExpectStatic, fixtureName: string, pack (async () => { const packageManagerOverride = checkOptions.packageManager || PM.NPM await modifyPackageJson(projectDir, data => { - if (data.packageManager == null) { + if ( + data.packageManager == null && + // these will block `npm list` with "Unsupported package manager specification (bun@1.3.2)" + ![PM.BUN, PM.TRAVERSAL].includes(packageManagerOverride) + ) { data.packageManager = getPackageManagerWithVersion(packageManagerOverride).prepareEntry } }) diff --git a/test/src/packageManagerTest.ts b/test/src/packageManagerTest.ts index 6d09f141844..9d8518f7321 100644 --- a/test/src/packageManagerTest.ts +++ b/test/src/packageManagerTest.ts @@ -370,7 +370,7 @@ test("bun workspace --linker=hoisted - multiple conflicting versions", ({ expect // Test for local file:// protocol Object.values(PM) - .filter(pm => pm !== PM.BUN) // bun is not supported for file: protocol + .filter(pm => ![PM.BUN, PM.TRAVERSAL].includes(pm)) // bun is not supported for file: protocol .forEach(pm => { test(`local file:// protocol with ${pm} for project outside workspace`, ({ expect }) => { return assertPack( diff --git a/vite.config.ts b/vite.config.ts index 1ea023de1f1..2a832598509 100644 --- a/vite.config.ts +++ b/vite.config.ts @@ -43,12 +43,14 @@ export default () => { }, }, + slowTestThreshold: 60 * 1000, + // disk operations can be slow. We're generous with the timeout here to account for less-performant (local?) machines. + // GH runners are fast, but we're still running tests concurrently, so collectively, they take less time, but individually, they can take longer due to parallelism. + testTimeout: 15 * 60 * 1000, sequence: { concurrent: process.env.TEST_SEQUENTIAL !== "true", }, - slowTestThreshold: 60 * 1000, - testTimeout: 10 * 60 * 1000, // disk operations can be slow. We're generous with the timeout here to account for less-performant hardware coverage: { reporter: ["lcov", "text"], }, From 123544607380e17f2fafafa7d3cef6383aba7936 Mon Sep 17 00:00:00 2001 From: Mike Maietta Date: Wed, 10 Dec 2025 14:35:40 -0800 Subject: [PATCH 07/65] tmp save --- packages/app-builder-lib/src/index.ts | 4 ++++ .../bunNodeModulesCollector.ts | 6 +++--- .../src/node-module-collector/index.ts | 2 +- .../traversalNodeModulesCollector.ts | 2 +- .../app-builder-lib/src/util/appFileCopier.ts | 20 +++++++++---------- .../src/SquirrelWindowsTarget.ts | 2 +- packages/electron-builder/src/index.ts | 4 ++-- packages/electron-builder/src/publish.ts | 6 +++--- 8 files changed, 25 insertions(+), 21 deletions(-) diff --git a/packages/app-builder-lib/src/index.ts b/packages/app-builder-lib/src/index.ts index 7907db404c7..f00cc345292 100644 --- a/packages/app-builder-lib/src/index.ts +++ b/packages/app-builder-lib/src/index.ts @@ -84,6 +84,10 @@ export { installOrRebuild } from "./util/yarn.js" export { PACKAGE_VERSION } from "./version.js" export { determinePackageManagerEnv } from "./node-module-collector/index.js" +export { execWine } from "./wine.js" +export { Publish } from "./core.js" +export { computeSafeArtifactNameIfNeeded } from "./platformPackager.js" + const expectedOptions = new Set(["publish", "targets", "mac", "win", "linux", "projectDir", "platformPackagerFactory", "config", "effectiveOptionComputed", "prepackaged"]) export function checkBuildRequestOptions(options: PackagerOptions & PublishOptions) { diff --git a/packages/app-builder-lib/src/node-module-collector/bunNodeModulesCollector.ts b/packages/app-builder-lib/src/node-module-collector/bunNodeModulesCollector.ts index 2817ae10a54..d5924fdd74f 100644 --- a/packages/app-builder-lib/src/node-module-collector/bunNodeModulesCollector.ts +++ b/packages/app-builder-lib/src/node-module-collector/bunNodeModulesCollector.ts @@ -1,7 +1,7 @@ import { log } from "builder-util" -import { PM } from "./packageManager" -import { NpmDependency } from "./types" -import { TraversalNodeModulesCollector } from "./traversalNodeModulesCollector" +import { PM } from "./packageManager.js" +import { NpmDependency } from "./types.js" +import { TraversalNodeModulesCollector } from "./traversalNodeModulesCollector.js" export class BunNodeModulesCollector extends TraversalNodeModulesCollector { public readonly installOptions = { manager: PM.BUN, lockfile: "bun.lock" } diff --git a/packages/app-builder-lib/src/node-module-collector/index.ts b/packages/app-builder-lib/src/node-module-collector/index.ts index d5e5cfa9f0b..33286731591 100644 --- a/packages/app-builder-lib/src/node-module-collector/index.ts +++ b/packages/app-builder-lib/src/node-module-collector/index.ts @@ -11,7 +11,7 @@ import { Lazy } from "lazy-val" import { spawn, log, exists } from "builder-util" import * as fs from "fs-extra" import * as path from "path" -import { TraversalNodeModulesCollector } from "./traversalNodeModulesCollector" +import { TraversalNodeModulesCollector } from "./traversalNodeModulesCollector.js" export { getPackageManagerCommand, PM } diff --git a/packages/app-builder-lib/src/node-module-collector/traversalNodeModulesCollector.ts b/packages/app-builder-lib/src/node-module-collector/traversalNodeModulesCollector.ts index 04ee6fb29c4..1260bae4ef2 100644 --- a/packages/app-builder-lib/src/node-module-collector/traversalNodeModulesCollector.ts +++ b/packages/app-builder-lib/src/node-module-collector/traversalNodeModulesCollector.ts @@ -1,5 +1,5 @@ import { log } from "builder-util" -import { NodeModulesCollector } from "./nodeModulesCollector" +import { NodeModulesCollector } from "./nodeModulesCollector.js" import { PM } from "./packageManager.js" import { Dependency, PackageJson, TraversedDependency } from "./types.js" import * as path from "path" diff --git a/packages/app-builder-lib/src/util/appFileCopier.ts b/packages/app-builder-lib/src/util/appFileCopier.ts index 59ecc9be221..be18ad297e0 100644 --- a/packages/app-builder-lib/src/util/appFileCopier.ts +++ b/packages/app-builder-lib/src/util/appFileCopier.ts @@ -4,16 +4,16 @@ import { ensureSymlink } from "fs-extra" import { mkdir, readlink } from "fs/promises" import * as path from "path" import asyncPool from "tiny-async-pool" -import { isLibOrExe } from "../asar/unpackDetector" -import { Platform } from "../core" -import { excludedExts, FileMatcher } from "../fileMatcher" -import { createElectronCompilerHost, NODE_MODULES_PATTERN } from "../fileTransformer" -import { Packager } from "../packager" -import { PlatformPackager } from "../platformPackager" -import { AppFileWalker } from "./AppFileWalker" -import { NodeModuleCopyHelper } from "./NodeModuleCopyHelper" -import { NodeModuleInfo } from "./packageDependencies" -import { getNodeModules, PM } from "../node-module-collector" +import { isLibOrExe } from "../asar/unpackDetector.js" +import { Platform } from "../core.js" +import { excludedExts, FileMatcher } from "../fileMatcher.js" +import { createElectronCompilerHost, NODE_MODULES_PATTERN } from "../fileTransformer.js" +import { Packager } from "../packager.js" +import { PlatformPackager } from "../platformPackager.js" +import { AppFileWalker } from "./AppFileWalker.js" +import { NodeModuleCopyHelper } from "./NodeModuleCopyHelper.js" +import { NodeModuleInfo } from "./packageDependencies.js" +import { getNodeModules, PM } from "../node-module-collector/index.js" const BOWER_COMPONENTS_PATTERN = `${path.sep}bower_components${path.sep}` /** @internal */ diff --git a/packages/electron-builder-squirrel-windows/src/SquirrelWindowsTarget.ts b/packages/electron-builder-squirrel-windows/src/SquirrelWindowsTarget.ts index a4b513ce956..9f39ebed79c 100644 --- a/packages/electron-builder-squirrel-windows/src/SquirrelWindowsTarget.ts +++ b/packages/electron-builder-squirrel-windows/src/SquirrelWindowsTarget.ts @@ -1,5 +1,5 @@ import { InvalidConfigurationError, log, isEmptyOrSpaces } from "builder-util" -import { execWine } from "app-builder-lib/out/wine" +import { execWine } from "app-builder-lib" import { getBinFromUrl } from "app-builder-lib/out/binDownload" import { sanitizeFileName } from "builder-util" import { Arch, getArchSuffix, SquirrelWindowsOptions, Target, WinPackager } from "app-builder-lib" diff --git a/packages/electron-builder/src/index.ts b/packages/electron-builder/src/index.ts index a50a67e4613..f7812eaa48e 100644 --- a/packages/electron-builder/src/index.ts +++ b/packages/electron-builder/src/index.ts @@ -1,6 +1,6 @@ export { getArchSuffix, Arch, archFromString, log } from "builder-util" -export { build, CliOptions, createTargets } from "./builder" -export { publish, publishArtifactsWithOptions } from "./publish" +export { build, CliOptions, createTargets } from "./builder.js" +export { publish, publishArtifactsWithOptions } from "./publish.js" export { TargetConfiguration, Platform, diff --git a/packages/electron-builder/src/publish.ts b/packages/electron-builder/src/publish.ts index a673095a0a2..5e3fce40657 100644 --- a/packages/electron-builder/src/publish.ts +++ b/packages/electron-builder/src/publish.ts @@ -1,9 +1,9 @@ #! /usr/bin/env node import { AppInfo, CancellationToken, Packager, PackagerOptions, PublishManager, PublishOptions, UploadTask, checkBuildRequestOptions } from "app-builder-lib" -import { Publish } from "app-builder-lib/out/core" -import { computeSafeArtifactNameIfNeeded } from "app-builder-lib/out/platformPackager" -import { getConfig } from "app-builder-lib/out/util/config/config" +import { Publish } from "app-builder-lib" +import { computeSafeArtifactNameIfNeeded } from "app-builder-lib" +import { getConfig } from "app-builder-lib" import { InvalidConfigurationError, archFromString, log, printErrorAndExit } from "builder-util" import { PublishPolicy } from "electron-publish" import * as chalk from "chalk" From fa1ceb2871defca5a2d300a8a2af7ad780ec2c8e Mon Sep 17 00:00:00 2001 From: Mike Maietta Date: Wed, 10 Dec 2025 14:56:50 -0800 Subject: [PATCH 08/65] got it all compiling --- packages/app-builder-lib/src/index.ts | 2 ++ packages/builder-util-runtime/src/index.ts | 2 +- packages/dmg-builder/src/dmg.ts | 4 ++-- .../src/SquirrelWindowsTarget.ts | 6 +++--- packages/electron-builder/package.json | 1 + packages/electron-builder/src/builder.ts | 9 +++++---- .../src/cli/install-app-deps.ts | 7 ++++--- packages/electron-builder/src/publish.ts | 8 ++++---- packages/electron-updater/src/MacUpdater.ts | 2 +- .../DifferentialDownloader.ts | 2 +- ...thEmbeddedBlockMapDifferentialDownloader.ts | 2 +- .../GenericDifferentialDownloader.ts | 2 +- .../downloadPlanBuilder.ts | 2 +- packages/electron-updater/src/main.ts | 18 +++++++++--------- .../src/providers/GenericProvider.ts | 3 ++- pnpm-lock.yaml | 7 +++++-- test/src/windows/winCodeSignTest.ts | 3 ++- tsconfig-base.json | 3 ++- 18 files changed, 47 insertions(+), 36 deletions(-) diff --git a/packages/app-builder-lib/src/index.ts b/packages/app-builder-lib/src/index.ts index f00cc345292..a94c084b1f9 100644 --- a/packages/app-builder-lib/src/index.ts +++ b/packages/app-builder-lib/src/index.ts @@ -87,6 +87,8 @@ export { determinePackageManagerEnv } from "./node-module-collector/index.js" export { execWine } from "./wine.js" export { Publish } from "./core.js" export { computeSafeArtifactNameIfNeeded } from "./platformPackager.js" +export { createBlockmap } from "./targets/differentialUpdateInfoBuilder.js" +export { getBinFromUrl } from "./binDownload.js" const expectedOptions = new Set(["publish", "targets", "mac", "win", "linux", "projectDir", "platformPackagerFactory", "config", "effectiveOptionComputed", "prepackaged"]) diff --git a/packages/builder-util-runtime/src/index.ts b/packages/builder-util-runtime/src/index.ts index 3ff2a6930f4..bd0e2cec2c5 100644 --- a/packages/builder-util-runtime/src/index.ts +++ b/packages/builder-util-runtime/src/index.ts @@ -1,4 +1,4 @@ -export { BlockMap } from "./blockMapApi.js" +export { BlockMap, BlockMapFile } from "./blockMapApi.js" export { CancellationError, CancellationToken } from "./CancellationToken.js" export { newError } from "./error.js" export { diff --git a/packages/dmg-builder/src/dmg.ts b/packages/dmg-builder/src/dmg.ts index 541fb3754ee..69ecb15365a 100644 --- a/packages/dmg-builder/src/dmg.ts +++ b/packages/dmg-builder/src/dmg.ts @@ -1,7 +1,7 @@ import { DmgOptions, Target } from "app-builder-lib" import { findIdentity, isSignAllowed } from "app-builder-lib" -import { MacPackager } from "app-builder-lib/out/macPackager.js" -import { createBlockmap } from "app-builder-lib/out/targets/differentialUpdateInfoBuilder.js" +import { MacPackager } from "app-builder-lib" +import { createBlockmap } from "app-builder-lib" import { Arch, exec, getArchSuffix, InvalidConfigurationError, isEmptyOrSpaces } from "builder-util" import { sanitizeFileName } from "builder-util" import { release as getOsRelease } from "os" diff --git a/packages/electron-builder-squirrel-windows/src/SquirrelWindowsTarget.ts b/packages/electron-builder-squirrel-windows/src/SquirrelWindowsTarget.ts index 9f39ebed79c..e6415e89b67 100644 --- a/packages/electron-builder-squirrel-windows/src/SquirrelWindowsTarget.ts +++ b/packages/electron-builder-squirrel-windows/src/SquirrelWindowsTarget.ts @@ -1,6 +1,6 @@ import { InvalidConfigurationError, log, isEmptyOrSpaces } from "builder-util" import { execWine } from "app-builder-lib" -import { getBinFromUrl } from "app-builder-lib/out/binDownload" +import { getBinFromUrl } from "app-builder-lib" import { sanitizeFileName } from "builder-util" import { Arch, getArchSuffix, SquirrelWindowsOptions, Target, WinPackager } from "app-builder-lib" import * as path from "path" @@ -9,8 +9,7 @@ import * as os from "os" import { Options as SquirrelOptions, createWindowsInstaller, convertVersion } from "electron-winstaller" export default class SquirrelWindowsTarget extends Target { - //tslint:disable-next-line:no-object-literal-type-assertion - readonly options: SquirrelWindowsOptions = { ...this.packager.platformSpecificBuildOptions, ...this.packager.config.squirrelWindows } as SquirrelWindowsOptions + readonly options: SquirrelWindowsOptions isAsyncSupported = false @@ -19,6 +18,7 @@ export default class SquirrelWindowsTarget extends Target { readonly outDir: string ) { super("squirrel") + this.options = { ...this.packager.platformSpecificBuildOptions, ...this.packager.config.squirrelWindows } } private async prepareSignedVendorDirectory(): Promise { diff --git a/packages/electron-builder/package.json b/packages/electron-builder/package.json index 50bfd70a181..4e8bd3df884 100644 --- a/packages/electron-builder/package.json +++ b/packages/electron-builder/package.json @@ -55,6 +55,7 @@ "app-builder-lib": "workspace:*", "builder-util": "workspace:*", "builder-util-runtime": "workspace:*", + "electron-publish": "workspace:*", "chalk": "^4.1.2", "ci-info": "^4.2.0", "dmg-builder": "workspace:*", diff --git a/packages/electron-builder/src/builder.ts b/packages/electron-builder/src/builder.ts index 295f480bc9b..3ef9d9992f1 100644 --- a/packages/electron-builder/src/builder.ts +++ b/packages/electron-builder/src/builder.ts @@ -2,10 +2,11 @@ import { build as _build, Configuration, DIR_TARGET, Packager, PackagerOptions, import { addValue, Arch, archFromString, deepAssign } from "builder-util" import * as chalk from "chalk" import { PublishOptions } from "electron-publish" -import * as yargs from "yargs" +import yargs, { Argv } from "yargs" +import { hideBin } from 'yargs/helpers'; -export function createYargs(): yargs.Argv { - return yargs.parserConfiguration({ +export function createYargs(): Argv { + return yargs(hideBin(process.argv)).parserConfiguration({ "camel-case-expansion": false, }) } @@ -215,7 +216,7 @@ export function build(rawOptions?: CliOptions): Promise> { /** * @private */ -export function configureBuildCommand(yargs: yargs.Argv): yargs.Argv { +export function configureBuildCommand(yargs: Argv): Argv { const publishGroup = "Publishing:" const buildGroup = "Building:" return yargs diff --git a/packages/electron-builder/src/cli/install-app-deps.ts b/packages/electron-builder/src/cli/install-app-deps.ts index dbe86e23970..ce6d914b5ce 100644 --- a/packages/electron-builder/src/cli/install-app-deps.ts +++ b/packages/electron-builder/src/cli/install-app-deps.ts @@ -10,10 +10,11 @@ import { getArchCliNames, log, orNullIfFileNotExist, printErrorAndExit } from "b import { readJson } from "fs-extra" import { Lazy } from "lazy-val" import * as path from "path" -import * as yargs from "yargs" +import { Argv } from "yargs" +import { createYargs } from "../builder.js" /** @internal */ -export function configureInstallAppDepsCommand(yargs: yargs.Argv): yargs.Argv { +export function configureInstallAppDepsCommand(yargs: Argv): Argv { // https://github.com/yargs/yargs/issues/760 // demandOption is required to be set return yargs @@ -70,7 +71,7 @@ export async function installAppDeps(args: any) { } function main() { - return installAppDeps(configureInstallAppDepsCommand(yargs).argv) + return installAppDeps(configureInstallAppDepsCommand(createYargs()).argv) } if (require.main === module) { diff --git a/packages/electron-builder/src/publish.ts b/packages/electron-builder/src/publish.ts index 5e3fce40657..a05ef9855e2 100644 --- a/packages/electron-builder/src/publish.ts +++ b/packages/electron-builder/src/publish.ts @@ -8,11 +8,11 @@ import { InvalidConfigurationError, archFromString, log, printErrorAndExit } fro import { PublishPolicy } from "electron-publish" import * as chalk from "chalk" import * as path from "path" -import * as yargs from "yargs" -import { BuildOptions, normalizeOptions } from "./builder.js" +import { Argv } from "yargs" +import { BuildOptions, createYargs, normalizeOptions } from "./builder.js" /** @internal */ -export function configurePublishCommand(yargs: yargs.Argv): yargs.Argv { +export function configurePublishCommand(yargs: Argv): Argv { // https://github.com/yargs/yargs/issues/760 // demandOption is required to be set return yargs @@ -121,7 +121,7 @@ async function publishPackageWithTasks( } function main() { - return publish(configurePublishCommand(yargs).argv as any) + return publish(configurePublishCommand(createYargs()).argv as any) } if (require.main === module) { diff --git a/packages/electron-updater/src/MacUpdater.ts b/packages/electron-updater/src/MacUpdater.ts index 640f9d3fb1c..6d324a61b62 100644 --- a/packages/electron-updater/src/MacUpdater.ts +++ b/packages/electron-updater/src/MacUpdater.ts @@ -5,7 +5,7 @@ import * as path from "path" import { createServer, IncomingMessage, Server, ServerResponse } from "http" import { AppAdapter } from "./AppAdapter.js" import { AppUpdater, DownloadUpdateOptions } from "./AppUpdater.js" -import { ResolvedUpdateFileInfo } from "./main.js" +import { ResolvedUpdateFileInfo } from "./types.js" import { UpdateDownloadedEvent } from "./types.js" import { findFile } from "./providers/Provider.js" import AutoUpdater = Electron.AutoUpdater diff --git a/packages/electron-updater/src/differentialDownloader/DifferentialDownloader.ts b/packages/electron-updater/src/differentialDownloader/DifferentialDownloader.ts index 2365a97ac80..a37eb254ded 100644 --- a/packages/electron-updater/src/differentialDownloader/DifferentialDownloader.ts +++ b/packages/electron-updater/src/differentialDownloader/DifferentialDownloader.ts @@ -1,5 +1,5 @@ import { BlockMapDataHolder, createHttpError, DigestTransform, HttpExecutor, configureRequestUrl, configureRequestOptions } from "builder-util-runtime" -import { BlockMap } from "builder-util-runtime/out/blockMapApi" +import { BlockMap } from "builder-util-runtime" import { close, open } from "fs-extra" import { createWriteStream } from "fs" import { OutgoingHttpHeaders, RequestOptions } from "http" diff --git a/packages/electron-updater/src/differentialDownloader/FileWithEmbeddedBlockMapDifferentialDownloader.ts b/packages/electron-updater/src/differentialDownloader/FileWithEmbeddedBlockMapDifferentialDownloader.ts index 39bed50475a..bbe2707f8b1 100644 --- a/packages/electron-updater/src/differentialDownloader/FileWithEmbeddedBlockMapDifferentialDownloader.ts +++ b/packages/electron-updater/src/differentialDownloader/FileWithEmbeddedBlockMapDifferentialDownloader.ts @@ -1,4 +1,4 @@ -import { BlockMap } from "builder-util-runtime/out/blockMapApi" +import { BlockMap } from "builder-util-runtime" import { close, fstat, open, read } from "fs-extra" import { DifferentialDownloader } from "./DifferentialDownloader.js" import { inflateRawSync } from "zlib" diff --git a/packages/electron-updater/src/differentialDownloader/GenericDifferentialDownloader.ts b/packages/electron-updater/src/differentialDownloader/GenericDifferentialDownloader.ts index a0501375cff..fc4f73c613a 100644 --- a/packages/electron-updater/src/differentialDownloader/GenericDifferentialDownloader.ts +++ b/packages/electron-updater/src/differentialDownloader/GenericDifferentialDownloader.ts @@ -1,4 +1,4 @@ -import { BlockMap } from "builder-util-runtime/out/blockMapApi" +import { BlockMap } from "builder-util-runtime" import { DifferentialDownloader } from "./DifferentialDownloader.js" export class GenericDifferentialDownloader extends DifferentialDownloader { diff --git a/packages/electron-updater/src/differentialDownloader/downloadPlanBuilder.ts b/packages/electron-updater/src/differentialDownloader/downloadPlanBuilder.ts index fbf900ccbc4..0f9f237b820 100644 --- a/packages/electron-updater/src/differentialDownloader/downloadPlanBuilder.ts +++ b/packages/electron-updater/src/differentialDownloader/downloadPlanBuilder.ts @@ -1,4 +1,4 @@ -import { BlockMap, BlockMapFile } from "builder-util-runtime/out/blockMapApi" +import { BlockMap, BlockMapFile } from "builder-util-runtime" import { Logger } from "../types.js" export enum OperationKind { diff --git a/packages/electron-updater/src/main.ts b/packages/electron-updater/src/main.ts index 6a8d4ce9fb5..a3107bb0442 100644 --- a/packages/electron-updater/src/main.ts +++ b/packages/electron-updater/src/main.ts @@ -4,16 +4,16 @@ import { AppUpdater } from "./AppUpdater.js" import { UpdateInfo } from "builder-util-runtime" export { BaseUpdater } from "./BaseUpdater.js" -export { AppUpdater, NoOpLogger } from "./AppUpdater" -export { Provider } from "./providers/Provider" -export { AppImageUpdater } from "./AppImageUpdater" -export { DebUpdater } from "./DebUpdater" -export { PacmanUpdater } from "./PacmanUpdater" -export { RpmUpdater } from "./RpmUpdater" -export { MacUpdater } from "./MacUpdater" -export { NsisUpdater } from "./NsisUpdater" +export { AppUpdater, NoOpLogger } from "./AppUpdater.js" +export { Provider } from "./providers/Provider.js" +export { AppImageUpdater } from "./AppImageUpdater.js" +export { DebUpdater } from "./DebUpdater.js" +export { PacmanUpdater } from "./PacmanUpdater.js" +export { RpmUpdater } from "./RpmUpdater.js" +export { MacUpdater } from "./MacUpdater.js" +export { NsisUpdater } from "./NsisUpdater.js" -export * from "./types" +export * from "./types.js" // autoUpdater to mimic electron bundled autoUpdater let _autoUpdater: any diff --git a/packages/electron-updater/src/providers/GenericProvider.ts b/packages/electron-updater/src/providers/GenericProvider.ts index a1604b8ba55..1e32ccba297 100644 --- a/packages/electron-updater/src/providers/GenericProvider.ts +++ b/packages/electron-updater/src/providers/GenericProvider.ts @@ -5,7 +5,7 @@ import { getChannelFilename, newBaseUrl, newUrlFromBase } from "../util.js" import { parseUpdateInfo, Provider, ProviderRuntimeOptions, resolveFiles } from "./Provider.js" export class GenericProvider extends Provider { - private readonly baseUrl = newBaseUrl(this.configuration.url) + private readonly baseUrl: URL constructor( private readonly configuration: GenericServerOptions, @@ -13,6 +13,7 @@ export class GenericProvider extends Provider { runtimeOptions: ProviderRuntimeOptions ) { super(runtimeOptions) + this.baseUrl = newBaseUrl(this.configuration.url) } private get channel(): string { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 49b20e6992b..ef01cb32d77 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -436,6 +436,9 @@ importers: dmg-builder: specifier: workspace:* version: link:../dmg-builder + electron-publish: + specifier: workspace:* + version: link:../electron-publish fs-extra: specifier: ^10.1.0 version: 10.1.0 @@ -692,7 +695,7 @@ importers: version: 1.6.3 vitest: specifier: ^3.0.4 - version: 3.1.1(@types/node@22.13.17)(@vitest/ui@3.0.4(vitest@3.2.3))(jiti@2.4.2)(sass@1.86.1)(yaml@2.7.1) + version: 3.1.1(@types/node@22.13.17)(@vitest/ui@3.0.4)(jiti@2.4.2)(sass@1.86.1)(yaml@2.7.1) vitest-mock-commonjs: specifier: ^1.0.2 version: 1.0.2 @@ -10452,7 +10455,7 @@ snapshots: vitest-mock-commonjs@1.0.2: {} - vitest@3.1.1(@types/node@22.13.17)(@vitest/ui@3.0.4(vitest@3.2.3))(jiti@2.4.2)(sass@1.86.1)(yaml@2.7.1): + vitest@3.1.1(@types/node@22.13.17)(@vitest/ui@3.0.4)(jiti@2.4.2)(sass@1.86.1)(yaml@2.7.1): dependencies: '@vitest/expect': 3.1.1 '@vitest/mocker': 3.1.1(vite@6.2.4(@types/node@22.13.17)(jiti@2.4.2)(sass@1.86.1)(yaml@2.7.1)) diff --git a/test/src/windows/winCodeSignTest.ts b/test/src/windows/winCodeSignTest.ts index 9a2622a2ce4..ec4a40d5274 100644 --- a/test/src/windows/winCodeSignTest.ts +++ b/test/src/windows/winCodeSignTest.ts @@ -64,7 +64,7 @@ test("certificateFile/password - sign as async/await", ({ expect }) => return Promise.resolve() })) test("certificateFile/password - sign as Promise", ({ expect }) => testCustomSign(expect, () => Promise.resolve())) -test("certificateFile/password - sign as function", async ({ expect }) => testCustomSign(expect, (await import("../helpers/customWindowsSign")).default)) +test("certificateFile/password - sign as function", async ({ expect }) => testCustomSign(expect, (await import("../helpers/customWindowsSign.js")).default)) test("certificateFile/password - sign as path", ({ expect }) => testCustomSign(expect, path.join(__dirname, "../helpers/customWindowsSign.mjs"))) test("custom sign if no code sign info", ({ expect }) => { @@ -81,6 +81,7 @@ test("custom sign if no code sign info", ({ expect }) => { signtoolOptions: { sign: async () => { called = true + return Promise.resolve() }, }, }, diff --git a/tsconfig-base.json b/tsconfig-base.json index 9285427129d..a0c2bc0f0b2 100644 --- a/tsconfig-base.json +++ b/tsconfig-base.json @@ -1,8 +1,9 @@ { "extends": "@tsconfig/node22/tsconfig.json", "compilerOptions": { + "lib": ["es2024", "WebWorker", "ESNext.Array", "ESNext.Collection", "ESNext.Iterator"], + "forceConsistentCasingInFileNames": true, - "skipLibCheck": true, "noUnusedLocals": true, "noFallthroughCasesInSwitch": true, From fb7cff66841c918d9675c6886b8832f2f8012b18 Mon Sep 17 00:00:00 2001 From: Mike Maietta Date: Wed, 10 Dec 2025 15:19:46 -0800 Subject: [PATCH 09/65] esm complete on tests as well? --- packages/app-builder-lib/src/configuration.ts | 2 +- packages/app-builder-lib/src/index.ts | 41 +++++++++++++++---- .../src/publish/PublishManager.ts | 2 +- .../app-builder-lib/src/util/config/config.ts | 2 +- packages/builder-util/src/util.ts | 2 +- packages/dmg-builder/src/dmg.ts | 2 + packages/electron-builder/src/index.ts | 2 +- packages/electron-updater/src/main.ts | 15 ++++++- test/src/ArtifactPublisherTest.ts | 2 +- test/src/BuildTest.ts | 8 ++-- test/src/HoistTest.ts | 2 +- test/src/HoistedNodeModuleTest.ts | 4 +- test/src/RepoSlugTest.ts | 2 +- test/src/binDownloadTest.ts | 2 +- test/src/configurationValidationTest.ts | 4 +- test/src/extraMetadataTest.ts | 6 +-- test/src/globTest.ts | 4 +- test/src/helpers/CheckingPackager.ts | 4 +- test/src/helpers/TestAppAdapter.ts | 2 +- test/src/helpers/downloadElectron.ts | 2 +- test/src/helpers/packTester.ts | 23 +++-------- test/src/helpers/updaterTestUtil.ts | 2 +- test/src/helpers/verifySmartUnpack.ts | 2 +- test/src/helpers/winHelper.ts | 2 +- test/src/httpExecutorTest.ts | 2 +- test/src/ignoreTest.ts | 2 +- test/src/mac/dmgTest.ts | 2 +- test/src/mac/macCodeSignTest.ts | 2 +- test/src/mac/macIconTest.ts | 2 +- test/src/macroExpanderTest.ts | 2 +- test/src/packageManagerTest.ts | 2 +- test/src/rebuilderTest.ts | 4 +- test/src/updater/blackboxUpdateTest.ts | 4 +- test/src/updater/differentialUpdateTest.ts | 2 +- test/src/updater/macUpdaterTest.ts | 2 +- test/src/updater/nsisUpdaterTest.ts | 4 +- test/src/urlUtilTest.ts | 6 +-- tsconfig-base.json | 2 +- 38 files changed, 101 insertions(+), 76 deletions(-) diff --git a/packages/app-builder-lib/src/configuration.ts b/packages/app-builder-lib/src/configuration.ts index c11c6f4d438..ad7c9dc6560 100644 --- a/packages/app-builder-lib/src/configuration.ts +++ b/packages/app-builder-lib/src/configuration.ts @@ -362,7 +362,7 @@ Configuration in the same way as `afterPack` (see above). readonly beforeBuild?: Hook | string | null /** * The function (or path to file or module id) to be run when staging the electron artifact environment. - * Returns the path to custom Electron build (e.g. `~/electron/out/R`) or folder of electron zips. + * Returns the path to custom Electron build (e.g. `~/electron/src/R`) or folder of electron zips. * * Zip files must follow the pattern `electron-v${version}-${platformName}-${arch}.zip`, otherwise it will be assumed to be an unpacked Electron app directory */ diff --git a/packages/app-builder-lib/src/index.ts b/packages/app-builder-lib/src/index.ts index a94c084b1f9..fd32f26a228 100644 --- a/packages/app-builder-lib/src/index.ts +++ b/packages/app-builder-lib/src/index.ts @@ -52,6 +52,7 @@ export { CommonNsisOptions, CustomNsisBinary, NsisOptions, NsisWebOptions, Porta export { CancellationToken, ProgressInfo } from "builder-util-runtime" export { PublishOptions, UploadTask } from "electron-publish" +export { findIdentity, isSignAllowed } from "./codeSign/macCodeSign.js" export { WindowsSignOptions } from "./codeSign/windowsCodeSign.js" export { CertificateFromStoreInfo, @@ -66,29 +67,51 @@ export { LinuxPackager } from "./linuxPackager.js" export { CustomMacSign, CustomMacSignOptions, MacPackager } from "./macPackager.js" export { PlatformPackager } from "./platformPackager.js" export { PublishManager } from "./publish/PublishManager.js" +export { getLicenseAssets, getLicenseFiles } from "./util/license.js" export { WinPackager } from "./winPackager.js" -export { findIdentity, isSignAllowed } from "./codeSign/macCodeSign.js" -export { getLicenseFiles, getLicenseAssets } from "./util/license.js" -export { resolveFunction } from "./util/resolve.js" -export { executeAppBuilderAsJson } from "./util/appBuilder.js" +export { getSignVendorPath } from "./codeSign/windowsSignToolManager.js" export { getElectronVersion } from "./electron/electronVersion.js" +export { executeAppBuilderAsJson } from "./util/appBuilder.js" export { loadEnv } from "./util/config/load.js" +export { resolveFunction } from "./util/resolve.js" export { nodeGypRebuild } from "./util/yarn.js" -export { getSignVendorPath } from "./codeSign/windowsSignToolManager.js" -export { computeDefaultAppDirectory, getConfig } from "./util/config/config.js" +export { determinePackageManagerEnv } from "./node-module-collector/index.js" +export { computeDefaultAppDirectory, getConfig, doMergeConfigs } from "./util/config/config.js" export { orNullIfFileNotExist } from "./util/config/load.js" export { createLazyProductionDeps } from "./util/packageDependencies.js" export { installOrRebuild } from "./util/yarn.js" export { PACKAGE_VERSION } from "./version.js" -export { determinePackageManagerEnv } from "./node-module-collector/index.js" -export { execWine } from "./wine.js" +export { getBinFromUrl } from "./binDownload.js" export { Publish } from "./core.js" export { computeSafeArtifactNameIfNeeded } from "./platformPackager.js" +export { createPublisher } from "./publish/PublishManager.js" export { createBlockmap } from "./targets/differentialUpdateInfoBuilder.js" -export { getBinFromUrl } from "./binDownload.js" +export { execWine } from "./wine.js" + +export { validateConfiguration } from "./util/config/config.js" +export { PM } from "./node-module-collector/packageManager.js" +export { readAsarJson, readAsar, AsarFilesystem } from "./asar/asar.js" + +export { computeArchToTargetNamesMap } from "./targets/targetFactory.js" + +export { expandMacro } from "./util/macroExpander.js" +export { hoist, HoisterTree, HoisterResult, HoisterDependencyKind } from "./node-module-collector/hoist.js" +export { getLinuxToolsPath } from "./targets/tools.js" +export { parsePlistFile, PlistObject } from "./util/plist.js" +export { AsarIntegrity } from "./asar/integrity.js" +export { getCollectorByPackageManager } from "./node-module-collector/index.js" +export { installDependencies } from "./util/yarn.js" +export { detectPackageManager } from "./node-module-collector/packageManager.js" + +export { getRepositoryInfo } from "./util/repositoryInfo.js" +export { Identity } from "./codeSign/macCodeSign.js" +export { DoPackOptions } from "./platformPackager.js" + +export { createKeychain } from "./codeSign/macCodeSign.js" + const expectedOptions = new Set(["publish", "targets", "mac", "win", "linux", "projectDir", "platformPackagerFactory", "config", "effectiveOptionComputed", "prepackaged"]) diff --git a/packages/app-builder-lib/src/publish/PublishManager.ts b/packages/app-builder-lib/src/publish/PublishManager.ts index 9da6be6341b..8e57f33e76b 100644 --- a/packages/app-builder-lib/src/publish/PublishManager.ts +++ b/packages/app-builder-lib/src/publish/PublishManager.ts @@ -596,7 +596,7 @@ async function getResolvedPublishConfig( if (isGithub) { if ((options as GithubOptions).token != null && !(options as GithubOptions).private) { - log.warn('"token" specified in the github publish options. It should be used only for [setFeedURL](module:electron-updater/out/AppUpdater.AppUpdater+setFeedURL).') + log.warn('"token" specified in the github publish options. It should be used only for [setFeedURL](module:electron-updater/src/AppUpdater.AppUpdater+setFeedURL).') } //tslint:disable-next-line:no-object-literal-type-assertion return { owner, repo: project, ...options } as GithubOptions diff --git a/packages/app-builder-lib/src/util/config/config.ts b/packages/app-builder-lib/src/util/config/config.ts index 4cf14807e94..31d7db3fe06 100644 --- a/packages/app-builder-lib/src/util/config/config.ts +++ b/packages/app-builder-lib/src/util/config/config.ts @@ -57,7 +57,7 @@ export async function getConfig( if ((dependencies != null && "react-scripts" in dependencies) || (devDependencies != null && "react-scripts" in devDependencies)) { config.extends = "react-cra" } else if (devDependencies != null && "electron-webpack" in devDependencies) { - let file = "electron-webpack/out/electron-builder.js" + let file = "electron-webpack/src/electron-builder.js" try { file = require.resolve(file) } catch (_ignore) { diff --git a/packages/builder-util/src/util.ts b/packages/builder-util/src/util.ts index bf55d7b3219..475666e9fa5 100644 --- a/packages/builder-util/src/util.ts +++ b/packages/builder-util/src/util.ts @@ -15,7 +15,7 @@ if (process.env.JEST_WORKER_ID == null) { installSourceMap() } -export { getCompleteExtname, sanitizeFileName } from "./filename" +export { getCompleteExtname, sanitizeFileName } from "./filename.js" export { safeStringifyJson, retry } from "builder-util-runtime" export { TmpDir } from "temp-file" export * from "./arch.js" diff --git a/packages/dmg-builder/src/dmg.ts b/packages/dmg-builder/src/dmg.ts index 69ecb15365a..215b5a09d82 100644 --- a/packages/dmg-builder/src/dmg.ts +++ b/packages/dmg-builder/src/dmg.ts @@ -10,6 +10,8 @@ import { addLicenseToDmg } from "./dmgLicense.js" import { computeBackground, customizeDmg } from "./dmgUtil.js" import { hdiUtil } from "./hdiuil.js" +export { attachAndExecute, getDmgTemplatePath } from "./dmgUtil.js" + export interface DmgBuildConfig { title: string icon?: string | null diff --git a/packages/electron-builder/src/index.ts b/packages/electron-builder/src/index.ts index f7812eaa48e..8dac3a65a69 100644 --- a/packages/electron-builder/src/index.ts +++ b/packages/electron-builder/src/index.ts @@ -1,5 +1,5 @@ export { getArchSuffix, Arch, archFromString, log } from "builder-util" -export { build, CliOptions, createTargets } from "./builder.js" +export { build, CliOptions, configureBuildCommand, createYargs, normalizeOptions, coerceTypes, createTargets } from "./builder.js" export { publish, publishArtifactsWithOptions } from "./publish.js" export { TargetConfiguration, diff --git a/packages/electron-updater/src/main.ts b/packages/electron-updater/src/main.ts index a3107bb0442..a398a8a0c39 100644 --- a/packages/electron-updater/src/main.ts +++ b/packages/electron-updater/src/main.ts @@ -1,11 +1,15 @@ import { existsSync, readFileSync } from "fs-extra" import * as path from "path" import { AppUpdater } from "./AppUpdater.js" + +export { ElectronAppAdapter } from "./ElectronAppAdapter.js" + import { UpdateInfo } from "builder-util-runtime" export { BaseUpdater } from "./BaseUpdater.js" -export { AppUpdater, NoOpLogger } from "./AppUpdater.js" -export { Provider } from "./providers/Provider.js" +export { AppUpdater, NoOpLogger, TestOnlyUpdaterOptions } from "./AppUpdater.js" + + export { AppImageUpdater } from "./AppImageUpdater.js" export { DebUpdater } from "./DebUpdater.js" export { PacmanUpdater } from "./PacmanUpdater.js" @@ -13,7 +17,14 @@ export { RpmUpdater } from "./RpmUpdater.js" export { MacUpdater } from "./MacUpdater.js" export { NsisUpdater } from "./NsisUpdater.js" + +export { Provider } from "./providers/Provider.js" +export { GitHubProvider } from "./providers/GitHubProvider.js" +export { GitLabProvider } from "./providers/GitLabProvider.js" + + export * from "./types.js" +export * as utils from "./util.js" // autoUpdater to mimic electron bundled autoUpdater let _autoUpdater: any diff --git a/test/src/ArtifactPublisherTest.ts b/test/src/ArtifactPublisherTest.ts index c6be615c7c6..0d87fc23f45 100644 --- a/test/src/ArtifactPublisherTest.ts +++ b/test/src/ArtifactPublisherTest.ts @@ -1,5 +1,5 @@ import { Platform } from "app-builder-lib" -import { createPublisher } from "app-builder-lib/out/publish/PublishManager" +import { createPublisher } from "app-builder-lib" import { Arch } from "builder-util" import { BitbucketOptions, CancellationToken, HttpError, KeygenOptions, S3Options, SpacesOptions } from "builder-util-runtime" import { publishArtifactsWithOptions } from "electron-builder" diff --git a/test/src/BuildTest.ts b/test/src/BuildTest.ts index 35663b1572b..80706812cb8 100644 --- a/test/src/BuildTest.ts +++ b/test/src/BuildTest.ts @@ -1,18 +1,18 @@ import { checkBuildRequestOptions } from "app-builder-lib" -import { doMergeConfigs } from "app-builder-lib/out/util/config/config" +import { doMergeConfigs } from "app-builder-lib" import { Arch, createTargets, DIR_TARGET, Platform } from "electron-builder" -import { createYargs } from "electron-builder/out/builder" +import { createYargs } from "electron-builder" import { promises as fs } from "fs" import { outputFile, outputJson } from "fs-extra" import * as path from "path" import { app, appTwo, appTwoThrows, assertPack, getFixtureDir, linuxDirTarget, modifyPackageJson, packageJson, toSystemIndependentPath } from "./helpers/packTester.js" import { ELECTRON_VERSION } from "./helpers/testConfig.js" import { verifySmartUnpack } from "./helpers/verifySmartUnpack.js" -import { PM } from "app-builder-lib/src/node-module-collector/packageManager" +import { PM } from "app-builder-lib" test.ifLinux("cli", ({ expect }) => { // because these methods are internal - const { configureBuildCommand, normalizeOptions } = require("electron-builder/out/builder") + const { configureBuildCommand, normalizeOptions } = require("electron-builder/out/builder.js") const yargs = createYargs() configureBuildCommand(yargs) diff --git a/test/src/HoistTest.ts b/test/src/HoistTest.ts index 9b3bdfdb895..f31f714f3f2 100644 --- a/test/src/HoistTest.ts +++ b/test/src/HoistTest.ts @@ -1,5 +1,5 @@ // copy from https://github.com/yarnpkg/berry/blob/master/packages/yarnpkg-nm/tests/hoist.test.ts -import { hoist, HoisterTree, HoisterResult, HoisterDependencyKind } from "app-builder-lib/out/node-module-collector/hoist" +import { hoist, HoisterTree, HoisterResult, HoisterDependencyKind } from "app-builder-lib" import { expect } from "vitest" const toTree = (obj: any, key: string = `.`, nodes = new Map()): HoisterTree => { diff --git a/test/src/HoistedNodeModuleTest.ts b/test/src/HoistedNodeModuleTest.ts index 688e6468a8b..6173b8e195b 100644 --- a/test/src/HoistedNodeModuleTest.ts +++ b/test/src/HoistedNodeModuleTest.ts @@ -1,5 +1,5 @@ -import { PM } from "app-builder-lib/out/node-module-collector" -import { spawn } from "builder-util/out/util" +import { PM } from "app-builder-lib" +import { spawn } from "builder-util" import { Arch, DIR_TARGET, Platform } from "electron-builder" import { copySync, mkdirSync, outputFile, readJsonSync, rmSync, symlink, writeJsonSync } from "fs-extra" import * as path from "path" diff --git a/test/src/RepoSlugTest.ts b/test/src/RepoSlugTest.ts index 2bc245fd339..cac56766bfd 100644 --- a/test/src/RepoSlugTest.ts +++ b/test/src/RepoSlugTest.ts @@ -1,4 +1,4 @@ -import { getRepositoryInfo } from "app-builder-lib/out/util/repositoryInfo" +import { getRepositoryInfo } from "app-builder-lib" import { ExpectStatic } from "vitest" function checkInfo(expect: ExpectStatic, info: any) { diff --git a/test/src/binDownloadTest.ts b/test/src/binDownloadTest.ts index 3ed5706c5c7..d194ffa132a 100644 --- a/test/src/binDownloadTest.ts +++ b/test/src/binDownloadTest.ts @@ -1,4 +1,4 @@ -import { getBinFromUrl } from "app-builder-lib/out/binDownload" +import { getBinFromUrl } from "app-builder-lib" test("download binary from Github", async ({ expect }) => { const bin = await getBinFromUrl( diff --git a/test/src/configurationValidationTest.ts b/test/src/configurationValidationTest.ts index 4165c402c86..e7ae98a58ba 100644 --- a/test/src/configurationValidationTest.ts +++ b/test/src/configurationValidationTest.ts @@ -1,7 +1,7 @@ -import { validateConfiguration } from "app-builder-lib/out/util/config/config" +import { validateConfiguration } from "app-builder-lib" import { Arch, DebugLogger } from "builder-util" import { Configuration, Platform } from "electron-builder" -import { CliOptions, configureBuildCommand, createYargs, normalizeOptions } from "electron-builder/out/builder" +import { CliOptions, configureBuildCommand, createYargs, normalizeOptions } from "electron-builder" import { app, appThrows, linuxDirTarget } from "./helpers/packTester.js" test.ifDevOrLinuxCi("validation", ({ expect }) => diff --git a/test/src/extraMetadataTest.ts b/test/src/extraMetadataTest.ts index 68b3c7ca0d1..aadd4718ec1 100644 --- a/test/src/extraMetadataTest.ts +++ b/test/src/extraMetadataTest.ts @@ -1,6 +1,6 @@ -import { readAsarJson } from "app-builder-lib/out/asar/asar" +import { readAsarJson } from "app-builder-lib" import { Platform } from "electron-builder" -import { coerceTypes } from "electron-builder/out/builder" +import { coerceTypes } from "electron-builder" import { readJson } from "fs-extra" import * as path from "path" import { assertThat } from "./helpers/fileAssert.js" @@ -56,7 +56,7 @@ test("extra metadata (no asar)", ({ expect }) => createExtraMetadataTest(expect, test("cli", ({ expect }) => { // because these methods are internal - const { configureBuildCommand, normalizeOptions } = require("electron-builder/out/builder") + const { configureBuildCommand, normalizeOptions } = require("electron-builder/out/builder.js") const yargs = require("yargs") .strict() .fail((message: string, error: Error | null) => { diff --git a/test/src/globTest.ts b/test/src/globTest.ts index 49161445cfa..c823aa5298b 100644 --- a/test/src/globTest.ts +++ b/test/src/globTest.ts @@ -1,6 +1,6 @@ import { Platform } from "app-builder-lib" -import { readAsar } from "app-builder-lib/out/asar/asar" -import { PM } from "app-builder-lib/out/node-module-collector/packageManager" +import { readAsar } from "app-builder-lib" +import { PM } from "app-builder-lib" import { outputFile } from "fs-extra" import * as fs from "fs/promises" import * as path from "path" diff --git a/test/src/helpers/CheckingPackager.ts b/test/src/helpers/CheckingPackager.ts index 2852e2ab842..1e1e14f922e 100644 --- a/test/src/helpers/CheckingPackager.ts +++ b/test/src/helpers/CheckingPackager.ts @@ -1,6 +1,6 @@ import { SignOptions as MacSignOptions } from "@electron/osx-sign/dist/cjs/types" -import { Identity } from "app-builder-lib/out/codeSign/macCodeSign" -import { DoPackOptions } from "app-builder-lib/out/platformPackager" +import { Identity } from "app-builder-lib" +import { DoPackOptions } from "app-builder-lib" import { WinPackager, getArchSuffix, MacPackager } from "app-builder-lib" import { AsyncTaskManager } from "builder-util" import { DmgTarget } from "dmg-builder" diff --git a/test/src/helpers/TestAppAdapter.ts b/test/src/helpers/TestAppAdapter.ts index 25947245605..0e3f3a6880e 100644 --- a/test/src/helpers/TestAppAdapter.ts +++ b/test/src/helpers/TestAppAdapter.ts @@ -1,4 +1,4 @@ -import { ElectronAppAdapter } from "electron-updater/out/ElectronAppAdapter" +import { ElectronAppAdapter } from "electron-updater" // do not implement AppAdapter directly, test that our ElectronAppAdapter implementation is correct export class TestAppAdapter extends ElectronAppAdapter { diff --git a/test/src/helpers/downloadElectron.ts b/test/src/helpers/downloadElectron.ts index ff50c547a43..93b813c8fa1 100644 --- a/test/src/helpers/downloadElectron.ts +++ b/test/src/helpers/downloadElectron.ts @@ -47,7 +47,7 @@ export function downloadAllRequiredElectronVersions(): Promise { ? ["x64"] : platform === "win32" ? ["ia32", "x64"] - : require(`${path.join(__dirname, "../../..")}/packages/builder-util/out/util`).getArchCliNames() + : require(`${path.join(__dirname, "../../..")}/packages/builder-util/out/util.js`).getArchCliNames() for (const arch of archs) { if (gte(ELECTRON_VERSION, "19.0.0") && platform === "linux" && arch === "ia32") { // Chromium dropped support for ia32 linux binaries in 102.0.4999.0 diff --git a/test/src/helpers/packTester.ts b/test/src/helpers/packTester.ts index 69b6461454a..1527ab188e9 100644 --- a/test/src/helpers/packTester.ts +++ b/test/src/helpers/packTester.ts @@ -1,35 +1,24 @@ -import { PublishManager } from "app-builder-lib" -import { readAsar } from "app-builder-lib/out/asar/asar" -import { computeArchToTargetNamesMap } from "app-builder-lib/out/targets/targetFactory" -import { getLinuxToolsPath } from "app-builder-lib/out/targets/tools" -import { parsePlistFile, PlistObject } from "app-builder-lib/out/util/plist" -import { AsarIntegrity } from "app-builder-lib/out/asar/integrity" +import AdmZip from "adm-zip" +import { AsarIntegrity, computeArchToTargetNamesMap, computeDefaultAppDirectory, createLazyProductionDeps, detectPackageManager, getCollectorByPackageManager, getLinuxToolsPath, installDependencies, parsePlistFile, PlistObject, PM, PublishManager, readAsar } from "app-builder-lib" import { addValue, copyDir, deepAssign, exec, executeFinally, exists, FileCopier, log, USE_HARD_LINKS, walk } from "builder-util" import { CancellationToken, UpdateFileInfo } from "builder-util-runtime" +import { execSync } from "child_process" import { Arch, ArtifactCreated, Configuration, DIR_TARGET, getArchSuffix, MacOsTargetName, Packager, PackagerOptions, Platform, Target } from "electron-builder" -import { convertVersion } from "electron-winstaller" import { PublishPolicy } from "electron-publish" +import { convertVersion } from "electron-winstaller" import { copyFile, emptyDir, mkdir, writeJson } from "fs-extra" import * as fs from "fs/promises" import { load } from "js-yaml" import * as path from "path" import pathSorter from "path-sort" import { NtExecutable, NtExecutableResource } from "resedit" +import sanitizeFileName from "sanitize-filename" import { TmpDir } from "temp-file" -import { getCollectorByPackageManager, PM } from "app-builder-lib/out/node-module-collector" import { promisify } from "util" +import type { ExpectStatic } from "vitest" import { CSC_LINK, WIN_CSC_LINK } from "./codeSignData.js" import { assertThat } from "./fileAssert.js" -import AdmZip from "adm-zip" -// @ts-ignore -import sanitizeFileName from "sanitize-filename" -import type { ExpectStatic } from "vitest" -import { computeDefaultAppDirectory } from "app-builder-lib/out/util/config/config" -import { installDependencies } from "app-builder-lib/out/util/yarn" import { ELECTRON_VERSION } from "./testConfig.js" -import { createLazyProductionDeps } from "app-builder-lib/out/util/packageDependencies" -import { execSync } from "child_process" -import { detectPackageManager } from "app-builder-lib/out/node-module-collector/packageManager" const PACKAGE_MANAGER_VERSION_MAP = { [PM.NPM]: { cli: "npm", version: "9.8.1" }, diff --git a/test/src/helpers/updaterTestUtil.ts b/test/src/helpers/updaterTestUtil.ts index 90efb4a6331..2c4220f3fa2 100644 --- a/test/src/helpers/updaterTestUtil.ts +++ b/test/src/helpers/updaterTestUtil.ts @@ -1,7 +1,7 @@ import { NodeHttpExecutor, serializeToYaml, TmpDir } from "builder-util" import { AllPublishOptions, DownloadOptions } from "builder-util-runtime" import { AppUpdater, MacUpdater, NsisUpdater } from "electron-updater" -import { NoOpLogger, TestOnlyUpdaterOptions } from "electron-updater/out/AppUpdater" +import { NoOpLogger, TestOnlyUpdaterOptions } from "electron-updater" import { outputFile, writeFile } from "fs-extra" import * as path from "path" import { assertThat } from "./fileAssert.js" diff --git a/test/src/helpers/verifySmartUnpack.ts b/test/src/helpers/verifySmartUnpack.ts index 554a70a05a1..4d4b625e26f 100644 --- a/test/src/helpers/verifySmartUnpack.ts +++ b/test/src/helpers/verifySmartUnpack.ts @@ -1,4 +1,4 @@ -import { AsarFilesystem, readAsar } from "app-builder-lib/out/asar/asar" +import { AsarFilesystem, readAsar } from "app-builder-lib" import { walk } from "builder-util" import { readFileSync } from "fs" import * as path from "path" diff --git a/test/src/helpers/winHelper.ts b/test/src/helpers/winHelper.ts index c6d7a1f8a94..ddb5bf1193b 100644 --- a/test/src/helpers/winHelper.ts +++ b/test/src/helpers/winHelper.ts @@ -1,4 +1,4 @@ -import { readAsarJson } from "app-builder-lib/out/asar/asar" +import { readAsarJson } from "app-builder-lib" import { walk } from "builder-util" import { Arch, Platform } from "electron-builder" import { outputFile } from "fs-extra" diff --git a/test/src/httpExecutorTest.ts b/test/src/httpExecutorTest.ts index 40614f82877..4ce1875d7d8 100644 --- a/test/src/httpExecutorTest.ts +++ b/test/src/httpExecutorTest.ts @@ -1,5 +1,5 @@ import { expect, test, describe } from "vitest" -import { HttpExecutor } from "builder-util-runtime/src/httpExecutor" +import { HttpExecutor } from "builder-util-runtime" import { RequestOptions } from "http" describe("HttpExecutor.prepareRedirectUrlOptions", () => { diff --git a/test/src/ignoreTest.ts b/test/src/ignoreTest.ts index c3f2420f914..be999f2a484 100644 --- a/test/src/ignoreTest.ts +++ b/test/src/ignoreTest.ts @@ -3,7 +3,7 @@ import { outputFile } from "fs-extra" import * as path from "path" import { assertThat } from "./helpers/fileAssert.js" import { app, checkDirContents, linuxDirTarget, modifyPackageJson } from "./helpers/packTester.js" -import { PM } from "app-builder-lib/out/node-module-collector/packageManager" +import { PM } from "app-builder-lib" const currentProcessTarget = Platform.LINUX.createTarget(DIR_TARGET, archFromString(process.arch)) diff --git a/test/src/mac/dmgTest.ts b/test/src/mac/dmgTest.ts index ba790c5d2b6..85ebffaa73c 100644 --- a/test/src/mac/dmgTest.ts +++ b/test/src/mac/dmgTest.ts @@ -5,7 +5,7 @@ import * as fs from "fs/promises" import * as path from "path" import { assertThat } from "../helpers/fileAssert" import { app, assertPack, copyTestAsset } from "../helpers/packTester" -import { attachAndExecute, getDmgTemplatePath } from "dmg-builder/out/dmgUtil" +import { attachAndExecute, getDmgTemplatePath } from "dmg-builder" const dmgTarget = Platform.MAC.createTarget("dmg", Arch.x64) const defaultTarget = Platform.MAC.createTarget(undefined, Arch.x64) diff --git a/test/src/mac/macCodeSignTest.ts b/test/src/mac/macCodeSignTest.ts index 8e59701c9f4..29483f4d50d 100644 --- a/test/src/mac/macCodeSignTest.ts +++ b/test/src/mac/macCodeSignTest.ts @@ -1,4 +1,4 @@ -import { createKeychain } from "app-builder-lib/out/codeSign/macCodeSign" +import { createKeychain } from "app-builder-lib" import { removePassword, TmpDir } from "builder-util" import { CSC_LINK } from "../helpers/codeSignData" import { afterEach } from "vitest" diff --git a/test/src/mac/macIconTest.ts b/test/src/mac/macIconTest.ts index 18473bd5b7d..cf810df08c1 100644 --- a/test/src/mac/macIconTest.ts +++ b/test/src/mac/macIconTest.ts @@ -1,4 +1,4 @@ -import { parsePlistFile, PlistObject } from "app-builder-lib/out/util/plist" +import { parsePlistFile, PlistObject } from "app-builder-lib" import { Arch, DIR_TARGET, Platform } from "electron-builder" import * as fs from "fs/promises" import * as path from "path" diff --git a/test/src/macroExpanderTest.ts b/test/src/macroExpanderTest.ts index 6cdb81fc3a4..978c361b17b 100644 --- a/test/src/macroExpanderTest.ts +++ b/test/src/macroExpanderTest.ts @@ -1,4 +1,4 @@ -import { expandMacro } from "app-builder-lib/out/util/macroExpander" +import { expandMacro } from "app-builder-lib" const appInfoStub: any = { sanitizedProductName: "1", diff --git a/test/src/packageManagerTest.ts b/test/src/packageManagerTest.ts index 8171a6f196d..d630b28da6c 100644 --- a/test/src/packageManagerTest.ts +++ b/test/src/packageManagerTest.ts @@ -1,5 +1,5 @@ import { Platform } from "app-builder-lib" -import { PM } from "app-builder-lib/src/node-module-collector" +import { PM } from "app-builder-lib" import { execSync } from "child_process" import { copyFile, outputFile, rm, writeFile } from "fs-extra" import * as path from "path" diff --git a/test/src/rebuilderTest.ts b/test/src/rebuilderTest.ts index fad00e97f76..02f020c492c 100644 --- a/test/src/rebuilderTest.ts +++ b/test/src/rebuilderTest.ts @@ -1,6 +1,6 @@ import { Configuration, Platform } from "app-builder-lib" -import { PM } from "app-builder-lib/out/node-module-collector" -import { exists } from "builder-util/src/util" +import { PM } from "app-builder-lib" +import { exists } from "builder-util" import path from "path" import { assertPack, linuxDirTarget, modifyPackageJson } from "./helpers/packTester.js" import { ELECTRON_VERSION } from "./helpers/testConfig.js" diff --git a/test/src/updater/blackboxUpdateTest.ts b/test/src/updater/blackboxUpdateTest.ts index 81a78de1079..a597fd13d41 100644 --- a/test/src/updater/blackboxUpdateTest.ts +++ b/test/src/updater/blackboxUpdateTest.ts @@ -1,6 +1,6 @@ -import { getBinFromUrl } from "app-builder-lib/out/binDownload" +import { getBinFromUrl } from "app-builder-lib" import { GenericServerOptions, Nullish } from "builder-util-runtime" -import { archFromString, doSpawn, getArchSuffix, isEmptyOrSpaces, log, TmpDir } from "builder-util/out/util" +import { archFromString, doSpawn, getArchSuffix, isEmptyOrSpaces, log, TmpDir } from "builder-util" import { Arch, Configuration, Platform } from "electron-builder" import fs, { existsSync, outputFile } from "fs-extra" import path from "path" diff --git a/test/src/updater/differentialUpdateTest.ts b/test/src/updater/differentialUpdateTest.ts index 9083ab9ea6f..fdb0e338eee 100644 --- a/test/src/updater/differentialUpdateTest.ts +++ b/test/src/updater/differentialUpdateTest.ts @@ -1,5 +1,5 @@ import { Arch, Configuration, Platform } from "app-builder-lib" -import { getBinFromUrl } from "app-builder-lib/out/binDownload" +import { getBinFromUrl } from "app-builder-lib" import { doSpawn, getArchSuffix } from "builder-util" import { GenericServerOptions, Nullish, S3Options } from "builder-util-runtime" import { AppImageUpdater, BaseUpdater, MacUpdater, NsisUpdater } from "electron-updater" diff --git a/test/src/updater/macUpdaterTest.ts b/test/src/updater/macUpdaterTest.ts index f107e4d66dc..a685b8ed4a0 100644 --- a/test/src/updater/macUpdaterTest.ts +++ b/test/src/updater/macUpdaterTest.ts @@ -1,5 +1,5 @@ import { configureRequestOptionsFromUrl, GithubOptions } from "builder-util-runtime" -import { MacUpdater } from "electron-updater/out/MacUpdater" +import { MacUpdater } from "electron-updater" import { EventEmitter } from "events" import { assertThat } from "../helpers/fileAssert" import { createTestAppAdapter, httpExecutor, trackEvents, tuneTestUpdater, writeUpdateConfig } from "../helpers/updaterTestUtil" diff --git a/test/src/updater/nsisUpdaterTest.ts b/test/src/updater/nsisUpdaterTest.ts index 3e60a63d404..5fe6f22f728 100644 --- a/test/src/updater/nsisUpdaterTest.ts +++ b/test/src/updater/nsisUpdaterTest.ts @@ -8,8 +8,8 @@ import { assertThat } from "../helpers/fileAssert" import { removeUnstableProperties } from "../helpers/packTester" import { createNsisUpdater, trackEvents, validateDownload, writeUpdateConfig } from "../helpers/updaterTestUtil" import { ExpectStatic } from "vitest" -import { GitLabProvider } from "electron-updater/src/providers/GitLabProvider" -import { GitHubProvider } from "electron-updater/src/providers/GitHubProvider" +import { GitLabProvider } from "electron-updater" +import { GitHubProvider } from "electron-updater" const config = { retry: 3 } diff --git a/test/src/urlUtilTest.ts b/test/src/urlUtilTest.ts index 93635d211df..545687e8459 100644 --- a/test/src/urlUtilTest.ts +++ b/test/src/urlUtilTest.ts @@ -1,14 +1,14 @@ -import { newUrlFromBase } from "electron-updater/out/util" +import { utils } from "electron-updater" import { URL } from "url" test("newUrlFromBase", ({ expect }) => { const fileUrl = new URL("https://AWS_S3_HOST/bucket-yashraj/electron%20Setup%2011.0.3.exe") - const newBlockMapUrl = newUrlFromBase(`${fileUrl.pathname}.blockmap`, fileUrl) + const newBlockMapUrl = utils.newUrlFromBase(`${fileUrl.pathname}.blockmap`, fileUrl) expect(newBlockMapUrl.href).toBe("https://aws_s3_host/bucket-yashraj/electron%20Setup%2011.0.3.exe.blockmap") }) test("add no cache", ({ expect }) => { const baseUrl = new URL("https://gitlab.com/artifacts/master/raw/dist?job=build_electron_win") - const newBlockMapUrl = newUrlFromBase("latest.yml", baseUrl, true) + const newBlockMapUrl = utils.newUrlFromBase("latest.yml", baseUrl, true) expect(newBlockMapUrl.href).toBe("https://gitlab.com/artifacts/master/raw/latest.yml?job=build_electron_win") }) diff --git a/tsconfig-base.json b/tsconfig-base.json index a0c2bc0f0b2..16243ca9c3b 100644 --- a/tsconfig-base.json +++ b/tsconfig-base.json @@ -1,7 +1,7 @@ { "extends": "@tsconfig/node22/tsconfig.json", "compilerOptions": { - "lib": ["es2024", "WebWorker", "ESNext.Array", "ESNext.Collection", "ESNext.Iterator"], + "lib": ["es2024", "WebWorker", "esnext"], "forceConsistentCasingInFileNames": true, From c978ab45ef24b0c2dafc3cc462f8a5ab5a963d77 Mon Sep 17 00:00:00 2001 From: Mike Maietta Date: Wed, 10 Dec 2025 15:24:21 -0800 Subject: [PATCH 10/65] tests run --- packages/app-builder-lib/helpers/remote-rebuild.js | 6 ++---- packages/builder-util/src/filename.ts | 3 +-- 2 files changed, 3 insertions(+), 6 deletions(-) diff --git a/packages/app-builder-lib/helpers/remote-rebuild.js b/packages/app-builder-lib/helpers/remote-rebuild.js index 58fea60009c..7d82d390e5f 100644 --- a/packages/app-builder-lib/helpers/remote-rebuild.js +++ b/packages/app-builder-lib/helpers/remote-rebuild.js @@ -25,11 +25,9 @@ const rebuilder = rebuilder => { }) } -const main = () => { +const main = async () => { const options = JSON.parse(process.argv[2]) - - const dynamicImport = require("./dynamic-import").dynamicImportMaybe - return dynamicImport("@electron/rebuild").then(module => { + return import("@electron/rebuild").then(module => { const { rebuild } = module return rebuilder(rebuild(options)) }) diff --git a/packages/builder-util/src/filename.ts b/packages/builder-util/src/filename.ts index 623a0e1c34a..3144af6046c 100644 --- a/packages/builder-util/src/filename.ts +++ b/packages/builder-util/src/filename.ts @@ -1,6 +1,5 @@ import * as path from "path" -// @ts-ignore -import * as _sanitizeFileName from "sanitize-filename" +import _sanitizeFileName from "sanitize-filename" export function sanitizeFileName(s: string, normalizeNfd = false): string { const sanitized = _sanitizeFileName(s) From f31595852d6c42285885ca1a7334cab1072a05f8 Mon Sep 17 00:00:00 2001 From: Mike Maietta Date: Wed, 28 Jan 2026 00:21:54 -0800 Subject: [PATCH 11/65] it builds --- packages/app-builder-lib/src/targets/FlatpakTarget.ts | 9 +++++---- packages/app-builder-lib/src/targets/archive.ts | 3 +-- .../src/differentialDownloader/DataSplitter.ts | 4 ++-- test/src/helpers/CheckingPackager.ts | 5 ++--- 4 files changed, 10 insertions(+), 11 deletions(-) diff --git a/packages/app-builder-lib/src/targets/FlatpakTarget.ts b/packages/app-builder-lib/src/targets/FlatpakTarget.ts index 5d7eea68043..b05937c7bc1 100644 --- a/packages/app-builder-lib/src/targets/FlatpakTarget.ts +++ b/packages/app-builder-lib/src/targets/FlatpakTarget.ts @@ -11,10 +11,7 @@ import { createStageDir, StageDir } from "./targetUtil" import { Nullish } from "builder-util-runtime" export default class FlatpakTarget extends Target { - readonly options: FlatpakOptions = { - ...this.packager.platformSpecificBuildOptions, - ...(this.packager.config as any)[this.name], - } + readonly options: FlatpakOptions constructor( name: string, @@ -23,6 +20,10 @@ export default class FlatpakTarget extends Target { readonly outDir: string ) { super(name) + this.options = { + ...this.packager.platformSpecificBuildOptions, + ...(this.packager.config as any)[this.name], + } } get appId(): string { diff --git a/packages/app-builder-lib/src/targets/archive.ts b/packages/app-builder-lib/src/targets/archive.ts index da354564d24..5114fd7fff8 100644 --- a/packages/app-builder-lib/src/targets/archive.ts +++ b/packages/app-builder-lib/src/targets/archive.ts @@ -1,11 +1,10 @@ import { debug7z, exec, exists, getPath7za, log, statOrNull, unlinkIfExists } from "builder-util" import { move } from "fs-extra" import * as path from "path" -import { create } from "tar" +import { create, TarOptionsWithAliasesAsync } from "tar" import { TmpDir } from "temp-file" import { CompressionLevel } from "../core" import { getLinuxToolsPath } from "./tools" -import { TarOptionsWithAliasesAsync } from "tar/dist/commonjs/options" /** @internal */ export async function tar(compression: CompressionLevel | any, format: string, outFile: string, dirToArchive: string, isMacApp: boolean, tempDirManager: TmpDir): Promise { diff --git a/packages/electron-updater/src/differentialDownloader/DataSplitter.ts b/packages/electron-updater/src/differentialDownloader/DataSplitter.ts index 326c9ea0ed9..23faabb90bc 100644 --- a/packages/electron-updater/src/differentialDownloader/DataSplitter.ts +++ b/packages/electron-updater/src/differentialDownloader/DataSplitter.ts @@ -1,8 +1,8 @@ import { newError } from "builder-util-runtime" import { createReadStream } from "fs" import { Writable } from "stream" -import { Operation, OperationKind } from "./downloadPlanBuilder" -import { ProgressInfo } from "./ProgressDifferentialDownloadCallbackTransform" +import { Operation, OperationKind } from "./downloadPlanBuilder.js" +import { ProgressInfo } from "./ProgressDifferentialDownloadCallbackTransform.js" const DOUBLE_CRLF = Buffer.from("\r\n\r\n") diff --git a/test/src/helpers/CheckingPackager.ts b/test/src/helpers/CheckingPackager.ts index 1e1e14f922e..db341a3e89c 100644 --- a/test/src/helpers/CheckingPackager.ts +++ b/test/src/helpers/CheckingPackager.ts @@ -5,7 +5,6 @@ import { WinPackager, getArchSuffix, MacPackager } from "app-builder-lib" import { AsyncTaskManager } from "builder-util" import { DmgTarget } from "dmg-builder" import { Arch, MacConfiguration, Packager, Target } from "electron-builder" -import SquirrelWindowsTarget from "electron-builder-squirrel-windows" import * as path from "path" export class CheckingWinPackager extends WinPackager { @@ -18,8 +17,8 @@ export class CheckingWinPackager extends WinPackager { //noinspection JSUnusedLocalSymbols async pack(outDir: string, arch: Arch, targets: Array, taskManager: AsyncTaskManager): Promise { // skip pack - const helperClass: typeof SquirrelWindowsTarget = (await import("electron-builder-squirrel-windows")).default - const newClass = new helperClass(this, outDir) + const helperClass = (await import("electron-builder-squirrel-windows")).default + const newClass = new (helperClass as any)(this, outDir) const setupFile = this.expandArtifactNamePattern(newClass.options, "exe", arch, "${productName} Setup ${version}.${ext}") const installerOutDir = path.join(outDir, `squirrel-windows${getArchSuffix(arch)}`) this.effectiveDistOptions = await newClass.computeEffectiveDistOptions(installerOutDir, outDir, setupFile) From 87d5cf7d8e19bf827cecd0dd0ae8ee6c43322fd0 Mon Sep 17 00:00:00 2001 From: Mike Maietta Date: Wed, 28 Jan 2026 00:37:06 -0800 Subject: [PATCH 12/65] cleanup --- .changeset/config.json | 4 - .changeset/small-times-scream.md | 6 +- .changeset/some-taxis-double.md | 5 -- packages/app-builder-lib/src/configuration.ts | 2 +- .../src/node-module-collector/moduleCache.ts | 73 ------------------- .../node-module-collector/moduleManager.ts | 2 +- 6 files changed, 3 insertions(+), 89 deletions(-) delete mode 100644 .changeset/some-taxis-double.md delete mode 100644 packages/app-builder-lib/src/node-module-collector/moduleCache.ts diff --git a/.changeset/config.json b/.changeset/config.json index b318d41c1bc..c0564b78fad 100644 --- a/.changeset/config.json +++ b/.changeset/config.json @@ -8,10 +8,6 @@ "dmg-builder", "electron-builder", "electron-builder-squirrel-windows", - "electron-forge-maker-appimage", - "electron-forge-maker-nsis", - "electron-forge-maker-nsis-web", - "electron-forge-maker-snap", "electron-publish" ]], "access": "public", diff --git a/.changeset/small-times-scream.md b/.changeset/small-times-scream.md index 4abe247b365..891d81b92c1 100644 --- a/.changeset/small-times-scream.md +++ b/.changeset/small-times-scream.md @@ -1,9 +1,5 @@ --- "electron-builder-squirrel-windows": major -"electron-forge-maker-appimage": major -"electron-forge-maker-nsis-web": major -"electron-forge-maker-nsis": major -"electron-forge-maker-snap": major "builder-util-runtime": major "electron-builder": major "electron-publish": major @@ -13,4 +9,4 @@ "dmg-builder": major --- -chore(node): bumping all engines to node 22 to support latest versions of `electron/*` packages +chore(node): migrating to ESM and updating all engines to node 22 to support latest versions of `electron/*` packages diff --git a/.changeset/some-taxis-double.md b/.changeset/some-taxis-double.md deleted file mode 100644 index c167228b827..00000000000 --- a/.changeset/some-taxis-double.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"app-builder-lib": patch ---- - -chore: move the manual node module traversal to the separate class. Add `env: { COREPACK_ENABLE_STRICT: "0", ...process.env },` to allow `npm list` to work across environments. diff --git a/packages/app-builder-lib/src/configuration.ts b/packages/app-builder-lib/src/configuration.ts index ad7c9dc6560..c11c6f4d438 100644 --- a/packages/app-builder-lib/src/configuration.ts +++ b/packages/app-builder-lib/src/configuration.ts @@ -362,7 +362,7 @@ Configuration in the same way as `afterPack` (see above). readonly beforeBuild?: Hook | string | null /** * The function (or path to file or module id) to be run when staging the electron artifact environment. - * Returns the path to custom Electron build (e.g. `~/electron/src/R`) or folder of electron zips. + * Returns the path to custom Electron build (e.g. `~/electron/out/R`) or folder of electron zips. * * Zip files must follow the pattern `electron-v${version}-${platformName}-${arch}.zip`, otherwise it will be assumed to be an unpacked Electron app directory */ diff --git a/packages/app-builder-lib/src/node-module-collector/moduleCache.ts b/packages/app-builder-lib/src/node-module-collector/moduleCache.ts deleted file mode 100644 index d0f29bde382..00000000000 --- a/packages/app-builder-lib/src/node-module-collector/moduleCache.ts +++ /dev/null @@ -1,73 +0,0 @@ -import { exists, log } from "builder-util" -import { PackageJson } from "./types.js" -import * as fs from "fs-extra" -import { resolve } from "path" - -// Type aliases for clarity -type PackageJsonCache = Record> -type RealPathCache = Record> -type ExistsCache = Record> -type LstatCache = Record> -type RequireResolveCache = Record> - -export class ModuleCache { - /** Cache for package.json contents (readJson/require) */ - readonly packageJson: PackageJsonCache - /** Cache for resolved real paths (realpath) */ - readonly realPath: RealPathCache - /** Cache for file/directory existence checks */ - readonly exists: ExistsCache - /** Cache for lstat results */ - readonly lstat: LstatCache - /** Cache for require.resolve results (key: "packageName::fromDir") */ - readonly requireResolve: RequireResolveCache - - private readonly packageJsonMap: Map = new Map() - private readonly realPathMap: Map = new Map() - private readonly existsMap: Map = new Map() - private readonly lstatMap: Map = new Map() - private readonly requireResolveMap: Map = new Map() - - constructor() { - this.packageJson = this.createAsyncProxy(this.packageJsonMap, (path: string) => fs.readJson(path)) - this.exists = this.createAsyncProxy(this.existsMap, (path: string) => exists(path)) - this.lstat = this.createAsyncProxy(this.lstatMap, (path: string) => fs.lstat(path)) - this.requireResolve = this.createAsyncProxy(this.requireResolveMap, (path: string) => require.resolve(path)) - this.realPath = this.createAsyncProxy(this.realPathMap, async (path: string) => { - const p = resolve(path) - try { - const stats = await this.lstat[p] - if (stats.isSymbolicLink()) { - return await fs.realpath(p) - } - return p - } catch (error: any) { - log.debug({ filePath: p, message: error.message || error.stack }, "error resolving path") - } - return p - }) - } - - // this allows dot-notation access while still supporting async retrieval - // e.g., cache.packageJson[somePath] returns Promise - private createAsyncProxy(map: Map, compute: (key: string) => T | Promise): Record> { - return new Proxy({} as Record>, { - async get(_, key: string) { - if (map.has(key)) { - return Promise.resolve(map.get(key)!) - } - return await Promise.resolve(compute(key)).then(value => { - map.set(key, value) - return value - }) - }, - set(_, key: string, value: T) { - map.set(key, value) - return true - }, - has(_, key: string) { - return map.has(key) - }, - }) - } -} diff --git a/packages/app-builder-lib/src/node-module-collector/moduleManager.ts b/packages/app-builder-lib/src/node-module-collector/moduleManager.ts index 71d47e45b8c..f5f8b8ffc41 100644 --- a/packages/app-builder-lib/src/node-module-collector/moduleManager.ts +++ b/packages/app-builder-lib/src/node-module-collector/moduleManager.ts @@ -1,5 +1,5 @@ import { exists, isEmptyOrSpaces, log } from "builder-util" -import { PackageJson } from "./types" +import { PackageJson } from "./types.js" import * as fs from "fs-extra" import * as path from "path" import * as semver from "semver" From 37c7b3792a1a6664fe5d93f0da72b0481e819a30 Mon Sep 17 00:00:00 2001 From: Mike Maietta Date: Wed, 28 Jan 2026 01:02:08 -0800 Subject: [PATCH 13/65] tmp save --- packages/app-builder-lib/package.json | 3 ++- packages/app-builder-lib/src/asar/asarUtil.ts | 15 +++++++------- packages/app-builder-lib/src/binDownload.ts | 5 ++--- packages/app-builder-lib/src/index.ts | 1 + .../bunNodeModulesCollector.ts | 6 +++--- .../src/node-module-collector/index.ts | 16 +++++++-------- .../nodeModulesCollector.ts | 8 ++++---- .../pnpmNodeModulesCollector.ts | 6 +++--- .../traversalNodeModulesCollector.ts | 2 +- .../yarnBerryNodeModulesCollector.ts | 6 +++--- .../yarnNodeModulesCollector.ts | 6 +++--- .../src/publish/PublishManager.ts | 18 ++++++++--------- .../src/targets/AppImageTarget.ts | 2 +- .../src/targets/ArchiveTarget.ts | 2 +- .../src/targets/FlatpakTarget.ts | 18 ++++++++--------- .../app-builder-lib/src/targets/archive.ts | 4 ++-- packages/app-builder-lib/src/targets/pkg.ts | 10 +++++----- .../app-builder-lib/src/util/appFileCopier.ts | 20 +++++++++---------- .../src/util/normalizePackageData.ts | 2 +- packages/builder-util/package.json | 3 ++- packages/builder-util/src/util.ts | 19 +++++++++--------- packages/dmg-builder/package.json | 3 ++- packages/dmg-builder/src/dmg.ts | 2 +- packages/dmg-builder/src/dmgUtil.ts | 8 ++++---- .../package.json | 3 ++- packages/electron-builder/package.json | 3 ++- packages/electron-builder/src/builder.ts | 2 +- packages/electron-builder/src/publish.ts | 2 +- .../package.json | 3 ++- .../package.json | 3 ++- .../electron-forge-maker-nsis/package.json | 3 ++- .../electron-forge-maker-snap/package.json | 3 ++- packages/electron-publish/package.json | 3 ++- packages/electron-updater/src/main.ts | 3 --- test/src/helpers/CheckingPackager.ts | 2 +- 35 files changed, 110 insertions(+), 105 deletions(-) diff --git a/packages/app-builder-lib/package.json b/packages/app-builder-lib/package.json index e320c864d76..15c07bf6a9a 100644 --- a/packages/app-builder-lib/package.json +++ b/packages/app-builder-lib/package.json @@ -2,7 +2,8 @@ "name": "app-builder-lib", "description": "electron-builder lib", "version": "26.6.0", - "main": "out/index.js", + "type": "module", + "exports": "./out/index.js", "files": [ "out", "templates", diff --git a/packages/app-builder-lib/src/asar/asarUtil.ts b/packages/app-builder-lib/src/asar/asarUtil.ts index 4a52b02c1c6..c1c4feffe6d 100644 --- a/packages/app-builder-lib/src/asar/asarUtil.ts +++ b/packages/app-builder-lib/src/asar/asarUtil.ts @@ -1,15 +1,14 @@ -import { createPackageFromStreams, AsarStreamType, AsarDirectory } from "@electron/asar" -import { isEmptyOrSpaces, log } from "builder-util" -import { exists, Filter, FilterStats } from "builder-util/out/fs" +import { AsarDirectory, AsarStreamType, createPackageFromStreams } from "@electron/asar" +import { exists, Filter, FilterStats, isEmptyOrSpaces, log } from "builder-util" import * as fs from "fs-extra" import { readlink } from "fs-extra" +import * as os from "os" import * as path from "path" -import { AsarOptions } from "../options/PlatformSpecificBuildOptions" -import { PlatformPackager } from "../platformPackager" -import { ResolvedFileSet, getDestinationPath } from "../util/appFileCopier" -import { detectUnpackedDirs } from "./unpackDetector" import { Readable } from "stream" -import * as os from "os" +import { AsarOptions } from "../options/PlatformSpecificBuildOptions.js" +import { PlatformPackager } from "../platformPackager.js" +import { getDestinationPath, ResolvedFileSet } from "../util/appFileCopier.js" +import { detectUnpackedDirs } from "./unpackDetector.js" const resolvePath = async (file: string | undefined): Promise => (file && (await exists(file)) ? fs.realpath(file).catch(() => path.resolve(file)) : undefined) const resolvePaths = async (filepaths: (string | undefined)[]) => { diff --git a/packages/app-builder-lib/src/binDownload.ts b/packages/app-builder-lib/src/binDownload.ts index ac904329e17..758c4693645 100644 --- a/packages/app-builder-lib/src/binDownload.ts +++ b/packages/app-builder-lib/src/binDownload.ts @@ -1,9 +1,8 @@ import * as get from "@electron/get" import { ElectronDownloadCacheMode, ElectronDownloadRequest, ElectronDownloadRequestOptions, GotDownloaderOptions } from "@electron/get" -import { executeAppBuilder, exists, log, PADDING } from "builder-util" +import { executeAppBuilder, exists, log, PADDING, sanitizeFileName } from "builder-util" import { Nullish } from "builder-util-runtime" -import { sanitizeFileName } from "builder-util/out/filename" -import { MultiProgress } from "electron-publish/out/multiProgress" +import { MultiProgress } from "electron-publish" import * as fs from "fs/promises" import * as os from "os" import * as path from "path" diff --git a/packages/app-builder-lib/src/index.ts b/packages/app-builder-lib/src/index.ts index fd32f26a228..d1dde909065 100644 --- a/packages/app-builder-lib/src/index.ts +++ b/packages/app-builder-lib/src/index.ts @@ -112,6 +112,7 @@ export { DoPackOptions } from "./platformPackager.js" export { createKeychain } from "./codeSign/macCodeSign.js" +export { downloadArtifact } from "./binDownload.js" const expectedOptions = new Set(["publish", "targets", "mac", "win", "linux", "projectDir", "platformPackagerFactory", "config", "effectiveOptionComputed", "prepackaged"]) diff --git a/packages/app-builder-lib/src/node-module-collector/bunNodeModulesCollector.ts b/packages/app-builder-lib/src/node-module-collector/bunNodeModulesCollector.ts index bbfb15404b6..21c3e42853f 100644 --- a/packages/app-builder-lib/src/node-module-collector/bunNodeModulesCollector.ts +++ b/packages/app-builder-lib/src/node-module-collector/bunNodeModulesCollector.ts @@ -1,7 +1,7 @@ import { log } from "builder-util" -import { PM } from "./packageManager" -import { TraversedDependency } from "./types" -import { TraversalNodeModulesCollector } from "./traversalNodeModulesCollector" +import { PM } from "./packageManager.js" +import { TraversedDependency } from "./types.js" +import { TraversalNodeModulesCollector } from "./traversalNodeModulesCollector.js" export class BunNodeModulesCollector extends TraversalNodeModulesCollector { public readonly installOptions = { manager: PM.BUN, lockfile: "bun.lock" } diff --git a/packages/app-builder-lib/src/node-module-collector/index.ts b/packages/app-builder-lib/src/node-module-collector/index.ts index d2729a94ead..1636df3fe5a 100644 --- a/packages/app-builder-lib/src/node-module-collector/index.ts +++ b/packages/app-builder-lib/src/node-module-collector/index.ts @@ -1,17 +1,17 @@ import { Nullish } from "builder-util-runtime" import { TmpDir } from "temp-file" -import { NpmNodeModulesCollector } from "./npmNodeModulesCollector" -import { detectPackageManager, getPackageManagerCommand, PM } from "./packageManager" -import { PnpmNodeModulesCollector } from "./pnpmNodeModulesCollector" -import { NodeModuleInfo } from "./types" -import { YarnBerryNodeModulesCollector } from "./yarnBerryNodeModulesCollector" -import { YarnNodeModulesCollector } from "./yarnNodeModulesCollector" -import { BunNodeModulesCollector } from "./bunNodeModulesCollector" +import { NpmNodeModulesCollector } from "./npmNodeModulesCollector.js" +import { detectPackageManager, getPackageManagerCommand, PM } from "./packageManager.js" +import { PnpmNodeModulesCollector } from "./pnpmNodeModulesCollector.js" +import { NodeModuleInfo } from "./types.js" +import { YarnBerryNodeModulesCollector } from "./yarnBerryNodeModulesCollector.js" +import { YarnNodeModulesCollector } from "./yarnNodeModulesCollector.js" +import { BunNodeModulesCollector } from "./bunNodeModulesCollector.js" import { Lazy } from "lazy-val" import { spawn, log, exists, isEmptyOrSpaces } from "builder-util" import * as fs from "fs-extra" import * as path from "path" -import { TraversalNodeModulesCollector } from "./traversalNodeModulesCollector" +import { TraversalNodeModulesCollector } from "./traversalNodeModulesCollector.js" export { getPackageManagerCommand, PM } diff --git a/packages/app-builder-lib/src/node-module-collector/nodeModulesCollector.ts b/packages/app-builder-lib/src/node-module-collector/nodeModulesCollector.ts index ce0c6110f7a..352f2838e53 100644 --- a/packages/app-builder-lib/src/node-module-collector/nodeModulesCollector.ts +++ b/packages/app-builder-lib/src/node-module-collector/nodeModulesCollector.ts @@ -4,10 +4,10 @@ import * as fs from "fs-extra" import { createWriteStream } from "fs-extra" import { Lazy } from "lazy-val" import * as path from "path" -import { hoist, type HoisterResult, type HoisterTree } from "./hoist" -import { ModuleManager } from "./moduleManager" -import { getPackageManagerCommand, PM } from "./packageManager" -import type { Dependency, DependencyGraph, NodeModuleInfo, PackageJson } from "./types" +import { hoist, type HoisterResult, type HoisterTree } from "./hoist.js" +import { ModuleManager } from "./moduleManager.js" +import { getPackageManagerCommand, PM } from "./packageManager.js" +import type { Dependency, DependencyGraph, NodeModuleInfo, PackageJson } from "./types.js" export abstract class NodeModulesCollector, OptionalDepType> { private readonly nodeModules: NodeModuleInfo[] = [] diff --git a/packages/app-builder-lib/src/node-module-collector/pnpmNodeModulesCollector.ts b/packages/app-builder-lib/src/node-module-collector/pnpmNodeModulesCollector.ts index df013b712a4..dcecf2494d2 100644 --- a/packages/app-builder-lib/src/node-module-collector/pnpmNodeModulesCollector.ts +++ b/packages/app-builder-lib/src/node-module-collector/pnpmNodeModulesCollector.ts @@ -1,7 +1,7 @@ import { log } from "builder-util" -import { NodeModulesCollector } from "./nodeModulesCollector" -import { PM } from "./packageManager" -import { PnpmDependency } from "./types" +import { NodeModulesCollector } from "./nodeModulesCollector.js" +import { PM } from "./packageManager.js" +import { PnpmDependency } from "./types.js" export class PnpmNodeModulesCollector extends NodeModulesCollector { public readonly installOptions = { diff --git a/packages/app-builder-lib/src/node-module-collector/traversalNodeModulesCollector.ts b/packages/app-builder-lib/src/node-module-collector/traversalNodeModulesCollector.ts index 1feaa32f096..5eab23ec394 100644 --- a/packages/app-builder-lib/src/node-module-collector/traversalNodeModulesCollector.ts +++ b/packages/app-builder-lib/src/node-module-collector/traversalNodeModulesCollector.ts @@ -1,5 +1,5 @@ import { log } from "builder-util" -import { NodeModulesCollector } from "./nodeModulesCollector" +import { NodeModulesCollector } from "./nodeModulesCollector.js" import { PM } from "./packageManager.js" import { TraversedDependency } from "./types.js" import * as path from "path" diff --git a/packages/app-builder-lib/src/node-module-collector/yarnBerryNodeModulesCollector.ts b/packages/app-builder-lib/src/node-module-collector/yarnBerryNodeModulesCollector.ts index d952c85501e..ba141f38f68 100644 --- a/packages/app-builder-lib/src/node-module-collector/yarnBerryNodeModulesCollector.ts +++ b/packages/app-builder-lib/src/node-module-collector/yarnBerryNodeModulesCollector.ts @@ -1,8 +1,8 @@ import { log } from "builder-util" import { Lazy } from "lazy-val" -import { NpmNodeModulesCollector } from "./npmNodeModulesCollector" -import { PM } from "./packageManager" -import { NpmDependency } from "./types" +import { NpmNodeModulesCollector } from "./npmNodeModulesCollector.js" +import { PM } from "./packageManager.js" +import { NpmDependency } from "./types.js" type YarnSetupInfo = { yarnVersion: string | null diff --git a/packages/app-builder-lib/src/node-module-collector/yarnNodeModulesCollector.ts b/packages/app-builder-lib/src/node-module-collector/yarnNodeModulesCollector.ts index aab99cb3a30..59baef9d3db 100644 --- a/packages/app-builder-lib/src/node-module-collector/yarnNodeModulesCollector.ts +++ b/packages/app-builder-lib/src/node-module-collector/yarnNodeModulesCollector.ts @@ -1,9 +1,9 @@ import { log } from "builder-util" import { Lazy } from "lazy-val" import * as path from "path" -import { NodeModulesCollector } from "./nodeModulesCollector" -import { PM } from "./packageManager" -import { YarnDependency } from "./types" +import { NodeModulesCollector } from "./nodeModulesCollector.js" +import { PM } from "./packageManager.js" +import { YarnDependency } from "./types.js" type YarnListJsonLine = | { diff --git a/packages/app-builder-lib/src/publish/PublishManager.ts b/packages/app-builder-lib/src/publish/PublishManager.ts index 37885faaf01..1f1ec047ebe 100644 --- a/packages/app-builder-lib/src/publish/PublishManager.ts +++ b/packages/app-builder-lib/src/publish/PublishManager.ts @@ -29,20 +29,20 @@ import { SpacesPublisher, UploadTask, } from "electron-publish" -import { MultiProgress } from "electron-publish/out/multiProgress" +import { MultiProgress } from "electron-publish/out/multiProgress.js" import { writeFile } from "fs/promises" import { isCI } from "ci-info" import * as path from "path" import { WriteStream as TtyWriteStream } from "tty" import * as url from "url" -import { AppInfo, ArtifactCreated, Configuration, Platform, PlatformSpecificBuildOptions, Target, TargetSpecificOptions } from "../index" -import { Packager } from "../packager" -import { PlatformPackager } from "../platformPackager" -import { expandMacro } from "../util/macroExpander" -import { WinPackager } from "../winPackager" -import { createUpdateInfoTasks, UpdateInfoFileTask, writeUpdateInfoFiles } from "./updateInfoBuilder" -import { resolveModule } from "../util/resolve" -import { parseUrl } from "../util/pathManager" +import { AppInfo, ArtifactCreated, Configuration, Platform, PlatformSpecificBuildOptions, Target, TargetSpecificOptions } from "../index.js" +import { Packager } from "../packager.js" +import { PlatformPackager } from "../platformPackager.js" +import { expandMacro } from "../util/macroExpander.js" +import { WinPackager } from "../winPackager.js" +import { createUpdateInfoTasks, UpdateInfoFileTask, writeUpdateInfoFiles } from "./updateInfoBuilder.js" +import { resolveModule } from "../util/resolve.js" +import { parseUrl } from "../util/pathManager.js" const publishForPrWarning = "There are serious security concerns with PUBLISH_FOR_PULL_REQUEST=true (see the CircleCI documentation (https://circleci.com/docs/1.0/fork-pr-builds/) for details)" + diff --git a/packages/app-builder-lib/src/targets/AppImageTarget.ts b/packages/app-builder-lib/src/targets/AppImageTarget.ts index a73281ffd39..22ad5068d8f 100644 --- a/packages/app-builder-lib/src/targets/AppImageTarget.ts +++ b/packages/app-builder-lib/src/targets/AppImageTarget.ts @@ -23,7 +23,7 @@ export default class AppImageTarget extends Target { readonly outDir: string ) { super("appImage") - this.options = { ...this.packager.platformSpecificBuildOptions, ...(this.packager.config as any)[this.name] } + this.options = { ...this.packager.platformSpecificBuildOptions, ...(this.packager.config as any)[this.name] } this.desktopEntry = new Lazy(() => { const args = this.options.executableArgs?.join(" ") || "--no-sandbox" diff --git a/packages/app-builder-lib/src/targets/ArchiveTarget.ts b/packages/app-builder-lib/src/targets/ArchiveTarget.ts index 14f305fd3e2..581c40645e2 100644 --- a/packages/app-builder-lib/src/targets/ArchiveTarget.ts +++ b/packages/app-builder-lib/src/targets/ArchiveTarget.ts @@ -16,7 +16,7 @@ export class ArchiveTarget extends Target { private readonly isWriteUpdateInfo = false ) { super(name) - this.options = (this.packager.config as any)[this.name] + this.options = (this.packager.config as any)[this.name] } async build(appOutDir: string, arch: Arch): Promise { diff --git a/packages/app-builder-lib/src/targets/FlatpakTarget.ts b/packages/app-builder-lib/src/targets/FlatpakTarget.ts index b05937c7bc1..f776d3e3bd8 100644 --- a/packages/app-builder-lib/src/targets/FlatpakTarget.ts +++ b/packages/app-builder-lib/src/targets/FlatpakTarget.ts @@ -2,12 +2,12 @@ import { bundle as bundleFlatpak, FlatpakBundlerBuildOptions, FlatpakManifest } import { Arch, copyFile, toLinuxArchString } from "builder-util" import { chmod, outputFile } from "fs-extra" import * as path from "path" -import { Target } from "../core" -import { LinuxPackager } from "../linuxPackager" -import { FlatpakOptions } from "../options/linuxOptions" -import { getNotLocalizedLicenseFile } from "../util/license" -import { LinuxTargetHelper } from "./LinuxTargetHelper" -import { createStageDir, StageDir } from "./targetUtil" +import { Target } from "../core.js" +import { LinuxPackager } from "../linuxPackager.js" +import { FlatpakOptions } from "../options/linuxOptions.js" +import { getNotLocalizedLicenseFile } from "../util/license.js" +import { LinuxTargetHelper } from "./LinuxTargetHelper.js" +import { createStageDir, StageDir } from "./targetUtil.js" import { Nullish } from "builder-util-runtime" export default class FlatpakTarget extends Target { @@ -21,9 +21,9 @@ export default class FlatpakTarget extends Target { ) { super(name) this.options = { - ...this.packager.platformSpecificBuildOptions, - ...(this.packager.config as any)[this.name], - } + ...this.packager.platformSpecificBuildOptions, + ...(this.packager.config as any)[this.name], + } } get appId(): string { diff --git a/packages/app-builder-lib/src/targets/archive.ts b/packages/app-builder-lib/src/targets/archive.ts index 5114fd7fff8..60110ad17f8 100644 --- a/packages/app-builder-lib/src/targets/archive.ts +++ b/packages/app-builder-lib/src/targets/archive.ts @@ -3,8 +3,8 @@ import { move } from "fs-extra" import * as path from "path" import { create, TarOptionsWithAliasesAsync } from "tar" import { TmpDir } from "temp-file" -import { CompressionLevel } from "../core" -import { getLinuxToolsPath } from "./tools" +import { CompressionLevel } from "../core.js" +import { getLinuxToolsPath } from "./tools.js" /** @internal */ export async function tar(compression: CompressionLevel | any, format: string, outFile: string, dirToArchive: string, isMacApp: boolean, tempDirManager: TmpDir): Promise { diff --git a/packages/app-builder-lib/src/targets/pkg.ts b/packages/app-builder-lib/src/targets/pkg.ts index eba3a4fa04b..d78d9e0edeb 100644 --- a/packages/app-builder-lib/src/targets/pkg.ts +++ b/packages/app-builder-lib/src/targets/pkg.ts @@ -47,11 +47,11 @@ export class PkgTarget extends Target { ) { super("pkg") this.options = { - allowAnywhere: true, - allowCurrentUserHome: true, - allowRootDirectory: true, - ...this.packager.config.pkg, - } + allowAnywhere: true, + allowCurrentUserHome: true, + allowRootDirectory: true, + ...this.packager.config.pkg, + } } async build(appPath: string, arch: Arch): Promise { diff --git a/packages/app-builder-lib/src/util/appFileCopier.ts b/packages/app-builder-lib/src/util/appFileCopier.ts index db7844abb64..28edf08aacc 100644 --- a/packages/app-builder-lib/src/util/appFileCopier.ts +++ b/packages/app-builder-lib/src/util/appFileCopier.ts @@ -4,16 +4,16 @@ import { ensureSymlink } from "fs-extra" import { mkdir, readlink } from "fs/promises" import * as path from "path" import asyncPool from "tiny-async-pool" -import { isLibOrExe } from "../asar/unpackDetector" -import { Platform } from "../core" -import { excludedExts, FileMatcher } from "../fileMatcher" -import { createElectronCompilerHost, NODE_MODULES_PATTERN } from "../fileTransformer" -import { Packager } from "../packager" -import { PlatformPackager } from "../platformPackager" -import { AppFileWalker } from "./AppFileWalker" -import { NodeModuleCopyHelper } from "./NodeModuleCopyHelper" -import { NodeModuleInfo } from "./packageDependencies" -import { getNodeModules, PM } from "../node-module-collector" +import { isLibOrExe } from "../asar/unpackDetector.js" +import { Platform } from "../core.js" +import { excludedExts, FileMatcher } from "../fileMatcher.js" +import { createElectronCompilerHost, NODE_MODULES_PATTERN } from "../fileTransformer.js" +import { Packager } from "../packager.js" +import { PlatformPackager } from "../platformPackager.js" +import { AppFileWalker } from "./AppFileWalker.js" +import { NodeModuleCopyHelper } from "./NodeModuleCopyHelper.js" +import { NodeModuleInfo } from "./packageDependencies.js" +import { getNodeModules, PM } from "../node-module-collector/index.js" const BOWER_COMPONENTS_PATTERN = `${path.sep}bower_components${path.sep}` /** @internal */ diff --git a/packages/app-builder-lib/src/util/normalizePackageData.ts b/packages/app-builder-lib/src/util/normalizePackageData.ts index ecb9db8cc67..38677340c1d 100644 --- a/packages/app-builder-lib/src/util/normalizePackageData.ts +++ b/packages/app-builder-lib/src/util/normalizePackageData.ts @@ -1,6 +1,6 @@ import { fromUrl } from "hosted-git-info" import * as semver from "semver" -import { parseUrl } from "./pathManager" +import { parseUrl } from "./pathManager.js" export function normalizePackageData(data: any) { for (const it of check) { diff --git a/packages/builder-util/package.json b/packages/builder-util/package.json index ea2aec37002..b40e6a4593c 100644 --- a/packages/builder-util/package.json +++ b/packages/builder-util/package.json @@ -1,7 +1,8 @@ { "name": "builder-util", "version": "26.4.1", - "main": "out/util.js", + "type": "module", + "exports": "./out/util.js", "author": "Vladimir Krivosheev", "license": "MIT", "repository": { diff --git a/packages/builder-util/src/util.ts b/packages/builder-util/src/util.ts index 475666e9fa5..15b9d42880f 100644 --- a/packages/builder-util/src/util.ts +++ b/packages/builder-util/src/util.ts @@ -19,19 +19,18 @@ export { getCompleteExtname, sanitizeFileName } from "./filename.js" export { safeStringifyJson, retry } from "builder-util-runtime" export { TmpDir } from "temp-file" export * from "./arch.js" -export { Arch, archFromString, ArchType, defaultArchFromString, getArchCliNames, getArchSuffix, toLinuxArchString } from "./arch" -export { AsyncTaskManager } from "./asyncTaskManager" -export { DebugLogger } from "./DebugLogger" -export * from "./log" -export { httpExecutor, NodeHttpExecutor } from "./nodeHttpExecutor" -export * from "./promise" - +export { Arch, archFromString, ArchType, defaultArchFromString, getArchCliNames, getArchSuffix, toLinuxArchString } from "./arch.js" +export { AsyncTaskManager } from "./asyncTaskManager.js" +export { DebugLogger } from "./DebugLogger.js" +export * from "./log.js" +export { httpExecutor, NodeHttpExecutor } from "./nodeHttpExecutor.js" +export * from "./promise.js" export { asArray } from "builder-util-runtime" -export * from "./fs" +export * from "./fs.js" -export { deepAssign } from "./deepAssign" +export { deepAssign } from "./deepAssign.js" -export { getPath7x, getPath7za } from "./7za" +export { getPath7x, getPath7za } from "./7za.js" export const debug7z = _debug("electron-builder:7z") diff --git a/packages/dmg-builder/package.json b/packages/dmg-builder/package.json index 2c7f7b5133c..59394ec7005 100644 --- a/packages/dmg-builder/package.json +++ b/packages/dmg-builder/package.json @@ -1,7 +1,8 @@ { "name": "dmg-builder", "version": "26.6.0", - "main": "out/dmgUtil.js", + "type": "module", + "exports": "./out/dmgUtil.js", "author": "Vladimir Krivosheev", "license": "MIT", "repository": { diff --git a/packages/dmg-builder/src/dmg.ts b/packages/dmg-builder/src/dmg.ts index 215b5a09d82..10d7fbf6add 100644 --- a/packages/dmg-builder/src/dmg.ts +++ b/packages/dmg-builder/src/dmg.ts @@ -54,7 +54,7 @@ export class DmgTarget extends Target { readonly outDir: string ) { super("dmg") - this.options = this.packager.config.dmg || Object.create(null) + this.options = this.packager.config.dmg || Object.create(null) } async build(appPath: string, arch: Arch) { diff --git a/packages/dmg-builder/src/dmgUtil.ts b/packages/dmg-builder/src/dmgUtil.ts index 6d29f4e6bc9..91c588212e1 100644 --- a/packages/dmg-builder/src/dmgUtil.ts +++ b/packages/dmg-builder/src/dmgUtil.ts @@ -1,12 +1,12 @@ import { DmgOptions, MacPackager, PlatformPackager } from "app-builder-lib" -import { downloadArtifact } from "app-builder-lib/out/binDownload" +import { downloadArtifact } from "app-builder-lib" import { exec, executeFinally, exists, isEmptyOrSpaces, TmpDir } from "builder-util" import { writeFile } from "fs-extra" import * as path from "path" -import { DmgBuildConfig } from "./dmg" -import { hdiUtil, hdiutilTransientExitCodes } from "./hdiuil" +import { DmgBuildConfig } from "./dmg.js" +import { hdiUtil, hdiutilTransientExitCodes } from "./hdiuil.js" -export { DmgTarget } from "./dmg" +export { DmgTarget } from "./dmg.js" const root = path.join(__dirname, "..") diff --git a/packages/electron-builder-squirrel-windows/package.json b/packages/electron-builder-squirrel-windows/package.json index e9cf41ab0d6..b1a23cce1b8 100644 --- a/packages/electron-builder-squirrel-windows/package.json +++ b/packages/electron-builder-squirrel-windows/package.json @@ -1,7 +1,8 @@ { "name": "electron-builder-squirrel-windows", "version": "26.6.0", - "main": "out/SquirrelWindowsTarget.js", + "type": "module", + "exports": "./out/SquirrelWindowsTarget.js", "author": "Vladimir Krivosheev", "license": "MIT", "repository": { diff --git a/packages/electron-builder/package.json b/packages/electron-builder/package.json index 3e3eb4ad7a3..75f8f4dc3a4 100644 --- a/packages/electron-builder/package.json +++ b/packages/electron-builder/package.json @@ -2,7 +2,8 @@ "name": "electron-builder", "description": "A complete solution to package and build a ready for distribution Electron app for MacOS, Windows and Linux with “auto update” support out of the box", "version": "26.6.0", - "main": "out/index.js", + "type": "module", + "exports": "./out/index.js", "files": [ "out" ], diff --git a/packages/electron-builder/src/builder.ts b/packages/electron-builder/src/builder.ts index 3ef9d9992f1..d28f3e37dcc 100644 --- a/packages/electron-builder/src/builder.ts +++ b/packages/electron-builder/src/builder.ts @@ -3,7 +3,7 @@ import { addValue, Arch, archFromString, deepAssign } from "builder-util" import * as chalk from "chalk" import { PublishOptions } from "electron-publish" import yargs, { Argv } from "yargs" -import { hideBin } from 'yargs/helpers'; +import { hideBin } from "yargs/helpers" export function createYargs(): Argv { return yargs(hideBin(process.argv)).parserConfiguration({ diff --git a/packages/electron-builder/src/publish.ts b/packages/electron-builder/src/publish.ts index a05ef9855e2..fb9d1360b75 100644 --- a/packages/electron-builder/src/publish.ts +++ b/packages/electron-builder/src/publish.ts @@ -8,7 +8,7 @@ import { InvalidConfigurationError, archFromString, log, printErrorAndExit } fro import { PublishPolicy } from "electron-publish" import * as chalk from "chalk" import * as path from "path" -import { Argv } from "yargs" +import { Argv } from "yargs" import { BuildOptions, createYargs, normalizeOptions } from "./builder.js" /** @internal */ diff --git a/packages/electron-forge-maker-appimage/package.json b/packages/electron-forge-maker-appimage/package.json index cb3c55b174a..f8c69a540bb 100644 --- a/packages/electron-forge-maker-appimage/package.json +++ b/packages/electron-forge-maker-appimage/package.json @@ -1,7 +1,8 @@ { "name": "electron-forge-maker-appimage", "version": "26.6.0", - "main": "main.js", + "type": "module", + "exports": "./main.js", "author": "Vladimir Krivosheev", "license": "MIT", "repository": { diff --git a/packages/electron-forge-maker-nsis-web/package.json b/packages/electron-forge-maker-nsis-web/package.json index 81b2236f1e9..cffff1366ef 100644 --- a/packages/electron-forge-maker-nsis-web/package.json +++ b/packages/electron-forge-maker-nsis-web/package.json @@ -1,7 +1,8 @@ { "name": "electron-forge-maker-nsis-web", "version": "26.6.0", - "main": "main.js", + "type": "module", + "exports": "./main.js", "author": "Vladimir Krivosheev", "license": "MIT", "repository": { diff --git a/packages/electron-forge-maker-nsis/package.json b/packages/electron-forge-maker-nsis/package.json index c1cf75490f7..6f3b85d1731 100644 --- a/packages/electron-forge-maker-nsis/package.json +++ b/packages/electron-forge-maker-nsis/package.json @@ -1,7 +1,8 @@ { "name": "electron-forge-maker-nsis", "version": "26.6.0", - "main": "main.js", + "type": "module", + "exports": "./main.js", "author": "Vladimir Krivosheev", "license": "MIT", "repository": { diff --git a/packages/electron-forge-maker-snap/package.json b/packages/electron-forge-maker-snap/package.json index 5b7d7fe6bde..ebbc4e18931 100644 --- a/packages/electron-forge-maker-snap/package.json +++ b/packages/electron-forge-maker-snap/package.json @@ -1,7 +1,8 @@ { "name": "electron-forge-maker-snap", "version": "26.6.0", - "main": "main.js", + "type": "module", + "exports": "./main.js", "author": "Vladimir Krivosheev", "license": "MIT", "repository": { diff --git a/packages/electron-publish/package.json b/packages/electron-publish/package.json index d744804ef36..dc451daafe9 100644 --- a/packages/electron-publish/package.json +++ b/packages/electron-publish/package.json @@ -1,7 +1,8 @@ { "name": "electron-publish", "version": "26.6.0", - "main": "out/index.js", + "type": "module", + "exports": "./out/index.js", "author": "Vladimir Krivosheev", "license": "MIT", "repository": { diff --git a/packages/electron-updater/src/main.ts b/packages/electron-updater/src/main.ts index a398a8a0c39..f766ec15a19 100644 --- a/packages/electron-updater/src/main.ts +++ b/packages/electron-updater/src/main.ts @@ -9,7 +9,6 @@ import { UpdateInfo } from "builder-util-runtime" export { BaseUpdater } from "./BaseUpdater.js" export { AppUpdater, NoOpLogger, TestOnlyUpdaterOptions } from "./AppUpdater.js" - export { AppImageUpdater } from "./AppImageUpdater.js" export { DebUpdater } from "./DebUpdater.js" export { PacmanUpdater } from "./PacmanUpdater.js" @@ -17,12 +16,10 @@ export { RpmUpdater } from "./RpmUpdater.js" export { MacUpdater } from "./MacUpdater.js" export { NsisUpdater } from "./NsisUpdater.js" - export { Provider } from "./providers/Provider.js" export { GitHubProvider } from "./providers/GitHubProvider.js" export { GitLabProvider } from "./providers/GitLabProvider.js" - export * from "./types.js" export * as utils from "./util.js" diff --git a/test/src/helpers/CheckingPackager.ts b/test/src/helpers/CheckingPackager.ts index db341a3e89c..303ac224f37 100644 --- a/test/src/helpers/CheckingPackager.ts +++ b/test/src/helpers/CheckingPackager.ts @@ -17,7 +17,7 @@ export class CheckingWinPackager extends WinPackager { //noinspection JSUnusedLocalSymbols async pack(outDir: string, arch: Arch, targets: Array, taskManager: AsyncTaskManager): Promise { // skip pack - const helperClass = (await import("electron-builder-squirrel-windows")).default + const helperClass = (await import("electron-builder-squirrel-windows")).default const newClass = new (helperClass as any)(this, outDir) const setupFile = this.expandArtifactNamePattern(newClass.options, "exe", arch, "${productName} Setup ${version}.${ext}") const installerOutDir = path.join(outDir, `squirrel-windows${getArchSuffix(arch)}`) From 0640b3c8fd7b6daecc55227f7a7090fb0f749df9 Mon Sep 17 00:00:00 2001 From: Mike Maietta Date: Wed, 28 Jan 2026 01:04:07 -0800 Subject: [PATCH 14/65] tmp save --- packages/app-builder-lib/tsconfig.json | 5 ----- packages/builder-util-runtime/tsconfig.json | 5 ----- packages/builder-util/tsconfig.json | 6 +----- packages/dmg-builder/tsconfig.json | 5 ----- packages/electron-builder-squirrel-windows/tsconfig.json | 5 ----- packages/electron-builder/tsconfig.json | 5 ----- packages/electron-publish/tsconfig.json | 4 ---- packages/electron-updater/tsconfig.json | 5 ----- 8 files changed, 1 insertion(+), 39 deletions(-) diff --git a/packages/app-builder-lib/tsconfig.json b/packages/app-builder-lib/tsconfig.json index 9c8c13598e0..8a3a77df391 100644 --- a/packages/app-builder-lib/tsconfig.json +++ b/packages/app-builder-lib/tsconfig.json @@ -1,10 +1,5 @@ { "extends": "./tsconfig-scheme.json", - "jsdoc": { - "out": "../../scripts/jsdoc/out/builder-lib", - "examples": "../../scripts/jsdoc/examples", - "access": "public" - }, "compilerOptions": { "outDir": "out", "rootDir": "src", diff --git a/packages/builder-util-runtime/tsconfig.json b/packages/builder-util-runtime/tsconfig.json index ccba996ab8d..71504d14a7b 100644 --- a/packages/builder-util-runtime/tsconfig.json +++ b/packages/builder-util-runtime/tsconfig.json @@ -5,11 +5,6 @@ "outDir": "out", "rootDir": "src" }, - "jsdoc": { - "out": "../../scripts/jsdoc/out/builder-util-runtime", - "examples": "../../scripts/jsdoc/examples", - "access": "public" - }, "include": [ "src/**/*.ts" ] diff --git a/packages/builder-util/tsconfig.json b/packages/builder-util/tsconfig.json index 0b6f6190a3b..8e94f1ec546 100644 --- a/packages/builder-util/tsconfig.json +++ b/packages/builder-util/tsconfig.json @@ -11,9 +11,5 @@ { "path": "../builder-util-runtime" } - ], - "jsdoc": { - "out": "../../scripts/jsdoc/out/util", - "access": "public" - } + ] } \ No newline at end of file diff --git a/packages/dmg-builder/tsconfig.json b/packages/dmg-builder/tsconfig.json index b78528697b3..467818ca969 100644 --- a/packages/dmg-builder/tsconfig.json +++ b/packages/dmg-builder/tsconfig.json @@ -4,11 +4,6 @@ "outDir": "out", "rootDir": "src" }, - "jsdoc": { - "out": "../../scripts/jsdoc/out/dmg-builder", - "examples": "../../scripts/jsdoc/examples", - "access": "public" - }, "references": [ { "path": "../app-builder-lib" diff --git a/packages/electron-builder-squirrel-windows/tsconfig.json b/packages/electron-builder-squirrel-windows/tsconfig.json index c09a92f11c5..e569ae0df14 100644 --- a/packages/electron-builder-squirrel-windows/tsconfig.json +++ b/packages/electron-builder-squirrel-windows/tsconfig.json @@ -1,10 +1,5 @@ { "extends": "../tsconfig-base.json", - "jsdoc": { - "out": "../../scripts/jsdoc/out/builder-lib", - "examples": "../../scripts/jsdoc/examples", - "access": "public" - }, "compilerOptions": { "outDir": "out", "rootDir": "src" diff --git a/packages/electron-builder/tsconfig.json b/packages/electron-builder/tsconfig.json index 8a55ef2a447..488b8196b73 100644 --- a/packages/electron-builder/tsconfig.json +++ b/packages/electron-builder/tsconfig.json @@ -18,11 +18,6 @@ "path": "../dmg-builder" } ], - "jsdoc": { - "out": "../../scripts/jsdoc/out/builder", - "examples": "../../scripts/jsdoc/examples", - "access": "public" - }, "include": [ "src/**/*.ts", "../../typings/*.d.ts" diff --git a/packages/electron-publish/tsconfig.json b/packages/electron-publish/tsconfig.json index 1d0ee3793fa..b93de9858f7 100644 --- a/packages/electron-publish/tsconfig.json +++ b/packages/electron-publish/tsconfig.json @@ -12,10 +12,6 @@ "path": "../builder-util-runtime" } ], - "jsdoc": { - "out": "../../scripts/jsdoc/out/index", - "access": "public" - }, "include": [ "src/**/*.ts", "../../typings/mime.d.ts" diff --git a/packages/electron-updater/tsconfig.json b/packages/electron-updater/tsconfig.json index c92cd864271..73b4f114577 100644 --- a/packages/electron-updater/tsconfig.json +++ b/packages/electron-updater/tsconfig.json @@ -4,11 +4,6 @@ "outDir": "out", "rootDir": "src" }, - "jsdoc": { - "out": "../../scripts/jsdoc/out/updater", - "examples": "../../scripts/jsdoc/examples", - "access": "public" - }, "files": [ ], "include": [ From ee370b1b136c43b85f2bc43bb24fc53ed277d4a5 Mon Sep 17 00:00:00 2001 From: Mike Maietta Date: Wed, 28 Jan 2026 01:06:02 -0800 Subject: [PATCH 15/65] tmp save --- packages/app-builder-lib/package.json | 2 +- packages/electron-builder/cli.js | 3 +-- packages/electron-builder/install-app-deps.js | 3 +-- packages/electron-builder/package.json | 2 +- 4 files changed, 4 insertions(+), 6 deletions(-) diff --git a/packages/app-builder-lib/package.json b/packages/app-builder-lib/package.json index 15c07bf6a9a..9822c93fc61 100644 --- a/packages/app-builder-lib/package.json +++ b/packages/app-builder-lib/package.json @@ -17,7 +17,7 @@ "directory": "packages/app-builder-lib" }, "engines": { - "node": ">=14.0.0" + "node": ">=22.12.0" }, "keywords": [ "electron", diff --git a/packages/electron-builder/cli.js b/packages/electron-builder/cli.js index 90282b0ce4c..11c9d2f0f67 100755 --- a/packages/electron-builder/cli.js +++ b/packages/electron-builder/cli.js @@ -1,4 +1,3 @@ #!/usr/bin/env node -// https://github.com/pnpm/pnpm/issues/1801 -require("./out/cli/cli") +import("./out/cli/cli") diff --git a/packages/electron-builder/install-app-deps.js b/packages/electron-builder/install-app-deps.js index 65a838b4e18..a616261e554 100755 --- a/packages/electron-builder/install-app-deps.js +++ b/packages/electron-builder/install-app-deps.js @@ -1,4 +1,3 @@ #!/usr/bin/env node -// https://github.com/pnpm/pnpm/issues/1801 -require("./out/cli/install-app-deps") +import("./out/cli/install-app-deps") diff --git a/packages/electron-builder/package.json b/packages/electron-builder/package.json index 75f8f4dc3a4..6bfa1518245 100644 --- a/packages/electron-builder/package.json +++ b/packages/electron-builder/package.json @@ -17,7 +17,7 @@ "directory": "packages/electron-builder" }, "engines": { - "node": ">=14.0.0" + "node": ">=22.12.0" }, "keywords": [ "electron", From 0abd6fa633115c1aaf09f426f6defd07767d7d61 Mon Sep 17 00:00:00 2001 From: Mike Maietta Date: Wed, 28 Jan 2026 01:10:34 -0800 Subject: [PATCH 16/65] compiles --- packages/electron-builder/package.json | 1 + pnpm-lock.yaml | 3 +++ 2 files changed, 4 insertions(+) diff --git a/packages/electron-builder/package.json b/packages/electron-builder/package.json index 6bfa1518245..a81320a72a5 100644 --- a/packages/electron-builder/package.json +++ b/packages/electron-builder/package.json @@ -58,6 +58,7 @@ "chalk": "^4.1.2", "ci-info": "^4.2.0", "dmg-builder": "workspace:*", + "electron-publish": "workspace:*", "fs-extra": "^10.1.0", "lazy-val": "^1.0.5", "simple-update-notifier": "2.0.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index d6dfd4f8a76..7476a0d96a3 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -442,6 +442,9 @@ importers: dmg-builder: specifier: workspace:* version: link:../dmg-builder + electron-publish: + specifier: workspace:* + version: link:../electron-publish fs-extra: specifier: ^10.1.0 version: 10.1.0 From dd5618d883846109bede51b55770cfe3b206ae1e Mon Sep 17 00:00:00 2001 From: Mike Maietta Date: Wed, 28 Jan 2026 14:11:13 -0800 Subject: [PATCH 17/65] regenerating schema using updated/fixed schema generator script --- package.json | 2 +- packages/app-builder-lib/scheme.json | 10882 ++++++++++--------------- scripts/fix-schema.js | 38 - scripts/generate-schema.ts | 23 +- 4 files changed, 4162 insertions(+), 6783 deletions(-) delete mode 100644 scripts/fix-schema.js diff --git a/package.json b/package.json index 7a0fb2ea085..7c0ef40a474 100644 --- a/package.json +++ b/package.json @@ -18,7 +18,7 @@ "docker-push": "docker/push.sh", "changelog": "conventional-changelog -p angular -i CHANGELOG.md -s && git add CHANGELOG.md", "generate-changeset": "pnpm changeset", - "generate-schema": "typescript-json-schema packages/app-builder-lib/tsconfig-scheme.json Configuration --out packages/app-builder-lib/scheme.json --noExtraProps --useTypeOfKeyword --strictNullChecks --required && node ./scripts/fix-schema.js", + "generate-schema": "ts-node scripts/generate-schema.ts", "generate-all": "pnpm generate-schema && pnpm prettier", "ci:test": "vitest run", "ci:version": "pnpm i && pnpm changelog && changeset version && node scripts/update-package-version-export.js && pnpm compile && pnpm generate-all && git add .", diff --git a/packages/app-builder-lib/scheme.json b/packages/app-builder-lib/scheme.json index 735d7e8e51c..ce9923323a6 100644 --- a/packages/app-builder-lib/scheme.json +++ b/packages/app-builder-lib/scheme.json @@ -1,7928 +1,5340 @@ { - "$schema": "http://json-schema.org/draft-07/schema#", - "additionalProperties": false, - "definitions": { - "AllPublishOptions": { + "type": "object", + "properties": { + "electronCompile": { + "description": "Whether to use [electron-compile](http://github.com/electron/electron-compile) to compile app. Defaults to `true` if `electron-compile` in the dependencies. And `false` if in the `devDependencies` or doesn't specified.", + "type": "boolean" + }, + "electronDownload": { + "$ref": "#/definitions/ElectronDownloadOptions", + "description": "The [electron-download](https://github.com/electron-userland/electron-download#usage) options." + }, + "electronBranding": { + "$ref": "#/definitions/ElectronBrandingOptions", + "description": "The branding used by Electron's distributables. This is needed if a fork has modified Electron's BRANDING.json file." + }, + "electronVersion": { + "description": "The version of electron you are packaging for. Defaults to version of `electron`, `electron-prebuilt` or `electron-prebuilt-compile` dependency.", + "type": "string" + }, + "extends": { + "description": "The name of a built-in configuration preset (currently, only `react-cra` is supported) or any number of paths to config files (relative to project dir).\n\nThe latter allows to mixin a config from multiple other configs, as if you `Object.assign` them, but properly combine `files` glob patterns.\n\nIf `react-scripts` in the app dependencies, `react-cra` will be set automatically. Set to `null` to disable automatic detection.", "anyOf": [ { - "$ref": "#/definitions/GithubOptions" + "type": "array", + "items": { + "type": "string" + } }, { - "$ref": "#/definitions/GitlabOptions" - }, + "type": "string" + } + ] + }, + "nodeVersion": { + "description": "*libui-based frameworks only* The version of NodeJS you are packaging for.\nYou can set it to `current` to set the Node.js version that you use to run.", + "type": "string" + }, + "launchUiVersion": { + "description": "*libui-based frameworks only* The version of LaunchUI you are packaging for. Applicable for Windows only. Defaults to version suitable for used framework version.", + "type": [ + "string", + "boolean" + ] + }, + "framework": { + "description": "The framework name. One of `electron`, `proton`, `libui`. Defaults to `electron`.", + "type": "string" + }, + "disableSanityCheckAsar": { + "description": "Whether to disable sanity check asar package (useful for custom electron forks that implement their own encrypted integrity validation)", + "default": false, + "type": "boolean" + }, + "appId": { + "description": "The application id. Used as [CFBundleIdentifier](https://developer.apple.com/library/ios/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html#//apple_ref/doc/uid/20001431-102070) for MacOS and as\n[Application User Model ID](https://msdn.microsoft.com/en-us/library/windows/desktop/dd378459(v=vs.85).aspx) for Windows (NSIS target only, Squirrel.Windows not supported). It is strongly recommended that an explicit ID is set.", + "default": "com.electron.${name}", + "type": "string" + }, + "productName": { + "description": "As [name](#metadata), but allows you to specify a product name for your executable which contains spaces and other special characters not allowed in the [name property](https://docs.npmjs.com/files/package.json#name).\nIf not specified inside of the `build` configuration, `productName` property defined at the top level of `package.json` is used. If not specified at the top level of `package.json`, [name property](https://docs.npmjs.com/files/package.json#name) is used.", + "type": "string" + }, + "copyright": { + "description": "The human-readable copyright line for the app.", + "default": "Copyright © year ${author}", + "type": "string" + }, + "directories": { + "$ref": "#/definitions/MetadataDirectories", + "description": "Directories for build resources" + }, + "mac": { + "$ref": "#/definitions/MacConfiguration", + "description": "Options related to how build macOS targets." + }, + "mas": { + "$ref": "#/definitions/MasConfiguration", + "description": "MAS (Mac Application Store) options." + }, + "masDev": { + "$ref": "#/definitions/MasConfiguration", + "description": "MAS (Mac Application Store) development options (`mas-dev` target)." + }, + "dmg": { + "$ref": "#/definitions/DmgOptions", + "description": "macOS DMG options." + }, + "pkg": { + "$ref": "#/definitions/PkgOptions", + "description": "macOS PKG options." + }, + "win": { + "$ref": "#/definitions/WindowsConfiguration", + "description": "Options related to how build Windows targets." + }, + "nsis": { + "$ref": "#/definitions/NsisOptions" + }, + "nsisWeb": { + "$ref": "#/definitions/NsisWebOptions" + }, + "portable": { + "$ref": "#/definitions/PortableOptions" + }, + "appx": { + "$ref": "#/definitions/AppXOptions" + }, + "msi": { + "$ref": "#/definitions/MsiOptions" + }, + "msiWrapped": { + "$ref": "#/definitions/MsiWrappedOptions" + }, + "squirrelWindows": { + "$ref": "#/definitions/SquirrelWindowsOptions" + }, + "linux": { + "$ref": "#/definitions/LinuxConfiguration", + "description": "Options related to how build Linux targets." + }, + "deb": { + "$ref": "#/definitions/DebOptions", + "description": "Debian package options." + }, + "snap": { + "$ref": "#/definitions/SnapOptions", + "description": "Snap options." + }, + "appImage": { + "$ref": "#/definitions/AppImageOptions", + "description": "AppImage options." + }, + "flatpak": { + "$ref": "#/definitions/FlatpakOptions", + "description": "Flatpak options." + }, + "pacman": { + "$ref": "#/definitions/LinuxTargetSpecificOptions" + }, + "rpm": { + "$ref": "#/definitions/LinuxTargetSpecificOptions" + }, + "freebsd": { + "$ref": "#/definitions/LinuxTargetSpecificOptions" + }, + "p5p": { + "$ref": "#/definitions/LinuxTargetSpecificOptions" + }, + "apk": { + "$ref": "#/definitions/LinuxTargetSpecificOptions" + }, + "buildDependenciesFromSource": { + "description": "Whether to build the application native dependencies from source.", + "default": false, + "type": "boolean" + }, + "nodeGypRebuild": { + "description": "Whether to execute `node-gyp rebuild` before starting to package the app.\n\nDon't [use](https://github.com/electron-userland/electron-builder/issues/683#issuecomment-241214075) [npm](http://electron.atom.io/docs/tutorial/using-native-node-modules/#using-npm) (neither `.npmrc`) for configuring electron headers. Use `electron-builder node-gyp-rebuild` instead.", + "default": false, + "type": "boolean" + }, + "npmArgs": { + "description": "Additional command line arguments to use when installing app native deps.", + "anyOf": [ { - "$ref": "#/definitions/S3Options" + "type": "array", + "items": { + "type": "string" + } }, { - "$ref": "#/definitions/SpacesOptions" - }, + "type": "string" + } + ] + }, + "npmRebuild": { + "description": "Whether to [rebuild](https://docs.npmjs.com/cli/rebuild) native dependencies before starting to package the app.", + "default": true, + "type": "boolean" + }, + "nativeRebuilder": { + "description": "Use `legacy` app-builder binary for installing native dependencies, or `@electron/rebuild` in `sequential` or `parallel` compilation modes.", + "default": "sequential", + "enum": [ + "legacy", + "parallel", + "sequential" + ], + "type": "string" + }, + "buildNumber": { + "description": "The build number. Maps to the `--iteration` flag for builds using FPM on Linux.\nIf not defined, then it will fallback to `BUILD_NUMBER` or `TRAVIS_BUILD_NUMBER` or `APPVEYOR_BUILD_NUMBER` or `CIRCLE_BUILD_NUM` or `BUILD_BUILDNUMBER` or `CI_PIPELINE_IID` env.", + "type": "string" + }, + "buildVersion": { + "description": "The build version. Maps to the `CFBundleVersion` on macOS, and `FileVersion` metadata property on Windows. Defaults to the `version`.\nIf `buildVersion` is not defined and `buildNumber` (or one of the `buildNumber` envs) is defined, it will be used as a build version (`version.buildNumber`).", + "type": "string" + }, + "downloadAlternateFFmpeg": { + "description": "Whether to download the alternate FFmpeg library from Electron's release assets and replace the default FFmpeg library prior to signing", + "type": "boolean" + }, + "extraMetadata": { + "description": "Inject properties to `package.json`." + }, + "forceCodeSigning": { + "description": "Whether to fail if the application is not signed (to prevent unsigned app if code signing configuration is not correct).", + "default": false, + "type": "boolean" + }, + "includePdb": { + "description": "Whether to include PDB files.", + "default": false, + "type": "boolean" + }, + "removePackageScripts": { + "description": "Whether to remove `scripts` field from `package.json` files.", + "default": true, + "type": "boolean" + }, + "removePackageKeywords": { + "description": "Whether to remove `keywords` field from `package.json` files.", + "default": true, + "type": "boolean" + }, + "electronFuses": { + "$ref": "#/definitions/FuseOptionsV1", + "description": "Options to pass to `@electron/fuses`\nRef: https://github.com/electron/fuses" + }, + "concurrency": { + "$ref": "#/definitions/Concurrency", + "description": "[Experimental] Configuration for concurrent builds." + }, + "artifactName": { + "description": "The [artifact file name template](./configuration.md#artifact-file-name-template). Defaults to `${productName}-${version}.${ext}` (some target can have other defaults, see corresponding options).", + "type": "string" + }, + "executableName": { + "description": "The executable name. Defaults to `productName`\nNote: Except for Linux, where this would constitute a breaking change in previous behavior and lead to both invalid executable names and Desktop files. Ref comments in: https://github.com/electron-userland/electron-builder/pull/9068", + "type": "string" + }, + "compression": { + "$ref": "#/definitions/CompressionLevel", + "description": "The compression level. If you want to rapidly test build, `store` can reduce build time significantly. `maximum` doesn't lead to noticeable size difference, but increase build time.", + "default": "normal" + }, + "disableDefaultIgnoredFiles": { + "description": "Whether to exclude all default ignored files(https://www.electron.build/contents#files) and options. Defaults to `false`.", + "default": false, + "type": "boolean" + }, + "asar": { + "description": "Whether to package the application's source code into an archive, using [Electron's archive format](http://electron.atom.io/docs/tutorial/application-packaging/).\n\nNode modules, that must be unpacked, will be detected automatically, you don't need to explicitly set [asarUnpack](#asarUnpack) - please file an issue if this doesn't work.", + "default": true, + "anyOf": [ { - "$ref": "#/definitions/GenericServerOptions" + "$ref": "#/definitions/AsarOptions" }, { - "$ref": "#/definitions/CustomPublishOptions" - }, + "type": "boolean" + } + ] + }, + "asarUnpack": { + "description": "A [glob patterns](./file-patterns.md) relative to the [app directory](#directories), which specifies which files to unpack when creating the [asar](http://electron.atom.io/docs/tutorial/application-packaging/) archive.", + "anyOf": [ { - "$ref": "#/definitions/KeygenOptions" + "type": "array", + "items": { + "type": "string" + } }, { - "$ref": "#/definitions/SnapStoreOptions" - }, + "type": "string" + } + ] + }, + "icon": { + "type": "string" + }, + "fileAssociations": { + "description": "The file associations.", + "anyOf": [ { - "$ref": "#/definitions/BitbucketOptions" + "$ref": "#/definitions/FileAssociation" }, { - "type": "string" + "type": "array", + "items": { + "$ref": "#/definitions/FileAssociation" + } } ] }, - "AppImageOptions": { - "additionalProperties": false, - "properties": { - "artifactName": { - "description": "The [artifact file name template](./configuration.md#artifact-file-name-template).", - "type": [ - "null", - "string" - ] - }, - "category": { - "description": "The [application category](https://specifications.freedesktop.org/menu-spec/latest/apa.html#main-category-registry).", - "type": [ - "null", - "string" - ] + "protocols": { + "description": "The URL protocol schemes.", + "anyOf": [ + { + "$ref": "#/definitions/Protocol" }, - "description": { - "description": "As [description](./configuration.md#description) from application package.json, but allows you to specify different for Linux.", - "type": [ - "null", - "string" - ] + { + "type": "array", + "items": { + "$ref": "#/definitions/Protocol" + } + } + ] + }, + "electronLanguages": { + "description": "The electron locales to keep. By default, all Electron locales used as-is.", + "anyOf": [ + { + "type": "array", + "items": { + "type": "string" + } }, - "desktop": { - "anyOf": [ - { - "$ref": "#/definitions/LinuxDesktopFile" - }, - { - "type": "null" - } - ], - "description": "The [Desktop file](https://developer.gnome.org/documentation/guidelines/maintainer/integrating.html#desktop-files)" + { + "type": "string" + } + ] + }, + "electronUpdaterCompatibility": { + "description": "The [electron-updater compatibility](./auto-update.md#compatibility) semver range.", + "type": "string" + }, + "publish": { + "$ref": "#/definitions/Publish", + "description": "Publisher configuration. See [Auto Update](./publish.md) for more information." + }, + "detectUpdateChannel": { + "description": "Whether to infer update channel from application version pre-release components. e.g. if version `0.12.1-alpha.1`, channel will be set to `alpha`. Otherwise to `latest`.\nThis does *not* apply to github publishing, which will [never auto-detect the update channel](https://github.com/electron-userland/electron-builder/issues/8589).", + "default": true, + "type": "boolean" + }, + "generateUpdatesFilesForAllChannels": { + "description": "Please see [Building and Releasing using Channels](https://github.com/electron-userland/electron-builder/issues/1182#issuecomment-324947139).", + "default": false, + "type": "boolean" + }, + "releaseInfo": { + "$ref": "#/definitions/ReleaseInfo", + "description": "The release info. Intended for command line usage:\n\n```\n-c.releaseInfo.releaseNotes=\"new features\"\n```" + }, + "target": { + "anyOf": [ + { + "$ref": "#/definitions/TargetConfiguration" }, - "executableArgs": { - "anyOf": [ - { - "items": { - "type": "string" + { + "type": "array", + "items": { + "anyOf": [ + { + "$ref": "#/definitions/TargetConfiguration" }, - "type": "array" - }, - { - "type": "null" - } - ], - "description": "The executable parameters. Pass to executableName" - }, - "license": { - "description": "The path to EULA license file. Defaults to `license.txt` or `eula.txt` (or uppercase variants). Only plain text is supported.", - "type": [ - "null", - "string" - ] - }, - "mimeTypes": { - "anyOf": [ - { - "items": { + { "type": "string" - }, - "type": "array" - }, - { - "type": "null" - } - ], - "description": "The mime types in addition to specified in the file associations. Use it if you don't want to register a new mime type, but reuse existing." + } + ] + } }, - "publish": { - "anyOf": [ - { - "$ref": "#/definitions/GithubOptions" - }, - { - "$ref": "#/definitions/GitlabOptions" - }, - { - "$ref": "#/definitions/S3Options" - }, - { - "$ref": "#/definitions/SpacesOptions" - }, - { - "$ref": "#/definitions/GenericServerOptions" - }, - { - "$ref": "#/definitions/CustomPublishOptions" - }, - { - "$ref": "#/definitions/KeygenOptions" - }, - { - "$ref": "#/definitions/SnapStoreOptions" - }, - { - "$ref": "#/definitions/BitbucketOptions" - }, - { - "items": { - "$ref": "#/definitions/AllPublishOptions" + { + "type": "string" + } + ] + }, + "cscLink": { + "type": "string" + }, + "cscKeyPassword": { + "type": "string" + }, + "defaultArch": { + "type": "string" + }, + "files": { + "description": "A [glob patterns](./file-patterns.md) relative to the [app directory](configuration.md#directories), which specifies which files to include when copying files to create the package.\n\nDefaults to:\n```json\n[\n\"**\\/*\",\n\"!**\\/node_modules/*\\/{CHANGELOG.md,README.md,README,readme.md,readme}\",\n\"!**\\/node_modules/*\\/{test,__tests__,tests,powered-test,example,examples}\",\n\"!**\\/node_modules/*.d.ts\",\n\"!**\\/node_modules/.bin\",\n\"!**\\/*.{iml,o,hprof,orig,pyc,pyo,rbc,swp,csproj,sln,xproj}\",\n\"!.editorconfig\",\n\"!**\\/._*\",\n\"!**\\/{.DS_Store,.git,.hg,.svn,CVS,RCS,SCCS,.gitignore,.gitattributes}\",\n\"!**\\/{__pycache__,thumbs.db,.flowconfig,.idea,.vs,.nyc_output}\",\n\"!**\\/{appveyor.yml,.travis.yml,circle.yml}\",\n\"!**\\/{npm-debug.log,yarn.lock,.yarn-integrity,.yarn-metadata.json}\"\n]\n```\n\nDevelopment dependencies are never copied in any case. You don't need to ignore it explicitly. Hidden files are not ignored by default, but all files that should be ignored, are ignored by default.\n\nDefault pattern \\`**\\/*\\` **is not added to your custom** if some of your patterns is not ignore (i.e. not starts with `!`). `package.json` and \\`**\\/node_modules/**\\/*` (only production dependencies will be copied) is added to your custom in any case. All default ignores are added in any case — you don't need to repeat it if you configure own patterns.\n\nMay be specified in the platform options (e.g. in the [mac](mac.md)).\n\nYou may also specify custom source and destination directories by using `FileSet` objects instead of simple glob patterns.\n\n```json\n[\n{\n\"from\": \"path/to/source\",\n\"to\": \"path/to/destination\",\n\"filter\": [\"**\\/*\", \"!foo/*.js\"]\n}\n]\n```\n\nYou can use [file macros](./file-patterns.md#file-macros) in the `from` and `to` fields as well. `from` and `to` can be files and you can use this to [rename](https://github.com/electron-userland/electron-builder/issues/1119) a file while packaging.", + "anyOf": [ + { + "$ref": "#/definitions/FileSet" + }, + { + "type": "array", + "items": { + "anyOf": [ + { + "$ref": "#/definitions/FileSet" }, - "type": "array" - }, - { - "type": [ - "null", - "string" - ] - } - ] + { + "type": "string" + } + ] + } }, - "synopsis": { - "description": "The [short description](https://www.debian.org/doc/debian-policy/ch-controlfields.html#s-f-Description).", - "type": [ - "null", - "string" - ] + { + "type": "string" } - }, - "type": "object" + ] }, - "AppXOptions": { - "additionalProperties": false, - "properties": { - "addAutoLaunchExtension": { - "description": "Whether to add auto launch extension. Defaults to `true` if [electron-winstore-auto-launch](https://github.com/felixrieseberg/electron-winstore-auto-launch) in the dependencies.", - "type": "boolean" + "extraResources": { + "description": "A [glob patterns](./file-patterns.md) relative to the project directory, when specified, copy the file or directory with matching names directly into the app's resources directory (`Contents/Resources` for MacOS, `resources` for Linux and Windows).\n\nFile patterns (and support for `from` and `to` fields) the same as for [files](#files).", + "anyOf": [ + { + "$ref": "#/definitions/FileSet" }, - "applicationId": { - "description": "The application id. Defaults to `identityName`. This string contains alpha-numeric fields separated by periods. Each field must begin with an ASCII alphabetic character.", - "type": "string" + { + "type": "array", + "items": { + "anyOf": [ + { + "$ref": "#/definitions/FileSet" + }, + { + "type": "string" + } + ] + } }, - "artifactName": { - "description": "The [artifact file name template](./configuration.md#artifact-file-name-template).", - "type": [ - "null", - "string" - ] + { + "type": "string" + } + ] + }, + "extraFiles": { + "description": "The same as [extraResources](#extraresources) but copy into the app's content directory (`Contents` for MacOS, root directory for Linux and Windows).", + "anyOf": [ + { + "$ref": "#/definitions/FileSet" }, - "backgroundColor": { - "default": "#464646", - "description": "The background color of the app tile. See [Visual Elements](https://msdn.microsoft.com/en-us/library/windows/apps/br211471.aspx).", - "type": [ - "null", - "string" - ] + { + "type": "array", + "items": { + "anyOf": [ + { + "$ref": "#/definitions/FileSet" + }, + { + "type": "string" + } + ] + } }, - "customExtensionsPath": { - "description": "Relative path to custom extensions xml to be included in an `appmanifest.xml`.", + { "type": "string" + } + ] + }, + "beforePack": { + "description": "The function (or path to file or module id) to be run before pack.\n\n```typescript\n(context: BeforePackContext): Promise | any\n```\n\n!!! example \"As function\"\n\n ```js\n beforePack: async (context) => {\n // your code\n }\n ```\n\nBecause in a configuration file you cannot use JavaScript, can be specified as a path to file or module id. Function must be exported as default export.\n\n```json\n\"build\": {\n\"beforePack\": \"./myBeforePackHook.js\"\n}\n```\n\nFile `myBeforePackHook.js` in the project root directory:\n\n!!! example \"myBeforePackHook.js\"\n ```js\n exports.default = async function(context) {\n // your custom code\n }\n ```", + "anyOf": [ + { + "typeof": "function" }, - "customManifestPath": { - "description": "(Advanced Option) Relative path to custom `appmanifest.xml` (file name doesn't matter, it'll be renamed) located in build resources directory.\nSupports the following template macros:\n\n- ${publisher}\n- ${publisherDisplayName}\n- ${version}\n- ${applicationId}\n- ${identityName}\n- ${executable}\n- ${displayName}\n- ${description}\n- ${backgroundColor}\n- ${logo}\n- ${square150x150Logo}\n- ${square44x44Logo}\n- ${lockScreen}\n- ${defaultTile}\n- ${splashScreen}\n- ${arch}\n- ${resourceLanguages}\n- ${extensions}\n- ${minVersion}\n- ${maxVersionTested}", + { "type": "string" + } + ] + }, + "afterExtract": { + "description": "The function (or path to file or module id) to be [run after the prebuilt Electron binary has been extracted to the output directory](#afterextract)\nSame setup as {@link beforePack}", + "anyOf": [ + { + "typeof": "function" }, - "displayName": { - "description": "A friendly name that can be displayed to users. Corresponds to [Properties.DisplayName](https://msdn.microsoft.com/en-us/library/windows/apps/br211432.aspx).\nDefaults to the application product name.", - "type": [ - "null", - "string" - ] - }, - "electronUpdaterAware": { - "default": false, - "type": "boolean" - }, - "identityName": { - "description": "The name. Corresponds to [Identity.Name](https://msdn.microsoft.com/en-us/library/windows/apps/br211441.aspx). Defaults to the [application name](./configuration.md#metadata).", - "type": [ - "null", - "string" - ] - }, - "languages": { - "anyOf": [ - { - "items": { - "type": "string" - }, - "type": "array" - }, - { - "type": [ - "null", - "string" - ] - } - ], - "description": "The list of [supported languages](https://docs.microsoft.com/en-us/windows/uwp/globalizing/manage-language-and-region#specify-the-supported-languages-in-the-apps-manifest) that will be listed in the Windows Store.\nThe first entry (index 0) will be the default language.\nDefaults to en-US if omitted." - }, - "makeappxArgs": { - "anyOf": [ - { - "items": { - "type": "string" - }, - "type": "array" - }, - { - "type": "null" - } - ] - }, - "maxVersionTested": { - "default": "arch === Arch.arm64 ? \"10.0.16299.0\" : \"10.0.14316.0\"", - "description": "Set the `MaxVersionTested` field in the appx manifest.xml", - "type": [ - "null", - "string" - ] - }, - "minVersion": { - "default": "arch === Arch.arm64 ? \"10.0.16299.0\" : \"10.0.14316.0\"", - "description": "Set the MinVersion field in the appx manifest.xml", - "type": [ - "null", - "string" - ] - }, - "publish": { - "anyOf": [ - { - "$ref": "#/definitions/GithubOptions" - }, - { - "$ref": "#/definitions/GitlabOptions" - }, - { - "$ref": "#/definitions/S3Options" - }, - { - "$ref": "#/definitions/SpacesOptions" - }, - { - "$ref": "#/definitions/GenericServerOptions" - }, - { - "$ref": "#/definitions/CustomPublishOptions" - }, - { - "$ref": "#/definitions/KeygenOptions" - }, - { - "$ref": "#/definitions/SnapStoreOptions" - }, - { - "$ref": "#/definitions/BitbucketOptions" - }, - { - "items": { - "$ref": "#/definitions/AllPublishOptions" - }, - "type": "array" - }, - { - "type": [ - "null", - "string" - ] - } - ] - }, - "publisher": { - "description": "The Windows Store publisher. Not used if AppX is build for testing. See [AppX Package Code Signing](#appx-package-code-signing) below.", - "type": [ - "null", - "string" - ] - }, - "publisherDisplayName": { - "description": "A friendly name for the publisher that can be displayed to users. Corresponds to [Properties.PublisherDisplayName](https://msdn.microsoft.com/en-us/library/windows/apps/br211460.aspx).\nDefaults to company name from the application metadata.", - "type": [ - "null", - "string" - ] - }, - "setBuildNumber": { - "default": false, - "description": "Whether to set build number. See https://github.com/electron-userland/electron-builder/issues/3875", - "type": "boolean" - }, - "showNameOnTiles": { - "default": false, - "description": "Whether to overlay the app's name on top of tile images on the Start screen. Defaults to `false`. (https://docs.microsoft.com/en-us/uwp/schemas/appxpackage/uapmanifestschema/element-uap-shownameontiles) in the dependencies.", - "type": "boolean" - } - }, - "type": "object" - }, - "ArchType": { - "enum": [ - "arm64", - "armv7l", - "ia32", - "universal", - "x64" - ], - "type": "string" - }, - "AsarOptions": { - "additionalProperties": false, - "properties": { - "ordering": { - "type": [ - "null", - "string" - ] - }, - "smartUnpack": { - "default": true, - "description": "Whether to automatically unpack executables files.", - "type": "boolean" - } - }, - "type": "object" - }, - "BitbucketOptions": { - "additionalProperties": false, - "description": "Bitbucket options.\nhttps://bitbucket.org/\nDefine `BITBUCKET_TOKEN` environment variable.\n\nFor converting an app password to a usable token, you can utilize this\n```typescript\nconvertAppPassword(owner: string, appPassword: string) {\nconst base64encodedData = Buffer.from(`${owner}:${appPassword.trim()}`).toString(\"base64\")\nreturn `Basic ${base64encodedData}`\n}\n```", - "properties": { - "channel": { - "default": "latest", - "description": "The channel.", - "type": [ - "null", - "string" - ] - }, - "owner": { - "description": "Repository owner", - "type": "string" - }, - "provider": { - "const": "bitbucket", - "description": "The provider. Must be `bitbucket`.", - "type": "string" - }, - "publishAutoUpdate": { - "default": true, - "description": "Whether to publish auto update info files.\n\nAuto update relies only on the first provider in the list (you can specify several publishers).\nThus, probably, there`s no need to upload the metadata files for the other configured providers. But by default will be uploaded.", - "type": "boolean" - }, - "publisherName": { - "anyOf": [ - { - "items": { - "type": "string" - }, - "type": "array" - }, - { - "type": "null" - } - ] - }, - "requestHeaders": { - "$ref": "#/definitions/OutgoingHttpHeaders", - "description": "Any custom request headers" - }, - "slug": { - "description": "Repository slug/name", - "type": "string" - }, - "timeout": { - "default": 120000, - "description": "Request timeout in milliseconds. (Default is 2 minutes; O is ignored)", - "type": [ - "null", - "number" - ] - }, - "token": { - "description": "The [app password](https://bitbucket.org/account/settings/app-passwords) to support auto-update from private bitbucket repositories.", - "type": [ - "null", - "string" - ] - }, - "updaterCacheDirName": { - "type": [ - "null", - "string" - ] - }, - "username": { - "description": "The user name to support auto-update from private bitbucket repositories.", - "type": [ - "null", - "string" - ] - } - }, - "required": [ - "owner", - "provider", - "slug" - ], - "type": "object" - }, - "Concurrency": { - "additionalProperties": false, - "properties": { - "jobs": { - "default": 1, - "description": "The maximum number of concurrent jobs to run.", - "type": "number" - } - }, - "required": [ - "jobs" - ], - "type": "object" - }, - "CustomNsisBinary": { - "additionalProperties": false, - "properties": { - "checksum": { - "default": "VKMiizYdmNdJOWpRGz4trl4lD++BvYP2irAXpMilheUP0pc93iKlWAoP843Vlraj8YG19CVn0j+dCo/hURz9+Q==", - "type": [ - "null", - "string" - ] - }, - "debugLogging": { - "description": "Whether or not to enable NSIS logging for debugging.\nNote: Requires a debug-enabled NSIS build.\nelectron-builder's included `makensis` does not natively support debug-enabled NSIS installers currently, you must supply your own via `customNsisBinary?: CustomNsisBinary`\nIn your custom nsis scripts, you can leverage this functionality via `LogSet` and `LogText`", - "type": [ - "null", - "boolean" - ] - }, - "url": { - "default": "https://github.com/electron-userland/electron-builder-binaries/releases/download/nsis-3.0.4.1/nsis-3.0.4.1.7z", - "type": [ - "null", - "string" - ] - }, - "version": { - "default": "3.0.4.1", - "type": [ - "null", - "string" - ] - } - }, - "required": [ - "url" - ], - "type": "object" - }, - "CustomNsisResources": { - "additionalProperties": false, - "properties": { - "checksum": { - "default": "Dqd6g+2buwwvoG1Vyf6BHR1b+25QMmPcwZx40atOT57gH27rkjOei1L0JTldxZu4NFoEmW4kJgZ3DlSWVON3+Q==", - "type": "string" - }, - "url": { - "default": "https://github.com/electron-userland/electron-builder-binaries/releases/download/nsis-resources-3.4.1/nsis-resources-3.4.1.7z", - "type": "string" - }, - "version": { - "default": "3.4.1", - "type": "string" - } - }, - "required": [ - "checksum", - "url", - "version" - ], - "type": "object" - }, - "CustomPublishOptions": { - "additionalProperties": {}, - "properties": { - "provider": { - "const": "custom", - "description": "The provider. Must be `custom`.", - "type": "string" - }, - "publishAutoUpdate": { - "default": true, - "description": "Whether to publish auto update info files.\n\nAuto update relies only on the first provider in the list (you can specify several publishers).\nThus, probably, there`s no need to upload the metadata files for the other configured providers. But by default will be uploaded.", - "type": "boolean" - }, - "publisherName": { - "anyOf": [ - { - "items": { - "type": "string" - }, - "type": "array" - }, - { - "type": "null" - } - ] - }, - "requestHeaders": { - "$ref": "#/definitions/OutgoingHttpHeaders", - "description": "Any custom request headers" - }, - "timeout": { - "default": 120000, - "description": "Request timeout in milliseconds. (Default is 2 minutes; O is ignored)", - "type": [ - "null", - "number" - ] - }, - "updateProvider": { - "description": "The Provider to provide UpdateInfo regarding available updates. Required\nto use custom providers with electron-updater.", - "typeof": "function" - }, - "updaterCacheDirName": { - "type": [ - "null", - "string" - ] - } - }, - "required": [ - "provider" - ], - "type": "object" - }, - "DebOptions": { - "additionalProperties": false, - "properties": { - "afterInstall": { - "description": "File path to script to be passed to FPM for `--after-install` arg.", - "type": [ - "null", - "string" - ] - }, - "afterRemove": { - "description": "File path to script to be passed to FPM for `--after-remove` arg.", - "type": [ - "null", - "string" - ] - }, - "appArmorProfile": { - "description": "File path to custom AppArmor profile (Ubuntu 24+)", - "type": [ - "null", - "string" - ] - }, - "artifactName": { - "description": "The [artifact file name template](./configuration.md#artifact-file-name-template).", - "type": [ - "null", - "string" - ] - }, - "category": { - "description": "The [application category](https://specifications.freedesktop.org/menu-spec/latest/apa.html#main-category-registry).", - "type": [ - "null", - "string" - ] - }, - "compression": { - "anyOf": [ - { - "enum": [ - "bzip2", - "gz", - "lzo", - "xz" - ], - "type": "string" - }, - { - "type": "null" - } - ], - "default": "xz", - "description": "The compression type." - }, - "depends": { - "anyOf": [ - { - "items": { - "type": "string" - }, - "type": "array" - }, - { - "type": "null" - } - ], - "default": [ - "libgtk-3-0", - "libnotify4", - "libnss3", - "libxss1", - "libxtst6", - "xdg-utils", - "libatspi2.0-0", - "libuuid1", - "libsecret-1-0" - ], - "description": "Package dependencies.\nIf need to support Debian, `libappindicator1` should be removed, it is [deprecated in Debian](https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=895037).\nIf need to support KDE, `gconf2` and `gconf-service` should be removed as it's no longer used [by GNOME](https://packages.debian.org/bullseye/gconf2)." - }, - "description": { - "description": "As [description](./configuration.md#description) from application package.json, but allows you to specify different for Linux.", - "type": [ - "null", - "string" - ] - }, - "desktop": { - "anyOf": [ - { - "$ref": "#/definitions/LinuxDesktopFile" - }, - { - "type": "null" - } - ], - "description": "The [Desktop file](https://developer.gnome.org/documentation/guidelines/maintainer/integrating.html#desktop-files)" - }, - "executableArgs": { - "anyOf": [ - { - "items": { - "type": "string" - }, - "type": "array" - }, - { - "type": "null" - } - ], - "description": "The executable parameters. Pass to executableName" - }, - "fpm": { - "anyOf": [ - { - "items": { - "type": "string" - }, - "type": "array" - }, - { - "type": "null" - } - ], - "description": "*Advanced only* The [fpm](https://fpm.readthedocs.io/en/latest/cli-reference.html) options.\n\nExample: `[\"--before-install=build/deb-preinstall.sh\", \"--after-upgrade=build/deb-postinstall.sh\"]`" - }, - "icon": { - "type": "string" - }, - "maintainer": { - "type": [ - "null", - "string" - ] - }, - "mimeTypes": { - "anyOf": [ - { - "items": { - "type": "string" - }, - "type": "array" - }, - { - "type": "null" - } - ], - "description": "The mime types in addition to specified in the file associations. Use it if you don't want to register a new mime type, but reuse existing." - }, - "packageCategory": { - "description": "The [package category](https://www.debian.org/doc/debian-policy/ch-controlfields.html#s-f-Section).", - "type": [ - "null", - "string" - ] - }, - "packageName": { - "description": "The name of the package.", - "type": [ - "null", - "string" - ] - }, - "priority": { - "description": "The [Priority](https://www.debian.org/doc/debian-policy/ch-controlfields.html#s-f-Priority) attribute.", - "type": [ - "null", - "string" - ] - }, - "publish": { - "anyOf": [ - { - "$ref": "#/definitions/GithubOptions" - }, - { - "$ref": "#/definitions/GitlabOptions" - }, - { - "$ref": "#/definitions/S3Options" - }, - { - "$ref": "#/definitions/SpacesOptions" - }, - { - "$ref": "#/definitions/GenericServerOptions" - }, - { - "$ref": "#/definitions/CustomPublishOptions" - }, - { - "$ref": "#/definitions/KeygenOptions" - }, - { - "$ref": "#/definitions/SnapStoreOptions" - }, - { - "$ref": "#/definitions/BitbucketOptions" - }, - { - "items": { - "$ref": "#/definitions/AllPublishOptions" - }, - "type": "array" - }, - { - "type": [ - "null", - "string" - ] - } - ] - }, - "recommends": { - "anyOf": [ - { - "items": { - "type": "string" - }, - "type": "array" - }, - { - "type": "null" - } - ], - "default": [ - "libappindicator3-1" - ], - "description": "The [recommended package dependencies](https://www.debian.org/doc/debian-policy/ch-relationships.html#s-binarydeps)." - }, - "synopsis": { - "description": "The [short description](https://www.debian.org/doc/debian-policy/ch-controlfields.html#s-f-Description).", - "type": [ - "null", - "string" - ] - }, - "vendor": { - "type": [ - "null", - "string" - ] - } - }, - "type": "object" - }, - "DmgContent": { - "additionalProperties": false, - "properties": { - "name": { - "description": "The name of the file within the DMG. Defaults to basename of `path`.", - "type": "string" - }, - "path": { - "description": "The path of the file within the DMG.", - "type": "string" - }, - "type": { - "enum": [ - "dir", - "file", - "link" - ], - "type": "string" - }, - "x": { - "description": "The device-independent pixel offset from the left of the window to the **center** of the icon.", - "type": "number" - }, - "y": { - "description": "The device-independent pixel offset from the top of the window to the **center** of the icon.", - "type": "number" - } - }, - "required": [ - "x", - "y" - ], - "type": "object" - }, - "DmgOptions": { - "additionalProperties": false, - "properties": { - "artifactName": { - "description": "The [artifact file name template](./configuration.md#artifact-file-name-template).", - "type": [ - "null", - "string" - ] - }, - "background": { - "description": "The path to background image (default: `build/background.tiff` or `build/background.png` if exists). The resolution of this file determines the resolution of the installer window.\nIf background is not specified, use `window.size`. Default locations expected background size to be 540x380.", - "type": [ - "null", - "string" - ] - }, - "backgroundColor": { - "description": "The background color (accepts css colors). Defaults to `#ffffff` (white) if no background image.", - "type": [ - "null", - "string" - ] - }, - "badgeIcon": { - "description": "The path to DMG icon (badge icon), which will be shown when mounted, relative to the [build resources](./contents.md#extraresources) or to the project directory.", - "type": [ - "null", - "string" - ] - }, - "contents": { - "description": "The content — to customize icon locations. The x and y coordinates refer to the position of the **center** of the icon (at 1x scale), and do not take the label into account.", - "items": { - "$ref": "#/definitions/DmgContent" - }, - "type": "array" - }, - "format": { - "default": "UDZO", - "description": "The disk image format. `ULFO` (lzfse-compressed image (OS X 10.11+ only)).", - "enum": [ - "UDBZ", - "UDCO", - "UDRO", - "UDRW", - "UDZO", - "ULFO" - ], - "type": "string" - }, - "icon": { - "description": "The path to DMG icon (volume icon), which will be shown when mounted, relative to the [build resources](./contents.md#extraresources) or to the project directory.\nDefaults to the application icon (`build/icon.icns`).", - "type": [ - "null", - "string" - ] - }, - "iconSize": { - "default": 80, - "description": "The size of all the icons inside the DMG.", - "type": [ - "null", - "number" - ] - }, - "iconTextSize": { - "default": 12, - "description": "The size of all the icon texts inside the DMG.", - "type": [ - "null", - "number" - ] - }, - "internetEnabled": { - "default": false, - "description": "Whether to create internet-enabled disk image (when it is downloaded using a browser it will automatically decompress the image, put the application on the desktop, unmount and remove the disk image file).", - "type": "boolean" - }, - "publish": { - "anyOf": [ - { - "$ref": "#/definitions/GithubOptions" - }, - { - "$ref": "#/definitions/GitlabOptions" - }, - { - "$ref": "#/definitions/S3Options" - }, - { - "$ref": "#/definitions/SpacesOptions" - }, - { - "$ref": "#/definitions/GenericServerOptions" - }, - { - "$ref": "#/definitions/CustomPublishOptions" - }, - { - "$ref": "#/definitions/KeygenOptions" - }, - { - "$ref": "#/definitions/SnapStoreOptions" - }, - { - "$ref": "#/definitions/BitbucketOptions" - }, - { - "items": { - "$ref": "#/definitions/AllPublishOptions" - }, - "type": "array" - }, - { - "type": [ - "null", - "string" - ] - } - ] - }, - "sign": { - "default": false, - "description": "Whether to sign the DMG or not. Signing is not required and will lead to unwanted errors in combination with notarization requirements.", - "type": "boolean" - }, - "title": { - "default": "${productName} ${version}", - "description": "The title of the produced DMG, which will be shown when mounted (volume name).\n\nMacro `${productName}`, `${version}` and `${name}` are supported.", - "type": [ - "null", - "string" - ] - }, - "window": { - "$ref": "#/definitions/DmgWindow", - "description": "The DMG window position and size. With y co-ordinates running from bottom to top.\n\nThe Finder makes sure that the window will be on the user’s display, so if you want your window at the top left of the display you could use `\"x\": 0, \"y\": 100000` as the x, y co-ordinates.\nIt is not to be possible to position the window relative to the [top left](https://github.com/electron-userland/electron-builder/issues/3990#issuecomment-512960957) or relative to the center of the user’s screen." - }, - "writeUpdateInfo": { - "default": true, - "type": "boolean" - } - }, - "type": "object" - }, - "DmgWindow": { - "additionalProperties": false, - "properties": { - "height": { - "description": "The height. Defaults to background image height or 380.", - "type": "number" - }, - "width": { - "description": "The width. Defaults to background image width or 540.", - "type": "number" - }, - "x": { - "default": 400, - "description": "The X position relative to left of the screen.", - "type": "number" - }, - "y": { - "default": 100, - "description": "The Y position relative to bottom of the screen.", - "type": "number" - } - }, - "type": "object" - }, - "ElectronBrandingOptions": { - "additionalProperties": false, - "description": "Electron distributables branding options.", - "properties": { - "productName": { - "type": "string" - }, - "projectName": { - "type": "string" - } - }, - "type": "object" - }, - "ElectronDownloadOptions": { - "additionalProperties": false, - "properties": { - "arch": { - "type": "string" - }, - "cache": { - "description": "The [cache location](https://github.com/electron-userland/electron-download#cache-location).", - "type": [ - "null", - "string" - ] - }, - "customDir": { - "type": [ - "null", - "string" - ] - }, - "customFilename": { - "type": [ - "null", - "string" - ] - }, - "isVerifyChecksum": { - "type": "boolean" - }, - "mirror": { - "description": "The mirror.", - "type": [ - "null", - "string" - ] - }, - "platform": { - "enum": [ - "darwin", - "linux", - "mas", - "win32" - ], - "type": "string" - }, - "strictSSL": { - "type": "boolean" - }, - "version": { - "type": "string" - } - }, - "type": "object" - }, - "FileAssociation": { - "additionalProperties": false, - "description": "File associations.\n\nmacOS (corresponds to [CFBundleDocumentTypes](https://developer.apple.com/library/content/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html#//apple_ref/doc/uid/20001431-101685)), NSIS, and MSI only.\n\nOn Windows (NSIS) works only if [nsis.perMachine](https://www.electron.build/nsis) is set to `true`.", - "properties": { - "description": { - "description": "*windows-only.* The description.", - "type": [ - "null", - "string" - ] - }, - "ext": { - "anyOf": [ - { - "items": { - "type": "string" - }, - "type": "array" - }, - { - "type": "string" - } - ], - "description": "The extension (minus the leading period). e.g. `png`." - }, - "icon": { - "description": "The path to icon (`.icns` for MacOS and `.ico` for Windows), relative to `build` (build resources directory). Defaults to `${firstExt}.icns`/`${firstExt}.ico` (if several extensions specified, first is used) or to application icon.\n\nNot supported on Linux, file issue if need (default icon will be `x-office-document`). Not supported on MSI.", - "type": [ - "null", - "string" - ] - }, - "isPackage": { - "description": "*macOS-only* Whether the document is distributed as a bundle. If set to true, the bundle directory is treated as a file. Corresponds to `LSTypeIsPackage`.", - "type": "boolean" - }, - "mimeType": { - "description": "*linux-only.* The mime-type.", - "type": [ - "null", - "string" - ] - }, - "name": { - "description": "The name. e.g. `PNG`. Defaults to `ext`.", - "type": [ - "null", - "string" - ] - }, - "rank": { - "default": "Default", - "description": "*macOS-only* The app’s rank with respect to the type. The value can be `Owner`, `Default`, `Alternate`, or `None`. Corresponds to `LSHandlerRank`.", - "type": "string" - }, - "role": { - "default": "Editor", - "description": "*macOS-only* The app’s role with respect to the type. The value can be `Editor`, `Viewer`, `Shell`, or `None`. Corresponds to `CFBundleTypeRole`.", - "type": "string" - } - }, - "required": [ - "ext" - ], - "type": "object" - }, - "FileSet": { - "additionalProperties": false, - "properties": { - "filter": { - "anyOf": [ - { - "items": { - "type": "string" - }, - "type": "array" - }, - { - "type": "string" - } - ], - "description": "The [glob patterns](./file-patterns.md). Defaults to \"**\\/*\"" - }, - "from": { - "description": "The source path relative to and defaults to:\n\n - the [app directory](configuration.md#directories) for `files`,\n - the project directory for `extraResources` and `extraFiles`.\nIf you don't use two-package.json structure and don't set custom app directory, app directory equals to project directory.", - "type": "string" - }, - "to": { - "description": "The destination path relative to and defaults to:\n\n - the asar archive root for `files`,\n - the app's content directory for `extraFiles`,\n - the app's resource directory for `extraResources`.", - "type": "string" - } - }, - "type": "object" - }, - "FlatpakOptions": { - "additionalProperties": false, - "properties": { - "artifactName": { - "description": "The [artifact file name template](./configuration.md#artifact-file-name-template).", - "type": [ - "null", - "string" - ] - }, - "base": { - "description": "Start with the files from the specified application. This can be used to create applications that extend another application.\nDefaults to [org.electronjs.Electron2.BaseApp](https://github.com/flathub/org.electronjs.Electron2.BaseApp).\n\nSee [flatpak manifest documentation](https://docs.flatpak.org/en/latest/flatpak-builder-command-reference.html#flatpak-manifest).", - "type": "string" - }, - "baseVersion": { - "description": "Use this specific version of the application specified in base. Defaults to `20.08`.\n\nSee [flatpak manifest documentation](https://docs.flatpak.org/en/latest/flatpak-builder-command-reference.html#flatpak-manifest).", - "type": "string" - }, - "branch": { - "description": "The branch to use when exporting the application. Defaults to `master`.\n\nSee [flatpak manifest documentation](https://docs.flatpak.org/en/latest/flatpak-builder-command-reference.html#flatpak-manifest).", - "type": "string" - }, - "category": { - "description": "The [application category](https://specifications.freedesktop.org/menu-spec/latest/apa.html#main-category-registry).", - "type": [ - "null", - "string" - ] - }, - "description": { - "description": "As [description](./configuration.md#description) from application package.json, but allows you to specify different for Linux.", - "type": [ - "null", - "string" - ] - }, - "desktop": { - "anyOf": [ - { - "$ref": "#/definitions/LinuxDesktopFile" - }, - { - "type": "null" - } - ], - "description": "The [Desktop file](https://developer.gnome.org/documentation/guidelines/maintainer/integrating.html#desktop-files)" - }, - "executableArgs": { - "anyOf": [ - { - "items": { - "type": "string" - }, - "type": "array" - }, - { - "type": "null" - } - ], - "description": "The executable parameters. Pass to executableName" - }, - "files": { - "description": "Files to copy directly into the app. Should be a list of [source, dest] tuples. Source should be a relative/absolute path to a file/directory to copy into the flatpak, and dest should be the path inside the app install prefix (e.g. /share/applications/).\n\nSee [@malept/flatpak-bundler documentation](https://github.com/malept/flatpak-bundler#build-options).", - "items": { - "items": [ - { - "type": "string" - }, - { - "type": "string" - } - ], - "maxItems": 2, - "minItems": 2, - "type": "array" - }, - "type": "array" - }, - "finishArgs": { - "description": "An array of arguments passed to the flatpak build-finish command. Defaults to:\n```json\n[\n // Wayland/X11 Rendering\n \"--socket=wayland\",\n \"--socket=x11\",\n \"--share=ipc\",\n // Open GL\n \"--device=dri\",\n // Audio output\n \"--socket=pulseaudio\",\n // Read/write home directory access\n \"--filesystem=home\",\n // Allow communication with network\n \"--share=network\",\n // System notifications with libnotify\n \"--talk-name=org.freedesktop.Notifications\",\n]\n```\n\nSee [flatpak manifest documentation](https://docs.flatpak.org/en/latest/flatpak-builder-command-reference.html#flatpak-manifest).", - "items": { - "type": "string" - }, - "type": "array" - }, - "license": { - "description": "The path to EULA license file. Defaults to `license.txt` or `eula.txt` (or uppercase variants). Only plain text is supported.", - "type": [ - "null", - "string" - ] - }, - "mimeTypes": { - "anyOf": [ - { - "items": { - "type": "string" - }, - "type": "array" - }, - { - "type": "null" - } - ], - "description": "The mime types in addition to specified in the file associations. Use it if you don't want to register a new mime type, but reuse existing." - }, - "modules": { - "description": "An array of objects specifying the modules to be built in order.\n\nSee [flatpak manifest documentation](https://docs.flatpak.org/en/latest/flatpak-builder-command-reference.html#flatpak-manifest).", - "items": {}, - "type": "array" - }, - "publish": { - "anyOf": [ - { - "$ref": "#/definitions/GithubOptions" - }, - { - "$ref": "#/definitions/GitlabOptions" - }, - { - "$ref": "#/definitions/S3Options" - }, - { - "$ref": "#/definitions/SpacesOptions" - }, - { - "$ref": "#/definitions/GenericServerOptions" - }, - { - "$ref": "#/definitions/CustomPublishOptions" - }, - { - "$ref": "#/definitions/KeygenOptions" - }, - { - "$ref": "#/definitions/SnapStoreOptions" - }, - { - "$ref": "#/definitions/BitbucketOptions" - }, - { - "items": { - "$ref": "#/definitions/AllPublishOptions" - }, - "type": "array" - }, - { - "type": [ - "null", - "string" - ] - } - ] - }, - "runtime": { - "description": "The name of the runtime that the application uses. Defaults to `org.freedesktop.Platform`.\n\nSee [flatpak manifest documentation](https://docs.flatpak.org/en/latest/flatpak-builder-command-reference.html#flatpak-manifest).", - "type": "string" - }, - "runtimeVersion": { - "description": "The version of the runtime that the application uses. Defaults to `20.08`.\n\nSee [flatpak manifest documentation](https://docs.flatpak.org/en/latest/flatpak-builder-command-reference.html#flatpak-manifest).", - "type": "string" - }, - "sdk": { - "description": "The name of the development runtime that the application builds with. Defaults to `org.freedesktop.Sdk`.\n\nSee [flatpak manifest documentation](https://docs.flatpak.org/en/latest/flatpak-builder-command-reference.html#flatpak-manifest).", - "type": "string" - }, - "symlinks": { - "description": "Symlinks to create in the app files. Should be a list of [target, location] symlink tuples. Target can be either a relative or absolute path inside the app install prefix, and location should be a absolute path inside the prefix to create the symlink at.\n\nSee [@malept/flatpak-bundler documentation](https://github.com/malept/flatpak-bundler#build-options).", - "items": { - "items": [ - { - "type": "string" - }, - { - "type": "string" - } - ], - "maxItems": 2, - "minItems": 2, - "type": "array" - }, - "type": "array" - }, - "synopsis": { - "description": "The [short description](https://www.debian.org/doc/debian-policy/ch-controlfields.html#s-f-Description).", - "type": [ - "null", - "string" - ] - }, - "useWaylandFlags": { - "description": "Whether to enable the Wayland specific flags (`--enable-features=UseOzonePlatform --ozone-platform=wayland`) in the wrapper script. These flags are only available starting with Electron version 12. Defaults to `false`.", - "type": "boolean" - } - }, - "type": "object" - }, - "FuseOptionsV1": { - "additionalProperties": false, - "description": "All options come from [@electron/fuses](https://github.com/electron/fuses)\nRef: https://raw.githubusercontent.com/electron/electron/refs/heads/main/docs/tutorial/fuses.md", - "properties": { - "enableCookieEncryption": { - "description": "The cookieEncryption fuse toggles whether the cookie store on disk is encrypted using OS level cryptography keys. By default the sqlite database that Chromium uses to store cookies stores the values in plaintext. If you wish to ensure your apps cookies are encrypted in the same way Chrome does then you should enable this fuse. Please note it is a one-way transition, if you enable this fuse existing unencrypted cookies will be encrypted-on-write but if you then disable the fuse again your cookie store will effectively be corrupt and useless. Most apps can safely enable this fuse.", - "type": "boolean" - }, - "enableEmbeddedAsarIntegrityValidation": { - "description": "The embeddedAsarIntegrityValidation fuse toggles an experimental feature on macOS that validates the content of the `app.asar` file when it is loaded. This feature is designed to have a minimal performance impact but may marginally slow down file reads from inside the `app.asar` archive.\nCurrently, ASAR integrity checking is supported on:\n\n - macOS as of electron>=16.0.0\n - Windows as of electron>=30.0.0\n\nFor more information on how to use asar integrity validation please read the [Asar Integrity](https://github.com/electron/electron/blob/main/docs/tutorial/asar-integrity.md) documentation.", - "type": "boolean" - }, - "enableNodeCliInspectArguments": { - "description": "The nodeCliInspect fuse toggles whether the `--inspect`, `--inspect-brk`, etc. flags are respected or not. When disabled it also ensures that `SIGUSR1` signal does not initialize the main process inspector. Most apps can safely disable this fuse.", - "type": "boolean" - }, - "enableNodeOptionsEnvironmentVariable": { - "description": "The nodeOptions fuse toggles whether the [`NODE_OPTIONS`](https://nodejs.org/api/cli.html#node_optionsoptions) and [`NODE_EXTRA_CA_CERTS`](https://github.com/nodejs/node/blob/main/doc/api/cli.md#node_extra_ca_certsfile) environment variables are respected. The `NODE_OPTIONS` environment variable can be used to pass all kinds of custom options to the Node.js runtime and isn't typically used by apps in production. Most apps can safely disable this fuse.", - "type": "boolean" - }, - "grantFileProtocolExtraPrivileges": { - "description": "The grantFileProtocolExtraPrivileges fuse changes whether pages loaded from the `file://` protocol are given privileges beyond what they would receive in a traditional web browser. This behavior was core to Electron apps in original versions of Electron but is no longer required as apps should be [serving local files from custom protocols](https://github.com/electron/electron/blob/main/docs/tutorial/security.md#18-avoid-usage-of-the-file-protocol-and-prefer-usage-of-custom-protocols) now instead. If you aren't serving pages from `file://` you should disable this fuse.\nThe extra privileges granted to the `file://` protocol by this fuse are incompletely documented below:\n\n - `file://` protocol pages can use `fetch` to load other assets over `file://`\n - `file://` protocol pages can use service workers\n - `file://` protocol pages have universal access granted to child frames also running on `file://` protocols regardless of sandbox settings", - "type": "boolean" - }, - "loadBrowserProcessSpecificV8Snapshot": { - "description": "The loadBrowserProcessSpecificV8Snapshot fuse changes which V8 snapshot file is used for the browser process. By default Electron's processes will all use the same V8 snapshot file. When this fuse is enabled the browser process uses the file called `browser_v8_context_snapshot.bin` for its V8 snapshot. The other processes will use the V8 snapshot file that they normally do.", - "type": "boolean" - }, - "onlyLoadAppFromAsar": { - "description": "The onlyLoadAppFromAsar fuse changes the search system that Electron uses to locate your app code. By default Electron will search in the following order `app.asar` -> `app` -> `default_app.asar`. When this fuse is enabled the search order becomes a single entry `app.asar` thus ensuring that when combined with the `embeddedAsarIntegrityValidation` fuse it is impossible to load non-validated code.", - "type": "boolean" - }, - "resetAdHocDarwinSignature": { - "description": "Resets the app signature, specifically used for macOS.\nNote: This should be unneeded since electron-builder signs the app directly after flipping the fuses.\nRef: https://github.com/electron/fuses?tab=readme-ov-file#apple-silicon", - "type": "boolean" - }, - "runAsNode": { - "description": "The runAsNode fuse toggles whether the `ELECTRON_RUN_AS_NODE` environment variable is respected or not. Please note that if this fuse is disabled then `process.fork` in the main process will not function as expected as it depends on this environment variable to function. Instead, we recommend that you use [Utility Processes](https://github.com/electron/electron/blob/main/docs/api/utility-process.md), which work for many use cases where you need a standalone Node.js process (like a Sqlite server process or similar scenarios).", - "type": "boolean" - } - }, - "type": "object" - }, - "GenericServerOptions": { - "additionalProperties": false, - "description": "Generic (any HTTP(S) server) options.\nIn all publish options [File Macros](./file-patterns.md#file-macros) are supported.", - "properties": { - "channel": { - "default": "latest", - "description": "The channel.", - "type": [ - "null", - "string" - ] - }, - "provider": { - "const": "generic", - "description": "The provider. Must be `generic`.", - "type": "string" - }, - "publishAutoUpdate": { - "default": true, - "description": "Whether to publish auto update info files.\n\nAuto update relies only on the first provider in the list (you can specify several publishers).\nThus, probably, there`s no need to upload the metadata files for the other configured providers. But by default will be uploaded.", - "type": "boolean" - }, - "publisherName": { - "anyOf": [ - { - "items": { - "type": "string" - }, - "type": "array" - }, - { - "type": "null" - } - ] - }, - "requestHeaders": { - "$ref": "#/definitions/OutgoingHttpHeaders", - "description": "Any custom request headers" - }, - "timeout": { - "default": 120000, - "description": "Request timeout in milliseconds. (Default is 2 minutes; O is ignored)", - "type": [ - "null", - "number" - ] - }, - "updaterCacheDirName": { - "type": [ - "null", - "string" - ] - }, - "url": { - "description": "The base url. e.g. `https://bucket_name.s3.amazonaws.com`.", - "type": "string" - }, - "useMultipleRangeRequest": { - "description": "Whether to use multiple range requests for differential update. Defaults to `true` if `url` doesn't contain `s3.amazonaws.com`.", - "type": "boolean" - } - }, - "required": [ - "provider", - "url" - ], - "type": "object" - }, - "GithubOptions": { - "additionalProperties": false, - "description": "[GitHub](https://help.github.com/articles/about-releases/) options.\n\nGitHub [personal access token](https://help.github.com/articles/creating-an-access-token-for-command-line-use/) is required. You can generate by going to [https://github.com/settings/tokens/new](https://github.com/settings/tokens/new). The access token should have the repo scope/permission.\nDefine `GH_TOKEN` environment variable.", - "properties": { - "channel": { - "default": "latest", - "description": "The channel.", - "type": [ - "null", - "string" - ] - }, - "host": { - "default": "github.com", - "description": "The host (including the port if need).", - "type": [ - "null", - "string" - ] - }, - "owner": { - "description": "The owner.", - "type": [ - "null", - "string" - ] - }, - "private": { - "description": "Whether to use private github auto-update provider if `GH_TOKEN` environment variable is defined. See [Private GitHub Update Repo](./auto-update.md#private-github-update-repo).", - "type": [ - "null", - "boolean" - ] - }, - "protocol": { - "anyOf": [ - { - "enum": [ - "http", - "https" - ], - "type": "string" - }, - { - "type": "null" - } - ], - "default": "https", - "description": "The protocol. GitHub Publisher supports only `https`." - }, - "provider": { - "const": "github", - "description": "The provider. Must be `github`.", - "type": "string" - }, - "publishAutoUpdate": { - "default": true, - "description": "Whether to publish auto update info files.\n\nAuto update relies only on the first provider in the list (you can specify several publishers).\nThus, probably, there`s no need to upload the metadata files for the other configured providers. But by default will be uploaded.", - "type": "boolean" - }, - "publisherName": { - "anyOf": [ - { - "items": { - "type": "string" - }, - "type": "array" - }, - { - "type": "null" - } - ] - }, - "releaseType": { - "anyOf": [ - { - "enum": [ - "draft", - "prerelease", - "release" - ], - "type": "string" - }, - { - "type": "null" - } - ], - "default": "draft", - "description": "The type of release. By default `draft` release will be created.\n\nAlso you can set release type using environment variable. If `EP_DRAFT`is set to `true` — `draft`, if `EP_PRE_RELEASE`is set to `true` — `prerelease`." - }, - "repo": { - "description": "The repository name. [Detected automatically](#github-repository-and-bintray-package).", - "type": [ - "null", - "string" - ] - }, - "requestHeaders": { - "$ref": "#/definitions/OutgoingHttpHeaders", - "description": "Any custom request headers" - }, - "tagNamePrefix": { - "description": "If defined, sets the prefix of the tag name that comes before the semver number.\ne.g. \"v\" in \"v1.2.3\" or \"test\" of \"test1.2.3\".\nOverrides `vPrefixedTagName`", - "type": "string" - }, - "timeout": { - "default": 120000, - "description": "Request timeout in milliseconds. (Default is 2 minutes; O is ignored)", - "type": [ - "null", - "number" - ] - }, - "token": { - "description": "The access token to support auto-update from private github repositories. Never specify it in the configuration files. Only for [setFeedURL](./auto-update.md#appupdatersetfeedurloptions).", - "type": [ - "null", - "string" - ] - }, - "updaterCacheDirName": { - "type": [ - "null", - "string" - ] - }, - "vPrefixedTagName": { - "default": true, - "description": "Whether to use `v`-prefixed tag name.", - "type": "boolean" - } - }, - "required": [ - "provider" - ], - "type": "object" - }, - "GitlabOptions": { - "additionalProperties": false, - "description": "[GitLab](https://docs.gitlab.com/ee/user/project/releases/) options.\n\nGitLab [personal access token](https://docs.gitlab.com/ee/user/profile/personal_access_tokens.html) is required for private repositories. You can generate one by going to your GitLab profile settings.\nDefine `GITLAB_TOKEN` environment variable.", - "properties": { - "channel": { - "default": "latest", - "description": "The channel.", - "type": [ - "null", - "string" - ] - }, - "host": { - "default": "gitlab.com", - "description": "The GitLab host (including the port if need).", - "type": [ - "null", - "string" - ] - }, - "projectId": { - "description": "The GitLab project ID or path (e.g., \"12345678\" or \"namespace/project\").", - "type": [ - "null", - "string", - "number" - ] - }, - "provider": { - "const": "gitlab", - "description": "The provider. Must be `gitlab`.", - "type": "string" - }, - "publishAutoUpdate": { - "default": true, - "description": "Whether to publish auto update info files.\n\nAuto update relies only on the first provider in the list (you can specify several publishers).\nThus, probably, there`s no need to upload the metadata files for the other configured providers. But by default will be uploaded.", - "type": "boolean" - }, - "publisherName": { - "anyOf": [ - { - "items": { - "type": "string" - }, - "type": "array" - }, - { - "type": "null" - } - ] - }, - "requestHeaders": { - "$ref": "#/definitions/OutgoingHttpHeaders", - "description": "Any custom request headers" - }, - "timeout": { - "default": 120000, - "description": "Request timeout in milliseconds. (Default is 2 minutes; O is ignored)", - "type": [ - "null", - "number" - ] - }, - "token": { - "description": "The access token to support auto-update from private GitLab repositories. Never specify it in the configuration files.", - "type": [ - "null", - "string" - ] - }, - "updaterCacheDirName": { - "type": [ - "null", - "string" - ] - }, - "uploadTarget": { - "anyOf": [ - { - "enum": [ - "generic_package", - "project_upload" - ], - "type": "string" - }, - { - "type": "null" - } - ], - "default": "project_upload", - "description": "Upload target method. Can be \"project_upload\" for GitLab project uploads or \"generic_package\" for GitLab generic packages." - }, - "vPrefixedTagName": { - "default": true, - "description": "Whether to use `v`-prefixed tag name.", - "type": "boolean" - } - }, - "required": [ - "provider" - ], - "type": "object" - }, - "KeygenOptions": { - "additionalProperties": false, - "description": "Keygen options.\nhttps://keygen.sh/\nDefine `KEYGEN_TOKEN` environment variable.", - "properties": { - "account": { - "description": "Keygen account's UUID", - "type": "string" - }, - "channel": { - "anyOf": [ - { - "enum": [ - "alpha", - "beta", - "dev", - "rc", - "stable" - ], - "type": "string" - }, - { - "type": "null" - } - ], - "default": "stable", - "description": "The channel." - }, - "host": { - "default": "api.keygen.sh", - "description": "Keygen host for self-hosted instances", - "type": "string" - }, - "platform": { - "description": "The target Platform. Is set programmatically explicitly during publishing.", - "type": [ - "null", - "string" - ] - }, - "product": { - "description": "Keygen product's UUID", - "type": "string" - }, - "provider": { - "const": "keygen", - "description": "The provider. Must be `keygen`.", - "type": "string" - }, - "publishAutoUpdate": { - "default": true, - "description": "Whether to publish auto update info files.\n\nAuto update relies only on the first provider in the list (you can specify several publishers).\nThus, probably, there`s no need to upload the metadata files for the other configured providers. But by default will be uploaded.", - "type": "boolean" - }, - "publisherName": { - "anyOf": [ - { - "items": { - "type": "string" - }, - "type": "array" - }, - { - "type": "null" - } - ] - }, - "requestHeaders": { - "$ref": "#/definitions/OutgoingHttpHeaders", - "description": "Any custom request headers" - }, - "timeout": { - "default": 120000, - "description": "Request timeout in milliseconds. (Default is 2 minutes; O is ignored)", - "type": [ - "null", - "number" - ] - }, - "updaterCacheDirName": { - "type": [ - "null", - "string" - ] - } - }, - "required": [ - "account", - "product", - "provider" - ], - "type": "object" - }, - "LinuxConfiguration": { - "additionalProperties": false, - "properties": { - "appId": { - "default": "com.electron.${name}", - "description": "The application id. Used as [CFBundleIdentifier](https://developer.apple.com/library/ios/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html#//apple_ref/doc/uid/20001431-102070) for MacOS and as\n[Application User Model ID](https://msdn.microsoft.com/en-us/library/windows/desktop/dd378459(v=vs.85).aspx) for Windows (NSIS target only, Squirrel.Windows not supported). It is strongly recommended that an explicit ID is set.", - "type": [ - "null", - "string" - ] - }, - "artifactName": { - "description": "The [artifact file name template](./configuration.md#artifact-file-name-template). Defaults to `${productName}-${version}.${ext}` (some target can have other defaults, see corresponding options).", - "type": [ - "null", - "string" - ] - }, - "asar": { - "anyOf": [ - { - "$ref": "#/definitions/AsarOptions" - }, - { - "type": [ - "null", - "boolean" - ] - } - ], - "default": true, - "description": "Whether to package the application's source code into an archive, using [Electron's archive format](http://electron.atom.io/docs/tutorial/application-packaging/).\n\nNode modules, that must be unpacked, will be detected automatically, you don't need to explicitly set [asarUnpack](#asarUnpack) - please file an issue if this doesn't work." - }, - "asarUnpack": { - "anyOf": [ - { - "items": { - "type": "string" - }, - "type": "array" - }, - { - "type": [ - "null", - "string" - ] - } - ], - "description": "A [glob patterns](./file-patterns.md) relative to the [app directory](#directories), which specifies which files to unpack when creating the [asar](http://electron.atom.io/docs/tutorial/application-packaging/) archive." - }, - "category": { - "description": "The [application category](https://specifications.freedesktop.org/menu-spec/latest/apa.html#main-category-registry).", - "type": [ - "null", - "string" - ] - }, - "compression": { - "anyOf": [ - { - "enum": [ - "maximum", - "normal", - "store" - ], - "type": "string" - }, - { - "type": "null" - } - ], - "default": "normal", - "description": "The compression level. If you want to rapidly test build, `store` can reduce build time significantly. `maximum` doesn't lead to noticeable size difference, but increase build time." - }, - "cscKeyPassword": { - "type": [ - "null", - "string" - ] - }, - "cscLink": { - "type": [ - "null", - "string" - ] - }, - "defaultArch": { - "type": "string" - }, - "description": { - "description": "As [description](./configuration.md#description) from application package.json, but allows you to specify different for Linux.", - "type": [ - "null", - "string" - ] - }, - "desktop": { - "anyOf": [ - { - "$ref": "#/definitions/LinuxDesktopFile" - }, - { - "type": "null" - } - ], - "description": "The [Desktop file](https://developer.gnome.org/documentation/guidelines/maintainer/integrating.html#desktop-files)" - }, - "detectUpdateChannel": { - "default": true, - "description": "Whether to infer update channel from application version pre-release components. e.g. if version `0.12.1-alpha.1`, channel will be set to `alpha`. Otherwise to `latest`.\nThis does *not* apply to github publishing, which will [never auto-detect the update channel](https://github.com/electron-userland/electron-builder/issues/8589).", - "type": "boolean" - }, - "disableDefaultIgnoredFiles": { - "default": false, - "description": "Whether to exclude all default ignored files(https://www.electron.build/contents#files) and options. Defaults to `false`.", - "type": [ - "null", - "boolean" - ] - }, - "electronLanguages": { - "anyOf": [ - { - "items": { - "type": "string" - }, - "type": "array" - }, - { - "type": "string" - } - ], - "description": "The electron locales to keep. By default, all Electron locales used as-is." - }, - "electronUpdaterCompatibility": { - "description": "The [electron-updater compatibility](./auto-update.md#compatibility) semver range.", - "type": [ - "null", - "string" - ] - }, - "executableArgs": { - "anyOf": [ - { - "items": { - "type": "string" - }, - "type": "array" - }, - { - "type": "null" - } - ], - "description": "The executable parameters. Pass to executableName" - }, - "executableName": { - "description": "The executable name. Defaults to `productName`\nNote: Except for Linux, where this would constitute a breaking change in previous behavior and lead to both invalid executable names and Desktop files. Ref comments in: https://github.com/electron-userland/electron-builder/pull/9068", - "type": [ - "null", - "string" - ] - }, - "extraFiles": { - "anyOf": [ - { - "$ref": "#/definitions/FileSet" - }, - { - "items": { - "anyOf": [ - { - "$ref": "#/definitions/FileSet" - }, - { - "type": "string" - } - ] - }, - "type": "array" - }, - { - "type": [ - "null", - "string" - ] - } - ], - "description": "The same as [extraResources](#extraresources) but copy into the app's content directory (`Contents` for MacOS, root directory for Linux and Windows)." - }, - "extraResources": { - "anyOf": [ - { - "$ref": "#/definitions/FileSet" - }, - { - "items": { - "anyOf": [ - { - "$ref": "#/definitions/FileSet" - }, - { - "type": "string" - } - ] - }, - "type": "array" - }, - { - "type": [ - "null", - "string" - ] - } - ], - "description": "A [glob patterns](./file-patterns.md) relative to the project directory, when specified, copy the file or directory with matching names directly into the app's resources directory (`Contents/Resources` for MacOS, `resources` for Linux and Windows).\n\nFile patterns (and support for `from` and `to` fields) the same as for [files](#files)." - }, - "fileAssociations": { - "anyOf": [ - { - "$ref": "#/definitions/FileAssociation" - }, - { - "items": { - "$ref": "#/definitions/FileAssociation" - }, - "type": "array" - } - ], - "description": "The file associations." - }, - "files": { - "anyOf": [ - { - "$ref": "#/definitions/FileSet" - }, - { - "items": { - "anyOf": [ - { - "$ref": "#/definitions/FileSet" - }, - { - "type": "string" - } - ] - }, - "type": "array" - }, - { - "type": [ - "null", - "string" - ] - } - ], - "description": "A [glob patterns](./file-patterns.md) relative to the [app directory](configuration.md#directories), which specifies which files to include when copying files to create the package.\n\nDefaults to:\n```json\n[\n\"**\\/*\",\n\"!**\\/node_modules/*\\/{CHANGELOG.md,README.md,README,readme.md,readme}\",\n\"!**\\/node_modules/*\\/{test,__tests__,tests,powered-test,example,examples}\",\n\"!**\\/node_modules/*.d.ts\",\n\"!**\\/node_modules/.bin\",\n\"!**\\/*.{iml,o,hprof,orig,pyc,pyo,rbc,swp,csproj,sln,xproj}\",\n\"!.editorconfig\",\n\"!**\\/._*\",\n\"!**\\/{.DS_Store,.git,.hg,.svn,CVS,RCS,SCCS,.gitignore,.gitattributes}\",\n\"!**\\/{__pycache__,thumbs.db,.flowconfig,.idea,.vs,.nyc_output}\",\n\"!**\\/{appveyor.yml,.travis.yml,circle.yml}\",\n\"!**\\/{npm-debug.log,yarn.lock,.yarn-integrity,.yarn-metadata.json}\"\n]\n```\n\nDevelopment dependencies are never copied in any case. You don't need to ignore it explicitly. Hidden files are not ignored by default, but all files that should be ignored, are ignored by default.\n\nDefault pattern \\`**\\/*\\` **is not added to your custom** if some of your patterns is not ignore (i.e. not starts with `!`). `package.json` and \\`**\\/node_modules/**\\/*` (only production dependencies will be copied) is added to your custom in any case. All default ignores are added in any case — you don't need to repeat it if you configure own patterns.\n\nMay be specified in the platform options (e.g. in the [mac](mac.md)).\n\nYou may also specify custom source and destination directories by using `FileSet` objects instead of simple glob patterns.\n\n```json\n[\n{\n\"from\": \"path/to/source\",\n\"to\": \"path/to/destination\",\n\"filter\": [\"**\\/*\", \"!foo/*.js\"]\n}\n]\n```\n\nYou can use [file macros](./file-patterns.md#file-macros) in the `from` and `to` fields as well. `from` and `to` can be files and you can use this to [rename](https://github.com/electron-userland/electron-builder/issues/1119) a file while packaging." - }, - "forceCodeSigning": { - "description": "Whether to fail if app will be not code signed.", - "type": "boolean" - }, - "generateUpdatesFilesForAllChannels": { - "default": false, - "description": "Please see [Building and Releasing using Channels](https://github.com/electron-userland/electron-builder/issues/1182#issuecomment-324947139).", - "type": "boolean" - }, - "icon": { - "description": "The path to icon set directory or one png file, relative to the [build resources](./contents.md#extraresources) or to the project directory. The icon filename must contain the size (e.g. 32x32.png) of the icon.\nBy default will be generated automatically based on the macOS icns file.", + { "type": "string" - }, - "maintainer": { - "description": "The maintainer. Defaults to [author](./configuration.md#author).", - "type": [ - "null", - "string" - ] - }, - "mimeTypes": { - "anyOf": [ - { - "items": { - "type": "string" - }, - "type": "array" - }, - { - "type": "null" - } - ], - "description": "The mime types in addition to specified in the file associations. Use it if you don't want to register a new mime type, but reuse existing." - }, - "packageCategory": { - "description": "backward compatibility + to allow specify fpm-only category for all possible fpm targets in one place", - "type": [ - "null", - "string" - ] - }, - "protocols": { - "anyOf": [ - { - "$ref": "#/definitions/Protocol" - }, - { - "items": { - "$ref": "#/definitions/Protocol" - }, - "type": "array" - } - ], - "description": "The URL protocol schemes." - }, - "publish": { - "anyOf": [ - { - "$ref": "#/definitions/GithubOptions" - }, - { - "$ref": "#/definitions/GitlabOptions" - }, - { - "$ref": "#/definitions/S3Options" - }, - { - "$ref": "#/definitions/SpacesOptions" - }, - { - "$ref": "#/definitions/GenericServerOptions" - }, - { - "$ref": "#/definitions/CustomPublishOptions" - }, - { - "$ref": "#/definitions/KeygenOptions" - }, - { - "$ref": "#/definitions/SnapStoreOptions" - }, - { - "$ref": "#/definitions/BitbucketOptions" - }, - { - "items": { - "$ref": "#/definitions/AllPublishOptions" - }, - "type": "array" - }, - { - "type": [ - "null", - "string" - ] - } - ], - "description": "Publisher configuration. See [Auto Update](./publish.md) for more information." - }, - "releaseInfo": { - "$ref": "#/definitions/ReleaseInfo", - "description": "The release info. Intended for command line usage:\n\n```\n-c.releaseInfo.releaseNotes=\"new features\"\n```" - }, - "synopsis": { - "description": "The [short description](https://www.debian.org/doc/debian-policy/ch-controlfields.html#s-f-Description).", - "type": [ - "null", - "string" - ] - }, - "target": { - "anyOf": [ - { - "$ref": "#/definitions/TargetConfiguration" - }, - { - "items": { - "anyOf": [ - { - "$ref": "#/definitions/TargetConfiguration" - }, - { - "type": "string" - } - ] - }, - "type": "array" - }, - { - "type": [ - "null", - "string" - ] - } - ], - "default": "AppImage", - "description": "Target package type: list of `AppImage`, `flatpak`, `snap`, `deb`, `rpm`, `freebsd`, `pacman`, `p5p`, `apk`, `7z`, `zip`, `tar.xz`, `tar.lz`, `tar.gz`, `tar.bz2`, `dir`.\n\nelectron-builder [docker image](./multi-platform-build.md#docker) can be used to build Linux targets on any platform.\n\nPlease [do not put an AppImage into another archive](https://github.com/probonopd/AppImageKit/wiki/Creating-AppImages#common-mistake) like a .zip or .tar.gz." - }, - "vendor": { - "description": "The vendor. Defaults to [author](./configuration.md#author).", - "type": [ - "null", - "string" - ] } - }, - "type": "object" + ] }, - "LinuxDesktopFile": { - "additionalProperties": false, - "description": "Example Spec: https://specifications.freedesktop.org/desktop-entry-spec/latest/example.html", - "properties": { - "desktopActions": { - "anyOf": [ - { - "typeof": "function" - }, - { - "type": "null" - } - ], - "description": "`[Desktop Actions ]` metadata entries (name to value).\n\nConfig Example:\n```js\ndesktopActions: {\n NewWindow: {\n Name: 'New Window',\n Exec: 'app --new-window',\n }\n}\n```" - }, - "entry": { - "anyOf": [ - { - "typeof": "function" - }, - { - "type": "null" - } - ], - "description": "`[Desktop Entry]` metadata entries (name to value). Overwrites default values calculated by electron-builder" + "afterPack": { + "description": "The function (or path to file or module id) to be [run after pack](#afterpack) (but before pack into distributable format and sign).\nSame setup as {@link beforePack}", + "anyOf": [ + { + "typeof": "function" + }, + { + "type": "string" } - }, - "type": "object" + ] }, - "LinuxTargetSpecificOptions": { - "additionalProperties": false, - "properties": { - "afterInstall": { - "description": "File path to script to be passed to FPM for `--after-install` arg.", - "type": [ - "null", - "string" - ] + "afterSign": { + "description": "The function (or path to file or module id) to be [run after pack and sign](#aftersign) (but before pack into distributable format).\nSame setup as {@link beforePack}", + "anyOf": [ + { + "typeof": "function" }, - "afterRemove": { - "description": "File path to script to be passed to FPM for `--after-remove` arg.", - "type": [ - "null", - "string" - ] + { + "type": "string" + } + ] + }, + "artifactBuildStarted": { + "description": "The function (or path to file or module id) to be run on artifact build start.\nSame setup as {@link beforePack}", + "anyOf": [ + { + "typeof": "function" }, - "appArmorProfile": { - "description": "File path to custom AppArmor profile (Ubuntu 24+)", - "type": [ - "null", - "string" - ] + { + "type": "string" + } + ] + }, + "artifactBuildCompleted": { + "description": "The function (or path to file or module id) to be run on artifact build completed.\nSame setup as {@link beforePack}", + "anyOf": [ + { + "typeof": "function" }, - "artifactName": { - "description": "The [artifact file name template](./configuration.md#artifact-file-name-template).", - "type": [ - "null", - "string" - ] + { + "type": "string" + } + ] + }, + "afterAllArtifactBuild": { + "description": "The function (or path to file or module id) to be run after all artifacts are built.\n\n```typescript\n(buildResult: BuildResult): Promise> | Array\n```\n\nConfiguration in the same way as `afterPack` (see above).\n\n!!! example \"myAfterAllArtifactBuild.js\"\n```js\nexports.default = function () {\n // you can return additional files to publish\n return [\"/path/to/additional/result/file\"]\n}\n```", + "anyOf": [ + { + "typeof": "function" }, - "category": { - "description": "The [application category](https://specifications.freedesktop.org/menu-spec/latest/apa.html#main-category-registry).", - "type": [ - "null", - "string" - ] + { + "type": "string" + } + ] + }, + "msiProjectCreated": { + "description": "The function (or path to file or module id) to be run after MSI project created on disk - not packed into .msi package yet.", + "anyOf": [ + { + "typeof": "function" }, - "compression": { - "anyOf": [ - { - "enum": [ - "bzip2", - "gz", - "lzo", - "xz" - ], - "type": "string" - }, - { - "type": "null" - } - ], - "default": "xz", - "description": "The compression type." + { + "type": "string" + } + ] + }, + "appxManifestCreated": { + "description": "The function (or path to file or module id) to be run after Appx manifest created on disk - not packed into .appx package yet.", + "anyOf": [ + { + "typeof": "function" }, - "depends": { - "anyOf": [ - { - "items": { - "type": "string" - }, - "type": "array" - }, - { - "type": "null" - } - ], - "description": "Package dependencies.\n`rpm` defaults to `[\"gtk3\", \"libnotify\", \"nss\", \"libXScrnSaver\", \"(libXtst or libXtst6)\", \"xdg-utils\", \"at-spi2-core\", \"(libuuid or libuuid1)\"]`\n`pacman` defaults to `[\"c-ares\", \"ffmpeg\", \"gtk3\", \"http-parser\", \"libevent\", \"libvpx\", \"libxslt\", \"libxss\", \"minizip\", \"nss\", \"re2\", \"snappy\", \"libnotify\", \"libappindicator-gtk3\"]`" + { + "type": "string" + } + ] + }, + "onNodeModuleFile": { + "description": "The function (or path to file or module id) to be [run on each node module](#onnodemodulefile) file. Returning `true`/`false` will determine whether to force include or to use the default copier logic", + "anyOf": [ + { + "typeof": "function" }, - "description": { - "description": "As [description](./configuration.md#description) from application package.json, but allows you to specify different for Linux.", - "type": [ - "null", - "string" - ] + { + "type": "string" + } + ] + }, + "beforeBuild": { + "description": "The function (or path to file or module id) to be run before dependencies are installed or rebuilt. Works when `npmRebuild` is set to `true`. Resolving to `false` will skip dependencies install or rebuild.\n\nIf provided and `node_modules` are missing, it will not invoke production dependencies check.", + "anyOf": [ + { + "typeof": "function" }, - "desktop": { - "anyOf": [ - { - "$ref": "#/definitions/LinuxDesktopFile" - }, - { - "type": "null" - } - ], - "description": "The [Desktop file](https://developer.gnome.org/documentation/guidelines/maintainer/integrating.html#desktop-files)" + { + "type": "string" + } + ] + }, + "electronDist": { + "description": "The function (or path to file or module id) to be run when staging the electron artifact environment.\nReturns the path to custom Electron build (e.g. `~/electron/out/R`) or folder of electron zips.\n\nZip files must follow the pattern `electron-v${version}-${platformName}-${arch}.zip`, otherwise it will be assumed to be an unpacked Electron app directory", + "anyOf": [ + { + "typeof": "function" }, - "executableArgs": { - "anyOf": [ - { - "items": { - "type": "string" - }, - "type": "array" - }, - { - "type": "null" - } - ], - "description": "The executable parameters. Pass to executableName" + { + "type": "string" + } + ] + }, + "$schema": { + "description": "JSON Schema for this document.", + "type": [ + "null", + "string" + ] + } + }, + "additionalProperties": false, + "definitions": { + "ElectronDownloadOptions": { + "type": "object", + "properties": { + "version": { + "type": "string" }, - "fpm": { - "anyOf": [ - { - "items": { - "type": "string" - }, - "type": "array" - }, - { - "type": "null" - } - ], - "description": "*Advanced only* The [fpm](https://fpm.readthedocs.io/en/latest/cli-reference.html) options.\n\nExample: `[\"--before-install=build/deb-preinstall.sh\", \"--after-upgrade=build/deb-postinstall.sh\"]`" + "cache": { + "description": "The [cache location](https://github.com/electron-userland/electron-download#cache-location).", + "type": "string" }, - "icon": { + "mirror": { + "description": "The mirror.", "type": "string" }, - "maintainer": { - "type": [ - "null", - "string" - ] + "customDir": { + "type": "string" }, - "mimeTypes": { - "anyOf": [ - { - "items": { - "type": "string" - }, - "type": "array" - }, - { - "type": "null" - } - ], - "description": "The mime types in addition to specified in the file associations. Use it if you don't want to register a new mime type, but reuse existing." + "customFilename": { + "type": "string" }, - "packageCategory": { - "description": "The package category.", - "type": [ - "null", - "string" - ] + "strictSSL": { + "type": "boolean" }, - "packageName": { - "description": "The name of the package.", - "type": [ - "null", - "string" - ] + "isVerifyChecksum": { + "type": "boolean" }, - "publish": { - "anyOf": [ - { - "$ref": "#/definitions/GithubOptions" - }, - { - "$ref": "#/definitions/GitlabOptions" - }, - { - "$ref": "#/definitions/S3Options" - }, - { - "$ref": "#/definitions/SpacesOptions" - }, - { - "$ref": "#/definitions/GenericServerOptions" - }, - { - "$ref": "#/definitions/CustomPublishOptions" - }, - { - "$ref": "#/definitions/KeygenOptions" - }, - { - "$ref": "#/definitions/SnapStoreOptions" - }, - { - "$ref": "#/definitions/BitbucketOptions" - }, - { - "items": { - "$ref": "#/definitions/AllPublishOptions" - }, - "type": "array" - }, - { - "type": [ - "null", - "string" - ] - } - ] + "platform": { + "$ref": "#/definitions/ElectronPlatformName" }, - "synopsis": { - "description": "The [short description](https://www.debian.org/doc/debian-policy/ch-controlfields.html#s-f-Description).", - "type": [ - "null", - "string" - ] + "arch": { + "type": "string" + } + }, + "additionalProperties": false + }, + "ElectronPlatformName": { + "enum": [ + "darwin", + "linux", + "mas", + "win32" + ], + "type": "string" + }, + "ElectronBrandingOptions": { + "description": "Electron distributables branding options.", + "type": "object", + "properties": { + "projectName": { + "type": "string" }, - "vendor": { - "type": [ - "null", - "string" - ] + "productName": { + "type": "string" } }, - "type": "object" + "additionalProperties": false }, - "MacConfiguration": { - "additionalProperties": false, + "MetadataDirectories": { + "type": "object", "properties": { - "additionalArguments": { - "anyOf": [ - { - "items": { - "type": "string" - }, - "type": "array" - }, - { - "type": "null" - } - ], - "description": "Array of strings specifying additional arguments to pass to the `codesign` command used to sign a specific file.\n\nSome subresources that you may include in your Electron app may need to be signed with --deep, this is not typically safe to apply to the entire Electron app and therefore should be applied to just your file.\nUsage Example: `['--deep']`" - }, - "appId": { - "default": "com.electron.${name}", - "description": "The application id. Used as [CFBundleIdentifier](https://developer.apple.com/library/ios/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html#//apple_ref/doc/uid/20001431-102070) for MacOS and as\n[Application User Model ID](https://msdn.microsoft.com/en-us/library/windows/desktop/dd378459(v=vs.85).aspx) for Windows (NSIS target only, Squirrel.Windows not supported). It is strongly recommended that an explicit ID is set.", - "type": [ - "null", - "string" - ] + "buildResources": { + "description": "The path to build resources.\n\nPlease note — build resources are not packed into the app. If you need to use some files, e.g. as tray icon, please include required files explicitly: `\"files\": [\"**\\/*\", \"build/icon.*\"]`", + "default": "build", + "type": "string" }, - "artifactName": { - "description": "The [artifact file name template](./configuration.md#artifact-file-name-template). Defaults to `${productName}-${version}.${ext}` (some target can have other defaults, see corresponding options).", - "type": [ - "null", - "string" - ] + "output": { + "description": "The output directory. [File macros](./file-patterns.md#file-macros) are supported.", + "default": "dist", + "type": "string" }, - "asar": { - "anyOf": [ - { - "$ref": "#/definitions/AsarOptions" - }, - { - "type": [ - "null", - "boolean" - ] - } - ], - "default": true, - "description": "Whether to package the application's source code into an archive, using [Electron's archive format](http://electron.atom.io/docs/tutorial/application-packaging/).\n\nNode modules, that must be unpacked, will be detected automatically, you don't need to explicitly set [asarUnpack](#asarUnpack) - please file an issue if this doesn't work." + "app": { + "description": "The application directory (containing the application package.json), defaults to `app`, `www` or working directory.", + "type": "string" + } + }, + "additionalProperties": false + }, + "MacConfiguration": { + "type": "object", + "properties": { + "category": { + "description": "The application category type, as shown in the Finder via *View -> Arrange by Application Category* when viewing the Applications directory.\n\nFor example, `\"category\": \"public.app-category.developer-tools\"` will set the application category to *Developer Tools*.\n\nValid values are listed in [Apple's documentation](https://developer.apple.com/library/ios/documentation/General/Reference/InfoPlistKeyReference/Articles/LaunchServicesKeys.html#//apple_ref/doc/uid/TP40009250-SW8).", + "type": "string" }, - "asarUnpack": { + "target": { + "description": "The target package type: list of `default`, `dmg`, `mas`, `mas-dev`, `pkg`, `7z`, `zip`, `tar.xz`, `tar.lz`, `tar.gz`, `tar.bz2`, `dir`. Defaults to `default` (`dmg` and `zip` for Squirrel.Mac). Note: Squirrel.Mac auto update mechanism requires both `dmg` and `zip` to be enabled, even when only `dmg` is used. Disabling `zip` will break auto update in `dmg` packages.", "anyOf": [ { - "items": { - "type": "string" - }, - "type": "array" + "$ref": "#/definitions/TargetConfiguration" }, { - "type": [ - "null", - "string" - ] - } - ], - "description": "A [glob patterns](./file-patterns.md) relative to the [app directory](#directories), which specifies which files to unpack when creating the [asar](http://electron.atom.io/docs/tutorial/application-packaging/) archive." - }, - "binaries": { - "anyOf": [ - { + "type": "array", "items": { - "type": "string" - }, - "type": "array" + "anyOf": [ + { + "$ref": "#/definitions/TargetConfiguration" + }, + { + "enum": [ + "7z", + "default", + "dir", + "dmg", + "mas", + "mas-dev", + "pkg", + "tar.bz2", + "tar.gz", + "tar.lz", + "tar.xz", + "zip" + ], + "type": "string" + } + ] + } }, { - "type": "null" + "enum": [ + "7z", + "default", + "dir", + "dmg", + "mas", + "mas-dev", + "pkg", + "tar.bz2", + "tar.gz", + "tar.lz", + "tar.xz", + "zip" + ], + "type": "string" } - ], - "description": "Paths of any extra binaries that need to be signed." - }, - "bundleShortVersion": { - "description": "The `CFBundleShortVersionString`. Do not use it unless you need to.", - "type": [ - "null", - "string" ] }, - "bundleVersion": { - "description": "The `CFBundleVersion`. Do not use it unless [you need to](https://github.com/electron-userland/electron-builder/issues/565#issuecomment-230678643).", - "type": [ - "null", - "string" - ] + "identity": { + "description": "The name of certificate to use when signing. Consider using environment variables [CSC_LINK or CSC_NAME](./code-signing.md) instead of specifying this option.\nMAS installer identity is specified in the [mas](./mas.md).\n\nSet to `-` to use an ad-hoc identity for signing. Set to `null` to skip signing entirely.", + "type": "string" }, - "category": { - "description": "The application category type, as shown in the Finder via *View -> Arrange by Application Category* when viewing the Applications directory.\n\nFor example, `\"category\": \"public.app-category.developer-tools\"` will set the application category to *Developer Tools*.\n\nValid values are listed in [Apple's documentation](https://developer.apple.com/library/ios/documentation/General/Reference/InfoPlistKeyReference/Articles/LaunchServicesKeys.html#//apple_ref/doc/uid/TP40009250-SW8).", - "type": [ - "null", - "string" - ] + "icon": { + "description": "The path to application icon.\nAccepts `.icns` (legacy) or `.icon` (Icon Composer asset).\nIf a `.icon` asset is provided, it will be preferred and compiled to an asset catalog.", + "default": "build/icon.icns", + "type": "string" }, - "compression": { - "anyOf": [ - { - "enum": [ - "maximum", - "normal", - "store" - ], - "type": "string" - }, - { - "type": "null" - } - ], - "default": "normal", - "description": "The compression level. If you want to rapidly test build, `store` can reduce build time significantly. `maximum` doesn't lead to noticeable size difference, but increase build time." + "entitlements": { + "description": "The path to entitlements file for signing the app. `build/entitlements.mac.plist` will be used if exists (it is a recommended way to set).\nMAS entitlements is specified in the [mas](./mas.md).\nSee [this folder in osx-sign's repository](https://github.com/electron/osx-sign/tree/main/entitlements) for examples.\nBe aware that your app may crash if the right entitlements are not set like `com.apple.security.cs.allow-jit` for example on arm64 builds with Electron 20+.\nSee [Signing and Notarizing macOS Builds from the Electron documentation](https://www.electronjs.org/docs/latest/tutorial/code-signing#signing--notarizing-macos-builds) for more information.", + "type": "string" }, - "cscInstallerKeyPassword": { - "type": [ - "null", - "string" - ] + "entitlementsInherit": { + "description": "The path to child entitlements which inherit the security settings for signing frameworks and bundles of a distribution. `build/entitlements.mac.inherit.plist` will be used if exists (it is a recommended way to set).\nSee [this folder in osx-sign's repository](https://github.com/electron/osx-sign/tree/main/entitlements) for examples.\n\nThis option only applies when signing with `entitlements` provided.", + "type": "string" }, - "cscInstallerLink": { - "type": [ - "null", - "string" - ] + "entitlementsLoginHelper": { + "description": "Path to login helper entitlement file.\nWhen using App Sandbox, the the `com.apple.security.inherit` key that is normally in the inherited entitlements cannot be inherited since the login helper is a standalone executable.\nDefaults to the value provided for `entitlements`. This option only applies when signing with `entitlements` provided.", + "type": "string" }, - "cscKeyPassword": { - "type": [ - "null", - "string" - ] + "provisioningProfile": { + "description": "The path to the provisioning profile to use when signing, absolute or relative to the app root.", + "type": "string" }, - "cscLink": { - "type": [ - "null", - "string" - ] + "bundleVersion": { + "description": "The `CFBundleVersion`. Do not use it unless [you need to](https://github.com/electron-userland/electron-builder/issues/565#issuecomment-230678643).", + "type": "string" + }, + "bundleShortVersion": { + "description": "The `CFBundleShortVersionString`. Do not use it unless you need to.", + "type": "string" }, "darkModeSupport": { - "default": false, "description": "Whether a dark mode is supported. If your app does have a dark mode, you can make your app follow the system-wide dark mode setting.", + "default": false, "type": "boolean" }, - "defaultArch": { + "helperBundleId": { + "description": "The bundle identifier to use in the application helper's plist.", + "default": "${appBundleIdentifier}.helper", "type": "string" }, - "detectUpdateChannel": { - "default": true, - "description": "Whether to infer update channel from application version pre-release components. e.g. if version `0.12.1-alpha.1`, channel will be set to `alpha`. Otherwise to `latest`.\nThis does *not* apply to github publishing, which will [never auto-detect the update channel](https://github.com/electron-userland/electron-builder/issues/8589).", - "type": "boolean" + "helperRendererBundleId": { + "description": "The bundle identifier to use in the Renderer helper's plist.", + "default": "${appBundleIdentifier}.helper.Renderer", + "type": "string" }, - "disableDefaultIgnoredFiles": { - "default": false, - "description": "Whether to exclude all default ignored files(https://www.electron.build/contents#files) and options. Defaults to `false`.", - "type": [ - "null", - "boolean" - ] + "helperPluginBundleId": { + "description": "The bundle identifier to use in the Plugin helper's plist.", + "default": "${appBundleIdentifier}.helper.Plugin", + "type": "string" }, - "electronLanguages": { - "anyOf": [ - { - "items": { - "type": "string" - }, - "type": "array" - }, - { - "type": "string" - } + "helperGPUBundleId": { + "description": "The bundle identifier to use in the GPU helper's plist.", + "default": "${appBundleIdentifier}.helper.GPU", + "type": "string" + }, + "helperEHBundleId": { + "description": "The bundle identifier to use in the EH helper's plist.", + "default": "${appBundleIdentifier}.helper.EH", + "type": "string" + }, + "helperNPBundleId": { + "description": "The bundle identifier to use in the NP helper's plist.", + "default": "${appBundleIdentifier}.helper.NP", + "type": "string" + }, + "type": { + "description": "Whether to sign app for development or for distribution.", + "default": "distribution", + "enum": [ + "development", + "distribution" ], - "description": "The electron locales to keep. By default, all Electron locales used as-is." + "type": "string" }, - "electronUpdaterCompatibility": { - "description": "The [electron-updater compatibility](./auto-update.md#compatibility) semver range.", - "type": [ - "null", - "string" - ] + "extendInfo": { + "description": "The extra entries for `Info.plist`." }, - "entitlements": { - "description": "The path to entitlements file for signing the app. `build/entitlements.mac.plist` will be used if exists (it is a recommended way to set).\nMAS entitlements is specified in the [mas](./mas.md).\nSee [this folder in osx-sign's repository](https://github.com/electron/osx-sign/tree/main/entitlements) for examples.\nBe aware that your app may crash if the right entitlements are not set like `com.apple.security.cs.allow-jit` for example on arm64 builds with Electron 20+.\nSee [Signing and Notarizing macOS Builds from the Electron documentation](https://www.electronjs.org/docs/latest/tutorial/code-signing#signing--notarizing-macos-builds) for more information.", - "type": [ - "null", - "string" - ] + "binaries": { + "description": "Paths of any extra binaries that need to be signed.", + "type": "array", + "items": { + "type": "string" + } }, - "entitlementsInherit": { - "description": "The path to child entitlements which inherit the security settings for signing frameworks and bundles of a distribution. `build/entitlements.mac.inherit.plist` will be used if exists (it is a recommended way to set).\nSee [this folder in osx-sign's repository](https://github.com/electron/osx-sign/tree/main/entitlements) for examples.\n\nThis option only applies when signing with `entitlements` provided.", - "type": [ - "null", - "string" - ] + "minimumSystemVersion": { + "description": "The minimum version of macOS required for the app to run. Corresponds to `LSMinimumSystemVersion`.", + "type": "string" }, - "entitlementsLoginHelper": { - "description": "Path to login helper entitlement file.\nWhen using App Sandbox, the the `com.apple.security.inherit` key that is normally in the inherited entitlements cannot be inherited since the login helper is a standalone executable.\nDefaults to the value provided for `entitlements`. This option only applies when signing with `entitlements` provided.", - "type": [ - "null", - "string" - ] + "requirements": { + "description": "Path of [requirements file](https://developer.apple.com/library/mac/documentation/Security/Conceptual/CodeSigningGuide/RequirementLang/RequirementLang.html) used in signing. Not applicable for MAS.", + "type": "string" }, - "executableName": { - "description": "The executable name. Defaults to `productName`\nNote: Except for Linux, where this would constitute a breaking change in previous behavior and lead to both invalid executable names and Desktop files. Ref comments in: https://github.com/electron-userland/electron-builder/pull/9068", - "type": [ - "null", - "string" - ] + "cscInstallerLink": { + "type": "string" }, - "extendInfo": { - "description": "The extra entries for `Info.plist`." + "cscInstallerKeyPassword": { + "type": "string" }, "extraDistFiles": { + "description": "Extra files to put in archive. Not applicable for `tar.*`.", "anyOf": [ { + "type": "array", "items": { "type": "string" - }, - "type": "array" + } }, { - "type": [ - "null", - "string" - ] + "type": "string" } - ], - "description": "Extra files to put in archive. Not applicable for `tar.*`." + ] }, - "extraFiles": { - "anyOf": [ - { - "$ref": "#/definitions/FileSet" - }, - { - "items": { - "anyOf": [ - { - "$ref": "#/definitions/FileSet" - }, - { - "type": "string" - } - ] - }, - "type": "array" - }, - { - "type": [ - "null", - "string" - ] - } - ], - "description": "The same as [extraResources](#extraresources) but copy into the app's content directory (`Contents` for MacOS, root directory for Linux and Windows)." + "hardenedRuntime": { + "description": "Whether your app has to be signed with hardened runtime.", + "default": true, + "type": "boolean" }, - "extraResources": { - "anyOf": [ - { - "$ref": "#/definitions/FileSet" - }, - { - "items": { - "anyOf": [ - { - "$ref": "#/definitions/FileSet" - }, - { - "type": "string" - } - ] - }, - "type": "array" - }, - { - "type": [ - "null", - "string" - ] - } - ], - "description": "A [glob patterns](./file-patterns.md) relative to the project directory, when specified, copy the file or directory with matching names directly into the app's resources directory (`Contents/Resources` for MacOS, `resources` for Linux and Windows).\n\nFile patterns (and support for `from` and `to` fields) the same as for [files](#files)." + "gatekeeperAssess": { + "description": "Whether to let `@electron/osx-sign` validate the signing or not.", + "default": false, + "type": "boolean" }, - "fileAssociations": { + "strictVerify": { + "description": "Whether to let `@electron/osx-sign` verify the contents or not.", + "default": true, + "type": "boolean" + }, + "preAutoEntitlements": { + "description": "Whether to enable entitlements automation from `@electron/osx-sign`.", + "default": true, + "type": "boolean" + }, + "signIgnore": { + "description": "Regex or an array of regex's that signal skipping signing a file.", "anyOf": [ { - "$ref": "#/definitions/FileAssociation" + "type": "array", + "items": { + "type": "string" + } }, { - "items": { - "$ref": "#/definitions/FileAssociation" - }, - "type": "array" + "type": "string" } - ], - "description": "The file associations." + ] }, - "files": { + "sign": { + "description": "The custom function (or path to file or module id) to sign an app bundle.", "anyOf": [ { - "$ref": "#/definitions/FileSet" - }, - { - "items": { - "anyOf": [ - { - "$ref": "#/definitions/FileSet" - }, - { - "type": "string" - } - ] - }, - "type": "array" + "typeof": "function" }, { - "type": [ - "null", - "string" - ] + "type": "string" } - ], - "description": "A [glob patterns](./file-patterns.md) relative to the [app directory](configuration.md#directories), which specifies which files to include when copying files to create the package.\n\nDefaults to:\n```json\n[\n\"**\\/*\",\n\"!**\\/node_modules/*\\/{CHANGELOG.md,README.md,README,readme.md,readme}\",\n\"!**\\/node_modules/*\\/{test,__tests__,tests,powered-test,example,examples}\",\n\"!**\\/node_modules/*.d.ts\",\n\"!**\\/node_modules/.bin\",\n\"!**\\/*.{iml,o,hprof,orig,pyc,pyo,rbc,swp,csproj,sln,xproj}\",\n\"!.editorconfig\",\n\"!**\\/._*\",\n\"!**\\/{.DS_Store,.git,.hg,.svn,CVS,RCS,SCCS,.gitignore,.gitattributes}\",\n\"!**\\/{__pycache__,thumbs.db,.flowconfig,.idea,.vs,.nyc_output}\",\n\"!**\\/{appveyor.yml,.travis.yml,circle.yml}\",\n\"!**\\/{npm-debug.log,yarn.lock,.yarn-integrity,.yarn-metadata.json}\"\n]\n```\n\nDevelopment dependencies are never copied in any case. You don't need to ignore it explicitly. Hidden files are not ignored by default, but all files that should be ignored, are ignored by default.\n\nDefault pattern \\`**\\/*\\` **is not added to your custom** if some of your patterns is not ignore (i.e. not starts with `!`). `package.json` and \\`**\\/node_modules/**\\/*` (only production dependencies will be copied) is added to your custom in any case. All default ignores are added in any case — you don't need to repeat it if you configure own patterns.\n\nMay be specified in the platform options (e.g. in the [mac](mac.md)).\n\nYou may also specify custom source and destination directories by using `FileSet` objects instead of simple glob patterns.\n\n```json\n[\n{\n\"from\": \"path/to/source\",\n\"to\": \"path/to/destination\",\n\"filter\": [\"**\\/*\", \"!foo/*.js\"]\n}\n]\n```\n\nYou can use [file macros](./file-patterns.md#file-macros) in the `from` and `to` fields as well. `from` and `to` can be files and you can use this to [rename](https://github.com/electron-userland/electron-builder/issues/1119) a file while packaging." - }, - "forceCodeSigning": { - "description": "Whether to fail if app will be not code signed.", - "type": "boolean" - }, - "gatekeeperAssess": { - "default": false, - "description": "Whether to let `@electron/osx-sign` validate the signing or not.", - "type": "boolean" + ] }, - "generateUpdatesFilesForAllChannels": { - "default": false, - "description": "Please see [Building and Releasing using Channels](https://github.com/electron-userland/electron-builder/issues/1182#issuecomment-324947139).", - "type": "boolean" + "timestamp": { + "description": "Specify the URL of the timestamp authority server", + "type": "string" }, - "hardenedRuntime": { + "mergeASARs": { + "description": "Whether to merge ASAR files for different architectures or not.\n\nThis option has no effect unless building for \"universal\" arch.", "default": true, - "description": "Whether your app has to be signed with hardened runtime.", "type": "boolean" }, - "helperBundleId": { - "default": "${appBundleIdentifier}.helper", - "description": "The bundle identifier to use in the application helper's plist.", - "type": [ - "null", - "string" - ] - }, - "helperEHBundleId": { - "default": "${appBundleIdentifier}.helper.EH", - "description": "The bundle identifier to use in the EH helper's plist.", - "type": [ - "null", - "string" - ] - }, - "helperGPUBundleId": { - "default": "${appBundleIdentifier}.helper.GPU", - "description": "The bundle identifier to use in the GPU helper's plist.", - "type": [ - "null", - "string" - ] + "singleArchFiles": { + "description": "Minimatch pattern of paths that are allowed to be present in one of the\nASAR files, but not in the other.\n\nThis option has no effect unless building for \"universal\" arch and applies\nonly if `mergeASARs` is `true`.", + "type": "string" }, - "helperNPBundleId": { - "default": "${appBundleIdentifier}.helper.NP", - "description": "The bundle identifier to use in the NP helper's plist.", - "type": [ - "null", - "string" - ] + "x64ArchFiles": { + "description": "Minimatch pattern of paths that are allowed to be x64 binaries in both\nASAR files\n\nThis option has no effect unless building for \"universal\" arch and applies\nonly if `mergeASARs` is `true`.", + "type": "string" }, - "helperPluginBundleId": { - "default": "${appBundleIdentifier}.helper.Plugin", - "description": "The bundle identifier to use in the Plugin helper's plist.", - "type": [ - "null", - "string" - ] + "additionalArguments": { + "description": "Array of strings specifying additional arguments to pass to the `codesign` command used to sign a specific file.\n\nSome subresources that you may include in your Electron app may need to be signed with --deep, this is not typically safe to apply to the entire Electron app and therefore should be applied to just your file.\nUsage Example: `['--deep']`", + "type": "array", + "items": { + "type": "string" + } }, - "helperRendererBundleId": { - "default": "${appBundleIdentifier}.helper.Renderer", - "description": "The bundle identifier to use in the Renderer helper's plist.", - "type": [ - "null", - "string" - ] + "notarize": { + "description": "Whether to disable electron-builder's [@electron/notarize](https://github.com/electron/notarize) integration.\n\nNote: In order to activate the notarization step You MUST specify one of the following via environment variables:\n\n1. `APPLE_API_KEY`, `APPLE_API_KEY_ID` and `APPLE_API_ISSUER`.\n2. `APPLE_ID`, `APPLE_APP_SPECIFIC_PASSWORD`, and `APPLE_TEAM_ID`\n3. `APPLE_KEYCHAIN` and `APPLE_KEYCHAIN_PROFILE`\n\nFor security reasons it is recommended to use the first option (see https://github.com/electron-userland/electron-builder/issues/7859)", + "type": "boolean" }, - "icon": { - "default": "build/icon.icns", - "description": "The path to application icon.\nAccepts `.icns` (legacy) or `.icon` (Icon Composer asset).\nIf a `.icon` asset is provided, it will be preferred and compiled to an asset catalog.", - "type": [ - "null", - "string" - ] + "appId": { + "description": "The application id. Used as [CFBundleIdentifier](https://developer.apple.com/library/ios/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html#//apple_ref/doc/uid/20001431-102070) for MacOS and as\n[Application User Model ID](https://msdn.microsoft.com/en-us/library/windows/desktop/dd378459(v=vs.85).aspx) for Windows (NSIS target only, Squirrel.Windows not supported). It is strongly recommended that an explicit ID is set.", + "default": "com.electron.${name}", + "type": "string" }, - "identity": { - "description": "The name of certificate to use when signing. Consider using environment variables [CSC_LINK or CSC_NAME](./code-signing.md) instead of specifying this option.\nMAS installer identity is specified in the [mas](./mas.md).\n\nSet to `-` to use an ad-hoc identity for signing. Set to `null` to skip signing entirely.", - "type": [ - "null", - "string" - ] + "artifactName": { + "description": "The [artifact file name template](./configuration.md#artifact-file-name-template). Defaults to `${productName}-${version}.${ext}` (some target can have other defaults, see corresponding options).", + "type": "string" }, - "mergeASARs": { - "default": true, - "description": "Whether to merge ASAR files for different architectures or not.\n\nThis option has no effect unless building for \"universal\" arch.", - "type": "boolean" + "executableName": { + "description": "The executable name. Defaults to `productName`\nNote: Except for Linux, where this would constitute a breaking change in previous behavior and lead to both invalid executable names and Desktop files. Ref comments in: https://github.com/electron-userland/electron-builder/pull/9068", + "type": "string" }, - "minimumSystemVersion": { - "description": "The minimum version of macOS required for the app to run. Corresponds to `LSMinimumSystemVersion`.", - "type": [ - "null", - "string" - ] + "compression": { + "$ref": "#/definitions/CompressionLevel", + "description": "The compression level. If you want to rapidly test build, `store` can reduce build time significantly. `maximum` doesn't lead to noticeable size difference, but increase build time.", + "default": "normal" }, - "notarize": { - "description": "Whether to disable electron-builder's [@electron/notarize](https://github.com/electron/notarize) integration.\n\nNote: In order to activate the notarization step You MUST specify one of the following via environment variables:\n\n1. `APPLE_API_KEY`, `APPLE_API_KEY_ID` and `APPLE_API_ISSUER`.\n2. `APPLE_ID`, `APPLE_APP_SPECIFIC_PASSWORD`, and `APPLE_TEAM_ID`\n3. `APPLE_KEYCHAIN` and `APPLE_KEYCHAIN_PROFILE`\n\nFor security reasons it is recommended to use the first option (see https://github.com/electron-userland/electron-builder/issues/7859)", + "disableDefaultIgnoredFiles": { + "description": "Whether to exclude all default ignored files(https://www.electron.build/contents#files) and options. Defaults to `false`.", + "default": false, "type": "boolean" }, - "preAutoEntitlements": { + "asar": { + "description": "Whether to package the application's source code into an archive, using [Electron's archive format](http://electron.atom.io/docs/tutorial/application-packaging/).\n\nNode modules, that must be unpacked, will be detected automatically, you don't need to explicitly set [asarUnpack](#asarUnpack) - please file an issue if this doesn't work.", "default": true, - "description": "Whether to enable entitlements automation from `@electron/osx-sign`.", - "type": "boolean" - }, - "protocols": { "anyOf": [ { - "$ref": "#/definitions/Protocol" + "$ref": "#/definitions/AsarOptions" }, { - "items": { - "$ref": "#/definitions/Protocol" - }, - "type": "array" + "type": "boolean" } - ], - "description": "The URL protocol schemes." - }, - "provisioningProfile": { - "description": "The path to the provisioning profile to use when signing, absolute or relative to the app root.", - "type": [ - "null", - "string" ] }, - "publish": { + "asarUnpack": { + "description": "A [glob patterns](./file-patterns.md) relative to the [app directory](#directories), which specifies which files to unpack when creating the [asar](http://electron.atom.io/docs/tutorial/application-packaging/) archive.", "anyOf": [ { - "$ref": "#/definitions/GithubOptions" - }, - { - "$ref": "#/definitions/GitlabOptions" - }, - { - "$ref": "#/definitions/S3Options" - }, - { - "$ref": "#/definitions/SpacesOptions" + "type": "array", + "items": { + "type": "string" + } }, { - "$ref": "#/definitions/GenericServerOptions" - }, + "type": "string" + } + ] + }, + "fileAssociations": { + "description": "The file associations.", + "anyOf": [ { - "$ref": "#/definitions/CustomPublishOptions" + "$ref": "#/definitions/FileAssociation" }, { - "$ref": "#/definitions/KeygenOptions" - }, + "type": "array", + "items": { + "$ref": "#/definitions/FileAssociation" + } + } + ] + }, + "protocols": { + "description": "The URL protocol schemes.", + "anyOf": [ { - "$ref": "#/definitions/SnapStoreOptions" + "$ref": "#/definitions/Protocol" }, { - "$ref": "#/definitions/BitbucketOptions" - }, + "type": "array", + "items": { + "$ref": "#/definitions/Protocol" + } + } + ] + }, + "electronLanguages": { + "description": "The electron locales to keep. By default, all Electron locales used as-is.", + "anyOf": [ { + "type": "array", "items": { - "$ref": "#/definitions/AllPublishOptions" - }, - "type": "array" + "type": "string" + } }, { - "type": [ - "null", - "string" - ] + "type": "string" } - ], + ] + }, + "forceCodeSigning": { + "description": "Whether to fail if app will be not code signed.", + "type": "boolean" + }, + "electronUpdaterCompatibility": { + "description": "The [electron-updater compatibility](./auto-update.md#compatibility) semver range.", + "type": "string" + }, + "publish": { + "$ref": "#/definitions/Publish", "description": "Publisher configuration. See [Auto Update](./publish.md) for more information." }, + "detectUpdateChannel": { + "description": "Whether to infer update channel from application version pre-release components. e.g. if version `0.12.1-alpha.1`, channel will be set to `alpha`. Otherwise to `latest`.\nThis does *not* apply to github publishing, which will [never auto-detect the update channel](https://github.com/electron-userland/electron-builder/issues/8589).", + "default": true, + "type": "boolean" + }, + "generateUpdatesFilesForAllChannels": { + "description": "Please see [Building and Releasing using Channels](https://github.com/electron-userland/electron-builder/issues/1182#issuecomment-324947139).", + "default": false, + "type": "boolean" + }, "releaseInfo": { "$ref": "#/definitions/ReleaseInfo", "description": "The release info. Intended for command line usage:\n\n```\n-c.releaseInfo.releaseNotes=\"new features\"\n```" }, - "requirements": { - "description": "Path of [requirements file](https://developer.apple.com/library/mac/documentation/Security/Conceptual/CodeSigningGuide/RequirementLang/RequirementLang.html) used in signing. Not applicable for MAS.", - "type": [ - "null", - "string" - ] + "cscLink": { + "type": "string" }, - "sign": { + "cscKeyPassword": { + "type": "string" + }, + "defaultArch": { + "type": "string" + }, + "files": { + "description": "A [glob patterns](./file-patterns.md) relative to the [app directory](configuration.md#directories), which specifies which files to include when copying files to create the package.\n\nDefaults to:\n```json\n[\n\"**\\/*\",\n\"!**\\/node_modules/*\\/{CHANGELOG.md,README.md,README,readme.md,readme}\",\n\"!**\\/node_modules/*\\/{test,__tests__,tests,powered-test,example,examples}\",\n\"!**\\/node_modules/*.d.ts\",\n\"!**\\/node_modules/.bin\",\n\"!**\\/*.{iml,o,hprof,orig,pyc,pyo,rbc,swp,csproj,sln,xproj}\",\n\"!.editorconfig\",\n\"!**\\/._*\",\n\"!**\\/{.DS_Store,.git,.hg,.svn,CVS,RCS,SCCS,.gitignore,.gitattributes}\",\n\"!**\\/{__pycache__,thumbs.db,.flowconfig,.idea,.vs,.nyc_output}\",\n\"!**\\/{appveyor.yml,.travis.yml,circle.yml}\",\n\"!**\\/{npm-debug.log,yarn.lock,.yarn-integrity,.yarn-metadata.json}\"\n]\n```\n\nDevelopment dependencies are never copied in any case. You don't need to ignore it explicitly. Hidden files are not ignored by default, but all files that should be ignored, are ignored by default.\n\nDefault pattern \\`**\\/*\\` **is not added to your custom** if some of your patterns is not ignore (i.e. not starts with `!`). `package.json` and \\`**\\/node_modules/**\\/*` (only production dependencies will be copied) is added to your custom in any case. All default ignores are added in any case — you don't need to repeat it if you configure own patterns.\n\nMay be specified in the platform options (e.g. in the [mac](mac.md)).\n\nYou may also specify custom source and destination directories by using `FileSet` objects instead of simple glob patterns.\n\n```json\n[\n{\n\"from\": \"path/to/source\",\n\"to\": \"path/to/destination\",\n\"filter\": [\"**\\/*\", \"!foo/*.js\"]\n}\n]\n```\n\nYou can use [file macros](./file-patterns.md#file-macros) in the `from` and `to` fields as well. `from` and `to` can be files and you can use this to [rename](https://github.com/electron-userland/electron-builder/issues/1119) a file while packaging.", "anyOf": [ { - "typeof": "function" + "$ref": "#/definitions/FileSet" + }, + { + "type": "array", + "items": { + "anyOf": [ + { + "$ref": "#/definitions/FileSet" + }, + { + "type": "string" + } + ] + } }, { - "type": [ - "null", - "string" - ] + "type": "string" } - ], - "description": "The custom function (or path to file or module id) to sign an app bundle." + ] }, - "signIgnore": { + "extraResources": { + "description": "A [glob patterns](./file-patterns.md) relative to the project directory, when specified, copy the file or directory with matching names directly into the app's resources directory (`Contents/Resources` for MacOS, `resources` for Linux and Windows).\n\nFile patterns (and support for `from` and `to` fields) the same as for [files](#files).", "anyOf": [ { + "$ref": "#/definitions/FileSet" + }, + { + "type": "array", "items": { - "type": "string" - }, - "type": "array" + "anyOf": [ + { + "$ref": "#/definitions/FileSet" + }, + { + "type": "string" + } + ] + } }, { - "type": [ - "null", - "string" - ] + "type": "string" } - ], - "description": "Regex or an array of regex's that signal skipping signing a file." - }, - "singleArchFiles": { - "description": "Minimatch pattern of paths that are allowed to be present in one of the\nASAR files, but not in the other.\n\nThis option has no effect unless building for \"universal\" arch and applies\nonly if `mergeASARs` is `true`.", - "type": [ - "null", - "string" ] }, - "strictVerify": { - "default": true, - "description": "Whether to let `@electron/osx-sign` verify the contents or not.", - "type": "boolean" - }, - "target": { + "extraFiles": { + "description": "The same as [extraResources](#extraresources) but copy into the app's content directory (`Contents` for MacOS, root directory for Linux and Windows).", "anyOf": [ { - "$ref": "#/definitions/TargetConfiguration" + "$ref": "#/definitions/FileSet" }, { + "type": "array", "items": { "anyOf": [ { - "$ref": "#/definitions/TargetConfiguration" + "$ref": "#/definitions/FileSet" }, { - "enum": [ - "7z", - "default", - "dir", - "dmg", - "mas", - "mas-dev", - "pkg", - "tar.bz2", - "tar.gz", - "tar.lz", - "tar.xz", - "zip" - ], "type": "string" } ] - }, - "type": "array" + } }, { - "enum": [ - "7z", - "default", - "dir", - "dmg", - "mas", - "mas-dev", - "pkg", - "tar.bz2", - "tar.gz", - "tar.lz", - "tar.xz", - "zip" - ], "type": "string" - }, - { - "type": "null" } - ], - "description": "The target package type: list of `default`, `dmg`, `mas`, `mas-dev`, `pkg`, `7z`, `zip`, `tar.xz`, `tar.lz`, `tar.gz`, `tar.bz2`, `dir`. Defaults to `default` (`dmg` and `zip` for Squirrel.Mac). Note: Squirrel.Mac auto update mechanism requires both `dmg` and `zip` to be enabled, even when only `dmg` is used. Disabling `zip` will break auto update in `dmg` packages." - }, - "timestamp": { - "description": "Specify the URL of the timestamp authority server", - "type": [ - "null", - "string" ] + } + }, + "additionalProperties": false + }, + "TargetConfiguration": { + "type": "object", + "properties": { + "target": { + "description": "The target name. e.g. `snap`.", + "type": "string" }, - "type": { + "arch": { + "description": "The arch or list of archs.", "anyOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/ArchType" + } + }, { "enum": [ - "development", - "distribution" + "arm64", + "armv7l", + "ia32", + "universal", + "x64" ], "type": "string" - }, - { - "type": "null" } - ], - "default": "distribution", - "description": "Whether to sign app for development or for distribution." - }, - "x64ArchFiles": { - "description": "Minimatch pattern of paths that are allowed to be x64 binaries in both\nASAR files\n\nThis option has no effect unless building for \"universal\" arch and applies\nonly if `mergeASARs` is `true`.", - "type": [ - "null", - "string" ] } }, - "type": "object" - }, - "MasConfiguration": { "additionalProperties": false, + "required": [ + "target" + ] + }, + "ArchType": { + "enum": [ + "arm64", + "armv7l", + "ia32", + "universal", + "x64" + ], + "type": "string" + }, + "CompressionLevel": { + "enum": [ + "maximum", + "normal", + "store" + ], + "type": "string" + }, + "AsarOptions": { + "type": "object", "properties": { - "additionalArguments": { + "smartUnpack": { + "description": "Whether to automatically unpack executables files.", + "default": true, + "type": "boolean" + }, + "ordering": { + "type": "string" + } + }, + "additionalProperties": false + }, + "FileAssociation": { + "description": "File associations.\n\nmacOS (corresponds to [CFBundleDocumentTypes](https://developer.apple.com/library/content/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html#//apple_ref/doc/uid/20001431-101685)), NSIS, and MSI only.\n\nOn Windows (NSIS) works only if [nsis.perMachine](https://www.electron.build/nsis) is set to `true`.", + "type": "object", + "properties": { + "ext": { + "description": "The extension (minus the leading period). e.g. `png`.", "anyOf": [ { + "type": "array", "items": { "type": "string" - }, - "type": "array" + } }, { - "type": "null" + "type": "string" } - ], - "description": "Array of strings specifying additional arguments to pass to the `codesign` command used to sign a specific file.\n\nSome subresources that you may include in your Electron app may need to be signed with --deep, this is not typically safe to apply to the entire Electron app and therefore should be applied to just your file.\nUsage Example: `['--deep']`" - }, - "appId": { - "default": "com.electron.${name}", - "description": "The application id. Used as [CFBundleIdentifier](https://developer.apple.com/library/ios/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html#//apple_ref/doc/uid/20001431-102070) for MacOS and as\n[Application User Model ID](https://msdn.microsoft.com/en-us/library/windows/desktop/dd378459(v=vs.85).aspx) for Windows (NSIS target only, Squirrel.Windows not supported). It is strongly recommended that an explicit ID is set.", - "type": [ - "null", - "string" ] }, - "artifactName": { - "description": "The [artifact file name template](./configuration.md#artifact-file-name-template). Defaults to `${productName}-${version}.${ext}` (some target can have other defaults, see corresponding options).", - "type": [ - "null", - "string" - ] + "name": { + "description": "The name. e.g. `PNG`. Defaults to `ext`.", + "type": "string" }, - "asar": { - "anyOf": [ - { - "$ref": "#/definitions/AsarOptions" - }, - { - "type": [ - "null", - "boolean" - ] - } - ], - "default": true, - "description": "Whether to package the application's source code into an archive, using [Electron's archive format](http://electron.atom.io/docs/tutorial/application-packaging/).\n\nNode modules, that must be unpacked, will be detected automatically, you don't need to explicitly set [asarUnpack](#asarUnpack) - please file an issue if this doesn't work." + "description": { + "description": "*windows-only.* The description.", + "type": "string" + }, + "mimeType": { + "description": "*linux-only.* The mime-type.", + "type": "string" + }, + "icon": { + "description": "The path to icon (`.icns` for MacOS and `.ico` for Windows), relative to `build` (build resources directory). Defaults to `${firstExt}.icns`/`${firstExt}.ico` (if several extensions specified, first is used) or to application icon.\n\nNot supported on Linux, file issue if need (default icon will be `x-office-document`). Not supported on MSI.", + "type": "string" + }, + "role": { + "description": "*macOS-only* The app’s role with respect to the type. The value can be `Editor`, `Viewer`, `Shell`, or `None`. Corresponds to `CFBundleTypeRole`.", + "default": "Editor", + "type": "string" + }, + "isPackage": { + "description": "*macOS-only* Whether the document is distributed as a bundle. If set to true, the bundle directory is treated as a file. Corresponds to `LSTypeIsPackage`.", + "type": "boolean" + }, + "rank": { + "description": "*macOS-only* The app’s rank with respect to the type. The value can be `Owner`, `Default`, `Alternate`, or `None`. Corresponds to `LSHandlerRank`.", + "default": "Default", + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "ext" + ] + }, + "Protocol": { + "description": "URL Protocol Schemes. Protocols to associate the app with. macOS only.\n\nPlease note — on macOS [you need to register an `open-url` event handler](http://electron.atom.io/docs/api/app/#event-open-url-macos).", + "type": "object", + "properties": { + "name": { + "description": "The name. e.g. `IRC server URL`.", + "type": "string" + }, + "schemes": { + "description": "The schemes. e.g. `[\"irc\", \"ircs\"]`.", + "type": "array", + "items": { + "type": "string" + } }, - "asarUnpack": { - "anyOf": [ - { - "items": { - "type": "string" - }, - "type": "array" - }, - { - "type": [ - "null", - "string" - ] - } + "role": { + "description": "*macOS-only* The app’s role with respect to the type.", + "default": "Editor", + "enum": [ + "Editor", + "None", + "Shell", + "Viewer" ], - "description": "A [glob patterns](./file-patterns.md) relative to the [app directory](#directories), which specifies which files to unpack when creating the [asar](http://electron.atom.io/docs/tutorial/application-packaging/) archive." + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "name", + "schemes" + ] + }, + "Publish": { + "anyOf": [ + { + "$ref": "#/definitions/GithubOptions" }, - "binaries": { - "anyOf": [ - { - "items": { - "type": "string" - }, - "type": "array" - }, - { - "type": "null" - } - ], - "description": "Paths of any extra binaries that need to be signed." + { + "$ref": "#/definitions/GitlabOptions" }, - "bundleShortVersion": { - "description": "The `CFBundleShortVersionString`. Do not use it unless you need to.", - "type": [ - "null", - "string" - ] + { + "$ref": "#/definitions/S3Options" }, - "bundleVersion": { - "description": "The `CFBundleVersion`. Do not use it unless [you need to](https://github.com/electron-userland/electron-builder/issues/565#issuecomment-230678643).", - "type": [ - "null", - "string" - ] + { + "$ref": "#/definitions/SpacesOptions" }, - "category": { - "description": "The application category type, as shown in the Finder via *View -> Arrange by Application Category* when viewing the Applications directory.\n\nFor example, `\"category\": \"public.app-category.developer-tools\"` will set the application category to *Developer Tools*.\n\nValid values are listed in [Apple's documentation](https://developer.apple.com/library/ios/documentation/General/Reference/InfoPlistKeyReference/Articles/LaunchServicesKeys.html#//apple_ref/doc/uid/TP40009250-SW8).", - "type": [ - "null", - "string" - ] + { + "$ref": "#/definitions/GenericServerOptions" }, - "compression": { - "anyOf": [ - { - "enum": [ - "maximum", - "normal", - "store" - ], - "type": "string" - }, - { - "type": "null" - } - ], - "default": "normal", - "description": "The compression level. If you want to rapidly test build, `store` can reduce build time significantly. `maximum` doesn't lead to noticeable size difference, but increase build time." + { + "$ref": "#/definitions/CustomPublishOptions" }, - "cscInstallerKeyPassword": { - "type": [ - "null", - "string" - ] + { + "$ref": "#/definitions/KeygenOptions" }, - "cscInstallerLink": { - "type": [ - "null", - "string" - ] + { + "$ref": "#/definitions/SnapStoreOptions" }, - "cscKeyPassword": { - "type": [ - "null", - "string" - ] + { + "$ref": "#/definitions/BitbucketOptions" }, - "cscLink": { - "type": [ - "null", - "string" - ] + { + "type": "array", + "items": { + "$ref": "#/definitions/AllPublishOptions" + } }, - "darkModeSupport": { - "default": false, - "description": "Whether a dark mode is supported. If your app does have a dark mode, you can make your app follow the system-wide dark mode setting.", - "type": "boolean" + { + "type": "string" + } + ] + }, + "GithubOptions": { + "description": "[GitHub](https://help.github.com/articles/about-releases/) options.\n\nGitHub [personal access token](https://help.github.com/articles/creating-an-access-token-for-command-line-use/) is required. You can generate by going to [https://github.com/settings/tokens/new](https://github.com/settings/tokens/new). The access token should have the repo scope/permission.\nDefine `GH_TOKEN` environment variable.", + "type": "object", + "properties": { + "provider": { + "description": "The provider. Must be `github`.", + "type": "string", + "const": "github" }, - "defaultArch": { + "repo": { + "description": "The repository name. [Detected automatically](#github-repository-and-bintray-package).", "type": "string" }, - "detectUpdateChannel": { + "owner": { + "description": "The owner.", + "type": "string" + }, + "vPrefixedTagName": { + "description": "Whether to use `v`-prefixed tag name.", "default": true, - "description": "Whether to infer update channel from application version pre-release components. e.g. if version `0.12.1-alpha.1`, channel will be set to `alpha`. Otherwise to `latest`.\nThis does *not* apply to github publishing, which will [never auto-detect the update channel](https://github.com/electron-userland/electron-builder/issues/8589).", "type": "boolean" }, - "disableDefaultIgnoredFiles": { - "default": false, - "description": "Whether to exclude all default ignored files(https://www.electron.build/contents#files) and options. Defaults to `false`.", - "type": [ - "null", - "boolean" - ] + "tagNamePrefix": { + "description": "If defined, sets the prefix of the tag name that comes before the semver number.\ne.g. \"v\" in \"v1.2.3\" or \"test\" of \"test1.2.3\".\nOverrides `vPrefixedTagName`", + "type": "string" }, - "electronLanguages": { - "anyOf": [ - { - "items": { - "type": "string" - }, - "type": "array" - }, - { - "type": "string" - } + "host": { + "description": "The host (including the port if need).", + "default": "github.com", + "type": "string" + }, + "protocol": { + "description": "The protocol. GitHub Publisher supports only `https`.", + "default": "https", + "enum": [ + "http", + "https" ], - "description": "The electron locales to keep. By default, all Electron locales used as-is." + "type": "string" }, - "electronUpdaterCompatibility": { - "description": "The [electron-updater compatibility](./auto-update.md#compatibility) semver range.", - "type": [ - "null", - "string" - ] + "token": { + "description": "The access token to support auto-update from private github repositories. Never specify it in the configuration files. Only for [setFeedURL](./auto-update.md#appupdatersetfeedurloptions).", + "type": "string" }, - "entitlements": { - "description": "The path to entitlements file for signing the app. `build/entitlements.mas.plist` will be used if exists (it is a recommended way to set).\nSee [this folder in osx-sign's repository](https://github.com/electron/osx-sign/tree/main/entitlements) for examples.\nBe aware that your app may crash if the right entitlements are not set like `com.apple.security.cs.allow-jit` for example on arm64 builds with Electron 20+.\nSee [Signing and Notarizing macOS Builds from the Electron documentation](https://www.electronjs.org/docs/latest/tutorial/code-signing#signing--notarizing-macos-builds) for more information.", - "type": [ - "null", - "string" - ] + "private": { + "description": "Whether to use private github auto-update provider if `GH_TOKEN` environment variable is defined. See [Private GitHub Update Repo](./auto-update.md#private-github-update-repo).", + "type": "boolean" }, - "entitlementsInherit": { - "description": "The path to child entitlements which inherit the security settings for signing frameworks and bundles of a distribution. `build/entitlements.mas.inherit.plist` will be used if exists (it is a recommended way to set).\nSee [this folder in osx-sign's repository](https://github.com/electron/osx-sign/tree/main/entitlements) for examples.", - "type": [ - "null", - "string" - ] + "channel": { + "description": "The channel.", + "default": "latest", + "type": "string" }, - "entitlementsLoginHelper": { - "description": "Path to login helper entitlement file.\nWhen using App Sandbox, the the `com.apple.security.inherit` key that is normally in the inherited entitlements cannot be inherited since the login helper is a standalone executable.\nDefaults to the value provided for `entitlements`. This option only applies when signing with `entitlements` provided.", - "type": [ - "null", - "string" - ] + "releaseType": { + "description": "The type of release. By default `draft` release will be created.\n\nAlso you can set release type using environment variable. If `EP_DRAFT`is set to `true` — `draft`, if `EP_PRE_RELEASE`is set to `true` — `prerelease`.", + "default": "draft", + "enum": [ + "draft", + "prerelease", + "release" + ], + "type": "string" }, - "executableName": { - "description": "The executable name. Defaults to `productName`\nNote: Except for Linux, where this would constitute a breaking change in previous behavior and lead to both invalid executable names and Desktop files. Ref comments in: https://github.com/electron-userland/electron-builder/pull/9068", - "type": [ - "null", - "string" - ] + "publisherName": { + "type": "array", + "items": { + "type": "string" + } }, - "extendInfo": { - "description": "The extra entries for `Info.plist`." + "updaterCacheDirName": { + "type": "string" }, - "extraDistFiles": { - "anyOf": [ - { - "items": { - "type": "string" - }, - "type": "array" - }, - { - "type": [ - "null", - "string" - ] - } - ], - "description": "Extra files to put in archive. Not applicable for `tar.*`." + "publishAutoUpdate": { + "description": "Whether to publish auto update info files.\n\nAuto update relies only on the first provider in the list (you can specify several publishers).\nThus, probably, there`s no need to upload the metadata files for the other configured providers. But by default will be uploaded.", + "default": true, + "type": "boolean" }, - "extraFiles": { - "anyOf": [ - { - "$ref": "#/definitions/FileSet" - }, - { - "items": { - "anyOf": [ - { - "$ref": "#/definitions/FileSet" - }, - { - "type": "string" - } - ] - }, - "type": "array" - }, - { - "type": [ - "null", - "string" - ] - } - ], - "description": "The same as [extraResources](#extraresources) but copy into the app's content directory (`Contents` for MacOS, root directory for Linux and Windows)." + "requestHeaders": { + "$ref": "#/definitions/OutgoingHttpHeaders", + "description": "Any custom request headers" }, - "extraResources": { + "timeout": { + "description": "Request timeout in milliseconds. (Default is 2 minutes; O is ignored)", + "default": 120000, + "type": "number" + } + }, + "additionalProperties": false, + "required": [ + "provider" + ] + }, + "OutgoingHttpHeaders": { + "type": "object", + "properties": { + "accept": { "anyOf": [ { - "$ref": "#/definitions/FileSet" - }, - { + "type": "array", "items": { - "anyOf": [ - { - "$ref": "#/definitions/FileSet" - }, - { - "type": "string" - } - ] - }, - "type": "array" + "type": "string" + } }, { - "type": [ - "null", - "string" - ] + "type": "string" } - ], - "description": "A [glob patterns](./file-patterns.md) relative to the project directory, when specified, copy the file or directory with matching names directly into the app's resources directory (`Contents/Resources` for MacOS, `resources` for Linux and Windows).\n\nFile patterns (and support for `from` and `to` fields) the same as for [files](#files)." + ] }, - "fileAssociations": { + "accept-charset": { "anyOf": [ { - "$ref": "#/definitions/FileAssociation" + "type": "array", + "items": { + "type": "string" + } }, { - "items": { - "$ref": "#/definitions/FileAssociation" - }, - "type": "array" + "type": "string" } - ], - "description": "The file associations." + ] }, - "files": { + "accept-encoding": { "anyOf": [ { - "$ref": "#/definitions/FileSet" + "type": "array", + "items": { + "type": "string" + } }, { + "type": "string" + } + ] + }, + "accept-language": { + "anyOf": [ + { + "type": "array", "items": { - "anyOf": [ - { - "$ref": "#/definitions/FileSet" - }, - { - "type": "string" - } - ] - }, - "type": "array" + "type": "string" + } }, { - "type": [ - "null", - "string" - ] + "type": "string" } - ], - "description": "A [glob patterns](./file-patterns.md) relative to the [app directory](configuration.md#directories), which specifies which files to include when copying files to create the package.\n\nDefaults to:\n```json\n[\n\"**\\/*\",\n\"!**\\/node_modules/*\\/{CHANGELOG.md,README.md,README,readme.md,readme}\",\n\"!**\\/node_modules/*\\/{test,__tests__,tests,powered-test,example,examples}\",\n\"!**\\/node_modules/*.d.ts\",\n\"!**\\/node_modules/.bin\",\n\"!**\\/*.{iml,o,hprof,orig,pyc,pyo,rbc,swp,csproj,sln,xproj}\",\n\"!.editorconfig\",\n\"!**\\/._*\",\n\"!**\\/{.DS_Store,.git,.hg,.svn,CVS,RCS,SCCS,.gitignore,.gitattributes}\",\n\"!**\\/{__pycache__,thumbs.db,.flowconfig,.idea,.vs,.nyc_output}\",\n\"!**\\/{appveyor.yml,.travis.yml,circle.yml}\",\n\"!**\\/{npm-debug.log,yarn.lock,.yarn-integrity,.yarn-metadata.json}\"\n]\n```\n\nDevelopment dependencies are never copied in any case. You don't need to ignore it explicitly. Hidden files are not ignored by default, but all files that should be ignored, are ignored by default.\n\nDefault pattern \\`**\\/*\\` **is not added to your custom** if some of your patterns is not ignore (i.e. not starts with `!`). `package.json` and \\`**\\/node_modules/**\\/*` (only production dependencies will be copied) is added to your custom in any case. All default ignores are added in any case — you don't need to repeat it if you configure own patterns.\n\nMay be specified in the platform options (e.g. in the [mac](mac.md)).\n\nYou may also specify custom source and destination directories by using `FileSet` objects instead of simple glob patterns.\n\n```json\n[\n{\n\"from\": \"path/to/source\",\n\"to\": \"path/to/destination\",\n\"filter\": [\"**\\/*\", \"!foo/*.js\"]\n}\n]\n```\n\nYou can use [file macros](./file-patterns.md#file-macros) in the `from` and `to` fields as well. `from` and `to` can be files and you can use this to [rename](https://github.com/electron-userland/electron-builder/issues/1119) a file while packaging." - }, - "forceCodeSigning": { - "description": "Whether to fail if app will be not code signed.", - "type": "boolean" - }, - "gatekeeperAssess": { - "default": false, - "description": "Whether to let `@electron/osx-sign` validate the signing or not.", - "type": "boolean" + ] }, - "generateUpdatesFilesForAllChannels": { - "default": false, - "description": "Please see [Building and Releasing using Channels](https://github.com/electron-userland/electron-builder/issues/1182#issuecomment-324947139).", - "type": "boolean" + "accept-ranges": { + "type": "string" }, - "hardenedRuntime": { - "default": true, - "description": "Whether your app has to be signed with hardened runtime.", - "type": "boolean" + "access-control-allow-credentials": { + "type": "string" }, - "helperBundleId": { - "default": "${appBundleIdentifier}.helper", - "description": "The bundle identifier to use in the application helper's plist.", - "type": [ - "null", - "string" - ] + "access-control-allow-headers": { + "type": "string" }, - "helperEHBundleId": { - "default": "${appBundleIdentifier}.helper.EH", - "description": "The bundle identifier to use in the EH helper's plist.", - "type": [ - "null", - "string" - ] + "access-control-allow-methods": { + "type": "string" }, - "helperGPUBundleId": { - "default": "${appBundleIdentifier}.helper.GPU", - "description": "The bundle identifier to use in the GPU helper's plist.", - "type": [ - "null", - "string" - ] + "access-control-allow-origin": { + "type": "string" }, - "helperNPBundleId": { - "default": "${appBundleIdentifier}.helper.NP", - "description": "The bundle identifier to use in the NP helper's plist.", - "type": [ - "null", - "string" - ] + "access-control-expose-headers": { + "type": "string" }, - "helperPluginBundleId": { - "default": "${appBundleIdentifier}.helper.Plugin", - "description": "The bundle identifier to use in the Plugin helper's plist.", - "type": [ - "null", - "string" - ] + "access-control-max-age": { + "type": "string" }, - "helperRendererBundleId": { - "default": "${appBundleIdentifier}.helper.Renderer", - "description": "The bundle identifier to use in the Renderer helper's plist.", - "type": [ - "null", - "string" - ] + "access-control-request-headers": { + "type": "string" }, - "icon": { - "default": "build/icon.icns", - "description": "The path to application icon.\nAccepts `.icns` (legacy) or `.icon` (Icon Composer asset).\nIf a `.icon` asset is provided, it will be preferred and compiled to an asset catalog.", - "type": [ - "null", - "string" - ] + "access-control-request-method": { + "type": "string" }, - "identity": { - "description": "The name of certificate to use when signing. Consider using environment variables [CSC_LINK or CSC_NAME](./code-signing.md) instead of specifying this option.\nMAS installer identity is specified in the [mas](./mas.md).\n\nSet to `-` to use an ad-hoc identity for signing. Set to `null` to skip signing entirely.", - "type": [ - "null", - "string" - ] + "age": { + "type": "string" }, - "mergeASARs": { - "default": true, - "description": "Whether to merge ASAR files for different architectures or not.\n\nThis option has no effect unless building for \"universal\" arch.", - "type": "boolean" + "allow": { + "type": "string" }, - "minimumSystemVersion": { - "description": "The minimum version of macOS required for the app to run. Corresponds to `LSMinimumSystemVersion`.", - "type": [ - "null", - "string" - ] + "authorization": { + "type": "string" }, - "notarize": { - "description": "Whether to disable electron-builder's [@electron/notarize](https://github.com/electron/notarize) integration.\n\nNote: In order to activate the notarization step You MUST specify one of the following via environment variables:\n\n1. `APPLE_API_KEY`, `APPLE_API_KEY_ID` and `APPLE_API_ISSUER`.\n2. `APPLE_ID`, `APPLE_APP_SPECIFIC_PASSWORD`, and `APPLE_TEAM_ID`\n3. `APPLE_KEYCHAIN` and `APPLE_KEYCHAIN_PROFILE`\n\nFor security reasons it is recommended to use the first option (see https://github.com/electron-userland/electron-builder/issues/7859)", - "type": "boolean" + "cache-control": { + "type": "string" }, - "preAutoEntitlements": { - "default": true, - "description": "Whether to enable entitlements automation from `@electron/osx-sign`.", - "type": "boolean" + "cdn-cache-control": { + "type": "string" }, - "protocols": { + "connection": { "anyOf": [ { - "$ref": "#/definitions/Protocol" + "type": "array", + "items": { + "type": "string" + } }, { - "items": { - "$ref": "#/definitions/Protocol" - }, - "type": "array" + "type": "string" } - ], - "description": "The URL protocol schemes." + ] }, - "provisioningProfile": { - "description": "The path to the provisioning profile to use when signing, absolute or relative to the app root.", + "content-disposition": { + "type": "string" + }, + "content-encoding": { + "type": "string" + }, + "content-language": { + "type": "string" + }, + "content-length": { "type": [ - "null", - "string" + "string", + "number" ] }, - "publish": { + "content-location": { + "type": "string" + }, + "content-range": { + "type": "string" + }, + "content-security-policy": { + "type": "string" + }, + "content-security-policy-report-only": { + "type": "string" + }, + "content-type": { + "type": "string" + }, + "cookie": { "anyOf": [ { - "$ref": "#/definitions/GithubOptions" - }, - { - "$ref": "#/definitions/GitlabOptions" - }, - { - "$ref": "#/definitions/S3Options" - }, - { - "$ref": "#/definitions/SpacesOptions" - }, - { - "$ref": "#/definitions/GenericServerOptions" - }, - { - "$ref": "#/definitions/CustomPublishOptions" - }, - { - "$ref": "#/definitions/KeygenOptions" - }, - { - "$ref": "#/definitions/SnapStoreOptions" + "type": "array", + "items": { + "type": "string" + } }, { - "$ref": "#/definitions/BitbucketOptions" - }, + "type": "string" + } + ] + }, + "dav": { + "anyOf": [ { + "type": "array", "items": { - "$ref": "#/definitions/AllPublishOptions" - }, - "type": "array" + "type": "string" + } }, { - "type": [ - "null", - "string" - ] + "type": "string" } - ], - "description": "Publisher configuration. See [Auto Update](./publish.md) for more information." + ] }, - "releaseInfo": { - "$ref": "#/definitions/ReleaseInfo", - "description": "The release info. Intended for command line usage:\n\n```\n-c.releaseInfo.releaseNotes=\"new features\"\n```" + "dnt": { + "type": "string" }, - "requirements": { - "description": "Path of [requirements file](https://developer.apple.com/library/mac/documentation/Security/Conceptual/CodeSigningGuide/RequirementLang/RequirementLang.html) used in signing. Not applicable for MAS.", - "type": [ - "null", - "string" - ] + "date": { + "type": "string" + }, + "etag": { + "type": "string" + }, + "expect": { + "type": "string" + }, + "expires": { + "type": "string" + }, + "forwarded": { + "type": "string" + }, + "from": { + "type": "string" + }, + "host": { + "type": "string" + }, + "if-match": { + "type": "string" + }, + "if-modified-since": { + "type": "string" + }, + "if-none-match": { + "type": "string" + }, + "if-range": { + "type": "string" + }, + "if-unmodified-since": { + "type": "string" }, - "sign": { + "last-modified": { + "type": "string" + }, + "link": { "anyOf": [ { - "typeof": "function" + "type": "array", + "items": { + "type": "string" + } }, { - "type": [ - "null", - "string" - ] + "type": "string" } - ], - "description": "The custom function (or path to file or module id) to sign an app bundle." + ] }, - "signIgnore": { + "location": { + "type": "string" + }, + "max-forwards": { + "type": "string" + }, + "origin": { + "type": "string" + }, + "pragma": { "anyOf": [ { + "type": "array", "items": { "type": "string" - }, - "type": "array" + } }, { - "type": [ - "null", - "string" - ] + "type": "string" } - ], - "description": "Regex or an array of regex's that signal skipping signing a file." - }, - "singleArchFiles": { - "description": "Minimatch pattern of paths that are allowed to be present in one of the\nASAR files, but not in the other.\n\nThis option has no effect unless building for \"universal\" arch and applies\nonly if `mergeASARs` is `true`.", - "type": [ - "null", - "string" ] }, - "strictVerify": { - "default": true, - "description": "Whether to let `@electron/osx-sign` verify the contents or not.", - "type": "boolean" - }, - "target": { + "proxy-authenticate": { "anyOf": [ { - "$ref": "#/definitions/TargetConfiguration" - }, - { + "type": "array", "items": { - "anyOf": [ - { - "$ref": "#/definitions/TargetConfiguration" - }, - { - "enum": [ - "7z", - "default", - "dir", - "dmg", - "mas", - "mas-dev", - "pkg", - "tar.bz2", - "tar.gz", - "tar.lz", - "tar.xz", - "zip" - ], - "type": "string" - } - ] - }, - "type": "array" + "type": "string" + } }, { - "enum": [ - "7z", - "default", - "dir", - "dmg", - "mas", - "mas-dev", - "pkg", - "tar.bz2", - "tar.gz", - "tar.lz", - "tar.xz", - "zip" - ], "type": "string" - }, - { - "type": "null" } - ], - "description": "The target package type: list of `default`, `dmg`, `mas`, `mas-dev`, `pkg`, `7z`, `zip`, `tar.xz`, `tar.lz`, `tar.gz`, `tar.bz2`, `dir`. Defaults to `default` (`dmg` and `zip` for Squirrel.Mac). Note: Squirrel.Mac auto update mechanism requires both `dmg` and `zip` to be enabled, even when only `dmg` is used. Disabling `zip` will break auto update in `dmg` packages." - }, - "timestamp": { - "description": "Specify the URL of the timestamp authority server", - "type": [ - "null", - "string" ] }, - "type": { + "proxy-authorization": { + "type": "string" + }, + "public-key-pins": { + "type": "string" + }, + "public-key-pins-report-only": { + "type": "string" + }, + "range": { + "type": "string" + }, + "referer": { + "type": "string" + }, + "referrer-policy": { + "type": "string" + }, + "refresh": { + "type": "string" + }, + "retry-after": { + "type": "string" + }, + "sec-websocket-accept": { + "type": "string" + }, + "sec-websocket-extensions": { "anyOf": [ { - "enum": [ - "development", - "distribution" - ], - "type": "string" + "type": "array", + "items": { + "type": "string" + } }, { - "type": "null" + "type": "string" } - ], - "default": "distribution", - "description": "Whether to sign app for development or for distribution." - }, - "x64ArchFiles": { - "description": "Minimatch pattern of paths that are allowed to be x64 binaries in both\nASAR files\n\nThis option has no effect unless building for \"universal\" arch and applies\nonly if `mergeASARs` is `true`.", - "type": [ - "null", - "string" - ] - } - }, - "type": "object" - }, - "MetadataDirectories": { - "additionalProperties": false, - "properties": { - "app": { - "description": "The application directory (containing the application package.json), defaults to `app`, `www` or working directory.", - "type": [ - "null", - "string" ] }, - "buildResources": { - "default": "build", - "description": "The path to build resources.\n\nPlease note — build resources are not packed into the app. If you need to use some files, e.g. as tray icon, please include required files explicitly: `\"files\": [\"**\\/*\", \"build/icon.*\"]`", - "type": [ - "null", - "string" - ] + "sec-websocket-key": { + "type": "string" }, - "output": { - "default": "dist", - "description": "The output directory. [File macros](./file-patterns.md#file-macros) are supported.", - "type": [ - "null", - "string" - ] - } - }, - "type": "object" - }, - "MsiOptions": { - "additionalProperties": false, - "properties": { - "additionalLightArgs": { + "sec-websocket-protocol": { "anyOf": [ { + "type": "array", "items": { "type": "string" - }, - "type": "array" + } }, { - "type": "null" + "type": "string" } - ], - "description": "Any additional arguments to be passed to the light.ext, such as `[\"-cultures:ja-jp\"]`" + ] }, - "additionalWixArgs": { + "sec-websocket-version": { + "type": "string" + }, + "server": { + "type": "string" + }, + "set-cookie": { "anyOf": [ { + "type": "array", "items": { "type": "string" - }, - "type": "array" + } }, { - "type": "null" + "type": "string" } - ], - "description": "Any additional arguments to be passed to the WiX installer compiler, such as `[\"-ext\", \"WixUtilExtension\"]`" - }, - "artifactName": { - "description": "The [artifact file name template](./configuration.md#artifact-file-name-template).", - "type": [ - "null", - "string" ] }, - "createDesktopShortcut": { - "default": true, - "description": "Whether to create desktop shortcut. Set to `always` if to recreate also on reinstall (even if removed by user).", - "enum": [ - "always", - false, - true - ] + "strict-transport-security": { + "type": "string" }, - "createStartMenuShortcut": { - "default": true, - "description": "Whether to create start menu shortcut.", - "type": "boolean" + "te": { + "type": "string" }, - "menuCategory": { - "default": false, - "description": "Whether to create submenu for start menu shortcut and program files directory. If `true`, company name will be used. Or string value.", - "type": [ - "string", - "boolean" - ] + "trailer": { + "type": "string" }, - "oneClick": { - "default": true, - "description": "One-click installation.", - "type": "boolean" + "transfer-encoding": { + "type": "string" }, - "perMachine": { - "default": false, - "description": "Whether to install per all users (per-machine).", - "type": "boolean" + "user-agent": { + "type": "string" }, - "publish": { + "upgrade": { + "type": "string" + }, + "upgrade-insecure-requests": { + "type": "string" + }, + "vary": { + "type": "string" + }, + "via": { "anyOf": [ { - "$ref": "#/definitions/GithubOptions" - }, - { - "$ref": "#/definitions/GitlabOptions" - }, - { - "$ref": "#/definitions/S3Options" - }, - { - "$ref": "#/definitions/SpacesOptions" - }, - { - "$ref": "#/definitions/GenericServerOptions" - }, - { - "$ref": "#/definitions/CustomPublishOptions" - }, - { - "$ref": "#/definitions/KeygenOptions" - }, - { - "$ref": "#/definitions/SnapStoreOptions" + "type": "array", + "items": { + "type": "string" + } }, { - "$ref": "#/definitions/BitbucketOptions" - }, + "type": "string" + } + ] + }, + "warning": { + "type": "string" + }, + "www-authenticate": { + "anyOf": [ { + "type": "array", "items": { - "$ref": "#/definitions/AllPublishOptions" - }, - "type": "array" + "type": "string" + } }, { - "type": [ - "null", - "string" - ] + "type": "string" } ] }, - "runAfterFinish": { - "default": true, - "description": "Whether to run the installed application after finish. For assisted installer corresponding checkbox will be removed.", - "type": "boolean" + "x-content-type-options": { + "type": "string" }, - "shortcutName": { - "description": "The name that will be used for all shortcuts. Defaults to the application name.", - "type": [ - "null", - "string" - ] + "x-dns-prefetch-control": { + "type": "string" }, - "upgradeCode": { - "description": "The [upgrade code](https://msdn.microsoft.com/en-us/library/windows/desktop/aa372375(v=vs.85).aspx). Optional, by default generated using app id.", + "x-frame-options": { + "type": "string" + }, + "x-xss-protection": { + "type": "string" + } + }, + "additionalProperties": { + "anyOf": [ + { + "items": { + "type": "string" + }, + "type": "array" + }, + { + "type": [ + "string", + "number" + ] + } + ] + } + }, + "GitlabOptions": { + "description": "[GitLab](https://docs.gitlab.com/ee/user/project/releases/) options.\n\nGitLab [personal access token](https://docs.gitlab.com/ee/user/profile/personal_access_tokens.html) is required for private repositories. You can generate one by going to your GitLab profile settings.\nDefine `GITLAB_TOKEN` environment variable.", + "type": "object", + "properties": { + "provider": { + "description": "The provider. Must be `gitlab`.", + "type": "string", + "const": "gitlab" + }, + "projectId": { + "description": "The GitLab project ID or path (e.g., \"12345678\" or \"namespace/project\").", "type": [ - "null", - "string" + "string", + "number" ] }, - "warningsAsErrors": { + "host": { + "description": "The GitLab host (including the port if need).", + "default": "gitlab.com", + "type": "string" + }, + "token": { + "description": "The access token to support auto-update from private GitLab repositories. Never specify it in the configuration files.", + "type": "string" + }, + "vPrefixedTagName": { + "description": "Whether to use `v`-prefixed tag name.", + "default": true, + "type": "boolean" + }, + "channel": { + "description": "The channel.", + "default": "latest", + "type": "string" + }, + "uploadTarget": { + "description": "Upload target method. Can be \"project_upload\" for GitLab project uploads or \"generic_package\" for GitLab generic packages.", + "default": "project_upload", + "enum": [ + "generic_package", + "project_upload" + ], + "type": "string" + }, + "publisherName": { + "type": "array", + "items": { + "type": "string" + } + }, + "updaterCacheDirName": { + "type": "string" + }, + "publishAutoUpdate": { + "description": "Whether to publish auto update info files.\n\nAuto update relies only on the first provider in the list (you can specify several publishers).\nThus, probably, there`s no need to upload the metadata files for the other configured providers. But by default will be uploaded.", "default": true, - "description": "If `warningsAsErrors` is `true` (default): treat warnings as errors. If `warningsAsErrors` is `false`: allow warnings.", "type": "boolean" + }, + "requestHeaders": { + "$ref": "#/definitions/OutgoingHttpHeaders", + "description": "Any custom request headers" + }, + "timeout": { + "description": "Request timeout in milliseconds. (Default is 2 minutes; O is ignored)", + "default": 120000, + "type": "number" } }, - "type": "object" - }, - "MsiWrappedOptions": { "additionalProperties": false, + "required": [ + "provider" + ] + }, + "S3Options": { + "description": "[Amazon S3](https://aws.amazon.com/s3/) options.\nAWS credentials are required, please see [getting your credentials](http://docs.aws.amazon.com/sdk-for-javascript/v2/developer-guide/getting-your-credentials.html).\nTo set credentials define `AWS_ACCESS_KEY_ID` and `AWS_SECRET_ACCESS_KEY` [environment variables](http://docs.aws.amazon.com/sdk-for-javascript/v2/developer-guide/loading-node-credentials-environment.html) directly,\nor use [~/.aws/credentials](http://docs.aws.amazon.com/sdk-for-javascript/v2/developer-guide/loading-node-credentials-shared.html) file,\nor use [~/.aws/config](https://docs.aws.amazon.com/sdkref/latest/guide/file-format.html) file. For the last method to work you will also need to define `AWS_SDK_LOAD_CONFIG=1` environment variable.\n\nExample configuration:\n\n```json\n{\n\"build\":\n \"publish\": {\n \"provider\": \"s3\",\n \"bucket\": \"bucket-name\"\n }\n}\n}\n```", + "type": "object", "properties": { - "additionalWixArgs": { - "anyOf": [ - { - "items": { - "type": "string" - }, - "type": "array" - }, - { - "type": "null" - } + "provider": { + "description": "The provider. Must be `s3`.", + "type": "string", + "const": "s3" + }, + "bucket": { + "description": "The bucket name.", + "type": "string" + }, + "region": { + "description": "The region. Is determined and set automatically when publishing.", + "type": "string" + }, + "acl": { + "description": "The ACL. Set to `null` to not [add](https://github.com/electron-userland/electron-builder/issues/1822).\n\nPlease see [required permissions for the S3 provider](https://github.com/electron-userland/electron-builder/issues/1618#issuecomment-314679128).", + "default": "public-read", + "enum": [ + "private", + "public-read" ], - "description": "Any additional arguments to be passed to the WiX installer compiler, such as `[\"-ext\", \"WixUtilExtension\"]`" + "type": "string" }, - "artifactName": { - "description": "The [artifact file name template](./configuration.md#artifact-file-name-template).", - "type": [ - "null", - "string" - ] + "storageClass": { + "description": "The type of storage to use for the object.", + "default": "STANDARD", + "enum": [ + "REDUCED_REDUNDANCY", + "STANDARD", + "STANDARD_IA" + ], + "type": "string" }, - "createDesktopShortcut": { - "default": true, - "description": "Whether to create desktop shortcut. Set to `always` if to recreate also on reinstall (even if removed by user).", + "encryption": { + "description": "Server-side encryption algorithm to use for the object.", "enum": [ - "always", - false, - true - ] + "AES256", + "aws:kms" + ], + "type": "string" }, - "createStartMenuShortcut": { - "default": true, - "description": "Whether to create start menu shortcut.", + "endpoint": { + "description": "The endpoint URI to send requests to. The default endpoint is built from the configured region.\nThe endpoint should be a string like `https://{service}.{region}.amazonaws.com`.", + "type": "string" + }, + "accelerate": { + "description": "If set to true, this will enable the s3 accelerated endpoint\nThese endpoints have a particular format of:\n ${bucketname}.s3-accelerate.amazonaws.com", "type": "boolean" }, - "impersonate": { - "default": false, - "description": "Determines if the wrapped installer should be executed with impersonation", + "forcePathStyle": { + "description": "When true, force a path-style endpoint to be used where the bucket name is part of the path.\n[Path-style Access](https://docs.aws.amazon.com/AmazonS3/latest/userguide/VirtualHosting.html#path-style-access)", "type": "boolean" }, - "menuCategory": { - "default": false, - "description": "Whether to create submenu for start menu shortcut and program files directory. If `true`, company name will be used. Or string value.", - "type": [ - "string", - "boolean" - ] + "channel": { + "description": "The update channel.", + "default": "latest", + "type": "string" }, - "oneClick": { - "type": "boolean" + "path": { + "description": "The directory path.", + "default": "/", + "type": "string" }, - "perMachine": { - "default": false, - "description": "Whether to install per all users (per-machine).", + "publisherName": { + "type": "array", + "items": { + "type": "string" + } + }, + "updaterCacheDirName": { + "type": "string" + }, + "publishAutoUpdate": { + "description": "Whether to publish auto update info files.\n\nAuto update relies only on the first provider in the list (you can specify several publishers).\nThus, probably, there`s no need to upload the metadata files for the other configured providers. But by default will be uploaded.", + "default": true, "type": "boolean" }, - "publish": { - "anyOf": [ - { - "$ref": "#/definitions/GithubOptions" - }, - { - "$ref": "#/definitions/GitlabOptions" - }, - { - "$ref": "#/definitions/S3Options" - }, - { - "$ref": "#/definitions/SpacesOptions" - }, - { - "$ref": "#/definitions/GenericServerOptions" - }, - { - "$ref": "#/definitions/CustomPublishOptions" - }, - { - "$ref": "#/definitions/KeygenOptions" - }, - { - "$ref": "#/definitions/SnapStoreOptions" - }, - { - "$ref": "#/definitions/BitbucketOptions" - }, - { - "items": { - "$ref": "#/definitions/AllPublishOptions" - }, - "type": "array" - }, - { - "type": [ - "null", - "string" - ] - } - ] + "requestHeaders": { + "$ref": "#/definitions/OutgoingHttpHeaders", + "description": "Any custom request headers" + }, + "timeout": { + "description": "Request timeout in milliseconds. (Default is 2 minutes; O is ignored)", + "default": 120000, + "type": "number" + } + }, + "additionalProperties": false, + "required": [ + "bucket", + "provider" + ] + }, + "SpacesOptions": { + "description": "[DigitalOcean Spaces](https://www.digitalocean.com/community/tutorials/an-introduction-to-digitalocean-spaces) options.\nAccess key is required, define `DO_KEY_ID` and `DO_SECRET_KEY` environment variables.", + "type": "object", + "properties": { + "provider": { + "description": "The provider. Must be `spaces`.", + "type": "string", + "const": "spaces" + }, + "name": { + "description": "The space name.", + "type": "string" + }, + "region": { + "description": "The region (e.g. `nyc3`).", + "type": "string" + }, + "channel": { + "description": "The update channel.", + "default": "latest", + "type": "string" + }, + "path": { + "description": "The directory path.", + "default": "/", + "type": "string" }, - "runAfterFinish": { - "default": true, - "description": "Whether to run the installed application after finish. For assisted installer corresponding checkbox will be removed.", - "type": "boolean" + "acl": { + "description": "The ACL. Set to `null` to not [add](https://github.com/electron-userland/electron-builder/issues/1822).", + "default": "public-read", + "enum": [ + "private", + "public-read" + ], + "type": "string" }, - "shortcutName": { - "description": "The name that will be used for all shortcuts. Defaults to the application name.", - "type": [ - "null", - "string" - ] + "publisherName": { + "type": "array", + "items": { + "type": "string" + } }, - "upgradeCode": { - "description": "The [upgrade code](https://msdn.microsoft.com/en-us/library/windows/desktop/aa372375(v=vs.85).aspx). Optional, by default generated using app id.", - "type": [ - "null", - "string" - ] + "updaterCacheDirName": { + "type": "string" }, - "warningsAsErrors": { + "publishAutoUpdate": { + "description": "Whether to publish auto update info files.\n\nAuto update relies only on the first provider in the list (you can specify several publishers).\nThus, probably, there`s no need to upload the metadata files for the other configured providers. But by default will be uploaded.", "default": true, - "description": "If `warningsAsErrors` is `true` (default): treat warnings as errors. If `warningsAsErrors` is `false`: allow warnings.", "type": "boolean" }, - "wrappedInstallerArgs": { - "description": "Extra arguments to provide to the wrapped installer (ie: /S for silent install)", - "type": [ - "null", - "string" - ] + "requestHeaders": { + "$ref": "#/definitions/OutgoingHttpHeaders", + "description": "Any custom request headers" + }, + "timeout": { + "description": "Request timeout in milliseconds. (Default is 2 minutes; O is ignored)", + "default": 120000, + "type": "number" } }, - "type": "object" - }, - "NsisOptions": { "additionalProperties": false, + "required": [ + "name", + "provider", + "region" + ] + }, + "GenericServerOptions": { + "description": "Generic (any HTTP(S) server) options.\nIn all publish options [File Macros](./file-patterns.md#file-macros) are supported.", + "type": "object", "properties": { - "allowElevation": { - "default": true, - "description": "*assisted installer only.* Allow requesting for elevation. If false, user will have to restart installer with elevated permissions.", - "type": "boolean" + "provider": { + "description": "The provider. Must be `generic`.", + "type": "string", + "const": "generic" }, - "allowToChangeInstallationDirectory": { - "default": false, - "description": "*assisted installer only.* Whether to allow user to change installation directory.", - "type": "boolean" + "url": { + "description": "The base url. e.g. `https://bucket_name.s3.amazonaws.com`.", + "type": "string" }, - "artifactName": { - "description": "The [artifact file name template](./configuration.md#artifact-file-name-template). Defaults to `${productName} Setup ${version}.${ext}`.", - "type": [ - "null", - "string" - ] + "channel": { + "description": "The channel.", + "default": "latest", + "type": "string" }, - "buildUniversalInstaller": { - "default": true, - "description": "Disable building an universal installer of the archs specified in the target configuration\n*Not supported for nsis-web*", + "useMultipleRangeRequest": { + "description": "Whether to use multiple range requests for differential update. Defaults to `true` if `url` doesn't contain `s3.amazonaws.com`.", "type": "boolean" }, - "createDesktopShortcut": { - "default": true, - "description": "Whether to create desktop shortcut. Set to `always` if to recreate also on reinstall (even if removed by user).", - "enum": [ - "always", - false, - true - ] + "publisherName": { + "type": "array", + "items": { + "type": "string" + } }, - "createStartMenuShortcut": { + "updaterCacheDirName": { + "type": "string" + }, + "publishAutoUpdate": { + "description": "Whether to publish auto update info files.\n\nAuto update relies only on the first provider in the list (you can specify several publishers).\nThus, probably, there`s no need to upload the metadata files for the other configured providers. But by default will be uploaded.", "default": true, - "description": "Whether to create start menu shortcut.", "type": "boolean" }, - "customNsisBinary": { - "anyOf": [ - { - "$ref": "#/definitions/CustomNsisBinary" - }, - { - "type": "null" - } - ], - "description": "Allows you to provide your own `makensis`, such as one with support for debug logging via LogSet and LogText. (Logging also requires option `debugLogging = true`)" + "requestHeaders": { + "$ref": "#/definitions/OutgoingHttpHeaders", + "description": "Any custom request headers" }, - "customNsisResources": { - "anyOf": [ - { - "$ref": "#/definitions/CustomNsisResources" - }, - { - "type": "null" - } - ], - "description": "Allows you to provide your own `nsis-resources`" + "timeout": { + "description": "Request timeout in milliseconds. (Default is 2 minutes; O is ignored)", + "default": 120000, + "type": "number" + } + }, + "additionalProperties": false, + "required": [ + "provider", + "url" + ] + }, + "CustomPublishOptions": { + "type": "object", + "additionalProperties": {}, + "properties": { + "provider": { + "description": "The provider. Must be `custom`.", + "type": "string", + "const": "custom" }, - "deleteAppDataOnUninstall": { - "default": false, - "description": "*one-click installer only.* Whether to delete app data on uninstall.", - "type": "boolean" + "updateProvider": { + "typeof": "function" }, - "differentialPackage": { - "type": "boolean" + "publisherName": { + "type": "array", + "items": { + "type": "string" + } }, - "displayLanguageSelector": { - "default": false, - "description": "Whether to display a language selection dialog. Not recommended (by default will be detected using OS language).", + "updaterCacheDirName": { + "type": "string" + }, + "publishAutoUpdate": { + "description": "Whether to publish auto update info files.\n\nAuto update relies only on the first provider in the list (you can specify several publishers).\nThus, probably, there`s no need to upload the metadata files for the other configured providers. But by default will be uploaded.", + "default": true, "type": "boolean" }, - "guid": { - "description": "See [GUID vs Application Name](./nsis.md#guid-vs-application-name).", - "type": [ - "null", - "string" - ] + "requestHeaders": { + "$ref": "#/definitions/OutgoingHttpHeaders", + "description": "Any custom request headers" }, - "include": { - "description": "The path to NSIS include script to customize installer. Defaults to `build/installer.nsh`. See [Custom NSIS script](#custom-nsis-script).", - "type": [ - "null", - "string" - ] + "timeout": { + "description": "Request timeout in milliseconds. (Default is 2 minutes; O is ignored)", + "default": 120000, + "type": "number" + } + }, + "required": [ + "provider" + ] + }, + "KeygenOptions": { + "description": "Keygen options.\nhttps://keygen.sh/\nDefine `KEYGEN_TOKEN` environment variable.", + "type": "object", + "properties": { + "provider": { + "description": "The provider. Must be `keygen`.", + "type": "string", + "const": "keygen" }, - "installerHeader": { - "default": "build/installerHeader.bmp", - "description": "*assisted installer only.* `MUI_HEADERIMAGE`, relative to the [build resources](./contents.md#extraresources) or to the project directory.", - "type": [ - "null", - "string" - ] + "host": { + "description": "Keygen host for self-hosted instances", + "default": "api.keygen.sh", + "type": "string" }, - "installerHeaderIcon": { - "description": "*one-click installer only.* The path to header icon (above the progress bar), relative to the [build resources](./contents.md#extraresources) or to the project directory.\nDefaults to `build/installerHeaderIcon.ico` or application icon.", - "type": [ - "null", - "string" - ] + "account": { + "description": "Keygen account's UUID", + "type": "string" }, - "installerIcon": { - "description": "The path to installer icon, relative to the [build resources](./contents.md#extraresources) or to the project directory.\nDefaults to `build/installerIcon.ico` or application icon.", - "type": [ - "null", - "string" - ] + "product": { + "description": "Keygen product's UUID", + "type": "string" }, - "installerLanguages": { - "anyOf": [ - { - "items": { - "type": "string" - }, - "type": "array" - }, - { - "type": [ - "null", - "string" - ] - } + "channel": { + "description": "The channel.", + "default": "stable", + "enum": [ + "alpha", + "beta", + "dev", + "rc", + "stable" ], - "description": "The installer languages (e.g. `en_US`, `de_DE`). Change only if you understand what do you do and for what." - }, - "installerSidebar": { - "description": "*assisted installer only.* `MUI_WELCOMEFINISHPAGE_BITMAP`, relative to the [build resources](./contents.md#extraresources) or to the project directory.\nDefaults to `build/installerSidebar.bmp` or `${NSISDIR}\\\\Contrib\\\\Graphics\\\\Wizard\\\\nsis3-metro.bmp`. Image size 164 × 314 pixels.", - "type": [ - "null", - "string" - ] - }, - "language": { - "description": "[LCID Dec](https://msdn.microsoft.com/en-au/goglobal/bb964664.aspx), defaults to `1033`(`English - United States`).", - "type": [ - "null", - "string" - ] - }, - "license": { - "description": "The path to EULA license file. Defaults to `license.txt` or `eula.txt` (or uppercase variants). In addition to `txt`, `rtf` and `html` supported (don't forget to use `target=\"_blank\"` for links).\n\nMultiple license files in different languages are supported — use lang postfix (e.g. `_de`, `_ru`). For example, create files `license_de.txt` and `license_en.txt` in the build resources.\nIf OS language is german, `license_de.txt` will be displayed. See map of [language code to name](https://github.com/meikidd/iso-639-1/blob/master/src/data.js).\n\nAppropriate license file will be selected by user OS language.", - "type": [ - "null", - "string" - ] + "type": "string" }, - "menuCategory": { - "default": false, - "description": "Whether to create submenu for start menu shortcut and program files directory. If `true`, company name will be used. Or string value.", - "type": [ - "string", - "boolean" - ] + "platform": { + "description": "The target Platform. Is set programmatically explicitly during publishing.", + "type": "string" }, - "multiLanguageInstaller": { - "description": "Whether to create multi-language installer. Defaults to `unicode` option value.", - "type": "boolean" + "publisherName": { + "type": "array", + "items": { + "type": "string" + } }, - "oneClick": { - "default": true, - "description": "Whether to create one-click installer or assisted.", - "type": "boolean" + "updaterCacheDirName": { + "type": "string" }, - "packElevateHelper": { + "publishAutoUpdate": { + "description": "Whether to publish auto update info files.\n\nAuto update relies only on the first provider in the list (you can specify several publishers).\nThus, probably, there`s no need to upload the metadata files for the other configured providers. But by default will be uploaded.", "default": true, - "description": "Whether to pack the elevate executable (required for electron-updater if per-machine installer used or can be used in the future). Ignored if `perMachine` is set to `true`.", "type": "boolean" }, - "perMachine": { - "default": false, - "description": "Whether to show install mode installer page (choice per-machine or per-user) for assisted installer. Or whether installation always per all users (per-machine).\n\nIf `oneClick` is `true` (default): Whether to install per all users (per-machine).\n\nIf `oneClick` is `false` and `perMachine` is `true`: no install mode installer page, always install per-machine.\n\nIf `oneClick` is `false` and `perMachine` is `false` (default): install mode installer page.", - "type": "boolean" + "requestHeaders": { + "$ref": "#/definitions/OutgoingHttpHeaders", + "description": "Any custom request headers" }, - "preCompressedFileExtensions": { - "anyOf": [ - { - "items": { - "type": "string" - }, - "type": "array" - }, - { - "type": [ - "null", - "string" - ] - } - ], + "timeout": { + "description": "Request timeout in milliseconds. (Default is 2 minutes; O is ignored)", + "default": 120000, + "type": "number" + } + }, + "additionalProperties": false, + "required": [ + "account", + "product", + "provider" + ] + }, + "SnapStoreOptions": { + "description": "[Snap Store](https://snapcraft.io/) options. To publish directly to Snapcraft, see Snapcraft authentication options for local or CI/CD authentication options.", + "type": "object", + "properties": { + "provider": { + "description": "The provider. Must be `snapStore`.", + "type": "string", + "const": "snapStore" + }, + "repo": { + "description": "snapcraft repo name", + "type": "string" + }, + "channels": { + "description": "The list of channels the snap would be released.", "default": [ - ".avi", - ".mov", - ".m4v", - ".mp4", - ".m4p", - ".qt", - ".mkv", - ".webm", - ".vmdk" + "edge" ], - "description": "The file extension of files that will be not compressed. Applicable only for `extraResources` and `extraFiles` files." - }, - "publish": { "anyOf": [ { - "$ref": "#/definitions/GithubOptions" - }, - { - "$ref": "#/definitions/GitlabOptions" - }, - { - "$ref": "#/definitions/S3Options" - }, - { - "$ref": "#/definitions/SpacesOptions" - }, - { - "$ref": "#/definitions/GenericServerOptions" - }, - { - "$ref": "#/definitions/CustomPublishOptions" - }, - { - "$ref": "#/definitions/KeygenOptions" - }, - { - "$ref": "#/definitions/SnapStoreOptions" - }, - { - "$ref": "#/definitions/BitbucketOptions" - }, - { + "type": "array", "items": { - "$ref": "#/definitions/AllPublishOptions" - }, - "type": "array" + "type": "string" + } }, { - "type": [ - "null", - "string" - ] + "type": "string" } ] }, - "removeDefaultUninstallWelcomePage": { - "default": false, - "description": "*assisted installer only.* remove the default uninstall welcome page.", - "type": "boolean" + "publisherName": { + "type": "array", + "items": { + "type": "string" + } }, - "runAfterFinish": { + "updaterCacheDirName": { + "type": "string" + }, + "publishAutoUpdate": { + "description": "Whether to publish auto update info files.\n\nAuto update relies only on the first provider in the list (you can specify several publishers).\nThus, probably, there`s no need to upload the metadata files for the other configured providers. But by default will be uploaded.", "default": true, - "description": "Whether to run the installed application after finish. For assisted installer corresponding checkbox will be removed.", "type": "boolean" }, - "script": { - "description": "The path to NSIS script to customize installer. Defaults to `build/installer.nsi`. See [Custom NSIS script](#custom-nsis-script).", - "type": [ - "null", - "string" - ] + "requestHeaders": { + "$ref": "#/definitions/OutgoingHttpHeaders", + "description": "Any custom request headers" }, - "selectPerMachineByDefault": { - "default": false, - "description": "Whether to set per-machine or per-user installation as default selection on the install mode installer page.", - "type": "boolean" + "timeout": { + "description": "Request timeout in milliseconds. (Default is 2 minutes; O is ignored)", + "default": 120000, + "type": "number" + } + }, + "additionalProperties": false, + "required": [ + "provider" + ] + }, + "BitbucketOptions": { + "description": "Bitbucket options.\nhttps://bitbucket.org/\nDefine `BITBUCKET_TOKEN` environment variable.\n\nFor converting an app password to a usable token, you can utilize this\n```typescript\nconvertAppPassword(owner: string, appPassword: string) {\nconst base64encodedData = Buffer.from(`${owner}:${appPassword.trim()}`).toString(\"base64\")\nreturn `Basic ${base64encodedData}`\n}\n```", + "type": "object", + "properties": { + "provider": { + "description": "The provider. Must be `bitbucket`.", + "type": "string", + "const": "bitbucket" }, - "shortcutName": { - "description": "The name that will be used for all shortcuts. Defaults to the application name.", - "type": [ - "null", - "string" - ] + "owner": { + "description": "Repository owner", + "type": "string" }, - "unicode": { + "token": { + "description": "The [app password](https://bitbucket.org/account/settings/app-passwords) to support auto-update from private bitbucket repositories.", + "type": "string" + }, + "username": { + "description": "The user name to support auto-update from private bitbucket repositories.", + "type": "string" + }, + "slug": { + "description": "Repository slug/name", + "type": "string" + }, + "channel": { + "description": "The channel.", + "default": "latest", + "type": "string" + }, + "publisherName": { + "type": "array", + "items": { + "type": "string" + } + }, + "updaterCacheDirName": { + "type": "string" + }, + "publishAutoUpdate": { + "description": "Whether to publish auto update info files.\n\nAuto update relies only on the first provider in the list (you can specify several publishers).\nThus, probably, there`s no need to upload the metadata files for the other configured providers. But by default will be uploaded.", "default": true, - "description": "Whether to create [Unicode installer](http://nsis.sourceforge.net/Docs/Chapter1.html#intro-unicode).", "type": "boolean" }, - "uninstallDisplayName": { - "default": "${productName} ${version}", - "description": "The uninstaller display name in the control panel.", - "type": [ - "null", - "string" - ] + "requestHeaders": { + "$ref": "#/definitions/OutgoingHttpHeaders", + "description": "Any custom request headers" }, - "uninstallUrlHelp": { - "description": "The URL to the uninstaller help page in the control panel. Defaults to [homepage](./configuration.md#homepage) from application package.json.", - "type": [ - "null", - "string" - ] + "timeout": { + "description": "Request timeout in milliseconds. (Default is 2 minutes; O is ignored)", + "default": 120000, + "type": "number" + } + }, + "additionalProperties": false, + "required": [ + "owner", + "provider", + "slug" + ] + }, + "AllPublishOptions": { + "anyOf": [ + { + "$ref": "#/definitions/GithubOptions" }, - "uninstallUrlInfoAbout": { - "description": "The URL to the uninstaller info about page in the control panel. Defaults to [homepage](./configuration.md#homepage) from application package.json.", - "type": [ - "null", - "string" - ] + { + "$ref": "#/definitions/GitlabOptions" }, - "uninstallUrlReadme": { - "description": "The URL to the uninstaller readme page in the control panel. Defaults to [homepage](./configuration.md#homepage) from application package.json.", - "type": [ - "null", - "string" - ] + { + "$ref": "#/definitions/S3Options" }, - "uninstallUrlUpdateInfo": { - "description": "The URL to the uninstaller update info page in the control panel. Defaults to [homepage](./configuration.md#homepage) from application package.json.", - "type": [ - "null", - "string" - ] + { + "$ref": "#/definitions/SpacesOptions" }, - "uninstallerIcon": { - "description": "The path to uninstaller icon, relative to the [build resources](./contents.md#extraresources) or to the project directory.\nDefaults to `build/uninstallerIcon.ico` or application icon.", - "type": [ - "null", - "string" - ] + { + "$ref": "#/definitions/GenericServerOptions" }, - "uninstallerSidebar": { - "description": "*assisted installer only.* `MUI_UNWELCOMEFINISHPAGE_BITMAP`, relative to the [build resources](./contents.md#extraresources) or to the project directory.\nDefaults to `installerSidebar` option or `build/uninstallerSidebar.bmp` or `build/installerSidebar.bmp` or `${NSISDIR}\\\\Contrib\\\\Graphics\\\\Wizard\\\\nsis3-metro.bmp`", - "type": [ - "null", - "string" - ] + { + "$ref": "#/definitions/CustomPublishOptions" }, - "useZip": { - "default": false, - "type": "boolean" + { + "$ref": "#/definitions/KeygenOptions" }, - "warningsAsErrors": { - "default": true, - "description": "If `warningsAsErrors` is `true` (default): NSIS will treat warnings as errors. If `warningsAsErrors` is `false`: NSIS will allow warnings.", - "type": "boolean" + { + "$ref": "#/definitions/SnapStoreOptions" + }, + { + "$ref": "#/definitions/BitbucketOptions" + }, + { + "type": "string" + } + ] + }, + "ReleaseInfo": { + "type": "object", + "properties": { + "releaseName": { + "description": "The release name.", + "type": "string" + }, + "releaseNotes": { + "description": "The release notes.", + "type": "string" + }, + "releaseNotesFile": { + "description": "The path to release notes file. Defaults to `release-notes-${platform}.md` (where `platform` it is current platform — `mac`, `linux` or `windows`) or `release-notes.md` in the [build resources](./contents.md#extraresources).", + "type": "string" + }, + "releaseDate": { + "description": "The release date.", + "type": "string" + }, + "vendor": { + "typeof": "function" } }, - "type": "object" + "additionalProperties": false }, - "NsisWebOptions": { - "additionalProperties": false, - "description": "Web Installer options.", + "FileSet": { + "type": "object", "properties": { - "allowElevation": { - "default": true, - "description": "*assisted installer only.* Allow requesting for elevation. If false, user will have to restart installer with elevated permissions.", - "type": "boolean" - }, - "allowToChangeInstallationDirectory": { - "default": false, - "description": "*assisted installer only.* Whether to allow user to change installation directory.", - "type": "boolean" + "from": { + "description": "The source path relative to and defaults to:\n\n - the [app directory](configuration.md#directories) for `files`,\n - the project directory for `extraResources` and `extraFiles`.\nIf you don't use two-package.json structure and don't set custom app directory, app directory equals to project directory.", + "type": "string" }, - "appPackageUrl": { - "description": "The application package download URL. Optional — by default computed using publish configuration.\n\nURL like `https://example.com/download/latest` allows web installer to be version independent (installer will download latest application package).\nPlease note — it is [full URL](https://github.com/electron-userland/electron-builder/issues/1810#issuecomment-317650878).\n\nCustom `X-Arch` http header is set to `32` or `64`.", - "type": [ - "null", - "string" - ] + "to": { + "description": "The destination path relative to and defaults to:\n\n - the asar archive root for `files`,\n - the app's content directory for `extraFiles`,\n - the app's resource directory for `extraResources`.", + "type": "string" }, - "artifactName": { - "description": "The [artifact file name template](./configuration.md#artifact-file-name-template). Defaults to `${productName} Web Setup ${version}.${ext}`.", - "type": [ - "null", - "string" + "filter": { + "description": "The [glob patterns](./file-patterns.md). Defaults to \"**\\/*\"", + "anyOf": [ + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "type": "string" + } ] + } + }, + "additionalProperties": false + }, + "MasConfiguration": { + "type": "object", + "properties": { + "entitlements": { + "description": "The path to entitlements file for signing the app. `build/entitlements.mas.plist` will be used if exists (it is a recommended way to set).\nSee [this folder in osx-sign's repository](https://github.com/electron/osx-sign/tree/main/entitlements) for examples.\nBe aware that your app may crash if the right entitlements are not set like `com.apple.security.cs.allow-jit` for example on arm64 builds with Electron 20+.\nSee [Signing and Notarizing macOS Builds from the Electron documentation](https://www.electronjs.org/docs/latest/tutorial/code-signing#signing--notarizing-macos-builds) for more information.", + "type": "string" }, - "buildUniversalInstaller": { - "const": true, - "default": true, - "description": "Override for `NsisOptions.buildUniversalInstaller`. nsis-web requires universal installer", - "type": "boolean" + "entitlementsInherit": { + "description": "The path to child entitlements which inherit the security settings for signing frameworks and bundles of a distribution. `build/entitlements.mas.inherit.plist` will be used if exists (it is a recommended way to set).\nSee [this folder in osx-sign's repository](https://github.com/electron/osx-sign/tree/main/entitlements) for examples.", + "type": "string" }, - "createDesktopShortcut": { - "default": true, - "description": "Whether to create desktop shortcut. Set to `always` if to recreate also on reinstall (even if removed by user).", - "enum": [ - "always", - false, - true - ] + "binaries": { + "description": "Paths of any extra binaries that need to be signed.", + "type": "array", + "items": { + "type": "string" + } }, - "createStartMenuShortcut": { - "default": true, - "description": "Whether to create start menu shortcut.", - "type": "boolean" + "category": { + "description": "The application category type, as shown in the Finder via *View -> Arrange by Application Category* when viewing the Applications directory.\n\nFor example, `\"category\": \"public.app-category.developer-tools\"` will set the application category to *Developer Tools*.\n\nValid values are listed in [Apple's documentation](https://developer.apple.com/library/ios/documentation/General/Reference/InfoPlistKeyReference/Articles/LaunchServicesKeys.html#//apple_ref/doc/uid/TP40009250-SW8).", + "type": "string" }, - "customNsisBinary": { + "target": { + "description": "The target package type: list of `default`, `dmg`, `mas`, `mas-dev`, `pkg`, `7z`, `zip`, `tar.xz`, `tar.lz`, `tar.gz`, `tar.bz2`, `dir`. Defaults to `default` (`dmg` and `zip` for Squirrel.Mac). Note: Squirrel.Mac auto update mechanism requires both `dmg` and `zip` to be enabled, even when only `dmg` is used. Disabling `zip` will break auto update in `dmg` packages.", "anyOf": [ { - "$ref": "#/definitions/CustomNsisBinary" + "$ref": "#/definitions/TargetConfiguration" }, { - "type": "null" - } - ], - "description": "Allows you to provide your own `makensis`, such as one with support for debug logging via LogSet and LogText. (Logging also requires option `debugLogging = true`)" - }, - "customNsisResources": { - "anyOf": [ - { - "$ref": "#/definitions/CustomNsisResources" + "type": "array", + "items": { + "anyOf": [ + { + "$ref": "#/definitions/TargetConfiguration" + }, + { + "enum": [ + "7z", + "default", + "dir", + "dmg", + "mas", + "mas-dev", + "pkg", + "tar.bz2", + "tar.gz", + "tar.lz", + "tar.xz", + "zip" + ], + "type": "string" + } + ] + } }, { - "type": "null" + "enum": [ + "7z", + "default", + "dir", + "dmg", + "mas", + "mas-dev", + "pkg", + "tar.bz2", + "tar.gz", + "tar.lz", + "tar.xz", + "zip" + ], + "type": "string" } - ], - "description": "Allows you to provide your own `nsis-resources`" + ] }, - "deleteAppDataOnUninstall": { - "default": false, - "description": "*one-click installer only.* Whether to delete app data on uninstall.", - "type": "boolean" + "identity": { + "description": "The name of certificate to use when signing. Consider using environment variables [CSC_LINK or CSC_NAME](./code-signing.md) instead of specifying this option.\nMAS installer identity is specified in the [mas](./mas.md).\n\nSet to `-` to use an ad-hoc identity for signing. Set to `null` to skip signing entirely.", + "type": "string" }, - "differentialPackage": { - "type": "boolean" + "icon": { + "description": "The path to application icon.\nAccepts `.icns` (legacy) or `.icon` (Icon Composer asset).\nIf a `.icon` asset is provided, it will be preferred and compiled to an asset catalog.", + "default": "build/icon.icns", + "type": "string" }, - "displayLanguageSelector": { + "entitlementsLoginHelper": { + "description": "Path to login helper entitlement file.\nWhen using App Sandbox, the the `com.apple.security.inherit` key that is normally in the inherited entitlements cannot be inherited since the login helper is a standalone executable.\nDefaults to the value provided for `entitlements`. This option only applies when signing with `entitlements` provided.", + "type": "string" + }, + "provisioningProfile": { + "description": "The path to the provisioning profile to use when signing, absolute or relative to the app root.", + "type": "string" + }, + "bundleVersion": { + "description": "The `CFBundleVersion`. Do not use it unless [you need to](https://github.com/electron-userland/electron-builder/issues/565#issuecomment-230678643).", + "type": "string" + }, + "bundleShortVersion": { + "description": "The `CFBundleShortVersionString`. Do not use it unless you need to.", + "type": "string" + }, + "darkModeSupport": { + "description": "Whether a dark mode is supported. If your app does have a dark mode, you can make your app follow the system-wide dark mode setting.", "default": false, - "description": "Whether to display a language selection dialog. Not recommended (by default will be detected using OS language).", "type": "boolean" }, - "guid": { - "description": "See [GUID vs Application Name](./nsis.md#guid-vs-application-name).", - "type": [ - "null", - "string" - ] + "helperBundleId": { + "description": "The bundle identifier to use in the application helper's plist.", + "default": "${appBundleIdentifier}.helper", + "type": "string" }, - "include": { - "description": "The path to NSIS include script to customize installer. Defaults to `build/installer.nsh`. See [Custom NSIS script](#custom-nsis-script).", - "type": [ - "null", - "string" - ] + "helperRendererBundleId": { + "description": "The bundle identifier to use in the Renderer helper's plist.", + "default": "${appBundleIdentifier}.helper.Renderer", + "type": "string" }, - "installerHeader": { - "default": "build/installerHeader.bmp", - "description": "*assisted installer only.* `MUI_HEADERIMAGE`, relative to the [build resources](./contents.md#extraresources) or to the project directory.", - "type": [ - "null", - "string" - ] + "helperPluginBundleId": { + "description": "The bundle identifier to use in the Plugin helper's plist.", + "default": "${appBundleIdentifier}.helper.Plugin", + "type": "string" }, - "installerHeaderIcon": { - "description": "*one-click installer only.* The path to header icon (above the progress bar), relative to the [build resources](./contents.md#extraresources) or to the project directory.\nDefaults to `build/installerHeaderIcon.ico` or application icon.", - "type": [ - "null", - "string" - ] + "helperGPUBundleId": { + "description": "The bundle identifier to use in the GPU helper's plist.", + "default": "${appBundleIdentifier}.helper.GPU", + "type": "string" }, - "installerIcon": { - "description": "The path to installer icon, relative to the [build resources](./contents.md#extraresources) or to the project directory.\nDefaults to `build/installerIcon.ico` or application icon.", - "type": [ - "null", - "string" - ] + "helperEHBundleId": { + "description": "The bundle identifier to use in the EH helper's plist.", + "default": "${appBundleIdentifier}.helper.EH", + "type": "string" }, - "installerLanguages": { + "helperNPBundleId": { + "description": "The bundle identifier to use in the NP helper's plist.", + "default": "${appBundleIdentifier}.helper.NP", + "type": "string" + }, + "type": { + "description": "Whether to sign app for development or for distribution.", + "default": "distribution", + "enum": [ + "development", + "distribution" + ], + "type": "string" + }, + "extendInfo": { + "description": "The extra entries for `Info.plist`." + }, + "minimumSystemVersion": { + "description": "The minimum version of macOS required for the app to run. Corresponds to `LSMinimumSystemVersion`.", + "type": "string" + }, + "requirements": { + "description": "Path of [requirements file](https://developer.apple.com/library/mac/documentation/Security/Conceptual/CodeSigningGuide/RequirementLang/RequirementLang.html) used in signing. Not applicable for MAS.", + "type": "string" + }, + "cscInstallerLink": { + "type": "string" + }, + "cscInstallerKeyPassword": { + "type": "string" + }, + "extraDistFiles": { + "description": "Extra files to put in archive. Not applicable for `tar.*`.", "anyOf": [ { + "type": "array", "items": { "type": "string" - }, - "type": "array" + } }, { - "type": [ - "null", - "string" - ] + "type": "string" } - ], - "description": "The installer languages (e.g. `en_US`, `de_DE`). Change only if you understand what do you do and for what." - }, - "installerSidebar": { - "description": "*assisted installer only.* `MUI_WELCOMEFINISHPAGE_BITMAP`, relative to the [build resources](./contents.md#extraresources) or to the project directory.\nDefaults to `build/installerSidebar.bmp` or `${NSISDIR}\\\\Contrib\\\\Graphics\\\\Wizard\\\\nsis3-metro.bmp`. Image size 164 × 314 pixels.", - "type": [ - "null", - "string" - ] - }, - "language": { - "description": "[LCID Dec](https://msdn.microsoft.com/en-au/goglobal/bb964664.aspx), defaults to `1033`(`English - United States`).", - "type": [ - "null", - "string" - ] - }, - "license": { - "description": "The path to EULA license file. Defaults to `license.txt` or `eula.txt` (or uppercase variants). In addition to `txt`, `rtf` and `html` supported (don't forget to use `target=\"_blank\"` for links).\n\nMultiple license files in different languages are supported — use lang postfix (e.g. `_de`, `_ru`). For example, create files `license_de.txt` and `license_en.txt` in the build resources.\nIf OS language is german, `license_de.txt` will be displayed. See map of [language code to name](https://github.com/meikidd/iso-639-1/blob/master/src/data.js).\n\nAppropriate license file will be selected by user OS language.", - "type": [ - "null", - "string" - ] - }, - "menuCategory": { - "default": false, - "description": "Whether to create submenu for start menu shortcut and program files directory. If `true`, company name will be used. Or string value.", - "type": [ - "string", - "boolean" ] }, - "multiLanguageInstaller": { - "description": "Whether to create multi-language installer. Defaults to `unicode` option value.", + "hardenedRuntime": { + "description": "Whether your app has to be signed with hardened runtime.", + "default": true, "type": "boolean" }, - "oneClick": { - "default": true, - "description": "Whether to create one-click installer or assisted.", + "gatekeeperAssess": { + "description": "Whether to let `@electron/osx-sign` validate the signing or not.", + "default": false, "type": "boolean" }, - "packElevateHelper": { + "strictVerify": { + "description": "Whether to let `@electron/osx-sign` verify the contents or not.", "default": true, - "description": "Whether to pack the elevate executable (required for electron-updater if per-machine installer used or can be used in the future). Ignored if `perMachine` is set to `true`.", "type": "boolean" }, - "perMachine": { - "default": false, - "description": "Whether to show install mode installer page (choice per-machine or per-user) for assisted installer. Or whether installation always per all users (per-machine).\n\nIf `oneClick` is `true` (default): Whether to install per all users (per-machine).\n\nIf `oneClick` is `false` and `perMachine` is `true`: no install mode installer page, always install per-machine.\n\nIf `oneClick` is `false` and `perMachine` is `false` (default): install mode installer page.", + "preAutoEntitlements": { + "description": "Whether to enable entitlements automation from `@electron/osx-sign`.", + "default": true, "type": "boolean" }, - "preCompressedFileExtensions": { + "signIgnore": { + "description": "Regex or an array of regex's that signal skipping signing a file.", "anyOf": [ { + "type": "array", "items": { "type": "string" - }, - "type": "array" + } }, { - "type": [ - "null", - "string" - ] + "type": "string" } - ], - "default": [ - ".avi", - ".mov", - ".m4v", - ".mp4", - ".m4p", - ".qt", - ".mkv", - ".webm", - ".vmdk" - ], - "description": "The file extension of files that will be not compressed. Applicable only for `extraResources` and `extraFiles` files." + ] }, - "publish": { + "sign": { + "description": "The custom function (or path to file or module id) to sign an app bundle.", "anyOf": [ { - "$ref": "#/definitions/GithubOptions" - }, - { - "$ref": "#/definitions/GitlabOptions" - }, - { - "$ref": "#/definitions/S3Options" - }, - { - "$ref": "#/definitions/SpacesOptions" - }, - { - "$ref": "#/definitions/GenericServerOptions" - }, - { - "$ref": "#/definitions/CustomPublishOptions" - }, - { - "$ref": "#/definitions/KeygenOptions" - }, - { - "$ref": "#/definitions/SnapStoreOptions" - }, - { - "$ref": "#/definitions/BitbucketOptions" - }, - { - "items": { - "$ref": "#/definitions/AllPublishOptions" - }, - "type": "array" + "typeof": "function" }, { - "type": [ - "null", - "string" - ] + "type": "string" } ] }, - "removeDefaultUninstallWelcomePage": { - "default": false, - "description": "*assisted installer only.* remove the default uninstall welcome page.", - "type": "boolean" + "timestamp": { + "description": "Specify the URL of the timestamp authority server", + "type": "string" }, - "runAfterFinish": { + "mergeASARs": { + "description": "Whether to merge ASAR files for different architectures or not.\n\nThis option has no effect unless building for \"universal\" arch.", "default": true, - "description": "Whether to run the installed application after finish. For assisted installer corresponding checkbox will be removed.", "type": "boolean" }, - "script": { - "description": "The path to NSIS script to customize installer. Defaults to `build/installer.nsi`. See [Custom NSIS script](#custom-nsis-script).", - "type": [ - "null", - "string" - ] + "singleArchFiles": { + "description": "Minimatch pattern of paths that are allowed to be present in one of the\nASAR files, but not in the other.\n\nThis option has no effect unless building for \"universal\" arch and applies\nonly if `mergeASARs` is `true`.", + "type": "string" }, - "selectPerMachineByDefault": { - "default": false, - "description": "Whether to set per-machine or per-user installation as default selection on the install mode installer page.", - "type": "boolean" + "x64ArchFiles": { + "description": "Minimatch pattern of paths that are allowed to be x64 binaries in both\nASAR files\n\nThis option has no effect unless building for \"universal\" arch and applies\nonly if `mergeASARs` is `true`.", + "type": "string" }, - "shortcutName": { - "description": "The name that will be used for all shortcuts. Defaults to the application name.", - "type": [ - "null", - "string" - ] + "additionalArguments": { + "description": "Array of strings specifying additional arguments to pass to the `codesign` command used to sign a specific file.\n\nSome subresources that you may include in your Electron app may need to be signed with --deep, this is not typically safe to apply to the entire Electron app and therefore should be applied to just your file.\nUsage Example: `['--deep']`", + "type": "array", + "items": { + "type": "string" + } }, - "unicode": { - "default": true, - "description": "Whether to create [Unicode installer](http://nsis.sourceforge.net/Docs/Chapter1.html#intro-unicode).", + "notarize": { + "description": "Whether to disable electron-builder's [@electron/notarize](https://github.com/electron/notarize) integration.\n\nNote: In order to activate the notarization step You MUST specify one of the following via environment variables:\n\n1. `APPLE_API_KEY`, `APPLE_API_KEY_ID` and `APPLE_API_ISSUER`.\n2. `APPLE_ID`, `APPLE_APP_SPECIFIC_PASSWORD`, and `APPLE_TEAM_ID`\n3. `APPLE_KEYCHAIN` and `APPLE_KEYCHAIN_PROFILE`\n\nFor security reasons it is recommended to use the first option (see https://github.com/electron-userland/electron-builder/issues/7859)", "type": "boolean" }, - "uninstallDisplayName": { - "default": "${productName} ${version}", - "description": "The uninstaller display name in the control panel.", - "type": [ - "null", - "string" - ] + "appId": { + "description": "The application id. Used as [CFBundleIdentifier](https://developer.apple.com/library/ios/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html#//apple_ref/doc/uid/20001431-102070) for MacOS and as\n[Application User Model ID](https://msdn.microsoft.com/en-us/library/windows/desktop/dd378459(v=vs.85).aspx) for Windows (NSIS target only, Squirrel.Windows not supported). It is strongly recommended that an explicit ID is set.", + "default": "com.electron.${name}", + "type": "string" }, - "uninstallUrlHelp": { - "description": "The URL to the uninstaller help page in the control panel. Defaults to [homepage](./configuration.md#homepage) from application package.json.", - "type": [ - "null", - "string" - ] + "artifactName": { + "description": "The [artifact file name template](./configuration.md#artifact-file-name-template). Defaults to `${productName}-${version}.${ext}` (some target can have other defaults, see corresponding options).", + "type": "string" }, - "uninstallUrlInfoAbout": { - "description": "The URL to the uninstaller info about page in the control panel. Defaults to [homepage](./configuration.md#homepage) from application package.json.", - "type": [ - "null", - "string" - ] + "executableName": { + "description": "The executable name. Defaults to `productName`\nNote: Except for Linux, where this would constitute a breaking change in previous behavior and lead to both invalid executable names and Desktop files. Ref comments in: https://github.com/electron-userland/electron-builder/pull/9068", + "type": "string" }, - "uninstallUrlReadme": { - "description": "The URL to the uninstaller readme page in the control panel. Defaults to [homepage](./configuration.md#homepage) from application package.json.", - "type": [ - "null", - "string" - ] + "compression": { + "$ref": "#/definitions/CompressionLevel", + "description": "The compression level. If you want to rapidly test build, `store` can reduce build time significantly. `maximum` doesn't lead to noticeable size difference, but increase build time.", + "default": "normal" }, - "uninstallUrlUpdateInfo": { - "description": "The URL to the uninstaller update info page in the control panel. Defaults to [homepage](./configuration.md#homepage) from application package.json.", - "type": [ - "null", - "string" - ] + "disableDefaultIgnoredFiles": { + "description": "Whether to exclude all default ignored files(https://www.electron.build/contents#files) and options. Defaults to `false`.", + "default": false, + "type": "boolean" }, - "uninstallerIcon": { - "description": "The path to uninstaller icon, relative to the [build resources](./contents.md#extraresources) or to the project directory.\nDefaults to `build/uninstallerIcon.ico` or application icon.", - "type": [ - "null", - "string" + "asar": { + "description": "Whether to package the application's source code into an archive, using [Electron's archive format](http://electron.atom.io/docs/tutorial/application-packaging/).\n\nNode modules, that must be unpacked, will be detected automatically, you don't need to explicitly set [asarUnpack](#asarUnpack) - please file an issue if this doesn't work.", + "default": true, + "anyOf": [ + { + "$ref": "#/definitions/AsarOptions" + }, + { + "type": "boolean" + } ] }, - "uninstallerSidebar": { - "description": "*assisted installer only.* `MUI_UNWELCOMEFINISHPAGE_BITMAP`, relative to the [build resources](./contents.md#extraresources) or to the project directory.\nDefaults to `installerSidebar` option or `build/uninstallerSidebar.bmp` or `build/installerSidebar.bmp` or `${NSISDIR}\\\\Contrib\\\\Graphics\\\\Wizard\\\\nsis3-metro.bmp`", - "type": [ - "null", - "string" + "asarUnpack": { + "description": "A [glob patterns](./file-patterns.md) relative to the [app directory](#directories), which specifies which files to unpack when creating the [asar](http://electron.atom.io/docs/tutorial/application-packaging/) archive.", + "anyOf": [ + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "type": "string" + } ] }, - "useZip": { - "default": false, - "type": "boolean" + "fileAssociations": { + "description": "The file associations.", + "anyOf": [ + { + "$ref": "#/definitions/FileAssociation" + }, + { + "type": "array", + "items": { + "$ref": "#/definitions/FileAssociation" + } + } + ] }, - "warningsAsErrors": { - "default": true, - "description": "If `warningsAsErrors` is `true` (default): NSIS will treat warnings as errors. If `warningsAsErrors` is `false`: NSIS will allow warnings.", - "type": "boolean" - } - }, - "type": "object" - }, - "OutgoingHttpHeaders": { - "additionalProperties": { - "anyOf": [ - { - "items": { - "type": "string" + "protocols": { + "description": "The URL protocol schemes.", + "anyOf": [ + { + "$ref": "#/definitions/Protocol" }, - "type": "array" - }, - { - "type": [ - "string", - "number" - ] - } - ] - }, - "properties": { - "accept": { + { + "type": "array", + "items": { + "$ref": "#/definitions/Protocol" + } + } + ] + }, + "electronLanguages": { + "description": "The electron locales to keep. By default, all Electron locales used as-is.", "anyOf": [ { + "type": "array", "items": { "type": "string" - }, - "type": "array" + } }, { "type": "string" } ] }, - "accept-charset": { + "forceCodeSigning": { + "description": "Whether to fail if app will be not code signed.", + "type": "boolean" + }, + "electronUpdaterCompatibility": { + "description": "The [electron-updater compatibility](./auto-update.md#compatibility) semver range.", + "type": "string" + }, + "publish": { + "$ref": "#/definitions/Publish", + "description": "Publisher configuration. See [Auto Update](./publish.md) for more information." + }, + "detectUpdateChannel": { + "description": "Whether to infer update channel from application version pre-release components. e.g. if version `0.12.1-alpha.1`, channel will be set to `alpha`. Otherwise to `latest`.\nThis does *not* apply to github publishing, which will [never auto-detect the update channel](https://github.com/electron-userland/electron-builder/issues/8589).", + "default": true, + "type": "boolean" + }, + "generateUpdatesFilesForAllChannels": { + "description": "Please see [Building and Releasing using Channels](https://github.com/electron-userland/electron-builder/issues/1182#issuecomment-324947139).", + "default": false, + "type": "boolean" + }, + "releaseInfo": { + "$ref": "#/definitions/ReleaseInfo", + "description": "The release info. Intended for command line usage:\n\n```\n-c.releaseInfo.releaseNotes=\"new features\"\n```" + }, + "cscLink": { + "type": "string" + }, + "cscKeyPassword": { + "type": "string" + }, + "defaultArch": { + "type": "string" + }, + "files": { + "description": "A [glob patterns](./file-patterns.md) relative to the [app directory](configuration.md#directories), which specifies which files to include when copying files to create the package.\n\nDefaults to:\n```json\n[\n\"**\\/*\",\n\"!**\\/node_modules/*\\/{CHANGELOG.md,README.md,README,readme.md,readme}\",\n\"!**\\/node_modules/*\\/{test,__tests__,tests,powered-test,example,examples}\",\n\"!**\\/node_modules/*.d.ts\",\n\"!**\\/node_modules/.bin\",\n\"!**\\/*.{iml,o,hprof,orig,pyc,pyo,rbc,swp,csproj,sln,xproj}\",\n\"!.editorconfig\",\n\"!**\\/._*\",\n\"!**\\/{.DS_Store,.git,.hg,.svn,CVS,RCS,SCCS,.gitignore,.gitattributes}\",\n\"!**\\/{__pycache__,thumbs.db,.flowconfig,.idea,.vs,.nyc_output}\",\n\"!**\\/{appveyor.yml,.travis.yml,circle.yml}\",\n\"!**\\/{npm-debug.log,yarn.lock,.yarn-integrity,.yarn-metadata.json}\"\n]\n```\n\nDevelopment dependencies are never copied in any case. You don't need to ignore it explicitly. Hidden files are not ignored by default, but all files that should be ignored, are ignored by default.\n\nDefault pattern \\`**\\/*\\` **is not added to your custom** if some of your patterns is not ignore (i.e. not starts with `!`). `package.json` and \\`**\\/node_modules/**\\/*` (only production dependencies will be copied) is added to your custom in any case. All default ignores are added in any case — you don't need to repeat it if you configure own patterns.\n\nMay be specified in the platform options (e.g. in the [mac](mac.md)).\n\nYou may also specify custom source and destination directories by using `FileSet` objects instead of simple glob patterns.\n\n```json\n[\n{\n\"from\": \"path/to/source\",\n\"to\": \"path/to/destination\",\n\"filter\": [\"**\\/*\", \"!foo/*.js\"]\n}\n]\n```\n\nYou can use [file macros](./file-patterns.md#file-macros) in the `from` and `to` fields as well. `from` and `to` can be files and you can use this to [rename](https://github.com/electron-userland/electron-builder/issues/1119) a file while packaging.", "anyOf": [ { + "$ref": "#/definitions/FileSet" + }, + { + "type": "array", "items": { - "type": "string" - }, - "type": "array" + "anyOf": [ + { + "$ref": "#/definitions/FileSet" + }, + { + "type": "string" + } + ] + } }, { "type": "string" } ] }, - "accept-encoding": { + "extraResources": { + "description": "A [glob patterns](./file-patterns.md) relative to the project directory, when specified, copy the file or directory with matching names directly into the app's resources directory (`Contents/Resources` for MacOS, `resources` for Linux and Windows).\n\nFile patterns (and support for `from` and `to` fields) the same as for [files](#files).", "anyOf": [ { + "$ref": "#/definitions/FileSet" + }, + { + "type": "array", "items": { - "type": "string" - }, - "type": "array" + "anyOf": [ + { + "$ref": "#/definitions/FileSet" + }, + { + "type": "string" + } + ] + } }, { "type": "string" } ] }, - "accept-language": { + "extraFiles": { + "description": "The same as [extraResources](#extraresources) but copy into the app's content directory (`Contents` for MacOS, root directory for Linux and Windows).", "anyOf": [ { + "$ref": "#/definitions/FileSet" + }, + { + "type": "array", "items": { - "type": "string" - }, - "type": "array" + "anyOf": [ + { + "$ref": "#/definitions/FileSet" + }, + { + "type": "string" + } + ] + } }, { "type": "string" } ] + } + }, + "additionalProperties": false + }, + "DmgOptions": { + "type": "object", + "properties": { + "background": { + "description": "The path to background image (default: `build/background.tiff` or `build/background.png` if exists). The resolution of this file determines the resolution of the installer window.\nIf background is not specified, use `window.size`. Default locations expected background size to be 540x380.", + "type": "string" }, - "accept-ranges": { + "backgroundColor": { + "description": "The background color (accepts css colors). Defaults to `#ffffff` (white) if no background image.", "type": "string" }, - "access-control-allow-credentials": { + "badgeIcon": { + "description": "The path to DMG icon (badge icon), which will be shown when mounted, relative to the [build resources](./contents.md#extraresources) or to the project directory.", "type": "string" }, - "access-control-allow-headers": { + "icon": { + "description": "The path to DMG icon (volume icon), which will be shown when mounted, relative to the [build resources](./contents.md#extraresources) or to the project directory.\nDefaults to the application icon (`build/icon.icns`).", "type": "string" }, - "access-control-allow-methods": { + "iconSize": { + "description": "The size of all the icons inside the DMG.", + "default": 80, + "type": "number" + }, + "iconTextSize": { + "description": "The size of all the icon texts inside the DMG.", + "default": 12, + "type": "number" + }, + "title": { + "description": "The title of the produced DMG, which will be shown when mounted (volume name).\n\nMacro `${productName}`, `${version}` and `${name}` are supported.", + "default": "${productName} ${version}", "type": "string" }, - "access-control-allow-origin": { + "contents": { + "description": "The content — to customize icon locations. The x and y coordinates refer to the position of the **center** of the icon (at 1x scale), and do not take the label into account.", + "type": "array", + "items": { + "$ref": "#/definitions/DmgContent" + } + }, + "format": { + "description": "The disk image format. `ULFO` (lzfse-compressed image (OS X 10.11+ only)).", + "default": "UDZO", + "enum": [ + "UDBZ", + "UDCO", + "UDRO", + "UDRW", + "UDZO", + "ULFO" + ], "type": "string" }, - "access-control-expose-headers": { + "window": { + "$ref": "#/definitions/DmgWindow", + "description": "The DMG window position and size. With y co-ordinates running from bottom to top.\n\nThe Finder makes sure that the window will be on the user’s display, so if you want your window at the top left of the display you could use `\"x\": 0, \"y\": 100000` as the x, y co-ordinates.\nIt is not to be possible to position the window relative to the [top left](https://github.com/electron-userland/electron-builder/issues/3990#issuecomment-512960957) or relative to the center of the user’s screen." + }, + "internetEnabled": { + "description": "Whether to create internet-enabled disk image (when it is downloaded using a browser it will automatically decompress the image, put the application on the desktop, unmount and remove the disk image file).", + "default": false, + "type": "boolean" + }, + "sign": { + "description": "Whether to sign the DMG or not. Signing is not required and will lead to unwanted errors in combination with notarization requirements.", + "default": false, + "type": "boolean" + }, + "writeUpdateInfo": { + "default": true, + "type": "boolean" + }, + "artifactName": { + "description": "The [artifact file name template](./configuration.md#artifact-file-name-template).", "type": "string" }, - "access-control-max-age": { + "publish": { + "$ref": "#/definitions/Publish" + } + }, + "additionalProperties": false + }, + "DmgContent": { + "type": "object", + "properties": { + "x": { + "description": "The device-independent pixel offset from the left of the window to the **center** of the icon.", + "type": "number" + }, + "y": { + "description": "The device-independent pixel offset from the top of the window to the **center** of the icon.", + "type": "number" + }, + "type": { + "enum": [ + "dir", + "file", + "link" + ], "type": "string" }, - "access-control-request-headers": { + "name": { + "description": "The name of the file within the DMG. Defaults to basename of `path`.", "type": "string" }, - "access-control-request-method": { + "path": { + "description": "The path of the file within the DMG.", + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "x", + "y" + ] + }, + "DmgWindow": { + "type": "object", + "properties": { + "x": { + "description": "The X position relative to left of the screen.", + "default": 400, + "type": "number" + }, + "y": { + "description": "The Y position relative to bottom of the screen.", + "default": 100, + "type": "number" + }, + "width": { + "description": "The width. Defaults to background image width or 540.", + "type": "number" + }, + "height": { + "description": "The height. Defaults to background image height or 380.", + "type": "number" + } + }, + "additionalProperties": false + }, + "PkgOptions": { + "description": "macOS product archive options.", + "type": "object", + "properties": { + "scripts": { + "description": "The scripts directory, relative to `build` (build resources directory).\nThe scripts can be in any language so long as the files are marked executable and have the appropriate shebang indicating the path to the interpreter.\nScripts are required to be executable (`chmod +x file`).", + "default": "build/pkg-scripts", + "type": "string" + }, + "productbuild": { + "description": "should be not documented, only to experiment", + "type": "array", + "items": { + "type": "string" + } + }, + "installLocation": { + "description": "The install location. [Do not use it](https://stackoverflow.com/questions/12863944/how-do-you-specify-a-default-install-location-to-home-with-pkgbuild) to create per-user package.\nMostly never you will need to change this option. `/Applications` would install it as expected into `/Applications` if the local system domain is chosen, or into `$HOME/Applications` if the home installation is chosen.", + "default": "/Applications", + "type": "string" + }, + "allowAnywhere": { + "description": "Whether can be installed at the root of any volume, including non-system volumes. Otherwise, it cannot be installed at the root of a volume.\n\nCorresponds to [enable_anywhere](https://developer.apple.com/library/content/documentation/DeveloperTools/Reference/DistributionDefinitionRef/Chapters/Distribution_XML_Ref.html#//apple_ref/doc/uid/TP40005370-CH100-SW70).", + "default": true, + "type": "boolean" + }, + "allowCurrentUserHome": { + "description": "Whether can be installed into the current user’s home directory.\nA home directory installation is done as the current user (not as root), and it cannot write outside of the home directory.\nIf the product cannot be installed in the user’s home directory and be not completely functional from user’s home directory.\n\nCorresponds to [enable_currentUserHome](https://developer.apple.com/library/content/documentation/DeveloperTools/Reference/DistributionDefinitionRef/Chapters/Distribution_XML_Ref.html#//apple_ref/doc/uid/TP40005370-CH100-SW70).", + "default": true, + "type": "boolean" + }, + "allowRootDirectory": { + "description": "Whether can be installed into the root directory. Should usually be `true` unless the product can be installed only to the user’s home directory.\n\nCorresponds to [enable_localSystem](https://developer.apple.com/library/content/documentation/DeveloperTools/Reference/DistributionDefinitionRef/Chapters/Distribution_XML_Ref.html#//apple_ref/doc/uid/TP40005370-CH100-SW70).", + "default": true, + "type": "boolean" + }, + "identity": { + "description": "The name of certificate to use when signing. Consider using environment variables [CSC_LINK or CSC_NAME](./code-signing.md) instead of specifying this option.", + "type": "string" + }, + "license": { + "description": "The path to EULA license file. Defaults to `license.txt` or `eula.txt` (or uppercase variants). In addition to `txt`, `rtf` and `html` supported (don't forget to use `target=\"_blank\"` for links).", + "type": "string" + }, + "background": { + "$ref": "#/definitions/PkgBackgroundOptions", + "description": "Options for the background image for the installer." + }, + "welcome": { + "description": "The path to the welcome file. This may be used to customize the text on the Introduction page of the installer.", + "type": "string" + }, + "mustClose": { + "description": "Identifies applications that must be closed before the package is installed.\n\nCorresponds to [must-close](https://developer.apple.com/library/archive/documentation/DeveloperTools/Reference/DistributionDefinitionRef/Chapters/Distribution_XML_Ref.html#//apple_ref/doc/uid/TP40005370-CH100-SW77).", + "type": "array", + "items": { + "type": "string" + } + }, + "conclusion": { + "description": "The path to the conclusion file. This may be used to customize the text on the final \"Summary\" page of the installer.", + "type": "string" + }, + "isRelocatable": { + "description": "Install bundle over previous version if moved by user?", + "default": true, + "type": "boolean" + }, + "isVersionChecked": { + "description": "Don't install bundle if newer version on disk?", + "default": true, + "type": "boolean" + }, + "hasStrictIdentifier": { + "description": "Require identical bundle identifiers at install path?", + "default": true, + "type": "boolean" + }, + "overwriteAction": { + "description": "Specifies how an existing version of the bundle on disk should be handled when the version in\nthe package is installed.\n\nIf you specify upgrade, the bundle in the package atomi-cally replaces any version on disk;\nthis has the effect of deleting old paths that no longer exist in the new version of\nthe bundle.\n\nIf you specify update, the bundle in the package overwrites the version on disk, and any files\nnot contained in the package will be left intact; this is appropriate when you are delivering\nan update-only package.\n\nAnother effect of update is that the package bundle will not be installed at all if there is\nnot already a version on disk; this allows a package to deliver an update for an app that\nthe user might have deleted.", + "default": "upgrade", + "enum": [ + "update", + "upgrade" + ], + "type": "string" + }, + "extraPkgsDir": { + "description": "The extra component packages directory (relative to build resources directory) for MacOS product archive\nAutoscans directory for any `.pkg` files and adds to `productbuild` command as `--package-path` and `--package` accordingly", + "type": "string" + }, + "artifactName": { + "description": "The [artifact file name template](./configuration.md#artifact-file-name-template).", + "type": "string" + }, + "publish": { + "$ref": "#/definitions/Publish" + } + }, + "additionalProperties": false + }, + "PkgBackgroundOptions": { + "description": "Options for the background image in a PKG installer", + "type": "object", + "properties": { + "file": { + "description": "Path to the image to use as an installer background.", "type": "string" }, - "age": { - "type": "string" + "alignment": { + "$ref": "#/definitions/BackgroundAlignment", + "description": "Alignment of the background image.\nOptions are: center, left, right, top, bottom, topleft, topright, bottomleft, bottomright", + "default": "center" }, - "allow": { - "type": "string" + "scaling": { + "$ref": "#/definitions/BackgroundScaling", + "description": "Scaling of the background image.\nOptions are: tofit, none, proportional", + "default": "tofit" + } + }, + "additionalProperties": false + }, + "BackgroundAlignment": { + "enum": [ + "bottom", + "bottomleft", + "bottomright", + "center", + "left", + "right", + "top", + "topleft", + "topright" + ], + "type": "string" + }, + "BackgroundScaling": { + "enum": [ + "none", + "proportional", + "tofit" + ], + "type": "string" + }, + "WindowsConfiguration": { + "type": "object", + "properties": { + "target": { + "$ref": "#/definitions/TargetConfigType", + "description": "The target package type: list of `nsis`, `nsis-web` (Web installer), `portable` ([portable]./nsis.md#portable) app without installation), `appx`, `msi`, `msi-wrapped`, `squirrel`, `7z`, `zip`, `tar.xz`, `tar.lz`, `tar.gz`, `tar.bz2`, `dir`.\nAppX package can be built only on Windows 10.\n\nTo use Squirrel.Windows please install `electron-builder-squirrel-windows` dependency.", + "default": "nsis" }, - "authorization": { + "icon": { + "description": "The path to application icon.", + "default": "build/icon.ico", "type": "string" }, - "cache-control": { + "legalTrademarks": { + "description": "The trademarks and registered trademarks.", "type": "string" }, - "cdn-cache-control": { - "type": "string" + "signtoolOptions": { + "$ref": "#/definitions/WindowsSigntoolConfiguration", + "description": "Options for usage with signtool.exe\nCannot be used in conjunction with `azureSignOptions`, signing will default to Azure Trusted Signing" }, - "connection": { - "anyOf": [ - { - "items": { - "type": "string" - }, - "type": "array" - }, - { - "type": "string" - } - ] + "azureSignOptions": { + "$ref": "#/definitions/WindowsAzureSigningConfiguration", + "description": "Options for usage of Azure Trusted Signing service\nCannot be used in conjunction with `signtoolOptions`, signing will default to Azure Trusted Signing" }, - "content-disposition": { - "type": "string" + "verifyUpdateCodeSignature": { + "description": "Whether to verify the signature of an available update before installation.\nThe [publisher name](#publisherName) will be used for the signature verification.", + "default": true, + "type": "boolean" }, - "content-encoding": { - "type": "string" + "requestedExecutionLevel": { + "$ref": "#/definitions/RequestedExecutionLevel", + "description": "The [security level](https://msdn.microsoft.com/en-us/library/6ad1fshk.aspx#Anchor_9) at which the application requests to be executed.\nCannot be specified per target, allowed only in the `win`.", + "default": "asInvoker" }, - "content-language": { - "type": "string" + "signAndEditExecutable": { + "description": "Whether to sign and add metadata to executable.\nMetadata includes information about the app name/description/version, publisher, copyright, etc.\nThis property also is responsible for adding the app icon and setting execution level.\n(Advanced option leveraging `rcedit`)", + "default": true, + "type": "boolean" }, - "content-length": { - "type": [ - "string", - "number" - ] + "signExts": { + "description": "Explicit file name/extensions (`str.endsWith`) to also sign. Advanced option.\nSupports negative patterns, e.g. example that excludes `.appx` files: `[\"somefilename\", \".dll\", \"!.appx\"]`.", + "default": null, + "type": "array", + "items": { + "type": "string" + } }, - "content-location": { + "appId": { + "description": "The application id. Used as [CFBundleIdentifier](https://developer.apple.com/library/ios/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html#//apple_ref/doc/uid/20001431-102070) for MacOS and as\n[Application User Model ID](https://msdn.microsoft.com/en-us/library/windows/desktop/dd378459(v=vs.85).aspx) for Windows (NSIS target only, Squirrel.Windows not supported). It is strongly recommended that an explicit ID is set.", + "default": "com.electron.${name}", "type": "string" }, - "content-range": { + "artifactName": { + "description": "The [artifact file name template](./configuration.md#artifact-file-name-template). Defaults to `${productName}-${version}.${ext}` (some target can have other defaults, see corresponding options).", "type": "string" }, - "content-security-policy": { + "executableName": { + "description": "The executable name. Defaults to `productName`\nNote: Except for Linux, where this would constitute a breaking change in previous behavior and lead to both invalid executable names and Desktop files. Ref comments in: https://github.com/electron-userland/electron-builder/pull/9068", "type": "string" }, - "content-security-policy-report-only": { - "type": "string" + "compression": { + "$ref": "#/definitions/CompressionLevel", + "description": "The compression level. If you want to rapidly test build, `store` can reduce build time significantly. `maximum` doesn't lead to noticeable size difference, but increase build time.", + "default": "normal" }, - "content-type": { - "type": "string" + "disableDefaultIgnoredFiles": { + "description": "Whether to exclude all default ignored files(https://www.electron.build/contents#files) and options. Defaults to `false`.", + "default": false, + "type": "boolean" }, - "cookie": { + "asar": { + "description": "Whether to package the application's source code into an archive, using [Electron's archive format](http://electron.atom.io/docs/tutorial/application-packaging/).\n\nNode modules, that must be unpacked, will be detected automatically, you don't need to explicitly set [asarUnpack](#asarUnpack) - please file an issue if this doesn't work.", + "default": true, "anyOf": [ { - "items": { - "type": "string" - }, - "type": "array" + "$ref": "#/definitions/AsarOptions" }, { - "type": "string" + "type": "boolean" } ] }, - "date": { - "type": "string" - }, - "dav": { + "asarUnpack": { + "description": "A [glob patterns](./file-patterns.md) relative to the [app directory](#directories), which specifies which files to unpack when creating the [asar](http://electron.atom.io/docs/tutorial/application-packaging/) archive.", "anyOf": [ { + "type": "array", "items": { "type": "string" - }, - "type": "array" + } }, { "type": "string" } ] }, - "dnt": { - "type": "string" - }, - "etag": { - "type": "string" - }, - "expect": { - "type": "string" - }, - "expires": { - "type": "string" - }, - "forwarded": { - "type": "string" - }, - "from": { - "type": "string" - }, - "host": { - "type": "string" - }, - "if-match": { - "type": "string" - }, - "if-modified-since": { - "type": "string" - }, - "if-none-match": { - "type": "string" - }, - "if-range": { - "type": "string" - }, - "if-unmodified-since": { - "type": "string" - }, - "last-modified": { - "type": "string" - }, - "link": { + "fileAssociations": { + "description": "The file associations.", "anyOf": [ { - "items": { - "type": "string" - }, - "type": "array" + "$ref": "#/definitions/FileAssociation" }, { - "type": "string" + "type": "array", + "items": { + "$ref": "#/definitions/FileAssociation" + } } ] }, - "location": { - "type": "string" - }, - "max-forwards": { - "type": "string" - }, - "origin": { - "type": "string" - }, - "pragma": { + "protocols": { + "description": "The URL protocol schemes.", "anyOf": [ { - "items": { - "type": "string" - }, - "type": "array" + "$ref": "#/definitions/Protocol" }, { - "type": "string" + "type": "array", + "items": { + "$ref": "#/definitions/Protocol" + } } ] }, - "proxy-authenticate": { + "electronLanguages": { + "description": "The electron locales to keep. By default, all Electron locales used as-is.", "anyOf": [ { + "type": "array", "items": { "type": "string" - }, - "type": "array" + } }, { "type": "string" } ] }, - "proxy-authorization": { - "type": "string" + "forceCodeSigning": { + "description": "Whether to fail if app will be not code signed.", + "type": "boolean" }, - "public-key-pins": { + "electronUpdaterCompatibility": { + "description": "The [electron-updater compatibility](./auto-update.md#compatibility) semver range.", "type": "string" }, - "public-key-pins-report-only": { - "type": "string" + "publish": { + "$ref": "#/definitions/Publish", + "description": "Publisher configuration. See [Auto Update](./publish.md) for more information." }, - "range": { - "type": "string" + "detectUpdateChannel": { + "description": "Whether to infer update channel from application version pre-release components. e.g. if version `0.12.1-alpha.1`, channel will be set to `alpha`. Otherwise to `latest`.\nThis does *not* apply to github publishing, which will [never auto-detect the update channel](https://github.com/electron-userland/electron-builder/issues/8589).", + "default": true, + "type": "boolean" }, - "referer": { - "type": "string" + "generateUpdatesFilesForAllChannels": { + "description": "Please see [Building and Releasing using Channels](https://github.com/electron-userland/electron-builder/issues/1182#issuecomment-324947139).", + "default": false, + "type": "boolean" }, - "referrer-policy": { - "type": "string" + "releaseInfo": { + "$ref": "#/definitions/ReleaseInfo", + "description": "The release info. Intended for command line usage:\n\n```\n-c.releaseInfo.releaseNotes=\"new features\"\n```" }, - "refresh": { + "cscLink": { "type": "string" }, - "retry-after": { + "cscKeyPassword": { "type": "string" }, - "sec-websocket-accept": { + "defaultArch": { "type": "string" }, - "sec-websocket-extensions": { + "files": { + "description": "A [glob patterns](./file-patterns.md) relative to the [app directory](configuration.md#directories), which specifies which files to include when copying files to create the package.\n\nDefaults to:\n```json\n[\n\"**\\/*\",\n\"!**\\/node_modules/*\\/{CHANGELOG.md,README.md,README,readme.md,readme}\",\n\"!**\\/node_modules/*\\/{test,__tests__,tests,powered-test,example,examples}\",\n\"!**\\/node_modules/*.d.ts\",\n\"!**\\/node_modules/.bin\",\n\"!**\\/*.{iml,o,hprof,orig,pyc,pyo,rbc,swp,csproj,sln,xproj}\",\n\"!.editorconfig\",\n\"!**\\/._*\",\n\"!**\\/{.DS_Store,.git,.hg,.svn,CVS,RCS,SCCS,.gitignore,.gitattributes}\",\n\"!**\\/{__pycache__,thumbs.db,.flowconfig,.idea,.vs,.nyc_output}\",\n\"!**\\/{appveyor.yml,.travis.yml,circle.yml}\",\n\"!**\\/{npm-debug.log,yarn.lock,.yarn-integrity,.yarn-metadata.json}\"\n]\n```\n\nDevelopment dependencies are never copied in any case. You don't need to ignore it explicitly. Hidden files are not ignored by default, but all files that should be ignored, are ignored by default.\n\nDefault pattern \\`**\\/*\\` **is not added to your custom** if some of your patterns is not ignore (i.e. not starts with `!`). `package.json` and \\`**\\/node_modules/**\\/*` (only production dependencies will be copied) is added to your custom in any case. All default ignores are added in any case — you don't need to repeat it if you configure own patterns.\n\nMay be specified in the platform options (e.g. in the [mac](mac.md)).\n\nYou may also specify custom source and destination directories by using `FileSet` objects instead of simple glob patterns.\n\n```json\n[\n{\n\"from\": \"path/to/source\",\n\"to\": \"path/to/destination\",\n\"filter\": [\"**\\/*\", \"!foo/*.js\"]\n}\n]\n```\n\nYou can use [file macros](./file-patterns.md#file-macros) in the `from` and `to` fields as well. `from` and `to` can be files and you can use this to [rename](https://github.com/electron-userland/electron-builder/issues/1119) a file while packaging.", "anyOf": [ { + "$ref": "#/definitions/FileSet" + }, + { + "type": "array", "items": { - "type": "string" - }, - "type": "array" + "anyOf": [ + { + "$ref": "#/definitions/FileSet" + }, + { + "type": "string" + } + ] + } }, { "type": "string" } ] }, - "sec-websocket-key": { - "type": "string" + "extraResources": { + "description": "A [glob patterns](./file-patterns.md) relative to the project directory, when specified, copy the file or directory with matching names directly into the app's resources directory (`Contents/Resources` for MacOS, `resources` for Linux and Windows).\n\nFile patterns (and support for `from` and `to` fields) the same as for [files](#files).", + "anyOf": [ + { + "$ref": "#/definitions/FileSet" + }, + { + "type": "array", + "items": { + "anyOf": [ + { + "$ref": "#/definitions/FileSet" + }, + { + "type": "string" + } + ] + } + }, + { + "type": "string" + } + ] }, - "sec-websocket-protocol": { + "extraFiles": { + "description": "The same as [extraResources](#extraresources) but copy into the app's content directory (`Contents` for MacOS, root directory for Linux and Windows).", "anyOf": [ { + "$ref": "#/definitions/FileSet" + }, + { + "type": "array", "items": { - "type": "string" - }, - "type": "array" + "anyOf": [ + { + "$ref": "#/definitions/FileSet" + }, + { + "type": "string" + } + ] + } }, { "type": "string" } ] + } + }, + "additionalProperties": false + }, + "TargetConfigType": { + "anyOf": [ + { + "$ref": "#/definitions/TargetConfiguration" }, - "sec-websocket-version": { - "type": "string" + { + "type": "array", + "items": { + "anyOf": [ + { + "$ref": "#/definitions/TargetConfiguration" + }, + { + "type": "string" + } + ] + } }, - "server": { + { "type": "string" - }, - "set-cookie": { + } + ] + }, + "WindowsSigntoolConfiguration": { + "type": "object", + "properties": { + "sign": { + "description": "The custom function (or path to file or module id) to sign Windows executables", "anyOf": [ { - "items": { - "type": "string" - }, - "type": "array" + "typeof": "function" }, { "type": "string" } ] }, - "strict-transport-security": { - "type": "string" + "signingHashAlgorithms": { + "description": "Array of signing algorithms used. For AppX `sha256` is always used.", + "default": "['sha1', 'sha256']", + "type": "array", + "items": { + "enum": [ + "sha1", + "sha256" + ], + "type": "string" + } }, - "te": { + "certificateFile": { + "description": "The path to the *.pfx certificate you want to sign with. Please use it only if you cannot use env variable `CSC_LINK` (`WIN_CSC_LINK`) for some reason.\nPlease see [Code Signing](./code-signing.md).", "type": "string" }, - "trailer": { + "certificatePassword": { + "description": "The password to the certificate provided in `certificateFile`. Please use it only if you cannot use env variable `CSC_KEY_PASSWORD` (`WIN_CSC_KEY_PASSWORD`) for some reason.\nPlease see [Code Signing](./code-signing.md).", "type": "string" }, - "transfer-encoding": { + "certificateSubjectName": { + "description": "The name of the subject of the signing certificate, which is often labeled with the field name `issued to`. Required only for EV Code Signing and works only on Windows (or on macOS if [Parallels Desktop](https://www.parallels.com/products/desktop/) Windows 10 virtual machines exits).", "type": "string" }, - "upgrade": { + "certificateSha1": { + "description": "The SHA1 hash of the signing certificate. The SHA1 hash is commonly specified when multiple certificates satisfy the criteria specified by the remaining switches. Works only on Windows (or on macOS if [Parallels Desktop](https://www.parallels.com/products/desktop/) Windows 10 virtual machines exits).", "type": "string" }, - "upgrade-insecure-requests": { + "additionalCertificateFile": { + "description": "The path to an additional certificate file you want to add to the signature block.", "type": "string" }, - "user-agent": { + "rfc3161TimeStampServer": { + "description": "The URL of the RFC 3161 time stamp server.", + "default": "http://timestamp.digicert.com", "type": "string" }, - "vary": { + "timeStampServer": { + "description": "The URL of the time stamp server.", + "default": "http://timestamp.digicert.com", "type": "string" }, - "via": { + "publisherName": { + "description": "[The publisher name](https://github.com/electron-userland/electron-builder/issues/1187#issuecomment-278972073), exactly as in your code signed certificate. Several names can be provided.\nDefaults to common name from your code signing certificate.", "anyOf": [ { + "type": "array", "items": { "type": "string" - }, - "type": "array" + } }, { "type": "string" } ] - }, - "warning": { + } + }, + "additionalProperties": false + }, + "WindowsAzureSigningConfiguration": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "properties": { + "publisherName": { + "description": "[The publisher name](https://github.com/electron-userland/electron-builder/issues/1187#issuecomment-278972073), exactly as in your code signed certificate. Several names can be provided.", "type": "string" }, - "www-authenticate": { - "anyOf": [ - { - "items": { - "type": "string" - }, - "type": "array" - }, - { - "type": "string" - } - ] - }, - "x-content-type-options": { + "endpoint": { + "description": "The Trusted Signing Account endpoint. The URI value must have a URI that aligns to the\nregion your Trusted Signing Account and Certificate Profile you are specifying were created\nin during the setup of these resources.\n\nTranslates to field: Endpoint\n\nRequires one of environment variable configurations for authenticating to Microsoft Entra ID per [Microsoft's documentation](https://learn.microsoft.com/en-us/dotnet/api/azure.identity.environmentcredential?view=azure-dotnet#definition)", "type": "string" }, - "x-dns-prefetch-control": { + "certificateProfileName": { + "description": "The Certificate Profile name. Translates to field: CertificateProfileName", "type": "string" }, - "x-frame-options": { + "codeSigningAccountName": { + "description": "The Code Signing Signing Account name. Translates to field: CodeSigningAccountName", "type": "string" }, - "x-xss-protection": { + "fileDigest": { + "description": "The File Digest for signing each file. Translates to field: FileDigest", + "default": "SHA256", "type": "string" - } - }, - "type": "object" - }, - "PkgBackgroundOptions": { - "additionalProperties": false, - "description": "Options for the background image in a PKG installer", - "properties": { - "alignment": { - "anyOf": [ - { - "enum": [ - "bottom", - "bottomleft", - "bottomright", - "center", - "left", - "right", - "top", - "topleft", - "topright" - ], - "type": "string" - }, - { - "type": "null" - } - ], - "default": "center", - "description": "Alignment of the background image.\nOptions are: center, left, right, top, bottom, topleft, topright, bottomleft, bottomright" }, - "file": { - "description": "Path to the image to use as an installer background.", + "timestampRfc3161": { + "description": "The Timestamp rfc3161 server. Translates to field: TimestampRfc3161", + "default": "http://timestamp.acs.microsoft.com", "type": "string" }, - "scaling": { - "anyOf": [ - { - "enum": [ - "none", - "proportional", - "tofit" - ], - "type": "string" - }, - { - "type": "null" - } - ], - "default": "tofit", - "description": "Scaling of the background image.\nOptions are: tofit, none, proportional" + "timestampDigest": { + "description": "The Timestamp Digest. Translates to field: TimestampDigest", + "default": "SHA256", + "type": "string" } }, - "type": "object" + "required": [ + "certificateProfileName", + "codeSigningAccountName", + "endpoint", + "publisherName" + ] }, - "PkgOptions": { - "additionalProperties": false, - "description": "macOS product archive options.", + "RequestedExecutionLevel": { + "enum": [ + "asInvoker", + "highestAvailable", + "requireAdministrator" + ], + "type": "string" + }, + "NsisOptions": { + "type": "object", "properties": { - "allowAnywhere": { + "oneClick": { + "description": "Whether to create one-click installer or assisted.", "default": true, - "description": "Whether can be installed at the root of any volume, including non-system volumes. Otherwise, it cannot be installed at the root of a volume.\n\nCorresponds to [enable_anywhere](https://developer.apple.com/library/content/documentation/DeveloperTools/Reference/DistributionDefinitionRef/Chapters/Distribution_XML_Ref.html#//apple_ref/doc/uid/TP40005370-CH100-SW70).", - "type": [ - "null", - "boolean" - ] + "type": "boolean" }, - "allowCurrentUserHome": { - "default": true, - "description": "Whether can be installed into the current user’s home directory.\nA home directory installation is done as the current user (not as root), and it cannot write outside of the home directory.\nIf the product cannot be installed in the user’s home directory and be not completely functional from user’s home directory.\n\nCorresponds to [enable_currentUserHome](https://developer.apple.com/library/content/documentation/DeveloperTools/Reference/DistributionDefinitionRef/Chapters/Distribution_XML_Ref.html#//apple_ref/doc/uid/TP40005370-CH100-SW70).", - "type": [ - "null", - "boolean" - ] + "perMachine": { + "description": "Whether to show install mode installer page (choice per-machine or per-user) for assisted installer. Or whether installation always per all users (per-machine).\n\nIf `oneClick` is `true` (default): Whether to install per all users (per-machine).\n\nIf `oneClick` is `false` and `perMachine` is `true`: no install mode installer page, always install per-machine.\n\nIf `oneClick` is `false` and `perMachine` is `false` (default): install mode installer page.", + "default": false, + "type": "boolean" }, - "allowRootDirectory": { + "selectPerMachineByDefault": { + "description": "Whether to set per-machine or per-user installation as default selection on the install mode installer page.", + "default": false, + "type": "boolean" + }, + "allowElevation": { + "description": "*assisted installer only.* Allow requesting for elevation. If false, user will have to restart installer with elevated permissions.", "default": true, - "description": "Whether can be installed into the root directory. Should usually be `true` unless the product can be installed only to the user’s home directory.\n\nCorresponds to [enable_localSystem](https://developer.apple.com/library/content/documentation/DeveloperTools/Reference/DistributionDefinitionRef/Chapters/Distribution_XML_Ref.html#//apple_ref/doc/uid/TP40005370-CH100-SW70).", - "type": [ - "null", - "boolean" - ] + "type": "boolean" }, - "artifactName": { - "description": "The [artifact file name template](./configuration.md#artifact-file-name-template).", - "type": [ - "null", - "string" - ] + "allowToChangeInstallationDirectory": { + "description": "*assisted installer only.* Whether to allow user to change installation directory.", + "default": false, + "type": "boolean" }, - "background": { - "anyOf": [ - { - "$ref": "#/definitions/PkgBackgroundOptions" - }, - { - "type": "null" - } - ], - "description": "Options for the background image for the installer." + "removeDefaultUninstallWelcomePage": { + "description": "*assisted installer only.* remove the default uninstall welcome page.", + "default": false, + "type": "boolean" + }, + "installerIcon": { + "description": "The path to installer icon, relative to the [build resources](./contents.md#extraresources) or to the project directory.\nDefaults to `build/installerIcon.ico` or application icon.", + "type": "string" + }, + "uninstallerIcon": { + "description": "The path to uninstaller icon, relative to the [build resources](./contents.md#extraresources) or to the project directory.\nDefaults to `build/uninstallerIcon.ico` or application icon.", + "type": "string" + }, + "installerHeader": { + "description": "*assisted installer only.* `MUI_HEADERIMAGE`, relative to the [build resources](./contents.md#extraresources) or to the project directory.", + "default": "build/installerHeader.bmp", + "type": "string" + }, + "installerHeaderIcon": { + "description": "*one-click installer only.* The path to header icon (above the progress bar), relative to the [build resources](./contents.md#extraresources) or to the project directory.\nDefaults to `build/installerHeaderIcon.ico` or application icon.", + "type": "string" + }, + "installerSidebar": { + "description": "*assisted installer only.* `MUI_WELCOMEFINISHPAGE_BITMAP`, relative to the [build resources](./contents.md#extraresources) or to the project directory.\nDefaults to `build/installerSidebar.bmp` or `${NSISDIR}\\\\Contrib\\\\Graphics\\\\Wizard\\\\nsis3-metro.bmp`. Image size 164 × 314 pixels.", + "type": "string" + }, + "uninstallerSidebar": { + "description": "*assisted installer only.* `MUI_UNWELCOMEFINISHPAGE_BITMAP`, relative to the [build resources](./contents.md#extraresources) or to the project directory.\nDefaults to `installerSidebar` option or `build/uninstallerSidebar.bmp` or `build/installerSidebar.bmp` or `${NSISDIR}\\\\Contrib\\\\Graphics\\\\Wizard\\\\nsis3-metro.bmp`", + "type": "string" + }, + "uninstallDisplayName": { + "description": "The uninstaller display name in the control panel.", + "default": "${productName} ${version}", + "type": "string" + }, + "uninstallUrlHelp": { + "description": "The URL to the uninstaller help page in the control panel. Defaults to [homepage](./configuration.md#homepage) from application package.json.", + "type": "string" + }, + "uninstallUrlInfoAbout": { + "description": "The URL to the uninstaller info about page in the control panel. Defaults to [homepage](./configuration.md#homepage) from application package.json.", + "type": "string" + }, + "uninstallUrlUpdateInfo": { + "description": "The URL to the uninstaller update info page in the control panel. Defaults to [homepage](./configuration.md#homepage) from application package.json.", + "type": "string" }, - "conclusion": { - "description": "The path to the conclusion file. This may be used to customize the text on the final \"Summary\" page of the installer.", - "type": [ - "null", - "string" - ] + "uninstallUrlReadme": { + "description": "The URL to the uninstaller readme page in the control panel. Defaults to [homepage](./configuration.md#homepage) from application package.json.", + "type": "string" }, - "extraPkgsDir": { - "description": "The extra component packages directory (relative to build resources directory) for MacOS product archive\nAutoscans directory for any `.pkg` files and adds to `productbuild` command as `--package-path` and `--package` accordingly", - "type": [ - "null", - "string" - ] + "include": { + "description": "The path to NSIS include script to customize installer. Defaults to `build/installer.nsh`. See [Custom NSIS script](#custom-nsis-script).", + "type": "string" }, - "hasStrictIdentifier": { - "default": true, - "description": "Require identical bundle identifiers at install path?", - "type": [ - "null", - "boolean" - ] + "script": { + "description": "The path to NSIS script to customize installer. Defaults to `build/installer.nsi`. See [Custom NSIS script](#custom-nsis-script).", + "type": "string" }, - "identity": { - "description": "The name of certificate to use when signing. Consider using environment variables [CSC_LINK or CSC_NAME](./code-signing.md) instead of specifying this option.", - "type": [ - "null", - "string" - ] + "license": { + "description": "The path to EULA license file. Defaults to `license.txt` or `eula.txt` (or uppercase variants). In addition to `txt`, `rtf` and `html` supported (don't forget to use `target=\"_blank\"` for links).\n\nMultiple license files in different languages are supported — use lang postfix (e.g. `_de`, `_ru`). For example, create files `license_de.txt` and `license_en.txt` in the build resources.\nIf OS language is german, `license_de.txt` will be displayed. See map of [language code to name](https://github.com/meikidd/iso-639-1/blob/master/src/data.js).\n\nAppropriate license file will be selected by user OS language.", + "type": "string" }, - "installLocation": { - "default": "/Applications", - "description": "The install location. [Do not use it](https://stackoverflow.com/questions/12863944/how-do-you-specify-a-default-install-location-to-home-with-pkgbuild) to create per-user package.\nMostly never you will need to change this option. `/Applications` would install it as expected into `/Applications` if the local system domain is chosen, or into `$HOME/Applications` if the home installation is chosen.", - "type": [ - "null", - "string" - ] + "artifactName": { + "description": "The [artifact file name template](./configuration.md#artifact-file-name-template). Defaults to `${productName} Setup ${version}.${ext}`.", + "type": "string" }, - "isRelocatable": { - "default": true, - "description": "Install bundle over previous version if moved by user?", - "type": [ - "null", - "boolean" - ] + "deleteAppDataOnUninstall": { + "description": "*one-click installer only.* Whether to delete app data on uninstall.", + "default": false, + "type": "boolean" }, - "isVersionChecked": { - "default": true, - "description": "Don't install bundle if newer version on disk?", - "type": [ - "null", - "boolean" - ] + "differentialPackage": { + "type": "boolean" }, - "license": { - "description": "The path to EULA license file. Defaults to `license.txt` or `eula.txt` (or uppercase variants). In addition to `txt`, `rtf` and `html` supported (don't forget to use `target=\"_blank\"` for links).", - "type": [ - "null", - "string" - ] + "displayLanguageSelector": { + "description": "Whether to display a language selection dialog. Not recommended (by default will be detected using OS language).", + "default": false, + "type": "boolean" }, - "mustClose": { + "installerLanguages": { + "description": "The installer languages (e.g. `en_US`, `de_DE`). Change only if you understand what do you do and for what.", "anyOf": [ { + "type": "array", "items": { "type": "string" - }, - "type": "array" + } }, { - "type": "null" - } - ], - "description": "Identifies applications that must be closed before the package is installed.\n\nCorresponds to [must-close](https://developer.apple.com/library/archive/documentation/DeveloperTools/Reference/DistributionDefinitionRef/Chapters/Distribution_XML_Ref.html#//apple_ref/doc/uid/TP40005370-CH100-SW77)." - }, - "overwriteAction": { - "anyOf": [ - { - "enum": [ - "update", - "upgrade" - ], "type": "string" - }, - { - "type": "null" } - ], - "default": "upgrade", - "description": "Specifies how an existing version of the bundle on disk should be handled when the version in\nthe package is installed.\n\nIf you specify upgrade, the bundle in the package atomi-cally replaces any version on disk;\nthis has the effect of deleting old paths that no longer exist in the new version of\nthe bundle.\n\nIf you specify update, the bundle in the package overwrites the version on disk, and any files\nnot contained in the package will be left intact; this is appropriate when you are delivering\nan update-only package.\n\nAnother effect of update is that the package bundle will not be installed at all if there is\nnot already a version on disk; this allows a package to deliver an update for an app that\nthe user might have deleted." + ] }, - "productbuild": { - "anyOf": [ - { - "items": { - "type": "string" - }, - "type": "array" - }, - { - "type": "null" - } - ], - "description": "should be not documented, only to experiment" + "language": { + "description": "[LCID Dec](https://msdn.microsoft.com/en-au/goglobal/bb964664.aspx), defaults to `1033`(`English - United States`).", + "type": "string" }, - "publish": { + "multiLanguageInstaller": { + "description": "Whether to create multi-language installer. Defaults to `unicode` option value.", + "type": "boolean" + }, + "packElevateHelper": { + "description": "Whether to pack the elevate executable (required for electron-updater if per-machine installer used or can be used in the future). Ignored if `perMachine` is set to `true`.", + "default": true, + "type": "boolean" + }, + "preCompressedFileExtensions": { + "description": "The file extension of files that will be not compressed. Applicable only for `extraResources` and `extraFiles` files.", + "default": [ + ".avi", + ".mov", + ".m4v", + ".mp4", + ".m4p", + ".qt", + ".mkv", + ".webm", + ".vmdk" + ], "anyOf": [ { - "$ref": "#/definitions/GithubOptions" - }, - { - "$ref": "#/definitions/GitlabOptions" - }, - { - "$ref": "#/definitions/S3Options" - }, - { - "$ref": "#/definitions/SpacesOptions" - }, - { - "$ref": "#/definitions/GenericServerOptions" - }, - { - "$ref": "#/definitions/CustomPublishOptions" - }, - { - "$ref": "#/definitions/KeygenOptions" - }, - { - "$ref": "#/definitions/SnapStoreOptions" - }, - { - "$ref": "#/definitions/BitbucketOptions" - }, - { + "type": "array", "items": { - "$ref": "#/definitions/AllPublishOptions" - }, - "type": "array" + "type": "string" + } }, { - "type": [ - "null", - "string" - ] + "type": "string" } ] }, - "scripts": { - "default": "build/pkg-scripts", - "description": "The scripts directory, relative to `build` (build resources directory).\nThe scripts can be in any language so long as the files are marked executable and have the appropriate shebang indicating the path to the interpreter.\nScripts are required to be executable (`chmod +x file`).", - "type": [ - "null", - "string" - ] + "buildUniversalInstaller": { + "description": "Disable building an universal installer of the archs specified in the target configuration\n*Not supported for nsis-web*", + "default": true, + "type": "boolean" }, - "welcome": { - "description": "The path to the welcome file. This may be used to customize the text on the Introduction page of the installer.", - "type": [ - "null", - "string" - ] - } - }, - "type": "object" - }, - "PlugDescriptor": { - "additionalProperties": { - "anyOf": [ - { - "type": "object" - }, - { - "type": "null" - } - ] - }, - "type": "object" - }, - "PortableOptions": { - "additionalProperties": false, - "description": "Portable options.", - "properties": { - "artifactName": { - "description": "The [artifact file name template](./configuration.md#artifact-file-name-template).", - "type": [ - "null", - "string" - ] + "unicode": { + "description": "Whether to create [Unicode installer](http://nsis.sourceforge.net/Docs/Chapter1.html#intro-unicode).", + "default": true, + "type": "boolean" }, - "buildUniversalInstaller": { + "guid": { + "description": "See [GUID vs Application Name](./nsis.md#guid-vs-application-name).", + "type": "string" + }, + "warningsAsErrors": { + "description": "If `warningsAsErrors` is `true` (default): NSIS will treat warnings as errors. If `warningsAsErrors` is `false`: NSIS will allow warnings.", "default": true, - "description": "Disable building an universal installer of the archs specified in the target configuration", + "type": "boolean" + }, + "useZip": { + "default": false, "type": "boolean" }, "customNsisBinary": { - "anyOf": [ - { - "$ref": "#/definitions/CustomNsisBinary" - }, - { - "type": "null" - } - ], + "$ref": "#/definitions/CustomNsisBinary", "description": "Allows you to provide your own `makensis`, such as one with support for debug logging via LogSet and LogText. (Logging also requires option `debugLogging = true`)" }, "customNsisResources": { - "anyOf": [ - { - "$ref": "#/definitions/CustomNsisResources" - }, - { - "type": "null" - } - ], + "$ref": "#/definitions/CustomNsisResources", "description": "Allows you to provide your own `nsis-resources`" }, - "guid": { - "description": "See [GUID vs Application Name](./nsis.md#guid-vs-application-name).", - "type": [ - "null", - "string" - ] - }, - "publish": { - "anyOf": [ - { - "$ref": "#/definitions/GithubOptions" - }, - { - "$ref": "#/definitions/GitlabOptions" - }, - { - "$ref": "#/definitions/S3Options" - }, - { - "$ref": "#/definitions/SpacesOptions" - }, - { - "$ref": "#/definitions/GenericServerOptions" - }, - { - "$ref": "#/definitions/CustomPublishOptions" - }, - { - "$ref": "#/definitions/KeygenOptions" - }, - { - "$ref": "#/definitions/SnapStoreOptions" - }, - { - "$ref": "#/definitions/BitbucketOptions" - }, - { - "items": { - "$ref": "#/definitions/AllPublishOptions" - }, - "type": "array" - }, - { - "type": [ - "null", - "string" - ] - } - ] + "runAfterFinish": { + "description": "Whether to run the installed application after finish. For assisted installer corresponding checkbox will be removed.", + "default": true, + "type": "boolean" }, - "requestExecutionLevel": { - "default": "user", - "description": "The [requested execution level](http://nsis.sourceforge.net/Reference/RequestExecutionLevel) for Windows.", + "createDesktopShortcut": { + "description": "Whether to create desktop shortcut. Set to `always` if to recreate also on reinstall (even if removed by user).", + "default": true, "enum": [ - "admin", - "highest", - "user" - ], - "type": "string" - }, - "splashImage": { - "description": "The image to show while the portable executable is extracting. This image must be a bitmap (`.bmp`) image.", - "type": [ - "null", - "string" + "always", + false, + true ] }, - "unicode": { + "createStartMenuShortcut": { + "description": "Whether to create start menu shortcut.", "default": true, - "description": "Whether to create [Unicode installer](http://nsis.sourceforge.net/Docs/Chapter1.html#intro-unicode).", "type": "boolean" }, - "unpackDirName": { - "description": "The unpack directory for the portable app resources.\n\nIf set to a string, it will be the name in [TEMP](https://www.askvg.com/where-does-windows-store-temporary-files-and-how-to-change-temp-folder-location/) directory\nIf set explicitly to `false`, it will use the Windows temp directory ($PLUGINSDIR) that is unique to each launch of the portable application.\n\nDefaults to [uuid](https://github.com/segmentio/ksuid) of build (changed on each build of portable executable).", + "menuCategory": { + "description": "Whether to create submenu for start menu shortcut and program files directory. If `true`, company name will be used. Or string value.", + "default": false, "type": [ "string", "boolean" ] }, - "useZip": { - "default": false, - "type": "boolean" + "shortcutName": { + "description": "The name that will be used for all shortcuts. Defaults to the application name.", + "type": "string" }, - "warningsAsErrors": { - "default": true, - "description": "If `warningsAsErrors` is `true` (default): NSIS will treat warnings as errors. If `warningsAsErrors` is `false`: NSIS will allow warnings.", - "type": "boolean" + "publish": { + "$ref": "#/definitions/Publish" } }, - "type": "object" + "additionalProperties": false }, - "Protocol": { - "additionalProperties": false, - "description": "URL Protocol Schemes. Protocols to associate the app with. macOS only.\n\nPlease note — on macOS [you need to register an `open-url` event handler](http://electron.atom.io/docs/api/app/#event-open-url-macos).", + "CustomNsisBinary": { + "type": "object", "properties": { - "name": { - "description": "The name. e.g. `IRC server URL`.", + "url": { + "default": "https://github.com/electron-userland/electron-builder-binaries/releases/download/nsis-3.0.4.1/nsis-3.0.4.1.7z", "type": "string" }, - "role": { - "default": "Editor", - "description": "*macOS-only* The app’s role with respect to the type.", - "enum": [ - "Editor", - "None", - "Shell", - "Viewer" - ], + "checksum": { + "default": "VKMiizYdmNdJOWpRGz4trl4lD++BvYP2irAXpMilheUP0pc93iKlWAoP843Vlraj8YG19CVn0j+dCo/hURz9+Q==", "type": "string" }, - "schemes": { - "description": "The schemes. e.g. `[\"irc\", \"ircs\"]`.", - "items": { - "type": "string" - }, - "type": "array" + "version": { + "default": "3.0.4.1", + "type": "string" + }, + "debugLogging": { + "description": "Whether or not to enable NSIS logging for debugging.\nNote: Requires a debug-enabled NSIS build.\nelectron-builder's included `makensis` does not natively support debug-enabled NSIS installers currently, you must supply your own via `customNsisBinary?: CustomNsisBinary`\nIn your custom nsis scripts, you can leverage this functionality via `LogSet` and `LogText`", + "type": "boolean" } }, + "additionalProperties": false, "required": [ - "name", - "schemes" - ], - "type": "object" + "url" + ] }, - "ReleaseInfo": { - "additionalProperties": false, + "CustomNsisResources": { + "type": "object", "properties": { - "releaseDate": { - "description": "The release date.", + "url": { + "default": "https://github.com/electron-userland/electron-builder-binaries/releases/download/nsis-resources-3.4.1/nsis-resources-3.4.1.7z", "type": "string" }, - "releaseName": { - "description": "The release name.", - "type": [ - "null", - "string" - ] - }, - "releaseNotes": { - "description": "The release notes.", - "type": [ - "null", - "string" - ] - }, - "releaseNotesFile": { - "description": "The path to release notes file. Defaults to `release-notes-${platform}.md` (where `platform` it is current platform — `mac`, `linux` or `windows`) or `release-notes.md` in the [build resources](./contents.md#extraresources).", - "type": [ - "null", - "string" - ] + "checksum": { + "default": "Dqd6g+2buwwvoG1Vyf6BHR1b+25QMmPcwZx40atOT57gH27rkjOei1L0JTldxZu4NFoEmW4kJgZ3DlSWVON3+Q==", + "type": "string" }, - "vendor": { - "anyOf": [ - { - "typeof": "function" - }, - { - "type": "null" - } - ], - "description": "Vendor specific information." + "version": { + "default": "3.4.1", + "type": "string" } }, - "type": "object" - }, - "S3Options": { "additionalProperties": false, - "description": "[Amazon S3](https://aws.amazon.com/s3/) options.\nAWS credentials are required, please see [getting your credentials](http://docs.aws.amazon.com/sdk-for-javascript/v2/developer-guide/getting-your-credentials.html).\nTo set credentials define `AWS_ACCESS_KEY_ID` and `AWS_SECRET_ACCESS_KEY` [environment variables](http://docs.aws.amazon.com/sdk-for-javascript/v2/developer-guide/loading-node-credentials-environment.html) directly,\nor use [~/.aws/credentials](http://docs.aws.amazon.com/sdk-for-javascript/v2/developer-guide/loading-node-credentials-shared.html) file,\nor use [~/.aws/config](https://docs.aws.amazon.com/sdkref/latest/guide/file-format.html) file. For the last method to work you will also need to define `AWS_SDK_LOAD_CONFIG=1` environment variable.\n\nExample configuration:\n\n```json\n{\n\"build\":\n \"publish\": {\n \"provider\": \"s3\",\n \"bucket\": \"bucket-name\"\n }\n}\n}\n```", + "required": [ + "checksum", + "url", + "version" + ] + }, + "NsisWebOptions": { + "description": "Web Installer options.", + "type": "object", "properties": { - "accelerate": { - "description": "If set to true, this will enable the s3 accelerated endpoint\nThese endpoints have a particular format of:\n ${bucketname}.s3-accelerate.amazonaws.com", + "appPackageUrl": { + "description": "The application package download URL. Optional — by default computed using publish configuration.\n\nURL like `https://example.com/download/latest` allows web installer to be version independent (installer will download latest application package).\nPlease note — it is [full URL](https://github.com/electron-userland/electron-builder/issues/1810#issuecomment-317650878).\n\nCustom `X-Arch` http header is set to `32` or `64`.", + "type": "string" + }, + "artifactName": { + "description": "The [artifact file name template](./configuration.md#artifact-file-name-template). Defaults to `${productName} Web Setup ${version}.${ext}`.", + "type": "string" + }, + "buildUniversalInstaller": { + "description": "Override for `NsisOptions.buildUniversalInstaller`. nsis-web requires universal installer", + "default": true, + "type": "boolean", + "const": true + }, + "oneClick": { + "description": "Whether to create one-click installer or assisted.", + "default": true, "type": "boolean" }, - "acl": { - "anyOf": [ - { - "enum": [ - "private", - "public-read" - ], - "type": "string" - }, - { - "type": "null" - } - ], - "default": "public-read", - "description": "The ACL. Set to `null` to not [add](https://github.com/electron-userland/electron-builder/issues/1822).\n\nPlease see [required permissions for the S3 provider](https://github.com/electron-userland/electron-builder/issues/1618#issuecomment-314679128)." + "perMachine": { + "description": "Whether to show install mode installer page (choice per-machine or per-user) for assisted installer. Or whether installation always per all users (per-machine).\n\nIf `oneClick` is `true` (default): Whether to install per all users (per-machine).\n\nIf `oneClick` is `false` and `perMachine` is `true`: no install mode installer page, always install per-machine.\n\nIf `oneClick` is `false` and `perMachine` is `false` (default): install mode installer page.", + "default": false, + "type": "boolean" }, - "bucket": { - "description": "The bucket name.", + "selectPerMachineByDefault": { + "description": "Whether to set per-machine or per-user installation as default selection on the install mode installer page.", + "default": false, + "type": "boolean" + }, + "allowElevation": { + "description": "*assisted installer only.* Allow requesting for elevation. If false, user will have to restart installer with elevated permissions.", + "default": true, + "type": "boolean" + }, + "allowToChangeInstallationDirectory": { + "description": "*assisted installer only.* Whether to allow user to change installation directory.", + "default": false, + "type": "boolean" + }, + "removeDefaultUninstallWelcomePage": { + "description": "*assisted installer only.* remove the default uninstall welcome page.", + "default": false, + "type": "boolean" + }, + "installerIcon": { + "description": "The path to installer icon, relative to the [build resources](./contents.md#extraresources) or to the project directory.\nDefaults to `build/installerIcon.ico` or application icon.", "type": "string" }, - "channel": { - "default": "latest", - "description": "The update channel.", - "type": [ - "null", - "string" - ] + "uninstallerIcon": { + "description": "The path to uninstaller icon, relative to the [build resources](./contents.md#extraresources) or to the project directory.\nDefaults to `build/uninstallerIcon.ico` or application icon.", + "type": "string" }, - "encryption": { - "anyOf": [ - { - "enum": [ - "AES256", - "aws:kms" - ], - "type": "string" - }, - { - "type": "null" - } - ], - "description": "Server-side encryption algorithm to use for the object." + "installerHeader": { + "description": "*assisted installer only.* `MUI_HEADERIMAGE`, relative to the [build resources](./contents.md#extraresources) or to the project directory.", + "default": "build/installerHeader.bmp", + "type": "string" }, - "endpoint": { - "description": "The endpoint URI to send requests to. The default endpoint is built from the configured region.\nThe endpoint should be a string like `https://{service}.{region}.amazonaws.com`.", - "type": [ - "null", - "string" - ] + "installerHeaderIcon": { + "description": "*one-click installer only.* The path to header icon (above the progress bar), relative to the [build resources](./contents.md#extraresources) or to the project directory.\nDefaults to `build/installerHeaderIcon.ico` or application icon.", + "type": "string" }, - "forcePathStyle": { - "description": "When true, force a path-style endpoint to be used where the bucket name is part of the path.\n[Path-style Access](https://docs.aws.amazon.com/AmazonS3/latest/userguide/VirtualHosting.html#path-style-access)", + "installerSidebar": { + "description": "*assisted installer only.* `MUI_WELCOMEFINISHPAGE_BITMAP`, relative to the [build resources](./contents.md#extraresources) or to the project directory.\nDefaults to `build/installerSidebar.bmp` or `${NSISDIR}\\\\Contrib\\\\Graphics\\\\Wizard\\\\nsis3-metro.bmp`. Image size 164 × 314 pixels.", + "type": "string" + }, + "uninstallerSidebar": { + "description": "*assisted installer only.* `MUI_UNWELCOMEFINISHPAGE_BITMAP`, relative to the [build resources](./contents.md#extraresources) or to the project directory.\nDefaults to `installerSidebar` option or `build/uninstallerSidebar.bmp` or `build/installerSidebar.bmp` or `${NSISDIR}\\\\Contrib\\\\Graphics\\\\Wizard\\\\nsis3-metro.bmp`", + "type": "string" + }, + "uninstallDisplayName": { + "description": "The uninstaller display name in the control panel.", + "default": "${productName} ${version}", + "type": "string" + }, + "uninstallUrlHelp": { + "description": "The URL to the uninstaller help page in the control panel. Defaults to [homepage](./configuration.md#homepage) from application package.json.", + "type": "string" + }, + "uninstallUrlInfoAbout": { + "description": "The URL to the uninstaller info about page in the control panel. Defaults to [homepage](./configuration.md#homepage) from application package.json.", + "type": "string" + }, + "uninstallUrlUpdateInfo": { + "description": "The URL to the uninstaller update info page in the control panel. Defaults to [homepage](./configuration.md#homepage) from application package.json.", + "type": "string" + }, + "uninstallUrlReadme": { + "description": "The URL to the uninstaller readme page in the control panel. Defaults to [homepage](./configuration.md#homepage) from application package.json.", + "type": "string" + }, + "include": { + "description": "The path to NSIS include script to customize installer. Defaults to `build/installer.nsh`. See [Custom NSIS script](#custom-nsis-script).", + "type": "string" + }, + "script": { + "description": "The path to NSIS script to customize installer. Defaults to `build/installer.nsi`. See [Custom NSIS script](#custom-nsis-script).", + "type": "string" + }, + "license": { + "description": "The path to EULA license file. Defaults to `license.txt` or `eula.txt` (or uppercase variants). In addition to `txt`, `rtf` and `html` supported (don't forget to use `target=\"_blank\"` for links).\n\nMultiple license files in different languages are supported — use lang postfix (e.g. `_de`, `_ru`). For example, create files `license_de.txt` and `license_en.txt` in the build resources.\nIf OS language is german, `license_de.txt` will be displayed. See map of [language code to name](https://github.com/meikidd/iso-639-1/blob/master/src/data.js).\n\nAppropriate license file will be selected by user OS language.", + "type": "string" + }, + "deleteAppDataOnUninstall": { + "description": "*one-click installer only.* Whether to delete app data on uninstall.", + "default": false, "type": "boolean" }, - "path": { - "default": "/", - "description": "The directory path.", - "type": [ - "null", - "string" + "differentialPackage": { + "type": "boolean" + }, + "displayLanguageSelector": { + "description": "Whether to display a language selection dialog. Not recommended (by default will be detected using OS language).", + "default": false, + "type": "boolean" + }, + "installerLanguages": { + "description": "The installer languages (e.g. `en_US`, `de_DE`). Change only if you understand what do you do and for what.", + "anyOf": [ + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "type": "string" + } ] }, - "provider": { - "const": "s3", - "description": "The provider. Must be `s3`.", + "language": { + "description": "[LCID Dec](https://msdn.microsoft.com/en-au/goglobal/bb964664.aspx), defaults to `1033`(`English - United States`).", "type": "string" }, - "publishAutoUpdate": { + "multiLanguageInstaller": { + "description": "Whether to create multi-language installer. Defaults to `unicode` option value.", + "type": "boolean" + }, + "packElevateHelper": { + "description": "Whether to pack the elevate executable (required for electron-updater if per-machine installer used or can be used in the future). Ignored if `perMachine` is set to `true`.", "default": true, - "description": "Whether to publish auto update info files.\n\nAuto update relies only on the first provider in the list (you can specify several publishers).\nThus, probably, there`s no need to upload the metadata files for the other configured providers. But by default will be uploaded.", "type": "boolean" }, - "publisherName": { + "preCompressedFileExtensions": { + "description": "The file extension of files that will be not compressed. Applicable only for `extraResources` and `extraFiles` files.", + "default": [ + ".avi", + ".mov", + ".m4v", + ".mp4", + ".m4p", + ".qt", + ".mkv", + ".webm", + ".vmdk" + ], "anyOf": [ { + "type": "array", "items": { "type": "string" - }, - "type": "array" + } }, { - "type": "null" + "type": "string" } ] }, - "region": { - "description": "The region. Is determined and set automatically when publishing.", - "type": [ - "null", - "string" - ] + "unicode": { + "description": "Whether to create [Unicode installer](http://nsis.sourceforge.net/Docs/Chapter1.html#intro-unicode).", + "default": true, + "type": "boolean" }, - "requestHeaders": { - "$ref": "#/definitions/OutgoingHttpHeaders", - "description": "Any custom request headers" + "guid": { + "description": "See [GUID vs Application Name](./nsis.md#guid-vs-application-name).", + "type": "string" }, - "storageClass": { - "anyOf": [ - { - "enum": [ - "REDUCED_REDUNDANCY", - "STANDARD", - "STANDARD_IA" - ], - "type": "string" - }, - { - "type": "null" - } - ], - "default": "STANDARD", - "description": "The type of storage to use for the object." + "warningsAsErrors": { + "description": "If `warningsAsErrors` is `true` (default): NSIS will treat warnings as errors. If `warningsAsErrors` is `false`: NSIS will allow warnings.", + "default": true, + "type": "boolean" }, - "timeout": { - "default": 120000, - "description": "Request timeout in milliseconds. (Default is 2 minutes; O is ignored)", - "type": [ - "null", - "number" + "useZip": { + "default": false, + "type": "boolean" + }, + "customNsisBinary": { + "$ref": "#/definitions/CustomNsisBinary", + "description": "Allows you to provide your own `makensis`, such as one with support for debug logging via LogSet and LogText. (Logging also requires option `debugLogging = true`)" + }, + "customNsisResources": { + "$ref": "#/definitions/CustomNsisResources", + "description": "Allows you to provide your own `nsis-resources`" + }, + "runAfterFinish": { + "description": "Whether to run the installed application after finish. For assisted installer corresponding checkbox will be removed.", + "default": true, + "type": "boolean" + }, + "createDesktopShortcut": { + "description": "Whether to create desktop shortcut. Set to `always` if to recreate also on reinstall (even if removed by user).", + "default": true, + "enum": [ + "always", + false, + true ] }, - "updaterCacheDirName": { + "createStartMenuShortcut": { + "description": "Whether to create start menu shortcut.", + "default": true, + "type": "boolean" + }, + "menuCategory": { + "description": "Whether to create submenu for start menu shortcut and program files directory. If `true`, company name will be used. Or string value.", + "default": false, "type": [ - "null", - "string" + "string", + "boolean" ] + }, + "shortcutName": { + "description": "The name that will be used for all shortcuts. Defaults to the application name.", + "type": "string" + }, + "publish": { + "$ref": "#/definitions/Publish" } }, - "required": [ - "bucket", - "provider" - ], - "type": "object" - }, - "SlotDescriptor": { - "additionalProperties": { - "anyOf": [ - { - "typeof": "function" - }, - { - "type": "null" - } - ] - }, - "type": "object" + "additionalProperties": false }, - "SnapOptions": { - "additionalProperties": false, + "PortableOptions": { + "description": "Portable options.", + "type": "object", "properties": { - "after": { - "anyOf": [ - { - "items": { - "type": "string" - }, - "type": "array" - }, - { - "type": "null" - } + "requestExecutionLevel": { + "description": "The [requested execution level](http://nsis.sourceforge.net/Reference/RequestExecutionLevel) for Windows.", + "default": "user", + "enum": [ + "admin", + "highest", + "user" ], - "description": "Specifies any [parts](https://snapcraft.io/docs/reference/parts) that should be built before this part.\nDefaults to `[\"desktop-gtk2\"\"]`.\n\nIf list contains `default`, it will be replaced to default list, so, `[\"default\", \"foo\"]` can be used to add custom parts `foo` in addition to defaults." + "type": "string" }, - "allowNativeWayland": { - "description": "Allow running the program with native wayland support with --ozone-platform=wayland.\nDisabled by default because of this issue in older Electron/Snap versions: https://github.com/electron-userland/electron-builder/issues/4007", + "unpackDirName": { + "description": "The unpack directory for the portable app resources.\n\nIf set to a string, it will be the name in [TEMP](https://www.askvg.com/where-does-windows-store-temporary-files-and-how-to-change-temp-folder-location/) directory\nIf set explicitly to `false`, it will use the Windows temp directory ($PLUGINSDIR) that is unique to each launch of the portable application.\n\nDefaults to [uuid](https://github.com/segmentio/ksuid) of build (changed on each build of portable executable).", "type": [ - "null", + "string", "boolean" ] }, - "appPartStage": { - "anyOf": [ - { - "items": { - "type": "string" - }, - "type": "array" - }, - { - "type": "null" - } - ], - "description": "Specifies which files from the app part to stage and which to exclude. Individual files, directories, wildcards, globstars, and exclusions are accepted. See [Snapcraft filesets](https://snapcraft.io/docs/snapcraft-filesets) to learn more about the format.\n\nThe defaults can be found in [snap.ts](https://github.com/electron-userland/electron-builder/blob/master/packages/app-builder-lib/templates/snap/snapcraft.yaml#L29)." + "splashImage": { + "description": "The image to show while the portable executable is extracting. This image must be a bitmap (`.bmp`) image.", + "type": "string" + }, + "buildUniversalInstaller": { + "description": "Disable building an universal installer of the archs specified in the target configuration", + "default": true, + "type": "boolean" }, "artifactName": { "description": "The [artifact file name template](./configuration.md#artifact-file-name-template).", - "type": [ - "null", - "string" - ] + "type": "string" }, - "assumes": { - "anyOf": [ - { - "items": { - "type": "string" - }, - "type": "array" - }, - { - "type": [ - "null", - "string" - ] - } - ], - "description": "The list of features that must be supported by the core in order for this snap to install." + "publish": { + "$ref": "#/definitions/Publish" }, - "autoStart": { - "default": false, - "description": "Whether or not the snap should automatically start on login.", + "unicode": { + "description": "Whether to create [Unicode installer](http://nsis.sourceforge.net/Docs/Chapter1.html#intro-unicode).", + "default": true, "type": "boolean" }, - "base": { - "description": "A snap of type base to be used as the execution environment for this snap. Examples: `core`, `core18`, `core20`, `core22`. Defaults to `core20`", - "type": [ - "null", - "string" - ] + "guid": { + "description": "See [GUID vs Application Name](./nsis.md#guid-vs-application-name).", + "type": "string" }, - "buildPackages": { - "anyOf": [ - { - "items": { - "type": "string" - }, - "type": "array" - }, - { - "type": "null" - } - ], - "description": "The list of debian packages needs to be installed for building this snap." + "warningsAsErrors": { + "description": "If `warningsAsErrors` is `true` (default): NSIS will treat warnings as errors. If `warningsAsErrors` is `false`: NSIS will allow warnings.", + "default": true, + "type": "boolean" }, - "category": { - "description": "The [application category](https://specifications.freedesktop.org/menu-spec/latest/apa.html#main-category-registry).", - "type": [ - "null", - "string" - ] + "useZip": { + "default": false, + "type": "boolean" }, - "compression": { - "anyOf": [ - { - "enum": [ - "lzo", - "xz" - ], - "type": "string" - }, - { - "type": "null" - } - ], - "description": "Sets the compression type for the snap. Can be xz, lzo, or null." + "customNsisBinary": { + "$ref": "#/definitions/CustomNsisBinary", + "description": "Allows you to provide your own `makensis`, such as one with support for debug logging via LogSet and LogText. (Logging also requires option `debugLogging = true`)" }, - "confinement": { - "anyOf": [ - { - "enum": [ - "classic", - "devmode", - "strict" - ], - "type": "string" - }, - { - "type": "null" - } - ], - "default": "strict", - "description": "The type of [confinement](https://snapcraft.io/docs/reference/confinement) supported by the snap." + "customNsisResources": { + "$ref": "#/definitions/CustomNsisResources", + "description": "Allows you to provide your own `nsis-resources`" + } + }, + "additionalProperties": false + }, + "AppXOptions": { + "type": "object", + "properties": { + "applicationId": { + "description": "The application id. Defaults to `identityName`. This string contains alpha-numeric fields separated by periods. Each field must begin with an ASCII alphabetic character.", + "type": "string" }, - "description": { - "description": "As [description](./configuration.md#description) from application package.json, but allows you to specify different for Linux.", - "type": [ - "null", - "string" - ] + "backgroundColor": { + "description": "The background color of the app tile. See [Visual Elements](https://msdn.microsoft.com/en-us/library/windows/apps/br211471.aspx).", + "default": "#464646", + "type": "string" + }, + "displayName": { + "description": "A friendly name that can be displayed to users. Corresponds to [Properties.DisplayName](https://msdn.microsoft.com/en-us/library/windows/apps/br211432.aspx).\nDefaults to the application product name.", + "type": "string" + }, + "identityName": { + "description": "The name. Corresponds to [Identity.Name](https://msdn.microsoft.com/en-us/library/windows/apps/br211441.aspx). Defaults to the [application name](./configuration.md#metadata).", + "type": "string" }, - "desktop": { - "anyOf": [ - { - "$ref": "#/definitions/LinuxDesktopFile" - }, - { - "type": "null" - } - ], - "description": "The [Desktop file](https://developer.gnome.org/documentation/guidelines/maintainer/integrating.html#desktop-files)" + "publisher": { + "description": "The Windows Store publisher. Not used if AppX is build for testing. See [AppX Package Code Signing](#appx-package-code-signing) below.", + "type": "string" }, - "environment": { - "anyOf": [ - { - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - { - "type": "null" - } - ], - "description": "The custom environment. Defaults to `{\"TMPDIR: \"$XDG_RUNTIME_DIR\"}`. If you set custom, it will be merged with default." + "publisherDisplayName": { + "description": "A friendly name for the publisher that can be displayed to users. Corresponds to [Properties.PublisherDisplayName](https://msdn.microsoft.com/en-us/library/windows/apps/br211460.aspx).\nDefaults to company name from the application metadata.", + "type": "string" }, - "executableArgs": { + "languages": { + "description": "The list of [supported languages](https://docs.microsoft.com/en-us/windows/uwp/globalizing/manage-language-and-region#specify-the-supported-languages-in-the-apps-manifest) that will be listed in the Windows Store.\nThe first entry (index 0) will be the default language.\nDefaults to en-US if omitted.", "anyOf": [ { + "type": "array", "items": { "type": "string" - }, - "type": "array" + } }, { - "type": "null" - } - ], - "description": "The executable parameters. Pass to executableName" - }, - "grade": { - "anyOf": [ - { - "enum": [ - "devel", - "stable" - ], "type": "string" - }, - { - "type": "null" } - ], - "default": "stable", - "description": "The quality grade of the snap. It can be either `devel` (i.e. a development version of the snap, so not to be published to the “stable” or “candidate” channels) or “stable” (i.e. a stable release or release candidate, which can be released to all channels)." - }, - "hooks": { - "default": "build/snap-hooks", - "description": "The [hooks](https://docs.snapcraft.io/build-snaps/hooks) directory, relative to `build` (build resources directory).", - "type": [ - "null", - "string" ] }, - "layout": { - "anyOf": [ - { - "typeof": "function" - }, - { - "type": "null" - } - ], - "description": "Specifies any files to make accessible from locations such as `/usr`, `/var`, and `/etc`. See [snap layouts](https://snapcraft.io/docs/snap-layouts) to learn more." + "addAutoLaunchExtension": { + "description": "Whether to add auto launch extension. Defaults to `true` if [electron-winstore-auto-launch](https://github.com/felixrieseberg/electron-winstore-auto-launch) in the dependencies.", + "type": "boolean" }, - "mimeTypes": { - "anyOf": [ - { - "items": { - "type": "string" - }, - "type": "array" - }, - { - "type": "null" - } - ], - "description": "The mime types in addition to specified in the file associations. Use it if you don't want to register a new mime type, but reuse existing." + "customExtensionsPath": { + "description": "Relative path to custom extensions xml to be included in an `appmanifest.xml`.", + "type": "string" }, - "plugs": { - "anyOf": [ - { - "$ref": "#/definitions/PlugDescriptor" - }, - { - "items": { - "anyOf": [ - { - "$ref": "#/definitions/PlugDescriptor" - }, - { - "type": "string" - } - ] - }, - "type": "array" - }, - { - "type": "null" - } - ], - "description": "The list of [plugs](https://snapcraft.io/docs/reference/interfaces).\nDefaults to `[\"desktop\", \"desktop-legacy\", \"home\", \"x11\", \"wayland\", \"unity7\", \"browser-support\", \"network\", \"gsettings\", \"audio-playback\", \"pulseaudio\", \"opengl\"]`.\n\nIf list contains `default`, it will be replaced to default list, so, `[\"default\", \"foo\"]` can be used to add custom plug `foo` in addition to defaults.\n\nAdditional attributes can be specified using object instead of just name of plug:\n```\n[\n {\n \"browser-sandbox\": {\n \"interface\": \"browser-support\",\n \"allow-sandbox\": true\n },\n },\n \"another-simple-plug-name\"\n]\n```" + "customManifestPath": { + "description": "(Advanced Option) Relative path to custom `appmanifest.xml` (file name doesn't matter, it'll be renamed) located in build resources directory.\nSupports the following template macros:\n\n- ${publisher}\n- ${publisherDisplayName}\n- ${version}\n- ${applicationId}\n- ${identityName}\n- ${executable}\n- ${displayName}\n- ${description}\n- ${backgroundColor}\n- ${logo}\n- ${square150x150Logo}\n- ${square44x44Logo}\n- ${lockScreen}\n- ${defaultTile}\n- ${splashScreen}\n- ${arch}\n- ${resourceLanguages}\n- ${extensions}\n- ${minVersion}\n- ${maxVersionTested}", + "type": "string" }, - "publish": { - "anyOf": [ - { - "$ref": "#/definitions/GithubOptions" - }, - { - "$ref": "#/definitions/GitlabOptions" - }, - { - "$ref": "#/definitions/S3Options" - }, - { - "$ref": "#/definitions/SpacesOptions" - }, - { - "$ref": "#/definitions/GenericServerOptions" - }, - { - "$ref": "#/definitions/CustomPublishOptions" - }, - { - "$ref": "#/definitions/KeygenOptions" - }, - { - "$ref": "#/definitions/SnapStoreOptions" - }, - { - "$ref": "#/definitions/BitbucketOptions" - }, - { - "items": { - "$ref": "#/definitions/AllPublishOptions" - }, - "type": "array" - }, - { - "type": [ - "null", - "string" - ] - } - ] + "showNameOnTiles": { + "description": "Whether to overlay the app's name on top of tile images on the Start screen. Defaults to `false`. (https://docs.microsoft.com/en-us/uwp/schemas/appxpackage/uapmanifestschema/element-uap-shownameontiles) in the dependencies.", + "default": false, + "type": "boolean" }, - "slots": { - "anyOf": [ - { - "$ref": "#/definitions/PlugDescriptor" - }, - { - "items": { - "anyOf": [ - { - "$ref": "#/definitions/SlotDescriptor" - }, - { - "type": "string" - } - ] - }, - "type": "array" - }, - { - "type": "null" - } - ], - "description": "The list of [slots](https://snapcraft.io/docs/reference/interfaces).\n\nAdditional attributes can be specified using object instead of just name of slot:\n```\n[\n {\n \"mpris\": {\n \"name\": \"chromium\"\n },\n }\n]\n\nIn case you want your application to be a compliant MPris player, you will need to definie\nThe mpris slot with \"chromium\" name.\nThis electron has it [hardcoded](https://source.chromium.org/chromium/chromium/src/+/master:components/system_media_controls/linux/system_media_controls_linux.cc;l=51;bpv=0;bpt=1),\nand we need to pass this name so snap [will allow it](https://forum.snapcraft.io/t/unable-to-use-mpris-interface/15360/7) in strict confinement." + "electronUpdaterAware": { + "default": false, + "type": "boolean" }, - "stagePackages": { - "anyOf": [ - { - "items": { - "type": "string" - }, - "type": "array" - }, - { - "type": "null" - } - ], - "description": "The list of Ubuntu packages to use that are needed to support the `app` part creation. Like `depends` for `deb`.\nDefaults to `[\"libnspr4\", \"libnss3\", \"libxss1\", \"libappindicator3-1\", \"libsecret-1-0\"]`.\n\nIf list contains `default`, it will be replaced to default list, so, `[\"default\", \"foo\"]` can be used to add custom package `foo` in addition to defaults." + "setBuildNumber": { + "description": "Whether to set build number. See https://github.com/electron-userland/electron-builder/issues/3875", + "default": false, + "type": "boolean" }, - "summary": { - "description": "The 78 character long summary. Defaults to [productName](./configuration.md#productName).", - "type": [ - "null", - "string" - ] + "minVersion": { + "description": "Set the MinVersion field in the appx manifest.xml", + "default": "arch === Arch.arm64 ? \"10.0.16299.0\" : \"10.0.14316.0\"", + "type": "string" }, - "synopsis": { - "description": "The [short description](https://www.debian.org/doc/debian-policy/ch-controlfields.html#s-f-Description).", - "type": [ - "null", - "string" - ] + "maxVersionTested": { + "description": "Set the `MaxVersionTested` field in the appx manifest.xml", + "default": "arch === Arch.arm64 ? \"10.0.16299.0\" : \"10.0.14316.0\"", + "type": "string" }, - "title": { - "description": "An optional title for the snap, may contain uppercase letters and spaces. Defaults to `productName`. See [snap format documentation](https://snapcraft.io/docs/snap-format).", - "type": [ - "null", - "string" - ] + "makeappxArgs": { + "type": "array", + "items": { + "type": "string" + } }, - "useTemplateApp": { - "description": "Whether to use template snap. Defaults to `true` if `stagePackages` not specified.", - "type": "boolean" + "artifactName": { + "description": "The [artifact file name template](./configuration.md#artifact-file-name-template).", + "type": "string" + }, + "publish": { + "$ref": "#/definitions/Publish" } }, - "type": "object" + "additionalProperties": false }, - "SnapStoreOptions": { - "additionalProperties": false, - "description": "[Snap Store](https://snapcraft.io/) options. To publish directly to Snapcraft, see Snapcraft authentication options for local or CI/CD authentication options.", + "MsiOptions": { + "type": "object", "properties": { - "channels": { - "anyOf": [ - { - "items": { - "type": "string" - }, - "type": "array" - }, - { - "type": [ - "null", - "string" - ] - } - ], - "default": [ - "edge" - ], - "description": "The list of channels the snap would be released." + "oneClick": { + "description": "One-click installation.", + "default": true, + "type": "boolean" }, - "provider": { - "const": "snapStore", - "description": "The provider. Must be `snapStore`.", + "upgradeCode": { + "description": "The [upgrade code](https://msdn.microsoft.com/en-us/library/windows/desktop/aa372375(v=vs.85).aspx). Optional, by default generated using app id.", "type": "string" }, - "publishAutoUpdate": { + "warningsAsErrors": { + "description": "If `warningsAsErrors` is `true` (default): treat warnings as errors. If `warningsAsErrors` is `false`: allow warnings.", "default": true, - "description": "Whether to publish auto update info files.\n\nAuto update relies only on the first provider in the list (you can specify several publishers).\nThus, probably, there`s no need to upload the metadata files for the other configured providers. But by default will be uploaded.", "type": "boolean" }, - "publisherName": { - "anyOf": [ - { - "items": { - "type": "string" - }, - "type": "array" - }, - { - "type": "null" - } + "additionalWixArgs": { + "description": "Any additional arguments to be passed to the WiX installer compiler, such as `[\"-ext\", \"WixUtilExtension\"]`", + "type": "array", + "items": { + "type": "string" + } + }, + "additionalLightArgs": { + "description": "Any additional arguments to be passed to the light.ext, such as `[\"-cultures:ja-jp\"]`", + "type": "array", + "items": { + "type": "string" + } + }, + "perMachine": { + "description": "Whether to install per all users (per-machine).", + "default": false, + "type": "boolean" + }, + "runAfterFinish": { + "description": "Whether to run the installed application after finish. For assisted installer corresponding checkbox will be removed.", + "default": true, + "type": "boolean" + }, + "createDesktopShortcut": { + "description": "Whether to create desktop shortcut. Set to `always` if to recreate also on reinstall (even if removed by user).", + "default": true, + "enum": [ + "always", + false, + true ] }, - "repo": { - "description": "snapcraft repo name", - "type": "string" - }, - "requestHeaders": { - "$ref": "#/definitions/OutgoingHttpHeaders", - "description": "Any custom request headers" + "createStartMenuShortcut": { + "description": "Whether to create start menu shortcut.", + "default": true, + "type": "boolean" }, - "timeout": { - "default": 120000, - "description": "Request timeout in milliseconds. (Default is 2 minutes; O is ignored)", + "menuCategory": { + "description": "Whether to create submenu for start menu shortcut and program files directory. If `true`, company name will be used. Or string value.", + "default": false, "type": [ - "null", - "number" + "string", + "boolean" ] }, - "updaterCacheDirName": { - "type": [ - "null", - "string" - ] + "shortcutName": { + "description": "The name that will be used for all shortcuts. Defaults to the application name.", + "type": "string" + }, + "artifactName": { + "description": "The [artifact file name template](./configuration.md#artifact-file-name-template).", + "type": "string" + }, + "publish": { + "$ref": "#/definitions/Publish" } }, - "required": [ - "provider" - ], - "type": "object" + "additionalProperties": false }, - "SpacesOptions": { - "additionalProperties": false, - "description": "[DigitalOcean Spaces](https://www.digitalocean.com/community/tutorials/an-introduction-to-digitalocean-spaces) options.\nAccess key is required, define `DO_KEY_ID` and `DO_SECRET_KEY` environment variables.", + "MsiWrappedOptions": { + "type": "object", "properties": { - "acl": { - "anyOf": [ - { - "enum": [ - "private", - "public-read" - ], - "type": "string" - }, - { - "type": "null" - } - ], - "default": "public-read", - "description": "The ACL. Set to `null` to not [add](https://github.com/electron-userland/electron-builder/issues/1822)." - }, - "channel": { - "default": "latest", - "description": "The update channel.", - "type": [ - "null", - "string" - ] - }, - "name": { - "description": "The space name.", + "wrappedInstallerArgs": { + "description": "Extra arguments to provide to the wrapped installer (ie: /S for silent install)", "type": "string" }, - "path": { - "default": "/", - "description": "The directory path.", - "type": [ - "null", - "string" - ] + "impersonate": { + "description": "Determines if the wrapped installer should be executed with impersonation", + "default": false, + "type": "boolean" }, - "provider": { - "const": "spaces", - "description": "The provider. Must be `spaces`.", + "upgradeCode": { + "description": "The [upgrade code](https://msdn.microsoft.com/en-us/library/windows/desktop/aa372375(v=vs.85).aspx). Optional, by default generated using app id.", "type": "string" }, - "publishAutoUpdate": { + "warningsAsErrors": { + "description": "If `warningsAsErrors` is `true` (default): treat warnings as errors. If `warningsAsErrors` is `false`: allow warnings.", "default": true, - "description": "Whether to publish auto update info files.\n\nAuto update relies only on the first provider in the list (you can specify several publishers).\nThus, probably, there`s no need to upload the metadata files for the other configured providers. But by default will be uploaded.", "type": "boolean" }, - "publisherName": { - "anyOf": [ - { - "items": { - "type": "string" - }, - "type": "array" - }, - { - "type": "null" - } - ] + "additionalWixArgs": { + "description": "Any additional arguments to be passed to the WiX installer compiler, such as `[\"-ext\", \"WixUtilExtension\"]`", + "type": "array", + "items": { + "type": "string" + } }, - "region": { - "description": "The region (e.g. `nyc3`).", - "type": "string" + "oneClick": { + "type": "boolean" }, - "requestHeaders": { - "$ref": "#/definitions/OutgoingHttpHeaders", - "description": "Any custom request headers" + "perMachine": { + "description": "Whether to install per all users (per-machine).", + "default": false, + "type": "boolean" }, - "timeout": { - "default": 120000, - "description": "Request timeout in milliseconds. (Default is 2 minutes; O is ignored)", - "type": [ - "null", - "number" + "runAfterFinish": { + "description": "Whether to run the installed application after finish. For assisted installer corresponding checkbox will be removed.", + "default": true, + "type": "boolean" + }, + "createDesktopShortcut": { + "description": "Whether to create desktop shortcut. Set to `always` if to recreate also on reinstall (even if removed by user).", + "default": true, + "enum": [ + "always", + false, + true ] }, - "updaterCacheDirName": { + "createStartMenuShortcut": { + "description": "Whether to create start menu shortcut.", + "default": true, + "type": "boolean" + }, + "menuCategory": { + "description": "Whether to create submenu for start menu shortcut and program files directory. If `true`, company name will be used. Or string value.", + "default": false, "type": [ - "null", - "string" + "string", + "boolean" ] + }, + "shortcutName": { + "description": "The name that will be used for all shortcuts. Defaults to the application name.", + "type": "string" + }, + "artifactName": { + "description": "The [artifact file name template](./configuration.md#artifact-file-name-template).", + "type": "string" + }, + "publish": { + "$ref": "#/definitions/Publish" } }, - "required": [ - "name", - "provider", - "region" - ], - "type": "object" + "additionalProperties": false }, "SquirrelWindowsOptions": { - "additionalProperties": false, + "type": "object", "properties": { - "artifactName": { - "description": "The [artifact file name template](./configuration.md#artifact-file-name-template).", - "type": [ - "null", - "string" - ] - }, - "customSquirrelVendorDir": { - "description": "The custom squirrel vendor dir. If not specified will use the Squirrel.Windows that is shipped with electron-installer(https://github.com/electron/windows-installer/tree/main/vendor).\nAfter https://github.com/electron-userland/electron-builder-binaries/pull/56 merged, will add `electron-builder-binaries` to get the latest version of squirrel.", - "type": "string" - }, "iconUrl": { "description": "A URL to an ICO file to use as the application icon (displayed in Control Panel > Programs and Features). Defaults to the Electron icon.\n\nPlease note — [local icon file url is not accepted](https://github.com/atom/grunt-electron-installer/issues/73), must be https/http.\n\nIf you don't plan to build windows installer, you can omit it.\nIf your project repository is public on GitHub, it will be `https://github.com/${u}/${p}/blob/master/build/icon.ico?raw=true` by default.", - "type": [ - "null", - "string" - ] + "type": "string" }, "loadingGif": { "description": "The path to a .gif file to display during install. `build/install-spinner.gif` will be used if exists (it is a recommended way to set)\n(otherwise [default](https://github.com/electron/windows-installer/blob/master/resources/install-spinner.gif)).", - "type": [ - "null", - "string" - ] + "type": "string" }, "msi": { "description": "Whether to create an MSI installer. Defaults to `false` (MSI is not created).", "type": "boolean" }, - "name": { - "description": "https://github.com/electron-userland/electron-builder/issues/1743", - "type": "string" - }, - "publish": { - "anyOf": [ - { - "$ref": "#/definitions/GithubOptions" - }, - { - "$ref": "#/definitions/GitlabOptions" - }, - { - "$ref": "#/definitions/S3Options" - }, - { - "$ref": "#/definitions/SpacesOptions" - }, - { - "$ref": "#/definitions/GenericServerOptions" - }, - { - "$ref": "#/definitions/CustomPublishOptions" - }, - { - "$ref": "#/definitions/KeygenOptions" - }, - { - "$ref": "#/definitions/SnapStoreOptions" - }, - { - "$ref": "#/definitions/BitbucketOptions" - }, - { - "items": { - "$ref": "#/definitions/AllPublishOptions" - }, - "type": "array" - }, - { - "type": [ - "null", - "string" - ] - } - ] - }, "remoteReleases": { "description": "A URL to your existing updates. Or `true` to automatically set to your GitHub repository. If given, these will be downloaded to create delta updates.", "type": [ - "null", "string", "boolean" ] }, "remoteToken": { "description": "Authentication token for remote updates", - "type": [ - "null", - "string" - ] + "type": "string" }, "useAppIdAsId": { "description": "Use `appId` to identify package instead of `name`.", "type": "boolean" - } - }, - "type": "object" - }, - "TargetConfiguration": { - "additionalProperties": false, - "properties": { - "arch": { - "anyOf": [ - { - "items": { - "$ref": "#/definitions/ArchType" - }, - "type": "array" - }, - { - "enum": [ - "arm64", - "armv7l", - "ia32", - "universal", - "x64" - ], - "type": "string" - } - ], - "description": "The arch or list of archs." }, - "target": { - "description": "The target name. e.g. `snap`.", + "customSquirrelVendorDir": { + "description": "The custom squirrel vendor dir. If not specified will use the Squirrel.Windows that is shipped with electron-installer(https://github.com/electron/windows-installer/tree/main/vendor).\nAfter https://github.com/electron-userland/electron-builder-binaries/pull/56 merged, will add `electron-builder-binaries` to get the latest version of squirrel.", + "type": "string" + }, + "name": { + "description": "https://github.com/electron-userland/electron-builder/issues/1743", + "type": "string" + }, + "artifactName": { + "description": "The [artifact file name template](./configuration.md#artifact-file-name-template).", "type": "string" + }, + "publish": { + "$ref": "#/definitions/Publish" } }, - "required": [ - "target" - ], - "type": "object" + "additionalProperties": false }, - "WindowsAzureSigningConfiguration": { - "additionalProperties": { - "type": [ - "null", - "string" - ] - }, + "LinuxConfiguration": { + "type": "object", "properties": { - "certificateProfileName": { - "description": "The Certificate Profile name. Translates to field: CertificateProfileName", - "type": "string" + "target": { + "$ref": "#/definitions/TargetConfigType", + "description": "Target package type: list of `AppImage`, `flatpak`, `snap`, `deb`, `rpm`, `freebsd`, `pacman`, `p5p`, `apk`, `7z`, `zip`, `tar.xz`, `tar.lz`, `tar.gz`, `tar.bz2`, `dir`.\n\nelectron-builder [docker image](./multi-platform-build.md#docker) can be used to build Linux targets on any platform.\n\nPlease [do not put an AppImage into another archive](https://github.com/probonopd/AppImageKit/wiki/Creating-AppImages#common-mistake) like a .zip or .tar.gz.", + "default": "AppImage" }, - "codeSigningAccountName": { - "description": "The Code Signing Signing Account name. Translates to field: CodeSigningAccountName", + "maintainer": { + "description": "The maintainer. Defaults to [author](./configuration.md#author).", "type": "string" }, - "endpoint": { - "description": "The Trusted Signing Account endpoint. The URI value must have a URI that aligns to the\nregion your Trusted Signing Account and Certificate Profile you are specifying were created\nin during the setup of these resources.\n\nTranslates to field: Endpoint\n\nRequires one of environment variable configurations for authenticating to Microsoft Entra ID per [Microsoft's documentation](https://learn.microsoft.com/en-us/dotnet/api/azure.identity.environmentcredential?view=azure-dotnet#definition)", + "vendor": { + "description": "The vendor. Defaults to [author](./configuration.md#author).", "type": "string" }, - "fileDigest": { - "default": "SHA256", - "description": "The File Digest for signing each file. Translates to field: FileDigest", + "icon": { + "description": "The path to icon set directory or one png file, relative to the [build resources](./contents.md#extraresources) or to the project directory. The icon filename must contain the size (e.g. 32x32.png) of the icon.\nBy default will be generated automatically based on the macOS icns file.", "type": "string" }, - "publisherName": { - "description": "[The publisher name](https://github.com/electron-userland/electron-builder/issues/1187#issuecomment-278972073), exactly as in your code signed certificate. Several names can be provided.", + "packageCategory": { + "description": "backward compatibility + to allow specify fpm-only category for all possible fpm targets in one place", "type": "string" }, - "timestampDigest": { - "default": "SHA256", - "description": "The Timestamp Digest. Translates to field: TimestampDigest", + "synopsis": { + "description": "The [short description](https://www.debian.org/doc/debian-policy/ch-controlfields.html#s-f-Description).", "type": "string" }, - "timestampRfc3161": { - "default": "http://timestamp.acs.microsoft.com", - "description": "The Timestamp rfc3161 server. Translates to field: TimestampRfc3161", + "description": { + "description": "As [description](./configuration.md#description) from application package.json, but allows you to specify different for Linux.", "type": "string" - } - }, - "required": [ - "certificateProfileName", - "codeSigningAccountName", - "endpoint", - "publisherName" - ], - "type": "object" - }, - "WindowsConfiguration": { - "additionalProperties": false, - "properties": { - "appId": { - "default": "com.electron.${name}", - "description": "The application id. Used as [CFBundleIdentifier](https://developer.apple.com/library/ios/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html#//apple_ref/doc/uid/20001431-102070) for MacOS and as\n[Application User Model ID](https://msdn.microsoft.com/en-us/library/windows/desktop/dd378459(v=vs.85).aspx) for Windows (NSIS target only, Squirrel.Windows not supported). It is strongly recommended that an explicit ID is set.", - "type": [ - "null", - "string" - ] - }, - "artifactName": { - "description": "The [artifact file name template](./configuration.md#artifact-file-name-template). Defaults to `${productName}-${version}.${ext}` (some target can have other defaults, see corresponding options).", - "type": [ - "null", - "string" - ] }, - "asar": { - "anyOf": [ - { - "$ref": "#/definitions/AsarOptions" - }, - { - "type": [ - "null", - "boolean" - ] - } - ], - "default": true, - "description": "Whether to package the application's source code into an archive, using [Electron's archive format](http://electron.atom.io/docs/tutorial/application-packaging/).\n\nNode modules, that must be unpacked, will be detected automatically, you don't need to explicitly set [asarUnpack](#asarUnpack) - please file an issue if this doesn't work." + "category": { + "description": "The [application category](https://specifications.freedesktop.org/menu-spec/latest/apa.html#main-category-registry).", + "type": "string" }, - "asarUnpack": { - "anyOf": [ - { - "items": { - "type": "string" - }, - "type": "array" - }, - { - "type": [ - "null", - "string" - ] - } - ], - "description": "A [glob patterns](./file-patterns.md) relative to the [app directory](#directories), which specifies which files to unpack when creating the [asar](http://electron.atom.io/docs/tutorial/application-packaging/) archive." + "mimeTypes": { + "description": "The mime types in addition to specified in the file associations. Use it if you don't want to register a new mime type, but reuse existing.", + "type": "array", + "items": { + "type": "string" + } }, - "azureSignOptions": { - "anyOf": [ - { - "$ref": "#/definitions/WindowsAzureSigningConfiguration" - }, - { - "type": "null" - } - ], - "description": "Options for usage of Azure Trusted Signing service\nCannot be used in conjunction with `signtoolOptions`, signing will default to Azure Trusted Signing" + "desktop": { + "$ref": "#/definitions/LinuxDesktopFile", + "description": "The [Desktop file](https://developer.gnome.org/documentation/guidelines/maintainer/integrating.html#desktop-files)" }, - "compression": { - "anyOf": [ - { - "enum": [ - "maximum", - "normal", - "store" - ], - "type": "string" - }, - { - "type": "null" - } - ], - "default": "normal", - "description": "The compression level. If you want to rapidly test build, `store` can reduce build time significantly. `maximum` doesn't lead to noticeable size difference, but increase build time." + "executableArgs": { + "description": "The executable parameters. Pass to executableName", + "type": "array", + "items": { + "type": "string" + } }, - "cscKeyPassword": { - "type": [ - "null", - "string" - ] + "appId": { + "description": "The application id. Used as [CFBundleIdentifier](https://developer.apple.com/library/ios/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html#//apple_ref/doc/uid/20001431-102070) for MacOS and as\n[Application User Model ID](https://msdn.microsoft.com/en-us/library/windows/desktop/dd378459(v=vs.85).aspx) for Windows (NSIS target only, Squirrel.Windows not supported). It is strongly recommended that an explicit ID is set.", + "default": "com.electron.${name}", + "type": "string" }, - "cscLink": { - "type": [ - "null", - "string" - ] + "artifactName": { + "description": "The [artifact file name template](./configuration.md#artifact-file-name-template). Defaults to `${productName}-${version}.${ext}` (some target can have other defaults, see corresponding options).", + "type": "string" }, - "defaultArch": { + "executableName": { + "description": "The executable name. Defaults to `productName`\nNote: Except for Linux, where this would constitute a breaking change in previous behavior and lead to both invalid executable names and Desktop files. Ref comments in: https://github.com/electron-userland/electron-builder/pull/9068", "type": "string" }, - "detectUpdateChannel": { - "default": true, - "description": "Whether to infer update channel from application version pre-release components. e.g. if version `0.12.1-alpha.1`, channel will be set to `alpha`. Otherwise to `latest`.\nThis does *not* apply to github publishing, which will [never auto-detect the update channel](https://github.com/electron-userland/electron-builder/issues/8589).", - "type": "boolean" + "compression": { + "$ref": "#/definitions/CompressionLevel", + "description": "The compression level. If you want to rapidly test build, `store` can reduce build time significantly. `maximum` doesn't lead to noticeable size difference, but increase build time.", + "default": "normal" }, "disableDefaultIgnoredFiles": { - "default": false, "description": "Whether to exclude all default ignored files(https://www.electron.build/contents#files) and options. Defaults to `false`.", - "type": [ - "null", - "boolean" - ] + "default": false, + "type": "boolean" }, - "electronLanguages": { + "asar": { + "description": "Whether to package the application's source code into an archive, using [Electron's archive format](http://electron.atom.io/docs/tutorial/application-packaging/).\n\nNode modules, that must be unpacked, will be detected automatically, you don't need to explicitly set [asarUnpack](#asarUnpack) - please file an issue if this doesn't work.", + "default": true, "anyOf": [ { - "items": { - "type": "string" - }, - "type": "array" + "$ref": "#/definitions/AsarOptions" }, { - "type": "string" + "type": "boolean" } - ], - "description": "The electron locales to keep. By default, all Electron locales used as-is." - }, - "electronUpdaterCompatibility": { - "description": "The [electron-updater compatibility](./auto-update.md#compatibility) semver range.", - "type": [ - "null", - "string" - ] - }, - "executableName": { - "description": "The executable name. Defaults to `productName`\nNote: Except for Linux, where this would constitute a breaking change in previous behavior and lead to both invalid executable names and Desktop files. Ref comments in: https://github.com/electron-userland/electron-builder/pull/9068", - "type": [ - "null", - "string" ] }, - "extraFiles": { - "anyOf": [ - { - "$ref": "#/definitions/FileSet" - }, - { - "items": { - "anyOf": [ - { - "$ref": "#/definitions/FileSet" - }, - { - "type": "string" - } - ] - }, - "type": "array" - }, - { - "type": [ - "null", - "string" - ] - } - ], - "description": "The same as [extraResources](#extraresources) but copy into the app's content directory (`Contents` for MacOS, root directory for Linux and Windows)." - }, - "extraResources": { + "asarUnpack": { + "description": "A [glob patterns](./file-patterns.md) relative to the [app directory](#directories), which specifies which files to unpack when creating the [asar](http://electron.atom.io/docs/tutorial/application-packaging/) archive.", "anyOf": [ { - "$ref": "#/definitions/FileSet" - }, - { + "type": "array", "items": { - "anyOf": [ - { - "$ref": "#/definitions/FileSet" - }, - { - "type": "string" - } - ] - }, - "type": "array" + "type": "string" + } }, { - "type": [ - "null", - "string" - ] + "type": "string" } - ], - "description": "A [glob patterns](./file-patterns.md) relative to the project directory, when specified, copy the file or directory with matching names directly into the app's resources directory (`Contents/Resources` for MacOS, `resources` for Linux and Windows).\n\nFile patterns (and support for `from` and `to` fields) the same as for [files](#files)." + ] }, "fileAssociations": { + "description": "The file associations.", "anyOf": [ { "$ref": "#/definitions/FileAssociation" }, { + "type": "array", "items": { "$ref": "#/definitions/FileAssociation" - }, - "type": "array" - } - ], - "description": "The file associations." - }, - "files": { - "anyOf": [ - { - "$ref": "#/definitions/FileSet" - }, - { - "items": { - "anyOf": [ - { - "$ref": "#/definitions/FileSet" - }, - { - "type": "string" - } - ] - }, - "type": "array" - }, - { - "type": [ - "null", - "string" - ] + } } - ], - "description": "A [glob patterns](./file-patterns.md) relative to the [app directory](configuration.md#directories), which specifies which files to include when copying files to create the package.\n\nDefaults to:\n```json\n[\n\"**\\/*\",\n\"!**\\/node_modules/*\\/{CHANGELOG.md,README.md,README,readme.md,readme}\",\n\"!**\\/node_modules/*\\/{test,__tests__,tests,powered-test,example,examples}\",\n\"!**\\/node_modules/*.d.ts\",\n\"!**\\/node_modules/.bin\",\n\"!**\\/*.{iml,o,hprof,orig,pyc,pyo,rbc,swp,csproj,sln,xproj}\",\n\"!.editorconfig\",\n\"!**\\/._*\",\n\"!**\\/{.DS_Store,.git,.hg,.svn,CVS,RCS,SCCS,.gitignore,.gitattributes}\",\n\"!**\\/{__pycache__,thumbs.db,.flowconfig,.idea,.vs,.nyc_output}\",\n\"!**\\/{appveyor.yml,.travis.yml,circle.yml}\",\n\"!**\\/{npm-debug.log,yarn.lock,.yarn-integrity,.yarn-metadata.json}\"\n]\n```\n\nDevelopment dependencies are never copied in any case. You don't need to ignore it explicitly. Hidden files are not ignored by default, but all files that should be ignored, are ignored by default.\n\nDefault pattern \\`**\\/*\\` **is not added to your custom** if some of your patterns is not ignore (i.e. not starts with `!`). `package.json` and \\`**\\/node_modules/**\\/*` (only production dependencies will be copied) is added to your custom in any case. All default ignores are added in any case — you don't need to repeat it if you configure own patterns.\n\nMay be specified in the platform options (e.g. in the [mac](mac.md)).\n\nYou may also specify custom source and destination directories by using `FileSet` objects instead of simple glob patterns.\n\n```json\n[\n{\n\"from\": \"path/to/source\",\n\"to\": \"path/to/destination\",\n\"filter\": [\"**\\/*\", \"!foo/*.js\"]\n}\n]\n```\n\nYou can use [file macros](./file-patterns.md#file-macros) in the `from` and `to` fields as well. `from` and `to` can be files and you can use this to [rename](https://github.com/electron-userland/electron-builder/issues/1119) a file while packaging." - }, - "forceCodeSigning": { - "description": "Whether to fail if app will be not code signed.", - "type": "boolean" - }, - "generateUpdatesFilesForAllChannels": { - "default": false, - "description": "Please see [Building and Releasing using Channels](https://github.com/electron-userland/electron-builder/issues/1182#issuecomment-324947139).", - "type": "boolean" - }, - "icon": { - "default": "build/icon.ico", - "description": "The path to application icon.", - "type": [ - "null", - "string" - ] - }, - "legalTrademarks": { - "description": "The trademarks and registered trademarks.", - "type": [ - "null", - "string" ] }, "protocols": { + "description": "The URL protocol schemes.", "anyOf": [ { "$ref": "#/definitions/Protocol" }, { + "type": "array", "items": { "$ref": "#/definitions/Protocol" - }, - "type": "array" + } } - ], - "description": "The URL protocol schemes." + ] }, - "publish": { + "electronLanguages": { + "description": "The electron locales to keep. By default, all Electron locales used as-is.", "anyOf": [ { - "$ref": "#/definitions/GithubOptions" - }, - { - "$ref": "#/definitions/GitlabOptions" - }, - { - "$ref": "#/definitions/S3Options" - }, - { - "$ref": "#/definitions/SpacesOptions" - }, - { - "$ref": "#/definitions/GenericServerOptions" - }, - { - "$ref": "#/definitions/CustomPublishOptions" - }, - { - "$ref": "#/definitions/KeygenOptions" - }, - { - "$ref": "#/definitions/SnapStoreOptions" - }, - { - "$ref": "#/definitions/BitbucketOptions" - }, - { + "type": "array", "items": { - "$ref": "#/definitions/AllPublishOptions" - }, - "type": "array" + "type": "string" + } }, { - "type": [ - "null", - "string" - ] + "type": "string" } - ], + ] + }, + "forceCodeSigning": { + "description": "Whether to fail if app will be not code signed.", + "type": "boolean" + }, + "electronUpdaterCompatibility": { + "description": "The [electron-updater compatibility](./auto-update.md#compatibility) semver range.", + "type": "string" + }, + "publish": { + "$ref": "#/definitions/Publish", "description": "Publisher configuration. See [Auto Update](./publish.md) for more information." }, + "detectUpdateChannel": { + "description": "Whether to infer update channel from application version pre-release components. e.g. if version `0.12.1-alpha.1`, channel will be set to `alpha`. Otherwise to `latest`.\nThis does *not* apply to github publishing, which will [never auto-detect the update channel](https://github.com/electron-userland/electron-builder/issues/8589).", + "default": true, + "type": "boolean" + }, + "generateUpdatesFilesForAllChannels": { + "description": "Please see [Building and Releasing using Channels](https://github.com/electron-userland/electron-builder/issues/1182#issuecomment-324947139).", + "default": false, + "type": "boolean" + }, "releaseInfo": { "$ref": "#/definitions/ReleaseInfo", "description": "The release info. Intended for command line usage:\n\n```\n-c.releaseInfo.releaseNotes=\"new features\"\n```" }, - "requestedExecutionLevel": { - "anyOf": [ - { - "enum": [ - "asInvoker", - "highestAvailable", - "requireAdministrator" - ], - "type": "string" - }, - { - "type": "null" - } - ], - "default": "asInvoker", - "description": "The [security level](https://msdn.microsoft.com/en-us/library/6ad1fshk.aspx#Anchor_9) at which the application requests to be executed.\nCannot be specified per target, allowed only in the `win`." + "cscLink": { + "type": "string" }, - "signAndEditExecutable": { - "default": true, - "description": "Whether to sign and add metadata to executable.\nMetadata includes information about the app name/description/version, publisher, copyright, etc.\nThis property also is responsible for adding the app icon and setting execution level.\n(Advanced option leveraging `rcedit`)", - "type": "boolean" + "cscKeyPassword": { + "type": "string" }, - "signExts": { + "defaultArch": { + "type": "string" + }, + "files": { + "description": "A [glob patterns](./file-patterns.md) relative to the [app directory](configuration.md#directories), which specifies which files to include when copying files to create the package.\n\nDefaults to:\n```json\n[\n\"**\\/*\",\n\"!**\\/node_modules/*\\/{CHANGELOG.md,README.md,README,readme.md,readme}\",\n\"!**\\/node_modules/*\\/{test,__tests__,tests,powered-test,example,examples}\",\n\"!**\\/node_modules/*.d.ts\",\n\"!**\\/node_modules/.bin\",\n\"!**\\/*.{iml,o,hprof,orig,pyc,pyo,rbc,swp,csproj,sln,xproj}\",\n\"!.editorconfig\",\n\"!**\\/._*\",\n\"!**\\/{.DS_Store,.git,.hg,.svn,CVS,RCS,SCCS,.gitignore,.gitattributes}\",\n\"!**\\/{__pycache__,thumbs.db,.flowconfig,.idea,.vs,.nyc_output}\",\n\"!**\\/{appveyor.yml,.travis.yml,circle.yml}\",\n\"!**\\/{npm-debug.log,yarn.lock,.yarn-integrity,.yarn-metadata.json}\"\n]\n```\n\nDevelopment dependencies are never copied in any case. You don't need to ignore it explicitly. Hidden files are not ignored by default, but all files that should be ignored, are ignored by default.\n\nDefault pattern \\`**\\/*\\` **is not added to your custom** if some of your patterns is not ignore (i.e. not starts with `!`). `package.json` and \\`**\\/node_modules/**\\/*` (only production dependencies will be copied) is added to your custom in any case. All default ignores are added in any case — you don't need to repeat it if you configure own patterns.\n\nMay be specified in the platform options (e.g. in the [mac](mac.md)).\n\nYou may also specify custom source and destination directories by using `FileSet` objects instead of simple glob patterns.\n\n```json\n[\n{\n\"from\": \"path/to/source\",\n\"to\": \"path/to/destination\",\n\"filter\": [\"**\\/*\", \"!foo/*.js\"]\n}\n]\n```\n\nYou can use [file macros](./file-patterns.md#file-macros) in the `from` and `to` fields as well. `from` and `to` can be files and you can use this to [rename](https://github.com/electron-userland/electron-builder/issues/1119) a file while packaging.", "anyOf": [ { + "$ref": "#/definitions/FileSet" + }, + { + "type": "array", "items": { - "type": "string" - }, - "type": "array" + "anyOf": [ + { + "$ref": "#/definitions/FileSet" + }, + { + "type": "string" + } + ] + } }, { - "type": "null" + "type": "string" } - ], - "default": null, - "description": "Explicit file name/extensions (`str.endsWith`) to also sign. Advanced option.\nSupports negative patterns, e.g. example that excludes `.appx` files: `[\"somefilename\", \".dll\", \"!.appx\"]`." + ] }, - "signtoolOptions": { + "extraResources": { + "description": "A [glob patterns](./file-patterns.md) relative to the project directory, when specified, copy the file or directory with matching names directly into the app's resources directory (`Contents/Resources` for MacOS, `resources` for Linux and Windows).\n\nFile patterns (and support for `from` and `to` fields) the same as for [files](#files).", "anyOf": [ { - "$ref": "#/definitions/WindowsSigntoolConfiguration" + "$ref": "#/definitions/FileSet" + }, + { + "type": "array", + "items": { + "anyOf": [ + { + "$ref": "#/definitions/FileSet" + }, + { + "type": "string" + } + ] + } }, { - "type": "null" + "type": "string" } - ], - "description": "Options for usage with signtool.exe\nCannot be used in conjunction with `azureSignOptions`, signing will default to Azure Trusted Signing" + ] }, - "target": { + "extraFiles": { + "description": "The same as [extraResources](#extraresources) but copy into the app's content directory (`Contents` for MacOS, root directory for Linux and Windows).", "anyOf": [ { - "$ref": "#/definitions/TargetConfiguration" + "$ref": "#/definitions/FileSet" }, { + "type": "array", "items": { "anyOf": [ { - "$ref": "#/definitions/TargetConfiguration" + "$ref": "#/definitions/FileSet" }, { "type": "string" } ] - }, - "type": "array" + } }, { - "type": [ - "null", - "string" - ] + "type": "string" } - ], - "default": "nsis", - "description": "The target package type: list of `nsis`, `nsis-web` (Web installer), `portable` ([portable]./nsis.md#portable) app without installation), `appx`, `msi`, `msi-wrapped`, `squirrel`, `7z`, `zip`, `tar.xz`, `tar.lz`, `tar.gz`, `tar.bz2`, `dir`.\nAppX package can be built only on Windows 10.\n\nTo use Squirrel.Windows please install `electron-builder-squirrel-windows` dependency." + ] + } + }, + "additionalProperties": false + }, + "LinuxDesktopFile": { + "description": "Example Spec: https://specifications.freedesktop.org/desktop-entry-spec/latest/example.html", + "type": "object", + "properties": { + "entry": { + "typeof": "function" }, - "verifyUpdateCodeSignature": { - "default": true, - "description": "Whether to verify the signature of an available update before installation.\nThe [publisher name](#publisherName) will be used for the signature verification.", - "type": "boolean" + "desktopActions": { + "typeof": "function" } }, - "type": "object" + "additionalProperties": false }, - "WindowsSigntoolConfiguration": { - "additionalProperties": false, + "DebOptions": { + "type": "object", "properties": { - "additionalCertificateFile": { - "description": "The path to an additional certificate file you want to add to the signature block.", - "type": [ - "null", - "string" - ] + "depends": { + "description": "Package dependencies.\nIf need to support Debian, `libappindicator1` should be removed, it is [deprecated in Debian](https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=895037).\nIf need to support KDE, `gconf2` and `gconf-service` should be removed as it's no longer used [by GNOME](https://packages.debian.org/bullseye/gconf2).", + "default": [ + "libgtk-3-0", + "libnotify4", + "libnss3", + "libxss1", + "libxtst6", + "xdg-utils", + "libatspi2.0-0", + "libuuid1", + "libsecret-1-0" + ], + "type": "array", + "items": { + "type": "string" + } }, - "certificateFile": { - "description": "The path to the *.pfx certificate you want to sign with. Please use it only if you cannot use env variable `CSC_LINK` (`WIN_CSC_LINK`) for some reason.\nPlease see [Code Signing](./code-signing.md).", - "type": [ - "null", - "string" - ] + "recommends": { + "description": "The [recommended package dependencies](https://www.debian.org/doc/debian-policy/ch-relationships.html#s-binarydeps).", + "default": [ + "libappindicator3-1" + ], + "type": "array", + "items": { + "type": "string" + } }, - "certificatePassword": { - "description": "The password to the certificate provided in `certificateFile`. Please use it only if you cannot use env variable `CSC_KEY_PASSWORD` (`WIN_CSC_KEY_PASSWORD`) for some reason.\nPlease see [Code Signing](./code-signing.md).", - "type": [ - "null", - "string" - ] + "packageCategory": { + "description": "The [package category](https://www.debian.org/doc/debian-policy/ch-controlfields.html#s-f-Section).", + "type": "string" }, - "certificateSha1": { - "description": "The SHA1 hash of the signing certificate. The SHA1 hash is commonly specified when multiple certificates satisfy the criteria specified by the remaining switches. Works only on Windows (or on macOS if [Parallels Desktop](https://www.parallels.com/products/desktop/) Windows 10 virtual machines exits).", - "type": [ - "null", - "string" - ] + "priority": { + "description": "The [Priority](https://www.debian.org/doc/debian-policy/ch-controlfields.html#s-f-Priority) attribute.", + "type": "string" }, - "certificateSubjectName": { - "description": "The name of the subject of the signing certificate, which is often labeled with the field name `issued to`. Required only for EV Code Signing and works only on Windows (or on macOS if [Parallels Desktop](https://www.parallels.com/products/desktop/) Windows 10 virtual machines exits).", - "type": [ - "null", - "string" - ] + "compression": { + "description": "The compression type.", + "default": "xz", + "enum": [ + "bzip2", + "gz", + "lzo", + "xz" + ], + "type": "string" }, - "publisherName": { - "anyOf": [ - { - "items": { - "type": "string" - }, - "type": "array" - }, - { - "type": [ - "null", - "string" - ] - } + "icon": { + "type": "string" + }, + "packageName": { + "description": "The name of the package.", + "type": "string" + }, + "vendor": { + "type": "string" + }, + "maintainer": { + "type": "string" + }, + "afterInstall": { + "description": "File path to script to be passed to FPM for `--after-install` arg.", + "type": "string" + }, + "afterRemove": { + "description": "File path to script to be passed to FPM for `--after-remove` arg.", + "type": "string" + }, + "appArmorProfile": { + "description": "File path to custom AppArmor profile (Ubuntu 24+)", + "type": "string" + }, + "fpm": { + "description": "*Advanced only* The [fpm](https://fpm.readthedocs.io/en/latest/cli-reference.html) options.\n\nExample: `[\"--before-install=build/deb-preinstall.sh\", \"--after-upgrade=build/deb-postinstall.sh\"]`", + "type": "array", + "items": { + "type": "string" + } + }, + "synopsis": { + "description": "The [short description](https://www.debian.org/doc/debian-policy/ch-controlfields.html#s-f-Description).", + "type": "string" + }, + "description": { + "description": "As [description](./configuration.md#description) from application package.json, but allows you to specify different for Linux.", + "type": "string" + }, + "category": { + "description": "The [application category](https://specifications.freedesktop.org/menu-spec/latest/apa.html#main-category-registry).", + "type": "string" + }, + "mimeTypes": { + "description": "The mime types in addition to specified in the file associations. Use it if you don't want to register a new mime type, but reuse existing.", + "type": "array", + "items": { + "type": "string" + } + }, + "desktop": { + "$ref": "#/definitions/LinuxDesktopFile", + "description": "The [Desktop file](https://developer.gnome.org/documentation/guidelines/maintainer/integrating.html#desktop-files)" + }, + "executableArgs": { + "description": "The executable parameters. Pass to executableName", + "type": "array", + "items": { + "type": "string" + } + }, + "artifactName": { + "description": "The [artifact file name template](./configuration.md#artifact-file-name-template).", + "type": "string" + }, + "publish": { + "$ref": "#/definitions/Publish" + } + }, + "additionalProperties": false + }, + "SnapOptions": { + "type": "object", + "properties": { + "base": { + "description": "A snap of type base to be used as the execution environment for this snap. Examples: `core`, `core18`, `core20`, `core22`. Defaults to `core20`", + "type": "string" + }, + "confinement": { + "description": "The type of [confinement](https://snapcraft.io/docs/reference/confinement) supported by the snap.", + "default": "strict", + "enum": [ + "classic", + "devmode", + "strict" ], - "description": "[The publisher name](https://github.com/electron-userland/electron-builder/issues/1187#issuecomment-278972073), exactly as in your code signed certificate. Several names can be provided.\nDefaults to common name from your code signing certificate." + "type": "string" }, - "rfc3161TimeStampServer": { - "default": "http://timestamp.digicert.com", - "description": "The URL of the RFC 3161 time stamp server.", - "type": [ - "null", - "string" - ] + "environment": { + "additionalProperties": { + "type": "string" + }, + "type": "object" }, - "sign": { - "anyOf": [ - { - "typeof": "function" - }, - { - "type": [ - "null", - "string" - ] - } + "summary": { + "description": "The 78 character long summary. Defaults to [productName](./configuration.md#productName).", + "type": "string" + }, + "grade": { + "description": "The quality grade of the snap. It can be either `devel` (i.e. a development version of the snap, so not to be published to the “stable” or “candidate” channels) or “stable” (i.e. a stable release or release candidate, which can be released to all channels).", + "default": "stable", + "enum": [ + "devel", + "stable" ], - "description": "The custom function (or path to file or module id) to sign Windows executables" + "type": "string" }, - "signingHashAlgorithms": { + "assumes": { + "description": "The list of features that must be supported by the core in order for this snap to install.", "anyOf": [ { + "type": "array", "items": { - "enum": [ - "sha1", - "sha256" - ], "type": "string" - }, - "type": "array" + } }, { - "type": "null" + "type": "string" } - ], - "default": "['sha1', 'sha256']", - "description": "Array of signing algorithms used. For AppX `sha256` is always used." - }, - "timeStampServer": { - "default": "http://timestamp.digicert.com", - "description": "The URL of the time stamp server.", - "type": [ - "null", - "string" ] - } - }, - "type": "object" - } - }, - "properties": { - "afterAllArtifactBuild": { - "anyOf": [ - { - "typeof": "function" }, - { - "type": [ - "null", - "string" - ] - } - ], - "description": "The function (or path to file or module id) to be run after all artifacts are built.\n\n```typescript\n(buildResult: BuildResult): Promise> | Array\n```\n\nConfiguration in the same way as `afterPack` (see above).\n\n!!! example \"myAfterAllArtifactBuild.js\"\n```js\nexports.default = function () {\n // you can return additional files to publish\n return [\"/path/to/additional/result/file\"]\n}\n```" - }, - "afterExtract": { - "anyOf": [ - { - "typeof": "function" + "buildPackages": { + "description": "The list of debian packages needs to be installed for building this snap.", + "type": "array", + "items": { + "type": "string" + } }, - { - "type": [ - "null", - "string" - ] - } - ], - "description": "The function (or path to file or module id) to be [run after the prebuilt Electron binary has been extracted to the output directory](#afterextract)\nSame setup as {@link beforePack}" - }, - "afterPack": { - "anyOf": [ - { - "typeof": "function" + "stagePackages": { + "description": "The list of Ubuntu packages to use that are needed to support the `app` part creation. Like `depends` for `deb`.\nDefaults to `[\"libnspr4\", \"libnss3\", \"libxss1\", \"libappindicator3-1\", \"libsecret-1-0\"]`.\n\nIf list contains `default`, it will be replaced to default list, so, `[\"default\", \"foo\"]` can be used to add custom package `foo` in addition to defaults.", + "type": "array", + "items": { + "type": "string" + } }, - { - "type": [ - "null", - "string" - ] - } - ], - "description": "The function (or path to file or module id) to be [run after pack](#afterpack) (but before pack into distributable format and sign).\nSame setup as {@link beforePack}" - }, - "afterSign": { - "anyOf": [ - { - "typeof": "function" + "hooks": { + "description": "The [hooks](https://docs.snapcraft.io/build-snaps/hooks) directory, relative to `build` (build resources directory).", + "default": "build/snap-hooks", + "type": "string" }, - { - "type": [ - "null", - "string" + "plugs": { + "description": "The list of [plugs](https://snapcraft.io/docs/reference/interfaces).\nDefaults to `[\"desktop\", \"desktop-legacy\", \"home\", \"x11\", \"wayland\", \"unity7\", \"browser-support\", \"network\", \"gsettings\", \"audio-playback\", \"pulseaudio\", \"opengl\"]`.\n\nIf list contains `default`, it will be replaced to default list, so, `[\"default\", \"foo\"]` can be used to add custom plug `foo` in addition to defaults.\n\nAdditional attributes can be specified using object instead of just name of plug:\n```\n[\n {\n \"browser-sandbox\": {\n \"interface\": \"browser-support\",\n \"allow-sandbox\": true\n },\n },\n \"another-simple-plug-name\"\n]\n```", + "anyOf": [ + { + "$ref": "#/definitions/PlugDescriptor" + }, + { + "type": "array", + "items": { + "anyOf": [ + { + "$ref": "#/definitions/PlugDescriptor" + }, + { + "type": "string" + } + ] + } + } ] - } - ], - "description": "The function (or path to file or module id) to be [run after pack and sign](#aftersign) (but before pack into distributable format).\nSame setup as {@link beforePack}" - }, - "apk": { - "anyOf": [ - { - "$ref": "#/definitions/LinuxTargetSpecificOptions" }, - { - "type": "null" - } - ] - }, - "appId": { - "default": "com.electron.${name}", - "description": "The application id. Used as [CFBundleIdentifier](https://developer.apple.com/library/ios/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html#//apple_ref/doc/uid/20001431-102070) for MacOS and as\n[Application User Model ID](https://msdn.microsoft.com/en-us/library/windows/desktop/dd378459(v=vs.85).aspx) for Windows (NSIS target only, Squirrel.Windows not supported). It is strongly recommended that an explicit ID is set.", - "type": [ - "null", - "string" - ] - }, - "appImage": { - "anyOf": [ - { - "$ref": "#/definitions/AppImageOptions" + "slots": { + "description": "The list of [slots](https://snapcraft.io/docs/reference/interfaces).\n\nAdditional attributes can be specified using object instead of just name of slot:\n```\n[\n {\n \"mpris\": {\n \"name\": \"chromium\"\n },\n }\n]\n\nIn case you want your application to be a compliant MPris player, you will need to definie\nThe mpris slot with \"chromium\" name.\nThis electron has it [hardcoded](https://source.chromium.org/chromium/chromium/src/+/master:components/system_media_controls/linux/system_media_controls_linux.cc;l=51;bpv=0;bpt=1),\nand we need to pass this name so snap [will allow it](https://forum.snapcraft.io/t/unable-to-use-mpris-interface/15360/7) in strict confinement.", + "anyOf": [ + { + "$ref": "#/definitions/PlugDescriptor" + }, + { + "type": "array", + "items": { + "anyOf": [ + { + "$ref": "#/definitions/SlotDescriptor" + }, + { + "type": "string" + } + ] + } + } + ] }, - { - "type": "null" - } - ], - "description": "AppImage options." - }, - "appx": { - "anyOf": [ - { - "$ref": "#/definitions/AppXOptions" + "after": { + "description": "Specifies any [parts](https://snapcraft.io/docs/reference/parts) that should be built before this part.\nDefaults to `[\"desktop-gtk2\"\"]`.\n\nIf list contains `default`, it will be replaced to default list, so, `[\"default\", \"foo\"]` can be used to add custom parts `foo` in addition to defaults.", + "type": "array", + "items": { + "type": "string" + } }, - { - "type": "null" - } - ] - }, - "appxManifestCreated": { - "anyOf": [ - { - "typeof": "function" + "useTemplateApp": { + "description": "Whether to use template snap. Defaults to `true` if `stagePackages` not specified.", + "type": "boolean" }, - { - "type": [ - "null", - "string" - ] - } - ], - "description": "The function (or path to file or module id) to be run after Appx manifest created on disk - not packed into .appx package yet." - }, - "artifactBuildCompleted": { - "anyOf": [ - { - "typeof": "function" + "autoStart": { + "description": "Whether or not the snap should automatically start on login.", + "default": false, + "type": "boolean" }, - { - "type": [ - "null", - "string" - ] - } - ], - "description": "The function (or path to file or module id) to be run on artifact build completed.\nSame setup as {@link beforePack}" - }, - "artifactBuildStarted": { - "anyOf": [ - { + "layout": { "typeof": "function" }, - { - "type": [ - "null", - "string" - ] - } - ], - "description": "The function (or path to file or module id) to be run on artifact build start.\nSame setup as {@link beforePack}" - }, - "artifactName": { - "description": "The [artifact file name template](./configuration.md#artifact-file-name-template). Defaults to `${productName}-${version}.${ext}` (some target can have other defaults, see corresponding options).", - "type": [ - "null", - "string" - ] - }, - "asar": { - "anyOf": [ - { - "$ref": "#/definitions/AsarOptions" - }, - { - "type": [ - "null", - "boolean" - ] - } - ], - "default": true, - "description": "Whether to package the application's source code into an archive, using [Electron's archive format](http://electron.atom.io/docs/tutorial/application-packaging/).\n\nNode modules, that must be unpacked, will be detected automatically, you don't need to explicitly set [asarUnpack](#asarUnpack) - please file an issue if this doesn't work." - }, - "asarUnpack": { - "anyOf": [ - { + "appPartStage": { + "description": "Specifies which files from the app part to stage and which to exclude. Individual files, directories, wildcards, globstars, and exclusions are accepted. See [Snapcraft filesets](https://snapcraft.io/docs/snapcraft-filesets) to learn more about the format.\n\nThe defaults can be found in [snap.ts](https://github.com/electron-userland/electron-builder/blob/master/packages/app-builder-lib/templates/snap/snapcraft.yaml#L29).", + "type": "array", "items": { "type": "string" - }, - "type": "array" - }, - { - "type": [ - "null", - "string" - ] - } - ], - "description": "A [glob patterns](./file-patterns.md) relative to the [app directory](#directories), which specifies which files to unpack when creating the [asar](http://electron.atom.io/docs/tutorial/application-packaging/) archive." - }, - "beforeBuild": { - "anyOf": [ - { - "typeof": "function" + } }, - { - "type": [ - "null", - "string" - ] - } - ], - "description": "The function (or path to file or module id) to be run before dependencies are installed or rebuilt. Works when `npmRebuild` is set to `true`. Resolving to `false` will skip dependencies install or rebuild.\n\nIf provided and `node_modules` are missing, it will not invoke production dependencies check." - }, - "beforePack": { - "anyOf": [ - { - "typeof": "function" + "title": { + "description": "An optional title for the snap, may contain uppercase letters and spaces. Defaults to `productName`. See [snap format documentation](https://snapcraft.io/docs/snap-format).", + "type": "string" }, - { - "type": [ - "null", - "string" - ] - } - ], - "description": "The function (or path to file or module id) to be run before pack.\n\n```typescript\n(context: BeforePackContext): Promise | any\n```\n\n!!! example \"As function\"\n\n ```js\n beforePack: async (context) => {\n // your code\n }\n ```\n\nBecause in a configuration file you cannot use JavaScript, can be specified as a path to file or module id. Function must be exported as default export.\n\n```json\n\"build\": {\n\"beforePack\": \"./myBeforePackHook.js\"\n}\n```\n\nFile `myBeforePackHook.js` in the project root directory:\n\n!!! example \"myBeforePackHook.js\"\n ```js\n exports.default = async function(context) {\n // your custom code\n }\n ```" - }, - "buildDependenciesFromSource": { - "default": false, - "description": "Whether to build the application native dependencies from source.", - "type": "boolean" - }, - "buildNumber": { - "description": "The build number. Maps to the `--iteration` flag for builds using FPM on Linux.\nIf not defined, then it will fallback to `BUILD_NUMBER` or `TRAVIS_BUILD_NUMBER` or `APPVEYOR_BUILD_NUMBER` or `CIRCLE_BUILD_NUM` or `BUILD_BUILDNUMBER` or `CI_PIPELINE_IID` env.", - "type": [ - "null", - "string" - ] - }, - "buildVersion": { - "description": "The build version. Maps to the `CFBundleVersion` on macOS, and `FileVersion` metadata property on Windows. Defaults to the `version`.\nIf `buildVersion` is not defined and `buildNumber` (or one of the `buildNumber` envs) is defined, it will be used as a build version (`version.buildNumber`).", - "type": [ - "null", - "string" - ] - }, - "compression": { - "anyOf": [ - { + "compression": { + "description": "Sets the compression type for the snap. Can be xz, lzo, or null.", "enum": [ - "maximum", - "normal", - "store" + "lzo", + "xz" ], "type": "string" }, - { - "type": "null" - } - ], - "default": "normal", - "description": "The compression level. If you want to rapidly test build, `store` can reduce build time significantly. `maximum` doesn't lead to noticeable size difference, but increase build time." - }, - "concurrency": { - "anyOf": [ - { - "$ref": "#/definitions/Concurrency" + "allowNativeWayland": { + "description": "Allow running the program with native wayland support with --ozone-platform=wayland.\nDisabled by default because of this issue in older Electron/Snap versions: https://github.com/electron-userland/electron-builder/issues/4007", + "type": "boolean" }, - { - "type": "null" - } - ], - "description": "[Experimental] Configuration for concurrent builds." - }, - "copyright": { - "default": "Copyright © year ${author}", - "description": "The human-readable copyright line for the app.", - "type": [ - "null", - "string" - ] - }, - "cscKeyPassword": { - "type": [ - "null", - "string" - ] - }, - "cscLink": { - "type": [ - "null", - "string" - ] - }, - "deb": { - "anyOf": [ - { - "$ref": "#/definitions/DebOptions" + "synopsis": { + "description": "The [short description](https://www.debian.org/doc/debian-policy/ch-controlfields.html#s-f-Description).", + "type": "string" }, - { - "type": "null" - } - ], - "description": "Debian package options." - }, - "defaultArch": { - "type": "string" - }, - "detectUpdateChannel": { - "default": true, - "description": "Whether to infer update channel from application version pre-release components. e.g. if version `0.12.1-alpha.1`, channel will be set to `alpha`. Otherwise to `latest`.\nThis does *not* apply to github publishing, which will [never auto-detect the update channel](https://github.com/electron-userland/electron-builder/issues/8589).", - "type": "boolean" - }, - "directories": { - "anyOf": [ - { - "$ref": "#/definitions/MetadataDirectories" + "description": { + "description": "As [description](./configuration.md#description) from application package.json, but allows you to specify different for Linux.", + "type": "string" }, - { - "type": "null" - } - ], - "description": "Directories for build resources" - }, - "disableDefaultIgnoredFiles": { - "default": false, - "description": "Whether to exclude all default ignored files(https://www.electron.build/contents#files) and options. Defaults to `false`.", - "type": [ - "null", - "boolean" - ] - }, - "disableSanityCheckAsar": { - "default": false, - "description": "Whether to disable sanity check asar package (useful for custom electron forks that implement their own encrypted integrity validation)", - "type": "boolean" - }, - "dmg": { - "anyOf": [ - { - "$ref": "#/definitions/DmgOptions" + "category": { + "description": "The [application category](https://specifications.freedesktop.org/menu-spec/latest/apa.html#main-category-registry).", + "type": "string" }, - { - "type": "null" - } - ], - "description": "macOS DMG options." - }, - "downloadAlternateFFmpeg": { - "description": "Whether to download the alternate FFmpeg library from Electron's release assets and replace the default FFmpeg library prior to signing", - "type": "boolean" - }, - "electronBranding": { - "$ref": "#/definitions/ElectronBrandingOptions", - "description": "The branding used by Electron's distributables. This is needed if a fork has modified Electron's BRANDING.json file." - }, - "electronCompile": { - "description": "Whether to use [electron-compile](http://github.com/electron/electron-compile) to compile app. Defaults to `true` if `electron-compile` in the dependencies. And `false` if in the `devDependencies` or doesn't specified.", - "type": "boolean" - }, - "electronDist": { - "anyOf": [ - { - "typeof": "function" + "mimeTypes": { + "description": "The mime types in addition to specified in the file associations. Use it if you don't want to register a new mime type, but reuse existing.", + "type": "array", + "items": { + "type": "string" + } }, - { - "type": [ - "null", - "string" - ] - } - ], - "description": "The function (or path to file or module id) to be run when staging the electron artifact environment.\nReturns the path to custom Electron build (e.g. `~/electron/out/R`) or folder of electron zips.\n\nZip files must follow the pattern `electron-v${version}-${platformName}-${arch}.zip`, otherwise it will be assumed to be an unpacked Electron app directory" - }, - "electronDownload": { - "$ref": "#/definitions/ElectronDownloadOptions", - "description": "The [electron-download](https://github.com/electron-userland/electron-download#usage) options." - }, - "electronFuses": { - "anyOf": [ - { - "$ref": "#/definitions/FuseOptionsV1" + "desktop": { + "$ref": "#/definitions/LinuxDesktopFile", + "description": "The [Desktop file](https://developer.gnome.org/documentation/guidelines/maintainer/integrating.html#desktop-files)" }, - { - "type": "null" - } - ], - "description": "Options to pass to `@electron/fuses`\nRef: https://github.com/electron/fuses" - }, - "electronLanguages": { - "anyOf": [ - { + "executableArgs": { + "description": "The executable parameters. Pass to executableName", + "type": "array", "items": { "type": "string" - }, - "type": "array" + } }, - { + "artifactName": { + "description": "The [artifact file name template](./configuration.md#artifact-file-name-template).", "type": "string" + }, + "publish": { + "$ref": "#/definitions/Publish" } - ], - "description": "The electron locales to keep. By default, all Electron locales used as-is." - }, - "electronUpdaterCompatibility": { - "description": "The [electron-updater compatibility](./auto-update.md#compatibility) semver range.", - "type": [ - "null", - "string" - ] + }, + "additionalProperties": false }, - "electronVersion": { - "description": "The version of electron you are packaging for. Defaults to version of `electron`, `electron-prebuilt` or `electron-prebuilt-compile` dependency.", - "type": [ - "null", - "string" - ] + "PlugDescriptor": { + "type": "object", + "additionalProperties": { + "type": "object" + } }, - "executableName": { - "description": "The executable name. Defaults to `productName`\nNote: Except for Linux, where this would constitute a breaking change in previous behavior and lead to both invalid executable names and Desktop files. Ref comments in: https://github.com/electron-userland/electron-builder/pull/9068", - "type": [ - "null", - "string" - ] + "SlotDescriptor": { + "type": "object", + "additionalProperties": { + "typeof": "function" + } }, - "extends": { - "anyOf": [ - { + "AppImageOptions": { + "type": "object", + "properties": { + "license": { + "description": "The path to EULA license file. Defaults to `license.txt` or `eula.txt` (or uppercase variants). Only plain text is supported.", + "type": "string" + }, + "synopsis": { + "description": "The [short description](https://www.debian.org/doc/debian-policy/ch-controlfields.html#s-f-Description).", + "type": "string" + }, + "description": { + "description": "As [description](./configuration.md#description) from application package.json, but allows you to specify different for Linux.", + "type": "string" + }, + "category": { + "description": "The [application category](https://specifications.freedesktop.org/menu-spec/latest/apa.html#main-category-registry).", + "type": "string" + }, + "mimeTypes": { + "description": "The mime types in addition to specified in the file associations. Use it if you don't want to register a new mime type, but reuse existing.", + "type": "array", "items": { "type": "string" - }, - "type": "array" + } }, - { - "type": [ - "null", - "string" - ] - } - ], - "description": "The name of a built-in configuration preset (currently, only `react-cra` is supported) or any number of paths to config files (relative to project dir).\n\nThe latter allows to mixin a config from multiple other configs, as if you `Object.assign` them, but properly combine `files` glob patterns.\n\nIf `react-scripts` in the app dependencies, `react-cra` will be set automatically. Set to `null` to disable automatic detection." - }, - "extraFiles": { - "anyOf": [ - { - "$ref": "#/definitions/FileSet" + "desktop": { + "$ref": "#/definitions/LinuxDesktopFile", + "description": "The [Desktop file](https://developer.gnome.org/documentation/guidelines/maintainer/integrating.html#desktop-files)" }, - { + "executableArgs": { + "description": "The executable parameters. Pass to executableName", + "type": "array", "items": { - "anyOf": [ - { - "$ref": "#/definitions/FileSet" - }, - { - "type": "string" - } - ] - }, - "type": "array" + "type": "string" + } }, - { - "type": [ - "null", - "string" - ] + "artifactName": { + "description": "The [artifact file name template](./configuration.md#artifact-file-name-template).", + "type": "string" + }, + "publish": { + "$ref": "#/definitions/Publish" } - ], - "description": "The same as [extraResources](#extraresources) but copy into the app's content directory (`Contents` for MacOS, root directory for Linux and Windows)." - }, - "extraMetadata": { - "description": "Inject properties to `package.json`." + }, + "additionalProperties": false }, - "extraResources": { - "anyOf": [ - { - "$ref": "#/definitions/FileSet" + "FlatpakOptions": { + "type": "object", + "properties": { + "license": { + "description": "The path to EULA license file. Defaults to `license.txt` or `eula.txt` (or uppercase variants). Only plain text is supported.", + "type": "string" + }, + "runtime": { + "description": "The name of the runtime that the application uses. Defaults to `org.freedesktop.Platform`.\n\nSee [flatpak manifest documentation](https://docs.flatpak.org/en/latest/flatpak-builder-command-reference.html#flatpak-manifest).", + "type": "string" + }, + "runtimeVersion": { + "description": "The version of the runtime that the application uses. Defaults to `20.08`.\n\nSee [flatpak manifest documentation](https://docs.flatpak.org/en/latest/flatpak-builder-command-reference.html#flatpak-manifest).", + "type": "string" + }, + "sdk": { + "description": "The name of the development runtime that the application builds with. Defaults to `org.freedesktop.Sdk`.\n\nSee [flatpak manifest documentation](https://docs.flatpak.org/en/latest/flatpak-builder-command-reference.html#flatpak-manifest).", + "type": "string" + }, + "base": { + "description": "Start with the files from the specified application. This can be used to create applications that extend another application.\nDefaults to [org.electronjs.Electron2.BaseApp](https://github.com/flathub/org.electronjs.Electron2.BaseApp).\n\nSee [flatpak manifest documentation](https://docs.flatpak.org/en/latest/flatpak-builder-command-reference.html#flatpak-manifest).", + "type": "string" + }, + "baseVersion": { + "description": "Use this specific version of the application specified in base. Defaults to `20.08`.\n\nSee [flatpak manifest documentation](https://docs.flatpak.org/en/latest/flatpak-builder-command-reference.html#flatpak-manifest).", + "type": "string" }, - { + "branch": { + "description": "The branch to use when exporting the application. Defaults to `master`.\n\nSee [flatpak manifest documentation](https://docs.flatpak.org/en/latest/flatpak-builder-command-reference.html#flatpak-manifest).", + "type": "string" + }, + "finishArgs": { + "description": "An array of arguments passed to the flatpak build-finish command. Defaults to:\n```json\n[\n // Wayland/X11 Rendering\n \"--socket=wayland\",\n \"--socket=x11\",\n \"--share=ipc\",\n // Open GL\n \"--device=dri\",\n // Audio output\n \"--socket=pulseaudio\",\n // Read/write home directory access\n \"--filesystem=home\",\n // Allow communication with network\n \"--share=network\",\n // System notifications with libnotify\n \"--talk-name=org.freedesktop.Notifications\",\n]\n```\n\nSee [flatpak manifest documentation](https://docs.flatpak.org/en/latest/flatpak-builder-command-reference.html#flatpak-manifest).", + "type": "array", "items": { - "anyOf": [ + "type": "string" + } + }, + "modules": { + "description": "An array of objects specifying the modules to be built in order.\n\nSee [flatpak manifest documentation](https://docs.flatpak.org/en/latest/flatpak-builder-command-reference.html#flatpak-manifest).", + "type": "array", + "items": {} + }, + "files": { + "description": "Files to copy directly into the app. Should be a list of [source, dest] tuples. Source should be a relative/absolute path to a file/directory to copy into the flatpak, and dest should be the path inside the app install prefix (e.g. /share/applications/).\n\nSee [@malept/flatpak-bundler documentation](https://github.com/malept/flatpak-bundler#build-options).", + "type": "array", + "items": { + "type": "array", + "items": [ { - "$ref": "#/definitions/FileSet" + "type": "string" }, { "type": "string" } - ] - }, - "type": "array" - }, - { - "type": [ - "null", - "string" - ] - } - ], - "description": "A [glob patterns](./file-patterns.md) relative to the project directory, when specified, copy the file or directory with matching names directly into the app's resources directory (`Contents/Resources` for MacOS, `resources` for Linux and Windows).\n\nFile patterns (and support for `from` and `to` fields) the same as for [files](#files)." - }, - "fileAssociations": { - "anyOf": [ - { - "$ref": "#/definitions/FileAssociation" - }, - { - "items": { - "$ref": "#/definitions/FileAssociation" - }, - "type": "array" - } - ], - "description": "The file associations." - }, - "files": { - "anyOf": [ - { - "$ref": "#/definitions/FileSet" + ], + "minItems": 2, + "maxItems": 2 + } }, - { + "symlinks": { + "description": "Symlinks to create in the app files. Should be a list of [target, location] symlink tuples. Target can be either a relative or absolute path inside the app install prefix, and location should be a absolute path inside the prefix to create the symlink at.\n\nSee [@malept/flatpak-bundler documentation](https://github.com/malept/flatpak-bundler#build-options).", + "type": "array", "items": { - "anyOf": [ + "type": "array", + "items": [ { - "$ref": "#/definitions/FileSet" + "type": "string" }, { "type": "string" } - ] - }, - "type": "array" - }, - { - "type": [ - "null", - "string" - ] - } - ], - "description": "A [glob patterns](./file-patterns.md) relative to the [app directory](configuration.md#directories), which specifies which files to include when copying files to create the package.\n\nDefaults to:\n```json\n[\n\"**\\/*\",\n\"!**\\/node_modules/*\\/{CHANGELOG.md,README.md,README,readme.md,readme}\",\n\"!**\\/node_modules/*\\/{test,__tests__,tests,powered-test,example,examples}\",\n\"!**\\/node_modules/*.d.ts\",\n\"!**\\/node_modules/.bin\",\n\"!**\\/*.{iml,o,hprof,orig,pyc,pyo,rbc,swp,csproj,sln,xproj}\",\n\"!.editorconfig\",\n\"!**\\/._*\",\n\"!**\\/{.DS_Store,.git,.hg,.svn,CVS,RCS,SCCS,.gitignore,.gitattributes}\",\n\"!**\\/{__pycache__,thumbs.db,.flowconfig,.idea,.vs,.nyc_output}\",\n\"!**\\/{appveyor.yml,.travis.yml,circle.yml}\",\n\"!**\\/{npm-debug.log,yarn.lock,.yarn-integrity,.yarn-metadata.json}\"\n]\n```\n\nDevelopment dependencies are never copied in any case. You don't need to ignore it explicitly. Hidden files are not ignored by default, but all files that should be ignored, are ignored by default.\n\nDefault pattern \\`**\\/*\\` **is not added to your custom** if some of your patterns is not ignore (i.e. not starts with `!`). `package.json` and \\`**\\/node_modules/**\\/*` (only production dependencies will be copied) is added to your custom in any case. All default ignores are added in any case — you don't need to repeat it if you configure own patterns.\n\nMay be specified in the platform options (e.g. in the [mac](mac.md)).\n\nYou may also specify custom source and destination directories by using `FileSet` objects instead of simple glob patterns.\n\n```json\n[\n{\n\"from\": \"path/to/source\",\n\"to\": \"path/to/destination\",\n\"filter\": [\"**\\/*\", \"!foo/*.js\"]\n}\n]\n```\n\nYou can use [file macros](./file-patterns.md#file-macros) in the `from` and `to` fields as well. `from` and `to` can be files and you can use this to [rename](https://github.com/electron-userland/electron-builder/issues/1119) a file while packaging." - }, - "flatpak": { - "anyOf": [ - { - "$ref": "#/definitions/FlatpakOptions" - }, - { - "type": "null" - } - ], - "description": "Flatpak options." - }, - "forceCodeSigning": { - "default": false, - "description": "Whether to fail if the application is not signed (to prevent unsigned app if code signing configuration is not correct).", - "type": "boolean" - }, - "framework": { - "description": "The framework name. One of `electron`, `proton`, `libui`. Defaults to `electron`.", - "type": [ - "null", - "string" - ] - }, - "freebsd": { - "anyOf": [ - { - "$ref": "#/definitions/LinuxTargetSpecificOptions" - }, - { - "type": "null" - } - ] - }, - "generateUpdatesFilesForAllChannels": { - "default": false, - "description": "Please see [Building and Releasing using Channels](https://github.com/electron-userland/electron-builder/issues/1182#issuecomment-324947139).", - "type": "boolean" - }, - "icon": { - "type": [ - "null", - "string" - ] - }, - "includePdb": { - "default": false, - "description": "Whether to include PDB files.", - "type": "boolean" - }, - "launchUiVersion": { - "description": "*libui-based frameworks only* The version of LaunchUI you are packaging for. Applicable for Windows only. Defaults to version suitable for used framework version.", - "type": [ - "null", - "string", - "boolean" - ] - }, - "linux": { - "anyOf": [ - { - "$ref": "#/definitions/LinuxConfiguration" - }, - { - "type": "null" - } - ], - "description": "Options related to how build Linux targets." - }, - "mac": { - "anyOf": [ - { - "$ref": "#/definitions/MacConfiguration" - }, - { - "type": "null" - } - ], - "description": "Options related to how build macOS targets." - }, - "mas": { - "anyOf": [ - { - "$ref": "#/definitions/MasConfiguration" - }, - { - "type": "null" - } - ], - "description": "MAS (Mac Application Store) options." - }, - "masDev": { - "anyOf": [ - { - "$ref": "#/definitions/MasConfiguration" + ], + "minItems": 2, + "maxItems": 2 + } }, - { - "type": "null" - } - ], - "description": "MAS (Mac Application Store) development options (`mas-dev` target)." - }, - "msi": { - "anyOf": [ - { - "$ref": "#/definitions/MsiOptions" + "useWaylandFlags": { + "description": "Whether to enable the Wayland specific flags (`--enable-features=UseOzonePlatform --ozone-platform=wayland`) in the wrapper script. These flags are only available starting with Electron version 12. Defaults to `false`.", + "type": "boolean" }, - { - "type": "null" - } - ] - }, - "msiProjectCreated": { - "anyOf": [ - { - "typeof": "function" + "synopsis": { + "description": "The [short description](https://www.debian.org/doc/debian-policy/ch-controlfields.html#s-f-Description).", + "type": "string" }, - { - "type": [ - "null", - "string" - ] - } - ], - "description": "The function (or path to file or module id) to be run after MSI project created on disk - not packed into .msi package yet." - }, - "msiWrapped": { - "anyOf": [ - { - "$ref": "#/definitions/MsiWrappedOptions" + "description": { + "description": "As [description](./configuration.md#description) from application package.json, but allows you to specify different for Linux.", + "type": "string" }, - { - "type": "null" - } - ] - }, - "nativeRebuilder": { - "anyOf": [ - { - "enum": [ - "legacy", - "parallel", - "sequential" - ], + "category": { + "description": "The [application category](https://specifications.freedesktop.org/menu-spec/latest/apa.html#main-category-registry).", "type": "string" }, - { - "type": "null" - } - ], - "default": "sequential", - "description": "Use `legacy` app-builder binary for installing native dependencies, or `@electron/rebuild` in `sequential` or `parallel` compilation modes." - }, - "nodeGypRebuild": { - "default": false, - "description": "Whether to execute `node-gyp rebuild` before starting to package the app.\n\nDon't [use](https://github.com/electron-userland/electron-builder/issues/683#issuecomment-241214075) [npm](http://electron.atom.io/docs/tutorial/using-native-node-modules/#using-npm) (neither `.npmrc`) for configuring electron headers. Use `electron-builder node-gyp-rebuild` instead.", - "type": "boolean" - }, - "nodeVersion": { - "description": "*libui-based frameworks only* The version of NodeJS you are packaging for.\nYou can set it to `current` to set the Node.js version that you use to run.", - "type": [ - "null", - "string" - ] - }, - "npmArgs": { - "anyOf": [ - { + "mimeTypes": { + "description": "The mime types in addition to specified in the file associations. Use it if you don't want to register a new mime type, but reuse existing.", + "type": "array", "items": { "type": "string" - }, - "type": "array" + } }, - { - "type": [ - "null", - "string" - ] - } - ], - "description": "Additional command line arguments to use when installing app native deps." - }, - "npmRebuild": { - "default": true, - "description": "Whether to [rebuild](https://docs.npmjs.com/cli/rebuild) native dependencies before starting to package the app.", - "type": "boolean" - }, - "nsis": { - "anyOf": [ - { - "$ref": "#/definitions/NsisOptions" + "desktop": { + "$ref": "#/definitions/LinuxDesktopFile", + "description": "The [Desktop file](https://developer.gnome.org/documentation/guidelines/maintainer/integrating.html#desktop-files)" }, - { - "type": "null" - } - ] - }, - "nsisWeb": { - "anyOf": [ - { - "$ref": "#/definitions/NsisWebOptions" + "executableArgs": { + "description": "The executable parameters. Pass to executableName", + "type": "array", + "items": { + "type": "string" + } }, - { - "type": "null" - } - ] - }, - "onNodeModuleFile": { - "anyOf": [ - { - "typeof": "function" + "artifactName": { + "description": "The [artifact file name template](./configuration.md#artifact-file-name-template).", + "type": "string" }, - { - "type": [ - "null", - "string" - ] + "publish": { + "$ref": "#/definitions/Publish" } - ], - "description": "The function (or path to file or module id) to be [run on each node module](#onnodemodulefile) file. Returning `true`/`false` will determine whether to force include or to use the default copier logic" + }, + "additionalProperties": false }, - "p5p": { - "anyOf": [ - { - "$ref": "#/definitions/LinuxTargetSpecificOptions" + "LinuxTargetSpecificOptions": { + "type": "object", + "properties": { + "depends": { + "description": "Package dependencies.\n`rpm` defaults to `[\"gtk3\", \"libnotify\", \"nss\", \"libXScrnSaver\", \"(libXtst or libXtst6)\", \"xdg-utils\", \"at-spi2-core\", \"(libuuid or libuuid1)\"]`\n`pacman` defaults to `[\"c-ares\", \"ffmpeg\", \"gtk3\", \"http-parser\", \"libevent\", \"libvpx\", \"libxslt\", \"libxss\", \"minizip\", \"nss\", \"re2\", \"snappy\", \"libnotify\", \"libappindicator-gtk3\"]`", + "type": "array", + "items": { + "type": "string" + } }, - { - "type": "null" - } - ] - }, - "pacman": { - "anyOf": [ - { - "$ref": "#/definitions/LinuxTargetSpecificOptions" + "compression": { + "description": "The compression type.", + "default": "xz", + "enum": [ + "bzip2", + "gz", + "lzo", + "xz" + ], + "type": "string" }, - { - "type": "null" - } - ] - }, - "pkg": { - "anyOf": [ - { - "$ref": "#/definitions/PkgOptions" + "icon": { + "type": "string" }, - { - "type": "null" - } - ], - "description": "macOS PKG options." - }, - "portable": { - "anyOf": [ - { - "$ref": "#/definitions/PortableOptions" + "packageCategory": { + "description": "The package category.", + "type": "string" }, - { - "type": "null" - } - ] - }, - "productName": { - "description": "As [name](#metadata), but allows you to specify a product name for your executable which contains spaces and other special characters not allowed in the [name property](https://docs.npmjs.com/files/package.json#name).\nIf not specified inside of the `build` configuration, `productName` property defined at the top level of `package.json` is used. If not specified at the top level of `package.json`, [name property](https://docs.npmjs.com/files/package.json#name) is used.", - "type": [ - "null", - "string" - ] - }, - "protocols": { - "anyOf": [ - { - "$ref": "#/definitions/Protocol" + "packageName": { + "description": "The name of the package.", + "type": "string" }, - { - "items": { - "$ref": "#/definitions/Protocol" - }, - "type": "array" - } - ], - "description": "The URL protocol schemes." - }, - "publish": { - "anyOf": [ - { - "$ref": "#/definitions/GithubOptions" + "vendor": { + "type": "string" }, - { - "$ref": "#/definitions/GitlabOptions" + "maintainer": { + "type": "string" }, - { - "$ref": "#/definitions/S3Options" + "afterInstall": { + "description": "File path to script to be passed to FPM for `--after-install` arg.", + "type": "string" }, - { - "$ref": "#/definitions/SpacesOptions" + "afterRemove": { + "description": "File path to script to be passed to FPM for `--after-remove` arg.", + "type": "string" }, - { - "$ref": "#/definitions/GenericServerOptions" + "appArmorProfile": { + "description": "File path to custom AppArmor profile (Ubuntu 24+)", + "type": "string" }, - { - "$ref": "#/definitions/CustomPublishOptions" + "fpm": { + "description": "*Advanced only* The [fpm](https://fpm.readthedocs.io/en/latest/cli-reference.html) options.\n\nExample: `[\"--before-install=build/deb-preinstall.sh\", \"--after-upgrade=build/deb-postinstall.sh\"]`", + "type": "array", + "items": { + "type": "string" + } }, - { - "$ref": "#/definitions/KeygenOptions" + "synopsis": { + "description": "The [short description](https://www.debian.org/doc/debian-policy/ch-controlfields.html#s-f-Description).", + "type": "string" }, - { - "$ref": "#/definitions/SnapStoreOptions" + "description": { + "description": "As [description](./configuration.md#description) from application package.json, but allows you to specify different for Linux.", + "type": "string" }, - { - "$ref": "#/definitions/BitbucketOptions" + "category": { + "description": "The [application category](https://specifications.freedesktop.org/menu-spec/latest/apa.html#main-category-registry).", + "type": "string" }, - { + "mimeTypes": { + "description": "The mime types in addition to specified in the file associations. Use it if you don't want to register a new mime type, but reuse existing.", + "type": "array", "items": { - "$ref": "#/definitions/AllPublishOptions" - }, - "type": "array" + "type": "string" + } }, - { - "type": [ - "null", - "string" - ] - } - ], - "description": "Publisher configuration. See [Auto Update](./publish.md) for more information." - }, - "releaseInfo": { - "$ref": "#/definitions/ReleaseInfo", - "description": "The release info. Intended for command line usage:\n\n```\n-c.releaseInfo.releaseNotes=\"new features\"\n```" - }, - "removePackageKeywords": { - "default": true, - "description": "Whether to remove `keywords` field from `package.json` files.", - "type": "boolean" - }, - "removePackageScripts": { - "default": true, - "description": "Whether to remove `scripts` field from `package.json` files.", - "type": "boolean" - }, - "rpm": { - "anyOf": [ - { - "$ref": "#/definitions/LinuxTargetSpecificOptions" + "desktop": { + "$ref": "#/definitions/LinuxDesktopFile", + "description": "The [Desktop file](https://developer.gnome.org/documentation/guidelines/maintainer/integrating.html#desktop-files)" }, - { - "type": "null" - } - ] - }, - "snap": { - "anyOf": [ - { - "$ref": "#/definitions/SnapOptions" + "executableArgs": { + "description": "The executable parameters. Pass to executableName", + "type": "array", + "items": { + "type": "string" + } }, - { - "type": "null" - } - ], - "description": "Snap options." - }, - "squirrelWindows": { - "anyOf": [ - { - "$ref": "#/definitions/SquirrelWindowsOptions" + "artifactName": { + "description": "The [artifact file name template](./configuration.md#artifact-file-name-template).", + "type": "string" }, - { - "type": "null" + "publish": { + "$ref": "#/definitions/Publish" } - ] + }, + "additionalProperties": false }, - "target": { - "anyOf": [ - { - "$ref": "#/definitions/TargetConfiguration" + "FuseOptionsV1": { + "description": "All options come from [@electron/fuses](https://github.com/electron/fuses)\nRef: https://raw.githubusercontent.com/electron/electron/refs/heads/main/docs/tutorial/fuses.md", + "type": "object", + "properties": { + "runAsNode": { + "description": "The runAsNode fuse toggles whether the `ELECTRON_RUN_AS_NODE` environment variable is respected or not. Please note that if this fuse is disabled then `process.fork` in the main process will not function as expected as it depends on this environment variable to function. Instead, we recommend that you use [Utility Processes](https://github.com/electron/electron/blob/main/docs/api/utility-process.md), which work for many use cases where you need a standalone Node.js process (like a Sqlite server process or similar scenarios).", + "type": "boolean" }, - { - "items": { - "anyOf": [ - { - "$ref": "#/definitions/TargetConfiguration" - }, - { - "type": "string" - } - ] - }, - "type": "array" + "enableCookieEncryption": { + "description": "The cookieEncryption fuse toggles whether the cookie store on disk is encrypted using OS level cryptography keys. By default the sqlite database that Chromium uses to store cookies stores the values in plaintext. If you wish to ensure your apps cookies are encrypted in the same way Chrome does then you should enable this fuse. Please note it is a one-way transition, if you enable this fuse existing unencrypted cookies will be encrypted-on-write but if you then disable the fuse again your cookie store will effectively be corrupt and useless. Most apps can safely enable this fuse.", + "type": "boolean" }, - { - "type": [ - "null", - "string" - ] - } - ] - }, - "win": { - "anyOf": [ - { - "$ref": "#/definitions/WindowsConfiguration" + "enableNodeOptionsEnvironmentVariable": { + "description": "The nodeOptions fuse toggles whether the [`NODE_OPTIONS`](https://nodejs.org/api/cli.html#node_optionsoptions) and [`NODE_EXTRA_CA_CERTS`](https://github.com/nodejs/node/blob/main/doc/api/cli.md#node_extra_ca_certsfile) environment variables are respected. The `NODE_OPTIONS` environment variable can be used to pass all kinds of custom options to the Node.js runtime and isn't typically used by apps in production. Most apps can safely disable this fuse.", + "type": "boolean" }, - { - "type": "null" + "enableNodeCliInspectArguments": { + "description": "The nodeCliInspect fuse toggles whether the `--inspect`, `--inspect-brk`, etc. flags are respected or not. When disabled it also ensures that `SIGUSR1` signal does not initialize the main process inspector. Most apps can safely disable this fuse.", + "type": "boolean" + }, + "enableEmbeddedAsarIntegrityValidation": { + "description": "The embeddedAsarIntegrityValidation fuse toggles an experimental feature on macOS that validates the content of the `app.asar` file when it is loaded. This feature is designed to have a minimal performance impact but may marginally slow down file reads from inside the `app.asar` archive.\nCurrently, ASAR integrity checking is supported on:\n\n - macOS as of electron>=16.0.0\n - Windows as of electron>=30.0.0\n\nFor more information on how to use asar integrity validation please read the [Asar Integrity](https://github.com/electron/electron/blob/main/docs/tutorial/asar-integrity.md) documentation.", + "type": "boolean" + }, + "onlyLoadAppFromAsar": { + "description": "The onlyLoadAppFromAsar fuse changes the search system that Electron uses to locate your app code. By default Electron will search in the following order `app.asar` -> `app` -> `default_app.asar`. When this fuse is enabled the search order becomes a single entry `app.asar` thus ensuring that when combined with the `embeddedAsarIntegrityValidation` fuse it is impossible to load non-validated code.", + "type": "boolean" + }, + "loadBrowserProcessSpecificV8Snapshot": { + "description": "The loadBrowserProcessSpecificV8Snapshot fuse changes which V8 snapshot file is used for the browser process. By default Electron's processes will all use the same V8 snapshot file. When this fuse is enabled the browser process uses the file called `browser_v8_context_snapshot.bin` for its V8 snapshot. The other processes will use the V8 snapshot file that they normally do.", + "type": "boolean" + }, + "grantFileProtocolExtraPrivileges": { + "description": "The grantFileProtocolExtraPrivileges fuse changes whether pages loaded from the `file://` protocol are given privileges beyond what they would receive in a traditional web browser. This behavior was core to Electron apps in original versions of Electron but is no longer required as apps should be [serving local files from custom protocols](https://github.com/electron/electron/blob/main/docs/tutorial/security.md#18-avoid-usage-of-the-file-protocol-and-prefer-usage-of-custom-protocols) now instead. If you aren't serving pages from `file://` you should disable this fuse.\nThe extra privileges granted to the `file://` protocol by this fuse are incompletely documented below:\n\n - `file://` protocol pages can use `fetch` to load other assets over `file://`\n - `file://` protocol pages can use service workers\n - `file://` protocol pages have universal access granted to child frames also running on `file://` protocols regardless of sandbox settings", + "type": "boolean" + }, + "resetAdHocDarwinSignature": { + "description": "Resets the app signature, specifically used for macOS.\nNote: This should be unneeded since electron-builder signs the app directly after flipping the fuses.\nRef: https://github.com/electron/fuses?tab=readme-ov-file#apple-silicon", + "type": "boolean" } - ], - "description": "Options related to how build Windows targets." + }, + "additionalProperties": false }, - "$schema": { - "description": "JSON Schema for this document.", - "type": [ - "null", - "string" + "Concurrency": { + "type": "object", + "properties": { + "jobs": { + "description": "The maximum number of concurrent jobs to run.", + "default": 1, + "type": "number" + } + }, + "additionalProperties": false, + "required": [ + "jobs" ] } }, - "type": "object" + "$schema": "http://json-schema.org/draft-07/schema#" } \ No newline at end of file diff --git a/scripts/fix-schema.js b/scripts/fix-schema.js deleted file mode 100644 index c0cd8c95c26..00000000000 --- a/scripts/fix-schema.js +++ /dev/null @@ -1,38 +0,0 @@ -const fs = require("fs") -const path = require("path") - -const schemaFile = path.join(__dirname, "../packages/app-builder-lib/scheme.json") -const schema = JSON.parse(fs.readFileSync(schemaFile, "utf-8")) - -let o = schema.definitions.PlugDescriptor.additionalProperties.anyOf[0] -delete o.typeof -o.type = "object" - -schema.definitions.OutgoingHttpHeaders.additionalProperties = { - "anyOf": [ - { - "items": { - "type": "string" - }, - "type": "array" - }, - { - "type": [ - "string", - "number" - ] - } - ] -} - -o = schema.definitions.SnapOptions.properties.environment.anyOf[0] = { - additionalProperties: { type: "string" }, - type: "object", -} - -o = schema.properties["$schema"] = { - "description": "JSON Schema for this document.", - "type": ["null", "string"], -} - -fs.writeFileSync(schemaFile, JSON.stringify(schema, null, 2)) diff --git a/scripts/generate-schema.ts b/scripts/generate-schema.ts index e19a289ea7d..9fa97720530 100644 --- a/scripts/generate-schema.ts +++ b/scripts/generate-schema.ts @@ -12,12 +12,13 @@ const compilerOptions: TJS.CompilerOptions = { baseUrl: rootDir, esModuleInterop: false, forceConsistentCasingInFileNames: true, - moduleResolution: TypeScript.ModuleResolutionKind.Node10, + moduleResolution: TypeScript.ModuleResolutionKind.Node10 as any, skipLibCheck: true, - strict: true, - noUnusedLocals: true, + // strict: true, + // noUnusedLocals: true, noFallthroughCasesInSwitch: true, - noImplicitReturns: true, + // noImplicitReturns: true, + noEmit: true, inlineSources: true, sourceMap: true, @@ -33,18 +34,22 @@ const compilerOptions: TJS.CompilerOptions = { "../typings", "../../typings", // - "../node_module/@types", - "node_module/@types" - ], + "../node_modules/@types", + "app-builder-lib/typings", + "node_modules/@types" + ].map(it => path.resolve(rootDir, it)), } // schema generator args const settings: TJS.PartialArgs = { required: true, + // ref: false, + // aliasRef: true, noExtraProps: true, typeOfKeyword: true, strictNullChecks: true, skipLibCheck: true, + ignoreErrors: true, } const definitionFile = path.resolve(rootDir, "app-builder-lib/src/configuration.ts") @@ -53,7 +58,7 @@ const generator = TJS.buildGenerator(program, settings) const schema = TJS.generateSchema(program, "Configuration", settings, [], generator!) const PlugDescriptor: any = schema!.definitions!.PlugDescriptor -PlugDescriptor.additionalProperties!.anyOf![0] = { +PlugDescriptor.additionalProperties = { type: "object", } @@ -73,7 +78,7 @@ OutgoingHttpHeaders.additionalProperties = { } const SnapOptions: any = schema!.definitions!.SnapOptions -SnapOptions.properties.environment!.anyOf![0] = { +SnapOptions.properties.environment = { additionalProperties: { type: "string" }, type: "object", } From d77a294aaff77302c23271236e5a6b8e334ac9f8 Mon Sep 17 00:00:00 2001 From: Mike Maietta Date: Fri, 13 Feb 2026 16:26:02 -0800 Subject: [PATCH 18/65] pre-release cut --- .changeset/config.release-v27.json | 23 +++++++++++++++++++++++ .changeset/cute-goats-kiss.md | 12 ++++++++++++ .changeset/pre.json | 20 ++++++++++++++++++++ .github/workflows/pr-release.yml | 1 + 4 files changed, 56 insertions(+) create mode 100644 .changeset/config.release-v27.json create mode 100644 .changeset/cute-goats-kiss.md create mode 100644 .changeset/pre.json diff --git a/.changeset/config.release-v27.json b/.changeset/config.release-v27.json new file mode 100644 index 00000000000..a5d628bbcf7 --- /dev/null +++ b/.changeset/config.release-v27.json @@ -0,0 +1,23 @@ +{ + "$schema": "https://unpkg.com/@changesets/config@3.0.0/schema.json", + "changelog": ["changesets-changelog-clean", { "repo": "electron-userland/electron-builder" }], + "commit": false, + "linked": [[ + "app-builder-lib", + "builder-util", + "dmg-builder", + "electron-builder", + "electron-builder-squirrel-windows", + "electron-publish" + ]], + "access": "public", + "baseBranch": "release/v27", + "updateInternalDependencies": "patch", + "ignore": [ + "electron-forge-maker-appimage", + "electron-forge-maker-nsis", + "electron-forge-maker-nsis-web", + "electron-forge-maker-snap", + "@electron-builder/test" + ] +} \ No newline at end of file diff --git a/.changeset/cute-goats-kiss.md b/.changeset/cute-goats-kiss.md new file mode 100644 index 00000000000..b357953901c --- /dev/null +++ b/.changeset/cute-goats-kiss.md @@ -0,0 +1,12 @@ +--- +"app-builder-lib": major +"builder-util": major +"builder-util-runtime": major +"dmg-builder": major +"electron-builder": major +"electron-builder-squirrel-windows": major +"electron-publish": major +"electron-updater": major +--- + +chore: release cut of v27 diff --git a/.changeset/pre.json b/.changeset/pre.json new file mode 100644 index 00000000000..bb23527de2d --- /dev/null +++ b/.changeset/pre.json @@ -0,0 +1,20 @@ +{ + "mode": "pre", + "tag": "alpha", + "initialVersions": { + "app-builder-lib": "26.8.0", + "builder-util": "26.8.0", + "builder-util-runtime": "9.5.1", + "dmg-builder": "26.8.0", + "electron-builder": "26.8.0", + "electron-builder-squirrel-windows": "26.8.0", + "electron-forge-maker-appimage": "26.8.0", + "electron-forge-maker-nsis": "26.8.0", + "electron-forge-maker-nsis-web": "26.8.0", + "electron-forge-maker-snap": "26.8.0", + "electron-publish": "26.8.0", + "electron-updater": "6.8.3", + "@electron-builder/test": "0.0.0" + }, + "changesets": [] +} diff --git a/.github/workflows/pr-release.yml b/.github/workflows/pr-release.yml index 57d37b28558..14e1aca38da 100644 --- a/.github/workflows/pr-release.yml +++ b/.github/workflows/pr-release.yml @@ -4,6 +4,7 @@ on: push: branches: - master + - release/v27 concurrency: group: ${{ github.workflow }}-${{ github.ref }} From 4a95a0d2b8acd4025b45f0805593c34a82bc0090 Mon Sep 17 00:00:00 2001 From: Mike Maietta Date: Wed, 18 Feb 2026 10:52:35 -0800 Subject: [PATCH 19/65] chore: adding release/v27 release branch to github actions workflows --- .github/workflows/pr-release.yml | 2 +- .github/workflows/test.yaml | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/pr-release.yml b/.github/workflows/pr-release.yml index 57d37b28558..9828280ce5a 100644 --- a/.github/workflows/pr-release.yml +++ b/.github/workflows/pr-release.yml @@ -4,7 +4,7 @@ on: push: branches: - master - + - release/v* concurrency: group: ${{ github.workflow }}-${{ github.ref }} cancel-in-progress: false diff --git a/.github/workflows/test.yaml b/.github/workflows/test.yaml index cab9d38d2b1..3f9defbb795 100644 --- a/.github/workflows/test.yaml +++ b/.github/workflows/test.yaml @@ -4,6 +4,7 @@ on: push: branches: - master + - release/v* pull_request: workflow_call: inputs: From a27e2f09570c83a5d9afb2f8478d62ac53d05836 Mon Sep 17 00:00:00 2001 From: Mike Maietta Date: Wed, 18 Feb 2026 10:54:53 -0800 Subject: [PATCH 20/65] update branch naming system --- .github/workflows/pr-release.yml | 22 ++++++++++++---------- 1 file changed, 12 insertions(+), 10 deletions(-) diff --git a/.github/workflows/pr-release.yml b/.github/workflows/pr-release.yml index 9828280ce5a..5760d99c01e 100644 --- a/.github/workflows/pr-release.yml +++ b/.github/workflows/pr-release.yml @@ -45,14 +45,15 @@ jobs: echo "tag=next" >> $GITHUB_OUTPUT echo "branch_type=prerelease" >> $GITHUB_OUTPUT echo "config_file=config.json" >> $GITHUB_OUTPUT - elif [[ "$BRANCH" =~ ^release/v[0-9]+\.x$ ]]; then - # Extract version from branch name (e.g., release/v26.x -> v26) - VERSION=$(echo "$BRANCH" | sed -E 's/^release\/v([0-9]+)\.x$/v\1/') - # Validate that sed extraction worked correctly + elif [[ "$BRANCH" =~ ^release/v[0-9]+$ ]]; then + # Extract version from branch name (e.g., release/v27 -> v27) + VERSION=$(echo "$BRANCH" | sed -E 's/^release\/(v[0-9]+)$/\1/') + + # Validate extraction if [[ ! "$VERSION" =~ ^v[0-9]+$ ]]; then echo "::error::Failed to extract valid version from branch: $BRANCH" - echo "::error::Expected format: release/v{major}.x (e.g., release/v26.x)" + echo "::error::Expected format: release/v{major} (e.g., release/v27)" echo "::error::Extracted version: $VERSION" exit 1 fi @@ -60,17 +61,18 @@ jobs: echo "tag=$VERSION" >> $GITHUB_OUTPUT echo "branch_type=lts" >> $GITHUB_OUTPUT echo "config_file=config.release-$VERSION.json" >> $GITHUB_OUTPUT + else echo "::error::Unsupported branch for release: $BRANCH" - echo "::error::Expected 'master' or 'release/v{major}.x' (e.g., 'release/v26.x')" + echo "::error::Expected 'master' or 'release/v{major}' (e.g., 'release/v27')" exit 1 fi - # Log the determined values for debugging + # Log determined values echo "Branch: $BRANCH" - echo "Dist-tag: $(cat $GITHUB_OUTPUT | grep '^tag=' | cut -d= -f2)" - echo "Branch type: $(cat $GITHUB_OUTPUT | grep '^branch_type=' | cut -d= -f2)" - echo "Config file: $(cat $GITHUB_OUTPUT | grep '^config_file=' | cut -d= -f2)" + echo "Dist-tag: $(grep '^tag=' $GITHUB_OUTPUT | cut -d= -f2)" + echo "Branch type: $(grep '^branch_type=' $GITHUB_OUTPUT | cut -d= -f2)" + echo "Config file: $(grep '^config_file=' $GITHUB_OUTPUT | cut -d= -f2)" - name: Link changeset config for this branch run: | From 094886f5dcdd45b2e86e15517f8af74ea9c8920a Mon Sep 17 00:00:00 2001 From: Mike Maietta Date: Wed, 18 Feb 2026 17:05:00 -0800 Subject: [PATCH 21/65] tmp save --- packages/app-builder-lib/package.json | 5 +- .../src/codeSign/windowsSignToolManager.ts | 22 +++--- packages/app-builder-lib/src/index.ts | 67 ++++++++++--------- .../node-module-collector/moduleManager.ts | 2 +- .../app-builder-lib/src/targets/AppxTarget.ts | 18 ++--- .../src/targets/appimage/appImageUtil.ts | 12 ++-- .../app-builder-lib/src/toolsets/linux.ts | 2 +- .../app-builder-lib/src/util/appFileCopier.ts | 22 +++--- packages/app-builder-lib/src/winPackager.ts | 44 ++++++------ packages/builder-util-runtime/package.json | 4 +- packages/builder-util/package.json | 5 +- packages/dmg-builder/package.json | 6 +- .../package.json | 6 +- packages/electron-publish/package.json | 5 +- packages/electron-updater/package.json | 4 +- pnpm-lock.yaml | 3 - test/src/BuildTest.ts | 2 +- test/src/helpers/asarVerifier.ts | 2 +- test/src/updater/differentialUpdateTest.ts | 10 +-- test/src/windows/assistedInstallerTest.ts | 2 +- test/src/windows/msiWrappedTest.ts | 2 +- test/src/windows/winCodeSignTest.ts | 4 +- test/src/windows/winPackagerTest.ts | 6 +- 23 files changed, 137 insertions(+), 118 deletions(-) diff --git a/packages/app-builder-lib/package.json b/packages/app-builder-lib/package.json index 6bfdbd90e49..b128073aa69 100644 --- a/packages/app-builder-lib/package.json +++ b/packages/app-builder-lib/package.json @@ -2,7 +2,10 @@ "name": "app-builder-lib", "description": "electron-builder lib", "version": "26.8.1", - "main": "out/index.js", + "type": "module", + "exports": { + ".": "./out/index.js" + }, "files": [ "out", "templates", diff --git a/packages/app-builder-lib/src/codeSign/windowsSignToolManager.ts b/packages/app-builder-lib/src/codeSign/windowsSignToolManager.ts index 13c217e29c9..b772ba1c351 100644 --- a/packages/app-builder-lib/src/codeSign/windowsSignToolManager.ts +++ b/packages/app-builder-lib/src/codeSign/windowsSignToolManager.ts @@ -3,17 +3,17 @@ import { MemoLazy, parseDn } from "builder-util-runtime" import { rename } from "fs-extra" import { Lazy } from "lazy-val" import * as path from "path" -import { Target } from "../core" -import { WindowsConfiguration } from "../options/winOptions" -import AppXTarget from "../targets/AppxTarget" -import { getSignToolPath } from "../toolsets/windows" -import { executeAppBuilderAsJson } from "../util/appBuilder" -import { resolveFunction } from "../util/resolve" -import { VmManager } from "../vm/vm" -import { WinPackager } from "../winPackager" -import { importCertificate } from "./codesign" -import { SignManager } from "./signManager" -import { WindowsSignOptions } from "./windowsCodeSign" +import { Target } from "../core.js" +import { WindowsConfiguration } from "../options/winOptions.js" +import AppXTarget from "../targets/AppxTarget.js" +import { getSignToolPath } from "../toolsets/windows.js" +import { executeAppBuilderAsJson } from "../util/appBuilder.js" +import { resolveFunction } from "../util/resolve.js" +import { VmManager } from "../vm/vm.js" +import { WinPackager } from "../winPackager.js" +import { importCertificate } from "./codesign.js" +import { SignManager } from "./signManager.js" +import { WindowsSignOptions } from "./windowsCodeSign.js" export type CustomWindowsSign = (configuration: CustomWindowsSignTaskConfiguration, packager?: WinPackager) => Promise diff --git a/packages/app-builder-lib/src/index.ts b/packages/app-builder-lib/src/index.ts index 29ab91e15be..9db5e0aee24 100644 --- a/packages/app-builder-lib/src/index.ts +++ b/packages/app-builder-lib/src/index.ts @@ -1,13 +1,13 @@ import { InvalidConfigurationError, executeFinally, log } from "builder-util" import { asArray } from "builder-util-runtime" import { PublishOptions } from "electron-publish" -import { Packager } from "./packager" -import { PackagerOptions } from "./packagerApi" -import { PublishManager } from "./publish/PublishManager" -import { resolveFunction } from "./util/resolve" +import { Packager } from "./packager.js" +import { PackagerOptions } from "./packagerApi.js" +import { PublishManager } from "./publish/PublishManager.js" +import { resolveFunction } from "./util/resolve.js" export { Arch, archFromString, getArchSuffix } from "builder-util" -export { AppInfo } from "./appInfo" +export { AppInfo } from "./appInfo.js" export { AfterExtractContext, AfterPackContext, @@ -20,7 +20,7 @@ export { MetadataDirectories, PackContext, ToolsetConfig, -} from "./configuration" +} from "./configuration.js" export { BeforeBuildContext, CompressionLevel, @@ -32,42 +32,43 @@ export { TargetConfigType, TargetConfiguration, TargetSpecificOptions, -} from "./core" -export { ElectronBrandingOptions, ElectronDownloadOptions, ElectronPlatformName } from "./electron/ElectronFramework" -export { AppXOptions } from "./options/AppXOptions" -export { CommonWindowsInstallerConfiguration } from "./options/CommonWindowsInstallerConfiguration" -export { FileAssociation } from "./options/FileAssociation" -export { AppImageOptions, CommonLinuxOptions, DebOptions, FlatpakOptions, LinuxConfiguration, LinuxDesktopFile, LinuxTargetSpecificOptions } from "./options/linuxOptions" -export { DmgContent, DmgOptions, DmgWindow, MacConfiguration, MacOsTargetName, MasConfiguration } from "./options/macOptions" -export { AuthorMetadata, Metadata, RepositoryInfo } from "./options/metadata" -export { MsiOptions } from "./options/MsiOptions" -export { MsiWrappedOptions } from "./options/MsiWrappedOptions" -export { BackgroundAlignment, BackgroundScaling, PkgBackgroundOptions, PkgOptions } from "./options/pkgOptions" -export { AsarOptions, FileSet, FilesBuildOptions, PlatformSpecificBuildOptions, Protocol, ReleaseInfo } from "./options/PlatformSpecificBuildOptions" -export { PlugDescriptor, SlotDescriptor, SnapOptions } from "./options/SnapOptions" -export { SquirrelWindowsOptions } from "./options/SquirrelWindowsOptions" -export { WindowsAzureSigningConfiguration, WindowsConfiguration, WindowsSigntoolConfiguration } from "./options/winOptions" -export { BuildResult, Packager } from "./packager" -export { ArtifactBuildStarted, ArtifactCreated, PackagerOptions } from "./packagerApi" -export { CommonNsisOptions, CustomNsisBinary, NsisOptions, NsisWebOptions, PortableOptions } from "./targets/nsis/nsisOptions" +} from "./core.js" +export { ElectronBrandingOptions, ElectronDownloadOptions, ElectronPlatformName } from "./electron/ElectronFramework.js" +export { AppXOptions } from "./options/AppXOptions.js" +export { CommonWindowsInstallerConfiguration } from "./options/CommonWindowsInstallerConfiguration.js" +export { FileAssociation } from "./options/FileAssociation.js" +export { AppImageOptions, CommonLinuxOptions, DebOptions, FlatpakOptions, LinuxConfiguration, LinuxDesktopFile, LinuxTargetSpecificOptions } from "./options/linuxOptions.js" +export { DmgContent, DmgOptions, DmgWindow, MacConfiguration, MacOsTargetName, MasConfiguration } from "./options/macOptions.js" +export { AuthorMetadata, Metadata, RepositoryInfo } from "./options/metadata.js" +export { MsiOptions } from "./options/MsiOptions.js" +export { MsiWrappedOptions } from "./options/MsiWrappedOptions.js" +export { BackgroundAlignment, BackgroundScaling, PkgBackgroundOptions, PkgOptions } from "./options/pkgOptions.js" +export { AsarOptions, FileSet, FilesBuildOptions, PlatformSpecificBuildOptions, Protocol, ReleaseInfo } from "./options/PlatformSpecificBuildOptions.js" +export { PlugDescriptor, SlotDescriptor, SnapOptions } from "./options/SnapOptions.js" +export { SquirrelWindowsOptions } from "./options/SquirrelWindowsOptions.js" +export { WindowsAzureSigningConfiguration, WindowsConfiguration, WindowsSigntoolConfiguration } from "./options/winOptions.js" +export { BuildResult, Packager } from "./packager.js" +export { ArtifactBuildStarted, ArtifactCreated, PackagerOptions } from "./packagerApi.js" +export { CommonNsisOptions, CustomNsisBinary, NsisOptions, NsisWebOptions, PortableOptions } from "./targets/nsis/nsisOptions.js" export { CancellationToken, ProgressInfo } from "builder-util-runtime" export { PublishOptions, UploadTask } from "electron-publish" -export { WindowsSignOptions } from "./codeSign/windowsCodeSign" +export { WindowsSignOptions } from "./codeSign/windowsCodeSign.js" export { CertificateFromStoreInfo, CustomWindowsSign, CustomWindowsSignTaskConfiguration, FileCodeSigningInfo, WindowsSignTaskConfiguration, -} from "./codeSign/windowsSignToolManager" -export { ForgeOptions, buildForge } from "./forge-maker" -export { Framework, PrepareApplicationStageDirectoryOptions } from "./Framework" -export { LinuxPackager } from "./linuxPackager" -export { CustomMacSign, CustomMacSignOptions, MacPackager } from "./macPackager" -export { PlatformPackager } from "./platformPackager" -export { PublishManager } from "./publish/PublishManager" -export { WinPackager } from "./winPackager" +} from "./codeSign/windowsSignToolManager.js" +export { ForgeOptions, buildForge } from "./forge-maker.js" +export { Framework, PrepareApplicationStageDirectoryOptions } from "./Framework.js" +export { LinuxPackager } from "./linuxPackager.js" +export { CustomMacSign, CustomMacSignOptions, MacPackager } from "./macPackager.js" +export { PlatformPackager } from "./platformPackager.js" +export { PublishManager } from "./publish/PublishManager.js" +export { WinPackager } from "./winPackager.js" +export { readAsar } from "./asar/asar.js" const expectedOptions = new Set(["publish", "targets", "mac", "win", "linux", "projectDir", "platformPackagerFactory", "config", "effectiveOptionComputed", "prepackaged"]) diff --git a/packages/app-builder-lib/src/node-module-collector/moduleManager.ts b/packages/app-builder-lib/src/node-module-collector/moduleManager.ts index af189fa45e2..cf1a0635eb0 100644 --- a/packages/app-builder-lib/src/node-module-collector/moduleManager.ts +++ b/packages/app-builder-lib/src/node-module-collector/moduleManager.ts @@ -1,5 +1,5 @@ import { exists, isEmptyOrSpaces, log, LogLevel } from "builder-util" -import { PackageJson } from "./types" +import { PackageJson } from "./types.js" import * as fs from "fs-extra" import * as path from "path" import * as semver from "semver" diff --git a/packages/app-builder-lib/src/targets/AppxTarget.ts b/packages/app-builder-lib/src/targets/AppxTarget.ts index 234a95d66a8..82776fed377 100644 --- a/packages/app-builder-lib/src/targets/AppxTarget.ts +++ b/packages/app-builder-lib/src/targets/AppxTarget.ts @@ -2,15 +2,15 @@ import { Arch, asArray, copyOrLinkFile, deepAssign, InvalidConfigurationError, l import { Nullish } from "builder-util-runtime" import { emptyDir, readdir, readFile, writeFile } from "fs-extra" import * as path from "path" -import { AppXOptions } from "../" -import { getWindowsKitsBundle } from "../toolsets/windows" -import { Target } from "../core" -import { getTemplatePath } from "../util/pathManager" -import { VmManager } from "../vm/vm" -import { WinPackager } from "../winPackager" -import { createStageDir } from "./targetUtil" -import { isOldWin6 } from "../toolsets/windows" -import { CAPABILITIES, isValidCapabilityName } from "./AppxCapabilities" +import { AppXOptions } from "../index.js" +import { getWindowsKitsBundle } from "../toolsets/windows.js" +import { Target } from "../core.js" +import { getTemplatePath } from "../util/pathManager.js" +import { VmManager } from "../vm/vm.js" +import { WinPackager } from "../winPackager.js" +import { createStageDir } from "./targetUtil.js" +import { isOldWin6 } from "../toolsets/windows.js" +import { CAPABILITIES, isValidCapabilityName } from "./AppxCapabilities.js" const APPX_ASSETS_DIR_NAME = "appx" diff --git a/packages/app-builder-lib/src/targets/appimage/appImageUtil.ts b/packages/app-builder-lib/src/targets/appimage/appImageUtil.ts index 6eabc7efc87..fec7eaa3cc5 100644 --- a/packages/app-builder-lib/src/targets/appimage/appImageUtil.ts +++ b/packages/app-builder-lib/src/targets/appimage/appImageUtil.ts @@ -1,13 +1,13 @@ import { Arch, copyDir, copyFile, exec, exists, InvalidConfigurationError, log } from "builder-util" import * as fs from "fs-extra" import * as path from "path" -import { FileAssociation } from "../../options/FileAssociation" -import { IconInfo } from "../../platformPackager" -import { getAppImageTools } from "../../toolsets/linux" -import { copyIcons, copyMimeTypes } from "./appLauncher" -import { appendBlockmap } from "../differentialUpdateInfoBuilder" +import { FileAssociation } from "../../options/FileAssociation.js" +import { IconInfo } from "../../platformPackager.js" +import { getAppImageTools } from "../../toolsets/linux.js" +import { copyIcons, copyMimeTypes } from "./appLauncher.js" +import { appendBlockmap } from "../differentialUpdateInfoBuilder.js" import { BlockMapDataHolder } from "builder-util-runtime" -import { APP_RUN_ENTRYPOINT } from "./AppImageTarget" +import { APP_RUN_ENTRYPOINT } from "./AppImageTarget.js" interface Options { productName: string diff --git a/packages/app-builder-lib/src/toolsets/linux.ts b/packages/app-builder-lib/src/toolsets/linux.ts index b0b04f2cc94..0a88160f30a 100644 --- a/packages/app-builder-lib/src/toolsets/linux.ts +++ b/packages/app-builder-lib/src/toolsets/linux.ts @@ -1,6 +1,6 @@ import { Arch } from "builder-util" import * as path from "path" -import { downloadArtifact, getBinFromUrl } from "../binDownload" +import { downloadArtifact, getBinFromUrl } from "../binDownload.js" // It's just easier to copy the map of checksums here rather than adding them to within each if-statement. Also, easy copy-paste from the releases page const fpmChecksums = { diff --git a/packages/app-builder-lib/src/util/appFileCopier.ts b/packages/app-builder-lib/src/util/appFileCopier.ts index b71de598c02..dffac4b77a7 100644 --- a/packages/app-builder-lib/src/util/appFileCopier.ts +++ b/packages/app-builder-lib/src/util/appFileCopier.ts @@ -4,17 +4,17 @@ import { ensureSymlink } from "fs-extra" import { mkdir, readlink } from "fs/promises" import * as path from "path" import asyncPool from "tiny-async-pool" -import { isLibOrExe } from "../asar/unpackDetector" -import { Platform } from "../core" -import { excludedExts, FileMatcher } from "../fileMatcher" -import { createElectronCompilerHost, NODE_MODULES_PATTERN } from "../fileTransformer" -import { getCollectorByPackageManager, PM } from "../node-module-collector" -import { LogMessageByKey, logMessageLevelByKey, ModuleManager } from "../node-module-collector/moduleManager" -import { Packager } from "../packager" -import { PlatformPackager } from "../platformPackager" -import { AppFileWalker } from "./AppFileWalker" -import { NodeModuleCopyHelper } from "./NodeModuleCopyHelper" -import { NodeModuleInfo } from "./packageDependencies" +import { isLibOrExe } from "../asar/unpackDetector.js" +import { Platform } from "../core.js" +import { excludedExts, FileMatcher } from "../fileMatcher.js" +import { createElectronCompilerHost, NODE_MODULES_PATTERN } from "../fileTransformer.js" +import { getCollectorByPackageManager, PM } from "../node-module-collector/index.js" +import { LogMessageByKey, logMessageLevelByKey, ModuleManager } from "../node-module-collector/moduleManager.js" +import { Packager } from "../packager.js" +import { PlatformPackager } from "../platformPackager.js" +import { AppFileWalker } from "./AppFileWalker.js" +import { NodeModuleCopyHelper } from "./NodeModuleCopyHelper.js" +import { NodeModuleInfo } from "./packageDependencies.js" const BOWER_COMPONENTS_PATTERN = `${path.sep}bower_components${path.sep}` /** @internal */ diff --git a/packages/app-builder-lib/src/winPackager.ts b/packages/app-builder-lib/src/winPackager.ts index c1e4852c611..901bbeef14d 100644 --- a/packages/app-builder-lib/src/winPackager.ts +++ b/packages/app-builder-lib/src/winPackager.ts @@ -5,28 +5,28 @@ import { readdir } from "fs/promises" import { isCI } from "ci-info" import { Lazy } from "lazy-val" import * as path from "path" -import { SignManager } from "./codeSign/signManager" -import { signWindows, WindowsSignOptions } from "./codeSign/windowsCodeSign" -import { WindowsSignAzureManager } from "./codeSign/windowsSignAzureManager" -import { FileCodeSigningInfo, WindowsSignToolManager } from "./codeSign/windowsSignToolManager" -import { AfterPackContext } from "./configuration" -import { DIR_TARGET, Platform, Target } from "./core" -import { RequestedExecutionLevel, WindowsConfiguration } from "./options/winOptions" -import { Packager } from "./packager" -import { chooseNotNull, PlatformPackager } from "./platformPackager" -import AppXTarget from "./targets/AppxTarget" -import MsiTarget from "./targets/MsiTarget" -import MsiWrappedTarget from "./targets/MsiWrappedTarget" -import { NsisTarget } from "./targets/nsis/NsisTarget" -import { AppPackageHelper, CopyElevateHelper } from "./targets/nsis/nsisUtil" -import { WebInstallerTarget } from "./targets/nsis/WebInstallerTarget" -import { createCommonTarget } from "./targets/targetFactory" -import { BuildCacheManager, digest } from "./util/cacheManager" -import { isBuildCacheEnabled } from "./util/flags" -import { time } from "./util/timer" -import { getWindowsVm, VmManager } from "./vm/vm" -import { execWine } from "./wine" -import { getRceditBundle } from "./toolsets/windows" +import { SignManager } from "./codeSign/signManager.js" +import { signWindows, WindowsSignOptions } from "./codeSign/windowsCodeSign.js" +import { WindowsSignAzureManager } from "./codeSign/windowsSignAzureManager.js" +import { FileCodeSigningInfo, WindowsSignToolManager } from "./codeSign/windowsSignToolManager.js" +import { AfterPackContext } from "./configuration.js" +import { DIR_TARGET, Platform, Target } from "./core.js" +import { RequestedExecutionLevel, WindowsConfiguration } from "./options/winOptions.js" +import { Packager } from "./packager.js" +import { chooseNotNull, PlatformPackager } from "./platformPackager.js" +import AppXTarget from "./targets/AppxTarget.js" +import MsiTarget from "./targets/MsiTarget.js" +import MsiWrappedTarget from "./targets/MsiWrappedTarget.js" +import { NsisTarget } from "./targets/nsis/NsisTarget.js" +import { AppPackageHelper, CopyElevateHelper } from "./targets/nsis/nsisUtil.js" +import { WebInstallerTarget } from "./targets/nsis/WebInstallerTarget.js" +import { createCommonTarget } from "./targets/targetFactory.js" +import { BuildCacheManager, digest } from "./util/cacheManager.js" +import { isBuildCacheEnabled } from "./util/flags.js" +import { time } from "./util/timer.js" +import { getWindowsVm, VmManager } from "./vm/vm.js" +import { execWine } from "./wine.js" +import { getRceditBundle } from "./toolsets/windows.js" export class WinPackager extends PlatformPackager { _iconPath = new Lazy(() => this.getOrConvertIcon("ico")) diff --git a/packages/builder-util-runtime/package.json b/packages/builder-util-runtime/package.json index 971acbdeeaf..f1cc465efb4 100644 --- a/packages/builder-util-runtime/package.json +++ b/packages/builder-util-runtime/package.json @@ -2,7 +2,9 @@ "name": "builder-util-runtime", "version": "9.5.1", "type": "module", - "exports": "./out/index.js", + "exports": { + ".": "./out/index.js" + }, "author": "Vladimir Krivosheev", "license": "MIT", "repository": { diff --git a/packages/builder-util/package.json b/packages/builder-util/package.json index 989f45f70d1..85c614bd44d 100644 --- a/packages/builder-util/package.json +++ b/packages/builder-util/package.json @@ -1,7 +1,10 @@ { "name": "builder-util", "version": "26.8.1", - "main": "out/util.js", + "type": "module", + "exports": { + ".": "./out/util.js" + }, "author": "Vladimir Krivosheev", "license": "MIT", "repository": { diff --git a/packages/dmg-builder/package.json b/packages/dmg-builder/package.json index 71d4e31824d..1119106e217 100644 --- a/packages/dmg-builder/package.json +++ b/packages/dmg-builder/package.json @@ -1,7 +1,11 @@ { "name": "dmg-builder", "version": "26.8.1", - "main": "out/dmgUtil.js", + "type": "module", + "exports": { + ".": "./out/dmgUtil.js" + }, + "description": "dmg builder for electron-builder", "author": "Vladimir Krivosheev", "license": "MIT", "repository": { diff --git a/packages/electron-builder-squirrel-windows/package.json b/packages/electron-builder-squirrel-windows/package.json index 81ededf3a99..8554e8d981c 100644 --- a/packages/electron-builder-squirrel-windows/package.json +++ b/packages/electron-builder-squirrel-windows/package.json @@ -1,7 +1,11 @@ { "name": "electron-builder-squirrel-windows", "version": "26.8.1", - "main": "out/SquirrelWindowsTarget.js", + "description": "Squirrel.Windows target for electron-builder", + "type": "module", + "exports": { + ".": "./out/SquirrelWindowsTarget.js" + }, "author": "Vladimir Krivosheev", "license": "MIT", "repository": { diff --git a/packages/electron-publish/package.json b/packages/electron-publish/package.json index 815943ebdd6..2db7c917e3e 100644 --- a/packages/electron-publish/package.json +++ b/packages/electron-publish/package.json @@ -1,7 +1,10 @@ { "name": "electron-publish", "version": "26.8.1", - "main": "out/index.js", + "type": "module", + "exports": { + ".": "./out/index.js" + }, "author": "Vladimir Krivosheev", "license": "MIT", "repository": { diff --git a/packages/electron-updater/package.json b/packages/electron-updater/package.json index 5915629eee7..d417224ccca 100644 --- a/packages/electron-updater/package.json +++ b/packages/electron-updater/package.json @@ -3,7 +3,9 @@ "version": "6.8.3", "description": "Cross platform updater for electron applications", "type": "module", - "exports": "./out/index.js", + "exports": { + ".": "./out/index.js" + }, "author": "Vladimir Krivosheev", "license": "MIT", "repository": { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 5d2dbf23b75..86e0b6a6226 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -442,9 +442,6 @@ importers: dmg-builder: specifier: workspace:* version: link:../dmg-builder - electron-publish: - specifier: workspace:* - version: link:../electron-publish fs-extra: specifier: ^10.1.0 version: 10.1.0 diff --git a/test/src/BuildTest.ts b/test/src/BuildTest.ts index 0600a458a8d..58f3bdc5298 100644 --- a/test/src/BuildTest.ts +++ b/test/src/BuildTest.ts @@ -1,7 +1,7 @@ import { checkBuildRequestOptions } from "app-builder-lib" import { doMergeConfigs } from "app-builder-lib/out/util/config/config" import { Arch, createTargets, DIR_TARGET, Platform } from "electron-builder" -import { createYargs } from "electron-builder/out/builder" +import { createYargs } from "electron-builder" import { promises as fs } from "fs" import { outputFile, outputJson } from "fs-extra" import * as path from "path" diff --git a/test/src/helpers/asarVerifier.ts b/test/src/helpers/asarVerifier.ts index fb2842f22f1..24d220ce97b 100644 --- a/test/src/helpers/asarVerifier.ts +++ b/test/src/helpers/asarVerifier.ts @@ -1,4 +1,4 @@ -import { readAsar } from "app-builder-lib/src/asar/asar" +import { readAsar } from "app-builder-lib" import path from "path" import { expect, ExpectStatic } from "vitest" diff --git a/test/src/updater/differentialUpdateTest.ts b/test/src/updater/differentialUpdateTest.ts index 8ce968d852b..cf58de47ea8 100644 --- a/test/src/updater/differentialUpdateTest.ts +++ b/test/src/updater/differentialUpdateTest.ts @@ -6,13 +6,13 @@ import { EventEmitter } from "events" import { move } from "fs-extra" import * as path from "path" import { TmpDir } from "temp-file" -import { TestAppAdapter } from "../helpers/TestAppAdapter" -import { EXTENDED_TIMEOUT, PackedContext, assertPack, removeUnstableProperties } from "../helpers/packTester" -import { NEW_VERSION_NUMBER, OLD_VERSION_NUMBER, testAppCacheDirName, tuneTestUpdater, writeUpdateConfig } from "../helpers/updaterTestUtil" +import { TestAppAdapter } from "../helpers/TestAppAdapter.js" +import { EXTENDED_TIMEOUT, PackedContext, assertPack, removeUnstableProperties } from "../helpers/packTester.js" +import { NEW_VERSION_NUMBER, OLD_VERSION_NUMBER, testAppCacheDirName, tuneTestUpdater, writeUpdateConfig } from "../helpers/updaterTestUtil.js" import { mockForNodeRequire } from "vitest-mock-commonjs" import { ExpectStatic } from "vitest" -import { getRanLocalServerPath } from "../helpers/launchAppCrossPlatform" -import { ToolsetConfig } from "app-builder-lib/src/configuration" +import { getRanLocalServerPath } from "../helpers/launchAppCrossPlatform.js" +import { ToolsetConfig } from "app-builder-lib/src/configuration.js" async function doBuild( expect: ExpectStatic, diff --git a/test/src/windows/assistedInstallerTest.ts b/test/src/windows/assistedInstallerTest.ts index d7758c5e8e1..c4c6496a5e0 100644 --- a/test/src/windows/assistedInstallerTest.ts +++ b/test/src/windows/assistedInstallerTest.ts @@ -3,7 +3,7 @@ import * as fs from "fs/promises" import * as path from "path" import { app, assertPack, copyTestAsset } from "../helpers/packTester" import { checkHelpers, doTest, expectUpdateMetadata } from "../helpers/winHelper" -import { ToolsetConfig } from "app-builder-lib/src/configuration" +import { ToolsetConfig } from "app-builder-lib" const winCodeSignVersions: ToolsetConfig["winCodeSign"][] = ["0.0.0", "1.0.0", "1.1.0"] const nsisTarget = Platform.WINDOWS.createTarget("nsis", Arch.x64) diff --git a/test/src/windows/msiWrappedTest.ts b/test/src/windows/msiWrappedTest.ts index 22cc72f9596..121075368b2 100644 --- a/test/src/windows/msiWrappedTest.ts +++ b/test/src/windows/msiWrappedTest.ts @@ -2,7 +2,7 @@ import { Arch, Platform } from "electron-builder" import { XMLParser } from "fast-xml-parser" import * as fs from "fs" import { app, appThrows } from "../helpers/packTester" -import { ToolsetConfig } from "app-builder-lib/src/configuration" +import { ToolsetConfig } from "app-builder-lib" const parser = new XMLParser({ ignoreAttributes: false, diff --git a/test/src/windows/winCodeSignTest.ts b/test/src/windows/winCodeSignTest.ts index 4ab05b5065e..ff882362413 100644 --- a/test/src/windows/winCodeSignTest.ts +++ b/test/src/windows/winCodeSignTest.ts @@ -6,7 +6,7 @@ import * as path from "path" import { CheckingWinPackager } from "../helpers/CheckingPackager" import { app, appThrows } from "../helpers/packTester" import { ExpectStatic } from "vitest" -import { ToolsetConfig } from "app-builder-lib/src/configuration" +import { ToolsetConfig } from "app-builder-lib" test("parseDn", ({ expect }) => { expect(parseDn("CN=7digital Limited, O=7digital Limited, L=London, C=GB")).toMatchSnapshot() @@ -85,7 +85,7 @@ for (const winCodeSign of winCodeSignVersions) { return Promise.resolve() })) test("certificateFile/password - sign as Promise", ({ expect }) => testCustomSign(expect, () => Promise.resolve())) - test("certificateFile/password - sign as function", async ({ expect }) => testCustomSign(expect, (await import("../helpers/customWindowsSign")).default)) + test("certificateFile/password - sign as function", async ({ expect }) => testCustomSign(expect, (await import("../helpers/customWindowsSign.js")).default)) test("certificateFile/password - sign as path", ({ expect }) => testCustomSign(expect, path.join(__dirname, "../helpers/customWindowsSign.mjs"))) test("custom sign if no code sign info", ({ expect }) => { diff --git a/test/src/windows/winPackagerTest.ts b/test/src/windows/winPackagerTest.ts index cddc4aa1ead..8d327a822ab 100644 --- a/test/src/windows/winPackagerTest.ts +++ b/test/src/windows/winPackagerTest.ts @@ -1,9 +1,9 @@ -import { ToolsetConfig } from "app-builder-lib/src/configuration" +import { ToolsetConfig } from "app-builder-lib" import { Arch, DIR_TARGET, Platform } from "electron-builder" import * as fs from "fs/promises" import * as path from "path" -import { CheckingWinPackager } from "../helpers/CheckingPackager" -import { app, appThrows, assertPack, platform } from "../helpers/packTester" +import { CheckingWinPackager } from "../helpers/CheckingPackager.js" +import { app, appThrows, assertPack, platform } from "../helpers/packTester.js" const winCodeSignVersions: ToolsetConfig["winCodeSign"][] = ["0.0.0", "1.0.0", "1.1.0"] From a99f56147d17e8b290769006fb3488d80304380c Mon Sep 17 00:00:00 2001 From: Mike Maietta Date: Wed, 8 Apr 2026 06:17:37 -0700 Subject: [PATCH 22/65] tmp save, catching up to master --- packages/app-builder-lib/src/index.ts | 9 ++++++++ packages/app-builder-lib/src/linuxPackager.ts | 22 +++++++++---------- .../src/SquirrelWindowsTarget.ts | 7 +++--- .../src/cli/install-app-deps.ts | 8 +------ .../electron-publish/src/gitHubPublisher.ts | 8 +++---- .../electron-publish/src/gitlabPublisher.ts | 8 +++---- test/src/BuildTest.ts | 10 ++++----- test/src/mac/dmgTest.ts | 4 ++-- 8 files changed, 40 insertions(+), 36 deletions(-) diff --git a/packages/app-builder-lib/src/index.ts b/packages/app-builder-lib/src/index.ts index 9db5e0aee24..10fb716a8ad 100644 --- a/packages/app-builder-lib/src/index.ts +++ b/packages/app-builder-lib/src/index.ts @@ -69,6 +69,15 @@ export { PlatformPackager } from "./platformPackager.js" export { PublishManager } from "./publish/PublishManager.js" export { WinPackager } from "./winPackager.js" export { readAsar } from "./asar/asar.js" +export { installOrRebuild } from "./util/yarn.js" +export { PACKAGE_VERSION } from "./version.js" +export { createLazyProductionDeps } from "./util/packageDependencies.js" +export { determinePackageManagerEnv } from "./node-module-collector/index.js" +export { computeDefaultAppDirectory } from "./util/config/config.js" +export { getConfig } from "./util/config/config.js" +export { getElectronVersion } from "./electron/electronVersion.js" +export { execWine } from "./wine.js" +export { getBinFromUrl } from "./binDownload.js" const expectedOptions = new Set(["publish", "targets", "mac", "win", "linux", "projectDir", "platformPackagerFactory", "config", "effectiveOptionComputed", "prepackaged"]) diff --git a/packages/app-builder-lib/src/linuxPackager.ts b/packages/app-builder-lib/src/linuxPackager.ts index ba42b5ad534..407fa91f021 100644 --- a/packages/app-builder-lib/src/linuxPackager.ts +++ b/packages/app-builder-lib/src/linuxPackager.ts @@ -1,15 +1,15 @@ import { Arch } from "builder-util" -import { sanitizeFileName } from "builder-util/out/filename" -import { DIR_TARGET, Platform, Target } from "./core" -import { LinuxConfiguration } from "./options/linuxOptions" -import { Packager } from "./packager" -import { PlatformPackager } from "./platformPackager" -import AppImageTarget from "./targets/appimage/AppImageTarget" -import FlatpakTarget from "./targets/FlatpakTarget" -import FpmTarget from "./targets/FpmTarget" -import { LinuxTargetHelper } from "./targets/LinuxTargetHelper" -import SnapTarget from "./targets/snap" -import { createCommonTarget } from "./targets/targetFactory" +import { sanitizeFileName } from "builder-util" +import { DIR_TARGET, Platform, Target } from "./core.js" +import { LinuxConfiguration } from "./options/linuxOptions.js" +import { Packager } from "./packager.js" +import { PlatformPackager } from "./platformPackager.js" +import AppImageTarget from "./targets/appimage/AppImageTarget.js" +import FlatpakTarget from "./targets/FlatpakTarget.js" +import FpmTarget from "./targets/FpmTarget.js" +import { LinuxTargetHelper } from "./targets/LinuxTargetHelper.js" +import SnapTarget from "./targets/snap.js" +import { createCommonTarget } from "./targets/targetFactory.js" export class LinuxPackager extends PlatformPackager { readonly executableName: string diff --git a/packages/electron-builder-squirrel-windows/src/SquirrelWindowsTarget.ts b/packages/electron-builder-squirrel-windows/src/SquirrelWindowsTarget.ts index 777d48a5fd5..ba57da8b9e8 100644 --- a/packages/electron-builder-squirrel-windows/src/SquirrelWindowsTarget.ts +++ b/packages/electron-builder-squirrel-windows/src/SquirrelWindowsTarget.ts @@ -1,6 +1,6 @@ import { InvalidConfigurationError, log, isEmptyOrSpaces, exists } from "builder-util" -import { execWine } from "app-builder-lib/out/wine" -import { getBinFromUrl } from "app-builder-lib/out/binDownload" +import { execWine } from "app-builder-lib" +import { getBinFromUrl } from "app-builder-lib" import { sanitizeFileName } from "builder-util/out/filename" import { Arch, getArchSuffix, SquirrelWindowsOptions, Target, WinPackager } from "app-builder-lib" import * as path from "path" @@ -10,7 +10,7 @@ import { Options as SquirrelOptions, createWindowsInstaller, convertVersion } fr export default class SquirrelWindowsTarget extends Target { //tslint:disable-next-line:no-object-literal-type-assertion - readonly options: SquirrelWindowsOptions = { ...this.packager.platformSpecificBuildOptions, ...this.packager.config.squirrelWindows } as SquirrelWindowsOptions + readonly options: SquirrelWindowsOptions isAsyncSupported = false @@ -19,6 +19,7 @@ export default class SquirrelWindowsTarget extends Target { readonly outDir: string ) { super("squirrel") + this.options = { ...this.packager.platformSpecificBuildOptions, ...this.packager.config.squirrelWindows } } private async prepareSignedVendorDirectory(): Promise { diff --git a/packages/electron-builder/src/cli/install-app-deps.ts b/packages/electron-builder/src/cli/install-app-deps.ts index ce6d914b5ce..f1e096db250 100644 --- a/packages/electron-builder/src/cli/install-app-deps.ts +++ b/packages/electron-builder/src/cli/install-app-deps.ts @@ -1,11 +1,5 @@ #! /usr/bin/env node -import { getElectronVersion } from "app-builder-lib" -import { determinePackageManagerEnv } from "app-builder-lib/src/node-module-collector/index.js" -import { computeDefaultAppDirectory } from "app-builder-lib/src/util/config/config.js" -import { getConfig } from "app-builder-lib/src/util/config/config.js" -import { createLazyProductionDeps } from "app-builder-lib/src/util/packageDependencies.js" -import { installOrRebuild } from "app-builder-lib/src/util/yarn.js" -import { PACKAGE_VERSION } from "app-builder-lib/src/version.js" +import { computeDefaultAppDirectory, createLazyProductionDeps, determinePackageManagerEnv, getConfig, getElectronVersion, installOrRebuild, PACKAGE_VERSION } from "app-builder-lib" import { getArchCliNames, log, orNullIfFileNotExist, printErrorAndExit } from "builder-util" import { readJson } from "fs-extra" import { Lazy } from "lazy-val" diff --git a/packages/electron-publish/src/gitHubPublisher.ts b/packages/electron-publish/src/gitHubPublisher.ts index ea525cb49f8..13ad01f28d5 100644 --- a/packages/electron-publish/src/gitHubPublisher.ts +++ b/packages/electron-publish/src/gitHubPublisher.ts @@ -4,10 +4,10 @@ import { ClientRequest } from "http" import { Lazy } from "lazy-val" import * as mime from "mime" import { parse as parseUrl, UrlWithStringQuery } from "url" -import { HttpPublisher } from "./httpPublisher" -import { PublishContext, PublishOptions } from "./index" -import { getCiTag } from "./publisher" -import { trimStringWithWarn } from "./util" +import { HttpPublisher } from "./httpPublisher.js" +import { PublishContext, PublishOptions } from "./index.js" +import { getCiTag } from "./publisher.js" +import { trimStringWithWarn } from "./util.js" export interface Release { id: number diff --git a/packages/electron-publish/src/gitlabPublisher.ts b/packages/electron-publish/src/gitlabPublisher.ts index ceedfa3d84e..f7f3d704682 100644 --- a/packages/electron-publish/src/gitlabPublisher.ts +++ b/packages/electron-publish/src/gitlabPublisher.ts @@ -6,11 +6,11 @@ import { configureRequestOptions, GitlabOptions, GitlabReleaseInfo, parseJson, H import { ClientRequest } from "http" import { Lazy } from "lazy-val" import * as mime from "mime" -import * as FormData from "form-data" +import FormData from "form-data" import { URL } from "url" -import { HttpPublisher } from "./httpPublisher" -import { PublishContext } from "./index" -import { trimStringWithWarn } from "./util" +import { HttpPublisher } from "./httpPublisher.js" +import { PublishContext } from "./index.js" +import { trimStringWithWarn } from "./util.js" type RequestProcessor = (request: ClientRequest, reject: (error: Error) => void) => void diff --git a/test/src/BuildTest.ts b/test/src/BuildTest.ts index 58f3bdc5298..93d9a0ab141 100644 --- a/test/src/BuildTest.ts +++ b/test/src/BuildTest.ts @@ -1,14 +1,14 @@ import { checkBuildRequestOptions } from "app-builder-lib" -import { doMergeConfigs } from "app-builder-lib/out/util/config/config" +import { doMergeConfigs } from "app-builder-lib/out/util/config/config.js" import { Arch, createTargets, DIR_TARGET, Platform } from "electron-builder" import { createYargs } from "electron-builder" import { promises as fs } from "fs" import { outputFile, outputJson } from "fs-extra" import * as path from "path" -import { app, appTwo, appTwoThrows, assertPack, getFixtureDir, linuxDirTarget, modifyPackageJson, packageJson, toSystemIndependentPath } from "./helpers/packTester" -import { ELECTRON_VERSION } from "./helpers/testConfig" -import { verifySmartUnpack } from "./helpers/verifySmartUnpack" -import { PM } from "app-builder-lib/out/node-module-collector/packageManager" +import { app, appTwo, appTwoThrows, assertPack, getFixtureDir, linuxDirTarget, modifyPackageJson, packageJson, toSystemIndependentPath } from "./helpers/packTester.js" +import { ELECTRON_VERSION } from "./helpers/testConfig.js" +import { verifySmartUnpack } from "./helpers/verifySmartUnpack.js" +import { PM } from "app-builder-lib" test.ifLinux("cli", ({ expect }) => { // because these methods are internal diff --git a/test/src/mac/dmgTest.ts b/test/src/mac/dmgTest.ts index eb8eb0c8c49..f260890bbf3 100644 --- a/test/src/mac/dmgTest.ts +++ b/test/src/mac/dmgTest.ts @@ -7,7 +7,7 @@ import * as path from "path" import { assertThat } from "../helpers/fileAssert" import { app, assertPack, copyTestAsset } from "../helpers/packTester" import { beforeAll } from "vitest" -import type { attachAndExecute as aAndE, getDmgTemplatePath as dmgTemplate } from "dmg-builder/out/dmgUtil" +import type { attachAndExecute as aAndE, getDmgTemplatePath as dmgTemplate } from "dmg-builder/out/dmgUtil.js" const dmgTarget = Platform.MAC.createTarget("dmg", Arch.x64) const defaultTarget = Platform.MAC.createTarget(undefined, Arch.x64) @@ -18,7 +18,7 @@ describe.heavy.ifMac("dmg", { sequential: true }, () => { beforeAll(async () => { // import at runtime to avoid issues on non-macOS platforms - const { attachAndExecute: a, getDmgTemplatePath: d } = await import("dmg-builder/out/dmgUtil") + const { attachAndExecute: a, getDmgTemplatePath: d } = await import("dmg-builder/out/dmgUtil.js") attachAndExecute = a getDmgTemplatePath = d }) From df7f6e978e90355853956ef13946cb8d1ea4f2db Mon Sep 17 00:00:00 2001 From: Mike Maietta Date: Wed, 8 Apr 2026 06:52:23 -0700 Subject: [PATCH 23/65] tmp save --- packages/app-builder-lib/src/index.ts | 3 ++ .../src/node-module-collector/index.ts | 14 +++++----- .../nodeModulesCollector.ts | 8 +++--- .../pnpmNodeModulesCollector.ts | 8 +++--- .../traversalNodeModulesCollector.ts | 4 +-- .../yarnNodeModulesCollector.ts | 6 ++-- .../src/publish/PublishManager.ts | 18 ++++++------ .../app-builder-lib/src/targets/AppxTarget.ts | 3 +- .../app-builder-lib/src/targets/FpmTarget.ts | 28 +++++++++---------- .../src/targets/appimage/AppImageTarget.ts | 20 ++++++------- .../src/SquirrelWindowsTarget.ts | 11 +++----- .../src/cli/create-self-signed-cert.ts | 2 +- test/src/BuildTest.ts | 2 +- test/src/helpers/launchAppCrossPlatform.ts | 2 +- test/src/updater/blackboxUpdateTest.ts | 2 +- test/src/updater/differentialUpdateTest.ts | 2 +- 16 files changed, 67 insertions(+), 66 deletions(-) diff --git a/packages/app-builder-lib/src/index.ts b/packages/app-builder-lib/src/index.ts index 10fb716a8ad..0c862f2164e 100644 --- a/packages/app-builder-lib/src/index.ts +++ b/packages/app-builder-lib/src/index.ts @@ -78,6 +78,9 @@ export { getConfig } from "./util/config/config.js" export { getElectronVersion } from "./electron/electronVersion.js" export { execWine } from "./wine.js" export { getBinFromUrl } from "./binDownload.js" +export { PM } from "./node-module-collector/packageManager.js" +export { doMergeConfigs } from "./util/config/config.js" +export { getWindowsKitsBundle } from "./toolsets/windows.js" const expectedOptions = new Set(["publish", "targets", "mac", "win", "linux", "projectDir", "platformPackagerFactory", "config", "effectiveOptionComputed", "prepackaged"]) diff --git a/packages/app-builder-lib/src/node-module-collector/index.ts b/packages/app-builder-lib/src/node-module-collector/index.ts index 43cfea4c6e2..ede4e6dbe1a 100644 --- a/packages/app-builder-lib/src/node-module-collector/index.ts +++ b/packages/app-builder-lib/src/node-module-collector/index.ts @@ -1,16 +1,16 @@ import { Nullish } from "builder-util-runtime" import { TmpDir } from "temp-file" -import { NpmNodeModulesCollector } from "./npmNodeModulesCollector" -import { detectPackageManager, getPackageManagerCommand, PM } from "./packageManager" -import { PnpmNodeModulesCollector } from "./pnpmNodeModulesCollector" -import { YarnBerryNodeModulesCollector } from "./yarnBerryNodeModulesCollector" -import { YarnNodeModulesCollector } from "./yarnNodeModulesCollector" -import { BunNodeModulesCollector } from "./bunNodeModulesCollector" +import { NpmNodeModulesCollector } from "./npmNodeModulesCollector.js" +import { detectPackageManager, getPackageManagerCommand, PM } from "./packageManager.js" +import { PnpmNodeModulesCollector } from "./pnpmNodeModulesCollector.js" +import { YarnBerryNodeModulesCollector } from "./yarnBerryNodeModulesCollector.js" +import { YarnNodeModulesCollector } from "./yarnNodeModulesCollector.js" +import { BunNodeModulesCollector } from "./bunNodeModulesCollector.js" import { Lazy } from "lazy-val" import { spawn, log, exists, isEmptyOrSpaces } from "builder-util" import * as fs from "fs-extra" import * as path from "path" -import { TraversalNodeModulesCollector } from "./traversalNodeModulesCollector" +import { TraversalNodeModulesCollector } from "./traversalNodeModulesCollector.js" export { getPackageManagerCommand, PM } diff --git a/packages/app-builder-lib/src/node-module-collector/nodeModulesCollector.ts b/packages/app-builder-lib/src/node-module-collector/nodeModulesCollector.ts index 043c8a673a9..a58b1e57255 100644 --- a/packages/app-builder-lib/src/node-module-collector/nodeModulesCollector.ts +++ b/packages/app-builder-lib/src/node-module-collector/nodeModulesCollector.ts @@ -4,10 +4,10 @@ import * as fs from "fs-extra" import { createWriteStream } from "fs-extra" import { Lazy } from "lazy-val" import * as path from "path" -import { hoist, type HoisterResult, type HoisterTree } from "./hoist" -import { LogMessageByKey, ModuleManager } from "./moduleManager" -import { getPackageManagerCommand, PM } from "./packageManager" -import type { Dependency, DependencyGraph, NodeModuleInfo, PackageJson } from "./types" +import { hoist, type HoisterResult, type HoisterTree } from "./hoist.js" +import { LogMessageByKey, ModuleManager } from "./moduleManager.js" +import { getPackageManagerCommand, PM } from "./packageManager.js" +import type { Dependency, DependencyGraph, NodeModuleInfo, PackageJson } from "./types.js" export abstract class NodeModulesCollector, OptionalDepType> { private readonly nodeModules: NodeModuleInfo[] = [] diff --git a/packages/app-builder-lib/src/node-module-collector/pnpmNodeModulesCollector.ts b/packages/app-builder-lib/src/node-module-collector/pnpmNodeModulesCollector.ts index d0f2e0fcb9f..aa386acaa4c 100644 --- a/packages/app-builder-lib/src/node-module-collector/pnpmNodeModulesCollector.ts +++ b/packages/app-builder-lib/src/node-module-collector/pnpmNodeModulesCollector.ts @@ -1,7 +1,7 @@ -import { LogMessageByKey } from "./moduleManager" -import { NodeModulesCollector } from "./nodeModulesCollector" -import { PM } from "./packageManager" -import { PnpmDependency } from "./types" +import { LogMessageByKey } from "./moduleManager.js" +import { NodeModulesCollector } from "./nodeModulesCollector.js" +import { PM } from "./packageManager.js" +import { PnpmDependency } from "./types.js" export class PnpmNodeModulesCollector extends NodeModulesCollector { public readonly installOptions = { diff --git a/packages/app-builder-lib/src/node-module-collector/traversalNodeModulesCollector.ts b/packages/app-builder-lib/src/node-module-collector/traversalNodeModulesCollector.ts index eef5dd98700..b375829d3d0 100644 --- a/packages/app-builder-lib/src/node-module-collector/traversalNodeModulesCollector.ts +++ b/packages/app-builder-lib/src/node-module-collector/traversalNodeModulesCollector.ts @@ -1,7 +1,7 @@ import { log } from "builder-util" import * as path from "path" -import { LogMessageByKey } from "./moduleManager" -import { NodeModulesCollector } from "./nodeModulesCollector" +import { LogMessageByKey } from "./moduleManager.js" +import { NodeModulesCollector } from "./nodeModulesCollector.js" import { PM } from "./packageManager.js" import { TraversedDependency } from "./types.js" diff --git a/packages/app-builder-lib/src/node-module-collector/yarnNodeModulesCollector.ts b/packages/app-builder-lib/src/node-module-collector/yarnNodeModulesCollector.ts index ed2cbdb4453..6054208553a 100644 --- a/packages/app-builder-lib/src/node-module-collector/yarnNodeModulesCollector.ts +++ b/packages/app-builder-lib/src/node-module-collector/yarnNodeModulesCollector.ts @@ -1,6 +1,6 @@ -import { NpmNodeModulesCollector } from "./npmNodeModulesCollector" -import { PM } from "./packageManager" -import { NpmDependency } from "./types" +import { NpmNodeModulesCollector } from "./npmNodeModulesCollector.js" +import { PM } from "./packageManager.js" +import { NpmDependency } from "./types.js" // Yarn Classic (v1) produces a hoisted node_modules structure similar to npm. // Instead of parsing Yarn's custom NDJSON output, we leverage npm's list command diff --git a/packages/app-builder-lib/src/publish/PublishManager.ts b/packages/app-builder-lib/src/publish/PublishManager.ts index 9128c189573..d5063f3c49c 100644 --- a/packages/app-builder-lib/src/publish/PublishManager.ts +++ b/packages/app-builder-lib/src/publish/PublishManager.ts @@ -29,20 +29,20 @@ import { SpacesPublisher, UploadTask, } from "electron-publish" -import { MultiProgress } from "electron-publish/out/multiProgress" +import { MultiProgress } from "electron-publish" import { readFile, writeFile } from "fs/promises" import { isCI } from "ci-info" import * as path from "path" import { WriteStream as TtyWriteStream } from "tty" import * as url from "url" -import { AppInfo, ArtifactCreated, Configuration, Platform, PlatformSpecificBuildOptions, Target, TargetSpecificOptions } from "../index" -import { Packager } from "../packager" -import { PlatformPackager } from "../platformPackager" -import { expandMacro } from "../util/macroExpander" -import { WinPackager } from "../winPackager" -import { createUpdateInfoTasks, UpdateInfoFileTask, writeUpdateInfoFiles } from "./updateInfoBuilder" -import { resolveModule } from "../util/resolve" -import { parseUrl } from "../util/pathManager" +import { AppInfo, ArtifactCreated, Configuration, Platform, PlatformSpecificBuildOptions, Target, TargetSpecificOptions } from "../index.js" +import { Packager } from "../packager.js" +import { PlatformPackager } from "../platformPackager.js" +import { expandMacro } from "../util/macroExpander.js" +import { WinPackager } from "../winPackager.js" +import { createUpdateInfoTasks, UpdateInfoFileTask, writeUpdateInfoFiles } from "./updateInfoBuilder.js" +import { resolveModule } from "../util/resolve.js" +import { parseUrl } from "../util/pathManager.js" const publishForPrWarning = "There are serious security concerns with PUBLISH_FOR_PULL_REQUEST=true (see the CircleCI documentation (https://circleci.com/docs/1.0/fork-pr-builds/) for details)" + diff --git a/packages/app-builder-lib/src/targets/AppxTarget.ts b/packages/app-builder-lib/src/targets/AppxTarget.ts index 82776fed377..615bb64d638 100644 --- a/packages/app-builder-lib/src/targets/AppxTarget.ts +++ b/packages/app-builder-lib/src/targets/AppxTarget.ts @@ -49,7 +49,7 @@ const restrictedApplicationIdValues = [ const DEFAULT_RESOURCE_LANG = "en-US" export default class AppXTarget extends Target { - readonly options: AppXOptions = deepAssign({}, this.packager.platformSpecificBuildOptions, this.packager.config.appx) + readonly options: AppXOptions isAsyncSupported = false @@ -58,6 +58,7 @@ export default class AppXTarget extends Target { readonly outDir: string ) { super("appx") + this.options = deepAssign({}, this.packager.platformSpecificBuildOptions, this.packager.config.appx) if (process.platform !== "darwin" && (process.platform !== "win32" || isOldWin6())) { throw new Error("AppX is supported only on Windows 10 or Windows Server 2012 R2 (version number 6.3+)") diff --git a/packages/app-builder-lib/src/targets/FpmTarget.ts b/packages/app-builder-lib/src/targets/FpmTarget.ts index a77508614ab..71ca0b90b5a 100644 --- a/packages/app-builder-lib/src/targets/FpmTarget.ts +++ b/packages/app-builder-lib/src/targets/FpmTarget.ts @@ -3,20 +3,20 @@ import { Nullish } from "builder-util-runtime" import { copyFile, outputFile, stat } from "fs-extra" import { mkdir, readFile } from "fs/promises" import * as path from "path" -import { smarten } from "../appInfo" -import { Target } from "../core" -import * as errorMessages from "../errorMessages" -import { LinuxPackager } from "../linuxPackager" -import { DebOptions, LinuxTargetSpecificOptions } from "../options/linuxOptions" -import { ArtifactCreated } from "../packagerApi" -import { getAppUpdatePublishConfiguration } from "../publish/PublishManager" -import { objectToArgs } from "../util/appBuilder" -import { computeEnv } from "../util/bundledTool" -import { hashFile } from "../util/hash" -import { isMacOsSierra } from "../util/macosVersion" -import { getTemplatePath } from "../util/pathManager" -import { installPrefix, LinuxTargetHelper } from "./LinuxTargetHelper" -import { getFpmPath, getLinuxToolsPath } from "../toolsets/linux" +import { smarten } from "../appInfo.js" +import { Target } from "../core.js" +import * as errorMessages from "../errorMessages.js" +import { LinuxPackager } from "../linuxPackager.js" +import { DebOptions, LinuxTargetSpecificOptions } from "../options/linuxOptions.js" +import { ArtifactCreated } from "../packagerApi.js" +import { getAppUpdatePublishConfiguration } from "../publish/PublishManager.js" +import { objectToArgs } from "../util/appBuilder.js" +import { computeEnv } from "../util/bundledTool.js" +import { hashFile } from "../util/hash.js" +import { isMacOsSierra } from "../util/macosVersion.js" +import { getTemplatePath } from "../util/pathManager.js" +import { installPrefix, LinuxTargetHelper } from "./LinuxTargetHelper.js" +import { getFpmPath, getLinuxToolsPath } from "../toolsets/linux.js" interface FpmOptions { name: string diff --git a/packages/app-builder-lib/src/targets/appimage/AppImageTarget.ts b/packages/app-builder-lib/src/targets/appimage/AppImageTarget.ts index fb7b08bdf74..6e4f5b95329 100644 --- a/packages/app-builder-lib/src/targets/appimage/AppImageTarget.ts +++ b/packages/app-builder-lib/src/targets/appimage/AppImageTarget.ts @@ -1,17 +1,17 @@ -import { IconInfo } from "../../platformPackager" +import { IconInfo } from "../../platformPackager.js" import { Arch, log, serializeToYaml } from "builder-util" import { outputFile } from "fs-extra" import { Lazy } from "lazy-val" import * as path from "path" -import { Target } from "../../core" -import { LinuxPackager } from "../../linuxPackager" -import { AppImageOptions } from "../../options/linuxOptions" -import { getAppUpdatePublishConfiguration } from "../../publish/PublishManager" -import { executeAppBuilderAsJson, objectToArgs } from "../../util/appBuilder" -import { getNotLocalizedLicenseFile } from "../../util/license" -import { LinuxTargetHelper } from "../LinuxTargetHelper" -import { createStageDir, StageDir } from "../targetUtil" -import { buildAppImage } from "./appImageUtil" +import { Target } from "../../core.js" +import { LinuxPackager } from "../../linuxPackager.js" +import { AppImageOptions } from "../../options/linuxOptions.js" +import { getAppUpdatePublishConfiguration } from "../../publish/PublishManager.js" +import { executeAppBuilderAsJson, objectToArgs } from "../../util/appBuilder.js" +import { getNotLocalizedLicenseFile } from "../../util/license.js" +import { LinuxTargetHelper } from "../LinuxTargetHelper.js" +import { createStageDir, StageDir } from "../targetUtil.js" +import { buildAppImage } from "./appImageUtil.js" import { BlockMapDataHolder } from "builder-util-runtime" // https://unix.stackexchange.com/questions/375191/append-to-sub-directory-inside-squashfs-file diff --git a/packages/electron-builder-squirrel-windows/src/SquirrelWindowsTarget.ts b/packages/electron-builder-squirrel-windows/src/SquirrelWindowsTarget.ts index ba57da8b9e8..0539efb0fa1 100644 --- a/packages/electron-builder-squirrel-windows/src/SquirrelWindowsTarget.ts +++ b/packages/electron-builder-squirrel-windows/src/SquirrelWindowsTarget.ts @@ -1,12 +1,9 @@ -import { InvalidConfigurationError, log, isEmptyOrSpaces, exists } from "builder-util" -import { execWine } from "app-builder-lib" -import { getBinFromUrl } from "app-builder-lib" -import { sanitizeFileName } from "builder-util/out/filename" -import { Arch, getArchSuffix, SquirrelWindowsOptions, Target, WinPackager } from "app-builder-lib" -import * as path from "path" +import { Arch, execWine, getArchSuffix, getBinFromUrl, SquirrelWindowsOptions, Target, WinPackager } from "app-builder-lib" +import { exists, InvalidConfigurationError, isEmptyOrSpaces, log, sanitizeFileName } from "builder-util" +import { convertVersion, createWindowsInstaller, Options as SquirrelOptions } from "electron-winstaller" import * as fs from "fs" import * as os from "os" -import { Options as SquirrelOptions, createWindowsInstaller, convertVersion } from "electron-winstaller" +import * as path from "path" export default class SquirrelWindowsTarget extends Target { //tslint:disable-next-line:no-object-literal-type-assertion diff --git a/packages/electron-builder/src/cli/create-self-signed-cert.ts b/packages/electron-builder/src/cli/create-self-signed-cert.ts index 97e0c0b8ca3..77ab8e10ee6 100644 --- a/packages/electron-builder/src/cli/create-self-signed-cert.ts +++ b/packages/electron-builder/src/cli/create-self-signed-cert.ts @@ -1,4 +1,4 @@ -import { getWindowsKitsBundle } from "app-builder-lib/out/toolsets/windows" +import { getWindowsKitsBundle } from "app-builder-lib" import { archFromString, exec, log, spawn, TmpDir, unlinkIfExists } from "builder-util" import { sanitizeFileName } from "builder-util/out/filename" import * as chalk from "chalk" diff --git a/test/src/BuildTest.ts b/test/src/BuildTest.ts index 93d9a0ab141..4574d6e7994 100644 --- a/test/src/BuildTest.ts +++ b/test/src/BuildTest.ts @@ -1,5 +1,5 @@ import { checkBuildRequestOptions } from "app-builder-lib" -import { doMergeConfigs } from "app-builder-lib/out/util/config/config.js" +import { doMergeConfigs } from "app-builder-lib" import { Arch, createTargets, DIR_TARGET, Platform } from "electron-builder" import { createYargs } from "electron-builder" import { promises as fs } from "fs" diff --git a/test/src/helpers/launchAppCrossPlatform.ts b/test/src/helpers/launchAppCrossPlatform.ts index 594df6b97cd..f4e0c5c316a 100644 --- a/test/src/helpers/launchAppCrossPlatform.ts +++ b/test/src/helpers/launchAppCrossPlatform.ts @@ -1,4 +1,4 @@ -import { getBinFromUrl } from "app-builder-lib/src/binDownload" +import { getBinFromUrl } from "app-builder-lib" import { isEmptyOrSpaces } from "builder-util" import { ChildProcess, spawn } from "child_process" import { chmodSync } from "fs" diff --git a/test/src/updater/blackboxUpdateTest.ts b/test/src/updater/blackboxUpdateTest.ts index b26882603a8..79520591147 100644 --- a/test/src/updater/blackboxUpdateTest.ts +++ b/test/src/updater/blackboxUpdateTest.ts @@ -1,5 +1,5 @@ import { ToolsetConfig } from "app-builder-lib" -import { PM } from "app-builder-lib/src/node-module-collector" +import { PM } from "app-builder-lib/out/node-module-collector" import { GenericServerOptions, Nullish } from "builder-util-runtime" import { archFromString, doSpawn, getArchSuffix, isEmptyOrSpaces, log, spawn, TmpDir } from "builder-util/out/util" import { execFileSync, execSync } from "child_process" diff --git a/test/src/updater/differentialUpdateTest.ts b/test/src/updater/differentialUpdateTest.ts index cf58de47ea8..db3859e13df 100644 --- a/test/src/updater/differentialUpdateTest.ts +++ b/test/src/updater/differentialUpdateTest.ts @@ -12,7 +12,7 @@ import { NEW_VERSION_NUMBER, OLD_VERSION_NUMBER, testAppCacheDirName, tuneTestUp import { mockForNodeRequire } from "vitest-mock-commonjs" import { ExpectStatic } from "vitest" import { getRanLocalServerPath } from "../helpers/launchAppCrossPlatform.js" -import { ToolsetConfig } from "app-builder-lib/src/configuration.js" +import { ToolsetConfig } from "app-builder-lib/out/configuration.js" async function doBuild( expect: ExpectStatic, From 9269332a9bb167eabc54de507e3fd973daac7e6e Mon Sep 17 00:00:00 2001 From: Mike Maietta Date: Wed, 8 Apr 2026 07:05:06 -0700 Subject: [PATCH 24/65] tmp save --- packages/app-builder-lib/src/index.ts | 19 +++++++- .../app-builder-lib/src/targets/FpmTarget.ts | 4 +- .../src/targets/appimage/AppImageTarget.ts | 3 +- .../src/targets/appimage/appLauncher.ts | 2 +- .../app-builder-lib/src/targets/archive.ts | 6 +-- .../app-builder-lib/src/toolsets/windows.ts | 8 ++-- packages/app-builder-lib/src/winPackager.ts | 46 +++++++++---------- 7 files changed, 52 insertions(+), 36 deletions(-) diff --git a/packages/app-builder-lib/src/index.ts b/packages/app-builder-lib/src/index.ts index 0c862f2164e..c8d44540c05 100644 --- a/packages/app-builder-lib/src/index.ts +++ b/packages/app-builder-lib/src/index.ts @@ -68,19 +68,34 @@ export { CustomMacSign, CustomMacSignOptions, MacPackager } from "./macPackager. export { PlatformPackager } from "./platformPackager.js" export { PublishManager } from "./publish/PublishManager.js" export { WinPackager } from "./winPackager.js" -export { readAsar } from "./asar/asar.js" +export { readAsar, readAsarJson, AsarFilesystem } from "./asar/asar.js" export { installOrRebuild } from "./util/yarn.js" export { PACKAGE_VERSION } from "./version.js" export { createLazyProductionDeps } from "./util/packageDependencies.js" export { determinePackageManagerEnv } from "./node-module-collector/index.js" -export { computeDefaultAppDirectory } from "./util/config/config.js" +export { computeDefaultAppDirectory, validateConfiguration } from "./util/config/config.js" export { getConfig } from "./util/config/config.js" export { getElectronVersion } from "./electron/electronVersion.js" export { execWine } from "./wine.js" export { getBinFromUrl } from "./binDownload.js" +export { hoist, HoisterTree, HoisterResult, HoisterDependencyKind } from "./node-module-collector/hoist.js" export { PM } from "./node-module-collector/packageManager.js" export { doMergeConfigs } from "./util/config/config.js" export { getWindowsKitsBundle } from "./toolsets/windows.js" +export { findIdentity, isSignAllowed } from "./codeSign/macCodeSign.js" +export { createBlockmap } from "./targets/differentialUpdateInfoBuilder.js" +export { getLicenseFiles, getLicenseAssets } from "./util/license.js" +export { downloadArtifact } from "./binDownload.js" +export { loadEnv } from "./util/config/load.js" +export { nodeGypRebuild } from "./util/yarn.js" +export { Publish } from "./core.js" +export { computeSafeArtifactNameIfNeeded } from "./platformPackager.js" +export { createPublisher } from "./publish/PublishManager.js" +export { Identity } from "./codeSign/macCodeSign.js" +export { DoPackOptions} from "./platformPackager.js" +export { parsePlistFile, PlistObject } from "./util/plist.js" +export { expandMacro } from "./util/macroExpander.js" +export { getRepositoryInfo } from "./util/repositoryInfo.js" const expectedOptions = new Set(["publish", "targets", "mac", "win", "linux", "projectDir", "platformPackagerFactory", "config", "effectiveOptionComputed", "prepackaged"]) diff --git a/packages/app-builder-lib/src/targets/FpmTarget.ts b/packages/app-builder-lib/src/targets/FpmTarget.ts index 71ca0b90b5a..2621047e659 100644 --- a/packages/app-builder-lib/src/targets/FpmTarget.ts +++ b/packages/app-builder-lib/src/targets/FpmTarget.ts @@ -32,7 +32,7 @@ interface ScriptFiles { } export default class FpmTarget extends Target { - readonly options: LinuxTargetSpecificOptions = { ...this.packager.platformSpecificBuildOptions, ...(this.packager.config as any)[this.name] } + readonly options: LinuxTargetSpecificOptions private readonly scriptFiles: Promise @@ -43,7 +43,7 @@ export default class FpmTarget extends Target { readonly outDir: string ) { super(name, false) - + this.options = { ...this.packager.platformSpecificBuildOptions, ...(this.packager.config as any)[this.name] } this.scriptFiles = this.createScripts() } diff --git a/packages/app-builder-lib/src/targets/appimage/AppImageTarget.ts b/packages/app-builder-lib/src/targets/appimage/AppImageTarget.ts index 6e4f5b95329..c1d89b26c01 100644 --- a/packages/app-builder-lib/src/targets/appimage/AppImageTarget.ts +++ b/packages/app-builder-lib/src/targets/appimage/AppImageTarget.ts @@ -19,7 +19,7 @@ import { BlockMapDataHolder } from "builder-util-runtime" export const APP_RUN_ENTRYPOINT = "AppRun" export default class AppImageTarget extends Target { - readonly options: AppImageOptions = { ...this.packager.platformSpecificBuildOptions, ...(this.packager.config as any)[this.name] } + readonly options: AppImageOptions private readonly desktopEntry: Lazy @@ -30,6 +30,7 @@ export default class AppImageTarget extends Target { readonly outDir: string ) { super("appImage") + this.options = { ...this.packager.platformSpecificBuildOptions, ...(this.packager.config as any)[this.name] } this.desktopEntry = new Lazy(() => { const appimageTool = packager.config.toolsets?.appimage diff --git a/packages/app-builder-lib/src/targets/appimage/appLauncher.ts b/packages/app-builder-lib/src/targets/appimage/appLauncher.ts index 9b900c2b826..e506de3c953 100644 --- a/packages/app-builder-lib/src/targets/appimage/appLauncher.ts +++ b/packages/app-builder-lib/src/targets/appimage/appLauncher.ts @@ -1,7 +1,7 @@ import * as path from "path" import * as fs from "fs-extra" import { copyOrLinkFile, log } from "builder-util" -import { AppImageBuilderOptions } from "./appImageUtil" +import { AppImageBuilderOptions } from "./appImageUtil.js" const ICON_DIR_RELATIVE_PATH = "usr/share/icons/hicolor" const MIME_TYPE_DIR_RELATIVE_PATH = "usr/share/mime/packages" diff --git a/packages/app-builder-lib/src/targets/archive.ts b/packages/app-builder-lib/src/targets/archive.ts index 88782e9cebb..8d55d737128 100644 --- a/packages/app-builder-lib/src/targets/archive.ts +++ b/packages/app-builder-lib/src/targets/archive.ts @@ -3,9 +3,9 @@ import { move } from "fs-extra" import * as path from "path" import { create } from "tar" import { TmpDir } from "temp-file" -import { CompressionLevel } from "../core" -import { getLinuxToolsPath } from "../toolsets/linux" -import { TarOptionsWithAliasesAsync } from "tar/dist/commonjs/options" +import { CompressionLevel } from "../core.js" +import { getLinuxToolsPath } from "../toolsets/linux.js" +import { TarOptionsWithAliasesAsync } from "tar" /** @internal */ export async function tar(compression: CompressionLevel | any, format: string, outFile: string, dirToArchive: string, isMacApp: boolean, tempDirManager: TmpDir): Promise { diff --git a/packages/app-builder-lib/src/toolsets/windows.ts b/packages/app-builder-lib/src/toolsets/windows.ts index f9aa2f0d04b..327ad5f12c9 100644 --- a/packages/app-builder-lib/src/toolsets/windows.ts +++ b/packages/app-builder-lib/src/toolsets/windows.ts @@ -2,10 +2,10 @@ import { Arch, isEmptyOrSpaces, log } from "builder-util" import { Nullish } from "builder-util-runtime" import * as os from "os" import * as path from "path" -import { getBin, getBinFromUrl } from "../binDownload" -import { ToolsetConfig } from "../configuration" -import { ToolInfo, computeToolEnv } from "../util/bundledTool" -import { isUseSystemSigncode } from "../util/flags" +import { getBin, getBinFromUrl } from "../binDownload.js" +import { ToolsetConfig } from "../configuration.js" +import { ToolInfo, computeToolEnv } from "../util/bundledTool.js" +import { isUseSystemSigncode } from "../util/flags.js" export const wincodesignChecksums = { "0.0.0": { diff --git a/packages/app-builder-lib/src/winPackager.ts b/packages/app-builder-lib/src/winPackager.ts index 61fe2a410b3..97345c9d1ac 100644 --- a/packages/app-builder-lib/src/winPackager.ts +++ b/packages/app-builder-lib/src/winPackager.ts @@ -5,29 +5,29 @@ import { createHash } from "crypto" import { readdir } from "fs/promises" import { Lazy } from "lazy-val" import * as path from "path" -import { readAsarHeader } from "./asar/asar" -import { SignManager } from "./codeSign/signManager" -import { signWindows, WindowsSignOptions } from "./codeSign/windowsCodeSign" -import { WindowsSignAzureManager } from "./codeSign/windowsSignAzureManager" -import { FileCodeSigningInfo, WindowsSignToolManager } from "./codeSign/windowsSignToolManager" -import { AfterPackContext } from "./configuration" -import { DIR_TARGET, Platform, Target } from "./core" -import { RequestedExecutionLevel, WindowsConfiguration } from "./options/winOptions" -import { Packager } from "./packager" -import { chooseNotNull, PlatformPackager } from "./platformPackager" -import AppXTarget from "./targets/AppxTarget" -import MsiTarget from "./targets/MsiTarget" -import MsiWrappedTarget from "./targets/MsiWrappedTarget" -import { NsisTarget } from "./targets/nsis/NsisTarget" -import { AppPackageHelper, CopyElevateHelper } from "./targets/nsis/nsisUtil" -import { WebInstallerTarget } from "./targets/nsis/WebInstallerTarget" -import { createCommonTarget } from "./targets/targetFactory" -import { getRceditBundle } from "./toolsets/windows" -import { BuildCacheManager, digest } from "./util/cacheManager" -import { isBuildCacheEnabled } from "./util/flags" -import { time } from "./util/timer" -import { getWindowsVm, VmManager } from "./vm/vm" -import { execWine } from "./wine" +import { readAsarHeader } from "./asar/asar.js" +import { SignManager } from "./codeSign/signManager.js" +import { signWindows, WindowsSignOptions } from "./codeSign/windowsCodeSign.js" +import { WindowsSignAzureManager } from "./codeSign/windowsSignAzureManager.js" +import { FileCodeSigningInfo, WindowsSignToolManager } from "./codeSign/windowsSignToolManager.js" +import { AfterPackContext } from "./configuration.js" +import { DIR_TARGET, Platform, Target } from "./core.js" +import { RequestedExecutionLevel, WindowsConfiguration } from "./options/winOptions.js" +import { Packager } from "./packager.js" +import { chooseNotNull, PlatformPackager } from "./platformPackager.js" +import AppXTarget from "./targets/AppxTarget.js" +import MsiTarget from "./targets/MsiTarget.js" +import MsiWrappedTarget from "./targets/MsiWrappedTarget.js" +import { NsisTarget } from "./targets/nsis/NsisTarget.js" +import { AppPackageHelper, CopyElevateHelper } from "./targets/nsis/nsisUtil.js" +import { WebInstallerTarget } from "./targets/nsis/WebInstallerTarget.js" +import { createCommonTarget } from "./targets/targetFactory.js" +import { getRceditBundle } from "./toolsets/windows.js" +import { BuildCacheManager, digest } from "./util/cacheManager.js" +import { isBuildCacheEnabled } from "./util/flags.js" +import { time } from "./util/timer.js" +import { getWindowsVm, VmManager } from "./vm/vm.js" +import { execWine } from "./wine.js" export class WinPackager extends PlatformPackager { _iconPath = new Lazy(() => this.getOrConvertIcon("ico")) From d4cb88961e904a55a81c971c2cc9aee45abcc156 Mon Sep 17 00:00:00 2001 From: Mike Maietta Date: Wed, 8 Apr 2026 07:12:09 -0700 Subject: [PATCH 25/65] it compiles --- test/src/helpers/CheckingPackager.ts | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/test/src/helpers/CheckingPackager.ts b/test/src/helpers/CheckingPackager.ts index 303ac224f37..9478a9318e1 100644 --- a/test/src/helpers/CheckingPackager.ts +++ b/test/src/helpers/CheckingPackager.ts @@ -14,10 +14,10 @@ export class CheckingWinPackager extends WinPackager { super(info) } - //noinspection JSUnusedLocalSymbols async pack(outDir: string, arch: Arch, targets: Array, taskManager: AsyncTaskManager): Promise { + const pkgName = "electron-builder-squirrel-windows" // skip pack - const helperClass = (await import("electron-builder-squirrel-windows")).default + const helperClass = (await import(pkgName)).default const newClass = new (helperClass as any)(this, outDir) const setupFile = this.expandArtifactNamePattern(newClass.options, "exe", arch, "${productName} Setup ${version}.${ext}") const installerOutDir = path.join(outDir, `squirrel-windows${getArchSuffix(arch)}`) @@ -25,7 +25,6 @@ export class CheckingWinPackager extends WinPackager { await this.signIf(this.computeAppOutDir(outDir, arch)) } - //noinspection JSUnusedLocalSymbols packageInDistributableFormat(appOutDir: string, arch: Arch, targets: Array, taskManager: AsyncTaskManager): void { // skip } From 3e3969b9c9e1d1d1df46ac05ccf3e502150d92d5 Mon Sep 17 00:00:00 2001 From: Mike Maietta Date: Wed, 8 Apr 2026 07:27:44 -0700 Subject: [PATCH 26/65] fix runner --- packages/app-builder-lib/src/index.ts | 1 + vite.config.ts | 70 --------------------------- 2 files changed, 1 insertion(+), 70 deletions(-) delete mode 100644 vite.config.ts diff --git a/packages/app-builder-lib/src/index.ts b/packages/app-builder-lib/src/index.ts index c8d44540c05..746b3605957 100644 --- a/packages/app-builder-lib/src/index.ts +++ b/packages/app-builder-lib/src/index.ts @@ -96,6 +96,7 @@ export { DoPackOptions} from "./platformPackager.js" export { parsePlistFile, PlistObject } from "./util/plist.js" export { expandMacro } from "./util/macroExpander.js" export { getRepositoryInfo } from "./util/repositoryInfo.js" +export { createKeychain, removeKeychain } from "./codeSign/macCodeSign.js" const expectedOptions = new Set(["publish", "targets", "mac", "win", "linux", "projectDir", "platformPackagerFactory", "config", "effectiveOptionComputed", "prepackaged"]) diff --git a/vite.config.ts b/vite.config.ts deleted file mode 100644 index 6d057e8f2cc..00000000000 --- a/vite.config.ts +++ /dev/null @@ -1,70 +0,0 @@ -import { defineConfig } from "vitest/config" -import fs from "fs" -import isCI from "is-ci" - -export default () => { - const testRegex = process.env.TEST_FILES?.split(",") ?? ["*Test", "*test"] - const includeRegex = `(${testRegex.join("|")})` - console.log("TEST_FILES pattern", includeRegex) - - return defineConfig({ - server: { - https: { - cert: fs.readFileSync("./.vitest-cert/cert.pem"), - key: fs.readFileSync("./.vitest-cert/key.pem"), - }, - }, - test: { - // if using `toMatchSnapshot`, it MUST be passed in through the test context - // e.g. test("name", ({ expect }) => { ... }) - globals: true, - allowOnly: !isCI, - expandSnapshotDiff: process.env.SNAPSHOT_DIFF === "true", - - setupFiles: "./test/vitest-setup.ts", - include: [`test/src/**/${includeRegex}.ts`], - update: process.env.UPDATE_SNAPSHOT === "true", - - name: "node", - environment: "node", - printConsoleTrace: true, - - server: { - deps: { - inline: ["electron"], - }, - }, - - deps: { - optimizer: { - web: { - enabled: true, - }, - }, - }, - - slowTestThreshold: 60 * 1000, - // disk operations can be slow. We're generous with the timeout here to account for less-performant (local?) machines. - // GH runners are fast, but we're still running tests concurrently, so collectively, they take less time, but individually, they can take longer due to parallelism. - testTimeout: 15 * 60 * 1000, - sequence: { - concurrent: process.env.TEST_SEQUENTIAL !== "true", - }, - - coverage: { - reporter: ["lcov", "text"], - }, - reporters: ["default", "html"], - outputFile: "coverage/sonar-report.xml", - snapshotFormat: { - printBasicPrototype: false, - }, - resolveSnapshotPath: (testPath, snapshotExtension) => { - return testPath - .replace(/\.[tj]s$/, `.js${snapshotExtension}`) - .replace("/src/", "/snapshots/") - .replace("\\src\\", "\\snapshots\\") - }, - }, - }) -} From 8a2e4e97fa41b613b0465f7f4008af74a69b2b9e Mon Sep 17 00:00:00 2001 From: Mike Maietta Date: Wed, 8 Apr 2026 12:15:48 -0700 Subject: [PATCH 27/65] tmp save. migrating fs-extra to namespace import --- package.json | 2 +- .../app-builder-lib/helpers/dynamic-import.js | 12 ++--- packages/app-builder-lib/package.json | 2 +- packages/app-builder-lib/src/asar/asar.ts | 26 +++++----- packages/app-builder-lib/src/asar/asarUtil.ts | 10 ++-- .../app-builder-lib/src/codeSign/codesign.ts | 4 +- .../src/codeSign/macCodeSign.ts | 10 ++-- .../src/codeSign/windowsSignToolManager.ts | 4 +- .../src/electron/ElectronFramework.ts | 16 +++--- .../src/electron/electronVersion.ts | 8 +-- .../src/frameworks/LibUiFramework.ts | 4 +- packages/app-builder-lib/src/index.ts | 2 +- .../nodeModulesCollector.ts | 4 +- packages/app-builder-lib/src/packager.ts | 8 +-- .../src/publish/updateInfoBuilder.ts | 8 +-- .../src/targets/AppImageTarget.ts | 4 +- .../app-builder-lib/src/targets/AppxTarget.ts | 16 +++--- .../src/targets/FlatpakTarget.ts | 6 +-- .../app-builder-lib/src/targets/FpmTarget.ts | 12 ++--- .../src/targets/LinuxTargetHelper.ts | 6 +-- .../src/targets/appimage/AppImageTarget.ts | 4 +- .../app-builder-lib/src/targets/archive.ts | 4 +- .../src/targets/nsis/NsisTarget.ts | 10 ++-- .../src/targets/nsis/nsisLang.ts | 6 +-- packages/app-builder-lib/src/targets/snap.ts | 6 +-- .../app-builder-lib/src/util/AppFileWalker.ts | 14 ++--- .../src/util/NodeModuleCopyHelper.ts | 8 +-- .../app-builder-lib/src/util/appFileCopier.ts | 4 +- .../app-builder-lib/src/util/cacheManager.ts | 6 +-- .../app-builder-lib/src/util/config/config.ts | 8 +-- .../app-builder-lib/src/util/config/load.ts | 2 +- .../app-builder-lib/src/util/macosVersion.ts | 4 +- .../src/util/packageMetadata.ts | 8 +-- .../app-builder-lib/src/util/pathManager.ts | 2 +- packages/app-builder-lib/src/util/plist.ts | 6 +-- .../src/util/repositoryInfo.ts | 4 +- packages/app-builder-lib/src/util/yarn.ts | 4 +- packages/builder-util/package.json | 2 +- packages/builder-util/src/7za.ts | 6 +-- packages/builder-util/src/DebugLogger.ts | 4 +- packages/builder-util/src/fs.ts | 10 ++-- packages/dmg-builder/package.json | 2 +- packages/dmg-builder/src/dmgLicense.ts | 4 +- packages/dmg-builder/src/dmgUtil.ts | 4 +- packages/dmg-builder/src/licenseButtons.ts | 4 +- packages/electron-builder/package.json | 2 +- packages/electron-builder/src/cli/cli.ts | 4 +- .../src/cli/install-app-deps.ts | 4 +- packages/electron-publish/package.json | 2 +- .../src/bitbucketPublisher.ts | 4 +- .../electron-publish/src/httpPublisher.ts | 4 +- packages/electron-publish/src/publisher.ts | 6 +-- packages/electron-updater/package.json | 2 +- .../electron-updater/src/AppImageUpdater.ts | 4 +- packages/electron-updater/src/AppUpdater.ts | 24 ++++----- .../src/DownloadedUpdateHelper.ts | 16 +++--- packages/electron-updater/src/MacUpdater.ts | 8 +-- packages/electron-updater/src/NsisUpdater.ts | 4 +- .../DifferentialDownloader.ts | 8 +-- ...hEmbeddedBlockMapDifferentialDownloader.ts | 14 ++--- packages/electron-updater/src/main.ts | 6 +-- pnpm-lock.yaml | 44 ++++++++-------- scripts/renderer/src/typedoc2html.ts | 10 ++-- test/package.json | 2 +- test/src/BuildTest.ts | 10 ++-- test/src/HoistedNodeModuleTest.ts | 34 ++++++------ test/src/PublishManagerTest.ts | 4 +- test/src/extraMetadataTest.ts | 4 +- test/src/filesTest.ts | 52 +++++++++---------- test/src/globTest.ts | 16 +++--- test/src/helpers/packTester.ts | 12 ++--- test/src/helpers/updaterTestUtil.ts | 6 +-- test/src/helpers/winHelper.ts | 4 +- test/src/helpers/wine.ts | 4 +- test/src/ignoreTest.ts | 34 ++++++------ test/src/linux/linuxPackagerTest.ts | 4 +- test/src/mac/macArchiveTest.ts | 4 +- test/src/packageManagerTest.ts | 32 ++++++------ test/src/updater/blackboxUpdateTest.ts | 16 +++--- test/src/updater/differentialUpdateTest.ts | 14 ++--- test/src/updater/nsisUpdaterTest.ts | 6 +-- test/src/windows/appxTest.ts | 8 +-- test/src/windows/oneClickInstallerTest.ts | 14 ++--- test/src/windows/winCodeSignTest.ts | 4 +- 84 files changed, 375 insertions(+), 375 deletions(-) diff --git a/package.json b/package.json index 3d76dc8a58b..756cde02c01 100644 --- a/package.json +++ b/package.json @@ -52,7 +52,7 @@ "eslint": "9.39.2", "eslint-config-prettier": "^9.1.0", "eslint-plugin-prettier": "^5.2.1", - "fs-extra": "10.1.0", + "fs-extra": "^11.3.4", "is-ci": "^4.1.0", "prettier": "3.7.4", "ts-node": "^10.9.2", diff --git a/packages/app-builder-lib/helpers/dynamic-import.js b/packages/app-builder-lib/helpers/dynamic-import.js index 1089411ced3..a3a42b61495 100644 --- a/packages/app-builder-lib/helpers/dynamic-import.js +++ b/packages/app-builder-lib/helpers/dynamic-import.js @@ -1,20 +1,20 @@ -const url = require("url") -const fs = require("fs") +import { pathToFileURL } from "url" +import { existsSync } from "fs" -exports.dynamicImport = async function dynamicImport(path) { +export async function dynamicImport(path) { try { - return await import(fs.existsSync(path) ? url.pathToFileURL(path).href : path) + return await import(existsSync(path) ? pathToFileURL(path).href : path) } catch (error) { return Promise.reject(error) } } -exports.dynamicImportMaybe = async function dynamicImportMaybe(path) { +export async function dynamicImportMaybe(path) { try { return require(path) } catch (e1) { try { - return await exports.dynamicImport(path) + return await dynamicImport(path) } catch (e2) { e1.message = "\n1. " + e1.message + "\n2. " + e2.message throw e1 diff --git a/packages/app-builder-lib/package.json b/packages/app-builder-lib/package.json index 1936f7e0c39..bab938947a1 100644 --- a/packages/app-builder-lib/package.json +++ b/packages/app-builder-lib/package.json @@ -70,7 +70,7 @@ "dotenv-expand": "^11.0.6", "ejs": "^3.1.8", "electron-publish": "workspace:*", - "fs-extra": "^10.1.0", + "fs-extra": "^11.3.4", "hosted-git-info": "^4.1.0", "isbinaryfile": "^5.0.0", "jiti": "^2.4.2", diff --git a/packages/app-builder-lib/src/asar/asar.ts b/packages/app-builder-lib/src/asar/asar.ts index b86d3cdd41a..357ee5b5d6e 100644 --- a/packages/app-builder-lib/src/asar/asar.ts +++ b/packages/app-builder-lib/src/asar/asar.ts @@ -1,5 +1,5 @@ -import { createFromBuffer } from "chromium-pickle-js" -import { close, open, read, readFile, Stats } from "fs-extra" +import * as chromiumPickleJs from "chromium-pickle-js" +import * as fsExtra from "fs-extra" import * as path from "path" export interface ReadAsarHeader { @@ -88,7 +88,7 @@ export class AsarFilesystem { return result } - addFileNode(file: string, dirNode: Node, size: number, unpacked: boolean, stat: Stats, integrity?: NodeIntegrity): Node { + addFileNode(file: string, dirNode: Node, size: number, unpacked: boolean, stat: fsExtra.Stats, integrity?: NodeIntegrity): Node { if (size > 4294967295) { throw new Error(`${file}: file size cannot be larger than 4.2GB`) } @@ -147,26 +147,26 @@ export class AsarFilesystem { } export async function readAsarHeader(archive: string): Promise { - const fd = await open(archive, "r") + const fd = await fsExtra.open(archive, "r") let size: number let headerBuf try { const sizeBuf = Buffer.allocUnsafe(8) - if ((await read(fd, sizeBuf, 0, 8, null as any)).bytesRead !== 8) { + if ((await fsExtra.read(fd, sizeBuf, 0, 8, null as any)).bytesRead !== 8) { throw new Error("Unable to read header size") } - const sizePickle = createFromBuffer(sizeBuf) + const sizePickle = chromiumPickleJs.createFromBuffer(sizeBuf) size = sizePickle.createIterator().readUInt32() headerBuf = Buffer.allocUnsafe(size) - if ((await read(fd, headerBuf, 0, size, null as any)).bytesRead !== size) { + if ((await fsExtra.read(fd, headerBuf, 0, size, null as any)).bytesRead !== size) { throw new Error("Unable to read header") } } finally { - await close(fd) + await fsExtra.close(fd) } - const headerPickle = createFromBuffer(headerBuf) + const headerPickle = chromiumPickleJs.createFromBuffer(headerBuf) return { header: headerPickle.createIterator().readString(), size } } @@ -188,15 +188,15 @@ async function readFileFromAsar(filesystem: AsarFilesystem, filename: string, in } if (info.unpacked) { - return await readFile(path.join(`${filesystem.src}.unpacked`, filename)) + return await fsExtra.readFile(path.join(`${filesystem.src}.unpacked`, filename)) } - const fd = await open(filesystem.src, "r") + const fd = await fsExtra.open(filesystem.src, "r") try { const offset = 8 + filesystem.headerSize + parseInt(info.offset!, 10) - await read(fd, buffer, 0, size, offset) + await fsExtra.read(fd, buffer, 0, size, offset) } finally { - await close(fd) + await fsExtra.close(fd) } return buffer } diff --git a/packages/app-builder-lib/src/asar/asarUtil.ts b/packages/app-builder-lib/src/asar/asarUtil.ts index c1c4feffe6d..ac3615d48db 100644 --- a/packages/app-builder-lib/src/asar/asarUtil.ts +++ b/packages/app-builder-lib/src/asar/asarUtil.ts @@ -1,7 +1,7 @@ import { AsarDirectory, AsarStreamType, createPackageFromStreams } from "@electron/asar" import { exists, Filter, FilterStats, isEmptyOrSpaces, log } from "builder-util" -import * as fs from "fs-extra" -import { readlink } from "fs-extra" +import * as fs from "fs/promises" +import * as fsExtra from "fs-extra" import * as os from "os" import * as path from "path" import { Readable } from "stream" @@ -196,7 +196,7 @@ export class AsarPackager { private async processFileOrSymlink(options: { file: string destination: string - stat: fs.Stats + stat: fsExtra.Stats fileSet: ResolvedFileSet transformedData: string | Buffer | undefined isUnpacked: (dir: string, file?: string, stat?: FilterStats) => boolean @@ -232,7 +232,7 @@ export class AsarPackager { const baseConfig = { path: destination, - streamGenerator: () => fs.createReadStream(file), + streamGenerator: () => fsExtra.createReadStream(file), unpacked, stat, } @@ -243,7 +243,7 @@ export class AsarPackager { } // Handle symlinks - make relative to source location - let link = await readlink(file) + let link = await fsExtra.readlink(file) if (path.isAbsolute(link)) { link = path.relative(path.dirname(file), link) } diff --git a/packages/app-builder-lib/src/codeSign/codesign.ts b/packages/app-builder-lib/src/codeSign/codesign.ts index cce2b4d5edf..dd0844d838b 100644 --- a/packages/app-builder-lib/src/codeSign/codesign.ts +++ b/packages/app-builder-lib/src/codeSign/codesign.ts @@ -1,5 +1,5 @@ import { InvalidConfigurationError, statOrNull } from "builder-util" -import { outputFile } from "fs-extra" +import * as fsExtra from "fs-extra" import { homedir } from "os" import * as path from "path" import { TmpDir } from "temp-file" @@ -24,7 +24,7 @@ export async function importCertificate(cscLink: string, tmpDir: TmpDir, current const mimeType = /data:.*;base64,/.exec(cscLink)?.[0] if (mimeType || cscLink.length > 2048 || cscLink.endsWith("=")) { const tempFile = await tmpDir.getTempFile({ suffix: ".p12" }) - await outputFile(tempFile, Buffer.from(cscLink.substring(mimeType?.length ?? 0), "base64")) + await fsExtra.outputFile(tempFile, Buffer.from(cscLink.substring(mimeType?.length ?? 0), "base64")) return tempFile } file = cscLink diff --git a/packages/app-builder-lib/src/codeSign/macCodeSign.ts b/packages/app-builder-lib/src/codeSign/macCodeSign.ts index 6dc833e2295..81c68a723c4 100644 --- a/packages/app-builder-lib/src/codeSign/macCodeSign.ts +++ b/packages/app-builder-lib/src/codeSign/macCodeSign.ts @@ -305,11 +305,11 @@ async function _findIdentity(type: CertType, qualifier?: string | null, keychain return null } -export declare class Identity { - readonly name: string - readonly hash?: string - - constructor(name: string, hash?: string) +export class Identity { + constructor( + readonly name: string, + readonly hash?: string + ) {} } function parseIdentity(line: string): Identity { diff --git a/packages/app-builder-lib/src/codeSign/windowsSignToolManager.ts b/packages/app-builder-lib/src/codeSign/windowsSignToolManager.ts index b772ba1c351..b03bb32420a 100644 --- a/packages/app-builder-lib/src/codeSign/windowsSignToolManager.ts +++ b/packages/app-builder-lib/src/codeSign/windowsSignToolManager.ts @@ -1,6 +1,6 @@ import { asArray, InvalidConfigurationError, log, retry } from "builder-util" import { MemoLazy, parseDn } from "builder-util-runtime" -import { rename } from "fs-extra" +import * as fsExtra from "fs-extra" import { Lazy } from "lazy-val" import * as path from "path" import { Target } from "../core.js" @@ -232,7 +232,7 @@ export class WindowsSignToolManager implements SignManager { ) isNest = true if (taskConfiguration.resultOutputPath != null) { - await rename(taskConfiguration.resultOutputPath, options.path) + await fsExtra.rename(taskConfiguration.resultOutputPath, options.path) } } diff --git a/packages/app-builder-lib/src/electron/ElectronFramework.ts b/packages/app-builder-lib/src/electron/ElectronFramework.ts index e7d5919431a..5dbc81cf709 100644 --- a/packages/app-builder-lib/src/electron/ElectronFramework.ts +++ b/packages/app-builder-lib/src/electron/ElectronFramework.ts @@ -1,5 +1,5 @@ import { asArray, copyDir, DO_NOT_USE_HARD_LINKS, executeAppBuilder, isEmptyOrSpaces, log, MAX_FILE_REQUESTS, statOrNull, unlinkIfExists } from "builder-util" -import { emptyDir, readdir, rename, rm } from "fs-extra" +import * as fsExtra from "fs-extra" import * as path from "path" import asyncPool from "tiny-async-pool" import { Configuration } from "../configuration.js" @@ -74,10 +74,10 @@ async function beforeCopyExtraFiles(options: BeforeCopyExtraFilesOptions) { if (packager.platform === Platform.LINUX) { const linuxPackager = packager as LinuxPackager const executable = path.join(appOutDir, linuxPackager.executableName) - await rename(path.join(appOutDir, electronBranding.projectName), executable) + await fsExtra.rename(path.join(appOutDir, electronBranding.projectName), executable) } else if (packager.platform === Platform.WINDOWS) { const executable = path.join(appOutDir, `${packager.appInfo.productFilename}.exe`) - await rename(path.join(appOutDir, `${electronBranding.projectName}.exe`), executable) + await fsExtra.rename(path.join(appOutDir, `${electronBranding.projectName}.exe`), executable) if (options.asarIntegrity) { await addWinAsarIntegrity(executable, options.asarIntegrity) } @@ -108,7 +108,7 @@ async function removeUnusedLanguagesIfNeeded(options: BeforeCopyExtraFilesOption const { dirs, langFileExt } = getLocalesConfig() // noinspection SpellCheckingInspection const deleteNonMatchedLanguages: (dir: string) => Promise[] | undefined> = async (dir: string) => { - const files = await readdir(dir) + const files = await fsExtra.readdir(dir) return files.map(async file => { if (path.extname(file) !== langFileExt) { return @@ -127,7 +127,7 @@ async function removeUnusedLanguagesIfNeeded(options: BeforeCopyExtraFilesOption if (isWantedLocale) { return undefined } - return rm(path.join(dir, file), { recursive: true, force: true }) + return fsExtra.rm(path.join(dir, file), { recursive: true, force: true }) }) } const allDeletedFiles = (await Promise.all(dirs.map(deleteNonMatchedLanguages))).flat().filter((it): it is Promise => it != null) @@ -209,7 +209,7 @@ async function unpack(prepareOptions: PrepareApplicationStageDirectoryOptions, d const source = packager.getElectronSrcDir(folderPath) const destination = packager.getElectronDestinationDir(appOutDir) log.info({ source, destination }, "copying unpacked Electron") - await emptyDir(appOutDir) + await fsExtra.emptyDir(appOutDir) await copyDir(source, destination, { isUseHardLink: DO_NOT_USE_HARD_LINKS, }) @@ -238,7 +238,7 @@ async function unpack(prepareOptions: PrepareApplicationStageDirectoryOptions, d if (electronDistStats.isDirectory()) { // backward compatibility: if electronDist is a directory, check for the default zip file inside it - const files = await readdir(resolvedDist) + const files = await fsExtra.readdir(resolvedDist) if (files.includes(defaultZipName)) { log.info({ electronDist: log.filePath(resolvedDist) }, "using custom electronDist directory") await downloadUsingAdjustedConfig({ @@ -291,7 +291,7 @@ function cleanupAfterUnpack(prepareOptions: PrepareApplicationStageDirectoryOpti isFullCleanup ? unlinkIfExists(path.join(out, "version")) : Promise.resolve(), isMac ? Promise.resolve() - : rename(path.join(out, "LICENSE"), path.join(out, "LICENSE.electron.txt")).catch(() => { + : fsExtra.rename(path.join(out, "LICENSE"), path.join(out, "LICENSE.electron.txt")).catch(() => { /* ignore */ }), ]) diff --git a/packages/app-builder-lib/src/electron/electronVersion.ts b/packages/app-builder-lib/src/electron/electronVersion.ts index 01358aaff82..da5742025f8 100644 --- a/packages/app-builder-lib/src/electron/electronVersion.ts +++ b/packages/app-builder-lib/src/electron/electronVersion.ts @@ -1,6 +1,6 @@ import { httpExecutor, InvalidConfigurationError, log } from "builder-util" import { parseXml } from "builder-util-runtime" -import { readJson } from "fs-extra" +import * as fsExtra from "fs-extra" import { Lazy } from "lazy-val" import * as path from "path" import * as semver from "semver" @@ -26,7 +26,7 @@ export async function getElectronVersion(projectDir: string, config?: Configurat export async function getElectronVersionFromInstalled(projectDir: string): Promise { for (const name of electronPackages) { try { - return (await readJson(path.join(projectDir, "node_modules", name, "package.json"))).version + return (await fsExtra.readJson(path.join(projectDir, "node_modules", name, "package.json"))).version } catch (e: any) { if (e.code !== "ENOENT") { log.warn({ name, error: e }, `cannot read electron version package.json`) @@ -39,7 +39,7 @@ export async function getElectronVersionFromInstalled(projectDir: string): Promi export async function getElectronPackage(projectDir: string) { for (const name of electronPackages) { try { - return await readJson(path.join(projectDir, "node_modules", name, "package.json")) + return await fsExtra.readJson(path.join(projectDir, "node_modules", name, "package.json")) } catch (e: any) { if (e.code !== "ENOENT") { log.warn({ name, error: e }, `cannot find electron in package.json`) @@ -59,7 +59,7 @@ export async function computeElectronVersion(projectDir: string): Promise((resolve, reject) => { - const outStream = createWriteStream(tempOutputFile) + const outStream = fsExtra.createWriteStream(tempOutputFile) const child = childProcess.spawn(command, args, { cwd, diff --git a/packages/app-builder-lib/src/packager.ts b/packages/app-builder-lib/src/packager.ts index 297ff43aeb6..efeca99470a 100644 --- a/packages/app-builder-lib/src/packager.ts +++ b/packages/app-builder-lib/src/packager.ts @@ -16,7 +16,7 @@ import { TmpDir, } from "builder-util" import { CancellationToken, retry } from "builder-util-runtime" -import { chmod, mkdirs, outputFile } from "fs-extra" +import * as fsExtra from "fs-extra" import { isCI } from "ci-info" import { Lazy } from "lazy-val" import { release as getOsRelease } from "os" @@ -424,7 +424,7 @@ export class Packager { if (!isCI && (process.stdout as any).isTTY) { const effectiveConfigFile = path.join(commonOutDirWithoutPossibleOsMacro, "builder-effective-config.yaml") log.info({ file: log.filePath(effectiveConfigFile) }, "writing effective config") - await outputFile(effectiveConfigFile, getSafeEffectiveConfig(this.config)) + await fsExtra.outputFile(effectiveConfigFile, getSafeEffectiveConfig(this.config)) } // because artifact event maybe dispatched several times for different publish providers @@ -669,8 +669,8 @@ function createOutDirIfNeed(targetList: Array, createdOutDirs: Set { - return mkdirs(dir) - .then(() => chmod(dir, 0o755) /* set explicitly */) + return fsExtra.mkdirs(dir) + .then(() => fsExtra.chmod(dir, 0o755) /* set explicitly */) .then(() => createdOutDirs.add(dir)) }) ) diff --git a/packages/app-builder-lib/src/publish/updateInfoBuilder.ts b/packages/app-builder-lib/src/publish/updateInfoBuilder.ts index 2590df52b37..b6728248804 100644 --- a/packages/app-builder-lib/src/publish/updateInfoBuilder.ts +++ b/packages/app-builder-lib/src/publish/updateInfoBuilder.ts @@ -1,7 +1,7 @@ import asyncPool from "tiny-async-pool" import { Arch, log, safeStringifyJson, serializeToYaml } from "builder-util" import { GenericServerOptions, PublishConfiguration, UpdateInfo, WindowsUpdateInfo } from "builder-util-runtime" -import { outputFile, outputJson, readFile } from "fs-extra" +import * as fsExtra from "fs-extra" import { Lazy } from "lazy-val" import * as path from "path" import * as semver from "semver" @@ -23,7 +23,7 @@ async function getReleaseInfo(packager: PlatformPackager) { `release-notes-${packager.platform.nodeName}.md`, "release-notes.md" ) - const releaseNotes = releaseNotesFile == null ? null : await readFile(releaseNotesFile, "utf-8") + const releaseNotes = releaseNotesFile == null ? null : await fsExtra.readFile(releaseNotesFile, "utf-8") // to avoid undefined in the file, check for null if (releaseNotes != null) { releaseInfo.releaseNotes = releaseNotes @@ -227,7 +227,7 @@ export async function writeUpdateInfoFiles(updateInfoFileTasks: Array copyOrLinkFile(it, path.join(assetRoot, path.basename(it))))) await vm.exec(makePriPath, [ @@ -133,7 +133,7 @@ export default class AppXTarget extends Target { ]) // in addition to resources.pri, resources.scale-140.pri and other such files will be generated - for (const resourceFile of (await readdir(stageDir.dir)).filter(it => it.startsWith("resources.")).sort()) { + for (const resourceFile of (await fsExtra.readdir(stageDir.dir)).filter(it => it.startsWith("resources.")).sort()) { mappingList.push([`"${vm.toVmFile(stageDir.getTempFile(resourceFile))}" "${resourceFile}"`]) } makeAppXArgs.push("/l") @@ -143,7 +143,7 @@ export default class AppXTarget extends Target { for (const list of mappingList) { mapping += "\r\n" + list.join("\r\n") } - await writeFile(mappingFile, mapping) + await fsExtra.writeFile(mappingFile, mapping) packager.debugLogger.add("appx.mapping", mapping) if (this.options.makeappxArgs != null) { @@ -173,7 +173,7 @@ export default class AppXTarget extends Target { if (userAssetDir == null) { userAssets = [] } else { - userAssets = (await readdir(userAssetDir)).filter(it => !it.startsWith(".") && !it.endsWith(".db") && it.includes(".")) + userAssets = (await fsExtra.readdir(userAssetDir)).filter(it => !it.startsWith(".") && !it.endsWith(".db") && it.includes(".")) for (const name of userAssets) { mappings.push(`"${vm.toVmFile(userAssetDir)}${vm.pathSep}${name}" "assets\\${name}"`) allAssets.push(path.join(userAssetDir, name)) @@ -211,7 +211,7 @@ export default class AppXTarget extends Target { if (customManifestPath) { log.info({ manifestPath: log.filePath(customManifestPath) }, "custom appx manifest found") } - const manifestFileContent = await readFile(customManifestPath || path.join(getTemplatePath("appx"), "appxmanifest.xml"), "utf8") + const manifestFileContent = await fsExtra.readFile(customManifestPath || path.join(getTemplatePath("appx"), "appxmanifest.xml"), "utf8") const manifest = manifestFileContent.replace(/\${([a-zA-Z0-9]+)}/g, (match, p1): string => { switch (p1) { case "publisher": @@ -335,7 +335,7 @@ export default class AppXTarget extends Target { throw new Error(`Macro ${p1} is not defined`) } }) - await writeFile(outFile, manifest) + await fsExtra.writeFile(outFile, manifest) } private getCapabilities(): string { @@ -407,7 +407,7 @@ export default class AppXTarget extends Target { if (this.options.customExtensionsPath !== undefined) { const extensionsPath = path.resolve(this.packager.info.appDir, this.options.customExtensionsPath) - extensions += await readFile(extensionsPath, "utf8") + extensions += await fsExtra.readFile(extensionsPath, "utf8") } extensions += "" diff --git a/packages/app-builder-lib/src/targets/FlatpakTarget.ts b/packages/app-builder-lib/src/targets/FlatpakTarget.ts index f776d3e3bd8..3bd2d829c42 100644 --- a/packages/app-builder-lib/src/targets/FlatpakTarget.ts +++ b/packages/app-builder-lib/src/targets/FlatpakTarget.ts @@ -1,6 +1,6 @@ import { bundle as bundleFlatpak, FlatpakBundlerBuildOptions, FlatpakManifest } from "@malept/flatpak-bundler" import { Arch, copyFile, toLinuxArchString } from "builder-util" -import { chmod, outputFile } from "fs-extra" +import * as fsExtra from "fs-extra" import * as path from "path" import { Target } from "../core.js" import { LinuxPackager } from "../linuxPackager.js" @@ -68,8 +68,8 @@ export default class FlatpakTarget extends Target { private async createSandboxBinWrapper(stageDir: StageDir) { const useWaylandFlags = !!this.options.useWaylandFlags const electronWrapperPath = stageDir.getTempFile(path.join("bin", "electron-wrapper")) - await outputFile(electronWrapperPath, getElectronWrapperScript(this.packager.executableName, this.options.executableArgs, useWaylandFlags)) - await chmod(electronWrapperPath, 0o755) + await fsExtra.outputFile(electronWrapperPath, getElectronWrapperScript(this.packager.executableName, this.options.executableArgs, useWaylandFlags)) + await fsExtra.chmod(electronWrapperPath, 0o755) } private async createDesktopFile(stageDir: StageDir) { diff --git a/packages/app-builder-lib/src/targets/FpmTarget.ts b/packages/app-builder-lib/src/targets/FpmTarget.ts index 2621047e659..8143fdf71ad 100644 --- a/packages/app-builder-lib/src/targets/FpmTarget.ts +++ b/packages/app-builder-lib/src/targets/FpmTarget.ts @@ -1,6 +1,6 @@ import { Arch, asArray, exec, getArchSuffix, log, serializeToYaml, TmpDir, toLinuxArchString, unlinkIfExists, use } from "builder-util" import { Nullish } from "builder-util-runtime" -import { copyFile, outputFile, stat } from "fs-extra" +import * as fsExtra from "fs-extra" import { mkdir, readFile } from "fs/promises" import * as path from "path" import { smarten } from "../appInfo.js" @@ -144,16 +144,16 @@ export default class FpmTarget extends Target { : null if (publishConfig != null) { log.info({ resourceDir: log.filePath(resourceDir) }, `adding autoupdate files for: ${target}`) - await outputFile(path.join(resourceDir, "app-update.yml"), serializeToYaml(publishConfig)) + await fsExtra.outputFile(path.join(resourceDir, "app-update.yml"), serializeToYaml(publishConfig)) // Extra file needed for auto-updater to detect installation method - await outputFile(path.join(resourceDir, "package-type"), target) + await fsExtra.outputFile(path.join(resourceDir, "package-type"), target) } const scripts = await this.scriptFiles // Install AppArmor support for ubuntu 24+ // https://github.com/electron-userland/electron-builder/issues/8635 - await copyFile(scripts.appArmor, path.join(resourceDir, "apparmor-profile")) + await fsExtra.copyFile(scripts.appArmor, path.join(resourceDir, "apparmor-profile")) const appInfo = packager.appInfo const options = this.options @@ -280,7 +280,7 @@ export default class FpmTarget extends Target { isWriteUpdateInfo: true, updateInfo: { sha512: await hashFile(artifactPath), - size: (await stat(artifactPath)).size, + size: (await fsExtra.stat(artifactPath)).size, }, } } @@ -411,6 +411,6 @@ async function writeConfigFile(tmpDir: TmpDir, templatePath: string, options: an }) const outputPath = await tmpDir.getTempFile({ suffix: path.basename(templatePath, ".tpl") }) - await outputFile(outputPath, config) + await fsExtra.outputFile(outputPath, config) return outputPath } diff --git a/packages/app-builder-lib/src/targets/LinuxTargetHelper.ts b/packages/app-builder-lib/src/targets/LinuxTargetHelper.ts index 71ae9033a4a..e53f8e37867 100644 --- a/packages/app-builder-lib/src/targets/LinuxTargetHelper.ts +++ b/packages/app-builder-lib/src/targets/LinuxTargetHelper.ts @@ -1,5 +1,5 @@ import { asArray, exists, isEmptyOrSpaces, log } from "builder-util" -import { outputFile } from "fs-extra" +import * as fsExtra from "fs-extra" import { Lazy } from "lazy-val" import { join } from "path" import { LinuxPackager } from "../linuxPackager.js" @@ -45,7 +45,7 @@ export class LinuxTargetHelper { } const file = await this.packager.getTempFile(".xml") - await outputFile( + await fsExtra.outputFile( file, '\n\n' + items.join("\n") + "\n" ) @@ -96,7 +96,7 @@ export class LinuxTargetHelper { async writeDesktopEntry(targetSpecificOptions: LinuxTargetSpecificOptions, exec?: string, destination?: string | null, extra?: Record): Promise { const data = await this.computeDesktopEntry(targetSpecificOptions, exec, extra) const file = destination || (await this.packager.getTempFile(`${this.packager.appInfo.productFilename}.desktop`)) - await outputFile(file, data) + await fsExtra.outputFile(file, data) return file } diff --git a/packages/app-builder-lib/src/targets/appimage/AppImageTarget.ts b/packages/app-builder-lib/src/targets/appimage/AppImageTarget.ts index c1d89b26c01..9ef1f74828f 100644 --- a/packages/app-builder-lib/src/targets/appimage/AppImageTarget.ts +++ b/packages/app-builder-lib/src/targets/appimage/AppImageTarget.ts @@ -1,6 +1,6 @@ import { IconInfo } from "../../platformPackager.js" import { Arch, log, serializeToYaml } from "builder-util" -import { outputFile } from "fs-extra" +import * as fsExtra from "fs-extra" import { Lazy } from "lazy-val" import * as path from "path" import { Target } from "../../core.js" @@ -68,7 +68,7 @@ export default class AppImageTarget extends Target { ]) if (publishConfig != null) { - await outputFile(path.join(packager.getResourcesDir(appOutDir), "app-update.yml"), serializeToYaml(publishConfig)) + await fsExtra.outputFile(path.join(packager.getResourcesDir(appOutDir), "app-update.yml"), serializeToYaml(publishConfig)) } if (this.packager.packagerOptions.effectiveOptionComputed != null && (await this.packager.packagerOptions.effectiveOptionComputed({ desktop: desktopEntry }))) { diff --git a/packages/app-builder-lib/src/targets/archive.ts b/packages/app-builder-lib/src/targets/archive.ts index 8d55d737128..997a6169cb8 100644 --- a/packages/app-builder-lib/src/targets/archive.ts +++ b/packages/app-builder-lib/src/targets/archive.ts @@ -1,5 +1,5 @@ import { debug7z, exec, exists, getPath7za, log, statOrNull, unlinkIfExists } from "builder-util" -import { move } from "fs-extra" +import * as fsExtra from "fs-extra" import * as path from "path" import { create } from "tar" import { TmpDir } from "temp-file" @@ -37,7 +37,7 @@ export async function tar(compression: CompressionLevel | any, format: string, o } await exec(lzipPath, [compression === "store" ? "-1" : "-9", "--keep" /* keep (don't delete) input files */, tarFile]) // bloody lzip creates file in the same dir where input file with postfix `.lz`, option --output doesn't work - await move(`${tarFile}.lz`, outFile) + await fsExtra.move(`${tarFile}.lz`, outFile) return } diff --git a/packages/app-builder-lib/src/targets/nsis/NsisTarget.ts b/packages/app-builder-lib/src/targets/nsis/NsisTarget.ts index 31e353c42f4..c19e23ae091 100644 --- a/packages/app-builder-lib/src/targets/nsis/NsisTarget.ts +++ b/packages/app-builder-lib/src/targets/nsis/NsisTarget.ts @@ -18,7 +18,7 @@ import { import { CURRENT_APP_INSTALLER_FILE_NAME, CURRENT_APP_PACKAGE_FILE_NAME, PackageFileInfo, UUID } from "builder-util-runtime" import _debug from "debug" import * as fs from "fs" -import { readFile, stat, unlink } from "fs-extra" +import * as fsExtra from "fs-extra" import * as path from "path" import { Target } from "../../core.js" import { DesktopShortcutCreationPolicy, getEffectiveOptions } from "../../options/CommonWindowsInstallerConfiguration.js" @@ -352,14 +352,14 @@ export class NsisTarget extends Target { this.buildQueueManager.add(async () => { const sharedHeader = await this.computeCommonInstallerScriptHeader() const script = isPortable - ? await readFile(path.join(nsisTemplatesDir, "portable.nsi"), "utf8") + ? await fsExtra.readFile(path.join(nsisTemplatesDir, "portable.nsi"), "utf8") : await this.computeScriptAndSignUninstaller(definesUninstaller, commandsUninstaller, installerPath, sharedHeader, archs) // copy outfile name into main options, as the computeScriptAndSignUninstaller function was kind enough to add important data to temporary defines. defines.UNINSTALLER_OUT_FILE = definesUninstaller.UNINSTALLER_OUT_FILE await this.executeMakensis(defines, commands, sharedHeader + (await this.computeFinalScript(script, true, archs))) - await Promise.all([packager.signIf(installerPath), defines.UNINSTALLER_OUT_FILE == null ? Promise.resolve() : unlink(defines.UNINSTALLER_OUT_FILE)]) + await Promise.all([packager.signIf(installerPath), defines.UNINSTALLER_OUT_FILE == null ? Promise.resolve() : fsExtra.unlink(defines.UNINSTALLER_OUT_FILE)]) const safeArtifactName = computeSafeArtifactNameIfNeeded(installerFilename, () => this.generateGitHubInstallerName(primaryArch, defaultArch)) let updateInfo: any @@ -403,7 +403,7 @@ export class NsisTarget extends Target { private async computeScriptAndSignUninstaller(defines: Defines, commands: Commands, installerPath: string, sharedHeader: string, archs: Map): Promise { const packager = this.packager const customScriptPath = await packager.getResource(this.options.script, "installer.nsi") - const script = await readFile(customScriptPath || path.join(nsisTemplatesDir, "installer.nsi"), "utf8") + const script = await fsExtra.readFile(customScriptPath || path.join(nsisTemplatesDir, "installer.nsi"), "utf8") if (customScriptPath != null) { log.info({ reason: "custom NSIS script is used" }, "uninstaller is not signed by electron-builder") @@ -821,7 +821,7 @@ async function ensureNotBusy(outFile: string): Promise { async function createPackageFileInfo(file: string): Promise { return { path: file, - size: (await stat(file)).size, + size: (await fsExtra.stat(file)).size, sha512: await hashFile(file), } } diff --git a/packages/app-builder-lib/src/targets/nsis/nsisLang.ts b/packages/app-builder-lib/src/targets/nsis/nsisLang.ts index 36a1e5455e5..f97b14265af 100644 --- a/packages/app-builder-lib/src/targets/nsis/nsisLang.ts +++ b/packages/app-builder-lib/src/targets/nsis/nsisLang.ts @@ -1,6 +1,6 @@ import { asArray } from "builder-util" import _debug from "debug" -import { outputFile, readFile } from "fs-extra" +import * as fsExtra from "fs-extra" import { load } from "js-yaml" import * as path from "path" import { PlatformPackager } from "../../platformPackager.js" @@ -63,12 +63,12 @@ export function createAddLangsMacro(scriptGenerator: NsisScriptGenerator, langCo async function writeCustomLangFile(data: string, packager: PlatformPackager) { const file = await packager.getTempFile("messages.nsh") - await outputFile(file, data) + await fsExtra.outputFile(file, data) return file } export async function addCustomMessageFileInclude(input: string, packager: PlatformPackager, scriptGenerator: NsisScriptGenerator, langConfigurator: LangConfigurator) { - const data = load(await readFile(path.join(nsisTemplatesDir, input), "utf-8")) + const data = load(await fsExtra.readFile(path.join(nsisTemplatesDir, input), "utf-8")) const instructions = computeCustomMessageTranslations(data, langConfigurator).join("\n") debug(instructions) scriptGenerator.include(await writeCustomLangFile(instructions, packager)) diff --git a/packages/app-builder-lib/src/targets/snap.ts b/packages/app-builder-lib/src/targets/snap.ts index 434aace4609..aefb79d4a2c 100644 --- a/packages/app-builder-lib/src/targets/snap.ts +++ b/packages/app-builder-lib/src/targets/snap.ts @@ -1,6 +1,6 @@ import { replaceDefault as _replaceDefault, Arch, deepAssign, executeAppBuilder, InvalidConfigurationError, log, serializeToYaml, toLinuxArchString } from "builder-util" import { asArray, Nullish, SnapStoreOptions } from "builder-util-runtime" -import { outputFile, readFile } from "fs-extra" +import * as fsExtra from "fs-extra" import { load } from "js-yaml" import * as path from "path" import * as semver from "semver" @@ -72,7 +72,7 @@ export default class SnapTarget extends Target { adapter: "none", } - const snap: any = load(await readFile(path.join(getTemplatePath("snap"), "snapcraft.yaml"), "utf-8")) + const snap: any = load(await fsExtra.readFile(path.join(getTemplatePath("snap"), "snapcraft.yaml"), "utf-8")) if (this.isUseTemplateApp) { delete appDescriptor.adapter } @@ -252,7 +252,7 @@ export default class SnapTarget extends Target { return } - await outputFile(path.join(snapMetaDir, this.isUseTemplateApp ? "snap.yaml" : "snapcraft.yaml"), serializeToYaml(snap)) + await fsExtra.outputFile(path.join(snapMetaDir, this.isUseTemplateApp ? "snap.yaml" : "snapcraft.yaml"), serializeToYaml(snap)) const hooksDir = await packager.getResource(options.hooks, "snap-hooks") if (hooksDir != null) { diff --git a/packages/app-builder-lib/src/util/AppFileWalker.ts b/packages/app-builder-lib/src/util/AppFileWalker.ts index 107c4480e70..523a5c700e8 100644 --- a/packages/app-builder-lib/src/util/AppFileWalker.ts +++ b/packages/app-builder-lib/src/util/AppFileWalker.ts @@ -1,5 +1,5 @@ import { FileConsumer, Filter, FilterStats } from "builder-util" -import { readlink, stat, Stats } from "fs-extra" +import * as fsExtra from "fs-extra" import * as path from "path" import { FileMatcher } from "../fileMatcher.js" import { Packager } from "../packager.js" @@ -12,7 +12,7 @@ function addAllPatternIfNeed(matcher: FileMatcher) { } export abstract class FileCopyHelper { - readonly metadata = new Map() + readonly metadata = new Map() protected constructor( protected readonly matcher: FileMatcher, @@ -20,23 +20,23 @@ export abstract class FileCopyHelper { protected readonly packager: Packager ) {} - protected handleFile(file: string, parent: string, fileStat: Stats): Promise | null { + protected handleFile(file: string, parent: string, fileStat: fsExtra.Stats): Promise | null { if (!fileStat.isSymbolicLink()) { return null } - return readlink(file).then((linkTarget): any => { + return fsExtra.readlink(file).then((linkTarget): any => { // http://unix.stackexchange.com/questions/105637/is-symlinks-target-relative-to-the-destinations-parent-directory-and-if-so-wh return this.handleSymlink(fileStat, file, parent, linkTarget) }) } - private handleSymlink(fileStat: Stats, file: string, parent: string, linkTarget: string): Promise | null { + private handleSymlink(fileStat: fsExtra.Stats, file: string, parent: string, linkTarget: string): Promise | null { const resolvedLinkTarget = path.resolve(parent, linkTarget) const link = path.relative(this.matcher.from, resolvedLinkTarget) if (link.startsWith("..")) { // outside of project, linked module (https://github.com/electron-userland/electron-builder/issues/675) - return stat(resolvedLinkTarget).then(targetFileStat => { + return fsExtra.stat(resolvedLinkTarget).then(targetFileStat => { this.metadata.set(file, targetFileStat) return targetFileStat }) @@ -66,7 +66,7 @@ export class AppFileWalker extends FileCopyHelper implements FileConsumer { // noinspection JSUnusedGlobalSymbols // eslint-disable-next-line @typescript-eslint/no-unused-vars - consume(file: string, fileStat: Stats, parent: string, siblingNames: Array): any { + consume(file: string, fileStat: fsExtra.Stats, parent: string, siblingNames: Array): any { if (fileStat.isDirectory()) { const matchesFilter = this.matcherFilter(file, fileStat) return !matchesFilter diff --git a/packages/app-builder-lib/src/util/NodeModuleCopyHelper.ts b/packages/app-builder-lib/src/util/NodeModuleCopyHelper.ts index 87264106008..7183e7eb877 100644 --- a/packages/app-builder-lib/src/util/NodeModuleCopyHelper.ts +++ b/packages/app-builder-lib/src/util/NodeModuleCopyHelper.ts @@ -1,6 +1,6 @@ import { FilterStats, MAX_FILE_REQUESTS } from "builder-util" import { realpathSync } from "fs" -import { lstat, lstatSync, readdir } from "fs-extra" +import * as fsExtra from "fs-extra" import * as path from "path" import asyncPool from "tiny-async-pool" import { excludedNames, FileMatcher } from "../fileMatcher.js" @@ -69,7 +69,7 @@ export class NodeModuleCopyHelper extends FileCopyHelper { while (queue.length > 0) { const dirPath = queue.pop()! - const childNames = await readdir(dirPath) + const childNames = await fsExtra.readdir(dirPath) childNames.sort() const isTopLevel = dirPath === depPath @@ -85,7 +85,7 @@ export class NodeModuleCopyHelper extends FileCopyHelper { } // check if filematcher matches the files array as more important than the default excluded files. - const fileMatched = filter != null && filter(dirPath, lstatSync(dirPath)) + const fileMatched = filter != null && filter(dirPath, fsExtra.lstatSync(dirPath)) if (!fileMatched || !forceIncluded || !!this.packager.config.disableDefaultIgnoredFiles) { for (const ext of nodeModuleExcludedExts) { if (name.endsWith(ext)) { @@ -111,7 +111,7 @@ export class NodeModuleCopyHelper extends FileCopyHelper { } } - return lstat(filePath).then((stat: FilterStats) => { + return fsExtra.lstat(filePath).then((stat: FilterStats) => { stat.moduleName = moduleName stat.moduleRootPath = destination stat.moduleFullFilePath = path.join(destination, path.relative(depPath, filePath)) diff --git a/packages/app-builder-lib/src/util/appFileCopier.ts b/packages/app-builder-lib/src/util/appFileCopier.ts index dffac4b77a7..eebfe5d9d0a 100644 --- a/packages/app-builder-lib/src/util/appFileCopier.ts +++ b/packages/app-builder-lib/src/util/appFileCopier.ts @@ -1,6 +1,6 @@ import { AsyncTaskManager, FileCopier, FileTransformer, isEmptyOrSpaces, Link, log, MAX_FILE_REQUESTS, statOrNull, walk } from "builder-util" import { Stats } from "fs" -import { ensureSymlink } from "fs-extra" +import * as fsExtra from "fs-extra" import { mkdir, readlink } from "fs/promises" import * as path from "path" import asyncPool from "tiny-async-pool" @@ -74,7 +74,7 @@ export async function copyAppFiles(fileSet: ResolvedFileSet, packager: Packager, await taskManager.awaitTasks() } - await asyncPool(MAX_FILE_REQUESTS, links, it => ensureSymlink(it.link, it.file)) + await asyncPool(MAX_FILE_REQUESTS, links, it => fsExtra.ensureSymlink(it.link, it.file)) } // os path separator is used diff --git a/packages/app-builder-lib/src/util/cacheManager.ts b/packages/app-builder-lib/src/util/cacheManager.ts index 7d7b0c894b8..5d832fb1f3a 100644 --- a/packages/app-builder-lib/src/util/cacheManager.ts +++ b/packages/app-builder-lib/src/util/cacheManager.ts @@ -1,6 +1,6 @@ import { Arch, copyFile, log, orNullIfFileNotExist } from "builder-util" import { Hash } from "crypto" -import { readJson, writeJson } from "fs-extra" +import * as fsExtra from "fs-extra" import { mkdir, readFile } from "fs/promises" import * as path from "path" @@ -32,7 +32,7 @@ export class BuildCacheManager { async copyIfValid(digest: string): Promise { this.newDigest = digest - this.cacheInfo = await orNullIfFileNotExist(readJson(this.cacheInfoFile)) + this.cacheInfo = await orNullIfFileNotExist(fsExtra.readJson(this.cacheInfoFile)) const oldDigest = this.cacheInfo == null ? null : this.cacheInfo.executableDigest if (oldDigest !== digest) { log.debug({ oldDigest, newDigest: digest }, "no valid cached executable found") @@ -66,7 +66,7 @@ export class BuildCacheManager { try { await mkdir(this.cacheDir, { recursive: true }) - await Promise.all([writeJson(this.cacheInfoFile, this.cacheInfo), copyFile(this.executableFile, this.cacheFile, false)]) + await Promise.all([fsExtra.writeJson(this.cacheInfoFile, this.cacheInfo), copyFile(this.executableFile, this.cacheFile, false)]) } catch (e: any) { log.warn({ error: e.stack || e }, `cannot save build cache`) } diff --git a/packages/app-builder-lib/src/util/config/config.ts b/packages/app-builder-lib/src/util/config/config.ts index 31d7db3fe06..10f9fe27536 100644 --- a/packages/app-builder-lib/src/util/config/config.ts +++ b/packages/app-builder-lib/src/util/config/config.ts @@ -1,6 +1,6 @@ import { DebugLogger, deepAssign, InvalidConfigurationError, log, safeStringifyJson, statOrNull } from "builder-util" import { Nullish } from "builder-util-runtime" -import { readJson } from "fs-extra" +import * as fsExtra from "fs-extra" import { Lazy } from "lazy-val" import * as path from "path" import { Configuration } from "../../configuration.js" @@ -8,7 +8,7 @@ import { FileSet } from "../../options/PlatformSpecificBuildOptions.js" import { reactCra } from "../../presets/rectCra.js" import { PACKAGE_VERSION } from "../../version.js" import { getConfig as _getConfig, loadParentConfig, orNullIfFileNotExist, ReadConfigRequest } from "./load.js" -const validateSchema = require("@develar/schema-utils") +import validateSchema from "@develar/schema-utils" // https://github.com/electron-userland/electron-builder/issues/1847 function mergePublish(config: Configuration, configFromOptions: Configuration) { @@ -37,7 +37,7 @@ export async function getConfig( projectDir: string, configPath: string | null, configFromOptions: Configuration | Nullish, - packageMetadata: Lazy | null> = new Lazy(() => orNullIfFileNotExist(readJson(path.join(projectDir, "package.json")))) + packageMetadata: Lazy | null> = new Lazy(() => orNullIfFileNotExist(fsExtra.readJson(path.join(projectDir, "package.json")))) ): Promise { const configRequest: ReadConfigRequest = { packageKey: "build", configFilename: "electron-builder", projectDir, packageMetadata } const configAndEffectiveFile = await _getConfig(configRequest, configPath) @@ -214,7 +214,7 @@ function getDefaultConfig(): Configuration { } } -const schemeDataPromise = new Lazy(() => readJson(path.join(__dirname, "..", "..", "..", "scheme.json"))) +const schemeDataPromise = new Lazy(() => fsExtra.readJson(path.join(__dirname, "..", "..", "..", "scheme.json"))) export async function validateConfiguration(config: Configuration, debugLogger: DebugLogger) { const extraMetadata = config.extraMetadata diff --git a/packages/app-builder-lib/src/util/config/load.ts b/packages/app-builder-lib/src/util/config/load.ts index a0b883207db..62f64fb6f00 100644 --- a/packages/app-builder-lib/src/util/config/load.ts +++ b/packages/app-builder-lib/src/util/config/load.ts @@ -8,7 +8,7 @@ import { Lazy } from "lazy-val" import * as path from "path" import { resolveModule } from "../resolve.js" -const jiti = createJiti(__filename) +const jiti = createJiti(import.meta.filename) export interface ReadConfigResult { readonly result: T diff --git a/packages/app-builder-lib/src/util/macosVersion.ts b/packages/app-builder-lib/src/util/macosVersion.ts index 62156f9e70d..ea8983dea5e 100644 --- a/packages/app-builder-lib/src/util/macosVersion.ts +++ b/packages/app-builder-lib/src/util/macosVersion.ts @@ -1,11 +1,11 @@ import { log } from "builder-util" -import { readFile } from "fs-extra" +import * as fsExtra from "fs-extra" import { Lazy } from "lazy-val" import { release as osRelease } from "os" import * as semver from "semver" const macOsVersion = new Lazy(async () => { - const file = await readFile("/System/Library/CoreServices/SystemVersion.plist", "utf8") + const file = await fsExtra.readFile("/System/Library/CoreServices/SystemVersion.plist", "utf8") const matches = /ProductVersion<\/key>[\s\S]*([\d.]+)<\/string>/.exec(file) if (!matches) { throw new Error("Couldn't find the macOS version") diff --git a/packages/app-builder-lib/src/util/packageMetadata.ts b/packages/app-builder-lib/src/util/packageMetadata.ts index 498ef23d3cc..e1332e5555f 100644 --- a/packages/app-builder-lib/src/util/packageMetadata.ts +++ b/packages/app-builder-lib/src/util/packageMetadata.ts @@ -1,6 +1,6 @@ import { InvalidConfigurationError, isEmptyOrSpaces, log } from "builder-util" import { Nullish } from "builder-util-runtime" -import { readFile, readJson, readJsonSync } from "fs-extra" +import * as fsExtra from "fs-extra" import * as path from "path" import * as semver from "semver" import { Metadata } from "../options/metadata.js" @@ -8,7 +8,7 @@ import { normalizePackageData } from "./normalizePackageData.js" /** @internal */ export async function readPackageJson(file: string): Promise { - const data = await readJson(file) + const data = await fsExtra.readJson(file) await authors(file, data) // remove not required fields because can be used for remote build delete data.scripts @@ -24,7 +24,7 @@ async function authors(file: string, data: any) { let authorData try { - authorData = await readFile(path.resolve(path.dirname(file), "AUTHORS"), "utf8") + authorData = await fsExtra.readFile(path.resolve(path.dirname(file), "AUTHORS"), "utf8") } catch (_ignored) { return } @@ -115,7 +115,7 @@ function checkDependencies(dependencies: Record | Nullish, error if (updaterVersion.startsWith(prefix)) { const normalized = path.normalize(updaterVersion.substring(prefix.length)) const packageJsonPath = path.isAbsolute(normalized) ? normalized : path.resolve(__dirname, normalized) - const json = readJsonSync(path.join(packageJsonPath, "package.json")) + const json = fsExtra.readJsonSync(path.join(packageJsonPath, "package.json")) updaterVersion = json.version break } diff --git a/packages/app-builder-lib/src/util/pathManager.ts b/packages/app-builder-lib/src/util/pathManager.ts index a80c0cdeee8..8f7ca31f0d0 100644 --- a/packages/app-builder-lib/src/util/pathManager.ts +++ b/packages/app-builder-lib/src/util/pathManager.ts @@ -1,6 +1,6 @@ import * as path from "path" -const root = path.join(__dirname, "..", "..") +const root = path.join(import.meta.dirname, "..", "..") export function getTemplatePath(file: string) { return path.join(root, "templates", file) diff --git a/packages/app-builder-lib/src/util/plist.ts b/packages/app-builder-lib/src/util/plist.ts index 2f2e31aecbf..ae4dd82ba1c 100644 --- a/packages/app-builder-lib/src/util/plist.ts +++ b/packages/app-builder-lib/src/util/plist.ts @@ -1,4 +1,4 @@ -import { build, parse } from "plist" +import * as plist_1 from "plist" import * as fs from "fs/promises" type PlistValue = string | number | boolean | Date | PlistObject | PlistValue[] @@ -27,13 +27,13 @@ function sortObjectKeys(obj: PlistValue): PlistValue { export async function savePlistFile(path: string, data: PlistValue): Promise { const sortedData = sortObjectKeys(data) - const plist = build(sortedData) + const plist = plist_1.build(sortedData) await fs.writeFile(path, plist) } export async function parsePlistFile(file: string): Promise { const data = await fs.readFile(file, "utf8") - return parse(data) as T + return plist_1.parse(data) as T } export type { PlistValue, PlistObject } diff --git a/packages/app-builder-lib/src/util/repositoryInfo.ts b/packages/app-builder-lib/src/util/repositoryInfo.ts index c5a6ee98e02..24e8cf8a4c3 100644 --- a/packages/app-builder-lib/src/util/repositoryInfo.ts +++ b/packages/app-builder-lib/src/util/repositoryInfo.ts @@ -1,5 +1,5 @@ import { orNullIfFileNotExist } from "builder-util" -import { readFile } from "fs-extra" +import * as fsExtra from "fs-extra" import GitHost, { fromUrl } from "hosted-git-info" import * as path from "path" import { SourceRepositoryInfo } from "../core.js" @@ -10,7 +10,7 @@ export function getRepositoryInfo(projectDir: string, metadata?: Metadata, devMe } async function getGitUrlFromGitConfig(projectDir: string): Promise { - const data = await orNullIfFileNotExist(readFile(path.join(projectDir, ".git", "config"), "utf8")) + const data = await orNullIfFileNotExist(fsExtra.readFile(path.join(projectDir, ".git", "config"), "utf8")) if (data == null) { return null } diff --git a/packages/app-builder-lib/src/util/yarn.ts b/packages/app-builder-lib/src/util/yarn.ts index 073cffaa576..3dfe8efe83b 100644 --- a/packages/app-builder-lib/src/util/yarn.ts +++ b/packages/app-builder-lib/src/util/yarn.ts @@ -1,5 +1,5 @@ import { asArray, log, spawn } from "builder-util" -import { pathExists } from "fs-extra" +import * as fsExtra from "fs-extra" import { Lazy } from "lazy-val" import { homedir } from "os" import * as path from "path" @@ -28,7 +28,7 @@ export async function installOrRebuild( let isDependenciesInstalled = false for (const fileOrDir of ["node_modules", ".pnp.js"]) { - if ((await pathExists(path.join(projectDir, fileOrDir))) || (await pathExists(path.join(appDir, fileOrDir)))) { + if ((await fsExtra.pathExists(path.join(projectDir, fileOrDir))) || (await fsExtra.pathExists(path.join(appDir, fileOrDir)))) { isDependenciesInstalled = true break diff --git a/packages/builder-util/package.json b/packages/builder-util/package.json index 85c614bd44d..1e5b8876bb7 100644 --- a/packages/builder-util/package.json +++ b/packages/builder-util/package.json @@ -25,7 +25,7 @@ "chalk": "^4.1.2", "cross-spawn": "^7.0.6", "debug": "^4.3.4", - "fs-extra": "^10.1.0", + "fs-extra": "^11.3.4", "http-proxy-agent": "^7.0.0", "https-proxy-agent": "^7.0.0", "js-yaml": "^4.1.0", diff --git a/packages/builder-util/src/7za.ts b/packages/builder-util/src/7za.ts index c3323a49ac0..742255b05b9 100644 --- a/packages/builder-util/src/7za.ts +++ b/packages/builder-util/src/7za.ts @@ -1,15 +1,15 @@ import { path7x, path7za } from "7zip-bin" import * as fs from "fs" -import { chmod } from "fs-extra" +import * as fsExtra from "fs-extra" export async function getPath7za(): Promise { if (fs.existsSync(path7za)) { - await chmod(path7za, 0o755) + await fsExtra.chmod(path7za, 0o755) } return path7za } export async function getPath7x(): Promise { - await chmod(path7x, 0o755) + await fsExtra.chmod(path7x, 0o755) return path7x } diff --git a/packages/builder-util/src/DebugLogger.ts b/packages/builder-util/src/DebugLogger.ts index 637239445e8..1a6ee37aa8e 100644 --- a/packages/builder-util/src/DebugLogger.ts +++ b/packages/builder-util/src/DebugLogger.ts @@ -1,4 +1,4 @@ -import { outputFile } from "fs-extra" +import * as fsExtra from "fs-extra" import { serializeToYaml } from "./util.js" import { mapToObject } from "./mapper.js" @@ -40,7 +40,7 @@ export class DebugLogger { const data = mapToObject(this.data) // toml and json doesn't correctly output multiline string as multiline if (this.isEnabled && Object.keys(data).length > 0) { - return outputFile(file, serializeToYaml(data)) + return fsExtra.outputFile(file, serializeToYaml(data)) } else { return Promise.resolve() } diff --git a/packages/builder-util/src/fs.ts b/packages/builder-util/src/fs.ts index 5e33a8d7cd7..de9658b627f 100644 --- a/packages/builder-util/src/fs.ts +++ b/packages/builder-util/src/fs.ts @@ -1,10 +1,10 @@ import { Nullish } from "builder-util-runtime" import { Stats } from "fs" -import { copyFile as _nodeCopyFile } from "fs-extra" +import * as fsExtra from "fs-extra" import { access, chmod, link, lstat, mkdir, readdir, readlink, stat, symlink, unlink, writeFile } from "fs/promises" import { platform } from "os" import * as path from "path" -import { Mode } from "stat-mode" +import statMode from "stat-mode" import asyncPool from "tiny-async-pool" import { log } from "./log.js" import { orIfFileNotExist, orNullIfFileNotExist } from "./promise.js" @@ -170,7 +170,7 @@ export function copyOrLinkFile(src: string, dest: string, stats?: Stats | null, if (stats != null) { const originalModeNumber = stats.mode - const mode = new Mode(stats) + const mode = new statMode.Mode(stats) if (mode.owner.execute) { mode.group.execute = true mode.others.execute = true @@ -184,7 +184,7 @@ export function copyOrLinkFile(src: string, dest: string, stats?: Stats | null, if (originalModeNumber !== stats.mode) { if (log.isDebugEnabled) { - const oldMode = new Mode({ mode: originalModeNumber }) + const oldMode = new statMode.Mode({ mode: originalModeNumber }) log.debug({ file: dest, oldMode, mode }, "permissions fixed from") } @@ -215,7 +215,7 @@ export function copyOrLinkFile(src: string, dest: string, stats?: Stats | null, } function doCopyFile(src: string, dest: string, stats: Stats | Nullish): Promise { - const promise = _nodeCopyFile(src, dest) + const promise = fsExtra.copyFile(src, dest) if (stats == null) { return promise } diff --git a/packages/dmg-builder/package.json b/packages/dmg-builder/package.json index 3691c02a7ff..d1dda570dcd 100644 --- a/packages/dmg-builder/package.json +++ b/packages/dmg-builder/package.json @@ -22,7 +22,7 @@ "dependencies": { "app-builder-lib": "workspace:*", "builder-util": "workspace:*", - "fs-extra": "^10.1.0", + "fs-extra": "^11.3.4", "iconv-lite": "^0.6.2", "js-yaml": "^4.1.0" }, diff --git a/packages/dmg-builder/src/dmgLicense.ts b/packages/dmg-builder/src/dmgLicense.ts index 104a00289f9..a63c2ad25c7 100644 --- a/packages/dmg-builder/src/dmgLicense.ts +++ b/packages/dmg-builder/src/dmgLicense.ts @@ -1,7 +1,7 @@ import { PlatformPackager } from "app-builder-lib" import { log } from "builder-util" import { dmgLicenseFromJSON } from "dmg-license" -import { readFile, readJson } from "fs-extra" +import * as fsExtra from "fs-extra" import { load } from "js-yaml" import { getLicenseButtonsFile } from "./licenseButtons.js" import { getLicenseFiles } from "app-builder-lib" @@ -40,7 +40,7 @@ export async function addLicenseToDmg(packager: PlatformPackager, dmgPath: for (const button of licenseButtonFiles) { const filepath = button.file - const label = filepath.endsWith(".yml") ? load(await readFile(filepath, "utf-8")) : await readJson(filepath) + const label = filepath.endsWith(".yml") ? load(await fsExtra.readFile(filepath, "utf-8")) : await fsExtra.readJson(filepath) if (label.description) { // to support original button file format label.message = label.description diff --git a/packages/dmg-builder/src/dmgUtil.ts b/packages/dmg-builder/src/dmgUtil.ts index 2e43f995a16..e69d2aa9572 100644 --- a/packages/dmg-builder/src/dmgUtil.ts +++ b/packages/dmg-builder/src/dmgUtil.ts @@ -1,7 +1,7 @@ import { DmgOptions, MacPackager, PlatformPackager } from "app-builder-lib" import { downloadArtifact } from "app-builder-lib" import { exec, executeFinally, exists, isEmptyOrSpaces, TmpDir } from "builder-util" -import { writeFile } from "fs-extra" +import * as fsExtra from "fs-extra" import * as path from "path" import { DmgBuildConfig } from "./dmg.js" import { hdiUtil, hdiutilTransientExitCodes } from "./hdiuil.js" @@ -183,7 +183,7 @@ export async function customizeDmg({ appPath, artifactPath, volumeName, specific } const settingsFile = await packager.getTempFile(".json") - await writeFile(settingsFile, JSON.stringify(settings, null, 2)) + await fsExtra.writeFile(settingsFile, JSON.stringify(settings, null, 2)) const dmgbuild = await getDmgVendorPath() await exec(dmgbuild, ["-s", settingsFile, path.basename(volumePath), artifactPath], { diff --git a/packages/dmg-builder/src/licenseButtons.ts b/packages/dmg-builder/src/licenseButtons.ts index 029bbb85369..deb3cd47053 100644 --- a/packages/dmg-builder/src/licenseButtons.ts +++ b/packages/dmg-builder/src/licenseButtons.ts @@ -1,7 +1,7 @@ import { PlatformPackager } from "app-builder-lib" import { getLicenseAssets } from "app-builder-lib" import { log } from "builder-util" -import { readFile } from "fs-extra" +import * as fsExtra from "fs-extra" import * as iconv from "iconv-lite" import { load } from "js-yaml" import { serializeString } from "./dmgUtil.js" @@ -34,7 +34,7 @@ export async function getLicenseButtons(licenseButtonFiles: Array orNullIfFileNotExist(readJson(path.join(projectDir, "package.json")))) + const packageMetadata = new Lazy(() => orNullIfFileNotExist(fsExtra.readJson(path.join(projectDir, "package.json")))) const config = await getConfig(projectDir, null, null, packageMetadata) const [appDir, version] = await Promise.all([computeDefaultAppDirectory(projectDir, config.directories?.app), getElectronVersion(projectDir, config)]) diff --git a/packages/electron-publish/package.json b/packages/electron-publish/package.json index 2db7c917e3e..8536e4b32c9 100644 --- a/packages/electron-publish/package.json +++ b/packages/electron-publish/package.json @@ -23,7 +23,7 @@ "builder-util-runtime": "workspace:*", "chalk": "^4.1.2", "form-data": "^4.0.5", - "fs-extra": "^10.1.0", + "fs-extra": "^11.3.4", "lazy-val": "^1.0.5", "mime": "^2.5.2" }, diff --git a/packages/electron-publish/src/bitbucketPublisher.ts b/packages/electron-publish/src/bitbucketPublisher.ts index f055a5b9616..bdc29ca6e30 100644 --- a/packages/electron-publish/src/bitbucketPublisher.ts +++ b/packages/electron-publish/src/bitbucketPublisher.ts @@ -2,7 +2,7 @@ import { Arch, httpExecutor, InvalidConfigurationError, isEmptyOrSpaces, log } f import { configureRequestOptions, HttpExecutor } from "builder-util-runtime" import { BitbucketOptions } from "builder-util-runtime" import FormData from "form-data" -import { readFile } from "fs-extra" +import * as fsExtra from "fs-extra" import { ClientRequest, RequestOptions } from "http" import { PublishContext } from "./index.js" import { HttpPublisher } from "./httpPublisher.js" @@ -42,7 +42,7 @@ export class BitbucketPublisher extends HttpPublisher { file: string ): Promise { return HttpExecutor.retryOnServerError(async () => { - const fileContent = await readFile(file) + const fileContent = await fsExtra.readFile(file) const form = new FormData() form.append("files", fileContent, fileName) const upload: RequestOptions = { diff --git a/packages/electron-publish/src/httpPublisher.ts b/packages/electron-publish/src/httpPublisher.ts index 903775386be..dfcdb1d595d 100644 --- a/packages/electron-publish/src/httpPublisher.ts +++ b/packages/electron-publish/src/httpPublisher.ts @@ -1,5 +1,5 @@ import { Arch } from "builder-util" -import { stat } from "fs-extra" +import * as fsExtra from "fs-extra" import { ClientRequest } from "http" import { basename } from "path" import { PublishContext, UploadTask } from "./index.js" @@ -35,7 +35,7 @@ export abstract class HttpPublisher extends Publisher { return } - const fileStat = await stat(task.file) + const fileStat = await fsExtra.stat(task.file) const progressBar = this.createProgressBar(fileName, fileStat.size) return this.doUpload( diff --git a/packages/electron-publish/src/publisher.ts b/packages/electron-publish/src/publisher.ts index ae7946c2f51..001422832c1 100644 --- a/packages/electron-publish/src/publisher.ts +++ b/packages/electron-publish/src/publisher.ts @@ -1,7 +1,7 @@ import { log, PADDING } from "builder-util" import { ProgressCallbackTransform, PublishProvider } from "builder-util-runtime" import * as chalk from "chalk" -import { createReadStream, Stats } from "fs-extra" +import * as fsExtra from "fs-extra" import { PublishContext, UploadTask } from "./index.js" import { ProgressBar } from "./progress.js" @@ -28,8 +28,8 @@ export abstract class Publisher { }) } - protected createReadStreamAndProgressBar(file: string, fileStat: Stats, progressBar: ProgressBar | null, reject: (error: Error) => void): NodeJS.ReadableStream { - const fileInputStream = createReadStream(file) + protected createReadStreamAndProgressBar(file: string, fileStat: fsExtra.Stats, progressBar: ProgressBar | null, reject: (error: Error) => void): NodeJS.ReadableStream { + const fileInputStream = fsExtra.createReadStream(file) fileInputStream.on("error", reject) if (progressBar == null) { diff --git a/packages/electron-updater/package.json b/packages/electron-updater/package.json index d417224ccca..1f5c93eb371 100644 --- a/packages/electron-updater/package.json +++ b/packages/electron-updater/package.json @@ -20,7 +20,7 @@ ], "dependencies": { "builder-util-runtime": "workspace:*", - "fs-extra": "^10.1.0", + "fs-extra": "^11.3.4", "js-yaml": "^4.1.0", "lazy-val": "^1.0.5", "lodash.escaperegexp": "^4.1.2", diff --git a/packages/electron-updater/src/AppImageUpdater.ts b/packages/electron-updater/src/AppImageUpdater.ts index 108b591fa6d..4d05cb7d55a 100644 --- a/packages/electron-updater/src/AppImageUpdater.ts +++ b/packages/electron-updater/src/AppImageUpdater.ts @@ -1,6 +1,6 @@ import { AllPublishOptions, newError } from "builder-util-runtime" import { execFileSync } from "child_process" -import { chmod } from "fs-extra" +import * as fsExtra from "fs-extra" import { unlinkSync } from "fs" import * as path from "path" import { DownloadUpdateOptions } from "./AppUpdater.js" @@ -45,7 +45,7 @@ export class AppImageUpdater extends BaseUpdater { await this.httpExecutor.download(fileInfo.url, updateFile, downloadOptions) } - await chmod(updateFile, 0o755) + await fsExtra.chmod(updateFile, 0o755) }, }) } diff --git a/packages/electron-updater/src/AppUpdater.ts b/packages/electron-updater/src/AppUpdater.ts index 637822ebed0..963cfb9d3c2 100644 --- a/packages/electron-updater/src/AppUpdater.ts +++ b/packages/electron-updater/src/AppUpdater.ts @@ -15,7 +15,7 @@ import { import { randomBytes } from "crypto" import { release } from "os" import { EventEmitter } from "events" -import { mkdir, outputFile, readFile, rename, unlink, copyFile, pathExists } from "fs-extra" +import * as fsExtra from "fs-extra" import { OutgoingHttpHeaders } from "http" import { load } from "js-yaml" import { Lazy } from "lazy-val" @@ -622,7 +622,7 @@ export abstract class AppUpdater extends (EventEmitter as new () => TypedEmitter if (this._appUpdateConfigPath == null) { this._appUpdateConfigPath = this.app.appUpdateConfigPath } - return load(await readFile(this._appUpdateConfigPath, "utf-8")) + return load(await fsExtra.readFile(this._appUpdateConfigPath, "utf-8")) } private computeRequestHeaders(provider: Provider): OutgoingHttpHeaders { @@ -642,7 +642,7 @@ export abstract class AppUpdater extends (EventEmitter as new () => TypedEmitter private async getOrCreateStagingUserId(): Promise { const file = path.join(this.app.userDataPath, ".updaterId") try { - const id = await readFile(file, "utf-8") + const id = await fsExtra.readFile(file, "utf-8") if (UUID.check(id)) { return id } else { @@ -657,7 +657,7 @@ export abstract class AppUpdater extends (EventEmitter as new () => TypedEmitter const id = UUID.v5(randomBytes(4096), UUID.OID) this._logger.info(`Generated new staging user ID: ${id}`) try { - await outputFile(file, id) + await fsExtra.outputFile(file, id) } catch (e: any) { this._logger.warn(`Couldn't write out staging user ID: ${e}`) } @@ -736,7 +736,7 @@ export abstract class AppUpdater extends (EventEmitter as new () => TypedEmitter const downloadedUpdateHelper = await this.getOrCreateDownloadHelper() const cacheDir = downloadedUpdateHelper.cacheDirForPendingUpdate - await mkdir(cacheDir, { recursive: true }) + await fsExtra.mkdir(cacheDir, { recursive: true }) const updateFileName = getCacheUpdateFileName() let updateFile = path.join(cacheDir, updateFileName) const packageFile = packageInfo == null ? null : path.join(cacheDir, `package-${version}${path.extname(packageInfo.path) || ".7z"}`) @@ -748,8 +748,8 @@ export abstract class AppUpdater extends (EventEmitter as new () => TypedEmitter downloadedFile: updateFile, }) const currentBlockMapFile = path.join(cacheDir, "current.blockmap") - if (await pathExists(currentBlockMapFile)) { - await copyFile(currentBlockMapFile, path.join(downloadedUpdateHelper.cacheDir, "current.blockmap")) + if (await fsExtra.pathExists(currentBlockMapFile)) { + await fsExtra.copyFile(currentBlockMapFile, path.join(downloadedUpdateHelper.cacheDir, "current.blockmap")) } return packageFile == null ? [updateFile] : [updateFile, packageFile] } @@ -765,7 +765,7 @@ export abstract class AppUpdater extends (EventEmitter as new () => TypedEmitter await downloadedUpdateHelper.clear().catch(() => { // ignore }) - return await unlink(updateFile).catch(() => { + return await fsExtra.unlink(updateFile).catch(() => { // ignore }) } @@ -773,7 +773,7 @@ export abstract class AppUpdater extends (EventEmitter as new () => TypedEmitter const tempUpdateFile = await createTempUpdateFile(`temp-${updateFileName}`, cacheDir, log) try { await taskOptions.task(tempUpdateFile, downloadOptions, packageFile, removeFileIfAny) - await retry(() => rename(tempUpdateFile, updateFile), { + await retry(() => fsExtra.rename(tempUpdateFile, updateFile), { retries: 60, interval: 500, shouldRetry: (error: Error) => { @@ -850,14 +850,14 @@ export abstract class AppUpdater extends (EventEmitter as new () => TypedEmitter const saveBlockMapToCacheDir = async (blockMapData: BlockMap, cacheDir: string) => { const blockMapFile = path.join(cacheDir, "current.blockmap") - await outputFile(blockMapFile, gzipSync(JSON.stringify(blockMapData))) + await fsExtra.outputFile(blockMapFile, gzipSync(JSON.stringify(blockMapData))) } const getBlockMapFromCacheDir = async (cacheDir: string) => { const blockMapFile = path.join(cacheDir, "current.blockmap") try { - if (await pathExists(blockMapFile)) { - return JSON.parse(gunzipSync(await readFile(blockMapFile)).toString()) + if (await fsExtra.pathExists(blockMapFile)) { + return JSON.parse(gunzipSync(await fsExtra.readFile(blockMapFile)).toString()) } } catch (e: any) { this._logger.warn(`Cannot parse blockmap "${blockMapFile}", error: ${e}`) diff --git a/packages/electron-updater/src/DownloadedUpdateHelper.ts b/packages/electron-updater/src/DownloadedUpdateHelper.ts index 0844727b0ae..eb4aa90d2cd 100644 --- a/packages/electron-updater/src/DownloadedUpdateHelper.ts +++ b/packages/electron-updater/src/DownloadedUpdateHelper.ts @@ -5,7 +5,7 @@ import { createReadStream } from "fs" import * as isEqual from "lodash.isequal" import { ResolvedUpdateFileInfo } from "./types.js" import { Logger } from "./types.js" -import { pathExists, readJson, emptyDir, outputJson, unlink } from "fs-extra" +import * as fsExtra from "fs-extra" import * as path from "path" /** @private **/ @@ -39,7 +39,7 @@ export class DownloadedUpdateHelper { if (this.versionInfo != null && this.file === updateFile && this.fileInfo != null) { // update has already been downloaded from this running instance // check here only existence, not checksum - if (isEqual(this.versionInfo, updateInfo) && isEqual(this.fileInfo.info, fileInfo.info) && (await pathExists(updateFile))) { + if (isEqual(this.versionInfo, updateInfo) && isEqual(this.fileInfo.info, fileInfo.info) && (await fsExtra.pathExists(updateFile))) { return updateFile } else { return null @@ -75,7 +75,7 @@ export class DownloadedUpdateHelper { } if (isSaveCache) { - await outputJson(this.getUpdateInfoFile(), this._downloadedFileInfo) + await fsExtra.outputJson(this.getUpdateInfoFile(), this._downloadedFileInfo) } } @@ -90,7 +90,7 @@ export class DownloadedUpdateHelper { private async cleanCacheDirForPendingUpdate(): Promise { try { // remove stale data - await emptyDir(this.cacheDirForPendingUpdate) + await fsExtra.emptyDir(this.cacheDirForPendingUpdate) } catch (_ignore) { // ignore } @@ -104,14 +104,14 @@ export class DownloadedUpdateHelper { private async getValidCachedUpdateFile(fileInfo: ResolvedUpdateFileInfo, logger: Logger): Promise { const updateInfoFilePath: string = this.getUpdateInfoFile() - const doesUpdateInfoFileExist = await pathExists(updateInfoFilePath) + const doesUpdateInfoFileExist = await fsExtra.pathExists(updateInfoFilePath) if (!doesUpdateInfoFileExist) { return null } let cachedInfo: CachedUpdateInfo try { - cachedInfo = await readJson(updateInfoFilePath) + cachedInfo = await fsExtra.readJson(updateInfoFilePath) } catch (error: any) { let message = `No cached update info available` if (error.code !== "ENOENT") { @@ -138,7 +138,7 @@ export class DownloadedUpdateHelper { } const updateFile = path.join(this.cacheDirForPendingUpdate, cachedInfo.fileName) - if (!(await pathExists(updateFile))) { + if (!(await fsExtra.pathExists(updateFile))) { logger.info("Cached update file doesn't exist") return null } @@ -185,7 +185,7 @@ export async function createTempUpdateFile(name: string, cacheDir: string, log: let result = path.join(cacheDir, name) for (let i = 0; i < 3; i++) { try { - await unlink(result) + await fsExtra.unlink(result) return result } catch (e: any) { if (e.code === "ENOENT") { diff --git a/packages/electron-updater/src/MacUpdater.ts b/packages/electron-updater/src/MacUpdater.ts index 6d324a61b62..92f24a06542 100644 --- a/packages/electron-updater/src/MacUpdater.ts +++ b/packages/electron-updater/src/MacUpdater.ts @@ -1,5 +1,5 @@ import { AllPublishOptions, newError, safeStringifyJson } from "builder-util-runtime" -import { pathExistsSync, stat, copyFile } from "fs-extra" +import * as fsExtra from "fs-extra" import { createReadStream } from "fs" import * as path from "path" import { createServer, IncomingMessage, Server, ServerResponse } from "http" @@ -103,7 +103,7 @@ export class MacUpdater extends AppUpdater { task: async (destinationFile, downloadOptions) => { const cachedUpdateFilePath = path.join(this.downloadedUpdateHelper!.cacheDir, CURRENT_MAC_APP_ZIP_FILE_NAME) const canDifferentialDownload = () => { - if (!pathExistsSync(cachedUpdateFilePath)) { + if (!fsExtra.pathExistsSync(cachedUpdateFilePath)) { log.info("Unable to locate previous update.zip for differential download (is this first install?), falling back to full download") return false } @@ -122,7 +122,7 @@ export class MacUpdater extends AppUpdater { if (!downloadUpdateOptions.disableDifferentialDownload) { try { const cachedUpdateFilePath = path.join(this.downloadedUpdateHelper!.cacheDir, CURRENT_MAC_APP_ZIP_FILE_NAME) - await copyFile(event.downloadedFile, cachedUpdateFilePath) + await fsExtra.copyFile(event.downloadedFile, cachedUpdateFilePath) } catch (error: any) { this._logger.warn(`Unable to copy file for caching for future differential downloads: ${error.message}`) } @@ -134,7 +134,7 @@ export class MacUpdater extends AppUpdater { private async updateDownloaded(zipFileInfo: ResolvedUpdateFileInfo, event: UpdateDownloadedEvent): Promise> { const downloadedFile = event.downloadedFile - const updateFileSize = zipFileInfo.info.size ?? (await stat(downloadedFile)).size + const updateFileSize = zipFileInfo.info.size ?? (await fsExtra.stat(downloadedFile)).size const log = this._logger const logContext = `fileToProxy=${zipFileInfo.url.href}` diff --git a/packages/electron-updater/src/NsisUpdater.ts b/packages/electron-updater/src/NsisUpdater.ts index 70966a1fb37..977979a68ab 100644 --- a/packages/electron-updater/src/NsisUpdater.ts +++ b/packages/electron-updater/src/NsisUpdater.ts @@ -8,7 +8,7 @@ import { FileWithEmbeddedBlockMapDifferentialDownloader } from "./differentialDo import { DOWNLOAD_PROGRESS } from "./types.js" import { VerifyUpdateCodeSignature } from "./main.js" import { findFile, Provider } from "./providers/Provider.js" -import { unlink } from "fs-extra" +import * as fsExtra from "fs-extra" import { verifySignature } from "./windowsExecutableCodeSignatureVerifier.js" import { URL } from "url" @@ -90,7 +90,7 @@ export class NsisUpdater extends BaseUpdater { }) } catch (e: any) { try { - await unlink(packageFile) + await fsExtra.unlink(packageFile) } catch (_ignored) { // ignore } diff --git a/packages/electron-updater/src/differentialDownloader/DifferentialDownloader.ts b/packages/electron-updater/src/differentialDownloader/DifferentialDownloader.ts index f92f8e84caa..4fe69058223 100644 --- a/packages/electron-updater/src/differentialDownloader/DifferentialDownloader.ts +++ b/packages/electron-updater/src/differentialDownloader/DifferentialDownloader.ts @@ -1,6 +1,6 @@ import { BlockMapDataHolder, createHttpError, DigestTransform, HttpExecutor, configureRequestUrl, configureRequestOptions } from "builder-util-runtime" import { BlockMap } from "builder-util-runtime" -import { close, open } from "fs-extra" +import * as fsExtra from "fs-extra" import { createWriteStream } from "fs" import { OutgoingHttpHeaders, RequestOptions } from "http" import { ProgressInfo, CancellationToken } from "builder-util-runtime" @@ -90,7 +90,7 @@ export abstract class DifferentialDownloader { const closeFiles = (): Promise> => { return Promise.all( fdList.map(openedFile => { - return close(openedFile.descriptor).catch((e: any) => { + return fsExtra.close(openedFile.descriptor).catch((e: any) => { this.logger.error(`cannot close file "${openedFile.path}": ${e}`) }) }) @@ -121,9 +121,9 @@ export abstract class DifferentialDownloader { } private async doDownloadFile(tasks: Array, fdList: Array): Promise { - const oldFileFd = await open(this.options.oldFile, "r") + const oldFileFd = await fsExtra.open(this.options.oldFile, "r") fdList.push({ descriptor: oldFileFd, path: this.options.oldFile }) - const newFileFd = await open(this.options.newFile, "w") + const newFileFd = await fsExtra.open(this.options.newFile, "w") fdList.push({ descriptor: newFileFd, path: this.options.newFile }) const fileOut = createWriteStream(this.options.newFile, { fd: newFileFd }) await new Promise((resolve, reject) => { diff --git a/packages/electron-updater/src/differentialDownloader/FileWithEmbeddedBlockMapDifferentialDownloader.ts b/packages/electron-updater/src/differentialDownloader/FileWithEmbeddedBlockMapDifferentialDownloader.ts index bbe2707f8b1..16619dce902 100644 --- a/packages/electron-updater/src/differentialDownloader/FileWithEmbeddedBlockMapDifferentialDownloader.ts +++ b/packages/electron-updater/src/differentialDownloader/FileWithEmbeddedBlockMapDifferentialDownloader.ts @@ -1,5 +1,5 @@ import { BlockMap } from "builder-util-runtime" -import { close, fstat, open, read } from "fs-extra" +import * as fsExtra from "fs-extra" import { DifferentialDownloader } from "./DifferentialDownloader.js" import { inflateRawSync } from "zlib" @@ -19,19 +19,19 @@ function readBlockMap(data: Buffer): BlockMap { } async function readEmbeddedBlockMapData(file: string): Promise { - const fd = await open(file, "r") + const fd = await fsExtra.open(file, "r") try { - const fileSize = (await fstat(fd)).size + const fileSize = (await fsExtra.fstat(fd)).size const sizeBuffer = Buffer.allocUnsafe(4) - await read(fd, sizeBuffer, 0, sizeBuffer.length, fileSize - sizeBuffer.length) + await fsExtra.read(fd, sizeBuffer, 0, sizeBuffer.length, fileSize - sizeBuffer.length) const dataBuffer = Buffer.allocUnsafe(sizeBuffer.readUInt32BE(0)) - await read(fd, dataBuffer, 0, dataBuffer.length, fileSize - sizeBuffer.length - dataBuffer.length) - await close(fd) + await fsExtra.read(fd, dataBuffer, 0, dataBuffer.length, fileSize - sizeBuffer.length - dataBuffer.length) + await fsExtra.close(fd) return readBlockMap(dataBuffer) } catch (e: any) { - await close(fd) + await fsExtra.close(fd) throw e } } diff --git a/packages/electron-updater/src/main.ts b/packages/electron-updater/src/main.ts index e484d59ba61..b59dc9012bb 100644 --- a/packages/electron-updater/src/main.ts +++ b/packages/electron-updater/src/main.ts @@ -1,4 +1,4 @@ -import { existsSync, readFileSync } from "fs-extra" +import * as fsExtra from "fs-extra" import * as path from "path" import { AppUpdater } from "./AppUpdater.js" @@ -39,10 +39,10 @@ function doLoadAutoUpdater(): AppUpdater { _autoUpdater = new (require("./AppImageUpdater").AppImageUpdater)() try { const identity = path.join(process.resourcesPath, "package-type") - if (!existsSync(identity)) { + if (!fsExtra.existsSync(identity)) { return _autoUpdater } - const fileType = readFileSync(identity).toString().trim() + const fileType = fsExtra.readFileSync(identity).toString().trim() switch (fileType) { case "deb": _autoUpdater = new (require("./DebUpdater").DebUpdater)() diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 68866b695ff..caaa3731435 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -75,8 +75,8 @@ importers: specifier: ^5.2.1 version: 5.5.4(eslint-config-prettier@9.1.2(eslint@9.39.2(jiti@2.4.2)))(eslint@9.39.2(jiti@2.4.2))(prettier@3.7.4) fs-extra: - specifier: 10.1.0 - version: 10.1.0 + specifier: ^11.3.4 + version: 11.3.4 is-ci: specifier: ^4.1.0 version: 4.1.0 @@ -165,8 +165,8 @@ importers: specifier: workspace:* version: link:../electron-publish fs-extra: - specifier: ^10.1.0 - version: 10.1.0 + specifier: ^11.3.4 + version: 11.3.4 hosted-git-info: specifier: ^4.1.0 version: 4.1.0 @@ -331,8 +331,8 @@ importers: specifier: ^4.3.4 version: 4.4.3 fs-extra: - specifier: ^10.1.0 - version: 10.1.0 + specifier: ^11.3.4 + version: 11.3.4 http-proxy-agent: specifier: ^7.0.0 version: 7.0.2 @@ -399,8 +399,8 @@ importers: specifier: workspace:* version: link:../builder-util fs-extra: - specifier: ^10.1.0 - version: 10.1.0 + specifier: ^11.3.4 + version: 11.3.4 iconv-lite: specifier: ^0.6.2 version: 0.6.3 @@ -443,8 +443,8 @@ importers: specifier: workspace:* version: link:../dmg-builder fs-extra: - specifier: ^10.1.0 - version: 10.1.0 + specifier: ^11.3.4 + version: 11.3.4 lazy-val: specifier: ^1.0.5 version: 1.0.5 @@ -523,8 +523,8 @@ importers: specifier: ^4.0.5 version: 4.0.5 fs-extra: - specifier: ^10.1.0 - version: 10.1.0 + specifier: ^11.3.4 + version: 11.3.4 lazy-val: specifier: ^1.0.5 version: 1.0.5 @@ -542,8 +542,8 @@ importers: specifier: workspace:* version: link:../builder-util-runtime fs-extra: - specifier: ^10.1.0 - version: 10.1.0 + specifier: ^11.3.4 + version: 11.3.4 js-yaml: specifier: ^4.1.0 version: 4.1.1 @@ -627,8 +627,8 @@ importers: specifier: 5.4.0 version: 5.4.0 fs-extra: - specifier: ^10.1.0 - version: 10.1.0 + specifier: ^11.3.4 + version: 11.3.4 js-yaml: specifier: ^4.1.0 version: 4.1.1 @@ -3425,8 +3425,8 @@ packages: resolution: {integrity: sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==} engines: {node: '>=12'} - fs-extra@11.3.0: - resolution: {integrity: sha512-Z4XaCL6dUDHfP/jT25jJKMmtxvuwbkrD1vNSMFlo9lNLY2c5FHYSQgHPRZUjAB26TpDEoW9HCOgplrdbaPV/ew==} + fs-extra@11.3.4: + resolution: {integrity: sha512-CTXd6rk/M3/ULNQj8FBqBWHYBVYybQ3VPBw0xGKFe3tuH7ytT6ACnvzpIQ3UZtB8yvUKC2cXn1a+x+5EVQLovA==} engines: {node: '>=14.14'} fs-extra@7.0.1: @@ -6517,7 +6517,7 @@ snapshots: '@malept/cross-spawn-promise': 2.0.0 debug: 4.4.3 dir-compare: 4.2.0 - fs-extra: 11.3.0 + fs-extra: 11.3.4 minimatch: 9.0.5 plist: 3.1.0 transitivePeerDependencies: @@ -6527,7 +6527,7 @@ snapshots: dependencies: cross-dirname: 0.1.0 debug: 4.4.3 - fs-extra: 11.3.0 + fs-extra: 11.3.4 minimist: 1.2.8 postject: 1.0.0-alpha.6 transitivePeerDependencies: @@ -8399,7 +8399,7 @@ snapshots: jsonfile: 6.1.0 universalify: 2.0.1 - fs-extra@11.3.0: + fs-extra@11.3.4: dependencies: graceful-fs: 4.2.11 jsonfile: 6.1.0 @@ -10001,7 +10001,7 @@ snapshots: dependencies: bluebird: 3.7.2 duplexer2: 0.1.4 - fs-extra: 11.3.0 + fs-extra: 11.3.4 graceful-fs: 4.2.11 node-int64: 0.4.0 diff --git a/scripts/renderer/src/typedoc2html.ts b/scripts/renderer/src/typedoc2html.ts index 408724f19c5..9605cccb467 100644 --- a/scripts/renderer/src/typedoc2html.ts +++ b/scripts/renderer/src/typedoc2html.ts @@ -1,4 +1,4 @@ -import { copy, exists } from "fs-extra" +import * as fsExtra from "fs-extra" import { rm } from "fs/promises" import * as path from "path" import * as process from "process" @@ -12,14 +12,14 @@ async function main() { console.log("copying from", origin, dest) const siteDir = path.resolve(process.cwd(), "site") - if (await exists(siteDir)) { + if (await fsExtra.exists(siteDir)) { await rm(siteDir, { recursive: true }) } - if (await exists(dest)) { + if (await fsExtra.exists(dest)) { await rm(dest, { recursive: true }) } - await copy(origin, dest) - await copy(path.resolve(process.cwd(), "./README.md"), path.resolve(dest, "README.md")) + await fsExtra.copy(origin, dest) + await fsExtra.copy(path.resolve(process.cwd(), "./README.md"), path.resolve(dest, "README.md")) const typedocConfig: Partial = { options: "typedoc.config.js", diff --git a/test/package.json b/test/package.json index d9b521a2c35..db027513e34 100644 --- a/test/package.json +++ b/test/package.json @@ -17,7 +17,7 @@ "electron-publish": "workspace:*", "electron-updater": "workspace:*", "electron-winstaller": "5.4.0", - "fs-extra": "^10.1.0", + "fs-extra": "^11.3.4", "js-yaml": "^4.1.0", "lazy-val": "^1.0.5", "path-sort": "^0.1.0", diff --git a/test/src/BuildTest.ts b/test/src/BuildTest.ts index 4574d6e7994..457d04fa2dd 100644 --- a/test/src/BuildTest.ts +++ b/test/src/BuildTest.ts @@ -3,7 +3,7 @@ import { doMergeConfigs } from "app-builder-lib" import { Arch, createTargets, DIR_TARGET, Platform } from "electron-builder" import { createYargs } from "electron-builder" import { promises as fs } from "fs" -import { outputFile, outputJson } from "fs-extra" +import * as fsExtra from "fs-extra" import * as path from "path" import { app, appTwo, appTwoThrows, assertPack, getFixtureDir, linuxDirTarget, modifyPackageJson, packageJson, toSystemIndependentPath } from "./helpers/packTester.js" import { ELECTRON_VERSION } from "./helpers/testConfig.js" @@ -161,7 +161,7 @@ it.ifNotWindows("electron version from electron-prebuilt dependency", ({ expect data.devDependencies = {} }) return () => - outputJson(path.join(projectDir, "node_modules", "electron-prebuilt", "package.json"), { + fsExtra.outputJson(path.join(projectDir, "node_modules", "electron-prebuilt", "package.json"), { version: ELECTRON_VERSION, }) }, @@ -182,7 +182,7 @@ test.ifNotWindows("electron version from electron dependency", ({ expect }) => data.devDependencies = {} }) return () => - outputJson(path.join(projectDir, "node_modules", "electron", "package.json"), { + fsExtra.outputJson(path.join(projectDir, "node_modules", "electron", "package.json"), { version: ELECTRON_VERSION, }) }, @@ -399,8 +399,8 @@ test("smart unpack local module with dll file", ({ expect }) => { projectDirCreated: async (projectDir, tmpDir) => { const tmpPath = await tmpDir.getTempDir() const localPath = path.join(tmpPath, "foo") - await outputFile(path.join(localPath, "package.json"), `{"name":"foo","version":"9.0.0","main":"index.js","license":"MIT"}`) - await outputFile(path.join(localPath, "test.dll"), `test`) + await fsExtra.outputFile(path.join(localPath, "package.json"), `{"name":"foo","version":"9.0.0","main":"index.js","license":"MIT"}`) + await fsExtra.outputFile(path.join(localPath, "test.dll"), `test`) await modifyPackageJson(projectDir, data => { data.dependencies = { debug: "3.1.0", diff --git a/test/src/HoistedNodeModuleTest.ts b/test/src/HoistedNodeModuleTest.ts index dd1f9c81de2..4b7befaffe4 100644 --- a/test/src/HoistedNodeModuleTest.ts +++ b/test/src/HoistedNodeModuleTest.ts @@ -4,7 +4,7 @@ import { Arch, DIR_TARGET, Platform } from "electron-builder" import * as path from "path" import { appTwoThrows, assertPack, linuxDirTarget, modifyPackageJson, verifyAsarFileTree } from "./helpers/packTester" import { ELECTRON_VERSION } from "./helpers/testConfig" -import { copy, mkdir, outputFile, readJson, rm, symlink, writeJson } from "fs-extra" +import * as fsExtra from "fs-extra" describe.ifNotWindows("node_module collectors", () => { test("yarn workspace", ({ expect }) => @@ -112,16 +112,16 @@ describe.ifNotWindows("node_module collectors", () => { } }) - await mkdir(path.join(projectDir, "app")) - await copy(path.join(projectDir, "index.html"), path.join(projectDir, "app", "index.html")) - await copy(path.join(projectDir, "index.js"), path.join(projectDir, "app", "index.js")) + await fsExtra.mkdir(path.join(projectDir, "app")) + await fsExtra.copy(path.join(projectDir, "index.html"), path.join(projectDir, "app", "index.html")) + await fsExtra.copy(path.join(projectDir, "index.js"), path.join(projectDir, "app", "index.js")) // delete package.json devDependencies - const packageJson = await readJson(path.join(projectDir, "package.json")) + const packageJson = await fsExtra.readJson(path.join(projectDir, "package.json")) delete packageJson.devDependencies delete packageJson.build delete packageJson.scripts - await writeJson(path.join(projectDir, "app", "package.json"), packageJson) + await fsExtra.writeJson(path.join(projectDir, "app", "package.json"), packageJson) await spawn("yarn", ["install"], { cwd: projectDir, @@ -170,17 +170,17 @@ describe.ifNotWindows("node_module collectors", () => { stdio: "ignore", }) - await mkdir(path.join(projectDir, "app")) - await rm(path.join(projectDir, "app", "node_modules"), { recursive: true, force: true }) - await copy(path.join(projectDir, "index.html"), path.join(projectDir, "app", "index.html")) - await copy(path.join(projectDir, "index.js"), path.join(projectDir, "app", "index.js")) + await fsExtra.mkdir(path.join(projectDir, "app")) + await fsExtra.rm(path.join(projectDir, "app", "node_modules"), { recursive: true, force: true }) + await fsExtra.copy(path.join(projectDir, "index.html"), path.join(projectDir, "app", "index.html")) + await fsExtra.copy(path.join(projectDir, "index.js"), path.join(projectDir, "app", "index.js")) // delete package.json devDependencies - const packageJson = await readJson(path.join(projectDir, "package.json")) + const packageJson = await fsExtra.readJson(path.join(projectDir, "package.json")) delete packageJson.devDependencies delete packageJson.build delete packageJson.scripts - await writeJson(path.join(projectDir, "app", "package.json"), packageJson) + await fsExtra.writeJson(path.join(projectDir, "app", "package.json"), packageJson) }, packed: context => verifyAsarFileTree(expect, context.getResources(Platform.LINUX)), } @@ -225,7 +225,7 @@ describe.ifNotWindows("node_module collectors", () => { { packageManager: PM.YARN, projectDirCreated: async projectDir => { - await symlink(invalidPath, path.join(projectDir, "app", "badlink")) + await fsExtra.symlink(invalidPath, path.join(projectDir, "app", "badlink")) }, }, error => { @@ -400,7 +400,7 @@ describe.ifNotWindows("node_module collectors", () => { storeDepsLockfileSnapshot: true, packageManager: PM.YARN, projectDirCreated: async projectDir => { - await outputFile(path.join(projectDir, "node_modules", "foo", "package.json"), `{"name":"foo","version":"9.0.0","main":"index.js","license":"MIT"}`) + await fsExtra.outputFile(path.join(projectDir, "node_modules", "foo", "package.json"), `{"name":"foo","version":"9.0.0","main":"index.js","license":"MIT"}`) await modifyPackageJson(projectDir, data => { data.dependencies = { debug: "3.1.0", @@ -555,7 +555,7 @@ describe.ifNotWindows("node_module collectors", () => { dayjs: "1.11.13", } }), - outputFile(path.join(projectDir, ".npmrc"), "node-linker=hoisted"), + fsExtra.outputFile(path.join(projectDir, ".npmrc"), "node-linker=hoisted"), ]) }, packed: context => verifyAsarFileTree(expect, context.getResources(Platform.LINUX)), @@ -578,7 +578,7 @@ describe.ifNotWindows("node_module collectors", () => { dayjs: "1.11.13", } }), - outputFile(path.join(projectDir, ".npmrc"), "shamefully-hoist=true"), + fsExtra.outputFile(path.join(projectDir, ".npmrc"), "shamefully-hoist=true"), ]) }, packed: context => verifyAsarFileTree(expect, context.getResources(Platform.LINUX)), @@ -601,7 +601,7 @@ describe.ifNotWindows("node_module collectors", () => { dayjs: "1.11.13", } }), - outputFile(path.join(projectDir, ".npmrc"), "public-hoist-pattern=*"), + fsExtra.outputFile(path.join(projectDir, ".npmrc"), "public-hoist-pattern=*"), ]) }, packed: context => verifyAsarFileTree(expect, context.getResources(Platform.LINUX)), diff --git a/test/src/PublishManagerTest.ts b/test/src/PublishManagerTest.ts index 4375a8b6b25..fd3f5ee711c 100644 --- a/test/src/PublishManagerTest.ts +++ b/test/src/PublishManagerTest.ts @@ -1,6 +1,6 @@ import { GenericServerOptions, GithubOptions, KeygenOptions, SpacesOptions } from "builder-util-runtime" import { Arch, createTargets, Platform } from "electron-builder" -import { outputFile } from "fs-extra" +import * as fsExtra from "fs-extra" import * as path from "path" import { assertThat } from "./helpers/fileAssert.js" import { app, checkDirContents } from "./helpers/packTester.js" @@ -149,7 +149,7 @@ test.ifNotWindows("custom provider", ({ expect }) => { publish: "never", projectDirCreated: projectDir => - outputFile( + fsExtra.outputFile( path.join(projectDir, "build/electron-publisher-custom.js"), `class Publisher { async upload(task) { diff --git a/test/src/extraMetadataTest.ts b/test/src/extraMetadataTest.ts index aadd4718ec1..5fba1ce28d6 100644 --- a/test/src/extraMetadataTest.ts +++ b/test/src/extraMetadataTest.ts @@ -1,7 +1,7 @@ import { readAsarJson } from "app-builder-lib" import { Platform } from "electron-builder" import { coerceTypes } from "electron-builder" -import { readJson } from "fs-extra" +import * as fsExtra from "fs-extra" import * as path from "path" import { assertThat } from "./helpers/fileAssert.js" import { app, linuxDirTarget, modifyPackageJson } from "./helpers/packTester.js" @@ -44,7 +44,7 @@ function createExtraMetadataTest(expect: ExpectStatic, asar: boolean) { if (asar) { expect(await readAsarJson(path.join(context.getResources(Platform.LINUX), "app.asar"), "package.json")).toMatchSnapshot() } else { - expect(await readJson(path.join(context.getResources(Platform.LINUX), "app", "package.json"))).toMatchSnapshot() + expect(await fsExtra.readJson(path.join(context.getResources(Platform.LINUX), "app", "package.json"))).toMatchSnapshot() } }, } diff --git a/test/src/filesTest.ts b/test/src/filesTest.ts index 88f6b376546..176f7d40364 100644 --- a/test/src/filesTest.ts +++ b/test/src/filesTest.ts @@ -1,9 +1,9 @@ import { TmpDir, archFromString, copyDir } from "builder-util" import { DIR_TARGET, Platform } from "electron-builder" -import { outputFile } from "fs-extra" +import * as fsExtra from "fs-extra" import * as fs from "fs/promises" import * as path from "path" -import { Mode, RWX } from "stat-mode" +import statMode from "stat-mode" import { assertThat } from "./helpers/fileAssert.js" import { app, appThrows, assertPack, checkDirContents, linuxDirTarget, modifyPackageJson } from "./helpers/packTester.js" import { ExpectStatic } from "vitest" @@ -35,10 +35,10 @@ test.ifNotWindows("files", ({ expect }) => { projectDirCreated: projectDir => Promise.all([ - outputFile(path.join(projectDir, "ignoreMe", "foo"), "data"), - outputFile(path.join(projectDir, "ignoreEmptyDir", "bar"), "data"), - outputFile(path.join(projectDir, "test.h"), "test that"), - outputFile(path.join(projectDir, "dist/electron/foo.js"), "data"), + fsExtra.outputFile(path.join(projectDir, "ignoreMe", "foo"), "data"), + fsExtra.outputFile(path.join(projectDir, "ignoreEmptyDir", "bar"), "data"), + fsExtra.outputFile(path.join(projectDir, "test.h"), "test that"), + fsExtra.outputFile(path.join(projectDir, "dist/electron/foo.js"), "data"), ]), packed: context => { const resources = path.join(context.getResources(Platform.LINUX), "app") @@ -100,7 +100,7 @@ test.ifNotWindows("map resources", ({ expect }) => }, }, { - projectDirCreated: projectDir => Promise.all([outputFile(path.join(projectDir, "foo", "old"), "data"), outputFile(path.join(projectDir, "license.txt"), "data")]), + projectDirCreated: projectDir => Promise.all([fsExtra.outputFile(path.join(projectDir, "foo", "old"), "data"), fsExtra.outputFile(path.join(projectDir, "license.txt"), "data")]), packed: context => { const resources = context.getResources(Platform.LINUX) return Promise.all([ @@ -132,13 +132,13 @@ async function doExtraResourcesTest(expect: ExpectStatic, platform: Platform) { { projectDirCreated: async projectDir => { return Promise.all([ - outputFile(path.resolve(projectDir, "foo/nameWithoutDot"), "nameWithoutDot"), - outputFile(path.resolve(projectDir, "bar/hello.txt"), "data"), - outputFile(path.resolve(projectDir, "dir-relative/f.txt"), "data"), - outputFile(path.resolve(projectDir, `bar/${process.arch}.txt`), "data"), - outputFile(path.resolve(projectDir, `${osName}/${process.arch}.txt`), "data"), - outputFile(path.resolve(projectDir, "platformSpecificR"), "platformSpecificR"), - outputFile(path.resolve(projectDir, "ignoreMe.txt"), "ignoreMe"), + fsExtra.outputFile(path.resolve(projectDir, "foo/nameWithoutDot"), "nameWithoutDot"), + fsExtra.outputFile(path.resolve(projectDir, "bar/hello.txt"), "data"), + fsExtra.outputFile(path.resolve(projectDir, "dir-relative/f.txt"), "data"), + fsExtra.outputFile(path.resolve(projectDir, `bar/${process.arch}.txt`), "data"), + fsExtra.outputFile(path.resolve(projectDir, `${osName}/${process.arch}.txt`), "data"), + fsExtra.outputFile(path.resolve(projectDir, "platformSpecificR"), "platformSpecificR"), + fsExtra.outputFile(path.resolve(projectDir, "ignoreMe.txt"), "ignoreMe"), ]) }, packed: async context => { @@ -188,14 +188,14 @@ test.ifNotWindows("extraResources - two-package", ({ expect }) => { { projectDirCreated: projectDir => { return Promise.all([ - outputFile(path.join(projectDir, "foo/nameWithoutDot"), "nameWithoutDot"), - outputFile(path.join(projectDir, "bar/hello.txt"), "data", { mode: 0o400 }), - outputFile(path.join(projectDir, `bar/${process.arch}.txt`), "data"), - outputFile(path.join(projectDir, `${osName}/${process.arch}.txt`), "data"), - outputFile(path.join(projectDir, "platformSpecificR"), "platformSpecificR"), - outputFile(path.join(projectDir, "ignoreMe.txt"), "ignoreMe"), - outputFile(path.join(projectDir, "executable"), "executable", { mode: 0o755 }), - outputFile(path.join(projectDir, "executableOnlyOwner"), "executable", { mode: 0o740 }), + fsExtra.outputFile(path.join(projectDir, "foo/nameWithoutDot"), "nameWithoutDot"), + fsExtra.outputFile(path.join(projectDir, "bar/hello.txt"), "data", { mode: 0o400 }), + fsExtra.outputFile(path.join(projectDir, `bar/${process.arch}.txt`), "data"), + fsExtra.outputFile(path.join(projectDir, `${osName}/${process.arch}.txt`), "data"), + fsExtra.outputFile(path.join(projectDir, "platformSpecificR"), "platformSpecificR"), + fsExtra.outputFile(path.join(projectDir, "ignoreMe.txt"), "ignoreMe"), + fsExtra.outputFile(path.join(projectDir, "executable"), "executable", { mode: 0o755 }), + fsExtra.outputFile(path.join(projectDir, "executableOnlyOwner"), "executable", { mode: 0o740 }), ]) }, packed: async context => { @@ -236,7 +236,7 @@ test.ifNotWindows("postpone symlink", async () => { const source = await tmpDir.getTempDir() const aSourceFile = path.join(source, "z", "Z") const bSourceFileLink = path.join(source, "B") - await outputFile(aSourceFile, "test") + await fsExtra.outputFile(aSourceFile, "test") await fs.symlink(aSourceFile, bSourceFileLink) const dest = await tmpDir.getTempDir() @@ -246,15 +246,15 @@ test.ifNotWindows("postpone symlink", async () => { }) async function allCan(file: string, execute: boolean) { - const mode = new Mode(await fs.stat(file)) + const mode = new statMode.Mode(await fs.stat(file)) - function checkExecute(value: RWX) { + function checkExecute(value: statMode.RWX) { if (value.execute !== execute) { throw new Error(`${file} is ${execute ? "not " : ""}executable`) } } - function checkRead(value: RWX) { + function checkRead(value: statMode.RWX) { if (!value.read) { throw new Error(`${file} is not readable`) } diff --git a/test/src/globTest.ts b/test/src/globTest.ts index 69cb7fa1f51..341053fd6fa 100644 --- a/test/src/globTest.ts +++ b/test/src/globTest.ts @@ -1,7 +1,7 @@ import { Platform } from "app-builder-lib" import { readAsar } from "app-builder-lib" import { PM } from "app-builder-lib" -import { outputFile } from "fs-extra" +import * as fsExtra from "fs-extra" import * as fs from "fs/promises" import * as path from "path" import { ExpectStatic } from "vitest" @@ -11,11 +11,11 @@ import { verifySmartUnpack } from "./helpers/verifySmartUnpack.js" async function createFiles(appDir: string) { await Promise.all([ - outputFile(path.join(appDir, "assets", "file1"), "data"), - outputFile(path.join(appDir, "assets", "file2"), "data"), - outputFile(path.join(appDir, "assets", "subdir", "file3"), "data"), - outputFile(path.join(appDir, "b2", "file"), "data"), - outputFile(path.join(appDir, "do-not-unpack-dir", "file.json"), "{}").then(() => fs.writeFile(path.join(appDir, "do-not-unpack-dir", "must-be-not-unpacked"), "{}")), + fsExtra.outputFile(path.join(appDir, "assets", "file1"), "data"), + fsExtra.outputFile(path.join(appDir, "assets", "file2"), "data"), + fsExtra.outputFile(path.join(appDir, "assets", "subdir", "file3"), "data"), + fsExtra.outputFile(path.join(appDir, "b2", "file"), "data"), + fsExtra.outputFile(path.join(appDir, "do-not-unpack-dir", "file.json"), "{}").then(() => fs.writeFile(path.join(appDir, "do-not-unpack-dir", "must-be-not-unpacked"), "{}")), ]) const dir = path.join(appDir, "do-not-unpack-dir", "dir-2", "dir-3", "dir-3") @@ -84,7 +84,7 @@ test.ifNotWindows("asarUnpack and files ignore", ({ expect }) => { }, }, { - projectDirCreated: projectDir => outputFile(path.join(projectDir, "test/ffprobe-static/bin/darwin/x64/ffprobe"), "data"), + projectDirCreated: projectDir => fsExtra.outputFile(path.join(projectDir, "test/ffprobe-static/bin/darwin/x64/ffprobe"), "data"), packed: async context => { const resourceDir = context.getResources(Platform.LINUX) await Promise.all([assertThat(expect, path.join(resourceDir, "app.asar.unpacked", "test/ffprobe-static/bin/darwin/x64/ffprobe")).doesNotExist()]) @@ -123,7 +123,7 @@ test.skip("outside link", ({ expect }) => { projectDirCreated: async (projectDir, tmpDir) => { const tempDir = await tmpDir.getTempDir() - await outputFile(path.join(tempDir, "foo"), "data") + await fsExtra.outputFile(path.join(tempDir, "foo"), "data") await fs.symlink(tempDir, path.join(projectDir, "o-dir")) }, }, diff --git a/test/src/helpers/packTester.ts b/test/src/helpers/packTester.ts index 5f0c5be2dda..3361b1486cb 100644 --- a/test/src/helpers/packTester.ts +++ b/test/src/helpers/packTester.ts @@ -9,7 +9,7 @@ import { CancellationToken, UpdateFileInfo } from "builder-util-runtime" import { Arch, ArtifactCreated, Configuration, DIR_TARGET, getArchSuffix, MacOsTargetName, Packager, PackagerOptions, Platform, Target } from "electron-builder" import { convertVersion } from "electron-winstaller" import { PublishPolicy } from "electron-publish" -import { copyFile, emptyDir, mkdir, writeJson } from "fs-extra" +import * as fsExtra from "fs-extra" import * as fs from "fs/promises" import { load } from "js-yaml" import * as path from "path" @@ -155,7 +155,7 @@ export async function assertPack(expect: ExpectStatic, fixtureName: string, pack // non-macOS test uses the same dir as macOS test, but we cannot share node_modules (because tests executed in parallel) const dir = customTmpDir == null ? await tmpDir.createTempDir({ prefix: "test_project" }) : path.resolve(customTmpDir) if (customTmpDir != null) { - await emptyDir(dir) + await fsExtra.emptyDir(dir) log.info({ customTmpDir }, "custom temp dir used") } @@ -242,7 +242,7 @@ export async function assertPack(expect: ExpectStatic, fixtureName: string, pack const shouldUpdateLockfiles = !!process.env.UPDATE_LOCKFILE_FIXTURES && !!checkOptions.storeDepsLockfileSnapshot // check for lockfile fixture so we can use `--frozen-lockfile` if ((await exists(testFixtureLockfile)) && !shouldUpdateLockfiles) { - await copyFile(testFixtureLockfile, destLockfile) + await fsExtra.copyFile(testFixtureLockfile, destLockfile) lockfileFixtureApplied = true } @@ -277,9 +277,9 @@ export async function assertPack(expect: ExpectStatic, fixtureName: string, pack if (shouldUpdateLockfiles) { const fixtureDir = path.dirname(testFixtureLockfile) if (!(await exists(fixtureDir))) { - await mkdir(fixtureDir) + await fsExtra.mkdir(fixtureDir) } - await copyFile(destLockfile, testFixtureLockfile) + await fsExtra.copyFile(destLockfile, testFixtureLockfile) } if (packagerOptions.projectDir != null) { @@ -758,7 +758,7 @@ export async function modifyPackageJson(projectDir: string, task: (data: any) => await fs.unlink(file) await fs.writeFile(path.join(projectDir, ".yarnrc.yml"), "nodeLinker: node-modules") - return await writeJson(file, data, { spaces: 2 }) + return await fsExtra.writeJson(file, data, { spaces: 2 }) } export function platform(platform: Platform): PackagerOptions { diff --git a/test/src/helpers/updaterTestUtil.ts b/test/src/helpers/updaterTestUtil.ts index 2c4220f3fa2..ab195aaaeec 100644 --- a/test/src/helpers/updaterTestUtil.ts +++ b/test/src/helpers/updaterTestUtil.ts @@ -2,7 +2,7 @@ import { NodeHttpExecutor, serializeToYaml, TmpDir } from "builder-util" import { AllPublishOptions, DownloadOptions } from "builder-util-runtime" import { AppUpdater, MacUpdater, NsisUpdater } from "electron-updater" import { NoOpLogger, TestOnlyUpdaterOptions } from "electron-updater" -import { outputFile, writeFile } from "fs-extra" +import * as fsExtra from "fs-extra" import * as path from "path" import { assertThat } from "./fileAssert.js" import { TestAppAdapter } from "./TestAppAdapter.js" @@ -24,7 +24,7 @@ export async function createNsisUpdater(version = "0.0.1") { // to reduce difference in test mode, setFeedURL is not used to set (NsisUpdater also read configOnDisk to load original publisherName) export async function writeUpdateConfig(data: T): Promise { const updateConfigPath = path.join(await tmpDir.getTempDir({ prefix: "test-update-config" }), "app-update.yml") - await outputFile(updateConfigPath, serializeToYaml(data)) + await fsExtra.outputFile(updateConfigPath, serializeToYaml(data)) return updateConfigPath } @@ -62,7 +62,7 @@ export class TestNodeHttpExecutor extends NodeHttpExecutor { async download(url: string, destination: string, options: DownloadOptions): Promise { const obj = new URL(url) const buffer = await this.downloadToBuffer(obj, options) - await writeFile(destination, buffer) + await fsExtra.writeFile(destination, buffer) return buffer.toString() } } diff --git a/test/src/helpers/winHelper.ts b/test/src/helpers/winHelper.ts index ddb5bf1193b..c2fe2a86b0a 100644 --- a/test/src/helpers/winHelper.ts +++ b/test/src/helpers/winHelper.ts @@ -1,7 +1,7 @@ import { readAsarJson } from "app-builder-lib" import { walk } from "builder-util" import { Arch, Platform } from "electron-builder" -import { outputFile } from "fs-extra" +import * as fsExtra from "fs-extra" import * as fs from "fs/promises" import { load } from "js-yaml" import * as path from "path" @@ -91,7 +91,7 @@ export async function doTest( // run installer again to test uninstall const appDataFile = path.join(wine.userDir!, "Application Data", name, "doNotDeleteMe") - await outputFile(appDataFile, "app data must be not removed") + await fsExtra.outputFile(appDataFile, "app data must be not removed") fsBefore = await listFiles() await wine.exec(path.join(outDir, `${productFilename} Setup 1.1.0.exe`), "/S") fsAfter = await listFiles() diff --git a/test/src/helpers/wine.ts b/test/src/helpers/wine.ts index 82c2d118a6e..f398fd2fa20 100644 --- a/test/src/helpers/wine.ts +++ b/test/src/helpers/wine.ts @@ -1,5 +1,5 @@ import { exec, safeStringifyJson, unlinkIfExists } from "builder-util" -import { emptyDir } from "fs-extra" +import * as fsExtra from "fs-extra" import * as fs from "fs/promises" import { homedir } from "os" import * as path from "path" @@ -37,7 +37,7 @@ export class WineManager { } async prepareWine(wineDir: string) { - await emptyDir(wineDir) + await fsExtra.emptyDir(wineDir) //noinspection SpellCheckingInspection const env = { ...process.env, diff --git a/test/src/ignoreTest.ts b/test/src/ignoreTest.ts index db6aef775a7..6cc1ec1227d 100644 --- a/test/src/ignoreTest.ts +++ b/test/src/ignoreTest.ts @@ -1,5 +1,5 @@ import { DIR_TARGET, Platform, archFromString } from "electron-builder" -import { outputFile } from "fs-extra" +import * as fsExtra from "fs-extra" import * as path from "path" import { assertThat } from "./helpers/fileAssert.js" import { app, checkDirContents, linuxDirTarget, modifyPackageJson } from "./helpers/packTester.js" @@ -18,7 +18,7 @@ test.ifNotWindows("ignore build resources", ({ expect }) => }, { projectDirCreated: projectDir => { - return outputFile(path.join(projectDir, "one/build/foo.txt"), "data") + return fsExtra.outputFile(path.join(projectDir, "one/build/foo.txt"), "data") }, packed: context => { return assertThat(expect, path.join(context.getResources(Platform.LINUX), "app", "one", "build", "foo.txt")).isFile() @@ -47,7 +47,7 @@ test.ifNotWindows("2 ignore", ({ expect }) => }, { projectDirCreated: projectDir => { - return outputFile(path.join(projectDir, "electron/foo.txt"), "data") + return fsExtra.outputFile(path.join(projectDir, "electron/foo.txt"), "data") }, packed: context => { return assertThat(expect, path.join(context.getResources(Platform.LINUX), "app", "electron", "foo.txt")).doesNotExist() @@ -68,10 +68,10 @@ test.ifNotWindows("ignore known ignored files", ({ expect }) => { projectDirCreated: projectDir => Promise.all([ - outputFile(path.join(projectDir, ".svn", "foo"), "data"), - outputFile(path.join(projectDir, ".git", "foo"), "data"), - outputFile(path.join(projectDir, "node_modules", ".bin", "f.txt"), "data"), - outputFile(path.join(projectDir, "node_modules", ".bin2", "f.txt"), "data"), + fsExtra.outputFile(path.join(projectDir, ".svn", "foo"), "data"), + fsExtra.outputFile(path.join(projectDir, ".git", "foo"), "data"), + fsExtra.outputFile(path.join(projectDir, "node_modules", ".bin", "f.txt"), "data"), + fsExtra.outputFile(path.join(projectDir, "node_modules", ".bin2", "f.txt"), "data"), ]), packed: context => checkDirContents(expect, path.join(context.getResources(Platform.LINUX), "app")), } @@ -128,8 +128,8 @@ test.ifNotWindows("copied sub node_modules of the rootDir/node_modules", ({ expe ...data.dependencies, } }), - outputFile(path.join(projectDir, "submodule-1-test", "node_modules", "package.json"), "{}"), - outputFile(path.join(projectDir, "others", "node_modules", "package.json"), "{}"), + fsExtra.outputFile(path.join(projectDir, "submodule-1-test", "node_modules", "package.json"), "{}"), + fsExtra.outputFile(path.join(projectDir, "others", "node_modules", "package.json"), "{}"), ]) }, packed: context => { @@ -164,10 +164,10 @@ test.ifNotWindows("Don't copy sub node_modules of the other dir instead of rootD ...data.dependencies, } }), - outputFile(path.join(projectDir, "others", "node_modules", "package.json"), "{}"), - outputFile(path.join(projectDir, "others", "test1", "package.json"), "{}"), - outputFile(path.join(projectDir, "others", "submodule-2-test", "node_modules", "package.json"), "{}"), - outputFile(path.join(projectDir, "others", "submodule-2-test", "test2", "package.json"), "{}"), + fsExtra.outputFile(path.join(projectDir, "others", "node_modules", "package.json"), "{}"), + fsExtra.outputFile(path.join(projectDir, "others", "test1", "package.json"), "{}"), + fsExtra.outputFile(path.join(projectDir, "others", "submodule-2-test", "node_modules", "package.json"), "{}"), + fsExtra.outputFile(path.join(projectDir, "others", "submodule-2-test", "test2", "package.json"), "{}"), ]) }, packed: context => { @@ -205,8 +205,8 @@ test.ifNotWindows("copied select submodule node_modules", ({ expect }) => ...data.dependencies, } }), - outputFile(path.join(projectDir, "submodule-1-test", "node_modules", "package.json"), "{}"), - outputFile(path.join(projectDir, "submodule-2-test", "node_modules", "package.json"), "{}"), + fsExtra.outputFile(path.join(projectDir, "submodule-1-test", "node_modules", "package.json"), "{}"), + fsExtra.outputFile(path.join(projectDir, "submodule-2-test", "node_modules", "package.json"), "{}"), ]) }, packed: context => { @@ -238,7 +238,7 @@ test.ifNotWindows("cannot copied select submodule node_modules by */", ({ expect ...data.dependencies, } }), - outputFile(path.join(projectDir, "submodule-1-test", "node_modules", "package.json"), "{}"), + fsExtra.outputFile(path.join(projectDir, "submodule-1-test", "node_modules", "package.json"), "{}"), ]) }, packed: context => { @@ -268,7 +268,7 @@ test.ifNotWindows("cannot copied select submodule node_modules by **/submodule-1 ...data.dependencies, } }), - outputFile(path.join(projectDir, "submodule-1-test", "node_modules", "package.json"), "{}"), + fsExtra.outputFile(path.join(projectDir, "submodule-1-test", "node_modules", "package.json"), "{}"), ]) }, packed: context => { diff --git a/test/src/linux/linuxPackagerTest.ts b/test/src/linux/linuxPackagerTest.ts index bac5db1a749..eadf8e5fa2e 100644 --- a/test/src/linux/linuxPackagerTest.ts +++ b/test/src/linux/linuxPackagerTest.ts @@ -1,6 +1,6 @@ import { GenericServerOptions } from "builder-util-runtime" import { Arch, build, Platform } from "electron-builder" -import { outputFile } from "fs-extra" +import * as fsExtra from "fs-extra" import * as fs from "fs/promises" import * as path from "path" import { assertThat } from "../helpers/fileAssert" @@ -107,7 +107,7 @@ describe.ifNotWindows("LinuxPackager", () => { }, { projectDirCreated: projectDir => { - return outputFile( + return fsExtra.outputFile( path.join(projectDir, "build", "license.html"), ` diff --git a/test/src/mac/macArchiveTest.ts b/test/src/mac/macArchiveTest.ts index 2843d231dfe..87bda10824e 100644 --- a/test/src/mac/macArchiveTest.ts +++ b/test/src/mac/macArchiveTest.ts @@ -1,7 +1,7 @@ import { Arch, exec } from "builder-util" import { parseXml } from "builder-util-runtime" import { Platform } from "electron-builder" -import { outputFile } from "fs-extra" +import * as fsExtra from "fs-extra" import * as fs from "fs/promises" import * as path from "path" import pathSorter from "path-sort" @@ -54,7 +54,7 @@ test.ifMac("extraDistFiles", ({ expect }) => { signed: false, projectDirCreated: projectDir => { - return Promise.all([outputFile(path.join(projectDir, "extra.txt"), "test")]) + return Promise.all([fsExtra.outputFile(path.join(projectDir, "extra.txt"), "test")]) }, } ) diff --git a/test/src/packageManagerTest.ts b/test/src/packageManagerTest.ts index 56abc0d8d14..0cef00a474f 100644 --- a/test/src/packageManagerTest.ts +++ b/test/src/packageManagerTest.ts @@ -1,6 +1,6 @@ import { Platform } from "app-builder-lib" import { PM } from "app-builder-lib/src/node-module-collector" -import { copyFile, outputFile, rm, writeFile } from "fs-extra" +import * as fsExtra from "fs-extra" import * as path from "path" import { assertThat } from "./helpers/fileAssert" import { app, assertPack, getFixtureDir, getPackageManagerWithVersion, linuxDirTarget, modifyPackageJson, verifyAsarFileTree } from "./helpers/packTester" @@ -48,10 +48,10 @@ describe.ifNotWindows("Package Managers", () => { false ) await modifyPackageJson(projectDir, data => packageConfig(data, yarnVersion), true) - await writeFile(path.join(projectDir, "yarn.lock"), "") - await writeFile(path.join(projectDir, "app", "yarn.lock"), "") - await copyFile(path.join(getFixtureDir(), ".pnp.cjs"), path.join(projectDir, ".pnp.cjs")) - await rm(path.join(projectDir, ".yarnrc.yml")) + await fsExtra.writeFile(path.join(projectDir, "yarn.lock"), "") + await fsExtra.writeFile(path.join(projectDir, "app", "yarn.lock"), "") + await fsExtra.copyFile(path.join(getFixtureDir(), ".pnp.cjs"), path.join(projectDir, ".pnp.cjs")) + await fsExtra.rm(path.join(projectDir, ".yarnrc.yml")) await spawn("yarn", ["install"], { cwd: projectDir, env: testEnv, @@ -85,9 +85,9 @@ describe.ifNotWindows("Package Managers", () => { false ) await modifyPackageJson(projectDir, data => packageConfig(data, yarnBerryVersion), true) - await writeFile(path.join(projectDir, "yarn.lock"), "") - await writeFile(path.join(projectDir, "app", "yarn.lock"), "") - await copyFile(path.join(getFixtureDir(), ".pnp.cjs"), path.join(projectDir, ".pnp.cjs")) + await fsExtra.writeFile(path.join(projectDir, "yarn.lock"), "") + await fsExtra.writeFile(path.join(projectDir, "app", "yarn.lock"), "") + await fsExtra.copyFile(path.join(getFixtureDir(), ".pnp.cjs"), path.join(projectDir, ".pnp.cjs")) await spawn("yarn", ["install"], { cwd: projectDir, env: testEnv, @@ -255,7 +255,7 @@ describe.ifNotWindows("Package Managers", () => { "left-pad": "1.3.0", } }), - outputFile(path.join(projectDir, "bunfig.toml"), '[install]\nlinker = "isolated"\n'), + fsExtra.outputFile(path.join(projectDir, "bunfig.toml"), '[install]\nlinker = "isolated"\n'), ]) }, packed: context => verifyAsarFileTree(expect, context.getResources(Platform.LINUX)), @@ -298,7 +298,7 @@ describe.ifNotWindows("Package Managers", () => { "is-bigint": "1.0.4", } }), - outputFile(path.join(projectDir, "bunfig.toml"), '[install]\nlinker = "isolated"\n'), + fsExtra.outputFile(path.join(projectDir, "bunfig.toml"), '[install]\nlinker = "isolated"\n'), ]) }, packed: context => verifyAsarFileTree(expect, context.getResources(Platform.LINUX)), @@ -339,7 +339,7 @@ describe.ifNotWindows("Package Managers", () => { "left-pad": "1.3.0", } }), - outputFile(path.join(projectDir, "bunfig.toml"), '[install]\nlinker = "hoisted"\n'), + fsExtra.outputFile(path.join(projectDir, "bunfig.toml"), '[install]\nlinker = "hoisted"\n'), ]) }, packed: context => verifyAsarFileTree(expect, context.getResources(Platform.LINUX)), @@ -382,7 +382,7 @@ describe.ifNotWindows("Package Managers", () => { "is-bigint": "1.0.4", } }), - outputFile(path.join(projectDir, "bunfig.toml"), '[install]\nlinker = "hoisted"\n'), + fsExtra.outputFile(path.join(projectDir, "bunfig.toml"), '[install]\nlinker = "hoisted"\n'), ]) }, packed: context => verifyAsarFileTree(expect, context.getResources(Platform.LINUX)), @@ -409,8 +409,8 @@ describe.ifNotWindows("Package Managers", () => { false ) await modifyPackageJson(projectDir, data => packageConfig(data, yarnBerryVersion), true) - await writeFile(path.join(projectDir, "yarn.lock"), "") - await writeFile(path.join(projectDir, "app", "yarn.lock"), "") + await fsExtra.writeFile(path.join(projectDir, "yarn.lock"), "") + await fsExtra.writeFile(path.join(projectDir, "app", "yarn.lock"), "") }, } )) @@ -477,8 +477,8 @@ describe.ifNotWindows("Package Managers", () => { projectDirCreated: async (projectDir, tmpDir, testEnv) => { const tempDir = await tmpDir.getTempDir() const localPath = path.join(tempDir, "foo") - await outputFile(path.join(localPath, "package.json"), `{"name":"foo","version":"9.0.0","main":"index.js","license":"MIT","dependencies":{"ms":"2.0.0"}}`) - await outputFile(path.join(localPath, "index.js"), `module.exports = require("ms")`) + await fsExtra.outputFile(path.join(localPath, "package.json"), `{"name":"foo","version":"9.0.0","main":"index.js","license":"MIT","dependencies":{"ms":"2.0.0"}}`) + await fsExtra.outputFile(path.join(localPath, "index.js"), `module.exports = require("ms")`) const pmCommand = getPackageManagerWithVersion(pm).cli await spawn(pmCommand, ["install"], { diff --git a/test/src/updater/blackboxUpdateTest.ts b/test/src/updater/blackboxUpdateTest.ts index 79520591147..7c7bd520e3d 100644 --- a/test/src/updater/blackboxUpdateTest.ts +++ b/test/src/updater/blackboxUpdateTest.ts @@ -5,7 +5,7 @@ import { archFromString, doSpawn, getArchSuffix, isEmptyOrSpaces, log, spawn, Tm import { execFileSync, execSync } from "child_process" import { Arch, Configuration, Platform } from "electron-builder" import { DebUpdater, PacmanUpdater, RpmUpdater } from "electron-updater" -import { copy, existsSync, move, outputFile, readJsonSync } from "fs-extra" +import * as fsExtra from "fs-extra" import { homedir } from "os" import path from "path" import { ExpectStatic, TestContext } from "vitest" @@ -114,7 +114,7 @@ async function runTest(context: TestContext, target: string, packageManager: str // Setup tests by installing the previous version const appPath = await handleInitialInstallPerOS({ target, dirPath, arch }) - if (!existsSync(appPath)) { + if (!fsExtra.existsSync(appPath)) { throw new Error(`App not found: ${appPath}`) } @@ -122,7 +122,7 @@ async function runTest(context: TestContext, target: string, packageManager: str try { await runTestWithinServer(async (rootDirectory: string, updateConfigPath: string) => { // Move app update to the root directory of the server - await copy(newAppDir.dir, rootDirectory, { recursive: true, overwrite: true }) + await fsExtra.copy(newAppDir.dir, rootDirectory, { recursive: true, overwrite: true }) const verifyAppVersion = async (expectedVersion: string) => await launchAndWaitForQuit({ appPath, timeoutMs: 2 * 60 * 1000, updateConfigPath, expectedVersion, packageManagerToTest: packageManager }) @@ -227,7 +227,7 @@ async function doBuild( packageManager: PM.PNPM, projectDirCreated: async (projectDir, _tmpDir, runtimeEnv) => { // await outputFile(path.join(projectDir, "package-lock.json"), "{}") - await outputFile(path.join(projectDir, ".npmrc"), "node-linker=hoisted") + await fsExtra.outputFile(path.join(projectDir, ".npmrc"), "node-linker=hoisted") await modifyPackageJson( projectDir, @@ -242,9 +242,9 @@ async function doBuild( sqlite3: "5.1.7", // for testing native dependency handling in auto-update "@electron/remote": "2.1.3", // for debugging live application with GUI so that app.getVersion is accessible in renderer process "electron-updater": `link:${electronUpdaterPath("electron-updater")}`, - ...readJsonSync(path.join(electronUpdaterPath("electron-updater"), "package.json")).dependencies, + ...fsExtra.readJsonSync(path.join(electronUpdaterPath("electron-updater"), "package.json")).dependencies, "builder-util-runtime": `link:${electronUpdaterPath("builder-util-runtime")}`, // needs to be last to overwrite electron-updater's builder-util-runtime dependency for testing with workspace version of builder-util-runtime (workspace:* doesn't resolve and needs to be linked explicitly) - ...readJsonSync(path.join(electronUpdaterPath("builder-util-runtime"), "package.json")).dependencies, + ...fsExtra.readJsonSync(path.join(electronUpdaterPath("builder-util-runtime"), "package.json")).dependencies, } }, true @@ -276,7 +276,7 @@ async function doBuild( packed: async context => { // move dist temporarily out of project dir so each downloader can reference it const dir = await tmpDir.getTempDir({ prefix: version }) - await move(context.outDir, dir) + await fsExtra.move(context.outDir, dir) const appPath = path.join(dir, path.relative(context.outDir, context.getAppPath(Platform.current(), archFromString(process.arch)))) outDirs.push({ dir, appPath }) }, @@ -331,7 +331,7 @@ async function handleInitialInstallPerOS({ target, dirPath, arch }: { target: st // this is to clear dev environment when not running on an ephemeral GH runner. // Reinstallation will otherwise fail due to "uninstall" message prompt, so we must uninstall first (hence the setTimeout delay) const uninstaller = path.join(localProgramsPath, "Uninstall TestApp.exe") - if (existsSync(uninstaller)) { + if (fsExtra.existsSync(uninstaller)) { console.log("Uninstalling", uninstaller) execFileSync(uninstaller, ["/S", "/C", "exit"], { stdio: "inherit" }) await new Promise(resolve => setTimeout(resolve, 5000)) diff --git a/test/src/updater/differentialUpdateTest.ts b/test/src/updater/differentialUpdateTest.ts index db3859e13df..651c5a689d2 100644 --- a/test/src/updater/differentialUpdateTest.ts +++ b/test/src/updater/differentialUpdateTest.ts @@ -3,7 +3,7 @@ import { archFromString, doSpawn, getArchSuffix } from "builder-util" import { GenericServerOptions, Nullish, S3Options } from "builder-util-runtime" import { AppImageUpdater, BaseUpdater, MacUpdater, NsisUpdater } from "electron-updater" import { EventEmitter } from "events" -import { move } from "fs-extra" +import * as fsExtra from "fs-extra" import * as path from "path" import { TmpDir } from "temp-file" import { TestAppAdapter } from "../helpers/TestAppAdapter.js" @@ -58,7 +58,7 @@ async function doBuild( buildApp(version, targets, extraConfig, async context => { // move dist temporarily out of project dir so each downloader can reference it const newDir = await tmpDir.getTempDir({ prefix: version }) - await move(context.outDir, newDir) + await fsExtra.move(context.outDir, newDir) outDirs.push(newDir) }) try { @@ -81,7 +81,7 @@ for (const winCodeSign of winCodeSignVersions) { await doBuild(expect, outDirs, Platform.WINDOWS.createTarget(["nsis-web"], Arch.x64, Arch.arm64), tmpDir, { winCodeSign }) const oldDir = outDirs[0] - await move( + await fsExtra.move( path.join(oldDir, "nsis-web", `TestApp-${OLD_VERSION_NUMBER}${getArchSuffix(archFromString(process.arch), "universal")}.nsis.7z`), path.join(getTestUpdaterCacheDir(oldDir), testAppCacheDirName, "package.7z") ) @@ -96,8 +96,8 @@ for (const winCodeSign of winCodeSignVersions) { const oldDir = outDirs[0] // move to new dir so that localhost server can read both blockmaps - await move(path.join(oldDir, `Test App ßW Setup ${OLD_VERSION_NUMBER}.exe`), path.join(getTestUpdaterCacheDir(oldDir), testAppCacheDirName, "installer.exe")) - await move(path.join(oldDir, `Test App ßW Setup ${OLD_VERSION_NUMBER}.exe.blockmap`), path.join(outDirs[1], "Test App ßW Setup 1.0.0.exe.blockmap")) + await fsExtra.move(path.join(oldDir, `Test App ßW Setup ${OLD_VERSION_NUMBER}.exe`), path.join(getTestUpdaterCacheDir(oldDir), testAppCacheDirName, "installer.exe")) + await fsExtra.move(path.join(oldDir, `Test App ßW Setup ${OLD_VERSION_NUMBER}.exe.blockmap`), path.join(outDirs[1], "Test App ßW Setup 1.0.0.exe.blockmap")) await testBlockMap(expect, outDirs[0], outDirs[1], NsisUpdater, Platform.WINDOWS, Arch.x64) }) @@ -148,8 +148,8 @@ async function testMac(expect: ExpectStatic, arch: Arch) { // move to new dir so that localhost server can read both blockmaps const oldDir = outDirs[0] const blockmap = `Test App ßW-${OLD_VERSION_NUMBER}${getArchSuffix(arch)}-mac.zip.blockmap` - await move(path.join(oldDir, blockmap), path.join(outDirs[1], blockmap)) - await move(path.join(oldDir, `Test App ßW-${OLD_VERSION_NUMBER}${getArchSuffix(arch)}-mac.zip`), path.join(getTestUpdaterCacheDir(oldDir), testAppCacheDirName, "update.zip")) + await fsExtra.move(path.join(oldDir, blockmap), path.join(outDirs[1], blockmap)) + await fsExtra.move(path.join(oldDir, `Test App ßW-${OLD_VERSION_NUMBER}${getArchSuffix(arch)}-mac.zip`), path.join(getTestUpdaterCacheDir(oldDir), testAppCacheDirName, "update.zip")) await testBlockMap(expect, outDirs[0], outDirs[1], MacUpdater, Platform.MAC, arch, "Test App ßW") } finally { diff --git a/test/src/updater/nsisUpdaterTest.ts b/test/src/updater/nsisUpdaterTest.ts index 757e75b1ab4..f96968fecd7 100644 --- a/test/src/updater/nsisUpdaterTest.ts +++ b/test/src/updater/nsisUpdaterTest.ts @@ -1,7 +1,7 @@ import { BitbucketOptions, GenericServerOptions, GithubOptions, GitlabOptions, KeygenOptions, S3Options, SpacesOptions } from "builder-util-runtime" import { BitbucketPublisher } from "electron-publish" import { UpdateCheckResult } from "electron-updater" -import { outputFile } from "fs-extra" +import * as fsExtra from "fs-extra" import { tmpdir } from "os" import * as path from "path" import { assertThat } from "../helpers/fileAssert" @@ -471,7 +471,7 @@ test.ifWindows("test custom signature verifier - signing error message", config, // disable for now test("90 staging percentage", config, async ({ expect }) => { const userIdFile = path.join(tmpdir(), "electron-updater-test", "userData", ".updaterId") - await outputFile(userIdFile, "1wa70172-80f8-5cc4-8131-28f5e0edd2a1") + await fsExtra.outputFile(userIdFile, "1wa70172-80f8-5cc4-8131-28f5e0edd2a1") const updater = await createNsisUpdater("0.0.1") updater.updateConfigPath = await writeUpdateConfig({ @@ -485,7 +485,7 @@ test("90 staging percentage", config, async ({ expect }) => { test("1 staging percentage", config, async ({ expect }) => { const userIdFile = path.join(tmpdir(), "electron-updater-test", "userData", ".updaterId") - await outputFile(userIdFile, "12a70172-80f8-5cc4-8131-28f5e0edd2a1") + await fsExtra.outputFile(userIdFile, "12a70172-80f8-5cc4-8131-28f5e0edd2a1") const updater = await createNsisUpdater("0.0.1") updater.updateConfigPath = await writeUpdateConfig({ diff --git a/test/src/windows/appxTest.ts b/test/src/windows/appxTest.ts index a61b5cd9dce..a8daa471f89 100644 --- a/test/src/windows/appxTest.ts +++ b/test/src/windows/appxTest.ts @@ -1,5 +1,5 @@ import { Arch, Platform } from "electron-builder" -import { readFile } from "fs-extra" +import * as fsExtra from "fs-extra" import { mkdir } from "fs/promises" import * as path from "path" import { app, appThrows, copyTestAsset } from "../helpers/packTester" @@ -125,7 +125,7 @@ describe.ifWindows("AppX", () => { customManifestPath: "custom-template-manifest.xml", }, appxManifestCreated: async filepath => { - const fileContent = await readFile(filepath, "utf-8") + const fileContent = await fsExtra.readFile(filepath, "utf-8") expect(fileContent).toMatchSnapshot() }, }, @@ -140,7 +140,7 @@ describe.ifWindows("AppX", () => { customManifestPath: "custom-manifest.xml", }, appxManifestCreated: async filepath => { - const fileContent = await readFile(filepath, "utf-8") + const fileContent = await fsExtra.readFile(filepath, "utf-8") expect(fileContent).toMatchSnapshot() }, }, @@ -157,7 +157,7 @@ describe.ifWindows("AppX", () => { capabilities: ["internetClient", "picturesLibrary", "webcam", "screenDuplication", "graphicsCapture", "globalMediaControl"], }, appxManifestCreated: async filepath => { - const fileContent = await readFile(filepath, "utf-8") + const fileContent = await fsExtra.readFile(filepath, "utf-8") console.log("APPX-MANIFEST: " + fileContent) expect(fileContent).toContain('') expect(fileContent).toContain('') diff --git a/test/src/windows/oneClickInstallerTest.ts b/test/src/windows/oneClickInstallerTest.ts index 0b2648c3be6..2ed1667757f 100644 --- a/test/src/windows/oneClickInstallerTest.ts +++ b/test/src/windows/oneClickInstallerTest.ts @@ -1,5 +1,5 @@ import { Arch, Platform } from "electron-builder" -import { copyFile, writeFile } from "fs-extra" +import * as fsExtra from "fs-extra" import * as path from "path" import { assertThat } from "../helpers/fileAssert" import { app, assertPack, copyTestAsset, EXTENDED_TIMEOUT, modifyPackageJson } from "../helpers/packTester" @@ -98,10 +98,10 @@ test("multi language license", { timeout: EXTENDED_TIMEOUT }, ({ expect }) => { projectDirCreated: projectDir => { return Promise.all([ - writeFile(path.join(projectDir, "build", "license_en.txt"), "Hi"), - writeFile(path.join(projectDir, "build", "license_ru.txt"), "Привет"), - writeFile(path.join(projectDir, "build", "license_ko.txt"), "Привет"), - writeFile(path.join(projectDir, "build", "license_fi.txt"), "Привет"), + fsExtra.writeFile(path.join(projectDir, "build", "license_en.txt"), "Hi"), + fsExtra.writeFile(path.join(projectDir, "build", "license_ru.txt"), "Привет"), + fsExtra.writeFile(path.join(projectDir, "build", "license_ko.txt"), "Привет"), + fsExtra.writeFile(path.join(projectDir, "build", "license_fi.txt"), "Привет"), ]) }, } @@ -124,7 +124,7 @@ test("html license", { timeout: EXTENDED_TIMEOUT }, ({ expect }) => { projectDirCreated: projectDir => { return Promise.all([ - writeFile(path.join(projectDir, "build", "license.html"), '

Hi google

'), + fsExtra.writeFile(path.join(projectDir, "build", "license.html"), '

Hi google

'), ]) }, } @@ -239,7 +239,7 @@ test.skip("big file pack", { timeout: EXTENDED_TIMEOUT }, ({ expect }) => }, { projectDirCreated: async projectDir => { - await copyFile("/Volumes/Pegasus/15.02.18.m4v", path.join(projectDir, "foo/bar/video.mov")) + await fsExtra.copyFile("/Volumes/Pegasus/15.02.18.m4v", path.join(projectDir, "foo/bar/video.mov")) }, } ) diff --git a/test/src/windows/winCodeSignTest.ts b/test/src/windows/winCodeSignTest.ts index ff882362413..c31dd7e7ba7 100644 --- a/test/src/windows/winCodeSignTest.ts +++ b/test/src/windows/winCodeSignTest.ts @@ -1,6 +1,6 @@ import { parseDn } from "builder-util-runtime" import { DIR_TARGET, Platform } from "electron-builder" -import { outputFile } from "fs-extra" +import * as fsExtra from "fs-extra" import { load } from "js-yaml" import * as path from "path" import { CheckingWinPackager } from "../helpers/CheckingPackager" @@ -36,7 +36,7 @@ for (const winCodeSign of winCodeSignVersions) { { signedWin: true, projectDirCreated: async projectDir => { - await outputFile(path.join(projectDir, "assets", "nested", "nested", "file.exe"), "invalid PE file") + await fsExtra.outputFile(path.join(projectDir, "assets", "nested", "nested", "file.exe"), "invalid PE file") }, }, error => { From b73e1a42e2d486c3e453ed900ab5d8d4c9ba67d3 Mon Sep 17 00:00:00 2001 From: Mike Maietta Date: Wed, 8 Apr 2026 12:22:59 -0700 Subject: [PATCH 28/65] LFG --- packages/app-builder-lib/src/index.ts | 57 +++++++++---------- .../src/util/packageMetadata.ts | 2 +- .../src/cli/create-self-signed-cert.ts | 2 +- test/src/helpers/packTester.ts | 21 ++++--- test/src/updater/blackboxUpdateTest.ts | 12 ++-- 5 files changed, 46 insertions(+), 48 deletions(-) diff --git a/packages/app-builder-lib/src/index.ts b/packages/app-builder-lib/src/index.ts index 1908d23a11b..bfc4c2a06d9 100644 --- a/packages/app-builder-lib/src/index.ts +++ b/packages/app-builder-lib/src/index.ts @@ -19,7 +19,7 @@ export { Hooks, MetadataDirectories, PackContext, - ToolsetConfig, + ToolsetConfig } from "./configuration.js" export { BeforeBuildContext, @@ -31,7 +31,7 @@ export { Target, TargetConfigType, TargetConfiguration, - TargetSpecificOptions, + TargetSpecificOptions } from "./core.js" export { ElectronBrandingOptions, ElectronDownloadOptions, ElectronPlatformName } from "./electron/ElectronFramework.js" export { AppXOptions } from "./options/AppXOptions.js" @@ -53,50 +53,49 @@ export { CommonNsisOptions, CustomNsisBinary, NsisOptions, NsisWebOptions, Porta export { CancellationToken, ProgressInfo } from "builder-util-runtime" export { PublishOptions, UploadTask } from "electron-publish" +export { AsarFilesystem, readAsar, readAsarJson } from "./asar/asar.js" +export { downloadArtifact, getBinFromUrl } from "./binDownload.js" +export { Identity, createKeychain, findIdentity, isSignAllowed, removeKeychain } from "./codeSign/macCodeSign.js" export { WindowsSignOptions } from "./codeSign/windowsCodeSign.js" export { CertificateFromStoreInfo, CustomWindowsSign, CustomWindowsSignTaskConfiguration, FileCodeSigningInfo, - WindowsSignTaskConfiguration, + WindowsSignTaskConfiguration } from "./codeSign/windowsSignToolManager.js" +export { Publish } from "./core.js" +export { getElectronVersion } from "./electron/electronVersion.js" export { ForgeOptions, buildForge } from "./forge-maker.js" export { Framework, PrepareApplicationStageDirectoryOptions } from "./Framework.js" export { LinuxPackager } from "./linuxPackager.js" export { CustomMacSign, CustomMacSignOptions, MacPackager } from "./macPackager.js" -export { PlatformPackager } from "./platformPackager.js" -export { PublishManager } from "./publish/PublishManager.js" -export { WinPackager } from "./winPackager.js" -export { readAsar, readAsarJson, AsarFilesystem } from "./asar/asar.js" -export { installOrRebuild } from "./util/yarn.js" -export { PACKAGE_VERSION } from "./version.js" -export { createLazyProductionDeps } from "./util/packageDependencies.js" +export { HoisterDependencyKind, HoisterResult, HoisterTree, hoist } from "./node-module-collector/hoist.js" export { determinePackageManagerEnv } from "./node-module-collector/index.js" -export { computeDefaultAppDirectory, validateConfiguration } from "./util/config/config.js" -export { getConfig } from "./util/config/config.js" -export { getElectronVersion } from "./electron/electronVersion.js" -export { execWine } from "./wine.js" -export { getBinFromUrl } from "./binDownload.js" -export { hoist, HoisterTree, HoisterResult, HoisterDependencyKind } from "./node-module-collector/hoist.js" export { PM } from "./node-module-collector/packageManager.js" -export { doMergeConfigs } from "./util/config/config.js" -export { getWindowsKitsBundle } from "./toolsets/windows.js" -export { findIdentity, isSignAllowed } from "./codeSign/macCodeSign.js" +export { DoPackOptions, PlatformPackager, computeSafeArtifactNameIfNeeded } from "./platformPackager.js" +export { PublishManager, createPublisher } from "./publish/PublishManager.js" export { createBlockmap } from "./targets/differentialUpdateInfoBuilder.js" -export { getLicenseFiles, getLicenseAssets } from "./util/license.js" -export { downloadArtifact } from "./binDownload.js" +export { getWindowsKitsBundle } from "./toolsets/windows.js" +export { computeDefaultAppDirectory, doMergeConfigs, getConfig, validateConfiguration } from "./util/config/config.js" export { loadEnv } from "./util/config/load.js" -export { nodeGypRebuild } from "./util/yarn.js" -export { Publish } from "./core.js" -export { computeSafeArtifactNameIfNeeded } from "./platformPackager.js" -export { createPublisher } from "./publish/PublishManager.js" -export { Identity } from "./codeSign/macCodeSign.js" -export { DoPackOptions } from "./platformPackager.js" -export { parsePlistFile, PlistObject } from "./util/plist.js" +export { getLicenseAssets, getLicenseFiles } from "./util/license.js" export { expandMacro } from "./util/macroExpander.js" +export { createLazyProductionDeps } from "./util/packageDependencies.js" +export { PlistObject, parsePlistFile } from "./util/plist.js" export { getRepositoryInfo } from "./util/repositoryInfo.js" -export { createKeychain, removeKeychain } from "./codeSign/macCodeSign.js" +export { installOrRebuild, nodeGypRebuild } from "./util/yarn.js" +export { PACKAGE_VERSION } from "./version.js" +export { execWine } from "./wine.js" +export { WinPackager } from "./winPackager.js" + +export { AsarIntegrity } from "./asar/integrity.js" +export { getCollectorByPackageManager } from "./node-module-collector/index.js" +export { computeArchToTargetNamesMap } from "./targets/targetFactory.js" +export { getLinuxToolsPath } from "./toolsets/linux.js" + +export { detectPackageManager } from "./node-module-collector/packageManager.js" +export { installDependencies } from "./util/yarn.js" const expectedOptions = new Set(["publish", "targets", "mac", "win", "linux", "projectDir", "platformPackagerFactory", "config", "effectiveOptionComputed", "prepackaged"]) diff --git a/packages/app-builder-lib/src/util/packageMetadata.ts b/packages/app-builder-lib/src/util/packageMetadata.ts index e1332e5555f..82c307dde33 100644 --- a/packages/app-builder-lib/src/util/packageMetadata.ts +++ b/packages/app-builder-lib/src/util/packageMetadata.ts @@ -1,6 +1,6 @@ import { InvalidConfigurationError, isEmptyOrSpaces, log } from "builder-util" import { Nullish } from "builder-util-runtime" -import * as fsExtra from "fs-extra" +import fsExtra from "fs-extra" import * as path from "path" import * as semver from "semver" import { Metadata } from "../options/metadata.js" diff --git a/packages/electron-builder/src/cli/create-self-signed-cert.ts b/packages/electron-builder/src/cli/create-self-signed-cert.ts index 77ab8e10ee6..d34ac434cd5 100644 --- a/packages/electron-builder/src/cli/create-self-signed-cert.ts +++ b/packages/electron-builder/src/cli/create-self-signed-cert.ts @@ -1,6 +1,6 @@ import { getWindowsKitsBundle } from "app-builder-lib" import { archFromString, exec, log, spawn, TmpDir, unlinkIfExists } from "builder-util" -import { sanitizeFileName } from "builder-util/out/filename" +import { sanitizeFileName } from "builder-util" import * as chalk from "chalk" import { mkdir } from "fs/promises" import * as path from "path" diff --git a/test/src/helpers/packTester.ts b/test/src/helpers/packTester.ts index 3361b1486cb..b819e835b7b 100644 --- a/test/src/helpers/packTester.ts +++ b/test/src/helpers/packTester.ts @@ -1,9 +1,9 @@ import { PublishManager } from "app-builder-lib" -import { verifyAsarFileTree as _verifyAsarFileTree } from "./asarVerifier" -import { computeArchToTargetNamesMap } from "app-builder-lib/out/targets/targetFactory" -import { getLinuxToolsPath } from "app-builder-lib/out/toolsets/linux" -import { parsePlistFile, PlistObject } from "app-builder-lib/out/util/plist" -import { AsarIntegrity } from "app-builder-lib/out/asar/integrity" +import { verifyAsarFileTree as _verifyAsarFileTree } from "./asarVerifier.js" +import { computeArchToTargetNamesMap } from "app-builder-lib" +import { getLinuxToolsPath } from "app-builder-lib" +import { parsePlistFile, PlistObject } from "app-builder-lib" +import { AsarIntegrity } from "app-builder-lib" import { addValue, copyDir, deepAssign, exec, executeFinally, exists, FileCopier, log, USE_HARD_LINKS, walk } from "builder-util" import { CancellationToken, UpdateFileInfo } from "builder-util-runtime" import { Arch, ArtifactCreated, Configuration, DIR_TARGET, getArchSuffix, MacOsTargetName, Packager, PackagerOptions, Platform, Target } from "electron-builder" @@ -16,20 +16,19 @@ import * as path from "path" import pathSorter from "path-sort" import { NtExecutable, NtExecutableResource } from "resedit" import { TmpDir } from "temp-file" -import { getCollectorByPackageManager, PM } from "app-builder-lib/out/node-module-collector" +import { getCollectorByPackageManager, PM } from "app-builder-lib" import { promisify } from "util" import { MAC_CSC_LINK, WIN_CSC_LINK } from "./codeSignData" import { assertThat } from "./fileAssert" import AdmZip from "adm-zip" -// @ts-ignore import sanitizeFileName from "sanitize-filename" import type { ExpectStatic } from "vitest" -import { computeDefaultAppDirectory } from "app-builder-lib/out/util/config/config" -import { installDependencies } from "app-builder-lib/out/util/yarn" +import { computeDefaultAppDirectory } from "app-builder-lib" +import { installDependencies } from "app-builder-lib" import { ELECTRON_VERSION } from "./testConfig" -import { createLazyProductionDeps } from "app-builder-lib/out/util/packageDependencies" +import { createLazyProductionDeps } from "app-builder-lib" import { execSync } from "child_process" -import { detectPackageManager } from "app-builder-lib/out/node-module-collector/packageManager" +import { detectPackageManager } from "app-builder-lib" const PACKAGE_MANAGER_VERSION_MAP = { [PM.NPM]: { cli: "npm", version: "9.8.1" }, diff --git a/test/src/updater/blackboxUpdateTest.ts b/test/src/updater/blackboxUpdateTest.ts index 7c7bd520e3d..da6bc573ac7 100644 --- a/test/src/updater/blackboxUpdateTest.ts +++ b/test/src/updater/blackboxUpdateTest.ts @@ -1,7 +1,7 @@ import { ToolsetConfig } from "app-builder-lib" -import { PM } from "app-builder-lib/out/node-module-collector" +import { PM } from "app-builder-lib" import { GenericServerOptions, Nullish } from "builder-util-runtime" -import { archFromString, doSpawn, getArchSuffix, isEmptyOrSpaces, log, spawn, TmpDir } from "builder-util/out/util" +import { archFromString, doSpawn, getArchSuffix, isEmptyOrSpaces, log, spawn, TmpDir } from "builder-util" import { execFileSync, execSync } from "child_process" import { Arch, Configuration, Platform } from "electron-builder" import { DebUpdater, PacmanUpdater, RpmUpdater } from "electron-updater" @@ -9,10 +9,10 @@ import * as fsExtra from "fs-extra" import { homedir } from "os" import path from "path" import { ExpectStatic, TestContext } from "vitest" -import { getRanLocalServerPath, launchAndWaitForQuit } from "../helpers/launchAppCrossPlatform" -import { assertPack, modifyPackageJson, PackedContext } from "../helpers/packTester" -import { ELECTRON_VERSION } from "../helpers/testConfig" -import { NEW_VERSION_NUMBER, OLD_VERSION_NUMBER, writeUpdateConfig } from "../helpers/updaterTestUtil" +import { getRanLocalServerPath, launchAndWaitForQuit } from "../helpers/launchAppCrossPlatform.js" +import { assertPack, modifyPackageJson, PackedContext } from "../helpers/packTester.js" +import { ELECTRON_VERSION } from "../helpers/testConfig.js" +import { NEW_VERSION_NUMBER, OLD_VERSION_NUMBER, writeUpdateConfig } from "../helpers/updaterTestUtil.js" // Linux Tests MUST be run in docker containers for proper ephemeral testing environment (e.g. fresh install + update + relaunch) // Currently this test logic does not handle uninstalling packages (yet) From 7b9cdd6c40755d70a8b7e1a1d596d9e5fcd0b5ed Mon Sep 17 00:00:00 2001 From: Mike Maietta Date: Wed, 8 Apr 2026 12:26:09 -0700 Subject: [PATCH 29/65] tmp save --- packages/app-builder-lib/src/asar/asar.ts | 2 +- packages/app-builder-lib/src/asar/asarUtil.ts | 2 +- packages/app-builder-lib/src/codeSign/codesign.ts | 2 +- packages/app-builder-lib/src/codeSign/macCodeSign.ts | 2 +- .../src/codeSign/windowsSignToolManager.ts | 2 +- .../app-builder-lib/src/electron/ElectronFramework.ts | 2 +- packages/app-builder-lib/src/electron/electronVersion.ts | 2 +- packages/app-builder-lib/src/electron/search-module.ts | 2 +- packages/app-builder-lib/src/frameworks/LibUiFramework.ts | 2 +- .../app-builder-lib/src/node-module-collector/index.ts | 2 +- .../src/node-module-collector/moduleManager.ts | 2 +- .../src/node-module-collector/nodeModulesCollector.ts | 4 ++-- .../src/node-module-collector/packageManager.ts | 2 +- packages/app-builder-lib/src/packager.ts | 2 +- packages/app-builder-lib/src/publish/updateInfoBuilder.ts | 2 +- packages/app-builder-lib/src/targets/AppImageTarget.ts | 2 +- packages/app-builder-lib/src/targets/AppxTarget.ts | 2 +- packages/app-builder-lib/src/targets/FlatpakTarget.ts | 2 +- packages/app-builder-lib/src/targets/FpmTarget.ts | 2 +- packages/app-builder-lib/src/targets/LinuxTargetHelper.ts | 2 +- .../src/targets/appimage/AppImageTarget.ts | 2 +- .../app-builder-lib/src/targets/appimage/appImageUtil.ts | 2 +- .../app-builder-lib/src/targets/appimage/appLauncher.ts | 2 +- packages/app-builder-lib/src/targets/archive.ts | 2 +- packages/app-builder-lib/src/targets/nsis/NsisTarget.ts | 2 +- packages/app-builder-lib/src/targets/nsis/nsisLang.ts | 2 +- packages/app-builder-lib/src/targets/snap.ts | 2 +- packages/app-builder-lib/src/util/AppFileWalker.ts | 2 +- packages/app-builder-lib/src/util/NodeModuleCopyHelper.ts | 2 +- packages/app-builder-lib/src/util/appFileCopier.ts | 4 ++-- packages/app-builder-lib/src/util/cacheManager.ts | 2 +- packages/app-builder-lib/src/util/config/config.ts | 4 ++-- packages/app-builder-lib/src/util/macosVersion.ts | 2 +- packages/app-builder-lib/src/util/packageMetadata.ts | 2 +- packages/app-builder-lib/src/util/rebuild.ts | 2 +- packages/app-builder-lib/src/util/repositoryInfo.ts | 2 +- packages/app-builder-lib/src/util/yarn.ts | 2 +- packages/builder-util/src/7za.ts | 2 +- packages/builder-util/src/DebugLogger.ts | 2 +- packages/builder-util/src/fs.ts | 2 +- packages/dmg-builder/src/dmgLicense.ts | 2 +- packages/dmg-builder/src/dmgUtil.ts | 4 ++-- packages/dmg-builder/src/licenseButtons.ts | 2 +- .../src/SquirrelWindowsTarget.ts | 2 +- packages/electron-builder/package.json | 7 ++++++- packages/electron-builder/src/cli/cli.ts | 4 ++-- packages/electron-builder/src/cli/install-app-deps.ts | 2 +- packages/electron-publish/src/bitbucketPublisher.ts | 2 +- packages/electron-publish/src/httpPublisher.ts | 2 +- packages/electron-publish/src/publisher.ts | 2 +- packages/electron-updater/src/AppImageUpdater.ts | 2 +- packages/electron-updater/src/AppUpdater.ts | 2 +- packages/electron-updater/src/DownloadedUpdateHelper.ts | 2 +- packages/electron-updater/src/MacUpdater.ts | 2 +- packages/electron-updater/src/NsisUpdater.ts | 2 +- .../src/differentialDownloader/DifferentialDownloader.ts | 2 +- .../FileWithEmbeddedBlockMapDifferentialDownloader.ts | 2 +- packages/electron-updater/src/main.ts | 2 +- scripts/generate-schema.ts | 4 ++-- scripts/renderer/src/typedoc2html.ts | 2 +- test/src/ArtifactPublisherTest.ts | 4 ++-- test/src/BuildTest.ts | 2 +- test/src/HoistedNodeModuleTest.ts | 2 +- test/src/PublishManagerTest.ts | 2 +- test/src/extraMetadataTest.ts | 2 +- test/src/filesTest.ts | 2 +- test/src/globTest.ts | 2 +- test/src/helpers/downloadElectron.ts | 4 ++-- test/src/helpers/fileAssert.ts | 2 +- test/src/helpers/packTester.ts | 8 ++++---- test/src/helpers/updaterTestUtil.ts | 2 +- test/src/helpers/winHelper.ts | 2 +- test/src/helpers/wine.ts | 2 +- test/src/ignoreTest.ts | 2 +- test/src/linux/linuxPackagerTest.ts | 2 +- test/src/mac/macArchiveTest.ts | 2 +- test/src/mac/macIconTest.ts | 2 +- test/src/packageManagerTest.ts | 2 +- test/src/publisher/gitlab/GitlabTestFixtures.ts | 4 ++-- test/src/updater/blackboxUpdateTest.ts | 4 ++-- test/src/updater/differentialUpdateTest.ts | 2 +- test/src/updater/nsisUpdaterTest.ts | 2 +- test/src/windows/appxTest.ts | 2 +- test/src/windows/oneClickInstallerTest.ts | 2 +- test/src/windows/winCodeSignTest.ts | 4 ++-- test/vitest-scripts/run-vitest.ts | 4 ++-- test/vitest-scripts/smart-config.ts | 2 +- 87 files changed, 107 insertions(+), 102 deletions(-) diff --git a/packages/app-builder-lib/src/asar/asar.ts b/packages/app-builder-lib/src/asar/asar.ts index 357ee5b5d6e..ac08625e5c9 100644 --- a/packages/app-builder-lib/src/asar/asar.ts +++ b/packages/app-builder-lib/src/asar/asar.ts @@ -1,5 +1,5 @@ import * as chromiumPickleJs from "chromium-pickle-js" -import * as fsExtra from "fs-extra" +import fsExtra from "fs-extra" import * as path from "path" export interface ReadAsarHeader { diff --git a/packages/app-builder-lib/src/asar/asarUtil.ts b/packages/app-builder-lib/src/asar/asarUtil.ts index ac3615d48db..77e7f7c0947 100644 --- a/packages/app-builder-lib/src/asar/asarUtil.ts +++ b/packages/app-builder-lib/src/asar/asarUtil.ts @@ -1,7 +1,7 @@ import { AsarDirectory, AsarStreamType, createPackageFromStreams } from "@electron/asar" import { exists, Filter, FilterStats, isEmptyOrSpaces, log } from "builder-util" import * as fs from "fs/promises" -import * as fsExtra from "fs-extra" +import fsExtra from "fs-extra" import * as os from "os" import * as path from "path" import { Readable } from "stream" diff --git a/packages/app-builder-lib/src/codeSign/codesign.ts b/packages/app-builder-lib/src/codeSign/codesign.ts index dd0844d838b..408d7ac7d63 100644 --- a/packages/app-builder-lib/src/codeSign/codesign.ts +++ b/packages/app-builder-lib/src/codeSign/codesign.ts @@ -1,5 +1,5 @@ import { InvalidConfigurationError, statOrNull } from "builder-util" -import * as fsExtra from "fs-extra" +import fsExtra from "fs-extra" import { homedir } from "os" import * as path from "path" import { TmpDir } from "temp-file" diff --git a/packages/app-builder-lib/src/codeSign/macCodeSign.ts b/packages/app-builder-lib/src/codeSign/macCodeSign.ts index 81c68a723c4..d3dca1ad0c4 100644 --- a/packages/app-builder-lib/src/codeSign/macCodeSign.ts +++ b/packages/app-builder-lib/src/codeSign/macCodeSign.ts @@ -105,7 +105,7 @@ const bundledCertKeychainAdded = new Lazy(async () => { const keychainPath = path.join(cacheDir, "electron-builder-root-certs.keychain") const results = await Promise.all([ listUserKeychains(), - copyFile(path.join(__dirname, "..", "..", "certs", "root_certs.keychain"), tmpKeychainPath).then(() => rename(tmpKeychainPath, keychainPath)), + copyFile(path.join(import.meta.dirname, "..", "..", "certs", "root_certs.keychain"), tmpKeychainPath).then(() => rename(tmpKeychainPath, keychainPath)), ]) const list = results[0] if (!list.includes(keychainPath)) { diff --git a/packages/app-builder-lib/src/codeSign/windowsSignToolManager.ts b/packages/app-builder-lib/src/codeSign/windowsSignToolManager.ts index b03bb32420a..84de38d2f9d 100644 --- a/packages/app-builder-lib/src/codeSign/windowsSignToolManager.ts +++ b/packages/app-builder-lib/src/codeSign/windowsSignToolManager.ts @@ -1,6 +1,6 @@ import { asArray, InvalidConfigurationError, log, retry } from "builder-util" import { MemoLazy, parseDn } from "builder-util-runtime" -import * as fsExtra from "fs-extra" +import fsExtra from "fs-extra" import { Lazy } from "lazy-val" import * as path from "path" import { Target } from "../core.js" diff --git a/packages/app-builder-lib/src/electron/ElectronFramework.ts b/packages/app-builder-lib/src/electron/ElectronFramework.ts index 5dbc81cf709..b8baccd0e1b 100644 --- a/packages/app-builder-lib/src/electron/ElectronFramework.ts +++ b/packages/app-builder-lib/src/electron/ElectronFramework.ts @@ -1,5 +1,5 @@ import { asArray, copyDir, DO_NOT_USE_HARD_LINKS, executeAppBuilder, isEmptyOrSpaces, log, MAX_FILE_REQUESTS, statOrNull, unlinkIfExists } from "builder-util" -import * as fsExtra from "fs-extra" +import fsExtra from "fs-extra" import * as path from "path" import asyncPool from "tiny-async-pool" import { Configuration } from "../configuration.js" diff --git a/packages/app-builder-lib/src/electron/electronVersion.ts b/packages/app-builder-lib/src/electron/electronVersion.ts index da5742025f8..dba8fbaf173 100644 --- a/packages/app-builder-lib/src/electron/electronVersion.ts +++ b/packages/app-builder-lib/src/electron/electronVersion.ts @@ -1,6 +1,6 @@ import { httpExecutor, InvalidConfigurationError, log } from "builder-util" import { parseXml } from "builder-util-runtime" -import * as fsExtra from "fs-extra" +import fsExtra from "fs-extra" import { Lazy } from "lazy-val" import * as path from "path" import * as semver from "semver" diff --git a/packages/app-builder-lib/src/electron/search-module.ts b/packages/app-builder-lib/src/electron/search-module.ts index 8e263cae4bc..cf056d3ca72 100644 --- a/packages/app-builder-lib/src/electron/search-module.ts +++ b/packages/app-builder-lib/src/electron/search-module.ts @@ -1,4 +1,4 @@ -import * as fs from "fs-extra" +import fs from "fs-extra" import * as path from "node:path" async function shouldContinueSearch(traversedPath: string, rootPath?: string, stopAtPackageJSON?: boolean): Promise { diff --git a/packages/app-builder-lib/src/frameworks/LibUiFramework.ts b/packages/app-builder-lib/src/frameworks/LibUiFramework.ts index a4aeabd6e88..ef21e41a68d 100644 --- a/packages/app-builder-lib/src/frameworks/LibUiFramework.ts +++ b/packages/app-builder-lib/src/frameworks/LibUiFramework.ts @@ -1,5 +1,5 @@ import { executeAppBuilder } from "builder-util" -import * as fsExtra from "fs-extra" +import fsExtra from "fs-extra" import { chmod, mkdir, rename, writeFile } from "fs/promises" import * as path from "path" import { AfterPackContext } from "../configuration.js" diff --git a/packages/app-builder-lib/src/node-module-collector/index.ts b/packages/app-builder-lib/src/node-module-collector/index.ts index ede4e6dbe1a..e95f15f5656 100644 --- a/packages/app-builder-lib/src/node-module-collector/index.ts +++ b/packages/app-builder-lib/src/node-module-collector/index.ts @@ -8,7 +8,7 @@ import { YarnNodeModulesCollector } from "./yarnNodeModulesCollector.js" import { BunNodeModulesCollector } from "./bunNodeModulesCollector.js" import { Lazy } from "lazy-val" import { spawn, log, exists, isEmptyOrSpaces } from "builder-util" -import * as fs from "fs-extra" +import fs from "fs-extra" import * as path from "path" import { TraversalNodeModulesCollector } from "./traversalNodeModulesCollector.js" diff --git a/packages/app-builder-lib/src/node-module-collector/moduleManager.ts b/packages/app-builder-lib/src/node-module-collector/moduleManager.ts index b1b947c368d..481c22a2f9c 100644 --- a/packages/app-builder-lib/src/node-module-collector/moduleManager.ts +++ b/packages/app-builder-lib/src/node-module-collector/moduleManager.ts @@ -1,6 +1,6 @@ import { exists, isEmptyOrSpaces, log, LogLevel } from "builder-util" import { PackageJson } from "./types.js" -import * as fs from "fs-extra" +import fs from "fs-extra" import * as path from "path" import * as semver from "semver" diff --git a/packages/app-builder-lib/src/node-module-collector/nodeModulesCollector.ts b/packages/app-builder-lib/src/node-module-collector/nodeModulesCollector.ts index d38ed9743ed..4da22eac230 100644 --- a/packages/app-builder-lib/src/node-module-collector/nodeModulesCollector.ts +++ b/packages/app-builder-lib/src/node-module-collector/nodeModulesCollector.ts @@ -1,7 +1,7 @@ import { exists, log, retry, TmpDir } from "builder-util" import * as childProcess from "child_process" -import * as fs from "fs-extra" -import * as fsExtra from "fs-extra" +import fs from "fs-extra" +import fsExtra from "fs-extra" import { Lazy } from "lazy-val" import * as path from "path" import { hoist, type HoisterResult, type HoisterTree } from "./hoist.js" diff --git a/packages/app-builder-lib/src/node-module-collector/packageManager.ts b/packages/app-builder-lib/src/node-module-collector/packageManager.ts index 5e8ba6f7082..d3d965b7b5d 100644 --- a/packages/app-builder-lib/src/node-module-collector/packageManager.ts +++ b/packages/app-builder-lib/src/node-module-collector/packageManager.ts @@ -1,5 +1,5 @@ import { exists, log } from "builder-util" -import * as fs from "fs-extra" +import fs from "fs-extra" import * as path from "path" import * as which from "which" diff --git a/packages/app-builder-lib/src/packager.ts b/packages/app-builder-lib/src/packager.ts index efeca99470a..54ae8f5730b 100644 --- a/packages/app-builder-lib/src/packager.ts +++ b/packages/app-builder-lib/src/packager.ts @@ -16,7 +16,7 @@ import { TmpDir, } from "builder-util" import { CancellationToken, retry } from "builder-util-runtime" -import * as fsExtra from "fs-extra" +import fsExtra from "fs-extra" import { isCI } from "ci-info" import { Lazy } from "lazy-val" import { release as getOsRelease } from "os" diff --git a/packages/app-builder-lib/src/publish/updateInfoBuilder.ts b/packages/app-builder-lib/src/publish/updateInfoBuilder.ts index b6728248804..2257dcda417 100644 --- a/packages/app-builder-lib/src/publish/updateInfoBuilder.ts +++ b/packages/app-builder-lib/src/publish/updateInfoBuilder.ts @@ -1,7 +1,7 @@ import asyncPool from "tiny-async-pool" import { Arch, log, safeStringifyJson, serializeToYaml } from "builder-util" import { GenericServerOptions, PublishConfiguration, UpdateInfo, WindowsUpdateInfo } from "builder-util-runtime" -import * as fsExtra from "fs-extra" +import fsExtra from "fs-extra" import { Lazy } from "lazy-val" import * as path from "path" import * as semver from "semver" diff --git a/packages/app-builder-lib/src/targets/AppImageTarget.ts b/packages/app-builder-lib/src/targets/AppImageTarget.ts index 805e99fa570..60df62df191 100644 --- a/packages/app-builder-lib/src/targets/AppImageTarget.ts +++ b/packages/app-builder-lib/src/targets/AppImageTarget.ts @@ -1,5 +1,5 @@ import { Arch, serializeToYaml } from "builder-util" -import * as fsExtra from "fs-extra" +import fsExtra from "fs-extra" import { Lazy } from "lazy-val" import * as path from "path" import { Target } from "../core.js" diff --git a/packages/app-builder-lib/src/targets/AppxTarget.ts b/packages/app-builder-lib/src/targets/AppxTarget.ts index 00448de2f16..8cc40e5af11 100644 --- a/packages/app-builder-lib/src/targets/AppxTarget.ts +++ b/packages/app-builder-lib/src/targets/AppxTarget.ts @@ -1,6 +1,6 @@ import { Arch, asArray, copyOrLinkFile, deepAssign, InvalidConfigurationError, log, walk } from "builder-util" import { Nullish } from "builder-util-runtime" -import * as fsExtra from "fs-extra" +import fsExtra from "fs-extra" import * as path from "path" import { AppXOptions } from "../index.js" import { getWindowsKitsBundle } from "../toolsets/windows.js" diff --git a/packages/app-builder-lib/src/targets/FlatpakTarget.ts b/packages/app-builder-lib/src/targets/FlatpakTarget.ts index 3bd2d829c42..e87b4b5ef08 100644 --- a/packages/app-builder-lib/src/targets/FlatpakTarget.ts +++ b/packages/app-builder-lib/src/targets/FlatpakTarget.ts @@ -1,6 +1,6 @@ import { bundle as bundleFlatpak, FlatpakBundlerBuildOptions, FlatpakManifest } from "@malept/flatpak-bundler" import { Arch, copyFile, toLinuxArchString } from "builder-util" -import * as fsExtra from "fs-extra" +import fsExtra from "fs-extra" import * as path from "path" import { Target } from "../core.js" import { LinuxPackager } from "../linuxPackager.js" diff --git a/packages/app-builder-lib/src/targets/FpmTarget.ts b/packages/app-builder-lib/src/targets/FpmTarget.ts index 8143fdf71ad..9957f88ea79 100644 --- a/packages/app-builder-lib/src/targets/FpmTarget.ts +++ b/packages/app-builder-lib/src/targets/FpmTarget.ts @@ -1,6 +1,6 @@ import { Arch, asArray, exec, getArchSuffix, log, serializeToYaml, TmpDir, toLinuxArchString, unlinkIfExists, use } from "builder-util" import { Nullish } from "builder-util-runtime" -import * as fsExtra from "fs-extra" +import fsExtra from "fs-extra" import { mkdir, readFile } from "fs/promises" import * as path from "path" import { smarten } from "../appInfo.js" diff --git a/packages/app-builder-lib/src/targets/LinuxTargetHelper.ts b/packages/app-builder-lib/src/targets/LinuxTargetHelper.ts index e53f8e37867..0f00a64438d 100644 --- a/packages/app-builder-lib/src/targets/LinuxTargetHelper.ts +++ b/packages/app-builder-lib/src/targets/LinuxTargetHelper.ts @@ -1,5 +1,5 @@ import { asArray, exists, isEmptyOrSpaces, log } from "builder-util" -import * as fsExtra from "fs-extra" +import fsExtra from "fs-extra" import { Lazy } from "lazy-val" import { join } from "path" import { LinuxPackager } from "../linuxPackager.js" diff --git a/packages/app-builder-lib/src/targets/appimage/AppImageTarget.ts b/packages/app-builder-lib/src/targets/appimage/AppImageTarget.ts index 9ef1f74828f..7d70aa26a80 100644 --- a/packages/app-builder-lib/src/targets/appimage/AppImageTarget.ts +++ b/packages/app-builder-lib/src/targets/appimage/AppImageTarget.ts @@ -1,6 +1,6 @@ import { IconInfo } from "../../platformPackager.js" import { Arch, log, serializeToYaml } from "builder-util" -import * as fsExtra from "fs-extra" +import fsExtra from "fs-extra" import { Lazy } from "lazy-val" import * as path from "path" import { Target } from "../../core.js" diff --git a/packages/app-builder-lib/src/targets/appimage/appImageUtil.ts b/packages/app-builder-lib/src/targets/appimage/appImageUtil.ts index 46145117585..70a6396ce67 100644 --- a/packages/app-builder-lib/src/targets/appimage/appImageUtil.ts +++ b/packages/app-builder-lib/src/targets/appimage/appImageUtil.ts @@ -1,5 +1,5 @@ import { Arch, copyDir, copyFile, exec, exists, InvalidConfigurationError, log } from "builder-util" -import * as fs from "fs-extra" +import fs from "fs-extra" import * as path from "path" import { FileAssociation } from "../../options/FileAssociation.js" import { IconInfo } from "../../platformPackager.js" diff --git a/packages/app-builder-lib/src/targets/appimage/appLauncher.ts b/packages/app-builder-lib/src/targets/appimage/appLauncher.ts index e506de3c953..fdea0bfd11a 100644 --- a/packages/app-builder-lib/src/targets/appimage/appLauncher.ts +++ b/packages/app-builder-lib/src/targets/appimage/appLauncher.ts @@ -1,5 +1,5 @@ import * as path from "path" -import * as fs from "fs-extra" +import fs from "fs-extra" import { copyOrLinkFile, log } from "builder-util" import { AppImageBuilderOptions } from "./appImageUtil.js" diff --git a/packages/app-builder-lib/src/targets/archive.ts b/packages/app-builder-lib/src/targets/archive.ts index 997a6169cb8..f3936f65c52 100644 --- a/packages/app-builder-lib/src/targets/archive.ts +++ b/packages/app-builder-lib/src/targets/archive.ts @@ -1,5 +1,5 @@ import { debug7z, exec, exists, getPath7za, log, statOrNull, unlinkIfExists } from "builder-util" -import * as fsExtra from "fs-extra" +import fsExtra from "fs-extra" import * as path from "path" import { create } from "tar" import { TmpDir } from "temp-file" diff --git a/packages/app-builder-lib/src/targets/nsis/NsisTarget.ts b/packages/app-builder-lib/src/targets/nsis/NsisTarget.ts index c19e23ae091..b0ea75570c0 100644 --- a/packages/app-builder-lib/src/targets/nsis/NsisTarget.ts +++ b/packages/app-builder-lib/src/targets/nsis/NsisTarget.ts @@ -18,7 +18,7 @@ import { import { CURRENT_APP_INSTALLER_FILE_NAME, CURRENT_APP_PACKAGE_FILE_NAME, PackageFileInfo, UUID } from "builder-util-runtime" import _debug from "debug" import * as fs from "fs" -import * as fsExtra from "fs-extra" +import fsExtra from "fs-extra" import * as path from "path" import { Target } from "../../core.js" import { DesktopShortcutCreationPolicy, getEffectiveOptions } from "../../options/CommonWindowsInstallerConfiguration.js" diff --git a/packages/app-builder-lib/src/targets/nsis/nsisLang.ts b/packages/app-builder-lib/src/targets/nsis/nsisLang.ts index f97b14265af..0e2dc7a27dd 100644 --- a/packages/app-builder-lib/src/targets/nsis/nsisLang.ts +++ b/packages/app-builder-lib/src/targets/nsis/nsisLang.ts @@ -1,6 +1,6 @@ import { asArray } from "builder-util" import _debug from "debug" -import * as fsExtra from "fs-extra" +import fsExtra from "fs-extra" import { load } from "js-yaml" import * as path from "path" import { PlatformPackager } from "../../platformPackager.js" diff --git a/packages/app-builder-lib/src/targets/snap.ts b/packages/app-builder-lib/src/targets/snap.ts index aefb79d4a2c..265f979bc71 100644 --- a/packages/app-builder-lib/src/targets/snap.ts +++ b/packages/app-builder-lib/src/targets/snap.ts @@ -1,6 +1,6 @@ import { replaceDefault as _replaceDefault, Arch, deepAssign, executeAppBuilder, InvalidConfigurationError, log, serializeToYaml, toLinuxArchString } from "builder-util" import { asArray, Nullish, SnapStoreOptions } from "builder-util-runtime" -import * as fsExtra from "fs-extra" +import fsExtra from "fs-extra" import { load } from "js-yaml" import * as path from "path" import * as semver from "semver" diff --git a/packages/app-builder-lib/src/util/AppFileWalker.ts b/packages/app-builder-lib/src/util/AppFileWalker.ts index 523a5c700e8..fb2ec796228 100644 --- a/packages/app-builder-lib/src/util/AppFileWalker.ts +++ b/packages/app-builder-lib/src/util/AppFileWalker.ts @@ -1,5 +1,5 @@ import { FileConsumer, Filter, FilterStats } from "builder-util" -import * as fsExtra from "fs-extra" +import fsExtra from "fs-extra" import * as path from "path" import { FileMatcher } from "../fileMatcher.js" import { Packager } from "../packager.js" diff --git a/packages/app-builder-lib/src/util/NodeModuleCopyHelper.ts b/packages/app-builder-lib/src/util/NodeModuleCopyHelper.ts index 7183e7eb877..7be83e57865 100644 --- a/packages/app-builder-lib/src/util/NodeModuleCopyHelper.ts +++ b/packages/app-builder-lib/src/util/NodeModuleCopyHelper.ts @@ -1,6 +1,6 @@ import { FilterStats, MAX_FILE_REQUESTS } from "builder-util" import { realpathSync } from "fs" -import * as fsExtra from "fs-extra" +import fsExtra from "fs-extra" import * as path from "path" import asyncPool from "tiny-async-pool" import { excludedNames, FileMatcher } from "../fileMatcher.js" diff --git a/packages/app-builder-lib/src/util/appFileCopier.ts b/packages/app-builder-lib/src/util/appFileCopier.ts index eebfe5d9d0a..686d7a30789 100644 --- a/packages/app-builder-lib/src/util/appFileCopier.ts +++ b/packages/app-builder-lib/src/util/appFileCopier.ts @@ -1,6 +1,6 @@ import { AsyncTaskManager, FileCopier, FileTransformer, isEmptyOrSpaces, Link, log, MAX_FILE_REQUESTS, statOrNull, walk } from "builder-util" import { Stats } from "fs" -import * as fsExtra from "fs-extra" +import fsExtra from "fs-extra" import { mkdir, readlink } from "fs/promises" import * as path from "path" import asyncPool from "tiny-async-pool" @@ -295,7 +295,7 @@ async function compileUsingElectronCompile(mainFileSet: ResolvedFileSet, package mainFileSet.files.length - 1, ` 'use strict'; -require('electron-compile').init(__dirname, require('path').resolve(__dirname, '${packager.metadata.main || "index"}'), true); +require('electron-compile').init(import.meta.dirname, require('path').resolve(import.meta.dirname, '${packager.metadata.main || "index"}'), true); ` ) return { src: electronCompileCache, files: cacheFiles, metadata, destination: mainFileSet.destination } diff --git a/packages/app-builder-lib/src/util/cacheManager.ts b/packages/app-builder-lib/src/util/cacheManager.ts index 5d832fb1f3a..5ea787aac90 100644 --- a/packages/app-builder-lib/src/util/cacheManager.ts +++ b/packages/app-builder-lib/src/util/cacheManager.ts @@ -1,6 +1,6 @@ import { Arch, copyFile, log, orNullIfFileNotExist } from "builder-util" import { Hash } from "crypto" -import * as fsExtra from "fs-extra" +import fsExtra from "fs-extra" import { mkdir, readFile } from "fs/promises" import * as path from "path" diff --git a/packages/app-builder-lib/src/util/config/config.ts b/packages/app-builder-lib/src/util/config/config.ts index 10f9fe27536..aab3a0a7a3a 100644 --- a/packages/app-builder-lib/src/util/config/config.ts +++ b/packages/app-builder-lib/src/util/config/config.ts @@ -1,6 +1,6 @@ import { DebugLogger, deepAssign, InvalidConfigurationError, log, safeStringifyJson, statOrNull } from "builder-util" import { Nullish } from "builder-util-runtime" -import * as fsExtra from "fs-extra" +import fsExtra from "fs-extra" import { Lazy } from "lazy-val" import * as path from "path" import { Configuration } from "../../configuration.js" @@ -214,7 +214,7 @@ function getDefaultConfig(): Configuration { } } -const schemeDataPromise = new Lazy(() => fsExtra.readJson(path.join(__dirname, "..", "..", "..", "scheme.json"))) +const schemeDataPromise = new Lazy(() => fsExtra.readJson(path.join(import.meta.dirname, "..", "..", "..", "scheme.json"))) export async function validateConfiguration(config: Configuration, debugLogger: DebugLogger) { const extraMetadata = config.extraMetadata diff --git a/packages/app-builder-lib/src/util/macosVersion.ts b/packages/app-builder-lib/src/util/macosVersion.ts index ea8983dea5e..c10ba42f597 100644 --- a/packages/app-builder-lib/src/util/macosVersion.ts +++ b/packages/app-builder-lib/src/util/macosVersion.ts @@ -1,5 +1,5 @@ import { log } from "builder-util" -import * as fsExtra from "fs-extra" +import fsExtra from "fs-extra" import { Lazy } from "lazy-val" import { release as osRelease } from "os" import * as semver from "semver" diff --git a/packages/app-builder-lib/src/util/packageMetadata.ts b/packages/app-builder-lib/src/util/packageMetadata.ts index 82c307dde33..c57213817e7 100644 --- a/packages/app-builder-lib/src/util/packageMetadata.ts +++ b/packages/app-builder-lib/src/util/packageMetadata.ts @@ -114,7 +114,7 @@ function checkDependencies(dependencies: Record | Nullish, error for (const prefix of prefixes) { if (updaterVersion.startsWith(prefix)) { const normalized = path.normalize(updaterVersion.substring(prefix.length)) - const packageJsonPath = path.isAbsolute(normalized) ? normalized : path.resolve(__dirname, normalized) + const packageJsonPath = path.isAbsolute(normalized) ? normalized : path.resolve(import.meta.dirname, normalized) const json = fsExtra.readJsonSync(path.join(packageJsonPath, "package.json")) updaterVersion = json.version break diff --git a/packages/app-builder-lib/src/util/rebuild.ts b/packages/app-builder-lib/src/util/rebuild.ts index 481de04fde8..28a47563a70 100644 --- a/packages/app-builder-lib/src/util/rebuild.ts +++ b/packages/app-builder-lib/src/util/rebuild.ts @@ -7,7 +7,7 @@ export const rebuild = async (options: RebuildOptions): Promise => { const { arch } = options log.info({ arch }, `installing native dependencies`) - const child = cp.fork(path.resolve(__dirname, "../../helpers/remote-rebuild.js"), [JSON.stringify(options)], { + const child = cp.fork(path.resolve(import.meta.dirname, "../../helpers/remote-rebuild.js"), [JSON.stringify(options)], { stdio: ["pipe", "pipe", "pipe", "ipc"], }) diff --git a/packages/app-builder-lib/src/util/repositoryInfo.ts b/packages/app-builder-lib/src/util/repositoryInfo.ts index 24e8cf8a4c3..61f1365d77f 100644 --- a/packages/app-builder-lib/src/util/repositoryInfo.ts +++ b/packages/app-builder-lib/src/util/repositoryInfo.ts @@ -1,5 +1,5 @@ import { orNullIfFileNotExist } from "builder-util" -import * as fsExtra from "fs-extra" +import fsExtra from "fs-extra" import GitHost, { fromUrl } from "hosted-git-info" import * as path from "path" import { SourceRepositoryInfo } from "../core.js" diff --git a/packages/app-builder-lib/src/util/yarn.ts b/packages/app-builder-lib/src/util/yarn.ts index 3dfe8efe83b..bb76d6f26d9 100644 --- a/packages/app-builder-lib/src/util/yarn.ts +++ b/packages/app-builder-lib/src/util/yarn.ts @@ -1,5 +1,5 @@ import { asArray, log, spawn } from "builder-util" -import * as fsExtra from "fs-extra" +import fsExtra from "fs-extra" import { Lazy } from "lazy-val" import { homedir } from "os" import * as path from "path" diff --git a/packages/builder-util/src/7za.ts b/packages/builder-util/src/7za.ts index 742255b05b9..ef0582909bd 100644 --- a/packages/builder-util/src/7za.ts +++ b/packages/builder-util/src/7za.ts @@ -1,6 +1,6 @@ import { path7x, path7za } from "7zip-bin" import * as fs from "fs" -import * as fsExtra from "fs-extra" +import fsExtra from "fs-extra" export async function getPath7za(): Promise { if (fs.existsSync(path7za)) { diff --git a/packages/builder-util/src/DebugLogger.ts b/packages/builder-util/src/DebugLogger.ts index 1a6ee37aa8e..a37dfe5e1b9 100644 --- a/packages/builder-util/src/DebugLogger.ts +++ b/packages/builder-util/src/DebugLogger.ts @@ -1,4 +1,4 @@ -import * as fsExtra from "fs-extra" +import fsExtra from "fs-extra" import { serializeToYaml } from "./util.js" import { mapToObject } from "./mapper.js" diff --git a/packages/builder-util/src/fs.ts b/packages/builder-util/src/fs.ts index de9658b627f..aac7f52a0b6 100644 --- a/packages/builder-util/src/fs.ts +++ b/packages/builder-util/src/fs.ts @@ -1,6 +1,6 @@ import { Nullish } from "builder-util-runtime" import { Stats } from "fs" -import * as fsExtra from "fs-extra" +import fsExtra from "fs-extra" import { access, chmod, link, lstat, mkdir, readdir, readlink, stat, symlink, unlink, writeFile } from "fs/promises" import { platform } from "os" import * as path from "path" diff --git a/packages/dmg-builder/src/dmgLicense.ts b/packages/dmg-builder/src/dmgLicense.ts index a63c2ad25c7..0b542f6ba0e 100644 --- a/packages/dmg-builder/src/dmgLicense.ts +++ b/packages/dmg-builder/src/dmgLicense.ts @@ -1,7 +1,7 @@ import { PlatformPackager } from "app-builder-lib" import { log } from "builder-util" import { dmgLicenseFromJSON } from "dmg-license" -import * as fsExtra from "fs-extra" +import fsExtra from "fs-extra" import { load } from "js-yaml" import { getLicenseButtonsFile } from "./licenseButtons.js" import { getLicenseFiles } from "app-builder-lib" diff --git a/packages/dmg-builder/src/dmgUtil.ts b/packages/dmg-builder/src/dmgUtil.ts index e69d2aa9572..38e324eef86 100644 --- a/packages/dmg-builder/src/dmgUtil.ts +++ b/packages/dmg-builder/src/dmgUtil.ts @@ -1,14 +1,14 @@ import { DmgOptions, MacPackager, PlatformPackager } from "app-builder-lib" import { downloadArtifact } from "app-builder-lib" import { exec, executeFinally, exists, isEmptyOrSpaces, TmpDir } from "builder-util" -import * as fsExtra from "fs-extra" +import fsExtra from "fs-extra" import * as path from "path" import { DmgBuildConfig } from "./dmg.js" import { hdiUtil, hdiutilTransientExitCodes } from "./hdiuil.js" export { DmgTarget } from "./dmg.js" -const root = path.join(__dirname, "..") +const root = path.join(import.meta.dirname, "..") export function getDmgTemplatePath() { return path.join(root, "templates") diff --git a/packages/dmg-builder/src/licenseButtons.ts b/packages/dmg-builder/src/licenseButtons.ts index deb3cd47053..8c53a704a4c 100644 --- a/packages/dmg-builder/src/licenseButtons.ts +++ b/packages/dmg-builder/src/licenseButtons.ts @@ -1,7 +1,7 @@ import { PlatformPackager } from "app-builder-lib" import { getLicenseAssets } from "app-builder-lib" import { log } from "builder-util" -import * as fsExtra from "fs-extra" +import fsExtra from "fs-extra" import * as iconv from "iconv-lite" import { load } from "js-yaml" import { serializeString } from "./dmgUtil.js" diff --git a/packages/electron-builder-squirrel-windows/src/SquirrelWindowsTarget.ts b/packages/electron-builder-squirrel-windows/src/SquirrelWindowsTarget.ts index 0539efb0fa1..a6922d298f3 100644 --- a/packages/electron-builder-squirrel-windows/src/SquirrelWindowsTarget.ts +++ b/packages/electron-builder-squirrel-windows/src/SquirrelWindowsTarget.ts @@ -157,7 +157,7 @@ export default class SquirrelWindowsTarget extends Target { } private async createNuspecTemplateWithProjectUrl() { - const templatePath = path.resolve(__dirname, "..", "template.nuspectemplate") + const templatePath = path.resolve(import.meta.dirname, "..", "template.nuspectemplate") const projectUrl = await this.packager.appInfo.computePackageUrl() if (projectUrl != null) { const nuspecTemplate = await this.packager.info.tempDirManager.getTempFile({ prefix: "template", suffix: ".nuspectemplate" }) diff --git a/packages/electron-builder/package.json b/packages/electron-builder/package.json index 0513d9c3da3..d1051126c8b 100644 --- a/packages/electron-builder/package.json +++ b/packages/electron-builder/package.json @@ -2,7 +2,12 @@ "name": "electron-builder", "description": "A complete solution to package and build a ready for distribution Electron app for MacOS, Windows and Linux with “auto update” support out of the box", "version": "26.8.2", - "main": "out/index.js", + "type": "module", + "exports": { + ".": "./out/index.js", + "./cli": "./cli.js", + "./install-app-deps": "./install-app-deps.js" + }, "files": [ "out" ], diff --git a/packages/electron-builder/src/cli/cli.ts b/packages/electron-builder/src/cli/cli.ts index f29f6fcd0a7..6869c836378 100644 --- a/packages/electron-builder/src/cli/cli.ts +++ b/packages/electron-builder/src/cli/cli.ts @@ -5,7 +5,7 @@ import { loadEnv } from "app-builder-lib" import { nodeGypRebuild } from "app-builder-lib" import { ExecError, InvalidConfigurationError, log } from "builder-util" import * as chalk from "chalk" -import * as fsExtra from "fs-extra" +import fsExtra from "fs-extra" import { isCI } from "ci-info" import * as path from "path" import { build, configureBuildCommand, createYargs } from "../builder.js" @@ -68,7 +68,7 @@ async function checkIsOutdated() { return } - const pkg = await fsExtra.readJson(path.join(__dirname, "..", "..", "package.json")) + const pkg = await fsExtra.readJson(path.join(import.meta.dirname, "..", "..", "package.json")) if (pkg.version === "0.0.0-semantic-release") { return } diff --git a/packages/electron-builder/src/cli/install-app-deps.ts b/packages/electron-builder/src/cli/install-app-deps.ts index f52b505a387..a3cae0d2813 100644 --- a/packages/electron-builder/src/cli/install-app-deps.ts +++ b/packages/electron-builder/src/cli/install-app-deps.ts @@ -1,7 +1,7 @@ #! /usr/bin/env node import { computeDefaultAppDirectory, createLazyProductionDeps, determinePackageManagerEnv, getConfig, getElectronVersion, installOrRebuild, PACKAGE_VERSION } from "app-builder-lib" import { getArchCliNames, log, orNullIfFileNotExist, printErrorAndExit } from "builder-util" -import * as fsExtra from "fs-extra" +import fsExtra from "fs-extra" import { Lazy } from "lazy-val" import * as path from "path" import { Argv } from "yargs" diff --git a/packages/electron-publish/src/bitbucketPublisher.ts b/packages/electron-publish/src/bitbucketPublisher.ts index bdc29ca6e30..cb45b36d901 100644 --- a/packages/electron-publish/src/bitbucketPublisher.ts +++ b/packages/electron-publish/src/bitbucketPublisher.ts @@ -2,7 +2,7 @@ import { Arch, httpExecutor, InvalidConfigurationError, isEmptyOrSpaces, log } f import { configureRequestOptions, HttpExecutor } from "builder-util-runtime" import { BitbucketOptions } from "builder-util-runtime" import FormData from "form-data" -import * as fsExtra from "fs-extra" +import fsExtra from "fs-extra" import { ClientRequest, RequestOptions } from "http" import { PublishContext } from "./index.js" import { HttpPublisher } from "./httpPublisher.js" diff --git a/packages/electron-publish/src/httpPublisher.ts b/packages/electron-publish/src/httpPublisher.ts index dfcdb1d595d..549132ee2f1 100644 --- a/packages/electron-publish/src/httpPublisher.ts +++ b/packages/electron-publish/src/httpPublisher.ts @@ -1,5 +1,5 @@ import { Arch } from "builder-util" -import * as fsExtra from "fs-extra" +import fsExtra from "fs-extra" import { ClientRequest } from "http" import { basename } from "path" import { PublishContext, UploadTask } from "./index.js" diff --git a/packages/electron-publish/src/publisher.ts b/packages/electron-publish/src/publisher.ts index 001422832c1..747d2d09b89 100644 --- a/packages/electron-publish/src/publisher.ts +++ b/packages/electron-publish/src/publisher.ts @@ -1,7 +1,7 @@ import { log, PADDING } from "builder-util" import { ProgressCallbackTransform, PublishProvider } from "builder-util-runtime" import * as chalk from "chalk" -import * as fsExtra from "fs-extra" +import fsExtra from "fs-extra" import { PublishContext, UploadTask } from "./index.js" import { ProgressBar } from "./progress.js" diff --git a/packages/electron-updater/src/AppImageUpdater.ts b/packages/electron-updater/src/AppImageUpdater.ts index 4d05cb7d55a..895a78bc145 100644 --- a/packages/electron-updater/src/AppImageUpdater.ts +++ b/packages/electron-updater/src/AppImageUpdater.ts @@ -1,6 +1,6 @@ import { AllPublishOptions, newError } from "builder-util-runtime" import { execFileSync } from "child_process" -import * as fsExtra from "fs-extra" +import fsExtra from "fs-extra" import { unlinkSync } from "fs" import * as path from "path" import { DownloadUpdateOptions } from "./AppUpdater.js" diff --git a/packages/electron-updater/src/AppUpdater.ts b/packages/electron-updater/src/AppUpdater.ts index 963cfb9d3c2..4af324c93f4 100644 --- a/packages/electron-updater/src/AppUpdater.ts +++ b/packages/electron-updater/src/AppUpdater.ts @@ -15,7 +15,7 @@ import { import { randomBytes } from "crypto" import { release } from "os" import { EventEmitter } from "events" -import * as fsExtra from "fs-extra" +import fsExtra from "fs-extra" import { OutgoingHttpHeaders } from "http" import { load } from "js-yaml" import { Lazy } from "lazy-val" diff --git a/packages/electron-updater/src/DownloadedUpdateHelper.ts b/packages/electron-updater/src/DownloadedUpdateHelper.ts index eb4aa90d2cd..6d07d0017b8 100644 --- a/packages/electron-updater/src/DownloadedUpdateHelper.ts +++ b/packages/electron-updater/src/DownloadedUpdateHelper.ts @@ -5,7 +5,7 @@ import { createReadStream } from "fs" import * as isEqual from "lodash.isequal" import { ResolvedUpdateFileInfo } from "./types.js" import { Logger } from "./types.js" -import * as fsExtra from "fs-extra" +import fsExtra from "fs-extra" import * as path from "path" /** @private **/ diff --git a/packages/electron-updater/src/MacUpdater.ts b/packages/electron-updater/src/MacUpdater.ts index 92f24a06542..3405682d218 100644 --- a/packages/electron-updater/src/MacUpdater.ts +++ b/packages/electron-updater/src/MacUpdater.ts @@ -1,5 +1,5 @@ import { AllPublishOptions, newError, safeStringifyJson } from "builder-util-runtime" -import * as fsExtra from "fs-extra" +import fsExtra from "fs-extra" import { createReadStream } from "fs" import * as path from "path" import { createServer, IncomingMessage, Server, ServerResponse } from "http" diff --git a/packages/electron-updater/src/NsisUpdater.ts b/packages/electron-updater/src/NsisUpdater.ts index 977979a68ab..f2a4f95781c 100644 --- a/packages/electron-updater/src/NsisUpdater.ts +++ b/packages/electron-updater/src/NsisUpdater.ts @@ -8,7 +8,7 @@ import { FileWithEmbeddedBlockMapDifferentialDownloader } from "./differentialDo import { DOWNLOAD_PROGRESS } from "./types.js" import { VerifyUpdateCodeSignature } from "./main.js" import { findFile, Provider } from "./providers/Provider.js" -import * as fsExtra from "fs-extra" +import fsExtra from "fs-extra" import { verifySignature } from "./windowsExecutableCodeSignatureVerifier.js" import { URL } from "url" diff --git a/packages/electron-updater/src/differentialDownloader/DifferentialDownloader.ts b/packages/electron-updater/src/differentialDownloader/DifferentialDownloader.ts index 4fe69058223..15b9d20e168 100644 --- a/packages/electron-updater/src/differentialDownloader/DifferentialDownloader.ts +++ b/packages/electron-updater/src/differentialDownloader/DifferentialDownloader.ts @@ -1,6 +1,6 @@ import { BlockMapDataHolder, createHttpError, DigestTransform, HttpExecutor, configureRequestUrl, configureRequestOptions } from "builder-util-runtime" import { BlockMap } from "builder-util-runtime" -import * as fsExtra from "fs-extra" +import fsExtra from "fs-extra" import { createWriteStream } from "fs" import { OutgoingHttpHeaders, RequestOptions } from "http" import { ProgressInfo, CancellationToken } from "builder-util-runtime" diff --git a/packages/electron-updater/src/differentialDownloader/FileWithEmbeddedBlockMapDifferentialDownloader.ts b/packages/electron-updater/src/differentialDownloader/FileWithEmbeddedBlockMapDifferentialDownloader.ts index 16619dce902..e842403c7c1 100644 --- a/packages/electron-updater/src/differentialDownloader/FileWithEmbeddedBlockMapDifferentialDownloader.ts +++ b/packages/electron-updater/src/differentialDownloader/FileWithEmbeddedBlockMapDifferentialDownloader.ts @@ -1,5 +1,5 @@ import { BlockMap } from "builder-util-runtime" -import * as fsExtra from "fs-extra" +import fsExtra from "fs-extra" import { DifferentialDownloader } from "./DifferentialDownloader.js" import { inflateRawSync } from "zlib" diff --git a/packages/electron-updater/src/main.ts b/packages/electron-updater/src/main.ts index b59dc9012bb..e3b91b4715f 100644 --- a/packages/electron-updater/src/main.ts +++ b/packages/electron-updater/src/main.ts @@ -1,4 +1,4 @@ -import * as fsExtra from "fs-extra" +import fsExtra from "fs-extra" import * as path from "path" import { AppUpdater } from "./AppUpdater.js" diff --git a/scripts/generate-schema.ts b/scripts/generate-schema.ts index 9fa97720530..fc4c9fd95e5 100644 --- a/scripts/generate-schema.ts +++ b/scripts/generate-schema.ts @@ -3,7 +3,7 @@ import * as path from "path" import { TypeScript } from "typedoc" import * as TJS from "typescript-json-schema" -const rootDir = path.resolve(__dirname, "../packages") +const rootDir = path.resolve(import.meta.dirname, "../packages") const compilerOptions: TJS.CompilerOptions = { target: TypeScript.ScriptTarget.ES2022 as any, @@ -88,5 +88,5 @@ schema!.properties!["$schema"] = { type: ["null", "string"], } -const schemaFile = path.join(__dirname, "../packages/app-builder-lib/scheme.json") +const schemaFile = path.join(import.meta.dirname, "../packages/app-builder-lib/scheme.json") fs.writeFileSync(schemaFile, JSON.stringify(schema, null, 2)) diff --git a/scripts/renderer/src/typedoc2html.ts b/scripts/renderer/src/typedoc2html.ts index 9605cccb467..31e405f6e67 100644 --- a/scripts/renderer/src/typedoc2html.ts +++ b/scripts/renderer/src/typedoc2html.ts @@ -1,4 +1,4 @@ -import * as fsExtra from "fs-extra" +import fsExtra from "fs-extra" import { rm } from "fs/promises" import * as path from "path" import * as process from "process" diff --git a/test/src/ArtifactPublisherTest.ts b/test/src/ArtifactPublisherTest.ts index 49d3ee897f2..f32bb1032e4 100644 --- a/test/src/ArtifactPublisherTest.ts +++ b/test/src/ArtifactPublisherTest.ts @@ -17,8 +17,8 @@ function versionNumber() { //noinspection SpellCheckingInspection const token = Buffer.from("Y2Y5NDdhZDJhYzJlMzg1OGNiNzQzYzcwOWZhNGI0OTk2NWQ4ZDg3Yg==", "base64").toString() -const iconPath = path.join(__dirname, "..", "fixtures", "test-app", "build", "icon.icns") -const icoPath = path.join(__dirname, "..", "fixtures", "test-app", "build", "icon.ico") +const iconPath = path.join(import.meta.dirname, "..", "fixtures", "test-app", "build", "icon.icns") +const icoPath = path.join(import.meta.dirname, "..", "fixtures", "test-app", "build", "icon.ico") const publishContext: PublishContext = { cancellationToken: new CancellationToken(), diff --git a/test/src/BuildTest.ts b/test/src/BuildTest.ts index 457d04fa2dd..780a81eb7f3 100644 --- a/test/src/BuildTest.ts +++ b/test/src/BuildTest.ts @@ -3,7 +3,7 @@ import { doMergeConfigs } from "app-builder-lib" import { Arch, createTargets, DIR_TARGET, Platform } from "electron-builder" import { createYargs } from "electron-builder" import { promises as fs } from "fs" -import * as fsExtra from "fs-extra" +import fsExtra from "fs-extra" import * as path from "path" import { app, appTwo, appTwoThrows, assertPack, getFixtureDir, linuxDirTarget, modifyPackageJson, packageJson, toSystemIndependentPath } from "./helpers/packTester.js" import { ELECTRON_VERSION } from "./helpers/testConfig.js" diff --git a/test/src/HoistedNodeModuleTest.ts b/test/src/HoistedNodeModuleTest.ts index 4b7befaffe4..1a87672e491 100644 --- a/test/src/HoistedNodeModuleTest.ts +++ b/test/src/HoistedNodeModuleTest.ts @@ -4,7 +4,7 @@ import { Arch, DIR_TARGET, Platform } from "electron-builder" import * as path from "path" import { appTwoThrows, assertPack, linuxDirTarget, modifyPackageJson, verifyAsarFileTree } from "./helpers/packTester" import { ELECTRON_VERSION } from "./helpers/testConfig" -import * as fsExtra from "fs-extra" +import fsExtra from "fs-extra" describe.ifNotWindows("node_module collectors", () => { test("yarn workspace", ({ expect }) => diff --git a/test/src/PublishManagerTest.ts b/test/src/PublishManagerTest.ts index fd3f5ee711c..45197fd040f 100644 --- a/test/src/PublishManagerTest.ts +++ b/test/src/PublishManagerTest.ts @@ -1,6 +1,6 @@ import { GenericServerOptions, GithubOptions, KeygenOptions, SpacesOptions } from "builder-util-runtime" import { Arch, createTargets, Platform } from "electron-builder" -import * as fsExtra from "fs-extra" +import fsExtra from "fs-extra" import * as path from "path" import { assertThat } from "./helpers/fileAssert.js" import { app, checkDirContents } from "./helpers/packTester.js" diff --git a/test/src/extraMetadataTest.ts b/test/src/extraMetadataTest.ts index 5fba1ce28d6..b908da4f61f 100644 --- a/test/src/extraMetadataTest.ts +++ b/test/src/extraMetadataTest.ts @@ -1,7 +1,7 @@ import { readAsarJson } from "app-builder-lib" import { Platform } from "electron-builder" import { coerceTypes } from "electron-builder" -import * as fsExtra from "fs-extra" +import fsExtra from "fs-extra" import * as path from "path" import { assertThat } from "./helpers/fileAssert.js" import { app, linuxDirTarget, modifyPackageJson } from "./helpers/packTester.js" diff --git a/test/src/filesTest.ts b/test/src/filesTest.ts index 176f7d40364..57ee4e8d74a 100644 --- a/test/src/filesTest.ts +++ b/test/src/filesTest.ts @@ -1,6 +1,6 @@ import { TmpDir, archFromString, copyDir } from "builder-util" import { DIR_TARGET, Platform } from "electron-builder" -import * as fsExtra from "fs-extra" +import fsExtra from "fs-extra" import * as fs from "fs/promises" import * as path from "path" import statMode from "stat-mode" diff --git a/test/src/globTest.ts b/test/src/globTest.ts index 341053fd6fa..f126243f051 100644 --- a/test/src/globTest.ts +++ b/test/src/globTest.ts @@ -1,7 +1,7 @@ import { Platform } from "app-builder-lib" import { readAsar } from "app-builder-lib" import { PM } from "app-builder-lib" -import * as fsExtra from "fs-extra" +import fsExtra from "fs-extra" import * as fs from "fs/promises" import * as path from "path" import { ExpectStatic } from "vitest" diff --git a/test/src/helpers/downloadElectron.ts b/test/src/helpers/downloadElectron.ts index 93b813c8fa1..772e69a5873 100644 --- a/test/src/helpers/downloadElectron.ts +++ b/test/src/helpers/downloadElectron.ts @@ -4,7 +4,7 @@ import * as path from "path" import { gte } from "semver" import { ELECTRON_VERSION, getElectronCacheDir } from "./testConfig.js" -const executeAppBuilder: (options: any) => Promise = require(path.join(__dirname, "../../..", "packages/builder-util")).executeAppBuilder +const executeAppBuilder: (options: any) => Promise = require(path.join(import.meta.dirname, "../../..", "packages/builder-util")).executeAppBuilder export async function deleteOldElectronVersion(): Promise { // on CircleCi no need to clean manually @@ -47,7 +47,7 @@ export function downloadAllRequiredElectronVersions(): Promise { ? ["x64"] : platform === "win32" ? ["ia32", "x64"] - : require(`${path.join(__dirname, "../../..")}/packages/builder-util/out/util.js`).getArchCliNames() + : require(`${path.join(import.meta.dirname, "../../..")}/packages/builder-util/out/util.js`).getArchCliNames() for (const arch of archs) { if (gte(ELECTRON_VERSION, "19.0.0") && platform === "linux" && arch === "ia32") { // Chromium dropped support for ia32 linux binaries in 102.0.4999.0 diff --git a/test/src/helpers/fileAssert.ts b/test/src/helpers/fileAssert.ts index 4186aa7e33d..64e20793144 100644 --- a/test/src/helpers/fileAssert.ts +++ b/test/src/helpers/fileAssert.ts @@ -8,7 +8,7 @@ export function assertThat(expect: ExpectStatic, actual: any): Assertions { return new Assertions(expect, actual) } -const appVersion = require(path.join(__dirname, "../../../packages/app-builder-lib/package.json")).version +const appVersion = require(path.join(import.meta.dirname, "../../../packages/app-builder-lib/package.json")).version class Assertions { constructor( diff --git a/test/src/helpers/packTester.ts b/test/src/helpers/packTester.ts index b819e835b7b..9696885df54 100644 --- a/test/src/helpers/packTester.ts +++ b/test/src/helpers/packTester.ts @@ -9,7 +9,7 @@ import { CancellationToken, UpdateFileInfo } from "builder-util-runtime" import { Arch, ArtifactCreated, Configuration, DIR_TARGET, getArchSuffix, MacOsTargetName, Packager, PackagerOptions, Platform, Target } from "electron-builder" import { convertVersion } from "electron-winstaller" import { PublishPolicy } from "electron-publish" -import * as fsExtra from "fs-extra" +import fsExtra from "fs-extra" import * as fs from "fs/promises" import { load } from "js-yaml" import * as path from "path" @@ -147,7 +147,7 @@ export async function assertPack(expect: ExpectStatic, fixtureName: string, pack packagerOptions = deepAssign({}, packagerOptions, { config: { mac: { identity: null } } }) } - let projectDir = path.join(__dirname, "..", "..", "fixtures", fixtureName) + let projectDir = path.join(import.meta.dirname, "..", "..", "fixtures", fixtureName) // const isDoNotUseTempDir = platform === "darwin" const customTmpDir = process.env.TEST_APP_TMP_DIR const tmpDir = checkOptions.tmpDir || new TmpDir(`pack-tester: ${fixtureName}`) @@ -160,7 +160,7 @@ export async function assertPack(expect: ExpectStatic, fixtureName: string, pack const state = expect.getState() const lockfileFixtureName = path.basename(state.testPath!, path.extname(state.testPath!)) - const lockfilePathPrefix = path.join(__dirname, "..", "..", "fixtures", "lockfiles", lockfileFixtureName) + const lockfilePathPrefix = path.join(import.meta.dirname, "..", "..", "fixtures", "lockfiles", lockfileFixtureName) const lockfileFixtureNameCandidates = getLockfileFixtureNameCandidates(state.currentTestName || "") if (lockfileFixtureNameCandidates.length === 0) { lockfileFixtureNameCandidates.push("unknown-test") @@ -327,7 +327,7 @@ export function copyTestAsset(name: string, destination: string): Promise } export function getFixtureDir() { - return path.join(__dirname, "..", "..", "fixtures") + return path.join(import.meta.dirname, "..", "..", "fixtures") } /** diff --git a/test/src/helpers/updaterTestUtil.ts b/test/src/helpers/updaterTestUtil.ts index ab195aaaeec..8baf238c637 100644 --- a/test/src/helpers/updaterTestUtil.ts +++ b/test/src/helpers/updaterTestUtil.ts @@ -2,7 +2,7 @@ import { NodeHttpExecutor, serializeToYaml, TmpDir } from "builder-util" import { AllPublishOptions, DownloadOptions } from "builder-util-runtime" import { AppUpdater, MacUpdater, NsisUpdater } from "electron-updater" import { NoOpLogger, TestOnlyUpdaterOptions } from "electron-updater" -import * as fsExtra from "fs-extra" +import fsExtra from "fs-extra" import * as path from "path" import { assertThat } from "./fileAssert.js" import { TestAppAdapter } from "./TestAppAdapter.js" diff --git a/test/src/helpers/winHelper.ts b/test/src/helpers/winHelper.ts index c2fe2a86b0a..eb62d54d1ee 100644 --- a/test/src/helpers/winHelper.ts +++ b/test/src/helpers/winHelper.ts @@ -1,7 +1,7 @@ import { readAsarJson } from "app-builder-lib" import { walk } from "builder-util" import { Arch, Platform } from "electron-builder" -import * as fsExtra from "fs-extra" +import fsExtra from "fs-extra" import * as fs from "fs/promises" import { load } from "js-yaml" import * as path from "path" diff --git a/test/src/helpers/wine.ts b/test/src/helpers/wine.ts index f398fd2fa20..5296f4ee879 100644 --- a/test/src/helpers/wine.ts +++ b/test/src/helpers/wine.ts @@ -1,5 +1,5 @@ import { exec, safeStringifyJson, unlinkIfExists } from "builder-util" -import * as fsExtra from "fs-extra" +import fsExtra from "fs-extra" import * as fs from "fs/promises" import { homedir } from "os" import * as path from "path" diff --git a/test/src/ignoreTest.ts b/test/src/ignoreTest.ts index 6cc1ec1227d..6240671eca2 100644 --- a/test/src/ignoreTest.ts +++ b/test/src/ignoreTest.ts @@ -1,5 +1,5 @@ import { DIR_TARGET, Platform, archFromString } from "electron-builder" -import * as fsExtra from "fs-extra" +import fsExtra from "fs-extra" import * as path from "path" import { assertThat } from "./helpers/fileAssert.js" import { app, checkDirContents, linuxDirTarget, modifyPackageJson } from "./helpers/packTester.js" diff --git a/test/src/linux/linuxPackagerTest.ts b/test/src/linux/linuxPackagerTest.ts index eadf8e5fa2e..ae9822eca59 100644 --- a/test/src/linux/linuxPackagerTest.ts +++ b/test/src/linux/linuxPackagerTest.ts @@ -1,6 +1,6 @@ import { GenericServerOptions } from "builder-util-runtime" import { Arch, build, Platform } from "electron-builder" -import * as fsExtra from "fs-extra" +import fsExtra from "fs-extra" import * as fs from "fs/promises" import * as path from "path" import { assertThat } from "../helpers/fileAssert" diff --git a/test/src/mac/macArchiveTest.ts b/test/src/mac/macArchiveTest.ts index 87bda10824e..766d821ac33 100644 --- a/test/src/mac/macArchiveTest.ts +++ b/test/src/mac/macArchiveTest.ts @@ -1,7 +1,7 @@ import { Arch, exec } from "builder-util" import { parseXml } from "builder-util-runtime" import { Platform } from "electron-builder" -import * as fsExtra from "fs-extra" +import fsExtra from "fs-extra" import * as fs from "fs/promises" import * as path from "path" import pathSorter from "path-sort" diff --git a/test/src/mac/macIconTest.ts b/test/src/mac/macIconTest.ts index cf810df08c1..dac6cfa0661 100644 --- a/test/src/mac/macIconTest.ts +++ b/test/src/mac/macIconTest.ts @@ -19,7 +19,7 @@ async function assertIcon(expect: ExpectStatic, platformPackager: CheckingMacPac const targets = Platform.MAC.createTarget(DIR_TARGET, Arch.x64) -const iconComposerFixture = path.join(__dirname, "..", "..", "fixtures", "macos-icon-composer-assets", "electron.icon") +const iconComposerFixture = path.join(import.meta.dirname, "..", "..", "fixtures", "macos-icon-composer-assets", "electron.icon") test.ifMac("icon composer generate asset catalog", ({ expect }) => { return app( diff --git a/test/src/packageManagerTest.ts b/test/src/packageManagerTest.ts index 0cef00a474f..3ac68209bb8 100644 --- a/test/src/packageManagerTest.ts +++ b/test/src/packageManagerTest.ts @@ -1,6 +1,6 @@ import { Platform } from "app-builder-lib" import { PM } from "app-builder-lib/src/node-module-collector" -import * as fsExtra from "fs-extra" +import fsExtra from "fs-extra" import * as path from "path" import { assertThat } from "./helpers/fileAssert" import { app, assertPack, getFixtureDir, getPackageManagerWithVersion, linuxDirTarget, modifyPackageJson, verifyAsarFileTree } from "./helpers/packTester" diff --git a/test/src/publisher/gitlab/GitlabTestFixtures.ts b/test/src/publisher/gitlab/GitlabTestFixtures.ts index e34bcebff6d..17e202881a6 100644 --- a/test/src/publisher/gitlab/GitlabTestFixtures.ts +++ b/test/src/publisher/gitlab/GitlabTestFixtures.ts @@ -3,8 +3,8 @@ import { GitlabOptions } from "builder-util-runtime" export class GitlabTestFixtures { // Test file paths - static readonly ICON_PATH = path.join(__dirname, "..", "..", "..", "fixtures", "test-app", "build", "icon.icns") - static readonly ICO_PATH = path.join(__dirname, "..", "..", "..", "fixtures", "test-app", "build", "icon.ico") + static readonly ICON_PATH = path.join(import.meta.dirname, "..", "..", "..", "fixtures", "test-app", "build", "icon.icns") + static readonly ICO_PATH = path.join(import.meta.dirname, "..", "..", "..", "fixtures", "test-app", "build", "icon.ico") // Test versions static readonly VERSIONS = { diff --git a/test/src/updater/blackboxUpdateTest.ts b/test/src/updater/blackboxUpdateTest.ts index da6bc573ac7..89810050401 100644 --- a/test/src/updater/blackboxUpdateTest.ts +++ b/test/src/updater/blackboxUpdateTest.ts @@ -5,7 +5,7 @@ import { archFromString, doSpawn, getArchSuffix, isEmptyOrSpaces, log, spawn, Tm import { execFileSync, execSync } from "child_process" import { Arch, Configuration, Platform } from "electron-builder" import { DebUpdater, PacmanUpdater, RpmUpdater } from "electron-updater" -import * as fsExtra from "fs-extra" +import fsExtra from "fs-extra" import { homedir } from "os" import path from "path" import { ExpectStatic, TestContext } from "vitest" @@ -236,7 +236,7 @@ async function doBuild( electron: ELECTRON_VERSION, "node-addon-api": "^8", } - const electronUpdaterPath = (pkg: string) => path.resolve(__dirname, "../../../packages", pkg) + const electronUpdaterPath = (pkg: string) => path.resolve(import.meta.dirname, "../../../packages", pkg) data.dependencies = { ...data.dependencies, sqlite3: "5.1.7", // for testing native dependency handling in auto-update diff --git a/test/src/updater/differentialUpdateTest.ts b/test/src/updater/differentialUpdateTest.ts index 651c5a689d2..97ca107da64 100644 --- a/test/src/updater/differentialUpdateTest.ts +++ b/test/src/updater/differentialUpdateTest.ts @@ -3,7 +3,7 @@ import { archFromString, doSpawn, getArchSuffix } from "builder-util" import { GenericServerOptions, Nullish, S3Options } from "builder-util-runtime" import { AppImageUpdater, BaseUpdater, MacUpdater, NsisUpdater } from "electron-updater" import { EventEmitter } from "events" -import * as fsExtra from "fs-extra" +import fsExtra from "fs-extra" import * as path from "path" import { TmpDir } from "temp-file" import { TestAppAdapter } from "../helpers/TestAppAdapter.js" diff --git a/test/src/updater/nsisUpdaterTest.ts b/test/src/updater/nsisUpdaterTest.ts index f96968fecd7..82c2196f394 100644 --- a/test/src/updater/nsisUpdaterTest.ts +++ b/test/src/updater/nsisUpdaterTest.ts @@ -1,7 +1,7 @@ import { BitbucketOptions, GenericServerOptions, GithubOptions, GitlabOptions, KeygenOptions, S3Options, SpacesOptions } from "builder-util-runtime" import { BitbucketPublisher } from "electron-publish" import { UpdateCheckResult } from "electron-updater" -import * as fsExtra from "fs-extra" +import fsExtra from "fs-extra" import { tmpdir } from "os" import * as path from "path" import { assertThat } from "../helpers/fileAssert" diff --git a/test/src/windows/appxTest.ts b/test/src/windows/appxTest.ts index a8daa471f89..364ba696539 100644 --- a/test/src/windows/appxTest.ts +++ b/test/src/windows/appxTest.ts @@ -1,5 +1,5 @@ import { Arch, Platform } from "electron-builder" -import * as fsExtra from "fs-extra" +import fsExtra from "fs-extra" import { mkdir } from "fs/promises" import * as path from "path" import { app, appThrows, copyTestAsset } from "../helpers/packTester" diff --git a/test/src/windows/oneClickInstallerTest.ts b/test/src/windows/oneClickInstallerTest.ts index 2ed1667757f..2c594d14218 100644 --- a/test/src/windows/oneClickInstallerTest.ts +++ b/test/src/windows/oneClickInstallerTest.ts @@ -1,5 +1,5 @@ import { Arch, Platform } from "electron-builder" -import * as fsExtra from "fs-extra" +import fsExtra from "fs-extra" import * as path from "path" import { assertThat } from "../helpers/fileAssert" import { app, assertPack, copyTestAsset, EXTENDED_TIMEOUT, modifyPackageJson } from "../helpers/packTester" diff --git a/test/src/windows/winCodeSignTest.ts b/test/src/windows/winCodeSignTest.ts index c31dd7e7ba7..1803f167e43 100644 --- a/test/src/windows/winCodeSignTest.ts +++ b/test/src/windows/winCodeSignTest.ts @@ -1,6 +1,6 @@ import { parseDn } from "builder-util-runtime" import { DIR_TARGET, Platform } from "electron-builder" -import * as fsExtra from "fs-extra" +import fsExtra from "fs-extra" import { load } from "js-yaml" import * as path from "path" import { CheckingWinPackager } from "../helpers/CheckingPackager" @@ -86,7 +86,7 @@ for (const winCodeSign of winCodeSignVersions) { })) test("certificateFile/password - sign as Promise", ({ expect }) => testCustomSign(expect, () => Promise.resolve())) test("certificateFile/password - sign as function", async ({ expect }) => testCustomSign(expect, (await import("../helpers/customWindowsSign.js")).default)) - test("certificateFile/password - sign as path", ({ expect }) => testCustomSign(expect, path.join(__dirname, "../helpers/customWindowsSign.mjs"))) + test("certificateFile/password - sign as path", ({ expect }) => testCustomSign(expect, path.join(import.meta.dirname, "../helpers/customWindowsSign.mjs"))) test("custom sign if no code sign info", ({ expect }) => { let called = false diff --git a/test/vitest-scripts/run-vitest.ts b/test/vitest-scripts/run-vitest.ts index 467cb738811..606fa3bd963 100644 --- a/test/vitest-scripts/run-vitest.ts +++ b/test/vitest-scripts/run-vitest.ts @@ -50,11 +50,11 @@ async function main() { // Allow test metadata includeTaskLocation: true, - setupFiles: [__dirname + "/vitest-setup.ts", __dirname + "/vitest-heavy-mutex.ts"], + setupFiles: [import.meta.dirname + "/vitest-setup.ts", import.meta.dirname + "/vitest-heavy-mutex.ts"], include: [`test/src/**/${includeRegex}.ts`], printConsoleTrace: true, - reporters: ["default", __dirname + "/vitest-smart-reporter.ts"], + reporters: ["default", import.meta.dirname + "/vitest-smart-reporter.ts"], maxWorkers: "50%", minWorkers: 1, diff --git a/test/vitest-scripts/smart-config.ts b/test/vitest-scripts/smart-config.ts index c5ba6cbabf0..a19ec4ce914 100644 --- a/test/vitest-scripts/smart-config.ts +++ b/test/vitest-scripts/smart-config.ts @@ -6,7 +6,7 @@ export type SupportedPlatforms = Exclude export const TEST_ROOT = "test/src" export const TEST_FILES_PATTERN = process.env.TEST_FILES?.trim() || "*Test,*test" -export const CACHE_FILE = process.env.VITEST_SMART_CACHE_FILE || path.resolve(__dirname, "_vitest-smart-cache.json") +export const CACHE_FILE = process.env.VITEST_SMART_CACHE_FILE || path.resolve(import.meta.dirname, "_vitest-smart-cache.json") export const DEFAULT_FILE_MS = 2 * 60 * 1000 export const DEFAULT_TARGET_MS = 30 * 60 * 1000 From d23239e9c6e5f7341eac40a0f09fe929b6644b91 Mon Sep 17 00:00:00 2001 From: Mike Maietta Date: Wed, 8 Apr 2026 12:35:07 -0700 Subject: [PATCH 30/65] tmp save? --- .../helpers/dynamic-import.cjs | 23 +++++++++++++++++++ .../app-builder-lib/helpers/dynamic-import.js | 23 ------------------- .../{remote-rebuild.js => remote-rebuild.cjs} | 0 scripts/generate-schema.ts | 4 ++-- test/vitest-scripts/run-vitest.ts | 4 ++-- test/vitest-scripts/smart-config.ts | 2 +- tsconfig-base.json | 2 -- 7 files changed, 28 insertions(+), 30 deletions(-) create mode 100644 packages/app-builder-lib/helpers/dynamic-import.cjs delete mode 100644 packages/app-builder-lib/helpers/dynamic-import.js rename packages/app-builder-lib/helpers/{remote-rebuild.js => remote-rebuild.cjs} (100%) diff --git a/packages/app-builder-lib/helpers/dynamic-import.cjs b/packages/app-builder-lib/helpers/dynamic-import.cjs new file mode 100644 index 00000000000..1089411ced3 --- /dev/null +++ b/packages/app-builder-lib/helpers/dynamic-import.cjs @@ -0,0 +1,23 @@ +const url = require("url") +const fs = require("fs") + +exports.dynamicImport = async function dynamicImport(path) { + try { + return await import(fs.existsSync(path) ? url.pathToFileURL(path).href : 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/app-builder-lib/helpers/dynamic-import.js b/packages/app-builder-lib/helpers/dynamic-import.js deleted file mode 100644 index a3a42b61495..00000000000 --- a/packages/app-builder-lib/helpers/dynamic-import.js +++ /dev/null @@ -1,23 +0,0 @@ -import { pathToFileURL } from "url" -import { existsSync } from "fs" - -export async function dynamicImport(path) { - try { - return await import(existsSync(path) ? pathToFileURL(path).href : path) - } catch (error) { - return Promise.reject(error) - } -} - -export async function dynamicImportMaybe(path) { - try { - return require(path) - } catch (e1) { - try { - return await dynamicImport(path) - } catch (e2) { - e1.message = "\n1. " + e1.message + "\n2. " + e2.message - throw e1 - } - } -} diff --git a/packages/app-builder-lib/helpers/remote-rebuild.js b/packages/app-builder-lib/helpers/remote-rebuild.cjs similarity index 100% rename from packages/app-builder-lib/helpers/remote-rebuild.js rename to packages/app-builder-lib/helpers/remote-rebuild.cjs diff --git a/scripts/generate-schema.ts b/scripts/generate-schema.ts index fc4c9fd95e5..9fa97720530 100644 --- a/scripts/generate-schema.ts +++ b/scripts/generate-schema.ts @@ -3,7 +3,7 @@ import * as path from "path" import { TypeScript } from "typedoc" import * as TJS from "typescript-json-schema" -const rootDir = path.resolve(import.meta.dirname, "../packages") +const rootDir = path.resolve(__dirname, "../packages") const compilerOptions: TJS.CompilerOptions = { target: TypeScript.ScriptTarget.ES2022 as any, @@ -88,5 +88,5 @@ schema!.properties!["$schema"] = { type: ["null", "string"], } -const schemaFile = path.join(import.meta.dirname, "../packages/app-builder-lib/scheme.json") +const schemaFile = path.join(__dirname, "../packages/app-builder-lib/scheme.json") fs.writeFileSync(schemaFile, JSON.stringify(schema, null, 2)) diff --git a/test/vitest-scripts/run-vitest.ts b/test/vitest-scripts/run-vitest.ts index 606fa3bd963..467cb738811 100644 --- a/test/vitest-scripts/run-vitest.ts +++ b/test/vitest-scripts/run-vitest.ts @@ -50,11 +50,11 @@ async function main() { // Allow test metadata includeTaskLocation: true, - setupFiles: [import.meta.dirname + "/vitest-setup.ts", import.meta.dirname + "/vitest-heavy-mutex.ts"], + setupFiles: [__dirname + "/vitest-setup.ts", __dirname + "/vitest-heavy-mutex.ts"], include: [`test/src/**/${includeRegex}.ts`], printConsoleTrace: true, - reporters: ["default", import.meta.dirname + "/vitest-smart-reporter.ts"], + reporters: ["default", __dirname + "/vitest-smart-reporter.ts"], maxWorkers: "50%", minWorkers: 1, diff --git a/test/vitest-scripts/smart-config.ts b/test/vitest-scripts/smart-config.ts index a19ec4ce914..c5ba6cbabf0 100644 --- a/test/vitest-scripts/smart-config.ts +++ b/test/vitest-scripts/smart-config.ts @@ -6,7 +6,7 @@ export type SupportedPlatforms = Exclude export const TEST_ROOT = "test/src" export const TEST_FILES_PATTERN = process.env.TEST_FILES?.trim() || "*Test,*test" -export const CACHE_FILE = process.env.VITEST_SMART_CACHE_FILE || path.resolve(import.meta.dirname, "_vitest-smart-cache.json") +export const CACHE_FILE = process.env.VITEST_SMART_CACHE_FILE || path.resolve(__dirname, "_vitest-smart-cache.json") export const DEFAULT_FILE_MS = 2 * 60 * 1000 export const DEFAULT_TARGET_MS = 30 * 60 * 1000 diff --git a/tsconfig-base.json b/tsconfig-base.json index 16243ca9c3b..762b5e9ffd9 100644 --- a/tsconfig-base.json +++ b/tsconfig-base.json @@ -1,8 +1,6 @@ { "extends": "@tsconfig/node22/tsconfig.json", "compilerOptions": { - "lib": ["es2024", "WebWorker", "esnext"], - "forceConsistentCasingInFileNames": true, "noUnusedLocals": true, From 190222e89cdc7d84b86cb20d87896208a8e8560f Mon Sep 17 00:00:00 2001 From: Mike Maietta Date: Fri, 10 Apr 2026 12:09:48 -0700 Subject: [PATCH 31/65] tmp save, more extension changes --- packages/electron-builder/package.json | 4 +-- test/package.json | 31 +------------------ test/src/HoistedNodeModuleTest.ts | 8 ++--- test/src/helpers/CheckingPackager.ts | 2 +- test/src/helpers/packTester.ts | 6 ++-- test/src/linux/debTest.ts | 2 +- test/src/linux/flatpakTest.ts | 2 +- test/src/linux/fpmTest.ts | 2 +- test/src/linux/linuxArchiveTest.ts | 2 +- test/src/linux/linuxPackagerTest.ts | 6 ++-- test/src/linux/snapHeavyTest.ts | 2 +- test/src/linux/snapTest.ts | 2 +- test/src/mac/dmgTest.ts | 4 +-- test/src/mac/macArchiveTest.ts | 4 +-- test/src/mac/macCodeSignTest.ts | 4 +-- test/src/mac/macIconTest.ts | 4 +-- test/src/mac/macPackagerTest.ts | 6 ++-- test/src/mac/masTest.ts | 4 +-- test/src/packageManagerTest.ts | 8 ++--- test/src/updater/linuxUpdaterTest.ts | 4 +-- test/src/updater/macUpdaterTest.ts | 4 +-- test/src/updater/nsisUpdaterTest.ts | 6 ++-- test/src/windows/appxTest.ts | 2 +- test/src/windows/assistedInstallerTest.ts | 4 +-- test/src/windows/msiTest.ts | 2 +- test/src/windows/msiWrappedTest.ts | 2 +- test/src/windows/oneClickInstallerTest.ts | 6 ++-- test/src/windows/portableTest.ts | 2 +- test/src/windows/squirrelWindowsTest.ts | 4 +-- test/src/windows/webInstallerTest.ts | 2 +- test/src/windows/winCodeSignTest.ts | 4 +-- test/vitest-scripts/cache.ts | 2 +- test/vitest-scripts/file-discovery.ts | 2 +- test/vitest-scripts/run-vitest.ts | 8 ++--- test/vitest-scripts/shard-builder.ts | 4 +-- test/vitest-scripts/smart-shard-count.ts | 6 ++-- test/vitest-scripts/vitest-setup.ts | 2 +- test/vitest-scripts/vitest-smart-reporter.ts | 4 +-- test/vitest-scripts/vitest-smart-sequencer.ts | 4 +-- 39 files changed, 73 insertions(+), 104 deletions(-) diff --git a/packages/electron-builder/package.json b/packages/electron-builder/package.json index d1051126c8b..b040296c0e3 100644 --- a/packages/electron-builder/package.json +++ b/packages/electron-builder/package.json @@ -4,9 +4,7 @@ "version": "26.8.2", "type": "module", "exports": { - ".": "./out/index.js", - "./cli": "./cli.js", - "./install-app-deps": "./install-app-deps.js" + ".": "./out/index.js" }, "files": [ "out" diff --git a/test/package.json b/test/package.json index db027513e34..7b25e7b26cf 100644 --- a/test/package.json +++ b/test/package.json @@ -1,6 +1,7 @@ { "name": "@electron-builder/test", "version": "0.0.0", + "type": "module", "private": true, "dependencies": { "@electron/osx-sign": "^1.0.4", @@ -45,35 +46,5 @@ "vitest": "^3.0.4", "vitest-mock-commonjs": "^1.0.2", "which": "^5.0.0" - }, - "jest": { - "snapshotResolver": "/snapshotResolver.js", - "testEnvironment": "node", - "roots": [ - "src" - ], - "transformIgnorePatterns": [ - "./node_modules", - "../node_modules", - "../packages" - ], - "transform": { - "^.+\\.ts$": [ - "esbuild-jest", - { - "sourcemap": "inline", - "loaders": { - ".ts": "ts" - } - } - ] - }, - "testPathIgnorePatterns": [ - "[\\/]{1}helpers[\\/]{1}" - ], - "testRegex": "\\.[jt]s$", - "setupFilesAfterEnv": [ - "/jestSetup.js" - ] } } diff --git a/test/src/HoistedNodeModuleTest.ts b/test/src/HoistedNodeModuleTest.ts index 1a87672e491..bccb9de9fcc 100644 --- a/test/src/HoistedNodeModuleTest.ts +++ b/test/src/HoistedNodeModuleTest.ts @@ -1,9 +1,9 @@ -import { PM } from "app-builder-lib/out/node-module-collector" -import { spawn } from "builder-util/out/util" +import { PM } from "app-builder-lib" +import { spawn } from "builder-util" import { Arch, DIR_TARGET, Platform } from "electron-builder" import * as path from "path" -import { appTwoThrows, assertPack, linuxDirTarget, modifyPackageJson, verifyAsarFileTree } from "./helpers/packTester" -import { ELECTRON_VERSION } from "./helpers/testConfig" +import { appTwoThrows, assertPack, linuxDirTarget, modifyPackageJson, verifyAsarFileTree } from "./helpers/packTester.js" +import { ELECTRON_VERSION } from "./helpers/testConfig.js" import fsExtra from "fs-extra" describe.ifNotWindows("node_module collectors", () => { diff --git a/test/src/helpers/CheckingPackager.ts b/test/src/helpers/CheckingPackager.ts index 9478a9318e1..10df1c61034 100644 --- a/test/src/helpers/CheckingPackager.ts +++ b/test/src/helpers/CheckingPackager.ts @@ -1,4 +1,4 @@ -import { SignOptions as MacSignOptions } from "@electron/osx-sign/dist/cjs/types" +import { SignOptions as MacSignOptions } from "@electron/osx-sign/dist/esm/types.js" import { Identity } from "app-builder-lib" import { DoPackOptions } from "app-builder-lib" import { WinPackager, getArchSuffix, MacPackager } from "app-builder-lib" diff --git a/test/src/helpers/packTester.ts b/test/src/helpers/packTester.ts index 9696885df54..d5c8111b43a 100644 --- a/test/src/helpers/packTester.ts +++ b/test/src/helpers/packTester.ts @@ -18,14 +18,14 @@ import { NtExecutable, NtExecutableResource } from "resedit" import { TmpDir } from "temp-file" import { getCollectorByPackageManager, PM } from "app-builder-lib" import { promisify } from "util" -import { MAC_CSC_LINK, WIN_CSC_LINK } from "./codeSignData" -import { assertThat } from "./fileAssert" +import { MAC_CSC_LINK, WIN_CSC_LINK } from "./codeSignData.js" +import { assertThat } from "./fileAssert.js" import AdmZip from "adm-zip" import sanitizeFileName from "sanitize-filename" import type { ExpectStatic } from "vitest" import { computeDefaultAppDirectory } from "app-builder-lib" import { installDependencies } from "app-builder-lib" -import { ELECTRON_VERSION } from "./testConfig" +import { ELECTRON_VERSION } from "./testConfig.js" import { createLazyProductionDeps } from "app-builder-lib" import { execSync } from "child_process" import { detectPackageManager } from "app-builder-lib" diff --git a/test/src/linux/debTest.ts b/test/src/linux/debTest.ts index bd3ade0aadf..955e68e0199 100644 --- a/test/src/linux/debTest.ts +++ b/test/src/linux/debTest.ts @@ -1,6 +1,6 @@ import { Arch, Platform } from "electron-builder" import * as fs from "fs/promises" -import { app, execShell, getTarExecutable } from "../helpers/packTester" +import { app, execShell, getTarExecutable } from "../helpers/packTester.js" const defaultDebTarget = Platform.LINUX.createTarget("deb", Arch.x64) diff --git a/test/src/linux/flatpakTest.ts b/test/src/linux/flatpakTest.ts index 7eb8719bf72..8af24b97bb2 100644 --- a/test/src/linux/flatpakTest.ts +++ b/test/src/linux/flatpakTest.ts @@ -1,5 +1,5 @@ import { Platform } from "electron-builder" -import { app } from "../helpers/packTester" +import { app } from "../helpers/packTester.js" import * as which from "which" describe.heavy.ifEnv(which.sync("flatpak", { nothrow: true }) != null)("Linux Flatpak Test", () => { diff --git a/test/src/linux/fpmTest.ts b/test/src/linux/fpmTest.ts index 5ed8b74353b..182c1d9590b 100644 --- a/test/src/linux/fpmTest.ts +++ b/test/src/linux/fpmTest.ts @@ -1,5 +1,5 @@ import { Arch, Platform } from "electron-builder" -import { app, EXTENDED_TIMEOUT } from "../helpers/packTester" +import { app, EXTENDED_TIMEOUT } from "../helpers/packTester.js" // "apk" is very slow, don't test for now describe.heavy.ifNotWindows("fpm", () => { diff --git a/test/src/linux/linuxArchiveTest.ts b/test/src/linux/linuxArchiveTest.ts index d46f84dd55c..ac4bb5808f2 100644 --- a/test/src/linux/linuxArchiveTest.ts +++ b/test/src/linux/linuxArchiveTest.ts @@ -1,5 +1,5 @@ import { Arch, Platform } from "electron-builder" -import { app, EXTENDED_TIMEOUT } from "../helpers/packTester" +import { app, EXTENDED_TIMEOUT } from "../helpers/packTester.js" test.ifNotWindows("tar", { timeout: EXTENDED_TIMEOUT }, ({ expect }) => app(expect, { diff --git a/test/src/linux/linuxPackagerTest.ts b/test/src/linux/linuxPackagerTest.ts index ae9822eca59..fe4fae5b74f 100644 --- a/test/src/linux/linuxPackagerTest.ts +++ b/test/src/linux/linuxPackagerTest.ts @@ -3,9 +3,9 @@ import { Arch, build, Platform } from "electron-builder" import fsExtra from "fs-extra" import * as fs from "fs/promises" import * as path from "path" -import { assertThat } from "../helpers/fileAssert" -import { app, appThrows, copyTestAsset, modifyPackageJson } from "../helpers/packTester" -import { ELECTRON_VERSION } from "../helpers/testConfig" +import { assertThat } from "../helpers/fileAssert.js" +import { app, appThrows, copyTestAsset, modifyPackageJson } from "../helpers/packTester.js" +import { ELECTRON_VERSION } from "../helpers/testConfig.js" import { ToolsetConfig } from "app-builder-lib/src" const appImageTarget = Platform.LINUX.createTarget("appimage", Arch.x64) diff --git a/test/src/linux/snapHeavyTest.ts b/test/src/linux/snapHeavyTest.ts index 81030e2e7ca..52b9869df21 100644 --- a/test/src/linux/snapHeavyTest.ts +++ b/test/src/linux/snapHeavyTest.ts @@ -1,5 +1,5 @@ import { Arch, Platform } from "app-builder-lib" -import { app, EXTENDED_TIMEOUT, snapTarget } from "../helpers/packTester" +import { app, EXTENDED_TIMEOUT, snapTarget } from "../helpers/packTester.js" import * as which from "which" // very slow diff --git a/test/src/linux/snapTest.ts b/test/src/linux/snapTest.ts index 4d1014b7be6..eb7fc54eee3 100644 --- a/test/src/linux/snapTest.ts +++ b/test/src/linux/snapTest.ts @@ -1,5 +1,5 @@ import { Arch, Platform } from "electron-builder" -import { app, assertPack, snapTarget } from "../helpers/packTester" +import { app, assertPack, snapTarget } from "../helpers/packTester.js" test.ifNotWindows("snap", ({ expect }) => app(expect, { diff --git a/test/src/mac/dmgTest.ts b/test/src/mac/dmgTest.ts index f260890bbf3..c157c59d2b5 100644 --- a/test/src/mac/dmgTest.ts +++ b/test/src/mac/dmgTest.ts @@ -4,8 +4,8 @@ import { Arch, copyFile, exec } from "builder-util" import { Platform } from "electron-builder" import * as fs from "fs/promises" import * as path from "path" -import { assertThat } from "../helpers/fileAssert" -import { app, assertPack, copyTestAsset } from "../helpers/packTester" +import { assertThat } from "../helpers/fileAssert.js" +import { app, assertPack, copyTestAsset } from "../helpers/packTester.js" import { beforeAll } from "vitest" import type { attachAndExecute as aAndE, getDmgTemplatePath as dmgTemplate } from "dmg-builder/out/dmgUtil.js" diff --git a/test/src/mac/macArchiveTest.ts b/test/src/mac/macArchiveTest.ts index 766d821ac33..814f608482b 100644 --- a/test/src/mac/macArchiveTest.ts +++ b/test/src/mac/macArchiveTest.ts @@ -5,8 +5,8 @@ import fsExtra from "fs-extra" import * as fs from "fs/promises" import * as path from "path" import pathSorter from "path-sort" -import { assertThat } from "../helpers/fileAssert" -import { app, copyTestAsset, createMacTargetTest, getFixtureDir, parseFileList } from "../helpers/packTester" +import { assertThat } from "../helpers/fileAssert.js" +import { app, copyTestAsset, createMacTargetTest, getFixtureDir, parseFileList } from "../helpers/packTester.js" test.ifMac("invalid target", ({ expect }) => expect(createMacTargetTest(expect, ["ttt" as any])).rejects.toThrow()) diff --git a/test/src/mac/macCodeSignTest.ts b/test/src/mac/macCodeSignTest.ts index 324b88d6c78..da0d1474bcc 100644 --- a/test/src/mac/macCodeSignTest.ts +++ b/test/src/mac/macCodeSignTest.ts @@ -1,6 +1,6 @@ -import { createKeychain, removeKeychain } from "app-builder-lib/out/codeSign/macCodeSign" +import { createKeychain, removeKeychain } from "app-builder-lib" import { removePassword, TmpDir } from "builder-util" -import { MAC_CSC_LINK } from "../helpers/codeSignData" +import { MAC_CSC_LINK } from "../helpers/codeSignData.js" import { afterEach } from "vitest" describe.ifMac.runIf(MAC_CSC_LINK && process.env.CSC_KEY_PASSWORD)("macos keychain", { sequential: true }, () => { diff --git a/test/src/mac/macIconTest.ts b/test/src/mac/macIconTest.ts index dac6cfa0661..89fbe178147 100644 --- a/test/src/mac/macIconTest.ts +++ b/test/src/mac/macIconTest.ts @@ -2,8 +2,8 @@ import { parsePlistFile, PlistObject } from "app-builder-lib" import { Arch, DIR_TARGET, Platform } from "electron-builder" import * as fs from "fs/promises" import * as path from "path" -import { CheckingMacPackager } from "../helpers/CheckingPackager" -import { app } from "../helpers/packTester" +import { CheckingMacPackager } from "../helpers/CheckingPackager.js" +import { app } from "../helpers/packTester.js" import { ExpectStatic } from "vitest" async function assertIcon(expect: ExpectStatic, platformPackager: CheckingMacPackager) { diff --git a/test/src/mac/macPackagerTest.ts b/test/src/mac/macPackagerTest.ts index 2bf42b870ff..745cd636d7b 100644 --- a/test/src/mac/macPackagerTest.ts +++ b/test/src/mac/macPackagerTest.ts @@ -2,9 +2,9 @@ import { copyOrLinkFile } from "builder-util" import { Arch, createTargets, DIR_TARGET, Platform } from "electron-builder" import * as fs from "fs/promises" import * as path from "path" -import { assertThat } from "../helpers/fileAssert" -import { app, appThrows, assertPack, checkDirContents, platform } from "../helpers/packTester" -import { verifySmartUnpack } from "../helpers/verifySmartUnpack" +import { assertThat } from "../helpers/fileAssert.js" +import { app, appThrows, assertPack, checkDirContents, platform } from "../helpers/packTester.js" +import { verifySmartUnpack } from "../helpers/verifySmartUnpack.js" describe("macPackager", { sequential: true }, () => { test.ifMac("two-package", ({ expect }) => diff --git a/test/src/mac/masTest.ts b/test/src/mac/masTest.ts index 7534cef4b07..b0d57625b5b 100644 --- a/test/src/mac/masTest.ts +++ b/test/src/mac/masTest.ts @@ -1,7 +1,7 @@ import { Arch, Platform } from "electron-builder" import * as path from "path" -import { CheckingMacPackager } from "../helpers/CheckingPackager" -import { assertPack, createMacTargetTest, signed } from "../helpers/packTester" +import { CheckingMacPackager } from "../helpers/CheckingPackager.js" +import { assertPack, createMacTargetTest, signed } from "../helpers/packTester.js" describe.ifEnv(process.platform === "darwin" && process.env.CSC_KEY_PASSWORD != null)("mas", () => { test("mas", ({ expect }) => createMacTargetTest(expect, ["mas"])) diff --git a/test/src/packageManagerTest.ts b/test/src/packageManagerTest.ts index 3ac68209bb8..dd2afa7b274 100644 --- a/test/src/packageManagerTest.ts +++ b/test/src/packageManagerTest.ts @@ -1,10 +1,10 @@ import { Platform } from "app-builder-lib" -import { PM } from "app-builder-lib/src/node-module-collector" +import { PM } from "app-builder-lib" import fsExtra from "fs-extra" import * as path from "path" -import { assertThat } from "./helpers/fileAssert" -import { app, assertPack, getFixtureDir, getPackageManagerWithVersion, linuxDirTarget, modifyPackageJson, verifyAsarFileTree } from "./helpers/packTester" -import { ELECTRON_VERSION } from "./helpers/testConfig" +import { assertThat } from "./helpers/fileAssert.js" +import { app, assertPack, getFixtureDir, getPackageManagerWithVersion, linuxDirTarget, modifyPackageJson, verifyAsarFileTree } from "./helpers/packTester.js" +import { ELECTRON_VERSION } from "./helpers/testConfig.js" import { isEmptyOrSpaces, spawn } from "builder-util" import * as which from "which" diff --git a/test/src/updater/linuxUpdaterTest.ts b/test/src/updater/linuxUpdaterTest.ts index bc3f619dbba..bcc2a833d4c 100644 --- a/test/src/updater/linuxUpdaterTest.ts +++ b/test/src/updater/linuxUpdaterTest.ts @@ -1,7 +1,7 @@ import { GithubOptions } from "builder-util-runtime" import { AppUpdater, DebUpdater, PacmanUpdater, RpmUpdater } from "electron-updater" -import { assertThat } from "../helpers/fileAssert" -import { createTestAppAdapter, tuneTestUpdater, validateDownload, writeUpdateConfig } from "../helpers/updaterTestUtil" +import { assertThat } from "../helpers/fileAssert.js" +import { createTestAppAdapter, tuneTestUpdater, validateDownload, writeUpdateConfig } from "../helpers/updaterTestUtil.js" import { ExpectStatic } from "vitest" import { execSync } from "child_process" diff --git a/test/src/updater/macUpdaterTest.ts b/test/src/updater/macUpdaterTest.ts index a685b8ed4a0..f51c0fb1ae0 100644 --- a/test/src/updater/macUpdaterTest.ts +++ b/test/src/updater/macUpdaterTest.ts @@ -1,8 +1,8 @@ import { configureRequestOptionsFromUrl, GithubOptions } from "builder-util-runtime" import { MacUpdater } from "electron-updater" import { EventEmitter } from "events" -import { assertThat } from "../helpers/fileAssert" -import { createTestAppAdapter, httpExecutor, trackEvents, tuneTestUpdater, writeUpdateConfig } from "../helpers/updaterTestUtil" +import { assertThat } from "../helpers/fileAssert.js" +import { createTestAppAdapter, httpExecutor, trackEvents, tuneTestUpdater, writeUpdateConfig } from "../helpers/updaterTestUtil.js" import { mockForNodeRequire } from "vitest-mock-commonjs" class TestNativeUpdater extends EventEmitter { diff --git a/test/src/updater/nsisUpdaterTest.ts b/test/src/updater/nsisUpdaterTest.ts index 82c2196f394..307826d147d 100644 --- a/test/src/updater/nsisUpdaterTest.ts +++ b/test/src/updater/nsisUpdaterTest.ts @@ -4,9 +4,9 @@ import { UpdateCheckResult } from "electron-updater" import fsExtra from "fs-extra" import { tmpdir } from "os" import * as path from "path" -import { assertThat } from "../helpers/fileAssert" -import { removeUnstableProperties } from "../helpers/packTester" -import { createNsisUpdater, trackEvents, validateDownload, writeUpdateConfig } from "../helpers/updaterTestUtil" +import { assertThat } from "../helpers/fileAssert.js" +import { removeUnstableProperties } from "../helpers/packTester.js" +import { createNsisUpdater, trackEvents, validateDownload, writeUpdateConfig } from "../helpers/updaterTestUtil.js" import { ExpectStatic } from "vitest" import { GitLabProvider } from "electron-updater" import { GitHubProvider } from "electron-updater" diff --git a/test/src/windows/appxTest.ts b/test/src/windows/appxTest.ts index 364ba696539..b4acba43b6b 100644 --- a/test/src/windows/appxTest.ts +++ b/test/src/windows/appxTest.ts @@ -2,7 +2,7 @@ import { Arch, Platform } from "electron-builder" import fsExtra from "fs-extra" import { mkdir } from "fs/promises" import * as path from "path" -import { app, appThrows, copyTestAsset } from "../helpers/packTester" +import { app, appThrows, copyTestAsset } from "../helpers/packTester.js" import { ToolsetConfig } from "app-builder-lib" const winCodeSignVersions: ToolsetConfig["winCodeSign"][] = [ diff --git a/test/src/windows/assistedInstallerTest.ts b/test/src/windows/assistedInstallerTest.ts index c4c6496a5e0..24862ce1cad 100644 --- a/test/src/windows/assistedInstallerTest.ts +++ b/test/src/windows/assistedInstallerTest.ts @@ -1,8 +1,8 @@ import { Arch, Platform } from "electron-builder" import * as fs from "fs/promises" import * as path from "path" -import { app, assertPack, copyTestAsset } from "../helpers/packTester" -import { checkHelpers, doTest, expectUpdateMetadata } from "../helpers/winHelper" +import { app, assertPack, copyTestAsset } from "../helpers/packTester.js" +import { checkHelpers, doTest, expectUpdateMetadata } from "../helpers/winHelper.js" import { ToolsetConfig } from "app-builder-lib" const winCodeSignVersions: ToolsetConfig["winCodeSign"][] = ["0.0.0", "1.0.0", "1.1.0"] diff --git a/test/src/windows/msiTest.ts b/test/src/windows/msiTest.ts index 61eb3227077..bf21c72c1fb 100644 --- a/test/src/windows/msiTest.ts +++ b/test/src/windows/msiTest.ts @@ -1,6 +1,6 @@ import { Arch, Platform } from "electron-builder" import * as fs from "fs" -import { app } from "../helpers/packTester" +import { app } from "../helpers/packTester.js" import { ToolsetConfig } from "app-builder-lib" const winCodeSignVersions: ToolsetConfig["winCodeSign"][] = ["0.0.0", "1.0.0", "1.1.0"] diff --git a/test/src/windows/msiWrappedTest.ts b/test/src/windows/msiWrappedTest.ts index 121075368b2..5a87a12ae6f 100644 --- a/test/src/windows/msiWrappedTest.ts +++ b/test/src/windows/msiWrappedTest.ts @@ -1,7 +1,7 @@ import { Arch, Platform } from "electron-builder" import { XMLParser } from "fast-xml-parser" import * as fs from "fs" -import { app, appThrows } from "../helpers/packTester" +import { app, appThrows } from "../helpers/packTester.js" import { ToolsetConfig } from "app-builder-lib" const parser = new XMLParser({ diff --git a/test/src/windows/oneClickInstallerTest.ts b/test/src/windows/oneClickInstallerTest.ts index 2c594d14218..1b56555c214 100644 --- a/test/src/windows/oneClickInstallerTest.ts +++ b/test/src/windows/oneClickInstallerTest.ts @@ -1,9 +1,9 @@ import { Arch, Platform } from "electron-builder" import fsExtra from "fs-extra" import * as path from "path" -import { assertThat } from "../helpers/fileAssert" -import { app, assertPack, copyTestAsset, EXTENDED_TIMEOUT, modifyPackageJson } from "../helpers/packTester" -import { checkHelpers, doTest, expectUpdateMetadata } from "../helpers/winHelper" +import { assertThat } from "../helpers/fileAssert.js" +import { app, assertPack, copyTestAsset, EXTENDED_TIMEOUT, modifyPackageJson } from "../helpers/packTester.js" +import { checkHelpers, doTest, expectUpdateMetadata } from "../helpers/winHelper.js" const nsisTarget = Platform.WINDOWS.createTarget(["nsis"], Arch.x64) diff --git a/test/src/windows/portableTest.ts b/test/src/windows/portableTest.ts index 1886faca4d8..de75249bc53 100644 --- a/test/src/windows/portableTest.ts +++ b/test/src/windows/portableTest.ts @@ -1,6 +1,6 @@ import { Arch, Platform } from "electron-builder" import * as path from "path" -import { app, copyTestAsset, getFixtureDir } from "../helpers/packTester" +import { app, copyTestAsset, getFixtureDir } from "../helpers/packTester.js" import { ToolsetConfig } from "app-builder-lib" const winCodeSignVersions: ToolsetConfig["winCodeSign"][] = ["0.0.0", "1.0.0", "1.1.0"] diff --git a/test/src/windows/squirrelWindowsTest.ts b/test/src/windows/squirrelWindowsTest.ts index 5605dd94550..99f2b8a9e17 100644 --- a/test/src/windows/squirrelWindowsTest.ts +++ b/test/src/windows/squirrelWindowsTest.ts @@ -1,7 +1,7 @@ import { Arch, Platform } from "electron-builder" import * as path from "path" -import { CheckingWinPackager } from "../helpers/CheckingPackager" -import { app, assertPack, copyTestAsset } from "../helpers/packTester" +import { CheckingWinPackager } from "../helpers/CheckingPackager.js" +import { app, assertPack, copyTestAsset } from "../helpers/packTester.js" import { ToolsetConfig } from "app-builder-lib" const winCodeSignVersions: ToolsetConfig["winCodeSign"][] = ["0.0.0", "1.0.0", "1.1.0"] diff --git a/test/src/windows/webInstallerTest.ts b/test/src/windows/webInstallerTest.ts index d3e56fa5bed..d031ed7b1e2 100644 --- a/test/src/windows/webInstallerTest.ts +++ b/test/src/windows/webInstallerTest.ts @@ -1,5 +1,5 @@ import { Arch, Platform } from "electron-builder" -import { app } from "../helpers/packTester" +import { app } from "../helpers/packTester.js" // tests are heavy, to distribute tests across CircleCI machines evenly, these tests were moved from oneClickInstallerTest diff --git a/test/src/windows/winCodeSignTest.ts b/test/src/windows/winCodeSignTest.ts index 1803f167e43..b573c4f7b04 100644 --- a/test/src/windows/winCodeSignTest.ts +++ b/test/src/windows/winCodeSignTest.ts @@ -3,8 +3,8 @@ import { DIR_TARGET, Platform } from "electron-builder" import fsExtra from "fs-extra" import { load } from "js-yaml" import * as path from "path" -import { CheckingWinPackager } from "../helpers/CheckingPackager" -import { app, appThrows } from "../helpers/packTester" +import { CheckingWinPackager } from "../helpers/CheckingPackager.js" +import { app, appThrows } from "../helpers/packTester.js" import { ExpectStatic } from "vitest" import { ToolsetConfig } from "app-builder-lib" diff --git a/test/vitest-scripts/cache.ts b/test/vitest-scripts/cache.ts index 9e81e5d1a6a..1571085cd5a 100644 --- a/test/vitest-scripts/cache.ts +++ b/test/vitest-scripts/cache.ts @@ -1,6 +1,6 @@ import * as fs from "fs" import * as path from "path" -import { CACHE_FILE, SupportedPlatforms } from "./smart-config" +import { CACHE_FILE, SupportedPlatforms } from "./smart-config.js" export interface TestStats { platformRuns?: Record< diff --git a/test/vitest-scripts/file-discovery.ts b/test/vitest-scripts/file-discovery.ts index dc68e15ca5a..104e1adce7f 100644 --- a/test/vitest-scripts/file-discovery.ts +++ b/test/vitest-scripts/file-discovery.ts @@ -1,6 +1,6 @@ import * as fs from "fs" import * as path from "path" -import { IS_LINUX, IS_MAC, IS_WIN, PLATFORM, SupportedPlatforms, TargetPlatform, TEST_ROOT, skipPerOSTests, skippedTests } from "./smart-config" +import { IS_LINUX, IS_MAC, IS_WIN, PLATFORM, SupportedPlatforms, TargetPlatform, TEST_ROOT, skipPerOSTests, skippedTests } from "./smart-config.js" export function platformAllowed(file: string, platform: TargetPlatform = "current"): boolean { if (platform === "current") { diff --git a/test/vitest-scripts/run-vitest.ts b/test/vitest-scripts/run-vitest.ts index 467cb738811..a3c23780b3f 100644 --- a/test/vitest-scripts/run-vitest.ts +++ b/test/vitest-scripts/run-vitest.ts @@ -2,10 +2,10 @@ import isCI from "is-ci" import { startVitest } from "vitest/node" -import { getAllTestFiles } from "./file-discovery" -import { buildWeightedFiles, computeShardCount, splitIntoShards } from "./shard-builder" -import { SHARD_INDEX, SupportedPlatforms, TEST_FILES_PATTERN } from "./smart-config" -import SmartSequencer from "./vitest-smart-sequencer" +import { getAllTestFiles } from "./file-discovery.js" +import { buildWeightedFiles, computeShardCount, splitIntoShards } from "./shard-builder.js" +import { SHARD_INDEX, SupportedPlatforms, TEST_FILES_PATTERN } from "./smart-config.js" +import SmartSequencer from "./vitest-smart-sequencer.js" const testRegex = TEST_FILES_PATTERN?.split(",") const includeRegex = `(${testRegex.join("|")})` diff --git a/test/vitest-scripts/shard-builder.ts b/test/vitest-scripts/shard-builder.ts index 97a005812a8..64e3777f411 100644 --- a/test/vitest-scripts/shard-builder.ts +++ b/test/vitest-scripts/shard-builder.ts @@ -1,6 +1,6 @@ import * as path from "path" -import { loadCache } from "./cache" -import { DEFAULT_FILE_MS, SAFEGUARD_MAX_SHARDS, SupportedPlatforms, TARGET_MS, TargetPlatform } from "./smart-config" +import { loadCache } from "./cache.js" +import { DEFAULT_FILE_MS, SAFEGUARD_MAX_SHARDS, SupportedPlatforms, TARGET_MS, TargetPlatform } from "./smart-config.js" export interface WeightedFile { filename: string diff --git a/test/vitest-scripts/smart-shard-count.ts b/test/vitest-scripts/smart-shard-count.ts index 8ac5cc5dfe1..8d55b3a4cc3 100644 --- a/test/vitest-scripts/smart-shard-count.ts +++ b/test/vitest-scripts/smart-shard-count.ts @@ -1,8 +1,8 @@ #!/usr/bin/env ts-node -import { getAllTestFiles } from "./file-discovery" -import { buildWeightedFiles, computeShardCount } from "./shard-builder" -import { TargetPlatform } from "./smart-config" +import { getAllTestFiles } from "./file-discovery.js" +import { buildWeightedFiles, computeShardCount } from "./shard-builder.js" +import { TargetPlatform } from "./smart-config.js" /** * Compute shard indices for a given platform diff --git a/test/vitest-scripts/vitest-setup.ts b/test/vitest-scripts/vitest-setup.ts index 129f801b332..513948934a6 100644 --- a/test/vitest-scripts/vitest-setup.ts +++ b/test/vitest-scripts/vitest-setup.ts @@ -1,5 +1,5 @@ import { test as baseTest, describe as baseDescribe, expect } from "vitest" -import { ConditionalSuiteAPI, ConditionalTestAPI } from "../typings/vitest" +import { ConditionalSuiteAPI, ConditionalTestAPI } from "../typings/vitest.js" const isWindows = process.platform === "win32" const isMac = process.platform === "darwin" diff --git a/test/vitest-scripts/vitest-smart-reporter.ts b/test/vitest-scripts/vitest-smart-reporter.ts index cb2e77ba0aa..ed8d1a2e5ac 100644 --- a/test/vitest-scripts/vitest-smart-reporter.ts +++ b/test/vitest-scripts/vitest-smart-reporter.ts @@ -1,7 +1,7 @@ import * as path from "path" import type { Reporter, TestCase, TestModule } from "vitest/node" -import { FileStats, loadCache, saveCache, TestStats } from "./cache" -import { UNSTABLE_FAIL_RATIO, SupportedPlatforms } from "./smart-config" +import { FileStats, loadCache, saveCache, TestStats } from "./cache.js" +import { UNSTABLE_FAIL_RATIO, SupportedPlatforms } from "./smart-config.js" const defaultStat: TestStats = { platformRuns: { diff --git a/test/vitest-scripts/vitest-smart-sequencer.ts b/test/vitest-scripts/vitest-smart-sequencer.ts index 07cb8995260..75193e658d7 100644 --- a/test/vitest-scripts/vitest-smart-sequencer.ts +++ b/test/vitest-scripts/vitest-smart-sequencer.ts @@ -1,7 +1,7 @@ import * as path from "path" import { BaseSequencer, TestSpecification } from "vitest/node" -import { loadCache } from "./cache" -import { DEFAULT_FILE_MS, SupportedPlatforms } from "./smart-config" +import { loadCache } from "./cache.js" +import { DEFAULT_FILE_MS, SupportedPlatforms } from "./smart-config.js" export default class SmartSequencer extends BaseSequencer { readonly cache = loadCache() From 14b492541063729f5b67ad8b4c91b2cfc4594786 Mon Sep 17 00:00:00 2001 From: Mike Maietta Date: Tue, 28 Apr 2026 14:12:03 -0700 Subject: [PATCH 32/65] fix somethings --- packages/electron-builder/package.json | 1 + packages/electron-publish/package.json | 3 +++ packages/electron-publish/src/gitlabPublisher.ts | 4 +--- packages/electron-updater/package.json | 3 +++ pnpm-lock.yaml | 3 +++ test/src/linux/linuxPackagerTest.ts | 2 +- 6 files changed, 12 insertions(+), 4 deletions(-) diff --git a/packages/electron-builder/package.json b/packages/electron-builder/package.json index b040296c0e3..b729f49e1db 100644 --- a/packages/electron-builder/package.json +++ b/packages/electron-builder/package.json @@ -57,6 +57,7 @@ "app-builder-lib": "workspace:*", "builder-util": "workspace:*", "builder-util-runtime": "workspace:*", + "electron-publish": "workspace:*", "chalk": "^4.1.2", "ci-info": "^4.2.0", "dmg-builder": "workspace:*", diff --git a/packages/electron-publish/package.json b/packages/electron-publish/package.json index 8536e4b32c9..c1263733fcb 100644 --- a/packages/electron-publish/package.json +++ b/packages/electron-publish/package.json @@ -30,5 +30,8 @@ "typings": "./out/index.d.ts", "devDependencies": { "@types/mime": "2.0.3" + }, + "scripts": { + "compile": "tsc -b" } } diff --git a/packages/electron-publish/src/gitlabPublisher.ts b/packages/electron-publish/src/gitlabPublisher.ts index f7f3d704682..b42ebf538b4 100644 --- a/packages/electron-publish/src/gitlabPublisher.ts +++ b/packages/electron-publish/src/gitlabPublisher.ts @@ -121,9 +121,7 @@ export class GitlabPublisher extends HttpPublisher { const releaseName = this.releaseName || defaultName const branchName = await this.getDefaultBranch() - const description = this.releaseBody - ? trimStringWithWarn(this.releaseBody, 100000, "release body exceeds GitLab limit, truncating") - : `Release ${releaseName}` + const description = this.releaseBody ? trimStringWithWarn(this.releaseBody, 100000, "release body exceeds GitLab limit, truncating") : `Release ${releaseName}` const releaseData = { tag_name: this.tag, diff --git a/packages/electron-updater/package.json b/packages/electron-updater/package.json index 1f5c93eb371..61448cfc6d9 100644 --- a/packages/electron-updater/package.json +++ b/packages/electron-updater/package.json @@ -42,5 +42,8 @@ }, "engines": { "node": ">=22.12.0" + }, + "scripts": { + "compile": "tsc" } } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index caaa3731435..cd88ed68426 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -442,6 +442,9 @@ importers: dmg-builder: specifier: workspace:* version: link:../dmg-builder + electron-publish: + specifier: workspace:* + version: link:../electron-publish fs-extra: specifier: ^11.3.4 version: 11.3.4 diff --git a/test/src/linux/linuxPackagerTest.ts b/test/src/linux/linuxPackagerTest.ts index fe4fae5b74f..2b69d44348c 100644 --- a/test/src/linux/linuxPackagerTest.ts +++ b/test/src/linux/linuxPackagerTest.ts @@ -6,7 +6,7 @@ import * as path from "path" import { assertThat } from "../helpers/fileAssert.js" import { app, appThrows, copyTestAsset, modifyPackageJson } from "../helpers/packTester.js" import { ELECTRON_VERSION } from "../helpers/testConfig.js" -import { ToolsetConfig } from "app-builder-lib/src" +import { ToolsetConfig } from "app-builder-lib" const appImageTarget = Platform.LINUX.createTarget("appimage", Arch.x64) From eac86628d925d485a7918f30c239b65ef24307db Mon Sep 17 00:00:00 2001 From: Mike Maietta Date: Tue, 28 Apr 2026 14:15:00 -0700 Subject: [PATCH 33/65] everything but tests compile --- .../src/targets/appimage/appImageUtil.ts | 14 +++++++------- packages/app-builder-lib/src/toolsets/linux.ts | 4 ++-- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/packages/app-builder-lib/src/targets/appimage/appImageUtil.ts b/packages/app-builder-lib/src/targets/appimage/appImageUtil.ts index b6433e98a9d..1916792dde0 100644 --- a/packages/app-builder-lib/src/targets/appimage/appImageUtil.ts +++ b/packages/app-builder-lib/src/targets/appimage/appImageUtil.ts @@ -1,14 +1,14 @@ import { Arch, copyDir, copyFile, exec, exists, InvalidConfigurationError, log } from "builder-util" import * as fs from "fs-extra" import * as path from "path" -import { FileAssociation } from "../../options/FileAssociation" -import { IconInfo } from "../../platformPackager" -import { getAppImageTools } from "../../toolsets/linux" -import { copyIcons, copyMimeTypes } from "./appLauncher" -import { appendBlockmap } from "../differentialUpdateInfoBuilder" +import { FileAssociation } from "../../options/FileAssociation.js" +import { IconInfo } from "../../platformPackager.js" +import { getAppImageTools } from "../../toolsets/linux.js" +import { copyIcons, copyMimeTypes } from "./appLauncher.js" +import { appendBlockmap } from "../differentialUpdateInfoBuilder.js" import { BlockMapDataHolder } from "builder-util-runtime" -import { APP_RUN_ENTRYPOINT } from "./AppImageTarget" -import { ToolsetConfig } from "app-builder-lib/src/configuration" +import { APP_RUN_ENTRYPOINT } from "./AppImageTarget.js" +import { ToolsetConfig } from "../../configuration.js" interface Options { productName: string diff --git a/packages/app-builder-lib/src/toolsets/linux.ts b/packages/app-builder-lib/src/toolsets/linux.ts index c8250fac2d6..3055b1e501a 100644 --- a/packages/app-builder-lib/src/toolsets/linux.ts +++ b/packages/app-builder-lib/src/toolsets/linux.ts @@ -1,7 +1,7 @@ import { Arch } from "builder-util" import * as path from "path" -import { downloadArtifact, getBinFromUrl } from "../binDownload" -import { ToolsetConfig } from "../configuration" +import { downloadArtifact, getBinFromUrl } from "../binDownload.js" +import { ToolsetConfig } from "../configuration.js" // It's just easier to copy the map of checksums here rather than adding them to within each if-statement. Also, easy copy-paste from the releases page const fpmChecksums = { From 07858cac1b96adf20f5085477f13c68fc7056c24 Mon Sep 17 00:00:00 2001 From: Mike Maietta Date: Wed, 29 Apr 2026 14:13:05 -0700 Subject: [PATCH 34/65] attempt 1 --- test/src/parseNameVersionTest.ts | 2 +- test/src/updater/blackboxUpdateTest.ts | 4 ++-- test/tsconfig.json | 5 +---- 3 files changed, 4 insertions(+), 7 deletions(-) diff --git a/test/src/parseNameVersionTest.ts b/test/src/parseNameVersionTest.ts index 33b3600d03d..910f9ac9369 100644 --- a/test/src/parseNameVersionTest.ts +++ b/test/src/parseNameVersionTest.ts @@ -1,4 +1,4 @@ -import { PnpmNodeModulesCollector } from "app-builder-lib/out/node-module-collector/pnpmNodeModulesCollector" +import { PnpmNodeModulesCollector } from "app-builder-lib" import { TmpDir } from "temp-file" import { describe, expect, test } from "vitest" diff --git a/test/src/updater/blackboxUpdateTest.ts b/test/src/updater/blackboxUpdateTest.ts index a6be9048785..0a07536c83e 100644 --- a/test/src/updater/blackboxUpdateTest.ts +++ b/test/src/updater/blackboxUpdateTest.ts @@ -1,7 +1,7 @@ import { ToolsetConfig } from "app-builder-lib" -import { PM } from "app-builder-lib/src/node-module-collector" +import { PM } from "app-builder-lib" import { GenericServerOptions, Nullish } from "builder-util-runtime" -import { archFromString, doSpawn, getArchSuffix, isEmptyOrSpaces, log, spawn, TmpDir } from "builder-util/out/util" +import { archFromString, doSpawn, getArchSuffix, isEmptyOrSpaces, log, spawn, TmpDir } from "builder-util" import { execFileSync, execSync } from "child_process" import { Arch, Configuration, Platform } from "electron-builder" import { DebUpdater, PacmanUpdater, RpmUpdater } from "electron-updater" diff --git a/test/tsconfig.json b/test/tsconfig.json index abb32d262e2..4e3ef0be580 100644 --- a/test/tsconfig.json +++ b/test/tsconfig.json @@ -14,13 +14,10 @@ "path": "../packages/builder-util-runtime" }, { - "path": "../packages/electron-builder" + "path": "../packages/app-builder-lib" }, { "path": "../packages/electron-publish" - }, - { - "path": "../packages/electron-updater" } ], "declaration": false, From 2770f2d0c9e84093a0e49863065e014a959b0705 Mon Sep 17 00:00:00 2001 From: Mike Maietta Date: Thu, 30 Apr 2026 07:46:52 -0700 Subject: [PATCH 35/65] claude helped --- packages/app-builder-lib/src/index.ts | 11 ++++-- .../src/node-module-collector/index.ts | 2 +- packages/electron-updater/package.json | 2 +- packages/electron-updater/src/main.ts | 34 +++++++------------ test/src/updater/blackboxUpdateTest.ts | 8 ++--- test/tsconfig.json | 6 ++++ 6 files changed, 34 insertions(+), 29 deletions(-) diff --git a/packages/app-builder-lib/src/index.ts b/packages/app-builder-lib/src/index.ts index bfc4c2a06d9..b467564f360 100644 --- a/packages/app-builder-lib/src/index.ts +++ b/packages/app-builder-lib/src/index.ts @@ -71,7 +71,15 @@ export { Framework, PrepareApplicationStageDirectoryOptions } from "./Framework. export { LinuxPackager } from "./linuxPackager.js" export { CustomMacSign, CustomMacSignOptions, MacPackager } from "./macPackager.js" export { HoisterDependencyKind, HoisterResult, HoisterTree, hoist } from "./node-module-collector/hoist.js" -export { determinePackageManagerEnv } from "./node-module-collector/index.js" +export { + determinePackageManagerEnv, + getCollectorByPackageManager, + PnpmNodeModulesCollector, + YarnNodeModulesCollector, + YarnBerryNodeModulesCollector, + BunNodeModulesCollector, + TraversalNodeModulesCollector, +} from "./node-module-collector/index.js" export { PM } from "./node-module-collector/packageManager.js" export { DoPackOptions, PlatformPackager, computeSafeArtifactNameIfNeeded } from "./platformPackager.js" export { PublishManager, createPublisher } from "./publish/PublishManager.js" @@ -90,7 +98,6 @@ export { execWine } from "./wine.js" export { WinPackager } from "./winPackager.js" export { AsarIntegrity } from "./asar/integrity.js" -export { getCollectorByPackageManager } from "./node-module-collector/index.js" export { computeArchToTargetNamesMap } from "./targets/targetFactory.js" export { getLinuxToolsPath } from "./toolsets/linux.js" diff --git a/packages/app-builder-lib/src/node-module-collector/index.ts b/packages/app-builder-lib/src/node-module-collector/index.ts index e95f15f5656..b176598a75b 100644 --- a/packages/app-builder-lib/src/node-module-collector/index.ts +++ b/packages/app-builder-lib/src/node-module-collector/index.ts @@ -12,7 +12,7 @@ import fs from "fs-extra" import * as path from "path" import { TraversalNodeModulesCollector } from "./traversalNodeModulesCollector.js" -export { getPackageManagerCommand, PM } +export { getPackageManagerCommand, PM, PnpmNodeModulesCollector, YarnNodeModulesCollector, YarnBerryNodeModulesCollector, BunNodeModulesCollector, TraversalNodeModulesCollector } export function getCollectorByPackageManager(pm: PM, rootDir: string, tempDirManager: TmpDir) { switch (pm) { diff --git a/packages/electron-updater/package.json b/packages/electron-updater/package.json index 09df2abc5f9..a5baf5c596f 100644 --- a/packages/electron-updater/package.json +++ b/packages/electron-updater/package.json @@ -4,7 +4,7 @@ "description": "Cross platform updater for electron applications", "type": "module", "exports": { - ".": "./out/index.js" + ".": "./out/main.js" }, "author": "Vladimir Krivosheev", "license": "MIT", diff --git a/packages/electron-updater/src/main.ts b/packages/electron-updater/src/main.ts index e3b91b4715f..236343e382c 100644 --- a/packages/electron-updater/src/main.ts +++ b/packages/electron-updater/src/main.ts @@ -1,7 +1,10 @@ +import { createRequire } from "module" import fsExtra from "fs-extra" import * as path from "path" import { AppUpdater } from "./AppUpdater.js" +const require = createRequire(import.meta.url) + export { ElectronAppAdapter } from "./ElectronAppAdapter.js" import { UpdateInfo } from "builder-util-runtime" @@ -23,35 +26,29 @@ export { GitLabProvider } from "./providers/GitLabProvider.js" export * from "./types.js" export * as utils from "./util.js" -// autoUpdater to mimic electron bundled autoUpdater -let _autoUpdater: any - -// required for jsdoc -export declare const autoUpdater: AppUpdater - function doLoadAutoUpdater(): AppUpdater { - // tslint:disable:prefer-conditional-expression + let updater: any if (process.platform === "win32") { - _autoUpdater = new (require("./NsisUpdater").NsisUpdater)() + updater = new (require("./NsisUpdater").NsisUpdater)() } else if (process.platform === "darwin") { - _autoUpdater = new (require("./MacUpdater").MacUpdater)() + updater = new (require("./MacUpdater").MacUpdater)() } else { - _autoUpdater = new (require("./AppImageUpdater").AppImageUpdater)() + updater = new (require("./AppImageUpdater").AppImageUpdater)() try { const identity = path.join(process.resourcesPath, "package-type") if (!fsExtra.existsSync(identity)) { - return _autoUpdater + return updater } const fileType = fsExtra.readFileSync(identity).toString().trim() switch (fileType) { case "deb": - _autoUpdater = new (require("./DebUpdater").DebUpdater)() + updater = new (require("./DebUpdater").DebUpdater)() break case "rpm": - _autoUpdater = new (require("./RpmUpdater").RpmUpdater)() + updater = new (require("./RpmUpdater").RpmUpdater)() break case "pacman": - _autoUpdater = new (require("./PacmanUpdater").PacmanUpdater)() + updater = new (require("./PacmanUpdater").PacmanUpdater)() break default: break @@ -63,15 +60,10 @@ function doLoadAutoUpdater(): AppUpdater { ) } } - return _autoUpdater + return updater } -Object.defineProperty(exports, "autoUpdater", { - enumerable: true, - get: () => { - return _autoUpdater || doLoadAutoUpdater() - }, -}) +export const autoUpdater: AppUpdater = doLoadAutoUpdater() /** * return null if verify signature succeed diff --git a/test/src/updater/blackboxUpdateTest.ts b/test/src/updater/blackboxUpdateTest.ts index 0a07536c83e..5880d207c08 100644 --- a/test/src/updater/blackboxUpdateTest.ts +++ b/test/src/updater/blackboxUpdateTest.ts @@ -9,10 +9,10 @@ import { copy, existsSync, move, outputFile, readJsonSync } from "fs-extra" import { homedir } from "os" import path from "path" import { ExpectStatic, TestContext } from "vitest" -import { getRanLocalServerPath, launchAndWaitForQuit } from "../helpers/launchAppCrossPlatform" -import { assertPack, modifyPackageJson, PackedContext } from "../helpers/packTester" -import { ELECTRON_VERSION } from "../helpers/testConfig" -import { NEW_VERSION_NUMBER, OLD_VERSION_NUMBER, writeUpdateConfig } from "../helpers/updaterTestUtil" +import { getRanLocalServerPath, launchAndWaitForQuit } from "../helpers/launchAppCrossPlatform.js" +import { assertPack, modifyPackageJson, PackedContext } from "../helpers/packTester.js" +import { ELECTRON_VERSION } from "../helpers/testConfig.js" +import { NEW_VERSION_NUMBER, OLD_VERSION_NUMBER, writeUpdateConfig } from "../helpers/updaterTestUtil.js" // Linux Tests MUST be run in docker containers for proper ephemeral testing environment (e.g. fresh install + update + relaunch) // Currently this test logic does not handle uninstalling packages (yet) diff --git a/test/tsconfig.json b/test/tsconfig.json index 4e3ef0be580..519bb55aca7 100644 --- a/test/tsconfig.json +++ b/test/tsconfig.json @@ -16,6 +16,12 @@ { "path": "../packages/app-builder-lib" }, + { + "path": "../packages/electron-builder" + }, + { + "path": "../packages/electron-updater" + }, { "path": "../packages/electron-publish" } From 9c3b692cde8cadf1e19c75471d31797c1bb8ad3a Mon Sep 17 00:00:00 2001 From: Mike Maietta Date: Thu, 30 Apr 2026 16:04:47 -0700 Subject: [PATCH 36/65] claude got tests running --- package.json | 9 +- packages/electron-updater/src/main.ts | 12 +- pnpm-lock.yaml | 320 +++++++++++++++++++++++++- test/vitest-scripts/run-vitest.ts | 4 +- test/vitest-scripts/smart-config.ts | 2 + 5 files changed, 324 insertions(+), 23 deletions(-) diff --git a/package.json b/package.json index 756cde02c01..5b2f0566a3e 100644 --- a/package.json +++ b/package.json @@ -12,8 +12,8 @@ "///": "Please see https://github.com/electron-userland/electron-builder/blob/master/CONTRIBUTING.md#run-test-using-cli how to run particular test instead full (and very slow) run", "test-all": "pnpm compile && pnpm pretest && pnpm ci:test", "test-linux": "docker run --rm -e CI=${CI:-false} -e DEBUG=${DEBUG:-} -e VITEST_SHARD_INDEX=${VITEST_SHARD_INDEX:-} -e VITEST_SHARD_COUNT=${VITEST_SHARD_COUNT:-} -e UPDATE_SNAPSHOT=\"${UPDATE_SNAPSHOT:-false}\" -e TEST_FILES=\"${TEST_FILES:-}\" -w /project -v $(pwd):/project -v $(pwd)-node-modules:/project/node_modules -v $HOME/Library/Caches/electron:/root/.cache/electron -v $HOME/Library/Caches/electron-builder:/root/.cache/electron-builder ${ADDITIONAL_DOCKER_ARGS} ${TEST_RUNNER_IMAGE_TAG:-electronuserland/builder:22-wine-mono} /bin/bash -c \"bash ./docker/test-in-docker.sh\"", - "ci:test": "ts-node test/vitest-scripts/run-vitest.ts", - "ci:test:count": "ts-node test/vitest-scripts/smart-shard-count.ts", + "ci:test": "tsx test/vitest-scripts/run-vitest.ts", + "ci:test:count": "tsx test/vitest-scripts/smart-shard-count.ts", "ci:validate": "pnpm compile && pnpm pretest && pnpm generate-all", "ci:version": "pnpm i && pnpm changelog && changeset version && node scripts/update-package-version-export.js && pnpm compile && pnpm generate-all && git add .", "ci:publish": "pnpm i && pnpm compile && pnpm publish -r --tag ${NPM_DIST_TAG:-next} && changeset tag", @@ -21,10 +21,10 @@ "docker-push": "docker/push.sh", "changelog": "conventional-changelog -p angular -i CHANGELOG.md -s && git add CHANGELOG.md", "generate-changeset": "pnpm changeset", - "generate-schema": "ts-node scripts/generate-schema.ts", + "generate-schema": "tsx scripts/generate-schema.ts", "generate-all": "pnpm generate-schema && pnpm prettier", "docs:prebuild": "docker build -t mkdocs-dockerfile -f mkdocs-dockerfile . ", - "docs:build": "pnpm compile && ts-node scripts/renderer/src/typedoc2html.ts", + "docs:build": "pnpm compile && tsx scripts/renderer/src/typedoc2html.ts", "docs:mkdocs": "docker run --rm -v ${PWD}:/docs -v ${PWD}/site:/site mkdocs-dockerfile build", "docs:preview": "open ./site/index.html", "docs:all": "pnpm docs:prebuild && pnpm docs:build && pnpm docs:mkdocs" @@ -56,6 +56,7 @@ "is-ci": "^4.1.0", "prettier": "3.7.4", "ts-node": "^10.9.2", + "tsx": "^4.21.0", "typedoc": "^0.26.7", "typedoc-plugin-markdown": "4.2.8", "typescript": "^5.6.2", diff --git a/packages/electron-updater/src/main.ts b/packages/electron-updater/src/main.ts index 236343e382c..8cd5c986c1e 100644 --- a/packages/electron-updater/src/main.ts +++ b/packages/electron-updater/src/main.ts @@ -29,11 +29,11 @@ export * as utils from "./util.js" function doLoadAutoUpdater(): AppUpdater { let updater: any if (process.platform === "win32") { - updater = new (require("./NsisUpdater").NsisUpdater)() + updater = new (require("./NsisUpdater.js").NsisUpdater)() } else if (process.platform === "darwin") { - updater = new (require("./MacUpdater").MacUpdater)() + updater = new (require("./MacUpdater.js").MacUpdater)() } else { - updater = new (require("./AppImageUpdater").AppImageUpdater)() + updater = new (require("./AppImageUpdater.js").AppImageUpdater)() try { const identity = path.join(process.resourcesPath, "package-type") if (!fsExtra.existsSync(identity)) { @@ -42,13 +42,13 @@ function doLoadAutoUpdater(): AppUpdater { const fileType = fsExtra.readFileSync(identity).toString().trim() switch (fileType) { case "deb": - updater = new (require("./DebUpdater").DebUpdater)() + updater = new (require("./DebUpdater.js").DebUpdater)() break case "rpm": - updater = new (require("./RpmUpdater").RpmUpdater)() + updater = new (require("./RpmUpdater.js").RpmUpdater)() break case "pacman": - updater = new (require("./PacmanUpdater").PacmanUpdater)() + updater = new (require("./PacmanUpdater.js").PacmanUpdater)() break default: break diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 0eacc645c3d..b3eabd1f96b 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -86,6 +86,9 @@ importers: ts-node: specifier: ^10.9.2 version: 10.9.2(@types/node@22.13.17)(typescript@5.8.2) + tsx: + specifier: ^4.21.0 + version: 4.21.0 typedoc: specifier: ^0.26.7 version: 0.26.11(typescript@5.8.2) @@ -100,7 +103,7 @@ importers: version: 0.64.0 vitest: specifier: ^3.2.2 - version: 3.2.4(@types/node@22.13.17)(@vitest/ui@3.0.4(vitest@3.2.4))(jiti@2.4.2)(sass@1.86.1)(yaml@2.7.1) + version: 3.2.4(@types/node@22.13.17)(@vitest/ui@3.0.4)(jiti@2.4.2)(sass@1.86.1)(tsx@4.21.0)(yaml@2.7.1) packages/app-builder-lib: dependencies: @@ -701,7 +704,7 @@ importers: version: 1.6.3 vitest: specifier: ^3.0.4 - version: 3.2.4(@types/node@22.13.17)(@vitest/ui@3.0.4(vitest@3.2.4))(jiti@2.4.2)(sass@1.86.1)(yaml@2.7.1) + version: 3.2.4(@types/node@22.13.17)(@vitest/ui@3.0.4)(jiti@2.4.2)(sass@1.86.1)(tsx@4.21.0)(yaml@2.7.1) vitest-mock-commonjs: specifier: ^1.0.2 version: 1.0.2 @@ -1674,150 +1677,306 @@ packages: cpu: [ppc64] os: [aix] + '@esbuild/aix-ppc64@0.27.7': + resolution: {integrity: sha512-EKX3Qwmhz1eMdEJokhALr0YiD0lhQNwDqkPYyPhiSwKrh7/4KRjQc04sZ8db+5DVVnZ1LmbNDI1uAMPEUBnQPg==} + engines: {node: '>=18'} + cpu: [ppc64] + os: [aix] + '@esbuild/android-arm64@0.25.2': resolution: {integrity: sha512-5ZAX5xOmTligeBaeNEPnPaeEuah53Id2tX4c2CVP3JaROTH+j4fnfHCkr1PjXMd78hMst+TlkfKcW/DlTq0i4w==} engines: {node: '>=18'} cpu: [arm64] os: [android] + '@esbuild/android-arm64@0.27.7': + resolution: {integrity: sha512-62dPZHpIXzvChfvfLJow3q5dDtiNMkwiRzPylSCfriLvZeq0a1bWChrGx/BbUbPwOrsWKMn8idSllklzBy+dgQ==} + engines: {node: '>=18'} + cpu: [arm64] + os: [android] + '@esbuild/android-arm@0.25.2': resolution: {integrity: sha512-NQhH7jFstVY5x8CKbcfa166GoV0EFkaPkCKBQkdPJFvo5u+nGXLEH/ooniLb3QI8Fk58YAx7nsPLozUWfCBOJA==} engines: {node: '>=18'} cpu: [arm] os: [android] + '@esbuild/android-arm@0.27.7': + resolution: {integrity: sha512-jbPXvB4Yj2yBV7HUfE2KHe4GJX51QplCN1pGbYjvsyCZbQmies29EoJbkEc+vYuU5o45AfQn37vZlyXy4YJ8RQ==} + engines: {node: '>=18'} + cpu: [arm] + os: [android] + '@esbuild/android-x64@0.25.2': resolution: {integrity: sha512-Ffcx+nnma8Sge4jzddPHCZVRvIfQ0kMsUsCMcJRHkGJ1cDmhe4SsrYIjLUKn1xpHZybmOqCWwB0zQvsjdEHtkg==} engines: {node: '>=18'} cpu: [x64] os: [android] + '@esbuild/android-x64@0.27.7': + resolution: {integrity: sha512-x5VpMODneVDb70PYV2VQOmIUUiBtY3D3mPBG8NxVk5CogneYhkR7MmM3yR/uMdITLrC1ml/NV1rj4bMJuy9MCg==} + engines: {node: '>=18'} + cpu: [x64] + os: [android] + '@esbuild/darwin-arm64@0.25.2': resolution: {integrity: sha512-MpM6LUVTXAzOvN4KbjzU/q5smzryuoNjlriAIx+06RpecwCkL9JpenNzpKd2YMzLJFOdPqBpuub6eVRP5IgiSA==} engines: {node: '>=18'} cpu: [arm64] os: [darwin] + '@esbuild/darwin-arm64@0.27.7': + resolution: {integrity: sha512-5lckdqeuBPlKUwvoCXIgI2D9/ABmPq3Rdp7IfL70393YgaASt7tbju3Ac+ePVi3KDH6N2RqePfHnXkaDtY9fkw==} + engines: {node: '>=18'} + cpu: [arm64] + os: [darwin] + '@esbuild/darwin-x64@0.25.2': resolution: {integrity: sha512-5eRPrTX7wFyuWe8FqEFPG2cU0+butQQVNcT4sVipqjLYQjjh8a8+vUTfgBKM88ObB85ahsnTwF7PSIt6PG+QkA==} engines: {node: '>=18'} cpu: [x64] os: [darwin] + '@esbuild/darwin-x64@0.27.7': + resolution: {integrity: sha512-rYnXrKcXuT7Z+WL5K980jVFdvVKhCHhUwid+dDYQpH+qu+TefcomiMAJpIiC2EM3Rjtq0sO3StMV/+3w3MyyqQ==} + engines: {node: '>=18'} + cpu: [x64] + os: [darwin] + '@esbuild/freebsd-arm64@0.25.2': resolution: {integrity: sha512-mLwm4vXKiQ2UTSX4+ImyiPdiHjiZhIaE9QvC7sw0tZ6HoNMjYAqQpGyui5VRIi5sGd+uWq940gdCbY3VLvsO1w==} engines: {node: '>=18'} cpu: [arm64] os: [freebsd] + '@esbuild/freebsd-arm64@0.27.7': + resolution: {integrity: sha512-B48PqeCsEgOtzME2GbNM2roU29AMTuOIN91dsMO30t+Ydis3z/3Ngoj5hhnsOSSwNzS+6JppqWsuhTp6E82l2w==} + engines: {node: '>=18'} + cpu: [arm64] + os: [freebsd] + '@esbuild/freebsd-x64@0.25.2': resolution: {integrity: sha512-6qyyn6TjayJSwGpm8J9QYYGQcRgc90nmfdUb0O7pp1s4lTY+9D0H9O02v5JqGApUyiHOtkz6+1hZNvNtEhbwRQ==} engines: {node: '>=18'} cpu: [x64] os: [freebsd] + '@esbuild/freebsd-x64@0.27.7': + resolution: {integrity: sha512-jOBDK5XEjA4m5IJK3bpAQF9/Lelu/Z9ZcdhTRLf4cajlB+8VEhFFRjWgfy3M1O4rO2GQ/b2dLwCUGpiF/eATNQ==} + engines: {node: '>=18'} + cpu: [x64] + os: [freebsd] + '@esbuild/linux-arm64@0.25.2': resolution: {integrity: sha512-gq/sjLsOyMT19I8obBISvhoYiZIAaGF8JpeXu1u8yPv8BE5HlWYobmlsfijFIZ9hIVGYkbdFhEqC0NvM4kNO0g==} engines: {node: '>=18'} cpu: [arm64] os: [linux] + '@esbuild/linux-arm64@0.27.7': + resolution: {integrity: sha512-RZPHBoxXuNnPQO9rvjh5jdkRmVizktkT7TCDkDmQ0W2SwHInKCAV95GRuvdSvA7w4VMwfCjUiPwDi0ZO6Nfe9A==} + engines: {node: '>=18'} + cpu: [arm64] + os: [linux] + '@esbuild/linux-arm@0.25.2': resolution: {integrity: sha512-UHBRgJcmjJv5oeQF8EpTRZs/1knq6loLxTsjc3nxO9eXAPDLcWW55flrMVc97qFPbmZP31ta1AZVUKQzKTzb0g==} engines: {node: '>=18'} cpu: [arm] os: [linux] + '@esbuild/linux-arm@0.27.7': + resolution: {integrity: sha512-RkT/YXYBTSULo3+af8Ib0ykH8u2MBh57o7q/DAs3lTJlyVQkgQvlrPTnjIzzRPQyavxtPtfg0EopvDyIt0j1rA==} + engines: {node: '>=18'} + cpu: [arm] + os: [linux] + '@esbuild/linux-ia32@0.25.2': resolution: {integrity: sha512-bBYCv9obgW2cBP+2ZWfjYTU+f5cxRoGGQ5SeDbYdFCAZpYWrfjjfYwvUpP8MlKbP0nwZ5gyOU/0aUzZ5HWPuvQ==} engines: {node: '>=18'} cpu: [ia32] os: [linux] + '@esbuild/linux-ia32@0.27.7': + resolution: {integrity: sha512-GA48aKNkyQDbd3KtkplYWT102C5sn/EZTY4XROkxONgruHPU72l+gW+FfF8tf2cFjeHaRbWpOYa/uRBz/Xq1Pg==} + engines: {node: '>=18'} + cpu: [ia32] + os: [linux] + '@esbuild/linux-loong64@0.25.2': resolution: {integrity: sha512-SHNGiKtvnU2dBlM5D8CXRFdd+6etgZ9dXfaPCeJtz+37PIUlixvlIhI23L5khKXs3DIzAn9V8v+qb1TRKrgT5w==} engines: {node: '>=18'} cpu: [loong64] os: [linux] + '@esbuild/linux-loong64@0.27.7': + resolution: {integrity: sha512-a4POruNM2oWsD4WKvBSEKGIiWQF8fZOAsycHOt6JBpZ+JN2n2JH9WAv56SOyu9X5IqAjqSIPTaJkqN8F7XOQ5Q==} + engines: {node: '>=18'} + cpu: [loong64] + os: [linux] + '@esbuild/linux-mips64el@0.25.2': resolution: {integrity: sha512-hDDRlzE6rPeoj+5fsADqdUZl1OzqDYow4TB4Y/3PlKBD0ph1e6uPHzIQcv2Z65u2K0kpeByIyAjCmjn1hJgG0Q==} engines: {node: '>=18'} cpu: [mips64el] os: [linux] + '@esbuild/linux-mips64el@0.27.7': + resolution: {integrity: sha512-KabT5I6StirGfIz0FMgl1I+R1H73Gp0ofL9A3nG3i/cYFJzKHhouBV5VWK1CSgKvVaG4q1RNpCTR2LuTVB3fIw==} + engines: {node: '>=18'} + cpu: [mips64el] + os: [linux] + '@esbuild/linux-ppc64@0.25.2': resolution: {integrity: sha512-tsHu2RRSWzipmUi9UBDEzc0nLc4HtpZEI5Ba+Omms5456x5WaNuiG3u7xh5AO6sipnJ9r4cRWQB2tUjPyIkc6g==} engines: {node: '>=18'} cpu: [ppc64] os: [linux] + '@esbuild/linux-ppc64@0.27.7': + resolution: {integrity: sha512-gRsL4x6wsGHGRqhtI+ifpN/vpOFTQtnbsupUF5R5YTAg+y/lKelYR1hXbnBdzDjGbMYjVJLJTd2OFmMewAgwlQ==} + engines: {node: '>=18'} + cpu: [ppc64] + os: [linux] + '@esbuild/linux-riscv64@0.25.2': resolution: {integrity: sha512-k4LtpgV7NJQOml/10uPU0s4SAXGnowi5qBSjaLWMojNCUICNu7TshqHLAEbkBdAszL5TabfvQ48kK84hyFzjnw==} engines: {node: '>=18'} cpu: [riscv64] os: [linux] + '@esbuild/linux-riscv64@0.27.7': + resolution: {integrity: sha512-hL25LbxO1QOngGzu2U5xeXtxXcW+/GvMN3ejANqXkxZ/opySAZMrc+9LY/WyjAan41unrR3YrmtTsUpwT66InQ==} + engines: {node: '>=18'} + cpu: [riscv64] + os: [linux] + '@esbuild/linux-s390x@0.25.2': resolution: {integrity: sha512-GRa4IshOdvKY7M/rDpRR3gkiTNp34M0eLTaC1a08gNrh4u488aPhuZOCpkF6+2wl3zAN7L7XIpOFBhnaE3/Q8Q==} engines: {node: '>=18'} cpu: [s390x] os: [linux] + '@esbuild/linux-s390x@0.27.7': + resolution: {integrity: sha512-2k8go8Ycu1Kb46vEelhu1vqEP+UeRVj2zY1pSuPdgvbd5ykAw82Lrro28vXUrRmzEsUV0NzCf54yARIK8r0fdw==} + engines: {node: '>=18'} + cpu: [s390x] + os: [linux] + '@esbuild/linux-x64@0.25.2': resolution: {integrity: sha512-QInHERlqpTTZ4FRB0fROQWXcYRD64lAoiegezDunLpalZMjcUcld3YzZmVJ2H/Cp0wJRZ8Xtjtj0cEHhYc/uUg==} engines: {node: '>=18'} cpu: [x64] os: [linux] + '@esbuild/linux-x64@0.27.7': + resolution: {integrity: sha512-hzznmADPt+OmsYzw1EE33ccA+HPdIqiCRq7cQeL1Jlq2gb1+OyWBkMCrYGBJ+sxVzve2ZJEVeePbLM2iEIZSxA==} + engines: {node: '>=18'} + cpu: [x64] + os: [linux] + '@esbuild/netbsd-arm64@0.25.2': resolution: {integrity: sha512-talAIBoY5M8vHc6EeI2WW9d/CkiO9MQJ0IOWX8hrLhxGbro/vBXJvaQXefW2cP0z0nQVTdQ/eNyGFV1GSKrxfw==} engines: {node: '>=18'} cpu: [arm64] os: [netbsd] + '@esbuild/netbsd-arm64@0.27.7': + resolution: {integrity: sha512-b6pqtrQdigZBwZxAn1UpazEisvwaIDvdbMbmrly7cDTMFnw/+3lVxxCTGOrkPVnsYIosJJXAsILG9XcQS+Yu6w==} + engines: {node: '>=18'} + cpu: [arm64] + os: [netbsd] + '@esbuild/netbsd-x64@0.25.2': resolution: {integrity: sha512-voZT9Z+tpOxrvfKFyfDYPc4DO4rk06qamv1a/fkuzHpiVBMOhpjK+vBmWM8J1eiB3OLSMFYNaOaBNLXGChf5tg==} engines: {node: '>=18'} cpu: [x64] os: [netbsd] + '@esbuild/netbsd-x64@0.27.7': + resolution: {integrity: sha512-OfatkLojr6U+WN5EDYuoQhtM+1xco+/6FSzJJnuWiUw5eVcicbyK3dq5EeV/QHT1uy6GoDhGbFpprUiHUYggrw==} + engines: {node: '>=18'} + cpu: [x64] + os: [netbsd] + '@esbuild/openbsd-arm64@0.25.2': resolution: {integrity: sha512-dcXYOC6NXOqcykeDlwId9kB6OkPUxOEqU+rkrYVqJbK2hagWOMrsTGsMr8+rW02M+d5Op5NNlgMmjzecaRf7Tg==} engines: {node: '>=18'} cpu: [arm64] os: [openbsd] + '@esbuild/openbsd-arm64@0.27.7': + resolution: {integrity: sha512-AFuojMQTxAz75Fo8idVcqoQWEHIXFRbOc1TrVcFSgCZtQfSdc1RXgB3tjOn/krRHENUB4j00bfGjyl2mJrU37A==} + engines: {node: '>=18'} + cpu: [arm64] + os: [openbsd] + '@esbuild/openbsd-x64@0.25.2': resolution: {integrity: sha512-t/TkWwahkH0Tsgoq1Ju7QfgGhArkGLkF1uYz8nQS/PPFlXbP5YgRpqQR3ARRiC2iXoLTWFxc6DJMSK10dVXluw==} engines: {node: '>=18'} cpu: [x64] os: [openbsd] + '@esbuild/openbsd-x64@0.27.7': + resolution: {integrity: sha512-+A1NJmfM8WNDv5CLVQYJ5PshuRm/4cI6WMZRg1by1GwPIQPCTs1GLEUHwiiQGT5zDdyLiRM/l1G0Pv54gvtKIg==} + engines: {node: '>=18'} + cpu: [x64] + os: [openbsd] + + '@esbuild/openharmony-arm64@0.27.7': + resolution: {integrity: sha512-+KrvYb/C8zA9CU/g0sR6w2RBw7IGc5J2BPnc3dYc5VJxHCSF1yNMxTV5LQ7GuKteQXZtspjFbiuW5/dOj7H4Yw==} + engines: {node: '>=18'} + cpu: [arm64] + os: [openharmony] + '@esbuild/sunos-x64@0.25.2': resolution: {integrity: sha512-cfZH1co2+imVdWCjd+D1gf9NjkchVhhdpgb1q5y6Hcv9TP6Zi9ZG/beI3ig8TvwT9lH9dlxLq5MQBBgwuj4xvA==} engines: {node: '>=18'} cpu: [x64] os: [sunos] + '@esbuild/sunos-x64@0.27.7': + resolution: {integrity: sha512-ikktIhFBzQNt/QDyOL580ti9+5mL/YZeUPKU2ivGtGjdTYoqz6jObj6nOMfhASpS4GU4Q/Clh1QtxWAvcYKamA==} + engines: {node: '>=18'} + cpu: [x64] + os: [sunos] + '@esbuild/win32-arm64@0.25.2': resolution: {integrity: sha512-7Loyjh+D/Nx/sOTzV8vfbB3GJuHdOQyrOryFdZvPHLf42Tk9ivBU5Aedi7iyX+x6rbn2Mh68T4qq1SDqJBQO5Q==} engines: {node: '>=18'} cpu: [arm64] os: [win32] + '@esbuild/win32-arm64@0.27.7': + resolution: {integrity: sha512-7yRhbHvPqSpRUV7Q20VuDwbjW5kIMwTHpptuUzV+AA46kiPze5Z7qgt6CLCK3pWFrHeNfDd1VKgyP4O+ng17CA==} + engines: {node: '>=18'} + cpu: [arm64] + os: [win32] + '@esbuild/win32-ia32@0.25.2': resolution: {integrity: sha512-WRJgsz9un0nqZJ4MfhabxaD9Ft8KioqU3JMinOTvobbX6MOSUigSBlogP8QB3uxpJDsFS6yN+3FDBdqE5lg9kg==} engines: {node: '>=18'} cpu: [ia32] os: [win32] + '@esbuild/win32-ia32@0.27.7': + resolution: {integrity: sha512-SmwKXe6VHIyZYbBLJrhOoCJRB/Z1tckzmgTLfFYOfpMAx63BJEaL9ExI8x7v0oAO3Zh6D/Oi1gVxEYr5oUCFhw==} + engines: {node: '>=18'} + cpu: [ia32] + os: [win32] + '@esbuild/win32-x64@0.25.2': resolution: {integrity: sha512-kM3HKb16VIXZyIeVrM1ygYmZBKybX8N4p754bw390wGO3Tf2j4L2/WYL+4suWujpgf6GBYs3jv7TyUivdd05JA==} engines: {node: '>=18'} cpu: [x64] os: [win32] + '@esbuild/win32-x64@0.27.7': + resolution: {integrity: sha512-56hiAJPhwQ1R4i+21FVF7V8kSD5zZTdHcVuRFMW0hn753vVfQN8xlx4uOPT4xoGH0Z/oVATuR82AiqSTDIpaHg==} + engines: {node: '>=18'} + cpu: [x64] + os: [win32] + '@eslint-community/eslint-utils@4.9.0': resolution: {integrity: sha512-ayVFHdtZ+hsq1t2Dy24wCmGXGe4q9Gu3smhLYALJrr473ZH27MsnSL+LKUlimp4BWJqMDMLmPpx/Q9R3OAlL4g==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -3227,6 +3386,11 @@ packages: engines: {node: '>=18'} hasBin: true + esbuild@0.27.7: + resolution: {integrity: sha512-IxpibTjyVnmrIQo5aqNpCgoACA/dTKLTlhMHihVHhdkxKyPO1uBBthumT0rdHmcsk9uMonIWS0m4FljWzILh3w==} + engines: {node: '>=18'} + hasBin: true + escalade@3.2.0: resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==} engines: {node: '>=6'} @@ -3484,6 +3648,9 @@ packages: resolution: {integrity: sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==} engines: {node: '>=8'} + get-tsconfig@4.14.0: + resolution: {integrity: sha512-yTb+8DXzDREzgvYmh6s9vHsSVCHeC0G3PI5bEXNBHtmshPnO+S5O7qgLEOn0I5QvMy6kpZN8K1NKGyilLb93wA==} + git-raw-commits@5.0.0: resolution: {integrity: sha512-I2ZXrXeOc0KrCvC7swqtIFXFN+rbjnC7b2T943tvemIOVNl+XP8YnA9UVwqFhzzLClnSA60KR/qEjLpXzs73Qg==} engines: {node: '>=18'} @@ -4465,6 +4632,9 @@ packages: resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==} engines: {node: '>=8'} + resolve-pkg-maps@1.0.0: + resolution: {integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==} + resolve@1.22.10: resolution: {integrity: sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w==} engines: {node: '>= 0.4'} @@ -4827,6 +4997,11 @@ packages: '@swc/wasm': optional: true + tsx@4.21.0: + resolution: {integrity: sha512-5C1sg4USs1lfG0GFb2RLXsdpXqBSEhAaA/0kPL01wxzpMqLILNxIxIOKiILz+cdg/pLnOUxFYOR5yhHU666wbw==} + engines: {node: '>=18.0.0'} + hasBin: true + type-check@0.4.0: resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} engines: {node: '>= 0.8.0'} @@ -6541,78 +6716,156 @@ snapshots: '@esbuild/aix-ppc64@0.25.2': optional: true + '@esbuild/aix-ppc64@0.27.7': + optional: true + '@esbuild/android-arm64@0.25.2': optional: true + '@esbuild/android-arm64@0.27.7': + optional: true + '@esbuild/android-arm@0.25.2': optional: true + '@esbuild/android-arm@0.27.7': + optional: true + '@esbuild/android-x64@0.25.2': optional: true + '@esbuild/android-x64@0.27.7': + optional: true + '@esbuild/darwin-arm64@0.25.2': optional: true + '@esbuild/darwin-arm64@0.27.7': + optional: true + '@esbuild/darwin-x64@0.25.2': optional: true + '@esbuild/darwin-x64@0.27.7': + optional: true + '@esbuild/freebsd-arm64@0.25.2': optional: true + '@esbuild/freebsd-arm64@0.27.7': + optional: true + '@esbuild/freebsd-x64@0.25.2': optional: true + '@esbuild/freebsd-x64@0.27.7': + optional: true + '@esbuild/linux-arm64@0.25.2': optional: true + '@esbuild/linux-arm64@0.27.7': + optional: true + '@esbuild/linux-arm@0.25.2': optional: true + '@esbuild/linux-arm@0.27.7': + optional: true + '@esbuild/linux-ia32@0.25.2': optional: true + '@esbuild/linux-ia32@0.27.7': + optional: true + '@esbuild/linux-loong64@0.25.2': optional: true + '@esbuild/linux-loong64@0.27.7': + optional: true + '@esbuild/linux-mips64el@0.25.2': optional: true + '@esbuild/linux-mips64el@0.27.7': + optional: true + '@esbuild/linux-ppc64@0.25.2': optional: true + '@esbuild/linux-ppc64@0.27.7': + optional: true + '@esbuild/linux-riscv64@0.25.2': optional: true + '@esbuild/linux-riscv64@0.27.7': + optional: true + '@esbuild/linux-s390x@0.25.2': optional: true + '@esbuild/linux-s390x@0.27.7': + optional: true + '@esbuild/linux-x64@0.25.2': optional: true + '@esbuild/linux-x64@0.27.7': + optional: true + '@esbuild/netbsd-arm64@0.25.2': optional: true + '@esbuild/netbsd-arm64@0.27.7': + optional: true + '@esbuild/netbsd-x64@0.25.2': optional: true + '@esbuild/netbsd-x64@0.27.7': + optional: true + '@esbuild/openbsd-arm64@0.25.2': optional: true + '@esbuild/openbsd-arm64@0.27.7': + optional: true + '@esbuild/openbsd-x64@0.25.2': optional: true + '@esbuild/openbsd-x64@0.27.7': + optional: true + + '@esbuild/openharmony-arm64@0.27.7': + optional: true + '@esbuild/sunos-x64@0.25.2': optional: true + '@esbuild/sunos-x64@0.27.7': + optional: true + '@esbuild/win32-arm64@0.25.2': optional: true + '@esbuild/win32-arm64@0.27.7': + optional: true + '@esbuild/win32-ia32@0.25.2': optional: true + '@esbuild/win32-ia32@0.27.7': + optional: true + '@esbuild/win32-x64@0.25.2': optional: true + '@esbuild/win32-x64@0.27.7': + optional: true + '@eslint-community/eslint-utils@4.9.0(eslint@9.39.2(jiti@2.4.2))': dependencies: eslint: 9.39.2(jiti@2.4.2) @@ -7361,13 +7614,13 @@ snapshots: chai: 5.2.0 tinyrainbow: 2.0.0 - '@vitest/mocker@3.2.4(vite@6.2.4(@types/node@22.13.17)(jiti@2.4.2)(sass@1.86.1)(yaml@2.7.1))': + '@vitest/mocker@3.2.4(vite@6.2.4(@types/node@22.13.17)(jiti@2.4.2)(sass@1.86.1)(tsx@4.21.0)(yaml@2.7.1))': dependencies: '@vitest/spy': 3.2.4 estree-walker: 3.0.3 magic-string: 0.30.17 optionalDependencies: - vite: 6.2.4(@types/node@22.13.17)(jiti@2.4.2)(sass@1.86.1)(yaml@2.7.1) + vite: 6.2.4(@types/node@22.13.17)(jiti@2.4.2)(sass@1.86.1)(tsx@4.21.0)(yaml@2.7.1) '@vitest/pretty-format@3.0.4': dependencies: @@ -7402,7 +7655,7 @@ snapshots: sirv: 3.0.1 tinyglobby: 0.2.14 tinyrainbow: 2.0.0 - vitest: 3.2.4(@types/node@22.13.17)(@vitest/ui@3.0.4(vitest@3.2.4))(jiti@2.4.2)(sass@1.86.1)(yaml@2.7.1) + vitest: 3.2.4(@types/node@22.13.17)(@vitest/ui@3.0.4)(jiti@2.4.2)(sass@1.86.1)(tsx@4.21.0)(yaml@2.7.1) '@vitest/utils@3.0.4': dependencies: @@ -8174,6 +8427,35 @@ snapshots: '@esbuild/win32-ia32': 0.25.2 '@esbuild/win32-x64': 0.25.2 + esbuild@0.27.7: + optionalDependencies: + '@esbuild/aix-ppc64': 0.27.7 + '@esbuild/android-arm': 0.27.7 + '@esbuild/android-arm64': 0.27.7 + '@esbuild/android-x64': 0.27.7 + '@esbuild/darwin-arm64': 0.27.7 + '@esbuild/darwin-x64': 0.27.7 + '@esbuild/freebsd-arm64': 0.27.7 + '@esbuild/freebsd-x64': 0.27.7 + '@esbuild/linux-arm': 0.27.7 + '@esbuild/linux-arm64': 0.27.7 + '@esbuild/linux-ia32': 0.27.7 + '@esbuild/linux-loong64': 0.27.7 + '@esbuild/linux-mips64el': 0.27.7 + '@esbuild/linux-ppc64': 0.27.7 + '@esbuild/linux-riscv64': 0.27.7 + '@esbuild/linux-s390x': 0.27.7 + '@esbuild/linux-x64': 0.27.7 + '@esbuild/netbsd-arm64': 0.27.7 + '@esbuild/netbsd-x64': 0.27.7 + '@esbuild/openbsd-arm64': 0.27.7 + '@esbuild/openbsd-x64': 0.27.7 + '@esbuild/openharmony-arm64': 0.27.7 + '@esbuild/sunos-x64': 0.27.7 + '@esbuild/win32-arm64': 0.27.7 + '@esbuild/win32-ia32': 0.27.7 + '@esbuild/win32-x64': 0.27.7 + escalade@3.2.0: {} escape-string-regexp@2.0.0: {} @@ -8467,6 +8749,10 @@ snapshots: dependencies: pump: 3.0.2 + get-tsconfig@4.14.0: + dependencies: + resolve-pkg-maps: 1.0.0 + git-raw-commits@5.0.0(conventional-commits-filter@5.0.0)(conventional-commits-parser@6.1.0): dependencies: '@conventional-changelog/git-client': 1.0.1(conventional-commits-filter@5.0.0)(conventional-commits-parser@6.1.0) @@ -9511,6 +9797,8 @@ snapshots: resolve-from@5.0.0: {} + resolve-pkg-maps@1.0.0: {} + resolve@1.22.10: dependencies: is-core-module: 2.16.1 @@ -9904,6 +10192,13 @@ snapshots: v8-compile-cache-lib: 3.0.1 yn: 3.1.1 + tsx@4.21.0: + dependencies: + esbuild: 0.27.7 + get-tsconfig: 4.14.0 + optionalDependencies: + fsevents: 2.3.3 + type-check@0.4.0: dependencies: prelude-ls: 1.2.1 @@ -10046,13 +10341,13 @@ snapshots: '@types/unist': 3.0.3 vfile-message: 4.0.2 - vite-node@3.2.4(@types/node@22.13.17)(jiti@2.4.2)(sass@1.86.1)(yaml@2.7.1): + vite-node@3.2.4(@types/node@22.13.17)(jiti@2.4.2)(sass@1.86.1)(tsx@4.21.0)(yaml@2.7.1): dependencies: cac: 6.7.14 debug: 4.4.3 es-module-lexer: 1.7.0 pathe: 2.0.3 - vite: 6.2.4(@types/node@22.13.17)(jiti@2.4.2)(sass@1.86.1)(yaml@2.7.1) + vite: 6.2.4(@types/node@22.13.17)(jiti@2.4.2)(sass@1.86.1)(tsx@4.21.0)(yaml@2.7.1) transitivePeerDependencies: - '@types/node' - jiti @@ -10067,7 +10362,7 @@ snapshots: - tsx - yaml - vite@6.2.4(@types/node@22.13.17)(jiti@2.4.2)(sass@1.86.1)(yaml@2.7.1): + vite@6.2.4(@types/node@22.13.17)(jiti@2.4.2)(sass@1.86.1)(tsx@4.21.0)(yaml@2.7.1): dependencies: esbuild: 0.25.2 postcss: 8.5.3 @@ -10077,15 +10372,16 @@ snapshots: fsevents: 2.3.3 jiti: 2.4.2 sass: 1.86.1 + tsx: 4.21.0 yaml: 2.7.1 vitest-mock-commonjs@1.0.2: {} - vitest@3.2.4(@types/node@22.13.17)(@vitest/ui@3.0.4(vitest@3.2.4))(jiti@2.4.2)(sass@1.86.1)(yaml@2.7.1): + vitest@3.2.4(@types/node@22.13.17)(@vitest/ui@3.0.4)(jiti@2.4.2)(sass@1.86.1)(tsx@4.21.0)(yaml@2.7.1): dependencies: '@types/chai': 5.2.2 '@vitest/expect': 3.2.4 - '@vitest/mocker': 3.2.4(vite@6.2.4(@types/node@22.13.17)(jiti@2.4.2)(sass@1.86.1)(yaml@2.7.1)) + '@vitest/mocker': 3.2.4(vite@6.2.4(@types/node@22.13.17)(jiti@2.4.2)(sass@1.86.1)(tsx@4.21.0)(yaml@2.7.1)) '@vitest/pretty-format': 3.2.4 '@vitest/runner': 3.2.4 '@vitest/snapshot': 3.2.4 @@ -10103,8 +10399,8 @@ snapshots: tinyglobby: 0.2.14 tinypool: 1.1.1 tinyrainbow: 2.0.0 - vite: 6.2.4(@types/node@22.13.17)(jiti@2.4.2)(sass@1.86.1)(yaml@2.7.1) - vite-node: 3.2.4(@types/node@22.13.17)(jiti@2.4.2)(sass@1.86.1)(yaml@2.7.1) + vite: 6.2.4(@types/node@22.13.17)(jiti@2.4.2)(sass@1.86.1)(tsx@4.21.0)(yaml@2.7.1) + vite-node: 3.2.4(@types/node@22.13.17)(jiti@2.4.2)(sass@1.86.1)(tsx@4.21.0)(yaml@2.7.1) why-is-node-running: 2.3.0 optionalDependencies: '@types/node': 22.13.17 diff --git a/test/vitest-scripts/run-vitest.ts b/test/vitest-scripts/run-vitest.ts index a3c23780b3f..078dd91b1bd 100644 --- a/test/vitest-scripts/run-vitest.ts +++ b/test/vitest-scripts/run-vitest.ts @@ -1,4 +1,4 @@ -#!/usr/bin/env ts-node +#!/usr/bin/env tsx import isCI from "is-ci" import { startVitest } from "vitest/node" @@ -7,6 +7,8 @@ import { buildWeightedFiles, computeShardCount, splitIntoShards } from "./shard- import { SHARD_INDEX, SupportedPlatforms, TEST_FILES_PATTERN } from "./smart-config.js" import SmartSequencer from "./vitest-smart-sequencer.js" +const __dirname = import.meta.dirname + const testRegex = TEST_FILES_PATTERN?.split(",") const includeRegex = `(${testRegex.join("|")})` console.log("TEST_FILES pattern", includeRegex) diff --git a/test/vitest-scripts/smart-config.ts b/test/vitest-scripts/smart-config.ts index c5ba6cbabf0..77eceb2b65a 100644 --- a/test/vitest-scripts/smart-config.ts +++ b/test/vitest-scripts/smart-config.ts @@ -1,5 +1,7 @@ import * as path from "path" +const __dirname = import.meta.dirname + export type TargetPlatform = "darwin" | "win32" | "linux" | "current" export type SupportedPlatforms = Exclude From dfe80f8aa8465f5ed0b0235c9e94ee855fd66aa3 Mon Sep 17 00:00:00 2001 From: Mike Maietta Date: Thu, 30 Apr 2026 16:38:06 -0700 Subject: [PATCH 37/65] tests run --- .../app-builder-lib/helpers/dynamic-import.js | 27 ++++++++++++++ .../app-builder-lib/helpers/remote-rebuild.js | 36 +++++++++++++++++++ .../app-builder-lib/src/ProtonFramework.ts | 3 ++ .../app-builder-lib/src/fileTransformer.ts | 3 ++ packages/app-builder-lib/src/linuxPackager.ts | 8 ++--- packages/app-builder-lib/src/macPackager.ts | 3 ++ .../app-builder-lib/src/util/config/load.ts | 3 ++ packages/app-builder-lib/src/util/resolve.ts | 3 ++ .../app-builder-lib/src/vm/ParallelsVm.ts | 3 ++ packages/app-builder-lib/src/winPackager.ts | 9 +++-- packages/electron-builder/src/cli/cli.ts | 3 ++ packages/electron-builder/src/cli/start.ts | 4 +++ packages/electron-updater/src/AppUpdater.ts | 3 ++ packages/electron-updater/src/BaseUpdater.ts | 3 ++ .../src/ElectronAppAdapter.ts | 3 ++ packages/electron-updater/src/MacUpdater.ts | 3 ++ packages/electron-updater/src/NsisUpdater.ts | 3 ++ .../src/electronHttpExecutor.ts | 3 ++ test/src/BuildTest.ts | 3 ++ test/src/ExtraBuildResourcesTest.ts | 3 ++ test/src/extraMetadataTest.ts | 3 ++ test/src/helpers/downloadElectron.ts | 6 +++- test/src/helpers/fileAssert.ts | 3 ++ test/src/helpers/packTester.ts | 3 ++ test/src/updater/blackboxUpdateTest.ts | 2 +- 25 files changed, 137 insertions(+), 9 deletions(-) create mode 100644 packages/app-builder-lib/helpers/dynamic-import.js create mode 100644 packages/app-builder-lib/helpers/remote-rebuild.js diff --git a/packages/app-builder-lib/helpers/dynamic-import.js b/packages/app-builder-lib/helpers/dynamic-import.js new file mode 100644 index 00000000000..316caeb7143 --- /dev/null +++ b/packages/app-builder-lib/helpers/dynamic-import.js @@ -0,0 +1,27 @@ +import { createRequire } from "node:module" +import { pathToFileURL } from "node:url" +import { existsSync } from "node:fs" + +const require = createRequire(import.meta.url) + +export async function dynamicImport(path) { + try { + return await import(existsSync(path) ? pathToFileURL(path).href : path) + } catch (error) { + return Promise.reject(error) + } +} + +/** Like {@link dynamicImport()}, except it tries out {@link require()} first. */ +export async function dynamicImportMaybe(path) { + try { + return require(path) + } catch (e1) { + try { + return await dynamicImport(path) + } catch (e2) { + e1.message = "\n1. " + e1.message + "\n2. " + e2.message + throw e1 + } + } +} diff --git a/packages/app-builder-lib/helpers/remote-rebuild.js b/packages/app-builder-lib/helpers/remote-rebuild.js new file mode 100644 index 00000000000..7d82d390e5f --- /dev/null +++ b/packages/app-builder-lib/helpers/remote-rebuild.js @@ -0,0 +1,36 @@ +if (!process.send) { + console.error("The remote rebuilder expects to be spawned with an IPC channel") + process.exit(1) +} + +const rebuilder = rebuilder => { + rebuilder.lifecycle.on("module-found", moduleName => process.send?.({ msg: "module-found", moduleName })) + rebuilder.lifecycle.on("module-done", moduleName => process.send?.({ msg: "module-done", moduleName })) + rebuilder.lifecycle.on("module-skip", moduleName => process.send?.({ msg: "module-skip", moduleName })) + + return rebuilder + .then(() => { + process.send?.({ msg: "rebuild-done" }) + return process.exit(0) + }) + .catch(err => { + process.send?.({ + msg: "rebuild-error", + err: { + message: err.message, + stack: err.stack, + }, + }) + process.exit(0) + }) +} + +const main = async () => { + const options = JSON.parse(process.argv[2]) + return import("@electron/rebuild").then(module => { + const { rebuild } = module + return rebuilder(rebuild(options)) + }) +} + +main() diff --git a/packages/app-builder-lib/src/ProtonFramework.ts b/packages/app-builder-lib/src/ProtonFramework.ts index b8015285020..12c0d7d23f8 100644 --- a/packages/app-builder-lib/src/ProtonFramework.ts +++ b/packages/app-builder-lib/src/ProtonFramework.ts @@ -1,4 +1,7 @@ +import { createRequire } from "node:module" import { FileTransformer, log } from "builder-util" + +const require = createRequire(import.meta.url) import { safeStringifyJson } from "builder-util-runtime" import { Platform } from "./core.js" import { NODE_MODULES_PATTERN } from "./fileTransformer.js" diff --git a/packages/app-builder-lib/src/fileTransformer.ts b/packages/app-builder-lib/src/fileTransformer.ts index e411de8e303..8b045e4c66e 100644 --- a/packages/app-builder-lib/src/fileTransformer.ts +++ b/packages/app-builder-lib/src/fileTransformer.ts @@ -1,4 +1,7 @@ +import { createRequire } from "node:module" import { debug, deepAssign, FileTransformer, log } from "builder-util" + +const require = createRequire(import.meta.url) import { readFile } from "fs/promises" import * as path from "path" import { Configuration } from "./configuration.js" diff --git a/packages/app-builder-lib/src/linuxPackager.ts b/packages/app-builder-lib/src/linuxPackager.ts index 407fa91f021..390feb248bc 100644 --- a/packages/app-builder-lib/src/linuxPackager.ts +++ b/packages/app-builder-lib/src/linuxPackager.ts @@ -42,11 +42,11 @@ export class LinuxPackager extends PlatformPackager { const targetClass: typeof AppImageTarget | typeof SnapTarget | typeof FlatpakTarget | typeof FpmTarget | null = (() => { switch (name) { case "appimage": - return require("./targets/appimage/AppImageTarget").default + return AppImageTarget case "snap": - return require("./targets/snap").default + return SnapTarget case "flatpak": - return require("./targets/FlatpakTarget").default + return FlatpakTarget case "deb": case "rpm": case "sh": @@ -54,7 +54,7 @@ export class LinuxPackager extends PlatformPackager { case "pacman": case "apk": case "p5p": - return require("./targets/FpmTarget").default + return FpmTarget default: return null } diff --git a/packages/app-builder-lib/src/macPackager.ts b/packages/app-builder-lib/src/macPackager.ts index f980aeabe24..80bec7cf50d 100644 --- a/packages/app-builder-lib/src/macPackager.ts +++ b/packages/app-builder-lib/src/macPackager.ts @@ -1,4 +1,7 @@ +import { createRequire } from "node:module" import { notarize } from "@electron/notarize" + +const require = createRequire(import.meta.url) import { NotarizeOptionsNotaryTool, NotaryToolKeychainCredentials } from "@electron/notarize/lib/types.js" import { PerFileSignOptions, SignOptions } from "@electron/osx-sign/dist/cjs/types.js" import { Identity } from "@electron/osx-sign/dist/cjs/util-identities.js" diff --git a/packages/app-builder-lib/src/util/config/load.ts b/packages/app-builder-lib/src/util/config/load.ts index 62f64fb6f00..ecbfa7ed1d6 100644 --- a/packages/app-builder-lib/src/util/config/load.ts +++ b/packages/app-builder-lib/src/util/config/load.ts @@ -1,4 +1,7 @@ +import { createRequire } from "node:module" import { log } from "builder-util" + +const require = createRequire(import.meta.url) import { parse as parseEnv } from "dotenv" import { DotenvParseInput, expand } from "dotenv-expand" import { promises as fs } from "fs" diff --git a/packages/app-builder-lib/src/util/resolve.ts b/packages/app-builder-lib/src/util/resolve.ts index 85792d89a75..39c35c6d9f7 100644 --- a/packages/app-builder-lib/src/util/resolve.ts +++ b/packages/app-builder-lib/src/util/resolve.ts @@ -1,8 +1,11 @@ +import { createRequire } from "node:module" import { log } from "builder-util" import debug from "debug" import * as path from "path" import * as requireMaybe from "../../helpers/dynamic-import.js" +const require = createRequire(import.meta.url) + export async function resolveModule(type: string | undefined, name: string): Promise { try { return requireMaybe.dynamicImportMaybe(name) diff --git a/packages/app-builder-lib/src/vm/ParallelsVm.ts b/packages/app-builder-lib/src/vm/ParallelsVm.ts index 948a4e46bdf..2e33498adfc 100644 --- a/packages/app-builder-lib/src/vm/ParallelsVm.ts +++ b/packages/app-builder-lib/src/vm/ParallelsVm.ts @@ -1,4 +1,7 @@ +import { createRequire } from "node:module" import { DebugLogger, ExtraSpawnOptions, exec, log, spawn } from "builder-util" + +const require = createRequire(import.meta.url) import { ExecFileOptions, SpawnOptions, execFileSync } from "child_process" import { VmManager } from "./vm.js" diff --git a/packages/app-builder-lib/src/winPackager.ts b/packages/app-builder-lib/src/winPackager.ts index 97345c9d1ac..8cf581e4048 100644 --- a/packages/app-builder-lib/src/winPackager.ts +++ b/packages/app-builder-lib/src/winPackager.ts @@ -1,4 +1,7 @@ +import { createRequire } from "node:module" import { Arch, CopyFileTransformer, executeAppBuilder, exists, FileTransformer, InvalidConfigurationError, log, use, walk } from "builder-util" + +const require = createRequire(import.meta.url) import { Nullish } from "builder-util-runtime" import { isCI } from "ci-info" import { createHash } from "crypto" @@ -96,13 +99,13 @@ export class WinPackager extends PlatformPackager { } case "appx": - return require("./targets/AppxTarget").default + return AppXTarget case "msi": - return require("./targets/MsiTarget").default + return MsiTarget case "msiwrapped": - return require("./targets/MsiWrappedTarget").default + return MsiWrappedTarget default: return null diff --git a/packages/electron-builder/src/cli/cli.ts b/packages/electron-builder/src/cli/cli.ts index 6869c836378..809934eea37 100644 --- a/packages/electron-builder/src/cli/cli.ts +++ b/packages/electron-builder/src/cli/cli.ts @@ -1,6 +1,9 @@ #! /usr/bin/env node +import { createRequire } from "node:module" import { getElectronVersion } from "app-builder-lib" + +const require = createRequire(import.meta.url) import { loadEnv } from "app-builder-lib" import { nodeGypRebuild } from "app-builder-lib" import { ExecError, InvalidConfigurationError, log } from "builder-util" diff --git a/packages/electron-builder/src/cli/start.ts b/packages/electron-builder/src/cli/start.ts index b54d293f388..40a1cd7cd5f 100644 --- a/packages/electron-builder/src/cli/start.ts +++ b/packages/electron-builder/src/cli/start.ts @@ -1,3 +1,7 @@ +import { createRequire } from "node:module" + +const require = createRequire(import.meta.url) + /** @internal */ export function start() { require("electron-webpack/dev-runner") diff --git a/packages/electron-updater/src/AppUpdater.ts b/packages/electron-updater/src/AppUpdater.ts index 4af324c93f4..4d190bdc90a 100644 --- a/packages/electron-updater/src/AppUpdater.ts +++ b/packages/electron-updater/src/AppUpdater.ts @@ -1,3 +1,4 @@ +import { createRequire } from "node:module" import { AllPublishOptions, asArray, @@ -37,6 +38,8 @@ import { GenericDifferentialDownloader } from "./differentialDownloader/GenericD import { DOWNLOAD_PROGRESS, Logger, ResolvedUpdateFileInfo, UPDATE_DOWNLOADED, UpdateCheckResult, UpdateDownloadedEvent, UpdaterSignal } from "./types.js" import { VerifyUpdateSupport } from "./main.js" +const require = createRequire(import.meta.url) + export type AppUpdaterEvents = { error: (error: Error, message?: string) => void login: (info: AuthInfo, callback: LoginCallback) => void diff --git a/packages/electron-updater/src/BaseUpdater.ts b/packages/electron-updater/src/BaseUpdater.ts index e516a358ffb..ef118136d89 100644 --- a/packages/electron-updater/src/BaseUpdater.ts +++ b/packages/electron-updater/src/BaseUpdater.ts @@ -1,4 +1,7 @@ +import { createRequire } from "node:module" import { AllPublishOptions } from "builder-util-runtime" + +const require = createRequire(import.meta.url) import { spawn, SpawnOptions, spawnSync, StdioOptions } from "child_process" import { AppAdapter } from "./AppAdapter.js" import { AppUpdater, DownloadExecutorTask } from "./AppUpdater.js" diff --git a/packages/electron-updater/src/ElectronAppAdapter.ts b/packages/electron-updater/src/ElectronAppAdapter.ts index 748e6930d18..4a4c0136971 100644 --- a/packages/electron-updater/src/ElectronAppAdapter.ts +++ b/packages/electron-updater/src/ElectronAppAdapter.ts @@ -1,4 +1,7 @@ +import { createRequire } from "node:module" import * as path from "path" + +const require = createRequire(import.meta.url) import { AppAdapter, getAppCacheDir } from "./AppAdapter.js" export class ElectronAppAdapter implements AppAdapter { diff --git a/packages/electron-updater/src/MacUpdater.ts b/packages/electron-updater/src/MacUpdater.ts index 3405682d218..cb4a7c445d6 100644 --- a/packages/electron-updater/src/MacUpdater.ts +++ b/packages/electron-updater/src/MacUpdater.ts @@ -1,4 +1,7 @@ +import { createRequire } from "node:module" import { AllPublishOptions, newError, safeStringifyJson } from "builder-util-runtime" + +const require = createRequire(import.meta.url) import fsExtra from "fs-extra" import { createReadStream } from "fs" import * as path from "path" diff --git a/packages/electron-updater/src/NsisUpdater.ts b/packages/electron-updater/src/NsisUpdater.ts index f2a4f95781c..8791a2ceb54 100644 --- a/packages/electron-updater/src/NsisUpdater.ts +++ b/packages/electron-updater/src/NsisUpdater.ts @@ -1,3 +1,4 @@ +import { createRequire } from "node:module" import { AllPublishOptions, newError, PackageFileInfo, CURRENT_APP_INSTALLER_FILE_NAME, CURRENT_APP_PACKAGE_FILE_NAME } from "builder-util-runtime" import * as path from "path" import { AppAdapter } from "./AppAdapter.js" @@ -12,6 +13,8 @@ import fsExtra from "fs-extra" import { verifySignature } from "./windowsExecutableCodeSignatureVerifier.js" import { URL } from "url" +const require = createRequire(import.meta.url) + export class NsisUpdater extends BaseUpdater { /** * Specify custom install directory path diff --git a/packages/electron-updater/src/electronHttpExecutor.ts b/packages/electron-updater/src/electronHttpExecutor.ts index 298db362a62..c4228ebd6e1 100644 --- a/packages/electron-updater/src/electronHttpExecutor.ts +++ b/packages/electron-updater/src/electronHttpExecutor.ts @@ -1,4 +1,7 @@ +import { createRequire } from "node:module" import { DownloadOptions, HttpExecutor, configureRequestOptions, configureRequestUrl } from "builder-util-runtime" + +const require = createRequire(import.meta.url) import type { AuthInfo } from "electron" import { RequestOptions } from "http" import Session = Electron.Session diff --git a/test/src/BuildTest.ts b/test/src/BuildTest.ts index 780a81eb7f3..c4fd1f39f03 100644 --- a/test/src/BuildTest.ts +++ b/test/src/BuildTest.ts @@ -1,3 +1,4 @@ +import { createRequire } from "node:module" import { checkBuildRequestOptions } from "app-builder-lib" import { doMergeConfigs } from "app-builder-lib" import { Arch, createTargets, DIR_TARGET, Platform } from "electron-builder" @@ -10,6 +11,8 @@ import { ELECTRON_VERSION } from "./helpers/testConfig.js" import { verifySmartUnpack } from "./helpers/verifySmartUnpack.js" import { PM } from "app-builder-lib" +const require = createRequire(import.meta.url) + test.ifLinux("cli", ({ expect }) => { // because these methods are internal const { configureBuildCommand, normalizeOptions } = require("electron-builder/out/builder") diff --git a/test/src/ExtraBuildResourcesTest.ts b/test/src/ExtraBuildResourcesTest.ts index ba266854225..898e0209c49 100644 --- a/test/src/ExtraBuildResourcesTest.ts +++ b/test/src/ExtraBuildResourcesTest.ts @@ -1,3 +1,4 @@ +import { createRequire } from "node:module" import { Arch, build, PackagerOptions, Platform } from "electron-builder" import * as fs from "fs" import * as path from "path" @@ -10,6 +11,8 @@ import * as unzipper from "unzipper" import { TmpDir } from "temp-file" import { readdir } from "fs/promises" +const require = createRequire(import.meta.url) + function createBuildResourcesTest(expect: ExpectStatic, packagerOptions: PackagerOptions) { return app( expect, diff --git a/test/src/extraMetadataTest.ts b/test/src/extraMetadataTest.ts index b908da4f61f..ee7bc3d663f 100644 --- a/test/src/extraMetadataTest.ts +++ b/test/src/extraMetadataTest.ts @@ -1,3 +1,4 @@ +import { createRequire } from "node:module" import { readAsarJson } from "app-builder-lib" import { Platform } from "electron-builder" import { coerceTypes } from "electron-builder" @@ -7,6 +8,8 @@ import { assertThat } from "./helpers/fileAssert.js" import { app, linuxDirTarget, modifyPackageJson } from "./helpers/packTester.js" import { ExpectStatic } from "vitest" +const require = createRequire(import.meta.url) + function createExtraMetadataTest(expect: ExpectStatic, asar: boolean) { return app( expect, diff --git a/test/src/helpers/downloadElectron.ts b/test/src/helpers/downloadElectron.ts index 772e69a5873..ba79d0fab17 100644 --- a/test/src/helpers/downloadElectron.ts +++ b/test/src/helpers/downloadElectron.ts @@ -1,9 +1,13 @@ +import { createRequire } from "node:module" +import { fileURLToPath } from "node:url" import { isCI as isCi } from "ci-info" import * as fs from "fs/promises" import * as path from "path" import { gte } from "semver" import { ELECTRON_VERSION, getElectronCacheDir } from "./testConfig.js" +const require = createRequire(import.meta.url) + const executeAppBuilder: (options: any) => Promise = require(path.join(import.meta.dirname, "../../..", "packages/builder-util")).executeAppBuilder export async function deleteOldElectronVersion(): Promise { @@ -64,7 +68,7 @@ export function downloadAllRequiredElectronVersions(): Promise { return executeAppBuilder(["download-electron", "--configuration", JSON.stringify(versions)]) } -if (require.main === module) { +if (process.argv[1] === fileURLToPath(import.meta.url)) { downloadAllRequiredElectronVersions().catch(error => { console.error((error.stack || error).toString()) process.exitCode = -1 diff --git a/test/src/helpers/fileAssert.ts b/test/src/helpers/fileAssert.ts index 64e20793144..45416aa5068 100644 --- a/test/src/helpers/fileAssert.ts +++ b/test/src/helpers/fileAssert.ts @@ -1,8 +1,11 @@ +import { createRequire } from "node:module" import { exists, statOrNull } from "builder-util" import * as fs from "fs/promises" import * as path from "path" import { ExpectStatic } from "vitest" +const require = createRequire(import.meta.url) + // http://joel-costigliola.github.io/assertj/ export function assertThat(expect: ExpectStatic, actual: any): Assertions { return new Assertions(expect, actual) diff --git a/test/src/helpers/packTester.ts b/test/src/helpers/packTester.ts index d5c8111b43a..cdaffd419b3 100644 --- a/test/src/helpers/packTester.ts +++ b/test/src/helpers/packTester.ts @@ -1,3 +1,4 @@ +import { createRequire } from "node:module" import { PublishManager } from "app-builder-lib" import { verifyAsarFileTree as _verifyAsarFileTree } from "./asarVerifier.js" import { computeArchToTargetNamesMap } from "app-builder-lib" @@ -30,6 +31,8 @@ import { createLazyProductionDeps } from "app-builder-lib" import { execSync } from "child_process" import { detectPackageManager } from "app-builder-lib" +const require = createRequire(import.meta.url) + const PACKAGE_MANAGER_VERSION_MAP = { [PM.NPM]: { cli: "npm", version: "9.8.1" }, [PM.YARN]: { cli: "yarn", version: "1.22.19" }, diff --git a/test/src/updater/blackboxUpdateTest.ts b/test/src/updater/blackboxUpdateTest.ts index 5880d207c08..275d519c1cd 100644 --- a/test/src/updater/blackboxUpdateTest.ts +++ b/test/src/updater/blackboxUpdateTest.ts @@ -236,7 +236,7 @@ async function doBuild( electron: ELECTRON_VERSION, "node-addon-api": "^8", } - const electronUpdaterPath = (pkg: string) => path.resolve(__dirname, "../../../packages", pkg) + const electronUpdaterPath = (pkg: string) => path.resolve(import.meta.dirname, "../../../packages", pkg) const updaterPath = electronUpdaterPath("electron-updater") const utilPath = electronUpdaterPath("builder-util-runtime") data.dependencies = { From 93efaa1dde682bc989ac6562ff192a32be97b9f9 Mon Sep 17 00:00:00 2001 From: Mike Maietta Date: Thu, 30 Apr 2026 16:40:06 -0700 Subject: [PATCH 38/65] add ignore --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index c8697f8f596..05da7fc80be 100644 --- a/.gitignore +++ b/.gitignore @@ -33,3 +33,4 @@ coverage /.yalc/ yalc.lock _vitest-smart-cache.json +.claude From 9a40713596a7397c44408dbbf116a408bf3505d0 Mon Sep 17 00:00:00 2001 From: Mike Maietta Date: Thu, 30 Apr 2026 16:45:54 -0700 Subject: [PATCH 39/65] adjust all imports to esm --- packages/builder-util/src/log.ts | 2 +- packages/builder-util/src/promise.ts | 2 +- packages/builder-util/src/util.ts | 2 +- packages/electron-builder/src/builder.ts | 2 +- packages/electron-builder/src/cli/cli.ts | 2 +- packages/electron-builder/src/cli/create-self-signed-cert.ts | 2 +- packages/electron-builder/src/cli/install-app-deps.ts | 3 ++- packages/electron-builder/src/publish.ts | 5 +++-- packages/electron-publish/src/publisher.ts | 2 +- 9 files changed, 12 insertions(+), 10 deletions(-) diff --git a/packages/builder-util/src/log.ts b/packages/builder-util/src/log.ts index 6ec024875f7..1fd6219f212 100644 --- a/packages/builder-util/src/log.ts +++ b/packages/builder-util/src/log.ts @@ -1,4 +1,4 @@ -import * as chalk from "chalk" +import chalk from "chalk" import { Chalk } from "chalk" import _debug from "debug" import WritableStream = NodeJS.WritableStream diff --git a/packages/builder-util/src/promise.ts b/packages/builder-util/src/promise.ts index 24e737df262..7e38a024ba1 100644 --- a/packages/builder-util/src/promise.ts +++ b/packages/builder-util/src/promise.ts @@ -1,4 +1,4 @@ -import * as chalk from "chalk" +import chalk from "chalk" export function printErrorAndExit(error: Error) { console.error(chalk.red((error.stack || error).toString())) diff --git a/packages/builder-util/src/util.ts b/packages/builder-util/src/util.ts index 15b9d42880f..b0d8960b7b6 100644 --- a/packages/builder-util/src/util.ts +++ b/packages/builder-util/src/util.ts @@ -1,6 +1,6 @@ import { appBuilderPath } from "app-builder-bin" import { retry, Nullish, safeStringifyJson } from "builder-util-runtime" -import * as chalk from "chalk" +import chalk from "chalk" import { ChildProcess, execFile, ExecFileOptions, SpawnOptions } from "child_process" import { spawn as _spawn } from "cross-spawn" import { createHash } from "crypto" diff --git a/packages/electron-builder/src/builder.ts b/packages/electron-builder/src/builder.ts index d28f3e37dcc..80a83501c52 100644 --- a/packages/electron-builder/src/builder.ts +++ b/packages/electron-builder/src/builder.ts @@ -1,6 +1,6 @@ import { build as _build, Configuration, DIR_TARGET, Packager, PackagerOptions, Platform } from "app-builder-lib" import { addValue, Arch, archFromString, deepAssign } from "builder-util" -import * as chalk from "chalk" +import chalk from "chalk" import { PublishOptions } from "electron-publish" import yargs, { Argv } from "yargs" import { hideBin } from "yargs/helpers" diff --git a/packages/electron-builder/src/cli/cli.ts b/packages/electron-builder/src/cli/cli.ts index 809934eea37..af7b8bc3fda 100644 --- a/packages/electron-builder/src/cli/cli.ts +++ b/packages/electron-builder/src/cli/cli.ts @@ -7,7 +7,7 @@ const require = createRequire(import.meta.url) import { loadEnv } from "app-builder-lib" import { nodeGypRebuild } from "app-builder-lib" import { ExecError, InvalidConfigurationError, log } from "builder-util" -import * as chalk from "chalk" +import chalk from "chalk" import fsExtra from "fs-extra" import { isCI } from "ci-info" import * as path from "path" diff --git a/packages/electron-builder/src/cli/create-self-signed-cert.ts b/packages/electron-builder/src/cli/create-self-signed-cert.ts index d34ac434cd5..ad51264aec4 100644 --- a/packages/electron-builder/src/cli/create-self-signed-cert.ts +++ b/packages/electron-builder/src/cli/create-self-signed-cert.ts @@ -1,7 +1,7 @@ import { getWindowsKitsBundle } from "app-builder-lib" import { archFromString, exec, log, spawn, TmpDir, unlinkIfExists } from "builder-util" import { sanitizeFileName } from "builder-util" -import * as chalk from "chalk" +import chalk from "chalk" import { mkdir } from "fs/promises" import * as path from "path" diff --git a/packages/electron-builder/src/cli/install-app-deps.ts b/packages/electron-builder/src/cli/install-app-deps.ts index a3cae0d2813..5ede341b503 100644 --- a/packages/electron-builder/src/cli/install-app-deps.ts +++ b/packages/electron-builder/src/cli/install-app-deps.ts @@ -1,4 +1,5 @@ #! /usr/bin/env node +import { fileURLToPath } from "node:url" import { computeDefaultAppDirectory, createLazyProductionDeps, determinePackageManagerEnv, getConfig, getElectronVersion, installOrRebuild, PACKAGE_VERSION } from "app-builder-lib" import { getArchCliNames, log, orNullIfFileNotExist, printErrorAndExit } from "builder-util" import fsExtra from "fs-extra" @@ -68,7 +69,7 @@ function main() { return installAppDeps(configureInstallAppDepsCommand(createYargs()).argv) } -if (require.main === module) { +if (process.argv[1] === fileURLToPath(import.meta.url)) { log.warn("please use as subcommand: electron-builder install-app-deps") main().catch(printErrorAndExit) } diff --git a/packages/electron-builder/src/publish.ts b/packages/electron-builder/src/publish.ts index fb9d1360b75..b91fdf43396 100644 --- a/packages/electron-builder/src/publish.ts +++ b/packages/electron-builder/src/publish.ts @@ -1,12 +1,13 @@ #! /usr/bin/env node +import { fileURLToPath } from "node:url" import { AppInfo, CancellationToken, Packager, PackagerOptions, PublishManager, PublishOptions, UploadTask, checkBuildRequestOptions } from "app-builder-lib" import { Publish } from "app-builder-lib" import { computeSafeArtifactNameIfNeeded } from "app-builder-lib" import { getConfig } from "app-builder-lib" import { InvalidConfigurationError, archFromString, log, printErrorAndExit } from "builder-util" import { PublishPolicy } from "electron-publish" -import * as chalk from "chalk" +import chalk from "chalk" import * as path from "path" import { Argv } from "yargs" import { BuildOptions, createYargs, normalizeOptions } from "./builder.js" @@ -124,7 +125,7 @@ function main() { return publish(configurePublishCommand(createYargs()).argv as any) } -if (require.main === module) { +if (process.argv[1] === fileURLToPath(import.meta.url)) { log.warn("please use as subcommand: electron-builder publish") main().catch(printErrorAndExit) } diff --git a/packages/electron-publish/src/publisher.ts b/packages/electron-publish/src/publisher.ts index 747d2d09b89..23d0c4390b2 100644 --- a/packages/electron-publish/src/publisher.ts +++ b/packages/electron-publish/src/publisher.ts @@ -1,6 +1,6 @@ import { log, PADDING } from "builder-util" import { ProgressCallbackTransform, PublishProvider } from "builder-util-runtime" -import * as chalk from "chalk" +import chalk from "chalk" import fsExtra from "fs-extra" import { PublishContext, UploadTask } from "./index.js" import { ProgressBar } from "./progress.js" From 60250027fcf812df05b4466221746b6fe47bda4a Mon Sep 17 00:00:00 2001 From: Mike Maietta Date: Thu, 30 Apr 2026 17:06:44 -0700 Subject: [PATCH 40/65] use esm Proxy instead of eager initialization --- packages/electron-updater/src/main.ts | 19 +- .../updater/blackboxUpdateTest.js.snap | 522 ++++++++++++++++++ test/src/updater/blackboxUpdateTest.ts | 2 +- 3 files changed, 541 insertions(+), 2 deletions(-) diff --git a/packages/electron-updater/src/main.ts b/packages/electron-updater/src/main.ts index 8cd5c986c1e..4ca89a388f2 100644 --- a/packages/electron-updater/src/main.ts +++ b/packages/electron-updater/src/main.ts @@ -63,7 +63,24 @@ function doLoadAutoUpdater(): AppUpdater { return updater } -export const autoUpdater: AppUpdater = doLoadAutoUpdater() +let _autoUpdater: AppUpdater | undefined + +export const autoUpdater: AppUpdater = new Proxy({} as AppUpdater, { + get(_target, prop) { + if (_autoUpdater === undefined) { + _autoUpdater = doLoadAutoUpdater() + } + const value = (_autoUpdater as any)[prop] + return typeof value === "function" ? value.bind(_autoUpdater) : value + }, + set(_target, prop, value) { + if (_autoUpdater === undefined) { + _autoUpdater = doLoadAutoUpdater() + } + ;(_autoUpdater as any)[prop] = value + return true + }, +}) /** * return null if verify signature succeed diff --git a/test/snapshots/updater/blackboxUpdateTest.js.snap b/test/snapshots/updater/blackboxUpdateTest.js.snap index 750f5b50236..e3ea0fa9ff3 100644 --- a/test/snapshots/updater/blackboxUpdateTest.js.snap +++ b/test/snapshots/updater/blackboxUpdateTest.js.snap @@ -2563,6 +2563,180 @@ exports[`linux > fedora - (zypper) 2`] = ` } `; +exports[`mac > arm64 1`] = ` +{ + "mac": [ + { + "arch": "arm64", + "file": "TestApp.zip", + "updateInfo": { + "sha512": "@sha512", + "size": "@size", + }, + }, + { + "file": "TestApp.zip.blockmap", + "safeArtifactName": "TestApp.zip.blockmap", + "updateInfo": { + "sha512": "@sha512", + "size": "@size", + }, + }, + { + "file": "latest-mac.yml", + "fileContent": { + "files": [ + { + "sha512": "@sha512", + "size": "@size", + "url": "TestApp.zip", + }, + ], + "path": "TestApp.zip", + "releaseDate": "@releaseDate", + "sha512": "@sha512", + "version": "1.0.0", + }, + }, + ], +} +`; + +exports[`mac > arm64 2`] = ` +{ + "CFBundleDisplayName": "TestApp", + "CFBundleExecutable": "TestApp", + "CFBundleIconFile": "icon.icns", + "CFBundleIdentifier": "com.test.app", + "CFBundleInfoDictionaryVersion": "6.0", + "CFBundleName": "TestApp", + "CFBundlePackageType": "APPL", + "CFBundleShortVersionString": "1.0.0", + "ElectronAsarIntegrity": { + "Resources/app.asar": { + "algorithm": "SHA256", + "hash": "hash", + }, + }, + "LSApplicationCategoryType": "your.app.category.type", + "LSEnvironment": { + "MallocNanoZone": "0", + }, + "NSAppTransportSecurity": { + "NSAllowsLocalNetworking": true, + "NSExceptionDomains": { + "127.0.0.1": { + "NSIncludesSubdomains": false, + "NSTemporaryExceptionAllowsInsecureHTTPLoads": true, + "NSTemporaryExceptionAllowsInsecureHTTPSLoads": false, + "NSTemporaryExceptionMinimumTLSVersion": "1.0", + "NSTemporaryExceptionRequiresForwardSecrecy": false, + }, + "localhost": { + "NSIncludesSubdomains": false, + "NSTemporaryExceptionAllowsInsecureHTTPLoads": true, + "NSTemporaryExceptionAllowsInsecureHTTPSLoads": false, + "NSTemporaryExceptionMinimumTLSVersion": "1.0", + "NSTemporaryExceptionRequiresForwardSecrecy": false, + }, + }, + }, + "NSBluetoothAlwaysUsageDescription": "This app needs access to Bluetooth", + "NSBluetoothPeripheralUsageDescription": "This app needs access to Bluetooth", + "NSHighResolutionCapable": true, + "NSPrefersDisplaySafeAreaCompatibilityMode": false, + "NSPrincipalClass": "AtomApplication", + "NSSupportsAutomaticGraphicsSwitching": true, +} +`; + +exports[`mac > arm64 3`] = ` +{ + "mac": [ + { + "arch": "arm64", + "file": "TestApp.zip", + "updateInfo": { + "sha512": "@sha512", + "size": "@size", + }, + }, + { + "file": "TestApp.zip.blockmap", + "safeArtifactName": "TestApp.zip.blockmap", + "updateInfo": { + "sha512": "@sha512", + "size": "@size", + }, + }, + { + "file": "latest-mac.yml", + "fileContent": { + "files": [ + { + "sha512": "@sha512", + "size": "@size", + "url": "TestApp.zip", + }, + ], + "path": "TestApp.zip", + "releaseDate": "@releaseDate", + "sha512": "@sha512", + "version": "1.0.1", + }, + }, + ], +} +`; + +exports[`mac > arm64 4`] = ` +{ + "CFBundleDisplayName": "TestApp", + "CFBundleExecutable": "TestApp", + "CFBundleIconFile": "icon.icns", + "CFBundleIdentifier": "com.test.app", + "CFBundleInfoDictionaryVersion": "6.0", + "CFBundleName": "TestApp", + "CFBundlePackageType": "APPL", + "CFBundleShortVersionString": "1.0.1", + "ElectronAsarIntegrity": { + "Resources/app.asar": { + "algorithm": "SHA256", + "hash": "hash", + }, + }, + "LSApplicationCategoryType": "your.app.category.type", + "LSEnvironment": { + "MallocNanoZone": "0", + }, + "NSAppTransportSecurity": { + "NSAllowsLocalNetworking": true, + "NSExceptionDomains": { + "127.0.0.1": { + "NSIncludesSubdomains": false, + "NSTemporaryExceptionAllowsInsecureHTTPLoads": true, + "NSTemporaryExceptionAllowsInsecureHTTPSLoads": false, + "NSTemporaryExceptionMinimumTLSVersion": "1.0", + "NSTemporaryExceptionRequiresForwardSecrecy": false, + }, + "localhost": { + "NSIncludesSubdomains": false, + "NSTemporaryExceptionAllowsInsecureHTTPLoads": true, + "NSTemporaryExceptionAllowsInsecureHTTPSLoads": false, + "NSTemporaryExceptionMinimumTLSVersion": "1.0", + "NSTemporaryExceptionRequiresForwardSecrecy": false, + }, + }, + }, + "NSBluetoothAlwaysUsageDescription": "This app needs access to Bluetooth", + "NSBluetoothPeripheralUsageDescription": "This app needs access to Bluetooth", + "NSHighResolutionCapable": true, + "NSPrefersDisplaySafeAreaCompatibilityMode": false, + "NSPrincipalClass": "AtomApplication", + "NSSupportsAutomaticGraphicsSwitching": true, +} +`; + exports[`mac > mac - universal 1`] = ` { "mac": [ @@ -2911,6 +3085,354 @@ exports[`mac > mac - x64 4`] = ` } `; +exports[`mac > universal 1`] = ` +{ + "mac": [ + { + "arch": "universal", + "file": "TestApp.zip", + "updateInfo": { + "sha512": "@sha512", + "size": "@size", + }, + }, + { + "file": "TestApp.zip.blockmap", + "safeArtifactName": "TestApp.zip.blockmap", + "updateInfo": { + "sha512": "@sha512", + "size": "@size", + }, + }, + { + "file": "latest-mac.yml", + "fileContent": { + "files": [ + { + "sha512": "@sha512", + "size": "@size", + "url": "TestApp.zip", + }, + ], + "path": "TestApp.zip", + "releaseDate": "@releaseDate", + "sha512": "@sha512", + "version": "1.0.0", + }, + }, + ], +} +`; + +exports[`mac > universal 2`] = ` +{ + "CFBundleDisplayName": "TestApp", + "CFBundleExecutable": "TestApp", + "CFBundleIconFile": "icon.icns", + "CFBundleIdentifier": "com.test.app", + "CFBundleInfoDictionaryVersion": "6.0", + "CFBundleName": "TestApp", + "CFBundlePackageType": "APPL", + "CFBundleShortVersionString": "1.0.0", + "ElectronAsarIntegrity": { + "Resources/app.asar": { + "algorithm": "SHA256", + "hash": "hash", + }, + }, + "LSApplicationCategoryType": "your.app.category.type", + "LSEnvironment": { + "MallocNanoZone": "0", + }, + "NSAppTransportSecurity": { + "NSAllowsLocalNetworking": true, + "NSExceptionDomains": { + "127.0.0.1": { + "NSIncludesSubdomains": false, + "NSTemporaryExceptionAllowsInsecureHTTPLoads": true, + "NSTemporaryExceptionAllowsInsecureHTTPSLoads": false, + "NSTemporaryExceptionMinimumTLSVersion": "1.0", + "NSTemporaryExceptionRequiresForwardSecrecy": false, + }, + "localhost": { + "NSIncludesSubdomains": false, + "NSTemporaryExceptionAllowsInsecureHTTPLoads": true, + "NSTemporaryExceptionAllowsInsecureHTTPSLoads": false, + "NSTemporaryExceptionMinimumTLSVersion": "1.0", + "NSTemporaryExceptionRequiresForwardSecrecy": false, + }, + }, + }, + "NSBluetoothAlwaysUsageDescription": "This app needs access to Bluetooth", + "NSBluetoothPeripheralUsageDescription": "This app needs access to Bluetooth", + "NSHighResolutionCapable": true, + "NSPrefersDisplaySafeAreaCompatibilityMode": false, + "NSPrincipalClass": "AtomApplication", + "NSSupportsAutomaticGraphicsSwitching": true, +} +`; + +exports[`mac > universal 3`] = ` +{ + "mac": [ + { + "arch": "universal", + "file": "TestApp.zip", + "updateInfo": { + "sha512": "@sha512", + "size": "@size", + }, + }, + { + "file": "TestApp.zip.blockmap", + "safeArtifactName": "TestApp.zip.blockmap", + "updateInfo": { + "sha512": "@sha512", + "size": "@size", + }, + }, + { + "file": "latest-mac.yml", + "fileContent": { + "files": [ + { + "sha512": "@sha512", + "size": "@size", + "url": "TestApp.zip", + }, + ], + "path": "TestApp.zip", + "releaseDate": "@releaseDate", + "sha512": "@sha512", + "version": "1.0.1", + }, + }, + ], +} +`; + +exports[`mac > universal 4`] = ` +{ + "CFBundleDisplayName": "TestApp", + "CFBundleExecutable": "TestApp", + "CFBundleIconFile": "icon.icns", + "CFBundleIdentifier": "com.test.app", + "CFBundleInfoDictionaryVersion": "6.0", + "CFBundleName": "TestApp", + "CFBundlePackageType": "APPL", + "CFBundleShortVersionString": "1.0.1", + "ElectronAsarIntegrity": { + "Resources/app.asar": { + "algorithm": "SHA256", + "hash": "hash", + }, + }, + "LSApplicationCategoryType": "your.app.category.type", + "LSEnvironment": { + "MallocNanoZone": "0", + }, + "NSAppTransportSecurity": { + "NSAllowsLocalNetworking": true, + "NSExceptionDomains": { + "127.0.0.1": { + "NSIncludesSubdomains": false, + "NSTemporaryExceptionAllowsInsecureHTTPLoads": true, + "NSTemporaryExceptionAllowsInsecureHTTPSLoads": false, + "NSTemporaryExceptionMinimumTLSVersion": "1.0", + "NSTemporaryExceptionRequiresForwardSecrecy": false, + }, + "localhost": { + "NSIncludesSubdomains": false, + "NSTemporaryExceptionAllowsInsecureHTTPLoads": true, + "NSTemporaryExceptionAllowsInsecureHTTPSLoads": false, + "NSTemporaryExceptionMinimumTLSVersion": "1.0", + "NSTemporaryExceptionRequiresForwardSecrecy": false, + }, + }, + }, + "NSBluetoothAlwaysUsageDescription": "This app needs access to Bluetooth", + "NSBluetoothPeripheralUsageDescription": "This app needs access to Bluetooth", + "NSHighResolutionCapable": true, + "NSPrefersDisplaySafeAreaCompatibilityMode": false, + "NSPrincipalClass": "AtomApplication", + "NSSupportsAutomaticGraphicsSwitching": true, +} +`; + +exports[`mac > x64 1`] = ` +{ + "mac": [ + { + "arch": "x64", + "file": "TestApp.zip", + "updateInfo": { + "sha512": "@sha512", + "size": "@size", + }, + }, + { + "file": "TestApp.zip.blockmap", + "safeArtifactName": "TestApp.zip.blockmap", + "updateInfo": { + "sha512": "@sha512", + "size": "@size", + }, + }, + { + "file": "latest-mac.yml", + "fileContent": { + "files": [ + { + "sha512": "@sha512", + "size": "@size", + "url": "TestApp.zip", + }, + ], + "path": "TestApp.zip", + "releaseDate": "@releaseDate", + "sha512": "@sha512", + "version": "1.0.0", + }, + }, + ], +} +`; + +exports[`mac > x64 2`] = ` +{ + "CFBundleDisplayName": "TestApp", + "CFBundleExecutable": "TestApp", + "CFBundleIconFile": "icon.icns", + "CFBundleIdentifier": "com.test.app", + "CFBundleInfoDictionaryVersion": "6.0", + "CFBundleName": "TestApp", + "CFBundlePackageType": "APPL", + "CFBundleShortVersionString": "1.0.0", + "ElectronAsarIntegrity": { + "Resources/app.asar": { + "algorithm": "SHA256", + "hash": "hash", + }, + }, + "LSApplicationCategoryType": "your.app.category.type", + "LSEnvironment": { + "MallocNanoZone": "0", + }, + "NSAppTransportSecurity": { + "NSAllowsLocalNetworking": true, + "NSExceptionDomains": { + "127.0.0.1": { + "NSIncludesSubdomains": false, + "NSTemporaryExceptionAllowsInsecureHTTPLoads": true, + "NSTemporaryExceptionAllowsInsecureHTTPSLoads": false, + "NSTemporaryExceptionMinimumTLSVersion": "1.0", + "NSTemporaryExceptionRequiresForwardSecrecy": false, + }, + "localhost": { + "NSIncludesSubdomains": false, + "NSTemporaryExceptionAllowsInsecureHTTPLoads": true, + "NSTemporaryExceptionAllowsInsecureHTTPSLoads": false, + "NSTemporaryExceptionMinimumTLSVersion": "1.0", + "NSTemporaryExceptionRequiresForwardSecrecy": false, + }, + }, + }, + "NSBluetoothAlwaysUsageDescription": "This app needs access to Bluetooth", + "NSBluetoothPeripheralUsageDescription": "This app needs access to Bluetooth", + "NSHighResolutionCapable": true, + "NSPrefersDisplaySafeAreaCompatibilityMode": false, + "NSPrincipalClass": "AtomApplication", + "NSSupportsAutomaticGraphicsSwitching": true, +} +`; + +exports[`mac > x64 3`] = ` +{ + "mac": [ + { + "arch": "x64", + "file": "TestApp.zip", + "updateInfo": { + "sha512": "@sha512", + "size": "@size", + }, + }, + { + "file": "TestApp.zip.blockmap", + "safeArtifactName": "TestApp.zip.blockmap", + "updateInfo": { + "sha512": "@sha512", + "size": "@size", + }, + }, + { + "file": "latest-mac.yml", + "fileContent": { + "files": [ + { + "sha512": "@sha512", + "size": "@size", + "url": "TestApp.zip", + }, + ], + "path": "TestApp.zip", + "releaseDate": "@releaseDate", + "sha512": "@sha512", + "version": "1.0.1", + }, + }, + ], +} +`; + +exports[`mac > x64 4`] = ` +{ + "CFBundleDisplayName": "TestApp", + "CFBundleExecutable": "TestApp", + "CFBundleIconFile": "icon.icns", + "CFBundleIdentifier": "com.test.app", + "CFBundleInfoDictionaryVersion": "6.0", + "CFBundleName": "TestApp", + "CFBundlePackageType": "APPL", + "CFBundleShortVersionString": "1.0.1", + "ElectronAsarIntegrity": { + "Resources/app.asar": { + "algorithm": "SHA256", + "hash": "hash", + }, + }, + "LSApplicationCategoryType": "your.app.category.type", + "LSEnvironment": { + "MallocNanoZone": "0", + }, + "NSAppTransportSecurity": { + "NSAllowsLocalNetworking": true, + "NSExceptionDomains": { + "127.0.0.1": { + "NSIncludesSubdomains": false, + "NSTemporaryExceptionAllowsInsecureHTTPLoads": true, + "NSTemporaryExceptionAllowsInsecureHTTPSLoads": false, + "NSTemporaryExceptionMinimumTLSVersion": "1.0", + "NSTemporaryExceptionRequiresForwardSecrecy": false, + }, + "localhost": { + "NSIncludesSubdomains": false, + "NSTemporaryExceptionAllowsInsecureHTTPLoads": true, + "NSTemporaryExceptionAllowsInsecureHTTPSLoads": false, + "NSTemporaryExceptionMinimumTLSVersion": "1.0", + "NSTemporaryExceptionRequiresForwardSecrecy": false, + }, + }, + }, + "NSBluetoothAlwaysUsageDescription": "This app needs access to Bluetooth", + "NSBluetoothPeripheralUsageDescription": "This app needs access to Bluetooth", + "NSHighResolutionCapable": true, + "NSPrefersDisplaySafeAreaCompatibilityMode": false, + "NSPrincipalClass": "AtomApplication", + "NSSupportsAutomaticGraphicsSwitching": true, +} +`; + exports[`winCodeSign: 0.0.0 > windows > nsis 1`] = ` { "win": [ diff --git a/test/src/updater/blackboxUpdateTest.ts b/test/src/updater/blackboxUpdateTest.ts index 275d519c1cd..60fa42fb56d 100644 --- a/test/src/updater/blackboxUpdateTest.ts +++ b/test/src/updater/blackboxUpdateTest.ts @@ -16,7 +16,7 @@ import { NEW_VERSION_NUMBER, OLD_VERSION_NUMBER, writeUpdateConfig } from "../he // Linux Tests MUST be run in docker containers for proper ephemeral testing environment (e.g. fresh install + update + relaunch) // Currently this test logic does not handle uninstalling packages (yet) -describe.heavy.ifMac.ifEnv(process.env.CSC_KEY_PASSWORD)("mac", { sequential: true }, () => { +describe.ifMac.heavy("mac", { sequential: true }, () => { // can test on x64 and also arm64 (via rosetta) test("x64", async context => { await runTest(context, "zip", "", Arch.x64) From 140c734d0652d6a3ea54551020b1b57f86fe3f54 Mon Sep 17 00:00:00 2001 From: Mike Maietta Date: Thu, 30 Apr 2026 17:13:05 -0700 Subject: [PATCH 41/65] got it working? --- .../src/SquirrelWindowsTarget.ts | 3 +++ test/src/extraMetadataTest.ts | 2 +- test/src/helpers/packTester.ts | 6 ++---- test/vitest-scripts/file-discovery.ts | 2 +- 4 files changed, 7 insertions(+), 6 deletions(-) diff --git a/packages/electron-builder-squirrel-windows/src/SquirrelWindowsTarget.ts b/packages/electron-builder-squirrel-windows/src/SquirrelWindowsTarget.ts index a6922d298f3..8f7d0b65c4c 100644 --- a/packages/electron-builder-squirrel-windows/src/SquirrelWindowsTarget.ts +++ b/packages/electron-builder-squirrel-windows/src/SquirrelWindowsTarget.ts @@ -1,3 +1,4 @@ +import { createRequire } from "node:module" import { Arch, execWine, getArchSuffix, getBinFromUrl, SquirrelWindowsOptions, Target, WinPackager } from "app-builder-lib" import { exists, InvalidConfigurationError, isEmptyOrSpaces, log, sanitizeFileName } from "builder-util" import { convertVersion, createWindowsInstaller, Options as SquirrelOptions } from "electron-winstaller" @@ -5,6 +6,8 @@ import * as fs from "fs" import * as os from "os" import * as path from "path" +const require = createRequire(import.meta.url) + export default class SquirrelWindowsTarget extends Target { //tslint:disable-next-line:no-object-literal-type-assertion readonly options: SquirrelWindowsOptions diff --git a/test/src/extraMetadataTest.ts b/test/src/extraMetadataTest.ts index ee7bc3d663f..f166be289c4 100644 --- a/test/src/extraMetadataTest.ts +++ b/test/src/extraMetadataTest.ts @@ -59,7 +59,7 @@ test("extra metadata (no asar)", ({ expect }) => createExtraMetadataTest(expect, test("cli", ({ expect }) => { // because these methods are internal - const { configureBuildCommand, normalizeOptions } = require("electron-builder/out/builder.js") + const { configureBuildCommand, normalizeOptions } = require("electron-builder") const yargs = require("yargs") .strict() .fail((message: string, error: Error | null) => { diff --git a/test/src/helpers/packTester.ts b/test/src/helpers/packTester.ts index cdaffd419b3..e6e09ce7f4b 100644 --- a/test/src/helpers/packTester.ts +++ b/test/src/helpers/packTester.ts @@ -1,4 +1,3 @@ -import { createRequire } from "node:module" import { PublishManager } from "app-builder-lib" import { verifyAsarFileTree as _verifyAsarFileTree } from "./asarVerifier.js" import { computeArchToTargetNamesMap } from "app-builder-lib" @@ -28,10 +27,9 @@ import { computeDefaultAppDirectory } from "app-builder-lib" import { installDependencies } from "app-builder-lib" import { ELECTRON_VERSION } from "./testConfig.js" import { createLazyProductionDeps } from "app-builder-lib" -import { execSync } from "child_process" +import { exec as execCallback, execSync } from "child_process" import { detectPackageManager } from "app-builder-lib" -const require = createRequire(import.meta.url) const PACKAGE_MANAGER_VERSION_MAP = { [PM.NPM]: { cli: "npm", version: "9.8.1" }, @@ -723,7 +721,7 @@ const checkResult = (expect: ExpectStatic, artifacts: Array, ex return { packageFile, zip, allFiles } } -export const execShell: any = promisify(require("child_process").exec) +export const execShell: any = promisify(execCallback) export async function getTarExecutable() { return process.platform === "darwin" ? path.join(await getLinuxToolsPath(), "bin", "gtar") : "tar" diff --git a/test/vitest-scripts/file-discovery.ts b/test/vitest-scripts/file-discovery.ts index 104e1adce7f..f8046082a79 100644 --- a/test/vitest-scripts/file-discovery.ts +++ b/test/vitest-scripts/file-discovery.ts @@ -38,7 +38,7 @@ function collectTests(dir: string, platform: TargetPlatform = "current", out: st } for (const name of fs.readdirSync(dir)) { - if ([".ts.map", ".js.map", ".d.ts", ".snap"].some(ext => name.endsWith(ext)) || ["node_modules", "out"].includes(name) || isUnstableTest(name, platform)) { + if ([".ts.map", ".js.map", ".d.ts", ".snap"].some(ext => name.endsWith(ext)) || ["node_modules", "out"].includes(name) || (!testOverride && isUnstableTest(name, platform))) { continue } From c2ef699197eff1cd3846480168922720dc40b0f0 Mon Sep 17 00:00:00 2001 From: Mike Maietta Date: Thu, 30 Apr 2026 21:58:04 -0700 Subject: [PATCH 42/65] fix imports --- packages/electron-updater/src/providers/Provider.ts | 2 +- test/src/BuildTest.ts | 2 +- test/src/mac/dmgTest.ts | 4 ++-- test/vitest-scripts/smart-config.ts | 2 +- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/packages/electron-updater/src/providers/Provider.ts b/packages/electron-updater/src/providers/Provider.ts index 6098a1f62d5..df1ee7d7ba9 100644 --- a/packages/electron-updater/src/providers/Provider.ts +++ b/packages/electron-updater/src/providers/Provider.ts @@ -6,7 +6,7 @@ import { ElectronHttpExecutor } from "../electronHttpExecutor.js" import { ResolvedUpdateFileInfo } from "../types.js" import { newUrlFromBase } from "../util.js" // @ts-ignore -import * as escapeRegExp from "lodash.escaperegexp" +import escapeRegExp from "lodash.escaperegexp" export type ProviderPlatform = "darwin" | "linux" | "win32" diff --git a/test/src/BuildTest.ts b/test/src/BuildTest.ts index c4fd1f39f03..281d9ca065d 100644 --- a/test/src/BuildTest.ts +++ b/test/src/BuildTest.ts @@ -15,7 +15,7 @@ const require = createRequire(import.meta.url) test.ifLinux("cli", ({ expect }) => { // because these methods are internal - const { configureBuildCommand, normalizeOptions } = require("electron-builder/out/builder") + const { configureBuildCommand, normalizeOptions } = require("electron-builder") const yargs = createYargs() configureBuildCommand(yargs) diff --git a/test/src/mac/dmgTest.ts b/test/src/mac/dmgTest.ts index c157c59d2b5..ac99dc82cfa 100644 --- a/test/src/mac/dmgTest.ts +++ b/test/src/mac/dmgTest.ts @@ -7,7 +7,7 @@ import * as path from "path" import { assertThat } from "../helpers/fileAssert.js" import { app, assertPack, copyTestAsset } from "../helpers/packTester.js" import { beforeAll } from "vitest" -import type { attachAndExecute as aAndE, getDmgTemplatePath as dmgTemplate } from "dmg-builder/out/dmgUtil.js" +import type { attachAndExecute as aAndE, getDmgTemplatePath as dmgTemplate } from "dmg-builder" const dmgTarget = Platform.MAC.createTarget("dmg", Arch.x64) const defaultTarget = Platform.MAC.createTarget(undefined, Arch.x64) @@ -18,7 +18,7 @@ describe.heavy.ifMac("dmg", { sequential: true }, () => { beforeAll(async () => { // import at runtime to avoid issues on non-macOS platforms - const { attachAndExecute: a, getDmgTemplatePath: d } = await import("dmg-builder/out/dmgUtil.js") + const { attachAndExecute: a, getDmgTemplatePath: d } = await import("dmg-builder") attachAndExecute = a getDmgTemplatePath = d }) diff --git a/test/vitest-scripts/smart-config.ts b/test/vitest-scripts/smart-config.ts index 77eceb2b65a..50a1205bd3a 100644 --- a/test/vitest-scripts/smart-config.ts +++ b/test/vitest-scripts/smart-config.ts @@ -31,7 +31,7 @@ export const skippedTests = [ "snapHeavyTest", ] export const skipPerOSTests: Record = { - darwin: ["fpmTest", "macUpdaterTest", "blackboxUpdateTest"], + darwin: ["fpmTest", "macUpdaterTest"], linux: ["flatpakTest"], win32: [], } From 44e4009e46deb6b6eb4b2b37be31a838d41878d2 Mon Sep 17 00:00:00 2001 From: Mike Maietta Date: Fri, 1 May 2026 05:40:48 -0700 Subject: [PATCH 43/65] fix ts-ignore's --- packages/electron-updater/src/DownloadedUpdateHelper.ts | 3 +-- packages/electron-updater/src/providers/GitLabProvider.ts | 3 +-- packages/electron-updater/src/providers/Provider.ts | 1 - test/src/httpExecutorTest.ts | 1 - test/vitest-scripts/file-discovery.ts | 7 ++++++- 5 files changed, 8 insertions(+), 7 deletions(-) diff --git a/packages/electron-updater/src/DownloadedUpdateHelper.ts b/packages/electron-updater/src/DownloadedUpdateHelper.ts index 6d07d0017b8..414a0ac7d20 100644 --- a/packages/electron-updater/src/DownloadedUpdateHelper.ts +++ b/packages/electron-updater/src/DownloadedUpdateHelper.ts @@ -1,8 +1,7 @@ import { UpdateInfo } from "builder-util-runtime" import { createHash } from "crypto" import { createReadStream } from "fs" -// @ts-ignore -import * as isEqual from "lodash.isequal" +import isEqual from "lodash.isequal" import { ResolvedUpdateFileInfo } from "./types.js" import { Logger } from "./types.js" import fsExtra from "fs-extra" diff --git a/packages/electron-updater/src/providers/GitLabProvider.ts b/packages/electron-updater/src/providers/GitLabProvider.ts index 5f507930104..446e972c67b 100644 --- a/packages/electron-updater/src/providers/GitLabProvider.ts +++ b/packages/electron-updater/src/providers/GitLabProvider.ts @@ -1,7 +1,6 @@ import { CancellationToken, GitlabOptions, HttpError, newError, UpdateFileInfo, UpdateInfo, GitlabReleaseInfo, GitlabReleaseAsset } from "builder-util-runtime" import { URL } from "url" -// @ts-ignore -import * as escapeRegExp from "lodash.escaperegexp" +import escapeRegExp from "lodash.escaperegexp" import { AppUpdater } from "../AppUpdater.js" import { ResolvedUpdateFileInfo } from "../types.js" import { getChannelFilename, newBaseUrl, newUrlFromBase } from "../util.js" diff --git a/packages/electron-updater/src/providers/Provider.ts b/packages/electron-updater/src/providers/Provider.ts index df1ee7d7ba9..23b073fd1fe 100644 --- a/packages/electron-updater/src/providers/Provider.ts +++ b/packages/electron-updater/src/providers/Provider.ts @@ -5,7 +5,6 @@ import { URL } from "url" import { ElectronHttpExecutor } from "../electronHttpExecutor.js" import { ResolvedUpdateFileInfo } from "../types.js" import { newUrlFromBase } from "../util.js" -// @ts-ignore import escapeRegExp from "lodash.escaperegexp" export type ProviderPlatform = "darwin" | "linux" | "win32" diff --git a/test/src/httpExecutorTest.ts b/test/src/httpExecutorTest.ts index 4ce1875d7d8..be95fdf0408 100644 --- a/test/src/httpExecutorTest.ts +++ b/test/src/httpExecutorTest.ts @@ -506,7 +506,6 @@ describe("HttpExecutor.prepareRedirectUrlOptions", () => { }) }) -// @ts-ignore describe("HttpExecutor.isCrossOriginRedirect", () => { const testCases: Array<{ name: string; url1: string; url2: string; expected: boolean }> = [ { diff --git a/test/vitest-scripts/file-discovery.ts b/test/vitest-scripts/file-discovery.ts index f8046082a79..15c695d06f5 100644 --- a/test/vitest-scripts/file-discovery.ts +++ b/test/vitest-scripts/file-discovery.ts @@ -38,7 +38,12 @@ function collectTests(dir: string, platform: TargetPlatform = "current", out: st } for (const name of fs.readdirSync(dir)) { - if ([".ts.map", ".js.map", ".d.ts", ".snap"].some(ext => name.endsWith(ext)) || ["node_modules", "out"].includes(name) || (!testOverride && isUnstableTest(name, platform))) { + if ([".ts.map", ".js.map", ".d.ts", ".snap"].some(ext => name.endsWith(ext)) || ["node_modules", "out"].includes(name)) { + continue + } + + if (isUnstableTest(name, platform)) { + console.warn(`Skipping unstable test: ${name}`) continue } From 19f52b9487a3bc3bbb6a7d948d96ea3659ff57b7 Mon Sep 17 00:00:00 2001 From: Mike Maietta Date: Fri, 1 May 2026 06:31:19 -0700 Subject: [PATCH 44/65] NICE --- test/src/helpers/fileAssert.ts | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/test/src/helpers/fileAssert.ts b/test/src/helpers/fileAssert.ts index 45416aa5068..e31e6ee2df3 100644 --- a/test/src/helpers/fileAssert.ts +++ b/test/src/helpers/fileAssert.ts @@ -1,18 +1,14 @@ -import { createRequire } from "node:module" import { exists, statOrNull } from "builder-util" import * as fs from "fs/promises" import * as path from "path" import { ExpectStatic } from "vitest" - -const require = createRequire(import.meta.url) +import { PACKAGE_VERSION as appVersion } from "app-builder-lib" // http://joel-costigliola.github.io/assertj/ export function assertThat(expect: ExpectStatic, actual: any): Assertions { return new Assertions(expect, actual) } -const appVersion = require(path.join(import.meta.dirname, "../../../packages/app-builder-lib/package.json")).version - class Assertions { constructor( private readonly expect: ExpectStatic, From 5641a26fc53286afd59bcdb90fa51936ab2225a5 Mon Sep 17 00:00:00 2001 From: Mike Maietta Date: Fri, 1 May 2026 07:58:24 -0700 Subject: [PATCH 45/65] add retry to blackbox update test due to flakiness of e2e system interactions --- test/src/updater/blackboxUpdateTest.ts | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/test/src/updater/blackboxUpdateTest.ts b/test/src/updater/blackboxUpdateTest.ts index 60fa42fb56d..576292c7a07 100644 --- a/test/src/updater/blackboxUpdateTest.ts +++ b/test/src/updater/blackboxUpdateTest.ts @@ -14,9 +14,10 @@ import { assertPack, modifyPackageJson, PackedContext } from "../helpers/packTes import { ELECTRON_VERSION } from "../helpers/testConfig.js" import { NEW_VERSION_NUMBER, OLD_VERSION_NUMBER, writeUpdateConfig } from "../helpers/updaterTestUtil.js" +const optionsForFlakyE2E = { sequential: true, retry: 2 } // Linux Tests MUST be run in docker containers for proper ephemeral testing environment (e.g. fresh install + update + relaunch) // Currently this test logic does not handle uninstalling packages (yet) -describe.ifMac.heavy("mac", { sequential: true }, () => { +describe.ifMac.heavy("mac", optionsForFlakyE2E, () => { // can test on x64 and also arm64 (via rosetta) test("x64", async context => { await runTest(context, "zip", "", Arch.x64) @@ -33,8 +34,8 @@ describe.ifMac.heavy("mac", { sequential: true }, () => { const winCodeSignVersions: ToolsetConfig["winCodeSign"][] = ["0.0.0", "1.0.0", "1.1.0"] for (const winCodeSign of winCodeSignVersions) { - describe(`winCodeSign: ${winCodeSign}`, { sequential: true }, () => { - describe.heavy.ifWindows("windows", { sequential: true }, () => { + describe(`winCodeSign: ${winCodeSign}`, optionsForFlakyE2E, () => { + describe.heavy.ifWindows("windows", optionsForFlakyE2E, () => { test("nsis", async context => { await runTest(context, "nsis", "", Arch.x64, { winCodeSign }) }) @@ -44,9 +45,9 @@ for (const winCodeSign of winCodeSignVersions) { const appImageToolVersions: ToolsetConfig["appimage"][] = ["0.0.0", "1.0.2", "1.0.3"] // must be sequential in order for process.env.ELECTRON_BUILDER_LINUX_PACKAGE_MANAGER to be respected per-test -describe.heavy.ifLinux("linux", { sequential: true }, () => { +describe.heavy.ifLinux("linux", optionsForFlakyE2E, () => { for (const appimage of appImageToolVersions) { - describe(`appimage tool: ${appimage}`, () => { + describe(`appimage tool: ${appimage}`, optionsForFlakyE2E, () => { test.ifEnv(process.env.RUN_APP_IMAGE_TEST === "true" && process.arch === "arm64")("AppImage - arm64", async context => { await runTest(context, "AppImage", "appimage", Arch.arm64, { appimage }) }) @@ -62,7 +63,7 @@ describe.heavy.ifLinux("linux", { sequential: true }, () => { for (const distro in packageManagerMap) { const { pms, target } = packageManagerMap[distro as keyof typeof packageManagerMap] for (const pm of pms) { - test(`${distro} - (${pm})`, { sequential: true }, async context => { + test(`${distro} - (${pm})`, optionsForFlakyE2E, async context => { if (!determineEnvironment(distro)) { context.skip() } From 6f2b0b73692565dad9afb4fd30d0971ef85b0798 Mon Sep 17 00:00:00 2001 From: Mike Maietta Date: Fri, 1 May 2026 09:22:07 -0700 Subject: [PATCH 46/65] add fuses to blackbox update test --- .../updater/blackboxUpdateTest.js.snap | 128 ++++++++++++++++++ test/src/updater/blackboxUpdateTest.ts | 10 ++ test/vitest-scripts/smart-config.ts | 4 +- 3 files changed, 141 insertions(+), 1 deletion(-) diff --git a/test/snapshots/updater/blackboxUpdateTest.js.snap b/test/snapshots/updater/blackboxUpdateTest.js.snap index e3ea0fa9ff3..b29c5aafd1b 100644 --- a/test/snapshots/updater/blackboxUpdateTest.js.snap +++ b/test/snapshots/updater/blackboxUpdateTest.js.snap @@ -1783,6 +1783,134 @@ exports[`linux > appimage tool: 1.0.2 > AppImage - arm64 2`] = ` } `; +exports[`linux > appimage tool: 1.0.3 > AppImage - arm64 1`] = ` +{ + "linux": [ + { + "arch": "arm64", + "file": "TestApp.AppImage", + "updateInfo": { + "blockMapSize": "@blockMapSize", + "sha512": "@sha512", + "size": "@size", + }, + }, + { + "file": "latest-linux-arm64.yml", + "fileContent": { + "files": [ + { + "blockMapSize": "@blockMapSize", + "sha512": "@sha512", + "size": "@size", + "url": "TestApp.AppImage", + }, + ], + "path": "TestApp.AppImage", + "releaseDate": "@releaseDate", + "sha512": "@sha512", + "version": "1.0.0", + }, + }, + ], +} +`; + +exports[`linux > appimage tool: 1.0.3 > AppImage - arm64 2`] = ` +{ + "linux": [ + { + "arch": "arm64", + "file": "TestApp.AppImage", + "updateInfo": { + "blockMapSize": "@blockMapSize", + "sha512": "@sha512", + "size": "@size", + }, + }, + { + "file": "latest-linux-arm64.yml", + "fileContent": { + "files": [ + { + "blockMapSize": "@blockMapSize", + "sha512": "@sha512", + "size": "@size", + "url": "TestApp.AppImage", + }, + ], + "path": "TestApp.AppImage", + "releaseDate": "@releaseDate", + "sha512": "@sha512", + "version": "1.0.1", + }, + }, + ], +} +`; + +exports[`linux > arch - (pacman) 1`] = ` +{ + "linux": [ + { + "file": "latest-linux.yml", + "fileContent": { + "files": [ + { + "sha512": "@sha512", + "size": "@size", + "url": "TestApp.pacman", + }, + ], + "path": "TestApp.pacman", + "releaseDate": "@releaseDate", + "sha512": "@sha512", + "version": "1.0.0", + }, + }, + { + "arch": "x64", + "file": "TestApp.pacman", + "updateInfo": { + "sha512": "@sha512", + "size": "@size", + }, + }, + ], +} +`; + +exports[`linux > arch - (pacman) 2`] = ` +{ + "linux": [ + { + "file": "latest-linux.yml", + "fileContent": { + "files": [ + { + "sha512": "@sha512", + "size": "@size", + "url": "TestApp.pacman", + }, + ], + "path": "TestApp.pacman", + "releaseDate": "@releaseDate", + "sha512": "@sha512", + "version": "1.0.1", + }, + }, + { + "arch": "x64", + "file": "TestApp.pacman", + "updateInfo": { + "sha512": "@sha512", + "size": "@size", + }, + }, + ], +} +`; + exports[`linux > debian - (apt) 1`] = ` { "linux": [ diff --git a/test/src/updater/blackboxUpdateTest.ts b/test/src/updater/blackboxUpdateTest.ts index 576292c7a07..4a48f40bffd 100644 --- a/test/src/updater/blackboxUpdateTest.ts +++ b/test/src/updater/blackboxUpdateTest.ts @@ -203,6 +203,16 @@ async function doBuild( name: "testapp", version, }, + electronFuses: { + runAsNode: false, + enableCookieEncryption: true, + enableNodeOptionsEnvironmentVariable: false, + enableNodeCliInspectArguments: false, + enableEmbeddedAsarIntegrityValidation: true, + onlyLoadAppFromAsar: true, + loadBrowserProcessSpecificV8Snapshot: false, + grantFileProtocolExtraPrivileges: false, + }, electronUpdaterCompatibility: "1.1", // anything above 1.0.0 works. This is to allow testing via `link:` protocol with the current workspace electron-updater package version ...extraConfig, compression: "store", diff --git a/test/vitest-scripts/smart-config.ts b/test/vitest-scripts/smart-config.ts index 50a1205bd3a..73df7a15831 100644 --- a/test/vitest-scripts/smart-config.ts +++ b/test/vitest-scripts/smart-config.ts @@ -1,3 +1,4 @@ +import isCI from "is-ci" import * as path from "path" const __dirname = import.meta.dirname @@ -31,7 +32,8 @@ export const skippedTests = [ "snapHeavyTest", ] export const skipPerOSTests: Record = { - darwin: ["fpmTest", "macUpdaterTest"], + // requires valid signing signature on CI, which we don't have yet. (Can only run locally) + darwin: ["fpmTest", "macUpdaterTest", isCI ? "blackboxUpdateTest" : null].filter(Boolean) as string[], linux: ["flatpakTest"], win32: [], } From 3b38b0e8bde2da934af0a59ba36610f1306eab5d Mon Sep 17 00:00:00 2001 From: Mike Maietta Date: Sat, 2 May 2026 08:51:29 -0700 Subject: [PATCH 47/65] revert hoisted snapshot changes to see if we can reduce PR diff size --- test/snapshots/HoistedNodeModuleTest.js.snap | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/test/snapshots/HoistedNodeModuleTest.js.snap b/test/snapshots/HoistedNodeModuleTest.js.snap index 3322aa085cc..cae09c476dc 100644 --- a/test/snapshots/HoistedNodeModuleTest.js.snap +++ b/test/snapshots/HoistedNodeModuleTest.js.snap @@ -29627,6 +29627,12 @@ exports[`node_module collectors > pnpm workspace with native module 2`] = ` } `; +exports[`node_module collectors > yarn berry using extraMetadata.name should not unpack workspace app 1`] = ` +{ + "linux": [], +} +`; + exports[`node_module collectors > yarn berry version conflict with hoisted dependencies 1`] = ` { "linux": [], From 01b91f60d5df537aa24ef3d5725a2082a9111c0a Mon Sep 17 00:00:00 2001 From: Mike Maietta Date: Sat, 2 May 2026 16:32:30 -0700 Subject: [PATCH 48/65] initial migration/creation of `/internal` package export for minimizing the traditional `.` root export --- packages/app-builder-lib/package.json | 3 +- packages/app-builder-lib/src/appInfo.ts | 2 +- packages/app-builder-lib/src/binDownload.ts | 5 ++- packages/app-builder-lib/src/index.ts | 39 +------------------ packages/app-builder-lib/src/indexInternal.ts | 33 ++++++++++++++++ packages/app-builder-lib/src/linuxPackager.ts | 2 +- .../CommonWindowsInstallerConfiguration.ts | 2 +- .../src/publish/PublishManager.ts | 2 +- packages/builder-util-runtime/package.json | 3 +- packages/builder-util-runtime/src/index.ts | 2 +- .../builder-util-runtime/src/indexInternal.ts | 1 + packages/builder-util/package.json | 3 +- packages/builder-util/src/indexInternal.ts | 1 + packages/builder-util/src/util.ts | 1 - packages/dmg-builder/src/dmg.ts | 8 ++-- packages/dmg-builder/src/dmgLicense.ts | 2 +- packages/dmg-builder/src/dmgUtil.ts | 2 +- packages/dmg-builder/src/licenseButtons.ts | 2 +- .../src/SquirrelWindowsTarget.ts | 6 ++- packages/electron-builder/package.json | 3 +- packages/electron-builder/src/cli/cli.ts | 4 +- .../src/cli/create-self-signed-cert.ts | 4 +- .../src/cli/install-app-deps.ts | 2 +- packages/electron-builder/src/index.ts | 2 +- .../electron-builder/src/indexInternal.ts | 1 + packages/electron-builder/src/publish.ts | 4 +- packages/electron-publish/package.json | 3 +- packages/electron-publish/src/index.ts | 1 - .../electron-publish/src/indexInternal.ts | 1 + .../electron-publish/src/keygenPublisher.ts | 2 +- packages/electron-updater/package.json | 3 +- .../downloadPlanBuilder.ts | 3 +- .../electron-updater/src/indexInternal.ts | 5 +++ packages/electron-updater/src/main.ts | 7 +--- 34 files changed, 84 insertions(+), 80 deletions(-) create mode 100644 packages/app-builder-lib/src/indexInternal.ts create mode 100644 packages/builder-util-runtime/src/indexInternal.ts create mode 100644 packages/builder-util/src/indexInternal.ts create mode 100644 packages/electron-builder/src/indexInternal.ts create mode 100644 packages/electron-publish/src/indexInternal.ts create mode 100644 packages/electron-updater/src/indexInternal.ts diff --git a/packages/app-builder-lib/package.json b/packages/app-builder-lib/package.json index bab938947a1..8cfa5415ab0 100644 --- a/packages/app-builder-lib/package.json +++ b/packages/app-builder-lib/package.json @@ -4,7 +4,8 @@ "version": "26.8.2", "type": "module", "exports": { - ".": "./out/index.js" + ".": "./out/index.js", + "./internal": "./out/indexInternal.js" }, "files": [ "out", diff --git a/packages/app-builder-lib/src/appInfo.ts b/packages/app-builder-lib/src/appInfo.ts index e1b38b4bf9d..3cb6b2435e2 100644 --- a/packages/app-builder-lib/src/appInfo.ts +++ b/packages/app-builder-lib/src/appInfo.ts @@ -1,6 +1,6 @@ import { isEmptyOrSpaces, log } from "builder-util" +import { sanitizeFileName } from "builder-util/internal" import { Nullish } from "builder-util-runtime" -import { sanitizeFileName } from "builder-util" import { prerelease } from "semver" import { PlatformSpecificBuildOptions } from "./options/PlatformSpecificBuildOptions.js" import { Packager } from "./packager.js" diff --git a/packages/app-builder-lib/src/binDownload.ts b/packages/app-builder-lib/src/binDownload.ts index 68711111eb8..7f610f08d7a 100644 --- a/packages/app-builder-lib/src/binDownload.ts +++ b/packages/app-builder-lib/src/binDownload.ts @@ -1,8 +1,9 @@ import * as get from "@electron/get" import { ElectronDownloadCacheMode, ElectronDownloadRequest, ElectronDownloadRequestOptions, GotDownloaderOptions } from "@electron/get" -import { executeAppBuilder, exists, log, PADDING, sanitizeFileName } from "builder-util" +import { executeAppBuilder, exists, log, PADDING } from "builder-util" +import { sanitizeFileName } from "builder-util/internal" import { Nullish } from "builder-util-runtime" -import { MultiProgress } from "electron-publish" +import { MultiProgress } from "electron-publish/internal" import * as fs from "fs/promises" import * as os from "os" import * as path from "path" diff --git a/packages/app-builder-lib/src/index.ts b/packages/app-builder-lib/src/index.ts index b467564f360..5994dc9c53d 100644 --- a/packages/app-builder-lib/src/index.ts +++ b/packages/app-builder-lib/src/index.ts @@ -53,9 +53,6 @@ export { CommonNsisOptions, CustomNsisBinary, NsisOptions, NsisWebOptions, Porta export { CancellationToken, ProgressInfo } from "builder-util-runtime" export { PublishOptions, UploadTask } from "electron-publish" -export { AsarFilesystem, readAsar, readAsarJson } from "./asar/asar.js" -export { downloadArtifact, getBinFromUrl } from "./binDownload.js" -export { Identity, createKeychain, findIdentity, isSignAllowed, removeKeychain } from "./codeSign/macCodeSign.js" export { WindowsSignOptions } from "./codeSign/windowsCodeSign.js" export { CertificateFromStoreInfo, @@ -64,46 +61,14 @@ export { FileCodeSigningInfo, WindowsSignTaskConfiguration } from "./codeSign/windowsSignToolManager.js" -export { Publish } from "./core.js" -export { getElectronVersion } from "./electron/electronVersion.js" export { ForgeOptions, buildForge } from "./forge-maker.js" export { Framework, PrepareApplicationStageDirectoryOptions } from "./Framework.js" export { LinuxPackager } from "./linuxPackager.js" export { CustomMacSign, CustomMacSignOptions, MacPackager } from "./macPackager.js" -export { HoisterDependencyKind, HoisterResult, HoisterTree, hoist } from "./node-module-collector/hoist.js" -export { - determinePackageManagerEnv, - getCollectorByPackageManager, - PnpmNodeModulesCollector, - YarnNodeModulesCollector, - YarnBerryNodeModulesCollector, - BunNodeModulesCollector, - TraversalNodeModulesCollector, -} from "./node-module-collector/index.js" -export { PM } from "./node-module-collector/packageManager.js" -export { DoPackOptions, PlatformPackager, computeSafeArtifactNameIfNeeded } from "./platformPackager.js" -export { PublishManager, createPublisher } from "./publish/PublishManager.js" -export { createBlockmap } from "./targets/differentialUpdateInfoBuilder.js" -export { getWindowsKitsBundle } from "./toolsets/windows.js" -export { computeDefaultAppDirectory, doMergeConfigs, getConfig, validateConfiguration } from "./util/config/config.js" -export { loadEnv } from "./util/config/load.js" -export { getLicenseAssets, getLicenseFiles } from "./util/license.js" -export { expandMacro } from "./util/macroExpander.js" -export { createLazyProductionDeps } from "./util/packageDependencies.js" -export { PlistObject, parsePlistFile } from "./util/plist.js" -export { getRepositoryInfo } from "./util/repositoryInfo.js" -export { installOrRebuild, nodeGypRebuild } from "./util/yarn.js" -export { PACKAGE_VERSION } from "./version.js" -export { execWine } from "./wine.js" +export { PlatformPackager } from "./platformPackager.js" +export { PublishManager } from "./publish/PublishManager.js" export { WinPackager } from "./winPackager.js" -export { AsarIntegrity } from "./asar/integrity.js" -export { computeArchToTargetNamesMap } from "./targets/targetFactory.js" -export { getLinuxToolsPath } from "./toolsets/linux.js" - -export { detectPackageManager } from "./node-module-collector/packageManager.js" -export { installDependencies } from "./util/yarn.js" - const expectedOptions = new Set(["publish", "targets", "mac", "win", "linux", "projectDir", "platformPackagerFactory", "config", "effectiveOptionComputed", "prepackaged"]) export function checkBuildRequestOptions(options: PackagerOptions & PublishOptions) { diff --git a/packages/app-builder-lib/src/indexInternal.ts b/packages/app-builder-lib/src/indexInternal.ts new file mode 100644 index 00000000000..17479bb8726 --- /dev/null +++ b/packages/app-builder-lib/src/indexInternal.ts @@ -0,0 +1,33 @@ +export { AsarFilesystem, readAsar, readAsarJson } from "./asar/asar.js" +export { AsarIntegrity } from "./asar/integrity.js" +export { downloadArtifact, getBinFromUrl } from "./binDownload.js" +export { Identity, createKeychain, findIdentity, isSignAllowed, removeKeychain } from "./codeSign/macCodeSign.js" +export { Publish } from "./core.js" +export { getElectronVersion } from "./electron/electronVersion.js" +export { HoisterDependencyKind, HoisterResult, HoisterTree, hoist } from "./node-module-collector/hoist.js" +export { + determinePackageManagerEnv, + getCollectorByPackageManager, + PnpmNodeModulesCollector, + YarnNodeModulesCollector, + YarnBerryNodeModulesCollector, + BunNodeModulesCollector, + TraversalNodeModulesCollector, +} from "./node-module-collector/index.js" +export { detectPackageManager, PM } from "./node-module-collector/packageManager.js" +export { DoPackOptions, computeSafeArtifactNameIfNeeded } from "./platformPackager.js" +export { createPublisher } from "./publish/PublishManager.js" +export { createBlockmap } from "./targets/differentialUpdateInfoBuilder.js" +export { computeArchToTargetNamesMap } from "./targets/targetFactory.js" +export { getLinuxToolsPath } from "./toolsets/linux.js" +export { getWindowsKitsBundle } from "./toolsets/windows.js" +export { computeDefaultAppDirectory, doMergeConfigs, getConfig, validateConfiguration } from "./util/config/config.js" +export { loadEnv } from "./util/config/load.js" +export { getLicenseAssets, getLicenseFiles } from "./util/license.js" +export { expandMacro } from "./util/macroExpander.js" +export { createLazyProductionDeps } from "./util/packageDependencies.js" +export { PlistObject, parsePlistFile } from "./util/plist.js" +export { getRepositoryInfo } from "./util/repositoryInfo.js" +export { installDependencies, installOrRebuild, nodeGypRebuild } from "./util/yarn.js" +export { PACKAGE_VERSION } from "./version.js" +export { execWine } from "./wine.js" diff --git a/packages/app-builder-lib/src/linuxPackager.ts b/packages/app-builder-lib/src/linuxPackager.ts index 390feb248bc..1b880b7b889 100644 --- a/packages/app-builder-lib/src/linuxPackager.ts +++ b/packages/app-builder-lib/src/linuxPackager.ts @@ -1,5 +1,5 @@ import { Arch } from "builder-util" -import { sanitizeFileName } from "builder-util" +import { sanitizeFileName } from "builder-util/internal" import { DIR_TARGET, Platform, Target } from "./core.js" import { LinuxConfiguration } from "./options/linuxOptions.js" import { Packager } from "./packager.js" diff --git a/packages/app-builder-lib/src/options/CommonWindowsInstallerConfiguration.ts b/packages/app-builder-lib/src/options/CommonWindowsInstallerConfiguration.ts index 04739580a91..cc82cf100c6 100644 --- a/packages/app-builder-lib/src/options/CommonWindowsInstallerConfiguration.ts +++ b/packages/app-builder-lib/src/options/CommonWindowsInstallerConfiguration.ts @@ -1,5 +1,5 @@ import { InvalidConfigurationError, isEmptyOrSpaces } from "builder-util" -import { sanitizeFileName } from "builder-util" +import { sanitizeFileName } from "builder-util/internal" import { WinPackager } from "../winPackager.js" export interface CommonWindowsInstallerConfiguration { diff --git a/packages/app-builder-lib/src/publish/PublishManager.ts b/packages/app-builder-lib/src/publish/PublishManager.ts index d5063f3c49c..b85c405ccfa 100644 --- a/packages/app-builder-lib/src/publish/PublishManager.ts +++ b/packages/app-builder-lib/src/publish/PublishManager.ts @@ -29,7 +29,7 @@ import { SpacesPublisher, UploadTask, } from "electron-publish" -import { MultiProgress } from "electron-publish" +import { MultiProgress } from "electron-publish/internal" import { readFile, writeFile } from "fs/promises" import { isCI } from "ci-info" import * as path from "path" diff --git a/packages/builder-util-runtime/package.json b/packages/builder-util-runtime/package.json index f1cc465efb4..92ba21cc2cf 100644 --- a/packages/builder-util-runtime/package.json +++ b/packages/builder-util-runtime/package.json @@ -3,7 +3,8 @@ "version": "9.5.1", "type": "module", "exports": { - ".": "./out/index.js" + ".": "./out/index.js", + "./internal": "./out/indexInternal.js" }, "author": "Vladimir Krivosheev", "license": "MIT", diff --git a/packages/builder-util-runtime/src/index.ts b/packages/builder-util-runtime/src/index.ts index bd0e2cec2c5..3ff2a6930f4 100644 --- a/packages/builder-util-runtime/src/index.ts +++ b/packages/builder-util-runtime/src/index.ts @@ -1,4 +1,4 @@ -export { BlockMap, BlockMapFile } from "./blockMapApi.js" +export { BlockMap } from "./blockMapApi.js" export { CancellationError, CancellationToken } from "./CancellationToken.js" export { newError } from "./error.js" export { diff --git a/packages/builder-util-runtime/src/indexInternal.ts b/packages/builder-util-runtime/src/indexInternal.ts new file mode 100644 index 00000000000..7a09717e60b --- /dev/null +++ b/packages/builder-util-runtime/src/indexInternal.ts @@ -0,0 +1 @@ +export { BlockMapFile } from "./blockMapApi.js" diff --git a/packages/builder-util/package.json b/packages/builder-util/package.json index 1e5b8876bb7..d08217be3fa 100644 --- a/packages/builder-util/package.json +++ b/packages/builder-util/package.json @@ -3,7 +3,8 @@ "version": "26.8.1", "type": "module", "exports": { - ".": "./out/util.js" + ".": "./out/util.js", + "./internal": "./out/indexInternal.js" }, "author": "Vladimir Krivosheev", "license": "MIT", diff --git a/packages/builder-util/src/indexInternal.ts b/packages/builder-util/src/indexInternal.ts new file mode 100644 index 00000000000..e51ad83abed --- /dev/null +++ b/packages/builder-util/src/indexInternal.ts @@ -0,0 +1 @@ +export { getCompleteExtname, sanitizeFileName } from "./filename.js" diff --git a/packages/builder-util/src/util.ts b/packages/builder-util/src/util.ts index b0d8960b7b6..26f57967c8a 100644 --- a/packages/builder-util/src/util.ts +++ b/packages/builder-util/src/util.ts @@ -15,7 +15,6 @@ if (process.env.JEST_WORKER_ID == null) { installSourceMap() } -export { getCompleteExtname, sanitizeFileName } from "./filename.js" export { safeStringifyJson, retry } from "builder-util-runtime" export { TmpDir } from "temp-file" export * from "./arch.js" diff --git a/packages/dmg-builder/src/dmg.ts b/packages/dmg-builder/src/dmg.ts index 8f342b90761..578a0778e97 100644 --- a/packages/dmg-builder/src/dmg.ts +++ b/packages/dmg-builder/src/dmg.ts @@ -1,9 +1,7 @@ -import { DmgOptions, Target } from "app-builder-lib" -import { findIdentity, isSignAllowed } from "app-builder-lib" -import { MacPackager } from "app-builder-lib" -import { createBlockmap } from "app-builder-lib" +import { DmgOptions, MacPackager, Target } from "app-builder-lib" +import { createBlockmap, findIdentity, isSignAllowed } from "app-builder-lib/internal" import { Arch, exec, getArchSuffix, InvalidConfigurationError, isEmptyOrSpaces } from "builder-util" -import { sanitizeFileName } from "builder-util" +import { sanitizeFileName } from "builder-util/internal" import { release as getOsRelease } from "os" import * as path from "path" import { addLicenseToDmg } from "./dmgLicense.js" diff --git a/packages/dmg-builder/src/dmgLicense.ts b/packages/dmg-builder/src/dmgLicense.ts index 0b542f6ba0e..5ceccccd459 100644 --- a/packages/dmg-builder/src/dmgLicense.ts +++ b/packages/dmg-builder/src/dmgLicense.ts @@ -1,10 +1,10 @@ import { PlatformPackager } from "app-builder-lib" +import { getLicenseFiles } from "app-builder-lib/internal" import { log } from "builder-util" import { dmgLicenseFromJSON } from "dmg-license" import fsExtra from "fs-extra" import { load } from "js-yaml" import { getLicenseButtonsFile } from "./licenseButtons.js" -import { getLicenseFiles } from "app-builder-lib" // License Specifications // https://github.com/argv-minus-one/dmg-license/blob/HEAD/docs/License%20Specifications.md diff --git a/packages/dmg-builder/src/dmgUtil.ts b/packages/dmg-builder/src/dmgUtil.ts index 38e324eef86..63ca38cd2ab 100644 --- a/packages/dmg-builder/src/dmgUtil.ts +++ b/packages/dmg-builder/src/dmgUtil.ts @@ -1,5 +1,5 @@ import { DmgOptions, MacPackager, PlatformPackager } from "app-builder-lib" -import { downloadArtifact } from "app-builder-lib" +import { downloadArtifact } from "app-builder-lib/internal" import { exec, executeFinally, exists, isEmptyOrSpaces, TmpDir } from "builder-util" import fsExtra from "fs-extra" import * as path from "path" diff --git a/packages/dmg-builder/src/licenseButtons.ts b/packages/dmg-builder/src/licenseButtons.ts index 8c53a704a4c..91075da7e75 100644 --- a/packages/dmg-builder/src/licenseButtons.ts +++ b/packages/dmg-builder/src/licenseButtons.ts @@ -1,5 +1,5 @@ import { PlatformPackager } from "app-builder-lib" -import { getLicenseAssets } from "app-builder-lib" +import { getLicenseAssets } from "app-builder-lib/internal" import { log } from "builder-util" import fsExtra from "fs-extra" import * as iconv from "iconv-lite" diff --git a/packages/electron-builder-squirrel-windows/src/SquirrelWindowsTarget.ts b/packages/electron-builder-squirrel-windows/src/SquirrelWindowsTarget.ts index 8f7d0b65c4c..4e5bdda46e9 100644 --- a/packages/electron-builder-squirrel-windows/src/SquirrelWindowsTarget.ts +++ b/packages/electron-builder-squirrel-windows/src/SquirrelWindowsTarget.ts @@ -1,6 +1,8 @@ import { createRequire } from "node:module" -import { Arch, execWine, getArchSuffix, getBinFromUrl, SquirrelWindowsOptions, Target, WinPackager } from "app-builder-lib" -import { exists, InvalidConfigurationError, isEmptyOrSpaces, log, sanitizeFileName } from "builder-util" +import { Arch, getArchSuffix, SquirrelWindowsOptions, Target, WinPackager } from "app-builder-lib" +import { execWine, getBinFromUrl } from "app-builder-lib/internal" +import { exists, InvalidConfigurationError, isEmptyOrSpaces, log } from "builder-util" +import { sanitizeFileName } from "builder-util/internal" import { convertVersion, createWindowsInstaller, Options as SquirrelOptions } from "electron-winstaller" import * as fs from "fs" import * as os from "os" diff --git a/packages/electron-builder/package.json b/packages/electron-builder/package.json index b729f49e1db..b90026330ad 100644 --- a/packages/electron-builder/package.json +++ b/packages/electron-builder/package.json @@ -4,7 +4,8 @@ "version": "26.8.2", "type": "module", "exports": { - ".": "./out/index.js" + ".": "./out/index.js", + "./internal": "./out/indexInternal.js" }, "files": [ "out" diff --git a/packages/electron-builder/src/cli/cli.ts b/packages/electron-builder/src/cli/cli.ts index af7b8bc3fda..ee4aac75c2e 100644 --- a/packages/electron-builder/src/cli/cli.ts +++ b/packages/electron-builder/src/cli/cli.ts @@ -1,11 +1,9 @@ #! /usr/bin/env node import { createRequire } from "node:module" -import { getElectronVersion } from "app-builder-lib" +import { getElectronVersion, loadEnv, nodeGypRebuild } from "app-builder-lib/internal" const require = createRequire(import.meta.url) -import { loadEnv } from "app-builder-lib" -import { nodeGypRebuild } from "app-builder-lib" import { ExecError, InvalidConfigurationError, log } from "builder-util" import chalk from "chalk" import fsExtra from "fs-extra" diff --git a/packages/electron-builder/src/cli/create-self-signed-cert.ts b/packages/electron-builder/src/cli/create-self-signed-cert.ts index ad51264aec4..278fbdf334c 100644 --- a/packages/electron-builder/src/cli/create-self-signed-cert.ts +++ b/packages/electron-builder/src/cli/create-self-signed-cert.ts @@ -1,6 +1,6 @@ -import { getWindowsKitsBundle } from "app-builder-lib" +import { getWindowsKitsBundle } from "app-builder-lib/internal" import { archFromString, exec, log, spawn, TmpDir, unlinkIfExists } from "builder-util" -import { sanitizeFileName } from "builder-util" +import { sanitizeFileName } from "builder-util/internal" import chalk from "chalk" import { mkdir } from "fs/promises" import * as path from "path" diff --git a/packages/electron-builder/src/cli/install-app-deps.ts b/packages/electron-builder/src/cli/install-app-deps.ts index 5ede341b503..dc547eed9a8 100644 --- a/packages/electron-builder/src/cli/install-app-deps.ts +++ b/packages/electron-builder/src/cli/install-app-deps.ts @@ -1,6 +1,6 @@ #! /usr/bin/env node import { fileURLToPath } from "node:url" -import { computeDefaultAppDirectory, createLazyProductionDeps, determinePackageManagerEnv, getConfig, getElectronVersion, installOrRebuild, PACKAGE_VERSION } from "app-builder-lib" +import { computeDefaultAppDirectory, createLazyProductionDeps, determinePackageManagerEnv, getConfig, getElectronVersion, installOrRebuild, PACKAGE_VERSION } from "app-builder-lib/internal" import { getArchCliNames, log, orNullIfFileNotExist, printErrorAndExit } from "builder-util" import fsExtra from "fs-extra" import { Lazy } from "lazy-val" diff --git a/packages/electron-builder/src/index.ts b/packages/electron-builder/src/index.ts index 8dac3a65a69..f7812eaa48e 100644 --- a/packages/electron-builder/src/index.ts +++ b/packages/electron-builder/src/index.ts @@ -1,5 +1,5 @@ export { getArchSuffix, Arch, archFromString, log } from "builder-util" -export { build, CliOptions, configureBuildCommand, createYargs, normalizeOptions, coerceTypes, createTargets } from "./builder.js" +export { build, CliOptions, createTargets } from "./builder.js" export { publish, publishArtifactsWithOptions } from "./publish.js" export { TargetConfiguration, diff --git a/packages/electron-builder/src/indexInternal.ts b/packages/electron-builder/src/indexInternal.ts new file mode 100644 index 00000000000..d440c7daf38 --- /dev/null +++ b/packages/electron-builder/src/indexInternal.ts @@ -0,0 +1 @@ +export { configureBuildCommand, createYargs, normalizeOptions, coerceTypes } from "./builder.js" diff --git a/packages/electron-builder/src/publish.ts b/packages/electron-builder/src/publish.ts index b91fdf43396..2478ddde130 100644 --- a/packages/electron-builder/src/publish.ts +++ b/packages/electron-builder/src/publish.ts @@ -2,9 +2,7 @@ import { fileURLToPath } from "node:url" import { AppInfo, CancellationToken, Packager, PackagerOptions, PublishManager, PublishOptions, UploadTask, checkBuildRequestOptions } from "app-builder-lib" -import { Publish } from "app-builder-lib" -import { computeSafeArtifactNameIfNeeded } from "app-builder-lib" -import { getConfig } from "app-builder-lib" +import { Publish, computeSafeArtifactNameIfNeeded, getConfig } from "app-builder-lib/internal" import { InvalidConfigurationError, archFromString, log, printErrorAndExit } from "builder-util" import { PublishPolicy } from "electron-publish" import chalk from "chalk" diff --git a/packages/electron-publish/package.json b/packages/electron-publish/package.json index c1263733fcb..d14337c2df9 100644 --- a/packages/electron-publish/package.json +++ b/packages/electron-publish/package.json @@ -3,7 +3,8 @@ "version": "26.8.1", "type": "module", "exports": { - ".": "./out/index.js" + ".": "./out/index.js", + "./internal": "./out/indexInternal.js" }, "author": "Vladimir Krivosheev", "license": "MIT", diff --git a/packages/electron-publish/src/index.ts b/packages/electron-publish/src/index.ts index 4795b4c4d1e..df244ee8494 100644 --- a/packages/electron-publish/src/index.ts +++ b/packages/electron-publish/src/index.ts @@ -12,7 +12,6 @@ export { SnapStorePublisher } from "./snapStorePublisher.js" export type PublishPolicy = "onTag" | "onTagOrDraft" | "always" | "never" -export { MultiProgress } export { ProgressCallback } from "./progress.js" export interface PublishOptions { diff --git a/packages/electron-publish/src/indexInternal.ts b/packages/electron-publish/src/indexInternal.ts new file mode 100644 index 00000000000..c3ffd454e98 --- /dev/null +++ b/packages/electron-publish/src/indexInternal.ts @@ -0,0 +1 @@ +export { MultiProgress } from "./multiProgress.js" diff --git a/packages/electron-publish/src/keygenPublisher.ts b/packages/electron-publish/src/keygenPublisher.ts index d15383675fc..990e1721de4 100644 --- a/packages/electron-publish/src/keygenPublisher.ts +++ b/packages/electron-publish/src/keygenPublisher.ts @@ -1,7 +1,7 @@ import { Arch, httpExecutor, InvalidConfigurationError, isEmptyOrSpaces, log } from "builder-util" import { configureRequestOptions, HttpExecutor, parseJson } from "builder-util-runtime" import { KeygenOptions } from "builder-util-runtime" -import { getCompleteExtname } from "builder-util" +import { getCompleteExtname } from "builder-util/internal" import { ClientRequest, RequestOptions } from "http" import { PublishContext } from "./index.js" import { HttpPublisher } from "./httpPublisher.js" diff --git a/packages/electron-updater/package.json b/packages/electron-updater/package.json index a5baf5c596f..0a6f2b20b64 100644 --- a/packages/electron-updater/package.json +++ b/packages/electron-updater/package.json @@ -4,7 +4,8 @@ "description": "Cross platform updater for electron applications", "type": "module", "exports": { - ".": "./out/main.js" + ".": "./out/main.js", + "./internal": "./out/indexInternal.js" }, "author": "Vladimir Krivosheev", "license": "MIT", diff --git a/packages/electron-updater/src/differentialDownloader/downloadPlanBuilder.ts b/packages/electron-updater/src/differentialDownloader/downloadPlanBuilder.ts index 0f9f237b820..76c74c36566 100644 --- a/packages/electron-updater/src/differentialDownloader/downloadPlanBuilder.ts +++ b/packages/electron-updater/src/differentialDownloader/downloadPlanBuilder.ts @@ -1,4 +1,5 @@ -import { BlockMap, BlockMapFile } from "builder-util-runtime" +import { BlockMap } from "builder-util-runtime" +import { BlockMapFile } from "builder-util-runtime/internal" import { Logger } from "../types.js" export enum OperationKind { diff --git a/packages/electron-updater/src/indexInternal.ts b/packages/electron-updater/src/indexInternal.ts new file mode 100644 index 00000000000..05c76dc1b8a --- /dev/null +++ b/packages/electron-updater/src/indexInternal.ts @@ -0,0 +1,5 @@ +export { ElectronAppAdapter } from "./ElectronAppAdapter.js" +export { TestOnlyUpdaterOptions } from "./AppUpdater.js" +export { GitHubProvider } from "./providers/GitHubProvider.js" +export { GitLabProvider } from "./providers/GitLabProvider.js" +export * as utils from "./util.js" diff --git a/packages/electron-updater/src/main.ts b/packages/electron-updater/src/main.ts index 4ca89a388f2..331a8ac3651 100644 --- a/packages/electron-updater/src/main.ts +++ b/packages/electron-updater/src/main.ts @@ -5,12 +5,10 @@ import { AppUpdater } from "./AppUpdater.js" const require = createRequire(import.meta.url) -export { ElectronAppAdapter } from "./ElectronAppAdapter.js" - import { UpdateInfo } from "builder-util-runtime" export { BaseUpdater } from "./BaseUpdater.js" -export { AppUpdater, NoOpLogger, TestOnlyUpdaterOptions } from "./AppUpdater.js" +export { AppUpdater, NoOpLogger } from "./AppUpdater.js" export { AppImageUpdater } from "./AppImageUpdater.js" export { DebUpdater } from "./DebUpdater.js" @@ -20,11 +18,8 @@ export { MacUpdater } from "./MacUpdater.js" export { NsisUpdater } from "./NsisUpdater.js" export { Provider } from "./providers/Provider.js" -export { GitHubProvider } from "./providers/GitHubProvider.js" -export { GitLabProvider } from "./providers/GitLabProvider.js" export * from "./types.js" -export * as utils from "./util.js" function doLoadAutoUpdater(): AppUpdater { let updater: any From 1b4dbdc9f0c16039cbe6fb320d9a6af81f965809 Mon Sep 17 00:00:00 2001 From: Mike Maietta Date: Sat, 2 May 2026 16:39:12 -0700 Subject: [PATCH 49/65] yesssss --- packages/electron-updater/package.json | 2 +- packages/electron-updater/src/AppUpdater.ts | 2 +- packages/electron-updater/src/NsisUpdater.ts | 2 +- packages/electron-updater/src/{main.ts => index.ts} | 3 +-- packages/electron-updater/src/indexInternal.ts | 1 + test/src/ArtifactPublisherTest.ts | 2 +- test/src/BuildTest.ts | 8 ++++---- test/src/HoistTest.ts | 2 +- test/src/HoistedNodeModuleTest.ts | 2 +- test/src/RepoSlugTest.ts | 2 +- test/src/binDownloadTest.ts | 2 +- test/src/configurationValidationTest.ts | 6 +++--- test/src/extraMetadataTest.ts | 4 ++-- test/src/filenameUtilTest.ts | 2 +- test/src/globTest.ts | 4 ++-- test/src/helpers/CheckingPackager.ts | 3 +-- test/src/helpers/TestAppAdapter.ts | 2 +- test/src/helpers/asarVerifier.ts | 2 +- test/src/helpers/fileAssert.ts | 2 +- test/src/helpers/launchAppCrossPlatform.ts | 2 +- test/src/helpers/packTester.ts | 11 ++--------- test/src/helpers/updaterTestUtil.ts | 2 +- test/src/helpers/verifySmartUnpack.ts | 2 +- test/src/helpers/winHelper.ts | 2 +- test/src/ignoreTest.ts | 2 +- test/src/mac/macCodeSignTest.ts | 2 +- test/src/mac/macIconTest.ts | 2 +- test/src/macroExpanderTest.ts | 2 +- test/src/packageManagerTest.ts | 2 +- test/src/parseNameVersionTest.ts | 2 +- test/src/rebuilderTest.ts | 2 +- test/src/updater/blackboxUpdateTest.ts | 2 +- test/src/updater/nsisUpdaterTest.ts | 3 +-- test/src/urlUtilTest.ts | 2 +- 34 files changed, 42 insertions(+), 51 deletions(-) rename packages/electron-updater/src/{main.ts => index.ts} (97%) diff --git a/packages/electron-updater/package.json b/packages/electron-updater/package.json index 0a6f2b20b64..b850f73c1d0 100644 --- a/packages/electron-updater/package.json +++ b/packages/electron-updater/package.json @@ -4,7 +4,7 @@ "description": "Cross platform updater for electron applications", "type": "module", "exports": { - ".": "./out/main.js", + ".": "./out/index.js", "./internal": "./out/indexInternal.js" }, "author": "Vladimir Krivosheev", diff --git a/packages/electron-updater/src/AppUpdater.ts b/packages/electron-updater/src/AppUpdater.ts index 4d190bdc90a..f03bd8fb5d1 100644 --- a/packages/electron-updater/src/AppUpdater.ts +++ b/packages/electron-updater/src/AppUpdater.ts @@ -36,7 +36,7 @@ import { gunzipSync, gzipSync } from "zlib" import { DifferentialDownloaderOptions } from "./differentialDownloader/DifferentialDownloader.js" import { GenericDifferentialDownloader } from "./differentialDownloader/GenericDifferentialDownloader.js" import { DOWNLOAD_PROGRESS, Logger, ResolvedUpdateFileInfo, UPDATE_DOWNLOADED, UpdateCheckResult, UpdateDownloadedEvent, UpdaterSignal } from "./types.js" -import { VerifyUpdateSupport } from "./main.js" +import { VerifyUpdateSupport } from "./index.js" const require = createRequire(import.meta.url) diff --git a/packages/electron-updater/src/NsisUpdater.ts b/packages/electron-updater/src/NsisUpdater.ts index 8791a2ceb54..1b64e702ddb 100644 --- a/packages/electron-updater/src/NsisUpdater.ts +++ b/packages/electron-updater/src/NsisUpdater.ts @@ -7,7 +7,7 @@ import { BaseUpdater, InstallOptions } from "./BaseUpdater.js" import { DifferentialDownloaderOptions } from "./differentialDownloader/DifferentialDownloader.js" import { FileWithEmbeddedBlockMapDifferentialDownloader } from "./differentialDownloader/FileWithEmbeddedBlockMapDifferentialDownloader.js" import { DOWNLOAD_PROGRESS } from "./types.js" -import { VerifyUpdateCodeSignature } from "./main.js" +import { VerifyUpdateCodeSignature } from "./index.js" import { findFile, Provider } from "./providers/Provider.js" import fsExtra from "fs-extra" import { verifySignature } from "./windowsExecutableCodeSignatureVerifier.js" diff --git a/packages/electron-updater/src/main.ts b/packages/electron-updater/src/index.ts similarity index 97% rename from packages/electron-updater/src/main.ts rename to packages/electron-updater/src/index.ts index 331a8ac3651..95bb00c9b3d 100644 --- a/packages/electron-updater/src/main.ts +++ b/packages/electron-updater/src/index.ts @@ -7,9 +7,8 @@ const require = createRequire(import.meta.url) import { UpdateInfo } from "builder-util-runtime" +export { AppUpdater } export { BaseUpdater } from "./BaseUpdater.js" -export { AppUpdater, NoOpLogger } from "./AppUpdater.js" - export { AppImageUpdater } from "./AppImageUpdater.js" export { DebUpdater } from "./DebUpdater.js" export { PacmanUpdater } from "./PacmanUpdater.js" diff --git a/packages/electron-updater/src/indexInternal.ts b/packages/electron-updater/src/indexInternal.ts index 05c76dc1b8a..021188deadd 100644 --- a/packages/electron-updater/src/indexInternal.ts +++ b/packages/electron-updater/src/indexInternal.ts @@ -2,4 +2,5 @@ export { ElectronAppAdapter } from "./ElectronAppAdapter.js" export { TestOnlyUpdaterOptions } from "./AppUpdater.js" export { GitHubProvider } from "./providers/GitHubProvider.js" export { GitLabProvider } from "./providers/GitLabProvider.js" +export { NoOpLogger } from "./AppUpdater.js" export * as utils from "./util.js" diff --git a/test/src/ArtifactPublisherTest.ts b/test/src/ArtifactPublisherTest.ts index f32bb1032e4..362be571f38 100644 --- a/test/src/ArtifactPublisherTest.ts +++ b/test/src/ArtifactPublisherTest.ts @@ -1,5 +1,5 @@ import { Platform } from "app-builder-lib" -import { createPublisher } from "app-builder-lib" +import { createPublisher } from "app-builder-lib/internal" import { Arch } from "builder-util" import { BitbucketOptions, CancellationToken, HttpError, KeygenOptions, S3Options, SpacesOptions } from "builder-util-runtime" import { publishArtifactsWithOptions } from "electron-builder" diff --git a/test/src/BuildTest.ts b/test/src/BuildTest.ts index 281d9ca065d..ab91e443ea4 100644 --- a/test/src/BuildTest.ts +++ b/test/src/BuildTest.ts @@ -1,21 +1,21 @@ import { createRequire } from "node:module" import { checkBuildRequestOptions } from "app-builder-lib" -import { doMergeConfigs } from "app-builder-lib" +import { doMergeConfigs } from "app-builder-lib/internal" import { Arch, createTargets, DIR_TARGET, Platform } from "electron-builder" -import { createYargs } from "electron-builder" +import { createYargs } from "electron-builder/internal" import { promises as fs } from "fs" import fsExtra from "fs-extra" import * as path from "path" import { app, appTwo, appTwoThrows, assertPack, getFixtureDir, linuxDirTarget, modifyPackageJson, packageJson, toSystemIndependentPath } from "./helpers/packTester.js" import { ELECTRON_VERSION } from "./helpers/testConfig.js" import { verifySmartUnpack } from "./helpers/verifySmartUnpack.js" -import { PM } from "app-builder-lib" +import { PM } from "app-builder-lib/internal" const require = createRequire(import.meta.url) test.ifLinux("cli", ({ expect }) => { // because these methods are internal - const { configureBuildCommand, normalizeOptions } = require("electron-builder") + const { configureBuildCommand, normalizeOptions } = require("electron-builder/internal") const yargs = createYargs() configureBuildCommand(yargs) diff --git a/test/src/HoistTest.ts b/test/src/HoistTest.ts index 23a7b2740b2..dd8c6b942ba 100644 --- a/test/src/HoistTest.ts +++ b/test/src/HoistTest.ts @@ -1,5 +1,5 @@ // copy from https://github.com/yarnpkg/berry/blob/master/packages/yarnpkg-nm/tests/hoist.test.ts -import { hoist, HoisterTree, HoisterResult, HoisterDependencyKind } from "app-builder-lib" +import { hoist, HoisterTree, HoisterResult, HoisterDependencyKind } from "app-builder-lib/internal" import { expect } from "vitest" const toTree = (obj: any, key: string = `.`, nodes = new Map()): HoisterTree => { diff --git a/test/src/HoistedNodeModuleTest.ts b/test/src/HoistedNodeModuleTest.ts index c09a693f592..be13143ac0d 100644 --- a/test/src/HoistedNodeModuleTest.ts +++ b/test/src/HoistedNodeModuleTest.ts @@ -1,4 +1,4 @@ -import { PM } from "app-builder-lib" +import { PM } from "app-builder-lib/internal" import { spawn } from "builder-util" import { Arch, DIR_TARGET, Platform } from "electron-builder" import * as path from "path" diff --git a/test/src/RepoSlugTest.ts b/test/src/RepoSlugTest.ts index cac56766bfd..605cb031120 100644 --- a/test/src/RepoSlugTest.ts +++ b/test/src/RepoSlugTest.ts @@ -1,4 +1,4 @@ -import { getRepositoryInfo } from "app-builder-lib" +import { getRepositoryInfo } from "app-builder-lib/internal" import { ExpectStatic } from "vitest" function checkInfo(expect: ExpectStatic, info: any) { diff --git a/test/src/binDownloadTest.ts b/test/src/binDownloadTest.ts index d194ffa132a..7a0fb7c3bcf 100644 --- a/test/src/binDownloadTest.ts +++ b/test/src/binDownloadTest.ts @@ -1,4 +1,4 @@ -import { getBinFromUrl } from "app-builder-lib" +import { getBinFromUrl } from "app-builder-lib/internal" test("download binary from Github", async ({ expect }) => { const bin = await getBinFromUrl( diff --git a/test/src/configurationValidationTest.ts b/test/src/configurationValidationTest.ts index ad3f1d48f1f..a9174e50fad 100644 --- a/test/src/configurationValidationTest.ts +++ b/test/src/configurationValidationTest.ts @@ -1,7 +1,7 @@ -import { validateConfiguration } from "app-builder-lib" +import { validateConfiguration } from "app-builder-lib/internal" import { Arch, DebugLogger } from "builder-util" -import { Configuration, Platform } from "electron-builder" -import { CliOptions, configureBuildCommand, createYargs, normalizeOptions } from "electron-builder" +import { CliOptions, Configuration, Platform } from "electron-builder" +import { configureBuildCommand, createYargs, normalizeOptions } from "electron-builder/internal" import { app, appThrows, linuxDirTarget } from "./helpers/packTester.js" test.ifNotWindows("validation", ({ expect }) => diff --git a/test/src/extraMetadataTest.ts b/test/src/extraMetadataTest.ts index f166be289c4..b2c68eccce8 100644 --- a/test/src/extraMetadataTest.ts +++ b/test/src/extraMetadataTest.ts @@ -1,7 +1,7 @@ import { createRequire } from "node:module" -import { readAsarJson } from "app-builder-lib" +import { readAsarJson } from "app-builder-lib/internal" import { Platform } from "electron-builder" -import { coerceTypes } from "electron-builder" +import { coerceTypes } from "electron-builder/internal" import fsExtra from "fs-extra" import * as path from "path" import { assertThat } from "./helpers/fileAssert.js" diff --git a/test/src/filenameUtilTest.ts b/test/src/filenameUtilTest.ts index 6b4c2b8209e..577df87f61c 100644 --- a/test/src/filenameUtilTest.ts +++ b/test/src/filenameUtilTest.ts @@ -1,4 +1,4 @@ -import { getCompleteExtname } from "builder-util" +import { getCompleteExtname } from "builder-util/internal" // [inputFilename, expectedExtname] const tests = [ diff --git a/test/src/globTest.ts b/test/src/globTest.ts index f126243f051..1dc75dc52e8 100644 --- a/test/src/globTest.ts +++ b/test/src/globTest.ts @@ -1,6 +1,6 @@ import { Platform } from "app-builder-lib" -import { readAsar } from "app-builder-lib" -import { PM } from "app-builder-lib" +import { readAsar } from "app-builder-lib/internal" +import { PM } from "app-builder-lib/internal" import fsExtra from "fs-extra" import * as fs from "fs/promises" import * as path from "path" diff --git a/test/src/helpers/CheckingPackager.ts b/test/src/helpers/CheckingPackager.ts index 10df1c61034..9c70e9b3a31 100644 --- a/test/src/helpers/CheckingPackager.ts +++ b/test/src/helpers/CheckingPackager.ts @@ -1,6 +1,5 @@ import { SignOptions as MacSignOptions } from "@electron/osx-sign/dist/esm/types.js" -import { Identity } from "app-builder-lib" -import { DoPackOptions } from "app-builder-lib" +import { Identity, DoPackOptions } from "app-builder-lib/internal" import { WinPackager, getArchSuffix, MacPackager } from "app-builder-lib" import { AsyncTaskManager } from "builder-util" import { DmgTarget } from "dmg-builder" diff --git a/test/src/helpers/TestAppAdapter.ts b/test/src/helpers/TestAppAdapter.ts index 0e3f3a6880e..af63c678c51 100644 --- a/test/src/helpers/TestAppAdapter.ts +++ b/test/src/helpers/TestAppAdapter.ts @@ -1,4 +1,4 @@ -import { ElectronAppAdapter } from "electron-updater" +import { ElectronAppAdapter } from "electron-updater/internal" // do not implement AppAdapter directly, test that our ElectronAppAdapter implementation is correct export class TestAppAdapter extends ElectronAppAdapter { diff --git a/test/src/helpers/asarVerifier.ts b/test/src/helpers/asarVerifier.ts index 24d220ce97b..fd2f7fa96cd 100644 --- a/test/src/helpers/asarVerifier.ts +++ b/test/src/helpers/asarVerifier.ts @@ -1,4 +1,4 @@ -import { readAsar } from "app-builder-lib" +import { readAsar } from "app-builder-lib/internal" import path from "path" import { expect, ExpectStatic } from "vitest" diff --git a/test/src/helpers/fileAssert.ts b/test/src/helpers/fileAssert.ts index e31e6ee2df3..07422987ec8 100644 --- a/test/src/helpers/fileAssert.ts +++ b/test/src/helpers/fileAssert.ts @@ -2,7 +2,7 @@ import { exists, statOrNull } from "builder-util" import * as fs from "fs/promises" import * as path from "path" import { ExpectStatic } from "vitest" -import { PACKAGE_VERSION as appVersion } from "app-builder-lib" +import { PACKAGE_VERSION as appVersion } from "app-builder-lib/internal" // http://joel-costigliola.github.io/assertj/ export function assertThat(expect: ExpectStatic, actual: any): Assertions { diff --git a/test/src/helpers/launchAppCrossPlatform.ts b/test/src/helpers/launchAppCrossPlatform.ts index f4e0c5c316a..2694932d2c0 100644 --- a/test/src/helpers/launchAppCrossPlatform.ts +++ b/test/src/helpers/launchAppCrossPlatform.ts @@ -1,4 +1,4 @@ -import { getBinFromUrl } from "app-builder-lib" +import { getBinFromUrl } from "app-builder-lib/internal" import { isEmptyOrSpaces } from "builder-util" import { ChildProcess, spawn } from "child_process" import { chmodSync } from "fs" diff --git a/test/src/helpers/packTester.ts b/test/src/helpers/packTester.ts index e6e09ce7f4b..755c2c2616d 100644 --- a/test/src/helpers/packTester.ts +++ b/test/src/helpers/packTester.ts @@ -1,9 +1,6 @@ import { PublishManager } from "app-builder-lib" +import { computeArchToTargetNamesMap, getLinuxToolsPath, parsePlistFile, PlistObject, AsarIntegrity } from "app-builder-lib/internal" import { verifyAsarFileTree as _verifyAsarFileTree } from "./asarVerifier.js" -import { computeArchToTargetNamesMap } from "app-builder-lib" -import { getLinuxToolsPath } from "app-builder-lib" -import { parsePlistFile, PlistObject } from "app-builder-lib" -import { AsarIntegrity } from "app-builder-lib" import { addValue, copyDir, deepAssign, exec, executeFinally, exists, FileCopier, log, USE_HARD_LINKS, walk } from "builder-util" import { CancellationToken, UpdateFileInfo } from "builder-util-runtime" import { Arch, ArtifactCreated, Configuration, DIR_TARGET, getArchSuffix, MacOsTargetName, Packager, PackagerOptions, Platform, Target } from "electron-builder" @@ -16,19 +13,15 @@ import * as path from "path" import pathSorter from "path-sort" import { NtExecutable, NtExecutableResource } from "resedit" import { TmpDir } from "temp-file" -import { getCollectorByPackageManager, PM } from "app-builder-lib" +import { getCollectorByPackageManager, PM, computeDefaultAppDirectory, installDependencies, createLazyProductionDeps, detectPackageManager } from "app-builder-lib/internal" import { promisify } from "util" import { MAC_CSC_LINK, WIN_CSC_LINK } from "./codeSignData.js" import { assertThat } from "./fileAssert.js" import AdmZip from "adm-zip" import sanitizeFileName from "sanitize-filename" import type { ExpectStatic } from "vitest" -import { computeDefaultAppDirectory } from "app-builder-lib" -import { installDependencies } from "app-builder-lib" import { ELECTRON_VERSION } from "./testConfig.js" -import { createLazyProductionDeps } from "app-builder-lib" import { exec as execCallback, execSync } from "child_process" -import { detectPackageManager } from "app-builder-lib" const PACKAGE_MANAGER_VERSION_MAP = { diff --git a/test/src/helpers/updaterTestUtil.ts b/test/src/helpers/updaterTestUtil.ts index 8baf238c637..740efcc04cb 100644 --- a/test/src/helpers/updaterTestUtil.ts +++ b/test/src/helpers/updaterTestUtil.ts @@ -1,7 +1,7 @@ import { NodeHttpExecutor, serializeToYaml, TmpDir } from "builder-util" import { AllPublishOptions, DownloadOptions } from "builder-util-runtime" import { AppUpdater, MacUpdater, NsisUpdater } from "electron-updater" -import { NoOpLogger, TestOnlyUpdaterOptions } from "electron-updater" +import { NoOpLogger, TestOnlyUpdaterOptions } from "electron-updater/internal" import fsExtra from "fs-extra" import * as path from "path" import { assertThat } from "./fileAssert.js" diff --git a/test/src/helpers/verifySmartUnpack.ts b/test/src/helpers/verifySmartUnpack.ts index 4d4b625e26f..09d0cb102dd 100644 --- a/test/src/helpers/verifySmartUnpack.ts +++ b/test/src/helpers/verifySmartUnpack.ts @@ -1,4 +1,4 @@ -import { AsarFilesystem, readAsar } from "app-builder-lib" +import { AsarFilesystem, readAsar } from "app-builder-lib/internal" import { walk } from "builder-util" import { readFileSync } from "fs" import * as path from "path" diff --git a/test/src/helpers/winHelper.ts b/test/src/helpers/winHelper.ts index eb62d54d1ee..952a9af7a70 100644 --- a/test/src/helpers/winHelper.ts +++ b/test/src/helpers/winHelper.ts @@ -1,4 +1,4 @@ -import { readAsarJson } from "app-builder-lib" +import { readAsarJson } from "app-builder-lib/internal" import { walk } from "builder-util" import { Arch, Platform } from "electron-builder" import fsExtra from "fs-extra" diff --git a/test/src/ignoreTest.ts b/test/src/ignoreTest.ts index 6240671eca2..49aa86580ea 100644 --- a/test/src/ignoreTest.ts +++ b/test/src/ignoreTest.ts @@ -3,7 +3,7 @@ import fsExtra from "fs-extra" import * as path from "path" import { assertThat } from "./helpers/fileAssert.js" import { app, checkDirContents, linuxDirTarget, modifyPackageJson } from "./helpers/packTester.js" -import { PM } from "app-builder-lib" +import { PM } from "app-builder-lib/internal" const currentProcessTarget = Platform.LINUX.createTarget(DIR_TARGET, archFromString(process.arch)) diff --git a/test/src/mac/macCodeSignTest.ts b/test/src/mac/macCodeSignTest.ts index da0d1474bcc..dd7b045f3c2 100644 --- a/test/src/mac/macCodeSignTest.ts +++ b/test/src/mac/macCodeSignTest.ts @@ -1,4 +1,4 @@ -import { createKeychain, removeKeychain } from "app-builder-lib" +import { createKeychain, removeKeychain } from "app-builder-lib/internal" import { removePassword, TmpDir } from "builder-util" import { MAC_CSC_LINK } from "../helpers/codeSignData.js" import { afterEach } from "vitest" diff --git a/test/src/mac/macIconTest.ts b/test/src/mac/macIconTest.ts index 89fbe178147..8fcdb753147 100644 --- a/test/src/mac/macIconTest.ts +++ b/test/src/mac/macIconTest.ts @@ -1,4 +1,4 @@ -import { parsePlistFile, PlistObject } from "app-builder-lib" +import { parsePlistFile, PlistObject } from "app-builder-lib/internal" import { Arch, DIR_TARGET, Platform } from "electron-builder" import * as fs from "fs/promises" import * as path from "path" diff --git a/test/src/macroExpanderTest.ts b/test/src/macroExpanderTest.ts index 978c361b17b..1eb073d8ed1 100644 --- a/test/src/macroExpanderTest.ts +++ b/test/src/macroExpanderTest.ts @@ -1,4 +1,4 @@ -import { expandMacro } from "app-builder-lib" +import { expandMacro } from "app-builder-lib/internal" const appInfoStub: any = { sanitizedProductName: "1", diff --git a/test/src/packageManagerTest.ts b/test/src/packageManagerTest.ts index dd2afa7b274..b22b3c40bdd 100644 --- a/test/src/packageManagerTest.ts +++ b/test/src/packageManagerTest.ts @@ -1,5 +1,5 @@ import { Platform } from "app-builder-lib" -import { PM } from "app-builder-lib" +import { PM } from "app-builder-lib/internal" import fsExtra from "fs-extra" import * as path from "path" import { assertThat } from "./helpers/fileAssert.js" diff --git a/test/src/parseNameVersionTest.ts b/test/src/parseNameVersionTest.ts index 910f9ac9369..1dc3151ac50 100644 --- a/test/src/parseNameVersionTest.ts +++ b/test/src/parseNameVersionTest.ts @@ -1,4 +1,4 @@ -import { PnpmNodeModulesCollector } from "app-builder-lib" +import { PnpmNodeModulesCollector } from "app-builder-lib/internal" import { TmpDir } from "temp-file" import { describe, expect, test } from "vitest" diff --git a/test/src/rebuilderTest.ts b/test/src/rebuilderTest.ts index 5cc1eda4013..76e322bbf73 100644 --- a/test/src/rebuilderTest.ts +++ b/test/src/rebuilderTest.ts @@ -1,5 +1,5 @@ import { Configuration, Platform } from "app-builder-lib" -import { PM } from "app-builder-lib" +import { PM } from "app-builder-lib/internal" import { exists } from "builder-util" import path from "path" import { assertPack, linuxDirTarget, modifyPackageJson } from "./helpers/packTester.js" diff --git a/test/src/updater/blackboxUpdateTest.ts b/test/src/updater/blackboxUpdateTest.ts index 4a48f40bffd..f312cf02b14 100644 --- a/test/src/updater/blackboxUpdateTest.ts +++ b/test/src/updater/blackboxUpdateTest.ts @@ -1,5 +1,5 @@ import { ToolsetConfig } from "app-builder-lib" -import { PM } from "app-builder-lib" +import { PM } from "app-builder-lib/internal" import { GenericServerOptions, Nullish } from "builder-util-runtime" import { archFromString, doSpawn, getArchSuffix, isEmptyOrSpaces, log, spawn, TmpDir } from "builder-util" import { execFileSync, execSync } from "child_process" diff --git a/test/src/updater/nsisUpdaterTest.ts b/test/src/updater/nsisUpdaterTest.ts index 307826d147d..e687a699c11 100644 --- a/test/src/updater/nsisUpdaterTest.ts +++ b/test/src/updater/nsisUpdaterTest.ts @@ -8,8 +8,7 @@ import { assertThat } from "../helpers/fileAssert.js" import { removeUnstableProperties } from "../helpers/packTester.js" import { createNsisUpdater, trackEvents, validateDownload, writeUpdateConfig } from "../helpers/updaterTestUtil.js" import { ExpectStatic } from "vitest" -import { GitLabProvider } from "electron-updater" -import { GitHubProvider } from "electron-updater" +import { GitLabProvider, GitHubProvider } from "electron-updater/internal" const config = { retry: 3 } diff --git a/test/src/urlUtilTest.ts b/test/src/urlUtilTest.ts index 545687e8459..f9aeb73c2ff 100644 --- a/test/src/urlUtilTest.ts +++ b/test/src/urlUtilTest.ts @@ -1,4 +1,4 @@ -import { utils } from "electron-updater" +import { utils } from "electron-updater/internal" import { URL } from "url" test("newUrlFromBase", ({ expect }) => { From e27a88a902a792dc227bb549acdb5efb3c45dd27 Mon Sep 17 00:00:00 2001 From: Mike Maietta Date: Sat, 2 May 2026 17:18:09 -0700 Subject: [PATCH 50/65] optimize dependencies/devDependencies list --- .changeset/config.json | 4 ++ .changeset/cute-goats-kiss.md | 12 ---- package.json | 1 - packages/app-builder-lib/package.json | 4 +- packages/app-builder-lib/tsconfig-scheme.json | 2 - packages/app-builder-lib/tsconfig.json | 2 - packages/builder-util/package.json | 4 +- packages/dmg-builder/package.json | 2 +- .../package.json | 1 - packages/electron-builder/package.json | 2 +- packages/electron-publish/package.json | 4 +- packages/electron-publish/tsconfig.json | 3 +- packages/electron-updater/package.json | 2 +- packages/electron-updater/tsconfig.json | 2 - pnpm-lock.yaml | 70 ++++--------------- scripts/tsconfig.json | 4 +- test/tsconfig.json | 8 +-- test/vitest-scripts/smart-shard-count.ts | 2 - tsconfig-base.json | 1 - tsconfig.json | 12 ++++ 20 files changed, 44 insertions(+), 98 deletions(-) delete mode 100644 .changeset/cute-goats-kiss.md diff --git a/.changeset/config.json b/.changeset/config.json index c0564b78fad..b318d41c1bc 100644 --- a/.changeset/config.json +++ b/.changeset/config.json @@ -8,6 +8,10 @@ "dmg-builder", "electron-builder", "electron-builder-squirrel-windows", + "electron-forge-maker-appimage", + "electron-forge-maker-nsis", + "electron-forge-maker-nsis-web", + "electron-forge-maker-snap", "electron-publish" ]], "access": "public", diff --git a/.changeset/cute-goats-kiss.md b/.changeset/cute-goats-kiss.md deleted file mode 100644 index b357953901c..00000000000 --- a/.changeset/cute-goats-kiss.md +++ /dev/null @@ -1,12 +0,0 @@ ---- -"app-builder-lib": major -"builder-util": major -"builder-util-runtime": major -"dmg-builder": major -"electron-builder": major -"electron-builder-squirrel-windows": major -"electron-publish": major -"electron-updater": major ---- - -chore: release cut of v27 diff --git a/package.json b/package.json index 5b2f0566a3e..90761288a40 100644 --- a/package.json +++ b/package.json @@ -55,7 +55,6 @@ "fs-extra": "^11.3.4", "is-ci": "^4.1.0", "prettier": "3.7.4", - "ts-node": "^10.9.2", "tsx": "^4.21.0", "typedoc": "^0.26.7", "typedoc-plugin-markdown": "4.2.8", diff --git a/packages/app-builder-lib/package.json b/packages/app-builder-lib/package.json index 8cfa5415ab0..ce1a1c1cc66 100644 --- a/packages/app-builder-lib/package.json +++ b/packages/app-builder-lib/package.json @@ -60,7 +60,6 @@ "@electron/rebuild": "^4.0.3", "@electron/universal": "2.0.3", "@malept/flatpak-bundler": "^0.4.0", - "@types/fs-extra": "9.0.13", "async-exit-hook": "^2.0.1", "builder-util": "workspace:*", "builder-util-runtime": "workspace:*", @@ -110,6 +109,7 @@ "@babel/preset-env": "7.24.8", "@babel/preset-react": "7.24.7", "@types/debug": "4.1.7", + "@types/fs-extra": "9.0.13", "@types/ejs": "3.1.0", "@types/hosted-git-info": "3.0.2", "@types/js-yaml": "4.0.3", @@ -127,5 +127,5 @@ "electron-builder-squirrel-windows": "workspace:*" }, "//": "electron-builder-squirrel-windows and dmg-builder added as dev dep for tests (as otherwise `require` doesn't work using Yarn 2)", - "typings": "./out/index.d.ts" + "types": "./out/index.d.ts" } diff --git a/packages/app-builder-lib/tsconfig-scheme.json b/packages/app-builder-lib/tsconfig-scheme.json index 7c1ea20d7aa..e6f1af42b9f 100644 --- a/packages/app-builder-lib/tsconfig-scheme.json +++ b/packages/app-builder-lib/tsconfig-scheme.json @@ -8,6 +8,4 @@ "src/**/*.ts", "../../typings/*.d.ts" ], - "exclude": [ - ] } \ No newline at end of file diff --git a/packages/app-builder-lib/tsconfig.json b/packages/app-builder-lib/tsconfig.json index 8a3a77df391..162e4b06d22 100644 --- a/packages/app-builder-lib/tsconfig.json +++ b/packages/app-builder-lib/tsconfig.json @@ -8,8 +8,6 @@ "src/**/*.ts", "../../typings/*.d.ts" ], - "exclude": [ - ], "references": [ { "path": "../builder-util" diff --git a/packages/builder-util/package.json b/packages/builder-util/package.json index d08217be3fa..6c21fb40d5e 100644 --- a/packages/builder-util/package.json +++ b/packages/builder-util/package.json @@ -20,7 +20,6 @@ ], "dependencies": { "7zip-bin": "~5.2.0", - "@types/debug": "^4.1.6", "app-builder-bin": "5.0.0-alpha.12", "builder-util-runtime": "workspace:*", "chalk": "^4.1.2", @@ -36,9 +35,10 @@ "temp-file": "^3.4.0", "tiny-async-pool": "1.3.0" }, - "typings": "./out/util.d.ts", + "types": "./out/util.d.ts", "devDependencies": { "@types/cross-spawn": "6.0.6", + "@types/debug": "^4.1.6", "@types/fs-extra": "^9.0.11", "@types/js-yaml": "4.0.3", "@types/source-map-support": "0.5.4", diff --git a/packages/dmg-builder/package.json b/packages/dmg-builder/package.json index d1dda570dcd..b88adbf4947 100644 --- a/packages/dmg-builder/package.json +++ b/packages/dmg-builder/package.json @@ -34,5 +34,5 @@ "@types/js-yaml": "4.0.3", "temp-file": "3.4.0" }, - "typings": "./out/dmg.d.ts" + "types": "./out/dmg.d.ts" } diff --git a/packages/electron-builder-squirrel-windows/package.json b/packages/electron-builder-squirrel-windows/package.json index 8602e479b68..9048ecdd776 100644 --- a/packages/electron-builder-squirrel-windows/package.json +++ b/packages/electron-builder-squirrel-windows/package.json @@ -25,7 +25,6 @@ "electron-winstaller": "5.4.0" }, "devDependencies": { - "@types/archiver": "5.3.1", "@types/fs-extra": "9.0.13" }, "types": "./out/SquirrelWindowsTarget.d.ts" diff --git a/packages/electron-builder/package.json b/packages/electron-builder/package.json index b90026330ad..b0b40be1d9f 100644 --- a/packages/electron-builder/package.json +++ b/packages/electron-builder/package.json @@ -71,7 +71,7 @@ "@types/fs-extra": "9.0.13", "@types/yargs": "^17.0.16" }, - "typings": "./out/index.d.ts", + "types": "./out/index.d.ts", "publishConfig": { "tag": "next" } diff --git a/packages/electron-publish/package.json b/packages/electron-publish/package.json index d14337c2df9..be1eeb6beba 100644 --- a/packages/electron-publish/package.json +++ b/packages/electron-publish/package.json @@ -19,7 +19,6 @@ "out" ], "dependencies": { - "@types/fs-extra": "^9.0.11", "builder-util": "workspace:*", "builder-util-runtime": "workspace:*", "chalk": "^4.1.2", @@ -28,8 +27,9 @@ "lazy-val": "^1.0.5", "mime": "^2.5.2" }, - "typings": "./out/index.d.ts", + "types": "./out/index.d.ts", "devDependencies": { + "@types/fs-extra": "^9.0.11", "@types/mime": "2.0.3" }, "scripts": { diff --git a/packages/electron-publish/tsconfig.json b/packages/electron-publish/tsconfig.json index b93de9858f7..d76d5d6e7b5 100644 --- a/packages/electron-publish/tsconfig.json +++ b/packages/electron-publish/tsconfig.json @@ -13,7 +13,6 @@ } ], "include": [ - "src/**/*.ts", - "../../typings/mime.d.ts" + "src/**/*.ts" ] } \ No newline at end of file diff --git a/packages/electron-updater/package.json b/packages/electron-updater/package.json index b850f73c1d0..ea21ec32e8c 100644 --- a/packages/electron-updater/package.json +++ b/packages/electron-updater/package.json @@ -37,7 +37,7 @@ "@types/semver": "7.7.1", "electron": "35.7.5" }, - "typings": "./out/main.d.ts", + "types": "./out/main.d.ts", "publishConfig": { "tag": "next" }, diff --git a/packages/electron-updater/tsconfig.json b/packages/electron-updater/tsconfig.json index 73b4f114577..e569ae0df14 100644 --- a/packages/electron-updater/tsconfig.json +++ b/packages/electron-updater/tsconfig.json @@ -4,8 +4,6 @@ "outDir": "out", "rootDir": "src" }, - "files": [ - ], "include": [ "src/**/*.ts" ] diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index b3eabd1f96b..b40d7998cc5 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -83,9 +83,6 @@ importers: prettier: specifier: 3.7.4 version: 3.7.4 - ts-node: - specifier: ^10.9.2 - version: 10.9.2(@types/node@22.13.17)(typescript@5.8.2) tsx: specifier: ^4.21.0 version: 4.21.0 @@ -103,7 +100,7 @@ importers: version: 0.64.0 vitest: specifier: ^3.2.2 - version: 3.2.4(@types/node@22.13.17)(@vitest/ui@3.0.4)(jiti@2.4.2)(sass@1.86.1)(tsx@4.21.0)(yaml@2.7.1) + version: 3.2.4(@types/node@22.13.17)(@vitest/ui@3.0.4(vitest@3.2.4))(jiti@2.4.2)(sass@1.86.1)(tsx@4.21.0)(yaml@2.7.1) packages/app-builder-lib: dependencies: @@ -134,9 +131,6 @@ importers: '@malept/flatpak-bundler': specifier: ^0.4.0 version: 0.4.0 - '@types/fs-extra': - specifier: 9.0.13 - version: 9.0.13 async-exit-hook: specifier: ^2.0.1 version: 2.0.1 @@ -279,6 +273,9 @@ importers: '@types/ejs': specifier: 3.1.0 version: 3.1.0 + '@types/fs-extra': + specifier: 9.0.13 + version: 9.0.13 '@types/hosted-git-info': specifier: 3.0.2 version: 3.0.2 @@ -315,9 +312,6 @@ importers: 7zip-bin: specifier: ~5.2.0 version: 5.2.0 - '@types/debug': - specifier: ^4.1.6 - version: 4.1.7 app-builder-bin: specifier: 5.0.0-alpha.12 version: 5.0.0-alpha.12 @@ -364,6 +358,9 @@ importers: '@types/cross-spawn': specifier: 6.0.6 version: 6.0.6 + '@types/debug': + specifier: ^4.1.6 + version: 4.1.7 '@types/fs-extra': specifier: ^9.0.11 version: 9.0.13 @@ -480,9 +477,6 @@ importers: specifier: 5.4.0 version: 5.4.0 devDependencies: - '@types/archiver': - specifier: 5.3.1 - version: 5.3.1 '@types/fs-extra': specifier: 9.0.13 version: 9.0.13 @@ -513,9 +507,6 @@ importers: packages/electron-publish: dependencies: - '@types/fs-extra': - specifier: ^9.0.11 - version: 9.0.13 builder-util: specifier: workspace:* version: link:../builder-util @@ -538,6 +529,9 @@ importers: specifier: ^2.5.2 version: 2.6.0 devDependencies: + '@types/fs-extra': + specifier: ^9.0.11 + version: 9.0.13 '@types/mime': specifier: 2.0.3 version: 2.0.3 @@ -704,7 +698,7 @@ importers: version: 1.6.3 vitest: specifier: ^3.0.4 - version: 3.2.4(@types/node@22.13.17)(@vitest/ui@3.0.4)(jiti@2.4.2)(sass@1.86.1)(tsx@4.21.0)(yaml@2.7.1) + version: 3.2.4(@types/node@22.13.17)(@vitest/ui@3.0.4(vitest@3.2.4))(jiti@2.4.2)(sass@1.86.1)(tsx@4.21.0)(yaml@2.7.1) vitest-mock-commonjs: specifier: ^1.0.2 version: 1.0.2 @@ -2426,9 +2420,6 @@ packages: '@types/adm-zip@0.5.6': resolution: {integrity: sha512-lRlcSLg5Yoo7C2H2AUiAoYlvifWoCx/se7iUNiCBTfEVVYFVn+Tr9ZGed4K73tYgLe9O4PjdJvbxlkdAOx/qiw==} - '@types/archiver@5.3.1': - resolution: {integrity: sha512-wKYZaSXaDvTZuInAWjCeGG7BEAgTWG2zZW0/f7IYFcoHB2X2d9lkVFnrOlXl3W6NrvO6Ml3FLLu8Uksyymcpnw==} - '@types/cacheable-request@6.0.3': resolution: {integrity: sha512-IQ3EbTzGxIigb1I3qPZc1rWJnH0BmSKv5QYTalEwweFvyBDLSAe24zP0le/hyi7ecGfZVlIVAg4BZqb8WBwKqw==} @@ -2462,9 +2453,6 @@ packages: '@types/fs-extra@9.0.13': resolution: {integrity: sha512-nEnwB++1u5lVDM2UI4c1+5R+FYaKfaAzS4OococimjVm3nQw3TuzH5UNsocrcTBbhnerblyHj4A49qXbIiZdpA==} - '@types/glob@8.1.0': - resolution: {integrity: sha512-IO+MJPVhoqz+28h1qLAcBEH2+xHMK6MTyHJc7MTnnYb6wsoLR29POVGJ7LycmVXIqyy/4/2ShP5sUwTXuOwb/w==} - '@types/graceful-fs@4.1.9': resolution: {integrity: sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==} @@ -2516,9 +2504,6 @@ packages: '@types/minimatch@3.0.5': resolution: {integrity: sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ==} - '@types/minimatch@5.1.2': - resolution: {integrity: sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA==} - '@types/ms@2.1.0': resolution: {integrity: sha512-GsCCIZDE/p3i96vtEqx+7dBUGXrc7zeSK3wwPHIaRThS+9OhWIXRqzs4d6k1SVU8g91DrNRWxWUGhp5KXQb2VA==} @@ -7311,10 +7296,6 @@ snapshots: dependencies: '@types/node': 22.13.17 - '@types/archiver@5.3.1': - dependencies: - '@types/glob': 8.1.0 - '@types/cacheable-request@6.0.3': dependencies: '@types/http-cache-semantics': 4.0.4 @@ -7353,11 +7334,6 @@ snapshots: dependencies: '@types/node': 22.13.17 - '@types/glob@8.1.0': - dependencies: - '@types/minimatch': 5.1.2 - '@types/node': 22.13.17 - '@types/graceful-fs@4.1.9': dependencies: '@types/node': 22.13.17 @@ -7410,8 +7386,6 @@ snapshots: '@types/minimatch@3.0.5': {} - '@types/minimatch@5.1.2': {} - '@types/ms@2.1.0': {} '@types/node@12.20.55': {} @@ -7655,7 +7629,7 @@ snapshots: sirv: 3.0.1 tinyglobby: 0.2.14 tinyrainbow: 2.0.0 - vitest: 3.2.4(@types/node@22.13.17)(@vitest/ui@3.0.4)(jiti@2.4.2)(sass@1.86.1)(tsx@4.21.0)(yaml@2.7.1) + vitest: 3.2.4(@types/node@22.13.17)(@vitest/ui@3.0.4(vitest@3.2.4))(jiti@2.4.2)(sass@1.86.1)(tsx@4.21.0)(yaml@2.7.1) '@vitest/utils@3.0.4': dependencies: @@ -10174,24 +10148,6 @@ snapshots: v8-compile-cache-lib: 3.0.1 yn: 3.1.1 - ts-node@10.9.2(@types/node@22.13.17)(typescript@5.8.2): - dependencies: - '@cspotcode/source-map-support': 0.8.1 - '@tsconfig/node10': 1.0.11 - '@tsconfig/node12': 1.0.11 - '@tsconfig/node14': 1.0.3 - '@tsconfig/node16': 1.0.4 - '@types/node': 22.13.17 - acorn: 8.15.0 - acorn-walk: 8.3.4 - arg: 4.1.3 - create-require: 1.1.1 - diff: 4.0.2 - make-error: 1.3.6 - typescript: 5.8.2 - v8-compile-cache-lib: 3.0.1 - yn: 3.1.1 - tsx@4.21.0: dependencies: esbuild: 0.27.7 @@ -10377,7 +10333,7 @@ snapshots: vitest-mock-commonjs@1.0.2: {} - vitest@3.2.4(@types/node@22.13.17)(@vitest/ui@3.0.4)(jiti@2.4.2)(sass@1.86.1)(tsx@4.21.0)(yaml@2.7.1): + vitest@3.2.4(@types/node@22.13.17)(@vitest/ui@3.0.4(vitest@3.2.4))(jiti@2.4.2)(sass@1.86.1)(tsx@4.21.0)(yaml@2.7.1): dependencies: '@types/chai': 5.2.2 '@vitest/expect': 3.2.4 diff --git a/scripts/tsconfig.json b/scripts/tsconfig.json index 6f4fe18f1c3..a3a0b41bd67 100644 --- a/scripts/tsconfig.json +++ b/scripts/tsconfig.json @@ -3,9 +3,9 @@ "compilerOptions": { "outDir": "out", "noUnusedLocals": false, - "skipLibCheck": true + "skipLibCheck": true, + "declaration": false }, - "declaration": false, "include": [ "**/*.ts", ], diff --git a/test/tsconfig.json b/test/tsconfig.json index 519bb55aca7..6b072b56170 100644 --- a/test/tsconfig.json +++ b/test/tsconfig.json @@ -4,7 +4,8 @@ "rootDir": ".", "outDir": "out", "skipLibCheck": true, - "baseUrl": "../packages" + "baseUrl": "../packages", + "declaration": false }, "references": [ { @@ -26,14 +27,11 @@ "path": "../packages/electron-publish" } ], - "declaration": false, "include": [ "../typings/*.d.ts", "typings/*.d.ts", "src/**/*.ts", "vitest-scripts/*.ts" ], - "types": ["vitest/globals"], - "exclude": [ - ] + "types": ["vitest/globals"] } diff --git a/test/vitest-scripts/smart-shard-count.ts b/test/vitest-scripts/smart-shard-count.ts index 8d55b3a4cc3..1f2aa8312b5 100644 --- a/test/vitest-scripts/smart-shard-count.ts +++ b/test/vitest-scripts/smart-shard-count.ts @@ -1,5 +1,3 @@ -#!/usr/bin/env ts-node - import { getAllTestFiles } from "./file-discovery.js" import { buildWeightedFiles, computeShardCount } from "./shard-builder.js" import { TargetPlatform } from "./smart-config.js" diff --git a/tsconfig-base.json b/tsconfig-base.json index 762b5e9ffd9..7a74fd1831f 100644 --- a/tsconfig-base.json +++ b/tsconfig-base.json @@ -12,7 +12,6 @@ "inlineSources": true, "sourceMap": true, - "allowSyntheticDefaultImports": true, "experimentalDecorators": true, "newLine": "lf", diff --git a/tsconfig.json b/tsconfig.json index b224a4e0e80..0a9301a7d56 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -1,6 +1,18 @@ { "files": [], "references": [ + { + "path": "./packages/builder-util-runtime" + }, + { + "path": "./packages/builder-util" + }, + { + "path": "./packages/app-builder-lib" + }, + { + "path": "./packages/dmg-builder" + }, { "path": "./packages/electron-builder" }, From 76a42c1d172d91d4c0e996c45155661c6c95b2cd Mon Sep 17 00:00:00 2001 From: Mike Maietta Date: Sat, 2 May 2026 17:56:56 -0700 Subject: [PATCH 51/65] fix all circular references --- packages/app-builder-lib/src/Framework.ts | 5 +++- .../src/electron/ElectronFramework.ts | 7 +++--- packages/app-builder-lib/src/fileMatcher.ts | 4 ++- packages/app-builder-lib/src/macPackager.ts | 3 ++- .../src/options/linuxOptions.ts | 3 ++- .../app-builder-lib/src/options/macOptions.ts | 3 ++- .../app-builder-lib/src/options/winOptions.ts | 3 ++- .../app-builder-lib/src/platformPackager.ts | 25 ++++++------------- .../src/publish/PublishManager.ts | 6 ++++- .../app-builder-lib/src/targets/AppxTarget.ts | 2 +- .../app-builder-lib/src/targets/MsiTarget.ts | 2 +- .../src/targets/MsiWrappedTarget.ts | 2 +- .../app-builder-lib/src/targets/targetUtil.ts | 3 ++- 13 files changed, 37 insertions(+), 31 deletions(-) diff --git a/packages/app-builder-lib/src/Framework.ts b/packages/app-builder-lib/src/Framework.ts index e9aa387244d..1b80ec53f38 100644 --- a/packages/app-builder-lib/src/Framework.ts +++ b/packages/app-builder-lib/src/Framework.ts @@ -1,6 +1,9 @@ import { FileTransformer } from "builder-util" import { AsarIntegrity } from "./asar/integrity.js" -import { AfterPackContext, ElectronPlatformName, Platform, PlatformPackager } from "./index.js" +import { AfterPackContext } from "./configuration.js" +import { Platform } from "./core.js" +import { ElectronPlatformName } from "./electron/ElectronFramework.js" +import type { PlatformPackager } from "./platformPackager.js" export interface Framework { readonly name: string diff --git a/packages/app-builder-lib/src/electron/ElectronFramework.ts b/packages/app-builder-lib/src/electron/ElectronFramework.ts index b8baccd0e1b..2df32c11c71 100644 --- a/packages/app-builder-lib/src/electron/ElectronFramework.ts +++ b/packages/app-builder-lib/src/electron/ElectronFramework.ts @@ -4,9 +4,10 @@ import * as path from "path" import asyncPool from "tiny-async-pool" import { Configuration } from "../configuration.js" import { BeforeCopyExtraFilesOptions, Framework, PrepareApplicationStageDirectoryOptions } from "../Framework.js" -import { Packager, Platform } from "../index.js" -import { LinuxPackager } from "../linuxPackager.js" -import { MacPackager } from "../macPackager.js" +import { Platform } from "../core.js" +import type { Packager } from "../packager.js" +import type { LinuxPackager } from "../linuxPackager.js" +import type { MacPackager } from "../macPackager.js" import { getTemplatePath } from "../util/pathManager.js" import { resolveFunction } from "../util/resolve.js" import { createMacApp } from "./electronMac.js" diff --git a/packages/app-builder-lib/src/fileMatcher.ts b/packages/app-builder-lib/src/fileMatcher.ts index acedaec63f8..013c8acb174 100644 --- a/packages/app-builder-lib/src/fileMatcher.ts +++ b/packages/app-builder-lib/src/fileMatcher.ts @@ -3,7 +3,9 @@ import { Nullish } from "builder-util-runtime" import { mkdir } from "fs/promises" import { Minimatch } from "minimatch" import * as path from "path" -import { Configuration, FileSet, Packager, PlatformSpecificBuildOptions } from "./index.js" +import type { Configuration } from "./configuration.js" +import type { Packager } from "./packager.js" +import { FileSet, PlatformSpecificBuildOptions } from "./options/PlatformSpecificBuildOptions.js" import { PlatformPackager } from "./platformPackager.js" import { createFilter, hasMagic } from "./util/filter.js" diff --git a/packages/app-builder-lib/src/macPackager.ts b/packages/app-builder-lib/src/macPackager.ts index 80bec7cf50d..d8ce52cd025 100644 --- a/packages/app-builder-lib/src/macPackager.ts +++ b/packages/app-builder-lib/src/macPackager.ts @@ -28,7 +28,8 @@ import * as path from "path" import { AppInfo } from "./appInfo.js" import { CertType, CodeSigningInfo, createKeychain, CreateKeychainOptions, findIdentity, isSignAllowed, removeKeychain, reportError, sign } from "./codeSign/macCodeSign.js" import { DIR_TARGET, Platform, Target } from "./core.js" -import { AfterPackContext, ElectronPlatformName } from "./index.js" +import { AfterPackContext } from "./configuration.js" +import { ElectronPlatformName } from "./electron/ElectronFramework.js" import { MacConfiguration, MasConfiguration } from "./options/macOptions.js" import { Packager } from "./packager.js" import { chooseNotNull, DoPackOptions, PlatformPackager } from "./platformPackager.js" diff --git a/packages/app-builder-lib/src/options/linuxOptions.ts b/packages/app-builder-lib/src/options/linuxOptions.ts index 2688e585f58..f5989c8e3f2 100644 --- a/packages/app-builder-lib/src/options/linuxOptions.ts +++ b/packages/app-builder-lib/src/options/linuxOptions.ts @@ -1,4 +1,5 @@ -import { PlatformSpecificBuildOptions, TargetConfigType, TargetSpecificOptions } from "../index.js" +import { TargetConfigType, TargetSpecificOptions } from "../core.js" +import { PlatformSpecificBuildOptions } from "./PlatformSpecificBuildOptions.js" /** * Example Spec: https://specifications.freedesktop.org/desktop-entry-spec/latest/example.html diff --git a/packages/app-builder-lib/src/options/macOptions.ts b/packages/app-builder-lib/src/options/macOptions.ts index cb4423b15b0..46739297edc 100644 --- a/packages/app-builder-lib/src/options/macOptions.ts +++ b/packages/app-builder-lib/src/options/macOptions.ts @@ -1,4 +1,5 @@ -import { PlatformSpecificBuildOptions, TargetConfiguration, TargetSpecificOptions } from "../index.js" +import { TargetConfiguration, TargetSpecificOptions } from "../core.js" +import { PlatformSpecificBuildOptions } from "./PlatformSpecificBuildOptions.js" import { CustomMacSign } from "../macPackager.js" export type MacOsTargetName = "default" | "dmg" | "mas" | "mas-dev" | "pkg" | "7z" | "zip" | "tar.xz" | "tar.lz" | "tar.gz" | "tar.bz2" | "dir" diff --git a/packages/app-builder-lib/src/options/winOptions.ts b/packages/app-builder-lib/src/options/winOptions.ts index a82a746382f..ed71472a2d1 100644 --- a/packages/app-builder-lib/src/options/winOptions.ts +++ b/packages/app-builder-lib/src/options/winOptions.ts @@ -1,6 +1,7 @@ import { Nullish } from "builder-util-runtime" import { CustomWindowsSign } from "../codeSign/windowsSignToolManager.js" -import { PlatformSpecificBuildOptions, TargetConfigType } from "../index.js" +import { TargetConfigType } from "../core.js" +import { PlatformSpecificBuildOptions } from "./PlatformSpecificBuildOptions.js" export interface WindowsConfiguration extends PlatformSpecificBuildOptions { /** diff --git a/packages/app-builder-lib/src/platformPackager.ts b/packages/app-builder-lib/src/platformPackager.ts index 703fb92b7ae..15471c95213 100644 --- a/packages/app-builder-lib/src/platformPackager.ts +++ b/packages/app-builder-lib/src/platformPackager.ts @@ -26,25 +26,16 @@ import { AppInfo } from "./appInfo.js" import { checkFileInArchive } from "./asar/asarFileChecker.js" import { AsarPackager } from "./asar/asarUtil.js" import { AsarIntegrity, computeData } from "./asar/integrity.js" -import { FuseOptionsV1 } from "./configuration.js" +import { AfterPackContext, Configuration, FuseOptionsV1 } from "./configuration.js" +import { CompressionLevel, Platform, Target, TargetSpecificOptions } from "./core.js" +import { ElectronPlatformName } from "./electron/ElectronFramework.js" import { copyFiles, FileMatcher, getFileMatchers, GetFileMatchersOptions, getMainFileMatchers, getNodeModuleFileMatcher } from "./fileMatcher.js" import { createTransformer, isElectronCompileUsed } from "./fileTransformer.js" import { Framework, isElectronBased } from "./Framework.js" -import { - AfterPackContext, - AsarOptions, - CompressionLevel, - Configuration, - ElectronPlatformName, - FileAssociation, - LinuxPackager, - Packager, - PackagerOptions, - Platform, - PlatformSpecificBuildOptions, - Target, - TargetSpecificOptions, -} from "./index.js" +import { FileAssociation } from "./options/FileAssociation.js" +import { AsarOptions, PlatformSpecificBuildOptions } from "./options/PlatformSpecificBuildOptions.js" +import { Packager } from "./packager.js" +import { PackagerOptions } from "./packagerApi.js" import { executeAppBuilderAsJson } from "./util/appBuilder.js" import { computeFileSets, computeNodeModuleFileSets, copyAppFiles, ELECTRON_COMPILE_SHIM_FILENAME, transformFiles } from "./util/appFileCopier.js" import { expandMacro as doExpandMacro } from "./util/macroExpander.js" @@ -420,7 +411,7 @@ export abstract class PlatformPackager linux: "", }[electronPlatformName] - const executableName = this instanceof LinuxPackager ? this.executableName : this.appInfo.productFilename + const executableName = electronPlatformName === "linux" ? (this as any).executableName : this.appInfo.productFilename const electronBinaryPath = path.join(appOutDir, `${executableName}${ext}`) log.info({ electronPath: log.filePath(electronBinaryPath) }, "executing @electron/fuses") diff --git a/packages/app-builder-lib/src/publish/PublishManager.ts b/packages/app-builder-lib/src/publish/PublishManager.ts index b85c405ccfa..81b3c7605f6 100644 --- a/packages/app-builder-lib/src/publish/PublishManager.ts +++ b/packages/app-builder-lib/src/publish/PublishManager.ts @@ -35,7 +35,11 @@ import { isCI } from "ci-info" import * as path from "path" import { WriteStream as TtyWriteStream } from "tty" import * as url from "url" -import { AppInfo, ArtifactCreated, Configuration, Platform, PlatformSpecificBuildOptions, Target, TargetSpecificOptions } from "../index.js" +import { AppInfo } from "../appInfo.js" +import { Configuration } from "../configuration.js" +import { Platform, Target, TargetSpecificOptions } from "../core.js" +import { ArtifactCreated } from "../packagerApi.js" +import { PlatformSpecificBuildOptions } from "../options/PlatformSpecificBuildOptions.js" import { Packager } from "../packager.js" import { PlatformPackager } from "../platformPackager.js" import { expandMacro } from "../util/macroExpander.js" diff --git a/packages/app-builder-lib/src/targets/AppxTarget.ts b/packages/app-builder-lib/src/targets/AppxTarget.ts index 8cc40e5af11..acfd92a0ab6 100644 --- a/packages/app-builder-lib/src/targets/AppxTarget.ts +++ b/packages/app-builder-lib/src/targets/AppxTarget.ts @@ -2,7 +2,7 @@ import { Arch, asArray, copyOrLinkFile, deepAssign, InvalidConfigurationError, l import { Nullish } from "builder-util-runtime" import fsExtra from "fs-extra" import * as path from "path" -import { AppXOptions } from "../index.js" +import { AppXOptions } from "../options/AppXOptions.js" import { getWindowsKitsBundle } from "../toolsets/windows.js" import { Target } from "../core.js" import { getTemplatePath } from "../util/pathManager.js" diff --git a/packages/app-builder-lib/src/targets/MsiTarget.ts b/packages/app-builder-lib/src/targets/MsiTarget.ts index 8bb158d0c7a..73a60cdf3b1 100644 --- a/packages/app-builder-lib/src/targets/MsiTarget.ts +++ b/packages/app-builder-lib/src/targets/MsiTarget.ts @@ -5,7 +5,7 @@ import * as ejs from "ejs" import { readFile, writeFile } from "fs/promises" import { Lazy } from "lazy-val" import * as path from "path" -import { MsiOptions } from "../index.js" +import { MsiOptions } from "../options/MsiOptions.js" import { getBinFromUrl } from "../binDownload.js" import { Target } from "../core.js" import { DesktopShortcutCreationPolicy, FinalCommonWindowsInstallerOptions, getEffectiveOptions } from "../options/CommonWindowsInstallerConfiguration.js" diff --git a/packages/app-builder-lib/src/targets/MsiWrappedTarget.ts b/packages/app-builder-lib/src/targets/MsiWrappedTarget.ts index c2cc920c549..718a1b6919a 100644 --- a/packages/app-builder-lib/src/targets/MsiWrappedTarget.ts +++ b/packages/app-builder-lib/src/targets/MsiWrappedTarget.ts @@ -1,7 +1,7 @@ import { Arch, deepAssign, exists, InvalidConfigurationError } from "builder-util" import { UUID } from "builder-util-runtime" import * as path from "path" -import { MsiWrappedOptions } from "../index.js" +import { MsiWrappedOptions } from "../options/MsiWrappedOptions.js" import { TargetConfiguration } from "../core.js" import { FinalCommonWindowsInstallerOptions } from "../options/CommonWindowsInstallerConfiguration.js" import { WinPackager } from "../winPackager.js" diff --git a/packages/app-builder-lib/src/targets/targetUtil.ts b/packages/app-builder-lib/src/targets/targetUtil.ts index 70a3668c14d..b07b29ef001 100644 --- a/packages/app-builder-lib/src/targets/targetUtil.ts +++ b/packages/app-builder-lib/src/targets/targetUtil.ts @@ -1,7 +1,8 @@ import { Arch, debug } from "builder-util" import * as fs from "fs/promises" import * as path from "path" -import { AppInfo, Target } from "../index.js" +import { AppInfo } from "../appInfo.js" +import { Target } from "../core.js" import { PlatformPackager } from "../platformPackager.js" export class StageDir { From e9f6762d842f97f9e5475359237b991250c80f13 Mon Sep 17 00:00:00 2001 From: Mike Maietta Date: Sat, 2 May 2026 20:41:18 -0700 Subject: [PATCH 52/65] fix import --- test/src/extraMetadataTest.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/src/extraMetadataTest.ts b/test/src/extraMetadataTest.ts index b2c68eccce8..1aa349aeff7 100644 --- a/test/src/extraMetadataTest.ts +++ b/test/src/extraMetadataTest.ts @@ -59,7 +59,7 @@ test("extra metadata (no asar)", ({ expect }) => createExtraMetadataTest(expect, test("cli", ({ expect }) => { // because these methods are internal - const { configureBuildCommand, normalizeOptions } = require("electron-builder") + const { configureBuildCommand, normalizeOptions } = require("electron-builder/internal") const yargs = require("yargs") .strict() .fail((message: string, error: Error | null) => { From b47b8bc1b9c682c30221158ea58370066ef588dd Mon Sep 17 00:00:00 2001 From: Mike Maietta Date: Tue, 5 May 2026 15:05:40 -0700 Subject: [PATCH 53/65] address imports --- packages/electron-updater/src/index.ts | 16 +++++++++++----- packages/electron-updater/src/indexInternal.ts | 3 +-- test/src/provider/providerTest.ts | 2 +- test/src/updater/nsisUpdaterTest.ts | 2 +- 4 files changed, 14 insertions(+), 9 deletions(-) diff --git a/packages/electron-updater/src/index.ts b/packages/electron-updater/src/index.ts index 95bb00c9b3d..f1b9f05979d 100644 --- a/packages/electron-updater/src/index.ts +++ b/packages/electron-updater/src/index.ts @@ -1,5 +1,5 @@ -import { createRequire } from "module" import fsExtra from "fs-extra" +import { createRequire } from "module" import * as path from "path" import { AppUpdater } from "./AppUpdater.js" @@ -7,14 +7,20 @@ const require = createRequire(import.meta.url) import { UpdateInfo } from "builder-util-runtime" -export { AppUpdater } -export { BaseUpdater } from "./BaseUpdater.js" export { AppImageUpdater } from "./AppImageUpdater.js" +export { BaseUpdater } from "./BaseUpdater.js" export { DebUpdater } from "./DebUpdater.js" -export { PacmanUpdater } from "./PacmanUpdater.js" -export { RpmUpdater } from "./RpmUpdater.js" export { MacUpdater } from "./MacUpdater.js" export { NsisUpdater } from "./NsisUpdater.js" +export { PacmanUpdater } from "./PacmanUpdater.js" +export { BitbucketProvider } from "./providers/BitbucketProvider.js" +export { GitHubProvider } from "./providers/GitHubProvider.js" +export { GitLabProvider } from "./providers/GitLabProvider.js" +export { KeygenProvider } from "./providers/KeygenProvider.js" +export { PrivateGitHubProvider } from "./providers/PrivateGitHubProvider.js" +export { ProviderRuntimeOptions } from "./providers/Provider.js" +export { RpmUpdater } from "./RpmUpdater.js" +export { AppUpdater } export { Provider } from "./providers/Provider.js" diff --git a/packages/electron-updater/src/indexInternal.ts b/packages/electron-updater/src/indexInternal.ts index 021188deadd..89dced1c39d 100644 --- a/packages/electron-updater/src/indexInternal.ts +++ b/packages/electron-updater/src/indexInternal.ts @@ -1,6 +1,5 @@ export { ElectronAppAdapter } from "./ElectronAppAdapter.js" export { TestOnlyUpdaterOptions } from "./AppUpdater.js" -export { GitHubProvider } from "./providers/GitHubProvider.js" -export { GitLabProvider } from "./providers/GitLabProvider.js" export { NoOpLogger } from "./AppUpdater.js" + export * as utils from "./util.js" diff --git a/test/src/provider/providerTest.ts b/test/src/provider/providerTest.ts index 15c042e5472..09fbbb917ab 100644 --- a/test/src/provider/providerTest.ts +++ b/test/src/provider/providerTest.ts @@ -1,5 +1,5 @@ import { CancellationToken, UpdateInfo } from "builder-util-runtime" -import { Provider, ProviderRuntimeOptions } from "electron-updater/src/providers/Provider.js" +import { Provider, ProviderRuntimeOptions } from "electron-updater" import { ResolvedUpdateFileInfo } from "electron-updater/src/types.js" import { OutgoingHttpHeaders } from "http" import { URL } from "url" diff --git a/test/src/updater/nsisUpdaterTest.ts b/test/src/updater/nsisUpdaterTest.ts index e687a699c11..1a786a22669 100644 --- a/test/src/updater/nsisUpdaterTest.ts +++ b/test/src/updater/nsisUpdaterTest.ts @@ -8,7 +8,7 @@ import { assertThat } from "../helpers/fileAssert.js" import { removeUnstableProperties } from "../helpers/packTester.js" import { createNsisUpdater, trackEvents, validateDownload, writeUpdateConfig } from "../helpers/updaterTestUtil.js" import { ExpectStatic } from "vitest" -import { GitLabProvider, GitHubProvider } from "electron-updater/internal" +import { GitLabProvider, GitHubProvider } from "electron-updater" const config = { retry: 3 } From 3ba131ae26cde53293b500dd302734092a4c3582 Mon Sep 17 00:00:00 2001 From: Mike Maietta Date: Wed, 6 May 2026 16:40:30 -0700 Subject: [PATCH 54/65] prettier --- packages/app-builder-lib/src/index.ts | 6 +++--- packages/app-builder-lib/src/packager.ts | 3 ++- packages/electron-builder/src/cli/install-app-deps.ts | 10 +++++++++- .../electron-updater/src/providers/GitLabProvider.ts | 5 ++++- test/src/filesTest.ts | 3 ++- test/src/helpers/packTester.ts | 1 - test/src/provider/githubProviderTest.ts | 4 +--- test/src/updater/differentialUpdateTest.ts | 5 ++++- 8 files changed, 25 insertions(+), 12 deletions(-) diff --git a/packages/app-builder-lib/src/index.ts b/packages/app-builder-lib/src/index.ts index 5994dc9c53d..bb60eeac812 100644 --- a/packages/app-builder-lib/src/index.ts +++ b/packages/app-builder-lib/src/index.ts @@ -19,7 +19,7 @@ export { Hooks, MetadataDirectories, PackContext, - ToolsetConfig + ToolsetConfig, } from "./configuration.js" export { BeforeBuildContext, @@ -31,7 +31,7 @@ export { Target, TargetConfigType, TargetConfiguration, - TargetSpecificOptions + TargetSpecificOptions, } from "./core.js" export { ElectronBrandingOptions, ElectronDownloadOptions, ElectronPlatformName } from "./electron/ElectronFramework.js" export { AppXOptions } from "./options/AppXOptions.js" @@ -59,7 +59,7 @@ export { CustomWindowsSign, CustomWindowsSignTaskConfiguration, FileCodeSigningInfo, - WindowsSignTaskConfiguration + WindowsSignTaskConfiguration, } from "./codeSign/windowsSignToolManager.js" export { ForgeOptions, buildForge } from "./forge-maker.js" export { Framework, PrepareApplicationStageDirectoryOptions } from "./Framework.js" diff --git a/packages/app-builder-lib/src/packager.ts b/packages/app-builder-lib/src/packager.ts index d6c75035924..08d23e8a2c7 100644 --- a/packages/app-builder-lib/src/packager.ts +++ b/packages/app-builder-lib/src/packager.ts @@ -682,7 +682,8 @@ function createOutDirIfNeed(targetList: Array, createdOutDirs: Set { - return fsExtra.mkdirs(dir) + return fsExtra + .mkdirs(dir) .then(() => fsExtra.chmod(dir, 0o755) /* set explicitly */) .then(() => createdOutDirs.add(dir)) }) diff --git a/packages/electron-builder/src/cli/install-app-deps.ts b/packages/electron-builder/src/cli/install-app-deps.ts index dc547eed9a8..6ddbad1938b 100644 --- a/packages/electron-builder/src/cli/install-app-deps.ts +++ b/packages/electron-builder/src/cli/install-app-deps.ts @@ -1,6 +1,14 @@ #! /usr/bin/env node import { fileURLToPath } from "node:url" -import { computeDefaultAppDirectory, createLazyProductionDeps, determinePackageManagerEnv, getConfig, getElectronVersion, installOrRebuild, PACKAGE_VERSION } from "app-builder-lib/internal" +import { + computeDefaultAppDirectory, + createLazyProductionDeps, + determinePackageManagerEnv, + getConfig, + getElectronVersion, + installOrRebuild, + PACKAGE_VERSION, +} from "app-builder-lib/internal" import { getArchCliNames, log, orNullIfFileNotExist, printErrorAndExit } from "builder-util" import fsExtra from "fs-extra" import { Lazy } from "lazy-val" diff --git a/packages/electron-updater/src/providers/GitLabProvider.ts b/packages/electron-updater/src/providers/GitLabProvider.ts index 509150a0808..f001b43aff4 100644 --- a/packages/electron-updater/src/providers/GitLabProvider.ts +++ b/packages/electron-updater/src/providers/GitLabProvider.ts @@ -78,7 +78,10 @@ export class GitLabProvider extends Provider { try { latestRelease = JSON.parse(releaseResponse) } catch (e: any) { - throw newError(`Unable to parse latest release response from GitLab (${latestReleaseUrl}): response was not valid JSON: ${e.stack || e.message}`, "ERR_UPDATER_LATEST_VERSION_NOT_FOUND") + throw newError( + `Unable to parse latest release response from GitLab (${latestReleaseUrl}): response was not valid JSON: ${e.stack || e.message}`, + "ERR_UPDATER_LATEST_VERSION_NOT_FOUND" + ) } if (latestRelease.upcoming_release) { diff --git a/test/src/filesTest.ts b/test/src/filesTest.ts index 57ee4e8d74a..db4b5305d65 100644 --- a/test/src/filesTest.ts +++ b/test/src/filesTest.ts @@ -100,7 +100,8 @@ test.ifNotWindows("map resources", ({ expect }) => }, }, { - projectDirCreated: projectDir => Promise.all([fsExtra.outputFile(path.join(projectDir, "foo", "old"), "data"), fsExtra.outputFile(path.join(projectDir, "license.txt"), "data")]), + projectDirCreated: projectDir => + Promise.all([fsExtra.outputFile(path.join(projectDir, "foo", "old"), "data"), fsExtra.outputFile(path.join(projectDir, "license.txt"), "data")]), packed: context => { const resources = context.getResources(Platform.LINUX) return Promise.all([ diff --git a/test/src/helpers/packTester.ts b/test/src/helpers/packTester.ts index 755c2c2616d..d9accbc7f59 100644 --- a/test/src/helpers/packTester.ts +++ b/test/src/helpers/packTester.ts @@ -23,7 +23,6 @@ import type { ExpectStatic } from "vitest" import { ELECTRON_VERSION } from "./testConfig.js" import { exec as execCallback, execSync } from "child_process" - const PACKAGE_MANAGER_VERSION_MAP = { [PM.NPM]: { cli: "npm", version: "9.8.1" }, [PM.YARN]: { cli: "yarn", version: "1.22.19" }, diff --git a/test/src/provider/githubProviderTest.ts b/test/src/provider/githubProviderTest.ts index 4ebec5fbdd1..b2dea165234 100644 --- a/test/src/provider/githubProviderTest.ts +++ b/test/src/provider/githubProviderTest.ts @@ -167,9 +167,7 @@ test("getLatestTagName failure - throws ERR_UPDATER_INVALID_RELEASE_FEED", async const updater = await createPublicUpdater(requestSpy) updater.allowPrerelease = false - requestSpy - .mockResolvedValueOnce(mockAtomFeed([{ tag: STABLE_TAG, title: STABLE_TAG }])) - .mockRejectedValueOnce(new Error("Connection refused")) + requestSpy.mockResolvedValueOnce(mockAtomFeed([{ tag: STABLE_TAG, title: STABLE_TAG }])).mockRejectedValueOnce(new Error("Connection refused")) await expect(updater.checkForUpdates()).rejects.toMatchObject({ code: "ERR_UPDATER_INVALID_RELEASE_FEED" }) }) diff --git a/test/src/updater/differentialUpdateTest.ts b/test/src/updater/differentialUpdateTest.ts index 39a54d9dd79..213e660f14c 100644 --- a/test/src/updater/differentialUpdateTest.ts +++ b/test/src/updater/differentialUpdateTest.ts @@ -149,7 +149,10 @@ async function testMac(expect: ExpectStatic, arch: Arch) { const oldDir = outDirs[0] const blockmap = `Test App ßW-${OLD_VERSION_NUMBER}${getArchSuffix(arch)}-mac.zip.blockmap` await fsExtra.move(path.join(oldDir, blockmap), path.join(outDirs[1], blockmap)) - await fsExtra.move(path.join(oldDir, `Test App ßW-${OLD_VERSION_NUMBER}${getArchSuffix(arch)}-mac.zip`), path.join(getTestUpdaterCacheDir(oldDir), testAppCacheDirName, "update.zip")) + await fsExtra.move( + path.join(oldDir, `Test App ßW-${OLD_VERSION_NUMBER}${getArchSuffix(arch)}-mac.zip`), + path.join(getTestUpdaterCacheDir(oldDir), testAppCacheDirName, "update.zip") + ) await testBlockMap(expect, outDirs[0], outDirs[1], MacUpdater, Platform.MAC, arch, "Test App ßW") } finally { From cf5340b53916832bb723c27ef3a5f89d4f52559a Mon Sep 17 00:00:00 2001 From: Mike Maietta Date: Wed, 3 Jun 2026 06:24:47 -0700 Subject: [PATCH 55/65] initial introduction of tsup --- package.json | 4 +- packages/app-builder-lib/package.json | 22 +- packages/app-builder-lib/src/asar/asarUtil.ts | 3 +- packages/app-builder-lib/src/binDownload.ts | 2 +- packages/app-builder-lib/src/indexInternal.ts | 8 +- packages/app-builder-lib/src/linuxPackager.ts | 2 +- .../app-builder-lib/src/targets/archive.ts | 2 +- .../app-builder-lib/src/util/electronGet.ts | 2 +- packages/app-builder-lib/src/util/resolve.ts | 3 +- packages/app-builder-lib/tsup.config.ts | 15 + packages/builder-util-runtime/package.json | 22 +- packages/builder-util-runtime/tsup.config.ts | 15 + packages/builder-util/package.json | 22 +- packages/builder-util/src/log.ts | 2 +- packages/builder-util/tsup.config.ts | 15 + packages/dmg-builder/package.json | 17 +- packages/dmg-builder/src/dmg.ts | 6 +- packages/dmg-builder/src/dmgLicense.ts | 2 +- packages/dmg-builder/src/dmgUtil.ts | 3 +- packages/dmg-builder/src/licenseButtons.ts | 2 +- packages/dmg-builder/tsup.config.ts | 14 + .../package.json | 17 +- .../src/SquirrelWindowsTarget.ts | 6 +- .../tsup.config.ts | 14 + packages/electron-builder/cli.js | 2 +- packages/electron-builder/install-app-deps.js | 2 +- packages/electron-builder/package.json | 24 +- packages/electron-builder/src/builder.ts | 2 +- .../electron-builder/src/cli/clear-cache.ts | 4 +- packages/electron-builder/src/cli/cli-util.ts | 2 +- packages/electron-builder/src/cli/cli.ts | 3 +- .../src/cli/install-app-deps.ts | 7 +- packages/electron-builder/tsup.config.ts | 22 + packages/electron-publish/package.json | 22 +- .../src/snapStorePublisher.ts | 2 +- packages/electron-publish/tsup.config.ts | 15 + packages/electron-updater/package.json | 21 +- packages/electron-updater/src/AppUpdater.ts | 2 +- packages/electron-updater/src/MacUpdater.ts | 2 +- .../src/electronHttpExecutor.ts | 4 +- packages/electron-updater/tsup.config.ts | 16 + packages/tsconfig-tsup.json | 9 + pnpm-lock.yaml | 947 +++++++++++++----- tsconfig-base.json | 13 +- website/scripts/docusaurus-plugin-prebuild.ts | 2 +- 45 files changed, 1037 insertions(+), 306 deletions(-) create mode 100644 packages/app-builder-lib/tsup.config.ts create mode 100644 packages/builder-util-runtime/tsup.config.ts create mode 100644 packages/builder-util/tsup.config.ts create mode 100644 packages/dmg-builder/tsup.config.ts create mode 100644 packages/electron-builder-squirrel-windows/tsup.config.ts create mode 100644 packages/electron-builder/tsup.config.ts create mode 100644 packages/electron-publish/tsup.config.ts create mode 100644 packages/electron-updater/tsup.config.ts create mode 100644 packages/tsconfig-tsup.json diff --git a/package.json b/package.json index 759906d8145..6c60b682515 100644 --- a/package.json +++ b/package.json @@ -4,7 +4,8 @@ "license": "MIT", "scripts": { "//": "do not wrap into single quotes - windows doesn't unwrap arg in this case", - "compile": "pnpm ci:test:generate && tsc --build", + "compile": "pnpm ci:test:generate && pnpm --filter './packages/**' --if-present run build", + "typecheck": "tsc --build --noEmit", "lint": "eslint packages test/src --ext .ts,.js", "lint-deps": "node ./scripts/checkDeps.js", "pretest": "pnpm lint-deps && pnpm lint", @@ -53,6 +54,7 @@ "is-ci": "^4.1.0", "prettier": "3.7.4", "ts-node": "^10.9.2", + "tsup": "^8.0.0", "typescript": "^5.6.2", "typescript-json-schema": "0.64.0", "typedoc": "^0.28.19", diff --git a/packages/app-builder-lib/package.json b/packages/app-builder-lib/package.json index 0152c05d960..ebe6107da4a 100644 --- a/packages/app-builder-lib/package.json +++ b/packages/app-builder-lib/package.json @@ -2,9 +2,22 @@ "name": "app-builder-lib", "description": "electron-builder lib", "version": "26.14.0", - "main": "out/index.js", + "main": "./dist/index.js", + "module": "./dist/index.mjs", + "exports": { + ".": { + "types": "./dist/index.d.ts", + "import": "./dist/index.mjs", + "require": "./dist/index.js" + }, + "./internal": { + "types": "./dist/indexInternal.d.ts", + "import": "./dist/indexInternal.mjs", + "require": "./dist/indexInternal.js" + } + }, "files": [ - "out", + "dist", "templates", "helpers", "scheme.json", @@ -129,5 +142,8 @@ "electron-builder-squirrel-windows": "workspace:*" }, "//": "electron-builder-squirrel-windows and dmg-builder added as dev dep for tests (as otherwise `require` doesn't work using Yarn 2)", - "typings": "./out/index.d.ts" + "types": "./dist/index.d.ts", + "scripts": { + "build": "tsup" + } } diff --git a/packages/app-builder-lib/src/asar/asarUtil.ts b/packages/app-builder-lib/src/asar/asarUtil.ts index fbaec935185..03eb14ce04c 100644 --- a/packages/app-builder-lib/src/asar/asarUtil.ts +++ b/packages/app-builder-lib/src/asar/asarUtil.ts @@ -1,7 +1,6 @@ import type { AsarStreamType, AsarDirectory } from "@electron/asar" -import { isEmptyOrSpaces, log } from "builder-util" +import { exists, Filter, FilterStats, isEmptyOrSpaces, log } from "builder-util" import { dynamicImport } from "../util/dynamicImport" -import { exists, Filter, FilterStats } from "builder-util/out/fs" import * as fs from "fs-extra" import { readlink } from "fs-extra" import * as path from "path" diff --git a/packages/app-builder-lib/src/binDownload.ts b/packages/app-builder-lib/src/binDownload.ts index 75663aba8fe..2bf8701d99e 100644 --- a/packages/app-builder-lib/src/binDownload.ts +++ b/packages/app-builder-lib/src/binDownload.ts @@ -2,7 +2,7 @@ import * as fs from "fs/promises" import { log, parseValidEnvVarUrl } from "builder-util" import { dynamicImport } from "./util/dynamicImport" import { Nullish } from "builder-util-runtime" -import { sanitizeFileName } from "builder-util/out/filename" +import { sanitizeFileName } from "builder-util/internal" import * as path from "path" import { downloadBuilderToolset, getBinariesMirrorUrl, getCacheDirectory } from "./util/electronGet" diff --git a/packages/app-builder-lib/src/indexInternal.ts b/packages/app-builder-lib/src/indexInternal.ts index 17479bb8726..90969ca46b8 100644 --- a/packages/app-builder-lib/src/indexInternal.ts +++ b/packages/app-builder-lib/src/indexInternal.ts @@ -1,6 +1,10 @@ export { AsarFilesystem, readAsar, readAsarJson } from "./asar/asar.js" export { AsarIntegrity } from "./asar/integrity.js" -export { downloadArtifact, getBinFromUrl } from "./binDownload.js" +export { getBinFromUrl } from "./binDownload.js" +export { MacPackager } from "./macPackager.js" +export { downloadBuilderToolset, getCacheDirectory } from "./util/electronGet.js" +export { withToolsetLock } from "./util/toolsetLock.js" +export { orNullIfFileNotExist } from "./util/config/load.js" export { Identity, createKeychain, findIdentity, isSignAllowed, removeKeychain } from "./codeSign/macCodeSign.js" export { Publish } from "./core.js" export { getElectronVersion } from "./electron/electronVersion.js" @@ -25,7 +29,7 @@ export { computeDefaultAppDirectory, doMergeConfigs, getConfig, validateConfigur export { loadEnv } from "./util/config/load.js" export { getLicenseAssets, getLicenseFiles } from "./util/license.js" export { expandMacro } from "./util/macroExpander.js" -export { createLazyProductionDeps } from "./util/packageDependencies.js" +export type { NodeModuleInfo } from "./util/packageDependencies.js" export { PlistObject, parsePlistFile } from "./util/plist.js" export { getRepositoryInfo } from "./util/repositoryInfo.js" export { installDependencies, installOrRebuild, nodeGypRebuild } from "./util/yarn.js" diff --git a/packages/app-builder-lib/src/linuxPackager.ts b/packages/app-builder-lib/src/linuxPackager.ts index 5ec467f50ea..1d75314f67e 100644 --- a/packages/app-builder-lib/src/linuxPackager.ts +++ b/packages/app-builder-lib/src/linuxPackager.ts @@ -1,5 +1,5 @@ import { Arch } from "builder-util" -import { sanitizeFileName } from "builder-util/out/filename" +import { sanitizeFileName } from "builder-util/internal" import { DIR_TARGET, Platform, Target } from "./core" import { LinuxConfiguration } from "./options/linuxOptions" import { Packager } from "./packager" diff --git a/packages/app-builder-lib/src/targets/archive.ts b/packages/app-builder-lib/src/targets/archive.ts index 45cf0924e1d..15691e52856 100644 --- a/packages/app-builder-lib/src/targets/archive.ts +++ b/packages/app-builder-lib/src/targets/archive.ts @@ -5,7 +5,7 @@ import { create } from "tar" import { TmpDir } from "temp-file" import { CompressionLevel } from "../core" import { getLinuxToolsMacToolset } from "../toolsets/linux" -import { TarOptionsWithAliasesAsync } from "tar/dist/commonjs/options" +import type { TarOptionsWithAliasesAsync } from "tar" const ALLOWED_7Z_FILTERS = new Set(["BCJ", "BCJ2", "ARM", "ARMT", "IA64", "PPC", "SPARC", "DELTA"]) diff --git a/packages/app-builder-lib/src/util/electronGet.ts b/packages/app-builder-lib/src/util/electronGet.ts index f4c5887b153..600f2218d09 100644 --- a/packages/app-builder-lib/src/util/electronGet.ts +++ b/packages/app-builder-lib/src/util/electronGet.ts @@ -8,7 +8,7 @@ import { MirrorOptions, } from "@electron/get" import { buildGotProxyAgent, exec, exists, getPath7za, log, PADDING, parseValidEnvVarUrl, sanitizeDirPath, to7zaOutputSwitch } from "builder-util" -import { MultiProgress } from "electron-publish/out/multiProgress" +import { MultiProgress } from "electron-publish" import { createReadStream, createWriteStream } from "fs" import * as fs from "fs/promises" import * as crypto from "crypto" diff --git a/packages/app-builder-lib/src/util/resolve.ts b/packages/app-builder-lib/src/util/resolve.ts index 2fa6896d78a..4149fd768ef 100644 --- a/packages/app-builder-lib/src/util/resolve.ts +++ b/packages/app-builder-lib/src/util/resolve.ts @@ -1,5 +1,4 @@ -import { InvalidConfigurationError } from "builder-util" -import { log } from "builder-util/out/log" +import { InvalidConfigurationError, log } from "builder-util" import debug from "debug" import { realpath } from "fs/promises" import * as path from "path" diff --git a/packages/app-builder-lib/tsup.config.ts b/packages/app-builder-lib/tsup.config.ts new file mode 100644 index 00000000000..41efb181f1c --- /dev/null +++ b/packages/app-builder-lib/tsup.config.ts @@ -0,0 +1,15 @@ +import { defineConfig } from "tsup" + +export default defineConfig({ + entry: { + index: "src/index.ts", + indexInternal: "src/indexInternal.ts", + }, + format: ["cjs", "esm"], + dts: true, + tsconfig: "../tsconfig-tsup.json", + sourcemap: true, + clean: true, + outDir: "dist", + platform: "node", +}) diff --git a/packages/builder-util-runtime/package.json b/packages/builder-util-runtime/package.json index b3294ad23c2..593b819853d 100644 --- a/packages/builder-util-runtime/package.json +++ b/packages/builder-util-runtime/package.json @@ -1,7 +1,20 @@ { "name": "builder-util-runtime", "version": "9.6.3", - "main": "out/index.js", + "main": "./dist/index.js", + "module": "./dist/index.mjs", + "exports": { + ".": { + "types": "./dist/index.d.ts", + "import": "./dist/index.mjs", + "require": "./dist/index.js" + }, + "./internal": { + "types": "./dist/indexInternal.d.ts", + "import": "./dist/indexInternal.mjs", + "require": "./dist/indexInternal.js" + } + }, "author": "Vladimir Krivosheev", "license": "MIT", "repository": { @@ -12,8 +25,11 @@ "bugs": "https://github.com/electron-userland/electron-builder/issues", "homepage": "https://github.com/electron-userland/electron-builder", "files": [ - "out" + "dist" ], + "scripts": { + "build": "tsup" + }, "engines": { "node": ">=12.0.0" }, @@ -25,5 +41,5 @@ "@types/debug": "4.1.7", "@types/sax": "1.2.3" }, - "types": "./out/index.d.ts" + "types": "./dist/index.d.ts" } diff --git a/packages/builder-util-runtime/tsup.config.ts b/packages/builder-util-runtime/tsup.config.ts new file mode 100644 index 00000000000..41efb181f1c --- /dev/null +++ b/packages/builder-util-runtime/tsup.config.ts @@ -0,0 +1,15 @@ +import { defineConfig } from "tsup" + +export default defineConfig({ + entry: { + index: "src/index.ts", + indexInternal: "src/indexInternal.ts", + }, + format: ["cjs", "esm"], + dts: true, + tsconfig: "../tsconfig-tsup.json", + sourcemap: true, + clean: true, + outDir: "dist", + platform: "node", +}) diff --git a/packages/builder-util/package.json b/packages/builder-util/package.json index 95241611b64..237caa0b0f8 100644 --- a/packages/builder-util/package.json +++ b/packages/builder-util/package.json @@ -1,7 +1,20 @@ { "name": "builder-util", "version": "26.14.0", - "main": "out/util.js", + "main": "./dist/util.js", + "module": "./dist/util.mjs", + "exports": { + ".": { + "types": "./dist/util.d.ts", + "import": "./dist/util.mjs", + "require": "./dist/util.js" + }, + "./internal": { + "types": "./dist/indexInternal.d.ts", + "import": "./dist/indexInternal.mjs", + "require": "./dist/indexInternal.js" + } + }, "author": "Vladimir Krivosheev", "license": "MIT", "repository": { @@ -12,8 +25,11 @@ "bugs": "https://github.com/electron-userland/electron-builder/issues", "homepage": "https://github.com/electron-userland/electron-builder", "files": [ - "out" + "dist" ], + "scripts": { + "build": "tsup" + }, "dependencies": { "7zip-bin": "~5.2.0", "@types/debug": "^4.1.6", @@ -32,7 +48,7 @@ "temp-file": "^3.4.0", "tiny-async-pool": "1.3.0" }, - "typings": "./out/util.d.ts", + "types": "./dist/util.d.ts", "devDependencies": { "@types/cross-spawn": "6.0.6", "@types/fs-extra": "^9.0.11", diff --git a/packages/builder-util/src/log.ts b/packages/builder-util/src/log.ts index 3cdd338970c..b8083e9358f 100644 --- a/packages/builder-util/src/log.ts +++ b/packages/builder-util/src/log.ts @@ -1,7 +1,7 @@ import chalk from "chalk" import { Chalk } from "chalk" import _debug from "debug" -import WritableStream = NodeJS.WritableStream +type WritableStream = NodeJS.WritableStream let printer: ((message: string) => void) | null = null diff --git a/packages/builder-util/tsup.config.ts b/packages/builder-util/tsup.config.ts new file mode 100644 index 00000000000..67b85b3497e --- /dev/null +++ b/packages/builder-util/tsup.config.ts @@ -0,0 +1,15 @@ +import { defineConfig } from "tsup" + +export default defineConfig({ + entry: { + util: "src/util.ts", + indexInternal: "src/indexInternal.ts", + }, + format: ["cjs", "esm"], + dts: true, + tsconfig: "../tsconfig-tsup.json", + sourcemap: true, + clean: true, + outDir: "dist", + platform: "node", +}) diff --git a/packages/dmg-builder/package.json b/packages/dmg-builder/package.json index a0eb20c6788..bfa73bd1c8a 100644 --- a/packages/dmg-builder/package.json +++ b/packages/dmg-builder/package.json @@ -1,7 +1,15 @@ { "name": "dmg-builder", "version": "26.14.0", - "main": "out/dmgUtil.js", + "main": "./dist/dmgUtil.js", + "module": "./dist/dmgUtil.mjs", + "exports": { + ".": { + "types": "./dist/dmgUtil.d.ts", + "import": "./dist/dmgUtil.mjs", + "require": "./dist/dmgUtil.js" + } + }, "author": "Vladimir Krivosheev", "license": "MIT", "repository": { @@ -12,9 +20,12 @@ "bugs": "https://github.com/electron-userland/electron-builder/issues", "homepage": "https://github.com/electron-userland/electron-builder", "files": [ - "out", + "dist", "templates" ], + "scripts": { + "build": "tsup" + }, "dependencies": { "app-builder-lib": "workspace:*", "builder-util": "workspace:*", @@ -26,5 +37,5 @@ "@types/js-yaml": "4.0.3", "temp-file": "3.4.0" }, - "typings": "./out/dmg.d.ts" + "types": "./dist/dmgUtil.d.ts" } diff --git a/packages/dmg-builder/src/dmg.ts b/packages/dmg-builder/src/dmg.ts index 8ad32100b15..2e756a38552 100644 --- a/packages/dmg-builder/src/dmg.ts +++ b/packages/dmg-builder/src/dmg.ts @@ -1,9 +1,7 @@ import { DmgOptions, Target } from "app-builder-lib" -import { findIdentity, isSignAllowed } from "app-builder-lib/out/codeSign/macCodeSign" -import { MacPackager } from "app-builder-lib/out/macPackager" -import { createBlockmap } from "app-builder-lib/out/targets/differentialUpdateInfoBuilder" +import { createBlockmap, findIdentity, isSignAllowed, MacPackager } from "app-builder-lib/internal" import { Arch, exec, getArchSuffix, InvalidConfigurationError, isEmptyOrSpaces } from "builder-util" -import { sanitizeFileName } from "builder-util/out/filename" +import { sanitizeFileName } from "builder-util/internal" import { release as getOsRelease } from "os" import * as path from "path" import type { DmgBuildLicenseConfig } from "./dmgLicense" diff --git a/packages/dmg-builder/src/dmgLicense.ts b/packages/dmg-builder/src/dmgLicense.ts index 9a07e5ca920..12a1ba80bfa 100644 --- a/packages/dmg-builder/src/dmgLicense.ts +++ b/packages/dmg-builder/src/dmgLicense.ts @@ -1,5 +1,5 @@ import { PlatformPackager } from "app-builder-lib" -import { getLicenseFiles } from "app-builder-lib/out/util/license" +import { getLicenseFiles } from "app-builder-lib/internal" import { InvalidConfigurationError } from "builder-util" import { readFile, readJson } from "fs-extra" import { CORE_SCHEMA, load } from "js-yaml" diff --git a/packages/dmg-builder/src/dmgUtil.ts b/packages/dmg-builder/src/dmgUtil.ts index d4f69126ebb..3d6bbb53609 100644 --- a/packages/dmg-builder/src/dmgUtil.ts +++ b/packages/dmg-builder/src/dmgUtil.ts @@ -1,6 +1,5 @@ import { DmgOptions, MacPackager, PlatformPackager } from "app-builder-lib" -import { downloadBuilderToolset } from "app-builder-lib/out/util/electronGet" -import { withToolsetLock } from "app-builder-lib/out/util/toolsetLock" +import { downloadBuilderToolset, withToolsetLock } from "app-builder-lib/internal" import { exec, executeFinally, exists, InvalidConfigurationError, isEmptyOrSpaces, log, TmpDir } from "builder-util" import { stat } from "fs/promises" import { writeFile } from "fs-extra" diff --git a/packages/dmg-builder/src/licenseButtons.ts b/packages/dmg-builder/src/licenseButtons.ts index 0f0075b9872..0db60f78a18 100644 --- a/packages/dmg-builder/src/licenseButtons.ts +++ b/packages/dmg-builder/src/licenseButtons.ts @@ -1,5 +1,5 @@ import { PlatformPackager } from "app-builder-lib" -import { getLicenseAssets } from "app-builder-lib/out/util/license" +import { getLicenseAssets } from "app-builder-lib/internal" export interface LicenseButtonsFile { file: string diff --git a/packages/dmg-builder/tsup.config.ts b/packages/dmg-builder/tsup.config.ts new file mode 100644 index 00000000000..2f91bdf224a --- /dev/null +++ b/packages/dmg-builder/tsup.config.ts @@ -0,0 +1,14 @@ +import { defineConfig } from "tsup" + +export default defineConfig({ + entry: { + dmgUtil: "src/dmgUtil.ts", + }, + format: ["cjs", "esm"], + dts: true, + tsconfig: "../tsconfig-tsup.json", + sourcemap: true, + clean: true, + outDir: "dist", + platform: "node", +}) diff --git a/packages/electron-builder-squirrel-windows/package.json b/packages/electron-builder-squirrel-windows/package.json index 5f019e4eba5..80075ddbc9e 100644 --- a/packages/electron-builder-squirrel-windows/package.json +++ b/packages/electron-builder-squirrel-windows/package.json @@ -1,7 +1,15 @@ { "name": "electron-builder-squirrel-windows", "version": "26.14.0", - "main": "out/SquirrelWindowsTarget.js", + "main": "./dist/SquirrelWindowsTarget.js", + "module": "./dist/SquirrelWindowsTarget.mjs", + "exports": { + ".": { + "types": "./dist/SquirrelWindowsTarget.d.ts", + "import": "./dist/SquirrelWindowsTarget.mjs", + "require": "./dist/SquirrelWindowsTarget.js" + } + }, "author": "Vladimir Krivosheev", "license": "MIT", "repository": { @@ -12,9 +20,12 @@ "bugs": "https://github.com/electron-userland/electron-builder/issues", "homepage": "https://github.com/electron-userland/electron-builder", "files": [ - "out", + "dist", "template.nuspectemplate" ], + "scripts": { + "build": "tsup" + }, "dependencies": { "app-builder-lib": "workspace:*", "builder-util": "workspace:*", @@ -24,5 +35,5 @@ "@types/archiver": "5.3.1", "@types/fs-extra": "9.0.13" }, - "types": "./out/SquirrelWindowsTarget.d.ts" + "types": "./dist/SquirrelWindowsTarget.d.ts" } diff --git a/packages/electron-builder-squirrel-windows/src/SquirrelWindowsTarget.ts b/packages/electron-builder-squirrel-windows/src/SquirrelWindowsTarget.ts index 64364c2e1cc..1e3edb970fc 100644 --- a/packages/electron-builder-squirrel-windows/src/SquirrelWindowsTarget.ts +++ b/packages/electron-builder-squirrel-windows/src/SquirrelWindowsTarget.ts @@ -1,9 +1,7 @@ import { InvalidConfigurationError, log, isEmptyOrSpaces, exists } from "builder-util" -import { execWine } from "app-builder-lib/out/wine" -import { getBinFromUrl } from "app-builder-lib/out/binDownload" -import { sanitizeFileName } from "builder-util/out/filename" +import { execWine, getBinFromUrl, withToolsetLock } from "app-builder-lib/internal" +import { sanitizeFileName } from "builder-util/internal" import { Arch, getArchSuffix, SquirrelWindowsOptions, Target, WinPackager } from "app-builder-lib" -import { withToolsetLock } from "app-builder-lib/out/util/toolsetLock" import * as path from "path" import * as fs from "fs" import * as os from "os" diff --git a/packages/electron-builder-squirrel-windows/tsup.config.ts b/packages/electron-builder-squirrel-windows/tsup.config.ts new file mode 100644 index 00000000000..2f73360404f --- /dev/null +++ b/packages/electron-builder-squirrel-windows/tsup.config.ts @@ -0,0 +1,14 @@ +import { defineConfig } from "tsup" + +export default defineConfig({ + entry: { + SquirrelWindowsTarget: "src/SquirrelWindowsTarget.ts", + }, + format: ["cjs", "esm"], + dts: true, + tsconfig: "../tsconfig-tsup.json", + sourcemap: true, + clean: true, + outDir: "dist", + platform: "node", +}) diff --git a/packages/electron-builder/cli.js b/packages/electron-builder/cli.js index 11c9d2f0f67..6a23f8bb683 100755 --- a/packages/electron-builder/cli.js +++ b/packages/electron-builder/cli.js @@ -1,3 +1,3 @@ #!/usr/bin/env node -import("./out/cli/cli") +import("./dist/cli/cli") diff --git a/packages/electron-builder/install-app-deps.js b/packages/electron-builder/install-app-deps.js index a616261e554..567f2f84caf 100755 --- a/packages/electron-builder/install-app-deps.js +++ b/packages/electron-builder/install-app-deps.js @@ -1,3 +1,3 @@ #!/usr/bin/env node -import("./out/cli/install-app-deps") +import("./dist/cli/install-app-deps") diff --git a/packages/electron-builder/package.json b/packages/electron-builder/package.json index 730a7542958..7a3700e3050 100644 --- a/packages/electron-builder/package.json +++ b/packages/electron-builder/package.json @@ -2,10 +2,28 @@ "name": "electron-builder", "description": "A complete solution to package and build a ready for distribution Electron app for MacOS, Windows and Linux with “auto update” support out of the box", "version": "26.14.0", - "main": "out/index.js", + "main": "./dist/index.js", + "module": "./dist/index.mjs", + "exports": { + ".": { + "types": "./dist/index.d.ts", + "import": "./dist/index.mjs", + "require": "./dist/index.js" + }, + "./internal": { + "types": "./dist/indexInternal.d.ts", + "import": "./dist/indexInternal.mjs", + "require": "./dist/indexInternal.js" + } + }, "files": [ - "out" + "dist", + "cli.js", + "install-app-deps.js" ], + "scripts": { + "build": "tsup" + }, "bin": { "electron-builder": "./cli.js", "install-app-deps": "./install-app-deps.js" @@ -66,7 +84,7 @@ "@types/fs-extra": "9.0.13", "@types/yargs": "^17.0.16" }, - "typings": "./out/index.d.ts", + "types": "./dist/index.d.ts", "publishConfig": { "tag": "next" } diff --git a/packages/electron-builder/src/builder.ts b/packages/electron-builder/src/builder.ts index 90ece28a86e..b4a016d9be0 100644 --- a/packages/electron-builder/src/builder.ts +++ b/packages/electron-builder/src/builder.ts @@ -6,7 +6,7 @@ import { PublishOptions } from "electron-publish" import * as yargs from "yargs" export function createYargs(): yargs.Argv { - return yargs.parserConfiguration({ + return (yargs as unknown as yargs.Argv).parserConfiguration({ "camel-case-expansion": false, }) } diff --git a/packages/electron-builder/src/cli/clear-cache.ts b/packages/electron-builder/src/cli/clear-cache.ts index 854b9303de1..e19251913e3 100644 --- a/packages/electron-builder/src/cli/clear-cache.ts +++ b/packages/electron-builder/src/cli/clear-cache.ts @@ -1,7 +1,7 @@ -import { getCacheDirectory } from "app-builder-lib/out/util/electronGet" +import { getCacheDirectory } from "app-builder-lib/internal" import { log } from "builder-util" import { access, constants, rm } from "fs/promises" -import { createInterface } from "readline/promises" +import { createInterface } from "node:readline/promises" import * as path from "path" export async function clearCache(): Promise { diff --git a/packages/electron-builder/src/cli/cli-util.ts b/packages/electron-builder/src/cli/cli-util.ts index e155077ee4b..757b652cd58 100644 --- a/packages/electron-builder/src/cli/cli-util.ts +++ b/packages/electron-builder/src/cli/cli-util.ts @@ -1,4 +1,4 @@ -import { loadEnv } from "app-builder-lib/out/util/config/load" +import { loadEnv } from "app-builder-lib/internal" import { ExecError, InvalidConfigurationError, log } from "builder-util" import { isCI } from "ci-info" import { readJson } from "fs-extra" diff --git a/packages/electron-builder/src/cli/cli.ts b/packages/electron-builder/src/cli/cli.ts index d9a4af622aa..08052426e5f 100644 --- a/packages/electron-builder/src/cli/cli.ts +++ b/packages/electron-builder/src/cli/cli.ts @@ -1,7 +1,6 @@ #! /usr/bin/env node -import { getElectronVersion } from "app-builder-lib/out/electron/electronVersion" -import { nodeGypRebuild } from "app-builder-lib/out/util/yarn" +import { getElectronVersion, nodeGypRebuild } from "app-builder-lib/internal" import * as chalk from "chalk" import { build, configureBuildCommand, createYargs } from "../builder" import { configurePublishCommand, publish } from "../publish" diff --git a/packages/electron-builder/src/cli/install-app-deps.ts b/packages/electron-builder/src/cli/install-app-deps.ts index 507ea22c9a6..789a484d470 100644 --- a/packages/electron-builder/src/cli/install-app-deps.ts +++ b/packages/electron-builder/src/cli/install-app-deps.ts @@ -1,11 +1,6 @@ #! /usr/bin/env node -import { getElectronVersion } from "app-builder-lib/out/electron/electronVersion" -import { computeDefaultAppDirectory, getConfig } from "app-builder-lib/out/util/config/config" -import { orNullIfFileNotExist } from "app-builder-lib/out/util/config/load" -import { installOrRebuild } from "app-builder-lib/out/util/yarn" -import { PACKAGE_VERSION } from "app-builder-lib/out/version" -import { determinePackageManagerEnv } from "app-builder-lib/out/node-module-collector" +import { computeDefaultAppDirectory, determinePackageManagerEnv, getConfig, getElectronVersion, installOrRebuild, orNullIfFileNotExist, PACKAGE_VERSION } from "app-builder-lib/internal" import { getArchCliNames, log, printErrorAndExit } from "builder-util" import { readJson } from "fs-extra" import { Lazy } from "lazy-val" diff --git a/packages/electron-builder/tsup.config.ts b/packages/electron-builder/tsup.config.ts new file mode 100644 index 00000000000..ae476d72468 --- /dev/null +++ b/packages/electron-builder/tsup.config.ts @@ -0,0 +1,22 @@ +import { defineConfig } from "tsup" + +export default defineConfig({ + entry: { + index: "src/index.ts", + indexInternal: "src/indexInternal.ts", + "cli/cli": "src/cli/cli.ts", + "cli/install-app-deps": "src/cli/install-app-deps.ts", + }, + format: ["cjs", "esm"], + dts: { + entry: { + index: "src/index.ts", + indexInternal: "src/indexInternal.ts", + }, + }, + tsconfig: "../tsconfig-tsup.json", + sourcemap: true, + clean: true, + outDir: "dist", + platform: "node", +}) diff --git a/packages/electron-publish/package.json b/packages/electron-publish/package.json index fcf1194e776..9b990fe6367 100644 --- a/packages/electron-publish/package.json +++ b/packages/electron-publish/package.json @@ -1,7 +1,20 @@ { "name": "electron-publish", "version": "26.14.0", - "main": "out/index.js", + "main": "./dist/index.js", + "module": "./dist/index.mjs", + "exports": { + ".": { + "types": "./dist/index.d.ts", + "import": "./dist/index.mjs", + "require": "./dist/index.js" + }, + "./internal": { + "types": "./dist/indexInternal.d.ts", + "import": "./dist/indexInternal.mjs", + "require": "./dist/indexInternal.js" + } + }, "author": "Vladimir Krivosheev", "license": "MIT", "repository": { @@ -12,8 +25,11 @@ "bugs": "https://github.com/electron-userland/electron-builder/issues", "homepage": "https://github.com/electron-userland/electron-builder", "files": [ - "out" + "dist" ], + "scripts": { + "build": "tsup" + }, "dependencies": { "@types/fs-extra": "^9.0.11", "aws4": "^1.13.2", @@ -25,7 +41,7 @@ "lazy-val": "^1.0.5", "mime": "^2.5.2" }, - "typings": "./out/index.d.ts", + "types": "./dist/index.d.ts", "devDependencies": { "@types/aws4": "^1.11.6", "@types/mime": "2.0.3" diff --git a/packages/electron-publish/src/snapStorePublisher.ts b/packages/electron-publish/src/snapStorePublisher.ts index 5508c1480f3..da7a7b52487 100644 --- a/packages/electron-publish/src/snapStorePublisher.ts +++ b/packages/electron-publish/src/snapStorePublisher.ts @@ -1,5 +1,5 @@ import { exec, loadCscLink, spawn } from "builder-util" -import { SnapStoreOptions } from "builder-util-runtime/out/publishOptions" +import { SnapStoreOptions } from "builder-util-runtime" import * as path from "path" import { PublishContext, UploadTask } from "." import { Publisher } from "./publisher" diff --git a/packages/electron-publish/tsup.config.ts b/packages/electron-publish/tsup.config.ts new file mode 100644 index 00000000000..41efb181f1c --- /dev/null +++ b/packages/electron-publish/tsup.config.ts @@ -0,0 +1,15 @@ +import { defineConfig } from "tsup" + +export default defineConfig({ + entry: { + index: "src/index.ts", + indexInternal: "src/indexInternal.ts", + }, + format: ["cjs", "esm"], + dts: true, + tsconfig: "../tsconfig-tsup.json", + sourcemap: true, + clean: true, + outDir: "dist", + platform: "node", +}) diff --git a/packages/electron-updater/package.json b/packages/electron-updater/package.json index d341223febe..aeead77b3b5 100644 --- a/packages/electron-updater/package.json +++ b/packages/electron-updater/package.json @@ -2,10 +2,19 @@ "name": "electron-updater", "version": "6.8.8", "description": "Cross platform updater for electron applications", - "type": "module", + "main": "./dist/index.js", + "module": "./dist/index.mjs", "exports": { - ".": "./out/index.js", - "./internal": "./out/indexInternal.js" + ".": { + "types": "./dist/index.d.ts", + "import": "./dist/index.mjs", + "require": "./dist/index.js" + }, + "./internal": { + "types": "./dist/indexInternal.d.ts", + "import": "./dist/indexInternal.mjs", + "require": "./dist/indexInternal.js" + } }, "author": "Vladimir Krivosheev", "license": "MIT", @@ -17,7 +26,7 @@ "bugs": "https://github.com/electron-userland/electron-builder/issues", "homepage": "https://github.com/electron-userland/electron-builder", "files": [ - "out" + "dist" ], "dependencies": { "builder-util-runtime": "workspace:*", @@ -37,7 +46,7 @@ "@types/semver": "7.7.1", "electron": "39.8.5" }, - "types": "./out/main.d.ts", + "types": "./dist/index.d.ts", "publishConfig": { "tag": "next" }, @@ -45,6 +54,6 @@ "node": ">=22.12.0" }, "scripts": { - "compile": "tsc" + "build": "tsup" } } diff --git a/packages/electron-updater/src/AppUpdater.ts b/packages/electron-updater/src/AppUpdater.ts index 78c724b61a8..a3ee28895f6 100644 --- a/packages/electron-updater/src/AppUpdater.ts +++ b/packages/electron-updater/src/AppUpdater.ts @@ -30,7 +30,7 @@ import { GenericProvider } from "./providers/GenericProvider.js" import { createClient, isUrlProbablySupportMultiRangeRequests } from "./providerFactory.js" import { Provider, ProviderPlatform } from "./providers/Provider.js" import type { TypedEmitter } from "tiny-typed-emitter" -import Session = Electron.Session +type Session = Electron.Session import type { AuthInfo } from "electron" import { gunzipSync, gzipSync } from "zlib" import { DifferentialDownloaderOptions } from "./differentialDownloader/DifferentialDownloader.js" diff --git a/packages/electron-updater/src/MacUpdater.ts b/packages/electron-updater/src/MacUpdater.ts index 852ab2b2cf3..977fbe8bcb8 100644 --- a/packages/electron-updater/src/MacUpdater.ts +++ b/packages/electron-updater/src/MacUpdater.ts @@ -11,7 +11,7 @@ import { AppUpdater, DownloadUpdateOptions } from "./AppUpdater.js" import { ResolvedUpdateFileInfo } from "./types.js" import { UpdateDownloadedEvent } from "./types.js" import { findFile } from "./providers/Provider.js" -import AutoUpdater = Electron.AutoUpdater +type AutoUpdater = Electron.AutoUpdater import { execFileSync } from "child_process" import { randomBytes } from "crypto" diff --git a/packages/electron-updater/src/electronHttpExecutor.ts b/packages/electron-updater/src/electronHttpExecutor.ts index c4228ebd6e1..f3fc6dbeb62 100644 --- a/packages/electron-updater/src/electronHttpExecutor.ts +++ b/packages/electron-updater/src/electronHttpExecutor.ts @@ -4,8 +4,8 @@ import { DownloadOptions, HttpExecutor, configureRequestOptions, configureReques const require = createRequire(import.meta.url) import type { AuthInfo } from "electron" import { RequestOptions } from "http" -import Session = Electron.Session -import ClientRequest = Electron.ClientRequest +type Session = Electron.Session +type ClientRequest = Electron.ClientRequest export type LoginCallback = (username: string, password: string) => void export const NET_SESSION_NAME = "electron-updater" diff --git a/packages/electron-updater/tsup.config.ts b/packages/electron-updater/tsup.config.ts new file mode 100644 index 00000000000..1301f9b1314 --- /dev/null +++ b/packages/electron-updater/tsup.config.ts @@ -0,0 +1,16 @@ +import { defineConfig } from "tsup" + +export default defineConfig({ + entry: { + index: "src/index.ts", + indexInternal: "src/indexInternal.ts", + }, + format: ["cjs", "esm"], + dts: true, + tsconfig: "../tsconfig-tsup.json", + sourcemap: true, + clean: true, + outDir: "dist", + platform: "node", + external: ["electron"], +}) diff --git a/packages/tsconfig-tsup.json b/packages/tsconfig-tsup.json new file mode 100644 index 00000000000..7230c3f045f --- /dev/null +++ b/packages/tsconfig-tsup.json @@ -0,0 +1,9 @@ +{ + "extends": "./tsconfig-base.json", + "compilerOptions": { + "composite": false, + "incremental": false, + "declaration": true + }, + "include": ["../typings/*.d.ts"] +} diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 261f3e2315e..8ee7e84ed11 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -74,6 +74,9 @@ importers: ts-node: specifier: ^10.9.2 version: 10.9.2(@swc/core@1.15.33)(@types/node@22.13.17)(typescript@5.8.2) + tsup: + specifier: ^8.0.0 + version: 8.5.1(@swc/core@1.15.33)(jiti@2.4.2)(postcss@8.5.14)(typescript@5.8.2)(yaml@2.8.4) typedoc: specifier: ^0.28.19 version: 0.28.19(typescript@5.8.2) @@ -544,8 +547,8 @@ importers: specifier: workspace:* version: link:../builder-util-runtime fs-extra: - specifier: ^10.1.0 - version: 10.1.0 + specifier: ^11.3.4 + version: 11.3.5 js-yaml: specifier: ^4.1.0 version: 4.1.1 @@ -723,19 +726,19 @@ importers: dependencies: '@docusaurus/core': specifier: 3.10.1 - version: 3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3) + version: 3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(esbuild@0.27.7)(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3) '@docusaurus/faster': specifier: 3.10.1 - version: 3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(postcss@8.5.14) + version: 3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(esbuild@0.27.7)(postcss@8.5.14) '@docusaurus/plugin-client-redirects': specifier: 3.10.1 - version: 3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3) + version: 3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(esbuild@0.27.7)(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3) '@docusaurus/preset-classic': specifier: 3.10.1 - version: 3.10.1(@algolia/client-search@5.52.1)(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(@types/react@19.2.14)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(search-insights@2.17.3)(typescript@5.6.3) + version: 3.10.1(@algolia/client-search@5.52.1)(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(esbuild@0.27.7)(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(@types/react@19.2.14)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(search-insights@2.17.3)(typescript@5.6.3) '@docusaurus/theme-mermaid': specifier: 3.10.1 - version: 3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(postcss@8.5.14))(@docusaurus/plugin-content-docs@3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3) + version: 3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(esbuild@0.27.7)(postcss@8.5.14))(@docusaurus/plugin-content-docs@3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(esbuild@0.27.7)(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3) clsx: specifier: 2.1.1 version: 2.1.1 @@ -754,13 +757,13 @@ importers: devDependencies: '@docusaurus/module-type-aliases': specifier: 3.10.1 - version: 3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + version: 3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) '@docusaurus/tsconfig': specifier: 3.10.1 version: 3.10.1 '@docusaurus/types': specifier: 3.10.1 - version: 3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + version: 3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) '@types/react': specifier: ^19.0.0 version: 19.2.14 @@ -2846,150 +2849,306 @@ packages: cpu: [ppc64] os: [aix] + '@esbuild/aix-ppc64@0.27.7': + resolution: {integrity: sha512-EKX3Qwmhz1eMdEJokhALr0YiD0lhQNwDqkPYyPhiSwKrh7/4KRjQc04sZ8db+5DVVnZ1LmbNDI1uAMPEUBnQPg==} + engines: {node: '>=18'} + cpu: [ppc64] + os: [aix] + '@esbuild/android-arm64@0.25.2': resolution: {integrity: sha512-5ZAX5xOmTligeBaeNEPnPaeEuah53Id2tX4c2CVP3JaROTH+j4fnfHCkr1PjXMd78hMst+TlkfKcW/DlTq0i4w==} engines: {node: '>=18'} cpu: [arm64] os: [android] + '@esbuild/android-arm64@0.27.7': + resolution: {integrity: sha512-62dPZHpIXzvChfvfLJow3q5dDtiNMkwiRzPylSCfriLvZeq0a1bWChrGx/BbUbPwOrsWKMn8idSllklzBy+dgQ==} + engines: {node: '>=18'} + cpu: [arm64] + os: [android] + '@esbuild/android-arm@0.25.2': resolution: {integrity: sha512-NQhH7jFstVY5x8CKbcfa166GoV0EFkaPkCKBQkdPJFvo5u+nGXLEH/ooniLb3QI8Fk58YAx7nsPLozUWfCBOJA==} engines: {node: '>=18'} cpu: [arm] os: [android] + '@esbuild/android-arm@0.27.7': + resolution: {integrity: sha512-jbPXvB4Yj2yBV7HUfE2KHe4GJX51QplCN1pGbYjvsyCZbQmies29EoJbkEc+vYuU5o45AfQn37vZlyXy4YJ8RQ==} + engines: {node: '>=18'} + cpu: [arm] + os: [android] + '@esbuild/android-x64@0.25.2': resolution: {integrity: sha512-Ffcx+nnma8Sge4jzddPHCZVRvIfQ0kMsUsCMcJRHkGJ1cDmhe4SsrYIjLUKn1xpHZybmOqCWwB0zQvsjdEHtkg==} engines: {node: '>=18'} cpu: [x64] os: [android] + '@esbuild/android-x64@0.27.7': + resolution: {integrity: sha512-x5VpMODneVDb70PYV2VQOmIUUiBtY3D3mPBG8NxVk5CogneYhkR7MmM3yR/uMdITLrC1ml/NV1rj4bMJuy9MCg==} + engines: {node: '>=18'} + cpu: [x64] + os: [android] + '@esbuild/darwin-arm64@0.25.2': resolution: {integrity: sha512-MpM6LUVTXAzOvN4KbjzU/q5smzryuoNjlriAIx+06RpecwCkL9JpenNzpKd2YMzLJFOdPqBpuub6eVRP5IgiSA==} engines: {node: '>=18'} cpu: [arm64] os: [darwin] + '@esbuild/darwin-arm64@0.27.7': + resolution: {integrity: sha512-5lckdqeuBPlKUwvoCXIgI2D9/ABmPq3Rdp7IfL70393YgaASt7tbju3Ac+ePVi3KDH6N2RqePfHnXkaDtY9fkw==} + engines: {node: '>=18'} + cpu: [arm64] + os: [darwin] + '@esbuild/darwin-x64@0.25.2': resolution: {integrity: sha512-5eRPrTX7wFyuWe8FqEFPG2cU0+butQQVNcT4sVipqjLYQjjh8a8+vUTfgBKM88ObB85ahsnTwF7PSIt6PG+QkA==} engines: {node: '>=18'} cpu: [x64] os: [darwin] + '@esbuild/darwin-x64@0.27.7': + resolution: {integrity: sha512-rYnXrKcXuT7Z+WL5K980jVFdvVKhCHhUwid+dDYQpH+qu+TefcomiMAJpIiC2EM3Rjtq0sO3StMV/+3w3MyyqQ==} + engines: {node: '>=18'} + cpu: [x64] + os: [darwin] + '@esbuild/freebsd-arm64@0.25.2': resolution: {integrity: sha512-mLwm4vXKiQ2UTSX4+ImyiPdiHjiZhIaE9QvC7sw0tZ6HoNMjYAqQpGyui5VRIi5sGd+uWq940gdCbY3VLvsO1w==} engines: {node: '>=18'} cpu: [arm64] os: [freebsd] + '@esbuild/freebsd-arm64@0.27.7': + resolution: {integrity: sha512-B48PqeCsEgOtzME2GbNM2roU29AMTuOIN91dsMO30t+Ydis3z/3Ngoj5hhnsOSSwNzS+6JppqWsuhTp6E82l2w==} + engines: {node: '>=18'} + cpu: [arm64] + os: [freebsd] + '@esbuild/freebsd-x64@0.25.2': resolution: {integrity: sha512-6qyyn6TjayJSwGpm8J9QYYGQcRgc90nmfdUb0O7pp1s4lTY+9D0H9O02v5JqGApUyiHOtkz6+1hZNvNtEhbwRQ==} engines: {node: '>=18'} cpu: [x64] os: [freebsd] + '@esbuild/freebsd-x64@0.27.7': + resolution: {integrity: sha512-jOBDK5XEjA4m5IJK3bpAQF9/Lelu/Z9ZcdhTRLf4cajlB+8VEhFFRjWgfy3M1O4rO2GQ/b2dLwCUGpiF/eATNQ==} + engines: {node: '>=18'} + cpu: [x64] + os: [freebsd] + '@esbuild/linux-arm64@0.25.2': resolution: {integrity: sha512-gq/sjLsOyMT19I8obBISvhoYiZIAaGF8JpeXu1u8yPv8BE5HlWYobmlsfijFIZ9hIVGYkbdFhEqC0NvM4kNO0g==} engines: {node: '>=18'} cpu: [arm64] os: [linux] + '@esbuild/linux-arm64@0.27.7': + resolution: {integrity: sha512-RZPHBoxXuNnPQO9rvjh5jdkRmVizktkT7TCDkDmQ0W2SwHInKCAV95GRuvdSvA7w4VMwfCjUiPwDi0ZO6Nfe9A==} + engines: {node: '>=18'} + cpu: [arm64] + os: [linux] + '@esbuild/linux-arm@0.25.2': resolution: {integrity: sha512-UHBRgJcmjJv5oeQF8EpTRZs/1knq6loLxTsjc3nxO9eXAPDLcWW55flrMVc97qFPbmZP31ta1AZVUKQzKTzb0g==} engines: {node: '>=18'} cpu: [arm] os: [linux] + '@esbuild/linux-arm@0.27.7': + resolution: {integrity: sha512-RkT/YXYBTSULo3+af8Ib0ykH8u2MBh57o7q/DAs3lTJlyVQkgQvlrPTnjIzzRPQyavxtPtfg0EopvDyIt0j1rA==} + engines: {node: '>=18'} + cpu: [arm] + os: [linux] + '@esbuild/linux-ia32@0.25.2': resolution: {integrity: sha512-bBYCv9obgW2cBP+2ZWfjYTU+f5cxRoGGQ5SeDbYdFCAZpYWrfjjfYwvUpP8MlKbP0nwZ5gyOU/0aUzZ5HWPuvQ==} engines: {node: '>=18'} cpu: [ia32] os: [linux] + '@esbuild/linux-ia32@0.27.7': + resolution: {integrity: sha512-GA48aKNkyQDbd3KtkplYWT102C5sn/EZTY4XROkxONgruHPU72l+gW+FfF8tf2cFjeHaRbWpOYa/uRBz/Xq1Pg==} + engines: {node: '>=18'} + cpu: [ia32] + os: [linux] + '@esbuild/linux-loong64@0.25.2': resolution: {integrity: sha512-SHNGiKtvnU2dBlM5D8CXRFdd+6etgZ9dXfaPCeJtz+37PIUlixvlIhI23L5khKXs3DIzAn9V8v+qb1TRKrgT5w==} engines: {node: '>=18'} cpu: [loong64] os: [linux] + '@esbuild/linux-loong64@0.27.7': + resolution: {integrity: sha512-a4POruNM2oWsD4WKvBSEKGIiWQF8fZOAsycHOt6JBpZ+JN2n2JH9WAv56SOyu9X5IqAjqSIPTaJkqN8F7XOQ5Q==} + engines: {node: '>=18'} + cpu: [loong64] + os: [linux] + '@esbuild/linux-mips64el@0.25.2': resolution: {integrity: sha512-hDDRlzE6rPeoj+5fsADqdUZl1OzqDYow4TB4Y/3PlKBD0ph1e6uPHzIQcv2Z65u2K0kpeByIyAjCmjn1hJgG0Q==} engines: {node: '>=18'} cpu: [mips64el] os: [linux] + '@esbuild/linux-mips64el@0.27.7': + resolution: {integrity: sha512-KabT5I6StirGfIz0FMgl1I+R1H73Gp0ofL9A3nG3i/cYFJzKHhouBV5VWK1CSgKvVaG4q1RNpCTR2LuTVB3fIw==} + engines: {node: '>=18'} + cpu: [mips64el] + os: [linux] + '@esbuild/linux-ppc64@0.25.2': resolution: {integrity: sha512-tsHu2RRSWzipmUi9UBDEzc0nLc4HtpZEI5Ba+Omms5456x5WaNuiG3u7xh5AO6sipnJ9r4cRWQB2tUjPyIkc6g==} engines: {node: '>=18'} cpu: [ppc64] os: [linux] + '@esbuild/linux-ppc64@0.27.7': + resolution: {integrity: sha512-gRsL4x6wsGHGRqhtI+ifpN/vpOFTQtnbsupUF5R5YTAg+y/lKelYR1hXbnBdzDjGbMYjVJLJTd2OFmMewAgwlQ==} + engines: {node: '>=18'} + cpu: [ppc64] + os: [linux] + '@esbuild/linux-riscv64@0.25.2': resolution: {integrity: sha512-k4LtpgV7NJQOml/10uPU0s4SAXGnowi5qBSjaLWMojNCUICNu7TshqHLAEbkBdAszL5TabfvQ48kK84hyFzjnw==} engines: {node: '>=18'} cpu: [riscv64] os: [linux] + '@esbuild/linux-riscv64@0.27.7': + resolution: {integrity: sha512-hL25LbxO1QOngGzu2U5xeXtxXcW+/GvMN3ejANqXkxZ/opySAZMrc+9LY/WyjAan41unrR3YrmtTsUpwT66InQ==} + engines: {node: '>=18'} + cpu: [riscv64] + os: [linux] + '@esbuild/linux-s390x@0.25.2': resolution: {integrity: sha512-GRa4IshOdvKY7M/rDpRR3gkiTNp34M0eLTaC1a08gNrh4u488aPhuZOCpkF6+2wl3zAN7L7XIpOFBhnaE3/Q8Q==} engines: {node: '>=18'} cpu: [s390x] os: [linux] + '@esbuild/linux-s390x@0.27.7': + resolution: {integrity: sha512-2k8go8Ycu1Kb46vEelhu1vqEP+UeRVj2zY1pSuPdgvbd5ykAw82Lrro28vXUrRmzEsUV0NzCf54yARIK8r0fdw==} + engines: {node: '>=18'} + cpu: [s390x] + os: [linux] + '@esbuild/linux-x64@0.25.2': resolution: {integrity: sha512-QInHERlqpTTZ4FRB0fROQWXcYRD64lAoiegezDunLpalZMjcUcld3YzZmVJ2H/Cp0wJRZ8Xtjtj0cEHhYc/uUg==} engines: {node: '>=18'} cpu: [x64] os: [linux] + '@esbuild/linux-x64@0.27.7': + resolution: {integrity: sha512-hzznmADPt+OmsYzw1EE33ccA+HPdIqiCRq7cQeL1Jlq2gb1+OyWBkMCrYGBJ+sxVzve2ZJEVeePbLM2iEIZSxA==} + engines: {node: '>=18'} + cpu: [x64] + os: [linux] + '@esbuild/netbsd-arm64@0.25.2': resolution: {integrity: sha512-talAIBoY5M8vHc6EeI2WW9d/CkiO9MQJ0IOWX8hrLhxGbro/vBXJvaQXefW2cP0z0nQVTdQ/eNyGFV1GSKrxfw==} engines: {node: '>=18'} cpu: [arm64] os: [netbsd] + '@esbuild/netbsd-arm64@0.27.7': + resolution: {integrity: sha512-b6pqtrQdigZBwZxAn1UpazEisvwaIDvdbMbmrly7cDTMFnw/+3lVxxCTGOrkPVnsYIosJJXAsILG9XcQS+Yu6w==} + engines: {node: '>=18'} + cpu: [arm64] + os: [netbsd] + '@esbuild/netbsd-x64@0.25.2': resolution: {integrity: sha512-voZT9Z+tpOxrvfKFyfDYPc4DO4rk06qamv1a/fkuzHpiVBMOhpjK+vBmWM8J1eiB3OLSMFYNaOaBNLXGChf5tg==} engines: {node: '>=18'} cpu: [x64] os: [netbsd] + '@esbuild/netbsd-x64@0.27.7': + resolution: {integrity: sha512-OfatkLojr6U+WN5EDYuoQhtM+1xco+/6FSzJJnuWiUw5eVcicbyK3dq5EeV/QHT1uy6GoDhGbFpprUiHUYggrw==} + engines: {node: '>=18'} + cpu: [x64] + os: [netbsd] + '@esbuild/openbsd-arm64@0.25.2': resolution: {integrity: sha512-dcXYOC6NXOqcykeDlwId9kB6OkPUxOEqU+rkrYVqJbK2hagWOMrsTGsMr8+rW02M+d5Op5NNlgMmjzecaRf7Tg==} engines: {node: '>=18'} cpu: [arm64] os: [openbsd] + '@esbuild/openbsd-arm64@0.27.7': + resolution: {integrity: sha512-AFuojMQTxAz75Fo8idVcqoQWEHIXFRbOc1TrVcFSgCZtQfSdc1RXgB3tjOn/krRHENUB4j00bfGjyl2mJrU37A==} + engines: {node: '>=18'} + cpu: [arm64] + os: [openbsd] + '@esbuild/openbsd-x64@0.25.2': resolution: {integrity: sha512-t/TkWwahkH0Tsgoq1Ju7QfgGhArkGLkF1uYz8nQS/PPFlXbP5YgRpqQR3ARRiC2iXoLTWFxc6DJMSK10dVXluw==} engines: {node: '>=18'} cpu: [x64] os: [openbsd] + '@esbuild/openbsd-x64@0.27.7': + resolution: {integrity: sha512-+A1NJmfM8WNDv5CLVQYJ5PshuRm/4cI6WMZRg1by1GwPIQPCTs1GLEUHwiiQGT5zDdyLiRM/l1G0Pv54gvtKIg==} + engines: {node: '>=18'} + cpu: [x64] + os: [openbsd] + + '@esbuild/openharmony-arm64@0.27.7': + resolution: {integrity: sha512-+KrvYb/C8zA9CU/g0sR6w2RBw7IGc5J2BPnc3dYc5VJxHCSF1yNMxTV5LQ7GuKteQXZtspjFbiuW5/dOj7H4Yw==} + engines: {node: '>=18'} + cpu: [arm64] + os: [openharmony] + '@esbuild/sunos-x64@0.25.2': resolution: {integrity: sha512-cfZH1co2+imVdWCjd+D1gf9NjkchVhhdpgb1q5y6Hcv9TP6Zi9ZG/beI3ig8TvwT9lH9dlxLq5MQBBgwuj4xvA==} engines: {node: '>=18'} cpu: [x64] os: [sunos] + '@esbuild/sunos-x64@0.27.7': + resolution: {integrity: sha512-ikktIhFBzQNt/QDyOL580ti9+5mL/YZeUPKU2ivGtGjdTYoqz6jObj6nOMfhASpS4GU4Q/Clh1QtxWAvcYKamA==} + engines: {node: '>=18'} + cpu: [x64] + os: [sunos] + '@esbuild/win32-arm64@0.25.2': resolution: {integrity: sha512-7Loyjh+D/Nx/sOTzV8vfbB3GJuHdOQyrOryFdZvPHLf42Tk9ivBU5Aedi7iyX+x6rbn2Mh68T4qq1SDqJBQO5Q==} engines: {node: '>=18'} cpu: [arm64] os: [win32] + '@esbuild/win32-arm64@0.27.7': + resolution: {integrity: sha512-7yRhbHvPqSpRUV7Q20VuDwbjW5kIMwTHpptuUzV+AA46kiPze5Z7qgt6CLCK3pWFrHeNfDd1VKgyP4O+ng17CA==} + engines: {node: '>=18'} + cpu: [arm64] + os: [win32] + '@esbuild/win32-ia32@0.25.2': resolution: {integrity: sha512-WRJgsz9un0nqZJ4MfhabxaD9Ft8KioqU3JMinOTvobbX6MOSUigSBlogP8QB3uxpJDsFS6yN+3FDBdqE5lg9kg==} engines: {node: '>=18'} cpu: [ia32] os: [win32] + '@esbuild/win32-ia32@0.27.7': + resolution: {integrity: sha512-SmwKXe6VHIyZYbBLJrhOoCJRB/Z1tckzmgTLfFYOfpMAx63BJEaL9ExI8x7v0oAO3Zh6D/Oi1gVxEYr5oUCFhw==} + engines: {node: '>=18'} + cpu: [ia32] + os: [win32] + '@esbuild/win32-x64@0.25.2': resolution: {integrity: sha512-kM3HKb16VIXZyIeVrM1ygYmZBKybX8N4p754bw390wGO3Tf2j4L2/WYL+4suWujpgf6GBYs3jv7TyUivdd05JA==} engines: {node: '>=18'} cpu: [x64] os: [win32] + '@esbuild/win32-x64@0.27.7': + resolution: {integrity: sha512-56hiAJPhwQ1R4i+21FVF7V8kSD5zZTdHcVuRFMW0hn753vVfQN8xlx4uOPT4xoGH0Z/oVATuR82AiqSTDIpaHg==} + engines: {node: '>=18'} + cpu: [x64] + os: [win32] + '@eslint-community/eslint-utils@4.9.0': resolution: {integrity: sha512-ayVFHdtZ+hsq1t2Dy24wCmGXGe4q9Gu3smhLYALJrr473ZH27MsnSL+LKUlimp4BWJqMDMLmPpx/Q9R3OAlL4g==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -4727,6 +4886,9 @@ packages: resolution: {integrity: sha512-0qWUglt9JEqLFr3w1I1pbrChn1grhaiAR2ocX1PP/flRmxgtwTzPFFFnfIlD6aMOLQZgSuCRlidD70lvx8yhzg==} engines: {node: '>=14'} + any-promise@1.3.0: + resolution: {integrity: sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==} + anymatch@3.1.3: resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} engines: {node: '>= 8'} @@ -4964,6 +5126,12 @@ packages: resolution: {integrity: sha512-tjwM5exMg6BGRI+kNmTntNsvdZS1X8BFYS6tnJ2hdH0kVxM6/eVZ2xy+FqStSWvYmtfFMDLIxurorHwDKfDz5Q==} engines: {node: '>=18'} + bundle-require@5.1.0: + resolution: {integrity: sha512-3WrrOuZiyaaZPWiEt4G3+IffISVC9HYlWueJEBWED4ZH4aIAC2PnkdnuRrR94M+w6yGWn4AglWtJtBI8YqvgoA==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + peerDependencies: + esbuild: '>=0.18' + bytes@3.0.0: resolution: {integrity: sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw==} engines: {node: '>= 0.8'} @@ -5204,6 +5372,10 @@ packages: commander@2.20.3: resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==} + commander@4.1.1: + resolution: {integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==} + engines: {node: '>= 6'} + commander@5.1.0: resolution: {integrity: sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg==} engines: {node: '>= 6'} @@ -5241,6 +5413,9 @@ packages: concat-map@0.0.1: resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} + confbox@0.1.8: + resolution: {integrity: sha512-RMtmw0iFkeR4YV+fUOSucriAQNb9g8zFR52MWCtl+cCZOFRNL6zeB395vPzFhEjjn4fMxXudmELnl/KF/WrK6w==} + config-chain@1.1.13: resolution: {integrity: sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ==} @@ -6012,6 +6187,11 @@ packages: engines: {node: '>=18'} hasBin: true + esbuild@0.27.7: + resolution: {integrity: sha512-IxpibTjyVnmrIQo5aqNpCgoACA/dTKLTlhMHihVHhdkxKyPO1uBBthumT0rdHmcsk9uMonIWS0m4FljWzILh3w==} + engines: {node: '>=18'} + hasBin: true + escalade@3.2.0: resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==} engines: {node: '>=6'} @@ -6293,6 +6473,9 @@ packages: resolution: {integrity: sha512-MzwXju70AuyflbgeOhzvQWAvvQdo1XL0A9bVvlXsYcFEBM87WR4OakL4OfZq+QRmr+duJubio+UtNQCPsVESzQ==} engines: {node: '>= 10.13.0'} + fix-dts-default-cjs-exports@1.0.1: + resolution: {integrity: sha512-pVIECanWFC61Hzl2+oOCtoJ3F17kglZC/6N94eRWycFgBH35hHx0Li604ZIzhseh97mf2p0cv7vVrOZGoqhlEg==} + flat-cache@4.0.1: resolution: {integrity: sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==} engines: {node: '>=16'} @@ -6352,6 +6535,10 @@ packages: resolution: {integrity: sha512-Z4XaCL6dUDHfP/jT25jJKMmtxvuwbkrD1vNSMFlo9lNLY2c5FHYSQgHPRZUjAB26TpDEoW9HCOgplrdbaPV/ew==} engines: {node: '>=14.14'} + fs-extra@11.3.5: + resolution: {integrity: sha512-eKpRKAovdpZtR1WopLHxlBWvAgPny3c4gX1G5Jhwmmw4XJj0ifSD5qB5TOo8hmA0wlRKDAOAhEE1yVPgs6Fgcg==} + engines: {node: '>=14.14'} + fs-extra@7.0.1: resolution: {integrity: sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==} engines: {node: '>=6 <7 || >=8'} @@ -7031,6 +7218,10 @@ packages: joi@17.13.3: resolution: {integrity: sha512-otDA4ldcIx+ZXsKHWmp0YizCweVRZG96J10b0FevjfuncLO1oX59THoAmHkNubYJ+9gWsYsp5k8v4ib6oDv1fA==} + joycon@3.1.1: + resolution: {integrity: sha512-34wB/Y7MW7bzjKRjUKTa46I2Z7eV62Rkhva+KkopW7Qvv/OSWBqvkSY7vusOPrNuZcUG3tApvdVgNB8POj3SPw==} + engines: {node: '>=10'} + js-tokens@4.0.0: resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} @@ -7214,6 +7405,10 @@ packages: linkify-it@5.0.0: resolution: {integrity: sha512-5aHCbzQRADcdP+ATqnDuhhJ/MRIqDkZX5pyjFHRRysS8vZ5AbqGEoFIb6pYHPZ+L/OC2Lc+xT8uHVVR5CAK/wQ==} + load-tsconfig@0.2.5: + resolution: {integrity: sha512-IXO6OCs9yg8tMKzfPZ1YmheJbZCiEsnBdcB03l0OcfK9prKnJb96siuHCr5Fl37/yo9DnKU+TLpxzTUspw9shg==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + loader-runner@4.3.2: resolution: {integrity: sha512-DFEqQ3ihfS9blba08cLfYf1NRAIEm+dDjic073DRDc3/JspI/8wYmtDsHwd3+4hwvdxSK7PGaElfTmm0awWJ4w==} engines: {node: '>=6.11.5'} @@ -7677,6 +7872,9 @@ packages: resolution: {integrity: sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==} hasBin: true + mlly@1.8.2: + resolution: {integrity: sha512-d+ObxMQFmbt10sretNDytwt85VrbkhhUA/JBGm1MPaWJ65Cl4wOgLaB1NYvJSZ0Ef03MMEU/0xpPMXUIQ29UfA==} + mri@1.2.0: resolution: {integrity: sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==} engines: {node: '>=4'} @@ -7699,6 +7897,9 @@ packages: resolution: {integrity: sha512-ypMKuglUrZUD99Tk2bUQ+xNQj43lPEfAeX2o9cTteAmShXy2VHDJpuwu1o0xqoKCt9jLVAvwyFKdLTPXKAfJyA==} engines: {node: '>=10'} + mz@2.7.0: + resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==} + nanoid@3.3.11: resolution: {integrity: sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==} engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} @@ -8065,6 +8266,9 @@ packages: resolution: {integrity: sha512-Ie9z/WINcxxLp27BKOCHGde4ITq9UklYKDzVo1nhk5sqGEXU3FpkwP5GM2voTGJkGd9B3Otl+Q4uwSOeSUtOBA==} engines: {node: '>=14.16'} + pkg-types@1.3.1: + resolution: {integrity: sha512-/Jm5M4RvtBFVkKWRu2BLUTNP8/M2a+UwuAX+ae4770q1qVGtfjG+WTCupoZixokjmHiry8uI+dlY8KXYV5HVVQ==} + pkijs@3.4.0: resolution: {integrity: sha512-emEcLuomt2j03vxD54giVB4SxTjnsqkU692xZOZXHDVoYyypEm+b3jpiTcc+Cf+myooc+/Ly0z01jqeNHVgJGw==} engines: {node: '>=16.0.0'} @@ -8225,6 +8429,24 @@ packages: peerDependencies: postcss: ^8.4 + postcss-load-config@6.0.1: + resolution: {integrity: sha512-oPtTM4oerL+UXmx+93ytZVN82RrlY/wPUV8IeDxFrzIjXOLF1pN+EmKPLbubvKHT2HC20xXsCAH2Z+CKV6Oz/g==} + engines: {node: '>= 18'} + peerDependencies: + jiti: '>=1.21.0' + postcss: '>=8.0.9' + tsx: ^4.8.1 + yaml: ^2.4.2 + peerDependenciesMeta: + jiti: + optional: true + postcss: + optional: true + tsx: + optional: true + yaml: + optional: true + postcss-loader@7.3.4: resolution: {integrity: sha512-iW5WTTBSC5BfsBJ9daFMPVrLT36MrNiC6fqOZTTaHjBNX6Pfd5p+hSBqe/fEeNd7pc13QiAyGt7VdGMw4eRC4A==} engines: {node: '>= 14.15.0'} @@ -9258,6 +9480,11 @@ packages: stylis@4.4.0: resolution: {integrity: sha512-5Z9ZpRzfuH6l/UAvCPAPUo3665Nk2wLaZU3x+TLHKVzIz33+sbJqbtrYoC3KD4/uVOr2Zp+L0LySezP9OHV9yA==} + sucrase@3.35.1: + resolution: {integrity: sha512-DhuTmvZWux4H1UOnWMB3sk0sbaCVOoQZjv8u1rDoTV0HTdGem9hkAZtl4JZy8P2z4Bg0nT+YMeOFyVr4zcG5Tw==} + engines: {node: '>=16 || 14 >=14.17'} + hasBin: true + sumchecker@3.0.1: resolution: {integrity: sha512-MvjXzkz/BOfyVDkG0oFOtBxHX2u3gKbMHIF/dXblZsgD3BWOFLmHovIpZY7BykJdAjcqRCBi1WYBNdEC9yI7vg==} engines: {node: '>= 8.0'} @@ -9371,6 +9598,13 @@ packages: resolution: {integrity: sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==} engines: {node: '>=8'} + thenify-all@1.6.0: + resolution: {integrity: sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==} + engines: {node: '>=0.8'} + + thenify@3.3.1: + resolution: {integrity: sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==} + thingies@2.6.0: resolution: {integrity: sha512-rMHRjmlFLM1R96UYPvpmnc3LYtdFrT33JIB7L9hetGue1qAPfn1N2LJeEjxUSidu1Iku+haLZXDuEXUHNGO/lg==} engines: {node: '>=10.18'} @@ -9452,6 +9686,10 @@ packages: peerDependencies: tslib: '2' + tree-kill@1.2.2: + resolution: {integrity: sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==} + hasBin: true + trim-lines@3.0.1: resolution: {integrity: sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==} @@ -9477,6 +9715,9 @@ packages: resolution: {integrity: sha512-q5W7tVM71e2xjHZTlgfTDoPF/SmqKG5hddq9SzR49CH2hayqRKJtQ4mtRlSxKaJlR/+9rEM+mnBHf7I2/BQcpQ==} engines: {node: '>=6.10'} + ts-interface-checker@0.1.13: + resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==} + ts-node@10.9.2: resolution: {integrity: sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==} hasBin: true @@ -9497,6 +9738,25 @@ packages: tslib@2.8.1: resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==} + tsup@8.5.1: + resolution: {integrity: sha512-xtgkqwdhpKWr3tKPmCkvYmS9xnQK3m3XgxZHwSUjvfTjp7YfXe5tT3GgWi0F2N+ZSMsOeWeZFh7ZZFg5iPhing==} + engines: {node: '>=18'} + hasBin: true + peerDependencies: + '@microsoft/api-extractor': ^7.36.0 + '@swc/core': ^1 + postcss: ^8.4.12 + typescript: '>=4.5.0' + peerDependenciesMeta: + '@microsoft/api-extractor': + optional: true + '@swc/core': + optional: true + postcss: + optional: true + typescript: + optional: true + tsyringe@4.10.0: resolution: {integrity: sha512-axr3IdNuVIxnaK5XGEUFTu3YmAQ6lllgrvqfEoR16g/HGnYY/6We4oWENtAnzK6/LpJ2ur9PAb80RBt7/U4ugw==} engines: {node: '>= 6.0.0'} @@ -9567,6 +9827,9 @@ packages: uc.micro@2.1.0: resolution: {integrity: sha512-ARDJmphmdvUk6Glw7y9DQ2bFkKBHwQHLi2lsaH6PPmz/Ka9sFOBsBluozhDltWmnv9u/cF6Rt87znRTPV+yp/A==} + ufo@1.6.4: + resolution: {integrity: sha512-JFNbkD1Svwe0KvGi8GOeLcP4kAWQ609twvCdcHxq1oSL8svv39ZuSvajcD8B+5D0eL4+s1Is2D/O6KN3qcTeRA==} + uglify-js@3.19.3: resolution: {integrity: sha512-v3Xu+yuwBXisp6QYTcH4UbH+xYJXqnq2m/LtQVWKWzYc1iehYnLixoQDN9FH6/j9/oybfd6W9Ghwkl8+UMKTKQ==} engines: {node: '>=0.8.0'} @@ -12561,7 +12824,7 @@ snapshots: - '@algolia/client-search' - algoliasearch - '@docusaurus/babel@3.10.1(@swc/core@1.15.33)(clean-css@5.3.3)(cssnano@6.1.2(postcss@8.5.14))(html-minifier-terser@7.2.0)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)': + '@docusaurus/babel@3.10.1(@swc/core@1.15.33)(clean-css@5.3.3)(cssnano@6.1.2(postcss@8.5.14))(esbuild@0.27.7)(html-minifier-terser@7.2.0)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)': dependencies: '@babel/core': 7.29.0 '@babel/generator': 7.29.1 @@ -12573,7 +12836,7 @@ snapshots: '@babel/runtime': 7.27.0 '@babel/traverse': 7.29.0 '@docusaurus/logger': 3.10.1 - '@docusaurus/utils': 3.10.1(@swc/core@1.15.33)(clean-css@5.3.3)(cssnano@6.1.2(postcss@8.5.14))(html-minifier-terser@7.2.0)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@docusaurus/utils': 3.10.1(@swc/core@1.15.33)(clean-css@5.3.3)(cssnano@6.1.2(postcss@8.5.14))(esbuild@0.27.7)(html-minifier-terser@7.2.0)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) babel-plugin-dynamic-import-node: 2.3.3 fs-extra: 11.3.0 tslib: 2.8.1 @@ -12595,7 +12858,7 @@ snapshots: - uglify-js - webpack-cli - '@docusaurus/babel@3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)': + '@docusaurus/babel@3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)': dependencies: '@babel/core': 7.29.0 '@babel/generator': 7.29.1 @@ -12607,7 +12870,7 @@ snapshots: '@babel/runtime': 7.27.0 '@babel/traverse': 7.29.0 '@docusaurus/logger': 3.10.1 - '@docusaurus/utils': 3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@docusaurus/utils': 3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) babel-plugin-dynamic-import-node: 2.3.3 fs-extra: 11.3.0 tslib: 2.8.1 @@ -12629,34 +12892,34 @@ snapshots: - uglify-js - webpack-cli - '@docusaurus/bundler@3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(postcss@8.5.14))(@rspack/core@1.7.11)(@swc/core@1.15.33)(lightningcss@1.32.0)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3)': + '@docusaurus/bundler@3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(esbuild@0.27.7)(postcss@8.5.14))(@rspack/core@1.7.11)(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3)': dependencies: '@babel/core': 7.29.0 - '@docusaurus/babel': 3.10.1(@swc/core@1.15.33)(clean-css@5.3.3)(cssnano@6.1.2(postcss@8.5.14))(html-minifier-terser@7.2.0)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@docusaurus/babel': 3.10.1(@swc/core@1.15.33)(clean-css@5.3.3)(cssnano@6.1.2(postcss@8.5.14))(esbuild@0.27.7)(html-minifier-terser@7.2.0)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) '@docusaurus/cssnano-preset': 3.10.1 '@docusaurus/logger': 3.10.1 - '@docusaurus/types': 3.10.1(@swc/core@1.15.33)(clean-css@5.3.3)(cssnano@6.1.2(postcss@8.5.14))(html-minifier-terser@7.2.0)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) - '@docusaurus/utils': 3.10.1(@swc/core@1.15.33)(clean-css@5.3.3)(cssnano@6.1.2(postcss@8.5.14))(html-minifier-terser@7.2.0)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) - babel-loader: 9.2.1(@babel/core@7.29.0)(webpack@5.106.2(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)) + '@docusaurus/types': 3.10.1(@swc/core@1.15.33)(clean-css@5.3.3)(cssnano@6.1.2(postcss@8.5.14))(esbuild@0.27.7)(html-minifier-terser@7.2.0)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@docusaurus/utils': 3.10.1(@swc/core@1.15.33)(clean-css@5.3.3)(cssnano@6.1.2(postcss@8.5.14))(esbuild@0.27.7)(html-minifier-terser@7.2.0)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + babel-loader: 9.2.1(@babel/core@7.29.0)(webpack@5.106.2(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)) clean-css: 5.3.3 - copy-webpack-plugin: 11.0.0(webpack@5.106.2(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)) - css-loader: 6.11.0(@rspack/core@1.7.11)(webpack@5.106.2(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)) - css-minimizer-webpack-plugin: 5.0.1(clean-css@5.3.3)(lightningcss@1.32.0)(webpack@5.106.2(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)) + copy-webpack-plugin: 11.0.0(webpack@5.106.2(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)) + css-loader: 6.11.0(@rspack/core@1.7.11)(webpack@5.106.2(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)) + css-minimizer-webpack-plugin: 5.0.1(clean-css@5.3.3)(esbuild@0.27.7)(lightningcss@1.32.0)(webpack@5.106.2(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)) cssnano: 6.1.2(postcss@8.5.14) - file-loader: 6.2.0(webpack@5.106.2(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)) + file-loader: 6.2.0(webpack@5.106.2(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)) html-minifier-terser: 7.2.0 - mini-css-extract-plugin: 2.10.2(webpack@5.106.2(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)) - null-loader: 4.0.1(webpack@5.106.2(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)) + mini-css-extract-plugin: 2.10.2(webpack@5.106.2(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)) + null-loader: 4.0.1(webpack@5.106.2(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)) postcss: 8.5.14 - postcss-loader: 7.3.4(postcss@8.5.14)(typescript@5.6.3)(webpack@5.106.2(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)) + postcss-loader: 7.3.4(postcss@8.5.14)(typescript@5.6.3)(webpack@5.106.2(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)) postcss-preset-env: 10.6.1(postcss@8.5.14) - terser-webpack-plugin: 5.6.0(@swc/core@1.15.33)(clean-css@5.3.3)(cssnano@6.1.2(postcss@8.5.14))(html-minifier-terser@7.2.0)(lightningcss@1.32.0)(postcss@8.5.14)(webpack@5.106.2(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)) + terser-webpack-plugin: 5.6.0(@swc/core@1.15.33)(clean-css@5.3.3)(cssnano@6.1.2(postcss@8.5.14))(esbuild@0.27.7)(html-minifier-terser@7.2.0)(lightningcss@1.32.0)(postcss@8.5.14)(webpack@5.106.2(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)) tslib: 2.8.1 - url-loader: 4.1.1(file-loader@6.2.0(webpack@5.106.2(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)))(webpack@5.106.2(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)) - webpack: 5.106.2(@swc/core@1.15.33)(clean-css@5.3.3)(cssnano@6.1.2(postcss@8.5.14))(html-minifier-terser@7.2.0)(lightningcss@1.32.0)(postcss@8.5.14) - webpackbar: 7.0.0(@rspack/core@1.7.11)(webpack@5.106.2(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)) + url-loader: 4.1.1(file-loader@6.2.0(webpack@5.106.2(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)))(webpack@5.106.2(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)) + webpack: 5.106.2(@swc/core@1.15.33)(clean-css@5.3.3)(cssnano@6.1.2(postcss@8.5.14))(esbuild@0.27.7)(html-minifier-terser@7.2.0)(lightningcss@1.32.0)(postcss@8.5.14) + webpackbar: 7.0.0(@rspack/core@1.7.11)(webpack@5.106.2(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)) optionalDependencies: - '@docusaurus/faster': 3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(postcss@8.5.14) + '@docusaurus/faster': 3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(esbuild@0.27.7)(postcss@8.5.14) transitivePeerDependencies: - '@minify-html/node' - '@parcel/css' @@ -12674,15 +12937,15 @@ snapshots: - uglify-js - webpack-cli - '@docusaurus/core@3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3)': + '@docusaurus/core@3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(esbuild@0.27.7)(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3)': dependencies: - '@docusaurus/babel': 3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) - '@docusaurus/bundler': 3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(postcss@8.5.14))(@rspack/core@1.7.11)(@swc/core@1.15.33)(lightningcss@1.32.0)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3) + '@docusaurus/babel': 3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@docusaurus/bundler': 3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(esbuild@0.27.7)(postcss@8.5.14))(@rspack/core@1.7.11)(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3) '@docusaurus/logger': 3.10.1 - '@docusaurus/mdx-loader': 3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) - '@docusaurus/utils': 3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) - '@docusaurus/utils-common': 3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) - '@docusaurus/utils-validation': 3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@docusaurus/mdx-loader': 3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@docusaurus/utils': 3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@docusaurus/utils-common': 3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@docusaurus/utils-validation': 3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) '@mdx-js/react': 3.1.1(@types/react@19.2.14)(react@19.2.6) boxen: 6.2.1 chalk: 4.1.2 @@ -12698,7 +12961,7 @@ snapshots: execa: 5.1.1 fs-extra: 11.3.0 html-tags: 3.3.1 - html-webpack-plugin: 5.6.7(@rspack/core@1.7.11)(webpack@5.106.2(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)) + html-webpack-plugin: 5.6.7(@rspack/core@1.7.11)(webpack@5.106.2(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)) leven: 3.1.0 lodash: 4.17.21 open: 8.4.2 @@ -12708,7 +12971,7 @@ snapshots: react-dom: 19.2.6(react@19.2.6) react-helmet-async: '@slorber/react-helmet-async@1.3.0(react-dom@19.2.6(react@19.2.6))(react@19.2.6)' react-loadable: '@docusaurus/react-loadable@6.0.0(react@19.2.6)' - react-loadable-ssr-addon-v5-slorber: 1.0.3(@docusaurus/react-loadable@6.0.0(react@19.2.6))(webpack@5.106.2(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)) + react-loadable-ssr-addon-v5-slorber: 1.0.3(@docusaurus/react-loadable@6.0.0(react@19.2.6))(webpack@5.106.2(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)) react-router: 5.3.4(react@19.2.6) react-router-config: 5.1.1(react-router@5.3.4(react@19.2.6))(react@19.2.6) react-router-dom: 5.3.4(react@19.2.6) @@ -12717,12 +12980,12 @@ snapshots: tinypool: 1.1.1 tslib: 2.8.1 update-notifier: 6.0.2 - webpack: 5.106.2(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14) + webpack: 5.106.2(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14) webpack-bundle-analyzer: 4.10.2 - webpack-dev-server: 5.2.3(tslib@2.8.1)(webpack@5.106.2(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)) + webpack-dev-server: 5.2.3(tslib@2.8.1)(webpack@5.106.2(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)) webpack-merge: 6.0.1 optionalDependencies: - '@docusaurus/faster': 3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(postcss@8.5.14) + '@docusaurus/faster': 3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(esbuild@0.27.7)(postcss@8.5.14) transitivePeerDependencies: - '@minify-html/node' - '@parcel/css' @@ -12752,18 +13015,18 @@ snapshots: postcss-sort-media-queries: 5.2.0(postcss@8.5.14) tslib: 2.8.1 - '@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(postcss@8.5.14)': + '@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(esbuild@0.27.7)(postcss@8.5.14)': dependencies: - '@docusaurus/types': 3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@docusaurus/types': 3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) '@rspack/core': 1.7.11 '@swc/core': 1.15.33 '@swc/html': 1.15.33 browserslist: 4.28.2 lightningcss: 1.32.0 semver: 7.7.3 - swc-loader: 0.2.7(@swc/core@1.15.33)(webpack@5.106.2(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)) + swc-loader: 0.2.7(@swc/core@1.15.33)(webpack@5.106.2(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)) tslib: 2.8.1 - webpack: 5.106.2(@swc/core@1.15.33)(@swc/html@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14) + webpack: 5.106.2(@swc/core@1.15.33)(@swc/html@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14) transitivePeerDependencies: - '@minify-html/node' - '@swc/css' @@ -12782,16 +13045,16 @@ snapshots: chalk: 4.1.2 tslib: 2.8.1 - '@docusaurus/mdx-loader@3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)': + '@docusaurus/mdx-loader@3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)': dependencies: '@docusaurus/logger': 3.10.1 - '@docusaurus/utils': 3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) - '@docusaurus/utils-validation': 3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@docusaurus/utils': 3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@docusaurus/utils-validation': 3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) '@mdx-js/mdx': 3.1.1 '@slorber/remark-comment': 1.0.0 escape-html: 1.0.3 estree-util-value-to-estree: 3.5.0 - file-loader: 6.2.0(webpack@5.106.2(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)) + file-loader: 6.2.0(webpack@5.106.2(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)) fs-extra: 11.3.0 image-size: 2.0.2 mdast-util-mdx: 3.0.0 @@ -12807,9 +13070,9 @@ snapshots: tslib: 2.8.1 unified: 11.0.5 unist-util-visit: 5.0.0 - url-loader: 4.1.1(file-loader@6.2.0(webpack@5.106.2(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)))(webpack@5.106.2(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)) + url-loader: 4.1.1(file-loader@6.2.0(webpack@5.106.2(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)))(webpack@5.106.2(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)) vfile: 6.0.3 - webpack: 5.106.2(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14) + webpack: 5.106.2(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14) transitivePeerDependencies: - '@minify-html/node' - '@swc/core' @@ -12826,9 +13089,9 @@ snapshots: - uglify-js - webpack-cli - '@docusaurus/module-type-aliases@3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)': + '@docusaurus/module-type-aliases@3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)': dependencies: - '@docusaurus/types': 3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@docusaurus/types': 3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) '@types/history': 4.7.11 '@types/react': 19.2.14 '@types/react-router-config': 5.0.11 @@ -12853,13 +13116,13 @@ snapshots: - uglify-js - webpack-cli - '@docusaurus/plugin-client-redirects@3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3)': + '@docusaurus/plugin-client-redirects@3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(esbuild@0.27.7)(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3)': dependencies: - '@docusaurus/core': 3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3) + '@docusaurus/core': 3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(esbuild@0.27.7)(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3) '@docusaurus/logger': 3.10.1 - '@docusaurus/utils': 3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) - '@docusaurus/utils-common': 3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) - '@docusaurus/utils-validation': 3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@docusaurus/utils': 3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@docusaurus/utils-common': 3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@docusaurus/utils-validation': 3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) eta: 2.2.0 fs-extra: 11.3.0 lodash: 4.17.21 @@ -12890,17 +13153,17 @@ snapshots: - utf-8-validate - webpack-cli - '@docusaurus/plugin-content-blog@3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(postcss@8.5.14))(@docusaurus/plugin-content-docs@3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3)': + '@docusaurus/plugin-content-blog@3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(esbuild@0.27.7)(postcss@8.5.14))(@docusaurus/plugin-content-docs@3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(esbuild@0.27.7)(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3)': dependencies: - '@docusaurus/core': 3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3) + '@docusaurus/core': 3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(esbuild@0.27.7)(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3) '@docusaurus/logger': 3.10.1 - '@docusaurus/mdx-loader': 3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) - '@docusaurus/plugin-content-docs': 3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3) - '@docusaurus/theme-common': 3.10.1(@docusaurus/plugin-content-docs@3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3))(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) - '@docusaurus/types': 3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) - '@docusaurus/utils': 3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) - '@docusaurus/utils-common': 3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) - '@docusaurus/utils-validation': 3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@docusaurus/mdx-loader': 3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@docusaurus/plugin-content-docs': 3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(esbuild@0.27.7)(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3) + '@docusaurus/theme-common': 3.10.1(@docusaurus/plugin-content-docs@3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(esbuild@0.27.7)(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3))(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@docusaurus/types': 3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@docusaurus/utils': 3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@docusaurus/utils-common': 3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@docusaurus/utils-validation': 3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) cheerio: 1.0.0-rc.12 combine-promises: 1.2.0 feed: 4.2.2 @@ -12913,7 +13176,7 @@ snapshots: tslib: 2.8.1 unist-util-visit: 5.0.0 utility-types: 3.11.0 - webpack: 5.106.2(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14) + webpack: 5.106.2(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14) transitivePeerDependencies: - '@docusaurus/faster' - '@mdx-js/react' @@ -12938,17 +13201,17 @@ snapshots: - utf-8-validate - webpack-cli - '@docusaurus/plugin-content-docs@3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3)': + '@docusaurus/plugin-content-docs@3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(esbuild@0.27.7)(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3)': dependencies: - '@docusaurus/core': 3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3) + '@docusaurus/core': 3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(esbuild@0.27.7)(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3) '@docusaurus/logger': 3.10.1 - '@docusaurus/mdx-loader': 3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) - '@docusaurus/module-type-aliases': 3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) - '@docusaurus/theme-common': 3.10.1(@docusaurus/plugin-content-docs@3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3))(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) - '@docusaurus/types': 3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) - '@docusaurus/utils': 3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) - '@docusaurus/utils-common': 3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) - '@docusaurus/utils-validation': 3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@docusaurus/mdx-loader': 3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@docusaurus/module-type-aliases': 3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@docusaurus/theme-common': 3.10.1(@docusaurus/plugin-content-docs@3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(esbuild@0.27.7)(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3))(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@docusaurus/types': 3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@docusaurus/utils': 3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@docusaurus/utils-common': 3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@docusaurus/utils-validation': 3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) '@types/react-router-config': 5.0.11 combine-promises: 1.2.0 fs-extra: 11.3.0 @@ -12959,7 +13222,7 @@ snapshots: schema-dts: 1.1.5 tslib: 2.8.1 utility-types: 3.11.0 - webpack: 5.106.2(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14) + webpack: 5.106.2(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14) transitivePeerDependencies: - '@docusaurus/faster' - '@mdx-js/react' @@ -12984,18 +13247,18 @@ snapshots: - utf-8-validate - webpack-cli - '@docusaurus/plugin-content-pages@3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3)': + '@docusaurus/plugin-content-pages@3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(esbuild@0.27.7)(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3)': dependencies: - '@docusaurus/core': 3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3) - '@docusaurus/mdx-loader': 3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) - '@docusaurus/types': 3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) - '@docusaurus/utils': 3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) - '@docusaurus/utils-validation': 3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@docusaurus/core': 3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(esbuild@0.27.7)(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3) + '@docusaurus/mdx-loader': 3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@docusaurus/types': 3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@docusaurus/utils': 3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@docusaurus/utils-validation': 3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) fs-extra: 11.3.0 react: 19.2.6 react-dom: 19.2.6(react@19.2.6) tslib: 2.8.1 - webpack: 5.106.2(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14) + webpack: 5.106.2(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14) transitivePeerDependencies: - '@docusaurus/faster' - '@mdx-js/react' @@ -13020,12 +13283,12 @@ snapshots: - utf-8-validate - webpack-cli - '@docusaurus/plugin-css-cascade-layers@3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3)': + '@docusaurus/plugin-css-cascade-layers@3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(esbuild@0.27.7)(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3)': dependencies: - '@docusaurus/core': 3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3) - '@docusaurus/types': 3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) - '@docusaurus/utils': 3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) - '@docusaurus/utils-validation': 3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@docusaurus/core': 3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(esbuild@0.27.7)(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3) + '@docusaurus/types': 3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@docusaurus/utils': 3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@docusaurus/utils-validation': 3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) tslib: 2.8.1 transitivePeerDependencies: - '@docusaurus/faster' @@ -13053,11 +13316,11 @@ snapshots: - utf-8-validate - webpack-cli - '@docusaurus/plugin-debug@3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3)': + '@docusaurus/plugin-debug@3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(esbuild@0.27.7)(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3)': dependencies: - '@docusaurus/core': 3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3) - '@docusaurus/types': 3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) - '@docusaurus/utils': 3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@docusaurus/core': 3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(esbuild@0.27.7)(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3) + '@docusaurus/types': 3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@docusaurus/utils': 3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) fs-extra: 11.3.0 react: 19.2.6 react-dom: 19.2.6(react@19.2.6) @@ -13087,11 +13350,11 @@ snapshots: - utf-8-validate - webpack-cli - '@docusaurus/plugin-google-analytics@3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3)': + '@docusaurus/plugin-google-analytics@3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(esbuild@0.27.7)(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3)': dependencies: - '@docusaurus/core': 3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3) - '@docusaurus/types': 3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) - '@docusaurus/utils-validation': 3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@docusaurus/core': 3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(esbuild@0.27.7)(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3) + '@docusaurus/types': 3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@docusaurus/utils-validation': 3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) react: 19.2.6 react-dom: 19.2.6(react@19.2.6) tslib: 2.8.1 @@ -13119,11 +13382,11 @@ snapshots: - utf-8-validate - webpack-cli - '@docusaurus/plugin-google-gtag@3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3)': + '@docusaurus/plugin-google-gtag@3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(esbuild@0.27.7)(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3)': dependencies: - '@docusaurus/core': 3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3) - '@docusaurus/types': 3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) - '@docusaurus/utils-validation': 3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@docusaurus/core': 3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(esbuild@0.27.7)(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3) + '@docusaurus/types': 3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@docusaurus/utils-validation': 3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) '@types/gtag.js': 0.0.20 react: 19.2.6 react-dom: 19.2.6(react@19.2.6) @@ -13152,11 +13415,11 @@ snapshots: - utf-8-validate - webpack-cli - '@docusaurus/plugin-google-tag-manager@3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3)': + '@docusaurus/plugin-google-tag-manager@3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(esbuild@0.27.7)(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3)': dependencies: - '@docusaurus/core': 3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3) - '@docusaurus/types': 3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) - '@docusaurus/utils-validation': 3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@docusaurus/core': 3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(esbuild@0.27.7)(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3) + '@docusaurus/types': 3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@docusaurus/utils-validation': 3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) react: 19.2.6 react-dom: 19.2.6(react@19.2.6) tslib: 2.8.1 @@ -13184,14 +13447,14 @@ snapshots: - utf-8-validate - webpack-cli - '@docusaurus/plugin-sitemap@3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3)': + '@docusaurus/plugin-sitemap@3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(esbuild@0.27.7)(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3)': dependencies: - '@docusaurus/core': 3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3) + '@docusaurus/core': 3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(esbuild@0.27.7)(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3) '@docusaurus/logger': 3.10.1 - '@docusaurus/types': 3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) - '@docusaurus/utils': 3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) - '@docusaurus/utils-common': 3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) - '@docusaurus/utils-validation': 3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@docusaurus/types': 3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@docusaurus/utils': 3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@docusaurus/utils-common': 3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@docusaurus/utils-validation': 3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) fs-extra: 11.3.0 react: 19.2.6 react-dom: 19.2.6(react@19.2.6) @@ -13221,18 +13484,18 @@ snapshots: - utf-8-validate - webpack-cli - '@docusaurus/plugin-svgr@3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3)': + '@docusaurus/plugin-svgr@3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(esbuild@0.27.7)(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3)': dependencies: - '@docusaurus/core': 3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3) - '@docusaurus/types': 3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) - '@docusaurus/utils': 3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) - '@docusaurus/utils-validation': 3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@docusaurus/core': 3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(esbuild@0.27.7)(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3) + '@docusaurus/types': 3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@docusaurus/utils': 3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@docusaurus/utils-validation': 3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) '@svgr/core': 8.1.0(typescript@5.6.3) '@svgr/webpack': 8.1.0(typescript@5.6.3) react: 19.2.6 react-dom: 19.2.6(react@19.2.6) tslib: 2.8.1 - webpack: 5.106.2(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14) + webpack: 5.106.2(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14) transitivePeerDependencies: - '@docusaurus/faster' - '@mdx-js/react' @@ -13257,23 +13520,23 @@ snapshots: - utf-8-validate - webpack-cli - '@docusaurus/preset-classic@3.10.1(@algolia/client-search@5.52.1)(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(@types/react@19.2.14)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(search-insights@2.17.3)(typescript@5.6.3)': - dependencies: - '@docusaurus/core': 3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3) - '@docusaurus/plugin-content-blog': 3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(postcss@8.5.14))(@docusaurus/plugin-content-docs@3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3) - '@docusaurus/plugin-content-docs': 3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3) - '@docusaurus/plugin-content-pages': 3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3) - '@docusaurus/plugin-css-cascade-layers': 3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3) - '@docusaurus/plugin-debug': 3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3) - '@docusaurus/plugin-google-analytics': 3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3) - '@docusaurus/plugin-google-gtag': 3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3) - '@docusaurus/plugin-google-tag-manager': 3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3) - '@docusaurus/plugin-sitemap': 3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3) - '@docusaurus/plugin-svgr': 3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3) - '@docusaurus/theme-classic': 3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(postcss@8.5.14))(@rspack/core@1.7.11)(@swc/core@1.15.33)(@types/react@19.2.14)(lightningcss@1.32.0)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3) - '@docusaurus/theme-common': 3.10.1(@docusaurus/plugin-content-docs@3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3))(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) - '@docusaurus/theme-search-algolia': 3.10.1(@algolia/client-search@5.52.1)(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(@types/react@19.2.14)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(search-insights@2.17.3)(typescript@5.6.3) - '@docusaurus/types': 3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@docusaurus/preset-classic@3.10.1(@algolia/client-search@5.52.1)(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(esbuild@0.27.7)(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(@types/react@19.2.14)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(search-insights@2.17.3)(typescript@5.6.3)': + dependencies: + '@docusaurus/core': 3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(esbuild@0.27.7)(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3) + '@docusaurus/plugin-content-blog': 3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(esbuild@0.27.7)(postcss@8.5.14))(@docusaurus/plugin-content-docs@3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(esbuild@0.27.7)(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3) + '@docusaurus/plugin-content-docs': 3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(esbuild@0.27.7)(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3) + '@docusaurus/plugin-content-pages': 3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(esbuild@0.27.7)(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3) + '@docusaurus/plugin-css-cascade-layers': 3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(esbuild@0.27.7)(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3) + '@docusaurus/plugin-debug': 3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(esbuild@0.27.7)(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3) + '@docusaurus/plugin-google-analytics': 3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(esbuild@0.27.7)(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3) + '@docusaurus/plugin-google-gtag': 3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(esbuild@0.27.7)(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3) + '@docusaurus/plugin-google-tag-manager': 3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(esbuild@0.27.7)(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3) + '@docusaurus/plugin-sitemap': 3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(esbuild@0.27.7)(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3) + '@docusaurus/plugin-svgr': 3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(esbuild@0.27.7)(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3) + '@docusaurus/theme-classic': 3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(esbuild@0.27.7)(postcss@8.5.14))(@rspack/core@1.7.11)(@swc/core@1.15.33)(@types/react@19.2.14)(esbuild@0.27.7)(lightningcss@1.32.0)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3) + '@docusaurus/theme-common': 3.10.1(@docusaurus/plugin-content-docs@3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(esbuild@0.27.7)(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3))(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@docusaurus/theme-search-algolia': 3.10.1(@algolia/client-search@5.52.1)(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(esbuild@0.27.7)(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(@types/react@19.2.14)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(search-insights@2.17.3)(typescript@5.6.3) + '@docusaurus/types': 3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) react: 19.2.6 react-dom: 19.2.6(react@19.2.6) transitivePeerDependencies: @@ -13308,21 +13571,21 @@ snapshots: '@types/react': 19.2.14 react: 19.2.6 - '@docusaurus/theme-classic@3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(postcss@8.5.14))(@rspack/core@1.7.11)(@swc/core@1.15.33)(@types/react@19.2.14)(lightningcss@1.32.0)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3)': + '@docusaurus/theme-classic@3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(esbuild@0.27.7)(postcss@8.5.14))(@rspack/core@1.7.11)(@swc/core@1.15.33)(@types/react@19.2.14)(esbuild@0.27.7)(lightningcss@1.32.0)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3)': dependencies: - '@docusaurus/core': 3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3) + '@docusaurus/core': 3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(esbuild@0.27.7)(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3) '@docusaurus/logger': 3.10.1 - '@docusaurus/mdx-loader': 3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) - '@docusaurus/module-type-aliases': 3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) - '@docusaurus/plugin-content-blog': 3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(postcss@8.5.14))(@docusaurus/plugin-content-docs@3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3) - '@docusaurus/plugin-content-docs': 3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3) - '@docusaurus/plugin-content-pages': 3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3) - '@docusaurus/theme-common': 3.10.1(@docusaurus/plugin-content-docs@3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3))(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@docusaurus/mdx-loader': 3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@docusaurus/module-type-aliases': 3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@docusaurus/plugin-content-blog': 3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(esbuild@0.27.7)(postcss@8.5.14))(@docusaurus/plugin-content-docs@3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(esbuild@0.27.7)(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3) + '@docusaurus/plugin-content-docs': 3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(esbuild@0.27.7)(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3) + '@docusaurus/plugin-content-pages': 3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(esbuild@0.27.7)(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3) + '@docusaurus/theme-common': 3.10.1(@docusaurus/plugin-content-docs@3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(esbuild@0.27.7)(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3))(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) '@docusaurus/theme-translations': 3.10.1 - '@docusaurus/types': 3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) - '@docusaurus/utils': 3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) - '@docusaurus/utils-common': 3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) - '@docusaurus/utils-validation': 3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@docusaurus/types': 3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@docusaurus/utils': 3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@docusaurus/utils-common': 3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@docusaurus/utils-validation': 3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) '@mdx-js/react': 3.1.1(@types/react@19.2.14)(react@19.2.6) clsx: 2.1.1 copy-text-to-clipboard: 3.2.2 @@ -13361,13 +13624,13 @@ snapshots: - utf-8-validate - webpack-cli - '@docusaurus/theme-common@3.10.1(@docusaurus/plugin-content-docs@3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3))(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)': + '@docusaurus/theme-common@3.10.1(@docusaurus/plugin-content-docs@3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(esbuild@0.27.7)(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3))(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)': dependencies: - '@docusaurus/mdx-loader': 3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) - '@docusaurus/module-type-aliases': 3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) - '@docusaurus/plugin-content-docs': 3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3) - '@docusaurus/utils': 3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) - '@docusaurus/utils-common': 3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@docusaurus/mdx-loader': 3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@docusaurus/module-type-aliases': 3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@docusaurus/plugin-content-docs': 3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(esbuild@0.27.7)(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3) + '@docusaurus/utils': 3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@docusaurus/utils-common': 3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) '@types/history': 4.7.11 '@types/react': 19.2.14 '@types/react-router-config': 5.0.11 @@ -13394,13 +13657,13 @@ snapshots: - uglify-js - webpack-cli - '@docusaurus/theme-mermaid@3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(postcss@8.5.14))(@docusaurus/plugin-content-docs@3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3)': + '@docusaurus/theme-mermaid@3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(esbuild@0.27.7)(postcss@8.5.14))(@docusaurus/plugin-content-docs@3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(esbuild@0.27.7)(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3)': dependencies: - '@docusaurus/core': 3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3) - '@docusaurus/module-type-aliases': 3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) - '@docusaurus/theme-common': 3.10.1(@docusaurus/plugin-content-docs@3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3))(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) - '@docusaurus/types': 3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) - '@docusaurus/utils-validation': 3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@docusaurus/core': 3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(esbuild@0.27.7)(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3) + '@docusaurus/module-type-aliases': 3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@docusaurus/theme-common': 3.10.1(@docusaurus/plugin-content-docs@3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(esbuild@0.27.7)(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3))(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@docusaurus/types': 3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@docusaurus/utils-validation': 3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) mermaid: 11.14.0 react: 19.2.6 react-dom: 19.2.6(react@19.2.6) @@ -13430,17 +13693,17 @@ snapshots: - utf-8-validate - webpack-cli - '@docusaurus/theme-search-algolia@3.10.1(@algolia/client-search@5.52.1)(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(@types/react@19.2.14)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(search-insights@2.17.3)(typescript@5.6.3)': + '@docusaurus/theme-search-algolia@3.10.1(@algolia/client-search@5.52.1)(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(esbuild@0.27.7)(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(@types/react@19.2.14)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(search-insights@2.17.3)(typescript@5.6.3)': dependencies: '@algolia/autocomplete-core': 1.19.8(@algolia/client-search@5.52.1)(algoliasearch@5.52.1)(search-insights@2.17.3) '@docsearch/react': 4.6.3(@algolia/client-search@5.52.1)(@types/react@19.2.14)(algoliasearch@5.52.1)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(search-insights@2.17.3) - '@docusaurus/core': 3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3) + '@docusaurus/core': 3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(esbuild@0.27.7)(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3) '@docusaurus/logger': 3.10.1 - '@docusaurus/plugin-content-docs': 3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3) - '@docusaurus/theme-common': 3.10.1(@docusaurus/plugin-content-docs@3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3))(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@docusaurus/plugin-content-docs': 3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(esbuild@0.27.7)(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3) + '@docusaurus/theme-common': 3.10.1(@docusaurus/plugin-content-docs@3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(esbuild@0.27.7)(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3))(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) '@docusaurus/theme-translations': 3.10.1 - '@docusaurus/utils': 3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) - '@docusaurus/utils-validation': 3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@docusaurus/utils': 3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@docusaurus/utils-validation': 3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) algoliasearch: 5.52.1 algoliasearch-helper: 3.29.1(algoliasearch@5.52.1) clsx: 2.1.1 @@ -13485,7 +13748,7 @@ snapshots: '@docusaurus/tsconfig@3.10.1': {} - '@docusaurus/types@3.10.1(@swc/core@1.15.33)(clean-css@5.3.3)(cssnano@6.1.2(postcss@8.5.14))(html-minifier-terser@7.2.0)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)': + '@docusaurus/types@3.10.1(@swc/core@1.15.33)(clean-css@5.3.3)(cssnano@6.1.2(postcss@8.5.14))(esbuild@0.27.7)(html-minifier-terser@7.2.0)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)': dependencies: '@mdx-js/mdx': 3.1.1 '@types/history': 4.7.11 @@ -13497,7 +13760,7 @@ snapshots: react-dom: 19.2.6(react@19.2.6) react-helmet-async: '@slorber/react-helmet-async@1.3.0(react-dom@19.2.6(react@19.2.6))(react@19.2.6)' utility-types: 3.11.0 - webpack: 5.106.2(@swc/core@1.15.33)(clean-css@5.3.3)(cssnano@6.1.2(postcss@8.5.14))(html-minifier-terser@7.2.0)(lightningcss@1.32.0)(postcss@8.5.14) + webpack: 5.106.2(@swc/core@1.15.33)(clean-css@5.3.3)(cssnano@6.1.2(postcss@8.5.14))(esbuild@0.27.7)(html-minifier-terser@7.2.0)(lightningcss@1.32.0)(postcss@8.5.14) webpack-merge: 5.10.0 transitivePeerDependencies: - '@minify-html/node' @@ -13515,7 +13778,7 @@ snapshots: - uglify-js - webpack-cli - '@docusaurus/types@3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)': + '@docusaurus/types@3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)': dependencies: '@mdx-js/mdx': 3.1.1 '@types/history': 4.7.11 @@ -13527,7 +13790,7 @@ snapshots: react-dom: 19.2.6(react@19.2.6) react-helmet-async: '@slorber/react-helmet-async@1.3.0(react-dom@19.2.6(react@19.2.6))(react@19.2.6)' utility-types: 3.11.0 - webpack: 5.106.2(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14) + webpack: 5.106.2(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14) webpack-merge: 5.10.0 transitivePeerDependencies: - '@minify-html/node' @@ -13545,9 +13808,9 @@ snapshots: - uglify-js - webpack-cli - '@docusaurus/utils-common@3.10.1(@swc/core@1.15.33)(clean-css@5.3.3)(cssnano@6.1.2(postcss@8.5.14))(html-minifier-terser@7.2.0)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)': + '@docusaurus/utils-common@3.10.1(@swc/core@1.15.33)(clean-css@5.3.3)(cssnano@6.1.2(postcss@8.5.14))(esbuild@0.27.7)(html-minifier-terser@7.2.0)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)': dependencies: - '@docusaurus/types': 3.10.1(@swc/core@1.15.33)(clean-css@5.3.3)(cssnano@6.1.2(postcss@8.5.14))(html-minifier-terser@7.2.0)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@docusaurus/types': 3.10.1(@swc/core@1.15.33)(clean-css@5.3.3)(cssnano@6.1.2(postcss@8.5.14))(esbuild@0.27.7)(html-minifier-terser@7.2.0)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) tslib: 2.8.1 transitivePeerDependencies: - '@minify-html/node' @@ -13567,9 +13830,9 @@ snapshots: - uglify-js - webpack-cli - '@docusaurus/utils-common@3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)': + '@docusaurus/utils-common@3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)': dependencies: - '@docusaurus/types': 3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@docusaurus/types': 3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) tslib: 2.8.1 transitivePeerDependencies: - '@minify-html/node' @@ -13589,11 +13852,11 @@ snapshots: - uglify-js - webpack-cli - '@docusaurus/utils-validation@3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)': + '@docusaurus/utils-validation@3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)': dependencies: '@docusaurus/logger': 3.10.1 - '@docusaurus/utils': 3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) - '@docusaurus/utils-common': 3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@docusaurus/utils': 3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@docusaurus/utils-common': 3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) fs-extra: 11.3.0 joi: 17.13.3 js-yaml: 4.1.1 @@ -13617,14 +13880,14 @@ snapshots: - uglify-js - webpack-cli - '@docusaurus/utils@3.10.1(@swc/core@1.15.33)(clean-css@5.3.3)(cssnano@6.1.2(postcss@8.5.14))(html-minifier-terser@7.2.0)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)': + '@docusaurus/utils@3.10.1(@swc/core@1.15.33)(clean-css@5.3.3)(cssnano@6.1.2(postcss@8.5.14))(esbuild@0.27.7)(html-minifier-terser@7.2.0)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)': dependencies: '@docusaurus/logger': 3.10.1 - '@docusaurus/types': 3.10.1(@swc/core@1.15.33)(clean-css@5.3.3)(cssnano@6.1.2(postcss@8.5.14))(html-minifier-terser@7.2.0)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) - '@docusaurus/utils-common': 3.10.1(@swc/core@1.15.33)(clean-css@5.3.3)(cssnano@6.1.2(postcss@8.5.14))(html-minifier-terser@7.2.0)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@docusaurus/types': 3.10.1(@swc/core@1.15.33)(clean-css@5.3.3)(cssnano@6.1.2(postcss@8.5.14))(esbuild@0.27.7)(html-minifier-terser@7.2.0)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@docusaurus/utils-common': 3.10.1(@swc/core@1.15.33)(clean-css@5.3.3)(cssnano@6.1.2(postcss@8.5.14))(esbuild@0.27.7)(html-minifier-terser@7.2.0)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) escape-string-regexp: 4.0.0 execa: 5.1.1 - file-loader: 6.2.0(webpack@5.106.2(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)) + file-loader: 6.2.0(webpack@5.106.2(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)) fs-extra: 11.3.0 github-slugger: 1.5.0 globby: 11.1.0 @@ -13637,9 +13900,9 @@ snapshots: prompts: 2.4.2 resolve-pathname: 3.0.0 tslib: 2.8.1 - url-loader: 4.1.1(file-loader@6.2.0(webpack@5.106.2(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)))(webpack@5.106.2(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)) + url-loader: 4.1.1(file-loader@6.2.0(webpack@5.106.2(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)))(webpack@5.106.2(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)) utility-types: 3.11.0 - webpack: 5.106.2(@swc/core@1.15.33)(clean-css@5.3.3)(cssnano@6.1.2(postcss@8.5.14))(html-minifier-terser@7.2.0)(lightningcss@1.32.0)(postcss@8.5.14) + webpack: 5.106.2(@swc/core@1.15.33)(clean-css@5.3.3)(cssnano@6.1.2(postcss@8.5.14))(esbuild@0.27.7)(html-minifier-terser@7.2.0)(lightningcss@1.32.0)(postcss@8.5.14) transitivePeerDependencies: - '@minify-html/node' - '@swc/core' @@ -13658,14 +13921,14 @@ snapshots: - uglify-js - webpack-cli - '@docusaurus/utils@3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)': + '@docusaurus/utils@3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)': dependencies: '@docusaurus/logger': 3.10.1 - '@docusaurus/types': 3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) - '@docusaurus/utils-common': 3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@docusaurus/types': 3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@docusaurus/utils-common': 3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) escape-string-regexp: 4.0.0 execa: 5.1.1 - file-loader: 6.2.0(webpack@5.106.2(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)) + file-loader: 6.2.0(webpack@5.106.2(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)) fs-extra: 11.3.0 github-slugger: 1.5.0 globby: 11.1.0 @@ -13678,9 +13941,9 @@ snapshots: prompts: 2.4.2 resolve-pathname: 3.0.0 tslib: 2.8.1 - url-loader: 4.1.1(file-loader@6.2.0(webpack@5.106.2(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)))(webpack@5.106.2(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)) + url-loader: 4.1.1(file-loader@6.2.0(webpack@5.106.2(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)))(webpack@5.106.2(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)) utility-types: 3.11.0 - webpack: 5.106.2(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14) + webpack: 5.106.2(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14) transitivePeerDependencies: - '@minify-html/node' - '@swc/core' @@ -13818,78 +14081,156 @@ snapshots: '@esbuild/aix-ppc64@0.25.2': optional: true + '@esbuild/aix-ppc64@0.27.7': + optional: true + '@esbuild/android-arm64@0.25.2': optional: true + '@esbuild/android-arm64@0.27.7': + optional: true + '@esbuild/android-arm@0.25.2': optional: true + '@esbuild/android-arm@0.27.7': + optional: true + '@esbuild/android-x64@0.25.2': optional: true + '@esbuild/android-x64@0.27.7': + optional: true + '@esbuild/darwin-arm64@0.25.2': optional: true + '@esbuild/darwin-arm64@0.27.7': + optional: true + '@esbuild/darwin-x64@0.25.2': optional: true + '@esbuild/darwin-x64@0.27.7': + optional: true + '@esbuild/freebsd-arm64@0.25.2': optional: true + '@esbuild/freebsd-arm64@0.27.7': + optional: true + '@esbuild/freebsd-x64@0.25.2': optional: true + '@esbuild/freebsd-x64@0.27.7': + optional: true + '@esbuild/linux-arm64@0.25.2': optional: true + '@esbuild/linux-arm64@0.27.7': + optional: true + '@esbuild/linux-arm@0.25.2': optional: true + '@esbuild/linux-arm@0.27.7': + optional: true + '@esbuild/linux-ia32@0.25.2': optional: true + '@esbuild/linux-ia32@0.27.7': + optional: true + '@esbuild/linux-loong64@0.25.2': optional: true + '@esbuild/linux-loong64@0.27.7': + optional: true + '@esbuild/linux-mips64el@0.25.2': optional: true + '@esbuild/linux-mips64el@0.27.7': + optional: true + '@esbuild/linux-ppc64@0.25.2': optional: true + '@esbuild/linux-ppc64@0.27.7': + optional: true + '@esbuild/linux-riscv64@0.25.2': optional: true + '@esbuild/linux-riscv64@0.27.7': + optional: true + '@esbuild/linux-s390x@0.25.2': optional: true + '@esbuild/linux-s390x@0.27.7': + optional: true + '@esbuild/linux-x64@0.25.2': optional: true + '@esbuild/linux-x64@0.27.7': + optional: true + '@esbuild/netbsd-arm64@0.25.2': optional: true + '@esbuild/netbsd-arm64@0.27.7': + optional: true + '@esbuild/netbsd-x64@0.25.2': optional: true + '@esbuild/netbsd-x64@0.27.7': + optional: true + '@esbuild/openbsd-arm64@0.25.2': optional: true + '@esbuild/openbsd-arm64@0.27.7': + optional: true + '@esbuild/openbsd-x64@0.25.2': optional: true + '@esbuild/openbsd-x64@0.27.7': + optional: true + + '@esbuild/openharmony-arm64@0.27.7': + optional: true + '@esbuild/sunos-x64@0.25.2': optional: true + '@esbuild/sunos-x64@0.27.7': + optional: true + '@esbuild/win32-arm64@0.25.2': optional: true + '@esbuild/win32-arm64@0.27.7': + optional: true + '@esbuild/win32-ia32@0.25.2': optional: true + '@esbuild/win32-ia32@0.27.7': + optional: true + '@esbuild/win32-x64@0.25.2': optional: true + '@esbuild/win32-x64@0.27.7': + optional: true + '@eslint-community/eslint-utils@4.9.0(eslint@9.39.2(jiti@2.4.2))': dependencies: eslint: 9.39.2(jiti@2.4.2) @@ -15797,6 +16138,8 @@ snapshots: ansis@3.17.0: {} + any-promise@1.3.0: {} + anymatch@3.1.3: dependencies: normalize-path: 3.0.0 @@ -15853,12 +16196,12 @@ snapshots: aws4@1.13.2: {} - babel-loader@9.2.1(@babel/core@7.29.0)(webpack@5.106.2(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)): + babel-loader@9.2.1(@babel/core@7.29.0)(webpack@5.106.2(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)): dependencies: '@babel/core': 7.29.0 find-cache-dir: 4.0.0 schema-utils: 4.3.3 - webpack: 5.106.2(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14) + webpack: 5.106.2(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14) babel-plugin-dynamic-import-node@2.3.3: dependencies: @@ -16092,6 +16435,11 @@ snapshots: dependencies: run-applescript: 7.1.0 + bundle-require@5.1.0(esbuild@0.27.7): + dependencies: + esbuild: 0.27.7 + load-tsconfig: 0.2.5 + bytes@3.0.0: {} bytes@3.1.2: {} @@ -16346,6 +16694,8 @@ snapshots: commander@2.20.3: {} + commander@4.1.1: {} + commander@5.1.0: {} commander@7.2.0: {} @@ -16382,6 +16732,8 @@ snapshots: concat-map@0.0.1: {} + confbox@0.1.8: {} + config-chain@1.1.13: dependencies: ini: 1.3.8 @@ -16494,7 +16846,7 @@ snapshots: copy-text-to-clipboard@3.2.2: {} - copy-webpack-plugin@11.0.0(webpack@5.106.2(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)): + copy-webpack-plugin@11.0.0(webpack@5.106.2(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)): dependencies: fast-glob: 3.3.3 glob-parent: 6.0.2 @@ -16502,7 +16854,7 @@ snapshots: normalize-path: 3.0.0 schema-utils: 4.3.3 serialize-javascript: 6.0.2 - webpack: 5.106.2(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14) + webpack: 5.106.2(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14) core-js-compat@3.41.0: dependencies: @@ -16572,7 +16924,7 @@ snapshots: postcss-selector-parser: 7.1.1 postcss-value-parser: 4.2.0 - css-loader@6.11.0(@rspack/core@1.7.11)(webpack@5.106.2(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)): + css-loader@6.11.0(@rspack/core@1.7.11)(webpack@5.106.2(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)): dependencies: icss-utils: 5.1.0(postcss@8.5.14) postcss: 8.5.14 @@ -16584,9 +16936,9 @@ snapshots: semver: 7.7.3 optionalDependencies: '@rspack/core': 1.7.11 - webpack: 5.106.2(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14) + webpack: 5.106.2(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14) - css-minimizer-webpack-plugin@5.0.1(clean-css@5.3.3)(lightningcss@1.32.0)(webpack@5.106.2(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)): + css-minimizer-webpack-plugin@5.0.1(clean-css@5.3.3)(esbuild@0.27.7)(lightningcss@1.32.0)(webpack@5.106.2(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)): dependencies: '@jridgewell/trace-mapping': 0.3.31 cssnano: 6.1.2(postcss@8.5.14) @@ -16594,9 +16946,10 @@ snapshots: postcss: 8.5.14 schema-utils: 4.3.3 serialize-javascript: 6.0.2 - webpack: 5.106.2(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14) + webpack: 5.106.2(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14) optionalDependencies: clean-css: 5.3.3 + esbuild: 0.27.7 lightningcss: 1.32.0 css-prefers-color-scheme@10.0.0(postcss@8.5.14): @@ -17264,6 +17617,35 @@ snapshots: '@esbuild/win32-ia32': 0.25.2 '@esbuild/win32-x64': 0.25.2 + esbuild@0.27.7: + optionalDependencies: + '@esbuild/aix-ppc64': 0.27.7 + '@esbuild/android-arm': 0.27.7 + '@esbuild/android-arm64': 0.27.7 + '@esbuild/android-x64': 0.27.7 + '@esbuild/darwin-arm64': 0.27.7 + '@esbuild/darwin-x64': 0.27.7 + '@esbuild/freebsd-arm64': 0.27.7 + '@esbuild/freebsd-x64': 0.27.7 + '@esbuild/linux-arm': 0.27.7 + '@esbuild/linux-arm64': 0.27.7 + '@esbuild/linux-ia32': 0.27.7 + '@esbuild/linux-loong64': 0.27.7 + '@esbuild/linux-mips64el': 0.27.7 + '@esbuild/linux-ppc64': 0.27.7 + '@esbuild/linux-riscv64': 0.27.7 + '@esbuild/linux-s390x': 0.27.7 + '@esbuild/linux-x64': 0.27.7 + '@esbuild/netbsd-arm64': 0.27.7 + '@esbuild/netbsd-x64': 0.27.7 + '@esbuild/openbsd-arm64': 0.27.7 + '@esbuild/openbsd-x64': 0.27.7 + '@esbuild/openharmony-arm64': 0.27.7 + '@esbuild/sunos-x64': 0.27.7 + '@esbuild/win32-arm64': 0.27.7 + '@esbuild/win32-ia32': 0.27.7 + '@esbuild/win32-x64': 0.27.7 + escalade@3.2.0: {} escape-goat@4.0.0: {} @@ -17562,11 +17944,11 @@ snapshots: dependencies: flat-cache: 4.0.1 - file-loader@6.2.0(webpack@5.106.2(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)): + file-loader@6.2.0(webpack@5.106.2(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)): dependencies: loader-utils: 2.0.4 schema-utils: 3.3.0 - webpack: 5.106.2(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14) + webpack: 5.106.2(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14) filelist@1.0.4: dependencies: @@ -17617,6 +17999,12 @@ snapshots: micromatch: 4.0.8 resolve-dir: 1.0.1 + fix-dts-default-cjs-exports@1.0.1: + dependencies: + magic-string: 0.30.17 + mlly: 1.8.2 + rollup: 4.39.0 + flat-cache@4.0.1: dependencies: flatted: 3.4.2 @@ -17672,6 +18060,12 @@ snapshots: jsonfile: 6.1.0 universalify: 2.0.1 + fs-extra@11.3.5: + dependencies: + graceful-fs: 4.2.11 + jsonfile: 6.1.0 + universalify: 2.0.1 + fs-extra@7.0.1: dependencies: graceful-fs: 4.2.11 @@ -18071,7 +18465,7 @@ snapshots: html-void-elements@3.0.0: {} - html-webpack-plugin@5.6.7(@rspack/core@1.7.11)(webpack@5.106.2(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)): + html-webpack-plugin@5.6.7(@rspack/core@1.7.11)(webpack@5.106.2(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)): dependencies: '@types/html-minifier-terser': 6.1.0 html-minifier-terser: 6.1.0 @@ -18080,7 +18474,7 @@ snapshots: tapable: 2.3.3 optionalDependencies: '@rspack/core': 1.7.11 - webpack: 5.106.2(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14) + webpack: 5.106.2(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14) htmlparser2@6.1.0: dependencies: @@ -18484,6 +18878,8 @@ snapshots: '@sideway/formula': 3.0.1 '@sideway/pinpoint': 2.0.0 + joycon@3.1.1: {} + js-tokens@4.0.0: {} js-tokens@9.0.1: {} @@ -18628,6 +19024,8 @@ snapshots: dependencies: uc.micro: 2.1.0 + load-tsconfig@0.2.5: {} + loader-runner@4.3.2: {} loader-utils@2.0.4: @@ -19324,11 +19722,11 @@ snapshots: mimic-response@4.0.0: {} - mini-css-extract-plugin@2.10.2(webpack@5.106.2(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)): + mini-css-extract-plugin@2.10.2(webpack@5.106.2(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)): dependencies: schema-utils: 4.3.3 tapable: 2.3.3 - webpack: 5.106.2(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14) + webpack: 5.106.2(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14) minimalistic-assert@1.0.1: {} @@ -19396,6 +19794,13 @@ snapshots: dependencies: minimist: 1.2.8 + mlly@1.8.2: + dependencies: + acorn: 8.16.0 + pathe: 2.0.3 + pkg-types: 1.3.1 + ufo: 1.6.4 + mri@1.2.0: {} mrmime@2.0.1: {} @@ -19417,6 +19822,12 @@ snapshots: arrify: 2.0.1 minimatch: 3.1.5 + mz@2.7.0: + dependencies: + any-promise: 1.3.0 + object-assign: 4.1.1 + thenify-all: 1.6.0 + nanoid@3.3.11: {} natural-compare@1.4.0: {} @@ -19503,11 +19914,11 @@ snapshots: dependencies: boolbase: 1.0.0 - null-loader@4.0.1(webpack@5.106.2(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)): + null-loader@4.0.1(webpack@5.106.2(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)): dependencies: loader-utils: 2.0.4 schema-utils: 3.3.0 - webpack: 5.106.2(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14) + webpack: 5.106.2(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14) object-assign@4.1.1: {} @@ -19771,6 +20182,12 @@ snapshots: dependencies: find-up: 6.3.0 + pkg-types@1.3.1: + dependencies: + confbox: 0.1.8 + mlly: 1.8.2 + pathe: 2.0.3 + pkijs@3.4.0: dependencies: '@noble/hashes': 1.4.0 @@ -19939,13 +20356,21 @@ snapshots: '@csstools/utilities': 2.0.0(postcss@8.5.14) postcss: 8.5.14 - postcss-loader@7.3.4(postcss@8.5.14)(typescript@5.6.3)(webpack@5.106.2(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)): + postcss-load-config@6.0.1(jiti@2.4.2)(postcss@8.5.14)(yaml@2.8.4): + dependencies: + lilconfig: 3.1.3 + optionalDependencies: + jiti: 2.4.2 + postcss: 8.5.14 + yaml: 2.8.4 + + postcss-loader@7.3.4(postcss@8.5.14)(typescript@5.6.3)(webpack@5.106.2(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)): dependencies: cosmiconfig: 8.3.6(typescript@5.6.3) jiti: 1.21.7 postcss: 8.5.14 semver: 7.7.3 - webpack: 5.106.2(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14) + webpack: 5.106.2(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14) transitivePeerDependencies: - typescript @@ -20398,11 +20823,11 @@ snapshots: dependencies: react: 19.2.6 - react-loadable-ssr-addon-v5-slorber@1.0.3(@docusaurus/react-loadable@6.0.0(react@19.2.6))(webpack@5.106.2(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)): + react-loadable-ssr-addon-v5-slorber@1.0.3(@docusaurus/react-loadable@6.0.0(react@19.2.6))(webpack@5.106.2(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)): dependencies: '@babel/runtime': 7.27.0 react-loadable: '@docusaurus/react-loadable@6.0.0(react@19.2.6)' - webpack: 5.106.2(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14) + webpack: 5.106.2(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14) react-router-config@5.1.1(react-router@5.3.4(react@19.2.6))(react@19.2.6): dependencies: @@ -21173,6 +21598,16 @@ snapshots: stylis@4.4.0: {} + sucrase@3.35.1: + dependencies: + '@jridgewell/gen-mapping': 0.3.13 + commander: 4.1.1 + lines-and-columns: 1.2.4 + mz: 2.7.0 + pirates: 4.0.7 + tinyglobby: 0.2.14 + ts-interface-checker: 0.1.13 + sumchecker@3.0.1: dependencies: debug: 4.4.3 @@ -21201,11 +21636,11 @@ snapshots: picocolors: 1.1.1 sax: 1.6.0 - swc-loader@0.2.7(@swc/core@1.15.33)(webpack@5.106.2(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)): + swc-loader@0.2.7(@swc/core@1.15.33)(webpack@5.106.2(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)): dependencies: '@swc/core': 1.15.33 '@swc/counter': 0.1.3 - webpack: 5.106.2(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14) + webpack: 5.106.2(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14) synckit@0.11.11: dependencies: @@ -21239,43 +21674,46 @@ snapshots: term-size@2.2.1: {} - terser-webpack-plugin@5.6.0(@swc/core@1.15.33)(@swc/html@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(webpack@5.106.2(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)): + terser-webpack-plugin@5.6.0(@swc/core@1.15.33)(@swc/html@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(webpack@5.106.2(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)): dependencies: '@jridgewell/trace-mapping': 0.3.31 jest-worker: 27.5.1 schema-utils: 4.3.3 terser: 5.47.1 - webpack: 5.106.2(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14) + webpack: 5.106.2(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14) optionalDependencies: '@swc/core': 1.15.33 '@swc/html': 1.15.33 + esbuild: 0.27.7 lightningcss: 1.32.0 postcss: 8.5.14 - terser-webpack-plugin@5.6.0(@swc/core@1.15.33)(clean-css@5.3.3)(cssnano@6.1.2(postcss@8.5.14))(html-minifier-terser@7.2.0)(lightningcss@1.32.0)(postcss@8.5.14)(webpack@5.106.2(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)): + terser-webpack-plugin@5.6.0(@swc/core@1.15.33)(clean-css@5.3.3)(cssnano@6.1.2(postcss@8.5.14))(esbuild@0.27.7)(html-minifier-terser@7.2.0)(lightningcss@1.32.0)(postcss@8.5.14)(webpack@5.106.2(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)): dependencies: '@jridgewell/trace-mapping': 0.3.31 jest-worker: 27.5.1 schema-utils: 4.3.3 terser: 5.47.1 - webpack: 5.106.2(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14) + webpack: 5.106.2(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14) optionalDependencies: '@swc/core': 1.15.33 clean-css: 5.3.3 cssnano: 6.1.2(postcss@8.5.14) + esbuild: 0.27.7 html-minifier-terser: 7.2.0 lightningcss: 1.32.0 postcss: 8.5.14 - terser-webpack-plugin@5.6.0(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(webpack@5.106.2(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)): + terser-webpack-plugin@5.6.0(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(webpack@5.106.2(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)): dependencies: '@jridgewell/trace-mapping': 0.3.31 jest-worker: 27.5.1 schema-utils: 4.3.3 terser: 5.47.1 - webpack: 5.106.2(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14) + webpack: 5.106.2(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14) optionalDependencies: '@swc/core': 1.15.33 + esbuild: 0.27.7 lightningcss: 1.32.0 postcss: 8.5.14 @@ -21292,6 +21730,14 @@ snapshots: glob: 7.2.3 minimatch: 3.1.5 + thenify-all@1.6.0: + dependencies: + thenify: 3.3.1 + + thenify@3.3.1: + dependencies: + any-promise: 1.3.0 + thingies@2.6.0(tslib@2.8.1): dependencies: tslib: 2.8.1 @@ -21349,6 +21795,8 @@ snapshots: dependencies: tslib: 2.8.1 + tree-kill@1.2.2: {} + trim-lines@3.0.1: {} trough@2.2.0: {} @@ -21367,6 +21815,8 @@ snapshots: ts-dedent@2.2.0: {} + ts-interface-checker@0.1.13: {} + ts-node@10.9.2(@swc/core@1.15.33)(@types/node@16.18.126)(typescript@5.1.6): dependencies: '@cspotcode/source-map-support': 0.8.1 @@ -21411,6 +21861,35 @@ snapshots: tslib@2.8.1: {} + tsup@8.5.1(@swc/core@1.15.33)(jiti@2.4.2)(postcss@8.5.14)(typescript@5.8.2)(yaml@2.8.4): + dependencies: + bundle-require: 5.1.0(esbuild@0.27.7) + cac: 6.7.14 + chokidar: 4.0.3 + consola: 3.4.2 + debug: 4.4.3 + esbuild: 0.27.7 + fix-dts-default-cjs-exports: 1.0.1 + joycon: 3.1.1 + picocolors: 1.1.1 + postcss-load-config: 6.0.1(jiti@2.4.2)(postcss@8.5.14)(yaml@2.8.4) + resolve-from: 5.0.0 + rollup: 4.39.0 + source-map: 0.7.6 + sucrase: 3.35.1 + tinyexec: 0.3.2 + tinyglobby: 0.2.14 + tree-kill: 1.2.2 + optionalDependencies: + '@swc/core': 1.15.33 + postcss: 8.5.14 + typescript: 5.8.2 + transitivePeerDependencies: + - jiti + - supports-color + - tsx + - yaml + tsyringe@4.10.0: dependencies: tslib: 1.14.1 @@ -21483,6 +21962,8 @@ snapshots: uc.micro@2.1.0: {} + ufo@1.6.4: {} + uglify-js@3.19.3: optional: true @@ -21595,14 +22076,14 @@ snapshots: dependencies: punycode: 2.3.1 - url-loader@4.1.1(file-loader@6.2.0(webpack@5.106.2(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)))(webpack@5.106.2(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)): + url-loader@4.1.1(file-loader@6.2.0(webpack@5.106.2(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)))(webpack@5.106.2(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)): dependencies: loader-utils: 2.0.4 mime-types: 2.1.35 schema-utils: 3.3.0 - webpack: 5.106.2(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14) + webpack: 5.106.2(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14) optionalDependencies: - file-loader: 6.2.0(webpack@5.106.2(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)) + file-loader: 6.2.0(webpack@5.106.2(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)) utf8-byte-length@1.0.5: {} @@ -21786,7 +22267,7 @@ snapshots: - bufferutil - utf-8-validate - webpack-dev-middleware@7.4.5(tslib@2.8.1)(webpack@5.106.2(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)): + webpack-dev-middleware@7.4.5(tslib@2.8.1)(webpack@5.106.2(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)): dependencies: colorette: 2.0.20 memfs: 4.57.2(tslib@2.8.1) @@ -21795,11 +22276,11 @@ snapshots: range-parser: 1.2.1 schema-utils: 4.3.3 optionalDependencies: - webpack: 5.106.2(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14) + webpack: 5.106.2(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14) transitivePeerDependencies: - tslib - webpack-dev-server@5.2.3(tslib@2.8.1)(webpack@5.106.2(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)): + webpack-dev-server@5.2.3(tslib@2.8.1)(webpack@5.106.2(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)): dependencies: '@types/bonjour': 3.5.13 '@types/connect-history-api-fallback': 1.5.4 @@ -21827,10 +22308,10 @@ snapshots: serve-index: 1.9.2 sockjs: 0.3.24 spdy: 4.0.2 - webpack-dev-middleware: 7.4.5(tslib@2.8.1)(webpack@5.106.2(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)) + webpack-dev-middleware: 7.4.5(tslib@2.8.1)(webpack@5.106.2(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)) ws: 8.20.0 optionalDependencies: - webpack: 5.106.2(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14) + webpack: 5.106.2(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14) transitivePeerDependencies: - bufferutil - debug @@ -21852,7 +22333,7 @@ snapshots: webpack-sources@3.4.1: {} - webpack@5.106.2(@swc/core@1.15.33)(@swc/html@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14): + webpack@5.106.2(@swc/core@1.15.33)(@swc/html@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14): dependencies: '@types/eslint-scope': 3.7.7 '@types/estree': 1.0.8 @@ -21875,7 +22356,7 @@ snapshots: neo-async: 2.6.2 schema-utils: 4.3.3 tapable: 2.3.3 - terser-webpack-plugin: 5.6.0(@swc/core@1.15.33)(@swc/html@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(webpack@5.106.2(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)) + terser-webpack-plugin: 5.6.0(@swc/core@1.15.33)(@swc/html@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(webpack@5.106.2(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)) watchpack: 2.5.1 webpack-sources: 3.4.1 transitivePeerDependencies: @@ -21892,7 +22373,7 @@ snapshots: - postcss - uglify-js - webpack@5.106.2(@swc/core@1.15.33)(clean-css@5.3.3)(cssnano@6.1.2(postcss@8.5.14))(html-minifier-terser@7.2.0)(lightningcss@1.32.0)(postcss@8.5.14): + webpack@5.106.2(@swc/core@1.15.33)(clean-css@5.3.3)(cssnano@6.1.2(postcss@8.5.14))(esbuild@0.27.7)(html-minifier-terser@7.2.0)(lightningcss@1.32.0)(postcss@8.5.14): dependencies: '@types/eslint-scope': 3.7.7 '@types/estree': 1.0.8 @@ -21915,7 +22396,7 @@ snapshots: neo-async: 2.6.2 schema-utils: 4.3.3 tapable: 2.3.3 - terser-webpack-plugin: 5.6.0(@swc/core@1.15.33)(clean-css@5.3.3)(cssnano@6.1.2(postcss@8.5.14))(html-minifier-terser@7.2.0)(lightningcss@1.32.0)(postcss@8.5.14)(webpack@5.106.2(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)) + terser-webpack-plugin: 5.6.0(@swc/core@1.15.33)(clean-css@5.3.3)(cssnano@6.1.2(postcss@8.5.14))(esbuild@0.27.7)(html-minifier-terser@7.2.0)(lightningcss@1.32.0)(postcss@8.5.14)(webpack@5.106.2(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)) watchpack: 2.5.1 webpack-sources: 3.4.1 transitivePeerDependencies: @@ -21932,7 +22413,7 @@ snapshots: - postcss - uglify-js - webpack@5.106.2(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14): + webpack@5.106.2(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14): dependencies: '@types/eslint-scope': 3.7.7 '@types/estree': 1.0.8 @@ -21955,7 +22436,7 @@ snapshots: neo-async: 2.6.2 schema-utils: 4.3.3 tapable: 2.3.3 - terser-webpack-plugin: 5.6.0(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(webpack@5.106.2(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)) + terser-webpack-plugin: 5.6.0(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(webpack@5.106.2(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)) watchpack: 2.5.1 webpack-sources: 3.4.1 transitivePeerDependencies: @@ -21972,7 +22453,7 @@ snapshots: - postcss - uglify-js - webpackbar@7.0.0(@rspack/core@1.7.11)(webpack@5.106.2(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)): + webpackbar@7.0.0(@rspack/core@1.7.11)(webpack@5.106.2(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)): dependencies: ansis: 3.17.0 consola: 3.4.2 @@ -21980,7 +22461,7 @@ snapshots: std-env: 3.9.0 optionalDependencies: '@rspack/core': 1.7.11 - webpack: 5.106.2(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14) + webpack: 5.106.2(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14) websocket-driver@0.7.4: dependencies: diff --git a/tsconfig-base.json b/tsconfig-base.json index 7a74fd1831f..a22af0add5b 100644 --- a/tsconfig-base.json +++ b/tsconfig-base.json @@ -1,6 +1,12 @@ { - "extends": "@tsconfig/node22/tsconfig.json", "compilerOptions": { + "target": "ES2022", + "lib": ["es2024", "ESNext.Array", "ESNext.Collection", "ESNext.Iterator"], + "module": "ESNext", + "moduleResolution": "bundler", + "esModuleInterop": false, + "allowSyntheticDefaultImports": true, + "forceConsistentCasingInFileNames": true, "noUnusedLocals": true, @@ -12,10 +18,13 @@ "inlineSources": true, "sourceMap": true, + "strict": true, + "skipLibCheck": true, + "useDefineForClassFields": false, "experimentalDecorators": true, "newLine": "lf", "noEmitOnError": true } -} \ No newline at end of file +} diff --git a/website/scripts/docusaurus-plugin-prebuild.ts b/website/scripts/docusaurus-plugin-prebuild.ts index b3ffb9c4303..73cbefb5532 100644 --- a/website/scripts/docusaurus-plugin-prebuild.ts +++ b/website/scripts/docusaurus-plugin-prebuild.ts @@ -5,7 +5,7 @@ import type { LoadContext, Plugin } from "@docusaurus/types" function generateCliDocs(siteDir: string): void { const root = join(siteDir, "..") - const help = execSync("node packages/electron-builder/out/cli/cli.js --help", { + const help = execSync("node packages/electron-builder/dist/cli/cli.js --help", { encoding: "utf-8", cwd: root, }) From 0cf11926e1f0c914ba972cb1e8eef98b31b9d39c Mon Sep 17 00:00:00 2001 From: Mike Maietta Date: Wed, 3 Jun 2026 06:41:06 -0700 Subject: [PATCH 56/65] tsupppppp? --- package.json | 2 +- packages/app-builder-lib/src/indexInternal.ts | 1 - .../src/util/packageMetadata.ts | 2 +- .../app-builder-lib/src/util/pathManager.ts | 3 +- packages/app-builder-lib/src/util/rebuild.ts | 2 +- packages/app-builder-lib/tsup.config.ts | 1 + packages/dmg-builder/src/dmg.ts | 4 +- packages/electron-builder/tsup.config.ts | 1 + tsconfig-base.json | 2 +- website/docs/cli.md | 71 ++++--------------- 10 files changed, 25 insertions(+), 64 deletions(-) diff --git a/package.json b/package.json index 6c60b682515..1047a1a3b47 100644 --- a/package.json +++ b/package.json @@ -4,7 +4,7 @@ "license": "MIT", "scripts": { "//": "do not wrap into single quotes - windows doesn't unwrap arg in this case", - "compile": "pnpm ci:test:generate && pnpm --filter './packages/**' --if-present run build", + "compile": "pnpm ci:test:generate && pnpm run -r --if-present --filter '!@electron-builder/website' --filter '!@electron-builder/test' build", "typecheck": "tsc --build --noEmit", "lint": "eslint packages test/src --ext .ts,.js", "lint-deps": "node ./scripts/checkDeps.js", diff --git a/packages/app-builder-lib/src/indexInternal.ts b/packages/app-builder-lib/src/indexInternal.ts index 90969ca46b8..3c4e3ee3c70 100644 --- a/packages/app-builder-lib/src/indexInternal.ts +++ b/packages/app-builder-lib/src/indexInternal.ts @@ -1,7 +1,6 @@ export { AsarFilesystem, readAsar, readAsarJson } from "./asar/asar.js" export { AsarIntegrity } from "./asar/integrity.js" export { getBinFromUrl } from "./binDownload.js" -export { MacPackager } from "./macPackager.js" export { downloadBuilderToolset, getCacheDirectory } from "./util/electronGet.js" export { withToolsetLock } from "./util/toolsetLock.js" export { orNullIfFileNotExist } from "./util/config/load.js" diff --git a/packages/app-builder-lib/src/util/packageMetadata.ts b/packages/app-builder-lib/src/util/packageMetadata.ts index bb7fa3105c2..fe86036c826 100644 --- a/packages/app-builder-lib/src/util/packageMetadata.ts +++ b/packages/app-builder-lib/src/util/packageMetadata.ts @@ -115,7 +115,7 @@ function checkDependencies(dependencies: Record | Nullish, error for (const prefix of prefixes) { if (updaterVersion.startsWith(prefix)) { const normalized = path.normalize(updaterVersion.substring(prefix.length)) - const packageJsonPath = path.isAbsolute(normalized) ? normalized : path.resolve(import.meta.dirname, normalized) + const packageJsonPath = path.isAbsolute(normalized) ? normalized : path.resolve(process.cwd(), normalized) const json = fsExtra.readJsonSync(path.join(packageJsonPath, "package.json")) updaterVersion = json.version break diff --git a/packages/app-builder-lib/src/util/pathManager.ts b/packages/app-builder-lib/src/util/pathManager.ts index 8f7ca31f0d0..fd773552d05 100644 --- a/packages/app-builder-lib/src/util/pathManager.ts +++ b/packages/app-builder-lib/src/util/pathManager.ts @@ -1,6 +1,7 @@ import * as path from "path" -const root = path.join(import.meta.dirname, "..", "..") +// __dirname is the dist/ folder in the bundle; templates/ and vendor/ are one level up +const root = path.join(__dirname, "..") export function getTemplatePath(file: string) { return path.join(root, "templates", file) diff --git a/packages/app-builder-lib/src/util/rebuild.ts b/packages/app-builder-lib/src/util/rebuild.ts index eedc88ad847..b2aed4d80e1 100644 --- a/packages/app-builder-lib/src/util/rebuild.ts +++ b/packages/app-builder-lib/src/util/rebuild.ts @@ -7,7 +7,7 @@ export const rebuild = async (options: RebuildOptions): Promise => { const { arch } = options log.info({ arch }, `installing native dependencies`) - const child = cp.fork(path.resolve(import.meta.dirname, "../../helpers/remote-rebuild.js"), [JSON.stringify(options)], { + const child = cp.fork(path.resolve(__dirname, "../helpers/remote-rebuild.js"), [JSON.stringify(options)], { stdio: ["pipe", "pipe", "pipe", "ipc"], }) diff --git a/packages/app-builder-lib/tsup.config.ts b/packages/app-builder-lib/tsup.config.ts index 41efb181f1c..18266dd10ee 100644 --- a/packages/app-builder-lib/tsup.config.ts +++ b/packages/app-builder-lib/tsup.config.ts @@ -12,4 +12,5 @@ export default defineConfig({ clean: true, outDir: "dist", platform: "node", + shims: true, }) diff --git a/packages/dmg-builder/src/dmg.ts b/packages/dmg-builder/src/dmg.ts index 2e756a38552..57e9cff6c46 100644 --- a/packages/dmg-builder/src/dmg.ts +++ b/packages/dmg-builder/src/dmg.ts @@ -1,5 +1,5 @@ -import { DmgOptions, Target } from "app-builder-lib" -import { createBlockmap, findIdentity, isSignAllowed, MacPackager } from "app-builder-lib/internal" +import { DmgOptions, MacPackager, Target } from "app-builder-lib" +import { createBlockmap, findIdentity, isSignAllowed } from "app-builder-lib/internal" import { Arch, exec, getArchSuffix, InvalidConfigurationError, isEmptyOrSpaces } from "builder-util" import { sanitizeFileName } from "builder-util/internal" import { release as getOsRelease } from "os" diff --git a/packages/electron-builder/tsup.config.ts b/packages/electron-builder/tsup.config.ts index ae476d72468..ccf9c1dccd0 100644 --- a/packages/electron-builder/tsup.config.ts +++ b/packages/electron-builder/tsup.config.ts @@ -19,4 +19,5 @@ export default defineConfig({ clean: true, outDir: "dist", platform: "node", + shims: true, }) diff --git a/tsconfig-base.json b/tsconfig-base.json index a22af0add5b..77f5f6f4d53 100644 --- a/tsconfig-base.json +++ b/tsconfig-base.json @@ -1,7 +1,7 @@ { "compilerOptions": { "target": "ES2022", - "lib": ["es2024", "ESNext.Array", "ESNext.Collection", "ESNext.Iterator"], + "lib": ["ES2022", "ESNext.Iterator"], "module": "ESNext", "moduleResolution": "bundler", "esModuleInterop": false, diff --git a/website/docs/cli.md b/website/docs/cli.md index 39094836079..184d7564c14 100644 --- a/website/docs/cli.md +++ b/website/docs/cli.md @@ -4,62 +4,21 @@ title: CLI ``` -electron-builder - -Build - -Commands: - electron-builder build Build [default] - electron-builder install-app-deps Install app deps - electron-builder node-gyp-rebuild Rebuild own native code - electron-builder publish Publish a list of artifacts - electron-builder create-self-signed-cert Create self-signed code signing cert for - Windows apps - electron-builder start Run application in a development mode using - electron-webpack - electron-builder clear-cache Clear the electron-builder default cache - directory - -Building: - -m, -o, --mac, --macos Build for macOS, accepts target list (see - https://www.electron.build/mac). [array] - -l, --linux Build for Linux, accepts target list (see - https://www.electron.build/linux) [array] - -w, --win, --windows Build for Windows, accepts target list (see - https://www.electron.build/win) [array] - --x64 Build for x64 [boolean] - --ia32 Build for ia32 [boolean] - --armv7l Build for armv7l [boolean] - --arm64 Build for arm64 [boolean] - --universal Build for universal [boolean] - --dir Build unpacked dir. Useful to test. [boolean] - --prepackaged, --pd The path to prepackaged app (to pack in a - distributable format) - --projectDir, --project The path to project directory. Defaults to - current working directory. - -c, --config The path to an electron-builder config. Defaults - to `electron-builder.yml` (or `json`, or `json5`, - or `js`, or `ts`), see - https://www.electron.build/configuration - -Publishing: - -p, --publish Publish artifacts, see https://www.electron.build/publish - [choices: "onTag", "onTagOrDraft", "always", "never", undefined] - -Other: - --help Show help [boolean] - --version Show version number [boolean] - -Examples: - electron-builder -mwl build for macOS, Windows and Linux - electron-builder --linux deb tar.xz build deb and tar.xz for Linux - electron-builder --win --ia32 build for Windows ia32 - electron-builder set package.json property `foo` to - -c.extraMetadata.foo=bar `bar` - electron-builder configure unicode options for NSIS - --config.nsis.unicode=false - -See https://electron.build for more documentation. + • please use as subcommand: electron-builder publish +Options: + --help Show help [boolean] + -f, --files The file(s) to upload to your publisher + [array] [required] + -v, --version The app/build version used when + searching for an upload release (used + by some Publishers) [string] + -c, --config, --configurationFilePath The path to an electron-builder config. + Defaults to `electron-builder.yml` (or + `json`, or `json5`, or `js`, or `ts`), + see https://goo.gl/YFRJOM [string] + -p, --policy Publish trigger policy, see + https://www.electron.build/publish + [string] [choices: "onTag", "onTagOrDraft", "always", "never", undefined] ``` From c8d40beec3d3ea848fbdb8f2ba8e360c6baf2abc Mon Sep 17 00:00:00 2001 From: Mike Maietta Date: Wed, 3 Jun 2026 08:12:59 -0700 Subject: [PATCH 57/65] tmp save --- .prettierignore | 3 +- eslint.config.mjs | 12 +- package.json | 11 +- packages/app-builder-lib/package.json | 3 +- .../src/electron/ElectronFramework.ts | 2 +- .../src/mac/MacTargetHelper.ts | 8 +- .../app-builder-lib/src/platformPackager.ts | 10 +- .../src/targets/AppImageTarget.ts | 13 +- .../src/targets/LinuxTargetHelper.ts | 1 - .../src/targets/snap/core24.ts | 4 +- .../app-builder-lib/src/util/dynamicImport.ts | 3 +- packages/app-builder-lib/src/vm/vm.ts | 2 +- packages/builder-util-runtime/package.json | 3 +- packages/builder-util/package.json | 3 +- packages/builder-util/src/deepAssign.ts | 2 +- packages/dmg-builder/package.json | 79 +- .../package.json | 3 +- packages/electron-builder/package.json | 5 +- .../src/cli/install-app-deps.ts | 12 +- packages/electron-publish/package.json | 3 +- .../electron-publish/src/s3/awsCredentials.ts | 4 +- .../electron-publish/src/s3/s3UploadHelper.ts | 12 +- .../src/s3/spacesPublisher.ts | 2 +- packages/electron-updater/package.json | 3 +- patches/estree-walker@3.0.3.patch | 14 + pnpm-lock.yaml | 947 +++++------------- pnpm-workspace.yaml | 1 + scripts/checkDeps.js | 13 +- test/package.json | 1 + test/src/HoistedNodeModuleTest.ts | 4 +- test/src/blockmapTest.ts | 4 +- test/src/builder-util/nodeHttpExecutorTest.ts | 10 +- test/src/builder-util/utilTest.ts | 2 +- test/src/cliTest.ts | 16 +- test/src/dynamicImportTest.ts | 1 - test/src/electronGetTest.ts | 4 +- test/src/electronVersionTest.ts | 2 +- test/src/filterTest.ts | 4 +- test/src/helpers/downloadElectron.ts | 2 +- test/src/helpers/launchAppCrossPlatform.ts | 2 +- test/src/helpers/packTester.ts | 16 +- test/src/iconConverterTest.ts | 16 +- test/src/linux/appImageTest.ts | 4 +- test/src/linux/snapcraftParallelsTest.ts | 4 +- test/src/mac/MacTargetHelperTest.ts | 2 +- test/src/mac/dmgLicenseTest.ts | 2 +- .../moduleManagerTest.ts | 16 +- .../publisher/snap/SnapStorePublisherTest.ts | 2 +- test/src/rebuilderTest.ts | 4 +- test/src/s3BucketLocationTest.ts | 2 +- test/src/s3PublishTest.ts | 2 +- test/src/schemaValidatorTest.ts | 4 +- test/src/updateInfoBuilderTest.ts | 2 +- test/src/updater/baseUpdaterUnitTest.ts | 4 +- test/src/updater/blackboxInstallMac.ts | 2 +- test/src/updater/blackboxInstallTest.ts | 4 +- test/src/updater/blackboxInstallWindows.ts | 2 +- test/src/updater/blackboxUpdateHelpers.ts | 8 +- test/src/updater/blackboxUpdateLinuxSuite.ts | 2 +- test/src/updater/blackboxUpdateWinSuite.ts | 4 +- test/src/updater/blackboxWebInstallerTest.ts | 4 +- test/src/updater/downloadPlanBuilderTest.ts | 6 +- .../src/updater/downloadedUpdateHelperTest.ts | 6 +- test/src/updater/linuxUpdaterUnitTest.ts | 2 +- test/src/updater/macUpdaterLogicTest.ts | 4 +- .../windows/squirrelWindowsSecurityTest.ts | 2 +- test/src/windows/winCodeSignTest.ts | 4 +- test/src/windows/winReseditTest.ts | 2 +- test/src/windows/winSignToolManagerTest.ts | 2 +- test/tsconfig.json | 23 +- test/vitest-scripts/generate-tests.ts | 2 +- test/vitest-scripts/run-vitest.ts | 129 ++- test/vitest-scripts/smart-shard-count.ts | 2 +- tsconfig.json | 8 +- 74 files changed, 572 insertions(+), 956 deletions(-) create mode 100644 patches/estree-walker@3.0.3.patch diff --git a/.prettierignore b/.prettierignore index 561556b2710..346f08df379 100644 --- a/.prettierignore +++ b/.prettierignore @@ -1,2 +1,3 @@ *.d.ts -out \ No newline at end of file +out +dist \ No newline at end of file diff --git a/eslint.config.mjs b/eslint.config.mjs index d5655a5bc02..68e5b2b3082 100644 --- a/eslint.config.mjs +++ b/eslint.config.mjs @@ -18,6 +18,7 @@ export default [{ ignores: [ "**/*.d.ts", "**/out", + "**/dist", // used for CLI "**/main.js", "test/vitest-setup.ts", @@ -25,6 +26,7 @@ export default [{ "packages/electron-builder/cli.js", "packages/electron-builder/install-app-deps.js", "packages/app-builder-lib/src/node-module-collector/hoist.ts", // @yarn/pkg vendor code + "**/tsup.config.ts", "test/fixtures/**", "test/src/helpers/**", "test/src/generated/**", @@ -59,7 +61,7 @@ export default [{ "@typescript-eslint/prefer-promise-reject-errors": "off", "curly": ["error", "all"], - "nonblock-statement-body-position": ["error", "below"], + "nonblock-statement-body-position": "off", "@stylistic/member-delimiter-style": ["error", { multiline: { @@ -89,4 +91,12 @@ export default [{ "@typescript-eslint/explicit-function-return-type": ["off", {}], "@typescript-eslint/no-redundant-type-constituents": "off", }, +}, { + files: ["test/src/**/*.ts"], + rules: { + // Test helpers often use async without await for framework compatibility + "@typescript-eslint/require-await": "off", + // Test code routinely passes methods as callbacks without binding + "@typescript-eslint/unbound-method": "off", + }, }]; \ No newline at end of file diff --git a/package.json b/package.json index 1047a1a3b47..24e8097486b 100644 --- a/package.json +++ b/package.json @@ -5,7 +5,7 @@ "scripts": { "//": "do not wrap into single quotes - windows doesn't unwrap arg in this case", "compile": "pnpm ci:test:generate && pnpm run -r --if-present --filter '!@electron-builder/website' --filter '!@electron-builder/test' build", - "typecheck": "tsc --build --noEmit", + "typecheck": "tsc --build", "lint": "eslint packages test/src --ext .ts,.js", "lint-deps": "node ./scripts/checkDeps.js", "pretest": "pnpm lint-deps && pnpm lint", @@ -13,9 +13,9 @@ "///": "Please see https://github.com/electron-userland/electron-builder/blob/master/CONTRIBUTING.md#run-test-using-cli how to run particular test instead full (and very slow) run", "test-all": "pnpm compile && pnpm pretest && pnpm ci:test", "test-linux": "bash docker/run-tests.sh", - "ci:test": "ts-node test/vitest-scripts/run-vitest.ts", - "ci:test:generate": "ts-node test/vitest-scripts/generate-tests.ts", - "ci:test:count": "ts-node test/vitest-scripts/smart-shard-count.ts", + "ci:test": "tsx test/vitest-scripts/run-vitest.ts", + "ci:test:generate": "tsx test/vitest-scripts/generate-tests.ts", + "ci:test:count": "tsx test/vitest-scripts/smart-shard-count.ts", "ci:validate": "pnpm compile && pnpm pretest && pnpm generate:all", "ci:version": "pnpm i && changeset version && node scripts/update-package-version-export.js && pnpm changelog && pnpm compile && pnpm generate:all && git add .", "ci:publish": "pnpm i && pnpm compile && pnpm publish -r --tag ${NPM_DIST_TAG:-next} && changeset tag", @@ -49,11 +49,12 @@ "conventional-changelog-cli": "5.0.0", "depcheck": "1.4.7", "eslint": "9.39.2", + "fs-extra": "^10.1.0", "eslint-config-prettier": "^9.1.0", "eslint-plugin-prettier": "^5.2.1", "is-ci": "^4.1.0", "prettier": "3.7.4", - "ts-node": "^10.9.2", + "tsx": "^4.0.0", "tsup": "^8.0.0", "typescript": "^5.6.2", "typescript-json-schema": "0.64.0", diff --git a/packages/app-builder-lib/package.json b/packages/app-builder-lib/package.json index ebe6107da4a..77a5002d214 100644 --- a/packages/app-builder-lib/package.json +++ b/packages/app-builder-lib/package.json @@ -14,7 +14,8 @@ "types": "./dist/indexInternal.d.ts", "import": "./dist/indexInternal.mjs", "require": "./dist/indexInternal.js" - } + }, + "./src/*": "./src/*.ts" }, "files": [ "dist", diff --git a/packages/app-builder-lib/src/electron/ElectronFramework.ts b/packages/app-builder-lib/src/electron/ElectronFramework.ts index 652c8b0282b..08e1b2cd6bd 100644 --- a/packages/app-builder-lib/src/electron/ElectronFramework.ts +++ b/packages/app-builder-lib/src/electron/ElectronFramework.ts @@ -197,7 +197,7 @@ export async function createElectronFrameworkSupport(configuration: Configuratio /** * Unpacks a custom or default Electron distribution into the app output directory. */ -async function unpack(prepareOptions: PrepareApplicationStageDirectoryOptions, downloadOptions: ElectronDownloadOptions, distMacOsAppName: string): Promise { +async function unpack(prepareOptions: PrepareApplicationStageDirectoryOptions, downloadOptions: ElectronDownloadOptions, _distMacOsAppName: string): Promise { async function selectElectron(filepath: string) { const resolvedDist = path.isAbsolute(filepath) ? filepath : path.resolve(packager.projectDir, filepath) diff --git a/packages/app-builder-lib/src/mac/MacTargetHelper.ts b/packages/app-builder-lib/src/mac/MacTargetHelper.ts index e46ec6e4c07..21c8bbcc6e2 100644 --- a/packages/app-builder-lib/src/mac/MacTargetHelper.ts +++ b/packages/app-builder-lib/src/mac/MacTargetHelper.ts @@ -249,8 +249,12 @@ export class MacTargetHelper { } static getPlatformTypeFromTarget(targetName: string): PlatformType { - if (targetName === "mas") return "mas" - if (targetName === "mas-dev") return "mas-dev" + if (targetName === "mas") { + return "mas" + } + if (targetName === "mas-dev") { + return "mas-dev" + } return "mac" } diff --git a/packages/app-builder-lib/src/platformPackager.ts b/packages/app-builder-lib/src/platformPackager.ts index cefb93166a5..b526dde4ef4 100644 --- a/packages/app-builder-lib/src/platformPackager.ts +++ b/packages/app-builder-lib/src/platformPackager.ts @@ -31,7 +31,10 @@ import { FuseOptionsV1 } from "./configuration" import { copyFiles, FileMatcher, getFileMatchers, GetFileMatchersOptions, getMainFileMatchers, getNodeModuleFileMatcher } from "./fileMatcher" import { createTransformer, isElectronCompileUsed } from "./fileTransformer" import { Framework, isElectronBased } from "./Framework" -import { +import { Platform } from "./core" +// Type-only barrel import: keeping these erased avoids a runtime cycle +// (index.ts → linuxPackager.ts → platformPackager.ts) that breaks ESM class init. +import type { AfterPackContext, AsarOptions, CompressionLevel, @@ -41,7 +44,6 @@ import { LinuxPackager, Packager, PackagerOptions, - Platform, PlatformSpecificBuildOptions, Target, TargetSpecificOptions, @@ -420,7 +422,9 @@ export abstract class PlatformPackager linux: "", }[electronPlatformName] - const executableName = this instanceof LinuxPackager ? this.executableName : this.appInfo.productFilename + // `"executableName" in this` instead of `instanceof LinuxPackager` keeps LinuxPackager a + // type-only import, avoiding the index.ts → linuxPackager.ts → platformPackager.ts runtime cycle. + const executableName = "executableName" in this ? (this as LinuxPackager).executableName : this.appInfo.productFilename const electronBinaryPath = path.join(appOutDir, `${executableName}${ext}`) log.info({ electronPath: log.filePath(electronBinaryPath) }, "executing @electron/fuses") diff --git a/packages/app-builder-lib/src/targets/AppImageTarget.ts b/packages/app-builder-lib/src/targets/AppImageTarget.ts index 60df62df191..914f1d40e64 100644 --- a/packages/app-builder-lib/src/targets/AppImageTarget.ts +++ b/packages/app-builder-lib/src/targets/AppImageTarget.ts @@ -1,4 +1,5 @@ -import { Arch, serializeToYaml } from "builder-util" +import { Arch, serializeToYaml, executeAppBuilder } from "builder-util" +import { objectToArgs } from "builder-util-runtime" import fsExtra from "fs-extra" import { Lazy } from "lazy-val" import * as path from "path" @@ -6,7 +7,6 @@ import { Target } from "../core.js" import { LinuxPackager } from "../linuxPackager.js" import { AppImageOptions } from "../options/linuxOptions.js" import { getAppUpdatePublishConfiguration } from "../publish/PublishManager.js" -import { executeAppBuilderAsJson, objectToArgs } from "../util/appBuilder.js" import { getNotLocalizedLicenseFile } from "../util/license.js" import { LinuxTargetHelper } from "./LinuxTargetHelper.js" import { createStageDir } from "./targetUtil.js" @@ -90,13 +90,14 @@ export default class AppImageTarget extends Target { ...options, }), ] - objectToArgs(args, { - license, - }) + args.push(...objectToArgs({ license })) if (packager.compression === "maximum") { args.push("--compression", "xz") } + const rawResult = await executeAppBuilder(args) + const updateInfo = rawResult === "" ? Object.create(null) : JSON.parse(rawResult) + await packager.info.emitArtifactBuildCompleted({ file: artifactPath, safeArtifactName: packager.computeSafeArtifactName(artifactName, "AppImage", arch, false), @@ -104,7 +105,7 @@ export default class AppImageTarget extends Target { arch, packager, isWriteUpdateInfo: true, - updateInfo: await executeAppBuilderAsJson(args), + updateInfo, }) } } diff --git a/packages/app-builder-lib/src/targets/LinuxTargetHelper.ts b/packages/app-builder-lib/src/targets/LinuxTargetHelper.ts index 1e6fea6c74e..3dabfc78d3c 100644 --- a/packages/app-builder-lib/src/targets/LinuxTargetHelper.ts +++ b/packages/app-builder-lib/src/targets/LinuxTargetHelper.ts @@ -99,7 +99,6 @@ export class LinuxTargetHelper { return this.mimeTypeFilesPromise.value } - // eslint-disable-next-line @typescript-eslint/no-explicit-any getSnapCore(): SnapCore { const { snapcraft, snap: legacySnap } = this.packager.config if (snapcraft != null && legacySnap != null) { diff --git a/packages/app-builder-lib/src/targets/snap/core24.ts b/packages/app-builder-lib/src/targets/snap/core24.ts index 9bd19632891..577015a518d 100644 --- a/packages/app-builder-lib/src/targets/snap/core24.ts +++ b/packages/app-builder-lib/src/targets/snap/core24.ts @@ -1,7 +1,7 @@ import { Arch, archFromString, copyDir, InvalidConfigurationError, log, removeNullish, toLinuxArchString } from "builder-util" import { copy, mkdir, readdir, writeFile } from "fs-extra" import * as path from "path" -import { PlugDescriptor, SlotDescriptor, SnapOptions24, SnapcraftOptions } from "../../options/SnapOptions" +import { PlugDescriptor, SlotDescriptor, SnapOptions24 } from "../../options/SnapOptions" import { SnapCore } from "./SnapTarget" import { App, Part, SnapcraftYAML } from "./snapcraft" import { buildSnap, DEFAULT_STAGE_PACKAGES, SNAPCRAFT_YAML_OPTIONS } from "./snapcraftBuilder" @@ -110,7 +110,7 @@ export class SnapCore24 extends SnapCore { } } - const rootOptions = this.packager.config.snapcraft as SnapcraftOptions | null | undefined + const rootOptions = this.packager.config.snapcraft await buildSnap({ snapcraftConfig: snap, artifactPath, diff --git a/packages/app-builder-lib/src/util/dynamicImport.ts b/packages/app-builder-lib/src/util/dynamicImport.ts index 86d726a5708..ef1863a9bc4 100644 --- a/packages/app-builder-lib/src/util/dynamicImport.ts +++ b/packages/app-builder-lib/src/util/dynamicImport.ts @@ -2,10 +2,9 @@ // `await Promise.resolve().then(() => require(x))`, which fails for ESM-only // packages. helpers/dynamic-import.js is plain JS so TypeScript never // transforms its native import() call — route through it instead. -// eslint-disable-next-line @typescript-eslint/no-require-imports + const _helper = require("../../helpers/dynamic-import") as { dynamicImport(path: string): Promise } -// eslint-disable-next-line @typescript-eslint/no-explicit-any export function dynamicImport(modulePath: string): Promise { return _helper.dynamicImport(modulePath) } diff --git a/packages/app-builder-lib/src/vm/vm.ts b/packages/app-builder-lib/src/vm/vm.ts index 8eee1c1c796..893fd231e78 100644 --- a/packages/app-builder-lib/src/vm/vm.ts +++ b/packages/app-builder-lib/src/vm/vm.ts @@ -63,7 +63,7 @@ export async function getLinuxVm(debugLogger: DebugLogger): Promise it.state === "running") || vmList.find(it => it.state === "suspended") || vmList[0] - return new parallelsVmModule.ParallelsVmManager(vm!) + return new parallelsVmModule.ParallelsVmManager(vm) } catch { return undefined } diff --git a/packages/builder-util-runtime/package.json b/packages/builder-util-runtime/package.json index 593b819853d..79279891aab 100644 --- a/packages/builder-util-runtime/package.json +++ b/packages/builder-util-runtime/package.json @@ -13,7 +13,8 @@ "types": "./dist/indexInternal.d.ts", "import": "./dist/indexInternal.mjs", "require": "./dist/indexInternal.js" - } + }, + "./src/*": "./src/*.ts" }, "author": "Vladimir Krivosheev", "license": "MIT", diff --git a/packages/builder-util/package.json b/packages/builder-util/package.json index 237caa0b0f8..b53b8a4b5bf 100644 --- a/packages/builder-util/package.json +++ b/packages/builder-util/package.json @@ -13,7 +13,8 @@ "types": "./dist/indexInternal.d.ts", "import": "./dist/indexInternal.mjs", "require": "./dist/indexInternal.js" - } + }, + "./src/*": "./src/*.ts" }, "author": "Vladimir Krivosheev", "license": "MIT", diff --git a/packages/builder-util/src/deepAssign.ts b/packages/builder-util/src/deepAssign.ts index 0e00591cee7..1760c9b4fc9 100644 --- a/packages/builder-util/src/deepAssign.ts +++ b/packages/builder-util/src/deepAssign.ts @@ -1,4 +1,4 @@ -import { isValidKey } from "./mapper.js" +import { isValidKey } from "builder-util-runtime" function isObject(x: any) { if (Array.isArray(x)) { diff --git a/packages/dmg-builder/package.json b/packages/dmg-builder/package.json index bfa73bd1c8a..bacee818952 100644 --- a/packages/dmg-builder/package.json +++ b/packages/dmg-builder/package.json @@ -1,41 +1,42 @@ { - "name": "dmg-builder", - "version": "26.14.0", - "main": "./dist/dmgUtil.js", - "module": "./dist/dmgUtil.mjs", - "exports": { - ".": { - "types": "./dist/dmgUtil.d.ts", - "import": "./dist/dmgUtil.mjs", - "require": "./dist/dmgUtil.js" - } - }, - "author": "Vladimir Krivosheev", - "license": "MIT", - "repository": { - "type": "git", - "url": "git+https://github.com/electron-userland/electron-builder.git", - "directory": "packages/dmg-builder" - }, - "bugs": "https://github.com/electron-userland/electron-builder/issues", - "homepage": "https://github.com/electron-userland/electron-builder", - "files": [ - "dist", - "templates" - ], - "scripts": { - "build": "tsup" - }, - "dependencies": { - "app-builder-lib": "workspace:*", - "builder-util": "workspace:*", - "fs-extra": "^10.1.0", - "js-yaml": "^4.1.0" - }, - "devDependencies": { - "@types/fs-extra": "9.0.13", - "@types/js-yaml": "4.0.3", - "temp-file": "3.4.0" - }, - "types": "./dist/dmgUtil.d.ts" + "name": "dmg-builder", + "version": "26.14.0", + "main": "./dist/dmgUtil.js", + "module": "./dist/dmgUtil.mjs", + "exports": { + ".": { + "types": "./dist/dmgUtil.d.ts", + "import": "./dist/dmgUtil.mjs", + "require": "./dist/dmgUtil.js" + }, + "./src/*": "./src/*.ts" + }, + "author": "Vladimir Krivosheev", + "license": "MIT", + "repository": { + "type": "git", + "url": "git+https://github.com/electron-userland/electron-builder.git", + "directory": "packages/dmg-builder" + }, + "bugs": "https://github.com/electron-userland/electron-builder/issues", + "homepage": "https://github.com/electron-userland/electron-builder", + "files": [ + "dist", + "templates" + ], + "scripts": { + "build": "tsup" + }, + "dependencies": { + "app-builder-lib": "workspace:*", + "builder-util": "workspace:*", + "fs-extra": "^10.1.0", + "js-yaml": "^4.1.0" + }, + "devDependencies": { + "@types/fs-extra": "9.0.13", + "@types/js-yaml": "4.0.3", + "temp-file": "3.4.0" + }, + "types": "./dist/dmgUtil.d.ts" } diff --git a/packages/electron-builder-squirrel-windows/package.json b/packages/electron-builder-squirrel-windows/package.json index 80075ddbc9e..a8ff0f5d907 100644 --- a/packages/electron-builder-squirrel-windows/package.json +++ b/packages/electron-builder-squirrel-windows/package.json @@ -8,7 +8,8 @@ "types": "./dist/SquirrelWindowsTarget.d.ts", "import": "./dist/SquirrelWindowsTarget.mjs", "require": "./dist/SquirrelWindowsTarget.js" - } + }, + "./src/*": "./src/*.ts" }, "author": "Vladimir Krivosheev", "license": "MIT", diff --git a/packages/electron-builder/package.json b/packages/electron-builder/package.json index 7a3700e3050..4cec83ee02a 100644 --- a/packages/electron-builder/package.json +++ b/packages/electron-builder/package.json @@ -1,6 +1,6 @@ { "name": "electron-builder", - "description": "A complete solution to package and build a ready for distribution Electron app for MacOS, Windows and Linux with “auto update” support out of the box", + "description": "A complete solution to package and build a ready for distribution Electron app for MacOS, Windows and Linux with \u201cauto update\u201d support out of the box", "version": "26.14.0", "main": "./dist/index.js", "module": "./dist/index.mjs", @@ -14,7 +14,8 @@ "types": "./dist/indexInternal.d.ts", "import": "./dist/indexInternal.mjs", "require": "./dist/indexInternal.js" - } + }, + "./src/*": "./src/*.ts" }, "files": [ "dist", diff --git a/packages/electron-builder/src/cli/install-app-deps.ts b/packages/electron-builder/src/cli/install-app-deps.ts index 789a484d470..b83ab747142 100644 --- a/packages/electron-builder/src/cli/install-app-deps.ts +++ b/packages/electron-builder/src/cli/install-app-deps.ts @@ -1,6 +1,14 @@ #! /usr/bin/env node -import { computeDefaultAppDirectory, determinePackageManagerEnv, getConfig, getElectronVersion, installOrRebuild, orNullIfFileNotExist, PACKAGE_VERSION } from "app-builder-lib/internal" +import { + computeDefaultAppDirectory, + determinePackageManagerEnv, + getConfig, + getElectronVersion, + installOrRebuild, + orNullIfFileNotExist, + PACKAGE_VERSION, +} from "app-builder-lib/internal" import { getArchCliNames, log, printErrorAndExit } from "builder-util" import { readJson } from "fs-extra" import { Lazy } from "lazy-val" @@ -64,7 +72,7 @@ export async function installAppDeps(args: any) { } function main() { - return installAppDeps(configureInstallAppDepsCommand(yargs).argv) + return installAppDeps(configureInstallAppDepsCommand(yargs as unknown as yargs.Argv).argv) } if (require.main === module) { diff --git a/packages/electron-publish/package.json b/packages/electron-publish/package.json index 9b990fe6367..78f89126a1c 100644 --- a/packages/electron-publish/package.json +++ b/packages/electron-publish/package.json @@ -13,7 +13,8 @@ "types": "./dist/indexInternal.d.ts", "import": "./dist/indexInternal.mjs", "require": "./dist/indexInternal.js" - } + }, + "./src/*": "./src/*.ts" }, "author": "Vladimir Krivosheev", "license": "MIT", diff --git a/packages/electron-publish/src/s3/awsCredentials.ts b/packages/electron-publish/src/s3/awsCredentials.ts index 7d051897a46..5a67c7f7dea 100644 --- a/packages/electron-publish/src/s3/awsCredentials.ts +++ b/packages/electron-publish/src/s3/awsCredentials.ts @@ -18,7 +18,9 @@ function parseIniSection(content: string, sectionName: string): Record 0) { diff --git a/packages/electron-publish/src/s3/s3UploadHelper.ts b/packages/electron-publish/src/s3/s3UploadHelper.ts index f98e78ea5d9..b4d7f3b6bc2 100644 --- a/packages/electron-publish/src/s3/s3UploadHelper.ts +++ b/packages/electron-publish/src/s3/s3UploadHelper.ts @@ -55,9 +55,15 @@ export function startS3PutObject(params: S3PutObjectParams): { req: http.ClientR "Content-Type": params.contentType, "Content-Length": String(stat.size), } - if (params.acl != null) headers["x-amz-acl"] = params.acl - if (params.storageClass != null) headers["x-amz-storage-class"] = params.storageClass - if (params.serverSideEncryption != null) headers["x-amz-server-side-encryption"] = params.serverSideEncryption + if (params.acl != null) { + headers["x-amz-acl"] = params.acl + } + if (params.storageClass != null) { + headers["x-amz-storage-class"] = params.storageClass + } + if (params.serverSideEncryption != null) { + headers["x-amz-server-side-encryption"] = params.serverSideEncryption + } const signed = sign( { diff --git a/packages/electron-publish/src/s3/spacesPublisher.ts b/packages/electron-publish/src/s3/spacesPublisher.ts index b63ae407b89..8a8a2b87600 100644 --- a/packages/electron-publish/src/s3/spacesPublisher.ts +++ b/packages/electron-publish/src/s3/spacesPublisher.ts @@ -44,7 +44,7 @@ export class SpacesPublisher extends BaseS3Publisher { return { region: this.info.region, endpoint: `https://${this.info.region}.digitaloceanspaces.com`, - credentials: { accessKeyId: accessKey!, secretAccessKey: secretKey! }, + credentials: { accessKeyId: accessKey, secretAccessKey: secretKey }, } } } diff --git a/packages/electron-updater/package.json b/packages/electron-updater/package.json index aeead77b3b5..0114b1e15cd 100644 --- a/packages/electron-updater/package.json +++ b/packages/electron-updater/package.json @@ -14,7 +14,8 @@ "types": "./dist/indexInternal.d.ts", "import": "./dist/indexInternal.mjs", "require": "./dist/indexInternal.js" - } + }, + "./src/*": "./src/*.ts" }, "author": "Vladimir Krivosheev", "license": "MIT", diff --git a/patches/estree-walker@3.0.3.patch b/patches/estree-walker@3.0.3.patch new file mode 100644 index 00000000000..527f36a5f82 --- /dev/null +++ b/patches/estree-walker@3.0.3.patch @@ -0,0 +1,14 @@ +diff --git a/package.json b/package.json +index c9f54edd9f394c267429a4b1393d67df42fbbe45..e35588d8883ef95741ae2c1daab72c1b654bb655 100644 +--- a/package.json ++++ b/package.json +@@ -15,7 +15,8 @@ + "./package.json": "./package.json", + ".": { + "types": "./types/index.d.ts", +- "import": "./src/index.js" ++ "import": "./src/index.js", ++ "require": "./src/index.js" + } + }, + "types": "types/index.d.ts", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 8ee7e84ed11..261f3e2315e 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -74,9 +74,6 @@ importers: ts-node: specifier: ^10.9.2 version: 10.9.2(@swc/core@1.15.33)(@types/node@22.13.17)(typescript@5.8.2) - tsup: - specifier: ^8.0.0 - version: 8.5.1(@swc/core@1.15.33)(jiti@2.4.2)(postcss@8.5.14)(typescript@5.8.2)(yaml@2.8.4) typedoc: specifier: ^0.28.19 version: 0.28.19(typescript@5.8.2) @@ -547,8 +544,8 @@ importers: specifier: workspace:* version: link:../builder-util-runtime fs-extra: - specifier: ^11.3.4 - version: 11.3.5 + specifier: ^10.1.0 + version: 10.1.0 js-yaml: specifier: ^4.1.0 version: 4.1.1 @@ -726,19 +723,19 @@ importers: dependencies: '@docusaurus/core': specifier: 3.10.1 - version: 3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(esbuild@0.27.7)(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3) + version: 3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3) '@docusaurus/faster': specifier: 3.10.1 - version: 3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(esbuild@0.27.7)(postcss@8.5.14) + version: 3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(postcss@8.5.14) '@docusaurus/plugin-client-redirects': specifier: 3.10.1 - version: 3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(esbuild@0.27.7)(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3) + version: 3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3) '@docusaurus/preset-classic': specifier: 3.10.1 - version: 3.10.1(@algolia/client-search@5.52.1)(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(esbuild@0.27.7)(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(@types/react@19.2.14)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(search-insights@2.17.3)(typescript@5.6.3) + version: 3.10.1(@algolia/client-search@5.52.1)(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(@types/react@19.2.14)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(search-insights@2.17.3)(typescript@5.6.3) '@docusaurus/theme-mermaid': specifier: 3.10.1 - version: 3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(esbuild@0.27.7)(postcss@8.5.14))(@docusaurus/plugin-content-docs@3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(esbuild@0.27.7)(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3) + version: 3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(postcss@8.5.14))(@docusaurus/plugin-content-docs@3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3) clsx: specifier: 2.1.1 version: 2.1.1 @@ -757,13 +754,13 @@ importers: devDependencies: '@docusaurus/module-type-aliases': specifier: 3.10.1 - version: 3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + version: 3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) '@docusaurus/tsconfig': specifier: 3.10.1 version: 3.10.1 '@docusaurus/types': specifier: 3.10.1 - version: 3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + version: 3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) '@types/react': specifier: ^19.0.0 version: 19.2.14 @@ -2849,306 +2846,150 @@ packages: cpu: [ppc64] os: [aix] - '@esbuild/aix-ppc64@0.27.7': - resolution: {integrity: sha512-EKX3Qwmhz1eMdEJokhALr0YiD0lhQNwDqkPYyPhiSwKrh7/4KRjQc04sZ8db+5DVVnZ1LmbNDI1uAMPEUBnQPg==} - engines: {node: '>=18'} - cpu: [ppc64] - os: [aix] - '@esbuild/android-arm64@0.25.2': resolution: {integrity: sha512-5ZAX5xOmTligeBaeNEPnPaeEuah53Id2tX4c2CVP3JaROTH+j4fnfHCkr1PjXMd78hMst+TlkfKcW/DlTq0i4w==} engines: {node: '>=18'} cpu: [arm64] os: [android] - '@esbuild/android-arm64@0.27.7': - resolution: {integrity: sha512-62dPZHpIXzvChfvfLJow3q5dDtiNMkwiRzPylSCfriLvZeq0a1bWChrGx/BbUbPwOrsWKMn8idSllklzBy+dgQ==} - engines: {node: '>=18'} - cpu: [arm64] - os: [android] - '@esbuild/android-arm@0.25.2': resolution: {integrity: sha512-NQhH7jFstVY5x8CKbcfa166GoV0EFkaPkCKBQkdPJFvo5u+nGXLEH/ooniLb3QI8Fk58YAx7nsPLozUWfCBOJA==} engines: {node: '>=18'} cpu: [arm] os: [android] - '@esbuild/android-arm@0.27.7': - resolution: {integrity: sha512-jbPXvB4Yj2yBV7HUfE2KHe4GJX51QplCN1pGbYjvsyCZbQmies29EoJbkEc+vYuU5o45AfQn37vZlyXy4YJ8RQ==} - engines: {node: '>=18'} - cpu: [arm] - os: [android] - '@esbuild/android-x64@0.25.2': resolution: {integrity: sha512-Ffcx+nnma8Sge4jzddPHCZVRvIfQ0kMsUsCMcJRHkGJ1cDmhe4SsrYIjLUKn1xpHZybmOqCWwB0zQvsjdEHtkg==} engines: {node: '>=18'} cpu: [x64] os: [android] - '@esbuild/android-x64@0.27.7': - resolution: {integrity: sha512-x5VpMODneVDb70PYV2VQOmIUUiBtY3D3mPBG8NxVk5CogneYhkR7MmM3yR/uMdITLrC1ml/NV1rj4bMJuy9MCg==} - engines: {node: '>=18'} - cpu: [x64] - os: [android] - '@esbuild/darwin-arm64@0.25.2': resolution: {integrity: sha512-MpM6LUVTXAzOvN4KbjzU/q5smzryuoNjlriAIx+06RpecwCkL9JpenNzpKd2YMzLJFOdPqBpuub6eVRP5IgiSA==} engines: {node: '>=18'} cpu: [arm64] os: [darwin] - '@esbuild/darwin-arm64@0.27.7': - resolution: {integrity: sha512-5lckdqeuBPlKUwvoCXIgI2D9/ABmPq3Rdp7IfL70393YgaASt7tbju3Ac+ePVi3KDH6N2RqePfHnXkaDtY9fkw==} - engines: {node: '>=18'} - cpu: [arm64] - os: [darwin] - '@esbuild/darwin-x64@0.25.2': resolution: {integrity: sha512-5eRPrTX7wFyuWe8FqEFPG2cU0+butQQVNcT4sVipqjLYQjjh8a8+vUTfgBKM88ObB85ahsnTwF7PSIt6PG+QkA==} engines: {node: '>=18'} cpu: [x64] os: [darwin] - '@esbuild/darwin-x64@0.27.7': - resolution: {integrity: sha512-rYnXrKcXuT7Z+WL5K980jVFdvVKhCHhUwid+dDYQpH+qu+TefcomiMAJpIiC2EM3Rjtq0sO3StMV/+3w3MyyqQ==} - engines: {node: '>=18'} - cpu: [x64] - os: [darwin] - '@esbuild/freebsd-arm64@0.25.2': resolution: {integrity: sha512-mLwm4vXKiQ2UTSX4+ImyiPdiHjiZhIaE9QvC7sw0tZ6HoNMjYAqQpGyui5VRIi5sGd+uWq940gdCbY3VLvsO1w==} engines: {node: '>=18'} cpu: [arm64] os: [freebsd] - '@esbuild/freebsd-arm64@0.27.7': - resolution: {integrity: sha512-B48PqeCsEgOtzME2GbNM2roU29AMTuOIN91dsMO30t+Ydis3z/3Ngoj5hhnsOSSwNzS+6JppqWsuhTp6E82l2w==} - engines: {node: '>=18'} - cpu: [arm64] - os: [freebsd] - '@esbuild/freebsd-x64@0.25.2': resolution: {integrity: sha512-6qyyn6TjayJSwGpm8J9QYYGQcRgc90nmfdUb0O7pp1s4lTY+9D0H9O02v5JqGApUyiHOtkz6+1hZNvNtEhbwRQ==} engines: {node: '>=18'} cpu: [x64] os: [freebsd] - '@esbuild/freebsd-x64@0.27.7': - resolution: {integrity: sha512-jOBDK5XEjA4m5IJK3bpAQF9/Lelu/Z9ZcdhTRLf4cajlB+8VEhFFRjWgfy3M1O4rO2GQ/b2dLwCUGpiF/eATNQ==} - engines: {node: '>=18'} - cpu: [x64] - os: [freebsd] - '@esbuild/linux-arm64@0.25.2': resolution: {integrity: sha512-gq/sjLsOyMT19I8obBISvhoYiZIAaGF8JpeXu1u8yPv8BE5HlWYobmlsfijFIZ9hIVGYkbdFhEqC0NvM4kNO0g==} engines: {node: '>=18'} cpu: [arm64] os: [linux] - '@esbuild/linux-arm64@0.27.7': - resolution: {integrity: sha512-RZPHBoxXuNnPQO9rvjh5jdkRmVizktkT7TCDkDmQ0W2SwHInKCAV95GRuvdSvA7w4VMwfCjUiPwDi0ZO6Nfe9A==} - engines: {node: '>=18'} - cpu: [arm64] - os: [linux] - '@esbuild/linux-arm@0.25.2': resolution: {integrity: sha512-UHBRgJcmjJv5oeQF8EpTRZs/1knq6loLxTsjc3nxO9eXAPDLcWW55flrMVc97qFPbmZP31ta1AZVUKQzKTzb0g==} engines: {node: '>=18'} cpu: [arm] os: [linux] - '@esbuild/linux-arm@0.27.7': - resolution: {integrity: sha512-RkT/YXYBTSULo3+af8Ib0ykH8u2MBh57o7q/DAs3lTJlyVQkgQvlrPTnjIzzRPQyavxtPtfg0EopvDyIt0j1rA==} - engines: {node: '>=18'} - cpu: [arm] - os: [linux] - '@esbuild/linux-ia32@0.25.2': resolution: {integrity: sha512-bBYCv9obgW2cBP+2ZWfjYTU+f5cxRoGGQ5SeDbYdFCAZpYWrfjjfYwvUpP8MlKbP0nwZ5gyOU/0aUzZ5HWPuvQ==} engines: {node: '>=18'} cpu: [ia32] os: [linux] - '@esbuild/linux-ia32@0.27.7': - resolution: {integrity: sha512-GA48aKNkyQDbd3KtkplYWT102C5sn/EZTY4XROkxONgruHPU72l+gW+FfF8tf2cFjeHaRbWpOYa/uRBz/Xq1Pg==} - engines: {node: '>=18'} - cpu: [ia32] - os: [linux] - '@esbuild/linux-loong64@0.25.2': resolution: {integrity: sha512-SHNGiKtvnU2dBlM5D8CXRFdd+6etgZ9dXfaPCeJtz+37PIUlixvlIhI23L5khKXs3DIzAn9V8v+qb1TRKrgT5w==} engines: {node: '>=18'} cpu: [loong64] os: [linux] - '@esbuild/linux-loong64@0.27.7': - resolution: {integrity: sha512-a4POruNM2oWsD4WKvBSEKGIiWQF8fZOAsycHOt6JBpZ+JN2n2JH9WAv56SOyu9X5IqAjqSIPTaJkqN8F7XOQ5Q==} - engines: {node: '>=18'} - cpu: [loong64] - os: [linux] - '@esbuild/linux-mips64el@0.25.2': resolution: {integrity: sha512-hDDRlzE6rPeoj+5fsADqdUZl1OzqDYow4TB4Y/3PlKBD0ph1e6uPHzIQcv2Z65u2K0kpeByIyAjCmjn1hJgG0Q==} engines: {node: '>=18'} cpu: [mips64el] os: [linux] - '@esbuild/linux-mips64el@0.27.7': - resolution: {integrity: sha512-KabT5I6StirGfIz0FMgl1I+R1H73Gp0ofL9A3nG3i/cYFJzKHhouBV5VWK1CSgKvVaG4q1RNpCTR2LuTVB3fIw==} - engines: {node: '>=18'} - cpu: [mips64el] - os: [linux] - '@esbuild/linux-ppc64@0.25.2': resolution: {integrity: sha512-tsHu2RRSWzipmUi9UBDEzc0nLc4HtpZEI5Ba+Omms5456x5WaNuiG3u7xh5AO6sipnJ9r4cRWQB2tUjPyIkc6g==} engines: {node: '>=18'} cpu: [ppc64] os: [linux] - '@esbuild/linux-ppc64@0.27.7': - resolution: {integrity: sha512-gRsL4x6wsGHGRqhtI+ifpN/vpOFTQtnbsupUF5R5YTAg+y/lKelYR1hXbnBdzDjGbMYjVJLJTd2OFmMewAgwlQ==} - engines: {node: '>=18'} - cpu: [ppc64] - os: [linux] - '@esbuild/linux-riscv64@0.25.2': resolution: {integrity: sha512-k4LtpgV7NJQOml/10uPU0s4SAXGnowi5qBSjaLWMojNCUICNu7TshqHLAEbkBdAszL5TabfvQ48kK84hyFzjnw==} engines: {node: '>=18'} cpu: [riscv64] os: [linux] - '@esbuild/linux-riscv64@0.27.7': - resolution: {integrity: sha512-hL25LbxO1QOngGzu2U5xeXtxXcW+/GvMN3ejANqXkxZ/opySAZMrc+9LY/WyjAan41unrR3YrmtTsUpwT66InQ==} - engines: {node: '>=18'} - cpu: [riscv64] - os: [linux] - '@esbuild/linux-s390x@0.25.2': resolution: {integrity: sha512-GRa4IshOdvKY7M/rDpRR3gkiTNp34M0eLTaC1a08gNrh4u488aPhuZOCpkF6+2wl3zAN7L7XIpOFBhnaE3/Q8Q==} engines: {node: '>=18'} cpu: [s390x] os: [linux] - '@esbuild/linux-s390x@0.27.7': - resolution: {integrity: sha512-2k8go8Ycu1Kb46vEelhu1vqEP+UeRVj2zY1pSuPdgvbd5ykAw82Lrro28vXUrRmzEsUV0NzCf54yARIK8r0fdw==} - engines: {node: '>=18'} - cpu: [s390x] - os: [linux] - '@esbuild/linux-x64@0.25.2': resolution: {integrity: sha512-QInHERlqpTTZ4FRB0fROQWXcYRD64lAoiegezDunLpalZMjcUcld3YzZmVJ2H/Cp0wJRZ8Xtjtj0cEHhYc/uUg==} engines: {node: '>=18'} cpu: [x64] os: [linux] - '@esbuild/linux-x64@0.27.7': - resolution: {integrity: sha512-hzznmADPt+OmsYzw1EE33ccA+HPdIqiCRq7cQeL1Jlq2gb1+OyWBkMCrYGBJ+sxVzve2ZJEVeePbLM2iEIZSxA==} - engines: {node: '>=18'} - cpu: [x64] - os: [linux] - '@esbuild/netbsd-arm64@0.25.2': resolution: {integrity: sha512-talAIBoY5M8vHc6EeI2WW9d/CkiO9MQJ0IOWX8hrLhxGbro/vBXJvaQXefW2cP0z0nQVTdQ/eNyGFV1GSKrxfw==} engines: {node: '>=18'} cpu: [arm64] os: [netbsd] - '@esbuild/netbsd-arm64@0.27.7': - resolution: {integrity: sha512-b6pqtrQdigZBwZxAn1UpazEisvwaIDvdbMbmrly7cDTMFnw/+3lVxxCTGOrkPVnsYIosJJXAsILG9XcQS+Yu6w==} - engines: {node: '>=18'} - cpu: [arm64] - os: [netbsd] - '@esbuild/netbsd-x64@0.25.2': resolution: {integrity: sha512-voZT9Z+tpOxrvfKFyfDYPc4DO4rk06qamv1a/fkuzHpiVBMOhpjK+vBmWM8J1eiB3OLSMFYNaOaBNLXGChf5tg==} engines: {node: '>=18'} cpu: [x64] os: [netbsd] - '@esbuild/netbsd-x64@0.27.7': - resolution: {integrity: sha512-OfatkLojr6U+WN5EDYuoQhtM+1xco+/6FSzJJnuWiUw5eVcicbyK3dq5EeV/QHT1uy6GoDhGbFpprUiHUYggrw==} - engines: {node: '>=18'} - cpu: [x64] - os: [netbsd] - '@esbuild/openbsd-arm64@0.25.2': resolution: {integrity: sha512-dcXYOC6NXOqcykeDlwId9kB6OkPUxOEqU+rkrYVqJbK2hagWOMrsTGsMr8+rW02M+d5Op5NNlgMmjzecaRf7Tg==} engines: {node: '>=18'} cpu: [arm64] os: [openbsd] - '@esbuild/openbsd-arm64@0.27.7': - resolution: {integrity: sha512-AFuojMQTxAz75Fo8idVcqoQWEHIXFRbOc1TrVcFSgCZtQfSdc1RXgB3tjOn/krRHENUB4j00bfGjyl2mJrU37A==} - engines: {node: '>=18'} - cpu: [arm64] - os: [openbsd] - '@esbuild/openbsd-x64@0.25.2': resolution: {integrity: sha512-t/TkWwahkH0Tsgoq1Ju7QfgGhArkGLkF1uYz8nQS/PPFlXbP5YgRpqQR3ARRiC2iXoLTWFxc6DJMSK10dVXluw==} engines: {node: '>=18'} cpu: [x64] os: [openbsd] - '@esbuild/openbsd-x64@0.27.7': - resolution: {integrity: sha512-+A1NJmfM8WNDv5CLVQYJ5PshuRm/4cI6WMZRg1by1GwPIQPCTs1GLEUHwiiQGT5zDdyLiRM/l1G0Pv54gvtKIg==} - engines: {node: '>=18'} - cpu: [x64] - os: [openbsd] - - '@esbuild/openharmony-arm64@0.27.7': - resolution: {integrity: sha512-+KrvYb/C8zA9CU/g0sR6w2RBw7IGc5J2BPnc3dYc5VJxHCSF1yNMxTV5LQ7GuKteQXZtspjFbiuW5/dOj7H4Yw==} - engines: {node: '>=18'} - cpu: [arm64] - os: [openharmony] - '@esbuild/sunos-x64@0.25.2': resolution: {integrity: sha512-cfZH1co2+imVdWCjd+D1gf9NjkchVhhdpgb1q5y6Hcv9TP6Zi9ZG/beI3ig8TvwT9lH9dlxLq5MQBBgwuj4xvA==} engines: {node: '>=18'} cpu: [x64] os: [sunos] - '@esbuild/sunos-x64@0.27.7': - resolution: {integrity: sha512-ikktIhFBzQNt/QDyOL580ti9+5mL/YZeUPKU2ivGtGjdTYoqz6jObj6nOMfhASpS4GU4Q/Clh1QtxWAvcYKamA==} - engines: {node: '>=18'} - cpu: [x64] - os: [sunos] - '@esbuild/win32-arm64@0.25.2': resolution: {integrity: sha512-7Loyjh+D/Nx/sOTzV8vfbB3GJuHdOQyrOryFdZvPHLf42Tk9ivBU5Aedi7iyX+x6rbn2Mh68T4qq1SDqJBQO5Q==} engines: {node: '>=18'} cpu: [arm64] os: [win32] - '@esbuild/win32-arm64@0.27.7': - resolution: {integrity: sha512-7yRhbHvPqSpRUV7Q20VuDwbjW5kIMwTHpptuUzV+AA46kiPze5Z7qgt6CLCK3pWFrHeNfDd1VKgyP4O+ng17CA==} - engines: {node: '>=18'} - cpu: [arm64] - os: [win32] - '@esbuild/win32-ia32@0.25.2': resolution: {integrity: sha512-WRJgsz9un0nqZJ4MfhabxaD9Ft8KioqU3JMinOTvobbX6MOSUigSBlogP8QB3uxpJDsFS6yN+3FDBdqE5lg9kg==} engines: {node: '>=18'} cpu: [ia32] os: [win32] - '@esbuild/win32-ia32@0.27.7': - resolution: {integrity: sha512-SmwKXe6VHIyZYbBLJrhOoCJRB/Z1tckzmgTLfFYOfpMAx63BJEaL9ExI8x7v0oAO3Zh6D/Oi1gVxEYr5oUCFhw==} - engines: {node: '>=18'} - cpu: [ia32] - os: [win32] - '@esbuild/win32-x64@0.25.2': resolution: {integrity: sha512-kM3HKb16VIXZyIeVrM1ygYmZBKybX8N4p754bw390wGO3Tf2j4L2/WYL+4suWujpgf6GBYs3jv7TyUivdd05JA==} engines: {node: '>=18'} cpu: [x64] os: [win32] - '@esbuild/win32-x64@0.27.7': - resolution: {integrity: sha512-56hiAJPhwQ1R4i+21FVF7V8kSD5zZTdHcVuRFMW0hn753vVfQN8xlx4uOPT4xoGH0Z/oVATuR82AiqSTDIpaHg==} - engines: {node: '>=18'} - cpu: [x64] - os: [win32] - '@eslint-community/eslint-utils@4.9.0': resolution: {integrity: sha512-ayVFHdtZ+hsq1t2Dy24wCmGXGe4q9Gu3smhLYALJrr473ZH27MsnSL+LKUlimp4BWJqMDMLmPpx/Q9R3OAlL4g==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -4886,9 +4727,6 @@ packages: resolution: {integrity: sha512-0qWUglt9JEqLFr3w1I1pbrChn1grhaiAR2ocX1PP/flRmxgtwTzPFFFnfIlD6aMOLQZgSuCRlidD70lvx8yhzg==} engines: {node: '>=14'} - any-promise@1.3.0: - resolution: {integrity: sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==} - anymatch@3.1.3: resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} engines: {node: '>= 8'} @@ -5126,12 +4964,6 @@ packages: resolution: {integrity: sha512-tjwM5exMg6BGRI+kNmTntNsvdZS1X8BFYS6tnJ2hdH0kVxM6/eVZ2xy+FqStSWvYmtfFMDLIxurorHwDKfDz5Q==} engines: {node: '>=18'} - bundle-require@5.1.0: - resolution: {integrity: sha512-3WrrOuZiyaaZPWiEt4G3+IffISVC9HYlWueJEBWED4ZH4aIAC2PnkdnuRrR94M+w6yGWn4AglWtJtBI8YqvgoA==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - peerDependencies: - esbuild: '>=0.18' - bytes@3.0.0: resolution: {integrity: sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw==} engines: {node: '>= 0.8'} @@ -5372,10 +5204,6 @@ packages: commander@2.20.3: resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==} - commander@4.1.1: - resolution: {integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==} - engines: {node: '>= 6'} - commander@5.1.0: resolution: {integrity: sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg==} engines: {node: '>= 6'} @@ -5413,9 +5241,6 @@ packages: concat-map@0.0.1: resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} - confbox@0.1.8: - resolution: {integrity: sha512-RMtmw0iFkeR4YV+fUOSucriAQNb9g8zFR52MWCtl+cCZOFRNL6zeB395vPzFhEjjn4fMxXudmELnl/KF/WrK6w==} - config-chain@1.1.13: resolution: {integrity: sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ==} @@ -6187,11 +6012,6 @@ packages: engines: {node: '>=18'} hasBin: true - esbuild@0.27.7: - resolution: {integrity: sha512-IxpibTjyVnmrIQo5aqNpCgoACA/dTKLTlhMHihVHhdkxKyPO1uBBthumT0rdHmcsk9uMonIWS0m4FljWzILh3w==} - engines: {node: '>=18'} - hasBin: true - escalade@3.2.0: resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==} engines: {node: '>=6'} @@ -6473,9 +6293,6 @@ packages: resolution: {integrity: sha512-MzwXju70AuyflbgeOhzvQWAvvQdo1XL0A9bVvlXsYcFEBM87WR4OakL4OfZq+QRmr+duJubio+UtNQCPsVESzQ==} engines: {node: '>= 10.13.0'} - fix-dts-default-cjs-exports@1.0.1: - resolution: {integrity: sha512-pVIECanWFC61Hzl2+oOCtoJ3F17kglZC/6N94eRWycFgBH35hHx0Li604ZIzhseh97mf2p0cv7vVrOZGoqhlEg==} - flat-cache@4.0.1: resolution: {integrity: sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==} engines: {node: '>=16'} @@ -6535,10 +6352,6 @@ packages: resolution: {integrity: sha512-Z4XaCL6dUDHfP/jT25jJKMmtxvuwbkrD1vNSMFlo9lNLY2c5FHYSQgHPRZUjAB26TpDEoW9HCOgplrdbaPV/ew==} engines: {node: '>=14.14'} - fs-extra@11.3.5: - resolution: {integrity: sha512-eKpRKAovdpZtR1WopLHxlBWvAgPny3c4gX1G5Jhwmmw4XJj0ifSD5qB5TOo8hmA0wlRKDAOAhEE1yVPgs6Fgcg==} - engines: {node: '>=14.14'} - fs-extra@7.0.1: resolution: {integrity: sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==} engines: {node: '>=6 <7 || >=8'} @@ -7218,10 +7031,6 @@ packages: joi@17.13.3: resolution: {integrity: sha512-otDA4ldcIx+ZXsKHWmp0YizCweVRZG96J10b0FevjfuncLO1oX59THoAmHkNubYJ+9gWsYsp5k8v4ib6oDv1fA==} - joycon@3.1.1: - resolution: {integrity: sha512-34wB/Y7MW7bzjKRjUKTa46I2Z7eV62Rkhva+KkopW7Qvv/OSWBqvkSY7vusOPrNuZcUG3tApvdVgNB8POj3SPw==} - engines: {node: '>=10'} - js-tokens@4.0.0: resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} @@ -7405,10 +7214,6 @@ packages: linkify-it@5.0.0: resolution: {integrity: sha512-5aHCbzQRADcdP+ATqnDuhhJ/MRIqDkZX5pyjFHRRysS8vZ5AbqGEoFIb6pYHPZ+L/OC2Lc+xT8uHVVR5CAK/wQ==} - load-tsconfig@0.2.5: - resolution: {integrity: sha512-IXO6OCs9yg8tMKzfPZ1YmheJbZCiEsnBdcB03l0OcfK9prKnJb96siuHCr5Fl37/yo9DnKU+TLpxzTUspw9shg==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - loader-runner@4.3.2: resolution: {integrity: sha512-DFEqQ3ihfS9blba08cLfYf1NRAIEm+dDjic073DRDc3/JspI/8wYmtDsHwd3+4hwvdxSK7PGaElfTmm0awWJ4w==} engines: {node: '>=6.11.5'} @@ -7872,9 +7677,6 @@ packages: resolution: {integrity: sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==} hasBin: true - mlly@1.8.2: - resolution: {integrity: sha512-d+ObxMQFmbt10sretNDytwt85VrbkhhUA/JBGm1MPaWJ65Cl4wOgLaB1NYvJSZ0Ef03MMEU/0xpPMXUIQ29UfA==} - mri@1.2.0: resolution: {integrity: sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==} engines: {node: '>=4'} @@ -7897,9 +7699,6 @@ packages: resolution: {integrity: sha512-ypMKuglUrZUD99Tk2bUQ+xNQj43lPEfAeX2o9cTteAmShXy2VHDJpuwu1o0xqoKCt9jLVAvwyFKdLTPXKAfJyA==} engines: {node: '>=10'} - mz@2.7.0: - resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==} - nanoid@3.3.11: resolution: {integrity: sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==} engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} @@ -8266,9 +8065,6 @@ packages: resolution: {integrity: sha512-Ie9z/WINcxxLp27BKOCHGde4ITq9UklYKDzVo1nhk5sqGEXU3FpkwP5GM2voTGJkGd9B3Otl+Q4uwSOeSUtOBA==} engines: {node: '>=14.16'} - pkg-types@1.3.1: - resolution: {integrity: sha512-/Jm5M4RvtBFVkKWRu2BLUTNP8/M2a+UwuAX+ae4770q1qVGtfjG+WTCupoZixokjmHiry8uI+dlY8KXYV5HVVQ==} - pkijs@3.4.0: resolution: {integrity: sha512-emEcLuomt2j03vxD54giVB4SxTjnsqkU692xZOZXHDVoYyypEm+b3jpiTcc+Cf+myooc+/Ly0z01jqeNHVgJGw==} engines: {node: '>=16.0.0'} @@ -8429,24 +8225,6 @@ packages: peerDependencies: postcss: ^8.4 - postcss-load-config@6.0.1: - resolution: {integrity: sha512-oPtTM4oerL+UXmx+93ytZVN82RrlY/wPUV8IeDxFrzIjXOLF1pN+EmKPLbubvKHT2HC20xXsCAH2Z+CKV6Oz/g==} - engines: {node: '>= 18'} - peerDependencies: - jiti: '>=1.21.0' - postcss: '>=8.0.9' - tsx: ^4.8.1 - yaml: ^2.4.2 - peerDependenciesMeta: - jiti: - optional: true - postcss: - optional: true - tsx: - optional: true - yaml: - optional: true - postcss-loader@7.3.4: resolution: {integrity: sha512-iW5WTTBSC5BfsBJ9daFMPVrLT36MrNiC6fqOZTTaHjBNX6Pfd5p+hSBqe/fEeNd7pc13QiAyGt7VdGMw4eRC4A==} engines: {node: '>= 14.15.0'} @@ -9480,11 +9258,6 @@ packages: stylis@4.4.0: resolution: {integrity: sha512-5Z9ZpRzfuH6l/UAvCPAPUo3665Nk2wLaZU3x+TLHKVzIz33+sbJqbtrYoC3KD4/uVOr2Zp+L0LySezP9OHV9yA==} - sucrase@3.35.1: - resolution: {integrity: sha512-DhuTmvZWux4H1UOnWMB3sk0sbaCVOoQZjv8u1rDoTV0HTdGem9hkAZtl4JZy8P2z4Bg0nT+YMeOFyVr4zcG5Tw==} - engines: {node: '>=16 || 14 >=14.17'} - hasBin: true - sumchecker@3.0.1: resolution: {integrity: sha512-MvjXzkz/BOfyVDkG0oFOtBxHX2u3gKbMHIF/dXblZsgD3BWOFLmHovIpZY7BykJdAjcqRCBi1WYBNdEC9yI7vg==} engines: {node: '>= 8.0'} @@ -9598,13 +9371,6 @@ packages: resolution: {integrity: sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==} engines: {node: '>=8'} - thenify-all@1.6.0: - resolution: {integrity: sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==} - engines: {node: '>=0.8'} - - thenify@3.3.1: - resolution: {integrity: sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==} - thingies@2.6.0: resolution: {integrity: sha512-rMHRjmlFLM1R96UYPvpmnc3LYtdFrT33JIB7L9hetGue1qAPfn1N2LJeEjxUSidu1Iku+haLZXDuEXUHNGO/lg==} engines: {node: '>=10.18'} @@ -9686,10 +9452,6 @@ packages: peerDependencies: tslib: '2' - tree-kill@1.2.2: - resolution: {integrity: sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==} - hasBin: true - trim-lines@3.0.1: resolution: {integrity: sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==} @@ -9715,9 +9477,6 @@ packages: resolution: {integrity: sha512-q5W7tVM71e2xjHZTlgfTDoPF/SmqKG5hddq9SzR49CH2hayqRKJtQ4mtRlSxKaJlR/+9rEM+mnBHf7I2/BQcpQ==} engines: {node: '>=6.10'} - ts-interface-checker@0.1.13: - resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==} - ts-node@10.9.2: resolution: {integrity: sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==} hasBin: true @@ -9738,25 +9497,6 @@ packages: tslib@2.8.1: resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==} - tsup@8.5.1: - resolution: {integrity: sha512-xtgkqwdhpKWr3tKPmCkvYmS9xnQK3m3XgxZHwSUjvfTjp7YfXe5tT3GgWi0F2N+ZSMsOeWeZFh7ZZFg5iPhing==} - engines: {node: '>=18'} - hasBin: true - peerDependencies: - '@microsoft/api-extractor': ^7.36.0 - '@swc/core': ^1 - postcss: ^8.4.12 - typescript: '>=4.5.0' - peerDependenciesMeta: - '@microsoft/api-extractor': - optional: true - '@swc/core': - optional: true - postcss: - optional: true - typescript: - optional: true - tsyringe@4.10.0: resolution: {integrity: sha512-axr3IdNuVIxnaK5XGEUFTu3YmAQ6lllgrvqfEoR16g/HGnYY/6We4oWENtAnzK6/LpJ2ur9PAb80RBt7/U4ugw==} engines: {node: '>= 6.0.0'} @@ -9827,9 +9567,6 @@ packages: uc.micro@2.1.0: resolution: {integrity: sha512-ARDJmphmdvUk6Glw7y9DQ2bFkKBHwQHLi2lsaH6PPmz/Ka9sFOBsBluozhDltWmnv9u/cF6Rt87znRTPV+yp/A==} - ufo@1.6.4: - resolution: {integrity: sha512-JFNbkD1Svwe0KvGi8GOeLcP4kAWQ609twvCdcHxq1oSL8svv39ZuSvajcD8B+5D0eL4+s1Is2D/O6KN3qcTeRA==} - uglify-js@3.19.3: resolution: {integrity: sha512-v3Xu+yuwBXisp6QYTcH4UbH+xYJXqnq2m/LtQVWKWzYc1iehYnLixoQDN9FH6/j9/oybfd6W9Ghwkl8+UMKTKQ==} engines: {node: '>=0.8.0'} @@ -12824,7 +12561,7 @@ snapshots: - '@algolia/client-search' - algoliasearch - '@docusaurus/babel@3.10.1(@swc/core@1.15.33)(clean-css@5.3.3)(cssnano@6.1.2(postcss@8.5.14))(esbuild@0.27.7)(html-minifier-terser@7.2.0)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)': + '@docusaurus/babel@3.10.1(@swc/core@1.15.33)(clean-css@5.3.3)(cssnano@6.1.2(postcss@8.5.14))(html-minifier-terser@7.2.0)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)': dependencies: '@babel/core': 7.29.0 '@babel/generator': 7.29.1 @@ -12836,7 +12573,7 @@ snapshots: '@babel/runtime': 7.27.0 '@babel/traverse': 7.29.0 '@docusaurus/logger': 3.10.1 - '@docusaurus/utils': 3.10.1(@swc/core@1.15.33)(clean-css@5.3.3)(cssnano@6.1.2(postcss@8.5.14))(esbuild@0.27.7)(html-minifier-terser@7.2.0)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@docusaurus/utils': 3.10.1(@swc/core@1.15.33)(clean-css@5.3.3)(cssnano@6.1.2(postcss@8.5.14))(html-minifier-terser@7.2.0)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) babel-plugin-dynamic-import-node: 2.3.3 fs-extra: 11.3.0 tslib: 2.8.1 @@ -12858,7 +12595,7 @@ snapshots: - uglify-js - webpack-cli - '@docusaurus/babel@3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)': + '@docusaurus/babel@3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)': dependencies: '@babel/core': 7.29.0 '@babel/generator': 7.29.1 @@ -12870,7 +12607,7 @@ snapshots: '@babel/runtime': 7.27.0 '@babel/traverse': 7.29.0 '@docusaurus/logger': 3.10.1 - '@docusaurus/utils': 3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@docusaurus/utils': 3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) babel-plugin-dynamic-import-node: 2.3.3 fs-extra: 11.3.0 tslib: 2.8.1 @@ -12892,34 +12629,34 @@ snapshots: - uglify-js - webpack-cli - '@docusaurus/bundler@3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(esbuild@0.27.7)(postcss@8.5.14))(@rspack/core@1.7.11)(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3)': + '@docusaurus/bundler@3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(postcss@8.5.14))(@rspack/core@1.7.11)(@swc/core@1.15.33)(lightningcss@1.32.0)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3)': dependencies: '@babel/core': 7.29.0 - '@docusaurus/babel': 3.10.1(@swc/core@1.15.33)(clean-css@5.3.3)(cssnano@6.1.2(postcss@8.5.14))(esbuild@0.27.7)(html-minifier-terser@7.2.0)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@docusaurus/babel': 3.10.1(@swc/core@1.15.33)(clean-css@5.3.3)(cssnano@6.1.2(postcss@8.5.14))(html-minifier-terser@7.2.0)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) '@docusaurus/cssnano-preset': 3.10.1 '@docusaurus/logger': 3.10.1 - '@docusaurus/types': 3.10.1(@swc/core@1.15.33)(clean-css@5.3.3)(cssnano@6.1.2(postcss@8.5.14))(esbuild@0.27.7)(html-minifier-terser@7.2.0)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) - '@docusaurus/utils': 3.10.1(@swc/core@1.15.33)(clean-css@5.3.3)(cssnano@6.1.2(postcss@8.5.14))(esbuild@0.27.7)(html-minifier-terser@7.2.0)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) - babel-loader: 9.2.1(@babel/core@7.29.0)(webpack@5.106.2(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)) + '@docusaurus/types': 3.10.1(@swc/core@1.15.33)(clean-css@5.3.3)(cssnano@6.1.2(postcss@8.5.14))(html-minifier-terser@7.2.0)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@docusaurus/utils': 3.10.1(@swc/core@1.15.33)(clean-css@5.3.3)(cssnano@6.1.2(postcss@8.5.14))(html-minifier-terser@7.2.0)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + babel-loader: 9.2.1(@babel/core@7.29.0)(webpack@5.106.2(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)) clean-css: 5.3.3 - copy-webpack-plugin: 11.0.0(webpack@5.106.2(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)) - css-loader: 6.11.0(@rspack/core@1.7.11)(webpack@5.106.2(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)) - css-minimizer-webpack-plugin: 5.0.1(clean-css@5.3.3)(esbuild@0.27.7)(lightningcss@1.32.0)(webpack@5.106.2(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)) + copy-webpack-plugin: 11.0.0(webpack@5.106.2(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)) + css-loader: 6.11.0(@rspack/core@1.7.11)(webpack@5.106.2(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)) + css-minimizer-webpack-plugin: 5.0.1(clean-css@5.3.3)(lightningcss@1.32.0)(webpack@5.106.2(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)) cssnano: 6.1.2(postcss@8.5.14) - file-loader: 6.2.0(webpack@5.106.2(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)) + file-loader: 6.2.0(webpack@5.106.2(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)) html-minifier-terser: 7.2.0 - mini-css-extract-plugin: 2.10.2(webpack@5.106.2(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)) - null-loader: 4.0.1(webpack@5.106.2(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)) + mini-css-extract-plugin: 2.10.2(webpack@5.106.2(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)) + null-loader: 4.0.1(webpack@5.106.2(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)) postcss: 8.5.14 - postcss-loader: 7.3.4(postcss@8.5.14)(typescript@5.6.3)(webpack@5.106.2(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)) + postcss-loader: 7.3.4(postcss@8.5.14)(typescript@5.6.3)(webpack@5.106.2(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)) postcss-preset-env: 10.6.1(postcss@8.5.14) - terser-webpack-plugin: 5.6.0(@swc/core@1.15.33)(clean-css@5.3.3)(cssnano@6.1.2(postcss@8.5.14))(esbuild@0.27.7)(html-minifier-terser@7.2.0)(lightningcss@1.32.0)(postcss@8.5.14)(webpack@5.106.2(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)) + terser-webpack-plugin: 5.6.0(@swc/core@1.15.33)(clean-css@5.3.3)(cssnano@6.1.2(postcss@8.5.14))(html-minifier-terser@7.2.0)(lightningcss@1.32.0)(postcss@8.5.14)(webpack@5.106.2(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)) tslib: 2.8.1 - url-loader: 4.1.1(file-loader@6.2.0(webpack@5.106.2(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)))(webpack@5.106.2(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)) - webpack: 5.106.2(@swc/core@1.15.33)(clean-css@5.3.3)(cssnano@6.1.2(postcss@8.5.14))(esbuild@0.27.7)(html-minifier-terser@7.2.0)(lightningcss@1.32.0)(postcss@8.5.14) - webpackbar: 7.0.0(@rspack/core@1.7.11)(webpack@5.106.2(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)) + url-loader: 4.1.1(file-loader@6.2.0(webpack@5.106.2(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)))(webpack@5.106.2(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)) + webpack: 5.106.2(@swc/core@1.15.33)(clean-css@5.3.3)(cssnano@6.1.2(postcss@8.5.14))(html-minifier-terser@7.2.0)(lightningcss@1.32.0)(postcss@8.5.14) + webpackbar: 7.0.0(@rspack/core@1.7.11)(webpack@5.106.2(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)) optionalDependencies: - '@docusaurus/faster': 3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(esbuild@0.27.7)(postcss@8.5.14) + '@docusaurus/faster': 3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(postcss@8.5.14) transitivePeerDependencies: - '@minify-html/node' - '@parcel/css' @@ -12937,15 +12674,15 @@ snapshots: - uglify-js - webpack-cli - '@docusaurus/core@3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(esbuild@0.27.7)(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3)': + '@docusaurus/core@3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3)': dependencies: - '@docusaurus/babel': 3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) - '@docusaurus/bundler': 3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(esbuild@0.27.7)(postcss@8.5.14))(@rspack/core@1.7.11)(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3) + '@docusaurus/babel': 3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@docusaurus/bundler': 3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(postcss@8.5.14))(@rspack/core@1.7.11)(@swc/core@1.15.33)(lightningcss@1.32.0)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3) '@docusaurus/logger': 3.10.1 - '@docusaurus/mdx-loader': 3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) - '@docusaurus/utils': 3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) - '@docusaurus/utils-common': 3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) - '@docusaurus/utils-validation': 3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@docusaurus/mdx-loader': 3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@docusaurus/utils': 3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@docusaurus/utils-common': 3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@docusaurus/utils-validation': 3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) '@mdx-js/react': 3.1.1(@types/react@19.2.14)(react@19.2.6) boxen: 6.2.1 chalk: 4.1.2 @@ -12961,7 +12698,7 @@ snapshots: execa: 5.1.1 fs-extra: 11.3.0 html-tags: 3.3.1 - html-webpack-plugin: 5.6.7(@rspack/core@1.7.11)(webpack@5.106.2(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)) + html-webpack-plugin: 5.6.7(@rspack/core@1.7.11)(webpack@5.106.2(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)) leven: 3.1.0 lodash: 4.17.21 open: 8.4.2 @@ -12971,7 +12708,7 @@ snapshots: react-dom: 19.2.6(react@19.2.6) react-helmet-async: '@slorber/react-helmet-async@1.3.0(react-dom@19.2.6(react@19.2.6))(react@19.2.6)' react-loadable: '@docusaurus/react-loadable@6.0.0(react@19.2.6)' - react-loadable-ssr-addon-v5-slorber: 1.0.3(@docusaurus/react-loadable@6.0.0(react@19.2.6))(webpack@5.106.2(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)) + react-loadable-ssr-addon-v5-slorber: 1.0.3(@docusaurus/react-loadable@6.0.0(react@19.2.6))(webpack@5.106.2(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)) react-router: 5.3.4(react@19.2.6) react-router-config: 5.1.1(react-router@5.3.4(react@19.2.6))(react@19.2.6) react-router-dom: 5.3.4(react@19.2.6) @@ -12980,12 +12717,12 @@ snapshots: tinypool: 1.1.1 tslib: 2.8.1 update-notifier: 6.0.2 - webpack: 5.106.2(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14) + webpack: 5.106.2(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14) webpack-bundle-analyzer: 4.10.2 - webpack-dev-server: 5.2.3(tslib@2.8.1)(webpack@5.106.2(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)) + webpack-dev-server: 5.2.3(tslib@2.8.1)(webpack@5.106.2(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)) webpack-merge: 6.0.1 optionalDependencies: - '@docusaurus/faster': 3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(esbuild@0.27.7)(postcss@8.5.14) + '@docusaurus/faster': 3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(postcss@8.5.14) transitivePeerDependencies: - '@minify-html/node' - '@parcel/css' @@ -13015,18 +12752,18 @@ snapshots: postcss-sort-media-queries: 5.2.0(postcss@8.5.14) tslib: 2.8.1 - '@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(esbuild@0.27.7)(postcss@8.5.14)': + '@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(postcss@8.5.14)': dependencies: - '@docusaurus/types': 3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@docusaurus/types': 3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) '@rspack/core': 1.7.11 '@swc/core': 1.15.33 '@swc/html': 1.15.33 browserslist: 4.28.2 lightningcss: 1.32.0 semver: 7.7.3 - swc-loader: 0.2.7(@swc/core@1.15.33)(webpack@5.106.2(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)) + swc-loader: 0.2.7(@swc/core@1.15.33)(webpack@5.106.2(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)) tslib: 2.8.1 - webpack: 5.106.2(@swc/core@1.15.33)(@swc/html@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14) + webpack: 5.106.2(@swc/core@1.15.33)(@swc/html@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14) transitivePeerDependencies: - '@minify-html/node' - '@swc/css' @@ -13045,16 +12782,16 @@ snapshots: chalk: 4.1.2 tslib: 2.8.1 - '@docusaurus/mdx-loader@3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)': + '@docusaurus/mdx-loader@3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)': dependencies: '@docusaurus/logger': 3.10.1 - '@docusaurus/utils': 3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) - '@docusaurus/utils-validation': 3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@docusaurus/utils': 3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@docusaurus/utils-validation': 3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) '@mdx-js/mdx': 3.1.1 '@slorber/remark-comment': 1.0.0 escape-html: 1.0.3 estree-util-value-to-estree: 3.5.0 - file-loader: 6.2.0(webpack@5.106.2(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)) + file-loader: 6.2.0(webpack@5.106.2(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)) fs-extra: 11.3.0 image-size: 2.0.2 mdast-util-mdx: 3.0.0 @@ -13070,9 +12807,9 @@ snapshots: tslib: 2.8.1 unified: 11.0.5 unist-util-visit: 5.0.0 - url-loader: 4.1.1(file-loader@6.2.0(webpack@5.106.2(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)))(webpack@5.106.2(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)) + url-loader: 4.1.1(file-loader@6.2.0(webpack@5.106.2(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)))(webpack@5.106.2(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)) vfile: 6.0.3 - webpack: 5.106.2(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14) + webpack: 5.106.2(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14) transitivePeerDependencies: - '@minify-html/node' - '@swc/core' @@ -13089,9 +12826,9 @@ snapshots: - uglify-js - webpack-cli - '@docusaurus/module-type-aliases@3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)': + '@docusaurus/module-type-aliases@3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)': dependencies: - '@docusaurus/types': 3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@docusaurus/types': 3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) '@types/history': 4.7.11 '@types/react': 19.2.14 '@types/react-router-config': 5.0.11 @@ -13116,13 +12853,13 @@ snapshots: - uglify-js - webpack-cli - '@docusaurus/plugin-client-redirects@3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(esbuild@0.27.7)(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3)': + '@docusaurus/plugin-client-redirects@3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3)': dependencies: - '@docusaurus/core': 3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(esbuild@0.27.7)(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3) + '@docusaurus/core': 3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3) '@docusaurus/logger': 3.10.1 - '@docusaurus/utils': 3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) - '@docusaurus/utils-common': 3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) - '@docusaurus/utils-validation': 3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@docusaurus/utils': 3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@docusaurus/utils-common': 3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@docusaurus/utils-validation': 3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) eta: 2.2.0 fs-extra: 11.3.0 lodash: 4.17.21 @@ -13153,17 +12890,17 @@ snapshots: - utf-8-validate - webpack-cli - '@docusaurus/plugin-content-blog@3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(esbuild@0.27.7)(postcss@8.5.14))(@docusaurus/plugin-content-docs@3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(esbuild@0.27.7)(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3)': + '@docusaurus/plugin-content-blog@3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(postcss@8.5.14))(@docusaurus/plugin-content-docs@3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3)': dependencies: - '@docusaurus/core': 3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(esbuild@0.27.7)(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3) + '@docusaurus/core': 3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3) '@docusaurus/logger': 3.10.1 - '@docusaurus/mdx-loader': 3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) - '@docusaurus/plugin-content-docs': 3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(esbuild@0.27.7)(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3) - '@docusaurus/theme-common': 3.10.1(@docusaurus/plugin-content-docs@3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(esbuild@0.27.7)(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3))(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) - '@docusaurus/types': 3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) - '@docusaurus/utils': 3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) - '@docusaurus/utils-common': 3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) - '@docusaurus/utils-validation': 3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@docusaurus/mdx-loader': 3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@docusaurus/plugin-content-docs': 3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3) + '@docusaurus/theme-common': 3.10.1(@docusaurus/plugin-content-docs@3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3))(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@docusaurus/types': 3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@docusaurus/utils': 3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@docusaurus/utils-common': 3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@docusaurus/utils-validation': 3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) cheerio: 1.0.0-rc.12 combine-promises: 1.2.0 feed: 4.2.2 @@ -13176,7 +12913,7 @@ snapshots: tslib: 2.8.1 unist-util-visit: 5.0.0 utility-types: 3.11.0 - webpack: 5.106.2(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14) + webpack: 5.106.2(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14) transitivePeerDependencies: - '@docusaurus/faster' - '@mdx-js/react' @@ -13201,17 +12938,17 @@ snapshots: - utf-8-validate - webpack-cli - '@docusaurus/plugin-content-docs@3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(esbuild@0.27.7)(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3)': + '@docusaurus/plugin-content-docs@3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3)': dependencies: - '@docusaurus/core': 3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(esbuild@0.27.7)(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3) + '@docusaurus/core': 3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3) '@docusaurus/logger': 3.10.1 - '@docusaurus/mdx-loader': 3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) - '@docusaurus/module-type-aliases': 3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) - '@docusaurus/theme-common': 3.10.1(@docusaurus/plugin-content-docs@3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(esbuild@0.27.7)(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3))(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) - '@docusaurus/types': 3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) - '@docusaurus/utils': 3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) - '@docusaurus/utils-common': 3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) - '@docusaurus/utils-validation': 3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@docusaurus/mdx-loader': 3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@docusaurus/module-type-aliases': 3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@docusaurus/theme-common': 3.10.1(@docusaurus/plugin-content-docs@3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3))(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@docusaurus/types': 3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@docusaurus/utils': 3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@docusaurus/utils-common': 3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@docusaurus/utils-validation': 3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) '@types/react-router-config': 5.0.11 combine-promises: 1.2.0 fs-extra: 11.3.0 @@ -13222,7 +12959,7 @@ snapshots: schema-dts: 1.1.5 tslib: 2.8.1 utility-types: 3.11.0 - webpack: 5.106.2(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14) + webpack: 5.106.2(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14) transitivePeerDependencies: - '@docusaurus/faster' - '@mdx-js/react' @@ -13247,18 +12984,18 @@ snapshots: - utf-8-validate - webpack-cli - '@docusaurus/plugin-content-pages@3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(esbuild@0.27.7)(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3)': + '@docusaurus/plugin-content-pages@3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3)': dependencies: - '@docusaurus/core': 3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(esbuild@0.27.7)(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3) - '@docusaurus/mdx-loader': 3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) - '@docusaurus/types': 3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) - '@docusaurus/utils': 3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) - '@docusaurus/utils-validation': 3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@docusaurus/core': 3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3) + '@docusaurus/mdx-loader': 3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@docusaurus/types': 3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@docusaurus/utils': 3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@docusaurus/utils-validation': 3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) fs-extra: 11.3.0 react: 19.2.6 react-dom: 19.2.6(react@19.2.6) tslib: 2.8.1 - webpack: 5.106.2(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14) + webpack: 5.106.2(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14) transitivePeerDependencies: - '@docusaurus/faster' - '@mdx-js/react' @@ -13283,12 +13020,12 @@ snapshots: - utf-8-validate - webpack-cli - '@docusaurus/plugin-css-cascade-layers@3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(esbuild@0.27.7)(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3)': + '@docusaurus/plugin-css-cascade-layers@3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3)': dependencies: - '@docusaurus/core': 3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(esbuild@0.27.7)(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3) - '@docusaurus/types': 3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) - '@docusaurus/utils': 3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) - '@docusaurus/utils-validation': 3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@docusaurus/core': 3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3) + '@docusaurus/types': 3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@docusaurus/utils': 3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@docusaurus/utils-validation': 3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) tslib: 2.8.1 transitivePeerDependencies: - '@docusaurus/faster' @@ -13316,11 +13053,11 @@ snapshots: - utf-8-validate - webpack-cli - '@docusaurus/plugin-debug@3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(esbuild@0.27.7)(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3)': + '@docusaurus/plugin-debug@3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3)': dependencies: - '@docusaurus/core': 3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(esbuild@0.27.7)(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3) - '@docusaurus/types': 3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) - '@docusaurus/utils': 3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@docusaurus/core': 3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3) + '@docusaurus/types': 3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@docusaurus/utils': 3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) fs-extra: 11.3.0 react: 19.2.6 react-dom: 19.2.6(react@19.2.6) @@ -13350,11 +13087,11 @@ snapshots: - utf-8-validate - webpack-cli - '@docusaurus/plugin-google-analytics@3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(esbuild@0.27.7)(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3)': + '@docusaurus/plugin-google-analytics@3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3)': dependencies: - '@docusaurus/core': 3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(esbuild@0.27.7)(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3) - '@docusaurus/types': 3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) - '@docusaurus/utils-validation': 3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@docusaurus/core': 3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3) + '@docusaurus/types': 3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@docusaurus/utils-validation': 3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) react: 19.2.6 react-dom: 19.2.6(react@19.2.6) tslib: 2.8.1 @@ -13382,11 +13119,11 @@ snapshots: - utf-8-validate - webpack-cli - '@docusaurus/plugin-google-gtag@3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(esbuild@0.27.7)(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3)': + '@docusaurus/plugin-google-gtag@3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3)': dependencies: - '@docusaurus/core': 3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(esbuild@0.27.7)(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3) - '@docusaurus/types': 3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) - '@docusaurus/utils-validation': 3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@docusaurus/core': 3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3) + '@docusaurus/types': 3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@docusaurus/utils-validation': 3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) '@types/gtag.js': 0.0.20 react: 19.2.6 react-dom: 19.2.6(react@19.2.6) @@ -13415,11 +13152,11 @@ snapshots: - utf-8-validate - webpack-cli - '@docusaurus/plugin-google-tag-manager@3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(esbuild@0.27.7)(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3)': + '@docusaurus/plugin-google-tag-manager@3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3)': dependencies: - '@docusaurus/core': 3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(esbuild@0.27.7)(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3) - '@docusaurus/types': 3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) - '@docusaurus/utils-validation': 3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@docusaurus/core': 3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3) + '@docusaurus/types': 3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@docusaurus/utils-validation': 3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) react: 19.2.6 react-dom: 19.2.6(react@19.2.6) tslib: 2.8.1 @@ -13447,14 +13184,14 @@ snapshots: - utf-8-validate - webpack-cli - '@docusaurus/plugin-sitemap@3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(esbuild@0.27.7)(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3)': + '@docusaurus/plugin-sitemap@3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3)': dependencies: - '@docusaurus/core': 3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(esbuild@0.27.7)(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3) + '@docusaurus/core': 3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3) '@docusaurus/logger': 3.10.1 - '@docusaurus/types': 3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) - '@docusaurus/utils': 3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) - '@docusaurus/utils-common': 3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) - '@docusaurus/utils-validation': 3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@docusaurus/types': 3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@docusaurus/utils': 3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@docusaurus/utils-common': 3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@docusaurus/utils-validation': 3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) fs-extra: 11.3.0 react: 19.2.6 react-dom: 19.2.6(react@19.2.6) @@ -13484,18 +13221,18 @@ snapshots: - utf-8-validate - webpack-cli - '@docusaurus/plugin-svgr@3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(esbuild@0.27.7)(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3)': + '@docusaurus/plugin-svgr@3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3)': dependencies: - '@docusaurus/core': 3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(esbuild@0.27.7)(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3) - '@docusaurus/types': 3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) - '@docusaurus/utils': 3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) - '@docusaurus/utils-validation': 3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@docusaurus/core': 3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3) + '@docusaurus/types': 3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@docusaurus/utils': 3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@docusaurus/utils-validation': 3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) '@svgr/core': 8.1.0(typescript@5.6.3) '@svgr/webpack': 8.1.0(typescript@5.6.3) react: 19.2.6 react-dom: 19.2.6(react@19.2.6) tslib: 2.8.1 - webpack: 5.106.2(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14) + webpack: 5.106.2(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14) transitivePeerDependencies: - '@docusaurus/faster' - '@mdx-js/react' @@ -13520,23 +13257,23 @@ snapshots: - utf-8-validate - webpack-cli - '@docusaurus/preset-classic@3.10.1(@algolia/client-search@5.52.1)(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(esbuild@0.27.7)(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(@types/react@19.2.14)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(search-insights@2.17.3)(typescript@5.6.3)': - dependencies: - '@docusaurus/core': 3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(esbuild@0.27.7)(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3) - '@docusaurus/plugin-content-blog': 3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(esbuild@0.27.7)(postcss@8.5.14))(@docusaurus/plugin-content-docs@3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(esbuild@0.27.7)(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3) - '@docusaurus/plugin-content-docs': 3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(esbuild@0.27.7)(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3) - '@docusaurus/plugin-content-pages': 3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(esbuild@0.27.7)(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3) - '@docusaurus/plugin-css-cascade-layers': 3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(esbuild@0.27.7)(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3) - '@docusaurus/plugin-debug': 3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(esbuild@0.27.7)(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3) - '@docusaurus/plugin-google-analytics': 3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(esbuild@0.27.7)(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3) - '@docusaurus/plugin-google-gtag': 3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(esbuild@0.27.7)(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3) - '@docusaurus/plugin-google-tag-manager': 3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(esbuild@0.27.7)(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3) - '@docusaurus/plugin-sitemap': 3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(esbuild@0.27.7)(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3) - '@docusaurus/plugin-svgr': 3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(esbuild@0.27.7)(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3) - '@docusaurus/theme-classic': 3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(esbuild@0.27.7)(postcss@8.5.14))(@rspack/core@1.7.11)(@swc/core@1.15.33)(@types/react@19.2.14)(esbuild@0.27.7)(lightningcss@1.32.0)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3) - '@docusaurus/theme-common': 3.10.1(@docusaurus/plugin-content-docs@3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(esbuild@0.27.7)(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3))(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) - '@docusaurus/theme-search-algolia': 3.10.1(@algolia/client-search@5.52.1)(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(esbuild@0.27.7)(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(@types/react@19.2.14)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(search-insights@2.17.3)(typescript@5.6.3) - '@docusaurus/types': 3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@docusaurus/preset-classic@3.10.1(@algolia/client-search@5.52.1)(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(@types/react@19.2.14)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(search-insights@2.17.3)(typescript@5.6.3)': + dependencies: + '@docusaurus/core': 3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3) + '@docusaurus/plugin-content-blog': 3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(postcss@8.5.14))(@docusaurus/plugin-content-docs@3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3) + '@docusaurus/plugin-content-docs': 3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3) + '@docusaurus/plugin-content-pages': 3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3) + '@docusaurus/plugin-css-cascade-layers': 3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3) + '@docusaurus/plugin-debug': 3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3) + '@docusaurus/plugin-google-analytics': 3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3) + '@docusaurus/plugin-google-gtag': 3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3) + '@docusaurus/plugin-google-tag-manager': 3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3) + '@docusaurus/plugin-sitemap': 3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3) + '@docusaurus/plugin-svgr': 3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3) + '@docusaurus/theme-classic': 3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(postcss@8.5.14))(@rspack/core@1.7.11)(@swc/core@1.15.33)(@types/react@19.2.14)(lightningcss@1.32.0)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3) + '@docusaurus/theme-common': 3.10.1(@docusaurus/plugin-content-docs@3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3))(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@docusaurus/theme-search-algolia': 3.10.1(@algolia/client-search@5.52.1)(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(@types/react@19.2.14)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(search-insights@2.17.3)(typescript@5.6.3) + '@docusaurus/types': 3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) react: 19.2.6 react-dom: 19.2.6(react@19.2.6) transitivePeerDependencies: @@ -13571,21 +13308,21 @@ snapshots: '@types/react': 19.2.14 react: 19.2.6 - '@docusaurus/theme-classic@3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(esbuild@0.27.7)(postcss@8.5.14))(@rspack/core@1.7.11)(@swc/core@1.15.33)(@types/react@19.2.14)(esbuild@0.27.7)(lightningcss@1.32.0)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3)': + '@docusaurus/theme-classic@3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(postcss@8.5.14))(@rspack/core@1.7.11)(@swc/core@1.15.33)(@types/react@19.2.14)(lightningcss@1.32.0)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3)': dependencies: - '@docusaurus/core': 3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(esbuild@0.27.7)(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3) + '@docusaurus/core': 3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3) '@docusaurus/logger': 3.10.1 - '@docusaurus/mdx-loader': 3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) - '@docusaurus/module-type-aliases': 3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) - '@docusaurus/plugin-content-blog': 3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(esbuild@0.27.7)(postcss@8.5.14))(@docusaurus/plugin-content-docs@3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(esbuild@0.27.7)(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3) - '@docusaurus/plugin-content-docs': 3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(esbuild@0.27.7)(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3) - '@docusaurus/plugin-content-pages': 3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(esbuild@0.27.7)(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3) - '@docusaurus/theme-common': 3.10.1(@docusaurus/plugin-content-docs@3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(esbuild@0.27.7)(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3))(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@docusaurus/mdx-loader': 3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@docusaurus/module-type-aliases': 3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@docusaurus/plugin-content-blog': 3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(postcss@8.5.14))(@docusaurus/plugin-content-docs@3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3) + '@docusaurus/plugin-content-docs': 3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3) + '@docusaurus/plugin-content-pages': 3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3) + '@docusaurus/theme-common': 3.10.1(@docusaurus/plugin-content-docs@3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3))(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) '@docusaurus/theme-translations': 3.10.1 - '@docusaurus/types': 3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) - '@docusaurus/utils': 3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) - '@docusaurus/utils-common': 3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) - '@docusaurus/utils-validation': 3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@docusaurus/types': 3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@docusaurus/utils': 3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@docusaurus/utils-common': 3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@docusaurus/utils-validation': 3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) '@mdx-js/react': 3.1.1(@types/react@19.2.14)(react@19.2.6) clsx: 2.1.1 copy-text-to-clipboard: 3.2.2 @@ -13624,13 +13361,13 @@ snapshots: - utf-8-validate - webpack-cli - '@docusaurus/theme-common@3.10.1(@docusaurus/plugin-content-docs@3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(esbuild@0.27.7)(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3))(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)': + '@docusaurus/theme-common@3.10.1(@docusaurus/plugin-content-docs@3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3))(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)': dependencies: - '@docusaurus/mdx-loader': 3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) - '@docusaurus/module-type-aliases': 3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) - '@docusaurus/plugin-content-docs': 3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(esbuild@0.27.7)(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3) - '@docusaurus/utils': 3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) - '@docusaurus/utils-common': 3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@docusaurus/mdx-loader': 3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@docusaurus/module-type-aliases': 3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@docusaurus/plugin-content-docs': 3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3) + '@docusaurus/utils': 3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@docusaurus/utils-common': 3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) '@types/history': 4.7.11 '@types/react': 19.2.14 '@types/react-router-config': 5.0.11 @@ -13657,13 +13394,13 @@ snapshots: - uglify-js - webpack-cli - '@docusaurus/theme-mermaid@3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(esbuild@0.27.7)(postcss@8.5.14))(@docusaurus/plugin-content-docs@3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(esbuild@0.27.7)(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3)': + '@docusaurus/theme-mermaid@3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(postcss@8.5.14))(@docusaurus/plugin-content-docs@3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3)': dependencies: - '@docusaurus/core': 3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(esbuild@0.27.7)(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3) - '@docusaurus/module-type-aliases': 3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) - '@docusaurus/theme-common': 3.10.1(@docusaurus/plugin-content-docs@3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(esbuild@0.27.7)(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3))(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) - '@docusaurus/types': 3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) - '@docusaurus/utils-validation': 3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@docusaurus/core': 3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3) + '@docusaurus/module-type-aliases': 3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@docusaurus/theme-common': 3.10.1(@docusaurus/plugin-content-docs@3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3))(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@docusaurus/types': 3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@docusaurus/utils-validation': 3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) mermaid: 11.14.0 react: 19.2.6 react-dom: 19.2.6(react@19.2.6) @@ -13693,17 +13430,17 @@ snapshots: - utf-8-validate - webpack-cli - '@docusaurus/theme-search-algolia@3.10.1(@algolia/client-search@5.52.1)(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(esbuild@0.27.7)(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(@types/react@19.2.14)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(search-insights@2.17.3)(typescript@5.6.3)': + '@docusaurus/theme-search-algolia@3.10.1(@algolia/client-search@5.52.1)(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(@types/react@19.2.14)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(search-insights@2.17.3)(typescript@5.6.3)': dependencies: '@algolia/autocomplete-core': 1.19.8(@algolia/client-search@5.52.1)(algoliasearch@5.52.1)(search-insights@2.17.3) '@docsearch/react': 4.6.3(@algolia/client-search@5.52.1)(@types/react@19.2.14)(algoliasearch@5.52.1)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(search-insights@2.17.3) - '@docusaurus/core': 3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(esbuild@0.27.7)(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3) + '@docusaurus/core': 3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3) '@docusaurus/logger': 3.10.1 - '@docusaurus/plugin-content-docs': 3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(esbuild@0.27.7)(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3) - '@docusaurus/theme-common': 3.10.1(@docusaurus/plugin-content-docs@3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(esbuild@0.27.7)(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3))(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@docusaurus/plugin-content-docs': 3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3) + '@docusaurus/theme-common': 3.10.1(@docusaurus/plugin-content-docs@3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3))(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) '@docusaurus/theme-translations': 3.10.1 - '@docusaurus/utils': 3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) - '@docusaurus/utils-validation': 3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@docusaurus/utils': 3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@docusaurus/utils-validation': 3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) algoliasearch: 5.52.1 algoliasearch-helper: 3.29.1(algoliasearch@5.52.1) clsx: 2.1.1 @@ -13748,7 +13485,7 @@ snapshots: '@docusaurus/tsconfig@3.10.1': {} - '@docusaurus/types@3.10.1(@swc/core@1.15.33)(clean-css@5.3.3)(cssnano@6.1.2(postcss@8.5.14))(esbuild@0.27.7)(html-minifier-terser@7.2.0)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)': + '@docusaurus/types@3.10.1(@swc/core@1.15.33)(clean-css@5.3.3)(cssnano@6.1.2(postcss@8.5.14))(html-minifier-terser@7.2.0)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)': dependencies: '@mdx-js/mdx': 3.1.1 '@types/history': 4.7.11 @@ -13760,7 +13497,7 @@ snapshots: react-dom: 19.2.6(react@19.2.6) react-helmet-async: '@slorber/react-helmet-async@1.3.0(react-dom@19.2.6(react@19.2.6))(react@19.2.6)' utility-types: 3.11.0 - webpack: 5.106.2(@swc/core@1.15.33)(clean-css@5.3.3)(cssnano@6.1.2(postcss@8.5.14))(esbuild@0.27.7)(html-minifier-terser@7.2.0)(lightningcss@1.32.0)(postcss@8.5.14) + webpack: 5.106.2(@swc/core@1.15.33)(clean-css@5.3.3)(cssnano@6.1.2(postcss@8.5.14))(html-minifier-terser@7.2.0)(lightningcss@1.32.0)(postcss@8.5.14) webpack-merge: 5.10.0 transitivePeerDependencies: - '@minify-html/node' @@ -13778,7 +13515,7 @@ snapshots: - uglify-js - webpack-cli - '@docusaurus/types@3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)': + '@docusaurus/types@3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)': dependencies: '@mdx-js/mdx': 3.1.1 '@types/history': 4.7.11 @@ -13790,7 +13527,7 @@ snapshots: react-dom: 19.2.6(react@19.2.6) react-helmet-async: '@slorber/react-helmet-async@1.3.0(react-dom@19.2.6(react@19.2.6))(react@19.2.6)' utility-types: 3.11.0 - webpack: 5.106.2(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14) + webpack: 5.106.2(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14) webpack-merge: 5.10.0 transitivePeerDependencies: - '@minify-html/node' @@ -13808,9 +13545,9 @@ snapshots: - uglify-js - webpack-cli - '@docusaurus/utils-common@3.10.1(@swc/core@1.15.33)(clean-css@5.3.3)(cssnano@6.1.2(postcss@8.5.14))(esbuild@0.27.7)(html-minifier-terser@7.2.0)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)': + '@docusaurus/utils-common@3.10.1(@swc/core@1.15.33)(clean-css@5.3.3)(cssnano@6.1.2(postcss@8.5.14))(html-minifier-terser@7.2.0)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)': dependencies: - '@docusaurus/types': 3.10.1(@swc/core@1.15.33)(clean-css@5.3.3)(cssnano@6.1.2(postcss@8.5.14))(esbuild@0.27.7)(html-minifier-terser@7.2.0)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@docusaurus/types': 3.10.1(@swc/core@1.15.33)(clean-css@5.3.3)(cssnano@6.1.2(postcss@8.5.14))(html-minifier-terser@7.2.0)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) tslib: 2.8.1 transitivePeerDependencies: - '@minify-html/node' @@ -13830,9 +13567,9 @@ snapshots: - uglify-js - webpack-cli - '@docusaurus/utils-common@3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)': + '@docusaurus/utils-common@3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)': dependencies: - '@docusaurus/types': 3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@docusaurus/types': 3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) tslib: 2.8.1 transitivePeerDependencies: - '@minify-html/node' @@ -13852,11 +13589,11 @@ snapshots: - uglify-js - webpack-cli - '@docusaurus/utils-validation@3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)': + '@docusaurus/utils-validation@3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)': dependencies: '@docusaurus/logger': 3.10.1 - '@docusaurus/utils': 3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) - '@docusaurus/utils-common': 3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@docusaurus/utils': 3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@docusaurus/utils-common': 3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) fs-extra: 11.3.0 joi: 17.13.3 js-yaml: 4.1.1 @@ -13880,14 +13617,14 @@ snapshots: - uglify-js - webpack-cli - '@docusaurus/utils@3.10.1(@swc/core@1.15.33)(clean-css@5.3.3)(cssnano@6.1.2(postcss@8.5.14))(esbuild@0.27.7)(html-minifier-terser@7.2.0)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)': + '@docusaurus/utils@3.10.1(@swc/core@1.15.33)(clean-css@5.3.3)(cssnano@6.1.2(postcss@8.5.14))(html-minifier-terser@7.2.0)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)': dependencies: '@docusaurus/logger': 3.10.1 - '@docusaurus/types': 3.10.1(@swc/core@1.15.33)(clean-css@5.3.3)(cssnano@6.1.2(postcss@8.5.14))(esbuild@0.27.7)(html-minifier-terser@7.2.0)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) - '@docusaurus/utils-common': 3.10.1(@swc/core@1.15.33)(clean-css@5.3.3)(cssnano@6.1.2(postcss@8.5.14))(esbuild@0.27.7)(html-minifier-terser@7.2.0)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@docusaurus/types': 3.10.1(@swc/core@1.15.33)(clean-css@5.3.3)(cssnano@6.1.2(postcss@8.5.14))(html-minifier-terser@7.2.0)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@docusaurus/utils-common': 3.10.1(@swc/core@1.15.33)(clean-css@5.3.3)(cssnano@6.1.2(postcss@8.5.14))(html-minifier-terser@7.2.0)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) escape-string-regexp: 4.0.0 execa: 5.1.1 - file-loader: 6.2.0(webpack@5.106.2(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)) + file-loader: 6.2.0(webpack@5.106.2(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)) fs-extra: 11.3.0 github-slugger: 1.5.0 globby: 11.1.0 @@ -13900,9 +13637,9 @@ snapshots: prompts: 2.4.2 resolve-pathname: 3.0.0 tslib: 2.8.1 - url-loader: 4.1.1(file-loader@6.2.0(webpack@5.106.2(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)))(webpack@5.106.2(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)) + url-loader: 4.1.1(file-loader@6.2.0(webpack@5.106.2(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)))(webpack@5.106.2(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)) utility-types: 3.11.0 - webpack: 5.106.2(@swc/core@1.15.33)(clean-css@5.3.3)(cssnano@6.1.2(postcss@8.5.14))(esbuild@0.27.7)(html-minifier-terser@7.2.0)(lightningcss@1.32.0)(postcss@8.5.14) + webpack: 5.106.2(@swc/core@1.15.33)(clean-css@5.3.3)(cssnano@6.1.2(postcss@8.5.14))(html-minifier-terser@7.2.0)(lightningcss@1.32.0)(postcss@8.5.14) transitivePeerDependencies: - '@minify-html/node' - '@swc/core' @@ -13921,14 +13658,14 @@ snapshots: - uglify-js - webpack-cli - '@docusaurus/utils@3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)': + '@docusaurus/utils@3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)': dependencies: '@docusaurus/logger': 3.10.1 - '@docusaurus/types': 3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) - '@docusaurus/utils-common': 3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@docusaurus/types': 3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@docusaurus/utils-common': 3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) escape-string-regexp: 4.0.0 execa: 5.1.1 - file-loader: 6.2.0(webpack@5.106.2(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)) + file-loader: 6.2.0(webpack@5.106.2(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)) fs-extra: 11.3.0 github-slugger: 1.5.0 globby: 11.1.0 @@ -13941,9 +13678,9 @@ snapshots: prompts: 2.4.2 resolve-pathname: 3.0.0 tslib: 2.8.1 - url-loader: 4.1.1(file-loader@6.2.0(webpack@5.106.2(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)))(webpack@5.106.2(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)) + url-loader: 4.1.1(file-loader@6.2.0(webpack@5.106.2(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)))(webpack@5.106.2(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)) utility-types: 3.11.0 - webpack: 5.106.2(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14) + webpack: 5.106.2(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14) transitivePeerDependencies: - '@minify-html/node' - '@swc/core' @@ -14081,156 +13818,78 @@ snapshots: '@esbuild/aix-ppc64@0.25.2': optional: true - '@esbuild/aix-ppc64@0.27.7': - optional: true - '@esbuild/android-arm64@0.25.2': optional: true - '@esbuild/android-arm64@0.27.7': - optional: true - '@esbuild/android-arm@0.25.2': optional: true - '@esbuild/android-arm@0.27.7': - optional: true - '@esbuild/android-x64@0.25.2': optional: true - '@esbuild/android-x64@0.27.7': - optional: true - '@esbuild/darwin-arm64@0.25.2': optional: true - '@esbuild/darwin-arm64@0.27.7': - optional: true - '@esbuild/darwin-x64@0.25.2': optional: true - '@esbuild/darwin-x64@0.27.7': - optional: true - '@esbuild/freebsd-arm64@0.25.2': optional: true - '@esbuild/freebsd-arm64@0.27.7': - optional: true - '@esbuild/freebsd-x64@0.25.2': optional: true - '@esbuild/freebsd-x64@0.27.7': - optional: true - '@esbuild/linux-arm64@0.25.2': optional: true - '@esbuild/linux-arm64@0.27.7': - optional: true - '@esbuild/linux-arm@0.25.2': optional: true - '@esbuild/linux-arm@0.27.7': - optional: true - '@esbuild/linux-ia32@0.25.2': optional: true - '@esbuild/linux-ia32@0.27.7': - optional: true - '@esbuild/linux-loong64@0.25.2': optional: true - '@esbuild/linux-loong64@0.27.7': - optional: true - '@esbuild/linux-mips64el@0.25.2': optional: true - '@esbuild/linux-mips64el@0.27.7': - optional: true - '@esbuild/linux-ppc64@0.25.2': optional: true - '@esbuild/linux-ppc64@0.27.7': - optional: true - '@esbuild/linux-riscv64@0.25.2': optional: true - '@esbuild/linux-riscv64@0.27.7': - optional: true - '@esbuild/linux-s390x@0.25.2': optional: true - '@esbuild/linux-s390x@0.27.7': - optional: true - '@esbuild/linux-x64@0.25.2': optional: true - '@esbuild/linux-x64@0.27.7': - optional: true - '@esbuild/netbsd-arm64@0.25.2': optional: true - '@esbuild/netbsd-arm64@0.27.7': - optional: true - '@esbuild/netbsd-x64@0.25.2': optional: true - '@esbuild/netbsd-x64@0.27.7': - optional: true - '@esbuild/openbsd-arm64@0.25.2': optional: true - '@esbuild/openbsd-arm64@0.27.7': - optional: true - '@esbuild/openbsd-x64@0.25.2': optional: true - '@esbuild/openbsd-x64@0.27.7': - optional: true - - '@esbuild/openharmony-arm64@0.27.7': - optional: true - '@esbuild/sunos-x64@0.25.2': optional: true - '@esbuild/sunos-x64@0.27.7': - optional: true - '@esbuild/win32-arm64@0.25.2': optional: true - '@esbuild/win32-arm64@0.27.7': - optional: true - '@esbuild/win32-ia32@0.25.2': optional: true - '@esbuild/win32-ia32@0.27.7': - optional: true - '@esbuild/win32-x64@0.25.2': optional: true - '@esbuild/win32-x64@0.27.7': - optional: true - '@eslint-community/eslint-utils@4.9.0(eslint@9.39.2(jiti@2.4.2))': dependencies: eslint: 9.39.2(jiti@2.4.2) @@ -16138,8 +15797,6 @@ snapshots: ansis@3.17.0: {} - any-promise@1.3.0: {} - anymatch@3.1.3: dependencies: normalize-path: 3.0.0 @@ -16196,12 +15853,12 @@ snapshots: aws4@1.13.2: {} - babel-loader@9.2.1(@babel/core@7.29.0)(webpack@5.106.2(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)): + babel-loader@9.2.1(@babel/core@7.29.0)(webpack@5.106.2(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)): dependencies: '@babel/core': 7.29.0 find-cache-dir: 4.0.0 schema-utils: 4.3.3 - webpack: 5.106.2(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14) + webpack: 5.106.2(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14) babel-plugin-dynamic-import-node@2.3.3: dependencies: @@ -16435,11 +16092,6 @@ snapshots: dependencies: run-applescript: 7.1.0 - bundle-require@5.1.0(esbuild@0.27.7): - dependencies: - esbuild: 0.27.7 - load-tsconfig: 0.2.5 - bytes@3.0.0: {} bytes@3.1.2: {} @@ -16694,8 +16346,6 @@ snapshots: commander@2.20.3: {} - commander@4.1.1: {} - commander@5.1.0: {} commander@7.2.0: {} @@ -16732,8 +16382,6 @@ snapshots: concat-map@0.0.1: {} - confbox@0.1.8: {} - config-chain@1.1.13: dependencies: ini: 1.3.8 @@ -16846,7 +16494,7 @@ snapshots: copy-text-to-clipboard@3.2.2: {} - copy-webpack-plugin@11.0.0(webpack@5.106.2(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)): + copy-webpack-plugin@11.0.0(webpack@5.106.2(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)): dependencies: fast-glob: 3.3.3 glob-parent: 6.0.2 @@ -16854,7 +16502,7 @@ snapshots: normalize-path: 3.0.0 schema-utils: 4.3.3 serialize-javascript: 6.0.2 - webpack: 5.106.2(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14) + webpack: 5.106.2(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14) core-js-compat@3.41.0: dependencies: @@ -16924,7 +16572,7 @@ snapshots: postcss-selector-parser: 7.1.1 postcss-value-parser: 4.2.0 - css-loader@6.11.0(@rspack/core@1.7.11)(webpack@5.106.2(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)): + css-loader@6.11.0(@rspack/core@1.7.11)(webpack@5.106.2(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)): dependencies: icss-utils: 5.1.0(postcss@8.5.14) postcss: 8.5.14 @@ -16936,9 +16584,9 @@ snapshots: semver: 7.7.3 optionalDependencies: '@rspack/core': 1.7.11 - webpack: 5.106.2(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14) + webpack: 5.106.2(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14) - css-minimizer-webpack-plugin@5.0.1(clean-css@5.3.3)(esbuild@0.27.7)(lightningcss@1.32.0)(webpack@5.106.2(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)): + css-minimizer-webpack-plugin@5.0.1(clean-css@5.3.3)(lightningcss@1.32.0)(webpack@5.106.2(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)): dependencies: '@jridgewell/trace-mapping': 0.3.31 cssnano: 6.1.2(postcss@8.5.14) @@ -16946,10 +16594,9 @@ snapshots: postcss: 8.5.14 schema-utils: 4.3.3 serialize-javascript: 6.0.2 - webpack: 5.106.2(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14) + webpack: 5.106.2(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14) optionalDependencies: clean-css: 5.3.3 - esbuild: 0.27.7 lightningcss: 1.32.0 css-prefers-color-scheme@10.0.0(postcss@8.5.14): @@ -17617,35 +17264,6 @@ snapshots: '@esbuild/win32-ia32': 0.25.2 '@esbuild/win32-x64': 0.25.2 - esbuild@0.27.7: - optionalDependencies: - '@esbuild/aix-ppc64': 0.27.7 - '@esbuild/android-arm': 0.27.7 - '@esbuild/android-arm64': 0.27.7 - '@esbuild/android-x64': 0.27.7 - '@esbuild/darwin-arm64': 0.27.7 - '@esbuild/darwin-x64': 0.27.7 - '@esbuild/freebsd-arm64': 0.27.7 - '@esbuild/freebsd-x64': 0.27.7 - '@esbuild/linux-arm': 0.27.7 - '@esbuild/linux-arm64': 0.27.7 - '@esbuild/linux-ia32': 0.27.7 - '@esbuild/linux-loong64': 0.27.7 - '@esbuild/linux-mips64el': 0.27.7 - '@esbuild/linux-ppc64': 0.27.7 - '@esbuild/linux-riscv64': 0.27.7 - '@esbuild/linux-s390x': 0.27.7 - '@esbuild/linux-x64': 0.27.7 - '@esbuild/netbsd-arm64': 0.27.7 - '@esbuild/netbsd-x64': 0.27.7 - '@esbuild/openbsd-arm64': 0.27.7 - '@esbuild/openbsd-x64': 0.27.7 - '@esbuild/openharmony-arm64': 0.27.7 - '@esbuild/sunos-x64': 0.27.7 - '@esbuild/win32-arm64': 0.27.7 - '@esbuild/win32-ia32': 0.27.7 - '@esbuild/win32-x64': 0.27.7 - escalade@3.2.0: {} escape-goat@4.0.0: {} @@ -17944,11 +17562,11 @@ snapshots: dependencies: flat-cache: 4.0.1 - file-loader@6.2.0(webpack@5.106.2(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)): + file-loader@6.2.0(webpack@5.106.2(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)): dependencies: loader-utils: 2.0.4 schema-utils: 3.3.0 - webpack: 5.106.2(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14) + webpack: 5.106.2(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14) filelist@1.0.4: dependencies: @@ -17999,12 +17617,6 @@ snapshots: micromatch: 4.0.8 resolve-dir: 1.0.1 - fix-dts-default-cjs-exports@1.0.1: - dependencies: - magic-string: 0.30.17 - mlly: 1.8.2 - rollup: 4.39.0 - flat-cache@4.0.1: dependencies: flatted: 3.4.2 @@ -18060,12 +17672,6 @@ snapshots: jsonfile: 6.1.0 universalify: 2.0.1 - fs-extra@11.3.5: - dependencies: - graceful-fs: 4.2.11 - jsonfile: 6.1.0 - universalify: 2.0.1 - fs-extra@7.0.1: dependencies: graceful-fs: 4.2.11 @@ -18465,7 +18071,7 @@ snapshots: html-void-elements@3.0.0: {} - html-webpack-plugin@5.6.7(@rspack/core@1.7.11)(webpack@5.106.2(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)): + html-webpack-plugin@5.6.7(@rspack/core@1.7.11)(webpack@5.106.2(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)): dependencies: '@types/html-minifier-terser': 6.1.0 html-minifier-terser: 6.1.0 @@ -18474,7 +18080,7 @@ snapshots: tapable: 2.3.3 optionalDependencies: '@rspack/core': 1.7.11 - webpack: 5.106.2(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14) + webpack: 5.106.2(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14) htmlparser2@6.1.0: dependencies: @@ -18878,8 +18484,6 @@ snapshots: '@sideway/formula': 3.0.1 '@sideway/pinpoint': 2.0.0 - joycon@3.1.1: {} - js-tokens@4.0.0: {} js-tokens@9.0.1: {} @@ -19024,8 +18628,6 @@ snapshots: dependencies: uc.micro: 2.1.0 - load-tsconfig@0.2.5: {} - loader-runner@4.3.2: {} loader-utils@2.0.4: @@ -19722,11 +19324,11 @@ snapshots: mimic-response@4.0.0: {} - mini-css-extract-plugin@2.10.2(webpack@5.106.2(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)): + mini-css-extract-plugin@2.10.2(webpack@5.106.2(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)): dependencies: schema-utils: 4.3.3 tapable: 2.3.3 - webpack: 5.106.2(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14) + webpack: 5.106.2(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14) minimalistic-assert@1.0.1: {} @@ -19794,13 +19396,6 @@ snapshots: dependencies: minimist: 1.2.8 - mlly@1.8.2: - dependencies: - acorn: 8.16.0 - pathe: 2.0.3 - pkg-types: 1.3.1 - ufo: 1.6.4 - mri@1.2.0: {} mrmime@2.0.1: {} @@ -19822,12 +19417,6 @@ snapshots: arrify: 2.0.1 minimatch: 3.1.5 - mz@2.7.0: - dependencies: - any-promise: 1.3.0 - object-assign: 4.1.1 - thenify-all: 1.6.0 - nanoid@3.3.11: {} natural-compare@1.4.0: {} @@ -19914,11 +19503,11 @@ snapshots: dependencies: boolbase: 1.0.0 - null-loader@4.0.1(webpack@5.106.2(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)): + null-loader@4.0.1(webpack@5.106.2(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)): dependencies: loader-utils: 2.0.4 schema-utils: 3.3.0 - webpack: 5.106.2(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14) + webpack: 5.106.2(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14) object-assign@4.1.1: {} @@ -20182,12 +19771,6 @@ snapshots: dependencies: find-up: 6.3.0 - pkg-types@1.3.1: - dependencies: - confbox: 0.1.8 - mlly: 1.8.2 - pathe: 2.0.3 - pkijs@3.4.0: dependencies: '@noble/hashes': 1.4.0 @@ -20356,21 +19939,13 @@ snapshots: '@csstools/utilities': 2.0.0(postcss@8.5.14) postcss: 8.5.14 - postcss-load-config@6.0.1(jiti@2.4.2)(postcss@8.5.14)(yaml@2.8.4): - dependencies: - lilconfig: 3.1.3 - optionalDependencies: - jiti: 2.4.2 - postcss: 8.5.14 - yaml: 2.8.4 - - postcss-loader@7.3.4(postcss@8.5.14)(typescript@5.6.3)(webpack@5.106.2(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)): + postcss-loader@7.3.4(postcss@8.5.14)(typescript@5.6.3)(webpack@5.106.2(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)): dependencies: cosmiconfig: 8.3.6(typescript@5.6.3) jiti: 1.21.7 postcss: 8.5.14 semver: 7.7.3 - webpack: 5.106.2(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14) + webpack: 5.106.2(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14) transitivePeerDependencies: - typescript @@ -20823,11 +20398,11 @@ snapshots: dependencies: react: 19.2.6 - react-loadable-ssr-addon-v5-slorber@1.0.3(@docusaurus/react-loadable@6.0.0(react@19.2.6))(webpack@5.106.2(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)): + react-loadable-ssr-addon-v5-slorber@1.0.3(@docusaurus/react-loadable@6.0.0(react@19.2.6))(webpack@5.106.2(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)): dependencies: '@babel/runtime': 7.27.0 react-loadable: '@docusaurus/react-loadable@6.0.0(react@19.2.6)' - webpack: 5.106.2(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14) + webpack: 5.106.2(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14) react-router-config@5.1.1(react-router@5.3.4(react@19.2.6))(react@19.2.6): dependencies: @@ -21598,16 +21173,6 @@ snapshots: stylis@4.4.0: {} - sucrase@3.35.1: - dependencies: - '@jridgewell/gen-mapping': 0.3.13 - commander: 4.1.1 - lines-and-columns: 1.2.4 - mz: 2.7.0 - pirates: 4.0.7 - tinyglobby: 0.2.14 - ts-interface-checker: 0.1.13 - sumchecker@3.0.1: dependencies: debug: 4.4.3 @@ -21636,11 +21201,11 @@ snapshots: picocolors: 1.1.1 sax: 1.6.0 - swc-loader@0.2.7(@swc/core@1.15.33)(webpack@5.106.2(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)): + swc-loader@0.2.7(@swc/core@1.15.33)(webpack@5.106.2(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)): dependencies: '@swc/core': 1.15.33 '@swc/counter': 0.1.3 - webpack: 5.106.2(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14) + webpack: 5.106.2(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14) synckit@0.11.11: dependencies: @@ -21674,46 +21239,43 @@ snapshots: term-size@2.2.1: {} - terser-webpack-plugin@5.6.0(@swc/core@1.15.33)(@swc/html@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(webpack@5.106.2(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)): + terser-webpack-plugin@5.6.0(@swc/core@1.15.33)(@swc/html@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(webpack@5.106.2(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)): dependencies: '@jridgewell/trace-mapping': 0.3.31 jest-worker: 27.5.1 schema-utils: 4.3.3 terser: 5.47.1 - webpack: 5.106.2(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14) + webpack: 5.106.2(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14) optionalDependencies: '@swc/core': 1.15.33 '@swc/html': 1.15.33 - esbuild: 0.27.7 lightningcss: 1.32.0 postcss: 8.5.14 - terser-webpack-plugin@5.6.0(@swc/core@1.15.33)(clean-css@5.3.3)(cssnano@6.1.2(postcss@8.5.14))(esbuild@0.27.7)(html-minifier-terser@7.2.0)(lightningcss@1.32.0)(postcss@8.5.14)(webpack@5.106.2(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)): + terser-webpack-plugin@5.6.0(@swc/core@1.15.33)(clean-css@5.3.3)(cssnano@6.1.2(postcss@8.5.14))(html-minifier-terser@7.2.0)(lightningcss@1.32.0)(postcss@8.5.14)(webpack@5.106.2(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)): dependencies: '@jridgewell/trace-mapping': 0.3.31 jest-worker: 27.5.1 schema-utils: 4.3.3 terser: 5.47.1 - webpack: 5.106.2(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14) + webpack: 5.106.2(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14) optionalDependencies: '@swc/core': 1.15.33 clean-css: 5.3.3 cssnano: 6.1.2(postcss@8.5.14) - esbuild: 0.27.7 html-minifier-terser: 7.2.0 lightningcss: 1.32.0 postcss: 8.5.14 - terser-webpack-plugin@5.6.0(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(webpack@5.106.2(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)): + terser-webpack-plugin@5.6.0(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(webpack@5.106.2(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)): dependencies: '@jridgewell/trace-mapping': 0.3.31 jest-worker: 27.5.1 schema-utils: 4.3.3 terser: 5.47.1 - webpack: 5.106.2(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14) + webpack: 5.106.2(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14) optionalDependencies: '@swc/core': 1.15.33 - esbuild: 0.27.7 lightningcss: 1.32.0 postcss: 8.5.14 @@ -21730,14 +21292,6 @@ snapshots: glob: 7.2.3 minimatch: 3.1.5 - thenify-all@1.6.0: - dependencies: - thenify: 3.3.1 - - thenify@3.3.1: - dependencies: - any-promise: 1.3.0 - thingies@2.6.0(tslib@2.8.1): dependencies: tslib: 2.8.1 @@ -21795,8 +21349,6 @@ snapshots: dependencies: tslib: 2.8.1 - tree-kill@1.2.2: {} - trim-lines@3.0.1: {} trough@2.2.0: {} @@ -21815,8 +21367,6 @@ snapshots: ts-dedent@2.2.0: {} - ts-interface-checker@0.1.13: {} - ts-node@10.9.2(@swc/core@1.15.33)(@types/node@16.18.126)(typescript@5.1.6): dependencies: '@cspotcode/source-map-support': 0.8.1 @@ -21861,35 +21411,6 @@ snapshots: tslib@2.8.1: {} - tsup@8.5.1(@swc/core@1.15.33)(jiti@2.4.2)(postcss@8.5.14)(typescript@5.8.2)(yaml@2.8.4): - dependencies: - bundle-require: 5.1.0(esbuild@0.27.7) - cac: 6.7.14 - chokidar: 4.0.3 - consola: 3.4.2 - debug: 4.4.3 - esbuild: 0.27.7 - fix-dts-default-cjs-exports: 1.0.1 - joycon: 3.1.1 - picocolors: 1.1.1 - postcss-load-config: 6.0.1(jiti@2.4.2)(postcss@8.5.14)(yaml@2.8.4) - resolve-from: 5.0.0 - rollup: 4.39.0 - source-map: 0.7.6 - sucrase: 3.35.1 - tinyexec: 0.3.2 - tinyglobby: 0.2.14 - tree-kill: 1.2.2 - optionalDependencies: - '@swc/core': 1.15.33 - postcss: 8.5.14 - typescript: 5.8.2 - transitivePeerDependencies: - - jiti - - supports-color - - tsx - - yaml - tsyringe@4.10.0: dependencies: tslib: 1.14.1 @@ -21962,8 +21483,6 @@ snapshots: uc.micro@2.1.0: {} - ufo@1.6.4: {} - uglify-js@3.19.3: optional: true @@ -22076,14 +21595,14 @@ snapshots: dependencies: punycode: 2.3.1 - url-loader@4.1.1(file-loader@6.2.0(webpack@5.106.2(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)))(webpack@5.106.2(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)): + url-loader@4.1.1(file-loader@6.2.0(webpack@5.106.2(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)))(webpack@5.106.2(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)): dependencies: loader-utils: 2.0.4 mime-types: 2.1.35 schema-utils: 3.3.0 - webpack: 5.106.2(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14) + webpack: 5.106.2(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14) optionalDependencies: - file-loader: 6.2.0(webpack@5.106.2(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)) + file-loader: 6.2.0(webpack@5.106.2(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)) utf8-byte-length@1.0.5: {} @@ -22267,7 +21786,7 @@ snapshots: - bufferutil - utf-8-validate - webpack-dev-middleware@7.4.5(tslib@2.8.1)(webpack@5.106.2(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)): + webpack-dev-middleware@7.4.5(tslib@2.8.1)(webpack@5.106.2(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)): dependencies: colorette: 2.0.20 memfs: 4.57.2(tslib@2.8.1) @@ -22276,11 +21795,11 @@ snapshots: range-parser: 1.2.1 schema-utils: 4.3.3 optionalDependencies: - webpack: 5.106.2(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14) + webpack: 5.106.2(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14) transitivePeerDependencies: - tslib - webpack-dev-server@5.2.3(tslib@2.8.1)(webpack@5.106.2(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)): + webpack-dev-server@5.2.3(tslib@2.8.1)(webpack@5.106.2(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)): dependencies: '@types/bonjour': 3.5.13 '@types/connect-history-api-fallback': 1.5.4 @@ -22308,10 +21827,10 @@ snapshots: serve-index: 1.9.2 sockjs: 0.3.24 spdy: 4.0.2 - webpack-dev-middleware: 7.4.5(tslib@2.8.1)(webpack@5.106.2(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)) + webpack-dev-middleware: 7.4.5(tslib@2.8.1)(webpack@5.106.2(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)) ws: 8.20.0 optionalDependencies: - webpack: 5.106.2(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14) + webpack: 5.106.2(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14) transitivePeerDependencies: - bufferutil - debug @@ -22333,7 +21852,7 @@ snapshots: webpack-sources@3.4.1: {} - webpack@5.106.2(@swc/core@1.15.33)(@swc/html@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14): + webpack@5.106.2(@swc/core@1.15.33)(@swc/html@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14): dependencies: '@types/eslint-scope': 3.7.7 '@types/estree': 1.0.8 @@ -22356,7 +21875,7 @@ snapshots: neo-async: 2.6.2 schema-utils: 4.3.3 tapable: 2.3.3 - terser-webpack-plugin: 5.6.0(@swc/core@1.15.33)(@swc/html@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(webpack@5.106.2(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)) + terser-webpack-plugin: 5.6.0(@swc/core@1.15.33)(@swc/html@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(webpack@5.106.2(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)) watchpack: 2.5.1 webpack-sources: 3.4.1 transitivePeerDependencies: @@ -22373,7 +21892,7 @@ snapshots: - postcss - uglify-js - webpack@5.106.2(@swc/core@1.15.33)(clean-css@5.3.3)(cssnano@6.1.2(postcss@8.5.14))(esbuild@0.27.7)(html-minifier-terser@7.2.0)(lightningcss@1.32.0)(postcss@8.5.14): + webpack@5.106.2(@swc/core@1.15.33)(clean-css@5.3.3)(cssnano@6.1.2(postcss@8.5.14))(html-minifier-terser@7.2.0)(lightningcss@1.32.0)(postcss@8.5.14): dependencies: '@types/eslint-scope': 3.7.7 '@types/estree': 1.0.8 @@ -22396,7 +21915,7 @@ snapshots: neo-async: 2.6.2 schema-utils: 4.3.3 tapable: 2.3.3 - terser-webpack-plugin: 5.6.0(@swc/core@1.15.33)(clean-css@5.3.3)(cssnano@6.1.2(postcss@8.5.14))(esbuild@0.27.7)(html-minifier-terser@7.2.0)(lightningcss@1.32.0)(postcss@8.5.14)(webpack@5.106.2(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)) + terser-webpack-plugin: 5.6.0(@swc/core@1.15.33)(clean-css@5.3.3)(cssnano@6.1.2(postcss@8.5.14))(html-minifier-terser@7.2.0)(lightningcss@1.32.0)(postcss@8.5.14)(webpack@5.106.2(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)) watchpack: 2.5.1 webpack-sources: 3.4.1 transitivePeerDependencies: @@ -22413,7 +21932,7 @@ snapshots: - postcss - uglify-js - webpack@5.106.2(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14): + webpack@5.106.2(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14): dependencies: '@types/eslint-scope': 3.7.7 '@types/estree': 1.0.8 @@ -22436,7 +21955,7 @@ snapshots: neo-async: 2.6.2 schema-utils: 4.3.3 tapable: 2.3.3 - terser-webpack-plugin: 5.6.0(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(webpack@5.106.2(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)) + terser-webpack-plugin: 5.6.0(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(webpack@5.106.2(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)) watchpack: 2.5.1 webpack-sources: 3.4.1 transitivePeerDependencies: @@ -22453,7 +21972,7 @@ snapshots: - postcss - uglify-js - webpackbar@7.0.0(@rspack/core@1.7.11)(webpack@5.106.2(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)): + webpackbar@7.0.0(@rspack/core@1.7.11)(webpack@5.106.2(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)): dependencies: ansis: 3.17.0 consola: 3.4.2 @@ -22461,7 +21980,7 @@ snapshots: std-env: 3.9.0 optionalDependencies: '@rspack/core': 1.7.11 - webpack: 5.106.2(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14) + webpack: 5.106.2(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14) websocket-driver@0.7.4: dependencies: diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index b9740632a89..9a50ff4a226 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -16,6 +16,7 @@ minimumReleaseAge: 10080 patchedDependencies: '@changesets/cli@2.29.7': patches/@changesets__cli@2.29.7.patch '@changesets/assemble-release-plan@6.0.9': patches/@changesets__assemble-release-plan@6.0.9.patch + estree-walker@3.0.3: patches/estree-walker@3.0.3.patch overrides: flatted: '>=3.4.2' handlebars: '>=4.7.9' diff --git a/scripts/checkDeps.js b/scripts/checkDeps.js index 1d90577944d..423e56565a2 100644 --- a/scripts/checkDeps.js +++ b/scripts/checkDeps.js @@ -15,6 +15,11 @@ const knownUnusedDevDependencies = new Set([ "eslint-config-prettier", "eslint-plugin-prettier", "@rollup/plugin-typescript", + // Used in test/vitest-scripts/ (test dir is ignored by depcheck) or via pnpm workspace scripts + "is-ci", + "tsup", + "vitest", + "tsx", ]) const knownMissedDependencies = new Set(["babel-core", "babel-preset-env", "babel-preset-stage-0", "babel-preset-react"]) @@ -26,7 +31,7 @@ async function check(projectDir, devPackageData) { // console.log(`Checking ${projectDir}`) const result = await new Promise(resolve => { - depCheck(projectDir, { ignoreDirs: ["out", "test", "pages", "typings", "docker", "certs", "templates", "vendor"] }, resolve) + depCheck(projectDir, { ignoreDirs: ["out", "dist", "test", "pages", "typings", "docker", "certs", "templates", "vendor"] }, resolve) }) let unusedDependencies = result.dependencies @@ -34,6 +39,10 @@ async function check(projectDir, devPackageData) { if (packageName === "electron-builder") { unusedDependencies = unusedDependencies.filter(it => it !== "dmg-builder") } + if (packageName === "app-builder-lib") { + // @electron/universal is used via dynamic string import which depcheck cannot detect statically + unusedDependencies = unusedDependencies.filter(it => it !== "@electron/universal") + } if (unusedDependencies.length > 0) { console.error(`${chalk.bold(packageName)} Unused dependencies: ${JSON.stringify(unusedDependencies, null, 2)}`) return false @@ -50,6 +59,8 @@ async function check(projectDir, devPackageData) { } delete result.missing.electron + // tsup is a root devDependency accessed via pnpm hoisting; each package uses it in tsup.config.ts + delete result.missing.tsup const toml = result.missing.toml if (toml != null && toml.length === 1 && toml[0].endsWith("config.js")) { delete result.missing.toml diff --git a/test/package.json b/test/package.json index 4148c450b92..02cf3ccf758 100644 --- a/test/package.json +++ b/test/package.json @@ -36,6 +36,7 @@ "fs-extra": "^10.1.0", "js-yaml": "^4.1.0", "lazy-val": "^1.0.5", + "minimatch": "^10.2.5", "path-sort": "^0.1.0", "resedit": "1.7.0", "sanitize-filename": "^1.6.3", diff --git a/test/src/HoistedNodeModuleTest.ts b/test/src/HoistedNodeModuleTest.ts index df24b5d90aa..cbf46d29126 100644 --- a/test/src/HoistedNodeModuleTest.ts +++ b/test/src/HoistedNodeModuleTest.ts @@ -1,5 +1,5 @@ -import { PM } from "app-builder-lib/out/node-module-collector" -import { spawn } from "builder-util/out/util" +import { PM } from "app-builder-lib/src/node-module-collector" +import { spawn } from "builder-util/src/util" import { Arch, DIR_TARGET, Platform } from "electron-builder" import * as path from "path" import { appTwoThrows, assertPack, linuxDirTarget, modifyPackageJson, verifyAsarFileTree } from "./helpers/packTester" diff --git a/test/src/blockmapTest.ts b/test/src/blockmapTest.ts index c4a700cefa2..fadda8e652a 100644 --- a/test/src/blockmapTest.ts +++ b/test/src/blockmapTest.ts @@ -6,7 +6,7 @@ import * as os from "os" import * as path from "path" import * as zlib from "zlib" import { afterEach, beforeEach, describe, expect, it } from "vitest" -import { buildBlockMap } from "app-builder-lib/out/targets/blockmap/blockmap" +import { buildBlockMap } from "app-builder-lib/src/targets/blockmap/blockmap" import { appBuilderPath } from "app-builder-bin" // True when the app-builder-bin binary is actually present on disk. @@ -173,7 +173,7 @@ describe("buildBlockMap", () => { it("chunk checksums match BLAKE2b-18 of chunk content", async () => { const blake2bPath = require.resolve("@noble/hashes/blake2.js", { - paths: [require.resolve("app-builder-lib/out/targets/blockmap/blockmap")], + paths: [require.resolve("app-builder-lib/src/targets/blockmap/blockmap")], }) const { blake2b } = require(blake2bPath) as typeof import("@noble/hashes/blake2") const data = makeTestData(50_000) diff --git a/test/src/builder-util/nodeHttpExecutorTest.ts b/test/src/builder-util/nodeHttpExecutorTest.ts index b59f3522bcb..135cd3bfb07 100644 --- a/test/src/builder-util/nodeHttpExecutorTest.ts +++ b/test/src/builder-util/nodeHttpExecutorTest.ts @@ -1,11 +1,13 @@ -import { buildGotProxyAgent, NodeHttpExecutor } from "builder-util/out/nodeHttpExecutor" +import { buildGotProxyAgent, NodeHttpExecutor } from "builder-util/src/nodeHttpExecutor" import { afterEach, beforeEach, vi } from "vitest" const PROXY_VARS = ["HTTPS_PROXY", "https_proxy", "HTTP_PROXY", "http_proxy"] as const describe("buildGotProxyAgent", () => { beforeEach(() => { - for (const key of PROXY_VARS) delete process.env[key] + for (const key of PROXY_VARS) { + delete process.env[key] + } }) afterEach(() => { vi.unstubAllEnvs() @@ -128,7 +130,9 @@ describe("NodeHttpExecutor.createRequest", () => { beforeEach(() => { executor = new NodeHttpExecutor() - for (const key of PROXY_VARS) delete process.env[key] + for (const key of PROXY_VARS) { + delete process.env[key] + } }) afterEach(() => { vi.unstubAllEnvs() diff --git a/test/src/builder-util/utilTest.ts b/test/src/builder-util/utilTest.ts index cb5c2bf3869..419996513c7 100644 --- a/test/src/builder-util/utilTest.ts +++ b/test/src/builder-util/utilTest.ts @@ -1,4 +1,4 @@ -import { parseValidEnvVarUrl, resolveEnvShellValue } from "builder-util/out/envUtil" +import { parseValidEnvVarUrl, resolveEnvShellValue } from "builder-util/src/envUtil" import { removePassword, filterSensitiveEnv, spawnAndWriteWithOutput, ExecError } from "builder-util" import { afterEach, vi } from "vitest" diff --git a/test/src/cliTest.ts b/test/src/cliTest.ts index 48716133c57..a410b562fdc 100644 --- a/test/src/cliTest.ts +++ b/test/src/cliTest.ts @@ -3,8 +3,12 @@ import yargs from "yargs" // ─── Module mocks (hoisted by vitest above all imports) ─────────────────────── -vi.mock("app-builder-lib/out/util/electronGet", () => ({ +// getCacheDirectory (clear-cache) and loadEnv (cli-util) are the only `app-builder-lib/internal` +// exports exercised here. Stub just those — a full mock keeps the heavy app-builder-lib module +// graph (and its circular class hierarchy) from loading for these isolated CLI unit tests. +vi.mock("app-builder-lib/internal", () => ({ getCacheDirectory: vi.fn().mockReturnValue("/home/user/.cache/electron-builder"), + loadEnv: vi.fn().mockResolvedValue(undefined), })) vi.mock("fs/promises", async () => { @@ -16,7 +20,7 @@ vi.mock("fs/promises", async () => { } }) -vi.mock("readline/promises", () => ({ +vi.mock("node:readline/promises", () => ({ createInterface: vi.fn(() => ({ question: vi.fn().mockResolvedValue("y"), close: vi.fn(), @@ -32,15 +36,11 @@ vi.mock("builder-util", async () => { } }) -vi.mock("app-builder-lib/out/util/config/load", () => ({ - loadEnv: vi.fn().mockResolvedValue(undefined), -})) - // ─── Imports ────────────────────────────────────────────────────────────────── import { access, rm } from "fs/promises" -import { createInterface } from "readline/promises" -import { getCacheDirectory } from "app-builder-lib/out/util/electronGet" +import { createInterface } from "node:readline/promises" +import { getCacheDirectory } from "app-builder-lib/internal" import { ExecError, InvalidConfigurationError, log } from "builder-util" // Relative imports bypass project-reference declaration files, which strip @internal exports import { clearCache } from "../../packages/electron-builder/src/cli/clear-cache" diff --git a/test/src/dynamicImportTest.ts b/test/src/dynamicImportTest.ts index c509455c44f..e69ec3b7ece 100644 --- a/test/src/dynamicImportTest.ts +++ b/test/src/dynamicImportTest.ts @@ -4,7 +4,6 @@ import { expect } from "vitest" const WORKSPACE_ROOT = path.resolve(__dirname, "../../") -// eslint-disable-next-line @typescript-eslint/no-require-imports const helper = require("../../packages/app-builder-lib/helpers/dynamic-import") as { dynamicImport(modulePath: string): Promise dynamicImportMaybe(modulePath: string): Promise diff --git a/test/src/electronGetTest.ts b/test/src/electronGetTest.ts index 737f00ca080..20d996870c8 100644 --- a/test/src/electronGetTest.ts +++ b/test/src/electronGetTest.ts @@ -13,8 +13,8 @@ import { downloadElectronArtifact, getCacheDirectory, getBinariesMirrorUrl, -} from "app-builder-lib/out/util/electronGet" -import { CacheState } from "app-builder-lib/out/util/cacheState" +} from "app-builder-lib/src/util/electronGet" +import { CacheState } from "app-builder-lib/src/util/cacheState" import { ELECTRON_VERSION } from "./helpers/testConfig" // ─── getCacheDirectory ──────────────────────────────────────────────────────── diff --git a/test/src/electronVersionTest.ts b/test/src/electronVersionTest.ts index 534f2d08776..ee301b6d973 100644 --- a/test/src/electronVersionTest.ts +++ b/test/src/electronVersionTest.ts @@ -6,7 +6,7 @@ import { log } from "builder-util" // getElectronVersion is the public entry point; passing an explicit config with no // electronVersion bypasses getConfig and falls through to computeElectronVersion. -import { getElectronVersion } from "app-builder-lib/out/electron/electronVersion" +import { getElectronVersion } from "app-builder-lib/src/electron/electronVersion" function rangeLogMessage(version: string): string { return ( diff --git a/test/src/filterTest.ts b/test/src/filterTest.ts index ee2e03a5b4b..a30bfa24833 100644 --- a/test/src/filterTest.ts +++ b/test/src/filterTest.ts @@ -1,5 +1,5 @@ import { FilterStats } from "builder-util" -import { FileMatcher, getFileMatchers, GetFileMatchersOptions } from "app-builder-lib/out/fileMatcher" +import { FileMatcher, getFileMatchers, GetFileMatchersOptions } from "app-builder-lib/src/fileMatcher" import * as path from "path" // --------------------------------------------------------------------------- @@ -241,7 +241,7 @@ describe("FileMatcher – computeParsedPatterns: auto-expand bare directory name describe("FileMatcher – createFilter with excludePatterns", () => { test("excludePatterns exclude matched files but not directories", ({ expect }) => { - const { Minimatch } = require("app-builder-lib/node_modules/minimatch") + const { Minimatch } = require("minimatch") const m = new FileMatcher("/app", "/out", noMacro, ["**/*"]) m.excludePatterns = [new Minimatch("**/*.map", { dot: true })] const filter = m.createFilter() diff --git a/test/src/helpers/downloadElectron.ts b/test/src/helpers/downloadElectron.ts index ba79d0fab17..0c3a9e497c6 100644 --- a/test/src/helpers/downloadElectron.ts +++ b/test/src/helpers/downloadElectron.ts @@ -51,7 +51,7 @@ export function downloadAllRequiredElectronVersions(): Promise { ? ["x64"] : platform === "win32" ? ["ia32", "x64"] - : require(`${path.join(import.meta.dirname, "../../..")}/packages/builder-util/out/util.js`).getArchCliNames() + : require(`${path.join(import.meta.dirname, "../../..")}/packages/builder-util/dist/util.js`).getArchCliNames() for (const arch of archs) { if (gte(ELECTRON_VERSION, "19.0.0") && platform === "linux" && arch === "ia32") { // Chromium dropped support for ia32 linux binaries in 102.0.4999.0 diff --git a/test/src/helpers/launchAppCrossPlatform.ts b/test/src/helpers/launchAppCrossPlatform.ts index 32d8880bd63..091d64496a4 100644 --- a/test/src/helpers/launchAppCrossPlatform.ts +++ b/test/src/helpers/launchAppCrossPlatform.ts @@ -1,4 +1,4 @@ -import type { VmManager } from "app-builder-lib/out/vm/vm" +import type { VmManager } from "app-builder-lib/src/vm/vm" import { ChildProcess, execSync, spawn, StdioOptions } from "child_process" import { createHash, randomUUID } from "crypto" import * as fs from "fs" diff --git a/test/src/helpers/packTester.ts b/test/src/helpers/packTester.ts index 005b68b7b1d..cf0d6887e0b 100644 --- a/test/src/helpers/packTester.ts +++ b/test/src/helpers/packTester.ts @@ -1,9 +1,9 @@ import { PublishManager } from "app-builder-lib" import { verifyAsarFileTree as _verifyAsarFileTree } from "./asarVerifier" -import { computeArchToTargetNamesMap } from "app-builder-lib/out/targets/targetFactory" -import { getLinuxToolsMacToolset } from "app-builder-lib/out/toolsets/linux" -import { parsePlistFile, PlistObject } from "app-builder-lib/out/util/plist" -import { AsarIntegrity } from "app-builder-lib/out/asar/integrity" +import { computeArchToTargetNamesMap } from "app-builder-lib/src/targets/targetFactory" +import { getLinuxToolsMacToolset } from "app-builder-lib/src/toolsets/linux" +import { parsePlistFile, PlistObject } from "app-builder-lib/src/util/plist" +import { AsarIntegrity } from "app-builder-lib/src/asar/integrity" import { addValue, copyDir, exec, executeFinally, exists, FileCopier, log, USE_HARD_LINKS, walk } from "builder-util" import { CancellationToken, deepAssign, UpdateFileInfo } from "builder-util-runtime" import { Arch, ArtifactCreated, Configuration, DIR_TARGET, getArchSuffix, MacOsTargetName, Packager, PackagerOptions, Platform, Target } from "electron-builder" @@ -17,7 +17,7 @@ import * as path from "path" import pathSorter from "path-sort" import { NtExecutable, NtExecutableResource } from "resedit" import { TmpDir } from "temp-file" -import { getCollectorByPackageManager, PM } from "app-builder-lib/out/node-module-collector" +import { getCollectorByPackageManager, PM } from "app-builder-lib/src/node-module-collector" import { promisify } from "util" import { MAC_CSC_LINK, WIN_CSC_LINK } from "./codeSignData" import { assertThat } from "./fileAssert" @@ -25,11 +25,11 @@ import AdmZip from "adm-zip" // @ts-ignore import sanitizeFileName from "sanitize-filename" import type { ExpectStatic } from "vitest" -import { computeDefaultAppDirectory } from "app-builder-lib/out/util/config/config" -import { installDependencies } from "app-builder-lib/out/util/yarn" +import { computeDefaultAppDirectory } from "app-builder-lib/src/util/config/config" +import { installDependencies } from "app-builder-lib/src/util/yarn" import { ELECTRON_VERSION } from "./testConfig" import { execSync } from "child_process" -import { detectPackageManager } from "app-builder-lib/out/node-module-collector/packageManager" +import { detectPackageManager } from "app-builder-lib/src/node-module-collector/packageManager" const PACKAGE_MANAGER_VERSION_MAP = { [PM.NPM]: { cli: "npm", version: "9.8.1" }, diff --git a/test/src/iconConverterTest.ts b/test/src/iconConverterTest.ts index b2632d63414..3312b6271b0 100644 --- a/test/src/iconConverterTest.ts +++ b/test/src/iconConverterTest.ts @@ -3,7 +3,7 @@ import { mkdir, mkdtemp, readFile, rm, writeFile } from "fs/promises" import * as os from "os" import * as path from "path" import { afterEach, beforeEach, describe, expect, it } from "vitest" -import { buildSourceCandidates, convertIcon, getPngSize } from "app-builder-lib/out/util/iconConverter" +import { buildSourceCandidates, convertIcon, getPngSize } from "app-builder-lib/src/util/iconConverter" const FIXTURES = path.join(__dirname, "../fixtures") const TEST_APP_ICONS = path.join(FIXTURES, "test-app-one/build") @@ -33,7 +33,7 @@ const CRC_TABLE = (() => { function crc32(buf: Buffer): number { let crc = 0xffffffff for (const byte of buf) { - crc = CRC_TABLE[(crc ^ byte) & 0xff]! ^ (crc >>> 8) + crc = CRC_TABLE[(crc ^ byte) & 0xff] ^ (crc >>> 8) } return (crc ^ 0xffffffff) >>> 0 } @@ -80,14 +80,20 @@ async function writePng(size: number, filePath: string): Promise { function parseIcns(data: Buffer): Map { const magic = data.toString("ascii", 0, 4) - if (magic !== "icns") throw new Error(`Not an ICNS file (got ${magic})`) + if (magic !== "icns") { + throw new Error(`Not an ICNS file (got ${magic})`) + } const entries = new Map() let offset = 8 while (offset < data.length) { - if (offset + 8 > data.length) break + if (offset + 8 > data.length) { + break + } const ostype = data.toString("ascii", offset, offset + 4) const len = data.readUInt32BE(offset + 4) - if (len < 8) break + if (len < 8) { + break + } entries.set(ostype, data.subarray(offset + 8, offset + len)) offset += len } diff --git a/test/src/linux/appImageTest.ts b/test/src/linux/appImageTest.ts index 25378c2229d..931e674ba06 100644 --- a/test/src/linux/appImageTest.ts +++ b/test/src/linux/appImageTest.ts @@ -68,7 +68,7 @@ describe("copyMimeTypes - invalid extension handling", () => { executableName: "testapp", }) expect(result).not.toBeNull() - const xml = await fs.readFile(path.join(dir, result!), "utf8") + const xml = await fs.readFile(path.join(dir, result), "utf8") expect(xml).not.toContain('') }) @@ -80,7 +80,7 @@ describe("copyMimeTypes - invalid extension handling", () => { executableName: "testapp", }) expect(result).not.toBeNull() - const xml = await fs.readFile(path.join(dir, result!), "utf8") + const xml = await fs.readFile(path.join(dir, result), "utf8") expect(xml).toContain('') }) }) diff --git a/test/src/linux/snapcraftParallelsTest.ts b/test/src/linux/snapcraftParallelsTest.ts index 07e60271d7f..598fbc2a83f 100644 --- a/test/src/linux/snapcraftParallelsTest.ts +++ b/test/src/linux/snapcraftParallelsTest.ts @@ -1,7 +1,7 @@ import { DebugLogger } from "builder-util" -import { log } from "builder-util/out/util" +import { log } from "builder-util/src/util" import { Platform } from "electron-builder" -import { getLinuxVm } from "app-builder-lib/out/vm/vm" +import { getLinuxVm } from "app-builder-lib/src/vm/vm" import { readdir } from "fs/promises" import * as path from "path" import { assertPack, EXTENDED_TIMEOUT } from "../helpers/packTester" diff --git a/test/src/mac/MacTargetHelperTest.ts b/test/src/mac/MacTargetHelperTest.ts index 51d3c205d56..17a7ecc69a1 100644 --- a/test/src/mac/MacTargetHelperTest.ts +++ b/test/src/mac/MacTargetHelperTest.ts @@ -1,5 +1,5 @@ import { afterEach, expect } from "vitest" -import { MacTargetHelper } from "app-builder-lib/out/mac/MacTargetHelper" +import { MacTargetHelper } from "app-builder-lib/src/mac/MacTargetHelper" describe("MacTargetHelper", () => { describe("getCertificateTypes", () => { diff --git a/test/src/mac/dmgLicenseTest.ts b/test/src/mac/dmgLicenseTest.ts index 6b7bfca4f06..ad56c143e42 100644 --- a/test/src/mac/dmgLicenseTest.ts +++ b/test/src/mac/dmgLicenseTest.ts @@ -218,7 +218,7 @@ describe("addLicenseToDmg", () => { const result = await addLicenseToDmg(packager) - expect(Object.keys(result!.buttons!).sort()).toEqual(["en_US", "fr_FR"]) + expect(Object.keys(result!.buttons).sort()).toEqual(["en_US", "fr_FR"]) expect(result!.buttons!["en_US"].language).toBe("English") expect(result!.buttons!["fr_FR"].language).toBe("Français") }) diff --git a/test/src/node-module-collector/moduleManagerTest.ts b/test/src/node-module-collector/moduleManagerTest.ts index 7df98e48cbf..e305ab7e5aa 100644 --- a/test/src/node-module-collector/moduleManagerTest.ts +++ b/test/src/node-module-collector/moduleManagerTest.ts @@ -84,7 +84,9 @@ describe("ModuleManager.locatePackageVersion", () => { describe("upward (hoisted) resolution", () => { let root = "" afterEach(async () => { - if (root) await fse.rm(root, { recursive: true, force: true }) + if (root) { + await fse.rm(root, { recursive: true, force: true }) + } }) test("finds hoisted package that satisfies range", async ({ expect }) => { @@ -108,7 +110,9 @@ describe("ModuleManager.locatePackageVersion", () => { describe("override fallback (two-pass search)", () => { let root = "" afterEach(async () => { - if (root) await fse.rm(root, { recursive: true, force: true }) + if (root) { + await fse.rm(root, { recursive: true, force: true }) + } }) test("accepts package whose installed version is outside the declared range", async ({ expect }) => { @@ -192,7 +196,9 @@ describe("ModuleManager.locatePackageVersion", () => { describe("ModuleManager downward search", () => { let root = "" afterEach(async () => { - if (root) await fse.rm(root, { recursive: true, force: true }) + if (root) { + await fse.rm(root, { recursive: true, force: true }) + } }) test("finds package nested under another package's node_modules", async ({ expect }) => { @@ -283,7 +289,9 @@ describe("ModuleManager downward search", () => { describe("ModuleManager.semverSatisfies (via locatePackageVersion)", () => { let root = "" afterEach(async () => { - if (root) await fse.rm(root, { recursive: true, force: true }) + if (root) { + await fse.rm(root, { recursive: true, force: true }) + } }) async function locateWith(version: string, range: string): Promise<{ found: boolean; usedFallback: boolean }> { diff --git a/test/src/publisher/snap/SnapStorePublisherTest.ts b/test/src/publisher/snap/SnapStorePublisherTest.ts index eba67c74b0c..1c656f7cc9b 100644 --- a/test/src/publisher/snap/SnapStorePublisherTest.ts +++ b/test/src/publisher/snap/SnapStorePublisherTest.ts @@ -1,6 +1,6 @@ import { exec, spawn } from "builder-util" import { CancellationToken } from "builder-util-runtime" -import { SnapStoreOptions } from "builder-util-runtime/out/publishOptions" +import { SnapStoreOptions } from "builder-util-runtime/src/publishOptions" import { PublishContext, UploadTask } from "electron-publish" import { beforeEach, describe, test, vi } from "vitest" // Import from source so Vitest's vi.mock intercepts builder-util in the same module graph diff --git a/test/src/rebuilderTest.ts b/test/src/rebuilderTest.ts index 5011f0d6010..095c3c8fa75 100644 --- a/test/src/rebuilderTest.ts +++ b/test/src/rebuilderTest.ts @@ -1,6 +1,6 @@ import { Configuration, Platform } from "app-builder-lib" -import { PM } from "app-builder-lib/out/node-module-collector" -import { exists } from "builder-util/out/util" +import { PM } from "app-builder-lib/src/node-module-collector" +import { exists } from "builder-util/src/util" import path from "path" import { assertPack, linuxDirTarget, modifyPackageJson } from "./helpers/packTester" import { ELECTRON_VERSION } from "./helpers/testConfig" diff --git a/test/src/s3BucketLocationTest.ts b/test/src/s3BucketLocationTest.ts index 03e679d8283..244d35e3fed 100644 --- a/test/src/s3BucketLocationTest.ts +++ b/test/src/s3BucketLocationTest.ts @@ -30,7 +30,7 @@ function mockHttpResponse(statusCode: number, body: string): void { setImmediate(() => { const res = new EventEmitter() as any res.statusCode = statusCode - ;(callback as Function)(res) + ;(callback as (arg: unknown) => void)(res) setImmediate(() => { res.emit("data", body) res.emit("end") diff --git a/test/src/s3PublishTest.ts b/test/src/s3PublishTest.ts index f7500c69d7f..e5e7e36d3f2 100644 --- a/test/src/s3PublishTest.ts +++ b/test/src/s3PublishTest.ts @@ -65,7 +65,7 @@ function mockSuccessfulUpload(): { capturedOpts: () => any } { const res = new EventEmitter() as any res.statusCode = 200 res.resume = vi.fn() - ;(callback as Function)(res) + ;(callback as (arg: unknown) => void)(res) setImmediate(() => res.emit("end")) }) // Handle piped stream diff --git a/test/src/schemaValidatorTest.ts b/test/src/schemaValidatorTest.ts index 59ac012df80..a3046e4c6b7 100644 --- a/test/src/schemaValidatorTest.ts +++ b/test/src/schemaValidatorTest.ts @@ -1,4 +1,4 @@ -import { validateSchema } from "app-builder-lib/out/util/config/schemaValidator" +import { validateSchema } from "app-builder-lib/src/util/config/schemaValidator" import { describe, expect, it } from "vitest" const simpleSchema = { @@ -176,7 +176,7 @@ describe("validateSchema - postFormatter", () => { { name: "x", nested: { value: "ok", extra: 1 } }, { postFormatter: (msg, error) => { - capturedPath = (error as any).instancePath + capturedPath = error.instancePath return msg }, } diff --git a/test/src/updateInfoBuilderTest.ts b/test/src/updateInfoBuilderTest.ts index f175fe44b3e..df7118aaf7b 100644 --- a/test/src/updateInfoBuilderTest.ts +++ b/test/src/updateInfoBuilderTest.ts @@ -1,7 +1,7 @@ import * as fsp from "fs/promises" import * as os from "os" import * as path from "path" -import { createUpdateInfoTasks, writeUpdateInfoFiles, UpdateInfoFileTask } from "app-builder-lib/out/publish/updateInfoBuilder" +import { createUpdateInfoTasks, writeUpdateInfoFiles, UpdateInfoFileTask } from "app-builder-lib/src/publish/updateInfoBuilder" import { Platform } from "app-builder-lib" import { Arch } from "builder-util" import { load as yamlLoad } from "js-yaml" diff --git a/test/src/updater/baseUpdaterUnitTest.ts b/test/src/updater/baseUpdaterUnitTest.ts index 84f5ca947a5..58f0c93ba26 100644 --- a/test/src/updater/baseUpdaterUnitTest.ts +++ b/test/src/updater/baseUpdaterUnitTest.ts @@ -1,8 +1,8 @@ import * as path from "path" import { afterEach, beforeEach, expect, it, vi } from "vitest" import { AppImageUpdater, DebUpdater } from "electron-updater" -import type { AppAdapter } from "electron-updater/out/AppAdapter" -import type { InstallOptions } from "electron-updater/out/BaseUpdater" +import type { AppAdapter } from "electron-updater/src/AppAdapter" +import type { InstallOptions } from "electron-updater/src/BaseUpdater" const stubApp: AppAdapter = { name: "TestApp", diff --git a/test/src/updater/blackboxInstallMac.ts b/test/src/updater/blackboxInstallMac.ts index 7b3d1b760fc..7bc77e25ccb 100644 --- a/test/src/updater/blackboxInstallMac.ts +++ b/test/src/updater/blackboxInstallMac.ts @@ -1,4 +1,4 @@ -import { getArchSuffix } from "builder-util/out/util" +import { getArchSuffix } from "builder-util/src/util" import { Arch } from "electron-builder" import path from "path" diff --git a/test/src/updater/blackboxInstallTest.ts b/test/src/updater/blackboxInstallTest.ts index 74f02b91253..eed744f1ca2 100644 --- a/test/src/updater/blackboxInstallTest.ts +++ b/test/src/updater/blackboxInstallTest.ts @@ -1,8 +1,8 @@ import { AppImageOptions, Configuration, DebOptions, PacmanOptions, RpmOptions, Target, ToolsetConfig } from "app-builder-lib" -import { PM } from "app-builder-lib/out/node-module-collector" +import { PM } from "app-builder-lib/src/node-module-collector" import { Arch, Platform } from "electron-builder" import { DebUpdater, PacmanUpdater, RpmUpdater } from "electron-updater" -import { archFromString, log, spawn, TmpDir } from "builder-util/out/util" +import { archFromString, log, spawn, TmpDir } from "builder-util/src/util" import { deepAssign, GenericServerOptions } from "builder-util-runtime" import { execSync } from "child_process" import { move, outputFile, readJsonSync } from "fs-extra" diff --git a/test/src/updater/blackboxInstallWindows.ts b/test/src/updater/blackboxInstallWindows.ts index f563278a8ed..1c3b84c18b9 100644 --- a/test/src/updater/blackboxInstallWindows.ts +++ b/test/src/updater/blackboxInstallWindows.ts @@ -1,4 +1,4 @@ -import { ParallelsVmManager } from "app-builder-lib/out/vm/ParallelsVm" +import { ParallelsVmManager } from "app-builder-lib/src/vm/ParallelsVm" import { execFileSync, execSync } from "child_process" import { randomUUID } from "crypto" import { Arch } from "electron-builder" diff --git a/test/src/updater/blackboxUpdateHelpers.ts b/test/src/updater/blackboxUpdateHelpers.ts index c27c49a29c5..5aaf452675d 100644 --- a/test/src/updater/blackboxUpdateHelpers.ts +++ b/test/src/updater/blackboxUpdateHelpers.ts @@ -1,9 +1,9 @@ import { ToolsetConfig } from "app-builder-lib" -import { PM } from "app-builder-lib/out/node-module-collector" -import { ParallelsVmManager } from "app-builder-lib/out/vm/ParallelsVm" -import { getWindowsVm, VmManager } from "app-builder-lib/out/vm/vm" +import { PM } from "app-builder-lib/src/node-module-collector" +import { ParallelsVmManager } from "app-builder-lib/src/vm/ParallelsVm" +import { getWindowsVm, VmManager } from "app-builder-lib/src/vm/vm" import { GenericServerOptions, Nullish } from "builder-util-runtime" -import { archFromString, deepAssign, DebugLogger, log, serializeToYaml, spawn, TmpDir } from "builder-util/out/util" +import { archFromString, deepAssign, DebugLogger, log, serializeToYaml, spawn, TmpDir } from "builder-util/src/util" import { Arch, Configuration, Platform } from "electron-builder" import { copy, existsSync, move, outputFile, readJsonSync, remove } from "fs-extra" import { homedir } from "os" diff --git a/test/src/updater/blackboxUpdateLinuxSuite.ts b/test/src/updater/blackboxUpdateLinuxSuite.ts index 6d3286463d2..4e1b2323097 100644 --- a/test/src/updater/blackboxUpdateLinuxSuite.ts +++ b/test/src/updater/blackboxUpdateLinuxSuite.ts @@ -1,5 +1,5 @@ import { ToolsetConfig } from "app-builder-lib" -import { isEmptyOrSpaces } from "builder-util/out/util" +import { isEmptyOrSpaces } from "builder-util/src/util" import { execSync } from "child_process" import { Arch } from "electron-builder" import { TestContext } from "vitest" diff --git a/test/src/updater/blackboxUpdateWinSuite.ts b/test/src/updater/blackboxUpdateWinSuite.ts index b78d5556b56..5f2c5e792ef 100644 --- a/test/src/updater/blackboxUpdateWinSuite.ts +++ b/test/src/updater/blackboxUpdateWinSuite.ts @@ -1,12 +1,12 @@ import { ToolsetConfig } from "app-builder-lib" -import { ParallelsVmManager } from "app-builder-lib/out/vm/ParallelsVm" +import { ParallelsVmManager } from "app-builder-lib/src/vm/ParallelsVm" import { copyFileSync, unlinkSync } from "fs" import { tmpdir } from "os" import { Arch, Configuration } from "electron-builder" import { spawn as nodeSpawn } from "child_process" import * as path from "path" import { TestContext } from "vitest" -import { deepAssign, TmpDir } from "builder-util/out/util" +import { deepAssign, TmpDir } from "builder-util/src/util" import { ApplicationUpdatePaths, doBuild, optionsForFlakyE2E, runTest, windowsVmPromise } from "./blackboxUpdateHelpers" import { installWindowsVm } from "./blackboxInstallWindows" diff --git a/test/src/updater/blackboxWebInstallerTest.ts b/test/src/updater/blackboxWebInstallerTest.ts index 97024b4a7b0..46d4151f2f7 100644 --- a/test/src/updater/blackboxWebInstallerTest.ts +++ b/test/src/updater/blackboxWebInstallerTest.ts @@ -1,4 +1,4 @@ -import { TmpDir } from "builder-util/out/util" +import { TmpDir } from "builder-util/src/util" import { execFileSync, execSync } from "child_process" import { randomUUID } from "crypto" import { Arch, Platform } from "electron-builder" @@ -11,7 +11,7 @@ import { createLocalServer, getParallelsHostIP, sha256File, toVmHomePath } from import { assertPack, modifyPackageJson, PackedContext } from "../helpers/packTester" import { ELECTRON_VERSION } from "../helpers/testConfig" import { optionsForFlakyE2E, windowsVmPromise } from "./blackboxUpdateHelpers" -import { PM } from "app-builder-lib/out/node-module-collector" +import { PM } from "app-builder-lib/src/node-module-collector" import { spawn } from "builder-util" // --------------------------------------------------------------------------- diff --git a/test/src/updater/downloadPlanBuilderTest.ts b/test/src/updater/downloadPlanBuilderTest.ts index 94f067b61e6..c4d34c43d1b 100644 --- a/test/src/updater/downloadPlanBuilderTest.ts +++ b/test/src/updater/downloadPlanBuilderTest.ts @@ -1,7 +1,7 @@ -import { BlockMap } from "builder-util-runtime/out/blockMapApi" -import { computeOperations, OperationKind } from "electron-updater/out/differentialDownloader/downloadPlanBuilder" +import { BlockMap } from "builder-util-runtime/src/blockMapApi" +import { computeOperations, OperationKind } from "electron-updater/src/differentialDownloader/downloadPlanBuilder" import { describe, expect, test } from "vitest" -import type { Logger } from "electron-updater/out/types" +import type { Logger } from "electron-updater/src/types" function makeBlockMap(checksums: string[], sizes: number[], offset = 0, name = "file"): BlockMap { return { version: "2", files: [{ name, offset, checksums, sizes }] } diff --git a/test/src/updater/downloadedUpdateHelperTest.ts b/test/src/updater/downloadedUpdateHelperTest.ts index e5e4d24e7a4..eff469ec77f 100644 --- a/test/src/updater/downloadedUpdateHelperTest.ts +++ b/test/src/updater/downloadedUpdateHelperTest.ts @@ -1,12 +1,12 @@ -import { createTempUpdateFile, DownloadedUpdateHelper } from "electron-updater/out/DownloadedUpdateHelper" +import { createTempUpdateFile, DownloadedUpdateHelper } from "electron-updater/src/DownloadedUpdateHelper" import { outputFile, outputJson, pathExists } from "fs-extra" import { mkdtemp, rm } from "fs/promises" import { tmpdir } from "os" import * as path from "path" import { afterEach, beforeEach, describe, expect, test } from "vitest" -import type { Logger } from "electron-updater/out/types" +import type { Logger } from "electron-updater/src/types" import type { UpdateInfo } from "builder-util-runtime" -import type { ResolvedUpdateFileInfo } from "electron-updater/out/types" +import type { ResolvedUpdateFileInfo } from "electron-updater/src/types" function makeLogger(): Logger & { infos: string[]; warns: string[] } { const infos: string[] = [] diff --git a/test/src/updater/linuxUpdaterUnitTest.ts b/test/src/updater/linuxUpdaterUnitTest.ts index 3f5a1bfe37f..e685b680c6a 100644 --- a/test/src/updater/linuxUpdaterUnitTest.ts +++ b/test/src/updater/linuxUpdaterUnitTest.ts @@ -1,6 +1,6 @@ import { afterEach, beforeEach, describe, expect, it, vi } from "vitest" import { DebUpdater } from "electron-updater" -import type { AppAdapter } from "electron-updater/out/AppAdapter" +import type { AppAdapter } from "electron-updater/src/AppAdapter" const stubApp: AppAdapter = { name: "TestApp", diff --git a/test/src/updater/macUpdaterLogicTest.ts b/test/src/updater/macUpdaterLogicTest.ts index 61f38e6c32c..eb46f3551ae 100644 --- a/test/src/updater/macUpdaterLogicTest.ts +++ b/test/src/updater/macUpdaterLogicTest.ts @@ -1,6 +1,6 @@ -import { MacUpdater } from "electron-updater/out/MacUpdater" +import { MacUpdater } from "electron-updater/src/MacUpdater" import { describe, expect, test } from "vitest" -import type { ResolvedUpdateFileInfo } from "electron-updater/out/types" +import type { ResolvedUpdateFileInfo } from "electron-updater/src/types" // MacUpdater is in skipPerOSTests.darwin (requires live Electron), but // filterFilesForArch is a protected static with no Electron dependency — it diff --git a/test/src/windows/squirrelWindowsSecurityTest.ts b/test/src/windows/squirrelWindowsSecurityTest.ts index fae15922877..4ac86453001 100644 --- a/test/src/windows/squirrelWindowsSecurityTest.ts +++ b/test/src/windows/squirrelWindowsSecurityTest.ts @@ -1,4 +1,4 @@ -import SquirrelWindowsTarget from "electron-builder-squirrel-windows/out/SquirrelWindowsTarget" +import SquirrelWindowsTarget from "electron-builder-squirrel-windows/src/SquirrelWindowsTarget" import { mkdtemp, realpath, rm } from "fs/promises" import { tmpdir } from "os" import * as path from "path" diff --git a/test/src/windows/winCodeSignTest.ts b/test/src/windows/winCodeSignTest.ts index edfcabcca55..cac9ee37f41 100644 --- a/test/src/windows/winCodeSignTest.ts +++ b/test/src/windows/winCodeSignTest.ts @@ -1,7 +1,7 @@ import { parseDn } from "builder-util-runtime" import { ToolInfo, WinPackager, WindowsSignToolManager } from "app-builder-lib" -import { CustomWindowsSign } from "app-builder-lib/out/codeSign/windowsSignToolManager" -import { Configuration, ToolsetConfig } from "app-builder-lib/out/configuration" +import { CustomWindowsSign } from "app-builder-lib/src/codeSign/windowsSignToolManager" +import { Configuration, ToolsetConfig } from "app-builder-lib/src/configuration" import { AsyncTaskManager } from "builder-util" import { Arch, DIR_TARGET, Platform, Target } from "electron-builder" import { Packager } from "electron-builder" diff --git a/test/src/windows/winReseditTest.ts b/test/src/windows/winReseditTest.ts index 3947516f67a..106e1b984db 100644 --- a/test/src/windows/winReseditTest.ts +++ b/test/src/windows/winReseditTest.ts @@ -1,4 +1,4 @@ -import { ResourceEditOptions, editWindowsResources } from "app-builder-lib/out/util/resEdit" +import { ResourceEditOptions, editWindowsResources } from "app-builder-lib/src/util/resEdit" import * as fs from "fs/promises" import * as os from "os" import path from "path" diff --git a/test/src/windows/winSignToolManagerTest.ts b/test/src/windows/winSignToolManagerTest.ts index 9bfb2807d07..2c5818f02f2 100644 --- a/test/src/windows/winSignToolManagerTest.ts +++ b/test/src/windows/winSignToolManagerTest.ts @@ -1,5 +1,5 @@ import { WindowsSignToolManager } from "app-builder-lib" -import { WindowsSignTaskConfiguration } from "app-builder-lib/out/codeSign/windowsSignToolManager" +import { WindowsSignTaskConfiguration } from "app-builder-lib/src/codeSign/windowsSignToolManager" import { mkdtemp, rm, writeFile } from "fs/promises" import { tmpdir } from "os" import * as path from "path" diff --git a/test/tsconfig.json b/test/tsconfig.json index 89132d18648..9df935d7656 100644 --- a/test/tsconfig.json +++ b/test/tsconfig.json @@ -3,26 +3,8 @@ "compilerOptions": { "rootDir": ".", "outDir": "out", - "skipLibCheck": true, - "baseUrl": "../packages" + "skipLibCheck": true }, - "references": [ - { - "path": "../packages/builder-util" - }, - { - "path": "../packages/builder-util-runtime" - }, - { - "path": "../packages/electron-builder" - }, - { - "path": "../packages/electron-publish" - }, - { - "path": "../packages/electron-updater" - } - ], "declaration": false, "include": [ "../typings/*.d.ts", @@ -31,6 +13,5 @@ "vitest-scripts/*.ts" ], "types": ["vitest/globals"], - "exclude": [ - ] + "exclude": [] } diff --git a/test/vitest-scripts/generate-tests.ts b/test/vitest-scripts/generate-tests.ts index aedcf9d651f..2e7e298ce87 100644 --- a/test/vitest-scripts/generate-tests.ts +++ b/test/vitest-scripts/generate-tests.ts @@ -1,4 +1,4 @@ -#!/usr/bin/env ts-node +#!/usr/bin/env tsx import { existsSync, rmSync } from "fs-extra" import { generateLinuxToolsetTests } from "./generate-toolset-tests-linux" import { GENERATED_TESTS_DIR } from "./generate-toolset-tests-shared" diff --git a/test/vitest-scripts/run-vitest.ts b/test/vitest-scripts/run-vitest.ts index ef016dbbde9..0cb6e9c9dc4 100644 --- a/test/vitest-scripts/run-vitest.ts +++ b/test/vitest-scripts/run-vitest.ts @@ -1,6 +1,7 @@ -#!/usr/bin/env ts-node +#!/usr/bin/env tsx import isCI from "is-ci" +import * as path from "path" import { startVitest } from "vitest/node" import { getAllTestFiles } from "./file-discovery" import { generateTests } from "./generate-tests" @@ -8,6 +9,31 @@ import { buildWeightedFiles, computeShardCount, splitIntoShards } from "./shard- import { SHARD_INDEX, SupportedPlatforms, TEST_FILES_PATTERN } from "./smart-config" import SmartSequencer from "./vitest-smart-sequencer" +// Resolve workspace packages to their TypeScript sources during tests. The published packages are +// bundled (CJS+ESM) by tsup, but tests must run against un-bundled source so vite handles CJS interop +// (e.g. fs-extra) and circular deps, and so `vi.mock` can intercept individual internal modules. +const PACKAGES_DIR = path.join(__dirname, "..", "..", "packages") +const sourceAlias = (specifier: string, relPath: string) => ({ + find: new RegExp(`^${specifier.replace(/\//g, "\\/")}$`), + replacement: path.join(PACKAGES_DIR, relPath), +}) +const workspaceSourceAliases = [ + sourceAlias("app-builder-lib/internal", "app-builder-lib/src/indexInternal.ts"), + sourceAlias("app-builder-lib", "app-builder-lib/src/index.ts"), + sourceAlias("builder-util/internal", "builder-util/src/indexInternal.ts"), + sourceAlias("builder-util", "builder-util/src/util.ts"), + sourceAlias("builder-util-runtime/internal", "builder-util-runtime/src/indexInternal.ts"), + sourceAlias("builder-util-runtime", "builder-util-runtime/src/index.ts"), + sourceAlias("electron-publish/internal", "electron-publish/src/indexInternal.ts"), + sourceAlias("electron-publish", "electron-publish/src/index.ts"), + sourceAlias("electron-updater/internal", "electron-updater/src/indexInternal.ts"), + sourceAlias("electron-updater", "electron-updater/src/index.ts"), + sourceAlias("dmg-builder", "dmg-builder/src/dmgUtil.ts"), + sourceAlias("electron-builder-squirrel-windows", "electron-builder-squirrel-windows/src/SquirrelWindowsTarget.ts"), + sourceAlias("electron-builder/internal", "electron-builder/src/indexInternal.ts"), + sourceAlias("electron-builder", "electron-builder/src/index.ts"), +] + const testRegex = TEST_FILES_PATTERN?.split(",") const includeRegex = `(${testRegex.join("|")}|${testRegex.map(t => `${t}*Test`).join("|")})` console.log("TEST_FILES pattern", includeRegex) @@ -44,53 +70,62 @@ async function main() { console.log(`\n=== Shard ${index + 1} of ${shardCount} ===`) console.log(`Scanned Files: ${selectedFiles.length}`) - return startVitest("test", selectedFiles, { - allowOnly: !isCI, // Prevent accidental commit of `test.only` in CI - update: process.env.UPDATE_SNAPSHOT === "true", - - // we manually set `globalThis.test` and `globalThis.describe` in vitest-setup.ts to make sure everything works correctly - globals: false, - - // Allow test metadata - includeTaskLocation: true, - setupFiles: [__dirname + "/vitest-setup.ts", __dirname + "/vitest-heavy-mutex.ts"], - include: [`test/src/**/${includeRegex}.ts`], - - printConsoleTrace: true, - runner: __dirname + "/vitest-network-retry-runner.ts", - reporters: ["default", __dirname + "/vitest-smart-reporter.ts"], - - // 2 on Windows (heavy MSI/Squirrel builds saturate the vitest main-thread RPC at 3); 3 elsewhere - maxWorkers: process.platform === "win32" ? 2 : 3, - - fileParallelism: process.env.TEST_SEQUENTIAL_FILES !== "true", - sequence: { - sequencer: SmartSequencer, - concurrent: process.env.TEST_SEQUENTIAL === "false", - }, - - slowTestThreshold: 2 * 60 * 1000, - testTimeout: 10 * 60 * 1000, // disk operations can be slow. We're generous with the timeout here to account for less-performant hardware - - snapshotFormat: { - printBasicPrototype: false, - }, - resolveSnapshotPath: (testPath, snapshotExtension) => { - const snapshotPath = testPath - .replace(/\.[tj]s$/, `.js${snapshotExtension}`) - .replace("/src/", "/snapshots/") - .replace("\\src\\", "\\snapshots\\") - // These suites assert the packed asar file tree across every package manager. The tree - // content (files + sizes) is identical on all hosts, but two header fields are inherently - // host-specific: the data-section packing `offset` (write order differs by OS) and the - // Unix `executable` bit (NTFS does not carry it). Keep a dedicated Windows baseline so the - // POSIX snapshots retain full fidelity and neither platform has to discard real data. - if (process.platform === "win32" && /(?:packageManagerTest|HoistedNodeModuleTest)\.js\.snap$/.test(snapshotPath)) { - return snapshotPath.replace(/\.snap$/, ".win.snap") - } - return snapshotPath + return startVitest( + "test", + selectedFiles, + { + allowOnly: !isCI, // Prevent accidental commit of `test.only` in CI + update: process.env.UPDATE_SNAPSHOT === "true", + + // we manually set `globalThis.test` and `globalThis.describe` in vitest-setup.ts to make sure everything works correctly + globals: false, + + // Allow test metadata + includeTaskLocation: true, + setupFiles: [__dirname + "/vitest-setup.ts", __dirname + "/vitest-heavy-mutex.ts"], + include: [`test/src/**/${includeRegex}.ts`], + + printConsoleTrace: true, + runner: __dirname + "/vitest-network-retry-runner.ts", + reporters: ["default", __dirname + "/vitest-smart-reporter.ts"], + + // 2 on Windows (heavy MSI/Squirrel builds saturate the vitest main-thread RPC at 3); 3 elsewhere + maxWorkers: process.platform === "win32" ? 2 : 3, + + fileParallelism: false, + sequence: { + sequencer: SmartSequencer, + concurrent: process.env.TEST_SEQUENTIAL === "false", + }, + + slowTestThreshold: 2 * 60 * 1000, + testTimeout: 10 * 60 * 1000, // disk operations can be slow. We're generous with the timeout here to account for less-performant hardware + + snapshotFormat: { + printBasicPrototype: false, + }, + resolveSnapshotPath: (testPath, snapshotExtension) => { + const snapshotPath = testPath + .replace(/\.[tj]s$/, `.js${snapshotExtension}`) + .replace("/src/", "/snapshots/") + .replace("\\src\\", "\\snapshots\\") + // These suites assert the packed asar file tree across every package manager. The tree + // content (files + sizes) is identical on all hosts, but two header fields are inherently + // host-specific: the data-section packing `offset` (write order differs by OS) and the + // Unix `executable` bit (NTFS does not carry it). Keep a dedicated Windows baseline so the + // POSIX snapshots retain full fidelity and neither platform has to discard real data. + if (process.platform === "win32" && /(?:packageManagerTest|HoistedNodeModuleTest)\.js\.snap$/.test(snapshotPath)) { + return snapshotPath.replace(/\.snap$/, ".win.snap") + } + return snapshotPath + }, }, - }) + { + resolve: { + alias: workspaceSourceAliases, + }, + } + ) .then(() => { console.log("Vitest run completed") }) diff --git a/test/vitest-scripts/smart-shard-count.ts b/test/vitest-scripts/smart-shard-count.ts index fd5164ae97c..6faea65e582 100644 --- a/test/vitest-scripts/smart-shard-count.ts +++ b/test/vitest-scripts/smart-shard-count.ts @@ -1,4 +1,4 @@ -#!/usr/bin/env ts-node +#!/usr/bin/env tsx import { getAllTestFiles } from "./file-discovery" import { buildWeightedFiles, computeShardCount } from "./shard-builder" diff --git a/tsconfig.json b/tsconfig.json index 81a40953bf4..deccc2d0102 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -25,14 +25,8 @@ { "path": "./packages/electron-builder-squirrel-windows" }, - { - "path": "./test" - }, - { - "path": "./website" - }, { "path": "./scripts" } ] -} \ No newline at end of file +} From cac6d4844116cfb4f2f4adfdcc795158e6984f0a Mon Sep 17 00:00:00 2001 From: Mike Maietta Date: Wed, 3 Jun 2026 08:20:18 -0700 Subject: [PATCH 58/65] regen lockfile --- pnpm-lock.yaml | 1289 ++++++++++++++++++++++++++++++++++++++---------- 1 file changed, 1019 insertions(+), 270 deletions(-) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 261f3e2315e..44d49d89011 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -11,6 +11,7 @@ overrides: patchedDependencies: '@changesets/assemble-release-plan@6.0.9': ef56f57067dfcc594f40d9afc7278abe38cecf1c04230936e447a60e0d58a46e '@changesets/cli@2.29.7': 4ef9ea77709c09dd51d013cff58b6b8d9004f0c22208e12942cbf4161351d590 + estree-walker@3.0.3: 591af4f8bfba56a5da5f4340b1501bbcb00ca5a5a63d1e1d55c4aacd9a165f75 importers: @@ -65,15 +66,21 @@ importers: eslint-plugin-prettier: specifier: ^5.2.1 version: 5.5.4(@types/eslint@9.6.1)(eslint-config-prettier@9.1.2(eslint@9.39.2(jiti@2.4.2)))(eslint@9.39.2(jiti@2.4.2))(prettier@3.7.4) + fs-extra: + specifier: ^10.1.0 + version: 10.1.0 is-ci: specifier: ^4.1.0 version: 4.1.0 prettier: specifier: 3.7.4 version: 3.7.4 - ts-node: - specifier: ^10.9.2 - version: 10.9.2(@swc/core@1.15.33)(@types/node@22.13.17)(typescript@5.8.2) + tsup: + specifier: ^8.0.0 + version: 8.5.1(@swc/core@1.15.33)(jiti@2.4.2)(postcss@8.5.14)(tsx@4.22.3)(typescript@5.8.2)(yaml@2.8.4) + tsx: + specifier: ^4.0.0 + version: 4.22.3 typedoc: specifier: ^0.28.19 version: 0.28.19(typescript@5.8.2) @@ -85,7 +92,7 @@ importers: version: 0.64.0(@swc/core@1.15.33) vitest: specifier: ^3.2.2 - version: 3.2.4(@types/node@22.13.17)(jiti@2.4.2)(lightningcss@1.32.0)(sass@1.86.1)(terser@5.47.1)(yaml@2.8.4) + version: 3.2.4(@types/node@22.13.17)(jiti@2.4.2)(lightningcss@1.32.0)(sass@1.86.1)(terser@5.47.1)(tsx@4.22.3)(yaml@2.8.4) packages/app-builder-lib: dependencies: @@ -544,8 +551,8 @@ importers: specifier: workspace:* version: link:../builder-util-runtime fs-extra: - specifier: ^10.1.0 - version: 10.1.0 + specifier: ^11.3.4 + version: 11.3.5 js-yaml: specifier: ^4.1.0 version: 4.1.1 @@ -685,6 +692,9 @@ importers: lazy-val: specifier: ^1.0.5 version: 1.0.5 + minimatch: + specifier: ^10.2.5 + version: 10.2.5 path-sort: specifier: ^0.1.0 version: 0.1.0 @@ -708,7 +718,7 @@ importers: version: 0.12.3 vitest: specifier: ^3.2.4 - version: 3.2.4(@types/node@22.13.17)(jiti@2.4.2)(lightningcss@1.32.0)(sass@1.86.1)(terser@5.47.1)(yaml@2.8.4) + version: 3.2.4(@types/node@22.13.17)(jiti@2.4.2)(lightningcss@1.32.0)(sass@1.86.1)(terser@5.47.1)(tsx@4.22.3)(yaml@2.8.4) vitest-mock-commonjs: specifier: ^1.0.2 version: 1.0.2 @@ -723,19 +733,19 @@ importers: dependencies: '@docusaurus/core': specifier: 3.10.1 - version: 3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3) + version: 3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(esbuild@0.27.7)(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3) '@docusaurus/faster': specifier: 3.10.1 - version: 3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(postcss@8.5.14) + version: 3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(esbuild@0.27.7)(postcss@8.5.14) '@docusaurus/plugin-client-redirects': specifier: 3.10.1 - version: 3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3) + version: 3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(esbuild@0.27.7)(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3) '@docusaurus/preset-classic': specifier: 3.10.1 - version: 3.10.1(@algolia/client-search@5.52.1)(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(@types/react@19.2.14)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(search-insights@2.17.3)(typescript@5.6.3) + version: 3.10.1(@algolia/client-search@5.52.1)(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(esbuild@0.27.7)(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(@types/react@19.2.14)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(search-insights@2.17.3)(typescript@5.6.3) '@docusaurus/theme-mermaid': specifier: 3.10.1 - version: 3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(postcss@8.5.14))(@docusaurus/plugin-content-docs@3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3) + version: 3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(esbuild@0.27.7)(postcss@8.5.14))(@docusaurus/plugin-content-docs@3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(esbuild@0.27.7)(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3) clsx: specifier: 2.1.1 version: 2.1.1 @@ -754,13 +764,13 @@ importers: devDependencies: '@docusaurus/module-type-aliases': specifier: 3.10.1 - version: 3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + version: 3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) '@docusaurus/tsconfig': specifier: 3.10.1 version: 3.10.1 '@docusaurus/types': specifier: 3.10.1 - version: 3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + version: 3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) '@types/react': specifier: ^19.0.0 version: 19.2.14 @@ -2846,150 +2856,462 @@ packages: cpu: [ppc64] os: [aix] + '@esbuild/aix-ppc64@0.27.7': + resolution: {integrity: sha512-EKX3Qwmhz1eMdEJokhALr0YiD0lhQNwDqkPYyPhiSwKrh7/4KRjQc04sZ8db+5DVVnZ1LmbNDI1uAMPEUBnQPg==} + engines: {node: '>=18'} + cpu: [ppc64] + os: [aix] + + '@esbuild/aix-ppc64@0.28.0': + resolution: {integrity: sha512-lhRUCeuOyJQURhTxl4WkpFTjIsbDayJHih5kZC1giwE+MhIzAb7mEsQMqMf18rHLsrb5qI1tafG20mLxEWcWlA==} + engines: {node: '>=18'} + cpu: [ppc64] + os: [aix] + '@esbuild/android-arm64@0.25.2': resolution: {integrity: sha512-5ZAX5xOmTligeBaeNEPnPaeEuah53Id2tX4c2CVP3JaROTH+j4fnfHCkr1PjXMd78hMst+TlkfKcW/DlTq0i4w==} engines: {node: '>=18'} cpu: [arm64] os: [android] + '@esbuild/android-arm64@0.27.7': + resolution: {integrity: sha512-62dPZHpIXzvChfvfLJow3q5dDtiNMkwiRzPylSCfriLvZeq0a1bWChrGx/BbUbPwOrsWKMn8idSllklzBy+dgQ==} + engines: {node: '>=18'} + cpu: [arm64] + os: [android] + + '@esbuild/android-arm64@0.28.0': + resolution: {integrity: sha512-+WzIXQOSaGs33tLEgYPYe/yQHf0WTU0X42Jca3y8NWMbUVhp7rUnw+vAsRC/QiDrdD31IszMrZy+qwPOPjd+rw==} + engines: {node: '>=18'} + cpu: [arm64] + os: [android] + '@esbuild/android-arm@0.25.2': resolution: {integrity: sha512-NQhH7jFstVY5x8CKbcfa166GoV0EFkaPkCKBQkdPJFvo5u+nGXLEH/ooniLb3QI8Fk58YAx7nsPLozUWfCBOJA==} engines: {node: '>=18'} cpu: [arm] os: [android] + '@esbuild/android-arm@0.27.7': + resolution: {integrity: sha512-jbPXvB4Yj2yBV7HUfE2KHe4GJX51QplCN1pGbYjvsyCZbQmies29EoJbkEc+vYuU5o45AfQn37vZlyXy4YJ8RQ==} + engines: {node: '>=18'} + cpu: [arm] + os: [android] + + '@esbuild/android-arm@0.28.0': + resolution: {integrity: sha512-wqh0ByljabXLKHeWXYLqoJ5jKC4XBaw6Hk08OfMrCRd2nP2ZQ5eleDZC41XHyCNgktBGYMbqnrJKq/K/lzPMSQ==} + engines: {node: '>=18'} + cpu: [arm] + os: [android] + '@esbuild/android-x64@0.25.2': resolution: {integrity: sha512-Ffcx+nnma8Sge4jzddPHCZVRvIfQ0kMsUsCMcJRHkGJ1cDmhe4SsrYIjLUKn1xpHZybmOqCWwB0zQvsjdEHtkg==} engines: {node: '>=18'} cpu: [x64] os: [android] + '@esbuild/android-x64@0.27.7': + resolution: {integrity: sha512-x5VpMODneVDb70PYV2VQOmIUUiBtY3D3mPBG8NxVk5CogneYhkR7MmM3yR/uMdITLrC1ml/NV1rj4bMJuy9MCg==} + engines: {node: '>=18'} + cpu: [x64] + os: [android] + + '@esbuild/android-x64@0.28.0': + resolution: {integrity: sha512-+VJggoaKhk2VNNqVL7f6S189UzShHC/mR9EE8rDdSkdpN0KflSwWY/gWjDrNxxisg8Fp1ZCD9jLMo4m0OUfeUA==} + engines: {node: '>=18'} + cpu: [x64] + os: [android] + '@esbuild/darwin-arm64@0.25.2': resolution: {integrity: sha512-MpM6LUVTXAzOvN4KbjzU/q5smzryuoNjlriAIx+06RpecwCkL9JpenNzpKd2YMzLJFOdPqBpuub6eVRP5IgiSA==} engines: {node: '>=18'} cpu: [arm64] os: [darwin] + '@esbuild/darwin-arm64@0.27.7': + resolution: {integrity: sha512-5lckdqeuBPlKUwvoCXIgI2D9/ABmPq3Rdp7IfL70393YgaASt7tbju3Ac+ePVi3KDH6N2RqePfHnXkaDtY9fkw==} + engines: {node: '>=18'} + cpu: [arm64] + os: [darwin] + + '@esbuild/darwin-arm64@0.28.0': + resolution: {integrity: sha512-0T+A9WZm+bZ84nZBtk1ckYsOvyA3x7e2Acj1KdVfV4/2tdG4fzUp91YHx+GArWLtwqp77pBXVCPn2We7Letr0Q==} + engines: {node: '>=18'} + cpu: [arm64] + os: [darwin] + '@esbuild/darwin-x64@0.25.2': resolution: {integrity: sha512-5eRPrTX7wFyuWe8FqEFPG2cU0+butQQVNcT4sVipqjLYQjjh8a8+vUTfgBKM88ObB85ahsnTwF7PSIt6PG+QkA==} engines: {node: '>=18'} cpu: [x64] os: [darwin] + '@esbuild/darwin-x64@0.27.7': + resolution: {integrity: sha512-rYnXrKcXuT7Z+WL5K980jVFdvVKhCHhUwid+dDYQpH+qu+TefcomiMAJpIiC2EM3Rjtq0sO3StMV/+3w3MyyqQ==} + engines: {node: '>=18'} + cpu: [x64] + os: [darwin] + + '@esbuild/darwin-x64@0.28.0': + resolution: {integrity: sha512-fyzLm/DLDl/84OCfp2f/XQ4flmORsjU7VKt8HLjvIXChJoFFOIL6pLJPH4Yhd1n1gGFF9mPwtlN5Wf82DZs+LQ==} + engines: {node: '>=18'} + cpu: [x64] + os: [darwin] + '@esbuild/freebsd-arm64@0.25.2': resolution: {integrity: sha512-mLwm4vXKiQ2UTSX4+ImyiPdiHjiZhIaE9QvC7sw0tZ6HoNMjYAqQpGyui5VRIi5sGd+uWq940gdCbY3VLvsO1w==} engines: {node: '>=18'} cpu: [arm64] os: [freebsd] + '@esbuild/freebsd-arm64@0.27.7': + resolution: {integrity: sha512-B48PqeCsEgOtzME2GbNM2roU29AMTuOIN91dsMO30t+Ydis3z/3Ngoj5hhnsOSSwNzS+6JppqWsuhTp6E82l2w==} + engines: {node: '>=18'} + cpu: [arm64] + os: [freebsd] + + '@esbuild/freebsd-arm64@0.28.0': + resolution: {integrity: sha512-l9GeW5UZBT9k9brBYI+0WDffcRxgHQD8ShN2Ur4xWq/NFzUKm3k5lsH4PdaRgb2w7mI9u61nr2gI2mLI27Nh3Q==} + engines: {node: '>=18'} + cpu: [arm64] + os: [freebsd] + '@esbuild/freebsd-x64@0.25.2': resolution: {integrity: sha512-6qyyn6TjayJSwGpm8J9QYYGQcRgc90nmfdUb0O7pp1s4lTY+9D0H9O02v5JqGApUyiHOtkz6+1hZNvNtEhbwRQ==} engines: {node: '>=18'} cpu: [x64] os: [freebsd] + '@esbuild/freebsd-x64@0.27.7': + resolution: {integrity: sha512-jOBDK5XEjA4m5IJK3bpAQF9/Lelu/Z9ZcdhTRLf4cajlB+8VEhFFRjWgfy3M1O4rO2GQ/b2dLwCUGpiF/eATNQ==} + engines: {node: '>=18'} + cpu: [x64] + os: [freebsd] + + '@esbuild/freebsd-x64@0.28.0': + resolution: {integrity: sha512-BXoQai/A0wPO6Es3yFJ7APCiKGc1tdAEOgeTNy3SsB491S3aHn4S4r3e976eUnPdU+NbdtmBuLncYir2tMU9Nw==} + engines: {node: '>=18'} + cpu: [x64] + os: [freebsd] + '@esbuild/linux-arm64@0.25.2': resolution: {integrity: sha512-gq/sjLsOyMT19I8obBISvhoYiZIAaGF8JpeXu1u8yPv8BE5HlWYobmlsfijFIZ9hIVGYkbdFhEqC0NvM4kNO0g==} engines: {node: '>=18'} cpu: [arm64] os: [linux] + '@esbuild/linux-arm64@0.27.7': + resolution: {integrity: sha512-RZPHBoxXuNnPQO9rvjh5jdkRmVizktkT7TCDkDmQ0W2SwHInKCAV95GRuvdSvA7w4VMwfCjUiPwDi0ZO6Nfe9A==} + engines: {node: '>=18'} + cpu: [arm64] + os: [linux] + + '@esbuild/linux-arm64@0.28.0': + resolution: {integrity: sha512-RVyzfb3FWsGA55n6WY0MEIEPURL1FcbhFE6BffZEMEekfCzCIMtB5yyDcFnVbTnwk+CLAgTujmV/Lgvih56W+A==} + engines: {node: '>=18'} + cpu: [arm64] + os: [linux] + '@esbuild/linux-arm@0.25.2': resolution: {integrity: sha512-UHBRgJcmjJv5oeQF8EpTRZs/1knq6loLxTsjc3nxO9eXAPDLcWW55flrMVc97qFPbmZP31ta1AZVUKQzKTzb0g==} engines: {node: '>=18'} cpu: [arm] os: [linux] + '@esbuild/linux-arm@0.27.7': + resolution: {integrity: sha512-RkT/YXYBTSULo3+af8Ib0ykH8u2MBh57o7q/DAs3lTJlyVQkgQvlrPTnjIzzRPQyavxtPtfg0EopvDyIt0j1rA==} + engines: {node: '>=18'} + cpu: [arm] + os: [linux] + + '@esbuild/linux-arm@0.28.0': + resolution: {integrity: sha512-CjaaREJagqJp7iTaNQjjidaNbCKYcd4IDkzbwwxtSvjI7NZm79qiHc8HqciMddQ6CKvJT6aBd8lO9kN/ZudLlw==} + engines: {node: '>=18'} + cpu: [arm] + os: [linux] + '@esbuild/linux-ia32@0.25.2': resolution: {integrity: sha512-bBYCv9obgW2cBP+2ZWfjYTU+f5cxRoGGQ5SeDbYdFCAZpYWrfjjfYwvUpP8MlKbP0nwZ5gyOU/0aUzZ5HWPuvQ==} engines: {node: '>=18'} cpu: [ia32] os: [linux] + '@esbuild/linux-ia32@0.27.7': + resolution: {integrity: sha512-GA48aKNkyQDbd3KtkplYWT102C5sn/EZTY4XROkxONgruHPU72l+gW+FfF8tf2cFjeHaRbWpOYa/uRBz/Xq1Pg==} + engines: {node: '>=18'} + cpu: [ia32] + os: [linux] + + '@esbuild/linux-ia32@0.28.0': + resolution: {integrity: sha512-KBnSTt1kxl9x70q+ydterVdl+Cn0H18ngRMRCEQfrbqdUuntQQ0LoMZv47uB97NljZFzY6HcfqEZ2SAyIUTQBQ==} + engines: {node: '>=18'} + cpu: [ia32] + os: [linux] + '@esbuild/linux-loong64@0.25.2': resolution: {integrity: sha512-SHNGiKtvnU2dBlM5D8CXRFdd+6etgZ9dXfaPCeJtz+37PIUlixvlIhI23L5khKXs3DIzAn9V8v+qb1TRKrgT5w==} engines: {node: '>=18'} cpu: [loong64] os: [linux] + '@esbuild/linux-loong64@0.27.7': + resolution: {integrity: sha512-a4POruNM2oWsD4WKvBSEKGIiWQF8fZOAsycHOt6JBpZ+JN2n2JH9WAv56SOyu9X5IqAjqSIPTaJkqN8F7XOQ5Q==} + engines: {node: '>=18'} + cpu: [loong64] + os: [linux] + + '@esbuild/linux-loong64@0.28.0': + resolution: {integrity: sha512-zpSlUce1mnxzgBADvxKXX5sl8aYQHo2ezvMNI8I0lbblJtp8V4odlm3Yzlj7gPyt3T8ReksE6bK+pT3WD+aJRg==} + engines: {node: '>=18'} + cpu: [loong64] + os: [linux] + '@esbuild/linux-mips64el@0.25.2': resolution: {integrity: sha512-hDDRlzE6rPeoj+5fsADqdUZl1OzqDYow4TB4Y/3PlKBD0ph1e6uPHzIQcv2Z65u2K0kpeByIyAjCmjn1hJgG0Q==} engines: {node: '>=18'} cpu: [mips64el] os: [linux] + '@esbuild/linux-mips64el@0.27.7': + resolution: {integrity: sha512-KabT5I6StirGfIz0FMgl1I+R1H73Gp0ofL9A3nG3i/cYFJzKHhouBV5VWK1CSgKvVaG4q1RNpCTR2LuTVB3fIw==} + engines: {node: '>=18'} + cpu: [mips64el] + os: [linux] + + '@esbuild/linux-mips64el@0.28.0': + resolution: {integrity: sha512-2jIfP6mmjkdmeTlsX/9vmdmhBmKADrWqN7zcdtHIeNSCH1SqIoNI63cYsjQR8J+wGa4Y5izRcSHSm8K3QWmk3w==} + engines: {node: '>=18'} + cpu: [mips64el] + os: [linux] + '@esbuild/linux-ppc64@0.25.2': resolution: {integrity: sha512-tsHu2RRSWzipmUi9UBDEzc0nLc4HtpZEI5Ba+Omms5456x5WaNuiG3u7xh5AO6sipnJ9r4cRWQB2tUjPyIkc6g==} engines: {node: '>=18'} cpu: [ppc64] os: [linux] + '@esbuild/linux-ppc64@0.27.7': + resolution: {integrity: sha512-gRsL4x6wsGHGRqhtI+ifpN/vpOFTQtnbsupUF5R5YTAg+y/lKelYR1hXbnBdzDjGbMYjVJLJTd2OFmMewAgwlQ==} + engines: {node: '>=18'} + cpu: [ppc64] + os: [linux] + + '@esbuild/linux-ppc64@0.28.0': + resolution: {integrity: sha512-bc0FE9wWeC0WBm49IQMPSPILRocGTQt3j5KPCA8os6VprfuJ7KD+5PzESSrJ6GmPIPJK965ZJHTUlSA6GNYEhg==} + engines: {node: '>=18'} + cpu: [ppc64] + os: [linux] + '@esbuild/linux-riscv64@0.25.2': resolution: {integrity: sha512-k4LtpgV7NJQOml/10uPU0s4SAXGnowi5qBSjaLWMojNCUICNu7TshqHLAEbkBdAszL5TabfvQ48kK84hyFzjnw==} engines: {node: '>=18'} cpu: [riscv64] os: [linux] + '@esbuild/linux-riscv64@0.27.7': + resolution: {integrity: sha512-hL25LbxO1QOngGzu2U5xeXtxXcW+/GvMN3ejANqXkxZ/opySAZMrc+9LY/WyjAan41unrR3YrmtTsUpwT66InQ==} + engines: {node: '>=18'} + cpu: [riscv64] + os: [linux] + + '@esbuild/linux-riscv64@0.28.0': + resolution: {integrity: sha512-SQPZOwoTTT/HXFXQJG/vBX8sOFagGqvZyXcgLA3NhIqcBv1BJU1d46c0rGcrij2B56Z2rNiSLaZOYW5cUk7yLQ==} + engines: {node: '>=18'} + cpu: [riscv64] + os: [linux] + '@esbuild/linux-s390x@0.25.2': resolution: {integrity: sha512-GRa4IshOdvKY7M/rDpRR3gkiTNp34M0eLTaC1a08gNrh4u488aPhuZOCpkF6+2wl3zAN7L7XIpOFBhnaE3/Q8Q==} engines: {node: '>=18'} cpu: [s390x] os: [linux] + '@esbuild/linux-s390x@0.27.7': + resolution: {integrity: sha512-2k8go8Ycu1Kb46vEelhu1vqEP+UeRVj2zY1pSuPdgvbd5ykAw82Lrro28vXUrRmzEsUV0NzCf54yARIK8r0fdw==} + engines: {node: '>=18'} + cpu: [s390x] + os: [linux] + + '@esbuild/linux-s390x@0.28.0': + resolution: {integrity: sha512-SCfR0HN8CEEjnYnySJTd2cw0k9OHB/YFzt5zgJEwa+wL/T/raGWYMBqwDNAC6dqFKmJYZoQBRfHjgwLHGSrn3Q==} + engines: {node: '>=18'} + cpu: [s390x] + os: [linux] + '@esbuild/linux-x64@0.25.2': resolution: {integrity: sha512-QInHERlqpTTZ4FRB0fROQWXcYRD64lAoiegezDunLpalZMjcUcld3YzZmVJ2H/Cp0wJRZ8Xtjtj0cEHhYc/uUg==} engines: {node: '>=18'} cpu: [x64] os: [linux] + '@esbuild/linux-x64@0.27.7': + resolution: {integrity: sha512-hzznmADPt+OmsYzw1EE33ccA+HPdIqiCRq7cQeL1Jlq2gb1+OyWBkMCrYGBJ+sxVzve2ZJEVeePbLM2iEIZSxA==} + engines: {node: '>=18'} + cpu: [x64] + os: [linux] + + '@esbuild/linux-x64@0.28.0': + resolution: {integrity: sha512-us0dSb9iFxIi8srnpl931Nvs65it/Jd2a2K3qs7fz2WfGPHqzfzZTfec7oxZJRNPXPnNYZtanmRc4AL/JwVzHQ==} + engines: {node: '>=18'} + cpu: [x64] + os: [linux] + '@esbuild/netbsd-arm64@0.25.2': resolution: {integrity: sha512-talAIBoY5M8vHc6EeI2WW9d/CkiO9MQJ0IOWX8hrLhxGbro/vBXJvaQXefW2cP0z0nQVTdQ/eNyGFV1GSKrxfw==} engines: {node: '>=18'} cpu: [arm64] os: [netbsd] + '@esbuild/netbsd-arm64@0.27.7': + resolution: {integrity: sha512-b6pqtrQdigZBwZxAn1UpazEisvwaIDvdbMbmrly7cDTMFnw/+3lVxxCTGOrkPVnsYIosJJXAsILG9XcQS+Yu6w==} + engines: {node: '>=18'} + cpu: [arm64] + os: [netbsd] + + '@esbuild/netbsd-arm64@0.28.0': + resolution: {integrity: sha512-CR/RYotgtCKwtftMwJlUU7xCVNg3lMYZ0RzTmAHSfLCXw3NtZtNpswLEj/Kkf6kEL3Gw+BpOekRX0BYCtklhUw==} + engines: {node: '>=18'} + cpu: [arm64] + os: [netbsd] + '@esbuild/netbsd-x64@0.25.2': resolution: {integrity: sha512-voZT9Z+tpOxrvfKFyfDYPc4DO4rk06qamv1a/fkuzHpiVBMOhpjK+vBmWM8J1eiB3OLSMFYNaOaBNLXGChf5tg==} engines: {node: '>=18'} cpu: [x64] os: [netbsd] + '@esbuild/netbsd-x64@0.27.7': + resolution: {integrity: sha512-OfatkLojr6U+WN5EDYuoQhtM+1xco+/6FSzJJnuWiUw5eVcicbyK3dq5EeV/QHT1uy6GoDhGbFpprUiHUYggrw==} + engines: {node: '>=18'} + cpu: [x64] + os: [netbsd] + + '@esbuild/netbsd-x64@0.28.0': + resolution: {integrity: sha512-nU1yhmYutL+fQ71Kxnhg8uEOdC0pwEW9entHykTgEbna2pw2dkbFSMeqjjyHZoCmt8SBkOSvV+yNmm94aUrrqw==} + engines: {node: '>=18'} + cpu: [x64] + os: [netbsd] + '@esbuild/openbsd-arm64@0.25.2': resolution: {integrity: sha512-dcXYOC6NXOqcykeDlwId9kB6OkPUxOEqU+rkrYVqJbK2hagWOMrsTGsMr8+rW02M+d5Op5NNlgMmjzecaRf7Tg==} engines: {node: '>=18'} cpu: [arm64] os: [openbsd] + '@esbuild/openbsd-arm64@0.27.7': + resolution: {integrity: sha512-AFuojMQTxAz75Fo8idVcqoQWEHIXFRbOc1TrVcFSgCZtQfSdc1RXgB3tjOn/krRHENUB4j00bfGjyl2mJrU37A==} + engines: {node: '>=18'} + cpu: [arm64] + os: [openbsd] + + '@esbuild/openbsd-arm64@0.28.0': + resolution: {integrity: sha512-cXb5vApOsRsxsEl4mcZ1XY3D4DzcoMxR/nnc4IyqYs0rTI8ZKmW6kyyg+11Z8yvgMfAEldKzP7AdP64HnSC/6g==} + engines: {node: '>=18'} + cpu: [arm64] + os: [openbsd] + '@esbuild/openbsd-x64@0.25.2': resolution: {integrity: sha512-t/TkWwahkH0Tsgoq1Ju7QfgGhArkGLkF1uYz8nQS/PPFlXbP5YgRpqQR3ARRiC2iXoLTWFxc6DJMSK10dVXluw==} engines: {node: '>=18'} cpu: [x64] os: [openbsd] + '@esbuild/openbsd-x64@0.27.7': + resolution: {integrity: sha512-+A1NJmfM8WNDv5CLVQYJ5PshuRm/4cI6WMZRg1by1GwPIQPCTs1GLEUHwiiQGT5zDdyLiRM/l1G0Pv54gvtKIg==} + engines: {node: '>=18'} + cpu: [x64] + os: [openbsd] + + '@esbuild/openbsd-x64@0.28.0': + resolution: {integrity: sha512-8wZM2qqtv9UP3mzy7HiGYNH/zjTA355mpeuA+859TyR+e+Tc08IHYpLJuMsfpDJwoLo1ikIJI8jC3GFjnRClzA==} + engines: {node: '>=18'} + cpu: [x64] + os: [openbsd] + + '@esbuild/openharmony-arm64@0.27.7': + resolution: {integrity: sha512-+KrvYb/C8zA9CU/g0sR6w2RBw7IGc5J2BPnc3dYc5VJxHCSF1yNMxTV5LQ7GuKteQXZtspjFbiuW5/dOj7H4Yw==} + engines: {node: '>=18'} + cpu: [arm64] + os: [openharmony] + + '@esbuild/openharmony-arm64@0.28.0': + resolution: {integrity: sha512-FLGfyizszcef5C3YtoyQDACyg95+dndv79i2EekILBofh5wpCa1KuBqOWKrEHZg3zrL3t5ouE5jgr94vA+Wb2w==} + engines: {node: '>=18'} + cpu: [arm64] + os: [openharmony] + '@esbuild/sunos-x64@0.25.2': resolution: {integrity: sha512-cfZH1co2+imVdWCjd+D1gf9NjkchVhhdpgb1q5y6Hcv9TP6Zi9ZG/beI3ig8TvwT9lH9dlxLq5MQBBgwuj4xvA==} engines: {node: '>=18'} cpu: [x64] os: [sunos] + '@esbuild/sunos-x64@0.27.7': + resolution: {integrity: sha512-ikktIhFBzQNt/QDyOL580ti9+5mL/YZeUPKU2ivGtGjdTYoqz6jObj6nOMfhASpS4GU4Q/Clh1QtxWAvcYKamA==} + engines: {node: '>=18'} + cpu: [x64] + os: [sunos] + + '@esbuild/sunos-x64@0.28.0': + resolution: {integrity: sha512-1ZgjUoEdHZZl/YlV76TSCz9Hqj9h9YmMGAgAPYd+q4SicWNX3G5GCyx9uhQWSLcbvPW8Ni7lj4gDa1T40akdlw==} + engines: {node: '>=18'} + cpu: [x64] + os: [sunos] + '@esbuild/win32-arm64@0.25.2': resolution: {integrity: sha512-7Loyjh+D/Nx/sOTzV8vfbB3GJuHdOQyrOryFdZvPHLf42Tk9ivBU5Aedi7iyX+x6rbn2Mh68T4qq1SDqJBQO5Q==} engines: {node: '>=18'} cpu: [arm64] os: [win32] + '@esbuild/win32-arm64@0.27.7': + resolution: {integrity: sha512-7yRhbHvPqSpRUV7Q20VuDwbjW5kIMwTHpptuUzV+AA46kiPze5Z7qgt6CLCK3pWFrHeNfDd1VKgyP4O+ng17CA==} + engines: {node: '>=18'} + cpu: [arm64] + os: [win32] + + '@esbuild/win32-arm64@0.28.0': + resolution: {integrity: sha512-Q9StnDmQ/enxnpxCCLSg0oo4+34B9TdXpuyPeTedN/6+iXBJ4J+zwfQI28u/Jl40nOYAxGoNi7mFP40RUtkmUA==} + engines: {node: '>=18'} + cpu: [arm64] + os: [win32] + '@esbuild/win32-ia32@0.25.2': resolution: {integrity: sha512-WRJgsz9un0nqZJ4MfhabxaD9Ft8KioqU3JMinOTvobbX6MOSUigSBlogP8QB3uxpJDsFS6yN+3FDBdqE5lg9kg==} engines: {node: '>=18'} cpu: [ia32] os: [win32] + '@esbuild/win32-ia32@0.27.7': + resolution: {integrity: sha512-SmwKXe6VHIyZYbBLJrhOoCJRB/Z1tckzmgTLfFYOfpMAx63BJEaL9ExI8x7v0oAO3Zh6D/Oi1gVxEYr5oUCFhw==} + engines: {node: '>=18'} + cpu: [ia32] + os: [win32] + + '@esbuild/win32-ia32@0.28.0': + resolution: {integrity: sha512-zF3ag/gfiCe6U2iczcRzSYJKH1DCI+ByzSENHlM2FcDbEeo5Zd2C86Aq0tKUYAJJ1obRP84ymxIAksZUcdztHA==} + engines: {node: '>=18'} + cpu: [ia32] + os: [win32] + '@esbuild/win32-x64@0.25.2': resolution: {integrity: sha512-kM3HKb16VIXZyIeVrM1ygYmZBKybX8N4p754bw390wGO3Tf2j4L2/WYL+4suWujpgf6GBYs3jv7TyUivdd05JA==} engines: {node: '>=18'} cpu: [x64] os: [win32] + '@esbuild/win32-x64@0.27.7': + resolution: {integrity: sha512-56hiAJPhwQ1R4i+21FVF7V8kSD5zZTdHcVuRFMW0hn753vVfQN8xlx4uOPT4xoGH0Z/oVATuR82AiqSTDIpaHg==} + engines: {node: '>=18'} + cpu: [x64] + os: [win32] + + '@esbuild/win32-x64@0.28.0': + resolution: {integrity: sha512-pEl1bO9mfAmIC+tW5btTmrKaujg3zGtUmWNdCw/xs70FBjwAL3o9OEKNHvNmnyylD6ubxUERiEhdsL0xBQ9efw==} + engines: {node: '>=18'} + cpu: [x64] + os: [win32] + '@eslint-community/eslint-utils@4.9.0': resolution: {integrity: sha512-ayVFHdtZ+hsq1t2Dy24wCmGXGe4q9Gu3smhLYALJrr473ZH27MsnSL+LKUlimp4BWJqMDMLmPpx/Q9R3OAlL4g==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -4727,6 +5049,9 @@ packages: resolution: {integrity: sha512-0qWUglt9JEqLFr3w1I1pbrChn1grhaiAR2ocX1PP/flRmxgtwTzPFFFnfIlD6aMOLQZgSuCRlidD70lvx8yhzg==} engines: {node: '>=14'} + any-promise@1.3.0: + resolution: {integrity: sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==} + anymatch@3.1.3: resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} engines: {node: '>= 8'} @@ -4964,6 +5289,12 @@ packages: resolution: {integrity: sha512-tjwM5exMg6BGRI+kNmTntNsvdZS1X8BFYS6tnJ2hdH0kVxM6/eVZ2xy+FqStSWvYmtfFMDLIxurorHwDKfDz5Q==} engines: {node: '>=18'} + bundle-require@5.1.0: + resolution: {integrity: sha512-3WrrOuZiyaaZPWiEt4G3+IffISVC9HYlWueJEBWED4ZH4aIAC2PnkdnuRrR94M+w6yGWn4AglWtJtBI8YqvgoA==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + peerDependencies: + esbuild: '>=0.18' + bytes@3.0.0: resolution: {integrity: sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw==} engines: {node: '>= 0.8'} @@ -5204,6 +5535,10 @@ packages: commander@2.20.3: resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==} + commander@4.1.1: + resolution: {integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==} + engines: {node: '>= 6'} + commander@5.1.0: resolution: {integrity: sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg==} engines: {node: '>= 6'} @@ -5241,6 +5576,9 @@ packages: concat-map@0.0.1: resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} + confbox@0.1.8: + resolution: {integrity: sha512-RMtmw0iFkeR4YV+fUOSucriAQNb9g8zFR52MWCtl+cCZOFRNL6zeB395vPzFhEjjn4fMxXudmELnl/KF/WrK6w==} + config-chain@1.1.13: resolution: {integrity: sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ==} @@ -6012,6 +6350,16 @@ packages: engines: {node: '>=18'} hasBin: true + esbuild@0.27.7: + resolution: {integrity: sha512-IxpibTjyVnmrIQo5aqNpCgoACA/dTKLTlhMHihVHhdkxKyPO1uBBthumT0rdHmcsk9uMonIWS0m4FljWzILh3w==} + engines: {node: '>=18'} + hasBin: true + + esbuild@0.28.0: + resolution: {integrity: sha512-sNR9MHpXSUV/XB4zmsFKN+QgVG82Cc7+/aaxJ8Adi8hyOac+EXptIp45QBPaVyX3N70664wRbTcLTOemCAnyqw==} + engines: {node: '>=18'} + hasBin: true + escalade@3.2.0: resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==} engines: {node: '>=6'} @@ -6293,6 +6641,9 @@ packages: resolution: {integrity: sha512-MzwXju70AuyflbgeOhzvQWAvvQdo1XL0A9bVvlXsYcFEBM87WR4OakL4OfZq+QRmr+duJubio+UtNQCPsVESzQ==} engines: {node: '>= 10.13.0'} + fix-dts-default-cjs-exports@1.0.1: + resolution: {integrity: sha512-pVIECanWFC61Hzl2+oOCtoJ3F17kglZC/6N94eRWycFgBH35hHx0Li604ZIzhseh97mf2p0cv7vVrOZGoqhlEg==} + flat-cache@4.0.1: resolution: {integrity: sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==} engines: {node: '>=16'} @@ -6352,6 +6703,10 @@ packages: resolution: {integrity: sha512-Z4XaCL6dUDHfP/jT25jJKMmtxvuwbkrD1vNSMFlo9lNLY2c5FHYSQgHPRZUjAB26TpDEoW9HCOgplrdbaPV/ew==} engines: {node: '>=14.14'} + fs-extra@11.3.5: + resolution: {integrity: sha512-eKpRKAovdpZtR1WopLHxlBWvAgPny3c4gX1G5Jhwmmw4XJj0ifSD5qB5TOo8hmA0wlRKDAOAhEE1yVPgs6Fgcg==} + engines: {node: '>=14.14'} + fs-extra@7.0.1: resolution: {integrity: sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==} engines: {node: '>=6 <7 || >=8'} @@ -7031,6 +7386,10 @@ packages: joi@17.13.3: resolution: {integrity: sha512-otDA4ldcIx+ZXsKHWmp0YizCweVRZG96J10b0FevjfuncLO1oX59THoAmHkNubYJ+9gWsYsp5k8v4ib6oDv1fA==} + joycon@3.1.1: + resolution: {integrity: sha512-34wB/Y7MW7bzjKRjUKTa46I2Z7eV62Rkhva+KkopW7Qvv/OSWBqvkSY7vusOPrNuZcUG3tApvdVgNB8POj3SPw==} + engines: {node: '>=10'} + js-tokens@4.0.0: resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} @@ -7214,6 +7573,10 @@ packages: linkify-it@5.0.0: resolution: {integrity: sha512-5aHCbzQRADcdP+ATqnDuhhJ/MRIqDkZX5pyjFHRRysS8vZ5AbqGEoFIb6pYHPZ+L/OC2Lc+xT8uHVVR5CAK/wQ==} + load-tsconfig@0.2.5: + resolution: {integrity: sha512-IXO6OCs9yg8tMKzfPZ1YmheJbZCiEsnBdcB03l0OcfK9prKnJb96siuHCr5Fl37/yo9DnKU+TLpxzTUspw9shg==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + loader-runner@4.3.2: resolution: {integrity: sha512-DFEqQ3ihfS9blba08cLfYf1NRAIEm+dDjic073DRDc3/JspI/8wYmtDsHwd3+4hwvdxSK7PGaElfTmm0awWJ4w==} engines: {node: '>=6.11.5'} @@ -7677,6 +8040,9 @@ packages: resolution: {integrity: sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==} hasBin: true + mlly@1.8.2: + resolution: {integrity: sha512-d+ObxMQFmbt10sretNDytwt85VrbkhhUA/JBGm1MPaWJ65Cl4wOgLaB1NYvJSZ0Ef03MMEU/0xpPMXUIQ29UfA==} + mri@1.2.0: resolution: {integrity: sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==} engines: {node: '>=4'} @@ -7699,6 +8065,9 @@ packages: resolution: {integrity: sha512-ypMKuglUrZUD99Tk2bUQ+xNQj43lPEfAeX2o9cTteAmShXy2VHDJpuwu1o0xqoKCt9jLVAvwyFKdLTPXKAfJyA==} engines: {node: '>=10'} + mz@2.7.0: + resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==} + nanoid@3.3.11: resolution: {integrity: sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==} engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} @@ -8065,6 +8434,9 @@ packages: resolution: {integrity: sha512-Ie9z/WINcxxLp27BKOCHGde4ITq9UklYKDzVo1nhk5sqGEXU3FpkwP5GM2voTGJkGd9B3Otl+Q4uwSOeSUtOBA==} engines: {node: '>=14.16'} + pkg-types@1.3.1: + resolution: {integrity: sha512-/Jm5M4RvtBFVkKWRu2BLUTNP8/M2a+UwuAX+ae4770q1qVGtfjG+WTCupoZixokjmHiry8uI+dlY8KXYV5HVVQ==} + pkijs@3.4.0: resolution: {integrity: sha512-emEcLuomt2j03vxD54giVB4SxTjnsqkU692xZOZXHDVoYyypEm+b3jpiTcc+Cf+myooc+/Ly0z01jqeNHVgJGw==} engines: {node: '>=16.0.0'} @@ -8225,6 +8597,24 @@ packages: peerDependencies: postcss: ^8.4 + postcss-load-config@6.0.1: + resolution: {integrity: sha512-oPtTM4oerL+UXmx+93ytZVN82RrlY/wPUV8IeDxFrzIjXOLF1pN+EmKPLbubvKHT2HC20xXsCAH2Z+CKV6Oz/g==} + engines: {node: '>= 18'} + peerDependencies: + jiti: '>=1.21.0' + postcss: '>=8.0.9' + tsx: ^4.8.1 + yaml: ^2.4.2 + peerDependenciesMeta: + jiti: + optional: true + postcss: + optional: true + tsx: + optional: true + yaml: + optional: true + postcss-loader@7.3.4: resolution: {integrity: sha512-iW5WTTBSC5BfsBJ9daFMPVrLT36MrNiC6fqOZTTaHjBNX6Pfd5p+hSBqe/fEeNd7pc13QiAyGt7VdGMw4eRC4A==} engines: {node: '>= 14.15.0'} @@ -9258,6 +9648,11 @@ packages: stylis@4.4.0: resolution: {integrity: sha512-5Z9ZpRzfuH6l/UAvCPAPUo3665Nk2wLaZU3x+TLHKVzIz33+sbJqbtrYoC3KD4/uVOr2Zp+L0LySezP9OHV9yA==} + sucrase@3.35.1: + resolution: {integrity: sha512-DhuTmvZWux4H1UOnWMB3sk0sbaCVOoQZjv8u1rDoTV0HTdGem9hkAZtl4JZy8P2z4Bg0nT+YMeOFyVr4zcG5Tw==} + engines: {node: '>=16 || 14 >=14.17'} + hasBin: true + sumchecker@3.0.1: resolution: {integrity: sha512-MvjXzkz/BOfyVDkG0oFOtBxHX2u3gKbMHIF/dXblZsgD3BWOFLmHovIpZY7BykJdAjcqRCBi1WYBNdEC9yI7vg==} engines: {node: '>= 8.0'} @@ -9371,6 +9766,13 @@ packages: resolution: {integrity: sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==} engines: {node: '>=8'} + thenify-all@1.6.0: + resolution: {integrity: sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==} + engines: {node: '>=0.8'} + + thenify@3.3.1: + resolution: {integrity: sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==} + thingies@2.6.0: resolution: {integrity: sha512-rMHRjmlFLM1R96UYPvpmnc3LYtdFrT33JIB7L9hetGue1qAPfn1N2LJeEjxUSidu1Iku+haLZXDuEXUHNGO/lg==} engines: {node: '>=10.18'} @@ -9452,6 +9854,10 @@ packages: peerDependencies: tslib: '2' + tree-kill@1.2.2: + resolution: {integrity: sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==} + hasBin: true + trim-lines@3.0.1: resolution: {integrity: sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==} @@ -9477,6 +9883,9 @@ packages: resolution: {integrity: sha512-q5W7tVM71e2xjHZTlgfTDoPF/SmqKG5hddq9SzR49CH2hayqRKJtQ4mtRlSxKaJlR/+9rEM+mnBHf7I2/BQcpQ==} engines: {node: '>=6.10'} + ts-interface-checker@0.1.13: + resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==} + ts-node@10.9.2: resolution: {integrity: sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==} hasBin: true @@ -9497,6 +9906,30 @@ packages: tslib@2.8.1: resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==} + tsup@8.5.1: + resolution: {integrity: sha512-xtgkqwdhpKWr3tKPmCkvYmS9xnQK3m3XgxZHwSUjvfTjp7YfXe5tT3GgWi0F2N+ZSMsOeWeZFh7ZZFg5iPhing==} + engines: {node: '>=18'} + hasBin: true + peerDependencies: + '@microsoft/api-extractor': ^7.36.0 + '@swc/core': ^1 + postcss: ^8.4.12 + typescript: '>=4.5.0' + peerDependenciesMeta: + '@microsoft/api-extractor': + optional: true + '@swc/core': + optional: true + postcss: + optional: true + typescript: + optional: true + + tsx@4.22.3: + resolution: {integrity: sha512-mdoNxBC/cSQObGGVQ5Bpn5i+yv7j68gk3Nfm3wFjcJg3Z0Mix9jzAFfP12prmm5eVGmDKtp0yyArrs0Q+8gZHg==} + engines: {node: '>=18.0.0'} + hasBin: true + tsyringe@4.10.0: resolution: {integrity: sha512-axr3IdNuVIxnaK5XGEUFTu3YmAQ6lllgrvqfEoR16g/HGnYY/6We4oWENtAnzK6/LpJ2ur9PAb80RBt7/U4ugw==} engines: {node: '>= 6.0.0'} @@ -9567,6 +10000,9 @@ packages: uc.micro@2.1.0: resolution: {integrity: sha512-ARDJmphmdvUk6Glw7y9DQ2bFkKBHwQHLi2lsaH6PPmz/Ka9sFOBsBluozhDltWmnv9u/cF6Rt87znRTPV+yp/A==} + ufo@1.6.4: + resolution: {integrity: sha512-JFNbkD1Svwe0KvGi8GOeLcP4kAWQ609twvCdcHxq1oSL8svv39ZuSvajcD8B+5D0eL4+s1Is2D/O6KN3qcTeRA==} + uglify-js@3.19.3: resolution: {integrity: sha512-v3Xu+yuwBXisp6QYTcH4UbH+xYJXqnq2m/LtQVWKWzYc1iehYnLixoQDN9FH6/j9/oybfd6W9Ghwkl8+UMKTKQ==} engines: {node: '>=0.8.0'} @@ -12561,7 +12997,7 @@ snapshots: - '@algolia/client-search' - algoliasearch - '@docusaurus/babel@3.10.1(@swc/core@1.15.33)(clean-css@5.3.3)(cssnano@6.1.2(postcss@8.5.14))(html-minifier-terser@7.2.0)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)': + '@docusaurus/babel@3.10.1(@swc/core@1.15.33)(clean-css@5.3.3)(cssnano@6.1.2(postcss@8.5.14))(esbuild@0.27.7)(html-minifier-terser@7.2.0)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)': dependencies: '@babel/core': 7.29.0 '@babel/generator': 7.29.1 @@ -12573,7 +13009,7 @@ snapshots: '@babel/runtime': 7.27.0 '@babel/traverse': 7.29.0 '@docusaurus/logger': 3.10.1 - '@docusaurus/utils': 3.10.1(@swc/core@1.15.33)(clean-css@5.3.3)(cssnano@6.1.2(postcss@8.5.14))(html-minifier-terser@7.2.0)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@docusaurus/utils': 3.10.1(@swc/core@1.15.33)(clean-css@5.3.3)(cssnano@6.1.2(postcss@8.5.14))(esbuild@0.27.7)(html-minifier-terser@7.2.0)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) babel-plugin-dynamic-import-node: 2.3.3 fs-extra: 11.3.0 tslib: 2.8.1 @@ -12595,7 +13031,7 @@ snapshots: - uglify-js - webpack-cli - '@docusaurus/babel@3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)': + '@docusaurus/babel@3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)': dependencies: '@babel/core': 7.29.0 '@babel/generator': 7.29.1 @@ -12607,7 +13043,7 @@ snapshots: '@babel/runtime': 7.27.0 '@babel/traverse': 7.29.0 '@docusaurus/logger': 3.10.1 - '@docusaurus/utils': 3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@docusaurus/utils': 3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) babel-plugin-dynamic-import-node: 2.3.3 fs-extra: 11.3.0 tslib: 2.8.1 @@ -12629,34 +13065,34 @@ snapshots: - uglify-js - webpack-cli - '@docusaurus/bundler@3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(postcss@8.5.14))(@rspack/core@1.7.11)(@swc/core@1.15.33)(lightningcss@1.32.0)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3)': + '@docusaurus/bundler@3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(esbuild@0.27.7)(postcss@8.5.14))(@rspack/core@1.7.11)(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3)': dependencies: '@babel/core': 7.29.0 - '@docusaurus/babel': 3.10.1(@swc/core@1.15.33)(clean-css@5.3.3)(cssnano@6.1.2(postcss@8.5.14))(html-minifier-terser@7.2.0)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@docusaurus/babel': 3.10.1(@swc/core@1.15.33)(clean-css@5.3.3)(cssnano@6.1.2(postcss@8.5.14))(esbuild@0.27.7)(html-minifier-terser@7.2.0)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) '@docusaurus/cssnano-preset': 3.10.1 '@docusaurus/logger': 3.10.1 - '@docusaurus/types': 3.10.1(@swc/core@1.15.33)(clean-css@5.3.3)(cssnano@6.1.2(postcss@8.5.14))(html-minifier-terser@7.2.0)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) - '@docusaurus/utils': 3.10.1(@swc/core@1.15.33)(clean-css@5.3.3)(cssnano@6.1.2(postcss@8.5.14))(html-minifier-terser@7.2.0)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) - babel-loader: 9.2.1(@babel/core@7.29.0)(webpack@5.106.2(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)) + '@docusaurus/types': 3.10.1(@swc/core@1.15.33)(clean-css@5.3.3)(cssnano@6.1.2(postcss@8.5.14))(esbuild@0.27.7)(html-minifier-terser@7.2.0)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@docusaurus/utils': 3.10.1(@swc/core@1.15.33)(clean-css@5.3.3)(cssnano@6.1.2(postcss@8.5.14))(esbuild@0.27.7)(html-minifier-terser@7.2.0)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + babel-loader: 9.2.1(@babel/core@7.29.0)(webpack@5.106.2(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)) clean-css: 5.3.3 - copy-webpack-plugin: 11.0.0(webpack@5.106.2(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)) - css-loader: 6.11.0(@rspack/core@1.7.11)(webpack@5.106.2(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)) - css-minimizer-webpack-plugin: 5.0.1(clean-css@5.3.3)(lightningcss@1.32.0)(webpack@5.106.2(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)) + copy-webpack-plugin: 11.0.0(webpack@5.106.2(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)) + css-loader: 6.11.0(@rspack/core@1.7.11)(webpack@5.106.2(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)) + css-minimizer-webpack-plugin: 5.0.1(clean-css@5.3.3)(esbuild@0.27.7)(lightningcss@1.32.0)(webpack@5.106.2(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)) cssnano: 6.1.2(postcss@8.5.14) - file-loader: 6.2.0(webpack@5.106.2(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)) + file-loader: 6.2.0(webpack@5.106.2(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)) html-minifier-terser: 7.2.0 - mini-css-extract-plugin: 2.10.2(webpack@5.106.2(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)) - null-loader: 4.0.1(webpack@5.106.2(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)) + mini-css-extract-plugin: 2.10.2(webpack@5.106.2(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)) + null-loader: 4.0.1(webpack@5.106.2(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)) postcss: 8.5.14 - postcss-loader: 7.3.4(postcss@8.5.14)(typescript@5.6.3)(webpack@5.106.2(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)) + postcss-loader: 7.3.4(postcss@8.5.14)(typescript@5.6.3)(webpack@5.106.2(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)) postcss-preset-env: 10.6.1(postcss@8.5.14) - terser-webpack-plugin: 5.6.0(@swc/core@1.15.33)(clean-css@5.3.3)(cssnano@6.1.2(postcss@8.5.14))(html-minifier-terser@7.2.0)(lightningcss@1.32.0)(postcss@8.5.14)(webpack@5.106.2(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)) + terser-webpack-plugin: 5.6.0(@swc/core@1.15.33)(clean-css@5.3.3)(cssnano@6.1.2(postcss@8.5.14))(esbuild@0.27.7)(html-minifier-terser@7.2.0)(lightningcss@1.32.0)(postcss@8.5.14)(webpack@5.106.2(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)) tslib: 2.8.1 - url-loader: 4.1.1(file-loader@6.2.0(webpack@5.106.2(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)))(webpack@5.106.2(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)) - webpack: 5.106.2(@swc/core@1.15.33)(clean-css@5.3.3)(cssnano@6.1.2(postcss@8.5.14))(html-minifier-terser@7.2.0)(lightningcss@1.32.0)(postcss@8.5.14) - webpackbar: 7.0.0(@rspack/core@1.7.11)(webpack@5.106.2(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)) + url-loader: 4.1.1(file-loader@6.2.0(webpack@5.106.2(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)))(webpack@5.106.2(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)) + webpack: 5.106.2(@swc/core@1.15.33)(clean-css@5.3.3)(cssnano@6.1.2(postcss@8.5.14))(esbuild@0.27.7)(html-minifier-terser@7.2.0)(lightningcss@1.32.0)(postcss@8.5.14) + webpackbar: 7.0.0(@rspack/core@1.7.11)(webpack@5.106.2(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)) optionalDependencies: - '@docusaurus/faster': 3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(postcss@8.5.14) + '@docusaurus/faster': 3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(esbuild@0.27.7)(postcss@8.5.14) transitivePeerDependencies: - '@minify-html/node' - '@parcel/css' @@ -12674,15 +13110,15 @@ snapshots: - uglify-js - webpack-cli - '@docusaurus/core@3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3)': + '@docusaurus/core@3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(esbuild@0.27.7)(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3)': dependencies: - '@docusaurus/babel': 3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) - '@docusaurus/bundler': 3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(postcss@8.5.14))(@rspack/core@1.7.11)(@swc/core@1.15.33)(lightningcss@1.32.0)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3) + '@docusaurus/babel': 3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@docusaurus/bundler': 3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(esbuild@0.27.7)(postcss@8.5.14))(@rspack/core@1.7.11)(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3) '@docusaurus/logger': 3.10.1 - '@docusaurus/mdx-loader': 3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) - '@docusaurus/utils': 3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) - '@docusaurus/utils-common': 3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) - '@docusaurus/utils-validation': 3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@docusaurus/mdx-loader': 3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@docusaurus/utils': 3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@docusaurus/utils-common': 3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@docusaurus/utils-validation': 3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) '@mdx-js/react': 3.1.1(@types/react@19.2.14)(react@19.2.6) boxen: 6.2.1 chalk: 4.1.2 @@ -12698,7 +13134,7 @@ snapshots: execa: 5.1.1 fs-extra: 11.3.0 html-tags: 3.3.1 - html-webpack-plugin: 5.6.7(@rspack/core@1.7.11)(webpack@5.106.2(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)) + html-webpack-plugin: 5.6.7(@rspack/core@1.7.11)(webpack@5.106.2(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)) leven: 3.1.0 lodash: 4.17.21 open: 8.4.2 @@ -12708,7 +13144,7 @@ snapshots: react-dom: 19.2.6(react@19.2.6) react-helmet-async: '@slorber/react-helmet-async@1.3.0(react-dom@19.2.6(react@19.2.6))(react@19.2.6)' react-loadable: '@docusaurus/react-loadable@6.0.0(react@19.2.6)' - react-loadable-ssr-addon-v5-slorber: 1.0.3(@docusaurus/react-loadable@6.0.0(react@19.2.6))(webpack@5.106.2(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)) + react-loadable-ssr-addon-v5-slorber: 1.0.3(@docusaurus/react-loadable@6.0.0(react@19.2.6))(webpack@5.106.2(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)) react-router: 5.3.4(react@19.2.6) react-router-config: 5.1.1(react-router@5.3.4(react@19.2.6))(react@19.2.6) react-router-dom: 5.3.4(react@19.2.6) @@ -12717,12 +13153,12 @@ snapshots: tinypool: 1.1.1 tslib: 2.8.1 update-notifier: 6.0.2 - webpack: 5.106.2(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14) + webpack: 5.106.2(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14) webpack-bundle-analyzer: 4.10.2 - webpack-dev-server: 5.2.3(tslib@2.8.1)(webpack@5.106.2(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)) + webpack-dev-server: 5.2.3(tslib@2.8.1)(webpack@5.106.2(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)) webpack-merge: 6.0.1 optionalDependencies: - '@docusaurus/faster': 3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(postcss@8.5.14) + '@docusaurus/faster': 3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(esbuild@0.27.7)(postcss@8.5.14) transitivePeerDependencies: - '@minify-html/node' - '@parcel/css' @@ -12752,18 +13188,18 @@ snapshots: postcss-sort-media-queries: 5.2.0(postcss@8.5.14) tslib: 2.8.1 - '@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(postcss@8.5.14)': + '@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(esbuild@0.27.7)(postcss@8.5.14)': dependencies: - '@docusaurus/types': 3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@docusaurus/types': 3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) '@rspack/core': 1.7.11 '@swc/core': 1.15.33 '@swc/html': 1.15.33 browserslist: 4.28.2 lightningcss: 1.32.0 semver: 7.7.3 - swc-loader: 0.2.7(@swc/core@1.15.33)(webpack@5.106.2(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)) + swc-loader: 0.2.7(@swc/core@1.15.33)(webpack@5.106.2(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)) tslib: 2.8.1 - webpack: 5.106.2(@swc/core@1.15.33)(@swc/html@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14) + webpack: 5.106.2(@swc/core@1.15.33)(@swc/html@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14) transitivePeerDependencies: - '@minify-html/node' - '@swc/css' @@ -12782,16 +13218,16 @@ snapshots: chalk: 4.1.2 tslib: 2.8.1 - '@docusaurus/mdx-loader@3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)': + '@docusaurus/mdx-loader@3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)': dependencies: '@docusaurus/logger': 3.10.1 - '@docusaurus/utils': 3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) - '@docusaurus/utils-validation': 3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@docusaurus/utils': 3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@docusaurus/utils-validation': 3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) '@mdx-js/mdx': 3.1.1 '@slorber/remark-comment': 1.0.0 escape-html: 1.0.3 estree-util-value-to-estree: 3.5.0 - file-loader: 6.2.0(webpack@5.106.2(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)) + file-loader: 6.2.0(webpack@5.106.2(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)) fs-extra: 11.3.0 image-size: 2.0.2 mdast-util-mdx: 3.0.0 @@ -12807,9 +13243,9 @@ snapshots: tslib: 2.8.1 unified: 11.0.5 unist-util-visit: 5.0.0 - url-loader: 4.1.1(file-loader@6.2.0(webpack@5.106.2(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)))(webpack@5.106.2(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)) + url-loader: 4.1.1(file-loader@6.2.0(webpack@5.106.2(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)))(webpack@5.106.2(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)) vfile: 6.0.3 - webpack: 5.106.2(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14) + webpack: 5.106.2(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14) transitivePeerDependencies: - '@minify-html/node' - '@swc/core' @@ -12826,9 +13262,9 @@ snapshots: - uglify-js - webpack-cli - '@docusaurus/module-type-aliases@3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)': + '@docusaurus/module-type-aliases@3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)': dependencies: - '@docusaurus/types': 3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@docusaurus/types': 3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) '@types/history': 4.7.11 '@types/react': 19.2.14 '@types/react-router-config': 5.0.11 @@ -12853,13 +13289,13 @@ snapshots: - uglify-js - webpack-cli - '@docusaurus/plugin-client-redirects@3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3)': + '@docusaurus/plugin-client-redirects@3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(esbuild@0.27.7)(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3)': dependencies: - '@docusaurus/core': 3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3) + '@docusaurus/core': 3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(esbuild@0.27.7)(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3) '@docusaurus/logger': 3.10.1 - '@docusaurus/utils': 3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) - '@docusaurus/utils-common': 3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) - '@docusaurus/utils-validation': 3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@docusaurus/utils': 3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@docusaurus/utils-common': 3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@docusaurus/utils-validation': 3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) eta: 2.2.0 fs-extra: 11.3.0 lodash: 4.17.21 @@ -12890,17 +13326,17 @@ snapshots: - utf-8-validate - webpack-cli - '@docusaurus/plugin-content-blog@3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(postcss@8.5.14))(@docusaurus/plugin-content-docs@3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3)': + '@docusaurus/plugin-content-blog@3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(esbuild@0.27.7)(postcss@8.5.14))(@docusaurus/plugin-content-docs@3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(esbuild@0.27.7)(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3)': dependencies: - '@docusaurus/core': 3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3) + '@docusaurus/core': 3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(esbuild@0.27.7)(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3) '@docusaurus/logger': 3.10.1 - '@docusaurus/mdx-loader': 3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) - '@docusaurus/plugin-content-docs': 3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3) - '@docusaurus/theme-common': 3.10.1(@docusaurus/plugin-content-docs@3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3))(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) - '@docusaurus/types': 3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) - '@docusaurus/utils': 3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) - '@docusaurus/utils-common': 3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) - '@docusaurus/utils-validation': 3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@docusaurus/mdx-loader': 3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@docusaurus/plugin-content-docs': 3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(esbuild@0.27.7)(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3) + '@docusaurus/theme-common': 3.10.1(@docusaurus/plugin-content-docs@3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(esbuild@0.27.7)(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3))(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@docusaurus/types': 3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@docusaurus/utils': 3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@docusaurus/utils-common': 3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@docusaurus/utils-validation': 3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) cheerio: 1.0.0-rc.12 combine-promises: 1.2.0 feed: 4.2.2 @@ -12913,7 +13349,7 @@ snapshots: tslib: 2.8.1 unist-util-visit: 5.0.0 utility-types: 3.11.0 - webpack: 5.106.2(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14) + webpack: 5.106.2(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14) transitivePeerDependencies: - '@docusaurus/faster' - '@mdx-js/react' @@ -12938,17 +13374,17 @@ snapshots: - utf-8-validate - webpack-cli - '@docusaurus/plugin-content-docs@3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3)': + '@docusaurus/plugin-content-docs@3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(esbuild@0.27.7)(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3)': dependencies: - '@docusaurus/core': 3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3) + '@docusaurus/core': 3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(esbuild@0.27.7)(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3) '@docusaurus/logger': 3.10.1 - '@docusaurus/mdx-loader': 3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) - '@docusaurus/module-type-aliases': 3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) - '@docusaurus/theme-common': 3.10.1(@docusaurus/plugin-content-docs@3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3))(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) - '@docusaurus/types': 3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) - '@docusaurus/utils': 3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) - '@docusaurus/utils-common': 3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) - '@docusaurus/utils-validation': 3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@docusaurus/mdx-loader': 3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@docusaurus/module-type-aliases': 3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@docusaurus/theme-common': 3.10.1(@docusaurus/plugin-content-docs@3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(esbuild@0.27.7)(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3))(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@docusaurus/types': 3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@docusaurus/utils': 3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@docusaurus/utils-common': 3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@docusaurus/utils-validation': 3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) '@types/react-router-config': 5.0.11 combine-promises: 1.2.0 fs-extra: 11.3.0 @@ -12959,7 +13395,7 @@ snapshots: schema-dts: 1.1.5 tslib: 2.8.1 utility-types: 3.11.0 - webpack: 5.106.2(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14) + webpack: 5.106.2(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14) transitivePeerDependencies: - '@docusaurus/faster' - '@mdx-js/react' @@ -12984,18 +13420,18 @@ snapshots: - utf-8-validate - webpack-cli - '@docusaurus/plugin-content-pages@3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3)': + '@docusaurus/plugin-content-pages@3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(esbuild@0.27.7)(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3)': dependencies: - '@docusaurus/core': 3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3) - '@docusaurus/mdx-loader': 3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) - '@docusaurus/types': 3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) - '@docusaurus/utils': 3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) - '@docusaurus/utils-validation': 3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@docusaurus/core': 3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(esbuild@0.27.7)(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3) + '@docusaurus/mdx-loader': 3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@docusaurus/types': 3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@docusaurus/utils': 3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@docusaurus/utils-validation': 3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) fs-extra: 11.3.0 react: 19.2.6 react-dom: 19.2.6(react@19.2.6) tslib: 2.8.1 - webpack: 5.106.2(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14) + webpack: 5.106.2(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14) transitivePeerDependencies: - '@docusaurus/faster' - '@mdx-js/react' @@ -13020,12 +13456,12 @@ snapshots: - utf-8-validate - webpack-cli - '@docusaurus/plugin-css-cascade-layers@3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3)': + '@docusaurus/plugin-css-cascade-layers@3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(esbuild@0.27.7)(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3)': dependencies: - '@docusaurus/core': 3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3) - '@docusaurus/types': 3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) - '@docusaurus/utils': 3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) - '@docusaurus/utils-validation': 3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@docusaurus/core': 3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(esbuild@0.27.7)(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3) + '@docusaurus/types': 3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@docusaurus/utils': 3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@docusaurus/utils-validation': 3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) tslib: 2.8.1 transitivePeerDependencies: - '@docusaurus/faster' @@ -13053,11 +13489,11 @@ snapshots: - utf-8-validate - webpack-cli - '@docusaurus/plugin-debug@3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3)': + '@docusaurus/plugin-debug@3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(esbuild@0.27.7)(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3)': dependencies: - '@docusaurus/core': 3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3) - '@docusaurus/types': 3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) - '@docusaurus/utils': 3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@docusaurus/core': 3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(esbuild@0.27.7)(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3) + '@docusaurus/types': 3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@docusaurus/utils': 3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) fs-extra: 11.3.0 react: 19.2.6 react-dom: 19.2.6(react@19.2.6) @@ -13087,11 +13523,11 @@ snapshots: - utf-8-validate - webpack-cli - '@docusaurus/plugin-google-analytics@3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3)': + '@docusaurus/plugin-google-analytics@3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(esbuild@0.27.7)(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3)': dependencies: - '@docusaurus/core': 3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3) - '@docusaurus/types': 3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) - '@docusaurus/utils-validation': 3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@docusaurus/core': 3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(esbuild@0.27.7)(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3) + '@docusaurus/types': 3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@docusaurus/utils-validation': 3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) react: 19.2.6 react-dom: 19.2.6(react@19.2.6) tslib: 2.8.1 @@ -13119,11 +13555,11 @@ snapshots: - utf-8-validate - webpack-cli - '@docusaurus/plugin-google-gtag@3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3)': + '@docusaurus/plugin-google-gtag@3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(esbuild@0.27.7)(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3)': dependencies: - '@docusaurus/core': 3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3) - '@docusaurus/types': 3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) - '@docusaurus/utils-validation': 3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@docusaurus/core': 3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(esbuild@0.27.7)(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3) + '@docusaurus/types': 3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@docusaurus/utils-validation': 3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) '@types/gtag.js': 0.0.20 react: 19.2.6 react-dom: 19.2.6(react@19.2.6) @@ -13152,11 +13588,11 @@ snapshots: - utf-8-validate - webpack-cli - '@docusaurus/plugin-google-tag-manager@3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3)': + '@docusaurus/plugin-google-tag-manager@3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(esbuild@0.27.7)(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3)': dependencies: - '@docusaurus/core': 3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3) - '@docusaurus/types': 3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) - '@docusaurus/utils-validation': 3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@docusaurus/core': 3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(esbuild@0.27.7)(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3) + '@docusaurus/types': 3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@docusaurus/utils-validation': 3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) react: 19.2.6 react-dom: 19.2.6(react@19.2.6) tslib: 2.8.1 @@ -13184,14 +13620,14 @@ snapshots: - utf-8-validate - webpack-cli - '@docusaurus/plugin-sitemap@3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3)': + '@docusaurus/plugin-sitemap@3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(esbuild@0.27.7)(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3)': dependencies: - '@docusaurus/core': 3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3) + '@docusaurus/core': 3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(esbuild@0.27.7)(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3) '@docusaurus/logger': 3.10.1 - '@docusaurus/types': 3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) - '@docusaurus/utils': 3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) - '@docusaurus/utils-common': 3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) - '@docusaurus/utils-validation': 3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@docusaurus/types': 3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@docusaurus/utils': 3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@docusaurus/utils-common': 3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@docusaurus/utils-validation': 3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) fs-extra: 11.3.0 react: 19.2.6 react-dom: 19.2.6(react@19.2.6) @@ -13221,18 +13657,18 @@ snapshots: - utf-8-validate - webpack-cli - '@docusaurus/plugin-svgr@3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3)': + '@docusaurus/plugin-svgr@3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(esbuild@0.27.7)(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3)': dependencies: - '@docusaurus/core': 3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3) - '@docusaurus/types': 3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) - '@docusaurus/utils': 3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) - '@docusaurus/utils-validation': 3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@docusaurus/core': 3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(esbuild@0.27.7)(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3) + '@docusaurus/types': 3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@docusaurus/utils': 3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@docusaurus/utils-validation': 3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) '@svgr/core': 8.1.0(typescript@5.6.3) '@svgr/webpack': 8.1.0(typescript@5.6.3) react: 19.2.6 react-dom: 19.2.6(react@19.2.6) tslib: 2.8.1 - webpack: 5.106.2(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14) + webpack: 5.106.2(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14) transitivePeerDependencies: - '@docusaurus/faster' - '@mdx-js/react' @@ -13257,23 +13693,23 @@ snapshots: - utf-8-validate - webpack-cli - '@docusaurus/preset-classic@3.10.1(@algolia/client-search@5.52.1)(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(@types/react@19.2.14)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(search-insights@2.17.3)(typescript@5.6.3)': - dependencies: - '@docusaurus/core': 3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3) - '@docusaurus/plugin-content-blog': 3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(postcss@8.5.14))(@docusaurus/plugin-content-docs@3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3) - '@docusaurus/plugin-content-docs': 3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3) - '@docusaurus/plugin-content-pages': 3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3) - '@docusaurus/plugin-css-cascade-layers': 3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3) - '@docusaurus/plugin-debug': 3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3) - '@docusaurus/plugin-google-analytics': 3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3) - '@docusaurus/plugin-google-gtag': 3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3) - '@docusaurus/plugin-google-tag-manager': 3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3) - '@docusaurus/plugin-sitemap': 3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3) - '@docusaurus/plugin-svgr': 3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3) - '@docusaurus/theme-classic': 3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(postcss@8.5.14))(@rspack/core@1.7.11)(@swc/core@1.15.33)(@types/react@19.2.14)(lightningcss@1.32.0)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3) - '@docusaurus/theme-common': 3.10.1(@docusaurus/plugin-content-docs@3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3))(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) - '@docusaurus/theme-search-algolia': 3.10.1(@algolia/client-search@5.52.1)(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(@types/react@19.2.14)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(search-insights@2.17.3)(typescript@5.6.3) - '@docusaurus/types': 3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@docusaurus/preset-classic@3.10.1(@algolia/client-search@5.52.1)(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(esbuild@0.27.7)(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(@types/react@19.2.14)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(search-insights@2.17.3)(typescript@5.6.3)': + dependencies: + '@docusaurus/core': 3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(esbuild@0.27.7)(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3) + '@docusaurus/plugin-content-blog': 3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(esbuild@0.27.7)(postcss@8.5.14))(@docusaurus/plugin-content-docs@3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(esbuild@0.27.7)(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3) + '@docusaurus/plugin-content-docs': 3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(esbuild@0.27.7)(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3) + '@docusaurus/plugin-content-pages': 3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(esbuild@0.27.7)(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3) + '@docusaurus/plugin-css-cascade-layers': 3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(esbuild@0.27.7)(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3) + '@docusaurus/plugin-debug': 3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(esbuild@0.27.7)(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3) + '@docusaurus/plugin-google-analytics': 3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(esbuild@0.27.7)(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3) + '@docusaurus/plugin-google-gtag': 3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(esbuild@0.27.7)(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3) + '@docusaurus/plugin-google-tag-manager': 3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(esbuild@0.27.7)(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3) + '@docusaurus/plugin-sitemap': 3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(esbuild@0.27.7)(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3) + '@docusaurus/plugin-svgr': 3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(esbuild@0.27.7)(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3) + '@docusaurus/theme-classic': 3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(esbuild@0.27.7)(postcss@8.5.14))(@rspack/core@1.7.11)(@swc/core@1.15.33)(@types/react@19.2.14)(esbuild@0.27.7)(lightningcss@1.32.0)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3) + '@docusaurus/theme-common': 3.10.1(@docusaurus/plugin-content-docs@3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(esbuild@0.27.7)(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3))(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@docusaurus/theme-search-algolia': 3.10.1(@algolia/client-search@5.52.1)(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(esbuild@0.27.7)(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(@types/react@19.2.14)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(search-insights@2.17.3)(typescript@5.6.3) + '@docusaurus/types': 3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) react: 19.2.6 react-dom: 19.2.6(react@19.2.6) transitivePeerDependencies: @@ -13308,21 +13744,21 @@ snapshots: '@types/react': 19.2.14 react: 19.2.6 - '@docusaurus/theme-classic@3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(postcss@8.5.14))(@rspack/core@1.7.11)(@swc/core@1.15.33)(@types/react@19.2.14)(lightningcss@1.32.0)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3)': + '@docusaurus/theme-classic@3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(esbuild@0.27.7)(postcss@8.5.14))(@rspack/core@1.7.11)(@swc/core@1.15.33)(@types/react@19.2.14)(esbuild@0.27.7)(lightningcss@1.32.0)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3)': dependencies: - '@docusaurus/core': 3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3) + '@docusaurus/core': 3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(esbuild@0.27.7)(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3) '@docusaurus/logger': 3.10.1 - '@docusaurus/mdx-loader': 3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) - '@docusaurus/module-type-aliases': 3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) - '@docusaurus/plugin-content-blog': 3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(postcss@8.5.14))(@docusaurus/plugin-content-docs@3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3) - '@docusaurus/plugin-content-docs': 3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3) - '@docusaurus/plugin-content-pages': 3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3) - '@docusaurus/theme-common': 3.10.1(@docusaurus/plugin-content-docs@3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3))(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@docusaurus/mdx-loader': 3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@docusaurus/module-type-aliases': 3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@docusaurus/plugin-content-blog': 3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(esbuild@0.27.7)(postcss@8.5.14))(@docusaurus/plugin-content-docs@3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(esbuild@0.27.7)(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3) + '@docusaurus/plugin-content-docs': 3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(esbuild@0.27.7)(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3) + '@docusaurus/plugin-content-pages': 3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(esbuild@0.27.7)(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3) + '@docusaurus/theme-common': 3.10.1(@docusaurus/plugin-content-docs@3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(esbuild@0.27.7)(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3))(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) '@docusaurus/theme-translations': 3.10.1 - '@docusaurus/types': 3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) - '@docusaurus/utils': 3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) - '@docusaurus/utils-common': 3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) - '@docusaurus/utils-validation': 3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@docusaurus/types': 3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@docusaurus/utils': 3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@docusaurus/utils-common': 3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@docusaurus/utils-validation': 3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) '@mdx-js/react': 3.1.1(@types/react@19.2.14)(react@19.2.6) clsx: 2.1.1 copy-text-to-clipboard: 3.2.2 @@ -13361,13 +13797,13 @@ snapshots: - utf-8-validate - webpack-cli - '@docusaurus/theme-common@3.10.1(@docusaurus/plugin-content-docs@3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3))(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)': + '@docusaurus/theme-common@3.10.1(@docusaurus/plugin-content-docs@3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(esbuild@0.27.7)(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3))(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)': dependencies: - '@docusaurus/mdx-loader': 3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) - '@docusaurus/module-type-aliases': 3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) - '@docusaurus/plugin-content-docs': 3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3) - '@docusaurus/utils': 3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) - '@docusaurus/utils-common': 3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@docusaurus/mdx-loader': 3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@docusaurus/module-type-aliases': 3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@docusaurus/plugin-content-docs': 3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(esbuild@0.27.7)(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3) + '@docusaurus/utils': 3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@docusaurus/utils-common': 3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) '@types/history': 4.7.11 '@types/react': 19.2.14 '@types/react-router-config': 5.0.11 @@ -13394,13 +13830,13 @@ snapshots: - uglify-js - webpack-cli - '@docusaurus/theme-mermaid@3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(postcss@8.5.14))(@docusaurus/plugin-content-docs@3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3)': + '@docusaurus/theme-mermaid@3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(esbuild@0.27.7)(postcss@8.5.14))(@docusaurus/plugin-content-docs@3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(esbuild@0.27.7)(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3)': dependencies: - '@docusaurus/core': 3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3) - '@docusaurus/module-type-aliases': 3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) - '@docusaurus/theme-common': 3.10.1(@docusaurus/plugin-content-docs@3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3))(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) - '@docusaurus/types': 3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) - '@docusaurus/utils-validation': 3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@docusaurus/core': 3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(esbuild@0.27.7)(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3) + '@docusaurus/module-type-aliases': 3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@docusaurus/theme-common': 3.10.1(@docusaurus/plugin-content-docs@3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(esbuild@0.27.7)(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3))(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@docusaurus/types': 3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@docusaurus/utils-validation': 3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) mermaid: 11.14.0 react: 19.2.6 react-dom: 19.2.6(react@19.2.6) @@ -13430,17 +13866,17 @@ snapshots: - utf-8-validate - webpack-cli - '@docusaurus/theme-search-algolia@3.10.1(@algolia/client-search@5.52.1)(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(@types/react@19.2.14)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(search-insights@2.17.3)(typescript@5.6.3)': + '@docusaurus/theme-search-algolia@3.10.1(@algolia/client-search@5.52.1)(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(esbuild@0.27.7)(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(@types/react@19.2.14)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(search-insights@2.17.3)(typescript@5.6.3)': dependencies: '@algolia/autocomplete-core': 1.19.8(@algolia/client-search@5.52.1)(algoliasearch@5.52.1)(search-insights@2.17.3) '@docsearch/react': 4.6.3(@algolia/client-search@5.52.1)(@types/react@19.2.14)(algoliasearch@5.52.1)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(search-insights@2.17.3) - '@docusaurus/core': 3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3) + '@docusaurus/core': 3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(esbuild@0.27.7)(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3) '@docusaurus/logger': 3.10.1 - '@docusaurus/plugin-content-docs': 3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3) - '@docusaurus/theme-common': 3.10.1(@docusaurus/plugin-content-docs@3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3))(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@docusaurus/plugin-content-docs': 3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(esbuild@0.27.7)(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3) + '@docusaurus/theme-common': 3.10.1(@docusaurus/plugin-content-docs@3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(esbuild@0.27.7)(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3))(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) '@docusaurus/theme-translations': 3.10.1 - '@docusaurus/utils': 3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) - '@docusaurus/utils-validation': 3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@docusaurus/utils': 3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@docusaurus/utils-validation': 3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) algoliasearch: 5.52.1 algoliasearch-helper: 3.29.1(algoliasearch@5.52.1) clsx: 2.1.1 @@ -13485,7 +13921,7 @@ snapshots: '@docusaurus/tsconfig@3.10.1': {} - '@docusaurus/types@3.10.1(@swc/core@1.15.33)(clean-css@5.3.3)(cssnano@6.1.2(postcss@8.5.14))(html-minifier-terser@7.2.0)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)': + '@docusaurus/types@3.10.1(@swc/core@1.15.33)(clean-css@5.3.3)(cssnano@6.1.2(postcss@8.5.14))(esbuild@0.27.7)(html-minifier-terser@7.2.0)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)': dependencies: '@mdx-js/mdx': 3.1.1 '@types/history': 4.7.11 @@ -13497,7 +13933,7 @@ snapshots: react-dom: 19.2.6(react@19.2.6) react-helmet-async: '@slorber/react-helmet-async@1.3.0(react-dom@19.2.6(react@19.2.6))(react@19.2.6)' utility-types: 3.11.0 - webpack: 5.106.2(@swc/core@1.15.33)(clean-css@5.3.3)(cssnano@6.1.2(postcss@8.5.14))(html-minifier-terser@7.2.0)(lightningcss@1.32.0)(postcss@8.5.14) + webpack: 5.106.2(@swc/core@1.15.33)(clean-css@5.3.3)(cssnano@6.1.2(postcss@8.5.14))(esbuild@0.27.7)(html-minifier-terser@7.2.0)(lightningcss@1.32.0)(postcss@8.5.14) webpack-merge: 5.10.0 transitivePeerDependencies: - '@minify-html/node' @@ -13515,7 +13951,7 @@ snapshots: - uglify-js - webpack-cli - '@docusaurus/types@3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)': + '@docusaurus/types@3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)': dependencies: '@mdx-js/mdx': 3.1.1 '@types/history': 4.7.11 @@ -13527,7 +13963,7 @@ snapshots: react-dom: 19.2.6(react@19.2.6) react-helmet-async: '@slorber/react-helmet-async@1.3.0(react-dom@19.2.6(react@19.2.6))(react@19.2.6)' utility-types: 3.11.0 - webpack: 5.106.2(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14) + webpack: 5.106.2(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14) webpack-merge: 5.10.0 transitivePeerDependencies: - '@minify-html/node' @@ -13545,9 +13981,9 @@ snapshots: - uglify-js - webpack-cli - '@docusaurus/utils-common@3.10.1(@swc/core@1.15.33)(clean-css@5.3.3)(cssnano@6.1.2(postcss@8.5.14))(html-minifier-terser@7.2.0)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)': + '@docusaurus/utils-common@3.10.1(@swc/core@1.15.33)(clean-css@5.3.3)(cssnano@6.1.2(postcss@8.5.14))(esbuild@0.27.7)(html-minifier-terser@7.2.0)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)': dependencies: - '@docusaurus/types': 3.10.1(@swc/core@1.15.33)(clean-css@5.3.3)(cssnano@6.1.2(postcss@8.5.14))(html-minifier-terser@7.2.0)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@docusaurus/types': 3.10.1(@swc/core@1.15.33)(clean-css@5.3.3)(cssnano@6.1.2(postcss@8.5.14))(esbuild@0.27.7)(html-minifier-terser@7.2.0)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) tslib: 2.8.1 transitivePeerDependencies: - '@minify-html/node' @@ -13567,9 +14003,9 @@ snapshots: - uglify-js - webpack-cli - '@docusaurus/utils-common@3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)': + '@docusaurus/utils-common@3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)': dependencies: - '@docusaurus/types': 3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@docusaurus/types': 3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) tslib: 2.8.1 transitivePeerDependencies: - '@minify-html/node' @@ -13589,11 +14025,11 @@ snapshots: - uglify-js - webpack-cli - '@docusaurus/utils-validation@3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)': + '@docusaurus/utils-validation@3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)': dependencies: '@docusaurus/logger': 3.10.1 - '@docusaurus/utils': 3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) - '@docusaurus/utils-common': 3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@docusaurus/utils': 3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@docusaurus/utils-common': 3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) fs-extra: 11.3.0 joi: 17.13.3 js-yaml: 4.1.1 @@ -13617,14 +14053,14 @@ snapshots: - uglify-js - webpack-cli - '@docusaurus/utils@3.10.1(@swc/core@1.15.33)(clean-css@5.3.3)(cssnano@6.1.2(postcss@8.5.14))(html-minifier-terser@7.2.0)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)': + '@docusaurus/utils@3.10.1(@swc/core@1.15.33)(clean-css@5.3.3)(cssnano@6.1.2(postcss@8.5.14))(esbuild@0.27.7)(html-minifier-terser@7.2.0)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)': dependencies: '@docusaurus/logger': 3.10.1 - '@docusaurus/types': 3.10.1(@swc/core@1.15.33)(clean-css@5.3.3)(cssnano@6.1.2(postcss@8.5.14))(html-minifier-terser@7.2.0)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) - '@docusaurus/utils-common': 3.10.1(@swc/core@1.15.33)(clean-css@5.3.3)(cssnano@6.1.2(postcss@8.5.14))(html-minifier-terser@7.2.0)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@docusaurus/types': 3.10.1(@swc/core@1.15.33)(clean-css@5.3.3)(cssnano@6.1.2(postcss@8.5.14))(esbuild@0.27.7)(html-minifier-terser@7.2.0)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@docusaurus/utils-common': 3.10.1(@swc/core@1.15.33)(clean-css@5.3.3)(cssnano@6.1.2(postcss@8.5.14))(esbuild@0.27.7)(html-minifier-terser@7.2.0)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) escape-string-regexp: 4.0.0 execa: 5.1.1 - file-loader: 6.2.0(webpack@5.106.2(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)) + file-loader: 6.2.0(webpack@5.106.2(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)) fs-extra: 11.3.0 github-slugger: 1.5.0 globby: 11.1.0 @@ -13637,9 +14073,9 @@ snapshots: prompts: 2.4.2 resolve-pathname: 3.0.0 tslib: 2.8.1 - url-loader: 4.1.1(file-loader@6.2.0(webpack@5.106.2(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)))(webpack@5.106.2(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)) + url-loader: 4.1.1(file-loader@6.2.0(webpack@5.106.2(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)))(webpack@5.106.2(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)) utility-types: 3.11.0 - webpack: 5.106.2(@swc/core@1.15.33)(clean-css@5.3.3)(cssnano@6.1.2(postcss@8.5.14))(html-minifier-terser@7.2.0)(lightningcss@1.32.0)(postcss@8.5.14) + webpack: 5.106.2(@swc/core@1.15.33)(clean-css@5.3.3)(cssnano@6.1.2(postcss@8.5.14))(esbuild@0.27.7)(html-minifier-terser@7.2.0)(lightningcss@1.32.0)(postcss@8.5.14) transitivePeerDependencies: - '@minify-html/node' - '@swc/core' @@ -13658,14 +14094,14 @@ snapshots: - uglify-js - webpack-cli - '@docusaurus/utils@3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)': + '@docusaurus/utils@3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)': dependencies: '@docusaurus/logger': 3.10.1 - '@docusaurus/types': 3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) - '@docusaurus/utils-common': 3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@docusaurus/types': 3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@docusaurus/utils-common': 3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) escape-string-regexp: 4.0.0 execa: 5.1.1 - file-loader: 6.2.0(webpack@5.106.2(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)) + file-loader: 6.2.0(webpack@5.106.2(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)) fs-extra: 11.3.0 github-slugger: 1.5.0 globby: 11.1.0 @@ -13678,9 +14114,9 @@ snapshots: prompts: 2.4.2 resolve-pathname: 3.0.0 tslib: 2.8.1 - url-loader: 4.1.1(file-loader@6.2.0(webpack@5.106.2(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)))(webpack@5.106.2(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)) + url-loader: 4.1.1(file-loader@6.2.0(webpack@5.106.2(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)))(webpack@5.106.2(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)) utility-types: 3.11.0 - webpack: 5.106.2(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14) + webpack: 5.106.2(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14) transitivePeerDependencies: - '@minify-html/node' - '@swc/core' @@ -13818,78 +14254,234 @@ snapshots: '@esbuild/aix-ppc64@0.25.2': optional: true + '@esbuild/aix-ppc64@0.27.7': + optional: true + + '@esbuild/aix-ppc64@0.28.0': + optional: true + '@esbuild/android-arm64@0.25.2': optional: true + '@esbuild/android-arm64@0.27.7': + optional: true + + '@esbuild/android-arm64@0.28.0': + optional: true + '@esbuild/android-arm@0.25.2': optional: true + '@esbuild/android-arm@0.27.7': + optional: true + + '@esbuild/android-arm@0.28.0': + optional: true + '@esbuild/android-x64@0.25.2': optional: true + '@esbuild/android-x64@0.27.7': + optional: true + + '@esbuild/android-x64@0.28.0': + optional: true + '@esbuild/darwin-arm64@0.25.2': optional: true + '@esbuild/darwin-arm64@0.27.7': + optional: true + + '@esbuild/darwin-arm64@0.28.0': + optional: true + '@esbuild/darwin-x64@0.25.2': optional: true + '@esbuild/darwin-x64@0.27.7': + optional: true + + '@esbuild/darwin-x64@0.28.0': + optional: true + '@esbuild/freebsd-arm64@0.25.2': optional: true + '@esbuild/freebsd-arm64@0.27.7': + optional: true + + '@esbuild/freebsd-arm64@0.28.0': + optional: true + '@esbuild/freebsd-x64@0.25.2': optional: true + '@esbuild/freebsd-x64@0.27.7': + optional: true + + '@esbuild/freebsd-x64@0.28.0': + optional: true + '@esbuild/linux-arm64@0.25.2': optional: true + '@esbuild/linux-arm64@0.27.7': + optional: true + + '@esbuild/linux-arm64@0.28.0': + optional: true + '@esbuild/linux-arm@0.25.2': optional: true + '@esbuild/linux-arm@0.27.7': + optional: true + + '@esbuild/linux-arm@0.28.0': + optional: true + '@esbuild/linux-ia32@0.25.2': optional: true + '@esbuild/linux-ia32@0.27.7': + optional: true + + '@esbuild/linux-ia32@0.28.0': + optional: true + '@esbuild/linux-loong64@0.25.2': optional: true + '@esbuild/linux-loong64@0.27.7': + optional: true + + '@esbuild/linux-loong64@0.28.0': + optional: true + '@esbuild/linux-mips64el@0.25.2': optional: true + '@esbuild/linux-mips64el@0.27.7': + optional: true + + '@esbuild/linux-mips64el@0.28.0': + optional: true + '@esbuild/linux-ppc64@0.25.2': optional: true + '@esbuild/linux-ppc64@0.27.7': + optional: true + + '@esbuild/linux-ppc64@0.28.0': + optional: true + '@esbuild/linux-riscv64@0.25.2': optional: true + '@esbuild/linux-riscv64@0.27.7': + optional: true + + '@esbuild/linux-riscv64@0.28.0': + optional: true + '@esbuild/linux-s390x@0.25.2': optional: true + '@esbuild/linux-s390x@0.27.7': + optional: true + + '@esbuild/linux-s390x@0.28.0': + optional: true + '@esbuild/linux-x64@0.25.2': optional: true + '@esbuild/linux-x64@0.27.7': + optional: true + + '@esbuild/linux-x64@0.28.0': + optional: true + '@esbuild/netbsd-arm64@0.25.2': optional: true + '@esbuild/netbsd-arm64@0.27.7': + optional: true + + '@esbuild/netbsd-arm64@0.28.0': + optional: true + '@esbuild/netbsd-x64@0.25.2': optional: true + '@esbuild/netbsd-x64@0.27.7': + optional: true + + '@esbuild/netbsd-x64@0.28.0': + optional: true + '@esbuild/openbsd-arm64@0.25.2': optional: true + '@esbuild/openbsd-arm64@0.27.7': + optional: true + + '@esbuild/openbsd-arm64@0.28.0': + optional: true + '@esbuild/openbsd-x64@0.25.2': optional: true + '@esbuild/openbsd-x64@0.27.7': + optional: true + + '@esbuild/openbsd-x64@0.28.0': + optional: true + + '@esbuild/openharmony-arm64@0.27.7': + optional: true + + '@esbuild/openharmony-arm64@0.28.0': + optional: true + '@esbuild/sunos-x64@0.25.2': optional: true + '@esbuild/sunos-x64@0.27.7': + optional: true + + '@esbuild/sunos-x64@0.28.0': + optional: true + '@esbuild/win32-arm64@0.25.2': optional: true + '@esbuild/win32-arm64@0.27.7': + optional: true + + '@esbuild/win32-arm64@0.28.0': + optional: true + '@esbuild/win32-ia32@0.25.2': optional: true + '@esbuild/win32-ia32@0.27.7': + optional: true + + '@esbuild/win32-ia32@0.28.0': + optional: true + '@esbuild/win32-x64@0.25.2': optional: true + '@esbuild/win32-x64@0.27.7': + optional: true + + '@esbuild/win32-x64@0.28.0': + optional: true + '@eslint-community/eslint-utils@4.9.0(eslint@9.39.2(jiti@2.4.2))': dependencies: eslint: 9.39.2(jiti@2.4.2) @@ -14270,7 +14862,7 @@ snapshots: devlop: 1.1.0 estree-util-is-identifier-name: 3.0.0 estree-util-scope: 1.0.0 - estree-walker: 3.0.3 + estree-walker: 3.0.3(patch_hash=591af4f8bfba56a5da5f4340b1501bbcb00ca5a5a63d1e1d55c4aacd9a165f75) hast-util-to-jsx-runtime: 2.3.6 markdown-extensions: 2.0.0 recma-build-jsx: 1.0.0 @@ -15538,13 +16130,13 @@ snapshots: chai: 5.2.0 tinyrainbow: 2.0.0 - '@vitest/mocker@3.2.4(vite@6.2.4(@types/node@22.13.17)(jiti@2.4.2)(lightningcss@1.32.0)(sass@1.86.1)(terser@5.47.1)(yaml@2.8.4))': + '@vitest/mocker@3.2.4(vite@6.2.4(@types/node@22.13.17)(jiti@2.4.2)(lightningcss@1.32.0)(sass@1.86.1)(terser@5.47.1)(tsx@4.22.3)(yaml@2.8.4))': dependencies: '@vitest/spy': 3.2.4 - estree-walker: 3.0.3 + estree-walker: 3.0.3(patch_hash=591af4f8bfba56a5da5f4340b1501bbcb00ca5a5a63d1e1d55c4aacd9a165f75) magic-string: 0.30.17 optionalDependencies: - vite: 6.2.4(@types/node@22.13.17)(jiti@2.4.2)(lightningcss@1.32.0)(sass@1.86.1)(terser@5.47.1)(yaml@2.8.4) + vite: 6.2.4(@types/node@22.13.17)(jiti@2.4.2)(lightningcss@1.32.0)(sass@1.86.1)(terser@5.47.1)(tsx@4.22.3)(yaml@2.8.4) '@vitest/pretty-format@3.2.4': dependencies: @@ -15797,6 +16389,8 @@ snapshots: ansis@3.17.0: {} + any-promise@1.3.0: {} + anymatch@3.1.3: dependencies: normalize-path: 3.0.0 @@ -15853,12 +16447,12 @@ snapshots: aws4@1.13.2: {} - babel-loader@9.2.1(@babel/core@7.29.0)(webpack@5.106.2(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)): + babel-loader@9.2.1(@babel/core@7.29.0)(webpack@5.106.2(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)): dependencies: '@babel/core': 7.29.0 find-cache-dir: 4.0.0 schema-utils: 4.3.3 - webpack: 5.106.2(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14) + webpack: 5.106.2(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14) babel-plugin-dynamic-import-node@2.3.3: dependencies: @@ -16092,6 +16686,11 @@ snapshots: dependencies: run-applescript: 7.1.0 + bundle-require@5.1.0(esbuild@0.27.7): + dependencies: + esbuild: 0.27.7 + load-tsconfig: 0.2.5 + bytes@3.0.0: {} bytes@3.1.2: {} @@ -16346,6 +16945,8 @@ snapshots: commander@2.20.3: {} + commander@4.1.1: {} + commander@5.1.0: {} commander@7.2.0: {} @@ -16382,6 +16983,8 @@ snapshots: concat-map@0.0.1: {} + confbox@0.1.8: {} + config-chain@1.1.13: dependencies: ini: 1.3.8 @@ -16494,7 +17097,7 @@ snapshots: copy-text-to-clipboard@3.2.2: {} - copy-webpack-plugin@11.0.0(webpack@5.106.2(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)): + copy-webpack-plugin@11.0.0(webpack@5.106.2(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)): dependencies: fast-glob: 3.3.3 glob-parent: 6.0.2 @@ -16502,7 +17105,7 @@ snapshots: normalize-path: 3.0.0 schema-utils: 4.3.3 serialize-javascript: 6.0.2 - webpack: 5.106.2(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14) + webpack: 5.106.2(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14) core-js-compat@3.41.0: dependencies: @@ -16572,7 +17175,7 @@ snapshots: postcss-selector-parser: 7.1.1 postcss-value-parser: 4.2.0 - css-loader@6.11.0(@rspack/core@1.7.11)(webpack@5.106.2(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)): + css-loader@6.11.0(@rspack/core@1.7.11)(webpack@5.106.2(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)): dependencies: icss-utils: 5.1.0(postcss@8.5.14) postcss: 8.5.14 @@ -16584,9 +17187,9 @@ snapshots: semver: 7.7.3 optionalDependencies: '@rspack/core': 1.7.11 - webpack: 5.106.2(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14) + webpack: 5.106.2(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14) - css-minimizer-webpack-plugin@5.0.1(clean-css@5.3.3)(lightningcss@1.32.0)(webpack@5.106.2(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)): + css-minimizer-webpack-plugin@5.0.1(clean-css@5.3.3)(esbuild@0.27.7)(lightningcss@1.32.0)(webpack@5.106.2(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)): dependencies: '@jridgewell/trace-mapping': 0.3.31 cssnano: 6.1.2(postcss@8.5.14) @@ -16594,9 +17197,10 @@ snapshots: postcss: 8.5.14 schema-utils: 4.3.3 serialize-javascript: 6.0.2 - webpack: 5.106.2(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14) + webpack: 5.106.2(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14) optionalDependencies: clean-css: 5.3.3 + esbuild: 0.27.7 lightningcss: 1.32.0 css-prefers-color-scheme@10.0.0(postcss@8.5.14): @@ -17264,6 +17868,64 @@ snapshots: '@esbuild/win32-ia32': 0.25.2 '@esbuild/win32-x64': 0.25.2 + esbuild@0.27.7: + optionalDependencies: + '@esbuild/aix-ppc64': 0.27.7 + '@esbuild/android-arm': 0.27.7 + '@esbuild/android-arm64': 0.27.7 + '@esbuild/android-x64': 0.27.7 + '@esbuild/darwin-arm64': 0.27.7 + '@esbuild/darwin-x64': 0.27.7 + '@esbuild/freebsd-arm64': 0.27.7 + '@esbuild/freebsd-x64': 0.27.7 + '@esbuild/linux-arm': 0.27.7 + '@esbuild/linux-arm64': 0.27.7 + '@esbuild/linux-ia32': 0.27.7 + '@esbuild/linux-loong64': 0.27.7 + '@esbuild/linux-mips64el': 0.27.7 + '@esbuild/linux-ppc64': 0.27.7 + '@esbuild/linux-riscv64': 0.27.7 + '@esbuild/linux-s390x': 0.27.7 + '@esbuild/linux-x64': 0.27.7 + '@esbuild/netbsd-arm64': 0.27.7 + '@esbuild/netbsd-x64': 0.27.7 + '@esbuild/openbsd-arm64': 0.27.7 + '@esbuild/openbsd-x64': 0.27.7 + '@esbuild/openharmony-arm64': 0.27.7 + '@esbuild/sunos-x64': 0.27.7 + '@esbuild/win32-arm64': 0.27.7 + '@esbuild/win32-ia32': 0.27.7 + '@esbuild/win32-x64': 0.27.7 + + esbuild@0.28.0: + optionalDependencies: + '@esbuild/aix-ppc64': 0.28.0 + '@esbuild/android-arm': 0.28.0 + '@esbuild/android-arm64': 0.28.0 + '@esbuild/android-x64': 0.28.0 + '@esbuild/darwin-arm64': 0.28.0 + '@esbuild/darwin-x64': 0.28.0 + '@esbuild/freebsd-arm64': 0.28.0 + '@esbuild/freebsd-x64': 0.28.0 + '@esbuild/linux-arm': 0.28.0 + '@esbuild/linux-arm64': 0.28.0 + '@esbuild/linux-ia32': 0.28.0 + '@esbuild/linux-loong64': 0.28.0 + '@esbuild/linux-mips64el': 0.28.0 + '@esbuild/linux-ppc64': 0.28.0 + '@esbuild/linux-riscv64': 0.28.0 + '@esbuild/linux-s390x': 0.28.0 + '@esbuild/linux-x64': 0.28.0 + '@esbuild/netbsd-arm64': 0.28.0 + '@esbuild/netbsd-x64': 0.28.0 + '@esbuild/openbsd-arm64': 0.28.0 + '@esbuild/openbsd-x64': 0.28.0 + '@esbuild/openharmony-arm64': 0.28.0 + '@esbuild/sunos-x64': 0.28.0 + '@esbuild/win32-arm64': 0.28.0 + '@esbuild/win32-ia32': 0.28.0 + '@esbuild/win32-x64': 0.28.0 + escalade@3.2.0: {} escape-goat@4.0.0: {} @@ -17374,7 +18036,7 @@ snapshots: '@types/estree-jsx': 1.0.5 devlop: 1.1.0 estree-util-is-identifier-name: 3.0.0 - estree-walker: 3.0.3 + estree-walker: 3.0.3(patch_hash=591af4f8bfba56a5da5f4340b1501bbcb00ca5a5a63d1e1d55c4aacd9a165f75) estree-util-is-identifier-name@3.0.0: {} @@ -17400,7 +18062,7 @@ snapshots: estree-walker@2.0.2: {} - estree-walker@3.0.3: + estree-walker@3.0.3(patch_hash=591af4f8bfba56a5da5f4340b1501bbcb00ca5a5a63d1e1d55c4aacd9a165f75): dependencies: '@types/estree': 1.0.8 @@ -17562,11 +18224,11 @@ snapshots: dependencies: flat-cache: 4.0.1 - file-loader@6.2.0(webpack@5.106.2(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)): + file-loader@6.2.0(webpack@5.106.2(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)): dependencies: loader-utils: 2.0.4 schema-utils: 3.3.0 - webpack: 5.106.2(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14) + webpack: 5.106.2(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14) filelist@1.0.4: dependencies: @@ -17617,6 +18279,12 @@ snapshots: micromatch: 4.0.8 resolve-dir: 1.0.1 + fix-dts-default-cjs-exports@1.0.1: + dependencies: + magic-string: 0.30.17 + mlly: 1.8.2 + rollup: 4.39.0 + flat-cache@4.0.1: dependencies: flatted: 3.4.2 @@ -17672,6 +18340,12 @@ snapshots: jsonfile: 6.1.0 universalify: 2.0.1 + fs-extra@11.3.5: + dependencies: + graceful-fs: 4.2.11 + jsonfile: 6.1.0 + universalify: 2.0.1 + fs-extra@7.0.1: dependencies: graceful-fs: 4.2.11 @@ -18071,7 +18745,7 @@ snapshots: html-void-elements@3.0.0: {} - html-webpack-plugin@5.6.7(@rspack/core@1.7.11)(webpack@5.106.2(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)): + html-webpack-plugin@5.6.7(@rspack/core@1.7.11)(webpack@5.106.2(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)): dependencies: '@types/html-minifier-terser': 6.1.0 html-minifier-terser: 6.1.0 @@ -18080,7 +18754,7 @@ snapshots: tapable: 2.3.3 optionalDependencies: '@rspack/core': 1.7.11 - webpack: 5.106.2(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14) + webpack: 5.106.2(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14) htmlparser2@6.1.0: dependencies: @@ -18484,6 +19158,8 @@ snapshots: '@sideway/formula': 3.0.1 '@sideway/pinpoint': 2.0.0 + joycon@3.1.1: {} + js-tokens@4.0.0: {} js-tokens@9.0.1: {} @@ -18628,6 +19304,8 @@ snapshots: dependencies: uc.micro: 2.1.0 + load-tsconfig@0.2.5: {} + loader-runner@4.3.2: {} loader-utils@2.0.4: @@ -19324,11 +20002,11 @@ snapshots: mimic-response@4.0.0: {} - mini-css-extract-plugin@2.10.2(webpack@5.106.2(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)): + mini-css-extract-plugin@2.10.2(webpack@5.106.2(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)): dependencies: schema-utils: 4.3.3 tapable: 2.3.3 - webpack: 5.106.2(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14) + webpack: 5.106.2(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14) minimalistic-assert@1.0.1: {} @@ -19396,6 +20074,13 @@ snapshots: dependencies: minimist: 1.2.8 + mlly@1.8.2: + dependencies: + acorn: 8.16.0 + pathe: 2.0.3 + pkg-types: 1.3.1 + ufo: 1.6.4 + mri@1.2.0: {} mrmime@2.0.1: {} @@ -19417,6 +20102,12 @@ snapshots: arrify: 2.0.1 minimatch: 3.1.5 + mz@2.7.0: + dependencies: + any-promise: 1.3.0 + object-assign: 4.1.1 + thenify-all: 1.6.0 + nanoid@3.3.11: {} natural-compare@1.4.0: {} @@ -19503,11 +20194,11 @@ snapshots: dependencies: boolbase: 1.0.0 - null-loader@4.0.1(webpack@5.106.2(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)): + null-loader@4.0.1(webpack@5.106.2(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)): dependencies: loader-utils: 2.0.4 schema-utils: 3.3.0 - webpack: 5.106.2(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14) + webpack: 5.106.2(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14) object-assign@4.1.1: {} @@ -19771,6 +20462,12 @@ snapshots: dependencies: find-up: 6.3.0 + pkg-types@1.3.1: + dependencies: + confbox: 0.1.8 + mlly: 1.8.2 + pathe: 2.0.3 + pkijs@3.4.0: dependencies: '@noble/hashes': 1.4.0 @@ -19939,13 +20636,22 @@ snapshots: '@csstools/utilities': 2.0.0(postcss@8.5.14) postcss: 8.5.14 - postcss-loader@7.3.4(postcss@8.5.14)(typescript@5.6.3)(webpack@5.106.2(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)): + postcss-load-config@6.0.1(jiti@2.4.2)(postcss@8.5.14)(tsx@4.22.3)(yaml@2.8.4): + dependencies: + lilconfig: 3.1.3 + optionalDependencies: + jiti: 2.4.2 + postcss: 8.5.14 + tsx: 4.22.3 + yaml: 2.8.4 + + postcss-loader@7.3.4(postcss@8.5.14)(typescript@5.6.3)(webpack@5.106.2(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)): dependencies: cosmiconfig: 8.3.6(typescript@5.6.3) jiti: 1.21.7 postcss: 8.5.14 semver: 7.7.3 - webpack: 5.106.2(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14) + webpack: 5.106.2(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14) transitivePeerDependencies: - typescript @@ -20398,11 +21104,11 @@ snapshots: dependencies: react: 19.2.6 - react-loadable-ssr-addon-v5-slorber@1.0.3(@docusaurus/react-loadable@6.0.0(react@19.2.6))(webpack@5.106.2(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)): + react-loadable-ssr-addon-v5-slorber@1.0.3(@docusaurus/react-loadable@6.0.0(react@19.2.6))(webpack@5.106.2(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)): dependencies: '@babel/runtime': 7.27.0 react-loadable: '@docusaurus/react-loadable@6.0.0(react@19.2.6)' - webpack: 5.106.2(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14) + webpack: 5.106.2(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14) react-router-config@5.1.1(react-router@5.3.4(react@19.2.6))(react@19.2.6): dependencies: @@ -21173,6 +21879,16 @@ snapshots: stylis@4.4.0: {} + sucrase@3.35.1: + dependencies: + '@jridgewell/gen-mapping': 0.3.13 + commander: 4.1.1 + lines-and-columns: 1.2.4 + mz: 2.7.0 + pirates: 4.0.7 + tinyglobby: 0.2.14 + ts-interface-checker: 0.1.13 + sumchecker@3.0.1: dependencies: debug: 4.4.3 @@ -21201,11 +21917,11 @@ snapshots: picocolors: 1.1.1 sax: 1.6.0 - swc-loader@0.2.7(@swc/core@1.15.33)(webpack@5.106.2(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)): + swc-loader@0.2.7(@swc/core@1.15.33)(webpack@5.106.2(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)): dependencies: '@swc/core': 1.15.33 '@swc/counter': 0.1.3 - webpack: 5.106.2(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14) + webpack: 5.106.2(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14) synckit@0.11.11: dependencies: @@ -21239,43 +21955,46 @@ snapshots: term-size@2.2.1: {} - terser-webpack-plugin@5.6.0(@swc/core@1.15.33)(@swc/html@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(webpack@5.106.2(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)): + terser-webpack-plugin@5.6.0(@swc/core@1.15.33)(@swc/html@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(webpack@5.106.2(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)): dependencies: '@jridgewell/trace-mapping': 0.3.31 jest-worker: 27.5.1 schema-utils: 4.3.3 terser: 5.47.1 - webpack: 5.106.2(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14) + webpack: 5.106.2(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14) optionalDependencies: '@swc/core': 1.15.33 '@swc/html': 1.15.33 + esbuild: 0.27.7 lightningcss: 1.32.0 postcss: 8.5.14 - terser-webpack-plugin@5.6.0(@swc/core@1.15.33)(clean-css@5.3.3)(cssnano@6.1.2(postcss@8.5.14))(html-minifier-terser@7.2.0)(lightningcss@1.32.0)(postcss@8.5.14)(webpack@5.106.2(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)): + terser-webpack-plugin@5.6.0(@swc/core@1.15.33)(clean-css@5.3.3)(cssnano@6.1.2(postcss@8.5.14))(esbuild@0.27.7)(html-minifier-terser@7.2.0)(lightningcss@1.32.0)(postcss@8.5.14)(webpack@5.106.2(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)): dependencies: '@jridgewell/trace-mapping': 0.3.31 jest-worker: 27.5.1 schema-utils: 4.3.3 terser: 5.47.1 - webpack: 5.106.2(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14) + webpack: 5.106.2(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14) optionalDependencies: '@swc/core': 1.15.33 clean-css: 5.3.3 cssnano: 6.1.2(postcss@8.5.14) + esbuild: 0.27.7 html-minifier-terser: 7.2.0 lightningcss: 1.32.0 postcss: 8.5.14 - terser-webpack-plugin@5.6.0(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(webpack@5.106.2(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)): + terser-webpack-plugin@5.6.0(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(webpack@5.106.2(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)): dependencies: '@jridgewell/trace-mapping': 0.3.31 jest-worker: 27.5.1 schema-utils: 4.3.3 terser: 5.47.1 - webpack: 5.106.2(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14) + webpack: 5.106.2(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14) optionalDependencies: '@swc/core': 1.15.33 + esbuild: 0.27.7 lightningcss: 1.32.0 postcss: 8.5.14 @@ -21292,6 +22011,14 @@ snapshots: glob: 7.2.3 minimatch: 3.1.5 + thenify-all@1.6.0: + dependencies: + thenify: 3.3.1 + + thenify@3.3.1: + dependencies: + any-promise: 1.3.0 + thingies@2.6.0(tslib@2.8.1): dependencies: tslib: 2.8.1 @@ -21349,6 +22076,8 @@ snapshots: dependencies: tslib: 2.8.1 + tree-kill@1.2.2: {} + trim-lines@3.0.1: {} trough@2.2.0: {} @@ -21367,6 +22096,8 @@ snapshots: ts-dedent@2.2.0: {} + ts-interface-checker@0.1.13: {} + ts-node@10.9.2(@swc/core@1.15.33)(@types/node@16.18.126)(typescript@5.1.6): dependencies: '@cspotcode/source-map-support': 0.8.1 @@ -21387,29 +22118,44 @@ snapshots: optionalDependencies: '@swc/core': 1.15.33 - ts-node@10.9.2(@swc/core@1.15.33)(@types/node@22.13.17)(typescript@5.8.2): + tslib@1.14.1: {} + + tslib@2.8.1: {} + + tsup@8.5.1(@swc/core@1.15.33)(jiti@2.4.2)(postcss@8.5.14)(tsx@4.22.3)(typescript@5.8.2)(yaml@2.8.4): dependencies: - '@cspotcode/source-map-support': 0.8.1 - '@tsconfig/node10': 1.0.11 - '@tsconfig/node12': 1.0.11 - '@tsconfig/node14': 1.0.3 - '@tsconfig/node16': 1.0.4 - '@types/node': 22.13.17 - acorn: 8.15.0 - acorn-walk: 8.3.4 - arg: 4.1.3 - create-require: 1.1.1 - diff: 4.0.2 - make-error: 1.3.6 - typescript: 5.8.2 - v8-compile-cache-lib: 3.0.1 - yn: 3.1.1 + bundle-require: 5.1.0(esbuild@0.27.7) + cac: 6.7.14 + chokidar: 4.0.3 + consola: 3.4.2 + debug: 4.4.3 + esbuild: 0.27.7 + fix-dts-default-cjs-exports: 1.0.1 + joycon: 3.1.1 + picocolors: 1.1.1 + postcss-load-config: 6.0.1(jiti@2.4.2)(postcss@8.5.14)(tsx@4.22.3)(yaml@2.8.4) + resolve-from: 5.0.0 + rollup: 4.39.0 + source-map: 0.7.6 + sucrase: 3.35.1 + tinyexec: 0.3.2 + tinyglobby: 0.2.14 + tree-kill: 1.2.2 optionalDependencies: '@swc/core': 1.15.33 + postcss: 8.5.14 + typescript: 5.8.2 + transitivePeerDependencies: + - jiti + - supports-color + - tsx + - yaml - tslib@1.14.1: {} - - tslib@2.8.1: {} + tsx@4.22.3: + dependencies: + esbuild: 0.28.0 + optionalDependencies: + fsevents: 2.3.3 tsyringe@4.10.0: dependencies: @@ -21483,6 +22229,8 @@ snapshots: uc.micro@2.1.0: {} + ufo@1.6.4: {} + uglify-js@3.19.3: optional: true @@ -21595,14 +22343,14 @@ snapshots: dependencies: punycode: 2.3.1 - url-loader@4.1.1(file-loader@6.2.0(webpack@5.106.2(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)))(webpack@5.106.2(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)): + url-loader@4.1.1(file-loader@6.2.0(webpack@5.106.2(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)))(webpack@5.106.2(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)): dependencies: loader-utils: 2.0.4 mime-types: 2.1.35 schema-utils: 3.3.0 - webpack: 5.106.2(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14) + webpack: 5.106.2(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14) optionalDependencies: - file-loader: 6.2.0(webpack@5.106.2(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)) + file-loader: 6.2.0(webpack@5.106.2(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)) utf8-byte-length@1.0.5: {} @@ -21644,13 +22392,13 @@ snapshots: '@types/unist': 3.0.3 vfile-message: 4.0.2 - vite-node@3.2.4(@types/node@22.13.17)(jiti@2.4.2)(lightningcss@1.32.0)(sass@1.86.1)(terser@5.47.1)(yaml@2.8.4): + vite-node@3.2.4(@types/node@22.13.17)(jiti@2.4.2)(lightningcss@1.32.0)(sass@1.86.1)(terser@5.47.1)(tsx@4.22.3)(yaml@2.8.4): dependencies: cac: 6.7.14 debug: 4.4.3 es-module-lexer: 1.7.0 pathe: 2.0.3 - vite: 6.2.4(@types/node@22.13.17)(jiti@2.4.2)(lightningcss@1.32.0)(sass@1.86.1)(terser@5.47.1)(yaml@2.8.4) + vite: 6.2.4(@types/node@22.13.17)(jiti@2.4.2)(lightningcss@1.32.0)(sass@1.86.1)(terser@5.47.1)(tsx@4.22.3)(yaml@2.8.4) transitivePeerDependencies: - '@types/node' - jiti @@ -21665,7 +22413,7 @@ snapshots: - tsx - yaml - vite@6.2.4(@types/node@22.13.17)(jiti@2.4.2)(lightningcss@1.32.0)(sass@1.86.1)(terser@5.47.1)(yaml@2.8.4): + vite@6.2.4(@types/node@22.13.17)(jiti@2.4.2)(lightningcss@1.32.0)(sass@1.86.1)(terser@5.47.1)(tsx@4.22.3)(yaml@2.8.4): dependencies: esbuild: 0.25.2 postcss: 8.5.3 @@ -21677,15 +22425,16 @@ snapshots: lightningcss: 1.32.0 sass: 1.86.1 terser: 5.47.1 + tsx: 4.22.3 yaml: 2.8.4 vitest-mock-commonjs@1.0.2: {} - vitest@3.2.4(@types/node@22.13.17)(jiti@2.4.2)(lightningcss@1.32.0)(sass@1.86.1)(terser@5.47.1)(yaml@2.8.4): + vitest@3.2.4(@types/node@22.13.17)(jiti@2.4.2)(lightningcss@1.32.0)(sass@1.86.1)(terser@5.47.1)(tsx@4.22.3)(yaml@2.8.4): dependencies: '@types/chai': 5.2.2 '@vitest/expect': 3.2.4 - '@vitest/mocker': 3.2.4(vite@6.2.4(@types/node@22.13.17)(jiti@2.4.2)(lightningcss@1.32.0)(sass@1.86.1)(terser@5.47.1)(yaml@2.8.4)) + '@vitest/mocker': 3.2.4(vite@6.2.4(@types/node@22.13.17)(jiti@2.4.2)(lightningcss@1.32.0)(sass@1.86.1)(terser@5.47.1)(tsx@4.22.3)(yaml@2.8.4)) '@vitest/pretty-format': 3.2.4 '@vitest/runner': 3.2.4 '@vitest/snapshot': 3.2.4 @@ -21703,8 +22452,8 @@ snapshots: tinyglobby: 0.2.14 tinypool: 1.1.1 tinyrainbow: 2.0.0 - vite: 6.2.4(@types/node@22.13.17)(jiti@2.4.2)(lightningcss@1.32.0)(sass@1.86.1)(terser@5.47.1)(yaml@2.8.4) - vite-node: 3.2.4(@types/node@22.13.17)(jiti@2.4.2)(lightningcss@1.32.0)(sass@1.86.1)(terser@5.47.1)(yaml@2.8.4) + vite: 6.2.4(@types/node@22.13.17)(jiti@2.4.2)(lightningcss@1.32.0)(sass@1.86.1)(terser@5.47.1)(tsx@4.22.3)(yaml@2.8.4) + vite-node: 3.2.4(@types/node@22.13.17)(jiti@2.4.2)(lightningcss@1.32.0)(sass@1.86.1)(terser@5.47.1)(tsx@4.22.3)(yaml@2.8.4) why-is-node-running: 2.3.0 optionalDependencies: '@types/node': 22.13.17 @@ -21786,7 +22535,7 @@ snapshots: - bufferutil - utf-8-validate - webpack-dev-middleware@7.4.5(tslib@2.8.1)(webpack@5.106.2(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)): + webpack-dev-middleware@7.4.5(tslib@2.8.1)(webpack@5.106.2(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)): dependencies: colorette: 2.0.20 memfs: 4.57.2(tslib@2.8.1) @@ -21795,11 +22544,11 @@ snapshots: range-parser: 1.2.1 schema-utils: 4.3.3 optionalDependencies: - webpack: 5.106.2(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14) + webpack: 5.106.2(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14) transitivePeerDependencies: - tslib - webpack-dev-server@5.2.3(tslib@2.8.1)(webpack@5.106.2(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)): + webpack-dev-server@5.2.3(tslib@2.8.1)(webpack@5.106.2(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)): dependencies: '@types/bonjour': 3.5.13 '@types/connect-history-api-fallback': 1.5.4 @@ -21827,10 +22576,10 @@ snapshots: serve-index: 1.9.2 sockjs: 0.3.24 spdy: 4.0.2 - webpack-dev-middleware: 7.4.5(tslib@2.8.1)(webpack@5.106.2(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)) + webpack-dev-middleware: 7.4.5(tslib@2.8.1)(webpack@5.106.2(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)) ws: 8.20.0 optionalDependencies: - webpack: 5.106.2(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14) + webpack: 5.106.2(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14) transitivePeerDependencies: - bufferutil - debug @@ -21852,7 +22601,7 @@ snapshots: webpack-sources@3.4.1: {} - webpack@5.106.2(@swc/core@1.15.33)(@swc/html@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14): + webpack@5.106.2(@swc/core@1.15.33)(@swc/html@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14): dependencies: '@types/eslint-scope': 3.7.7 '@types/estree': 1.0.8 @@ -21875,7 +22624,7 @@ snapshots: neo-async: 2.6.2 schema-utils: 4.3.3 tapable: 2.3.3 - terser-webpack-plugin: 5.6.0(@swc/core@1.15.33)(@swc/html@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(webpack@5.106.2(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)) + terser-webpack-plugin: 5.6.0(@swc/core@1.15.33)(@swc/html@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(webpack@5.106.2(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)) watchpack: 2.5.1 webpack-sources: 3.4.1 transitivePeerDependencies: @@ -21892,7 +22641,7 @@ snapshots: - postcss - uglify-js - webpack@5.106.2(@swc/core@1.15.33)(clean-css@5.3.3)(cssnano@6.1.2(postcss@8.5.14))(html-minifier-terser@7.2.0)(lightningcss@1.32.0)(postcss@8.5.14): + webpack@5.106.2(@swc/core@1.15.33)(clean-css@5.3.3)(cssnano@6.1.2(postcss@8.5.14))(esbuild@0.27.7)(html-minifier-terser@7.2.0)(lightningcss@1.32.0)(postcss@8.5.14): dependencies: '@types/eslint-scope': 3.7.7 '@types/estree': 1.0.8 @@ -21915,7 +22664,7 @@ snapshots: neo-async: 2.6.2 schema-utils: 4.3.3 tapable: 2.3.3 - terser-webpack-plugin: 5.6.0(@swc/core@1.15.33)(clean-css@5.3.3)(cssnano@6.1.2(postcss@8.5.14))(html-minifier-terser@7.2.0)(lightningcss@1.32.0)(postcss@8.5.14)(webpack@5.106.2(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)) + terser-webpack-plugin: 5.6.0(@swc/core@1.15.33)(clean-css@5.3.3)(cssnano@6.1.2(postcss@8.5.14))(esbuild@0.27.7)(html-minifier-terser@7.2.0)(lightningcss@1.32.0)(postcss@8.5.14)(webpack@5.106.2(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)) watchpack: 2.5.1 webpack-sources: 3.4.1 transitivePeerDependencies: @@ -21932,7 +22681,7 @@ snapshots: - postcss - uglify-js - webpack@5.106.2(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14): + webpack@5.106.2(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14): dependencies: '@types/eslint-scope': 3.7.7 '@types/estree': 1.0.8 @@ -21955,7 +22704,7 @@ snapshots: neo-async: 2.6.2 schema-utils: 4.3.3 tapable: 2.3.3 - terser-webpack-plugin: 5.6.0(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(webpack@5.106.2(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)) + terser-webpack-plugin: 5.6.0(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(webpack@5.106.2(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)) watchpack: 2.5.1 webpack-sources: 3.4.1 transitivePeerDependencies: @@ -21972,7 +22721,7 @@ snapshots: - postcss - uglify-js - webpackbar@7.0.0(@rspack/core@1.7.11)(webpack@5.106.2(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)): + webpackbar@7.0.0(@rspack/core@1.7.11)(webpack@5.106.2(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)): dependencies: ansis: 3.17.0 consola: 3.4.2 @@ -21980,7 +22729,7 @@ snapshots: std-env: 3.9.0 optionalDependencies: '@rspack/core': 1.7.11 - webpack: 5.106.2(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14) + webpack: 5.106.2(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14) websocket-driver@0.7.4: dependencies: From 5b5709c90ef6af69559f58be1b61672e81838ce5 Mon Sep 17 00:00:00 2001 From: Mike Maietta Date: Wed, 3 Jun 2026 08:28:30 -0700 Subject: [PATCH 59/65] update engines to 22.12 --- package.json | 4 ++-- packages/app-builder-lib/package.json | 2 +- packages/app-builder-lib/tsup.config.ts | 9 ++------- packages/builder-util-runtime/package.json | 2 +- packages/builder-util-runtime/tsup.config.ts | 9 ++------- packages/builder-util/package.json | 2 +- packages/builder-util/tsup.config.ts | 9 ++------- packages/dmg-builder/package.json | 3 +++ packages/dmg-builder/tsup.config.ts | 9 ++------- .../electron-builder-squirrel-windows/package.json | 3 +++ .../electron-builder-squirrel-windows/tsup.config.ts | 9 ++------- packages/electron-builder/package.json | 2 +- packages/electron-builder/tsup.config.ts | 8 ++------ packages/electron-forge-maker-appimage/package.json | 3 +++ packages/electron-forge-maker-nsis-web/package.json | 3 +++ packages/electron-forge-maker-nsis/package.json | 3 +++ packages/electron-forge-maker-snap/package.json | 3 +++ packages/electron-publish/package.json | 3 +++ packages/electron-publish/tsup.config.ts | 9 ++------- packages/electron-updater/tsup.config.ts | 9 ++------- tsup.config.base.ts | 11 +++++++++++ 21 files changed, 54 insertions(+), 61 deletions(-) create mode 100644 tsup.config.base.ts diff --git a/package.json b/package.json index 24e8097486b..f6dc5f5bf64 100644 --- a/package.json +++ b/package.json @@ -62,8 +62,8 @@ "vitest": "^3.2.2" }, "engines": { - "node": ">=14.14", - "pnpm": ">=10" + "node": ">=22.12.0", + "pnpm": ">=11.1.0" }, "packageManager": "pnpm@11.1.0+sha512.0c44e842e5686b2c061a81adda8b2258bd8818e9704b2cf2c63d56b931a7b2e910092e085027003b96ca3911ab56a07f6df5abaed2be9925034cdd686a535b14" } diff --git a/packages/app-builder-lib/package.json b/packages/app-builder-lib/package.json index 77a5002d214..499b9cd1322 100644 --- a/packages/app-builder-lib/package.json +++ b/packages/app-builder-lib/package.json @@ -30,7 +30,7 @@ "directory": "packages/app-builder-lib" }, "engines": { - "node": ">=14.0.0" + "node": ">=22.12.0" }, "keywords": [ "electron", diff --git a/packages/app-builder-lib/tsup.config.ts b/packages/app-builder-lib/tsup.config.ts index 18266dd10ee..c4c7178f04a 100644 --- a/packages/app-builder-lib/tsup.config.ts +++ b/packages/app-builder-lib/tsup.config.ts @@ -1,16 +1,11 @@ import { defineConfig } from "tsup" +import { baseConfig } from "../../tsup.config.base" export default defineConfig({ + ...baseConfig, entry: { index: "src/index.ts", indexInternal: "src/indexInternal.ts", }, - format: ["cjs", "esm"], - dts: true, - tsconfig: "../tsconfig-tsup.json", - sourcemap: true, - clean: true, - outDir: "dist", - platform: "node", shims: true, }) diff --git a/packages/builder-util-runtime/package.json b/packages/builder-util-runtime/package.json index 79279891aab..f8547a16041 100644 --- a/packages/builder-util-runtime/package.json +++ b/packages/builder-util-runtime/package.json @@ -32,7 +32,7 @@ "build": "tsup" }, "engines": { - "node": ">=12.0.0" + "node": ">=22.12.0" }, "dependencies": { "debug": "^4.3.4", diff --git a/packages/builder-util-runtime/tsup.config.ts b/packages/builder-util-runtime/tsup.config.ts index 41efb181f1c..b3c53d6ae98 100644 --- a/packages/builder-util-runtime/tsup.config.ts +++ b/packages/builder-util-runtime/tsup.config.ts @@ -1,15 +1,10 @@ import { defineConfig } from "tsup" +import { baseConfig } from "../../tsup.config.base" export default defineConfig({ + ...baseConfig, entry: { index: "src/index.ts", indexInternal: "src/indexInternal.ts", }, - format: ["cjs", "esm"], - dts: true, - tsconfig: "../tsconfig-tsup.json", - sourcemap: true, - clean: true, - outDir: "dist", - platform: "node", }) diff --git a/packages/builder-util/package.json b/packages/builder-util/package.json index b53b8a4b5bf..76e77766f0f 100644 --- a/packages/builder-util/package.json +++ b/packages/builder-util/package.json @@ -58,6 +58,6 @@ "@types/tiny-async-pool": "^1.0.5" }, "engines": { - "node": ">=14.0.0" + "node": ">=22.12.0" } } diff --git a/packages/builder-util/tsup.config.ts b/packages/builder-util/tsup.config.ts index 67b85b3497e..31a81a43285 100644 --- a/packages/builder-util/tsup.config.ts +++ b/packages/builder-util/tsup.config.ts @@ -1,15 +1,10 @@ import { defineConfig } from "tsup" +import { baseConfig } from "../../tsup.config.base" export default defineConfig({ + ...baseConfig, entry: { util: "src/util.ts", indexInternal: "src/indexInternal.ts", }, - format: ["cjs", "esm"], - dts: true, - tsconfig: "../tsconfig-tsup.json", - sourcemap: true, - clean: true, - outDir: "dist", - platform: "node", }) diff --git a/packages/dmg-builder/package.json b/packages/dmg-builder/package.json index bacee818952..bf92ec118c2 100644 --- a/packages/dmg-builder/package.json +++ b/packages/dmg-builder/package.json @@ -24,6 +24,9 @@ "dist", "templates" ], + "engines": { + "node": ">=22.12.0" + }, "scripts": { "build": "tsup" }, diff --git a/packages/dmg-builder/tsup.config.ts b/packages/dmg-builder/tsup.config.ts index 2f91bdf224a..4a1d06a50e2 100644 --- a/packages/dmg-builder/tsup.config.ts +++ b/packages/dmg-builder/tsup.config.ts @@ -1,14 +1,9 @@ import { defineConfig } from "tsup" +import { baseConfig } from "../../tsup.config.base" export default defineConfig({ + ...baseConfig, entry: { dmgUtil: "src/dmgUtil.ts", }, - format: ["cjs", "esm"], - dts: true, - tsconfig: "../tsconfig-tsup.json", - sourcemap: true, - clean: true, - outDir: "dist", - platform: "node", }) diff --git a/packages/electron-builder-squirrel-windows/package.json b/packages/electron-builder-squirrel-windows/package.json index a8ff0f5d907..d2459ea610d 100644 --- a/packages/electron-builder-squirrel-windows/package.json +++ b/packages/electron-builder-squirrel-windows/package.json @@ -24,6 +24,9 @@ "dist", "template.nuspectemplate" ], + "engines": { + "node": ">=22.12.0" + }, "scripts": { "build": "tsup" }, diff --git a/packages/electron-builder-squirrel-windows/tsup.config.ts b/packages/electron-builder-squirrel-windows/tsup.config.ts index 2f73360404f..dd270794b6f 100644 --- a/packages/electron-builder-squirrel-windows/tsup.config.ts +++ b/packages/electron-builder-squirrel-windows/tsup.config.ts @@ -1,14 +1,9 @@ import { defineConfig } from "tsup" +import { baseConfig } from "../../tsup.config.base" export default defineConfig({ + ...baseConfig, entry: { SquirrelWindowsTarget: "src/SquirrelWindowsTarget.ts", }, - format: ["cjs", "esm"], - dts: true, - tsconfig: "../tsconfig-tsup.json", - sourcemap: true, - clean: true, - outDir: "dist", - platform: "node", }) diff --git a/packages/electron-builder/package.json b/packages/electron-builder/package.json index 4cec83ee02a..d73aeeb09e9 100644 --- a/packages/electron-builder/package.json +++ b/packages/electron-builder/package.json @@ -35,7 +35,7 @@ "directory": "packages/electron-builder" }, "engines": { - "node": ">=14.0.0" + "node": ">=22.12.0" }, "keywords": [ "electron", diff --git a/packages/electron-builder/tsup.config.ts b/packages/electron-builder/tsup.config.ts index ccf9c1dccd0..14074de85c3 100644 --- a/packages/electron-builder/tsup.config.ts +++ b/packages/electron-builder/tsup.config.ts @@ -1,23 +1,19 @@ import { defineConfig } from "tsup" +import { baseConfig } from "../../tsup.config.base" export default defineConfig({ + ...baseConfig, entry: { index: "src/index.ts", indexInternal: "src/indexInternal.ts", "cli/cli": "src/cli/cli.ts", "cli/install-app-deps": "src/cli/install-app-deps.ts", }, - format: ["cjs", "esm"], dts: { entry: { index: "src/index.ts", indexInternal: "src/indexInternal.ts", }, }, - tsconfig: "../tsconfig-tsup.json", - sourcemap: true, - clean: true, - outDir: "dist", - platform: "node", shims: true, }) diff --git a/packages/electron-forge-maker-appimage/package.json b/packages/electron-forge-maker-appimage/package.json index b0483b2c47a..03d0573d4f4 100644 --- a/packages/electron-forge-maker-appimage/package.json +++ b/packages/electron-forge-maker-appimage/package.json @@ -2,6 +2,9 @@ "name": "electron-forge-maker-appimage", "version": "26.14.0", "main": "main.js", + "engines": { + "node": ">=22.12.0" + }, "author": "Vladimir Krivosheev", "license": "MIT", "repository": { diff --git a/packages/electron-forge-maker-nsis-web/package.json b/packages/electron-forge-maker-nsis-web/package.json index e9864fa2def..b5297e6ed28 100644 --- a/packages/electron-forge-maker-nsis-web/package.json +++ b/packages/electron-forge-maker-nsis-web/package.json @@ -2,6 +2,9 @@ "name": "electron-forge-maker-nsis-web", "version": "26.14.0", "main": "main.js", + "engines": { + "node": ">=22.12.0" + }, "author": "Vladimir Krivosheev", "license": "MIT", "repository": { diff --git a/packages/electron-forge-maker-nsis/package.json b/packages/electron-forge-maker-nsis/package.json index b83d61abdfe..54df6dad35a 100644 --- a/packages/electron-forge-maker-nsis/package.json +++ b/packages/electron-forge-maker-nsis/package.json @@ -2,6 +2,9 @@ "name": "electron-forge-maker-nsis", "version": "26.14.0", "main": "main.js", + "engines": { + "node": ">=22.12.0" + }, "author": "Vladimir Krivosheev", "license": "MIT", "repository": { diff --git a/packages/electron-forge-maker-snap/package.json b/packages/electron-forge-maker-snap/package.json index 341a5716f26..6e0976c8523 100644 --- a/packages/electron-forge-maker-snap/package.json +++ b/packages/electron-forge-maker-snap/package.json @@ -2,6 +2,9 @@ "name": "electron-forge-maker-snap", "version": "26.14.0", "main": "main.js", + "engines": { + "node": ">=22.12.0" + }, "author": "Vladimir Krivosheev", "license": "MIT", "repository": { diff --git a/packages/electron-publish/package.json b/packages/electron-publish/package.json index 78f89126a1c..8c28b8e194a 100644 --- a/packages/electron-publish/package.json +++ b/packages/electron-publish/package.json @@ -28,6 +28,9 @@ "files": [ "dist" ], + "engines": { + "node": ">=22.12.0" + }, "scripts": { "build": "tsup" }, diff --git a/packages/electron-publish/tsup.config.ts b/packages/electron-publish/tsup.config.ts index 41efb181f1c..b3c53d6ae98 100644 --- a/packages/electron-publish/tsup.config.ts +++ b/packages/electron-publish/tsup.config.ts @@ -1,15 +1,10 @@ import { defineConfig } from "tsup" +import { baseConfig } from "../../tsup.config.base" export default defineConfig({ + ...baseConfig, entry: { index: "src/index.ts", indexInternal: "src/indexInternal.ts", }, - format: ["cjs", "esm"], - dts: true, - tsconfig: "../tsconfig-tsup.json", - sourcemap: true, - clean: true, - outDir: "dist", - platform: "node", }) diff --git a/packages/electron-updater/tsup.config.ts b/packages/electron-updater/tsup.config.ts index 1301f9b1314..2386d80753e 100644 --- a/packages/electron-updater/tsup.config.ts +++ b/packages/electron-updater/tsup.config.ts @@ -1,16 +1,11 @@ import { defineConfig } from "tsup" +import { baseConfig } from "../../tsup.config.base" export default defineConfig({ + ...baseConfig, entry: { index: "src/index.ts", indexInternal: "src/indexInternal.ts", }, - format: ["cjs", "esm"], - dts: true, - tsconfig: "../tsconfig-tsup.json", - sourcemap: true, - clean: true, - outDir: "dist", - platform: "node", external: ["electron"], }) diff --git a/tsup.config.base.ts b/tsup.config.base.ts new file mode 100644 index 00000000000..803332d9b96 --- /dev/null +++ b/tsup.config.base.ts @@ -0,0 +1,11 @@ +import type { Options } from "tsup" + +export const baseConfig: Options = { + format: ["cjs", "esm"], + dts: true, + tsconfig: "../tsconfig-tsup.json", + sourcemap: true, + clean: true, + outDir: "dist", + platform: "node", +} From b2c25fc721c4c8fada0d9def01645f8e6db0c0d3 Mon Sep 17 00:00:00 2001 From: Mike Maietta Date: Wed, 3 Jun 2026 08:41:59 -0700 Subject: [PATCH 60/65] retry with proper export/imports --- packages/dmg-builder/src/dmgUtil.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/dmg-builder/src/dmgUtil.ts b/packages/dmg-builder/src/dmgUtil.ts index 3d6bbb53609..cb675705d73 100644 --- a/packages/dmg-builder/src/dmgUtil.ts +++ b/packages/dmg-builder/src/dmgUtil.ts @@ -1,4 +1,4 @@ -import { DmgOptions, MacPackager, PlatformPackager } from "app-builder-lib" +import type { DmgContent, DmgOptions, MacPackager, PlatformPackager } from "app-builder-lib" import { downloadBuilderToolset, withToolsetLock } from "app-builder-lib/internal" import { exec, executeFinally, exists, InvalidConfigurationError, isEmptyOrSpaces, log, TmpDir } from "builder-util" import { stat } from "fs/promises" @@ -145,7 +145,7 @@ export async function customizeDmg({ appPath, artifactPath, volumeName, specific size: specification.size, shrink: specification.shrink, contents: - specification.contents?.map(c => ({ + specification.contents?.map((c: DmgContent) => ({ path: c.path || appPath, // path is required, when ommitted, appPath is used (backward compatibility x: c.x, y: c.y, From ba20c7bc5dbdd38048dc4a2e220c653efe1ea0c4 Mon Sep 17 00:00:00 2001 From: Mike Maietta Date: Wed, 3 Jun 2026 09:20:41 -0700 Subject: [PATCH 61/65] just get it working --- package.json | 2 +- packages/app-builder-lib/package.json | 4 ++-- packages/app-builder-lib/src/index.ts | 2 +- packages/dmg-builder/src/dmgUtil.ts | 2 +- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index f6dc5f5bf64..9839210bda8 100644 --- a/package.json +++ b/package.json @@ -4,7 +4,7 @@ "license": "MIT", "scripts": { "//": "do not wrap into single quotes - windows doesn't unwrap arg in this case", - "compile": "pnpm ci:test:generate && pnpm run -r --if-present --filter '!@electron-builder/website' --filter '!@electron-builder/test' build", + "compile": "pnpm ci:test:generate && pnpm run -r --if-present --filter builder-util-runtime --filter builder-util --filter electron-publish --filter app-builder-lib build && pnpm run -r --if-present --filter '!@electron-builder/website' --filter '!@electron-builder/test' --filter '!app-builder-lib' --filter '!builder-util' --filter '!builder-util-runtime' --filter '!electron-publish' build", "typecheck": "tsc --build", "lint": "eslint packages test/src --ext .ts,.js", "lint-deps": "node ./scripts/checkDeps.js", diff --git a/packages/app-builder-lib/package.json b/packages/app-builder-lib/package.json index 499b9cd1322..152bc91401d 100644 --- a/packages/app-builder-lib/package.json +++ b/packages/app-builder-lib/package.json @@ -139,8 +139,8 @@ "toml": "^3.0.0" }, "peerDependencies": { - "dmg-builder": "workspace:*", - "electron-builder-squirrel-windows": "workspace:*" + "dmg-builder": "*", + "electron-builder-squirrel-windows": "*" }, "//": "electron-builder-squirrel-windows and dmg-builder added as dev dep for tests (as otherwise `require` doesn't work using Yarn 2)", "types": "./dist/index.d.ts", diff --git a/packages/app-builder-lib/src/index.ts b/packages/app-builder-lib/src/index.ts index 57ce77277eb..a2c467fe76d 100644 --- a/packages/app-builder-lib/src/index.ts +++ b/packages/app-builder-lib/src/index.ts @@ -49,7 +49,7 @@ export { PacmanOptions, RpmOptions, } from "./options/linuxOptions" -export { DmgContent, DmgOptions, DmgWindow, MacConfiguration, MacOsTargetName, MasConfiguration } from "./options/macOptions" +export type { DmgContent, DmgOptions, DmgWindow, MacConfiguration, MacOsTargetName, MasConfiguration } from "./options/macOptions" export { AuthorMetadata, Metadata, RepositoryInfo } from "./options/metadata" export { MsiOptions } from "./options/MsiOptions" export { MsiWrappedOptions } from "./options/MsiWrappedOptions" diff --git a/packages/dmg-builder/src/dmgUtil.ts b/packages/dmg-builder/src/dmgUtil.ts index cb675705d73..202b4ffac6f 100644 --- a/packages/dmg-builder/src/dmgUtil.ts +++ b/packages/dmg-builder/src/dmgUtil.ts @@ -1,4 +1,4 @@ -import type { DmgContent, DmgOptions, MacPackager, PlatformPackager } from "app-builder-lib" +import { DmgContent, DmgOptions, MacPackager, PlatformPackager } from "app-builder-lib" import { downloadBuilderToolset, withToolsetLock } from "app-builder-lib/internal" import { exec, executeFinally, exists, InvalidConfigurationError, isEmptyOrSpaces, log, TmpDir } from "builder-util" import { stat } from "fs/promises" From 53d8ac2aee4065d14202e3c9edc295e4697bed93 Mon Sep 17 00:00:00 2001 From: Mike Maietta Date: Wed, 3 Jun 2026 09:48:02 -0700 Subject: [PATCH 62/65] use `/internal` import instead of deep imports --- package.json | 1 + packages/app-builder-lib/package.json | 3 +- packages/app-builder-lib/src/indexInternal.ts | 39 +- packages/builder-util-runtime/package.json | 3 +- packages/builder-util/package.json | 3 +- packages/dmg-builder/package.json | 3 +- .../package.json | 3 +- packages/electron-builder/package.json | 5 +- packages/electron-publish/package.json | 3 +- packages/electron-updater/package.json | 3 +- test/src/HoistedNodeModuleTest.ts | 2 +- test/src/blockmapTest.ts | 2 +- test/src/certInfoTest.ts | 2 +- test/src/electronGetTest.ts | 4 +- test/src/electronVersionTest.ts | 2 +- test/src/filterTest.ts | 2 +- test/src/helpers/launchAppCrossPlatform.ts | 2 +- test/src/helpers/packTester.ts | 12 +- test/src/iconConverterTest.ts | 2 +- test/src/linux/appImageTest.ts | 3 +- test/src/linux/snapcraftParallelsTest.ts | 2 +- test/src/mac/MacTargetHelperTest.ts | 2 +- .../moduleManagerTest.ts | 2 +- .../node-module-collector/pnpmHoistedTest.ts | 2 +- .../streamCollectorTest.ts | 4 +- .../traversalCollectorTest.ts | 3 +- test/src/rebuilderTest.ts | 2 +- test/src/schemaValidatorTest.ts | 2 +- test/src/updateInfoBuilderTest.ts | 2 +- test/src/updater/blackboxInstallTest.ts | 2 +- test/src/updater/blackboxInstallWindows.ts | 2 +- test/src/updater/blackboxUpdateHelpers.ts | 4 +- test/src/updater/blackboxUpdateWinSuite.ts | 2 +- test/src/updater/blackboxWebInstallerTest.ts | 2 +- test/src/updater/differentialUpdateHelpers.ts | 2 +- .../updater/differentialUpdateLinuxSuite.ts | 2 +- .../src/updater/differentialUpdateWinSuite.ts | 2 +- .../src/windows/assistedInstallerTestSuite.ts | 2 +- test/src/windows/msiWrappedTestSuite.ts | 2 +- test/src/windows/nsisOutputValidationTest.ts | 4 +- test/src/windows/nsisScriptGeneratorTest.ts | 2 +- test/src/windows/winCodeSignTest.ts | 3 +- test/src/windows/winPackagerTestSuite.ts | 2 +- test/src/windows/winReseditTest.ts | 2 +- test/src/windows/winSignToolManagerTest.ts | 2 +- test/vitest-scripts/_vitest-smart-cache.json | 2492 ++++++++++++++++- tsup.config.base.ts | 2 +- 47 files changed, 2583 insertions(+), 68 deletions(-) diff --git a/package.json b/package.json index 9839210bda8..e580756d67f 100644 --- a/package.json +++ b/package.json @@ -5,6 +5,7 @@ "scripts": { "//": "do not wrap into single quotes - windows doesn't unwrap arg in this case", "compile": "pnpm ci:test:generate && pnpm run -r --if-present --filter builder-util-runtime --filter builder-util --filter electron-publish --filter app-builder-lib build && pnpm run -r --if-present --filter '!@electron-builder/website' --filter '!@electron-builder/test' --filter '!app-builder-lib' --filter '!builder-util' --filter '!builder-util-runtime' --filter '!electron-publish' build", + "compile:watch": "pnpm compile && pnpm run -r --if-present --parallel --filter '!@electron-builder/website' --filter '!@electron-builder/test' watch", "typecheck": "tsc --build", "lint": "eslint packages test/src --ext .ts,.js", "lint-deps": "node ./scripts/checkDeps.js", diff --git a/packages/app-builder-lib/package.json b/packages/app-builder-lib/package.json index 152bc91401d..26db88ed534 100644 --- a/packages/app-builder-lib/package.json +++ b/packages/app-builder-lib/package.json @@ -145,6 +145,7 @@ "//": "electron-builder-squirrel-windows and dmg-builder added as dev dep for tests (as otherwise `require` doesn't work using Yarn 2)", "types": "./dist/index.d.ts", "scripts": { - "build": "tsup" + "build": "tsup", + "watch": "tsup --watch" } } diff --git a/packages/app-builder-lib/src/indexInternal.ts b/packages/app-builder-lib/src/indexInternal.ts index 3c4e3ee3c70..1426b20d03a 100644 --- a/packages/app-builder-lib/src/indexInternal.ts +++ b/packages/app-builder-lib/src/indexInternal.ts @@ -1,12 +1,14 @@ export { AsarFilesystem, readAsar, readAsarJson } from "./asar/asar.js" export { AsarIntegrity } from "./asar/integrity.js" -export { getBinFromUrl } from "./binDownload.js" -export { downloadBuilderToolset, getCacheDirectory } from "./util/electronGet.js" -export { withToolsetLock } from "./util/toolsetLock.js" -export { orNullIfFileNotExist } from "./util/config/load.js" +export { getBin, getBinFromCustomLoc, getBinFromUrl } from "./binDownload.js" +export { readCertInfo, _testingOnly } from "./codeSign/certInfo.js" export { Identity, createKeychain, findIdentity, isSignAllowed, removeKeychain } from "./codeSign/macCodeSign.js" +export { CustomWindowsSign, WindowsSignTaskConfiguration } from "./codeSign/windowsSignToolManager.js" +export { Configuration, ToolsetConfig } from "./configuration.js" export { Publish } from "./core.js" export { getElectronVersion } from "./electron/electronVersion.js" +export { FileMatcher, getFileMatchers, GetFileMatchersOptions } from "./fileMatcher.js" +export { MacTargetHelper } from "./mac/MacTargetHelper.js" export { HoisterDependencyKind, HoisterResult, HoisterTree, hoist } from "./node-module-collector/hoist.js" export { determinePackageManagerEnv, @@ -17,20 +19,45 @@ export { BunNodeModulesCollector, TraversalNodeModulesCollector, } from "./node-module-collector/index.js" +export { LogMessageByKey, ModuleManager } from "./node-module-collector/moduleManager.js" +export { NodeModulesCollector } from "./node-module-collector/nodeModulesCollector.js" export { detectPackageManager, PM } from "./node-module-collector/packageManager.js" export { DoPackOptions, computeSafeArtifactNameIfNeeded } from "./platformPackager.js" export { createPublisher } from "./publish/PublishManager.js" +export { createUpdateInfoTasks, writeUpdateInfoFiles, UpdateInfoFileTask } from "./publish/updateInfoBuilder.js" +export { validateCriticalPathString } from "./targets/appimage/appImageUtil.js" +export { copyMimeTypes } from "./targets/appimage/appLauncher.js" +export { buildBlockMap } from "./targets/blockmap/blockmap.js" export { createBlockmap } from "./targets/differentialUpdateInfoBuilder.js" +export type { Defines } from "./targets/nsis/Defines.js" +export { NsisScriptGenerator, nsisEscapeString } from "./targets/nsis/nsisScriptGenerator.js" +export { checkMakensisOutput, verifyInstallerSize } from "./targets/nsis/nsisValidation.js" export { computeArchToTargetNamesMap } from "./targets/targetFactory.js" -export { getLinuxToolsPath } from "./toolsets/linux.js" +export { getLinuxToolsMacToolset, getLinuxToolsPath } from "./toolsets/linux.js" export { getWindowsKitsBundle } from "./toolsets/windows.js" +export { CacheState } from "./util/cacheState.js" export { computeDefaultAppDirectory, doMergeConfigs, getConfig, validateConfiguration } from "./util/config/config.js" -export { loadEnv } from "./util/config/load.js" +export { orNullIfFileNotExist, loadEnv } from "./util/config/load.js" +export { validateSchema } from "./util/config/schemaValidator.js" +export { + ArtifactDownloadOptions, + ElectronDownloadOptions, + ElectronGetOptions, + downloadBuilderToolset, + downloadElectronArtifact, + getCacheDirectory, + getBinariesMirrorUrl, +} from "./util/electronGet.js" +export { buildSourceCandidates, convertIcon, getPngSize } from "./util/iconConverter.js" export { getLicenseAssets, getLicenseFiles } from "./util/license.js" export { expandMacro } from "./util/macroExpander.js" export type { NodeModuleInfo } from "./util/packageDependencies.js" export { PlistObject, parsePlistFile } from "./util/plist.js" export { getRepositoryInfo } from "./util/repositoryInfo.js" +export { ResourceEditOptions, editWindowsResources } from "./util/resEdit.js" +export { withToolsetLock } from "./util/toolsetLock.js" export { installDependencies, installOrRebuild, nodeGypRebuild } from "./util/yarn.js" export { PACKAGE_VERSION } from "./version.js" +export { ParallelsVmManager } from "./vm/ParallelsVm.js" +export { VmManager, getWindowsVm, getLinuxVm } from "./vm/vm.js" export { execWine } from "./wine.js" diff --git a/packages/builder-util-runtime/package.json b/packages/builder-util-runtime/package.json index f8547a16041..37ba989ec86 100644 --- a/packages/builder-util-runtime/package.json +++ b/packages/builder-util-runtime/package.json @@ -29,7 +29,8 @@ "dist" ], "scripts": { - "build": "tsup" + "build": "tsup", + "watch": "tsup --watch" }, "engines": { "node": ">=22.12.0" diff --git a/packages/builder-util/package.json b/packages/builder-util/package.json index 76e77766f0f..84874c3bd3a 100644 --- a/packages/builder-util/package.json +++ b/packages/builder-util/package.json @@ -29,7 +29,8 @@ "dist" ], "scripts": { - "build": "tsup" + "build": "tsup", + "watch": "tsup --watch" }, "dependencies": { "7zip-bin": "~5.2.0", diff --git a/packages/dmg-builder/package.json b/packages/dmg-builder/package.json index bf92ec118c2..8de1639a269 100644 --- a/packages/dmg-builder/package.json +++ b/packages/dmg-builder/package.json @@ -28,7 +28,8 @@ "node": ">=22.12.0" }, "scripts": { - "build": "tsup" + "build": "tsup", + "watch": "tsup --watch" }, "dependencies": { "app-builder-lib": "workspace:*", diff --git a/packages/electron-builder-squirrel-windows/package.json b/packages/electron-builder-squirrel-windows/package.json index d2459ea610d..56c4a14defa 100644 --- a/packages/electron-builder-squirrel-windows/package.json +++ b/packages/electron-builder-squirrel-windows/package.json @@ -28,7 +28,8 @@ "node": ">=22.12.0" }, "scripts": { - "build": "tsup" + "build": "tsup", + "watch": "tsup --watch" }, "dependencies": { "app-builder-lib": "workspace:*", diff --git a/packages/electron-builder/package.json b/packages/electron-builder/package.json index d73aeeb09e9..fc465c0e775 100644 --- a/packages/electron-builder/package.json +++ b/packages/electron-builder/package.json @@ -1,6 +1,6 @@ { "name": "electron-builder", - "description": "A complete solution to package and build a ready for distribution Electron app for MacOS, Windows and Linux with \u201cauto update\u201d support out of the box", + "description": "A complete solution to package and build a ready for distribution Electron app for MacOS, Windows and Linux with “auto update” support out of the box", "version": "26.14.0", "main": "./dist/index.js", "module": "./dist/index.mjs", @@ -23,7 +23,8 @@ "install-app-deps.js" ], "scripts": { - "build": "tsup" + "build": "tsup", + "watch": "tsup --watch" }, "bin": { "electron-builder": "./cli.js", diff --git a/packages/electron-publish/package.json b/packages/electron-publish/package.json index 8c28b8e194a..a5a6935bf89 100644 --- a/packages/electron-publish/package.json +++ b/packages/electron-publish/package.json @@ -32,7 +32,8 @@ "node": ">=22.12.0" }, "scripts": { - "build": "tsup" + "build": "tsup", + "watch": "tsup --watch" }, "dependencies": { "@types/fs-extra": "^9.0.11", diff --git a/packages/electron-updater/package.json b/packages/electron-updater/package.json index 0114b1e15cd..ce088f84d3f 100644 --- a/packages/electron-updater/package.json +++ b/packages/electron-updater/package.json @@ -55,6 +55,7 @@ "node": ">=22.12.0" }, "scripts": { - "build": "tsup" + "build": "tsup", + "watch": "tsup --watch" } } diff --git a/test/src/HoistedNodeModuleTest.ts b/test/src/HoistedNodeModuleTest.ts index cbf46d29126..0fc3ce94733 100644 --- a/test/src/HoistedNodeModuleTest.ts +++ b/test/src/HoistedNodeModuleTest.ts @@ -1,4 +1,4 @@ -import { PM } from "app-builder-lib/src/node-module-collector" +import { PM } from "app-builder-lib/internal" import { spawn } from "builder-util/src/util" import { Arch, DIR_TARGET, Platform } from "electron-builder" import * as path from "path" diff --git a/test/src/blockmapTest.ts b/test/src/blockmapTest.ts index fadda8e652a..8ad1f879844 100644 --- a/test/src/blockmapTest.ts +++ b/test/src/blockmapTest.ts @@ -6,7 +6,7 @@ import * as os from "os" import * as path from "path" import * as zlib from "zlib" import { afterEach, beforeEach, describe, expect, it } from "vitest" -import { buildBlockMap } from "app-builder-lib/src/targets/blockmap/blockmap" +import { buildBlockMap } from "app-builder-lib/internal" import { appBuilderPath } from "app-builder-bin" // True when the app-builder-bin binary is actually present on disk. diff --git a/test/src/certInfoTest.ts b/test/src/certInfoTest.ts index 78968bba2f5..06c8c06308f 100644 --- a/test/src/certInfoTest.ts +++ b/test/src/certInfoTest.ts @@ -5,7 +5,7 @@ import { writeFileSync } from "fs" import { mkdtemp } from "fs/promises" import { afterAll, beforeAll, describe, it, expect } from "vitest" import { writeFile, remove } from "fs-extra" -import { readCertInfo, _testingOnly } from "app-builder-lib/src/codeSign/certInfo" +import { readCertInfo, _testingOnly } from "app-builder-lib/internal" const { pkcs12PbeDeriveKey, pkcs12PasswordToUtf16, rc2CbcDecrypt, MAX_PKCS12_PBE_ITERATIONS } = _testingOnly import { executeAppBuilder } from "builder-util" diff --git a/test/src/electronGetTest.ts b/test/src/electronGetTest.ts index 20d996870c8..4d63560deed 100644 --- a/test/src/electronGetTest.ts +++ b/test/src/electronGetTest.ts @@ -7,14 +7,14 @@ import * as path from "path" import { afterAll, afterEach, beforeAll, vi } from "vitest" import { ArtifactDownloadOptions, + CacheState, ElectronDownloadOptions, ElectronGetOptions, downloadBuilderToolset, downloadElectronArtifact, getCacheDirectory, getBinariesMirrorUrl, -} from "app-builder-lib/src/util/electronGet" -import { CacheState } from "app-builder-lib/src/util/cacheState" +} from "app-builder-lib/internal" import { ELECTRON_VERSION } from "./helpers/testConfig" // ─── getCacheDirectory ──────────────────────────────────────────────────────── diff --git a/test/src/electronVersionTest.ts b/test/src/electronVersionTest.ts index ee301b6d973..a8b51594286 100644 --- a/test/src/electronVersionTest.ts +++ b/test/src/electronVersionTest.ts @@ -6,7 +6,7 @@ import { log } from "builder-util" // getElectronVersion is the public entry point; passing an explicit config with no // electronVersion bypasses getConfig and falls through to computeElectronVersion. -import { getElectronVersion } from "app-builder-lib/src/electron/electronVersion" +import { getElectronVersion } from "app-builder-lib/internal" function rangeLogMessage(version: string): string { return ( diff --git a/test/src/filterTest.ts b/test/src/filterTest.ts index a30bfa24833..7edc442c20a 100644 --- a/test/src/filterTest.ts +++ b/test/src/filterTest.ts @@ -1,5 +1,5 @@ import { FilterStats } from "builder-util" -import { FileMatcher, getFileMatchers, GetFileMatchersOptions } from "app-builder-lib/src/fileMatcher" +import { FileMatcher, getFileMatchers, GetFileMatchersOptions } from "app-builder-lib/internal" import * as path from "path" // --------------------------------------------------------------------------- diff --git a/test/src/helpers/launchAppCrossPlatform.ts b/test/src/helpers/launchAppCrossPlatform.ts index 091d64496a4..7f95be9718a 100644 --- a/test/src/helpers/launchAppCrossPlatform.ts +++ b/test/src/helpers/launchAppCrossPlatform.ts @@ -1,4 +1,4 @@ -import type { VmManager } from "app-builder-lib/src/vm/vm" +import type { VmManager } from "app-builder-lib/internal" import { ChildProcess, execSync, spawn, StdioOptions } from "child_process" import { createHash, randomUUID } from "crypto" import * as fs from "fs" diff --git a/test/src/helpers/packTester.ts b/test/src/helpers/packTester.ts index cf0d6887e0b..4d4300adacf 100644 --- a/test/src/helpers/packTester.ts +++ b/test/src/helpers/packTester.ts @@ -1,9 +1,6 @@ import { PublishManager } from "app-builder-lib" import { verifyAsarFileTree as _verifyAsarFileTree } from "./asarVerifier" -import { computeArchToTargetNamesMap } from "app-builder-lib/src/targets/targetFactory" -import { getLinuxToolsMacToolset } from "app-builder-lib/src/toolsets/linux" -import { parsePlistFile, PlistObject } from "app-builder-lib/src/util/plist" -import { AsarIntegrity } from "app-builder-lib/src/asar/integrity" +import { AsarIntegrity, computeArchToTargetNamesMap, getLinuxToolsMacToolset, parsePlistFile, PlistObject } from "app-builder-lib/internal" import { addValue, copyDir, exec, executeFinally, exists, FileCopier, log, USE_HARD_LINKS, walk } from "builder-util" import { CancellationToken, deepAssign, UpdateFileInfo } from "builder-util-runtime" import { Arch, ArtifactCreated, Configuration, DIR_TARGET, getArchSuffix, MacOsTargetName, Packager, PackagerOptions, Platform, Target } from "electron-builder" @@ -17,7 +14,7 @@ import * as path from "path" import pathSorter from "path-sort" import { NtExecutable, NtExecutableResource } from "resedit" import { TmpDir } from "temp-file" -import { getCollectorByPackageManager, PM } from "app-builder-lib/src/node-module-collector" +import { getCollectorByPackageManager, PM } from "app-builder-lib/internal" import { promisify } from "util" import { MAC_CSC_LINK, WIN_CSC_LINK } from "./codeSignData" import { assertThat } from "./fileAssert" @@ -25,11 +22,10 @@ import AdmZip from "adm-zip" // @ts-ignore import sanitizeFileName from "sanitize-filename" import type { ExpectStatic } from "vitest" -import { computeDefaultAppDirectory } from "app-builder-lib/src/util/config/config" -import { installDependencies } from "app-builder-lib/src/util/yarn" +import { computeDefaultAppDirectory, installDependencies } from "app-builder-lib/internal" import { ELECTRON_VERSION } from "./testConfig" import { execSync } from "child_process" -import { detectPackageManager } from "app-builder-lib/src/node-module-collector/packageManager" +import { detectPackageManager } from "app-builder-lib/internal" const PACKAGE_MANAGER_VERSION_MAP = { [PM.NPM]: { cli: "npm", version: "9.8.1" }, diff --git a/test/src/iconConverterTest.ts b/test/src/iconConverterTest.ts index 3312b6271b0..7e54cfbf8be 100644 --- a/test/src/iconConverterTest.ts +++ b/test/src/iconConverterTest.ts @@ -3,7 +3,7 @@ import { mkdir, mkdtemp, readFile, rm, writeFile } from "fs/promises" import * as os from "os" import * as path from "path" import { afterEach, beforeEach, describe, expect, it } from "vitest" -import { buildSourceCandidates, convertIcon, getPngSize } from "app-builder-lib/src/util/iconConverter" +import { buildSourceCandidates, convertIcon, getPngSize } from "app-builder-lib/internal" const FIXTURES = path.join(__dirname, "../fixtures") const TEST_APP_ICONS = path.join(FIXTURES, "test-app-one/build") diff --git a/test/src/linux/appImageTest.ts b/test/src/linux/appImageTest.ts index 931e674ba06..e4bfcaeb4af 100644 --- a/test/src/linux/appImageTest.ts +++ b/test/src/linux/appImageTest.ts @@ -1,6 +1,5 @@ import { Platform } from "app-builder-lib/src" -import { validateCriticalPathString } from "app-builder-lib/src/targets/appimage/appImageUtil" -import { copyMimeTypes } from "app-builder-lib/src/targets/appimage/appLauncher" +import { copyMimeTypes, validateCriticalPathString } from "app-builder-lib/internal" import { Arch, InvalidConfigurationError, TmpDir } from "builder-util" import { execSync, spawnSync } from "child_process" import * as fs from "fs-extra" diff --git a/test/src/linux/snapcraftParallelsTest.ts b/test/src/linux/snapcraftParallelsTest.ts index 598fbc2a83f..4ef6c4c965c 100644 --- a/test/src/linux/snapcraftParallelsTest.ts +++ b/test/src/linux/snapcraftParallelsTest.ts @@ -1,7 +1,7 @@ import { DebugLogger } from "builder-util" import { log } from "builder-util/src/util" import { Platform } from "electron-builder" -import { getLinuxVm } from "app-builder-lib/src/vm/vm" +import { getLinuxVm } from "app-builder-lib/internal" import { readdir } from "fs/promises" import * as path from "path" import { assertPack, EXTENDED_TIMEOUT } from "../helpers/packTester" diff --git a/test/src/mac/MacTargetHelperTest.ts b/test/src/mac/MacTargetHelperTest.ts index 17a7ecc69a1..796e26f985d 100644 --- a/test/src/mac/MacTargetHelperTest.ts +++ b/test/src/mac/MacTargetHelperTest.ts @@ -1,5 +1,5 @@ import { afterEach, expect } from "vitest" -import { MacTargetHelper } from "app-builder-lib/src/mac/MacTargetHelper" +import { MacTargetHelper } from "app-builder-lib/internal" describe("MacTargetHelper", () => { describe("getCertificateTypes", () => { diff --git a/test/src/node-module-collector/moduleManagerTest.ts b/test/src/node-module-collector/moduleManagerTest.ts index e305ab7e5aa..f4bea8afadd 100644 --- a/test/src/node-module-collector/moduleManagerTest.ts +++ b/test/src/node-module-collector/moduleManagerTest.ts @@ -2,7 +2,7 @@ import { afterEach, describe, test } from "vitest" import * as fse from "fs-extra" import * as os from "os" import * as path from "path" -import { ModuleManager, LogMessageByKey } from "app-builder-lib/src/node-module-collector/moduleManager" +import { ModuleManager, LogMessageByKey } from "app-builder-lib/internal" // --------------------------------------------------------------------------- // Helpers diff --git a/test/src/node-module-collector/pnpmHoistedTest.ts b/test/src/node-module-collector/pnpmHoistedTest.ts index b5725f84c61..139cdd8ba5a 100644 --- a/test/src/node-module-collector/pnpmHoistedTest.ts +++ b/test/src/node-module-collector/pnpmHoistedTest.ts @@ -2,7 +2,7 @@ import { describe, test, vi, afterEach } from "vitest" import * as fse from "fs-extra" import * as os from "os" import * as path from "path" -import { ModuleManager } from "app-builder-lib/src/node-module-collector/moduleManager" +import { ModuleManager } from "app-builder-lib/internal" // --------------------------------------------------------------------------- // Helpers diff --git a/test/src/node-module-collector/streamCollectorTest.ts b/test/src/node-module-collector/streamCollectorTest.ts index b07e80815de..d54cbd672e7 100644 --- a/test/src/node-module-collector/streamCollectorTest.ts +++ b/test/src/node-module-collector/streamCollectorTest.ts @@ -1,7 +1,5 @@ import { afterEach, beforeEach, describe, test, vi } from "vitest" -import { NodeModulesCollector } from "app-builder-lib/src/node-module-collector/nodeModulesCollector" -import { LogMessageByKey } from "app-builder-lib/src/node-module-collector/moduleManager" -import { PM } from "app-builder-lib/src/node-module-collector/packageManager" +import { LogMessageByKey, NodeModulesCollector, PM } from "app-builder-lib/internal" import * as childProcess from "child_process" import * as fsExtra from "fs-extra" import type { TmpDir } from "builder-util" diff --git a/test/src/node-module-collector/traversalCollectorTest.ts b/test/src/node-module-collector/traversalCollectorTest.ts index aae61f33dd5..ba62573a575 100644 --- a/test/src/node-module-collector/traversalCollectorTest.ts +++ b/test/src/node-module-collector/traversalCollectorTest.ts @@ -2,8 +2,7 @@ import { afterEach, describe, test, vi } from "vitest" import * as fse from "fs-extra" import * as os from "os" import * as path from "path" -import { TraversalNodeModulesCollector } from "app-builder-lib/src/node-module-collector/traversalNodeModulesCollector" -import { LogMessageByKey } from "app-builder-lib/src/node-module-collector/moduleManager" +import { LogMessageByKey, TraversalNodeModulesCollector } from "app-builder-lib/internal" import type { TmpDir } from "builder-util" // --------------------------------------------------------------------------- diff --git a/test/src/rebuilderTest.ts b/test/src/rebuilderTest.ts index 095c3c8fa75..4bc3a4edb01 100644 --- a/test/src/rebuilderTest.ts +++ b/test/src/rebuilderTest.ts @@ -1,5 +1,5 @@ import { Configuration, Platform } from "app-builder-lib" -import { PM } from "app-builder-lib/src/node-module-collector" +import { PM } from "app-builder-lib/internal" import { exists } from "builder-util/src/util" import path from "path" import { assertPack, linuxDirTarget, modifyPackageJson } from "./helpers/packTester" diff --git a/test/src/schemaValidatorTest.ts b/test/src/schemaValidatorTest.ts index a3046e4c6b7..f959dd26ea4 100644 --- a/test/src/schemaValidatorTest.ts +++ b/test/src/schemaValidatorTest.ts @@ -1,4 +1,4 @@ -import { validateSchema } from "app-builder-lib/src/util/config/schemaValidator" +import { validateSchema } from "app-builder-lib/internal" import { describe, expect, it } from "vitest" const simpleSchema = { diff --git a/test/src/updateInfoBuilderTest.ts b/test/src/updateInfoBuilderTest.ts index df7118aaf7b..04c3b973714 100644 --- a/test/src/updateInfoBuilderTest.ts +++ b/test/src/updateInfoBuilderTest.ts @@ -1,7 +1,7 @@ import * as fsp from "fs/promises" import * as os from "os" import * as path from "path" -import { createUpdateInfoTasks, writeUpdateInfoFiles, UpdateInfoFileTask } from "app-builder-lib/src/publish/updateInfoBuilder" +import { createUpdateInfoTasks, writeUpdateInfoFiles, UpdateInfoFileTask } from "app-builder-lib/internal" import { Platform } from "app-builder-lib" import { Arch } from "builder-util" import { load as yamlLoad } from "js-yaml" diff --git a/test/src/updater/blackboxInstallTest.ts b/test/src/updater/blackboxInstallTest.ts index eed744f1ca2..2f731117105 100644 --- a/test/src/updater/blackboxInstallTest.ts +++ b/test/src/updater/blackboxInstallTest.ts @@ -1,5 +1,5 @@ import { AppImageOptions, Configuration, DebOptions, PacmanOptions, RpmOptions, Target, ToolsetConfig } from "app-builder-lib" -import { PM } from "app-builder-lib/src/node-module-collector" +import { PM } from "app-builder-lib/internal" import { Arch, Platform } from "electron-builder" import { DebUpdater, PacmanUpdater, RpmUpdater } from "electron-updater" import { archFromString, log, spawn, TmpDir } from "builder-util/src/util" diff --git a/test/src/updater/blackboxInstallWindows.ts b/test/src/updater/blackboxInstallWindows.ts index 1c3b84c18b9..6f713830b72 100644 --- a/test/src/updater/blackboxInstallWindows.ts +++ b/test/src/updater/blackboxInstallWindows.ts @@ -1,4 +1,4 @@ -import { ParallelsVmManager } from "app-builder-lib/src/vm/ParallelsVm" +import { ParallelsVmManager } from "app-builder-lib/internal" import { execFileSync, execSync } from "child_process" import { randomUUID } from "crypto" import { Arch } from "electron-builder" diff --git a/test/src/updater/blackboxUpdateHelpers.ts b/test/src/updater/blackboxUpdateHelpers.ts index 5aaf452675d..7dc4918b221 100644 --- a/test/src/updater/blackboxUpdateHelpers.ts +++ b/test/src/updater/blackboxUpdateHelpers.ts @@ -1,7 +1,5 @@ import { ToolsetConfig } from "app-builder-lib" -import { PM } from "app-builder-lib/src/node-module-collector" -import { ParallelsVmManager } from "app-builder-lib/src/vm/ParallelsVm" -import { getWindowsVm, VmManager } from "app-builder-lib/src/vm/vm" +import { getWindowsVm, ParallelsVmManager, PM, VmManager } from "app-builder-lib/internal" import { GenericServerOptions, Nullish } from "builder-util-runtime" import { archFromString, deepAssign, DebugLogger, log, serializeToYaml, spawn, TmpDir } from "builder-util/src/util" import { Arch, Configuration, Platform } from "electron-builder" diff --git a/test/src/updater/blackboxUpdateWinSuite.ts b/test/src/updater/blackboxUpdateWinSuite.ts index 5f2c5e792ef..c8a6de9b24a 100644 --- a/test/src/updater/blackboxUpdateWinSuite.ts +++ b/test/src/updater/blackboxUpdateWinSuite.ts @@ -1,5 +1,5 @@ import { ToolsetConfig } from "app-builder-lib" -import { ParallelsVmManager } from "app-builder-lib/src/vm/ParallelsVm" +import { ParallelsVmManager } from "app-builder-lib/internal" import { copyFileSync, unlinkSync } from "fs" import { tmpdir } from "os" import { Arch, Configuration } from "electron-builder" diff --git a/test/src/updater/blackboxWebInstallerTest.ts b/test/src/updater/blackboxWebInstallerTest.ts index 46d4151f2f7..10aac12f223 100644 --- a/test/src/updater/blackboxWebInstallerTest.ts +++ b/test/src/updater/blackboxWebInstallerTest.ts @@ -11,7 +11,7 @@ import { createLocalServer, getParallelsHostIP, sha256File, toVmHomePath } from import { assertPack, modifyPackageJson, PackedContext } from "../helpers/packTester" import { ELECTRON_VERSION } from "../helpers/testConfig" import { optionsForFlakyE2E, windowsVmPromise } from "./blackboxUpdateHelpers" -import { PM } from "app-builder-lib/src/node-module-collector" +import { PM } from "app-builder-lib/internal" import { spawn } from "builder-util" // --------------------------------------------------------------------------- diff --git a/test/src/updater/differentialUpdateHelpers.ts b/test/src/updater/differentialUpdateHelpers.ts index 3dcc17a5678..939a52855bc 100644 --- a/test/src/updater/differentialUpdateHelpers.ts +++ b/test/src/updater/differentialUpdateHelpers.ts @@ -12,7 +12,7 @@ import { NEW_VERSION_NUMBER, OLD_VERSION_NUMBER, tuneTestUpdater, writeUpdateCon import { mockForNodeRequire } from "vitest-mock-commonjs" import { ExpectStatic } from "vitest" import { createLocalServer } from "../helpers/launchAppCrossPlatform" -import { ToolsetConfig } from "app-builder-lib/src/configuration" +import { ToolsetConfig } from "app-builder-lib/internal" export async function doBuild( expect: ExpectStatic, diff --git a/test/src/updater/differentialUpdateLinuxSuite.ts b/test/src/updater/differentialUpdateLinuxSuite.ts index 24afb0f411f..3157d3d1ef8 100644 --- a/test/src/updater/differentialUpdateLinuxSuite.ts +++ b/test/src/updater/differentialUpdateLinuxSuite.ts @@ -1,5 +1,5 @@ import { Arch } from "app-builder-lib" -import { ToolsetConfig } from "app-builder-lib/src/configuration" +import { ToolsetConfig } from "app-builder-lib/internal" import { testLinux } from "./differentialUpdateHelpers" const supportedArchs = [ diff --git a/test/src/updater/differentialUpdateWinSuite.ts b/test/src/updater/differentialUpdateWinSuite.ts index f2ecb3eab65..f9250f69b53 100644 --- a/test/src/updater/differentialUpdateWinSuite.ts +++ b/test/src/updater/differentialUpdateWinSuite.ts @@ -5,7 +5,7 @@ import { move } from "fs-extra" import { TmpDir } from "temp-file" import { OLD_VERSION_NUMBER, testAppCacheDirName } from "../helpers/updaterTestUtil" import { NsisUpdater } from "electron-updater" -import { ToolsetConfig } from "app-builder-lib/src/configuration" +import { ToolsetConfig } from "app-builder-lib/internal" import { doBuild, getTestUpdaterCacheDir, testBlockMap } from "./differentialUpdateHelpers" export function registerDifferentialWinTests(toolsets: ToolsetConfig): void { diff --git a/test/src/windows/assistedInstallerTestSuite.ts b/test/src/windows/assistedInstallerTestSuite.ts index b6b71e83ec6..7a3b51633d5 100644 --- a/test/src/windows/assistedInstallerTestSuite.ts +++ b/test/src/windows/assistedInstallerTestSuite.ts @@ -3,7 +3,7 @@ import * as fs from "fs/promises" import * as path from "path" import { app, assertPack, copyTestAsset } from "../helpers/packTester" import { checkHelpers, doTest, expectUpdateMetadata } from "../helpers/winHelper" -import { ToolsetConfig } from "app-builder-lib/src/configuration" +import { ToolsetConfig } from "app-builder-lib/internal" const nsisTarget = Platform.WINDOWS.createTarget("nsis", Arch.x64) diff --git a/test/src/windows/msiWrappedTestSuite.ts b/test/src/windows/msiWrappedTestSuite.ts index f7e2d99c2bd..7cad7c5c326 100644 --- a/test/src/windows/msiWrappedTestSuite.ts +++ b/test/src/windows/msiWrappedTestSuite.ts @@ -2,7 +2,7 @@ import { Arch, Platform } from "electron-builder" import { XMLParser } from "fast-xml-parser" import * as fs from "fs" import { app, appThrows } from "../helpers/packTester" -import { ToolsetConfig } from "app-builder-lib/src/configuration" +import { ToolsetConfig } from "app-builder-lib/internal" const parser = new XMLParser({ ignoreAttributes: false, diff --git a/test/src/windows/nsisOutputValidationTest.ts b/test/src/windows/nsisOutputValidationTest.ts index 82f25bc29a4..c596a12de95 100644 --- a/test/src/windows/nsisOutputValidationTest.ts +++ b/test/src/windows/nsisOutputValidationTest.ts @@ -2,8 +2,8 @@ import { promises as fsp } from "fs" import * as os from "os" import * as path from "path" import { afterEach, beforeEach } from "vitest" -import { checkMakensisOutput, verifyInstallerSize } from "app-builder-lib/src/targets/nsis/nsisValidation" -import type { Defines } from "app-builder-lib/src/targets/nsis/Defines" +import { checkMakensisOutput, verifyInstallerSize } from "app-builder-lib/internal" +import type { Defines } from "app-builder-lib/internal" // ─── checkMakensisOutput ──────────────────────────────────────────────────── diff --git a/test/src/windows/nsisScriptGeneratorTest.ts b/test/src/windows/nsisScriptGeneratorTest.ts index e3d584eec07..0a681cfb7e5 100644 --- a/test/src/windows/nsisScriptGeneratorTest.ts +++ b/test/src/windows/nsisScriptGeneratorTest.ts @@ -1,4 +1,4 @@ -import { NsisScriptGenerator, nsisEscapeString } from "app-builder-lib/src/targets/nsis/nsisScriptGenerator" +import { NsisScriptGenerator, nsisEscapeString } from "app-builder-lib/internal" describe("NsisScriptGenerator.file", () => { test("preserves $INSTDIR variable in output name without escaping", ({ expect }) => { diff --git a/test/src/windows/winCodeSignTest.ts b/test/src/windows/winCodeSignTest.ts index cac9ee37f41..8336b871b45 100644 --- a/test/src/windows/winCodeSignTest.ts +++ b/test/src/windows/winCodeSignTest.ts @@ -1,7 +1,6 @@ import { parseDn } from "builder-util-runtime" import { ToolInfo, WinPackager, WindowsSignToolManager } from "app-builder-lib" -import { CustomWindowsSign } from "app-builder-lib/src/codeSign/windowsSignToolManager" -import { Configuration, ToolsetConfig } from "app-builder-lib/src/configuration" +import { Configuration, CustomWindowsSign, ToolsetConfig } from "app-builder-lib/internal" import { AsyncTaskManager } from "builder-util" import { Arch, DIR_TARGET, Platform, Target } from "electron-builder" import { Packager } from "electron-builder" diff --git a/test/src/windows/winPackagerTestSuite.ts b/test/src/windows/winPackagerTestSuite.ts index 77f59fb4020..62b5b95fdaf 100644 --- a/test/src/windows/winPackagerTestSuite.ts +++ b/test/src/windows/winPackagerTestSuite.ts @@ -1,4 +1,4 @@ -import { ToolsetConfig } from "app-builder-lib/src/configuration" +import { ToolsetConfig } from "app-builder-lib/internal" import { Arch, DIR_TARGET, Platform } from "electron-builder" import * as fs from "fs/promises" import * as path from "path" diff --git a/test/src/windows/winReseditTest.ts b/test/src/windows/winReseditTest.ts index 106e1b984db..02eee2d6e5f 100644 --- a/test/src/windows/winReseditTest.ts +++ b/test/src/windows/winReseditTest.ts @@ -1,4 +1,4 @@ -import { ResourceEditOptions, editWindowsResources } from "app-builder-lib/src/util/resEdit" +import { ResourceEditOptions, editWindowsResources } from "app-builder-lib/internal" import * as fs from "fs/promises" import * as os from "os" import path from "path" diff --git a/test/src/windows/winSignToolManagerTest.ts b/test/src/windows/winSignToolManagerTest.ts index 2c5818f02f2..ca5f022c54f 100644 --- a/test/src/windows/winSignToolManagerTest.ts +++ b/test/src/windows/winSignToolManagerTest.ts @@ -1,5 +1,5 @@ import { WindowsSignToolManager } from "app-builder-lib" -import { WindowsSignTaskConfiguration } from "app-builder-lib/src/codeSign/windowsSignToolManager" +import { WindowsSignTaskConfiguration } from "app-builder-lib/internal" import { mkdtemp, rm, writeFile } from "fs/promises" import { tmpdir } from "os" import * as path from "path" diff --git a/test/vitest-scripts/_vitest-smart-cache.json b/test/vitest-scripts/_vitest-smart-cache.json index 95177e2bd03..0fda2553815 100644 --- a/test/vitest-scripts/_vitest-smart-cache.json +++ b/test/vitest-scripts/_vitest-smart-cache.json @@ -1 +1,2491 @@ -{"tests":{},"files":{}} +{ + "tests": { + "schemaValidatorTest.ts::validateSchema - valid inputs > accepts a fully valid object": { + "platformRuns": { + "win32": { + "runs": 0, + "fails": 0, + "avgMs": 0 + }, + "darwin": { + "runs": 3, + "fails": 0, + "avgMs": 16.973083333333324 + }, + "linux": { + "runs": 0, + "fails": 0, + "avgMs": 0 + } + }, + "heavy": false + }, + "schemaValidatorTest.ts::validateSchema - valid inputs > accepts minimal object with only required fields": { + "platformRuns": { + "win32": { + "runs": 0, + "fails": 0, + "avgMs": 0 + }, + "darwin": { + "runs": 3, + "fails": 0, + "avgMs": 0.2518193333332685 + }, + "linux": { + "runs": 0, + "fails": 0, + "avgMs": 0 + } + }, + "heavy": false + }, + "schemaValidatorTest.ts::validateSchema - valid inputs > accepts null for nullable field": { + "platformRuns": { + "win32": { + "runs": 0, + "fails": 0, + "avgMs": 0 + }, + "darwin": { + "runs": 3, + "fails": 0, + "avgMs": 0.11327799999997978 + }, + "linux": { + "runs": 0, + "fails": 0, + "avgMs": 0 + } + }, + "heavy": false + }, + "schemaValidatorTest.ts::validateSchema - valid inputs > accepts string for nullable field": { + "platformRuns": { + "win32": { + "runs": 0, + "fails": 0, + "avgMs": 0 + }, + "darwin": { + "runs": 3, + "fails": 0, + "avgMs": 0.09030566666664679 + }, + "linux": { + "runs": 0, + "fails": 0, + "avgMs": 0 + } + }, + "heavy": false + }, + "schemaValidatorTest.ts::validateSchema - valid inputs > accepts function for callback field (typeof is unregistered, so any value is allowed)": { + "platformRuns": { + "win32": { + "runs": 0, + "fails": 0, + "avgMs": 0 + }, + "darwin": { + "runs": 3, + "fails": 0, + "avgMs": 0.19726399999992358 + }, + "linux": { + "runs": 0, + "fails": 0, + "avgMs": 0 + } + }, + "heavy": false + }, + "schemaValidatorTest.ts::validateSchema - valid inputs > accepts null for callback field": { + "platformRuns": { + "win32": { + "runs": 0, + "fails": 0, + "avgMs": 0 + }, + "darwin": { + "runs": 3, + "fails": 0, + "avgMs": 0.09379166666665621 + }, + "linux": { + "runs": 0, + "fails": 0, + "avgMs": 0 + } + }, + "heavy": false + }, + "schemaValidatorTest.ts::validateSchema - valid inputs > accepts string for callback field": { + "platformRuns": { + "win32": { + "runs": 0, + "fails": 0, + "avgMs": 0 + }, + "darwin": { + "runs": 3, + "fails": 0, + "avgMs": 0.07681900000001936 + }, + "linux": { + "runs": 0, + "fails": 0, + "avgMs": 0 + } + }, + "heavy": false + }, + "schemaValidatorTest.ts::validateSchema - additionalProperties errors > reports unknown root property": { + "platformRuns": { + "win32": { + "runs": 0, + "fails": 0, + "avgMs": 0 + }, + "darwin": { + "runs": 3, + "fails": 0, + "avgMs": 0.4073333333333646 + }, + "linux": { + "runs": 0, + "fails": 0, + "avgMs": 0 + } + }, + "heavy": false + }, + "schemaValidatorTest.ts::validateSchema - additionalProperties errors > reports unknown nested property": { + "platformRuns": { + "win32": { + "runs": 0, + "fails": 0, + "avgMs": 0 + }, + "darwin": { + "runs": 3, + "fails": 0, + "avgMs": 0.4279446666667089 + }, + "linux": { + "runs": 0, + "fails": 0, + "avgMs": 0 + } + }, + "heavy": false + }, + "schemaValidatorTest.ts::validateSchema - required errors > reports missing required property": { + "platformRuns": { + "win32": { + "runs": 0, + "fails": 0, + "avgMs": 0 + }, + "darwin": { + "runs": 3, + "fails": 0, + "avgMs": 0.13018066666671757 + }, + "linux": { + "runs": 0, + "fails": 0, + "avgMs": 0 + } + }, + "heavy": false + }, + "schemaValidatorTest.ts::validateSchema - type errors > reports wrong single type (array cannot coerce to string)": { + "platformRuns": { + "win32": { + "runs": 0, + "fails": 0, + "avgMs": 0 + }, + "darwin": { + "runs": 3, + "fails": 0, + "avgMs": 0.16862466666668752 + }, + "linux": { + "runs": 0, + "fails": 0, + "avgMs": 0 + } + }, + "heavy": false + }, + "schemaValidatorTest.ts::validateSchema - type errors > does not throw when coerceTypes converts a value (string to number)": { + "platformRuns": { + "win32": { + "runs": 0, + "fails": 0, + "avgMs": 0 + }, + "darwin": { + "runs": 3, + "fails": 0, + "avgMs": 0.07281933333333275 + }, + "linux": { + "runs": 0, + "fails": 0, + "avgMs": 0 + } + }, + "heavy": false + }, + "schemaValidatorTest.ts::validateSchema - type errors > includes description for multi-type fields (object is not coercible)": { + "platformRuns": { + "win32": { + "runs": 0, + "fails": 0, + "avgMs": 0 + }, + "darwin": { + "runs": 3, + "fails": 0, + "avgMs": 0.13866666666664665 + }, + "linux": { + "runs": 0, + "fails": 0, + "avgMs": 0 + } + }, + "heavy": false + }, + "schemaValidatorTest.ts::validateSchema - type errors > formats multi-type as pipe-separated list": { + "platformRuns": { + "win32": { + "runs": 0, + "fails": 0, + "avgMs": 0 + }, + "darwin": { + "runs": 3, + "fails": 0, + "avgMs": 0.11379199999995156 + }, + "linux": { + "runs": 0, + "fails": 0, + "avgMs": 0 + } + }, + "heavy": false + }, + "schemaValidatorTest.ts::validateSchema - enum errors > reports invalid enum value": { + "platformRuns": { + "win32": { + "runs": 0, + "fails": 0, + "avgMs": 0 + }, + "darwin": { + "runs": 3, + "fails": 0, + "avgMs": 0.5285143333333622 + }, + "linux": { + "runs": 0, + "fails": 0, + "avgMs": 0 + } + }, + "heavy": false + }, + "schemaValidatorTest.ts::validateSchema - enum errors > includes valid values in error": { + "platformRuns": { + "win32": { + "runs": 0, + "fails": 0, + "avgMs": 0 + }, + "darwin": { + "runs": 3, + "fails": 0, + "avgMs": 0.09105533333337235 + }, + "linux": { + "runs": 0, + "fails": 0, + "avgMs": 0 + } + }, + "heavy": false + }, + "schemaValidatorTest.ts::validateSchema - enum errors > reports single enum value correctly": { + "platformRuns": { + "win32": { + "runs": 0, + "fails": 0, + "avgMs": 0 + }, + "darwin": { + "runs": 3, + "fails": 0, + "avgMs": 0.46365299999998416 + }, + "linux": { + "runs": 0, + "fails": 0, + "avgMs": 0 + } + }, + "heavy": false + }, + "schemaValidatorTest.ts::validateSchema - typeof keyword (treated as unknown/no-op) > accepts any value when only constraint is typeof:function (unregistered keyword)": { + "platformRuns": { + "win32": { + "runs": 0, + "fails": 0, + "avgMs": 0 + }, + "darwin": { + "runs": 3, + "fails": 0, + "avgMs": 0.42584733333338437 + }, + "linux": { + "runs": 0, + "fails": 0, + "avgMs": 0 + } + }, + "heavy": false + }, + "schemaValidatorTest.ts::validateSchema - postFormatter > calls postFormatter with formatted error and raw error object": { + "platformRuns": { + "win32": { + "runs": 0, + "fails": 0, + "avgMs": 0 + }, + "darwin": { + "runs": 3, + "fails": 0, + "avgMs": 0.541360999999957 + }, + "linux": { + "runs": 0, + "fails": 0, + "avgMs": 0 + } + }, + "heavy": false + }, + "schemaValidatorTest.ts::validateSchema - postFormatter > uses instancePath on error object passed to postFormatter": { + "platformRuns": { + "win32": { + "runs": 0, + "fails": 0, + "avgMs": 0 + }, + "darwin": { + "runs": 3, + "fails": 0, + "avgMs": 0.07040266666660955 + }, + "linux": { + "runs": 0, + "fails": 0, + "avgMs": 0 + } + }, + "heavy": false + }, + "schemaValidatorTest.ts::validateSchema - postFormatter > uses custom name in header": { + "platformRuns": { + "win32": { + "runs": 0, + "fails": 0, + "avgMs": 0 + }, + "darwin": { + "runs": 3, + "fails": 0, + "avgMs": 0.15300000000002 + }, + "linux": { + "runs": 0, + "fails": 0, + "avgMs": 0 + } + }, + "heavy": false + }, + "schemaValidatorTest.ts::validateSchema - coercion > coerces string 'false' to boolean false": { + "platformRuns": { + "win32": { + "runs": 0, + "fails": 0, + "avgMs": 0 + }, + "darwin": { + "runs": 3, + "fails": 0, + "avgMs": 0.5910553333333345 + }, + "linux": { + "runs": 0, + "fails": 0, + "avgMs": 0 + } + }, + "heavy": false + }, + "schemaValidatorTest.ts::validateSchema - error header > throws Error with correct header": { + "platformRuns": { + "win32": { + "runs": 0, + "fails": 0, + "avgMs": 0 + }, + "darwin": { + "runs": 3, + "fails": 0, + "avgMs": 0.16111099999998638 + }, + "linux": { + "runs": 0, + "fails": 0, + "avgMs": 0 + } + }, + "heavy": false + }, + "schemaValidatorTest.ts::validateSchema - error header > uses default name when not provided": { + "platformRuns": { + "win32": { + "runs": 0, + "fails": 0, + "avgMs": 0 + }, + "darwin": { + "runs": 3, + "fails": 0, + "avgMs": 0.07359699999996867 + }, + "linux": { + "runs": 0, + "fails": 0, + "avgMs": 0 + } + }, + "heavy": false + }, + "schemaValidatorTest.ts::validateSchema - nested instancePath formatting > converts deep nested path to dot-notation label": { + "platformRuns": { + "win32": { + "runs": 0, + "fails": 0, + "avgMs": 0 + }, + "darwin": { + "runs": 3, + "fails": 0, + "avgMs": 1.0944166666666888 + }, + "linux": { + "runs": 0, + "fails": 0, + "avgMs": 0 + } + }, + "heavy": false + }, + "schemaValidatorTest.ts::validateSchema - anyOf grouping > surfaces single combined message when multiple type branches fail for the same field": { + "platformRuns": { + "win32": { + "runs": 0, + "fails": 0, + "avgMs": 0 + }, + "darwin": { + "runs": 3, + "fails": 0, + "avgMs": 0.9262079999999931 + }, + "linux": { + "runs": 0, + "fails": 0, + "avgMs": 0 + } + }, + "heavy": false + }, + "schemaValidatorTest.ts::validateSchema - JSON Pointer decoding > decodes ~1 to / in property names": { + "platformRuns": { + "win32": { + "runs": 0, + "fails": 0, + "avgMs": 0 + }, + "darwin": { + "runs": 3, + "fails": 0, + "avgMs": 0.62641666666669 + }, + "linux": { + "runs": 0, + "fails": 0, + "avgMs": 0 + } + }, + "heavy": false + }, + "schemaValidatorTest.ts::validateSchema - JSON Pointer decoding > decodes ~0 to ~ in property names": { + "platformRuns": { + "win32": { + "runs": 0, + "fails": 0, + "avgMs": 0 + }, + "darwin": { + "runs": 3, + "fails": 0, + "avgMs": 0.5529583333333221 + }, + "linux": { + "runs": 0, + "fails": 0, + "avgMs": 0 + } + }, + "heavy": false + }, + "node-module-collector/moduleManagerTest.ts::ModuleManager.locatePackageVersion > basic resolution > returns null when parentDir is undefined": { + "platformRuns": { + "win32": { + "runs": 0, + "fails": 0, + "avgMs": 0 + }, + "darwin": { + "runs": 3, + "fails": 0, + "avgMs": 0.8817776666666456 + }, + "linux": { + "runs": 0, + "fails": 0, + "avgMs": 0 + } + }, + "heavy": false + }, + "node-module-collector/moduleManagerTest.ts::ModuleManager.locatePackageVersion > basic resolution > returns null when pkgName is undefined": { + "platformRuns": { + "win32": { + "runs": 0, + "fails": 0, + "avgMs": 0 + }, + "darwin": { + "runs": 3, + "fails": 0, + "avgMs": 0.15084733333325553 + }, + "linux": { + "runs": 0, + "fails": 0, + "avgMs": 0 + } + }, + "heavy": false + }, + "node-module-collector/moduleManagerTest.ts::ModuleManager.locatePackageVersion > basic resolution > finds package in direct parent node_modules when version satisfies range": { + "platformRuns": { + "win32": { + "runs": 0, + "fails": 0, + "avgMs": 0 + }, + "darwin": { + "runs": 3, + "fails": 0, + "avgMs": 3.7751246666666702 + }, + "linux": { + "runs": 0, + "fails": 0, + "avgMs": 0 + } + }, + "heavy": false + }, + "node-module-collector/moduleManagerTest.ts::ModuleManager.locatePackageVersion > basic resolution > returns null when package is absent from the tree": { + "platformRuns": { + "win32": { + "runs": 0, + "fails": 0, + "avgMs": 0 + }, + "darwin": { + "runs": 3, + "fails": 0, + "avgMs": 1.1264026666667633 + }, + "linux": { + "runs": 0, + "fails": 0, + "avgMs": 0 + } + }, + "heavy": false + }, + "node-module-collector/moduleManagerTest.ts::ModuleManager.locatePackageVersion > basic resolution > accepts any installed version when no range is given": { + "platformRuns": { + "win32": { + "runs": 0, + "fails": 0, + "avgMs": 0 + }, + "darwin": { + "runs": 3, + "fails": 0, + "avgMs": 1.2472223333333357 + }, + "linux": { + "runs": 0, + "fails": 0, + "avgMs": 0 + } + }, + "heavy": false + }, + "node-module-collector/moduleManagerTest.ts::ModuleManager.locatePackageVersion > upward (hoisted) resolution > finds hoisted package that satisfies range": { + "platformRuns": { + "win32": { + "runs": 0, + "fails": 0, + "avgMs": 0 + }, + "darwin": { + "runs": 3, + "fails": 0, + "avgMs": 2.1219166666666447 + }, + "linux": { + "runs": 0, + "fails": 0, + "avgMs": 0 + } + }, + "heavy": false + }, + "node-module-collector/moduleManagerTest.ts::ModuleManager.locatePackageVersion > override fallback (two-pass search) > accepts package whose installed version is outside the declared range": { + "platformRuns": { + "win32": { + "runs": 0, + "fails": 0, + "avgMs": 0 + }, + "darwin": { + "runs": 3, + "fails": 0, + "avgMs": 1.72808333333334 + }, + "linux": { + "runs": 0, + "fails": 0, + "avgMs": 0 + } + }, + "heavy": false + }, + "node-module-collector/moduleManagerTest.ts::ModuleManager.locatePackageVersion > override fallback (two-pass search) > records overridden dependency in logSummary": { + "platformRuns": { + "win32": { + "runs": 0, + "fails": 0, + "avgMs": 0 + }, + "darwin": { + "runs": 3, + "fails": 0, + "avgMs": 1.9383753333332454 + }, + "linux": { + "runs": 0, + "fails": 0, + "avgMs": 0 + } + }, + "heavy": false + }, + "node-module-collector/moduleManagerTest.ts::ModuleManager.locatePackageVersion > override fallback (two-pass search) > does NOT add to override log when version satisfies range normally": { + "platformRuns": { + "win32": { + "runs": 0, + "fails": 0, + "avgMs": 0 + }, + "darwin": { + "runs": 3, + "fails": 0, + "avgMs": 1.929666333333368 + }, + "linux": { + "runs": 0, + "fails": 0, + "avgMs": 0 + } + }, + "heavy": false + }, + "node-module-collector/moduleManagerTest.ts::ModuleManager.locatePackageVersion > override fallback (two-pass search) > returns null when package is genuinely absent (not just mismatched version)": { + "platformRuns": { + "win32": { + "runs": 0, + "fails": 0, + "avgMs": 0 + }, + "darwin": { + "runs": 3, + "fails": 0, + "avgMs": 1.1469306666667005 + }, + "linux": { + "runs": 0, + "fails": 0, + "avgMs": 0 + } + }, + "heavy": false + }, + "node-module-collector/moduleManagerTest.ts::ModuleManager.locatePackageVersion > override fallback (two-pass search) > does not trigger fallback when requiredRange is undefined": { + "platformRuns": { + "win32": { + "runs": 0, + "fails": 0, + "avgMs": 0 + }, + "darwin": { + "runs": 3, + "fails": 0, + "avgMs": 1.1801943333333231 + }, + "linux": { + "runs": 0, + "fails": 0, + "avgMs": 0 + } + }, + "heavy": false + }, + "node-module-collector/moduleManagerTest.ts::ModuleManager downward search > finds package nested under another package's node_modules": { + "platformRuns": { + "win32": { + "runs": 0, + "fails": 0, + "avgMs": 0 + }, + "darwin": { + "runs": 3, + "fails": 0, + "avgMs": 2.382527666666647 + }, + "linux": { + "runs": 0, + "fails": 0, + "avgMs": 0 + } + }, + "heavy": false + }, + "node-module-collector/moduleManagerTest.ts::ModuleManager downward search > skipDownwardSearch: true does NOT find a package nested under another package's node_modules": { + "platformRuns": { + "win32": { + "runs": 0, + "fails": 0, + "avgMs": 0 + }, + "darwin": { + "runs": 3, + "fails": 0, + "avgMs": 1.4600973333333513 + }, + "linux": { + "runs": 0, + "fails": 0, + "avgMs": 0 + } + }, + "heavy": false + }, + "node-module-collector/moduleManagerTest.ts::ModuleManager downward search > finds scoped package (@scope/name) nested under another package's node_modules": { + "platformRuns": { + "win32": { + "runs": 0, + "fails": 0, + "avgMs": 0 + }, + "darwin": { + "runs": 3, + "fails": 0, + "avgMs": 1.977499999999888 + }, + "linux": { + "runs": 0, + "fails": 0, + "avgMs": 0 + } + }, + "heavy": false + }, + "node-module-collector/moduleManagerTest.ts::ModuleManager downward search > upward search finds the hoisted version when the nested version does not satisfy the range": { + "platformRuns": { + "win32": { + "runs": 0, + "fails": 0, + "avgMs": 0 + }, + "darwin": { + "runs": 3, + "fails": 0, + "avgMs": 2.3834726666667243 + }, + "linux": { + "runs": 0, + "fails": 0, + "avgMs": 0 + } + }, + "heavy": false + }, + "node-module-collector/moduleManagerTest.ts::ModuleManager downward search > dot-prefixed directories inside node_modules are skipped": { + "platformRuns": { + "win32": { + "runs": 0, + "fails": 0, + "avgMs": 0 + }, + "darwin": { + "runs": 3, + "fails": 0, + "avgMs": 1.5622916666667 + }, + "linux": { + "runs": 0, + "fails": 0, + "avgMs": 0 + } + }, + "heavy": false + }, + "node-module-collector/moduleManagerTest.ts::ModuleManager.semverSatisfies (via locatePackageVersion) > caret range: matching major": { + "platformRuns": { + "win32": { + "runs": 0, + "fails": 0, + "avgMs": 0 + }, + "darwin": { + "runs": 3, + "fails": 0, + "avgMs": 1.1132219999999506 + }, + "linux": { + "runs": 0, + "fails": 0, + "avgMs": 0 + } + }, + "heavy": false + }, + "node-module-collector/moduleManagerTest.ts::ModuleManager.semverSatisfies (via locatePackageVersion) > tilde range: matching minor": { + "platformRuns": { + "win32": { + "runs": 0, + "fails": 0, + "avgMs": 0 + }, + "darwin": { + "runs": 3, + "fails": 0, + "avgMs": 1.07245833333324 + }, + "linux": { + "runs": 0, + "fails": 0, + "avgMs": 0 + } + }, + "heavy": false + }, + "node-module-collector/moduleManagerTest.ts::ModuleManager.semverSatisfies (via locatePackageVersion) > exact match": { + "platformRuns": { + "win32": { + "runs": 0, + "fails": 0, + "avgMs": 0 + }, + "darwin": { + "runs": 3, + "fails": 0, + "avgMs": 1.0748609999999796 + }, + "linux": { + "runs": 0, + "fails": 0, + "avgMs": 0 + } + }, + "heavy": false + }, + "node-module-collector/moduleManagerTest.ts::ModuleManager.semverSatisfies (via locatePackageVersion) > non-semver range (git URL) is treated as match": { + "platformRuns": { + "win32": { + "runs": 0, + "fails": 0, + "avgMs": 0 + }, + "darwin": { + "runs": 3, + "fails": 0, + "avgMs": 1.2657500000001012 + }, + "linux": { + "runs": 0, + "fails": 0, + "avgMs": 0 + } + }, + "heavy": false + }, + "node-module-collector/moduleManagerTest.ts::ModuleManager.semverSatisfies (via locatePackageVersion) > wildcard range (*) matches any version": { + "platformRuns": { + "win32": { + "runs": 0, + "fails": 0, + "avgMs": 0 + }, + "darwin": { + "runs": 3, + "fails": 0, + "avgMs": 1.0743333333333187 + }, + "linux": { + "runs": 0, + "fails": 0, + "avgMs": 0 + } + }, + "heavy": false + }, + "node-module-collector/moduleManagerTest.ts::ModuleManager.semverSatisfies (via locatePackageVersion) > major mismatch triggers override fallback and still resolves": { + "platformRuns": { + "win32": { + "runs": 0, + "fails": 0, + "avgMs": 0 + }, + "darwin": { + "runs": 3, + "fails": 0, + "avgMs": 1.4752223333333252 + }, + "linux": { + "runs": 0, + "fails": 0, + "avgMs": 0 + } + }, + "heavy": false + }, + "node-module-collector/streamCollectorTest.ts::streamCollectorCommandToFile > Windows PowerShell -EncodedCommand wrapping > .cmd file: spawn receives powershell.exe with -EncodedCommand": { + "platformRuns": { + "win32": { + "runs": 0, + "fails": 0, + "avgMs": 0 + }, + "darwin": { + "runs": 3, + "fails": 0, + "avgMs": 2.635388333333348 + }, + "linux": { + "runs": 0, + "fails": 0, + "avgMs": 0 + } + }, + "heavy": false + }, + "node-module-collector/streamCollectorTest.ts::streamCollectorCommandToFile > Windows PowerShell -EncodedCommand wrapping > path with spaces: single-quoted, no shell escaping required": { + "platformRuns": { + "win32": { + "runs": 0, + "fails": 0, + "avgMs": 0 + }, + "darwin": { + "runs": 3, + "fails": 0, + "avgMs": 0.7674166666666906 + }, + "linux": { + "runs": 0, + "fails": 0, + "avgMs": 0 + } + }, + "heavy": false + }, + "node-module-collector/streamCollectorTest.ts::streamCollectorCommandToFile > Windows PowerShell -EncodedCommand wrapping > extensionless command (e.g. Volta shim): wrapped via PowerShell call operator": { + "platformRuns": { + "win32": { + "runs": 0, + "fails": 0, + "avgMs": 0 + }, + "darwin": { + "runs": 3, + "fails": 0, + "avgMs": 0.4352500000000153 + }, + "linux": { + "runs": 0, + "fails": 0, + "avgMs": 0 + } + }, + "heavy": false + }, + "node-module-collector/streamCollectorTest.ts::streamCollectorCommandToFile > Windows PowerShell -EncodedCommand wrapping > original args are forwarded and individually single-quoted": { + "platformRuns": { + "win32": { + "runs": 0, + "fails": 0, + "avgMs": 0 + }, + "darwin": { + "runs": 3, + "fails": 0, + "avgMs": 0.4091666666666545 + }, + "linux": { + "runs": 0, + "fails": 0, + "avgMs": 0 + } + }, + "heavy": false + }, + "node-module-collector/streamCollectorTest.ts::streamCollectorCommandToFile > Windows PowerShell -EncodedCommand wrapping > embedded single quote in an argument is doubled (no injection)": { + "platformRuns": { + "win32": { + "runs": 0, + "fails": 0, + "avgMs": 0 + }, + "darwin": { + "runs": 3, + "fails": 0, + "avgMs": 0.3421946666666524 + }, + "linux": { + "runs": 0, + "fails": 0, + "avgMs": 0 + } + }, + "heavy": false + }, + "node-module-collector/streamCollectorTest.ts::streamCollectorCommandToFile > Windows PowerShell -EncodedCommand wrapping > pins UTF-8 output encoding without a BOM": { + "platformRuns": { + "win32": { + "runs": 0, + "fails": 0, + "avgMs": 0 + }, + "darwin": { + "runs": 3, + "fails": 0, + "avgMs": 0.3966946666667089 + }, + "linux": { + "runs": 0, + "fails": 0, + "avgMs": 0 + } + }, + "heavy": false + }, + "node-module-collector/streamCollectorTest.ts::streamCollectorCommandToFile > Windows PowerShell -EncodedCommand wrapping > -EncodedCommand payload is valid base64 of UTF-16LE": { + "platformRuns": { + "win32": { + "runs": 0, + "fails": 0, + "avgMs": 0 + }, + "darwin": { + "runs": 3, + "fails": 0, + "avgMs": 0.3682223333333354 + }, + "linux": { + "runs": 0, + "fails": 0, + "avgMs": 0 + } + }, + "heavy": false + }, + "node-module-collector/streamCollectorTest.ts::streamCollectorCommandToFile > non-Windows: no PowerShell wrapping > darwin: spawn receives the original command and args": { + "platformRuns": { + "win32": { + "runs": 0, + "fails": 0, + "avgMs": 0 + }, + "darwin": { + "runs": 3, + "fails": 0, + "avgMs": 0.43406966666670616 + }, + "linux": { + "runs": 0, + "fails": 0, + "avgMs": 0 + } + }, + "heavy": false + }, + "node-module-collector/streamCollectorTest.ts::streamCollectorCommandToFile > stderr and exit code behavior > npm list exit code 1: stderr is NOT surfaced as a collector warning": { + "platformRuns": { + "win32": { + "runs": 0, + "fails": 0, + "avgMs": 0 + }, + "darwin": { + "runs": 3, + "fails": 0, + "avgMs": 1.0552083333333258 + }, + "linux": { + "runs": 0, + "fails": 0, + "avgMs": 0 + } + }, + "heavy": false + }, + "node-module-collector/streamCollectorTest.ts::streamCollectorCommandToFile > stderr and exit code behavior > npm list exit code 0 with stderr: stderr IS surfaced as a collector warning": { + "platformRuns": { + "win32": { + "runs": 0, + "fails": 0, + "avgMs": 0 + }, + "darwin": { + "runs": 3, + "fails": 0, + "avgMs": 0.40561166666666776 + }, + "linux": { + "runs": 0, + "fails": 0, + "avgMs": 0 + } + }, + "heavy": false + }, + "node-module-collector/streamCollectorTest.ts::streamCollectorCommandToFile > stderr and exit code behavior > non-npm command exit code 1: rejects with stderr in error message": { + "platformRuns": { + "win32": { + "runs": 0, + "fails": 0, + "avgMs": 0 + }, + "darwin": { + "runs": 3, + "fails": 0, + "avgMs": 0.7739863333333498 + }, + "linux": { + "runs": 0, + "fails": 0, + "avgMs": 0 + } + }, + "heavy": false + }, + "node-module-collector/streamCollectorTest.ts::streamCollectorCommandToFile > stderr and exit code behavior > npm command (not list) exit code 1: rejects": { + "platformRuns": { + "win32": { + "runs": 0, + "fails": 0, + "avgMs": 0 + }, + "darwin": { + "runs": 3, + "fails": 0, + "avgMs": 0.3317916666666747 + }, + "linux": { + "runs": 0, + "fails": 0, + "avgMs": 0 + } + }, + "heavy": false + }, + "node-module-collector/streamCollectorTest.ts::streamCollectorCommandToFile > stderr and exit code behavior > npm list with full path exit code 1: stderr suppressed (shouldIgnore applies to basename)": { + "platformRuns": { + "win32": { + "runs": 0, + "fails": 0, + "avgMs": 0 + }, + "darwin": { + "runs": 3, + "fails": 0, + "avgMs": 0.3151110000000017 + }, + "linux": { + "runs": 0, + "fails": 0, + "avgMs": 0 + } + }, + "heavy": false + }, + "node-module-collector/streamCollectorTest.ts::streamCollectorCommandToFile > stderr and exit code behavior > win32 npm.cmd wrapped via PowerShell: exit code 1 still triggers shouldIgnore": { + "platformRuns": { + "win32": { + "runs": 0, + "fails": 0, + "avgMs": 0 + }, + "darwin": { + "runs": 3, + "fails": 0, + "avgMs": 0.31813900000001166 + }, + "linux": { + "runs": 0, + "fails": 0, + "avgMs": 0 + } + }, + "heavy": false + }, + "windows/nsisScriptGeneratorTest.ts::NsisScriptGenerator.file > preserves $INSTDIR variable in output name without escaping": { + "platformRuns": { + "win32": { + "runs": 0, + "fails": 0, + "avgMs": 0 + }, + "darwin": { + "runs": 3, + "fails": 0, + "avgMs": 0.8225140000000124 + }, + "linux": { + "runs": 0, + "fails": 0, + "avgMs": 0 + } + }, + "heavy": false + }, + "windows/nsisScriptGeneratorTest.ts::NsisScriptGenerator.file > omits /oname when outputName is null": { + "platformRuns": { + "win32": { + "runs": 0, + "fails": 0, + "avgMs": 0 + }, + "darwin": { + "runs": 3, + "fails": 0, + "avgMs": 0.24387500000000273 + }, + "linux": { + "runs": 0, + "fails": 0, + "avgMs": 0 + } + }, + "heavy": false + }, + "windows/nsisScriptGeneratorTest.ts::nsisEscapeString > leaves plain strings unchanged": { + "platformRuns": { + "win32": { + "runs": 0, + "fails": 0, + "avgMs": 0 + }, + "darwin": { + "runs": 3, + "fails": 0, + "avgMs": 0.2171663333333337 + }, + "linux": { + "runs": 0, + "fails": 0, + "avgMs": 0 + } + }, + "heavy": false + }, + "windows/nsisScriptGeneratorTest.ts::nsisEscapeString > replaces LF newline with space": { + "platformRuns": { + "win32": { + "runs": 0, + "fails": 0, + "avgMs": 0 + }, + "darwin": { + "runs": 3, + "fails": 0, + "avgMs": 0.19034700000001217 + }, + "linux": { + "runs": 0, + "fails": 0, + "avgMs": 0 + } + }, + "heavy": false + }, + "windows/nsisScriptGeneratorTest.ts::nsisEscapeString > replaces CRLF newline with space": { + "platformRuns": { + "win32": { + "runs": 0, + "fails": 0, + "avgMs": 0 + }, + "darwin": { + "runs": 3, + "fails": 0, + "avgMs": 0.08631933333333563 + }, + "linux": { + "runs": 0, + "fails": 0, + "avgMs": 0 + } + }, + "heavy": false + }, + "windows/nsisScriptGeneratorTest.ts::nsisEscapeString > replaces standalone CR with space": { + "platformRuns": { + "win32": { + "runs": 0, + "fails": 0, + "avgMs": 0 + }, + "darwin": { + "runs": 3, + "fails": 0, + "avgMs": 0.084541999999999 + }, + "linux": { + "runs": 0, + "fails": 0, + "avgMs": 0 + } + }, + "heavy": false + }, + "windows/nsisScriptGeneratorTest.ts::nsisEscapeString > escapes dollar sign to prevent variable expansion": { + "platformRuns": { + "win32": { + "runs": 0, + "fails": 0, + "avgMs": 0 + }, + "darwin": { + "runs": 3, + "fails": 0, + "avgMs": 0.07024999999998727 + }, + "linux": { + "runs": 0, + "fails": 0, + "avgMs": 0 + } + }, + "heavy": false + }, + "windows/nsisScriptGeneratorTest.ts::nsisEscapeString > escapes double quote": { + "platformRuns": { + "win32": { + "runs": 0, + "fails": 0, + "avgMs": 0 + }, + "darwin": { + "runs": 3, + "fails": 0, + "avgMs": 0.1031113333333451 + }, + "linux": { + "runs": 0, + "fails": 0, + "avgMs": 0 + } + }, + "heavy": false + }, + "windows/nsisScriptGeneratorTest.ts::nsisEscapeString > handles combined special characters": { + "platformRuns": { + "win32": { + "runs": 0, + "fails": 0, + "avgMs": 0 + }, + "darwin": { + "runs": 3, + "fails": 0, + "avgMs": 0.2060829999999972 + }, + "linux": { + "runs": 0, + "fails": 0, + "avgMs": 0 + } + }, + "heavy": false + }, + "windows/nsisScriptGeneratorTest.ts::nsisEscapeString > preserves ${...} variable references unchanged": { + "platformRuns": { + "win32": { + "runs": 0, + "fails": 0, + "avgMs": 0 + }, + "darwin": { + "runs": 3, + "fails": 0, + "avgMs": 0.11304166666665576 + }, + "linux": { + "runs": 0, + "fails": 0, + "avgMs": 0 + } + }, + "heavy": false + }, + "windows/nsisScriptGeneratorTest.ts::nsisEscapeString > escapes bare $ but leaves ${...} references intact": { + "platformRuns": { + "win32": { + "runs": 0, + "fails": 0, + "avgMs": 0 + }, + "darwin": { + "runs": 3, + "fails": 0, + "avgMs": 0.10708333333334015 + }, + "linux": { + "runs": 0, + "fails": 0, + "avgMs": 0 + } + }, + "heavy": false + }, + "windows/nsisScriptGeneratorTest.ts::nsisEscapeString > escapes multiple consecutive dollar signs": { + "platformRuns": { + "win32": { + "runs": 0, + "fails": 0, + "avgMs": 0 + }, + "darwin": { + "runs": 3, + "fails": 0, + "avgMs": 0.05631933333334397 + }, + "linux": { + "runs": 0, + "fails": 0, + "avgMs": 0 + } + }, + "heavy": false + }, + "windows/nsisScriptGeneratorTest.ts::nsisEscapeString > empty string is returned unchanged": { + "platformRuns": { + "win32": { + "runs": 0, + "fails": 0, + "avgMs": 0 + }, + "darwin": { + "runs": 3, + "fails": 0, + "avgMs": 0.05452733333330192 + }, + "linux": { + "runs": 0, + "fails": 0, + "avgMs": 0 + } + }, + "heavy": false + }, + "windows/nsisScriptGeneratorTest.ts::nsisEscapeString > string with only newlines becomes spaces": { + "platformRuns": { + "win32": { + "runs": 0, + "fails": 0, + "avgMs": 0 + }, + "darwin": { + "runs": 3, + "fails": 0, + "avgMs": 0.05369433333333973 + }, + "linux": { + "runs": 0, + "fails": 0, + "avgMs": 0 + } + }, + "heavy": false + }, + "windows/nsisScriptGeneratorTest.ts::nsisEscapeString > preserves backslash characters": { + "platformRuns": { + "win32": { + "runs": 0, + "fails": 0, + "avgMs": 0 + }, + "darwin": { + "runs": 3, + "fails": 0, + "avgMs": 0.04637466666664144 + }, + "linux": { + "runs": 0, + "fails": 0, + "avgMs": 0 + } + }, + "heavy": false + }, + "windows/nsisScriptGeneratorTest.ts::nsisEscapeString > escapes multiple double quotes": { + "platformRuns": { + "win32": { + "runs": 0, + "fails": 0, + "avgMs": 0 + }, + "darwin": { + "runs": 3, + "fails": 0, + "avgMs": 0.056416666666677884 + }, + "linux": { + "runs": 0, + "fails": 0, + "avgMs": 0 + } + }, + "heavy": false + }, + "linux/linuxPackagerTest.ts::LinuxPackager > AppImage toolset 0.0.0 > AppImage": { + "platformRuns": { + "win32": { + "runs": 0, + "fails": 0, + "avgMs": 0 + }, + "darwin": { + "runs": 1, + "fails": 1, + "avgMs": 1568.2359999999999 + }, + "linux": { + "runs": 0, + "fails": 0, + "avgMs": 0 + } + }, + "heavy": false + }, + "linux/linuxPackagerTest.ts::LinuxPackager > AppImage toolset 0.0.0 > AppImage arm, max compression": { + "platformRuns": { + "win32": { + "runs": 0, + "fails": 0, + "avgMs": 0 + }, + "darwin": { + "runs": 1, + "fails": 1, + "avgMs": 1332.3769589999997 + }, + "linux": { + "runs": 0, + "fails": 0, + "avgMs": 0 + } + }, + "heavy": false + }, + "linux/linuxPackagerTest.ts::LinuxPackager > AppImage toolset 0.0.0 > AppImage - deprecated systemIntegration": { + "platformRuns": { + "win32": { + "runs": 0, + "fails": 0, + "avgMs": 0 + }, + "darwin": { + "runs": 1, + "fails": 1, + "avgMs": 1388.533375 + }, + "linux": { + "runs": 0, + "fails": 0, + "avgMs": 0 + } + }, + "heavy": false + }, + "linux/linuxPackagerTest.ts::LinuxPackager > AppImage toolset 0.0.0 > text license and file associations": { + "platformRuns": { + "win32": { + "runs": 0, + "fails": 0, + "avgMs": 0 + }, + "darwin": { + "runs": 1, + "fails": 1, + "avgMs": 1323.2028330000003 + }, + "linux": { + "runs": 0, + "fails": 0, + "avgMs": 0 + } + }, + "heavy": false + }, + "linux/linuxPackagerTest.ts::LinuxPackager > AppImage toolset 0.0.0 > html license": { + "platformRuns": { + "win32": { + "runs": 0, + "fails": 0, + "avgMs": 0 + }, + "darwin": { + "runs": 1, + "fails": 1, + "avgMs": 1426.7097910000002 + }, + "linux": { + "runs": 0, + "fails": 0, + "avgMs": 0 + } + }, + "heavy": false + }, + "linux/linuxPackagerTest.ts::LinuxPackager > AppImage toolset 0.0.0 > AppImage - default icon, custom executable and custom desktop": { + "platformRuns": { + "win32": { + "runs": 0, + "fails": 0, + "avgMs": 0 + }, + "darwin": { + "runs": 1, + "fails": 1, + "avgMs": 1302.4044589999994 + }, + "linux": { + "runs": 0, + "fails": 0, + "avgMs": 0 + } + }, + "heavy": false + }, + "linux/linuxPackagerTest.ts::LinuxPackager > AppImage toolset 0.0.0 > icons from ICNS (mac)": { + "platformRuns": { + "win32": { + "runs": 0, + "fails": 0, + "avgMs": 0 + }, + "darwin": { + "runs": 1, + "fails": 1, + "avgMs": 1274.947082999999 + }, + "linux": { + "runs": 0, + "fails": 0, + "avgMs": 0 + } + }, + "heavy": false + }, + "linux/linuxPackagerTest.ts::LinuxPackager > AppImage toolset 0.0.0 > icons from ICNS if nothing specified": { + "platformRuns": { + "win32": { + "runs": 0, + "fails": 0, + "avgMs": 0 + }, + "darwin": { + "runs": 1, + "fails": 1, + "avgMs": 1252.8537500000002 + }, + "linux": { + "runs": 0, + "fails": 0, + "avgMs": 0 + } + }, + "heavy": false + }, + "linux/linuxPackagerTest.ts::LinuxPackager > AppImage toolset 0.0.0 > icons from dir and one icon with suffix": { + "platformRuns": { + "win32": { + "runs": 0, + "fails": 0, + "avgMs": 0 + }, + "darwin": { + "runs": 1, + "fails": 1, + "avgMs": 1258.6299589999999 + }, + "linux": { + "runs": 0, + "fails": 0, + "avgMs": 0 + } + }, + "heavy": false + }, + "linux/linuxPackagerTest.ts::LinuxPackager > AppImage toolset 0.0.0 > icons dir with images without size in the filename": { + "platformRuns": { + "win32": { + "runs": 0, + "fails": 0, + "avgMs": 0 + }, + "darwin": { + "runs": 1, + "fails": 1, + "avgMs": 1205.507208000001 + }, + "linux": { + "runs": 0, + "fails": 0, + "avgMs": 0 + } + }, + "heavy": false + }, + "linux/linuxPackagerTest.ts::LinuxPackager > AppImage toolset 0.0.0 > icons from ICNS": { + "platformRuns": { + "win32": { + "runs": 0, + "fails": 0, + "avgMs": 0 + }, + "darwin": { + "runs": 1, + "fails": 1, + "avgMs": 1227.5742910000008 + }, + "linux": { + "runs": 0, + "fails": 0, + "avgMs": 0 + } + }, + "heavy": false + }, + "linux/linuxPackagerTest.ts::LinuxPackager > AppImage toolset 0.0.0 > no-author-email": { + "platformRuns": { + "win32": { + "runs": 0, + "fails": 0, + "avgMs": 0 + }, + "darwin": { + "runs": 1, + "fails": 1, + "avgMs": 1262.8662079999995 + }, + "linux": { + "runs": 0, + "fails": 0, + "avgMs": 0 + } + }, + "heavy": false + }, + "linux/linuxPackagerTest.ts::LinuxPackager > AppImage toolset 0.0.0 > forbid desktop.Exec": { + "platformRuns": { + "win32": { + "runs": 0, + "fails": 0, + "avgMs": 0 + }, + "darwin": { + "runs": 1, + "fails": 1, + "avgMs": 1217.9662499999977 + }, + "linux": { + "runs": 0, + "fails": 0, + "avgMs": 0 + } + }, + "heavy": false + }, + "linux/linuxPackagerTest.ts::LinuxPackager > AppImage toolset 1.0.2 > AppImage": { + "platformRuns": { + "win32": { + "runs": 0, + "fails": 0, + "avgMs": 0 + }, + "darwin": { + "runs": 1, + "fails": 1, + "avgMs": 1216.367250000003 + }, + "linux": { + "runs": 0, + "fails": 0, + "avgMs": 0 + } + }, + "heavy": false + }, + "linux/linuxPackagerTest.ts::LinuxPackager > AppImage toolset 1.0.2 > AppImage arm, max compression": { + "platformRuns": { + "win32": { + "runs": 0, + "fails": 0, + "avgMs": 0 + }, + "darwin": { + "runs": 1, + "fails": 1, + "avgMs": 1222.2477499999986 + }, + "linux": { + "runs": 0, + "fails": 0, + "avgMs": 0 + } + }, + "heavy": false + }, + "linux/linuxPackagerTest.ts::LinuxPackager > AppImage toolset 1.0.2 > AppImage - deprecated systemIntegration": { + "platformRuns": { + "win32": { + "runs": 0, + "fails": 0, + "avgMs": 0 + }, + "darwin": { + "runs": 1, + "fails": 1, + "avgMs": 1202.4069999999992 + }, + "linux": { + "runs": 0, + "fails": 0, + "avgMs": 0 + } + }, + "heavy": false + }, + "linux/linuxPackagerTest.ts::LinuxPackager > AppImage toolset 1.0.2 > text license and file associations": { + "platformRuns": { + "win32": { + "runs": 0, + "fails": 0, + "avgMs": 0 + }, + "darwin": { + "runs": 1, + "fails": 1, + "avgMs": 1214.8789169999982 + }, + "linux": { + "runs": 0, + "fails": 0, + "avgMs": 0 + } + }, + "heavy": false + }, + "linux/linuxPackagerTest.ts::LinuxPackager > AppImage toolset 1.0.2 > html license": { + "platformRuns": { + "win32": { + "runs": 0, + "fails": 0, + "avgMs": 0 + }, + "darwin": { + "runs": 1, + "fails": 1, + "avgMs": 1186.1180829999976 + }, + "linux": { + "runs": 0, + "fails": 0, + "avgMs": 0 + } + }, + "heavy": false + }, + "linux/linuxPackagerTest.ts::LinuxPackager > AppImage toolset 1.0.2 > AppImage - default icon, custom executable and custom desktop": { + "platformRuns": { + "win32": { + "runs": 0, + "fails": 0, + "avgMs": 0 + }, + "darwin": { + "runs": 1, + "fails": 1, + "avgMs": 1222.620665999999 + }, + "linux": { + "runs": 0, + "fails": 0, + "avgMs": 0 + } + }, + "heavy": false + }, + "linux/linuxPackagerTest.ts::LinuxPackager > AppImage toolset 1.0.2 > icons from ICNS (mac)": { + "platformRuns": { + "win32": { + "runs": 0, + "fails": 0, + "avgMs": 0 + }, + "darwin": { + "runs": 1, + "fails": 1, + "avgMs": 1170.7240840000013 + }, + "linux": { + "runs": 0, + "fails": 0, + "avgMs": 0 + } + }, + "heavy": false + }, + "linux/linuxPackagerTest.ts::LinuxPackager > AppImage toolset 1.0.2 > icons from ICNS if nothing specified": { + "platformRuns": { + "win32": { + "runs": 0, + "fails": 0, + "avgMs": 0 + }, + "darwin": { + "runs": 1, + "fails": 1, + "avgMs": 1355.485249999998 + }, + "linux": { + "runs": 0, + "fails": 0, + "avgMs": 0 + } + }, + "heavy": false + }, + "linux/linuxPackagerTest.ts::LinuxPackager > AppImage toolset 1.0.2 > icons from dir and one icon with suffix": { + "platformRuns": { + "win32": { + "runs": 0, + "fails": 0, + "avgMs": 0 + }, + "darwin": { + "runs": 1, + "fails": 1, + "avgMs": 1345.510916000003 + }, + "linux": { + "runs": 0, + "fails": 0, + "avgMs": 0 + } + }, + "heavy": false + }, + "linux/linuxPackagerTest.ts::LinuxPackager > AppImage toolset 1.0.2 > icons dir with images without size in the filename": { + "platformRuns": { + "win32": { + "runs": 0, + "fails": 0, + "avgMs": 0 + }, + "darwin": { + "runs": 1, + "fails": 1, + "avgMs": 1643.7597910000004 + }, + "linux": { + "runs": 0, + "fails": 0, + "avgMs": 0 + } + }, + "heavy": false + }, + "linux/linuxPackagerTest.ts::LinuxPackager > AppImage toolset 1.0.2 > icons from ICNS": { + "platformRuns": { + "win32": { + "runs": 0, + "fails": 0, + "avgMs": 0 + }, + "darwin": { + "runs": 1, + "fails": 1, + "avgMs": 1274.6157080000012 + }, + "linux": { + "runs": 0, + "fails": 0, + "avgMs": 0 + } + }, + "heavy": false + }, + "linux/linuxPackagerTest.ts::LinuxPackager > AppImage toolset 1.0.2 > no-author-email": { + "platformRuns": { + "win32": { + "runs": 0, + "fails": 0, + "avgMs": 0 + }, + "darwin": { + "runs": 1, + "fails": 1, + "avgMs": 1262.1312500000058 + }, + "linux": { + "runs": 0, + "fails": 0, + "avgMs": 0 + } + }, + "heavy": false + }, + "linux/linuxPackagerTest.ts::LinuxPackager > AppImage toolset 1.0.2 > forbid desktop.Exec": { + "platformRuns": { + "win32": { + "runs": 0, + "fails": 0, + "avgMs": 0 + }, + "darwin": { + "runs": 1, + "fails": 1, + "avgMs": 1220.9013330000016 + }, + "linux": { + "runs": 0, + "fails": 0, + "avgMs": 0 + } + }, + "heavy": false + }, + "linux/linuxPackagerTest.ts::LinuxPackager > AppImage toolset 1.0.3 > AppImage": { + "platformRuns": { + "win32": { + "runs": 0, + "fails": 0, + "avgMs": 0 + }, + "darwin": { + "runs": 1, + "fails": 1, + "avgMs": 1232.2774579999968 + }, + "linux": { + "runs": 0, + "fails": 0, + "avgMs": 0 + } + }, + "heavy": false + }, + "linux/linuxPackagerTest.ts::LinuxPackager > AppImage toolset 1.0.3 > AppImage arm, max compression": { + "platformRuns": { + "win32": { + "runs": 0, + "fails": 0, + "avgMs": 0 + }, + "darwin": { + "runs": 1, + "fails": 1, + "avgMs": 1167.0066669999942 + }, + "linux": { + "runs": 0, + "fails": 0, + "avgMs": 0 + } + }, + "heavy": false + }, + "linux/linuxPackagerTest.ts::LinuxPackager > AppImage toolset 1.0.3 > AppImage - deprecated systemIntegration": { + "platformRuns": { + "win32": { + "runs": 0, + "fails": 0, + "avgMs": 0 + }, + "darwin": { + "runs": 1, + "fails": 1, + "avgMs": 1251.1619589999973 + }, + "linux": { + "runs": 0, + "fails": 0, + "avgMs": 0 + } + }, + "heavy": false + }, + "linux/linuxPackagerTest.ts::LinuxPackager > AppImage toolset 1.0.3 > text license and file associations": { + "platformRuns": { + "win32": { + "runs": 0, + "fails": 0, + "avgMs": 0 + }, + "darwin": { + "runs": 1, + "fails": 1, + "avgMs": 1362.7003750000003 + }, + "linux": { + "runs": 0, + "fails": 0, + "avgMs": 0 + } + }, + "heavy": false + }, + "linux/linuxPackagerTest.ts::LinuxPackager > AppImage toolset 1.0.3 > html license": { + "platformRuns": { + "win32": { + "runs": 0, + "fails": 0, + "avgMs": 0 + }, + "darwin": { + "runs": 1, + "fails": 1, + "avgMs": 1274.5983330000017 + }, + "linux": { + "runs": 0, + "fails": 0, + "avgMs": 0 + } + }, + "heavy": false + }, + "linux/linuxPackagerTest.ts::LinuxPackager > AppImage toolset 1.0.3 > AppImage - default icon, custom executable and custom desktop": { + "platformRuns": { + "win32": { + "runs": 0, + "fails": 0, + "avgMs": 0 + }, + "darwin": { + "runs": 1, + "fails": 1, + "avgMs": 1280.7859160000007 + }, + "linux": { + "runs": 0, + "fails": 0, + "avgMs": 0 + } + }, + "heavy": false + }, + "linux/linuxPackagerTest.ts::LinuxPackager > AppImage toolset 1.0.3 > icons from ICNS (mac)": { + "platformRuns": { + "win32": { + "runs": 0, + "fails": 0, + "avgMs": 0 + }, + "darwin": { + "runs": 1, + "fails": 1, + "avgMs": 1253.5321669999976 + }, + "linux": { + "runs": 0, + "fails": 0, + "avgMs": 0 + } + }, + "heavy": false + }, + "linux/linuxPackagerTest.ts::LinuxPackager > AppImage toolset 1.0.3 > icons from ICNS if nothing specified": { + "platformRuns": { + "win32": { + "runs": 0, + "fails": 0, + "avgMs": 0 + }, + "darwin": { + "runs": 1, + "fails": 1, + "avgMs": 1329.489625000002 + }, + "linux": { + "runs": 0, + "fails": 0, + "avgMs": 0 + } + }, + "heavy": false + }, + "linux/linuxPackagerTest.ts::LinuxPackager > AppImage toolset 1.0.3 > icons from dir and one icon with suffix": { + "platformRuns": { + "win32": { + "runs": 0, + "fails": 0, + "avgMs": 0 + }, + "darwin": { + "runs": 1, + "fails": 1, + "avgMs": 1313.955249999999 + }, + "linux": { + "runs": 0, + "fails": 0, + "avgMs": 0 + } + }, + "heavy": false + }, + "linux/linuxPackagerTest.ts::LinuxPackager > AppImage toolset 1.0.3 > icons dir with images without size in the filename": { + "platformRuns": { + "win32": { + "runs": 0, + "fails": 0, + "avgMs": 0 + }, + "darwin": { + "runs": 1, + "fails": 1, + "avgMs": 1341.7976249999992 + }, + "linux": { + "runs": 0, + "fails": 0, + "avgMs": 0 + } + }, + "heavy": false + }, + "linux/linuxPackagerTest.ts::LinuxPackager > AppImage toolset 1.0.3 > icons from ICNS": { + "platformRuns": { + "win32": { + "runs": 0, + "fails": 0, + "avgMs": 0 + }, + "darwin": { + "runs": 1, + "fails": 1, + "avgMs": 1315.2947920000006 + }, + "linux": { + "runs": 0, + "fails": 0, + "avgMs": 0 + } + }, + "heavy": false + }, + "linux/linuxPackagerTest.ts::LinuxPackager > AppImage toolset 1.0.3 > no-author-email": { + "platformRuns": { + "win32": { + "runs": 0, + "fails": 0, + "avgMs": 0 + }, + "darwin": { + "runs": 1, + "fails": 1, + "avgMs": 1302.7428749999963 + }, + "linux": { + "runs": 0, + "fails": 0, + "avgMs": 0 + } + }, + "heavy": false + }, + "linux/linuxPackagerTest.ts::LinuxPackager > AppImage toolset 1.0.3 > forbid desktop.Exec": { + "platformRuns": { + "win32": { + "runs": 0, + "fails": 0, + "avgMs": 0 + }, + "darwin": { + "runs": 1, + "fails": 1, + "avgMs": 1315.7694580000025 + }, + "linux": { + "runs": 0, + "fails": 0, + "avgMs": 0 + } + }, + "heavy": false + } + }, + "files": { + "schemaValidatorTest.ts": { + "unstable": false, + "hasHeavyTests": false, + "platformRuns": { + "win32": { + "runs": 0, + "fails": 0, + "avgMs": 0 + }, + "darwin": { + "runs": 3, + "fails": 0, + "avgMs": 25.5553189999999 + }, + "linux": { + "runs": 0, + "fails": 0, + "avgMs": 0 + } + } + }, + "node-module-collector/moduleManagerTest.ts": { + "unstable": false, + "hasHeavyTests": false, + "platformRuns": { + "win32": { + "runs": 0, + "fails": 0, + "avgMs": 0 + }, + "darwin": { + "runs": 3, + "fails": 0, + "avgMs": 34.06827766666652 + }, + "linux": { + "runs": 0, + "fails": 0, + "avgMs": 0 + } + } + }, + "node-module-collector/streamCollectorTest.ts": { + "unstable": false, + "hasHeavyTests": false, + "platformRuns": { + "win32": { + "runs": 0, + "fails": 0, + "avgMs": 0 + }, + "darwin": { + "runs": 3, + "fails": 0, + "avgMs": 8.988251000000142 + }, + "linux": { + "runs": 0, + "fails": 0, + "avgMs": 0 + } + } + }, + "windows/nsisScriptGeneratorTest.ts": { + "unstable": false, + "hasHeavyTests": false, + "platformRuns": { + "win32": { + "runs": 0, + "fails": 0, + "avgMs": 0 + }, + "darwin": { + "runs": 3, + "fails": 0, + "avgMs": 2.511665333333326 + }, + "linux": { + "runs": 0, + "fails": 0, + "avgMs": 0 + } + } + }, + "linux/linuxPackagerTest.ts": { + "unstable": true, + "hasHeavyTests": false, + "platformRuns": { + "win32": { + "runs": 0, + "fails": 0, + "avgMs": 0 + }, + "darwin": { + "runs": 1, + "fails": 39, + "avgMs": 50320.68866399999 + }, + "linux": { + "runs": 0, + "fails": 0, + "avgMs": 0 + } + } + } + } +} \ No newline at end of file diff --git a/tsup.config.base.ts b/tsup.config.base.ts index 803332d9b96..e5978446118 100644 --- a/tsup.config.base.ts +++ b/tsup.config.base.ts @@ -5,7 +5,7 @@ export const baseConfig: Options = { dts: true, tsconfig: "../tsconfig-tsup.json", sourcemap: true, - clean: true, + clean: !process.argv.includes("--watch"), outDir: "dist", platform: "node", } From b0497fc126fc02d58a82d48706dd5ad20cac7ea0 Mon Sep 17 00:00:00 2001 From: Mike Maietta Date: Wed, 3 Jun 2026 10:37:56 -0700 Subject: [PATCH 63/65] swap back to tsc instead of tsup --- package.json | 6 +- packages/app-builder-lib/package.json | 10 +- .../src/asar/asarFileChecker.ts | 2 +- packages/app-builder-lib/src/asar/asarUtil.ts | 10 +- packages/app-builder-lib/src/binDownload.ts | 4 +- .../app-builder-lib/src/codeSign/codesign.ts | 2 +- .../src/codeSign/macCodeSign.ts | 8 +- .../src/codeSign/windowsSignToolManager.ts | 24 +- packages/app-builder-lib/src/configuration.ts | 36 +- .../src/electron/ElectronFramework.ts | 24 +- .../src/electron/injectFFMPEG.ts | 8 +- .../app-builder-lib/src/fileTransformer.ts | 4 +- packages/app-builder-lib/src/index.ts | 70 +- packages/app-builder-lib/src/linuxPackager.ts | 20 +- .../src/mac/MacTargetHelper.ts | 10 +- packages/app-builder-lib/src/macPackager.ts | 30 +- .../pnpmNodeModulesCollector.ts | 8 +- .../src/options/SnapOptions.ts | 6 +- packages/app-builder-lib/src/packager.ts | 48 +- .../app-builder-lib/src/platformPackager.ts | 30 +- .../app-builder-lib/src/targets/AppxTarget.ts | 18 +- .../src/targets/FlatpakTarget.ts | 12 +- .../app-builder-lib/src/targets/FpmTarget.ts | 26 +- .../src/targets/LinuxTargetHelper.ts | 16 +- .../app-builder-lib/src/targets/MsiTarget.ts | 22 +- .../src/targets/appimage/AppImageTarget.ts | 16 +- .../src/targets/appimage/appImageUtil.ts | 14 +- .../app-builder-lib/src/targets/archive.ts | 4 +- .../targets/differentialUpdateInfoBuilder.ts | 8 +- .../src/targets/nsis/NsisTarget.ts | 40 +- .../src/targets/nsis/nsisUtil.ts | 6 +- .../src/targets/nsis/nsisValidation.ts | 2 +- .../src/targets/snap/SnapTarget.ts | 14 +- .../src/targets/snap/core24.ts | 8 +- .../src/targets/snap/coreCustom.ts | 8 +- .../src/targets/snap/coreLegacy.ts | 10 +- .../src/targets/snap/snapcraftBuilder.ts | 6 +- .../app-builder-lib/src/toolsets/icons.ts | 2 +- .../app-builder-lib/src/toolsets/linux.ts | 6 +- .../app-builder-lib/src/toolsets/windows.ts | 10 +- .../app-builder-lib/src/util/config/config.ts | 14 +- .../app-builder-lib/src/util/electronGet.ts | 4 +- .../app-builder-lib/src/util/iconConverter.ts | 2 +- .../app-builder-lib/src/util/pathManager.ts | 3 +- packages/app-builder-lib/src/util/rebuild.ts | 2 +- packages/app-builder-lib/src/util/resEdit.ts | 2 +- packages/app-builder-lib/src/util/resolve.ts | 2 +- packages/app-builder-lib/src/util/yarn.ts | 8 +- packages/app-builder-lib/src/vm/vm.ts | 2 +- packages/app-builder-lib/src/winPackager.ts | 44 +- packages/app-builder-lib/tsconfig.build.json | 8 + packages/app-builder-lib/tsup.config.ts | 11 - packages/builder-util-runtime/package.json | 10 +- packages/builder-util-runtime/src/index.ts | 26 +- .../builder-util-runtime/tsconfig.build.json | 8 + packages/builder-util-runtime/tsup.config.ts | 10 - packages/builder-util/package.json | 10 +- packages/builder-util/src/DebugLogger.ts | 2 +- packages/builder-util/src/cscLink.ts | 2 +- packages/builder-util/src/envUtil.ts | 6 +- packages/builder-util/src/nodeHttpExecutor.ts | 2 +- packages/builder-util/src/util.ts | 36 +- packages/builder-util/tsconfig.build.json | 8 + packages/builder-util/tsup.config.ts | 10 - packages/dmg-builder/package.json | 8 +- packages/dmg-builder/src/dmg.ts | 8 +- packages/dmg-builder/src/dmgLicense.ts | 2 +- packages/dmg-builder/src/dmgUtil.ts | 10 +- packages/dmg-builder/tsconfig.build.json | 8 + packages/dmg-builder/tsup.config.ts | 9 - .../package.json | 8 +- .../src/SquirrelWindowsTarget.ts | 2 +- .../tsconfig.build.json | 8 + .../tsup.config.ts | 9 - packages/electron-builder/package.json | 10 +- packages/electron-builder/src/cli/cli-util.ts | 4 +- packages/electron-builder/src/cli/cli.ts | 14 +- packages/electron-builder/tsconfig.build.json | 8 + packages/electron-builder/tsup.config.ts | 19 - packages/electron-publish/package.json | 10 +- packages/electron-publish/src/index.ts | 24 +- .../src/s3/baseS3Publisher.ts | 8 +- .../electron-publish/src/s3/bucketLocation.ts | 2 +- .../electron-publish/src/s3/s3Publisher.ts | 8 +- .../electron-publish/src/s3/s3UploadHelper.ts | 2 +- .../src/s3/spacesPublisher.ts | 4 +- .../src/snapStorePublisher.ts | 4 +- packages/electron-publish/tsconfig.build.json | 8 + packages/electron-publish/tsup.config.ts | 10 - packages/electron-updater/package.json | 10 +- packages/electron-updater/src/BaseUpdater.ts | 4 +- packages/electron-updater/tsconfig.build.json | 8 + packages/electron-updater/tsup.config.ts | 11 - packages/tsconfig-build.json | 11 + pnpm-lock.yaml | 942 +++++------------- tsconfig-base.json | 10 +- tsup.config.base.ts | 11 - 97 files changed, 778 insertions(+), 1276 deletions(-) create mode 100644 packages/app-builder-lib/tsconfig.build.json delete mode 100644 packages/app-builder-lib/tsup.config.ts create mode 100644 packages/builder-util-runtime/tsconfig.build.json delete mode 100644 packages/builder-util-runtime/tsup.config.ts create mode 100644 packages/builder-util/tsconfig.build.json delete mode 100644 packages/builder-util/tsup.config.ts create mode 100644 packages/dmg-builder/tsconfig.build.json delete mode 100644 packages/dmg-builder/tsup.config.ts create mode 100644 packages/electron-builder-squirrel-windows/tsconfig.build.json delete mode 100644 packages/electron-builder-squirrel-windows/tsup.config.ts create mode 100644 packages/electron-builder/tsconfig.build.json delete mode 100644 packages/electron-builder/tsup.config.ts create mode 100644 packages/electron-publish/tsconfig.build.json delete mode 100644 packages/electron-publish/tsup.config.ts create mode 100644 packages/electron-updater/tsconfig.build.json delete mode 100644 packages/electron-updater/tsup.config.ts create mode 100644 packages/tsconfig-build.json delete mode 100644 tsup.config.base.ts diff --git a/package.json b/package.json index e580756d67f..fac866a43a6 100644 --- a/package.json +++ b/package.json @@ -42,6 +42,7 @@ "@eslint/eslintrc": "^3.3.1", "@eslint/js": "^9.37.0", "@stylistic/eslint-plugin": "^2.8.0", + "@tsconfig/node22": "^22.0.5", "@types/node": "^22.7.4", "@typescript-eslint/eslint-plugin": "8.17.0", "@typescript-eslint/parser": "8.17.0", @@ -50,16 +51,15 @@ "conventional-changelog-cli": "5.0.0", "depcheck": "1.4.7", "eslint": "9.39.2", - "fs-extra": "^10.1.0", "eslint-config-prettier": "^9.1.0", "eslint-plugin-prettier": "^5.2.1", + "fs-extra": "^10.1.0", "is-ci": "^4.1.0", "prettier": "3.7.4", "tsx": "^4.0.0", - "tsup": "^8.0.0", + "typedoc": "^0.28.19", "typescript": "^5.6.2", "typescript-json-schema": "0.64.0", - "typedoc": "^0.28.19", "vitest": "^3.2.2" }, "engines": { diff --git a/packages/app-builder-lib/package.json b/packages/app-builder-lib/package.json index 26db88ed534..1b1172dcc77 100644 --- a/packages/app-builder-lib/package.json +++ b/packages/app-builder-lib/package.json @@ -2,17 +2,17 @@ "name": "app-builder-lib", "description": "electron-builder lib", "version": "26.14.0", + "type": "module", "main": "./dist/index.js", - "module": "./dist/index.mjs", "exports": { ".": { "types": "./dist/index.d.ts", - "import": "./dist/index.mjs", + "import": "./dist/index.js", "require": "./dist/index.js" }, "./internal": { "types": "./dist/indexInternal.d.ts", - "import": "./dist/indexInternal.mjs", + "import": "./dist/indexInternal.js", "require": "./dist/indexInternal.js" }, "./src/*": "./src/*.ts" @@ -145,7 +145,7 @@ "//": "electron-builder-squirrel-windows and dmg-builder added as dev dep for tests (as otherwise `require` doesn't work using Yarn 2)", "types": "./dist/index.d.ts", "scripts": { - "build": "tsup", - "watch": "tsup --watch" + "build": "node -e \"require('fs').rmSync('dist',{recursive:true,force:true})\" && tsc -p tsconfig.build.json", + "watch": "tsc -p tsconfig.build.json --watch" } } diff --git a/packages/app-builder-lib/src/asar/asarFileChecker.ts b/packages/app-builder-lib/src/asar/asarFileChecker.ts index f589d66b7ab..34cb548e400 100644 --- a/packages/app-builder-lib/src/asar/asarFileChecker.ts +++ b/packages/app-builder-lib/src/asar/asarFileChecker.ts @@ -1,5 +1,5 @@ import type { FilesystemEntry, FilesystemFileEntry } from "@electron/asar/lib/filesystem" -import { dynamicImport } from "../util/dynamicImport" +import { dynamicImport } from "../util/dynamicImport.js" export async function checkFileInArchive(asarFile: string, relativeFile: string, messagePrefix: string): Promise { const asar = await dynamicImport("@electron/asar") diff --git a/packages/app-builder-lib/src/asar/asarUtil.ts b/packages/app-builder-lib/src/asar/asarUtil.ts index 03eb14ce04c..e295f5fd554 100644 --- a/packages/app-builder-lib/src/asar/asarUtil.ts +++ b/packages/app-builder-lib/src/asar/asarUtil.ts @@ -1,13 +1,13 @@ import type { AsarStreamType, AsarDirectory } from "@electron/asar" import { exists, Filter, FilterStats, isEmptyOrSpaces, log } from "builder-util" -import { dynamicImport } from "../util/dynamicImport" +import { dynamicImport } from "../util/dynamicImport.js" import * as fs from "fs-extra" import { readlink } from "fs-extra" import * as path from "path" -import { AsarOptions } from "../options/PlatformSpecificBuildOptions" -import { PlatformPackager } from "../platformPackager" -import { ResolvedFileSet, getDestinationPath } from "../util/appFileCopier" -import { detectUnpackedDirs } from "./unpackDetector" +import { AsarOptions } from "../options/PlatformSpecificBuildOptions.js" +import { PlatformPackager } from "../platformPackager.js" +import { ResolvedFileSet, getDestinationPath } from "../util/appFileCopier.js" +import { detectUnpackedDirs } from "./unpackDetector.js" import { Readable } from "stream" import * as os from "os" diff --git a/packages/app-builder-lib/src/binDownload.ts b/packages/app-builder-lib/src/binDownload.ts index 2bf8701d99e..785d00dc3fb 100644 --- a/packages/app-builder-lib/src/binDownload.ts +++ b/packages/app-builder-lib/src/binDownload.ts @@ -1,10 +1,10 @@ import * as fs from "fs/promises" import { log, parseValidEnvVarUrl } from "builder-util" -import { dynamicImport } from "./util/dynamicImport" +import { dynamicImport } from "./util/dynamicImport.js" import { Nullish } from "builder-util-runtime" import { sanitizeFileName } from "builder-util/internal" import * as path from "path" -import { downloadBuilderToolset, getBinariesMirrorUrl, getCacheDirectory } from "./util/electronGet" +import { downloadBuilderToolset, getBinariesMirrorUrl, getCacheDirectory } from "./util/electronGet.js" const versionToPromise = new Map>() diff --git a/packages/app-builder-lib/src/codeSign/codesign.ts b/packages/app-builder-lib/src/codeSign/codesign.ts index ad3c6561a2a..17414b24b99 100644 --- a/packages/app-builder-lib/src/codeSign/codesign.ts +++ b/packages/app-builder-lib/src/codeSign/codesign.ts @@ -1,7 +1,7 @@ import { decodeCscLinkBase64, InvalidConfigurationError, resolveCscLinkPath, statOrNull } from "builder-util" import { outputFile } from "fs-extra" import { TmpDir } from "temp-file" -import { download } from "../binDownload" +import { download } from "../binDownload.js" /** @private */ export async function importCertificate(cscLink: string, tmpDir: TmpDir, currentDir: string): Promise { diff --git a/packages/app-builder-lib/src/codeSign/macCodeSign.ts b/packages/app-builder-lib/src/codeSign/macCodeSign.ts index 8f717dfda93..80ce2ec4e24 100644 --- a/packages/app-builder-lib/src/codeSign/macCodeSign.ts +++ b/packages/app-builder-lib/src/codeSign/macCodeSign.ts @@ -1,6 +1,6 @@ import type { SignOptions } from "@electron/osx-sign/dist/cjs/types" import { copyFile, exec, Fields, InvalidConfigurationError, isEmptyOrSpaces, isEnvTrue, isPullRequest, log, Logger, retry, TmpDir, unlinkIfExists } from "builder-util" -import { dynamicImport } from "../util/dynamicImport" +import { dynamicImport } from "../util/dynamicImport.js" import { Nullish } from "builder-util-runtime" import { createHash, randomBytes } from "crypto" import { rename } from "fs/promises" @@ -8,8 +8,8 @@ import { Lazy } from "lazy-val" import { homedir, tmpdir } from "os" import * as path from "path" import { getTempName } from "temp-file" -import { isAutoDiscoveryCodeSignIdentity } from "../util/flags" -import { importCertificate } from "./codesign" +import { isAutoDiscoveryCodeSignIdentity } from "../util/flags.js" +import { importCertificate } from "./codesign.js" export const appleCertificatePrefixes = ["Developer ID Application:", "Developer ID Installer:", "3rd Party Mac Developer Application:", "3rd Party Mac Developer Installer:"] @@ -107,7 +107,7 @@ const bundledCertKeychainAdded = new Lazy(async () => { const keychainPath = path.join(cacheDir, "electron-builder-root-certs.keychain") const results = await Promise.all([ listUserKeychains(), - copyFile(path.join(__dirname, "..", "..", "certs", "root_certs.keychain"), tmpKeychainPath).then(() => rename(tmpKeychainPath, keychainPath)), + copyFile(path.join(import.meta.dirname, "..", "..", "certs", "root_certs.keychain"), tmpKeychainPath).then(() => rename(tmpKeychainPath, keychainPath)), ]) const list = results[0] if (!list.includes(keychainPath)) { diff --git a/packages/app-builder-lib/src/codeSign/windowsSignToolManager.ts b/packages/app-builder-lib/src/codeSign/windowsSignToolManager.ts index c04126871dc..cce31fbddc9 100644 --- a/packages/app-builder-lib/src/codeSign/windowsSignToolManager.ts +++ b/packages/app-builder-lib/src/codeSign/windowsSignToolManager.ts @@ -3,18 +3,18 @@ import { MemoLazy, parseDn } from "builder-util-runtime" import { rename } from "fs-extra" import { Lazy } from "lazy-val" import * as path from "path" -import { Target } from "../core" -import { WindowsConfiguration } from "../options/winOptions" -import AppXTarget from "../targets/AppxTarget" -import { getSignToolPath } from "../toolsets/windows" -import { ToolInfo } from "../util/bundledTool" -import { resolveFunction } from "../util/resolve" -import { readCertInfo } from "./certInfo" -import { VmManager } from "../vm/vm" -import { WinPackager } from "../winPackager" -import { importCertificate } from "./codesign" -import { SignManager } from "./signManager" -import { WindowsSignOptions } from "./windowsCodeSign" +import { Target } from "../core.js" +import { WindowsConfiguration } from "../options/winOptions.js" +import AppXTarget from "../targets/AppxTarget.js" +import { getSignToolPath } from "../toolsets/windows.js" +import { ToolInfo } from "../util/bundledTool.js" +import { resolveFunction } from "../util/resolve.js" +import { readCertInfo } from "./certInfo.js" +import { VmManager } from "../vm/vm.js" +import { WinPackager } from "../winPackager.js" +import { importCertificate } from "./codesign.js" +import { SignManager } from "./signManager.js" +import { WindowsSignOptions } from "./windowsCodeSign.js" export type CustomWindowsSign = (configuration: CustomWindowsSignTaskConfiguration, packager?: WinPackager) => Promise diff --git a/packages/app-builder-lib/src/configuration.ts b/packages/app-builder-lib/src/configuration.ts index fa309ae9bec..ffa26fe9cbc 100644 --- a/packages/app-builder-lib/src/configuration.ts +++ b/packages/app-builder-lib/src/configuration.ts @@ -1,22 +1,22 @@ import { Arch } from "builder-util" -import { BeforeBuildContext, Target } from "./core" -import { ElectronBrandingOptions } from "./electron/ElectronFramework" -import { PrepareApplicationStageDirectoryOptions } from "./Framework" -import { AppXOptions } from "./options/AppXOptions" -import { AppImageOptions, DebOptions, FlatpakOptions, LinuxConfiguration, LinuxTargetSpecificOptions, PacmanOptions, RpmOptions } from "./options/linuxOptions" -import { DmgOptions, MacConfiguration, MasConfiguration } from "./options/macOptions" -import { MsiOptions } from "./options/MsiOptions" -import { MsiWrappedOptions } from "./options/MsiWrappedOptions" -import { PkgOptions } from "./options/pkgOptions" -import { PlatformSpecificBuildOptions } from "./options/PlatformSpecificBuildOptions" -import { SnapcraftOptions, SnapOptions } from "./options/SnapOptions" -import { SquirrelWindowsOptions } from "./options/SquirrelWindowsOptions" -import { WindowsConfiguration } from "./options/winOptions" -import { BuildResult } from "./packager" -import { ArtifactBuildStarted, ArtifactCreated } from "./packagerApi" -import { PlatformPackager } from "./platformPackager" -import { NsisOptions, NsisWebOptions, PortableOptions } from "./targets/nsis/nsisOptions" -import { ElectronDownloadOptions, ElectronGetOptions } from "./util/electronGet" +import { BeforeBuildContext, Target } from "./core.js" +import { ElectronBrandingOptions } from "./electron/ElectronFramework.js" +import { PrepareApplicationStageDirectoryOptions } from "./Framework.js" +import { AppXOptions } from "./options/AppXOptions.js" +import { AppImageOptions, DebOptions, FlatpakOptions, LinuxConfiguration, LinuxTargetSpecificOptions, PacmanOptions, RpmOptions } from "./options/linuxOptions.js" +import { DmgOptions, MacConfiguration, MasConfiguration } from "./options/macOptions.js" +import { MsiOptions } from "./options/MsiOptions.js" +import { MsiWrappedOptions } from "./options/MsiWrappedOptions.js" +import { PkgOptions } from "./options/pkgOptions.js" +import { PlatformSpecificBuildOptions } from "./options/PlatformSpecificBuildOptions.js" +import { SnapcraftOptions, SnapOptions } from "./options/SnapOptions.js" +import { SquirrelWindowsOptions } from "./options/SquirrelWindowsOptions.js" +import { WindowsConfiguration } from "./options/winOptions.js" +import { BuildResult } from "./packager.js" +import { ArtifactBuildStarted, ArtifactCreated } from "./packagerApi.js" +import { PlatformPackager } from "./platformPackager.js" +import { NsisOptions, NsisWebOptions, PortableOptions } from "./targets/nsis/nsisOptions.js" +import { ElectronDownloadOptions, ElectronGetOptions } from "./util/electronGet.js" // duplicate appId here because it is important /** diff --git a/packages/app-builder-lib/src/electron/ElectronFramework.ts b/packages/app-builder-lib/src/electron/ElectronFramework.ts index 08e1b2cd6bd..da3aaded663 100644 --- a/packages/app-builder-lib/src/electron/ElectronFramework.ts +++ b/packages/app-builder-lib/src/electron/ElectronFramework.ts @@ -15,19 +15,19 @@ import { import { emptyDir, readdir, rename, rm } from "fs-extra" import * as path from "path" import asyncPool from "tiny-async-pool" -import { Configuration } from "../configuration" -import { BeforeCopyExtraFilesOptions, Framework, PrepareApplicationStageDirectoryOptions } from "../Framework" -import { Packager, Platform } from "../index" -import { LinuxPackager } from "../linuxPackager" -import { MacPackager } from "../macPackager" -import { getTemplatePath } from "../util/pathManager" -import { resolveFunction } from "../util/resolve" -import { downloadElectronArtifactZip, ElectronDownloadOptions, ElectronGetOptions, extractArchive } from "../util/electronGet" +import { Configuration } from "../configuration.js" +import { BeforeCopyExtraFilesOptions, Framework, PrepareApplicationStageDirectoryOptions } from "../Framework.js" +import { Packager, Platform } from "../index.js" +import { LinuxPackager } from "../linuxPackager.js" +import { MacPackager } from "../macPackager.js" +import { getTemplatePath } from "../util/pathManager.js" +import { resolveFunction } from "../util/resolve.js" +import { downloadElectronArtifactZip, ElectronDownloadOptions, ElectronGetOptions, extractArchive } from "../util/electronGet.js" export { ElectronDownloadOptions } -import { createMacApp } from "./electronMac" -import { computeElectronVersion, getElectronVersionFromInstalled } from "./electronVersion" -import { addWinAsarIntegrity } from "./electronWin" -import { FFMPEGInjector } from "./injectFFMPEG" +import { createMacApp } from "./electronMac.js" +import { computeElectronVersion, getElectronVersionFromInstalled } from "./electronVersion.js" +import { addWinAsarIntegrity } from "./electronWin.js" +import { FFMPEGInjector } from "./injectFFMPEG.js" export type ElectronPlatformName = "darwin" | "linux" | "win32" | "mas" diff --git a/packages/app-builder-lib/src/electron/injectFFMPEG.ts b/packages/app-builder-lib/src/electron/injectFFMPEG.ts index 18e5385e72e..a4d1d7b0683 100644 --- a/packages/app-builder-lib/src/electron/injectFFMPEG.ts +++ b/packages/app-builder-lib/src/electron/injectFFMPEG.ts @@ -1,10 +1,10 @@ import { log } from "builder-util" import * as fs from "fs-extra" import * as path from "path" -import { Platform } from "../core" -import { PrepareApplicationStageDirectoryOptions } from "../Framework" -import { downloadElectronArtifact } from "../util/electronGet" -import { ElectronBrandingOptions } from "./ElectronFramework" +import { Platform } from "../core.js" +import { PrepareApplicationStageDirectoryOptions } from "../Framework.js" +import { downloadElectronArtifact } from "../util/electronGet.js" +import { ElectronBrandingOptions } from "./ElectronFramework.js" export class FFMPEGInjector { constructor( diff --git a/packages/app-builder-lib/src/fileTransformer.ts b/packages/app-builder-lib/src/fileTransformer.ts index 076108a026a..2b57a0b32cf 100644 --- a/packages/app-builder-lib/src/fileTransformer.ts +++ b/packages/app-builder-lib/src/fileTransformer.ts @@ -1,8 +1,8 @@ import { debug, FileTransformer, log } from "builder-util" import { readFile } from "fs/promises" import * as path from "path" -import { Configuration } from "./configuration" -import { Packager } from "./packager" +import { Configuration } from "./configuration.js" +import { Packager } from "./packager.js" import { deepAssign } from "builder-util-runtime" /** @internal */ diff --git a/packages/app-builder-lib/src/index.ts b/packages/app-builder-lib/src/index.ts index a2c467fe76d..4d07e14047e 100644 --- a/packages/app-builder-lib/src/index.ts +++ b/packages/app-builder-lib/src/index.ts @@ -1,13 +1,13 @@ import { InvalidConfigurationError, executeFinally, log } from "builder-util" import { asArray } from "builder-util-runtime" import { PublishOptions } from "electron-publish" -import { Packager } from "./packager" -import { PackagerOptions } from "./packagerApi" -import { PublishManager } from "./publish/PublishManager" -import { resolveFunction } from "./util/resolve" +import { Packager } from "./packager.js" +import { PackagerOptions } from "./packagerApi.js" +import { PublishManager } from "./publish/PublishManager.js" +import { resolveFunction } from "./util/resolve.js" export { Arch, archFromString, getArchSuffix } from "builder-util" -export { AppInfo } from "./appInfo" +export { AppInfo } from "./appInfo.js" export { AfterExtractContext, AfterPackContext, @@ -20,7 +20,7 @@ export { MetadataDirectories, PackContext, ToolsetConfig, -} from "./configuration" +} from "./configuration.js" export { BeforeBuildContext, CompressionLevel, @@ -32,12 +32,12 @@ export { TargetConfigType, TargetConfiguration, TargetSpecificOptions, -} from "./core" -export { ElectronBrandingOptions, ElectronPlatformName } from "./electron/ElectronFramework" -export { ElectronDownloadOptions } from "./util/electronGet" -export { AppXOptions } from "./options/AppXOptions" -export { CommonWindowsInstallerConfiguration } from "./options/CommonWindowsInstallerConfiguration" -export { FileAssociation } from "./options/FileAssociation" +} from "./core.js" +export { ElectronBrandingOptions, ElectronPlatformName } from "./electron/ElectronFramework.js" +export { ElectronDownloadOptions } from "./util/electronGet.js" +export { AppXOptions } from "./options/AppXOptions.js" +export { CommonWindowsInstallerConfiguration } from "./options/CommonWindowsInstallerConfiguration.js" +export { FileAssociation } from "./options/FileAssociation.js" export { AppImageOptions, CommonLinuxOptions, @@ -48,23 +48,23 @@ export { LinuxTargetSpecificOptions, PacmanOptions, RpmOptions, -} from "./options/linuxOptions" -export type { DmgContent, DmgOptions, DmgWindow, MacConfiguration, MacOsTargetName, MasConfiguration } from "./options/macOptions" -export { AuthorMetadata, Metadata, RepositoryInfo } from "./options/metadata" -export { MsiOptions } from "./options/MsiOptions" -export { MsiWrappedOptions } from "./options/MsiWrappedOptions" -export { BackgroundAlignment, BackgroundScaling, PkgBackgroundOptions, PkgOptions } from "./options/pkgOptions" -export { AsarOptions, FileSet, FilesBuildOptions, PlatformSpecificBuildOptions, Protocol, ReleaseInfo } from "./options/PlatformSpecificBuildOptions" -export { PlugDescriptor, SlotDescriptor, SnapcraftOptions, SnapOptions } from "./options/SnapOptions" -export { SquirrelWindowsOptions } from "./options/SquirrelWindowsOptions" -export { WindowsAzureSigningConfiguration, WindowsConfiguration, WindowsSigntoolConfiguration } from "./options/winOptions" -export { BuildResult, Packager } from "./packager" -export { ArtifactBuildStarted, ArtifactCreated, PackagerOptions } from "./packagerApi" -export { CommonNsisOptions, CustomNsisBinary, NsisOptions, NsisWebOptions, PortableOptions } from "./targets/nsis/nsisOptions" +} from "./options/linuxOptions.js" +export type { DmgContent, DmgOptions, DmgWindow, MacConfiguration, MacOsTargetName, MasConfiguration } from "./options/macOptions.js" +export { AuthorMetadata, Metadata, RepositoryInfo } from "./options/metadata.js" +export { MsiOptions } from "./options/MsiOptions.js" +export { MsiWrappedOptions } from "./options/MsiWrappedOptions.js" +export { BackgroundAlignment, BackgroundScaling, PkgBackgroundOptions, PkgOptions } from "./options/pkgOptions.js" +export { AsarOptions, FileSet, FilesBuildOptions, PlatformSpecificBuildOptions, Protocol, ReleaseInfo } from "./options/PlatformSpecificBuildOptions.js" +export { PlugDescriptor, SlotDescriptor, SnapcraftOptions, SnapOptions } from "./options/SnapOptions.js" +export { SquirrelWindowsOptions } from "./options/SquirrelWindowsOptions.js" +export { WindowsAzureSigningConfiguration, WindowsConfiguration, WindowsSigntoolConfiguration } from "./options/winOptions.js" +export { BuildResult, Packager } from "./packager.js" +export { ArtifactBuildStarted, ArtifactCreated, PackagerOptions } from "./packagerApi.js" +export { CommonNsisOptions, CustomNsisBinary, NsisOptions, NsisWebOptions, PortableOptions } from "./targets/nsis/nsisOptions.js" export { CancellationToken, ProgressInfo } from "builder-util-runtime" export { PublishOptions, UploadTask } from "electron-publish" -export { WindowsSignOptions } from "./codeSign/windowsCodeSign" +export { WindowsSignOptions } from "./codeSign/windowsCodeSign.js" export { CertificateFromStoreInfo, CustomWindowsSign, @@ -72,15 +72,15 @@ export { FileCodeSigningInfo, WindowsSignTaskConfiguration, WindowsSignToolManager, -} from "./codeSign/windowsSignToolManager" -export { ToolInfo } from "./util/bundledTool" -export { ForgeOptions, buildForge } from "./forge-maker" -export { Framework, PrepareApplicationStageDirectoryOptions } from "./Framework" -export { LinuxPackager } from "./linuxPackager" -export { CustomMacSign, CustomMacSignOptions, MacPackager } from "./macPackager" -export { PlatformPackager } from "./platformPackager" -export { PublishManager } from "./publish/PublishManager" -export { WinPackager } from "./winPackager" +} from "./codeSign/windowsSignToolManager.js" +export { ToolInfo } from "./util/bundledTool.js" +export { ForgeOptions, buildForge } from "./forge-maker.js" +export { Framework, PrepareApplicationStageDirectoryOptions } from "./Framework.js" +export { LinuxPackager } from "./linuxPackager.js" +export { CustomMacSign, CustomMacSignOptions, MacPackager } from "./macPackager.js" +export { PlatformPackager } from "./platformPackager.js" +export { PublishManager } from "./publish/PublishManager.js" +export { WinPackager } from "./winPackager.js" const expectedOptions = new Set(["publish", "targets", "mac", "win", "linux", "projectDir", "platformPackagerFactory", "config", "effectiveOptionComputed", "prepackaged"]) diff --git a/packages/app-builder-lib/src/linuxPackager.ts b/packages/app-builder-lib/src/linuxPackager.ts index 1d75314f67e..a4ac01024ae 100644 --- a/packages/app-builder-lib/src/linuxPackager.ts +++ b/packages/app-builder-lib/src/linuxPackager.ts @@ -1,15 +1,15 @@ import { Arch } from "builder-util" import { sanitizeFileName } from "builder-util/internal" -import { DIR_TARGET, Platform, Target } from "./core" -import { LinuxConfiguration } from "./options/linuxOptions" -import { Packager } from "./packager" -import { PlatformPackager } from "./platformPackager" -import AppImageTarget from "./targets/appimage/AppImageTarget" -import FlatpakTarget from "./targets/FlatpakTarget" -import FpmTarget from "./targets/FpmTarget" -import { LinuxTargetHelper } from "./targets/LinuxTargetHelper" -import SnapTarget from "./targets/snap/SnapTarget" -import { createCommonTarget } from "./targets/targetFactory" +import { DIR_TARGET, Platform, Target } from "./core.js" +import { LinuxConfiguration } from "./options/linuxOptions.js" +import { Packager } from "./packager.js" +import { PlatformPackager } from "./platformPackager.js" +import AppImageTarget from "./targets/appimage/AppImageTarget.js" +import FlatpakTarget from "./targets/FlatpakTarget.js" +import FpmTarget from "./targets/FpmTarget.js" +import { LinuxTargetHelper } from "./targets/LinuxTargetHelper.js" +import SnapTarget from "./targets/snap/SnapTarget.js" +import { createCommonTarget } from "./targets/targetFactory.js" export class LinuxPackager extends PlatformPackager { readonly executableName: string diff --git a/packages/app-builder-lib/src/mac/MacTargetHelper.ts b/packages/app-builder-lib/src/mac/MacTargetHelper.ts index 21c8bbcc6e2..1d5e5019f08 100644 --- a/packages/app-builder-lib/src/mac/MacTargetHelper.ts +++ b/packages/app-builder-lib/src/mac/MacTargetHelper.ts @@ -2,13 +2,13 @@ import type { NotarizeOptionsNotaryTool, NotaryToolKeychainCredentials } from "@ import type { PerFileSignOptions, SigningDistributionType, SignOptions } from "@electron/osx-sign/dist/cjs/types" import type { Identity } from "@electron/osx-sign/dist/cjs/util-identities" import { Arch, InvalidConfigurationError, log, statOrNull } from "builder-util" -import { dynamicImport } from "../util/dynamicImport" +import { dynamicImport } from "../util/dynamicImport.js" import { Nullish } from "builder-util-runtime" import * as path from "path" -import { CertType, findIdentity, reportError } from "../codeSign/macCodeSign" -import type { MacPackager } from "../macPackager" -import { MacConfiguration, MasConfiguration } from "../options/macOptions" -import { getTemplatePath } from "../util/pathManager" +import { CertType, findIdentity, reportError } from "../codeSign/macCodeSign.js" +import type { MacPackager } from "../macPackager.js" +import { MacConfiguration, MasConfiguration } from "../options/macOptions.js" +import { getTemplatePath } from "../util/pathManager.js" export type PlatformType = "mas" | "mas-dev" | "mac" diff --git a/packages/app-builder-lib/src/macPackager.ts b/packages/app-builder-lib/src/macPackager.ts index ecc6690b8f6..a6afd79761a 100644 --- a/packages/app-builder-lib/src/macPackager.ts +++ b/packages/app-builder-lib/src/macPackager.ts @@ -20,21 +20,21 @@ import * as fs from "fs/promises" import { mkdir, readdir } from "fs/promises" import { Lazy } from "lazy-val" import * as path from "path" -import { AppInfo } from "./appInfo" -import { CodeSigningInfo, createKeychain, CreateKeychainOptions, isSignAllowed, removeKeychain, sign } from "./codeSign/macCodeSign" -import { DIR_TARGET, Platform, Target } from "./core" -import { AfterPackContext, ElectronPlatformName } from "./index" -import { MacTargetHelper, PlatformType } from "./mac/MacTargetHelper" -import { MacConfiguration, MasConfiguration } from "./options/macOptions" -import { Packager } from "./packager" -import { chooseNotNull, DoPackOptions, PlatformPackager } from "./platformPackager" -import { ArchiveTarget } from "./targets/ArchiveTarget" -import { PkgTarget, prepareProductBuildArgs } from "./targets/pkg" -import { createCommonTarget, NoOpTarget } from "./targets/targetFactory" -import { dynamicImport } from "./util/dynamicImport" -import { isMacOsHighSierra } from "./util/macosVersion" -import { expandMacro as doExpandMacro } from "./util/macroExpander" -import { resolveFunction } from "./util/resolve" +import { AppInfo } from "./appInfo.js" +import { CodeSigningInfo, createKeychain, CreateKeychainOptions, isSignAllowed, removeKeychain, sign } from "./codeSign/macCodeSign.js" +import { DIR_TARGET, Platform, Target } from "./core.js" +import { AfterPackContext, ElectronPlatformName } from "./index.js" +import { MacTargetHelper, PlatformType } from "./mac/MacTargetHelper.js" +import { MacConfiguration, MasConfiguration } from "./options/macOptions.js" +import { Packager } from "./packager.js" +import { chooseNotNull, DoPackOptions, PlatformPackager } from "./platformPackager.js" +import { ArchiveTarget } from "./targets/ArchiveTarget.js" +import { PkgTarget, prepareProductBuildArgs } from "./targets/pkg.js" +import { createCommonTarget, NoOpTarget } from "./targets/targetFactory.js" +import { dynamicImport } from "./util/dynamicImport.js" +import { isMacOsHighSierra } from "./util/macosVersion.js" +import { expandMacro as doExpandMacro } from "./util/macroExpander.js" +import { resolveFunction } from "./util/resolve.js" export type CustomMacSignOptions = SignOptions export type CustomMacSign = (configuration: CustomMacSignOptions, packager: MacPackager) => Promise diff --git a/packages/app-builder-lib/src/node-module-collector/pnpmNodeModulesCollector.ts b/packages/app-builder-lib/src/node-module-collector/pnpmNodeModulesCollector.ts index 5c92a31e79b..0e3926d8e3e 100644 --- a/packages/app-builder-lib/src/node-module-collector/pnpmNodeModulesCollector.ts +++ b/packages/app-builder-lib/src/node-module-collector/pnpmNodeModulesCollector.ts @@ -1,8 +1,8 @@ import { Lazy } from "lazy-val" -import { LogMessageByKey, type Package } from "./moduleManager" -import { NodeModulesCollector } from "./nodeModulesCollector" -import { getPackageManagerCommand, PM } from "./packageManager" -import { PnpmDependency } from "./types" +import { LogMessageByKey, type Package } from "./moduleManager.js" +import { NodeModulesCollector } from "./nodeModulesCollector.js" +import { getPackageManagerCommand, PM } from "./packageManager.js" +import { PnpmDependency } from "./types.js" export class PnpmNodeModulesCollector extends NodeModulesCollector { public readonly installOptions = { diff --git a/packages/app-builder-lib/src/options/SnapOptions.ts b/packages/app-builder-lib/src/options/SnapOptions.ts index 709851cdcc6..cd49dafb167 100644 --- a/packages/app-builder-lib/src/options/SnapOptions.ts +++ b/packages/app-builder-lib/src/options/SnapOptions.ts @@ -1,6 +1,6 @@ -import { TargetSpecificOptions } from "../core" -import { SnapcraftYAML } from "../targets/snap/snapcraft" -import { CommonLinuxOptions } from "./linuxOptions" +import { TargetSpecificOptions } from "../core.js" +import { SnapcraftYAML } from "../targets/snap/snapcraft.js" +import { CommonLinuxOptions } from "./linuxOptions.js" /** * New-style snap configuration. Use this via the `snapcraft` key in your build config. diff --git a/packages/app-builder-lib/src/packager.ts b/packages/app-builder-lib/src/packager.ts index eb88b555134..5aeca9b5eb1 100644 --- a/packages/app-builder-lib/src/packager.ts +++ b/packages/app-builder-lib/src/packager.ts @@ -21,28 +21,28 @@ import { isCI } from "ci-info" import { Lazy } from "lazy-val" import { release as getOsRelease } from "os" import * as path from "path" -import { AppInfo } from "./appInfo" -import { readAsarJson } from "./asar/asar" -import { AfterExtractContext, AfterPackContext, BeforePackContext, Configuration, Hook } from "./configuration" -import { Platform, SourceRepositoryInfo, Target } from "./core" -import { createElectronFrameworkSupport } from "./electron/ElectronFramework" -import { Framework } from "./Framework" -import { LibUiFramework } from "./frameworks/LibUiFramework" -import { Metadata } from "./options/metadata" -import { ArtifactBuildStarted, ArtifactCreated, PackagerOptions } from "./packagerApi" -import { PlatformPackager } from "./platformPackager" -import { ProtonFramework } from "./ProtonFramework" -import { computeArchToTargetNamesMap, createTargets, NoOpTarget } from "./targets/targetFactory" -import { computeDefaultAppDirectory, getConfig, validateConfiguration } from "./util/config/config" -import { expandMacro } from "./util/macroExpander" -import { checkMetadata, readPackageJson } from "./util/packageMetadata" -import { getRepositoryInfo } from "./util/repositoryInfo" -import { resolveFunction } from "./util/resolve" -import { installOrRebuild, nodeGypRebuild } from "./util/yarn" -import { PACKAGE_VERSION } from "./version" -import { AsyncEventEmitter, HandlerType } from "./util/asyncEventEmitter" +import { AppInfo } from "./appInfo.js" +import { readAsarJson } from "./asar/asar.js" +import { AfterExtractContext, AfterPackContext, BeforePackContext, Configuration, Hook } from "./configuration.js" +import { Platform, SourceRepositoryInfo, Target } from "./core.js" +import { createElectronFrameworkSupport } from "./electron/ElectronFramework.js" +import { Framework } from "./Framework.js" +import { LibUiFramework } from "./frameworks/LibUiFramework.js" +import { Metadata } from "./options/metadata.js" +import { ArtifactBuildStarted, ArtifactCreated, PackagerOptions } from "./packagerApi.js" +import { PlatformPackager } from "./platformPackager.js" +import { ProtonFramework } from "./ProtonFramework.js" +import { computeArchToTargetNamesMap, createTargets, NoOpTarget } from "./targets/targetFactory.js" +import { computeDefaultAppDirectory, getConfig, validateConfiguration } from "./util/config/config.js" +import { expandMacro } from "./util/macroExpander.js" +import { checkMetadata, readPackageJson } from "./util/packageMetadata.js" +import { getRepositoryInfo } from "./util/repositoryInfo.js" +import { resolveFunction } from "./util/resolve.js" +import { installOrRebuild, nodeGypRebuild } from "./util/yarn.js" +import { PACKAGE_VERSION } from "./version.js" +import { AsyncEventEmitter, HandlerType } from "./util/asyncEventEmitter.js" import asyncPool from "tiny-async-pool" -import { determinePackageManagerEnv, PM } from "./node-module-collector" +import { determinePackageManagerEnv, PM } from "./node-module-collector/index.js" async function createFrameworkInfo(configuration: Configuration, packager: Packager): Promise { let framework = configuration.framework @@ -571,17 +571,17 @@ export class Packager { switch (platform) { case Platform.MAC: { - const helperClass = (await import("./macPackager")).MacPackager + const helperClass = (await import("./macPackager.js")).MacPackager return new helperClass(this) } case Platform.WINDOWS: { - const helperClass = (await import("./winPackager")).WinPackager + const helperClass = (await import("./winPackager.js")).WinPackager return new helperClass(this) } case Platform.LINUX: - return new (await import("./linuxPackager")).LinuxPackager(this) + return new (await import("./linuxPackager.js")).LinuxPackager(this) default: throw new Error(`Unknown platform: ${platform}`) diff --git a/packages/app-builder-lib/src/platformPackager.ts b/packages/app-builder-lib/src/platformPackager.ts index b526dde4ef4..89883a0c224 100644 --- a/packages/app-builder-lib/src/platformPackager.ts +++ b/packages/app-builder-lib/src/platformPackager.ts @@ -1,5 +1,5 @@ import type { FuseConfig, FuseV1Config } from "@electron/fuses" -import { dynamicImport } from "./util/dynamicImport" +import { dynamicImport } from "./util/dynamicImport.js" import { Arch, asArray, @@ -23,15 +23,15 @@ import { Minimatch } from "minimatch" import * as path from "path" import * as fs from "fs/promises" import * as os from "os" -import { AppInfo } from "./appInfo" -import { checkFileInArchive } from "./asar/asarFileChecker" -import { AsarPackager } from "./asar/asarUtil" -import { AsarIntegrity, computeData } from "./asar/integrity" -import { FuseOptionsV1 } from "./configuration" -import { copyFiles, FileMatcher, getFileMatchers, GetFileMatchersOptions, getMainFileMatchers, getNodeModuleFileMatcher } from "./fileMatcher" -import { createTransformer, isElectronCompileUsed } from "./fileTransformer" -import { Framework, isElectronBased } from "./Framework" -import { Platform } from "./core" +import { AppInfo } from "./appInfo.js" +import { checkFileInArchive } from "./asar/asarFileChecker.js" +import { AsarPackager } from "./asar/asarUtil.js" +import { AsarIntegrity, computeData } from "./asar/integrity.js" +import { FuseOptionsV1 } from "./configuration.js" +import { copyFiles, FileMatcher, getFileMatchers, GetFileMatchersOptions, getMainFileMatchers, getNodeModuleFileMatcher } from "./fileMatcher.js" +import { createTransformer, isElectronCompileUsed } from "./fileTransformer.js" +import { Framework, isElectronBased } from "./Framework.js" +import { Platform } from "./core.js" // Type-only barrel import: keeping these erased avoids a runtime cycle // (index.ts → linuxPackager.ts → platformPackager.ts) that breaks ESM class init. import type { @@ -47,11 +47,11 @@ import type { PlatformSpecificBuildOptions, Target, TargetSpecificOptions, -} from "./index" -import { computeFileSets, computeNodeModuleFileSets, copyAppFiles, ELECTRON_COMPILE_SHIM_FILENAME, transformFiles } from "./util/appFileCopier" -import { convertIcon, IconFormat, IconInfo } from "./util/iconConverter" -import { expandMacro as doExpandMacro } from "./util/macroExpander" -import { AssetCatalogResult, generateAssetCatalogForIcon } from "./util/macosIconComposer" +} from "./index.js" +import { computeFileSets, computeNodeModuleFileSets, copyAppFiles, ELECTRON_COMPILE_SHIM_FILENAME, transformFiles } from "./util/appFileCopier.js" +import { convertIcon, IconFormat, IconInfo } from "./util/iconConverter.js" +import { expandMacro as doExpandMacro } from "./util/macroExpander.js" +import { AssetCatalogResult, generateAssetCatalogForIcon } from "./util/macosIconComposer.js" export type DoPackOptions = { outDir: string diff --git a/packages/app-builder-lib/src/targets/AppxTarget.ts b/packages/app-builder-lib/src/targets/AppxTarget.ts index cce652a6ce0..5f31b017453 100644 --- a/packages/app-builder-lib/src/targets/AppxTarget.ts +++ b/packages/app-builder-lib/src/targets/AppxTarget.ts @@ -2,15 +2,15 @@ import { Arch, asArray, copyOrLinkFile, InvalidConfigurationError, log, walk } f import { deepAssign, Nullish } from "builder-util-runtime" import { emptyDir, readdir, readFile, writeFile } from "fs-extra" import * as path from "path" -import { AppXOptions } from "../" -import { getWindowsKitsBundle } from "../toolsets/windows" -import { Target } from "../core" -import { getTemplatePath } from "../util/pathManager" -import { VmManager } from "../vm/vm" -import { WinPackager } from "../winPackager" -import { createStageDir } from "./targetUtil" -import { isOldWin6 } from "../toolsets/windows" -import { CAPABILITIES, isValidCapabilityName } from "./AppxCapabilities" +import { AppXOptions } from "../index.js" +import { getWindowsKitsBundle } from "../toolsets/windows.js" +import { Target } from "../core.js" +import { getTemplatePath } from "../util/pathManager.js" +import { VmManager } from "../vm/vm.js" +import { WinPackager } from "../winPackager.js" +import { createStageDir } from "./targetUtil.js" +import { isOldWin6 } from "../toolsets/windows.js" +import { CAPABILITIES, isValidCapabilityName } from "./AppxCapabilities.js" const APPX_ASSETS_DIR_NAME = "appx" diff --git a/packages/app-builder-lib/src/targets/FlatpakTarget.ts b/packages/app-builder-lib/src/targets/FlatpakTarget.ts index 7850654455e..0abfb051904 100644 --- a/packages/app-builder-lib/src/targets/FlatpakTarget.ts +++ b/packages/app-builder-lib/src/targets/FlatpakTarget.ts @@ -2,12 +2,12 @@ import { bundle as bundleFlatpak, FlatpakBundlerBuildOptions, FlatpakManifest } import { Arch, copyFile, toLinuxArchString } from "builder-util" import { chmod, outputFile } from "fs-extra" import * as path from "path" -import { Target } from "../core" -import { LinuxPackager } from "../linuxPackager" -import { FlatpakOptions } from "../options/linuxOptions" -import { getNotLocalizedLicenseFile } from "../util/license" -import { LinuxTargetHelper } from "./LinuxTargetHelper" -import { createStageDir, StageDir } from "./targetUtil" +import { Target } from "../core.js" +import { LinuxPackager } from "../linuxPackager.js" +import { FlatpakOptions } from "../options/linuxOptions.js" +import { getNotLocalizedLicenseFile } from "../util/license.js" +import { LinuxTargetHelper } from "./LinuxTargetHelper.js" +import { createStageDir, StageDir } from "./targetUtil.js" import { deepAssign, Nullish } from "builder-util-runtime" export default class FlatpakTarget extends Target { diff --git a/packages/app-builder-lib/src/targets/FpmTarget.ts b/packages/app-builder-lib/src/targets/FpmTarget.ts index a9ed853b3d1..3cfd683d787 100644 --- a/packages/app-builder-lib/src/targets/FpmTarget.ts +++ b/packages/app-builder-lib/src/targets/FpmTarget.ts @@ -3,20 +3,20 @@ import { deepAssign, Nullish } from "builder-util-runtime" import { copyFile, outputFile, stat } from "fs-extra" import { mkdir, readFile } from "fs/promises" import * as path from "path" -import { smarten } from "../appInfo" -import { Target } from "../core" -import * as errorMessages from "../errorMessages" -import { LinuxPackager } from "../linuxPackager" -import { DebOptions, LinuxTargetSpecificOptions } from "../options/linuxOptions" -import { ArtifactCreated } from "../packagerApi" -import { getAppUpdatePublishConfiguration } from "../publish/PublishManager" +import { smarten } from "../appInfo.js" +import { Target } from "../core.js" +import * as errorMessages from "../errorMessages.js" +import { LinuxPackager } from "../linuxPackager.js" +import { DebOptions, LinuxTargetSpecificOptions } from "../options/linuxOptions.js" +import { ArtifactCreated } from "../packagerApi.js" +import { getAppUpdatePublishConfiguration } from "../publish/PublishManager.js" import { objectToArgs } from "builder-util-runtime" -import { computeEnv } from "../util/bundledTool" -import { hashFile } from "../util/hash" -import { isMacOsSierra } from "../util/macosVersion" -import { getTemplatePath } from "../util/pathManager" -import { installPrefix, LinuxTargetHelper } from "./LinuxTargetHelper" -import { getFpmPath, getLinuxToolsPath } from "../toolsets/linux" +import { computeEnv } from "../util/bundledTool.js" +import { hashFile } from "../util/hash.js" +import { isMacOsSierra } from "../util/macosVersion.js" +import { getTemplatePath } from "../util/pathManager.js" +import { installPrefix, LinuxTargetHelper } from "./LinuxTargetHelper.js" +import { getFpmPath, getLinuxToolsPath } from "../toolsets/linux.js" interface FpmOptions { name: string diff --git a/packages/app-builder-lib/src/targets/LinuxTargetHelper.ts b/packages/app-builder-lib/src/targets/LinuxTargetHelper.ts index 3dabfc78d3c..19138bd2b8c 100644 --- a/packages/app-builder-lib/src/targets/LinuxTargetHelper.ts +++ b/packages/app-builder-lib/src/targets/LinuxTargetHelper.ts @@ -4,14 +4,14 @@ import { outputFile } from "fs-extra" import { Lazy } from "lazy-val" import { join } from "path" import * as semver from "semver" -import { CompressionLevel } from "../core" -import { LinuxPackager } from "../linuxPackager" -import { CommonLinuxOptions } from "../options/linuxOptions" -import { SnapCore } from "./snap/SnapTarget" -import { SnapCore24 } from "./snap/core24" -import { SnapCoreCustom } from "./snap/coreCustom" -import { SnapCoreLegacy } from "./snap/coreLegacy" -import { IconInfo } from "../util/iconConverter" +import { CompressionLevel } from "../core.js" +import { LinuxPackager } from "../linuxPackager.js" +import { CommonLinuxOptions } from "../options/linuxOptions.js" +import { SnapCore } from "./snap/SnapTarget.js" +import { SnapCore24 } from "./snap/core24.js" +import { SnapCoreCustom } from "./snap/coreCustom.js" +import { SnapCoreLegacy } from "./snap/coreLegacy.js" +import { IconInfo } from "../util/iconConverter.js" /** * Escape a string value for use in a freedesktop .desktop file string field diff --git a/packages/app-builder-lib/src/targets/MsiTarget.ts b/packages/app-builder-lib/src/targets/MsiTarget.ts index c5d83b715da..d7c0595e6b9 100644 --- a/packages/app-builder-lib/src/targets/MsiTarget.ts +++ b/packages/app-builder-lib/src/targets/MsiTarget.ts @@ -5,17 +5,17 @@ import * as ejs from "ejs" import { readFile, writeFile } from "fs/promises" import { Lazy } from "lazy-val" import * as path from "path" -import { MsiOptions } from "../" -import { getBinFromUrl } from "../binDownload" -import { Target } from "../core" -import { DesktopShortcutCreationPolicy, FinalCommonWindowsInstallerOptions, getEffectiveOptions } from "../options/CommonWindowsInstallerConfiguration" -import { normalizeExt } from "../platformPackager" -import { getTemplatePath } from "../util/pathManager" -import { VmManager } from "../vm/vm" -import { WineVmManager } from "../vm/WineVm" -import { WinPackager } from "../winPackager" -import { withToolsetLock } from "../util/toolsetLock" -import { createStageDir, getWindowsInstallationDirName } from "./targetUtil" +import { MsiOptions } from "../index.js" +import { getBinFromUrl } from "../binDownload.js" +import { Target } from "../core.js" +import { DesktopShortcutCreationPolicy, FinalCommonWindowsInstallerOptions, getEffectiveOptions } from "../options/CommonWindowsInstallerConfiguration.js" +import { normalizeExt } from "../platformPackager.js" +import { getTemplatePath } from "../util/pathManager.js" +import { VmManager } from "../vm/vm.js" +import { WineVmManager } from "../vm/WineVm.js" +import { WinPackager } from "../winPackager.js" +import { withToolsetLock } from "../util/toolsetLock.js" +import { createStageDir, getWindowsInstallationDirName } from "./targetUtil.js" const ELECTRON_BUILDER_UPGRADE_CODE_NS_UUID = UUID.parse("d752fe43-5d44-44d5-9fc9-6dd1bf19d5cc") const ROOT_DIR_ID = "APPLICATIONFOLDER" diff --git a/packages/app-builder-lib/src/targets/appimage/AppImageTarget.ts b/packages/app-builder-lib/src/targets/appimage/AppImageTarget.ts index 754a27e4161..117ada25ca9 100644 --- a/packages/app-builder-lib/src/targets/appimage/AppImageTarget.ts +++ b/packages/app-builder-lib/src/targets/appimage/AppImageTarget.ts @@ -2,14 +2,14 @@ import { Arch, log, serializeToYaml } from "builder-util" import { outputFile } from "fs-extra" import { Lazy } from "lazy-val" import * as path from "path" -import { Target } from "../../core" -import { LinuxPackager } from "../../linuxPackager" -import { AppImageOptions } from "../../options/linuxOptions" -import { getAppUpdatePublishConfiguration } from "../../publish/PublishManager" -import { getNotLocalizedLicenseFile } from "../../util/license" -import { LinuxTargetHelper } from "../LinuxTargetHelper" -import { createStageDir } from "../targetUtil" -import { buildLegacyFuse2AppImage, buildStaticRuntimeAppImage } from "./appImageUtil" +import { Target } from "../../core.js" +import { LinuxPackager } from "../../linuxPackager.js" +import { AppImageOptions } from "../../options/linuxOptions.js" +import { getAppUpdatePublishConfiguration } from "../../publish/PublishManager.js" +import { getNotLocalizedLicenseFile } from "../../util/license.js" +import { LinuxTargetHelper } from "../LinuxTargetHelper.js" +import { createStageDir } from "../targetUtil.js" +import { buildLegacyFuse2AppImage, buildStaticRuntimeAppImage } from "./appImageUtil.js" import { BlockMapDataHolder, deepAssign } from "builder-util-runtime" // https://unix.stackexchange.com/questions/375191/append-to-sub-directory-inside-squashfs-file diff --git a/packages/app-builder-lib/src/targets/appimage/appImageUtil.ts b/packages/app-builder-lib/src/targets/appimage/appImageUtil.ts index 1fdc44a79a7..3f93ac326a4 100644 --- a/packages/app-builder-lib/src/targets/appimage/appImageUtil.ts +++ b/packages/app-builder-lib/src/targets/appimage/appImageUtil.ts @@ -1,14 +1,14 @@ import { Arch, copyDir, copyFile, exec, exists, InvalidConfigurationError, log } from "builder-util" import * as fs from "fs-extra" import * as path from "path" -import { FileAssociation } from "../../options/FileAssociation" -import { getAppImageTools } from "../../toolsets/linux" -import { copyIcons, copyMimeTypes } from "./appLauncher" -import { appendBlockmap } from "../differentialUpdateInfoBuilder" +import { FileAssociation } from "../../options/FileAssociation.js" +import { getAppImageTools } from "../../toolsets/linux.js" +import { copyIcons, copyMimeTypes } from "./appLauncher.js" +import { appendBlockmap } from "../differentialUpdateInfoBuilder.js" import { BlockMapDataHolder } from "builder-util-runtime" -import { APP_RUN_ENTRYPOINT } from "./AppImageTarget" -import { ToolsetConfig } from "../../configuration" -import { IconInfo } from "../../util/iconConverter" +import { APP_RUN_ENTRYPOINT } from "./AppImageTarget.js" +import { ToolsetConfig } from "../../configuration.js" +import { IconInfo } from "../../util/iconConverter.js" interface Options { productName: string diff --git a/packages/app-builder-lib/src/targets/archive.ts b/packages/app-builder-lib/src/targets/archive.ts index 15691e52856..de6ea42d075 100644 --- a/packages/app-builder-lib/src/targets/archive.ts +++ b/packages/app-builder-lib/src/targets/archive.ts @@ -3,8 +3,8 @@ import { move } from "fs-extra" import * as path from "path" import { create } from "tar" import { TmpDir } from "temp-file" -import { CompressionLevel } from "../core" -import { getLinuxToolsMacToolset } from "../toolsets/linux" +import { CompressionLevel } from "../core.js" +import { getLinuxToolsMacToolset } from "../toolsets/linux.js" import type { TarOptionsWithAliasesAsync } from "tar" const ALLOWED_7Z_FILTERS = new Set(["BCJ", "BCJ2", "ARM", "ARMT", "IA64", "PPC", "SPARC", "DELTA"]) diff --git a/packages/app-builder-lib/src/targets/differentialUpdateInfoBuilder.ts b/packages/app-builder-lib/src/targets/differentialUpdateInfoBuilder.ts index 644e8c56e1f..0743e11d594 100644 --- a/packages/app-builder-lib/src/targets/differentialUpdateInfoBuilder.ts +++ b/packages/app-builder-lib/src/targets/differentialUpdateInfoBuilder.ts @@ -1,10 +1,10 @@ import { log } from "builder-util" import { BlockMapDataHolder, PackageFileInfo } from "builder-util-runtime" import * as path from "path" -import { Target } from "../core" -import { PlatformPackager } from "../platformPackager" -import { ArchiveOptions } from "./archive" -import { buildBlockMap } from "./blockmap/blockmap" +import { Target } from "../core.js" +import { PlatformPackager } from "../platformPackager.js" +import { ArchiveOptions } from "./archive.js" +import { buildBlockMap } from "./blockmap/blockmap.js" export const BLOCK_MAP_FILE_SUFFIX = ".blockmap" diff --git a/packages/app-builder-lib/src/targets/nsis/NsisTarget.ts b/packages/app-builder-lib/src/targets/nsis/NsisTarget.ts index 960822409f8..96a69667a21 100644 --- a/packages/app-builder-lib/src/targets/nsis/NsisTarget.ts +++ b/packages/app-builder-lib/src/targets/nsis/NsisTarget.ts @@ -20,26 +20,26 @@ import _debug from "debug" import * as fs from "fs" import { readFile, stat, unlink } from "fs-extra" import * as path from "path" -import { Target } from "../../core" -import { DesktopShortcutCreationPolicy, getEffectiveOptions } from "../../options/CommonWindowsInstallerConfiguration" -import { chooseNotNull, computeSafeArtifactNameIfNeeded, normalizeExt } from "../../platformPackager" -import { hashFile } from "../../util/hash" -import { isMacOsCatalina } from "../../util/macosVersion" -import { time } from "../../util/timer" -import { execWine } from "../../wine" -import { WinPackager } from "../../winPackager" -import { archive, ArchiveOptions } from "../archive" -import { appendBlockmap, configureDifferentialAwareArchiveOptions, createBlockmap, createNsisWebDifferentialUpdateInfo } from "../differentialUpdateInfoBuilder" -import { getWindowsInstallationAppPackageName, getWindowsInstallationDirName } from "../targetUtil" -import { Commands } from "./Commands" -import { Defines } from "./Defines" -import { addCustomMessageFileInclude, createAddLangsMacro, LangConfigurator } from "./nsisLang" -import { computeLicensePage } from "./nsisLicense" -import { NsisOptions, PortableOptions } from "./nsisOptions" -import { NsisScriptGenerator, nsisEscapeString } from "./nsisScriptGenerator" -import { getMakeNsisPath, getNsisPluginsPath } from "../../toolsets/windows" -import { AppPackageHelper, nsisTemplatesDir, UninstallerReader } from "./nsisUtil" -import { checkMakensisOutput, verifyInstallerSize } from "./nsisValidation" +import { Target } from "../../core.js" +import { DesktopShortcutCreationPolicy, getEffectiveOptions } from "../../options/CommonWindowsInstallerConfiguration.js" +import { chooseNotNull, computeSafeArtifactNameIfNeeded, normalizeExt } from "../../platformPackager.js" +import { hashFile } from "../../util/hash.js" +import { isMacOsCatalina } from "../../util/macosVersion.js" +import { time } from "../../util/timer.js" +import { execWine } from "../../wine.js" +import { WinPackager } from "../../winPackager.js" +import { archive, ArchiveOptions } from "../archive.js" +import { appendBlockmap, configureDifferentialAwareArchiveOptions, createBlockmap, createNsisWebDifferentialUpdateInfo } from "../differentialUpdateInfoBuilder.js" +import { getWindowsInstallationAppPackageName, getWindowsInstallationDirName } from "../targetUtil.js" +import { Commands } from "./Commands.js" +import { Defines } from "./Defines.js" +import { addCustomMessageFileInclude, createAddLangsMacro, LangConfigurator } from "./nsisLang.js" +import { computeLicensePage } from "./nsisLicense.js" +import { NsisOptions, PortableOptions } from "./nsisOptions.js" +import { NsisScriptGenerator, nsisEscapeString } from "./nsisScriptGenerator.js" +import { getMakeNsisPath, getNsisPluginsPath } from "../../toolsets/windows.js" +import { AppPackageHelper, nsisTemplatesDir, UninstallerReader } from "./nsisUtil.js" +import { checkMakensisOutput, verifyInstallerSize } from "./nsisValidation.js" const debug = _debug("electron-builder:nsis") diff --git a/packages/app-builder-lib/src/targets/nsis/nsisUtil.ts b/packages/app-builder-lib/src/targets/nsis/nsisUtil.ts index a4713a06348..28ba8984e28 100644 --- a/packages/app-builder-lib/src/targets/nsis/nsisUtil.ts +++ b/packages/app-builder-lib/src/targets/nsis/nsisUtil.ts @@ -3,9 +3,9 @@ import { PackageFileInfo } from "builder-util-runtime" import * as fs from "fs/promises" import * as path from "path" import * as zlib from "zlib" -import { getNsisElevatePath } from "../../toolsets/windows" -import { getTemplatePath } from "../../util/pathManager" -import { NsisTarget } from "./NsisTarget" +import { getNsisElevatePath } from "../../toolsets/windows.js" +import { getTemplatePath } from "../../util/pathManager.js" +import { NsisTarget } from "./NsisTarget.js" export const nsisTemplatesDir = getTemplatePath("nsis") diff --git a/packages/app-builder-lib/src/targets/nsis/nsisValidation.ts b/packages/app-builder-lib/src/targets/nsis/nsisValidation.ts index 9164f694a12..2758b1449ff 100644 --- a/packages/app-builder-lib/src/targets/nsis/nsisValidation.ts +++ b/packages/app-builder-lib/src/targets/nsis/nsisValidation.ts @@ -1,5 +1,5 @@ import { ExecError, statOrNull } from "builder-util" -import type { Defines } from "./Defines" +import type { Defines } from "./Defines.js" /** * Validates makensis stdout/stderr after a zero-exit run. diff --git a/packages/app-builder-lib/src/targets/snap/SnapTarget.ts b/packages/app-builder-lib/src/targets/snap/SnapTarget.ts index e860f36f3b6..465112786ac 100644 --- a/packages/app-builder-lib/src/targets/snap/SnapTarget.ts +++ b/packages/app-builder-lib/src/targets/snap/SnapTarget.ts @@ -1,13 +1,13 @@ import { Arch, log } from "builder-util" import { deepAssign, SnapStoreOptions } from "builder-util-runtime" import * as path from "path" -import { Configuration } from "../../configuration" -import { Publish, Target } from "../../core" -import { LinuxPackager } from "../../linuxPackager" -import { SnapcraftOptions, SnapOptions } from "../../options/SnapOptions" -import { LinuxTargetHelper } from "../LinuxTargetHelper" -import { createStageDirPath } from "../targetUtil" -import { SnapcraftYAML } from "./snapcraft" +import { Configuration } from "../../configuration.js" +import { Publish, Target } from "../../core.js" +import { LinuxPackager } from "../../linuxPackager.js" +import { SnapcraftOptions, SnapOptions } from "../../options/SnapOptions.js" +import { LinuxTargetHelper } from "../LinuxTargetHelper.js" +import { createStageDirPath } from "../targetUtil.js" +import { SnapcraftYAML } from "./snapcraft.js" /** Abstract base for all snap build strategies (core24, legacy core18/20/22, custom pass-through). */ export abstract class SnapCore { diff --git a/packages/app-builder-lib/src/targets/snap/core24.ts b/packages/app-builder-lib/src/targets/snap/core24.ts index 577015a518d..1c68bd569f1 100644 --- a/packages/app-builder-lib/src/targets/snap/core24.ts +++ b/packages/app-builder-lib/src/targets/snap/core24.ts @@ -1,10 +1,10 @@ import { Arch, archFromString, copyDir, InvalidConfigurationError, log, removeNullish, toLinuxArchString } from "builder-util" import { copy, mkdir, readdir, writeFile } from "fs-extra" import * as path from "path" -import { PlugDescriptor, SlotDescriptor, SnapOptions24 } from "../../options/SnapOptions" -import { SnapCore } from "./SnapTarget" -import { App, Part, SnapcraftYAML } from "./snapcraft" -import { buildSnap, DEFAULT_STAGE_PACKAGES, SNAPCRAFT_YAML_OPTIONS } from "./snapcraftBuilder" +import { PlugDescriptor, SlotDescriptor, SnapOptions24 } from "../../options/SnapOptions.js" +import { SnapCore } from "./SnapTarget.js" +import { App, Part, SnapcraftYAML } from "./snapcraft.js" +import { buildSnap, DEFAULT_STAGE_PACKAGES, SNAPCRAFT_YAML_OPTIONS } from "./snapcraftBuilder.js" import * as yaml from "js-yaml" import { deepAssign, isValidKey, Nullish } from "builder-util-runtime" diff --git a/packages/app-builder-lib/src/targets/snap/coreCustom.ts b/packages/app-builder-lib/src/targets/snap/coreCustom.ts index 7a9576dfeeb..89df38e7e36 100644 --- a/packages/app-builder-lib/src/targets/snap/coreCustom.ts +++ b/packages/app-builder-lib/src/targets/snap/coreCustom.ts @@ -2,10 +2,10 @@ import { Arch, InvalidConfigurationError, log } from "builder-util" import { outputFile, readFile } from "fs-extra" import * as yaml from "js-yaml" import * as path from "path" -import { SnapOptionsCustom } from "../../options/SnapOptions" -import { SnapCore } from "./SnapTarget" -import { SnapcraftYAML } from "./snapcraft" -import { buildSnap, SNAPCRAFT_YAML_OPTIONS } from "./snapcraftBuilder" +import { SnapOptionsCustom } from "../../options/SnapOptions.js" +import { SnapCore } from "./SnapTarget.js" +import { SnapcraftYAML } from "./snapcraft.js" +import { buildSnap, SNAPCRAFT_YAML_OPTIONS } from "./snapcraftBuilder.js" /** * Pass-through snap builder for `base: "custom"`. diff --git a/packages/app-builder-lib/src/targets/snap/coreLegacy.ts b/packages/app-builder-lib/src/targets/snap/coreLegacy.ts index 8eba3ed300f..4f36cb135b7 100644 --- a/packages/app-builder-lib/src/targets/snap/coreLegacy.ts +++ b/packages/app-builder-lib/src/targets/snap/coreLegacy.ts @@ -3,11 +3,11 @@ import { asArray, deepAssign, isValidKey, Nullish } from "builder-util-runtime" import { outputFile, readFile } from "fs-extra" import { load } from "js-yaml" import * as path from "path" -import { PlugDescriptor, SnapOptions } from "../../options/SnapOptions" -import { getTemplatePath } from "../../util/pathManager" -import { SnapCore } from "./SnapTarget" -import { SnapcraftYAML } from "./snapcraft" -import { DEFAULT_STAGE_PACKAGES } from "./snapcraftBuilder" +import { PlugDescriptor, SnapOptions } from "../../options/SnapOptions.js" +import { getTemplatePath } from "../../util/pathManager.js" +import { SnapCore } from "./SnapTarget.js" +import { SnapcraftYAML } from "./snapcraft.js" +import { DEFAULT_STAGE_PACKAGES } from "./snapcraftBuilder.js" // Handles core18/core20/core22 snaps via the app-builder binary (not the snapcraft CLI). // See: https://github.com/develar/app-builder/blob/master/pkg/package-format/snap diff --git a/packages/app-builder-lib/src/targets/snap/snapcraftBuilder.ts b/packages/app-builder-lib/src/targets/snap/snapcraftBuilder.ts index edcfcf8eea9..2b8b0936a3b 100644 --- a/packages/app-builder-lib/src/targets/snap/snapcraftBuilder.ts +++ b/packages/app-builder-lib/src/targets/snap/snapcraftBuilder.ts @@ -5,9 +5,9 @@ import { resolveSnapCredentials } from "electron-publish" import { copyFile, ensureDir, pathExists, readdir, remove } from "fs-extra" import * as path from "path" import * as util from "util" -import { LinuxPackager } from "../../linuxPackager" -import { RemoteBuildOptions } from "../../options/SnapOptions" -import { SnapcraftYAML } from "./snapcraft" +import { LinuxPackager } from "../../linuxPackager.js" +import { RemoteBuildOptions } from "../../options/SnapOptions.js" +import { SnapcraftYAML } from "./snapcraft.js" import { deepAssign } from "builder-util-runtime" const execAsync = util.promisify(childProcess.exec) diff --git a/packages/app-builder-lib/src/toolsets/icons.ts b/packages/app-builder-lib/src/toolsets/icons.ts index c7955d6f536..dd25fc931c7 100644 --- a/packages/app-builder-lib/src/toolsets/icons.ts +++ b/packages/app-builder-lib/src/toolsets/icons.ts @@ -1,6 +1,6 @@ import { exec, exists, InvalidConfigurationError, resolveEnvToolsetPath, sanitizeDirPath } from "builder-util" import * as path from "path" -import { downloadBuilderToolset } from "../util/electronGet" +import { downloadBuilderToolset } from "../util/electronGet.js" const iconsToolsChecksums = { "icons-bundle.tar.gz": "a96b7322c2562dfa53e675c343b17326b79709b793fe8023314584a7891d2b44", diff --git a/packages/app-builder-lib/src/toolsets/linux.ts b/packages/app-builder-lib/src/toolsets/linux.ts index c5c98a29903..b48ec49d46a 100644 --- a/packages/app-builder-lib/src/toolsets/linux.ts +++ b/packages/app-builder-lib/src/toolsets/linux.ts @@ -1,8 +1,8 @@ import { Arch, exists, resolveEnvToolsetPath, use } from "builder-util" import * as path from "path" -import { getBinFromUrl } from "../binDownload" -import { ToolsetConfig } from "../configuration" -import { downloadBuilderToolset } from "../util/electronGet" +import { getBinFromUrl } from "../binDownload.js" +import { ToolsetConfig } from "../configuration.js" +import { downloadBuilderToolset } from "../util/electronGet.js" const fpmChecksums = { "fpm-1.17.0-ruby-3.4.3-darwin-arm64.7z": "6cc6d4785875bc7d79bdf52ca146080a4c300e1d663376ae79615fb548030ede", diff --git a/packages/app-builder-lib/src/toolsets/windows.ts b/packages/app-builder-lib/src/toolsets/windows.ts index 477568b9a1c..0b8c2498303 100644 --- a/packages/app-builder-lib/src/toolsets/windows.ts +++ b/packages/app-builder-lib/src/toolsets/windows.ts @@ -3,11 +3,11 @@ import { Nullish } from "builder-util-runtime" import { stat } from "fs-extra" import * as os from "os" import * as path from "path" -import { getBinFromCustomLoc, getBinFromUrl } from "../binDownload" -import { ToolsetConfig } from "../configuration" -import { ToolInfo, computeToolEnv } from "../util/bundledTool" -import { downloadBuilderToolset } from "../util/electronGet" -import { isUseSystemSigncode } from "../util/flags" +import { getBinFromCustomLoc, getBinFromUrl } from "../binDownload.js" +import { ToolsetConfig } from "../configuration.js" +import { ToolInfo, computeToolEnv } from "../util/bundledTool.js" +import { downloadBuilderToolset } from "../util/electronGet.js" +import { isUseSystemSigncode } from "../util/flags.js" function getLegacyWinCodeSignBin(): Promise { return downloadBuilderToolset({ diff --git a/packages/app-builder-lib/src/util/config/config.ts b/packages/app-builder-lib/src/util/config/config.ts index 51ddfdc880b..5f01f8506d5 100644 --- a/packages/app-builder-lib/src/util/config/config.ts +++ b/packages/app-builder-lib/src/util/config/config.ts @@ -3,12 +3,12 @@ import { deepAssign, Nullish } from "builder-util-runtime" import { readJson } from "fs-extra" import { Lazy } from "lazy-val" import * as path from "path" -import { Configuration } from "../../configuration" -import { FileSet } from "../../options/PlatformSpecificBuildOptions" -import { reactCra } from "../../presets/rectCra" -import { PACKAGE_VERSION } from "../../version" -import { getConfig as _getConfig, loadParentConfig, orNullIfFileNotExist, ReadConfigRequest } from "./load" -import { validateSchema } from "./schemaValidator" +import { Configuration } from "../../configuration.js" +import { FileSet } from "../../options/PlatformSpecificBuildOptions.js" +import { reactCra } from "../../presets/rectCra.js" +import { PACKAGE_VERSION } from "../../version.js" +import { getConfig as _getConfig, loadParentConfig, orNullIfFileNotExist, ReadConfigRequest } from "./load.js" +import { validateSchema } from "./schemaValidator.js" // https://github.com/electron-userland/electron-builder/issues/1847 function mergePublish(config: Configuration, configFromOptions: Configuration) { @@ -214,7 +214,7 @@ function getDefaultConfig(): Configuration { } } -const schemeDataPromise = new Lazy(() => readJson(path.join(__dirname, "..", "..", "..", "scheme.json"))) +const schemeDataPromise = new Lazy(() => readJson(path.join(import.meta.dirname, "..", "..", "..", "scheme.json"))) export async function validateConfiguration(config: Configuration, debugLogger: DebugLogger) { const extraMetadata = config.extraMetadata diff --git a/packages/app-builder-lib/src/util/electronGet.ts b/packages/app-builder-lib/src/util/electronGet.ts index 600f2218d09..a943f3a6e89 100644 --- a/packages/app-builder-lib/src/util/electronGet.ts +++ b/packages/app-builder-lib/src/util/electronGet.ts @@ -19,8 +19,8 @@ import { pipeline } from "stream/promises" import * as tar from "tar" import * as unzipper from "unzipper" import { HttpError, retry } from "builder-util-runtime" -import { ElectronPlatformName } from "../electron/ElectronFramework" -import { CacheState, cleanupCacheDirectory, computeCacheMetadata, readCacheStateFile, validateCacheDirectory, writeCacheState } from "./cacheState" +import { ElectronPlatformName } from "../electron/ElectronFramework.js" +import { CacheState, cleanupCacheDirectory, computeCacheMetadata, readCacheStateFile, validateCacheDirectory, writeCacheState } from "./cacheState.js" import type { ProgressBar } from "electron-publish" export type ElectronGetOptions = Omit< diff --git a/packages/app-builder-lib/src/util/iconConverter.ts b/packages/app-builder-lib/src/util/iconConverter.ts index 189f026f2a6..c53c4a6ee14 100644 --- a/packages/app-builder-lib/src/util/iconConverter.ts +++ b/packages/app-builder-lib/src/util/iconConverter.ts @@ -1,6 +1,6 @@ import { mkdir, readFile, readdir, rename, stat } from "fs/promises" import * as path from "path" -import { runIconsTool } from "../toolsets/icons" +import { runIconsTool } from "../toolsets/icons.js" class IconConversionError extends Error { constructor( diff --git a/packages/app-builder-lib/src/util/pathManager.ts b/packages/app-builder-lib/src/util/pathManager.ts index fd773552d05..40ce6a3ff67 100644 --- a/packages/app-builder-lib/src/util/pathManager.ts +++ b/packages/app-builder-lib/src/util/pathManager.ts @@ -1,7 +1,6 @@ import * as path from "path" -// __dirname is the dist/ folder in the bundle; templates/ and vendor/ are one level up -const root = path.join(__dirname, "..") +const root = path.join(import.meta.dirname, "..") export function getTemplatePath(file: string) { return path.join(root, "templates", file) diff --git a/packages/app-builder-lib/src/util/rebuild.ts b/packages/app-builder-lib/src/util/rebuild.ts index b2aed4d80e1..ac872d779dc 100644 --- a/packages/app-builder-lib/src/util/rebuild.ts +++ b/packages/app-builder-lib/src/util/rebuild.ts @@ -7,7 +7,7 @@ export const rebuild = async (options: RebuildOptions): Promise => { const { arch } = options log.info({ arch }, `installing native dependencies`) - const child = cp.fork(path.resolve(__dirname, "../helpers/remote-rebuild.js"), [JSON.stringify(options)], { + const child = cp.fork(path.resolve(import.meta.dirname, "../helpers/remote-rebuild.js"), [JSON.stringify(options)], { stdio: ["pipe", "pipe", "pipe", "ipc"], }) diff --git a/packages/app-builder-lib/src/util/resEdit.ts b/packages/app-builder-lib/src/util/resEdit.ts index e67c5cbed3b..4e5646b79be 100644 --- a/packages/app-builder-lib/src/util/resEdit.ts +++ b/packages/app-builder-lib/src/util/resEdit.ts @@ -1,7 +1,7 @@ import { log } from "builder-util" import { readFile, writeFile } from "fs/promises" import { Data, NtExecutable, NtExecutableResource, Resource } from "resedit" -import { RequestedExecutionLevel } from "../options/winOptions" +import { RequestedExecutionLevel } from "../options/winOptions.js" export interface ResourceEditOptions { file: string diff --git a/packages/app-builder-lib/src/util/resolve.ts b/packages/app-builder-lib/src/util/resolve.ts index 4149fd768ef..f01bf72f71b 100644 --- a/packages/app-builder-lib/src/util/resolve.ts +++ b/packages/app-builder-lib/src/util/resolve.ts @@ -2,7 +2,7 @@ import { InvalidConfigurationError, log } from "builder-util" import debug from "debug" import { realpath } from "fs/promises" import * as path from "path" -import * as requireMaybe from "../../helpers/dynamic-import" +import * as requireMaybe from "../../helpers/dynamic-import.js" export async function resolveModule(type: string | undefined, name: string): Promise { try { diff --git a/packages/app-builder-lib/src/util/yarn.ts b/packages/app-builder-lib/src/util/yarn.ts index df9f89299c2..fcc697c25b0 100644 --- a/packages/app-builder-lib/src/util/yarn.ts +++ b/packages/app-builder-lib/src/util/yarn.ts @@ -2,10 +2,10 @@ import { asArray, log, spawn, stripSensitiveEnvVars } from "builder-util" import { pathExists } from "fs-extra" import { homedir } from "os" import * as path from "path" -import { Configuration } from "../configuration" -import { PM, getPackageManagerCommand } from "../node-module-collector" -import { detectPackageManager } from "../node-module-collector/packageManager" -import { rebuild as remoteRebuild } from "./rebuild" +import { Configuration } from "../configuration.js" +import { PM, getPackageManagerCommand } from "../node-module-collector/index.js" +import { detectPackageManager } from "../node-module-collector/packageManager.js" +import { rebuild as remoteRebuild } from "./rebuild.js" import * as which from "which" import type { RebuildOptions as ElectronRebuildOptions } from "@electron/rebuild" import { Nullish } from "builder-util-runtime" diff --git a/packages/app-builder-lib/src/vm/vm.ts b/packages/app-builder-lib/src/vm/vm.ts index 893fd231e78..39df09d3304 100644 --- a/packages/app-builder-lib/src/vm/vm.ts +++ b/packages/app-builder-lib/src/vm/vm.ts @@ -57,7 +57,7 @@ export async function getLinuxVm(debugLogger: DebugLogger): Promise it.os === "ubuntu") if (vmList.length === 0) { return undefined diff --git a/packages/app-builder-lib/src/winPackager.ts b/packages/app-builder-lib/src/winPackager.ts index 8ca32fe9542..71ced0538c1 100644 --- a/packages/app-builder-lib/src/winPackager.ts +++ b/packages/app-builder-lib/src/winPackager.ts @@ -5,28 +5,28 @@ import { createHash } from "crypto" import { readdir } from "fs/promises" import { Lazy } from "lazy-val" import * as path from "path" -import { readAsarHeader } from "./asar/asar" -import { SignManager } from "./codeSign/signManager" -import { signWindows, WindowsSignOptions } from "./codeSign/windowsCodeSign" -import { WindowsSignAzureManager } from "./codeSign/windowsSignAzureManager" -import { FileCodeSigningInfo, WindowsSignToolManager } from "./codeSign/windowsSignToolManager" -import { AfterPackContext } from "./configuration" -import { DIR_TARGET, Platform, Target } from "./core" -import { RequestedExecutionLevel, WindowsConfiguration } from "./options/winOptions" -import { Packager } from "./packager" -import { chooseNotNull, PlatformPackager } from "./platformPackager" -import AppXTarget from "./targets/AppxTarget" -import MsiTarget from "./targets/MsiTarget" -import MsiWrappedTarget from "./targets/MsiWrappedTarget" -import { NsisTarget } from "./targets/nsis/NsisTarget" -import { AppPackageHelper, CopyElevateHelper } from "./targets/nsis/nsisUtil" -import { WebInstallerTarget } from "./targets/nsis/WebInstallerTarget" -import { createCommonTarget } from "./targets/targetFactory" -import { BuildCacheManager, digest } from "./util/cacheManager" -import { isBuildCacheEnabled } from "./util/flags" -import { editWindowsResources, ResourceEditOptions } from "./util/resEdit" -import { time } from "./util/timer" -import { getWindowsVm, VmManager } from "./vm/vm" +import { readAsarHeader } from "./asar/asar.js" +import { SignManager } from "./codeSign/signManager.js" +import { signWindows, WindowsSignOptions } from "./codeSign/windowsCodeSign.js" +import { WindowsSignAzureManager } from "./codeSign/windowsSignAzureManager.js" +import { FileCodeSigningInfo, WindowsSignToolManager } from "./codeSign/windowsSignToolManager.js" +import { AfterPackContext } from "./configuration.js" +import { DIR_TARGET, Platform, Target } from "./core.js" +import { RequestedExecutionLevel, WindowsConfiguration } from "./options/winOptions.js" +import { Packager } from "./packager.js" +import { chooseNotNull, PlatformPackager } from "./platformPackager.js" +import AppXTarget from "./targets/AppxTarget.js" +import MsiTarget from "./targets/MsiTarget.js" +import MsiWrappedTarget from "./targets/MsiWrappedTarget.js" +import { NsisTarget } from "./targets/nsis/NsisTarget.js" +import { AppPackageHelper, CopyElevateHelper } from "./targets/nsis/nsisUtil.js" +import { WebInstallerTarget } from "./targets/nsis/WebInstallerTarget.js" +import { createCommonTarget } from "./targets/targetFactory.js" +import { BuildCacheManager, digest } from "./util/cacheManager.js" +import { isBuildCacheEnabled } from "./util/flags.js" +import { editWindowsResources, ResourceEditOptions } from "./util/resEdit.js" +import { time } from "./util/timer.js" +import { getWindowsVm, VmManager } from "./vm/vm.js" export class WinPackager extends PlatformPackager { _iconPath = new Lazy(() => this.getOrConvertIcon("ico")) diff --git a/packages/app-builder-lib/tsconfig.build.json b/packages/app-builder-lib/tsconfig.build.json new file mode 100644 index 00000000000..a7e8002eb6d --- /dev/null +++ b/packages/app-builder-lib/tsconfig.build.json @@ -0,0 +1,8 @@ +{ + "extends": "../tsconfig-build.json", + "compilerOptions": { + "outDir": "dist", + "rootDir": "src" + }, + "include": ["src/**/*.ts", "../../typings/*.d.ts"] +} diff --git a/packages/app-builder-lib/tsup.config.ts b/packages/app-builder-lib/tsup.config.ts deleted file mode 100644 index c4c7178f04a..00000000000 --- a/packages/app-builder-lib/tsup.config.ts +++ /dev/null @@ -1,11 +0,0 @@ -import { defineConfig } from "tsup" -import { baseConfig } from "../../tsup.config.base" - -export default defineConfig({ - ...baseConfig, - entry: { - index: "src/index.ts", - indexInternal: "src/indexInternal.ts", - }, - shims: true, -}) diff --git a/packages/builder-util-runtime/package.json b/packages/builder-util-runtime/package.json index 37ba989ec86..bffc796f9a4 100644 --- a/packages/builder-util-runtime/package.json +++ b/packages/builder-util-runtime/package.json @@ -1,17 +1,17 @@ { "name": "builder-util-runtime", "version": "9.6.3", + "type": "module", "main": "./dist/index.js", - "module": "./dist/index.mjs", "exports": { ".": { "types": "./dist/index.d.ts", - "import": "./dist/index.mjs", + "import": "./dist/index.js", "require": "./dist/index.js" }, "./internal": { "types": "./dist/indexInternal.d.ts", - "import": "./dist/indexInternal.mjs", + "import": "./dist/indexInternal.js", "require": "./dist/indexInternal.js" }, "./src/*": "./src/*.ts" @@ -29,8 +29,8 @@ "dist" ], "scripts": { - "build": "tsup", - "watch": "tsup --watch" + "build": "node -e \"require('fs').rmSync('dist',{recursive:true,force:true})\" && tsc -p tsconfig.build.json", + "watch": "tsc -p tsconfig.build.json --watch" }, "engines": { "node": ">=22.12.0" diff --git a/packages/builder-util-runtime/src/index.ts b/packages/builder-util-runtime/src/index.ts index 92f16bc975e..62d0972778a 100644 --- a/packages/builder-util-runtime/src/index.ts +++ b/packages/builder-util-runtime/src/index.ts @@ -1,6 +1,6 @@ -export { BlockMap } from "./blockMapApi" -export { CancellationError, CancellationToken } from "./CancellationToken" -export { newError } from "./error" +export { BlockMap } from "./blockMapApi.js" +export { CancellationError, CancellationToken } from "./CancellationToken.js" +export { newError } from "./error.js" export { configureRequestOptions, configureRequestOptionsFromUrl, @@ -14,9 +14,9 @@ export { RequestHeaders, safeGetHeader, safeStringifyJson, -} from "./httpExecutor" -export { MemoLazy } from "./MemoLazy" -export { ProgressCallbackTransform, ProgressInfo } from "./ProgressCallbackTransform" +} from "./httpExecutor.js" +export { MemoLazy } from "./MemoLazy.js" +export { ProgressCallbackTransform, ProgressInfo } from "./ProgressCallbackTransform.js" export { AllPublishOptions, BaseS3Options, @@ -36,13 +36,13 @@ export { SpacesOptions, GitlabReleaseInfo, GitlabReleaseAsset, -} from "./publishOptions" -export { retry } from "./retry" -export { parseDn } from "./rfc2253Parser" -export { BlockMapDataHolder, PackageFileInfo, ReleaseNoteInfo, UpdateFileInfo, UpdateInfo, WindowsUpdateInfo } from "./updateInfo" -export { UUID } from "./uuid" -export { parseXml, XElement } from "./xml" -export { isValidKey, mapToObject, asArray, Nullish, deepAssign, objectToArgs } from "./objects" +} from "./publishOptions.js" +export { retry } from "./retry.js" +export { parseDn } from "./rfc2253Parser.js" +export { BlockMapDataHolder, PackageFileInfo, ReleaseNoteInfo, UpdateFileInfo, UpdateInfo, WindowsUpdateInfo } from "./updateInfo.js" +export { UUID } from "./uuid.js" +export { parseXml, XElement } from "./xml.js" +export { isValidKey, mapToObject, asArray, Nullish, deepAssign, objectToArgs } from "./objects.js" // nsis export const CURRENT_APP_INSTALLER_FILE_NAME = "installer.exe" diff --git a/packages/builder-util-runtime/tsconfig.build.json b/packages/builder-util-runtime/tsconfig.build.json new file mode 100644 index 00000000000..43ec572d771 --- /dev/null +++ b/packages/builder-util-runtime/tsconfig.build.json @@ -0,0 +1,8 @@ +{ + "extends": "../tsconfig-build.json", + "compilerOptions": { + "outDir": "dist", + "rootDir": "src" + }, + "include": ["src/**/*.ts"] +} diff --git a/packages/builder-util-runtime/tsup.config.ts b/packages/builder-util-runtime/tsup.config.ts deleted file mode 100644 index b3c53d6ae98..00000000000 --- a/packages/builder-util-runtime/tsup.config.ts +++ /dev/null @@ -1,10 +0,0 @@ -import { defineConfig } from "tsup" -import { baseConfig } from "../../tsup.config.base" - -export default defineConfig({ - ...baseConfig, - entry: { - index: "src/index.ts", - indexInternal: "src/indexInternal.ts", - }, -}) diff --git a/packages/builder-util/package.json b/packages/builder-util/package.json index 84874c3bd3a..3eb03cceccc 100644 --- a/packages/builder-util/package.json +++ b/packages/builder-util/package.json @@ -1,17 +1,17 @@ { "name": "builder-util", "version": "26.14.0", + "type": "module", "main": "./dist/util.js", - "module": "./dist/util.mjs", "exports": { ".": { "types": "./dist/util.d.ts", - "import": "./dist/util.mjs", + "import": "./dist/util.js", "require": "./dist/util.js" }, "./internal": { "types": "./dist/indexInternal.d.ts", - "import": "./dist/indexInternal.mjs", + "import": "./dist/indexInternal.js", "require": "./dist/indexInternal.js" }, "./src/*": "./src/*.ts" @@ -29,8 +29,8 @@ "dist" ], "scripts": { - "build": "tsup", - "watch": "tsup --watch" + "build": "node -e \"require('fs').rmSync('dist',{recursive:true,force:true})\" && tsc -p tsconfig.build.json", + "watch": "tsc -p tsconfig.build.json --watch" }, "dependencies": { "7zip-bin": "~5.2.0", diff --git a/packages/builder-util/src/DebugLogger.ts b/packages/builder-util/src/DebugLogger.ts index 2ee55f8311e..e498d3700f1 100644 --- a/packages/builder-util/src/DebugLogger.ts +++ b/packages/builder-util/src/DebugLogger.ts @@ -1,5 +1,5 @@ import { outputFile } from "fs-extra" -import { serializeToYaml } from "./util" +import { serializeToYaml } from "./util.js" import { mapToObject } from "builder-util-runtime" export class DebugLogger { diff --git a/packages/builder-util/src/cscLink.ts b/packages/builder-util/src/cscLink.ts index c5859143e22..3c2c79e9ea9 100644 --- a/packages/builder-util/src/cscLink.ts +++ b/packages/builder-util/src/cscLink.ts @@ -1,7 +1,7 @@ import { readFile } from "fs/promises" import { homedir } from "os" import * as path from "path" -import { statOrNull } from "./fs" +import { statOrNull } from "./fs.js" /** Decodes a base64 CSC link to a Buffer, or returns null if the value is not base64. */ export function decodeCscLinkBase64(link: string): Buffer | null { diff --git a/packages/builder-util/src/envUtil.ts b/packages/builder-util/src/envUtil.ts index 6a5b5827daa..d6cca8c64a5 100644 --- a/packages/builder-util/src/envUtil.ts +++ b/packages/builder-util/src/envUtil.ts @@ -1,7 +1,7 @@ import * as path from "path" -import { isEmptyOrSpaces } from "./stringUtil" -import { log } from "./log" -import { exists } from "./fs" +import { isEmptyOrSpaces } from "./stringUtil.js" +import { log } from "./log.js" +import { exists } from "./fs.js" import { stat } from "fs/promises" export function resolveEnvShellValue(envVarName: string): string | null { diff --git a/packages/builder-util/src/nodeHttpExecutor.ts b/packages/builder-util/src/nodeHttpExecutor.ts index 3cb77c69614..bcd68909dd0 100644 --- a/packages/builder-util/src/nodeHttpExecutor.ts +++ b/packages/builder-util/src/nodeHttpExecutor.ts @@ -3,7 +3,7 @@ import { ClientRequest, request as httpRequest } from "http" import { HttpProxyAgent } from "http-proxy-agent" import * as https from "https" import { HttpsProxyAgent } from "https-proxy-agent" -import { isEmptyOrSpaces } from "./stringUtil" +import { isEmptyOrSpaces } from "./stringUtil.js" export class NodeHttpExecutor extends HttpExecutor { // noinspection JSMethodCanBeStatic diff --git a/packages/builder-util/src/util.ts b/packages/builder-util/src/util.ts index fb0a9f34007..f6fdf2dee77 100644 --- a/packages/builder-util/src/util.ts +++ b/packages/builder-util/src/util.ts @@ -8,36 +8,36 @@ import _debug from "debug" import { dump } from "js-yaml" import * as path from "path" import { install as installSourceMap } from "source-map-support" -import { getPath7za } from "./7za" -import { debug, log } from "./log" -import { exists } from "./fs" +import { getPath7za } from "./7za.js" +import { debug, log } from "./log.js" +import { exists } from "./fs.js" import { mkdir } from "fs-extra" -import { isEmptyOrSpaces } from "./stringUtil" +import { isEmptyOrSpaces } from "./stringUtil.js" if (process.env.JEST_WORKER_ID == null) { installSourceMap() } -export { isEmptyOrSpaces } from "./stringUtil" +export { isEmptyOrSpaces } from "./stringUtil.js" export { safeStringifyJson, retry } from "builder-util-runtime" export { TmpDir } from "temp-file" -export * from "./arch" -export { Arch, archFromString, ArchType, defaultArchFromString, getArchCliNames, getArchSuffix, toLinuxArchString } from "./arch" -export { AsyncTaskManager } from "./asyncTaskManager" -export { DebugLogger } from "./DebugLogger" -export * from "./log" -export { buildGotProxyAgent, httpExecutor, NodeHttpExecutor } from "./nodeHttpExecutor" -export * from "./promise" -export * from "./envUtil" -export { parseValidEnvVarUrl } from "./envUtil" +export * from "./arch.js" +export { Arch, archFromString, ArchType, defaultArchFromString, getArchCliNames, getArchSuffix, toLinuxArchString } from "./arch.js" +export { AsyncTaskManager } from "./asyncTaskManager.js" +export { DebugLogger } from "./DebugLogger.js" +export * from "./log.js" +export { buildGotProxyAgent, httpExecutor, NodeHttpExecutor } from "./nodeHttpExecutor.js" +export * from "./promise.js" +export * from "./envUtil.js" +export { parseValidEnvVarUrl } from "./envUtil.js" export { asArray, deepAssign, isValidKey } from "builder-util-runtime" -export * from "./fs" +export * from "./fs.js" -export { generateKsuid } from "./ksuid" -export { loadCscLink, decodeCscLinkBase64, resolveCscLinkPath } from "./cscLink" +export { generateKsuid } from "./ksuid.js" +export { loadCscLink, decodeCscLinkBase64, resolveCscLinkPath } from "./cscLink.js" -export { getPath7x, getPath7za } from "./7za" +export { getPath7x, getPath7za } from "./7za.js" export const debug7z = _debug("electron-builder:7z") diff --git a/packages/builder-util/tsconfig.build.json b/packages/builder-util/tsconfig.build.json new file mode 100644 index 00000000000..43ec572d771 --- /dev/null +++ b/packages/builder-util/tsconfig.build.json @@ -0,0 +1,8 @@ +{ + "extends": "../tsconfig-build.json", + "compilerOptions": { + "outDir": "dist", + "rootDir": "src" + }, + "include": ["src/**/*.ts"] +} diff --git a/packages/builder-util/tsup.config.ts b/packages/builder-util/tsup.config.ts deleted file mode 100644 index 31a81a43285..00000000000 --- a/packages/builder-util/tsup.config.ts +++ /dev/null @@ -1,10 +0,0 @@ -import { defineConfig } from "tsup" -import { baseConfig } from "../../tsup.config.base" - -export default defineConfig({ - ...baseConfig, - entry: { - util: "src/util.ts", - indexInternal: "src/indexInternal.ts", - }, -}) diff --git a/packages/dmg-builder/package.json b/packages/dmg-builder/package.json index 8de1639a269..9f4eb68e352 100644 --- a/packages/dmg-builder/package.json +++ b/packages/dmg-builder/package.json @@ -1,12 +1,12 @@ { "name": "dmg-builder", "version": "26.14.0", + "type": "module", "main": "./dist/dmgUtil.js", - "module": "./dist/dmgUtil.mjs", "exports": { ".": { "types": "./dist/dmgUtil.d.ts", - "import": "./dist/dmgUtil.mjs", + "import": "./dist/dmgUtil.js", "require": "./dist/dmgUtil.js" }, "./src/*": "./src/*.ts" @@ -28,8 +28,8 @@ "node": ">=22.12.0" }, "scripts": { - "build": "tsup", - "watch": "tsup --watch" + "build": "node -e \"require('fs').rmSync('dist',{recursive:true,force:true})\" && tsc -p tsconfig.build.json", + "watch": "tsc -p tsconfig.build.json --watch" }, "dependencies": { "app-builder-lib": "workspace:*", diff --git a/packages/dmg-builder/src/dmg.ts b/packages/dmg-builder/src/dmg.ts index 57e9cff6c46..b5da0dd991f 100644 --- a/packages/dmg-builder/src/dmg.ts +++ b/packages/dmg-builder/src/dmg.ts @@ -4,10 +4,10 @@ import { Arch, exec, getArchSuffix, InvalidConfigurationError, isEmptyOrSpaces } import { sanitizeFileName } from "builder-util/internal" import { release as getOsRelease } from "os" import * as path from "path" -import type { DmgBuildLicenseConfig } from "./dmgLicense" -import { addLicenseToDmg } from "./dmgLicense" -import { computeBackground, customizeDmg } from "./dmgUtil" -import { hdiUtil } from "./hdiuil" +import type { DmgBuildLicenseConfig } from "./dmgLicense.js" +import { addLicenseToDmg } from "./dmgLicense.js" +import { computeBackground, customizeDmg } from "./dmgUtil.js" +import { hdiUtil } from "./hdiuil.js" export interface DmgBuildConfig { title: string diff --git a/packages/dmg-builder/src/dmgLicense.ts b/packages/dmg-builder/src/dmgLicense.ts index 12a1ba80bfa..775635cf0fc 100644 --- a/packages/dmg-builder/src/dmgLicense.ts +++ b/packages/dmg-builder/src/dmgLicense.ts @@ -3,7 +3,7 @@ import { getLicenseFiles } from "app-builder-lib/internal" import { InvalidConfigurationError } from "builder-util" import { readFile, readJson } from "fs-extra" import { CORE_SCHEMA, load } from "js-yaml" -import { getLicenseButtonsFile } from "./licenseButtons" +import { getLicenseButtonsFile } from "./licenseButtons.js" export type DmgBuildLicenseConfig = { "default-language": string diff --git a/packages/dmg-builder/src/dmgUtil.ts b/packages/dmg-builder/src/dmgUtil.ts index 202b4ffac6f..13f87cf7aaa 100644 --- a/packages/dmg-builder/src/dmgUtil.ts +++ b/packages/dmg-builder/src/dmgUtil.ts @@ -4,13 +4,13 @@ import { exec, executeFinally, exists, InvalidConfigurationError, isEmptyOrSpace import { stat } from "fs/promises" import { writeFile } from "fs-extra" import * as path from "path" -import { DmgBuildConfig } from "./dmg" -import type { DmgBuildLicenseConfig } from "./dmgLicense" -import { hdiUtil, hdiUtilWithStdin, hdiutilTransientExitCodes } from "./hdiuil" +import { DmgBuildConfig } from "./dmg.js" +import type { DmgBuildLicenseConfig } from "./dmgLicense.js" +import { hdiUtil, hdiUtilWithStdin, hdiutilTransientExitCodes } from "./hdiuil.js" -export { DmgTarget } from "./dmg" +export { DmgTarget } from "./dmg.js" -const root = path.join(__dirname, "..") +const root = path.join(import.meta.dirname, "..") export function getDmgTemplatePath() { return path.join(root, "templates") diff --git a/packages/dmg-builder/tsconfig.build.json b/packages/dmg-builder/tsconfig.build.json new file mode 100644 index 00000000000..43ec572d771 --- /dev/null +++ b/packages/dmg-builder/tsconfig.build.json @@ -0,0 +1,8 @@ +{ + "extends": "../tsconfig-build.json", + "compilerOptions": { + "outDir": "dist", + "rootDir": "src" + }, + "include": ["src/**/*.ts"] +} diff --git a/packages/dmg-builder/tsup.config.ts b/packages/dmg-builder/tsup.config.ts deleted file mode 100644 index 4a1d06a50e2..00000000000 --- a/packages/dmg-builder/tsup.config.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { defineConfig } from "tsup" -import { baseConfig } from "../../tsup.config.base" - -export default defineConfig({ - ...baseConfig, - entry: { - dmgUtil: "src/dmgUtil.ts", - }, -}) diff --git a/packages/electron-builder-squirrel-windows/package.json b/packages/electron-builder-squirrel-windows/package.json index 56c4a14defa..ae9e141bfcb 100644 --- a/packages/electron-builder-squirrel-windows/package.json +++ b/packages/electron-builder-squirrel-windows/package.json @@ -1,12 +1,12 @@ { "name": "electron-builder-squirrel-windows", "version": "26.14.0", + "type": "module", "main": "./dist/SquirrelWindowsTarget.js", - "module": "./dist/SquirrelWindowsTarget.mjs", "exports": { ".": { "types": "./dist/SquirrelWindowsTarget.d.ts", - "import": "./dist/SquirrelWindowsTarget.mjs", + "import": "./dist/SquirrelWindowsTarget.js", "require": "./dist/SquirrelWindowsTarget.js" }, "./src/*": "./src/*.ts" @@ -28,8 +28,8 @@ "node": ">=22.12.0" }, "scripts": { - "build": "tsup", - "watch": "tsup --watch" + "build": "node -e \"require('fs').rmSync('dist',{recursive:true,force:true})\" && tsc -p tsconfig.build.json", + "watch": "tsc -p tsconfig.build.json --watch" }, "dependencies": { "app-builder-lib": "workspace:*", diff --git a/packages/electron-builder-squirrel-windows/src/SquirrelWindowsTarget.ts b/packages/electron-builder-squirrel-windows/src/SquirrelWindowsTarget.ts index 1e3edb970fc..c838f37921c 100644 --- a/packages/electron-builder-squirrel-windows/src/SquirrelWindowsTarget.ts +++ b/packages/electron-builder-squirrel-windows/src/SquirrelWindowsTarget.ts @@ -215,7 +215,7 @@ export default class SquirrelWindowsTarget extends Target { } private async createNuspecTemplateWithProjectUrl() { - const templatePath = path.resolve(__dirname, "..", "template.nuspectemplate") + const templatePath = path.resolve(import.meta.dirname, "..", "template.nuspectemplate") const projectUrl = await this.packager.appInfo.computePackageUrl() if (projectUrl != null) { const nuspecTemplate = await this.packager.info.tempDirManager.getTempFile({ prefix: "template", suffix: ".nuspectemplate" }) diff --git a/packages/electron-builder-squirrel-windows/tsconfig.build.json b/packages/electron-builder-squirrel-windows/tsconfig.build.json new file mode 100644 index 00000000000..43ec572d771 --- /dev/null +++ b/packages/electron-builder-squirrel-windows/tsconfig.build.json @@ -0,0 +1,8 @@ +{ + "extends": "../tsconfig-build.json", + "compilerOptions": { + "outDir": "dist", + "rootDir": "src" + }, + "include": ["src/**/*.ts"] +} diff --git a/packages/electron-builder-squirrel-windows/tsup.config.ts b/packages/electron-builder-squirrel-windows/tsup.config.ts deleted file mode 100644 index dd270794b6f..00000000000 --- a/packages/electron-builder-squirrel-windows/tsup.config.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { defineConfig } from "tsup" -import { baseConfig } from "../../tsup.config.base" - -export default defineConfig({ - ...baseConfig, - entry: { - SquirrelWindowsTarget: "src/SquirrelWindowsTarget.ts", - }, -}) diff --git a/packages/electron-builder/package.json b/packages/electron-builder/package.json index fc465c0e775..697a5396543 100644 --- a/packages/electron-builder/package.json +++ b/packages/electron-builder/package.json @@ -2,17 +2,17 @@ "name": "electron-builder", "description": "A complete solution to package and build a ready for distribution Electron app for MacOS, Windows and Linux with “auto update” support out of the box", "version": "26.14.0", + "type": "module", "main": "./dist/index.js", - "module": "./dist/index.mjs", "exports": { ".": { "types": "./dist/index.d.ts", - "import": "./dist/index.mjs", + "import": "./dist/index.js", "require": "./dist/index.js" }, "./internal": { "types": "./dist/indexInternal.d.ts", - "import": "./dist/indexInternal.mjs", + "import": "./dist/indexInternal.js", "require": "./dist/indexInternal.js" }, "./src/*": "./src/*.ts" @@ -23,8 +23,8 @@ "install-app-deps.js" ], "scripts": { - "build": "tsup", - "watch": "tsup --watch" + "build": "node -e \"require('fs').rmSync('dist',{recursive:true,force:true})\" && tsc -p tsconfig.build.json", + "watch": "tsc -p tsconfig.build.json --watch" }, "bin": { "electron-builder": "./cli.js", diff --git a/packages/electron-builder/src/cli/cli-util.ts b/packages/electron-builder/src/cli/cli-util.ts index 757b652cd58..4d77f5bf6ab 100644 --- a/packages/electron-builder/src/cli/cli-util.ts +++ b/packages/electron-builder/src/cli/cli-util.ts @@ -8,11 +8,11 @@ export async function checkIsOutdated(): Promise { if (isCI || process.env.NO_UPDATE_NOTIFIER != null) { return } - const pkg = await readJson(path.join(__dirname, "..", "..", "package.json")) + const pkg = await readJson(path.join(import.meta.dirname, "..", "..", "package.json")) if (pkg.version === "0.0.0-semantic-release") { return } - const UpdateNotifier = require("simple-update-notifier") + const { default: UpdateNotifier } = await import("simple-update-notifier") await UpdateNotifier({ pkg }) } diff --git a/packages/electron-builder/src/cli/cli.ts b/packages/electron-builder/src/cli/cli.ts index 08052426e5f..a6e39b0ddb7 100644 --- a/packages/electron-builder/src/cli/cli.ts +++ b/packages/electron-builder/src/cli/cli.ts @@ -2,13 +2,13 @@ import { getElectronVersion, nodeGypRebuild } from "app-builder-lib/internal" import * as chalk from "chalk" -import { build, configureBuildCommand, createYargs } from "../builder" -import { configurePublishCommand, publish } from "../publish" -import { clearCache } from "./clear-cache" -import { wrap } from "./cli-util" -import { createSelfSignedCert } from "./create-self-signed-cert" -import { configureInstallAppDepsCommand, installAppDeps } from "./install-app-deps" -import { start } from "./start" +import { build, configureBuildCommand, createYargs } from "../builder.js" +import { configurePublishCommand, publish } from "../publish.js" +import { clearCache } from "./clear-cache.js" +import { wrap } from "./cli-util.js" +import { createSelfSignedCert } from "./create-self-signed-cert.js" +import { configureInstallAppDepsCommand, installAppDeps } from "./install-app-deps.js" +import { start } from "./start.js" // tslint:disable:no-unused-expression void createYargs() diff --git a/packages/electron-builder/tsconfig.build.json b/packages/electron-builder/tsconfig.build.json new file mode 100644 index 00000000000..a7e8002eb6d --- /dev/null +++ b/packages/electron-builder/tsconfig.build.json @@ -0,0 +1,8 @@ +{ + "extends": "../tsconfig-build.json", + "compilerOptions": { + "outDir": "dist", + "rootDir": "src" + }, + "include": ["src/**/*.ts", "../../typings/*.d.ts"] +} diff --git a/packages/electron-builder/tsup.config.ts b/packages/electron-builder/tsup.config.ts deleted file mode 100644 index 14074de85c3..00000000000 --- a/packages/electron-builder/tsup.config.ts +++ /dev/null @@ -1,19 +0,0 @@ -import { defineConfig } from "tsup" -import { baseConfig } from "../../tsup.config.base" - -export default defineConfig({ - ...baseConfig, - entry: { - index: "src/index.ts", - indexInternal: "src/indexInternal.ts", - "cli/cli": "src/cli/cli.ts", - "cli/install-app-deps": "src/cli/install-app-deps.ts", - }, - dts: { - entry: { - index: "src/index.ts", - indexInternal: "src/indexInternal.ts", - }, - }, - shims: true, -}) diff --git a/packages/electron-publish/package.json b/packages/electron-publish/package.json index a5a6935bf89..129bbae1304 100644 --- a/packages/electron-publish/package.json +++ b/packages/electron-publish/package.json @@ -1,17 +1,17 @@ { "name": "electron-publish", "version": "26.14.0", + "type": "module", "main": "./dist/index.js", - "module": "./dist/index.mjs", "exports": { ".": { "types": "./dist/index.d.ts", - "import": "./dist/index.mjs", + "import": "./dist/index.js", "require": "./dist/index.js" }, "./internal": { "types": "./dist/indexInternal.d.ts", - "import": "./dist/indexInternal.mjs", + "import": "./dist/indexInternal.js", "require": "./dist/indexInternal.js" }, "./src/*": "./src/*.ts" @@ -32,8 +32,8 @@ "node": ">=22.12.0" }, "scripts": { - "build": "tsup", - "watch": "tsup --watch" + "build": "node -e \"require('fs').rmSync('dist',{recursive:true,force:true})\" && tsc -p tsconfig.build.json", + "watch": "tsc -p tsconfig.build.json --watch" }, "dependencies": { "@types/fs-extra": "^9.0.11", diff --git a/packages/electron-publish/src/index.ts b/packages/electron-publish/src/index.ts index c88fe813977..f5826c5fa52 100644 --- a/packages/electron-publish/src/index.ts +++ b/packages/electron-publish/src/index.ts @@ -1,28 +1,28 @@ import { Arch } from "builder-util" import { CancellationToken } from "builder-util-runtime" -import { MultiProgress } from "./multiProgress" +import { MultiProgress } from "./multiProgress.js" export { MultiProgress } -export { ProgressBar } from "./progress" +export { ProgressBar } from "./progress.js" -export { BitbucketPublisher } from "./bitbucketPublisher" -export { GitHubPublisher } from "./gitHubPublisher" -export { GitlabPublisher } from "./gitlabPublisher" -export { KeygenPublisher } from "./keygenPublisher" -export { S3Publisher } from "./s3/s3Publisher" -export { SpacesPublisher } from "./s3/spacesPublisher" -export { SnapStorePublisher, resolveSnapCredentials } from "./snapStorePublisher" +export { BitbucketPublisher } from "./bitbucketPublisher.js" +export { GitHubPublisher } from "./gitHubPublisher.js" +export { GitlabPublisher } from "./gitlabPublisher.js" +export { KeygenPublisher } from "./keygenPublisher.js" +export { S3Publisher } from "./s3/s3Publisher.js" +export { SpacesPublisher } from "./s3/spacesPublisher.js" +export { SnapStorePublisher, resolveSnapCredentials } from "./snapStorePublisher.js" export type PublishPolicy = "onTag" | "onTagOrDraft" | "always" | "never" -export { ProgressCallback } from "./progress" +export { ProgressCallback } from "./progress.js" export interface PublishOptions { publish?: PublishPolicy | null } -export { HttpPublisher } from "./httpPublisher" -export { getCiTag, Publisher } from "./publisher" +export { HttpPublisher } from "./httpPublisher.js" +export { getCiTag, Publisher } from "./publisher.js" export interface PublishContext { readonly cancellationToken: CancellationToken diff --git a/packages/electron-publish/src/s3/baseS3Publisher.ts b/packages/electron-publish/src/s3/baseS3Publisher.ts index 20c84cb20ab..662d8f2783f 100644 --- a/packages/electron-publish/src/s3/baseS3Publisher.ts +++ b/packages/electron-publish/src/s3/baseS3Publisher.ts @@ -2,10 +2,10 @@ import { log } from "builder-util" import { BaseS3Options } from "builder-util-runtime" import { mkdir, symlink } from "fs/promises" import * as path from "path" -import { PublishContext, UploadTask } from ".." -import { Publisher } from "../publisher" -import type { AwsCredentials } from "./awsCredentials" -import { getS3ContentType, startS3PutObject } from "./s3UploadHelper" +import { PublishContext, UploadTask } from "../index.js" +import { Publisher } from "../publisher.js" +import type { AwsCredentials } from "./awsCredentials.js" +import { getS3ContentType, startS3PutObject } from "./s3UploadHelper.js" export interface S3UploadConfig { region: string diff --git a/packages/electron-publish/src/s3/bucketLocation.ts b/packages/electron-publish/src/s3/bucketLocation.ts index bee21257ef1..0eadd6504f7 100644 --- a/packages/electron-publish/src/s3/bucketLocation.ts +++ b/packages/electron-publish/src/s3/bucketLocation.ts @@ -1,6 +1,6 @@ import { sign } from "aws4" import { request } from "https" -import { resolveAwsCredentials } from "./awsCredentials" +import { resolveAwsCredentials } from "./awsCredentials.js" /** * Resolves the AWS region for a bucket via the S3 GetBucketLocation API (SigV4-signed). diff --git a/packages/electron-publish/src/s3/s3Publisher.ts b/packages/electron-publish/src/s3/s3Publisher.ts index 9780635bf71..f21832db78a 100644 --- a/packages/electron-publish/src/s3/s3Publisher.ts +++ b/packages/electron-publish/src/s3/s3Publisher.ts @@ -1,9 +1,9 @@ import { InvalidConfigurationError, log } from "builder-util" import { S3Options } from "builder-util-runtime" -import { PublishContext } from ".." -import { resolveAwsCredentials } from "./awsCredentials" -import { BaseS3Publisher, S3UploadConfig, S3UploadExtraParams } from "./baseS3Publisher" -import { getBucketLocation } from "./bucketLocation" +import { PublishContext } from "../index.js" +import { resolveAwsCredentials } from "./awsCredentials.js" +import { BaseS3Publisher, S3UploadConfig, S3UploadExtraParams } from "./baseS3Publisher.js" +import { getBucketLocation } from "./bucketLocation.js" export class S3Publisher extends BaseS3Publisher { readonly providerName = "s3" diff --git a/packages/electron-publish/src/s3/s3UploadHelper.ts b/packages/electron-publish/src/s3/s3UploadHelper.ts index b4d7f3b6bc2..e92eb59451b 100644 --- a/packages/electron-publish/src/s3/s3UploadHelper.ts +++ b/packages/electron-publish/src/s3/s3UploadHelper.ts @@ -4,7 +4,7 @@ import * as http from "http" import * as https from "https" import * as mime from "mime" import * as path from "path" -import type { AwsCredentials } from "./awsCredentials" +import type { AwsCredentials } from "./awsCredentials.js" export interface S3PutObjectParams { bucket: string diff --git a/packages/electron-publish/src/s3/spacesPublisher.ts b/packages/electron-publish/src/s3/spacesPublisher.ts index 8a8a2b87600..7d54a51769a 100644 --- a/packages/electron-publish/src/s3/spacesPublisher.ts +++ b/packages/electron-publish/src/s3/spacesPublisher.ts @@ -1,7 +1,7 @@ import { InvalidConfigurationError, isEmptyOrSpaces } from "builder-util" import { SpacesOptions } from "builder-util-runtime" -import { PublishContext } from "../" -import { BaseS3Publisher, S3UploadConfig } from "./baseS3Publisher" +import { PublishContext } from "../index.js" +import { BaseS3Publisher, S3UploadConfig } from "./baseS3Publisher.js" export class SpacesPublisher extends BaseS3Publisher { readonly providerName = "spaces" diff --git a/packages/electron-publish/src/snapStorePublisher.ts b/packages/electron-publish/src/snapStorePublisher.ts index da7a7b52487..0e2abedc4af 100644 --- a/packages/electron-publish/src/snapStorePublisher.ts +++ b/packages/electron-publish/src/snapStorePublisher.ts @@ -1,8 +1,8 @@ import { exec, loadCscLink, spawn } from "builder-util" import { SnapStoreOptions } from "builder-util-runtime" import * as path from "path" -import { PublishContext, UploadTask } from "." -import { Publisher } from "./publisher" +import { PublishContext, UploadTask } from "./index.js" +import { Publisher } from "./publisher.js" export class SnapStorePublisher extends Publisher { readonly providerName = "snapStore" diff --git a/packages/electron-publish/tsconfig.build.json b/packages/electron-publish/tsconfig.build.json new file mode 100644 index 00000000000..43ec572d771 --- /dev/null +++ b/packages/electron-publish/tsconfig.build.json @@ -0,0 +1,8 @@ +{ + "extends": "../tsconfig-build.json", + "compilerOptions": { + "outDir": "dist", + "rootDir": "src" + }, + "include": ["src/**/*.ts"] +} diff --git a/packages/electron-publish/tsup.config.ts b/packages/electron-publish/tsup.config.ts deleted file mode 100644 index b3c53d6ae98..00000000000 --- a/packages/electron-publish/tsup.config.ts +++ /dev/null @@ -1,10 +0,0 @@ -import { defineConfig } from "tsup" -import { baseConfig } from "../../tsup.config.base" - -export default defineConfig({ - ...baseConfig, - entry: { - index: "src/index.ts", - indexInternal: "src/indexInternal.ts", - }, -}) diff --git a/packages/electron-updater/package.json b/packages/electron-updater/package.json index ce088f84d3f..8e1b8615fa4 100644 --- a/packages/electron-updater/package.json +++ b/packages/electron-updater/package.json @@ -2,17 +2,17 @@ "name": "electron-updater", "version": "6.8.8", "description": "Cross platform updater for electron applications", + "type": "module", "main": "./dist/index.js", - "module": "./dist/index.mjs", "exports": { ".": { "types": "./dist/index.d.ts", - "import": "./dist/index.mjs", + "import": "./dist/index.js", "require": "./dist/index.js" }, "./internal": { "types": "./dist/indexInternal.d.ts", - "import": "./dist/indexInternal.mjs", + "import": "./dist/indexInternal.js", "require": "./dist/indexInternal.js" }, "./src/*": "./src/*.ts" @@ -55,7 +55,7 @@ "node": ">=22.12.0" }, "scripts": { - "build": "tsup", - "watch": "tsup --watch" + "build": "node -e \"require('fs').rmSync('dist',{recursive:true,force:true})\" && tsc -p tsconfig.build.json", + "watch": "tsc -p tsconfig.build.json --watch" } } diff --git a/packages/electron-updater/src/BaseUpdater.ts b/packages/electron-updater/src/BaseUpdater.ts index c5ad445093a..a7ac463a371 100644 --- a/packages/electron-updater/src/BaseUpdater.ts +++ b/packages/electron-updater/src/BaseUpdater.ts @@ -1,8 +1,8 @@ import { AllPublishOptions } from "builder-util-runtime" import { spawn, SpawnOptions, spawnSync, StdioOptions } from "child_process" import * as path from "path" -import { AppAdapter } from "./AppAdapter" -import { AppUpdater, DownloadExecutorTask } from "./AppUpdater" +import { AppAdapter } from "./AppAdapter.js" +import { AppUpdater, DownloadExecutorTask } from "./AppUpdater.js" export abstract class BaseUpdater extends AppUpdater { protected quitAndInstallCalled = false diff --git a/packages/electron-updater/tsconfig.build.json b/packages/electron-updater/tsconfig.build.json new file mode 100644 index 00000000000..43ec572d771 --- /dev/null +++ b/packages/electron-updater/tsconfig.build.json @@ -0,0 +1,8 @@ +{ + "extends": "../tsconfig-build.json", + "compilerOptions": { + "outDir": "dist", + "rootDir": "src" + }, + "include": ["src/**/*.ts"] +} diff --git a/packages/electron-updater/tsup.config.ts b/packages/electron-updater/tsup.config.ts deleted file mode 100644 index 2386d80753e..00000000000 --- a/packages/electron-updater/tsup.config.ts +++ /dev/null @@ -1,11 +0,0 @@ -import { defineConfig } from "tsup" -import { baseConfig } from "../../tsup.config.base" - -export default defineConfig({ - ...baseConfig, - entry: { - index: "src/index.ts", - indexInternal: "src/indexInternal.ts", - }, - external: ["electron"], -}) diff --git a/packages/tsconfig-build.json b/packages/tsconfig-build.json new file mode 100644 index 00000000000..6b169cb99a3 --- /dev/null +++ b/packages/tsconfig-build.json @@ -0,0 +1,11 @@ +{ + "extends": "./tsconfig-base.json", + "compilerOptions": { + "module": "ESNext", + "moduleResolution": "bundler", + "declaration": true, + "declarationMap": true, + "composite": false, + "incremental": false + } +} diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 44d49d89011..c134213134c 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -36,6 +36,9 @@ importers: '@stylistic/eslint-plugin': specifier: ^2.8.0 version: 2.13.0(eslint@9.39.2(jiti@2.4.2))(typescript@5.8.2) + '@tsconfig/node22': + specifier: ^22.0.5 + version: 22.0.5 '@types/node': specifier: ^22.7.4 version: 22.13.17 @@ -75,9 +78,6 @@ importers: prettier: specifier: 3.7.4 version: 3.7.4 - tsup: - specifier: ^8.0.0 - version: 8.5.1(@swc/core@1.15.33)(jiti@2.4.2)(postcss@8.5.14)(tsx@4.22.3)(typescript@5.8.2)(yaml@2.8.4) tsx: specifier: ^4.0.0 version: 4.22.3 @@ -733,19 +733,19 @@ importers: dependencies: '@docusaurus/core': specifier: 3.10.1 - version: 3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(esbuild@0.27.7)(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3) + version: 3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3) '@docusaurus/faster': specifier: 3.10.1 - version: 3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(esbuild@0.27.7)(postcss@8.5.14) + version: 3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(postcss@8.5.14) '@docusaurus/plugin-client-redirects': specifier: 3.10.1 - version: 3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(esbuild@0.27.7)(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3) + version: 3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3) '@docusaurus/preset-classic': specifier: 3.10.1 - version: 3.10.1(@algolia/client-search@5.52.1)(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(esbuild@0.27.7)(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(@types/react@19.2.14)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(search-insights@2.17.3)(typescript@5.6.3) + version: 3.10.1(@algolia/client-search@5.52.1)(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(@types/react@19.2.14)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(search-insights@2.17.3)(typescript@5.6.3) '@docusaurus/theme-mermaid': specifier: 3.10.1 - version: 3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(esbuild@0.27.7)(postcss@8.5.14))(@docusaurus/plugin-content-docs@3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(esbuild@0.27.7)(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3) + version: 3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(postcss@8.5.14))(@docusaurus/plugin-content-docs@3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3) clsx: specifier: 2.1.1 version: 2.1.1 @@ -764,13 +764,13 @@ importers: devDependencies: '@docusaurus/module-type-aliases': specifier: 3.10.1 - version: 3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + version: 3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) '@docusaurus/tsconfig': specifier: 3.10.1 version: 3.10.1 '@docusaurus/types': specifier: 3.10.1 - version: 3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + version: 3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) '@types/react': specifier: ^19.0.0 version: 19.2.14 @@ -2856,12 +2856,6 @@ packages: cpu: [ppc64] os: [aix] - '@esbuild/aix-ppc64@0.27.7': - resolution: {integrity: sha512-EKX3Qwmhz1eMdEJokhALr0YiD0lhQNwDqkPYyPhiSwKrh7/4KRjQc04sZ8db+5DVVnZ1LmbNDI1uAMPEUBnQPg==} - engines: {node: '>=18'} - cpu: [ppc64] - os: [aix] - '@esbuild/aix-ppc64@0.28.0': resolution: {integrity: sha512-lhRUCeuOyJQURhTxl4WkpFTjIsbDayJHih5kZC1giwE+MhIzAb7mEsQMqMf18rHLsrb5qI1tafG20mLxEWcWlA==} engines: {node: '>=18'} @@ -2874,12 +2868,6 @@ packages: cpu: [arm64] os: [android] - '@esbuild/android-arm64@0.27.7': - resolution: {integrity: sha512-62dPZHpIXzvChfvfLJow3q5dDtiNMkwiRzPylSCfriLvZeq0a1bWChrGx/BbUbPwOrsWKMn8idSllklzBy+dgQ==} - engines: {node: '>=18'} - cpu: [arm64] - os: [android] - '@esbuild/android-arm64@0.28.0': resolution: {integrity: sha512-+WzIXQOSaGs33tLEgYPYe/yQHf0WTU0X42Jca3y8NWMbUVhp7rUnw+vAsRC/QiDrdD31IszMrZy+qwPOPjd+rw==} engines: {node: '>=18'} @@ -2892,12 +2880,6 @@ packages: cpu: [arm] os: [android] - '@esbuild/android-arm@0.27.7': - resolution: {integrity: sha512-jbPXvB4Yj2yBV7HUfE2KHe4GJX51QplCN1pGbYjvsyCZbQmies29EoJbkEc+vYuU5o45AfQn37vZlyXy4YJ8RQ==} - engines: {node: '>=18'} - cpu: [arm] - os: [android] - '@esbuild/android-arm@0.28.0': resolution: {integrity: sha512-wqh0ByljabXLKHeWXYLqoJ5jKC4XBaw6Hk08OfMrCRd2nP2ZQ5eleDZC41XHyCNgktBGYMbqnrJKq/K/lzPMSQ==} engines: {node: '>=18'} @@ -2910,12 +2892,6 @@ packages: cpu: [x64] os: [android] - '@esbuild/android-x64@0.27.7': - resolution: {integrity: sha512-x5VpMODneVDb70PYV2VQOmIUUiBtY3D3mPBG8NxVk5CogneYhkR7MmM3yR/uMdITLrC1ml/NV1rj4bMJuy9MCg==} - engines: {node: '>=18'} - cpu: [x64] - os: [android] - '@esbuild/android-x64@0.28.0': resolution: {integrity: sha512-+VJggoaKhk2VNNqVL7f6S189UzShHC/mR9EE8rDdSkdpN0KflSwWY/gWjDrNxxisg8Fp1ZCD9jLMo4m0OUfeUA==} engines: {node: '>=18'} @@ -2928,12 +2904,6 @@ packages: cpu: [arm64] os: [darwin] - '@esbuild/darwin-arm64@0.27.7': - resolution: {integrity: sha512-5lckdqeuBPlKUwvoCXIgI2D9/ABmPq3Rdp7IfL70393YgaASt7tbju3Ac+ePVi3KDH6N2RqePfHnXkaDtY9fkw==} - engines: {node: '>=18'} - cpu: [arm64] - os: [darwin] - '@esbuild/darwin-arm64@0.28.0': resolution: {integrity: sha512-0T+A9WZm+bZ84nZBtk1ckYsOvyA3x7e2Acj1KdVfV4/2tdG4fzUp91YHx+GArWLtwqp77pBXVCPn2We7Letr0Q==} engines: {node: '>=18'} @@ -2946,12 +2916,6 @@ packages: cpu: [x64] os: [darwin] - '@esbuild/darwin-x64@0.27.7': - resolution: {integrity: sha512-rYnXrKcXuT7Z+WL5K980jVFdvVKhCHhUwid+dDYQpH+qu+TefcomiMAJpIiC2EM3Rjtq0sO3StMV/+3w3MyyqQ==} - engines: {node: '>=18'} - cpu: [x64] - os: [darwin] - '@esbuild/darwin-x64@0.28.0': resolution: {integrity: sha512-fyzLm/DLDl/84OCfp2f/XQ4flmORsjU7VKt8HLjvIXChJoFFOIL6pLJPH4Yhd1n1gGFF9mPwtlN5Wf82DZs+LQ==} engines: {node: '>=18'} @@ -2964,12 +2928,6 @@ packages: cpu: [arm64] os: [freebsd] - '@esbuild/freebsd-arm64@0.27.7': - resolution: {integrity: sha512-B48PqeCsEgOtzME2GbNM2roU29AMTuOIN91dsMO30t+Ydis3z/3Ngoj5hhnsOSSwNzS+6JppqWsuhTp6E82l2w==} - engines: {node: '>=18'} - cpu: [arm64] - os: [freebsd] - '@esbuild/freebsd-arm64@0.28.0': resolution: {integrity: sha512-l9GeW5UZBT9k9brBYI+0WDffcRxgHQD8ShN2Ur4xWq/NFzUKm3k5lsH4PdaRgb2w7mI9u61nr2gI2mLI27Nh3Q==} engines: {node: '>=18'} @@ -2982,12 +2940,6 @@ packages: cpu: [x64] os: [freebsd] - '@esbuild/freebsd-x64@0.27.7': - resolution: {integrity: sha512-jOBDK5XEjA4m5IJK3bpAQF9/Lelu/Z9ZcdhTRLf4cajlB+8VEhFFRjWgfy3M1O4rO2GQ/b2dLwCUGpiF/eATNQ==} - engines: {node: '>=18'} - cpu: [x64] - os: [freebsd] - '@esbuild/freebsd-x64@0.28.0': resolution: {integrity: sha512-BXoQai/A0wPO6Es3yFJ7APCiKGc1tdAEOgeTNy3SsB491S3aHn4S4r3e976eUnPdU+NbdtmBuLncYir2tMU9Nw==} engines: {node: '>=18'} @@ -3000,12 +2952,6 @@ packages: cpu: [arm64] os: [linux] - '@esbuild/linux-arm64@0.27.7': - resolution: {integrity: sha512-RZPHBoxXuNnPQO9rvjh5jdkRmVizktkT7TCDkDmQ0W2SwHInKCAV95GRuvdSvA7w4VMwfCjUiPwDi0ZO6Nfe9A==} - engines: {node: '>=18'} - cpu: [arm64] - os: [linux] - '@esbuild/linux-arm64@0.28.0': resolution: {integrity: sha512-RVyzfb3FWsGA55n6WY0MEIEPURL1FcbhFE6BffZEMEekfCzCIMtB5yyDcFnVbTnwk+CLAgTujmV/Lgvih56W+A==} engines: {node: '>=18'} @@ -3018,12 +2964,6 @@ packages: cpu: [arm] os: [linux] - '@esbuild/linux-arm@0.27.7': - resolution: {integrity: sha512-RkT/YXYBTSULo3+af8Ib0ykH8u2MBh57o7q/DAs3lTJlyVQkgQvlrPTnjIzzRPQyavxtPtfg0EopvDyIt0j1rA==} - engines: {node: '>=18'} - cpu: [arm] - os: [linux] - '@esbuild/linux-arm@0.28.0': resolution: {integrity: sha512-CjaaREJagqJp7iTaNQjjidaNbCKYcd4IDkzbwwxtSvjI7NZm79qiHc8HqciMddQ6CKvJT6aBd8lO9kN/ZudLlw==} engines: {node: '>=18'} @@ -3036,12 +2976,6 @@ packages: cpu: [ia32] os: [linux] - '@esbuild/linux-ia32@0.27.7': - resolution: {integrity: sha512-GA48aKNkyQDbd3KtkplYWT102C5sn/EZTY4XROkxONgruHPU72l+gW+FfF8tf2cFjeHaRbWpOYa/uRBz/Xq1Pg==} - engines: {node: '>=18'} - cpu: [ia32] - os: [linux] - '@esbuild/linux-ia32@0.28.0': resolution: {integrity: sha512-KBnSTt1kxl9x70q+ydterVdl+Cn0H18ngRMRCEQfrbqdUuntQQ0LoMZv47uB97NljZFzY6HcfqEZ2SAyIUTQBQ==} engines: {node: '>=18'} @@ -3054,12 +2988,6 @@ packages: cpu: [loong64] os: [linux] - '@esbuild/linux-loong64@0.27.7': - resolution: {integrity: sha512-a4POruNM2oWsD4WKvBSEKGIiWQF8fZOAsycHOt6JBpZ+JN2n2JH9WAv56SOyu9X5IqAjqSIPTaJkqN8F7XOQ5Q==} - engines: {node: '>=18'} - cpu: [loong64] - os: [linux] - '@esbuild/linux-loong64@0.28.0': resolution: {integrity: sha512-zpSlUce1mnxzgBADvxKXX5sl8aYQHo2ezvMNI8I0lbblJtp8V4odlm3Yzlj7gPyt3T8ReksE6bK+pT3WD+aJRg==} engines: {node: '>=18'} @@ -3072,12 +3000,6 @@ packages: cpu: [mips64el] os: [linux] - '@esbuild/linux-mips64el@0.27.7': - resolution: {integrity: sha512-KabT5I6StirGfIz0FMgl1I+R1H73Gp0ofL9A3nG3i/cYFJzKHhouBV5VWK1CSgKvVaG4q1RNpCTR2LuTVB3fIw==} - engines: {node: '>=18'} - cpu: [mips64el] - os: [linux] - '@esbuild/linux-mips64el@0.28.0': resolution: {integrity: sha512-2jIfP6mmjkdmeTlsX/9vmdmhBmKADrWqN7zcdtHIeNSCH1SqIoNI63cYsjQR8J+wGa4Y5izRcSHSm8K3QWmk3w==} engines: {node: '>=18'} @@ -3090,12 +3012,6 @@ packages: cpu: [ppc64] os: [linux] - '@esbuild/linux-ppc64@0.27.7': - resolution: {integrity: sha512-gRsL4x6wsGHGRqhtI+ifpN/vpOFTQtnbsupUF5R5YTAg+y/lKelYR1hXbnBdzDjGbMYjVJLJTd2OFmMewAgwlQ==} - engines: {node: '>=18'} - cpu: [ppc64] - os: [linux] - '@esbuild/linux-ppc64@0.28.0': resolution: {integrity: sha512-bc0FE9wWeC0WBm49IQMPSPILRocGTQt3j5KPCA8os6VprfuJ7KD+5PzESSrJ6GmPIPJK965ZJHTUlSA6GNYEhg==} engines: {node: '>=18'} @@ -3108,12 +3024,6 @@ packages: cpu: [riscv64] os: [linux] - '@esbuild/linux-riscv64@0.27.7': - resolution: {integrity: sha512-hL25LbxO1QOngGzu2U5xeXtxXcW+/GvMN3ejANqXkxZ/opySAZMrc+9LY/WyjAan41unrR3YrmtTsUpwT66InQ==} - engines: {node: '>=18'} - cpu: [riscv64] - os: [linux] - '@esbuild/linux-riscv64@0.28.0': resolution: {integrity: sha512-SQPZOwoTTT/HXFXQJG/vBX8sOFagGqvZyXcgLA3NhIqcBv1BJU1d46c0rGcrij2B56Z2rNiSLaZOYW5cUk7yLQ==} engines: {node: '>=18'} @@ -3126,12 +3036,6 @@ packages: cpu: [s390x] os: [linux] - '@esbuild/linux-s390x@0.27.7': - resolution: {integrity: sha512-2k8go8Ycu1Kb46vEelhu1vqEP+UeRVj2zY1pSuPdgvbd5ykAw82Lrro28vXUrRmzEsUV0NzCf54yARIK8r0fdw==} - engines: {node: '>=18'} - cpu: [s390x] - os: [linux] - '@esbuild/linux-s390x@0.28.0': resolution: {integrity: sha512-SCfR0HN8CEEjnYnySJTd2cw0k9OHB/YFzt5zgJEwa+wL/T/raGWYMBqwDNAC6dqFKmJYZoQBRfHjgwLHGSrn3Q==} engines: {node: '>=18'} @@ -3144,12 +3048,6 @@ packages: cpu: [x64] os: [linux] - '@esbuild/linux-x64@0.27.7': - resolution: {integrity: sha512-hzznmADPt+OmsYzw1EE33ccA+HPdIqiCRq7cQeL1Jlq2gb1+OyWBkMCrYGBJ+sxVzve2ZJEVeePbLM2iEIZSxA==} - engines: {node: '>=18'} - cpu: [x64] - os: [linux] - '@esbuild/linux-x64@0.28.0': resolution: {integrity: sha512-us0dSb9iFxIi8srnpl931Nvs65it/Jd2a2K3qs7fz2WfGPHqzfzZTfec7oxZJRNPXPnNYZtanmRc4AL/JwVzHQ==} engines: {node: '>=18'} @@ -3162,12 +3060,6 @@ packages: cpu: [arm64] os: [netbsd] - '@esbuild/netbsd-arm64@0.27.7': - resolution: {integrity: sha512-b6pqtrQdigZBwZxAn1UpazEisvwaIDvdbMbmrly7cDTMFnw/+3lVxxCTGOrkPVnsYIosJJXAsILG9XcQS+Yu6w==} - engines: {node: '>=18'} - cpu: [arm64] - os: [netbsd] - '@esbuild/netbsd-arm64@0.28.0': resolution: {integrity: sha512-CR/RYotgtCKwtftMwJlUU7xCVNg3lMYZ0RzTmAHSfLCXw3NtZtNpswLEj/Kkf6kEL3Gw+BpOekRX0BYCtklhUw==} engines: {node: '>=18'} @@ -3180,12 +3072,6 @@ packages: cpu: [x64] os: [netbsd] - '@esbuild/netbsd-x64@0.27.7': - resolution: {integrity: sha512-OfatkLojr6U+WN5EDYuoQhtM+1xco+/6FSzJJnuWiUw5eVcicbyK3dq5EeV/QHT1uy6GoDhGbFpprUiHUYggrw==} - engines: {node: '>=18'} - cpu: [x64] - os: [netbsd] - '@esbuild/netbsd-x64@0.28.0': resolution: {integrity: sha512-nU1yhmYutL+fQ71Kxnhg8uEOdC0pwEW9entHykTgEbna2pw2dkbFSMeqjjyHZoCmt8SBkOSvV+yNmm94aUrrqw==} engines: {node: '>=18'} @@ -3198,12 +3084,6 @@ packages: cpu: [arm64] os: [openbsd] - '@esbuild/openbsd-arm64@0.27.7': - resolution: {integrity: sha512-AFuojMQTxAz75Fo8idVcqoQWEHIXFRbOc1TrVcFSgCZtQfSdc1RXgB3tjOn/krRHENUB4j00bfGjyl2mJrU37A==} - engines: {node: '>=18'} - cpu: [arm64] - os: [openbsd] - '@esbuild/openbsd-arm64@0.28.0': resolution: {integrity: sha512-cXb5vApOsRsxsEl4mcZ1XY3D4DzcoMxR/nnc4IyqYs0rTI8ZKmW6kyyg+11Z8yvgMfAEldKzP7AdP64HnSC/6g==} engines: {node: '>=18'} @@ -3216,24 +3096,12 @@ packages: cpu: [x64] os: [openbsd] - '@esbuild/openbsd-x64@0.27.7': - resolution: {integrity: sha512-+A1NJmfM8WNDv5CLVQYJ5PshuRm/4cI6WMZRg1by1GwPIQPCTs1GLEUHwiiQGT5zDdyLiRM/l1G0Pv54gvtKIg==} - engines: {node: '>=18'} - cpu: [x64] - os: [openbsd] - '@esbuild/openbsd-x64@0.28.0': resolution: {integrity: sha512-8wZM2qqtv9UP3mzy7HiGYNH/zjTA355mpeuA+859TyR+e+Tc08IHYpLJuMsfpDJwoLo1ikIJI8jC3GFjnRClzA==} engines: {node: '>=18'} cpu: [x64] os: [openbsd] - '@esbuild/openharmony-arm64@0.27.7': - resolution: {integrity: sha512-+KrvYb/C8zA9CU/g0sR6w2RBw7IGc5J2BPnc3dYc5VJxHCSF1yNMxTV5LQ7GuKteQXZtspjFbiuW5/dOj7H4Yw==} - engines: {node: '>=18'} - cpu: [arm64] - os: [openharmony] - '@esbuild/openharmony-arm64@0.28.0': resolution: {integrity: sha512-FLGfyizszcef5C3YtoyQDACyg95+dndv79i2EekILBofh5wpCa1KuBqOWKrEHZg3zrL3t5ouE5jgr94vA+Wb2w==} engines: {node: '>=18'} @@ -3246,12 +3114,6 @@ packages: cpu: [x64] os: [sunos] - '@esbuild/sunos-x64@0.27.7': - resolution: {integrity: sha512-ikktIhFBzQNt/QDyOL580ti9+5mL/YZeUPKU2ivGtGjdTYoqz6jObj6nOMfhASpS4GU4Q/Clh1QtxWAvcYKamA==} - engines: {node: '>=18'} - cpu: [x64] - os: [sunos] - '@esbuild/sunos-x64@0.28.0': resolution: {integrity: sha512-1ZgjUoEdHZZl/YlV76TSCz9Hqj9h9YmMGAgAPYd+q4SicWNX3G5GCyx9uhQWSLcbvPW8Ni7lj4gDa1T40akdlw==} engines: {node: '>=18'} @@ -3264,12 +3126,6 @@ packages: cpu: [arm64] os: [win32] - '@esbuild/win32-arm64@0.27.7': - resolution: {integrity: sha512-7yRhbHvPqSpRUV7Q20VuDwbjW5kIMwTHpptuUzV+AA46kiPze5Z7qgt6CLCK3pWFrHeNfDd1VKgyP4O+ng17CA==} - engines: {node: '>=18'} - cpu: [arm64] - os: [win32] - '@esbuild/win32-arm64@0.28.0': resolution: {integrity: sha512-Q9StnDmQ/enxnpxCCLSg0oo4+34B9TdXpuyPeTedN/6+iXBJ4J+zwfQI28u/Jl40nOYAxGoNi7mFP40RUtkmUA==} engines: {node: '>=18'} @@ -3282,12 +3138,6 @@ packages: cpu: [ia32] os: [win32] - '@esbuild/win32-ia32@0.27.7': - resolution: {integrity: sha512-SmwKXe6VHIyZYbBLJrhOoCJRB/Z1tckzmgTLfFYOfpMAx63BJEaL9ExI8x7v0oAO3Zh6D/Oi1gVxEYr5oUCFhw==} - engines: {node: '>=18'} - cpu: [ia32] - os: [win32] - '@esbuild/win32-ia32@0.28.0': resolution: {integrity: sha512-zF3ag/gfiCe6U2iczcRzSYJKH1DCI+ByzSENHlM2FcDbEeo5Zd2C86Aq0tKUYAJJ1obRP84ymxIAksZUcdztHA==} engines: {node: '>=18'} @@ -3300,12 +3150,6 @@ packages: cpu: [x64] os: [win32] - '@esbuild/win32-x64@0.27.7': - resolution: {integrity: sha512-56hiAJPhwQ1R4i+21FVF7V8kSD5zZTdHcVuRFMW0hn753vVfQN8xlx4uOPT4xoGH0Z/oVATuR82AiqSTDIpaHg==} - engines: {node: '>=18'} - cpu: [x64] - os: [win32] - '@esbuild/win32-x64@0.28.0': resolution: {integrity: sha512-pEl1bO9mfAmIC+tW5btTmrKaujg3zGtUmWNdCw/xs70FBjwAL3o9OEKNHvNmnyylD6ubxUERiEhdsL0xBQ9efw==} engines: {node: '>=18'} @@ -4368,6 +4212,9 @@ packages: '@tsconfig/node16@1.0.4': resolution: {integrity: sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==} + '@tsconfig/node22@22.0.5': + resolution: {integrity: sha512-hLf2ld+sYN/BtOJjHUWOk568dvjFQkHnLNa6zce25GIH+vxKfvTgm3qpaH6ToF5tu/NN0IH66s+Bb5wElHrLcw==} + '@tybys/wasm-util@0.10.2': resolution: {integrity: sha512-RoBvJ2X0wuKlWFIjrwffGw1IqZHKQqzIchKaadZZfnNpsAYp2mM0h36JtPCjNDAHGgYez/15uMBpfGwchhiMgg==} @@ -5049,9 +4896,6 @@ packages: resolution: {integrity: sha512-0qWUglt9JEqLFr3w1I1pbrChn1grhaiAR2ocX1PP/flRmxgtwTzPFFFnfIlD6aMOLQZgSuCRlidD70lvx8yhzg==} engines: {node: '>=14'} - any-promise@1.3.0: - resolution: {integrity: sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==} - anymatch@3.1.3: resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} engines: {node: '>= 8'} @@ -5289,12 +5133,6 @@ packages: resolution: {integrity: sha512-tjwM5exMg6BGRI+kNmTntNsvdZS1X8BFYS6tnJ2hdH0kVxM6/eVZ2xy+FqStSWvYmtfFMDLIxurorHwDKfDz5Q==} engines: {node: '>=18'} - bundle-require@5.1.0: - resolution: {integrity: sha512-3WrrOuZiyaaZPWiEt4G3+IffISVC9HYlWueJEBWED4ZH4aIAC2PnkdnuRrR94M+w6yGWn4AglWtJtBI8YqvgoA==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - peerDependencies: - esbuild: '>=0.18' - bytes@3.0.0: resolution: {integrity: sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw==} engines: {node: '>= 0.8'} @@ -5535,10 +5373,6 @@ packages: commander@2.20.3: resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==} - commander@4.1.1: - resolution: {integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==} - engines: {node: '>= 6'} - commander@5.1.0: resolution: {integrity: sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg==} engines: {node: '>= 6'} @@ -5576,9 +5410,6 @@ packages: concat-map@0.0.1: resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} - confbox@0.1.8: - resolution: {integrity: sha512-RMtmw0iFkeR4YV+fUOSucriAQNb9g8zFR52MWCtl+cCZOFRNL6zeB395vPzFhEjjn4fMxXudmELnl/KF/WrK6w==} - config-chain@1.1.13: resolution: {integrity: sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ==} @@ -6350,11 +6181,6 @@ packages: engines: {node: '>=18'} hasBin: true - esbuild@0.27.7: - resolution: {integrity: sha512-IxpibTjyVnmrIQo5aqNpCgoACA/dTKLTlhMHihVHhdkxKyPO1uBBthumT0rdHmcsk9uMonIWS0m4FljWzILh3w==} - engines: {node: '>=18'} - hasBin: true - esbuild@0.28.0: resolution: {integrity: sha512-sNR9MHpXSUV/XB4zmsFKN+QgVG82Cc7+/aaxJ8Adi8hyOac+EXptIp45QBPaVyX3N70664wRbTcLTOemCAnyqw==} engines: {node: '>=18'} @@ -6641,9 +6467,6 @@ packages: resolution: {integrity: sha512-MzwXju70AuyflbgeOhzvQWAvvQdo1XL0A9bVvlXsYcFEBM87WR4OakL4OfZq+QRmr+duJubio+UtNQCPsVESzQ==} engines: {node: '>= 10.13.0'} - fix-dts-default-cjs-exports@1.0.1: - resolution: {integrity: sha512-pVIECanWFC61Hzl2+oOCtoJ3F17kglZC/6N94eRWycFgBH35hHx0Li604ZIzhseh97mf2p0cv7vVrOZGoqhlEg==} - flat-cache@4.0.1: resolution: {integrity: sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==} engines: {node: '>=16'} @@ -7386,10 +7209,6 @@ packages: joi@17.13.3: resolution: {integrity: sha512-otDA4ldcIx+ZXsKHWmp0YizCweVRZG96J10b0FevjfuncLO1oX59THoAmHkNubYJ+9gWsYsp5k8v4ib6oDv1fA==} - joycon@3.1.1: - resolution: {integrity: sha512-34wB/Y7MW7bzjKRjUKTa46I2Z7eV62Rkhva+KkopW7Qvv/OSWBqvkSY7vusOPrNuZcUG3tApvdVgNB8POj3SPw==} - engines: {node: '>=10'} - js-tokens@4.0.0: resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} @@ -7573,10 +7392,6 @@ packages: linkify-it@5.0.0: resolution: {integrity: sha512-5aHCbzQRADcdP+ATqnDuhhJ/MRIqDkZX5pyjFHRRysS8vZ5AbqGEoFIb6pYHPZ+L/OC2Lc+xT8uHVVR5CAK/wQ==} - load-tsconfig@0.2.5: - resolution: {integrity: sha512-IXO6OCs9yg8tMKzfPZ1YmheJbZCiEsnBdcB03l0OcfK9prKnJb96siuHCr5Fl37/yo9DnKU+TLpxzTUspw9shg==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - loader-runner@4.3.2: resolution: {integrity: sha512-DFEqQ3ihfS9blba08cLfYf1NRAIEm+dDjic073DRDc3/JspI/8wYmtDsHwd3+4hwvdxSK7PGaElfTmm0awWJ4w==} engines: {node: '>=6.11.5'} @@ -8040,9 +7855,6 @@ packages: resolution: {integrity: sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==} hasBin: true - mlly@1.8.2: - resolution: {integrity: sha512-d+ObxMQFmbt10sretNDytwt85VrbkhhUA/JBGm1MPaWJ65Cl4wOgLaB1NYvJSZ0Ef03MMEU/0xpPMXUIQ29UfA==} - mri@1.2.0: resolution: {integrity: sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==} engines: {node: '>=4'} @@ -8065,9 +7877,6 @@ packages: resolution: {integrity: sha512-ypMKuglUrZUD99Tk2bUQ+xNQj43lPEfAeX2o9cTteAmShXy2VHDJpuwu1o0xqoKCt9jLVAvwyFKdLTPXKAfJyA==} engines: {node: '>=10'} - mz@2.7.0: - resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==} - nanoid@3.3.11: resolution: {integrity: sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==} engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} @@ -8434,9 +8243,6 @@ packages: resolution: {integrity: sha512-Ie9z/WINcxxLp27BKOCHGde4ITq9UklYKDzVo1nhk5sqGEXU3FpkwP5GM2voTGJkGd9B3Otl+Q4uwSOeSUtOBA==} engines: {node: '>=14.16'} - pkg-types@1.3.1: - resolution: {integrity: sha512-/Jm5M4RvtBFVkKWRu2BLUTNP8/M2a+UwuAX+ae4770q1qVGtfjG+WTCupoZixokjmHiry8uI+dlY8KXYV5HVVQ==} - pkijs@3.4.0: resolution: {integrity: sha512-emEcLuomt2j03vxD54giVB4SxTjnsqkU692xZOZXHDVoYyypEm+b3jpiTcc+Cf+myooc+/Ly0z01jqeNHVgJGw==} engines: {node: '>=16.0.0'} @@ -8597,24 +8403,6 @@ packages: peerDependencies: postcss: ^8.4 - postcss-load-config@6.0.1: - resolution: {integrity: sha512-oPtTM4oerL+UXmx+93ytZVN82RrlY/wPUV8IeDxFrzIjXOLF1pN+EmKPLbubvKHT2HC20xXsCAH2Z+CKV6Oz/g==} - engines: {node: '>= 18'} - peerDependencies: - jiti: '>=1.21.0' - postcss: '>=8.0.9' - tsx: ^4.8.1 - yaml: ^2.4.2 - peerDependenciesMeta: - jiti: - optional: true - postcss: - optional: true - tsx: - optional: true - yaml: - optional: true - postcss-loader@7.3.4: resolution: {integrity: sha512-iW5WTTBSC5BfsBJ9daFMPVrLT36MrNiC6fqOZTTaHjBNX6Pfd5p+hSBqe/fEeNd7pc13QiAyGt7VdGMw4eRC4A==} engines: {node: '>= 14.15.0'} @@ -9648,11 +9436,6 @@ packages: stylis@4.4.0: resolution: {integrity: sha512-5Z9ZpRzfuH6l/UAvCPAPUo3665Nk2wLaZU3x+TLHKVzIz33+sbJqbtrYoC3KD4/uVOr2Zp+L0LySezP9OHV9yA==} - sucrase@3.35.1: - resolution: {integrity: sha512-DhuTmvZWux4H1UOnWMB3sk0sbaCVOoQZjv8u1rDoTV0HTdGem9hkAZtl4JZy8P2z4Bg0nT+YMeOFyVr4zcG5Tw==} - engines: {node: '>=16 || 14 >=14.17'} - hasBin: true - sumchecker@3.0.1: resolution: {integrity: sha512-MvjXzkz/BOfyVDkG0oFOtBxHX2u3gKbMHIF/dXblZsgD3BWOFLmHovIpZY7BykJdAjcqRCBi1WYBNdEC9yI7vg==} engines: {node: '>= 8.0'} @@ -9766,13 +9549,6 @@ packages: resolution: {integrity: sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==} engines: {node: '>=8'} - thenify-all@1.6.0: - resolution: {integrity: sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==} - engines: {node: '>=0.8'} - - thenify@3.3.1: - resolution: {integrity: sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==} - thingies@2.6.0: resolution: {integrity: sha512-rMHRjmlFLM1R96UYPvpmnc3LYtdFrT33JIB7L9hetGue1qAPfn1N2LJeEjxUSidu1Iku+haLZXDuEXUHNGO/lg==} engines: {node: '>=10.18'} @@ -9854,10 +9630,6 @@ packages: peerDependencies: tslib: '2' - tree-kill@1.2.2: - resolution: {integrity: sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==} - hasBin: true - trim-lines@3.0.1: resolution: {integrity: sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==} @@ -9883,9 +9655,6 @@ packages: resolution: {integrity: sha512-q5W7tVM71e2xjHZTlgfTDoPF/SmqKG5hddq9SzR49CH2hayqRKJtQ4mtRlSxKaJlR/+9rEM+mnBHf7I2/BQcpQ==} engines: {node: '>=6.10'} - ts-interface-checker@0.1.13: - resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==} - ts-node@10.9.2: resolution: {integrity: sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==} hasBin: true @@ -9906,25 +9675,6 @@ packages: tslib@2.8.1: resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==} - tsup@8.5.1: - resolution: {integrity: sha512-xtgkqwdhpKWr3tKPmCkvYmS9xnQK3m3XgxZHwSUjvfTjp7YfXe5tT3GgWi0F2N+ZSMsOeWeZFh7ZZFg5iPhing==} - engines: {node: '>=18'} - hasBin: true - peerDependencies: - '@microsoft/api-extractor': ^7.36.0 - '@swc/core': ^1 - postcss: ^8.4.12 - typescript: '>=4.5.0' - peerDependenciesMeta: - '@microsoft/api-extractor': - optional: true - '@swc/core': - optional: true - postcss: - optional: true - typescript: - optional: true - tsx@4.22.3: resolution: {integrity: sha512-mdoNxBC/cSQObGGVQ5Bpn5i+yv7j68gk3Nfm3wFjcJg3Z0Mix9jzAFfP12prmm5eVGmDKtp0yyArrs0Q+8gZHg==} engines: {node: '>=18.0.0'} @@ -10000,9 +9750,6 @@ packages: uc.micro@2.1.0: resolution: {integrity: sha512-ARDJmphmdvUk6Glw7y9DQ2bFkKBHwQHLi2lsaH6PPmz/Ka9sFOBsBluozhDltWmnv9u/cF6Rt87znRTPV+yp/A==} - ufo@1.6.4: - resolution: {integrity: sha512-JFNbkD1Svwe0KvGi8GOeLcP4kAWQ609twvCdcHxq1oSL8svv39ZuSvajcD8B+5D0eL4+s1Is2D/O6KN3qcTeRA==} - uglify-js@3.19.3: resolution: {integrity: sha512-v3Xu+yuwBXisp6QYTcH4UbH+xYJXqnq2m/LtQVWKWzYc1iehYnLixoQDN9FH6/j9/oybfd6W9Ghwkl8+UMKTKQ==} engines: {node: '>=0.8.0'} @@ -12997,7 +12744,7 @@ snapshots: - '@algolia/client-search' - algoliasearch - '@docusaurus/babel@3.10.1(@swc/core@1.15.33)(clean-css@5.3.3)(cssnano@6.1.2(postcss@8.5.14))(esbuild@0.27.7)(html-minifier-terser@7.2.0)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)': + '@docusaurus/babel@3.10.1(@swc/core@1.15.33)(clean-css@5.3.3)(cssnano@6.1.2(postcss@8.5.14))(html-minifier-terser@7.2.0)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)': dependencies: '@babel/core': 7.29.0 '@babel/generator': 7.29.1 @@ -13009,7 +12756,7 @@ snapshots: '@babel/runtime': 7.27.0 '@babel/traverse': 7.29.0 '@docusaurus/logger': 3.10.1 - '@docusaurus/utils': 3.10.1(@swc/core@1.15.33)(clean-css@5.3.3)(cssnano@6.1.2(postcss@8.5.14))(esbuild@0.27.7)(html-minifier-terser@7.2.0)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@docusaurus/utils': 3.10.1(@swc/core@1.15.33)(clean-css@5.3.3)(cssnano@6.1.2(postcss@8.5.14))(html-minifier-terser@7.2.0)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) babel-plugin-dynamic-import-node: 2.3.3 fs-extra: 11.3.0 tslib: 2.8.1 @@ -13031,7 +12778,7 @@ snapshots: - uglify-js - webpack-cli - '@docusaurus/babel@3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)': + '@docusaurus/babel@3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)': dependencies: '@babel/core': 7.29.0 '@babel/generator': 7.29.1 @@ -13043,7 +12790,7 @@ snapshots: '@babel/runtime': 7.27.0 '@babel/traverse': 7.29.0 '@docusaurus/logger': 3.10.1 - '@docusaurus/utils': 3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@docusaurus/utils': 3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) babel-plugin-dynamic-import-node: 2.3.3 fs-extra: 11.3.0 tslib: 2.8.1 @@ -13065,34 +12812,34 @@ snapshots: - uglify-js - webpack-cli - '@docusaurus/bundler@3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(esbuild@0.27.7)(postcss@8.5.14))(@rspack/core@1.7.11)(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3)': + '@docusaurus/bundler@3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(postcss@8.5.14))(@rspack/core@1.7.11)(@swc/core@1.15.33)(lightningcss@1.32.0)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3)': dependencies: '@babel/core': 7.29.0 - '@docusaurus/babel': 3.10.1(@swc/core@1.15.33)(clean-css@5.3.3)(cssnano@6.1.2(postcss@8.5.14))(esbuild@0.27.7)(html-minifier-terser@7.2.0)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@docusaurus/babel': 3.10.1(@swc/core@1.15.33)(clean-css@5.3.3)(cssnano@6.1.2(postcss@8.5.14))(html-minifier-terser@7.2.0)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) '@docusaurus/cssnano-preset': 3.10.1 '@docusaurus/logger': 3.10.1 - '@docusaurus/types': 3.10.1(@swc/core@1.15.33)(clean-css@5.3.3)(cssnano@6.1.2(postcss@8.5.14))(esbuild@0.27.7)(html-minifier-terser@7.2.0)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) - '@docusaurus/utils': 3.10.1(@swc/core@1.15.33)(clean-css@5.3.3)(cssnano@6.1.2(postcss@8.5.14))(esbuild@0.27.7)(html-minifier-terser@7.2.0)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) - babel-loader: 9.2.1(@babel/core@7.29.0)(webpack@5.106.2(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)) + '@docusaurus/types': 3.10.1(@swc/core@1.15.33)(clean-css@5.3.3)(cssnano@6.1.2(postcss@8.5.14))(html-minifier-terser@7.2.0)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@docusaurus/utils': 3.10.1(@swc/core@1.15.33)(clean-css@5.3.3)(cssnano@6.1.2(postcss@8.5.14))(html-minifier-terser@7.2.0)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + babel-loader: 9.2.1(@babel/core@7.29.0)(webpack@5.106.2(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)) clean-css: 5.3.3 - copy-webpack-plugin: 11.0.0(webpack@5.106.2(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)) - css-loader: 6.11.0(@rspack/core@1.7.11)(webpack@5.106.2(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)) - css-minimizer-webpack-plugin: 5.0.1(clean-css@5.3.3)(esbuild@0.27.7)(lightningcss@1.32.0)(webpack@5.106.2(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)) + copy-webpack-plugin: 11.0.0(webpack@5.106.2(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)) + css-loader: 6.11.0(@rspack/core@1.7.11)(webpack@5.106.2(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)) + css-minimizer-webpack-plugin: 5.0.1(clean-css@5.3.3)(lightningcss@1.32.0)(webpack@5.106.2(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)) cssnano: 6.1.2(postcss@8.5.14) - file-loader: 6.2.0(webpack@5.106.2(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)) + file-loader: 6.2.0(webpack@5.106.2(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)) html-minifier-terser: 7.2.0 - mini-css-extract-plugin: 2.10.2(webpack@5.106.2(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)) - null-loader: 4.0.1(webpack@5.106.2(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)) + mini-css-extract-plugin: 2.10.2(webpack@5.106.2(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)) + null-loader: 4.0.1(webpack@5.106.2(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)) postcss: 8.5.14 - postcss-loader: 7.3.4(postcss@8.5.14)(typescript@5.6.3)(webpack@5.106.2(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)) + postcss-loader: 7.3.4(postcss@8.5.14)(typescript@5.6.3)(webpack@5.106.2(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)) postcss-preset-env: 10.6.1(postcss@8.5.14) - terser-webpack-plugin: 5.6.0(@swc/core@1.15.33)(clean-css@5.3.3)(cssnano@6.1.2(postcss@8.5.14))(esbuild@0.27.7)(html-minifier-terser@7.2.0)(lightningcss@1.32.0)(postcss@8.5.14)(webpack@5.106.2(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)) + terser-webpack-plugin: 5.6.0(@swc/core@1.15.33)(clean-css@5.3.3)(cssnano@6.1.2(postcss@8.5.14))(html-minifier-terser@7.2.0)(lightningcss@1.32.0)(postcss@8.5.14)(webpack@5.106.2(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)) tslib: 2.8.1 - url-loader: 4.1.1(file-loader@6.2.0(webpack@5.106.2(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)))(webpack@5.106.2(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)) - webpack: 5.106.2(@swc/core@1.15.33)(clean-css@5.3.3)(cssnano@6.1.2(postcss@8.5.14))(esbuild@0.27.7)(html-minifier-terser@7.2.0)(lightningcss@1.32.0)(postcss@8.5.14) - webpackbar: 7.0.0(@rspack/core@1.7.11)(webpack@5.106.2(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)) + url-loader: 4.1.1(file-loader@6.2.0(webpack@5.106.2(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)))(webpack@5.106.2(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)) + webpack: 5.106.2(@swc/core@1.15.33)(clean-css@5.3.3)(cssnano@6.1.2(postcss@8.5.14))(html-minifier-terser@7.2.0)(lightningcss@1.32.0)(postcss@8.5.14) + webpackbar: 7.0.0(@rspack/core@1.7.11)(webpack@5.106.2(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)) optionalDependencies: - '@docusaurus/faster': 3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(esbuild@0.27.7)(postcss@8.5.14) + '@docusaurus/faster': 3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(postcss@8.5.14) transitivePeerDependencies: - '@minify-html/node' - '@parcel/css' @@ -13110,15 +12857,15 @@ snapshots: - uglify-js - webpack-cli - '@docusaurus/core@3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(esbuild@0.27.7)(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3)': + '@docusaurus/core@3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3)': dependencies: - '@docusaurus/babel': 3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) - '@docusaurus/bundler': 3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(esbuild@0.27.7)(postcss@8.5.14))(@rspack/core@1.7.11)(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3) + '@docusaurus/babel': 3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@docusaurus/bundler': 3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(postcss@8.5.14))(@rspack/core@1.7.11)(@swc/core@1.15.33)(lightningcss@1.32.0)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3) '@docusaurus/logger': 3.10.1 - '@docusaurus/mdx-loader': 3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) - '@docusaurus/utils': 3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) - '@docusaurus/utils-common': 3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) - '@docusaurus/utils-validation': 3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@docusaurus/mdx-loader': 3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@docusaurus/utils': 3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@docusaurus/utils-common': 3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@docusaurus/utils-validation': 3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) '@mdx-js/react': 3.1.1(@types/react@19.2.14)(react@19.2.6) boxen: 6.2.1 chalk: 4.1.2 @@ -13134,7 +12881,7 @@ snapshots: execa: 5.1.1 fs-extra: 11.3.0 html-tags: 3.3.1 - html-webpack-plugin: 5.6.7(@rspack/core@1.7.11)(webpack@5.106.2(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)) + html-webpack-plugin: 5.6.7(@rspack/core@1.7.11)(webpack@5.106.2(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)) leven: 3.1.0 lodash: 4.17.21 open: 8.4.2 @@ -13144,7 +12891,7 @@ snapshots: react-dom: 19.2.6(react@19.2.6) react-helmet-async: '@slorber/react-helmet-async@1.3.0(react-dom@19.2.6(react@19.2.6))(react@19.2.6)' react-loadable: '@docusaurus/react-loadable@6.0.0(react@19.2.6)' - react-loadable-ssr-addon-v5-slorber: 1.0.3(@docusaurus/react-loadable@6.0.0(react@19.2.6))(webpack@5.106.2(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)) + react-loadable-ssr-addon-v5-slorber: 1.0.3(@docusaurus/react-loadable@6.0.0(react@19.2.6))(webpack@5.106.2(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)) react-router: 5.3.4(react@19.2.6) react-router-config: 5.1.1(react-router@5.3.4(react@19.2.6))(react@19.2.6) react-router-dom: 5.3.4(react@19.2.6) @@ -13153,12 +12900,12 @@ snapshots: tinypool: 1.1.1 tslib: 2.8.1 update-notifier: 6.0.2 - webpack: 5.106.2(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14) + webpack: 5.106.2(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14) webpack-bundle-analyzer: 4.10.2 - webpack-dev-server: 5.2.3(tslib@2.8.1)(webpack@5.106.2(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)) + webpack-dev-server: 5.2.3(tslib@2.8.1)(webpack@5.106.2(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)) webpack-merge: 6.0.1 optionalDependencies: - '@docusaurus/faster': 3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(esbuild@0.27.7)(postcss@8.5.14) + '@docusaurus/faster': 3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(postcss@8.5.14) transitivePeerDependencies: - '@minify-html/node' - '@parcel/css' @@ -13188,18 +12935,18 @@ snapshots: postcss-sort-media-queries: 5.2.0(postcss@8.5.14) tslib: 2.8.1 - '@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(esbuild@0.27.7)(postcss@8.5.14)': + '@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(postcss@8.5.14)': dependencies: - '@docusaurus/types': 3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@docusaurus/types': 3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) '@rspack/core': 1.7.11 '@swc/core': 1.15.33 '@swc/html': 1.15.33 browserslist: 4.28.2 lightningcss: 1.32.0 semver: 7.7.3 - swc-loader: 0.2.7(@swc/core@1.15.33)(webpack@5.106.2(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)) + swc-loader: 0.2.7(@swc/core@1.15.33)(webpack@5.106.2(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)) tslib: 2.8.1 - webpack: 5.106.2(@swc/core@1.15.33)(@swc/html@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14) + webpack: 5.106.2(@swc/core@1.15.33)(@swc/html@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14) transitivePeerDependencies: - '@minify-html/node' - '@swc/css' @@ -13218,16 +12965,16 @@ snapshots: chalk: 4.1.2 tslib: 2.8.1 - '@docusaurus/mdx-loader@3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)': + '@docusaurus/mdx-loader@3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)': dependencies: '@docusaurus/logger': 3.10.1 - '@docusaurus/utils': 3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) - '@docusaurus/utils-validation': 3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@docusaurus/utils': 3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@docusaurus/utils-validation': 3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) '@mdx-js/mdx': 3.1.1 '@slorber/remark-comment': 1.0.0 escape-html: 1.0.3 estree-util-value-to-estree: 3.5.0 - file-loader: 6.2.0(webpack@5.106.2(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)) + file-loader: 6.2.0(webpack@5.106.2(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)) fs-extra: 11.3.0 image-size: 2.0.2 mdast-util-mdx: 3.0.0 @@ -13243,9 +12990,9 @@ snapshots: tslib: 2.8.1 unified: 11.0.5 unist-util-visit: 5.0.0 - url-loader: 4.1.1(file-loader@6.2.0(webpack@5.106.2(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)))(webpack@5.106.2(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)) + url-loader: 4.1.1(file-loader@6.2.0(webpack@5.106.2(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)))(webpack@5.106.2(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)) vfile: 6.0.3 - webpack: 5.106.2(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14) + webpack: 5.106.2(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14) transitivePeerDependencies: - '@minify-html/node' - '@swc/core' @@ -13262,9 +13009,9 @@ snapshots: - uglify-js - webpack-cli - '@docusaurus/module-type-aliases@3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)': + '@docusaurus/module-type-aliases@3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)': dependencies: - '@docusaurus/types': 3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@docusaurus/types': 3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) '@types/history': 4.7.11 '@types/react': 19.2.14 '@types/react-router-config': 5.0.11 @@ -13289,13 +13036,13 @@ snapshots: - uglify-js - webpack-cli - '@docusaurus/plugin-client-redirects@3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(esbuild@0.27.7)(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3)': + '@docusaurus/plugin-client-redirects@3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3)': dependencies: - '@docusaurus/core': 3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(esbuild@0.27.7)(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3) + '@docusaurus/core': 3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3) '@docusaurus/logger': 3.10.1 - '@docusaurus/utils': 3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) - '@docusaurus/utils-common': 3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) - '@docusaurus/utils-validation': 3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@docusaurus/utils': 3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@docusaurus/utils-common': 3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@docusaurus/utils-validation': 3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) eta: 2.2.0 fs-extra: 11.3.0 lodash: 4.17.21 @@ -13326,17 +13073,17 @@ snapshots: - utf-8-validate - webpack-cli - '@docusaurus/plugin-content-blog@3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(esbuild@0.27.7)(postcss@8.5.14))(@docusaurus/plugin-content-docs@3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(esbuild@0.27.7)(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3)': + '@docusaurus/plugin-content-blog@3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(postcss@8.5.14))(@docusaurus/plugin-content-docs@3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3)': dependencies: - '@docusaurus/core': 3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(esbuild@0.27.7)(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3) + '@docusaurus/core': 3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3) '@docusaurus/logger': 3.10.1 - '@docusaurus/mdx-loader': 3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) - '@docusaurus/plugin-content-docs': 3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(esbuild@0.27.7)(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3) - '@docusaurus/theme-common': 3.10.1(@docusaurus/plugin-content-docs@3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(esbuild@0.27.7)(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3))(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) - '@docusaurus/types': 3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) - '@docusaurus/utils': 3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) - '@docusaurus/utils-common': 3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) - '@docusaurus/utils-validation': 3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@docusaurus/mdx-loader': 3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@docusaurus/plugin-content-docs': 3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3) + '@docusaurus/theme-common': 3.10.1(@docusaurus/plugin-content-docs@3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3))(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@docusaurus/types': 3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@docusaurus/utils': 3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@docusaurus/utils-common': 3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@docusaurus/utils-validation': 3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) cheerio: 1.0.0-rc.12 combine-promises: 1.2.0 feed: 4.2.2 @@ -13349,7 +13096,7 @@ snapshots: tslib: 2.8.1 unist-util-visit: 5.0.0 utility-types: 3.11.0 - webpack: 5.106.2(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14) + webpack: 5.106.2(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14) transitivePeerDependencies: - '@docusaurus/faster' - '@mdx-js/react' @@ -13374,17 +13121,17 @@ snapshots: - utf-8-validate - webpack-cli - '@docusaurus/plugin-content-docs@3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(esbuild@0.27.7)(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3)': + '@docusaurus/plugin-content-docs@3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3)': dependencies: - '@docusaurus/core': 3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(esbuild@0.27.7)(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3) + '@docusaurus/core': 3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3) '@docusaurus/logger': 3.10.1 - '@docusaurus/mdx-loader': 3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) - '@docusaurus/module-type-aliases': 3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) - '@docusaurus/theme-common': 3.10.1(@docusaurus/plugin-content-docs@3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(esbuild@0.27.7)(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3))(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) - '@docusaurus/types': 3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) - '@docusaurus/utils': 3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) - '@docusaurus/utils-common': 3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) - '@docusaurus/utils-validation': 3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@docusaurus/mdx-loader': 3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@docusaurus/module-type-aliases': 3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@docusaurus/theme-common': 3.10.1(@docusaurus/plugin-content-docs@3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3))(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@docusaurus/types': 3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@docusaurus/utils': 3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@docusaurus/utils-common': 3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@docusaurus/utils-validation': 3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) '@types/react-router-config': 5.0.11 combine-promises: 1.2.0 fs-extra: 11.3.0 @@ -13395,7 +13142,7 @@ snapshots: schema-dts: 1.1.5 tslib: 2.8.1 utility-types: 3.11.0 - webpack: 5.106.2(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14) + webpack: 5.106.2(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14) transitivePeerDependencies: - '@docusaurus/faster' - '@mdx-js/react' @@ -13420,18 +13167,18 @@ snapshots: - utf-8-validate - webpack-cli - '@docusaurus/plugin-content-pages@3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(esbuild@0.27.7)(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3)': + '@docusaurus/plugin-content-pages@3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3)': dependencies: - '@docusaurus/core': 3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(esbuild@0.27.7)(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3) - '@docusaurus/mdx-loader': 3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) - '@docusaurus/types': 3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) - '@docusaurus/utils': 3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) - '@docusaurus/utils-validation': 3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@docusaurus/core': 3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3) + '@docusaurus/mdx-loader': 3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@docusaurus/types': 3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@docusaurus/utils': 3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@docusaurus/utils-validation': 3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) fs-extra: 11.3.0 react: 19.2.6 react-dom: 19.2.6(react@19.2.6) tslib: 2.8.1 - webpack: 5.106.2(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14) + webpack: 5.106.2(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14) transitivePeerDependencies: - '@docusaurus/faster' - '@mdx-js/react' @@ -13456,12 +13203,12 @@ snapshots: - utf-8-validate - webpack-cli - '@docusaurus/plugin-css-cascade-layers@3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(esbuild@0.27.7)(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3)': + '@docusaurus/plugin-css-cascade-layers@3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3)': dependencies: - '@docusaurus/core': 3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(esbuild@0.27.7)(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3) - '@docusaurus/types': 3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) - '@docusaurus/utils': 3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) - '@docusaurus/utils-validation': 3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@docusaurus/core': 3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3) + '@docusaurus/types': 3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@docusaurus/utils': 3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@docusaurus/utils-validation': 3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) tslib: 2.8.1 transitivePeerDependencies: - '@docusaurus/faster' @@ -13489,11 +13236,11 @@ snapshots: - utf-8-validate - webpack-cli - '@docusaurus/plugin-debug@3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(esbuild@0.27.7)(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3)': + '@docusaurus/plugin-debug@3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3)': dependencies: - '@docusaurus/core': 3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(esbuild@0.27.7)(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3) - '@docusaurus/types': 3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) - '@docusaurus/utils': 3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@docusaurus/core': 3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3) + '@docusaurus/types': 3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@docusaurus/utils': 3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) fs-extra: 11.3.0 react: 19.2.6 react-dom: 19.2.6(react@19.2.6) @@ -13523,11 +13270,11 @@ snapshots: - utf-8-validate - webpack-cli - '@docusaurus/plugin-google-analytics@3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(esbuild@0.27.7)(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3)': + '@docusaurus/plugin-google-analytics@3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3)': dependencies: - '@docusaurus/core': 3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(esbuild@0.27.7)(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3) - '@docusaurus/types': 3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) - '@docusaurus/utils-validation': 3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@docusaurus/core': 3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3) + '@docusaurus/types': 3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@docusaurus/utils-validation': 3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) react: 19.2.6 react-dom: 19.2.6(react@19.2.6) tslib: 2.8.1 @@ -13555,11 +13302,11 @@ snapshots: - utf-8-validate - webpack-cli - '@docusaurus/plugin-google-gtag@3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(esbuild@0.27.7)(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3)': + '@docusaurus/plugin-google-gtag@3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3)': dependencies: - '@docusaurus/core': 3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(esbuild@0.27.7)(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3) - '@docusaurus/types': 3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) - '@docusaurus/utils-validation': 3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@docusaurus/core': 3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3) + '@docusaurus/types': 3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@docusaurus/utils-validation': 3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) '@types/gtag.js': 0.0.20 react: 19.2.6 react-dom: 19.2.6(react@19.2.6) @@ -13588,11 +13335,11 @@ snapshots: - utf-8-validate - webpack-cli - '@docusaurus/plugin-google-tag-manager@3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(esbuild@0.27.7)(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3)': + '@docusaurus/plugin-google-tag-manager@3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3)': dependencies: - '@docusaurus/core': 3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(esbuild@0.27.7)(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3) - '@docusaurus/types': 3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) - '@docusaurus/utils-validation': 3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@docusaurus/core': 3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3) + '@docusaurus/types': 3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@docusaurus/utils-validation': 3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) react: 19.2.6 react-dom: 19.2.6(react@19.2.6) tslib: 2.8.1 @@ -13620,14 +13367,14 @@ snapshots: - utf-8-validate - webpack-cli - '@docusaurus/plugin-sitemap@3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(esbuild@0.27.7)(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3)': + '@docusaurus/plugin-sitemap@3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3)': dependencies: - '@docusaurus/core': 3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(esbuild@0.27.7)(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3) + '@docusaurus/core': 3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3) '@docusaurus/logger': 3.10.1 - '@docusaurus/types': 3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) - '@docusaurus/utils': 3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) - '@docusaurus/utils-common': 3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) - '@docusaurus/utils-validation': 3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@docusaurus/types': 3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@docusaurus/utils': 3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@docusaurus/utils-common': 3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@docusaurus/utils-validation': 3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) fs-extra: 11.3.0 react: 19.2.6 react-dom: 19.2.6(react@19.2.6) @@ -13657,18 +13404,18 @@ snapshots: - utf-8-validate - webpack-cli - '@docusaurus/plugin-svgr@3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(esbuild@0.27.7)(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3)': + '@docusaurus/plugin-svgr@3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3)': dependencies: - '@docusaurus/core': 3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(esbuild@0.27.7)(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3) - '@docusaurus/types': 3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) - '@docusaurus/utils': 3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) - '@docusaurus/utils-validation': 3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@docusaurus/core': 3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3) + '@docusaurus/types': 3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@docusaurus/utils': 3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@docusaurus/utils-validation': 3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) '@svgr/core': 8.1.0(typescript@5.6.3) '@svgr/webpack': 8.1.0(typescript@5.6.3) react: 19.2.6 react-dom: 19.2.6(react@19.2.6) tslib: 2.8.1 - webpack: 5.106.2(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14) + webpack: 5.106.2(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14) transitivePeerDependencies: - '@docusaurus/faster' - '@mdx-js/react' @@ -13693,23 +13440,23 @@ snapshots: - utf-8-validate - webpack-cli - '@docusaurus/preset-classic@3.10.1(@algolia/client-search@5.52.1)(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(esbuild@0.27.7)(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(@types/react@19.2.14)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(search-insights@2.17.3)(typescript@5.6.3)': - dependencies: - '@docusaurus/core': 3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(esbuild@0.27.7)(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3) - '@docusaurus/plugin-content-blog': 3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(esbuild@0.27.7)(postcss@8.5.14))(@docusaurus/plugin-content-docs@3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(esbuild@0.27.7)(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3) - '@docusaurus/plugin-content-docs': 3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(esbuild@0.27.7)(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3) - '@docusaurus/plugin-content-pages': 3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(esbuild@0.27.7)(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3) - '@docusaurus/plugin-css-cascade-layers': 3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(esbuild@0.27.7)(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3) - '@docusaurus/plugin-debug': 3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(esbuild@0.27.7)(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3) - '@docusaurus/plugin-google-analytics': 3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(esbuild@0.27.7)(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3) - '@docusaurus/plugin-google-gtag': 3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(esbuild@0.27.7)(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3) - '@docusaurus/plugin-google-tag-manager': 3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(esbuild@0.27.7)(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3) - '@docusaurus/plugin-sitemap': 3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(esbuild@0.27.7)(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3) - '@docusaurus/plugin-svgr': 3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(esbuild@0.27.7)(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3) - '@docusaurus/theme-classic': 3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(esbuild@0.27.7)(postcss@8.5.14))(@rspack/core@1.7.11)(@swc/core@1.15.33)(@types/react@19.2.14)(esbuild@0.27.7)(lightningcss@1.32.0)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3) - '@docusaurus/theme-common': 3.10.1(@docusaurus/plugin-content-docs@3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(esbuild@0.27.7)(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3))(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) - '@docusaurus/theme-search-algolia': 3.10.1(@algolia/client-search@5.52.1)(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(esbuild@0.27.7)(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(@types/react@19.2.14)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(search-insights@2.17.3)(typescript@5.6.3) - '@docusaurus/types': 3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@docusaurus/preset-classic@3.10.1(@algolia/client-search@5.52.1)(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(@types/react@19.2.14)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(search-insights@2.17.3)(typescript@5.6.3)': + dependencies: + '@docusaurus/core': 3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3) + '@docusaurus/plugin-content-blog': 3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(postcss@8.5.14))(@docusaurus/plugin-content-docs@3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3) + '@docusaurus/plugin-content-docs': 3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3) + '@docusaurus/plugin-content-pages': 3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3) + '@docusaurus/plugin-css-cascade-layers': 3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3) + '@docusaurus/plugin-debug': 3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3) + '@docusaurus/plugin-google-analytics': 3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3) + '@docusaurus/plugin-google-gtag': 3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3) + '@docusaurus/plugin-google-tag-manager': 3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3) + '@docusaurus/plugin-sitemap': 3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3) + '@docusaurus/plugin-svgr': 3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3) + '@docusaurus/theme-classic': 3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(postcss@8.5.14))(@rspack/core@1.7.11)(@swc/core@1.15.33)(@types/react@19.2.14)(lightningcss@1.32.0)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3) + '@docusaurus/theme-common': 3.10.1(@docusaurus/plugin-content-docs@3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3))(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@docusaurus/theme-search-algolia': 3.10.1(@algolia/client-search@5.52.1)(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(@types/react@19.2.14)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(search-insights@2.17.3)(typescript@5.6.3) + '@docusaurus/types': 3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) react: 19.2.6 react-dom: 19.2.6(react@19.2.6) transitivePeerDependencies: @@ -13744,21 +13491,21 @@ snapshots: '@types/react': 19.2.14 react: 19.2.6 - '@docusaurus/theme-classic@3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(esbuild@0.27.7)(postcss@8.5.14))(@rspack/core@1.7.11)(@swc/core@1.15.33)(@types/react@19.2.14)(esbuild@0.27.7)(lightningcss@1.32.0)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3)': + '@docusaurus/theme-classic@3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(postcss@8.5.14))(@rspack/core@1.7.11)(@swc/core@1.15.33)(@types/react@19.2.14)(lightningcss@1.32.0)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3)': dependencies: - '@docusaurus/core': 3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(esbuild@0.27.7)(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3) + '@docusaurus/core': 3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3) '@docusaurus/logger': 3.10.1 - '@docusaurus/mdx-loader': 3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) - '@docusaurus/module-type-aliases': 3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) - '@docusaurus/plugin-content-blog': 3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(esbuild@0.27.7)(postcss@8.5.14))(@docusaurus/plugin-content-docs@3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(esbuild@0.27.7)(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3) - '@docusaurus/plugin-content-docs': 3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(esbuild@0.27.7)(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3) - '@docusaurus/plugin-content-pages': 3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(esbuild@0.27.7)(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3) - '@docusaurus/theme-common': 3.10.1(@docusaurus/plugin-content-docs@3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(esbuild@0.27.7)(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3))(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@docusaurus/mdx-loader': 3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@docusaurus/module-type-aliases': 3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@docusaurus/plugin-content-blog': 3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(postcss@8.5.14))(@docusaurus/plugin-content-docs@3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3) + '@docusaurus/plugin-content-docs': 3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3) + '@docusaurus/plugin-content-pages': 3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3) + '@docusaurus/theme-common': 3.10.1(@docusaurus/plugin-content-docs@3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3))(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) '@docusaurus/theme-translations': 3.10.1 - '@docusaurus/types': 3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) - '@docusaurus/utils': 3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) - '@docusaurus/utils-common': 3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) - '@docusaurus/utils-validation': 3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@docusaurus/types': 3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@docusaurus/utils': 3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@docusaurus/utils-common': 3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@docusaurus/utils-validation': 3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) '@mdx-js/react': 3.1.1(@types/react@19.2.14)(react@19.2.6) clsx: 2.1.1 copy-text-to-clipboard: 3.2.2 @@ -13797,13 +13544,13 @@ snapshots: - utf-8-validate - webpack-cli - '@docusaurus/theme-common@3.10.1(@docusaurus/plugin-content-docs@3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(esbuild@0.27.7)(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3))(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)': + '@docusaurus/theme-common@3.10.1(@docusaurus/plugin-content-docs@3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3))(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)': dependencies: - '@docusaurus/mdx-loader': 3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) - '@docusaurus/module-type-aliases': 3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) - '@docusaurus/plugin-content-docs': 3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(esbuild@0.27.7)(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3) - '@docusaurus/utils': 3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) - '@docusaurus/utils-common': 3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@docusaurus/mdx-loader': 3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@docusaurus/module-type-aliases': 3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@docusaurus/plugin-content-docs': 3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3) + '@docusaurus/utils': 3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@docusaurus/utils-common': 3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) '@types/history': 4.7.11 '@types/react': 19.2.14 '@types/react-router-config': 5.0.11 @@ -13830,13 +13577,13 @@ snapshots: - uglify-js - webpack-cli - '@docusaurus/theme-mermaid@3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(esbuild@0.27.7)(postcss@8.5.14))(@docusaurus/plugin-content-docs@3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(esbuild@0.27.7)(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3)': + '@docusaurus/theme-mermaid@3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(postcss@8.5.14))(@docusaurus/plugin-content-docs@3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3)': dependencies: - '@docusaurus/core': 3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(esbuild@0.27.7)(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3) - '@docusaurus/module-type-aliases': 3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) - '@docusaurus/theme-common': 3.10.1(@docusaurus/plugin-content-docs@3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(esbuild@0.27.7)(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3))(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) - '@docusaurus/types': 3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) - '@docusaurus/utils-validation': 3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@docusaurus/core': 3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3) + '@docusaurus/module-type-aliases': 3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@docusaurus/theme-common': 3.10.1(@docusaurus/plugin-content-docs@3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3))(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@docusaurus/types': 3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@docusaurus/utils-validation': 3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) mermaid: 11.14.0 react: 19.2.6 react-dom: 19.2.6(react@19.2.6) @@ -13866,17 +13613,17 @@ snapshots: - utf-8-validate - webpack-cli - '@docusaurus/theme-search-algolia@3.10.1(@algolia/client-search@5.52.1)(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(esbuild@0.27.7)(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(@types/react@19.2.14)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(search-insights@2.17.3)(typescript@5.6.3)': + '@docusaurus/theme-search-algolia@3.10.1(@algolia/client-search@5.52.1)(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(@types/react@19.2.14)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(search-insights@2.17.3)(typescript@5.6.3)': dependencies: '@algolia/autocomplete-core': 1.19.8(@algolia/client-search@5.52.1)(algoliasearch@5.52.1)(search-insights@2.17.3) '@docsearch/react': 4.6.3(@algolia/client-search@5.52.1)(@types/react@19.2.14)(algoliasearch@5.52.1)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(search-insights@2.17.3) - '@docusaurus/core': 3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(esbuild@0.27.7)(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3) + '@docusaurus/core': 3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3) '@docusaurus/logger': 3.10.1 - '@docusaurus/plugin-content-docs': 3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(esbuild@0.27.7)(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3) - '@docusaurus/theme-common': 3.10.1(@docusaurus/plugin-content-docs@3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(esbuild@0.27.7)(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3))(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@docusaurus/plugin-content-docs': 3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3) + '@docusaurus/theme-common': 3.10.1(@docusaurus/plugin-content-docs@3.10.1(@docusaurus/faster@3.10.1(@docusaurus/types@3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(postcss@8.5.14))(@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.6))(@rspack/core@1.7.11)(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)(typescript@5.6.3))(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) '@docusaurus/theme-translations': 3.10.1 - '@docusaurus/utils': 3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) - '@docusaurus/utils-validation': 3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@docusaurus/utils': 3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@docusaurus/utils-validation': 3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) algoliasearch: 5.52.1 algoliasearch-helper: 3.29.1(algoliasearch@5.52.1) clsx: 2.1.1 @@ -13921,7 +13668,7 @@ snapshots: '@docusaurus/tsconfig@3.10.1': {} - '@docusaurus/types@3.10.1(@swc/core@1.15.33)(clean-css@5.3.3)(cssnano@6.1.2(postcss@8.5.14))(esbuild@0.27.7)(html-minifier-terser@7.2.0)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)': + '@docusaurus/types@3.10.1(@swc/core@1.15.33)(clean-css@5.3.3)(cssnano@6.1.2(postcss@8.5.14))(html-minifier-terser@7.2.0)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)': dependencies: '@mdx-js/mdx': 3.1.1 '@types/history': 4.7.11 @@ -13933,7 +13680,7 @@ snapshots: react-dom: 19.2.6(react@19.2.6) react-helmet-async: '@slorber/react-helmet-async@1.3.0(react-dom@19.2.6(react@19.2.6))(react@19.2.6)' utility-types: 3.11.0 - webpack: 5.106.2(@swc/core@1.15.33)(clean-css@5.3.3)(cssnano@6.1.2(postcss@8.5.14))(esbuild@0.27.7)(html-minifier-terser@7.2.0)(lightningcss@1.32.0)(postcss@8.5.14) + webpack: 5.106.2(@swc/core@1.15.33)(clean-css@5.3.3)(cssnano@6.1.2(postcss@8.5.14))(html-minifier-terser@7.2.0)(lightningcss@1.32.0)(postcss@8.5.14) webpack-merge: 5.10.0 transitivePeerDependencies: - '@minify-html/node' @@ -13951,7 +13698,7 @@ snapshots: - uglify-js - webpack-cli - '@docusaurus/types@3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)': + '@docusaurus/types@3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)': dependencies: '@mdx-js/mdx': 3.1.1 '@types/history': 4.7.11 @@ -13963,7 +13710,7 @@ snapshots: react-dom: 19.2.6(react@19.2.6) react-helmet-async: '@slorber/react-helmet-async@1.3.0(react-dom@19.2.6(react@19.2.6))(react@19.2.6)' utility-types: 3.11.0 - webpack: 5.106.2(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14) + webpack: 5.106.2(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14) webpack-merge: 5.10.0 transitivePeerDependencies: - '@minify-html/node' @@ -13981,9 +13728,9 @@ snapshots: - uglify-js - webpack-cli - '@docusaurus/utils-common@3.10.1(@swc/core@1.15.33)(clean-css@5.3.3)(cssnano@6.1.2(postcss@8.5.14))(esbuild@0.27.7)(html-minifier-terser@7.2.0)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)': + '@docusaurus/utils-common@3.10.1(@swc/core@1.15.33)(clean-css@5.3.3)(cssnano@6.1.2(postcss@8.5.14))(html-minifier-terser@7.2.0)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)': dependencies: - '@docusaurus/types': 3.10.1(@swc/core@1.15.33)(clean-css@5.3.3)(cssnano@6.1.2(postcss@8.5.14))(esbuild@0.27.7)(html-minifier-terser@7.2.0)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@docusaurus/types': 3.10.1(@swc/core@1.15.33)(clean-css@5.3.3)(cssnano@6.1.2(postcss@8.5.14))(html-minifier-terser@7.2.0)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) tslib: 2.8.1 transitivePeerDependencies: - '@minify-html/node' @@ -14003,9 +13750,9 @@ snapshots: - uglify-js - webpack-cli - '@docusaurus/utils-common@3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)': + '@docusaurus/utils-common@3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)': dependencies: - '@docusaurus/types': 3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@docusaurus/types': 3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) tslib: 2.8.1 transitivePeerDependencies: - '@minify-html/node' @@ -14025,11 +13772,11 @@ snapshots: - uglify-js - webpack-cli - '@docusaurus/utils-validation@3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)': + '@docusaurus/utils-validation@3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)': dependencies: '@docusaurus/logger': 3.10.1 - '@docusaurus/utils': 3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) - '@docusaurus/utils-common': 3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@docusaurus/utils': 3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@docusaurus/utils-common': 3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) fs-extra: 11.3.0 joi: 17.13.3 js-yaml: 4.1.1 @@ -14053,14 +13800,14 @@ snapshots: - uglify-js - webpack-cli - '@docusaurus/utils@3.10.1(@swc/core@1.15.33)(clean-css@5.3.3)(cssnano@6.1.2(postcss@8.5.14))(esbuild@0.27.7)(html-minifier-terser@7.2.0)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)': + '@docusaurus/utils@3.10.1(@swc/core@1.15.33)(clean-css@5.3.3)(cssnano@6.1.2(postcss@8.5.14))(html-minifier-terser@7.2.0)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)': dependencies: '@docusaurus/logger': 3.10.1 - '@docusaurus/types': 3.10.1(@swc/core@1.15.33)(clean-css@5.3.3)(cssnano@6.1.2(postcss@8.5.14))(esbuild@0.27.7)(html-minifier-terser@7.2.0)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) - '@docusaurus/utils-common': 3.10.1(@swc/core@1.15.33)(clean-css@5.3.3)(cssnano@6.1.2(postcss@8.5.14))(esbuild@0.27.7)(html-minifier-terser@7.2.0)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@docusaurus/types': 3.10.1(@swc/core@1.15.33)(clean-css@5.3.3)(cssnano@6.1.2(postcss@8.5.14))(html-minifier-terser@7.2.0)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@docusaurus/utils-common': 3.10.1(@swc/core@1.15.33)(clean-css@5.3.3)(cssnano@6.1.2(postcss@8.5.14))(html-minifier-terser@7.2.0)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) escape-string-regexp: 4.0.0 execa: 5.1.1 - file-loader: 6.2.0(webpack@5.106.2(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)) + file-loader: 6.2.0(webpack@5.106.2(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)) fs-extra: 11.3.0 github-slugger: 1.5.0 globby: 11.1.0 @@ -14073,9 +13820,9 @@ snapshots: prompts: 2.4.2 resolve-pathname: 3.0.0 tslib: 2.8.1 - url-loader: 4.1.1(file-loader@6.2.0(webpack@5.106.2(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)))(webpack@5.106.2(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)) + url-loader: 4.1.1(file-loader@6.2.0(webpack@5.106.2(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)))(webpack@5.106.2(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)) utility-types: 3.11.0 - webpack: 5.106.2(@swc/core@1.15.33)(clean-css@5.3.3)(cssnano@6.1.2(postcss@8.5.14))(esbuild@0.27.7)(html-minifier-terser@7.2.0)(lightningcss@1.32.0)(postcss@8.5.14) + webpack: 5.106.2(@swc/core@1.15.33)(clean-css@5.3.3)(cssnano@6.1.2(postcss@8.5.14))(html-minifier-terser@7.2.0)(lightningcss@1.32.0)(postcss@8.5.14) transitivePeerDependencies: - '@minify-html/node' - '@swc/core' @@ -14094,14 +13841,14 @@ snapshots: - uglify-js - webpack-cli - '@docusaurus/utils@3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)': + '@docusaurus/utils@3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)': dependencies: '@docusaurus/logger': 3.10.1 - '@docusaurus/types': 3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) - '@docusaurus/utils-common': 3.10.1(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@docusaurus/types': 3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + '@docusaurus/utils-common': 3.10.1(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) escape-string-regexp: 4.0.0 execa: 5.1.1 - file-loader: 6.2.0(webpack@5.106.2(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)) + file-loader: 6.2.0(webpack@5.106.2(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)) fs-extra: 11.3.0 github-slugger: 1.5.0 globby: 11.1.0 @@ -14114,9 +13861,9 @@ snapshots: prompts: 2.4.2 resolve-pathname: 3.0.0 tslib: 2.8.1 - url-loader: 4.1.1(file-loader@6.2.0(webpack@5.106.2(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)))(webpack@5.106.2(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)) + url-loader: 4.1.1(file-loader@6.2.0(webpack@5.106.2(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)))(webpack@5.106.2(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)) utility-types: 3.11.0 - webpack: 5.106.2(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14) + webpack: 5.106.2(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14) transitivePeerDependencies: - '@minify-html/node' - '@swc/core' @@ -14254,231 +14001,153 @@ snapshots: '@esbuild/aix-ppc64@0.25.2': optional: true - '@esbuild/aix-ppc64@0.27.7': - optional: true - '@esbuild/aix-ppc64@0.28.0': optional: true '@esbuild/android-arm64@0.25.2': optional: true - '@esbuild/android-arm64@0.27.7': - optional: true - '@esbuild/android-arm64@0.28.0': optional: true '@esbuild/android-arm@0.25.2': optional: true - '@esbuild/android-arm@0.27.7': - optional: true - '@esbuild/android-arm@0.28.0': optional: true '@esbuild/android-x64@0.25.2': optional: true - '@esbuild/android-x64@0.27.7': - optional: true - '@esbuild/android-x64@0.28.0': optional: true '@esbuild/darwin-arm64@0.25.2': optional: true - '@esbuild/darwin-arm64@0.27.7': - optional: true - '@esbuild/darwin-arm64@0.28.0': optional: true '@esbuild/darwin-x64@0.25.2': optional: true - '@esbuild/darwin-x64@0.27.7': - optional: true - '@esbuild/darwin-x64@0.28.0': optional: true '@esbuild/freebsd-arm64@0.25.2': optional: true - '@esbuild/freebsd-arm64@0.27.7': - optional: true - '@esbuild/freebsd-arm64@0.28.0': optional: true '@esbuild/freebsd-x64@0.25.2': optional: true - '@esbuild/freebsd-x64@0.27.7': - optional: true - '@esbuild/freebsd-x64@0.28.0': optional: true '@esbuild/linux-arm64@0.25.2': optional: true - '@esbuild/linux-arm64@0.27.7': - optional: true - '@esbuild/linux-arm64@0.28.0': optional: true '@esbuild/linux-arm@0.25.2': optional: true - '@esbuild/linux-arm@0.27.7': - optional: true - '@esbuild/linux-arm@0.28.0': optional: true '@esbuild/linux-ia32@0.25.2': optional: true - '@esbuild/linux-ia32@0.27.7': - optional: true - '@esbuild/linux-ia32@0.28.0': optional: true '@esbuild/linux-loong64@0.25.2': optional: true - '@esbuild/linux-loong64@0.27.7': - optional: true - '@esbuild/linux-loong64@0.28.0': optional: true '@esbuild/linux-mips64el@0.25.2': optional: true - '@esbuild/linux-mips64el@0.27.7': - optional: true - '@esbuild/linux-mips64el@0.28.0': optional: true '@esbuild/linux-ppc64@0.25.2': optional: true - '@esbuild/linux-ppc64@0.27.7': - optional: true - '@esbuild/linux-ppc64@0.28.0': optional: true '@esbuild/linux-riscv64@0.25.2': optional: true - '@esbuild/linux-riscv64@0.27.7': - optional: true - '@esbuild/linux-riscv64@0.28.0': optional: true '@esbuild/linux-s390x@0.25.2': optional: true - '@esbuild/linux-s390x@0.27.7': - optional: true - '@esbuild/linux-s390x@0.28.0': optional: true '@esbuild/linux-x64@0.25.2': optional: true - '@esbuild/linux-x64@0.27.7': - optional: true - '@esbuild/linux-x64@0.28.0': optional: true '@esbuild/netbsd-arm64@0.25.2': optional: true - '@esbuild/netbsd-arm64@0.27.7': - optional: true - '@esbuild/netbsd-arm64@0.28.0': optional: true '@esbuild/netbsd-x64@0.25.2': optional: true - '@esbuild/netbsd-x64@0.27.7': - optional: true - '@esbuild/netbsd-x64@0.28.0': optional: true '@esbuild/openbsd-arm64@0.25.2': optional: true - '@esbuild/openbsd-arm64@0.27.7': - optional: true - '@esbuild/openbsd-arm64@0.28.0': optional: true '@esbuild/openbsd-x64@0.25.2': optional: true - '@esbuild/openbsd-x64@0.27.7': - optional: true - '@esbuild/openbsd-x64@0.28.0': optional: true - '@esbuild/openharmony-arm64@0.27.7': - optional: true - '@esbuild/openharmony-arm64@0.28.0': optional: true '@esbuild/sunos-x64@0.25.2': optional: true - '@esbuild/sunos-x64@0.27.7': - optional: true - '@esbuild/sunos-x64@0.28.0': optional: true '@esbuild/win32-arm64@0.25.2': optional: true - '@esbuild/win32-arm64@0.27.7': - optional: true - '@esbuild/win32-arm64@0.28.0': optional: true '@esbuild/win32-ia32@0.25.2': optional: true - '@esbuild/win32-ia32@0.27.7': - optional: true - '@esbuild/win32-ia32@0.28.0': optional: true '@esbuild/win32-x64@0.25.2': optional: true - '@esbuild/win32-x64@0.27.7': - optional: true - '@esbuild/win32-x64@0.28.0': optional: true @@ -15567,6 +15236,8 @@ snapshots: '@tsconfig/node16@1.0.4': {} + '@tsconfig/node22@22.0.5': {} + '@tybys/wasm-util@0.10.2': dependencies: tslib: 2.8.1 @@ -16389,8 +16060,6 @@ snapshots: ansis@3.17.0: {} - any-promise@1.3.0: {} - anymatch@3.1.3: dependencies: normalize-path: 3.0.0 @@ -16447,12 +16116,12 @@ snapshots: aws4@1.13.2: {} - babel-loader@9.2.1(@babel/core@7.29.0)(webpack@5.106.2(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)): + babel-loader@9.2.1(@babel/core@7.29.0)(webpack@5.106.2(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)): dependencies: '@babel/core': 7.29.0 find-cache-dir: 4.0.0 schema-utils: 4.3.3 - webpack: 5.106.2(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14) + webpack: 5.106.2(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14) babel-plugin-dynamic-import-node@2.3.3: dependencies: @@ -16686,11 +16355,6 @@ snapshots: dependencies: run-applescript: 7.1.0 - bundle-require@5.1.0(esbuild@0.27.7): - dependencies: - esbuild: 0.27.7 - load-tsconfig: 0.2.5 - bytes@3.0.0: {} bytes@3.1.2: {} @@ -16945,8 +16609,6 @@ snapshots: commander@2.20.3: {} - commander@4.1.1: {} - commander@5.1.0: {} commander@7.2.0: {} @@ -16983,8 +16645,6 @@ snapshots: concat-map@0.0.1: {} - confbox@0.1.8: {} - config-chain@1.1.13: dependencies: ini: 1.3.8 @@ -17097,7 +16757,7 @@ snapshots: copy-text-to-clipboard@3.2.2: {} - copy-webpack-plugin@11.0.0(webpack@5.106.2(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)): + copy-webpack-plugin@11.0.0(webpack@5.106.2(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)): dependencies: fast-glob: 3.3.3 glob-parent: 6.0.2 @@ -17105,7 +16765,7 @@ snapshots: normalize-path: 3.0.0 schema-utils: 4.3.3 serialize-javascript: 6.0.2 - webpack: 5.106.2(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14) + webpack: 5.106.2(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14) core-js-compat@3.41.0: dependencies: @@ -17175,7 +16835,7 @@ snapshots: postcss-selector-parser: 7.1.1 postcss-value-parser: 4.2.0 - css-loader@6.11.0(@rspack/core@1.7.11)(webpack@5.106.2(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)): + css-loader@6.11.0(@rspack/core@1.7.11)(webpack@5.106.2(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)): dependencies: icss-utils: 5.1.0(postcss@8.5.14) postcss: 8.5.14 @@ -17187,9 +16847,9 @@ snapshots: semver: 7.7.3 optionalDependencies: '@rspack/core': 1.7.11 - webpack: 5.106.2(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14) + webpack: 5.106.2(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14) - css-minimizer-webpack-plugin@5.0.1(clean-css@5.3.3)(esbuild@0.27.7)(lightningcss@1.32.0)(webpack@5.106.2(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)): + css-minimizer-webpack-plugin@5.0.1(clean-css@5.3.3)(lightningcss@1.32.0)(webpack@5.106.2(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)): dependencies: '@jridgewell/trace-mapping': 0.3.31 cssnano: 6.1.2(postcss@8.5.14) @@ -17197,10 +16857,9 @@ snapshots: postcss: 8.5.14 schema-utils: 4.3.3 serialize-javascript: 6.0.2 - webpack: 5.106.2(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14) + webpack: 5.106.2(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14) optionalDependencies: clean-css: 5.3.3 - esbuild: 0.27.7 lightningcss: 1.32.0 css-prefers-color-scheme@10.0.0(postcss@8.5.14): @@ -17868,35 +17527,6 @@ snapshots: '@esbuild/win32-ia32': 0.25.2 '@esbuild/win32-x64': 0.25.2 - esbuild@0.27.7: - optionalDependencies: - '@esbuild/aix-ppc64': 0.27.7 - '@esbuild/android-arm': 0.27.7 - '@esbuild/android-arm64': 0.27.7 - '@esbuild/android-x64': 0.27.7 - '@esbuild/darwin-arm64': 0.27.7 - '@esbuild/darwin-x64': 0.27.7 - '@esbuild/freebsd-arm64': 0.27.7 - '@esbuild/freebsd-x64': 0.27.7 - '@esbuild/linux-arm': 0.27.7 - '@esbuild/linux-arm64': 0.27.7 - '@esbuild/linux-ia32': 0.27.7 - '@esbuild/linux-loong64': 0.27.7 - '@esbuild/linux-mips64el': 0.27.7 - '@esbuild/linux-ppc64': 0.27.7 - '@esbuild/linux-riscv64': 0.27.7 - '@esbuild/linux-s390x': 0.27.7 - '@esbuild/linux-x64': 0.27.7 - '@esbuild/netbsd-arm64': 0.27.7 - '@esbuild/netbsd-x64': 0.27.7 - '@esbuild/openbsd-arm64': 0.27.7 - '@esbuild/openbsd-x64': 0.27.7 - '@esbuild/openharmony-arm64': 0.27.7 - '@esbuild/sunos-x64': 0.27.7 - '@esbuild/win32-arm64': 0.27.7 - '@esbuild/win32-ia32': 0.27.7 - '@esbuild/win32-x64': 0.27.7 - esbuild@0.28.0: optionalDependencies: '@esbuild/aix-ppc64': 0.28.0 @@ -18224,11 +17854,11 @@ snapshots: dependencies: flat-cache: 4.0.1 - file-loader@6.2.0(webpack@5.106.2(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)): + file-loader@6.2.0(webpack@5.106.2(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)): dependencies: loader-utils: 2.0.4 schema-utils: 3.3.0 - webpack: 5.106.2(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14) + webpack: 5.106.2(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14) filelist@1.0.4: dependencies: @@ -18279,12 +17909,6 @@ snapshots: micromatch: 4.0.8 resolve-dir: 1.0.1 - fix-dts-default-cjs-exports@1.0.1: - dependencies: - magic-string: 0.30.17 - mlly: 1.8.2 - rollup: 4.39.0 - flat-cache@4.0.1: dependencies: flatted: 3.4.2 @@ -18745,7 +18369,7 @@ snapshots: html-void-elements@3.0.0: {} - html-webpack-plugin@5.6.7(@rspack/core@1.7.11)(webpack@5.106.2(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)): + html-webpack-plugin@5.6.7(@rspack/core@1.7.11)(webpack@5.106.2(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)): dependencies: '@types/html-minifier-terser': 6.1.0 html-minifier-terser: 6.1.0 @@ -18754,7 +18378,7 @@ snapshots: tapable: 2.3.3 optionalDependencies: '@rspack/core': 1.7.11 - webpack: 5.106.2(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14) + webpack: 5.106.2(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14) htmlparser2@6.1.0: dependencies: @@ -19158,8 +18782,6 @@ snapshots: '@sideway/formula': 3.0.1 '@sideway/pinpoint': 2.0.0 - joycon@3.1.1: {} - js-tokens@4.0.0: {} js-tokens@9.0.1: {} @@ -19304,8 +18926,6 @@ snapshots: dependencies: uc.micro: 2.1.0 - load-tsconfig@0.2.5: {} - loader-runner@4.3.2: {} loader-utils@2.0.4: @@ -20002,11 +19622,11 @@ snapshots: mimic-response@4.0.0: {} - mini-css-extract-plugin@2.10.2(webpack@5.106.2(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)): + mini-css-extract-plugin@2.10.2(webpack@5.106.2(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)): dependencies: schema-utils: 4.3.3 tapable: 2.3.3 - webpack: 5.106.2(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14) + webpack: 5.106.2(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14) minimalistic-assert@1.0.1: {} @@ -20074,13 +19694,6 @@ snapshots: dependencies: minimist: 1.2.8 - mlly@1.8.2: - dependencies: - acorn: 8.16.0 - pathe: 2.0.3 - pkg-types: 1.3.1 - ufo: 1.6.4 - mri@1.2.0: {} mrmime@2.0.1: {} @@ -20102,12 +19715,6 @@ snapshots: arrify: 2.0.1 minimatch: 3.1.5 - mz@2.7.0: - dependencies: - any-promise: 1.3.0 - object-assign: 4.1.1 - thenify-all: 1.6.0 - nanoid@3.3.11: {} natural-compare@1.4.0: {} @@ -20194,11 +19801,11 @@ snapshots: dependencies: boolbase: 1.0.0 - null-loader@4.0.1(webpack@5.106.2(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)): + null-loader@4.0.1(webpack@5.106.2(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)): dependencies: loader-utils: 2.0.4 schema-utils: 3.3.0 - webpack: 5.106.2(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14) + webpack: 5.106.2(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14) object-assign@4.1.1: {} @@ -20462,12 +20069,6 @@ snapshots: dependencies: find-up: 6.3.0 - pkg-types@1.3.1: - dependencies: - confbox: 0.1.8 - mlly: 1.8.2 - pathe: 2.0.3 - pkijs@3.4.0: dependencies: '@noble/hashes': 1.4.0 @@ -20636,22 +20237,13 @@ snapshots: '@csstools/utilities': 2.0.0(postcss@8.5.14) postcss: 8.5.14 - postcss-load-config@6.0.1(jiti@2.4.2)(postcss@8.5.14)(tsx@4.22.3)(yaml@2.8.4): - dependencies: - lilconfig: 3.1.3 - optionalDependencies: - jiti: 2.4.2 - postcss: 8.5.14 - tsx: 4.22.3 - yaml: 2.8.4 - - postcss-loader@7.3.4(postcss@8.5.14)(typescript@5.6.3)(webpack@5.106.2(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)): + postcss-loader@7.3.4(postcss@8.5.14)(typescript@5.6.3)(webpack@5.106.2(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)): dependencies: cosmiconfig: 8.3.6(typescript@5.6.3) jiti: 1.21.7 postcss: 8.5.14 semver: 7.7.3 - webpack: 5.106.2(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14) + webpack: 5.106.2(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14) transitivePeerDependencies: - typescript @@ -21104,11 +20696,11 @@ snapshots: dependencies: react: 19.2.6 - react-loadable-ssr-addon-v5-slorber@1.0.3(@docusaurus/react-loadable@6.0.0(react@19.2.6))(webpack@5.106.2(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)): + react-loadable-ssr-addon-v5-slorber@1.0.3(@docusaurus/react-loadable@6.0.0(react@19.2.6))(webpack@5.106.2(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)): dependencies: '@babel/runtime': 7.27.0 react-loadable: '@docusaurus/react-loadable@6.0.0(react@19.2.6)' - webpack: 5.106.2(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14) + webpack: 5.106.2(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14) react-router-config@5.1.1(react-router@5.3.4(react@19.2.6))(react@19.2.6): dependencies: @@ -21879,16 +21471,6 @@ snapshots: stylis@4.4.0: {} - sucrase@3.35.1: - dependencies: - '@jridgewell/gen-mapping': 0.3.13 - commander: 4.1.1 - lines-and-columns: 1.2.4 - mz: 2.7.0 - pirates: 4.0.7 - tinyglobby: 0.2.14 - ts-interface-checker: 0.1.13 - sumchecker@3.0.1: dependencies: debug: 4.4.3 @@ -21917,11 +21499,11 @@ snapshots: picocolors: 1.1.1 sax: 1.6.0 - swc-loader@0.2.7(@swc/core@1.15.33)(webpack@5.106.2(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)): + swc-loader@0.2.7(@swc/core@1.15.33)(webpack@5.106.2(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)): dependencies: '@swc/core': 1.15.33 '@swc/counter': 0.1.3 - webpack: 5.106.2(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14) + webpack: 5.106.2(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14) synckit@0.11.11: dependencies: @@ -21955,46 +21537,43 @@ snapshots: term-size@2.2.1: {} - terser-webpack-plugin@5.6.0(@swc/core@1.15.33)(@swc/html@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(webpack@5.106.2(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)): + terser-webpack-plugin@5.6.0(@swc/core@1.15.33)(@swc/html@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(webpack@5.106.2(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)): dependencies: '@jridgewell/trace-mapping': 0.3.31 jest-worker: 27.5.1 schema-utils: 4.3.3 terser: 5.47.1 - webpack: 5.106.2(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14) + webpack: 5.106.2(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14) optionalDependencies: '@swc/core': 1.15.33 '@swc/html': 1.15.33 - esbuild: 0.27.7 lightningcss: 1.32.0 postcss: 8.5.14 - terser-webpack-plugin@5.6.0(@swc/core@1.15.33)(clean-css@5.3.3)(cssnano@6.1.2(postcss@8.5.14))(esbuild@0.27.7)(html-minifier-terser@7.2.0)(lightningcss@1.32.0)(postcss@8.5.14)(webpack@5.106.2(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)): + terser-webpack-plugin@5.6.0(@swc/core@1.15.33)(clean-css@5.3.3)(cssnano@6.1.2(postcss@8.5.14))(html-minifier-terser@7.2.0)(lightningcss@1.32.0)(postcss@8.5.14)(webpack@5.106.2(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)): dependencies: '@jridgewell/trace-mapping': 0.3.31 jest-worker: 27.5.1 schema-utils: 4.3.3 terser: 5.47.1 - webpack: 5.106.2(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14) + webpack: 5.106.2(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14) optionalDependencies: '@swc/core': 1.15.33 clean-css: 5.3.3 cssnano: 6.1.2(postcss@8.5.14) - esbuild: 0.27.7 html-minifier-terser: 7.2.0 lightningcss: 1.32.0 postcss: 8.5.14 - terser-webpack-plugin@5.6.0(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(webpack@5.106.2(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)): + terser-webpack-plugin@5.6.0(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(webpack@5.106.2(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)): dependencies: '@jridgewell/trace-mapping': 0.3.31 jest-worker: 27.5.1 schema-utils: 4.3.3 terser: 5.47.1 - webpack: 5.106.2(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14) + webpack: 5.106.2(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14) optionalDependencies: '@swc/core': 1.15.33 - esbuild: 0.27.7 lightningcss: 1.32.0 postcss: 8.5.14 @@ -22011,14 +21590,6 @@ snapshots: glob: 7.2.3 minimatch: 3.1.5 - thenify-all@1.6.0: - dependencies: - thenify: 3.3.1 - - thenify@3.3.1: - dependencies: - any-promise: 1.3.0 - thingies@2.6.0(tslib@2.8.1): dependencies: tslib: 2.8.1 @@ -22076,8 +21647,6 @@ snapshots: dependencies: tslib: 2.8.1 - tree-kill@1.2.2: {} - trim-lines@3.0.1: {} trough@2.2.0: {} @@ -22096,8 +21665,6 @@ snapshots: ts-dedent@2.2.0: {} - ts-interface-checker@0.1.13: {} - ts-node@10.9.2(@swc/core@1.15.33)(@types/node@16.18.126)(typescript@5.1.6): dependencies: '@cspotcode/source-map-support': 0.8.1 @@ -22122,35 +21689,6 @@ snapshots: tslib@2.8.1: {} - tsup@8.5.1(@swc/core@1.15.33)(jiti@2.4.2)(postcss@8.5.14)(tsx@4.22.3)(typescript@5.8.2)(yaml@2.8.4): - dependencies: - bundle-require: 5.1.0(esbuild@0.27.7) - cac: 6.7.14 - chokidar: 4.0.3 - consola: 3.4.2 - debug: 4.4.3 - esbuild: 0.27.7 - fix-dts-default-cjs-exports: 1.0.1 - joycon: 3.1.1 - picocolors: 1.1.1 - postcss-load-config: 6.0.1(jiti@2.4.2)(postcss@8.5.14)(tsx@4.22.3)(yaml@2.8.4) - resolve-from: 5.0.0 - rollup: 4.39.0 - source-map: 0.7.6 - sucrase: 3.35.1 - tinyexec: 0.3.2 - tinyglobby: 0.2.14 - tree-kill: 1.2.2 - optionalDependencies: - '@swc/core': 1.15.33 - postcss: 8.5.14 - typescript: 5.8.2 - transitivePeerDependencies: - - jiti - - supports-color - - tsx - - yaml - tsx@4.22.3: dependencies: esbuild: 0.28.0 @@ -22229,8 +21767,6 @@ snapshots: uc.micro@2.1.0: {} - ufo@1.6.4: {} - uglify-js@3.19.3: optional: true @@ -22343,14 +21879,14 @@ snapshots: dependencies: punycode: 2.3.1 - url-loader@4.1.1(file-loader@6.2.0(webpack@5.106.2(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)))(webpack@5.106.2(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)): + url-loader@4.1.1(file-loader@6.2.0(webpack@5.106.2(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)))(webpack@5.106.2(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)): dependencies: loader-utils: 2.0.4 mime-types: 2.1.35 schema-utils: 3.3.0 - webpack: 5.106.2(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14) + webpack: 5.106.2(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14) optionalDependencies: - file-loader: 6.2.0(webpack@5.106.2(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)) + file-loader: 6.2.0(webpack@5.106.2(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)) utf8-byte-length@1.0.5: {} @@ -22535,7 +22071,7 @@ snapshots: - bufferutil - utf-8-validate - webpack-dev-middleware@7.4.5(tslib@2.8.1)(webpack@5.106.2(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)): + webpack-dev-middleware@7.4.5(tslib@2.8.1)(webpack@5.106.2(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)): dependencies: colorette: 2.0.20 memfs: 4.57.2(tslib@2.8.1) @@ -22544,11 +22080,11 @@ snapshots: range-parser: 1.2.1 schema-utils: 4.3.3 optionalDependencies: - webpack: 5.106.2(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14) + webpack: 5.106.2(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14) transitivePeerDependencies: - tslib - webpack-dev-server@5.2.3(tslib@2.8.1)(webpack@5.106.2(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)): + webpack-dev-server@5.2.3(tslib@2.8.1)(webpack@5.106.2(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)): dependencies: '@types/bonjour': 3.5.13 '@types/connect-history-api-fallback': 1.5.4 @@ -22576,10 +22112,10 @@ snapshots: serve-index: 1.9.2 sockjs: 0.3.24 spdy: 4.0.2 - webpack-dev-middleware: 7.4.5(tslib@2.8.1)(webpack@5.106.2(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)) + webpack-dev-middleware: 7.4.5(tslib@2.8.1)(webpack@5.106.2(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)) ws: 8.20.0 optionalDependencies: - webpack: 5.106.2(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14) + webpack: 5.106.2(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14) transitivePeerDependencies: - bufferutil - debug @@ -22601,7 +22137,7 @@ snapshots: webpack-sources@3.4.1: {} - webpack@5.106.2(@swc/core@1.15.33)(@swc/html@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14): + webpack@5.106.2(@swc/core@1.15.33)(@swc/html@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14): dependencies: '@types/eslint-scope': 3.7.7 '@types/estree': 1.0.8 @@ -22624,7 +22160,7 @@ snapshots: neo-async: 2.6.2 schema-utils: 4.3.3 tapable: 2.3.3 - terser-webpack-plugin: 5.6.0(@swc/core@1.15.33)(@swc/html@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(webpack@5.106.2(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)) + terser-webpack-plugin: 5.6.0(@swc/core@1.15.33)(@swc/html@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(webpack@5.106.2(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)) watchpack: 2.5.1 webpack-sources: 3.4.1 transitivePeerDependencies: @@ -22641,7 +22177,7 @@ snapshots: - postcss - uglify-js - webpack@5.106.2(@swc/core@1.15.33)(clean-css@5.3.3)(cssnano@6.1.2(postcss@8.5.14))(esbuild@0.27.7)(html-minifier-terser@7.2.0)(lightningcss@1.32.0)(postcss@8.5.14): + webpack@5.106.2(@swc/core@1.15.33)(clean-css@5.3.3)(cssnano@6.1.2(postcss@8.5.14))(html-minifier-terser@7.2.0)(lightningcss@1.32.0)(postcss@8.5.14): dependencies: '@types/eslint-scope': 3.7.7 '@types/estree': 1.0.8 @@ -22664,7 +22200,7 @@ snapshots: neo-async: 2.6.2 schema-utils: 4.3.3 tapable: 2.3.3 - terser-webpack-plugin: 5.6.0(@swc/core@1.15.33)(clean-css@5.3.3)(cssnano@6.1.2(postcss@8.5.14))(esbuild@0.27.7)(html-minifier-terser@7.2.0)(lightningcss@1.32.0)(postcss@8.5.14)(webpack@5.106.2(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)) + terser-webpack-plugin: 5.6.0(@swc/core@1.15.33)(clean-css@5.3.3)(cssnano@6.1.2(postcss@8.5.14))(html-minifier-terser@7.2.0)(lightningcss@1.32.0)(postcss@8.5.14)(webpack@5.106.2(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)) watchpack: 2.5.1 webpack-sources: 3.4.1 transitivePeerDependencies: @@ -22681,7 +22217,7 @@ snapshots: - postcss - uglify-js - webpack@5.106.2(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14): + webpack@5.106.2(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14): dependencies: '@types/eslint-scope': 3.7.7 '@types/estree': 1.0.8 @@ -22704,7 +22240,7 @@ snapshots: neo-async: 2.6.2 schema-utils: 4.3.3 tapable: 2.3.3 - terser-webpack-plugin: 5.6.0(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)(webpack@5.106.2(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)) + terser-webpack-plugin: 5.6.0(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)(webpack@5.106.2(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)) watchpack: 2.5.1 webpack-sources: 3.4.1 transitivePeerDependencies: @@ -22721,7 +22257,7 @@ snapshots: - postcss - uglify-js - webpackbar@7.0.0(@rspack/core@1.7.11)(webpack@5.106.2(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14)): + webpackbar@7.0.0(@rspack/core@1.7.11)(webpack@5.106.2(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14)): dependencies: ansis: 3.17.0 consola: 3.4.2 @@ -22729,7 +22265,7 @@ snapshots: std-env: 3.9.0 optionalDependencies: '@rspack/core': 1.7.11 - webpack: 5.106.2(@swc/core@1.15.33)(esbuild@0.27.7)(lightningcss@1.32.0)(postcss@8.5.14) + webpack: 5.106.2(@swc/core@1.15.33)(lightningcss@1.32.0)(postcss@8.5.14) websocket-driver@0.7.4: dependencies: diff --git a/tsconfig-base.json b/tsconfig-base.json index 77f5f6f4d53..2ee3cd4d04d 100644 --- a/tsconfig-base.json +++ b/tsconfig-base.json @@ -1,12 +1,6 @@ { + "extends": "@tsconfig/node22/tsconfig.json", "compilerOptions": { - "target": "ES2022", - "lib": ["ES2022", "ESNext.Iterator"], - "module": "ESNext", - "moduleResolution": "bundler", - "esModuleInterop": false, - "allowSyntheticDefaultImports": true, - "forceConsistentCasingInFileNames": true, "noUnusedLocals": true, @@ -18,8 +12,6 @@ "inlineSources": true, "sourceMap": true, - "strict": true, - "skipLibCheck": true, "useDefineForClassFields": false, "experimentalDecorators": true, diff --git a/tsup.config.base.ts b/tsup.config.base.ts deleted file mode 100644 index e5978446118..00000000000 --- a/tsup.config.base.ts +++ /dev/null @@ -1,11 +0,0 @@ -import type { Options } from "tsup" - -export const baseConfig: Options = { - format: ["cjs", "esm"], - dts: true, - tsconfig: "../tsconfig-tsup.json", - sourcemap: true, - clean: !process.argv.includes("--watch"), - outDir: "dist", - platform: "node", -} From 3f03227a616055566f1001df322826ccb289d83c Mon Sep 17 00:00:00 2001 From: Mike Maietta Date: Wed, 3 Jun 2026 14:49:30 -0700 Subject: [PATCH 64/65] update fs-extra to ESM-supported version --- package.json | 2 +- .../helpers/dynamic-import.cjs | 31 +- .../app-builder-lib/helpers/dynamic-import.js | 40 -- packages/app-builder-lib/helpers/package.json | 1 + packages/app-builder-lib/package.json | 2 +- packages/app-builder-lib/scheme.json | 4 +- packages/app-builder-lib/src/asar/asarUtil.ts | 5 +- .../app-builder-lib/src/codeSign/certInfo.ts | 4 +- .../app-builder-lib/src/codeSign/codesign.ts | 4 +- .../src/codeSign/windowsSignToolManager.ts | 4 +- .../src/electron/ElectronFramework.ts | 4 +- .../src/electron/injectFFMPEG.ts | 2 +- packages/app-builder-lib/src/indexInternal.ts | 3 +- packages/app-builder-lib/src/linuxPackager.ts | 8 +- packages/app-builder-lib/src/macPackager.ts | 11 +- packages/app-builder-lib/src/packager.ts | 4 +- .../src/targets/AppImageTarget.ts | 111 ---- .../app-builder-lib/src/targets/AppxTarget.ts | 4 +- .../src/targets/FlatpakTarget.ts | 4 +- .../app-builder-lib/src/targets/FpmTarget.ts | 4 +- .../src/targets/LinuxTargetHelper.ts | 4 +- .../src/targets/appimage/AppImageTarget.ts | 4 +- .../src/targets/appimage/appImageUtil.ts | 2 +- .../app-builder-lib/src/targets/archive.ts | 4 +- .../src/targets/nsis/NsisTarget.ts | 4 +- packages/app-builder-lib/src/targets/pkg.ts | 3 +- .../src/targets/snap/core24.ts | 4 +- .../src/targets/snap/coreCustom.ts | 4 +- .../src/targets/snap/coreLegacy.ts | 4 +- .../src/targets/snap/snapcraftBuilder.ts | 4 +- .../app-builder-lib/src/toolsets/windows.ts | 4 +- .../app-builder-lib/src/util/config/config.ts | 11 +- .../app-builder-lib/src/util/dynamicImport.ts | 17 +- .../app-builder-lib/src/util/pathManager.ts | 2 +- packages/app-builder-lib/src/util/rebuild.ts | 2 +- packages/app-builder-lib/src/util/resolve.ts | 10 +- packages/app-builder-lib/src/util/yarn.ts | 4 +- packages/builder-util/package.json | 2 +- packages/builder-util/src/DebugLogger.ts | 4 +- packages/builder-util/src/util.ts | 4 +- packages/dmg-builder/package.json | 2 +- packages/dmg-builder/src/dmgLicense.ts | 4 +- packages/dmg-builder/src/dmgUtil.ts | 4 +- .../src/SquirrelWindowsTarget.ts | 5 +- packages/electron-builder/package.json | 2 +- packages/electron-builder/src/builder.ts | 7 +- packages/electron-builder/src/cli/cli-util.ts | 4 +- .../src/cli/install-app-deps.ts | 12 +- packages/electron-publish/package.json | 2 +- .../electron-publish/src/s3/bucketLocation.ts | 3 +- .../electron-publish/src/s3/s3UploadHelper.ts | 3 +- pnpm-lock.yaml | 22 +- .../pnpm-lock.yaml | 583 ++++++++++++++++++ test/snapshots/linux/snapHeavyTest.js.snap | 219 +++++++ .../snapshots/windows/winPackagerTest.js.snap | 553 +++++++++++++++++ test/src/dynamicImportTest.ts | 2 +- test/vitest-scripts/run-vitest.ts | 11 +- tsconfig-base.json | 3 + 58 files changed, 1551 insertions(+), 239 deletions(-) delete mode 100644 packages/app-builder-lib/helpers/dynamic-import.js create mode 100644 packages/app-builder-lib/helpers/package.json delete mode 100644 packages/app-builder-lib/src/targets/AppImageTarget.ts create mode 100644 test/snapshots/windows/winPackagerTest.js.snap diff --git a/package.json b/package.json index fac866a43a6..139be01de5a 100644 --- a/package.json +++ b/package.json @@ -24,7 +24,7 @@ "docker-push": "bash docker/push.sh", "changelog": "conventional-changelog -p angular -i CHANGELOG.md -s -t electron-builder@ --pkg packages/electron-builder/package.json && git add CHANGELOG.md", "generate:changeset": "pnpm changeset", - "generate:schema": "typescript-json-schema packages/app-builder-lib/tsconfig-scheme.json Configuration --out packages/app-builder-lib/scheme.json --noExtraProps --useTypeOfKeyword --strictNullChecks --required && node ./scripts/fix-schema.js", + "generate:schema": "typescript-json-schema packages/app-builder-lib/tsconfig-scheme.json Configuration --out packages/app-builder-lib/scheme.json --noExtraProps --useTypeOfKeyword --strictNullChecks --required --ignoreErrors && node ./scripts/fix-schema.js", "generate:all": "pnpm generate:schema && pnpm prettier", "docs:prebuild": "docker build -t docs-dockerfile -f website/dockerfile .", "docs:build": "pnpm compile && docker run --rm -v ${PWD}:/app -w /app/website -v $(pwd)/node-modules-docker-web:/app/node_modules docs-dockerfile sh -c 'pnpm install --frozen-lockfile && pnpm build'", diff --git a/packages/app-builder-lib/helpers/dynamic-import.cjs b/packages/app-builder-lib/helpers/dynamic-import.cjs index 1089411ced3..809cd15567a 100644 --- a/packages/app-builder-lib/helpers/dynamic-import.cjs +++ b/packages/app-builder-lib/helpers/dynamic-import.cjs @@ -1,20 +1,37 @@ const url = require("url") const fs = require("fs") +const path = require("path") -exports.dynamicImport = async function dynamicImport(path) { +// Resolve a module specifier to a file:// URL using CJS resolution, which +// adds .js extensions automatically and follows pnpm's symlinked node_modules. +// Returns null for Node built-ins (require.resolve returns a bare string, not +// an absolute path) and for any specifier that cannot be resolved, so callers +// fall back to importing the raw specifier and get the normal error. +function resolveToFileUrl(modulePath) { try { - return await import(fs.existsSync(path) ? url.pathToFileURL(path).href : path) - } catch (error) { - return Promise.reject(error) + const resolved = require.resolve(modulePath) + // Built-in modules (e.g. "fs", "path") resolve to their bare name, not a + // filesystem path. Passing a bare name to pathToFileURL produces a bogus URL. + return path.isAbsolute(resolved) ? url.pathToFileURL(resolved).href : null + } catch { + return null } } -exports.dynamicImportMaybe = async function dynamicImportMaybe(path) { +exports.dynamicImport = async function dynamicImport(modulePath) { + if (fs.existsSync(modulePath)) { + return import(url.pathToFileURL(modulePath).href) + } + const fileUrl = resolveToFileUrl(modulePath) + return import(fileUrl !== null ? fileUrl : modulePath) +} + +exports.dynamicImportMaybe = async function dynamicImportMaybe(modulePath) { try { - return require(path) + return require(modulePath) } catch (e1) { try { - return await exports.dynamicImport(path) + return await exports.dynamicImport(modulePath) } catch (e2) { e1.message = "\n1. " + e1.message + "\n2. " + e2.message throw e1 diff --git a/packages/app-builder-lib/helpers/dynamic-import.js b/packages/app-builder-lib/helpers/dynamic-import.js deleted file mode 100644 index 809cd15567a..00000000000 --- a/packages/app-builder-lib/helpers/dynamic-import.js +++ /dev/null @@ -1,40 +0,0 @@ -const url = require("url") -const fs = require("fs") -const path = require("path") - -// Resolve a module specifier to a file:// URL using CJS resolution, which -// adds .js extensions automatically and follows pnpm's symlinked node_modules. -// Returns null for Node built-ins (require.resolve returns a bare string, not -// an absolute path) and for any specifier that cannot be resolved, so callers -// fall back to importing the raw specifier and get the normal error. -function resolveToFileUrl(modulePath) { - try { - const resolved = require.resolve(modulePath) - // Built-in modules (e.g. "fs", "path") resolve to their bare name, not a - // filesystem path. Passing a bare name to pathToFileURL produces a bogus URL. - return path.isAbsolute(resolved) ? url.pathToFileURL(resolved).href : null - } catch { - return null - } -} - -exports.dynamicImport = async function dynamicImport(modulePath) { - if (fs.existsSync(modulePath)) { - return import(url.pathToFileURL(modulePath).href) - } - const fileUrl = resolveToFileUrl(modulePath) - return import(fileUrl !== null ? fileUrl : modulePath) -} - -exports.dynamicImportMaybe = async function dynamicImportMaybe(modulePath) { - try { - return require(modulePath) - } catch (e1) { - try { - return await exports.dynamicImport(modulePath) - } catch (e2) { - e1.message = "\n1. " + e1.message + "\n2. " + e2.message - throw e1 - } - } -} diff --git a/packages/app-builder-lib/helpers/package.json b/packages/app-builder-lib/helpers/package.json new file mode 100644 index 00000000000..b731bd61b9c --- /dev/null +++ b/packages/app-builder-lib/helpers/package.json @@ -0,0 +1 @@ +{"type": "commonjs"} diff --git a/packages/app-builder-lib/package.json b/packages/app-builder-lib/package.json index 1b1172dcc77..0a379c9fd12 100644 --- a/packages/app-builder-lib/package.json +++ b/packages/app-builder-lib/package.json @@ -84,7 +84,7 @@ "dotenv-expand": "^11.0.6", "ejs": "^3.1.8", "electron-publish": "workspace:*", - "fs-extra": "^10.1.0", + "fs-extra": "^11.3.0", "hosted-git-info": "^4.1.0", "isbinaryfile": "^5.0.0", "jiti": "^2.4.2", diff --git a/packages/app-builder-lib/scheme.json b/packages/app-builder-lib/scheme.json index 56e3fb797c4..0da4c95cd41 100644 --- a/packages/app-builder-lib/scheme.json +++ b/packages/app-builder-lib/scheme.json @@ -9247,10 +9247,10 @@ "electronDownload": { "anyOf": [ { - "$ref": "#/definitions/ElectronDownloadOptions" + "$ref": "#/definitions/ElectronGetOptions" }, { - "$ref": "#/definitions/ElectronGetOptions" + "$ref": "#/definitions/ElectronDownloadOptions" }, { "type": "null" diff --git a/packages/app-builder-lib/src/asar/asarUtil.ts b/packages/app-builder-lib/src/asar/asarUtil.ts index e295f5fd554..2bef37241e3 100644 --- a/packages/app-builder-lib/src/asar/asarUtil.ts +++ b/packages/app-builder-lib/src/asar/asarUtil.ts @@ -1,8 +1,8 @@ import type { AsarStreamType, AsarDirectory } from "@electron/asar" import { exists, Filter, FilterStats, isEmptyOrSpaces, log } from "builder-util" import { dynamicImport } from "../util/dynamicImport.js" -import * as fs from "fs-extra" -import { readlink } from "fs-extra" +import fs from "fs-extra" + import * as path from "path" import { AsarOptions } from "../options/PlatformSpecificBuildOptions.js" import { PlatformPackager } from "../platformPackager.js" @@ -10,6 +10,7 @@ import { ResolvedFileSet, getDestinationPath } from "../util/appFileCopier.js" import { detectUnpackedDirs } from "./unpackDetector.js" import { Readable } from "stream" import * as os from "os" +const { readlink } = fs const resolvePath = async (file: string | undefined): Promise => (file && (await exists(file)) ? fs.realpath(file).catch(() => path.resolve(file)) : undefined) const resolvePaths = async (filepaths: (string | undefined)[]) => { diff --git a/packages/app-builder-lib/src/codeSign/certInfo.ts b/packages/app-builder-lib/src/codeSign/certInfo.ts index 47fe518acce..eb87e79ba88 100644 --- a/packages/app-builder-lib/src/codeSign/certInfo.ts +++ b/packages/app-builder-lib/src/codeSign/certInfo.ts @@ -2,8 +2,10 @@ import { createDecipheriv, createHash } from "crypto" import * as asn1js from "asn1js" import * as pkijs from "pkijs" import { Crypto as PeculiarCrypto } from "@peculiar/webcrypto" -import { readFile } from "fs-extra" + import { log } from "builder-util" +import _fsExtra from "fs-extra" +const { readFile } = _fsExtra // OID for codeSigning extended key usage const CODE_SIGNING_OID = "1.3.6.1.5.5.7.3.3" diff --git a/packages/app-builder-lib/src/codeSign/codesign.ts b/packages/app-builder-lib/src/codeSign/codesign.ts index 17414b24b99..0507a3f684c 100644 --- a/packages/app-builder-lib/src/codeSign/codesign.ts +++ b/packages/app-builder-lib/src/codeSign/codesign.ts @@ -1,7 +1,9 @@ import { decodeCscLinkBase64, InvalidConfigurationError, resolveCscLinkPath, statOrNull } from "builder-util" -import { outputFile } from "fs-extra" + import { TmpDir } from "temp-file" import { download } from "../binDownload.js" +import _fsExtra from "fs-extra" +const { outputFile } = _fsExtra /** @private */ export async function importCertificate(cscLink: string, tmpDir: TmpDir, currentDir: string): Promise { diff --git a/packages/app-builder-lib/src/codeSign/windowsSignToolManager.ts b/packages/app-builder-lib/src/codeSign/windowsSignToolManager.ts index cce31fbddc9..5457d7f2e9d 100644 --- a/packages/app-builder-lib/src/codeSign/windowsSignToolManager.ts +++ b/packages/app-builder-lib/src/codeSign/windowsSignToolManager.ts @@ -1,6 +1,6 @@ import { asArray, InvalidConfigurationError, log, retry } from "builder-util" import { MemoLazy, parseDn } from "builder-util-runtime" -import { rename } from "fs-extra" + import { Lazy } from "lazy-val" import * as path from "path" import { Target } from "../core.js" @@ -15,6 +15,8 @@ import { WinPackager } from "../winPackager.js" import { importCertificate } from "./codesign.js" import { SignManager } from "./signManager.js" import { WindowsSignOptions } from "./windowsCodeSign.js" +import _fsExtra from "fs-extra" +const { rename } = _fsExtra export type CustomWindowsSign = (configuration: CustomWindowsSignTaskConfiguration, packager?: WinPackager) => Promise diff --git a/packages/app-builder-lib/src/electron/ElectronFramework.ts b/packages/app-builder-lib/src/electron/ElectronFramework.ts index da3aaded663..6937ea9fff9 100644 --- a/packages/app-builder-lib/src/electron/ElectronFramework.ts +++ b/packages/app-builder-lib/src/electron/ElectronFramework.ts @@ -12,7 +12,7 @@ import { to7zaOutputSwitch, unlinkIfExists, } from "builder-util" -import { emptyDir, readdir, rename, rm } from "fs-extra" + import * as path from "path" import asyncPool from "tiny-async-pool" import { Configuration } from "../configuration.js" @@ -28,6 +28,8 @@ import { createMacApp } from "./electronMac.js" import { computeElectronVersion, getElectronVersionFromInstalled } from "./electronVersion.js" import { addWinAsarIntegrity } from "./electronWin.js" import { FFMPEGInjector } from "./injectFFMPEG.js" +import _fsExtra from "fs-extra" +const { emptyDir, readdir, rename, rm } = _fsExtra export type ElectronPlatformName = "darwin" | "linux" | "win32" | "mas" diff --git a/packages/app-builder-lib/src/electron/injectFFMPEG.ts b/packages/app-builder-lib/src/electron/injectFFMPEG.ts index a4d1d7b0683..839df4735df 100644 --- a/packages/app-builder-lib/src/electron/injectFFMPEG.ts +++ b/packages/app-builder-lib/src/electron/injectFFMPEG.ts @@ -1,5 +1,5 @@ import { log } from "builder-util" -import * as fs from "fs-extra" +import fs from "fs-extra" import * as path from "path" import { Platform } from "../core.js" import { PrepareApplicationStageDirectoryOptions } from "../Framework.js" diff --git a/packages/app-builder-lib/src/indexInternal.ts b/packages/app-builder-lib/src/indexInternal.ts index 1426b20d03a..ed2c6b293ff 100644 --- a/packages/app-builder-lib/src/indexInternal.ts +++ b/packages/app-builder-lib/src/indexInternal.ts @@ -2,7 +2,8 @@ export { AsarFilesystem, readAsar, readAsarJson } from "./asar/asar.js" export { AsarIntegrity } from "./asar/integrity.js" export { getBin, getBinFromCustomLoc, getBinFromUrl } from "./binDownload.js" export { readCertInfo, _testingOnly } from "./codeSign/certInfo.js" -export { Identity, createKeychain, findIdentity, isSignAllowed, removeKeychain } from "./codeSign/macCodeSign.js" +export { createKeychain, findIdentity, isSignAllowed, removeKeychain } from "./codeSign/macCodeSign.js" +export type { Identity } from "./codeSign/macCodeSign.js" export { CustomWindowsSign, WindowsSignTaskConfiguration } from "./codeSign/windowsSignToolManager.js" export { Configuration, ToolsetConfig } from "./configuration.js" export { Publish } from "./core.js" diff --git a/packages/app-builder-lib/src/linuxPackager.ts b/packages/app-builder-lib/src/linuxPackager.ts index a4ac01024ae..c2023e7bc0d 100644 --- a/packages/app-builder-lib/src/linuxPackager.ts +++ b/packages/app-builder-lib/src/linuxPackager.ts @@ -42,11 +42,11 @@ export class LinuxPackager extends PlatformPackager { const targetClass: typeof AppImageTarget | typeof SnapTarget | typeof FlatpakTarget | typeof FpmTarget | null = (() => { switch (name) { case "appimage": - return require("./targets/appimage/AppImageTarget").default + return AppImageTarget case "snap": - return require("./targets/snap/SnapTarget").default + return SnapTarget case "flatpak": - return require("./targets/FlatpakTarget").default + return FlatpakTarget case "deb": case "rpm": case "sh": @@ -54,7 +54,7 @@ export class LinuxPackager extends PlatformPackager { case "pacman": case "apk": case "p5p": - return require("./targets/FpmTarget").default + return FpmTarget default: return null } diff --git a/packages/app-builder-lib/src/macPackager.ts b/packages/app-builder-lib/src/macPackager.ts index a6afd79761a..8f95bc2ad95 100644 --- a/packages/app-builder-lib/src/macPackager.ts +++ b/packages/app-builder-lib/src/macPackager.ts @@ -1,5 +1,8 @@ +import { createRequire } from "node:module" import { SignOptions } from "@electron/osx-sign/dist/cjs/types" -import { Identity } from "@electron/osx-sign/dist/cjs/util-identities" +import type { Identity } from "@electron/osx-sign/dist/cjs/util-identities" + +const _require = createRequire(import.meta.url) import { Arch, AsyncTaskManager, @@ -156,8 +159,10 @@ export class MacPackager extends PlatformPackager new DmgTarget(this, outDir)) + mapper(name, outDir => { + const { DmgTarget } = _require("dmg-builder") + return new DmgTarget(this, outDir) + }) break } diff --git a/packages/app-builder-lib/src/packager.ts b/packages/app-builder-lib/src/packager.ts index 5aeca9b5eb1..90ac891b5ed 100644 --- a/packages/app-builder-lib/src/packager.ts +++ b/packages/app-builder-lib/src/packager.ts @@ -16,7 +16,7 @@ import { TmpDir, } from "builder-util" import { CancellationToken, deepAssign, retry } from "builder-util-runtime" -import { chmod, mkdirs, outputFile } from "fs-extra" + import { isCI } from "ci-info" import { Lazy } from "lazy-val" import { release as getOsRelease } from "os" @@ -43,6 +43,8 @@ import { PACKAGE_VERSION } from "./version.js" import { AsyncEventEmitter, HandlerType } from "./util/asyncEventEmitter.js" import asyncPool from "tiny-async-pool" import { determinePackageManagerEnv, PM } from "./node-module-collector/index.js" +import _fsExtra from "fs-extra" +const { chmod, mkdirs, outputFile } = _fsExtra async function createFrameworkInfo(configuration: Configuration, packager: Packager): Promise { let framework = configuration.framework diff --git a/packages/app-builder-lib/src/targets/AppImageTarget.ts b/packages/app-builder-lib/src/targets/AppImageTarget.ts deleted file mode 100644 index 914f1d40e64..00000000000 --- a/packages/app-builder-lib/src/targets/AppImageTarget.ts +++ /dev/null @@ -1,111 +0,0 @@ -import { Arch, serializeToYaml, executeAppBuilder } from "builder-util" -import { objectToArgs } from "builder-util-runtime" -import fsExtra from "fs-extra" -import { Lazy } from "lazy-val" -import * as path from "path" -import { Target } from "../core.js" -import { LinuxPackager } from "../linuxPackager.js" -import { AppImageOptions } from "../options/linuxOptions.js" -import { getAppUpdatePublishConfiguration } from "../publish/PublishManager.js" -import { getNotLocalizedLicenseFile } from "../util/license.js" -import { LinuxTargetHelper } from "./LinuxTargetHelper.js" -import { createStageDir } from "./targetUtil.js" - -// https://unix.stackexchange.com/questions/375191/append-to-sub-directory-inside-squashfs-file -export default class AppImageTarget extends Target { - readonly options: AppImageOptions - private readonly desktopEntry: Lazy - - constructor( - ignored: string, - private readonly packager: LinuxPackager, - private readonly helper: LinuxTargetHelper, - readonly outDir: string - ) { - super("appImage") - this.options = { ...this.packager.platformSpecificBuildOptions, ...(this.packager.config as any)[this.name] } - - this.desktopEntry = new Lazy(() => { - const args = this.options.executableArgs?.join(" ") || "--no-sandbox" - return helper.computeDesktopEntry(this.options, `AppRun ${args} %U`, { - "X-AppImage-Version": `${packager.appInfo.buildVersion}`, - }) - }) - } - - async build(appOutDir: string, arch: Arch): Promise { - const packager = this.packager - const options = this.options - // https://github.com/electron-userland/electron-builder/issues/775 - // https://github.com/electron-userland/electron-builder/issues/1726 - // tslint:disable-next-line:no-invalid-template-strings - const artifactName = packager.expandArtifactNamePattern(options, "AppImage", arch) - const artifactPath = path.join(this.outDir, artifactName) - await packager.info.emitArtifactBuildStarted({ - targetPresentableName: "AppImage", - file: artifactPath, - arch, - }) - - const c = await Promise.all([ - this.desktopEntry.value, - this.helper.icons, - getAppUpdatePublishConfiguration(packager, options, arch, false /* in any case validation will be done on publish */), - getNotLocalizedLicenseFile(options.license, this.packager, ["txt", "html"]), - createStageDir(this, packager, arch), - ]) - const license = c[3] - const stageDir = c[4] - - const publishConfig = c[2] - if (publishConfig != null) { - await fsExtra.outputFile(path.join(packager.getResourcesDir(stageDir.dir), "app-update.yml"), serializeToYaml(publishConfig)) - } - - if ( - this.packager.packagerOptions.effectiveOptionComputed != null && - (await this.packager.packagerOptions.effectiveOptionComputed({ desktop: await this.desktopEntry.value })) - ) { - return - } - - const args = [ - "appimage", - "--stage", - stageDir.dir, - "--arch", - Arch[arch], - "--output", - artifactPath, - "--app", - appOutDir, - "--configuration", - JSON.stringify({ - productName: this.packager.appInfo.productName, - productFilename: this.packager.appInfo.productFilename, - desktopEntry: c[0], - executableName: this.packager.executableName, - icons: c[1], - fileAssociations: this.packager.fileAssociations, - ...options, - }), - ] - args.push(...objectToArgs({ license })) - if (packager.compression === "maximum") { - args.push("--compression", "xz") - } - - const rawResult = await executeAppBuilder(args) - const updateInfo = rawResult === "" ? Object.create(null) : JSON.parse(rawResult) - - await packager.info.emitArtifactBuildCompleted({ - file: artifactPath, - safeArtifactName: packager.computeSafeArtifactName(artifactName, "AppImage", arch, false), - target: this, - arch, - packager, - isWriteUpdateInfo: true, - updateInfo, - }) - } -} diff --git a/packages/app-builder-lib/src/targets/AppxTarget.ts b/packages/app-builder-lib/src/targets/AppxTarget.ts index 5f31b017453..b6d6b5083a6 100644 --- a/packages/app-builder-lib/src/targets/AppxTarget.ts +++ b/packages/app-builder-lib/src/targets/AppxTarget.ts @@ -1,6 +1,6 @@ import { Arch, asArray, copyOrLinkFile, InvalidConfigurationError, log, walk } from "builder-util" import { deepAssign, Nullish } from "builder-util-runtime" -import { emptyDir, readdir, readFile, writeFile } from "fs-extra" + import * as path from "path" import { AppXOptions } from "../index.js" import { getWindowsKitsBundle } from "../toolsets/windows.js" @@ -11,6 +11,8 @@ import { WinPackager } from "../winPackager.js" import { createStageDir } from "./targetUtil.js" import { isOldWin6 } from "../toolsets/windows.js" import { CAPABILITIES, isValidCapabilityName } from "./AppxCapabilities.js" +import _fsExtra from "fs-extra" +const { emptyDir, readdir, readFile, writeFile } = _fsExtra const APPX_ASSETS_DIR_NAME = "appx" diff --git a/packages/app-builder-lib/src/targets/FlatpakTarget.ts b/packages/app-builder-lib/src/targets/FlatpakTarget.ts index 0abfb051904..5c2df457244 100644 --- a/packages/app-builder-lib/src/targets/FlatpakTarget.ts +++ b/packages/app-builder-lib/src/targets/FlatpakTarget.ts @@ -1,6 +1,6 @@ import { bundle as bundleFlatpak, FlatpakBundlerBuildOptions, FlatpakManifest } from "@malept/flatpak-bundler" import { Arch, copyFile, toLinuxArchString } from "builder-util" -import { chmod, outputFile } from "fs-extra" + import * as path from "path" import { Target } from "../core.js" import { LinuxPackager } from "../linuxPackager.js" @@ -9,6 +9,8 @@ import { getNotLocalizedLicenseFile } from "../util/license.js" import { LinuxTargetHelper } from "./LinuxTargetHelper.js" import { createStageDir, StageDir } from "./targetUtil.js" import { deepAssign, Nullish } from "builder-util-runtime" +import _fsExtra from "fs-extra" +const { chmod, outputFile } = _fsExtra export default class FlatpakTarget extends Target { readonly options: FlatpakOptions = deepAssign({}, this.packager.platformSpecificBuildOptions, (this.packager.config as any)[this.name]) diff --git a/packages/app-builder-lib/src/targets/FpmTarget.ts b/packages/app-builder-lib/src/targets/FpmTarget.ts index 3cfd683d787..7d878f46441 100644 --- a/packages/app-builder-lib/src/targets/FpmTarget.ts +++ b/packages/app-builder-lib/src/targets/FpmTarget.ts @@ -1,6 +1,6 @@ import { Arch, asArray, exec, getArchSuffix, log, serializeToYaml, stripSensitiveEnvVars, TmpDir, toLinuxArchString, unlinkIfExists, use } from "builder-util" import { deepAssign, Nullish } from "builder-util-runtime" -import { copyFile, outputFile, stat } from "fs-extra" + import { mkdir, readFile } from "fs/promises" import * as path from "path" import { smarten } from "../appInfo.js" @@ -17,6 +17,8 @@ import { isMacOsSierra } from "../util/macosVersion.js" import { getTemplatePath } from "../util/pathManager.js" import { installPrefix, LinuxTargetHelper } from "./LinuxTargetHelper.js" import { getFpmPath, getLinuxToolsPath } from "../toolsets/linux.js" +import _fsExtra from "fs-extra" +const { copyFile, outputFile, stat } = _fsExtra interface FpmOptions { name: string diff --git a/packages/app-builder-lib/src/targets/LinuxTargetHelper.ts b/packages/app-builder-lib/src/targets/LinuxTargetHelper.ts index 19138bd2b8c..c2a986480b8 100644 --- a/packages/app-builder-lib/src/targets/LinuxTargetHelper.ts +++ b/packages/app-builder-lib/src/targets/LinuxTargetHelper.ts @@ -1,6 +1,6 @@ import { asArray, exists, InvalidConfigurationError, isEmptyOrSpaces, log } from "builder-util" import { deepAssign } from "builder-util-runtime" -import { outputFile } from "fs-extra" + import { Lazy } from "lazy-val" import { join } from "path" import * as semver from "semver" @@ -12,6 +12,8 @@ import { SnapCore24 } from "./snap/core24.js" import { SnapCoreCustom } from "./snap/coreCustom.js" import { SnapCoreLegacy } from "./snap/coreLegacy.js" import { IconInfo } from "../util/iconConverter.js" +import _fsExtra from "fs-extra" +const { outputFile } = _fsExtra /** * Escape a string value for use in a freedesktop .desktop file string field diff --git a/packages/app-builder-lib/src/targets/appimage/AppImageTarget.ts b/packages/app-builder-lib/src/targets/appimage/AppImageTarget.ts index 117ada25ca9..ebe022f8363 100644 --- a/packages/app-builder-lib/src/targets/appimage/AppImageTarget.ts +++ b/packages/app-builder-lib/src/targets/appimage/AppImageTarget.ts @@ -1,5 +1,5 @@ import { Arch, log, serializeToYaml } from "builder-util" -import { outputFile } from "fs-extra" + import { Lazy } from "lazy-val" import * as path from "path" import { Target } from "../../core.js" @@ -11,6 +11,8 @@ import { LinuxTargetHelper } from "../LinuxTargetHelper.js" import { createStageDir } from "../targetUtil.js" import { buildLegacyFuse2AppImage, buildStaticRuntimeAppImage } from "./appImageUtil.js" import { BlockMapDataHolder, deepAssign } from "builder-util-runtime" +import _fsExtra from "fs-extra" +const { outputFile } = _fsExtra // https://unix.stackexchange.com/questions/375191/append-to-sub-directory-inside-squashfs-file diff --git a/packages/app-builder-lib/src/targets/appimage/appImageUtil.ts b/packages/app-builder-lib/src/targets/appimage/appImageUtil.ts index 3f93ac326a4..e058647a6b1 100644 --- a/packages/app-builder-lib/src/targets/appimage/appImageUtil.ts +++ b/packages/app-builder-lib/src/targets/appimage/appImageUtil.ts @@ -1,5 +1,5 @@ import { Arch, copyDir, copyFile, exec, exists, InvalidConfigurationError, log } from "builder-util" -import * as fs from "fs-extra" +import fs from "fs-extra" import * as path from "path" import { FileAssociation } from "../../options/FileAssociation.js" import { getAppImageTools } from "../../toolsets/linux.js" diff --git a/packages/app-builder-lib/src/targets/archive.ts b/packages/app-builder-lib/src/targets/archive.ts index de6ea42d075..89c94c167fe 100644 --- a/packages/app-builder-lib/src/targets/archive.ts +++ b/packages/app-builder-lib/src/targets/archive.ts @@ -1,11 +1,13 @@ import { debug7z, exec, exists, getPath7za, log, statOrNull, unlinkIfExists } from "builder-util" -import { move } from "fs-extra" + import * as path from "path" import { create } from "tar" import { TmpDir } from "temp-file" import { CompressionLevel } from "../core.js" import { getLinuxToolsMacToolset } from "../toolsets/linux.js" import type { TarOptionsWithAliasesAsync } from "tar" +import _fsExtra from "fs-extra" +const { move } = _fsExtra const ALLOWED_7Z_FILTERS = new Set(["BCJ", "BCJ2", "ARM", "ARMT", "IA64", "PPC", "SPARC", "DELTA"]) diff --git a/packages/app-builder-lib/src/targets/nsis/NsisTarget.ts b/packages/app-builder-lib/src/targets/nsis/NsisTarget.ts index 96a69667a21..ba034f9407d 100644 --- a/packages/app-builder-lib/src/targets/nsis/NsisTarget.ts +++ b/packages/app-builder-lib/src/targets/nsis/NsisTarget.ts @@ -18,7 +18,7 @@ import { import { CURRENT_APP_INSTALLER_FILE_NAME, CURRENT_APP_PACKAGE_FILE_NAME, deepAssign, PackageFileInfo, UUID } from "builder-util-runtime" import _debug from "debug" import * as fs from "fs" -import { readFile, stat, unlink } from "fs-extra" + import * as path from "path" import { Target } from "../../core.js" import { DesktopShortcutCreationPolicy, getEffectiveOptions } from "../../options/CommonWindowsInstallerConfiguration.js" @@ -40,6 +40,8 @@ import { NsisScriptGenerator, nsisEscapeString } from "./nsisScriptGenerator.js" import { getMakeNsisPath, getNsisPluginsPath } from "../../toolsets/windows.js" import { AppPackageHelper, nsisTemplatesDir, UninstallerReader } from "./nsisUtil.js" import { checkMakensisOutput, verifyInstallerSize } from "./nsisValidation.js" +import _fsExtra from "fs-extra" +const { readFile, stat, unlink } = _fsExtra const debug = _debug("electron-builder:nsis") diff --git a/packages/app-builder-lib/src/targets/pkg.ts b/packages/app-builder-lib/src/targets/pkg.ts index a5c4e3239e5..c7f08d5202e 100644 --- a/packages/app-builder-lib/src/targets/pkg.ts +++ b/packages/app-builder-lib/src/targets/pkg.ts @@ -4,7 +4,8 @@ import { readdirSync } from "fs" import { readFile, unlink, writeFile } from "fs/promises" import * as path from "path" import { filterCFBundleIdentifier } from "../appInfo.js" -import { findIdentity, Identity } from "../codeSign/macCodeSign.js" +import { findIdentity } from "../codeSign/macCodeSign.js" +import type { Identity } from "../codeSign/macCodeSign.js" import { Target } from "../core.js" import { MacPackager } from "../macPackager.js" import { PkgOptions } from "../options/pkgOptions.js" diff --git a/packages/app-builder-lib/src/targets/snap/core24.ts b/packages/app-builder-lib/src/targets/snap/core24.ts index 1c68bd569f1..d1056f1b478 100644 --- a/packages/app-builder-lib/src/targets/snap/core24.ts +++ b/packages/app-builder-lib/src/targets/snap/core24.ts @@ -1,5 +1,5 @@ import { Arch, archFromString, copyDir, InvalidConfigurationError, log, removeNullish, toLinuxArchString } from "builder-util" -import { copy, mkdir, readdir, writeFile } from "fs-extra" + import * as path from "path" import { PlugDescriptor, SlotDescriptor, SnapOptions24 } from "../../options/SnapOptions.js" import { SnapCore } from "./SnapTarget.js" @@ -7,6 +7,8 @@ import { App, Part, SnapcraftYAML } from "./snapcraft.js" import { buildSnap, DEFAULT_STAGE_PACKAGES, SNAPCRAFT_YAML_OPTIONS } from "./snapcraftBuilder.js" import * as yaml from "js-yaml" import { deepAssign, isValidKey, Nullish } from "builder-util-runtime" +import _fsExtra from "fs-extra" +const { copy, mkdir, readdir, writeFile } = _fsExtra /** Snap build strategy for core24 — generates a native snapcraft.yaml and invokes the snapcraft CLI. */ export class SnapCore24 extends SnapCore { diff --git a/packages/app-builder-lib/src/targets/snap/coreCustom.ts b/packages/app-builder-lib/src/targets/snap/coreCustom.ts index 89df38e7e36..cbbf7642ecb 100644 --- a/packages/app-builder-lib/src/targets/snap/coreCustom.ts +++ b/packages/app-builder-lib/src/targets/snap/coreCustom.ts @@ -1,11 +1,13 @@ import { Arch, InvalidConfigurationError, log } from "builder-util" -import { outputFile, readFile } from "fs-extra" + import * as yaml from "js-yaml" import * as path from "path" import { SnapOptionsCustom } from "../../options/SnapOptions.js" import { SnapCore } from "./SnapTarget.js" import { SnapcraftYAML } from "./snapcraft.js" import { buildSnap, SNAPCRAFT_YAML_OPTIONS } from "./snapcraftBuilder.js" +import _fsExtra from "fs-extra" +const { outputFile, readFile } = _fsExtra /** * Pass-through snap builder for `base: "custom"`. diff --git a/packages/app-builder-lib/src/targets/snap/coreLegacy.ts b/packages/app-builder-lib/src/targets/snap/coreLegacy.ts index 4f36cb135b7..90ea83f2af7 100644 --- a/packages/app-builder-lib/src/targets/snap/coreLegacy.ts +++ b/packages/app-builder-lib/src/targets/snap/coreLegacy.ts @@ -1,6 +1,6 @@ import { replaceDefault as _replaceDefault, Arch, executeAppBuilder, serializeToYaml, toLinuxArchString } from "builder-util" import { asArray, deepAssign, isValidKey, Nullish } from "builder-util-runtime" -import { outputFile, readFile } from "fs-extra" + import { load } from "js-yaml" import * as path from "path" import { PlugDescriptor, SnapOptions } from "../../options/SnapOptions.js" @@ -8,6 +8,8 @@ import { getTemplatePath } from "../../util/pathManager.js" import { SnapCore } from "./SnapTarget.js" import { SnapcraftYAML } from "./snapcraft.js" import { DEFAULT_STAGE_PACKAGES } from "./snapcraftBuilder.js" +import _fsExtra from "fs-extra" +const { outputFile, readFile } = _fsExtra // Handles core18/core20/core22 snaps via the app-builder binary (not the snapcraft CLI). // See: https://github.com/develar/app-builder/blob/master/pkg/package-format/snap diff --git a/packages/app-builder-lib/src/targets/snap/snapcraftBuilder.ts b/packages/app-builder-lib/src/targets/snap/snapcraftBuilder.ts index 2b8b0936a3b..012f1d57253 100644 --- a/packages/app-builder-lib/src/targets/snap/snapcraftBuilder.ts +++ b/packages/app-builder-lib/src/targets/snap/snapcraftBuilder.ts @@ -2,13 +2,15 @@ import { InvalidConfigurationError, isEmptyOrSpaces, log, spawn, stripSensitiveE import * as childProcess from "child_process" import { randomUUID } from "crypto" import { resolveSnapCredentials } from "electron-publish" -import { copyFile, ensureDir, pathExists, readdir, remove } from "fs-extra" + import * as path from "path" import * as util from "util" import { LinuxPackager } from "../../linuxPackager.js" import { RemoteBuildOptions } from "../../options/SnapOptions.js" import { SnapcraftYAML } from "./snapcraft.js" import { deepAssign } from "builder-util-runtime" +import _fsExtra from "fs-extra" +const { copyFile, ensureDir, pathExists, readdir, remove } = _fsExtra const execAsync = util.promisify(childProcess.exec) diff --git a/packages/app-builder-lib/src/toolsets/windows.ts b/packages/app-builder-lib/src/toolsets/windows.ts index 0b8c2498303..58aeadc56c0 100644 --- a/packages/app-builder-lib/src/toolsets/windows.ts +++ b/packages/app-builder-lib/src/toolsets/windows.ts @@ -1,6 +1,6 @@ import { Arch, exists, resolveEnvToolsetPath } from "builder-util" import { Nullish } from "builder-util-runtime" -import { stat } from "fs-extra" + import * as os from "os" import * as path from "path" import { getBinFromCustomLoc, getBinFromUrl } from "../binDownload.js" @@ -8,6 +8,8 @@ import { ToolsetConfig } from "../configuration.js" import { ToolInfo, computeToolEnv } from "../util/bundledTool.js" import { downloadBuilderToolset } from "../util/electronGet.js" import { isUseSystemSigncode } from "../util/flags.js" +import _fsExtra from "fs-extra" +const { stat } = _fsExtra function getLegacyWinCodeSignBin(): Promise { return downloadBuilderToolset({ diff --git a/packages/app-builder-lib/src/util/config/config.ts b/packages/app-builder-lib/src/util/config/config.ts index 5f01f8506d5..0df1b9eccff 100644 --- a/packages/app-builder-lib/src/util/config/config.ts +++ b/packages/app-builder-lib/src/util/config/config.ts @@ -1,6 +1,9 @@ +import { createRequire } from "node:module" import { DebugLogger, InvalidConfigurationError, log, safeStringifyJson, statOrNull } from "builder-util" + +const _requireResolve = createRequire(import.meta.url).resolve import { deepAssign, Nullish } from "builder-util-runtime" -import { readJson } from "fs-extra" + import { Lazy } from "lazy-val" import * as path from "path" import { Configuration } from "../../configuration.js" @@ -9,6 +12,8 @@ import { reactCra } from "../../presets/rectCra.js" import { PACKAGE_VERSION } from "../../version.js" import { getConfig as _getConfig, loadParentConfig, orNullIfFileNotExist, ReadConfigRequest } from "./load.js" import { validateSchema } from "./schemaValidator.js" +import _fsExtra from "fs-extra" +const { readJson } = _fsExtra // https://github.com/electron-userland/electron-builder/issues/1847 function mergePublish(config: Configuration, configFromOptions: Configuration) { @@ -59,9 +64,9 @@ export async function getConfig( } else if (devDependencies != null && "electron-webpack" in devDependencies) { let file = "electron-webpack/out/electron-builder.js" try { - file = require.resolve(file) + file = _requireResolve(file) } catch (_ignore) { - file = require.resolve("electron-webpack/electron-builder.yml") + file = _requireResolve("electron-webpack/electron-builder.yml") } config.extends = `file:${file}` } diff --git a/packages/app-builder-lib/src/util/dynamicImport.ts b/packages/app-builder-lib/src/util/dynamicImport.ts index ef1863a9bc4..9c37292aa79 100644 --- a/packages/app-builder-lib/src/util/dynamicImport.ts +++ b/packages/app-builder-lib/src/util/dynamicImport.ts @@ -1,10 +1,15 @@ -// TypeScript's "module": "CommonJS" compiles `await import(x)` to -// `await Promise.resolve().then(() => require(x))`, which fails for ESM-only -// packages. helpers/dynamic-import.js is plain JS so TypeScript never -// transforms its native import() call — route through it instead. +// helpers/dynamic-import.cjs uses CJS require.resolve so it can follow pnpm +// symlinks — load it via createRequire so TypeScript does not statically +// include the out-of-rootDir file in the compilation. +import { createRequire } from "node:module" -const _helper = require("../../helpers/dynamic-import") as { dynamicImport(path: string): Promise } +type DynamicImportHelper = { + dynamicImport(modulePath: string): Promise + dynamicImportMaybe(modulePath: string): Promise +} + +const _helper = createRequire(import.meta.url)("../../helpers/dynamic-import.cjs") as DynamicImportHelper export function dynamicImport(modulePath: string): Promise { - return _helper.dynamicImport(modulePath) + return _helper.dynamicImport(modulePath) as Promise } diff --git a/packages/app-builder-lib/src/util/pathManager.ts b/packages/app-builder-lib/src/util/pathManager.ts index 40ce6a3ff67..8f7ca31f0d0 100644 --- a/packages/app-builder-lib/src/util/pathManager.ts +++ b/packages/app-builder-lib/src/util/pathManager.ts @@ -1,6 +1,6 @@ import * as path from "path" -const root = path.join(import.meta.dirname, "..") +const root = path.join(import.meta.dirname, "..", "..") export function getTemplatePath(file: string) { return path.join(root, "templates", file) diff --git a/packages/app-builder-lib/src/util/rebuild.ts b/packages/app-builder-lib/src/util/rebuild.ts index ac872d779dc..eedc88ad847 100644 --- a/packages/app-builder-lib/src/util/rebuild.ts +++ b/packages/app-builder-lib/src/util/rebuild.ts @@ -7,7 +7,7 @@ export const rebuild = async (options: RebuildOptions): Promise => { const { arch } = options log.info({ arch }, `installing native dependencies`) - const child = cp.fork(path.resolve(import.meta.dirname, "../helpers/remote-rebuild.js"), [JSON.stringify(options)], { + const child = cp.fork(path.resolve(import.meta.dirname, "../../helpers/remote-rebuild.js"), [JSON.stringify(options)], { stdio: ["pipe", "pipe", "pipe", "ipc"], }) diff --git a/packages/app-builder-lib/src/util/resolve.ts b/packages/app-builder-lib/src/util/resolve.ts index f01bf72f71b..df70f93bc5f 100644 --- a/packages/app-builder-lib/src/util/resolve.ts +++ b/packages/app-builder-lib/src/util/resolve.ts @@ -1,12 +1,16 @@ import { InvalidConfigurationError, log } from "builder-util" import debug from "debug" import { realpath } from "fs/promises" +import { createRequire } from "node:module" import * as path from "path" -import * as requireMaybe from "../../helpers/dynamic-import.js" + +const _require = createRequire(import.meta.url) +const _requireResolve = _require.resolve +const _dynamicImportMaybe: (modulePath: string) => Promise = _require("../../helpers/dynamic-import.cjs").dynamicImportMaybe export async function resolveModule(type: string | undefined, name: string): Promise { try { - return requireMaybe.dynamicImportMaybe(name) + return _dynamicImportMaybe(name) } catch (error: any) { log.error({ moduleName: name, message: error.message ?? error.stack }, "Unable to dynamically `import` or `require`") throw error @@ -37,7 +41,7 @@ export async function resolveFunction(type: string | undefined, executor: T | } try { - p = require.resolve(p) + p = _requireResolve(p) } catch (e: any) { debug(e) p = path.resolve(p) diff --git a/packages/app-builder-lib/src/util/yarn.ts b/packages/app-builder-lib/src/util/yarn.ts index fcc697c25b0..825f9667ba3 100644 --- a/packages/app-builder-lib/src/util/yarn.ts +++ b/packages/app-builder-lib/src/util/yarn.ts @@ -1,5 +1,5 @@ import { asArray, log, spawn, stripSensitiveEnvVars } from "builder-util" -import { pathExists } from "fs-extra" + import { homedir } from "os" import * as path from "path" import { Configuration } from "../configuration.js" @@ -9,6 +9,8 @@ import { rebuild as remoteRebuild } from "./rebuild.js" import * as which from "which" import type { RebuildOptions as ElectronRebuildOptions } from "@electron/rebuild" import { Nullish } from "builder-util-runtime" +import _fsExtra from "fs-extra" +const { pathExists } = _fsExtra export async function installOrRebuild( config: Configuration, diff --git a/packages/builder-util/package.json b/packages/builder-util/package.json index 3eb03cceccc..5cf7c28c484 100644 --- a/packages/builder-util/package.json +++ b/packages/builder-util/package.json @@ -40,7 +40,7 @@ "chalk": "^4.1.2", "cross-spawn": "^7.0.6", "debug": "^4.3.4", - "fs-extra": "^10.1.0", + "fs-extra": "^11.3.0", "http-proxy-agent": "^7.0.0", "https-proxy-agent": "^7.0.0", "js-yaml": "^4.1.0", diff --git a/packages/builder-util/src/DebugLogger.ts b/packages/builder-util/src/DebugLogger.ts index e498d3700f1..d0e37b7a58c 100644 --- a/packages/builder-util/src/DebugLogger.ts +++ b/packages/builder-util/src/DebugLogger.ts @@ -1,6 +1,8 @@ -import { outputFile } from "fs-extra" + import { serializeToYaml } from "./util.js" import { mapToObject } from "builder-util-runtime" +import _fsExtra from "fs-extra" +const { outputFile } = _fsExtra export class DebugLogger { readonly data = new Map() diff --git a/packages/builder-util/src/util.ts b/packages/builder-util/src/util.ts index f6fdf2dee77..2ff019e3d59 100644 --- a/packages/builder-util/src/util.ts +++ b/packages/builder-util/src/util.ts @@ -11,8 +11,10 @@ import { install as installSourceMap } from "source-map-support" import { getPath7za } from "./7za.js" import { debug, log } from "./log.js" import { exists } from "./fs.js" -import { mkdir } from "fs-extra" + import { isEmptyOrSpaces } from "./stringUtil.js" +import _fsExtra from "fs-extra" +const { mkdir } = _fsExtra if (process.env.JEST_WORKER_ID == null) { installSourceMap() diff --git a/packages/dmg-builder/package.json b/packages/dmg-builder/package.json index 9f4eb68e352..da8b21ea2b9 100644 --- a/packages/dmg-builder/package.json +++ b/packages/dmg-builder/package.json @@ -34,7 +34,7 @@ "dependencies": { "app-builder-lib": "workspace:*", "builder-util": "workspace:*", - "fs-extra": "^10.1.0", + "fs-extra": "^11.3.0", "js-yaml": "^4.1.0" }, "devDependencies": { diff --git a/packages/dmg-builder/src/dmgLicense.ts b/packages/dmg-builder/src/dmgLicense.ts index 775635cf0fc..b5f50a5151d 100644 --- a/packages/dmg-builder/src/dmgLicense.ts +++ b/packages/dmg-builder/src/dmgLicense.ts @@ -1,9 +1,11 @@ import { PlatformPackager } from "app-builder-lib" import { getLicenseFiles } from "app-builder-lib/internal" import { InvalidConfigurationError } from "builder-util" -import { readFile, readJson } from "fs-extra" + import { CORE_SCHEMA, load } from "js-yaml" import { getLicenseButtonsFile } from "./licenseButtons.js" +import _fsExtra from "fs-extra" +const { readFile, readJson } = _fsExtra export type DmgBuildLicenseConfig = { "default-language": string diff --git a/packages/dmg-builder/src/dmgUtil.ts b/packages/dmg-builder/src/dmgUtil.ts index 13f87cf7aaa..bcf37ee5fff 100644 --- a/packages/dmg-builder/src/dmgUtil.ts +++ b/packages/dmg-builder/src/dmgUtil.ts @@ -2,11 +2,13 @@ import { DmgContent, DmgOptions, MacPackager, PlatformPackager } from "app-build import { downloadBuilderToolset, withToolsetLock } from "app-builder-lib/internal" import { exec, executeFinally, exists, InvalidConfigurationError, isEmptyOrSpaces, log, TmpDir } from "builder-util" import { stat } from "fs/promises" -import { writeFile } from "fs-extra" + import * as path from "path" import { DmgBuildConfig } from "./dmg.js" import type { DmgBuildLicenseConfig } from "./dmgLicense.js" import { hdiUtil, hdiUtilWithStdin, hdiutilTransientExitCodes } from "./hdiuil.js" +import _fsExtra from "fs-extra" +const { writeFile } = _fsExtra export { DmgTarget } from "./dmg.js" diff --git a/packages/electron-builder-squirrel-windows/src/SquirrelWindowsTarget.ts b/packages/electron-builder-squirrel-windows/src/SquirrelWindowsTarget.ts index c838f37921c..c9f687d1db6 100644 --- a/packages/electron-builder-squirrel-windows/src/SquirrelWindowsTarget.ts +++ b/packages/electron-builder-squirrel-windows/src/SquirrelWindowsTarget.ts @@ -1,4 +1,7 @@ +import { createRequire } from "node:module" import { InvalidConfigurationError, log, isEmptyOrSpaces, exists } from "builder-util" + +const _requireResolve = createRequire(import.meta.url).resolve import { execWine, getBinFromUrl, withToolsetLock } from "app-builder-lib/internal" import { sanitizeFileName } from "builder-util/internal" import { Arch, getArchSuffix, SquirrelWindowsOptions, Target, WinPackager } from "app-builder-lib" @@ -31,7 +34,7 @@ export default class SquirrelWindowsTarget extends Target { log.warn({ customSquirrelVendorDirectory }, "unable to access custom Squirrel.Windows vendor directory, falling back to default vendor") } - const windowInstallerPackage = require.resolve("electron-winstaller/package.json") + const windowInstallerPackage = _requireResolve("electron-winstaller/package.json") const [squirrelBin] = await Promise.all([ getBinFromUrl("squirrel.windows@1.0.0", "squirrel.windows-2.0.1-patched.7z", "76851f0c192eaf9bc6f8f3eecdfe325857ebe70d7833ec62ed846a1acd50c846"), fs.promises.cp(path.join(path.dirname(windowInstallerPackage), "vendor"), tmpVendorDirectory, { recursive: true }), diff --git a/packages/electron-builder/package.json b/packages/electron-builder/package.json index 697a5396543..a6261814c42 100644 --- a/packages/electron-builder/package.json +++ b/packages/electron-builder/package.json @@ -77,7 +77,7 @@ "chalk": "^4.1.2", "ci-info": "^4.2.0", "dmg-builder": "workspace:*", - "fs-extra": "^10.1.0", + "fs-extra": "^11.3.0", "lazy-val": "^1.0.5", "simple-update-notifier": "2.0.0", "yargs": "^17.6.2" diff --git a/packages/electron-builder/src/builder.ts b/packages/electron-builder/src/builder.ts index b4a016d9be0..87b972e5f6b 100644 --- a/packages/electron-builder/src/builder.ts +++ b/packages/electron-builder/src/builder.ts @@ -3,10 +3,15 @@ import { addValue, Arch, archFromString } from "builder-util" import { deepAssign } from "builder-util-runtime" import * as chalk from "chalk" import { PublishOptions } from "electron-publish" +import { hideBin } from "yargs/helpers" import * as yargs from "yargs" export function createYargs(): yargs.Argv { - return (yargs as unknown as yargs.Argv).parserConfiguration({ + // In ESM, yargs.default is the factory function; call it to create an instance. + // In CJS, yargs.default is already an Argv singleton. + const factory = (yargs as any).default ?? yargs + const instance = typeof factory?.parserConfiguration === "function" ? factory : factory(hideBin(process.argv)) + return (instance as unknown as yargs.Argv).parserConfiguration({ "camel-case-expansion": false, }) } diff --git a/packages/electron-builder/src/cli/cli-util.ts b/packages/electron-builder/src/cli/cli-util.ts index 4d77f5bf6ab..caf424bfff2 100644 --- a/packages/electron-builder/src/cli/cli-util.ts +++ b/packages/electron-builder/src/cli/cli-util.ts @@ -1,8 +1,10 @@ import { loadEnv } from "app-builder-lib/internal" import { ExecError, InvalidConfigurationError, log } from "builder-util" import { isCI } from "ci-info" -import { readJson } from "fs-extra" + import * as path from "path" +import _fsExtra from "fs-extra" +const { readJson } = _fsExtra export async function checkIsOutdated(): Promise { if (isCI || process.env.NO_UPDATE_NOTIFIER != null) { diff --git a/packages/electron-builder/src/cli/install-app-deps.ts b/packages/electron-builder/src/cli/install-app-deps.ts index b83ab747142..6d30cfb18b0 100644 --- a/packages/electron-builder/src/cli/install-app-deps.ts +++ b/packages/electron-builder/src/cli/install-app-deps.ts @@ -10,10 +10,14 @@ import { PACKAGE_VERSION, } from "app-builder-lib/internal" import { getArchCliNames, log, printErrorAndExit } from "builder-util" -import { readJson } from "fs-extra" + import { Lazy } from "lazy-val" import * as path from "path" +import { fileURLToPath } from "node:url" +import { hideBin } from "yargs/helpers" import * as yargs from "yargs" +import _fsExtra from "fs-extra" +const { readJson } = _fsExtra /** @internal */ export function configureInstallAppDepsCommand(yargs: yargs.Argv): yargs.Argv { @@ -72,10 +76,12 @@ export async function installAppDeps(args: any) { } function main() { - return installAppDeps(configureInstallAppDepsCommand(yargs as unknown as yargs.Argv).argv) + const factory = (yargs as any).default ?? yargs + const instance = typeof factory?.parserConfiguration === "function" ? factory : factory(hideBin(process.argv)) + return installAppDeps(configureInstallAppDepsCommand(instance as unknown as yargs.Argv).argv) } -if (require.main === module) { +if (process.argv[1] === fileURLToPath(import.meta.url)) { log.warn("please use as subcommand: electron-builder install-app-deps") main().catch(printErrorAndExit) } diff --git a/packages/electron-publish/package.json b/packages/electron-publish/package.json index 129bbae1304..4e5d04a4d24 100644 --- a/packages/electron-publish/package.json +++ b/packages/electron-publish/package.json @@ -42,7 +42,7 @@ "builder-util-runtime": "workspace:*", "chalk": "^4.1.2", "form-data": "^4.0.5", - "fs-extra": "^10.1.0", + "fs-extra": "^11.3.0", "lazy-val": "^1.0.5", "mime": "^2.5.2" }, diff --git a/packages/electron-publish/src/s3/bucketLocation.ts b/packages/electron-publish/src/s3/bucketLocation.ts index 0eadd6504f7..3b8b8a91c94 100644 --- a/packages/electron-publish/src/s3/bucketLocation.ts +++ b/packages/electron-publish/src/s3/bucketLocation.ts @@ -1,4 +1,5 @@ -import { sign } from "aws4" +import _aws4 from "aws4" +const { sign } = _aws4 import { request } from "https" import { resolveAwsCredentials } from "./awsCredentials.js" diff --git a/packages/electron-publish/src/s3/s3UploadHelper.ts b/packages/electron-publish/src/s3/s3UploadHelper.ts index e92eb59451b..2d6c37a235e 100644 --- a/packages/electron-publish/src/s3/s3UploadHelper.ts +++ b/packages/electron-publish/src/s3/s3UploadHelper.ts @@ -1,4 +1,5 @@ -import { sign } from "aws4" +import _aws4 from "aws4" +const { sign } = _aws4 import * as fs from "fs" import * as http from "http" import * as https from "https" diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index c134213134c..f0f38811fdc 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -166,8 +166,8 @@ importers: specifier: workspace:* version: link:../electron-publish fs-extra: - specifier: ^10.1.0 - version: 10.1.0 + specifier: ^11.3.0 + version: 11.3.0 hosted-git-info: specifier: ^4.1.0 version: 4.1.0 @@ -317,6 +317,8 @@ importers: specifier: ^3.0.0 version: 3.0.0 + packages/app-builder-lib/helpers: {} + packages/builder-util: dependencies: 7zip-bin: @@ -341,8 +343,8 @@ importers: specifier: ^4.3.4 version: 4.4.3 fs-extra: - specifier: ^10.1.0 - version: 10.1.0 + specifier: ^11.3.0 + version: 11.3.0 http-proxy-agent: specifier: ^7.0.0 version: 7.0.2 @@ -409,8 +411,8 @@ importers: specifier: workspace:* version: link:../builder-util fs-extra: - specifier: ^10.1.0 - version: 10.1.0 + specifier: ^11.3.0 + version: 11.3.0 js-yaml: specifier: ^4.1.0 version: 4.1.1 @@ -446,8 +448,8 @@ importers: specifier: workspace:* version: link:../dmg-builder fs-extra: - specifier: ^10.1.0 - version: 10.1.0 + specifier: ^11.3.0 + version: 11.3.0 lazy-val: specifier: ^1.0.5 version: 1.0.5 @@ -529,8 +531,8 @@ importers: specifier: ^4.0.5 version: 4.0.5 fs-extra: - specifier: ^10.1.0 - version: 10.1.0 + specifier: ^11.3.0 + version: 11.3.0 lazy-val: specifier: ^1.0.5 version: 1.0.5 diff --git a/test/fixtures/test-app-yarn-several-workspace/pnpm-lock.yaml b/test/fixtures/test-app-yarn-several-workspace/pnpm-lock.yaml index e69de29bb2d..0e461196e44 100644 --- a/test/fixtures/test-app-yarn-several-workspace/pnpm-lock.yaml +++ b/test/fixtures/test-app-yarn-several-workspace/pnpm-lock.yaml @@ -0,0 +1,583 @@ +lockfileVersion: '9.0' + +settings: + autoInstallPeers: true + excludeLinksFromLockfile: false + +importers: + + .: {} + + packages/foo: + dependencies: + ms: + specifier: 2.0.0 + version: 2.0.0 + + packages/test-app: + dependencies: + debug: + specifier: 4.4.3 + version: 4.4.3 + devDependencies: + electron: + specifier: 39.8.5 + version: 39.8.5 + +packages: + + '@electron/get@2.0.3': + resolution: {integrity: sha512-Qkzpg2s9GnVV2I2BjRksUi43U5e6+zaQMcjoJy0C+C5oxaKl+fmckGDQFtRpZpZV0NQekuZZ+tGz7EA9TVnQtQ==} + engines: {node: '>=12'} + + '@sindresorhus/is@4.6.0': + resolution: {integrity: sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==} + engines: {node: '>=10'} + + '@szmarczak/http-timer@4.0.6': + resolution: {integrity: sha512-4BAffykYOgO+5nzBWYwE3W90sBgLJoUPRWWcL8wlyiM8IB8ipJz3UMJ9KXQd1RKQXpKp8Tutn80HZtWsu2u76w==} + engines: {node: '>=10'} + + '@types/cacheable-request@6.0.3': + resolution: {integrity: sha512-IQ3EbTzGxIigb1I3qPZc1rWJnH0BmSKv5QYTalEwweFvyBDLSAe24zP0le/hyi7ecGfZVlIVAg4BZqb8WBwKqw==} + + '@types/http-cache-semantics@4.2.0': + resolution: {integrity: sha512-L3LgimLHXtGkWikKnsPg0/VFx9OGZaC+eN1u4r+OB1XRqH3meBIAVC2zr1WdMH+RHmnRkqliQAOHNJ/E0j/e0Q==} + + '@types/keyv@3.1.4': + resolution: {integrity: sha512-BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg==} + + '@types/node@22.19.19': + resolution: {integrity: sha512-dyh/xO2Fh5bYrfWaaqGrRQQGkNdmYw6AmaAUvYeUMNTWQtvb796ikLdmTchRmOlOiIJ1TDXfWgVx1QkUlQ6Hew==} + + '@types/responselike@1.0.3': + resolution: {integrity: sha512-H/+L+UkTV33uf49PH5pCAUBVPNj2nDBXTN+qS1dOwyyg24l3CcicicCA7ca+HMvJBZcFgl5r8e+RR6elsb4Lyw==} + + '@types/yauzl@2.10.3': + resolution: {integrity: sha512-oJoftv0LSuaDZE3Le4DbKX+KS9G36NzOeSap90UIK0yMA/NhKJhqlSGtNDORNRaIbQfzjXDrQa0ytJ6mNRGz/Q==} + + boolean@3.2.0: + resolution: {integrity: sha512-d0II/GO9uf9lfUHH2BQsjxzRJZBdsjgsBiW4BvhWk/3qoKwQFjIDVN19PfX8F2D/r9PCMTtLWjYVCFrpeYUzsw==} + deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info. + + buffer-crc32@0.2.13: + resolution: {integrity: sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==} + + cacheable-lookup@5.0.4: + resolution: {integrity: sha512-2/kNscPhpcxrOigMZzbiWF7dz8ilhb/nIHU3EyZiXWXpeq/au8qJ8VhdftMkty3n7Gj6HIGalQG8oiBNB3AJgA==} + engines: {node: '>=10.6.0'} + + cacheable-request@7.0.4: + resolution: {integrity: sha512-v+p6ongsrp0yTGbJXjgxPow2+DL93DASP4kXCDKb8/bwRtt9OEF3whggkkDkGNzgcWy2XaF4a8nZglC7uElscg==} + engines: {node: '>=8'} + + clone-response@1.0.3: + resolution: {integrity: sha512-ROoL94jJH2dUVML2Y/5PEDNaSHgeOdSDicUyS7izcF63G6sTc/FTjLub4b8Il9S8S0beOfYt0TaA5qvFK+w0wA==} + + debug@4.4.3: + resolution: {integrity: sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==} + engines: {node: '>=6.0'} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + + decompress-response@6.0.0: + resolution: {integrity: sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==} + engines: {node: '>=10'} + + defer-to-connect@2.0.1: + resolution: {integrity: sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==} + engines: {node: '>=10'} + + define-data-property@1.1.4: + resolution: {integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==} + engines: {node: '>= 0.4'} + + define-properties@1.2.1: + resolution: {integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==} + engines: {node: '>= 0.4'} + + detect-node@2.1.0: + resolution: {integrity: sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==} + + electron@39.8.5: + resolution: {integrity: sha512-q6+LiQIcTadSyvtPgLDQkCtVA9jQJXQVMrQcctfOJILh6OFMN+UJJLRkuUTy8CZDYeCIBn1ZycqsL1dAXugxZA==} + engines: {node: '>= 12.20.55'} + hasBin: true + + end-of-stream@1.4.5: + resolution: {integrity: sha512-ooEGc6HP26xXq/N+GCGOT0JKCLDGrq2bQUZrQ7gyrJiZANJ/8YDTxTpQBXGMn+WbIQXNVpyWymm7KYVICQnyOg==} + + env-paths@2.2.1: + resolution: {integrity: sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==} + engines: {node: '>=6'} + + es-define-property@1.0.1: + resolution: {integrity: sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==} + engines: {node: '>= 0.4'} + + es-errors@1.3.0: + resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==} + engines: {node: '>= 0.4'} + + es6-error@4.1.1: + resolution: {integrity: sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==} + + escape-string-regexp@4.0.0: + resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} + engines: {node: '>=10'} + + extract-zip@2.0.1: + resolution: {integrity: sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==} + engines: {node: '>= 10.17.0'} + hasBin: true + + fd-slicer@1.1.0: + resolution: {integrity: sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==} + + fs-extra@8.1.0: + resolution: {integrity: sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==} + engines: {node: '>=6 <7 || >=8'} + + get-stream@5.2.0: + resolution: {integrity: sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==} + engines: {node: '>=8'} + + global-agent@3.0.0: + resolution: {integrity: sha512-PT6XReJ+D07JvGoxQMkT6qji/jVNfX/h364XHZOWeRzy64sSFr+xJ5OX7LI3b4MPQzdL4H8Y8M0xzPpsVMwA8Q==} + engines: {node: '>=10.0'} + + globalthis@1.0.4: + resolution: {integrity: sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==} + engines: {node: '>= 0.4'} + + gopd@1.2.0: + resolution: {integrity: sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==} + engines: {node: '>= 0.4'} + + got@11.8.6: + resolution: {integrity: sha512-6tfZ91bOr7bOXnK7PRDCGBLa1H4U080YHNaAQ2KsMGlLEzRbk44nsZF2E1IeRc3vtJHPVbKCYgdFbaGO2ljd8g==} + engines: {node: '>=10.19.0'} + + graceful-fs@4.2.11: + resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} + + has-property-descriptors@1.0.2: + resolution: {integrity: sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==} + + http-cache-semantics@4.2.0: + resolution: {integrity: sha512-dTxcvPXqPvXBQpq5dUr6mEMJX4oIEFv6bwom3FDwKRDsuIjjJGANqhBuoAn9c1RQJIdAKav33ED65E2ys+87QQ==} + + http2-wrapper@1.0.3: + resolution: {integrity: sha512-V+23sDMr12Wnz7iTcDeJr3O6AIxlnvT/bmaAAAP/Xda35C90p9599p0F1eHR/N1KILWSoWVAiOMFjBBXaXSMxg==} + engines: {node: '>=10.19.0'} + + json-buffer@3.0.1: + resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} + + json-stringify-safe@5.0.1: + resolution: {integrity: sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==} + + jsonfile@4.0.0: + resolution: {integrity: sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==} + + keyv@4.5.4: + resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==} + + lowercase-keys@2.0.0: + resolution: {integrity: sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==} + engines: {node: '>=8'} + + matcher@3.0.0: + resolution: {integrity: sha512-OkeDaAZ/bQCxeFAozM55PKcKU0yJMPGifLwV4Qgjitu+5MoAfSQN4lsLJeXZ1b8w0x+/Emda6MZgXS1jvsapng==} + engines: {node: '>=10'} + + mimic-response@1.0.1: + resolution: {integrity: sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==} + engines: {node: '>=4'} + + mimic-response@3.1.0: + resolution: {integrity: sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==} + engines: {node: '>=10'} + + ms@2.0.0: + resolution: {integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==} + + ms@2.1.3: + resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} + + normalize-url@6.1.0: + resolution: {integrity: sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==} + engines: {node: '>=10'} + + object-keys@1.1.1: + resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==} + engines: {node: '>= 0.4'} + + once@1.4.0: + resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} + + p-cancelable@2.1.1: + resolution: {integrity: sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg==} + engines: {node: '>=8'} + + pend@1.2.0: + resolution: {integrity: sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==} + + progress@2.0.3: + resolution: {integrity: sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==} + engines: {node: '>=0.4.0'} + + pump@3.0.4: + resolution: {integrity: sha512-VS7sjc6KR7e1ukRFhQSY5LM2uBWAUPiOPa/A3mkKmiMwSmRFUITt0xuj+/lesgnCv+dPIEYlkzrcyXgquIHMcA==} + + quick-lru@5.1.1: + resolution: {integrity: sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==} + engines: {node: '>=10'} + + resolve-alpn@1.2.1: + resolution: {integrity: sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==} + + responselike@2.0.1: + resolution: {integrity: sha512-4gl03wn3hj1HP3yzgdI7d3lCkF95F21Pz4BPGvKHinyQzALR5CapwC8yIi0Rh58DEMQ/SguC03wFj2k0M/mHhw==} + + roarr@2.15.4: + resolution: {integrity: sha512-CHhPh+UNHD2GTXNYhPWLnU8ONHdI+5DI+4EYIAOaiD63rHeYlZvyh8P+in5999TTSFgUYuKUAjzRI4mdh/p+2A==} + engines: {node: '>=8.0'} + + semver-compare@1.0.0: + resolution: {integrity: sha512-YM3/ITh2MJ5MtzaM429anh+x2jiLVjqILF4m4oyQB18W7Ggea7BfqdH/wGMK7dDiMghv/6WG7znWMwUDzJiXow==} + + semver@6.3.1: + resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} + hasBin: true + + semver@7.8.0: + resolution: {integrity: sha512-AcM7dV/5ul4EekoQ29Agm5vri8JNqRyj39o0qpX6vDF2GZrtutZl5RwgD1XnZjiTAfncsJhMI48QQH3sN87YNA==} + engines: {node: '>=10'} + hasBin: true + + serialize-error@7.0.1: + resolution: {integrity: sha512-8I8TjW5KMOKsZQTvoxjuSIa7foAwPWGOts+6o7sgjz41/qMD9VQHEDxi6PBvK2l0MXUmqZyNpUK+T2tQaaElvw==} + engines: {node: '>=10'} + + sprintf-js@1.1.3: + resolution: {integrity: sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==} + + sumchecker@3.0.1: + resolution: {integrity: sha512-MvjXzkz/BOfyVDkG0oFOtBxHX2u3gKbMHIF/dXblZsgD3BWOFLmHovIpZY7BykJdAjcqRCBi1WYBNdEC9yI7vg==} + engines: {node: '>= 8.0'} + + type-fest@0.13.1: + resolution: {integrity: sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg==} + engines: {node: '>=10'} + + undici-types@6.21.0: + resolution: {integrity: sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==} + + universalify@0.1.2: + resolution: {integrity: sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==} + engines: {node: '>= 4.0.0'} + + wrappy@1.0.2: + resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} + + yauzl@2.10.0: + resolution: {integrity: sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==} + +snapshots: + + '@electron/get@2.0.3': + dependencies: + debug: 4.4.3 + env-paths: 2.2.1 + fs-extra: 8.1.0 + got: 11.8.6 + progress: 2.0.3 + semver: 6.3.1 + sumchecker: 3.0.1 + optionalDependencies: + global-agent: 3.0.0 + transitivePeerDependencies: + - supports-color + + '@sindresorhus/is@4.6.0': {} + + '@szmarczak/http-timer@4.0.6': + dependencies: + defer-to-connect: 2.0.1 + + '@types/cacheable-request@6.0.3': + dependencies: + '@types/http-cache-semantics': 4.2.0 + '@types/keyv': 3.1.4 + '@types/node': 22.19.19 + '@types/responselike': 1.0.3 + + '@types/http-cache-semantics@4.2.0': {} + + '@types/keyv@3.1.4': + dependencies: + '@types/node': 22.19.19 + + '@types/node@22.19.19': + dependencies: + undici-types: 6.21.0 + + '@types/responselike@1.0.3': + dependencies: + '@types/node': 22.19.19 + + '@types/yauzl@2.10.3': + dependencies: + '@types/node': 22.19.19 + optional: true + + boolean@3.2.0: + optional: true + + buffer-crc32@0.2.13: {} + + cacheable-lookup@5.0.4: {} + + cacheable-request@7.0.4: + dependencies: + clone-response: 1.0.3 + get-stream: 5.2.0 + http-cache-semantics: 4.2.0 + keyv: 4.5.4 + lowercase-keys: 2.0.0 + normalize-url: 6.1.0 + responselike: 2.0.1 + + clone-response@1.0.3: + dependencies: + mimic-response: 1.0.1 + + debug@4.4.3: + dependencies: + ms: 2.1.3 + + decompress-response@6.0.0: + dependencies: + mimic-response: 3.1.0 + + defer-to-connect@2.0.1: {} + + define-data-property@1.1.4: + dependencies: + es-define-property: 1.0.1 + es-errors: 1.3.0 + gopd: 1.2.0 + optional: true + + define-properties@1.2.1: + dependencies: + define-data-property: 1.1.4 + has-property-descriptors: 1.0.2 + object-keys: 1.1.1 + optional: true + + detect-node@2.1.0: + optional: true + + electron@39.8.5: + dependencies: + '@electron/get': 2.0.3 + '@types/node': 22.19.19 + extract-zip: 2.0.1 + transitivePeerDependencies: + - supports-color + + end-of-stream@1.4.5: + dependencies: + once: 1.4.0 + + env-paths@2.2.1: {} + + es-define-property@1.0.1: + optional: true + + es-errors@1.3.0: + optional: true + + es6-error@4.1.1: + optional: true + + escape-string-regexp@4.0.0: + optional: true + + extract-zip@2.0.1: + dependencies: + debug: 4.4.3 + get-stream: 5.2.0 + yauzl: 2.10.0 + optionalDependencies: + '@types/yauzl': 2.10.3 + transitivePeerDependencies: + - supports-color + + fd-slicer@1.1.0: + dependencies: + pend: 1.2.0 + + fs-extra@8.1.0: + dependencies: + graceful-fs: 4.2.11 + jsonfile: 4.0.0 + universalify: 0.1.2 + + get-stream@5.2.0: + dependencies: + pump: 3.0.4 + + global-agent@3.0.0: + dependencies: + boolean: 3.2.0 + es6-error: 4.1.1 + matcher: 3.0.0 + roarr: 2.15.4 + semver: 7.8.0 + serialize-error: 7.0.1 + optional: true + + globalthis@1.0.4: + dependencies: + define-properties: 1.2.1 + gopd: 1.2.0 + optional: true + + gopd@1.2.0: + optional: true + + got@11.8.6: + dependencies: + '@sindresorhus/is': 4.6.0 + '@szmarczak/http-timer': 4.0.6 + '@types/cacheable-request': 6.0.3 + '@types/responselike': 1.0.3 + cacheable-lookup: 5.0.4 + cacheable-request: 7.0.4 + decompress-response: 6.0.0 + http2-wrapper: 1.0.3 + lowercase-keys: 2.0.0 + p-cancelable: 2.1.1 + responselike: 2.0.1 + + graceful-fs@4.2.11: {} + + has-property-descriptors@1.0.2: + dependencies: + es-define-property: 1.0.1 + optional: true + + http-cache-semantics@4.2.0: {} + + http2-wrapper@1.0.3: + dependencies: + quick-lru: 5.1.1 + resolve-alpn: 1.2.1 + + json-buffer@3.0.1: {} + + json-stringify-safe@5.0.1: + optional: true + + jsonfile@4.0.0: + optionalDependencies: + graceful-fs: 4.2.11 + + keyv@4.5.4: + dependencies: + json-buffer: 3.0.1 + + lowercase-keys@2.0.0: {} + + matcher@3.0.0: + dependencies: + escape-string-regexp: 4.0.0 + optional: true + + mimic-response@1.0.1: {} + + mimic-response@3.1.0: {} + + ms@2.0.0: {} + + ms@2.1.3: {} + + normalize-url@6.1.0: {} + + object-keys@1.1.1: + optional: true + + once@1.4.0: + dependencies: + wrappy: 1.0.2 + + p-cancelable@2.1.1: {} + + pend@1.2.0: {} + + progress@2.0.3: {} + + pump@3.0.4: + dependencies: + end-of-stream: 1.4.5 + once: 1.4.0 + + quick-lru@5.1.1: {} + + resolve-alpn@1.2.1: {} + + responselike@2.0.1: + dependencies: + lowercase-keys: 2.0.0 + + roarr@2.15.4: + dependencies: + boolean: 3.2.0 + detect-node: 2.1.0 + globalthis: 1.0.4 + json-stringify-safe: 5.0.1 + semver-compare: 1.0.0 + sprintf-js: 1.1.3 + optional: true + + semver-compare@1.0.0: + optional: true + + semver@6.3.1: {} + + semver@7.8.0: + optional: true + + serialize-error@7.0.1: + dependencies: + type-fest: 0.13.1 + optional: true + + sprintf-js@1.1.3: + optional: true + + sumchecker@3.0.1: + dependencies: + debug: 4.4.3 + transitivePeerDependencies: + - supports-color + + type-fest@0.13.1: + optional: true + + undici-types@6.21.0: {} + + universalify@0.1.2: {} + + wrappy@1.0.2: {} + + yauzl@2.10.0: + dependencies: + buffer-crc32: 0.2.13 + fd-slicer: 1.1.0 diff --git a/test/snapshots/linux/snapHeavyTest.js.snap b/test/snapshots/linux/snapHeavyTest.js.snap index c097251ff4d..680c9a744ae 100644 --- a/test/snapshots/linux/snapHeavyTest.js.snap +++ b/test/snapshots/linux/snapHeavyTest.js.snap @@ -321,6 +321,79 @@ exports[`snap heavy > snap full (core18 armhf) 2`] = ` } `; +exports[`snap heavy > snap full (core18) 1`] = ` +{ + "apps": { + "se-wo-template": { + "command": "command.sh", + "environment": { + "LD_LIBRARY_PATH": "$SNAP_LIBRARY_PATH:$SNAP/lib:$SNAP/usr/lib:$SNAP/lib/x86_64-linux-gnu:$SNAP/usr/lib/x86_64-linux-gnu:$LD_LIBRARY_PATH:$SNAP/lib:$SNAP/usr/lib:$SNAP/lib/x86_64-linux-gnu:$SNAP/usr/lib/x86_64-linux-gnu", + "PATH": "$SNAP/usr/sbin:$SNAP/usr/bin:$SNAP/sbin:$SNAP/bin:$PATH", + "SNAP_DESKTOP_RUNTIME": "$SNAP/gnome-platform", + }, + "plugs": [ + "desktop", + "desktop-legacy", + "home", + "x11", + "wayland", + "unity7", + "browser-support", + "network", + "gsettings", + "audio-playback", + "pulseaudio", + "opengl", + ], + }, + }, + "architectures": [ + "amd64", + ], + "base": "core18", + "confinement": "strict", + "description": "Test Application (test quite “ #378)", + "grade": "stable", + "name": "se-wo-template", + "plugs": { + "gnome-3-28-1804": { + "default-provider": "gnome-3-28-1804", + "interface": "content", + "target": "$SNAP/gnome-platform", + }, + "gtk-3-themes": { + "default-provider": "gtk-common-themes", + "interface": "content", + "target": "$SNAP/data-dir/themes", + }, + "icon-themes": { + "default-provider": "gtk-common-themes", + "interface": "content", + "target": "$SNAP/data-dir/icons", + }, + "sound-themes": { + "default-provider": "gtk-common-themes", + "interface": "content", + "target": "$SNAP/data-dir/sounds", + }, + }, + "summary": "Snap Electron App (full build)", + "title": "Snap Electron App (full build)", + "version": "1.1.0", +} +`; + +exports[`snap heavy > snap full (core18) 2`] = ` +{ + "linux": [ + { + "arch": "x64", + "file": "se-wo-template_1.1.0_amd64.snap", + }, + ], +} +`; + exports[`snap heavy > snap full (core20 armhf) 1`] = ` { "apps": { @@ -394,6 +467,79 @@ exports[`snap heavy > snap full (core20 armhf) 2`] = ` } `; +exports[`snap heavy > snap full (core20) 1`] = ` +{ + "apps": { + "se-wo-template": { + "command": "command.sh", + "environment": { + "LD_LIBRARY_PATH": "$SNAP_LIBRARY_PATH:$SNAP/lib:$SNAP/usr/lib:$SNAP/lib/x86_64-linux-gnu:$SNAP/usr/lib/x86_64-linux-gnu:$LD_LIBRARY_PATH:$SNAP/lib:$SNAP/usr/lib:$SNAP/lib/x86_64-linux-gnu:$SNAP/usr/lib/x86_64-linux-gnu", + "PATH": "$SNAP/usr/sbin:$SNAP/usr/bin:$SNAP/sbin:$SNAP/bin:$PATH", + "SNAP_DESKTOP_RUNTIME": "$SNAP/gnome-platform", + }, + "plugs": [ + "desktop", + "desktop-legacy", + "home", + "x11", + "wayland", + "unity7", + "browser-support", + "network", + "gsettings", + "audio-playback", + "pulseaudio", + "opengl", + ], + }, + }, + "architectures": [ + "amd64", + ], + "base": "core20", + "confinement": "strict", + "description": "Test Application (test quite “ #378)", + "grade": "stable", + "name": "se-wo-template", + "plugs": { + "gnome-3-28-1804": { + "default-provider": "gnome-3-28-1804", + "interface": "content", + "target": "$SNAP/gnome-platform", + }, + "gtk-3-themes": { + "default-provider": "gtk-common-themes", + "interface": "content", + "target": "$SNAP/data-dir/themes", + }, + "icon-themes": { + "default-provider": "gtk-common-themes", + "interface": "content", + "target": "$SNAP/data-dir/icons", + }, + "sound-themes": { + "default-provider": "gtk-common-themes", + "interface": "content", + "target": "$SNAP/data-dir/sounds", + }, + }, + "summary": "Snap Electron App (full build)", + "title": "Snap Electron App (full build)", + "version": "1.1.0", +} +`; + +exports[`snap heavy > snap full (core20) 2`] = ` +{ + "linux": [ + { + "arch": "x64", + "file": "se-wo-template_1.1.0_amd64.snap", + }, + ], +} +`; + exports[`snap heavy > snap full (core22 armhf) 1`] = ` { "apps": { @@ -467,6 +613,79 @@ exports[`snap heavy > snap full (core22 armhf) 2`] = ` } `; +exports[`snap heavy > snap full (core22) 1`] = ` +{ + "apps": { + "se-wo-template": { + "command": "command.sh", + "environment": { + "LD_LIBRARY_PATH": "$SNAP_LIBRARY_PATH:$SNAP/lib:$SNAP/usr/lib:$SNAP/lib/x86_64-linux-gnu:$SNAP/usr/lib/x86_64-linux-gnu:$LD_LIBRARY_PATH:$SNAP/lib:$SNAP/usr/lib:$SNAP/lib/x86_64-linux-gnu:$SNAP/usr/lib/x86_64-linux-gnu", + "PATH": "$SNAP/usr/sbin:$SNAP/usr/bin:$SNAP/sbin:$SNAP/bin:$PATH", + "SNAP_DESKTOP_RUNTIME": "$SNAP/gnome-platform", + }, + "plugs": [ + "desktop", + "desktop-legacy", + "home", + "x11", + "wayland", + "unity7", + "browser-support", + "network", + "gsettings", + "audio-playback", + "pulseaudio", + "opengl", + ], + }, + }, + "architectures": [ + "amd64", + ], + "base": "core22", + "confinement": "strict", + "description": "Test Application (test quite “ #378)", + "grade": "stable", + "name": "se-wo-template", + "plugs": { + "gnome-3-28-1804": { + "default-provider": "gnome-3-28-1804", + "interface": "content", + "target": "$SNAP/gnome-platform", + }, + "gtk-3-themes": { + "default-provider": "gtk-common-themes", + "interface": "content", + "target": "$SNAP/data-dir/themes", + }, + "icon-themes": { + "default-provider": "gtk-common-themes", + "interface": "content", + "target": "$SNAP/data-dir/icons", + }, + "sound-themes": { + "default-provider": "gtk-common-themes", + "interface": "content", + "target": "$SNAP/data-dir/sounds", + }, + }, + "summary": "Snap Electron App (full build)", + "title": "Snap Electron App (full build)", + "version": "1.1.0", +} +`; + +exports[`snap heavy > snap full (core22) 2`] = ` +{ + "linux": [ + { + "arch": "x64", + "file": "se-wo-template_1.1.0_amd64.snap", + }, + ], +} +`; + exports[`snap heavy > snap full (core24) 1`] = ` { "apps": { diff --git a/test/snapshots/windows/winPackagerTest.js.snap b/test/snapshots/windows/winPackagerTest.js.snap new file mode 100644 index 00000000000..c19b104a511 --- /dev/null +++ b/test/snapshots/windows/winPackagerTest.js.snap @@ -0,0 +1,553 @@ +// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html + +exports[`winCodeSign: 0.0.0 > beta version 1`] = ` +{ + "win": [ + { + "arch": "x64", + "file": "Test App ßW Setup 3.0.0-beta.2.exe", + "safeArtifactName": "TestApp-Setup-3.0.0-beta.2.exe", + "updateInfo": { + "sha512": "@sha512", + "size": "@size", + }, + }, + { + "arch": "arm64", + "file": "Test App ßW Setup 3.0.0-beta.2-arm64.exe", + "safeArtifactName": "TestApp-Setup-3.0.0-beta.2-arm64.exe", + "updateInfo": { + "sha512": "@sha512", + "size": "@size", + }, + }, + { + "file": "Test App ßW Setup 3.0.0-beta.2-arm64.exe.blockmap", + "safeArtifactName": "TestApp-Setup-3.0.0-beta.2-arm64.exe.blockmap", + "updateInfo": { + "sha512": "@sha512", + "size": "@size", + }, + }, + { + "file": "Test App ßW Setup 3.0.0-beta.2.exe.blockmap", + "safeArtifactName": "TestApp-Setup-3.0.0-beta.2.exe.blockmap", + "updateInfo": { + "sha512": "@sha512", + "size": "@size", + }, + }, + ], +} +`; + +exports[`winCodeSign: 0.0.0 > icon < 256 1`] = `"ERR_ICON_TOO_SMALL"`; + +exports[`winCodeSign: 0.0.0 > icon not an image 1`] = `"ERR_ICON_UNKNOWN_FORMAT"`; + +exports[`winCodeSign: 0.0.0 > legacy win-codesign 1`] = ` +{ + "win": [ + { + "arch": "x64", + "file": "Test App ßW-1.1.0-win.zip", + "safeArtifactName": "TestApp-1.1.0-win.zip", + }, + ], +} +`; + +exports[`winCodeSign: 0.0.0 > win zip 1`] = ` +{ + "win": [ + { + "arch": "x64", + "file": "Test App ßW-1.1.0-win.zip", + "safeArtifactName": "TestApp-1.1.0-win.zip", + }, + { + "arch": "arm64", + "file": "Test App ßW-1.1.0-arm64-win.zip", + "safeArtifactName": "TestApp-1.1.0-arm64-win.zip", + }, + ], +} +`; + +exports[`winCodeSign: 0.0.0 > win zip 2`] = ` +[ + "chrome_100_percent.pak", + "chrome_200_percent.pak", + "d3dcompiler_47.dll", + "dxcompiler.dll", + "dxil.dll", + "ffmpeg.dll", + "icudtl.dat", + "libEGL.dll", + "libGLESv2.dll", + "LICENSE.electron.txt", + "LICENSES.chromium.html", + "locales/", + "resources/", + "resources/app.asar", + "resources/extraAsar.asar", + "resources/subdir/", + "resources/subdir/extraAsar2.asar", + "resources.pak", + "snapshot_blob.bin", + "Test App ßW.exe", + "v8_context_snapshot.bin", + "vk_swiftshader.dll", + "vk_swiftshader_icd.json", + "vulkan-1.dll", +] +`; + +exports[`winCodeSign: 0.0.0 > win zip 3`] = ` +[ + { + "alg": "SHA256", + "file": "resources\\app.asar", + "value": "hash", + }, + { + "alg": "SHA256", + "file": "resources\\extraAsar.asar", + "value": "hash", + }, + { + "alg": "SHA256", + "file": "resources\\subdir\\extraAsar2.asar", + "value": "hash", + }, +] +`; + +exports[`winCodeSign: 0.0.0 > win zip 4`] = ` +[ + "chrome_100_percent.pak", + "chrome_200_percent.pak", + "d3dcompiler_47.dll", + "dxcompiler.dll", + "dxil.dll", + "ffmpeg.dll", + "icudtl.dat", + "libEGL.dll", + "libGLESv2.dll", + "LICENSE.electron.txt", + "LICENSES.chromium.html", + "locales/", + "resources/", + "resources/app.asar", + "resources/extraAsar.asar", + "resources/subdir/", + "resources/subdir/extraAsar2.asar", + "resources.pak", + "snapshot_blob.bin", + "Test App ßW.exe", + "v8_context_snapshot.bin", + "vk_swiftshader.dll", + "vk_swiftshader_icd.json", + "vulkan-1.dll", +] +`; + +exports[`winCodeSign: 0.0.0 > win zip 5`] = ` +[ + { + "alg": "SHA256", + "file": "resources\\app.asar", + "value": "hash", + }, + { + "alg": "SHA256", + "file": "resources\\extraAsar.asar", + "value": "hash", + }, + { + "alg": "SHA256", + "file": "resources\\subdir\\extraAsar2.asar", + "value": "hash", + }, +] +`; + +exports[`winCodeSign: 0.0.0 > zip artifactName 1`] = ` +{ + "win": [ + { + "arch": "x64", + "file": "Test App ßW-1.1.0-win-x64.zip", + "safeArtifactName": "TestApp-1.1.0-win.zip", + }, + ], +} +`; + +exports[`winCodeSign: 1.0.0 > beta version 1`] = ` +{ + "win": [ + { + "arch": "x64", + "file": "Test App ßW Setup 3.0.0-beta.2.exe", + "safeArtifactName": "TestApp-Setup-3.0.0-beta.2.exe", + "updateInfo": { + "sha512": "@sha512", + "size": "@size", + }, + }, + { + "arch": "arm64", + "file": "Test App ßW Setup 3.0.0-beta.2-arm64.exe", + "safeArtifactName": "TestApp-Setup-3.0.0-beta.2-arm64.exe", + "updateInfo": { + "sha512": "@sha512", + "size": "@size", + }, + }, + { + "file": "Test App ßW Setup 3.0.0-beta.2-arm64.exe.blockmap", + "safeArtifactName": "TestApp-Setup-3.0.0-beta.2-arm64.exe.blockmap", + "updateInfo": { + "sha512": "@sha512", + "size": "@size", + }, + }, + { + "file": "Test App ßW Setup 3.0.0-beta.2.exe.blockmap", + "safeArtifactName": "TestApp-Setup-3.0.0-beta.2.exe.blockmap", + "updateInfo": { + "sha512": "@sha512", + "size": "@size", + }, + }, + ], +} +`; + +exports[`winCodeSign: 1.0.0 > icon < 256 1`] = `"ERR_ICON_TOO_SMALL"`; + +exports[`winCodeSign: 1.0.0 > icon not an image 1`] = `"ERR_ICON_UNKNOWN_FORMAT"`; + +exports[`winCodeSign: 1.0.0 > legacy win-codesign 1`] = ` +{ + "win": [ + { + "arch": "x64", + "file": "Test App ßW-1.1.0-win.zip", + "safeArtifactName": "TestApp-1.1.0-win.zip", + }, + ], +} +`; + +exports[`winCodeSign: 1.0.0 > win zip 1`] = ` +{ + "win": [ + { + "arch": "x64", + "file": "Test App ßW-1.1.0-win.zip", + "safeArtifactName": "TestApp-1.1.0-win.zip", + }, + { + "arch": "arm64", + "file": "Test App ßW-1.1.0-arm64-win.zip", + "safeArtifactName": "TestApp-1.1.0-arm64-win.zip", + }, + ], +} +`; + +exports[`winCodeSign: 1.0.0 > win zip 2`] = ` +[ + "chrome_100_percent.pak", + "chrome_200_percent.pak", + "d3dcompiler_47.dll", + "dxcompiler.dll", + "dxil.dll", + "ffmpeg.dll", + "icudtl.dat", + "libEGL.dll", + "libGLESv2.dll", + "LICENSE.electron.txt", + "LICENSES.chromium.html", + "locales/", + "resources/", + "resources/app.asar", + "resources/extraAsar.asar", + "resources/subdir/", + "resources/subdir/extraAsar2.asar", + "resources.pak", + "snapshot_blob.bin", + "Test App ßW.exe", + "v8_context_snapshot.bin", + "vk_swiftshader.dll", + "vk_swiftshader_icd.json", + "vulkan-1.dll", +] +`; + +exports[`winCodeSign: 1.0.0 > win zip 3`] = ` +[ + { + "alg": "SHA256", + "file": "resources\\app.asar", + "value": "hash", + }, + { + "alg": "SHA256", + "file": "resources\\extraAsar.asar", + "value": "hash", + }, + { + "alg": "SHA256", + "file": "resources\\subdir\\extraAsar2.asar", + "value": "hash", + }, +] +`; + +exports[`winCodeSign: 1.0.0 > win zip 4`] = ` +[ + "chrome_100_percent.pak", + "chrome_200_percent.pak", + "d3dcompiler_47.dll", + "dxcompiler.dll", + "dxil.dll", + "ffmpeg.dll", + "icudtl.dat", + "libEGL.dll", + "libGLESv2.dll", + "LICENSE.electron.txt", + "LICENSES.chromium.html", + "locales/", + "resources/", + "resources/app.asar", + "resources/extraAsar.asar", + "resources/subdir/", + "resources/subdir/extraAsar2.asar", + "resources.pak", + "snapshot_blob.bin", + "Test App ßW.exe", + "v8_context_snapshot.bin", + "vk_swiftshader.dll", + "vk_swiftshader_icd.json", + "vulkan-1.dll", +] +`; + +exports[`winCodeSign: 1.0.0 > win zip 5`] = ` +[ + { + "alg": "SHA256", + "file": "resources\\app.asar", + "value": "hash", + }, + { + "alg": "SHA256", + "file": "resources\\extraAsar.asar", + "value": "hash", + }, + { + "alg": "SHA256", + "file": "resources\\subdir\\extraAsar2.asar", + "value": "hash", + }, +] +`; + +exports[`winCodeSign: 1.0.0 > zip artifactName 1`] = ` +{ + "win": [ + { + "arch": "x64", + "file": "Test App ßW-1.1.0-win-x64.zip", + "safeArtifactName": "TestApp-1.1.0-win.zip", + }, + ], +} +`; + +exports[`winCodeSign: 1.1.0 > beta version 1`] = ` +{ + "win": [ + { + "arch": "x64", + "file": "Test App ßW Setup 3.0.0-beta.2.exe", + "safeArtifactName": "TestApp-Setup-3.0.0-beta.2.exe", + "updateInfo": { + "sha512": "@sha512", + "size": "@size", + }, + }, + { + "arch": "arm64", + "file": "Test App ßW Setup 3.0.0-beta.2-arm64.exe", + "safeArtifactName": "TestApp-Setup-3.0.0-beta.2-arm64.exe", + "updateInfo": { + "sha512": "@sha512", + "size": "@size", + }, + }, + { + "file": "Test App ßW Setup 3.0.0-beta.2-arm64.exe.blockmap", + "safeArtifactName": "TestApp-Setup-3.0.0-beta.2-arm64.exe.blockmap", + "updateInfo": { + "sha512": "@sha512", + "size": "@size", + }, + }, + { + "file": "Test App ßW Setup 3.0.0-beta.2.exe.blockmap", + "safeArtifactName": "TestApp-Setup-3.0.0-beta.2.exe.blockmap", + "updateInfo": { + "sha512": "@sha512", + "size": "@size", + }, + }, + ], +} +`; + +exports[`winCodeSign: 1.1.0 > icon < 256 1`] = `"ERR_ICON_TOO_SMALL"`; + +exports[`winCodeSign: 1.1.0 > icon not an image 1`] = `"ERR_ICON_UNKNOWN_FORMAT"`; + +exports[`winCodeSign: 1.1.0 > legacy win-codesign 1`] = ` +{ + "win": [ + { + "arch": "x64", + "file": "Test App ßW-1.1.0-win.zip", + "safeArtifactName": "TestApp-1.1.0-win.zip", + }, + ], +} +`; + +exports[`winCodeSign: 1.1.0 > win zip 1`] = ` +{ + "win": [ + { + "arch": "x64", + "file": "Test App ßW-1.1.0-win.zip", + "safeArtifactName": "TestApp-1.1.0-win.zip", + }, + { + "arch": "arm64", + "file": "Test App ßW-1.1.0-arm64-win.zip", + "safeArtifactName": "TestApp-1.1.0-arm64-win.zip", + }, + ], +} +`; + +exports[`winCodeSign: 1.1.0 > win zip 2`] = ` +[ + "chrome_100_percent.pak", + "chrome_200_percent.pak", + "d3dcompiler_47.dll", + "dxcompiler.dll", + "dxil.dll", + "ffmpeg.dll", + "icudtl.dat", + "libEGL.dll", + "libGLESv2.dll", + "LICENSE.electron.txt", + "LICENSES.chromium.html", + "locales/", + "resources/", + "resources/app.asar", + "resources/extraAsar.asar", + "resources/subdir/", + "resources/subdir/extraAsar2.asar", + "resources.pak", + "snapshot_blob.bin", + "Test App ßW.exe", + "v8_context_snapshot.bin", + "vk_swiftshader.dll", + "vk_swiftshader_icd.json", + "vulkan-1.dll", +] +`; + +exports[`winCodeSign: 1.1.0 > win zip 3`] = ` +[ + { + "alg": "SHA256", + "file": "resources\\app.asar", + "value": "hash", + }, + { + "alg": "SHA256", + "file": "resources\\extraAsar.asar", + "value": "hash", + }, + { + "alg": "SHA256", + "file": "resources\\subdir\\extraAsar2.asar", + "value": "hash", + }, +] +`; + +exports[`winCodeSign: 1.1.0 > win zip 4`] = ` +[ + "chrome_100_percent.pak", + "chrome_200_percent.pak", + "d3dcompiler_47.dll", + "dxcompiler.dll", + "dxil.dll", + "ffmpeg.dll", + "icudtl.dat", + "libEGL.dll", + "libGLESv2.dll", + "LICENSE.electron.txt", + "LICENSES.chromium.html", + "locales/", + "resources/", + "resources/app.asar", + "resources/extraAsar.asar", + "resources/subdir/", + "resources/subdir/extraAsar2.asar", + "resources.pak", + "snapshot_blob.bin", + "Test App ßW.exe", + "v8_context_snapshot.bin", + "vk_swiftshader.dll", + "vk_swiftshader_icd.json", + "vulkan-1.dll", +] +`; + +exports[`winCodeSign: 1.1.0 > win zip 5`] = ` +[ + { + "alg": "SHA256", + "file": "resources\\app.asar", + "value": "hash", + }, + { + "alg": "SHA256", + "file": "resources\\extraAsar.asar", + "value": "hash", + }, + { + "alg": "SHA256", + "file": "resources\\subdir\\extraAsar2.asar", + "value": "hash", + }, +] +`; + +exports[`winCodeSign: 1.1.0 > zip artifactName 1`] = ` +{ + "win": [ + { + "arch": "x64", + "file": "Test App ßW-1.1.0-win-x64.zip", + "safeArtifactName": "TestApp-1.1.0-win.zip", + }, + ], +} +`; diff --git a/test/src/dynamicImportTest.ts b/test/src/dynamicImportTest.ts index e69ec3b7ece..b64c681f0de 100644 --- a/test/src/dynamicImportTest.ts +++ b/test/src/dynamicImportTest.ts @@ -4,7 +4,7 @@ import { expect } from "vitest" const WORKSPACE_ROOT = path.resolve(__dirname, "../../") -const helper = require("../../packages/app-builder-lib/helpers/dynamic-import") as { +const helper = require("../../packages/app-builder-lib/helpers/dynamic-import.cjs") as { dynamicImport(modulePath: string): Promise dynamicImportMaybe(modulePath: string): Promise } diff --git a/test/vitest-scripts/run-vitest.ts b/test/vitest-scripts/run-vitest.ts index 0cb6e9c9dc4..7a2a9b0039c 100644 --- a/test/vitest-scripts/run-vitest.ts +++ b/test/vitest-scripts/run-vitest.ts @@ -13,8 +13,9 @@ import SmartSequencer from "./vitest-smart-sequencer" // bundled (CJS+ESM) by tsup, but tests must run against un-bundled source so vite handles CJS interop // (e.g. fs-extra) and circular deps, and so `vi.mock` can intercept individual internal modules. const PACKAGES_DIR = path.join(__dirname, "..", "..", "packages") +const escapeRegex = (s: string) => s.replace(/[.*+?^${}()|[\]\\]/g, "\\$&") const sourceAlias = (specifier: string, relPath: string) => ({ - find: new RegExp(`^${specifier.replace(/\//g, "\\/")}$`), + find: new RegExp(`^${escapeRegex(specifier)}$`), replacement: path.join(PACKAGES_DIR, relPath), }) const workspaceSourceAliases = [ @@ -34,9 +35,9 @@ const workspaceSourceAliases = [ sourceAlias("electron-builder", "electron-builder/src/index.ts"), ] -const testRegex = TEST_FILES_PATTERN?.split(",") -const includeRegex = `(${testRegex.join("|")}|${testRegex.map(t => `${t}*Test`).join("|")})` -console.log("TEST_FILES pattern", includeRegex) +const testPatterns = TEST_FILES_PATTERN.split(",").map(s => s.trim()).filter(Boolean) +const includeGlob = `(${testPatterns.join("|")}|${testPatterns.map(t => `${t}*Test`).join("|")})` +console.log("TEST_FILES pattern", includeGlob) async function main() { generateTests() @@ -83,7 +84,7 @@ async function main() { // Allow test metadata includeTaskLocation: true, setupFiles: [__dirname + "/vitest-setup.ts", __dirname + "/vitest-heavy-mutex.ts"], - include: [`test/src/**/${includeRegex}.ts`], + include: [`test/src/**/${includeGlob}.ts`], printConsoleTrace: true, runner: __dirname + "/vitest-network-retry-runner.ts", diff --git a/tsconfig-base.json b/tsconfig-base.json index 2ee3cd4d04d..a25267f8bed 100644 --- a/tsconfig-base.json +++ b/tsconfig-base.json @@ -1,6 +1,9 @@ { "extends": "@tsconfig/node22/tsconfig.json", "compilerOptions": { + "module": "ESNext", + "moduleResolution": "bundler", + "forceConsistentCasingInFileNames": true, "noUnusedLocals": true, From 1c3b714c50edc408bbba31eb39cb3f10e9003977 Mon Sep 17 00:00:00 2001 From: Mike Maietta Date: Wed, 3 Jun 2026 17:16:11 -0700 Subject: [PATCH 65/65] address CI issues --- .gitignore | 1 + packages/app-builder-lib/src/winPackager.ts | 11 +- packages/builder-util/src/DebugLogger.ts | 1 - packages/electron-builder/src/cli/cli.ts | 2 +- packages/electron-updater/src/BaseUpdater.ts | 3 + packages/electron-updater/src/index.ts | 2 +- test/vitest-scripts/_vitest-smart-cache.json | 2492 +----------------- test/vitest-scripts/run-vitest.ts | 4 +- 8 files changed, 17 insertions(+), 2499 deletions(-) diff --git a/.gitignore b/.gitignore index a00c7e29ab6..0d9764f33a3 100644 --- a/.gitignore +++ b/.gitignore @@ -29,3 +29,4 @@ _vitest-smart-cache.json yalc.lock .claude +test/vitest-scripts/_vitest-smart-cache.json \ No newline at end of file diff --git a/packages/app-builder-lib/src/winPackager.ts b/packages/app-builder-lib/src/winPackager.ts index 71ced0538c1..b4f17308826 100644 --- a/packages/app-builder-lib/src/winPackager.ts +++ b/packages/app-builder-lib/src/winPackager.ts @@ -1,4 +1,5 @@ import { Arch, CopyFileTransformer, exists, FileTransformer, InvalidConfigurationError, log, walk } from "builder-util" +import { createRequire } from "node:module" import { Nullish } from "builder-util-runtime" import { isCI } from "ci-info" import { createHash } from "crypto" @@ -28,6 +29,8 @@ import { editWindowsResources, ResourceEditOptions } from "./util/resEdit.js" import { time } from "./util/timer.js" import { getWindowsVm, VmManager } from "./vm/vm.js" +const _require = createRequire(import.meta.url) + export class WinPackager extends PlatformPackager { _iconPath = new Lazy(() => this.getOrConvertIcon("ico")) @@ -89,19 +92,19 @@ export class WinPackager extends PlatformPackager { switch (name) { case "squirrel": try { - return require("electron-builder-squirrel-windows").default + return _require("electron-builder-squirrel-windows").default } catch (e: any) { throw new InvalidConfigurationError(`Module electron-builder-squirrel-windows must be installed in addition to build Squirrel.Windows: ${e.stack || e}`) } case "appx": - return require("./targets/AppxTarget").default + return AppXTarget case "msi": - return require("./targets/MsiTarget").default + return MsiTarget case "msiwrapped": - return require("./targets/MsiWrappedTarget").default + return MsiWrappedTarget default: return null diff --git a/packages/builder-util/src/DebugLogger.ts b/packages/builder-util/src/DebugLogger.ts index d0e37b7a58c..0072912213f 100644 --- a/packages/builder-util/src/DebugLogger.ts +++ b/packages/builder-util/src/DebugLogger.ts @@ -1,4 +1,3 @@ - import { serializeToYaml } from "./util.js" import { mapToObject } from "builder-util-runtime" import _fsExtra from "fs-extra" diff --git a/packages/electron-builder/src/cli/cli.ts b/packages/electron-builder/src/cli/cli.ts index a6e39b0ddb7..3cb9df7c2e3 100644 --- a/packages/electron-builder/src/cli/cli.ts +++ b/packages/electron-builder/src/cli/cli.ts @@ -1,7 +1,7 @@ #! /usr/bin/env node import { getElectronVersion, nodeGypRebuild } from "app-builder-lib/internal" -import * as chalk from "chalk" +import chalk from "chalk" import { build, configureBuildCommand, createYargs } from "../builder.js" import { configurePublishCommand, publish } from "../publish.js" import { clearCache } from "./clear-cache.js" diff --git a/packages/electron-updater/src/BaseUpdater.ts b/packages/electron-updater/src/BaseUpdater.ts index a7ac463a371..98cf4184d03 100644 --- a/packages/electron-updater/src/BaseUpdater.ts +++ b/packages/electron-updater/src/BaseUpdater.ts @@ -1,9 +1,12 @@ +import { createRequire } from "node:module" import { AllPublishOptions } from "builder-util-runtime" import { spawn, SpawnOptions, spawnSync, StdioOptions } from "child_process" import * as path from "path" import { AppAdapter } from "./AppAdapter.js" import { AppUpdater, DownloadExecutorTask } from "./AppUpdater.js" +const require = createRequire(import.meta.url) + export abstract class BaseUpdater extends AppUpdater { protected quitAndInstallCalled = false private quitHandlerAdded = false diff --git a/packages/electron-updater/src/index.ts b/packages/electron-updater/src/index.ts index f1b9f05979d..a0663b6719f 100644 --- a/packages/electron-updater/src/index.ts +++ b/packages/electron-updater/src/index.ts @@ -1,5 +1,5 @@ import fsExtra from "fs-extra" -import { createRequire } from "module" +import { createRequire } from "node:module" import * as path from "path" import { AppUpdater } from "./AppUpdater.js" diff --git a/test/vitest-scripts/_vitest-smart-cache.json b/test/vitest-scripts/_vitest-smart-cache.json index 0fda2553815..95177e2bd03 100644 --- a/test/vitest-scripts/_vitest-smart-cache.json +++ b/test/vitest-scripts/_vitest-smart-cache.json @@ -1,2491 +1 @@ -{ - "tests": { - "schemaValidatorTest.ts::validateSchema - valid inputs > accepts a fully valid object": { - "platformRuns": { - "win32": { - "runs": 0, - "fails": 0, - "avgMs": 0 - }, - "darwin": { - "runs": 3, - "fails": 0, - "avgMs": 16.973083333333324 - }, - "linux": { - "runs": 0, - "fails": 0, - "avgMs": 0 - } - }, - "heavy": false - }, - "schemaValidatorTest.ts::validateSchema - valid inputs > accepts minimal object with only required fields": { - "platformRuns": { - "win32": { - "runs": 0, - "fails": 0, - "avgMs": 0 - }, - "darwin": { - "runs": 3, - "fails": 0, - "avgMs": 0.2518193333332685 - }, - "linux": { - "runs": 0, - "fails": 0, - "avgMs": 0 - } - }, - "heavy": false - }, - "schemaValidatorTest.ts::validateSchema - valid inputs > accepts null for nullable field": { - "platformRuns": { - "win32": { - "runs": 0, - "fails": 0, - "avgMs": 0 - }, - "darwin": { - "runs": 3, - "fails": 0, - "avgMs": 0.11327799999997978 - }, - "linux": { - "runs": 0, - "fails": 0, - "avgMs": 0 - } - }, - "heavy": false - }, - "schemaValidatorTest.ts::validateSchema - valid inputs > accepts string for nullable field": { - "platformRuns": { - "win32": { - "runs": 0, - "fails": 0, - "avgMs": 0 - }, - "darwin": { - "runs": 3, - "fails": 0, - "avgMs": 0.09030566666664679 - }, - "linux": { - "runs": 0, - "fails": 0, - "avgMs": 0 - } - }, - "heavy": false - }, - "schemaValidatorTest.ts::validateSchema - valid inputs > accepts function for callback field (typeof is unregistered, so any value is allowed)": { - "platformRuns": { - "win32": { - "runs": 0, - "fails": 0, - "avgMs": 0 - }, - "darwin": { - "runs": 3, - "fails": 0, - "avgMs": 0.19726399999992358 - }, - "linux": { - "runs": 0, - "fails": 0, - "avgMs": 0 - } - }, - "heavy": false - }, - "schemaValidatorTest.ts::validateSchema - valid inputs > accepts null for callback field": { - "platformRuns": { - "win32": { - "runs": 0, - "fails": 0, - "avgMs": 0 - }, - "darwin": { - "runs": 3, - "fails": 0, - "avgMs": 0.09379166666665621 - }, - "linux": { - "runs": 0, - "fails": 0, - "avgMs": 0 - } - }, - "heavy": false - }, - "schemaValidatorTest.ts::validateSchema - valid inputs > accepts string for callback field": { - "platformRuns": { - "win32": { - "runs": 0, - "fails": 0, - "avgMs": 0 - }, - "darwin": { - "runs": 3, - "fails": 0, - "avgMs": 0.07681900000001936 - }, - "linux": { - "runs": 0, - "fails": 0, - "avgMs": 0 - } - }, - "heavy": false - }, - "schemaValidatorTest.ts::validateSchema - additionalProperties errors > reports unknown root property": { - "platformRuns": { - "win32": { - "runs": 0, - "fails": 0, - "avgMs": 0 - }, - "darwin": { - "runs": 3, - "fails": 0, - "avgMs": 0.4073333333333646 - }, - "linux": { - "runs": 0, - "fails": 0, - "avgMs": 0 - } - }, - "heavy": false - }, - "schemaValidatorTest.ts::validateSchema - additionalProperties errors > reports unknown nested property": { - "platformRuns": { - "win32": { - "runs": 0, - "fails": 0, - "avgMs": 0 - }, - "darwin": { - "runs": 3, - "fails": 0, - "avgMs": 0.4279446666667089 - }, - "linux": { - "runs": 0, - "fails": 0, - "avgMs": 0 - } - }, - "heavy": false - }, - "schemaValidatorTest.ts::validateSchema - required errors > reports missing required property": { - "platformRuns": { - "win32": { - "runs": 0, - "fails": 0, - "avgMs": 0 - }, - "darwin": { - "runs": 3, - "fails": 0, - "avgMs": 0.13018066666671757 - }, - "linux": { - "runs": 0, - "fails": 0, - "avgMs": 0 - } - }, - "heavy": false - }, - "schemaValidatorTest.ts::validateSchema - type errors > reports wrong single type (array cannot coerce to string)": { - "platformRuns": { - "win32": { - "runs": 0, - "fails": 0, - "avgMs": 0 - }, - "darwin": { - "runs": 3, - "fails": 0, - "avgMs": 0.16862466666668752 - }, - "linux": { - "runs": 0, - "fails": 0, - "avgMs": 0 - } - }, - "heavy": false - }, - "schemaValidatorTest.ts::validateSchema - type errors > does not throw when coerceTypes converts a value (string to number)": { - "platformRuns": { - "win32": { - "runs": 0, - "fails": 0, - "avgMs": 0 - }, - "darwin": { - "runs": 3, - "fails": 0, - "avgMs": 0.07281933333333275 - }, - "linux": { - "runs": 0, - "fails": 0, - "avgMs": 0 - } - }, - "heavy": false - }, - "schemaValidatorTest.ts::validateSchema - type errors > includes description for multi-type fields (object is not coercible)": { - "platformRuns": { - "win32": { - "runs": 0, - "fails": 0, - "avgMs": 0 - }, - "darwin": { - "runs": 3, - "fails": 0, - "avgMs": 0.13866666666664665 - }, - "linux": { - "runs": 0, - "fails": 0, - "avgMs": 0 - } - }, - "heavy": false - }, - "schemaValidatorTest.ts::validateSchema - type errors > formats multi-type as pipe-separated list": { - "platformRuns": { - "win32": { - "runs": 0, - "fails": 0, - "avgMs": 0 - }, - "darwin": { - "runs": 3, - "fails": 0, - "avgMs": 0.11379199999995156 - }, - "linux": { - "runs": 0, - "fails": 0, - "avgMs": 0 - } - }, - "heavy": false - }, - "schemaValidatorTest.ts::validateSchema - enum errors > reports invalid enum value": { - "platformRuns": { - "win32": { - "runs": 0, - "fails": 0, - "avgMs": 0 - }, - "darwin": { - "runs": 3, - "fails": 0, - "avgMs": 0.5285143333333622 - }, - "linux": { - "runs": 0, - "fails": 0, - "avgMs": 0 - } - }, - "heavy": false - }, - "schemaValidatorTest.ts::validateSchema - enum errors > includes valid values in error": { - "platformRuns": { - "win32": { - "runs": 0, - "fails": 0, - "avgMs": 0 - }, - "darwin": { - "runs": 3, - "fails": 0, - "avgMs": 0.09105533333337235 - }, - "linux": { - "runs": 0, - "fails": 0, - "avgMs": 0 - } - }, - "heavy": false - }, - "schemaValidatorTest.ts::validateSchema - enum errors > reports single enum value correctly": { - "platformRuns": { - "win32": { - "runs": 0, - "fails": 0, - "avgMs": 0 - }, - "darwin": { - "runs": 3, - "fails": 0, - "avgMs": 0.46365299999998416 - }, - "linux": { - "runs": 0, - "fails": 0, - "avgMs": 0 - } - }, - "heavy": false - }, - "schemaValidatorTest.ts::validateSchema - typeof keyword (treated as unknown/no-op) > accepts any value when only constraint is typeof:function (unregistered keyword)": { - "platformRuns": { - "win32": { - "runs": 0, - "fails": 0, - "avgMs": 0 - }, - "darwin": { - "runs": 3, - "fails": 0, - "avgMs": 0.42584733333338437 - }, - "linux": { - "runs": 0, - "fails": 0, - "avgMs": 0 - } - }, - "heavy": false - }, - "schemaValidatorTest.ts::validateSchema - postFormatter > calls postFormatter with formatted error and raw error object": { - "platformRuns": { - "win32": { - "runs": 0, - "fails": 0, - "avgMs": 0 - }, - "darwin": { - "runs": 3, - "fails": 0, - "avgMs": 0.541360999999957 - }, - "linux": { - "runs": 0, - "fails": 0, - "avgMs": 0 - } - }, - "heavy": false - }, - "schemaValidatorTest.ts::validateSchema - postFormatter > uses instancePath on error object passed to postFormatter": { - "platformRuns": { - "win32": { - "runs": 0, - "fails": 0, - "avgMs": 0 - }, - "darwin": { - "runs": 3, - "fails": 0, - "avgMs": 0.07040266666660955 - }, - "linux": { - "runs": 0, - "fails": 0, - "avgMs": 0 - } - }, - "heavy": false - }, - "schemaValidatorTest.ts::validateSchema - postFormatter > uses custom name in header": { - "platformRuns": { - "win32": { - "runs": 0, - "fails": 0, - "avgMs": 0 - }, - "darwin": { - "runs": 3, - "fails": 0, - "avgMs": 0.15300000000002 - }, - "linux": { - "runs": 0, - "fails": 0, - "avgMs": 0 - } - }, - "heavy": false - }, - "schemaValidatorTest.ts::validateSchema - coercion > coerces string 'false' to boolean false": { - "platformRuns": { - "win32": { - "runs": 0, - "fails": 0, - "avgMs": 0 - }, - "darwin": { - "runs": 3, - "fails": 0, - "avgMs": 0.5910553333333345 - }, - "linux": { - "runs": 0, - "fails": 0, - "avgMs": 0 - } - }, - "heavy": false - }, - "schemaValidatorTest.ts::validateSchema - error header > throws Error with correct header": { - "platformRuns": { - "win32": { - "runs": 0, - "fails": 0, - "avgMs": 0 - }, - "darwin": { - "runs": 3, - "fails": 0, - "avgMs": 0.16111099999998638 - }, - "linux": { - "runs": 0, - "fails": 0, - "avgMs": 0 - } - }, - "heavy": false - }, - "schemaValidatorTest.ts::validateSchema - error header > uses default name when not provided": { - "platformRuns": { - "win32": { - "runs": 0, - "fails": 0, - "avgMs": 0 - }, - "darwin": { - "runs": 3, - "fails": 0, - "avgMs": 0.07359699999996867 - }, - "linux": { - "runs": 0, - "fails": 0, - "avgMs": 0 - } - }, - "heavy": false - }, - "schemaValidatorTest.ts::validateSchema - nested instancePath formatting > converts deep nested path to dot-notation label": { - "platformRuns": { - "win32": { - "runs": 0, - "fails": 0, - "avgMs": 0 - }, - "darwin": { - "runs": 3, - "fails": 0, - "avgMs": 1.0944166666666888 - }, - "linux": { - "runs": 0, - "fails": 0, - "avgMs": 0 - } - }, - "heavy": false - }, - "schemaValidatorTest.ts::validateSchema - anyOf grouping > surfaces single combined message when multiple type branches fail for the same field": { - "platformRuns": { - "win32": { - "runs": 0, - "fails": 0, - "avgMs": 0 - }, - "darwin": { - "runs": 3, - "fails": 0, - "avgMs": 0.9262079999999931 - }, - "linux": { - "runs": 0, - "fails": 0, - "avgMs": 0 - } - }, - "heavy": false - }, - "schemaValidatorTest.ts::validateSchema - JSON Pointer decoding > decodes ~1 to / in property names": { - "platformRuns": { - "win32": { - "runs": 0, - "fails": 0, - "avgMs": 0 - }, - "darwin": { - "runs": 3, - "fails": 0, - "avgMs": 0.62641666666669 - }, - "linux": { - "runs": 0, - "fails": 0, - "avgMs": 0 - } - }, - "heavy": false - }, - "schemaValidatorTest.ts::validateSchema - JSON Pointer decoding > decodes ~0 to ~ in property names": { - "platformRuns": { - "win32": { - "runs": 0, - "fails": 0, - "avgMs": 0 - }, - "darwin": { - "runs": 3, - "fails": 0, - "avgMs": 0.5529583333333221 - }, - "linux": { - "runs": 0, - "fails": 0, - "avgMs": 0 - } - }, - "heavy": false - }, - "node-module-collector/moduleManagerTest.ts::ModuleManager.locatePackageVersion > basic resolution > returns null when parentDir is undefined": { - "platformRuns": { - "win32": { - "runs": 0, - "fails": 0, - "avgMs": 0 - }, - "darwin": { - "runs": 3, - "fails": 0, - "avgMs": 0.8817776666666456 - }, - "linux": { - "runs": 0, - "fails": 0, - "avgMs": 0 - } - }, - "heavy": false - }, - "node-module-collector/moduleManagerTest.ts::ModuleManager.locatePackageVersion > basic resolution > returns null when pkgName is undefined": { - "platformRuns": { - "win32": { - "runs": 0, - "fails": 0, - "avgMs": 0 - }, - "darwin": { - "runs": 3, - "fails": 0, - "avgMs": 0.15084733333325553 - }, - "linux": { - "runs": 0, - "fails": 0, - "avgMs": 0 - } - }, - "heavy": false - }, - "node-module-collector/moduleManagerTest.ts::ModuleManager.locatePackageVersion > basic resolution > finds package in direct parent node_modules when version satisfies range": { - "platformRuns": { - "win32": { - "runs": 0, - "fails": 0, - "avgMs": 0 - }, - "darwin": { - "runs": 3, - "fails": 0, - "avgMs": 3.7751246666666702 - }, - "linux": { - "runs": 0, - "fails": 0, - "avgMs": 0 - } - }, - "heavy": false - }, - "node-module-collector/moduleManagerTest.ts::ModuleManager.locatePackageVersion > basic resolution > returns null when package is absent from the tree": { - "platformRuns": { - "win32": { - "runs": 0, - "fails": 0, - "avgMs": 0 - }, - "darwin": { - "runs": 3, - "fails": 0, - "avgMs": 1.1264026666667633 - }, - "linux": { - "runs": 0, - "fails": 0, - "avgMs": 0 - } - }, - "heavy": false - }, - "node-module-collector/moduleManagerTest.ts::ModuleManager.locatePackageVersion > basic resolution > accepts any installed version when no range is given": { - "platformRuns": { - "win32": { - "runs": 0, - "fails": 0, - "avgMs": 0 - }, - "darwin": { - "runs": 3, - "fails": 0, - "avgMs": 1.2472223333333357 - }, - "linux": { - "runs": 0, - "fails": 0, - "avgMs": 0 - } - }, - "heavy": false - }, - "node-module-collector/moduleManagerTest.ts::ModuleManager.locatePackageVersion > upward (hoisted) resolution > finds hoisted package that satisfies range": { - "platformRuns": { - "win32": { - "runs": 0, - "fails": 0, - "avgMs": 0 - }, - "darwin": { - "runs": 3, - "fails": 0, - "avgMs": 2.1219166666666447 - }, - "linux": { - "runs": 0, - "fails": 0, - "avgMs": 0 - } - }, - "heavy": false - }, - "node-module-collector/moduleManagerTest.ts::ModuleManager.locatePackageVersion > override fallback (two-pass search) > accepts package whose installed version is outside the declared range": { - "platformRuns": { - "win32": { - "runs": 0, - "fails": 0, - "avgMs": 0 - }, - "darwin": { - "runs": 3, - "fails": 0, - "avgMs": 1.72808333333334 - }, - "linux": { - "runs": 0, - "fails": 0, - "avgMs": 0 - } - }, - "heavy": false - }, - "node-module-collector/moduleManagerTest.ts::ModuleManager.locatePackageVersion > override fallback (two-pass search) > records overridden dependency in logSummary": { - "platformRuns": { - "win32": { - "runs": 0, - "fails": 0, - "avgMs": 0 - }, - "darwin": { - "runs": 3, - "fails": 0, - "avgMs": 1.9383753333332454 - }, - "linux": { - "runs": 0, - "fails": 0, - "avgMs": 0 - } - }, - "heavy": false - }, - "node-module-collector/moduleManagerTest.ts::ModuleManager.locatePackageVersion > override fallback (two-pass search) > does NOT add to override log when version satisfies range normally": { - "platformRuns": { - "win32": { - "runs": 0, - "fails": 0, - "avgMs": 0 - }, - "darwin": { - "runs": 3, - "fails": 0, - "avgMs": 1.929666333333368 - }, - "linux": { - "runs": 0, - "fails": 0, - "avgMs": 0 - } - }, - "heavy": false - }, - "node-module-collector/moduleManagerTest.ts::ModuleManager.locatePackageVersion > override fallback (two-pass search) > returns null when package is genuinely absent (not just mismatched version)": { - "platformRuns": { - "win32": { - "runs": 0, - "fails": 0, - "avgMs": 0 - }, - "darwin": { - "runs": 3, - "fails": 0, - "avgMs": 1.1469306666667005 - }, - "linux": { - "runs": 0, - "fails": 0, - "avgMs": 0 - } - }, - "heavy": false - }, - "node-module-collector/moduleManagerTest.ts::ModuleManager.locatePackageVersion > override fallback (two-pass search) > does not trigger fallback when requiredRange is undefined": { - "platformRuns": { - "win32": { - "runs": 0, - "fails": 0, - "avgMs": 0 - }, - "darwin": { - "runs": 3, - "fails": 0, - "avgMs": 1.1801943333333231 - }, - "linux": { - "runs": 0, - "fails": 0, - "avgMs": 0 - } - }, - "heavy": false - }, - "node-module-collector/moduleManagerTest.ts::ModuleManager downward search > finds package nested under another package's node_modules": { - "platformRuns": { - "win32": { - "runs": 0, - "fails": 0, - "avgMs": 0 - }, - "darwin": { - "runs": 3, - "fails": 0, - "avgMs": 2.382527666666647 - }, - "linux": { - "runs": 0, - "fails": 0, - "avgMs": 0 - } - }, - "heavy": false - }, - "node-module-collector/moduleManagerTest.ts::ModuleManager downward search > skipDownwardSearch: true does NOT find a package nested under another package's node_modules": { - "platformRuns": { - "win32": { - "runs": 0, - "fails": 0, - "avgMs": 0 - }, - "darwin": { - "runs": 3, - "fails": 0, - "avgMs": 1.4600973333333513 - }, - "linux": { - "runs": 0, - "fails": 0, - "avgMs": 0 - } - }, - "heavy": false - }, - "node-module-collector/moduleManagerTest.ts::ModuleManager downward search > finds scoped package (@scope/name) nested under another package's node_modules": { - "platformRuns": { - "win32": { - "runs": 0, - "fails": 0, - "avgMs": 0 - }, - "darwin": { - "runs": 3, - "fails": 0, - "avgMs": 1.977499999999888 - }, - "linux": { - "runs": 0, - "fails": 0, - "avgMs": 0 - } - }, - "heavy": false - }, - "node-module-collector/moduleManagerTest.ts::ModuleManager downward search > upward search finds the hoisted version when the nested version does not satisfy the range": { - "platformRuns": { - "win32": { - "runs": 0, - "fails": 0, - "avgMs": 0 - }, - "darwin": { - "runs": 3, - "fails": 0, - "avgMs": 2.3834726666667243 - }, - "linux": { - "runs": 0, - "fails": 0, - "avgMs": 0 - } - }, - "heavy": false - }, - "node-module-collector/moduleManagerTest.ts::ModuleManager downward search > dot-prefixed directories inside node_modules are skipped": { - "platformRuns": { - "win32": { - "runs": 0, - "fails": 0, - "avgMs": 0 - }, - "darwin": { - "runs": 3, - "fails": 0, - "avgMs": 1.5622916666667 - }, - "linux": { - "runs": 0, - "fails": 0, - "avgMs": 0 - } - }, - "heavy": false - }, - "node-module-collector/moduleManagerTest.ts::ModuleManager.semverSatisfies (via locatePackageVersion) > caret range: matching major": { - "platformRuns": { - "win32": { - "runs": 0, - "fails": 0, - "avgMs": 0 - }, - "darwin": { - "runs": 3, - "fails": 0, - "avgMs": 1.1132219999999506 - }, - "linux": { - "runs": 0, - "fails": 0, - "avgMs": 0 - } - }, - "heavy": false - }, - "node-module-collector/moduleManagerTest.ts::ModuleManager.semverSatisfies (via locatePackageVersion) > tilde range: matching minor": { - "platformRuns": { - "win32": { - "runs": 0, - "fails": 0, - "avgMs": 0 - }, - "darwin": { - "runs": 3, - "fails": 0, - "avgMs": 1.07245833333324 - }, - "linux": { - "runs": 0, - "fails": 0, - "avgMs": 0 - } - }, - "heavy": false - }, - "node-module-collector/moduleManagerTest.ts::ModuleManager.semverSatisfies (via locatePackageVersion) > exact match": { - "platformRuns": { - "win32": { - "runs": 0, - "fails": 0, - "avgMs": 0 - }, - "darwin": { - "runs": 3, - "fails": 0, - "avgMs": 1.0748609999999796 - }, - "linux": { - "runs": 0, - "fails": 0, - "avgMs": 0 - } - }, - "heavy": false - }, - "node-module-collector/moduleManagerTest.ts::ModuleManager.semverSatisfies (via locatePackageVersion) > non-semver range (git URL) is treated as match": { - "platformRuns": { - "win32": { - "runs": 0, - "fails": 0, - "avgMs": 0 - }, - "darwin": { - "runs": 3, - "fails": 0, - "avgMs": 1.2657500000001012 - }, - "linux": { - "runs": 0, - "fails": 0, - "avgMs": 0 - } - }, - "heavy": false - }, - "node-module-collector/moduleManagerTest.ts::ModuleManager.semverSatisfies (via locatePackageVersion) > wildcard range (*) matches any version": { - "platformRuns": { - "win32": { - "runs": 0, - "fails": 0, - "avgMs": 0 - }, - "darwin": { - "runs": 3, - "fails": 0, - "avgMs": 1.0743333333333187 - }, - "linux": { - "runs": 0, - "fails": 0, - "avgMs": 0 - } - }, - "heavy": false - }, - "node-module-collector/moduleManagerTest.ts::ModuleManager.semverSatisfies (via locatePackageVersion) > major mismatch triggers override fallback and still resolves": { - "platformRuns": { - "win32": { - "runs": 0, - "fails": 0, - "avgMs": 0 - }, - "darwin": { - "runs": 3, - "fails": 0, - "avgMs": 1.4752223333333252 - }, - "linux": { - "runs": 0, - "fails": 0, - "avgMs": 0 - } - }, - "heavy": false - }, - "node-module-collector/streamCollectorTest.ts::streamCollectorCommandToFile > Windows PowerShell -EncodedCommand wrapping > .cmd file: spawn receives powershell.exe with -EncodedCommand": { - "platformRuns": { - "win32": { - "runs": 0, - "fails": 0, - "avgMs": 0 - }, - "darwin": { - "runs": 3, - "fails": 0, - "avgMs": 2.635388333333348 - }, - "linux": { - "runs": 0, - "fails": 0, - "avgMs": 0 - } - }, - "heavy": false - }, - "node-module-collector/streamCollectorTest.ts::streamCollectorCommandToFile > Windows PowerShell -EncodedCommand wrapping > path with spaces: single-quoted, no shell escaping required": { - "platformRuns": { - "win32": { - "runs": 0, - "fails": 0, - "avgMs": 0 - }, - "darwin": { - "runs": 3, - "fails": 0, - "avgMs": 0.7674166666666906 - }, - "linux": { - "runs": 0, - "fails": 0, - "avgMs": 0 - } - }, - "heavy": false - }, - "node-module-collector/streamCollectorTest.ts::streamCollectorCommandToFile > Windows PowerShell -EncodedCommand wrapping > extensionless command (e.g. Volta shim): wrapped via PowerShell call operator": { - "platformRuns": { - "win32": { - "runs": 0, - "fails": 0, - "avgMs": 0 - }, - "darwin": { - "runs": 3, - "fails": 0, - "avgMs": 0.4352500000000153 - }, - "linux": { - "runs": 0, - "fails": 0, - "avgMs": 0 - } - }, - "heavy": false - }, - "node-module-collector/streamCollectorTest.ts::streamCollectorCommandToFile > Windows PowerShell -EncodedCommand wrapping > original args are forwarded and individually single-quoted": { - "platformRuns": { - "win32": { - "runs": 0, - "fails": 0, - "avgMs": 0 - }, - "darwin": { - "runs": 3, - "fails": 0, - "avgMs": 0.4091666666666545 - }, - "linux": { - "runs": 0, - "fails": 0, - "avgMs": 0 - } - }, - "heavy": false - }, - "node-module-collector/streamCollectorTest.ts::streamCollectorCommandToFile > Windows PowerShell -EncodedCommand wrapping > embedded single quote in an argument is doubled (no injection)": { - "platformRuns": { - "win32": { - "runs": 0, - "fails": 0, - "avgMs": 0 - }, - "darwin": { - "runs": 3, - "fails": 0, - "avgMs": 0.3421946666666524 - }, - "linux": { - "runs": 0, - "fails": 0, - "avgMs": 0 - } - }, - "heavy": false - }, - "node-module-collector/streamCollectorTest.ts::streamCollectorCommandToFile > Windows PowerShell -EncodedCommand wrapping > pins UTF-8 output encoding without a BOM": { - "platformRuns": { - "win32": { - "runs": 0, - "fails": 0, - "avgMs": 0 - }, - "darwin": { - "runs": 3, - "fails": 0, - "avgMs": 0.3966946666667089 - }, - "linux": { - "runs": 0, - "fails": 0, - "avgMs": 0 - } - }, - "heavy": false - }, - "node-module-collector/streamCollectorTest.ts::streamCollectorCommandToFile > Windows PowerShell -EncodedCommand wrapping > -EncodedCommand payload is valid base64 of UTF-16LE": { - "platformRuns": { - "win32": { - "runs": 0, - "fails": 0, - "avgMs": 0 - }, - "darwin": { - "runs": 3, - "fails": 0, - "avgMs": 0.3682223333333354 - }, - "linux": { - "runs": 0, - "fails": 0, - "avgMs": 0 - } - }, - "heavy": false - }, - "node-module-collector/streamCollectorTest.ts::streamCollectorCommandToFile > non-Windows: no PowerShell wrapping > darwin: spawn receives the original command and args": { - "platformRuns": { - "win32": { - "runs": 0, - "fails": 0, - "avgMs": 0 - }, - "darwin": { - "runs": 3, - "fails": 0, - "avgMs": 0.43406966666670616 - }, - "linux": { - "runs": 0, - "fails": 0, - "avgMs": 0 - } - }, - "heavy": false - }, - "node-module-collector/streamCollectorTest.ts::streamCollectorCommandToFile > stderr and exit code behavior > npm list exit code 1: stderr is NOT surfaced as a collector warning": { - "platformRuns": { - "win32": { - "runs": 0, - "fails": 0, - "avgMs": 0 - }, - "darwin": { - "runs": 3, - "fails": 0, - "avgMs": 1.0552083333333258 - }, - "linux": { - "runs": 0, - "fails": 0, - "avgMs": 0 - } - }, - "heavy": false - }, - "node-module-collector/streamCollectorTest.ts::streamCollectorCommandToFile > stderr and exit code behavior > npm list exit code 0 with stderr: stderr IS surfaced as a collector warning": { - "platformRuns": { - "win32": { - "runs": 0, - "fails": 0, - "avgMs": 0 - }, - "darwin": { - "runs": 3, - "fails": 0, - "avgMs": 0.40561166666666776 - }, - "linux": { - "runs": 0, - "fails": 0, - "avgMs": 0 - } - }, - "heavy": false - }, - "node-module-collector/streamCollectorTest.ts::streamCollectorCommandToFile > stderr and exit code behavior > non-npm command exit code 1: rejects with stderr in error message": { - "platformRuns": { - "win32": { - "runs": 0, - "fails": 0, - "avgMs": 0 - }, - "darwin": { - "runs": 3, - "fails": 0, - "avgMs": 0.7739863333333498 - }, - "linux": { - "runs": 0, - "fails": 0, - "avgMs": 0 - } - }, - "heavy": false - }, - "node-module-collector/streamCollectorTest.ts::streamCollectorCommandToFile > stderr and exit code behavior > npm command (not list) exit code 1: rejects": { - "platformRuns": { - "win32": { - "runs": 0, - "fails": 0, - "avgMs": 0 - }, - "darwin": { - "runs": 3, - "fails": 0, - "avgMs": 0.3317916666666747 - }, - "linux": { - "runs": 0, - "fails": 0, - "avgMs": 0 - } - }, - "heavy": false - }, - "node-module-collector/streamCollectorTest.ts::streamCollectorCommandToFile > stderr and exit code behavior > npm list with full path exit code 1: stderr suppressed (shouldIgnore applies to basename)": { - "platformRuns": { - "win32": { - "runs": 0, - "fails": 0, - "avgMs": 0 - }, - "darwin": { - "runs": 3, - "fails": 0, - "avgMs": 0.3151110000000017 - }, - "linux": { - "runs": 0, - "fails": 0, - "avgMs": 0 - } - }, - "heavy": false - }, - "node-module-collector/streamCollectorTest.ts::streamCollectorCommandToFile > stderr and exit code behavior > win32 npm.cmd wrapped via PowerShell: exit code 1 still triggers shouldIgnore": { - "platformRuns": { - "win32": { - "runs": 0, - "fails": 0, - "avgMs": 0 - }, - "darwin": { - "runs": 3, - "fails": 0, - "avgMs": 0.31813900000001166 - }, - "linux": { - "runs": 0, - "fails": 0, - "avgMs": 0 - } - }, - "heavy": false - }, - "windows/nsisScriptGeneratorTest.ts::NsisScriptGenerator.file > preserves $INSTDIR variable in output name without escaping": { - "platformRuns": { - "win32": { - "runs": 0, - "fails": 0, - "avgMs": 0 - }, - "darwin": { - "runs": 3, - "fails": 0, - "avgMs": 0.8225140000000124 - }, - "linux": { - "runs": 0, - "fails": 0, - "avgMs": 0 - } - }, - "heavy": false - }, - "windows/nsisScriptGeneratorTest.ts::NsisScriptGenerator.file > omits /oname when outputName is null": { - "platformRuns": { - "win32": { - "runs": 0, - "fails": 0, - "avgMs": 0 - }, - "darwin": { - "runs": 3, - "fails": 0, - "avgMs": 0.24387500000000273 - }, - "linux": { - "runs": 0, - "fails": 0, - "avgMs": 0 - } - }, - "heavy": false - }, - "windows/nsisScriptGeneratorTest.ts::nsisEscapeString > leaves plain strings unchanged": { - "platformRuns": { - "win32": { - "runs": 0, - "fails": 0, - "avgMs": 0 - }, - "darwin": { - "runs": 3, - "fails": 0, - "avgMs": 0.2171663333333337 - }, - "linux": { - "runs": 0, - "fails": 0, - "avgMs": 0 - } - }, - "heavy": false - }, - "windows/nsisScriptGeneratorTest.ts::nsisEscapeString > replaces LF newline with space": { - "platformRuns": { - "win32": { - "runs": 0, - "fails": 0, - "avgMs": 0 - }, - "darwin": { - "runs": 3, - "fails": 0, - "avgMs": 0.19034700000001217 - }, - "linux": { - "runs": 0, - "fails": 0, - "avgMs": 0 - } - }, - "heavy": false - }, - "windows/nsisScriptGeneratorTest.ts::nsisEscapeString > replaces CRLF newline with space": { - "platformRuns": { - "win32": { - "runs": 0, - "fails": 0, - "avgMs": 0 - }, - "darwin": { - "runs": 3, - "fails": 0, - "avgMs": 0.08631933333333563 - }, - "linux": { - "runs": 0, - "fails": 0, - "avgMs": 0 - } - }, - "heavy": false - }, - "windows/nsisScriptGeneratorTest.ts::nsisEscapeString > replaces standalone CR with space": { - "platformRuns": { - "win32": { - "runs": 0, - "fails": 0, - "avgMs": 0 - }, - "darwin": { - "runs": 3, - "fails": 0, - "avgMs": 0.084541999999999 - }, - "linux": { - "runs": 0, - "fails": 0, - "avgMs": 0 - } - }, - "heavy": false - }, - "windows/nsisScriptGeneratorTest.ts::nsisEscapeString > escapes dollar sign to prevent variable expansion": { - "platformRuns": { - "win32": { - "runs": 0, - "fails": 0, - "avgMs": 0 - }, - "darwin": { - "runs": 3, - "fails": 0, - "avgMs": 0.07024999999998727 - }, - "linux": { - "runs": 0, - "fails": 0, - "avgMs": 0 - } - }, - "heavy": false - }, - "windows/nsisScriptGeneratorTest.ts::nsisEscapeString > escapes double quote": { - "platformRuns": { - "win32": { - "runs": 0, - "fails": 0, - "avgMs": 0 - }, - "darwin": { - "runs": 3, - "fails": 0, - "avgMs": 0.1031113333333451 - }, - "linux": { - "runs": 0, - "fails": 0, - "avgMs": 0 - } - }, - "heavy": false - }, - "windows/nsisScriptGeneratorTest.ts::nsisEscapeString > handles combined special characters": { - "platformRuns": { - "win32": { - "runs": 0, - "fails": 0, - "avgMs": 0 - }, - "darwin": { - "runs": 3, - "fails": 0, - "avgMs": 0.2060829999999972 - }, - "linux": { - "runs": 0, - "fails": 0, - "avgMs": 0 - } - }, - "heavy": false - }, - "windows/nsisScriptGeneratorTest.ts::nsisEscapeString > preserves ${...} variable references unchanged": { - "platformRuns": { - "win32": { - "runs": 0, - "fails": 0, - "avgMs": 0 - }, - "darwin": { - "runs": 3, - "fails": 0, - "avgMs": 0.11304166666665576 - }, - "linux": { - "runs": 0, - "fails": 0, - "avgMs": 0 - } - }, - "heavy": false - }, - "windows/nsisScriptGeneratorTest.ts::nsisEscapeString > escapes bare $ but leaves ${...} references intact": { - "platformRuns": { - "win32": { - "runs": 0, - "fails": 0, - "avgMs": 0 - }, - "darwin": { - "runs": 3, - "fails": 0, - "avgMs": 0.10708333333334015 - }, - "linux": { - "runs": 0, - "fails": 0, - "avgMs": 0 - } - }, - "heavy": false - }, - "windows/nsisScriptGeneratorTest.ts::nsisEscapeString > escapes multiple consecutive dollar signs": { - "platformRuns": { - "win32": { - "runs": 0, - "fails": 0, - "avgMs": 0 - }, - "darwin": { - "runs": 3, - "fails": 0, - "avgMs": 0.05631933333334397 - }, - "linux": { - "runs": 0, - "fails": 0, - "avgMs": 0 - } - }, - "heavy": false - }, - "windows/nsisScriptGeneratorTest.ts::nsisEscapeString > empty string is returned unchanged": { - "platformRuns": { - "win32": { - "runs": 0, - "fails": 0, - "avgMs": 0 - }, - "darwin": { - "runs": 3, - "fails": 0, - "avgMs": 0.05452733333330192 - }, - "linux": { - "runs": 0, - "fails": 0, - "avgMs": 0 - } - }, - "heavy": false - }, - "windows/nsisScriptGeneratorTest.ts::nsisEscapeString > string with only newlines becomes spaces": { - "platformRuns": { - "win32": { - "runs": 0, - "fails": 0, - "avgMs": 0 - }, - "darwin": { - "runs": 3, - "fails": 0, - "avgMs": 0.05369433333333973 - }, - "linux": { - "runs": 0, - "fails": 0, - "avgMs": 0 - } - }, - "heavy": false - }, - "windows/nsisScriptGeneratorTest.ts::nsisEscapeString > preserves backslash characters": { - "platformRuns": { - "win32": { - "runs": 0, - "fails": 0, - "avgMs": 0 - }, - "darwin": { - "runs": 3, - "fails": 0, - "avgMs": 0.04637466666664144 - }, - "linux": { - "runs": 0, - "fails": 0, - "avgMs": 0 - } - }, - "heavy": false - }, - "windows/nsisScriptGeneratorTest.ts::nsisEscapeString > escapes multiple double quotes": { - "platformRuns": { - "win32": { - "runs": 0, - "fails": 0, - "avgMs": 0 - }, - "darwin": { - "runs": 3, - "fails": 0, - "avgMs": 0.056416666666677884 - }, - "linux": { - "runs": 0, - "fails": 0, - "avgMs": 0 - } - }, - "heavy": false - }, - "linux/linuxPackagerTest.ts::LinuxPackager > AppImage toolset 0.0.0 > AppImage": { - "platformRuns": { - "win32": { - "runs": 0, - "fails": 0, - "avgMs": 0 - }, - "darwin": { - "runs": 1, - "fails": 1, - "avgMs": 1568.2359999999999 - }, - "linux": { - "runs": 0, - "fails": 0, - "avgMs": 0 - } - }, - "heavy": false - }, - "linux/linuxPackagerTest.ts::LinuxPackager > AppImage toolset 0.0.0 > AppImage arm, max compression": { - "platformRuns": { - "win32": { - "runs": 0, - "fails": 0, - "avgMs": 0 - }, - "darwin": { - "runs": 1, - "fails": 1, - "avgMs": 1332.3769589999997 - }, - "linux": { - "runs": 0, - "fails": 0, - "avgMs": 0 - } - }, - "heavy": false - }, - "linux/linuxPackagerTest.ts::LinuxPackager > AppImage toolset 0.0.0 > AppImage - deprecated systemIntegration": { - "platformRuns": { - "win32": { - "runs": 0, - "fails": 0, - "avgMs": 0 - }, - "darwin": { - "runs": 1, - "fails": 1, - "avgMs": 1388.533375 - }, - "linux": { - "runs": 0, - "fails": 0, - "avgMs": 0 - } - }, - "heavy": false - }, - "linux/linuxPackagerTest.ts::LinuxPackager > AppImage toolset 0.0.0 > text license and file associations": { - "platformRuns": { - "win32": { - "runs": 0, - "fails": 0, - "avgMs": 0 - }, - "darwin": { - "runs": 1, - "fails": 1, - "avgMs": 1323.2028330000003 - }, - "linux": { - "runs": 0, - "fails": 0, - "avgMs": 0 - } - }, - "heavy": false - }, - "linux/linuxPackagerTest.ts::LinuxPackager > AppImage toolset 0.0.0 > html license": { - "platformRuns": { - "win32": { - "runs": 0, - "fails": 0, - "avgMs": 0 - }, - "darwin": { - "runs": 1, - "fails": 1, - "avgMs": 1426.7097910000002 - }, - "linux": { - "runs": 0, - "fails": 0, - "avgMs": 0 - } - }, - "heavy": false - }, - "linux/linuxPackagerTest.ts::LinuxPackager > AppImage toolset 0.0.0 > AppImage - default icon, custom executable and custom desktop": { - "platformRuns": { - "win32": { - "runs": 0, - "fails": 0, - "avgMs": 0 - }, - "darwin": { - "runs": 1, - "fails": 1, - "avgMs": 1302.4044589999994 - }, - "linux": { - "runs": 0, - "fails": 0, - "avgMs": 0 - } - }, - "heavy": false - }, - "linux/linuxPackagerTest.ts::LinuxPackager > AppImage toolset 0.0.0 > icons from ICNS (mac)": { - "platformRuns": { - "win32": { - "runs": 0, - "fails": 0, - "avgMs": 0 - }, - "darwin": { - "runs": 1, - "fails": 1, - "avgMs": 1274.947082999999 - }, - "linux": { - "runs": 0, - "fails": 0, - "avgMs": 0 - } - }, - "heavy": false - }, - "linux/linuxPackagerTest.ts::LinuxPackager > AppImage toolset 0.0.0 > icons from ICNS if nothing specified": { - "platformRuns": { - "win32": { - "runs": 0, - "fails": 0, - "avgMs": 0 - }, - "darwin": { - "runs": 1, - "fails": 1, - "avgMs": 1252.8537500000002 - }, - "linux": { - "runs": 0, - "fails": 0, - "avgMs": 0 - } - }, - "heavy": false - }, - "linux/linuxPackagerTest.ts::LinuxPackager > AppImage toolset 0.0.0 > icons from dir and one icon with suffix": { - "platformRuns": { - "win32": { - "runs": 0, - "fails": 0, - "avgMs": 0 - }, - "darwin": { - "runs": 1, - "fails": 1, - "avgMs": 1258.6299589999999 - }, - "linux": { - "runs": 0, - "fails": 0, - "avgMs": 0 - } - }, - "heavy": false - }, - "linux/linuxPackagerTest.ts::LinuxPackager > AppImage toolset 0.0.0 > icons dir with images without size in the filename": { - "platformRuns": { - "win32": { - "runs": 0, - "fails": 0, - "avgMs": 0 - }, - "darwin": { - "runs": 1, - "fails": 1, - "avgMs": 1205.507208000001 - }, - "linux": { - "runs": 0, - "fails": 0, - "avgMs": 0 - } - }, - "heavy": false - }, - "linux/linuxPackagerTest.ts::LinuxPackager > AppImage toolset 0.0.0 > icons from ICNS": { - "platformRuns": { - "win32": { - "runs": 0, - "fails": 0, - "avgMs": 0 - }, - "darwin": { - "runs": 1, - "fails": 1, - "avgMs": 1227.5742910000008 - }, - "linux": { - "runs": 0, - "fails": 0, - "avgMs": 0 - } - }, - "heavy": false - }, - "linux/linuxPackagerTest.ts::LinuxPackager > AppImage toolset 0.0.0 > no-author-email": { - "platformRuns": { - "win32": { - "runs": 0, - "fails": 0, - "avgMs": 0 - }, - "darwin": { - "runs": 1, - "fails": 1, - "avgMs": 1262.8662079999995 - }, - "linux": { - "runs": 0, - "fails": 0, - "avgMs": 0 - } - }, - "heavy": false - }, - "linux/linuxPackagerTest.ts::LinuxPackager > AppImage toolset 0.0.0 > forbid desktop.Exec": { - "platformRuns": { - "win32": { - "runs": 0, - "fails": 0, - "avgMs": 0 - }, - "darwin": { - "runs": 1, - "fails": 1, - "avgMs": 1217.9662499999977 - }, - "linux": { - "runs": 0, - "fails": 0, - "avgMs": 0 - } - }, - "heavy": false - }, - "linux/linuxPackagerTest.ts::LinuxPackager > AppImage toolset 1.0.2 > AppImage": { - "platformRuns": { - "win32": { - "runs": 0, - "fails": 0, - "avgMs": 0 - }, - "darwin": { - "runs": 1, - "fails": 1, - "avgMs": 1216.367250000003 - }, - "linux": { - "runs": 0, - "fails": 0, - "avgMs": 0 - } - }, - "heavy": false - }, - "linux/linuxPackagerTest.ts::LinuxPackager > AppImage toolset 1.0.2 > AppImage arm, max compression": { - "platformRuns": { - "win32": { - "runs": 0, - "fails": 0, - "avgMs": 0 - }, - "darwin": { - "runs": 1, - "fails": 1, - "avgMs": 1222.2477499999986 - }, - "linux": { - "runs": 0, - "fails": 0, - "avgMs": 0 - } - }, - "heavy": false - }, - "linux/linuxPackagerTest.ts::LinuxPackager > AppImage toolset 1.0.2 > AppImage - deprecated systemIntegration": { - "platformRuns": { - "win32": { - "runs": 0, - "fails": 0, - "avgMs": 0 - }, - "darwin": { - "runs": 1, - "fails": 1, - "avgMs": 1202.4069999999992 - }, - "linux": { - "runs": 0, - "fails": 0, - "avgMs": 0 - } - }, - "heavy": false - }, - "linux/linuxPackagerTest.ts::LinuxPackager > AppImage toolset 1.0.2 > text license and file associations": { - "platformRuns": { - "win32": { - "runs": 0, - "fails": 0, - "avgMs": 0 - }, - "darwin": { - "runs": 1, - "fails": 1, - "avgMs": 1214.8789169999982 - }, - "linux": { - "runs": 0, - "fails": 0, - "avgMs": 0 - } - }, - "heavy": false - }, - "linux/linuxPackagerTest.ts::LinuxPackager > AppImage toolset 1.0.2 > html license": { - "platformRuns": { - "win32": { - "runs": 0, - "fails": 0, - "avgMs": 0 - }, - "darwin": { - "runs": 1, - "fails": 1, - "avgMs": 1186.1180829999976 - }, - "linux": { - "runs": 0, - "fails": 0, - "avgMs": 0 - } - }, - "heavy": false - }, - "linux/linuxPackagerTest.ts::LinuxPackager > AppImage toolset 1.0.2 > AppImage - default icon, custom executable and custom desktop": { - "platformRuns": { - "win32": { - "runs": 0, - "fails": 0, - "avgMs": 0 - }, - "darwin": { - "runs": 1, - "fails": 1, - "avgMs": 1222.620665999999 - }, - "linux": { - "runs": 0, - "fails": 0, - "avgMs": 0 - } - }, - "heavy": false - }, - "linux/linuxPackagerTest.ts::LinuxPackager > AppImage toolset 1.0.2 > icons from ICNS (mac)": { - "platformRuns": { - "win32": { - "runs": 0, - "fails": 0, - "avgMs": 0 - }, - "darwin": { - "runs": 1, - "fails": 1, - "avgMs": 1170.7240840000013 - }, - "linux": { - "runs": 0, - "fails": 0, - "avgMs": 0 - } - }, - "heavy": false - }, - "linux/linuxPackagerTest.ts::LinuxPackager > AppImage toolset 1.0.2 > icons from ICNS if nothing specified": { - "platformRuns": { - "win32": { - "runs": 0, - "fails": 0, - "avgMs": 0 - }, - "darwin": { - "runs": 1, - "fails": 1, - "avgMs": 1355.485249999998 - }, - "linux": { - "runs": 0, - "fails": 0, - "avgMs": 0 - } - }, - "heavy": false - }, - "linux/linuxPackagerTest.ts::LinuxPackager > AppImage toolset 1.0.2 > icons from dir and one icon with suffix": { - "platformRuns": { - "win32": { - "runs": 0, - "fails": 0, - "avgMs": 0 - }, - "darwin": { - "runs": 1, - "fails": 1, - "avgMs": 1345.510916000003 - }, - "linux": { - "runs": 0, - "fails": 0, - "avgMs": 0 - } - }, - "heavy": false - }, - "linux/linuxPackagerTest.ts::LinuxPackager > AppImage toolset 1.0.2 > icons dir with images without size in the filename": { - "platformRuns": { - "win32": { - "runs": 0, - "fails": 0, - "avgMs": 0 - }, - "darwin": { - "runs": 1, - "fails": 1, - "avgMs": 1643.7597910000004 - }, - "linux": { - "runs": 0, - "fails": 0, - "avgMs": 0 - } - }, - "heavy": false - }, - "linux/linuxPackagerTest.ts::LinuxPackager > AppImage toolset 1.0.2 > icons from ICNS": { - "platformRuns": { - "win32": { - "runs": 0, - "fails": 0, - "avgMs": 0 - }, - "darwin": { - "runs": 1, - "fails": 1, - "avgMs": 1274.6157080000012 - }, - "linux": { - "runs": 0, - "fails": 0, - "avgMs": 0 - } - }, - "heavy": false - }, - "linux/linuxPackagerTest.ts::LinuxPackager > AppImage toolset 1.0.2 > no-author-email": { - "platformRuns": { - "win32": { - "runs": 0, - "fails": 0, - "avgMs": 0 - }, - "darwin": { - "runs": 1, - "fails": 1, - "avgMs": 1262.1312500000058 - }, - "linux": { - "runs": 0, - "fails": 0, - "avgMs": 0 - } - }, - "heavy": false - }, - "linux/linuxPackagerTest.ts::LinuxPackager > AppImage toolset 1.0.2 > forbid desktop.Exec": { - "platformRuns": { - "win32": { - "runs": 0, - "fails": 0, - "avgMs": 0 - }, - "darwin": { - "runs": 1, - "fails": 1, - "avgMs": 1220.9013330000016 - }, - "linux": { - "runs": 0, - "fails": 0, - "avgMs": 0 - } - }, - "heavy": false - }, - "linux/linuxPackagerTest.ts::LinuxPackager > AppImage toolset 1.0.3 > AppImage": { - "platformRuns": { - "win32": { - "runs": 0, - "fails": 0, - "avgMs": 0 - }, - "darwin": { - "runs": 1, - "fails": 1, - "avgMs": 1232.2774579999968 - }, - "linux": { - "runs": 0, - "fails": 0, - "avgMs": 0 - } - }, - "heavy": false - }, - "linux/linuxPackagerTest.ts::LinuxPackager > AppImage toolset 1.0.3 > AppImage arm, max compression": { - "platformRuns": { - "win32": { - "runs": 0, - "fails": 0, - "avgMs": 0 - }, - "darwin": { - "runs": 1, - "fails": 1, - "avgMs": 1167.0066669999942 - }, - "linux": { - "runs": 0, - "fails": 0, - "avgMs": 0 - } - }, - "heavy": false - }, - "linux/linuxPackagerTest.ts::LinuxPackager > AppImage toolset 1.0.3 > AppImage - deprecated systemIntegration": { - "platformRuns": { - "win32": { - "runs": 0, - "fails": 0, - "avgMs": 0 - }, - "darwin": { - "runs": 1, - "fails": 1, - "avgMs": 1251.1619589999973 - }, - "linux": { - "runs": 0, - "fails": 0, - "avgMs": 0 - } - }, - "heavy": false - }, - "linux/linuxPackagerTest.ts::LinuxPackager > AppImage toolset 1.0.3 > text license and file associations": { - "platformRuns": { - "win32": { - "runs": 0, - "fails": 0, - "avgMs": 0 - }, - "darwin": { - "runs": 1, - "fails": 1, - "avgMs": 1362.7003750000003 - }, - "linux": { - "runs": 0, - "fails": 0, - "avgMs": 0 - } - }, - "heavy": false - }, - "linux/linuxPackagerTest.ts::LinuxPackager > AppImage toolset 1.0.3 > html license": { - "platformRuns": { - "win32": { - "runs": 0, - "fails": 0, - "avgMs": 0 - }, - "darwin": { - "runs": 1, - "fails": 1, - "avgMs": 1274.5983330000017 - }, - "linux": { - "runs": 0, - "fails": 0, - "avgMs": 0 - } - }, - "heavy": false - }, - "linux/linuxPackagerTest.ts::LinuxPackager > AppImage toolset 1.0.3 > AppImage - default icon, custom executable and custom desktop": { - "platformRuns": { - "win32": { - "runs": 0, - "fails": 0, - "avgMs": 0 - }, - "darwin": { - "runs": 1, - "fails": 1, - "avgMs": 1280.7859160000007 - }, - "linux": { - "runs": 0, - "fails": 0, - "avgMs": 0 - } - }, - "heavy": false - }, - "linux/linuxPackagerTest.ts::LinuxPackager > AppImage toolset 1.0.3 > icons from ICNS (mac)": { - "platformRuns": { - "win32": { - "runs": 0, - "fails": 0, - "avgMs": 0 - }, - "darwin": { - "runs": 1, - "fails": 1, - "avgMs": 1253.5321669999976 - }, - "linux": { - "runs": 0, - "fails": 0, - "avgMs": 0 - } - }, - "heavy": false - }, - "linux/linuxPackagerTest.ts::LinuxPackager > AppImage toolset 1.0.3 > icons from ICNS if nothing specified": { - "platformRuns": { - "win32": { - "runs": 0, - "fails": 0, - "avgMs": 0 - }, - "darwin": { - "runs": 1, - "fails": 1, - "avgMs": 1329.489625000002 - }, - "linux": { - "runs": 0, - "fails": 0, - "avgMs": 0 - } - }, - "heavy": false - }, - "linux/linuxPackagerTest.ts::LinuxPackager > AppImage toolset 1.0.3 > icons from dir and one icon with suffix": { - "platformRuns": { - "win32": { - "runs": 0, - "fails": 0, - "avgMs": 0 - }, - "darwin": { - "runs": 1, - "fails": 1, - "avgMs": 1313.955249999999 - }, - "linux": { - "runs": 0, - "fails": 0, - "avgMs": 0 - } - }, - "heavy": false - }, - "linux/linuxPackagerTest.ts::LinuxPackager > AppImage toolset 1.0.3 > icons dir with images without size in the filename": { - "platformRuns": { - "win32": { - "runs": 0, - "fails": 0, - "avgMs": 0 - }, - "darwin": { - "runs": 1, - "fails": 1, - "avgMs": 1341.7976249999992 - }, - "linux": { - "runs": 0, - "fails": 0, - "avgMs": 0 - } - }, - "heavy": false - }, - "linux/linuxPackagerTest.ts::LinuxPackager > AppImage toolset 1.0.3 > icons from ICNS": { - "platformRuns": { - "win32": { - "runs": 0, - "fails": 0, - "avgMs": 0 - }, - "darwin": { - "runs": 1, - "fails": 1, - "avgMs": 1315.2947920000006 - }, - "linux": { - "runs": 0, - "fails": 0, - "avgMs": 0 - } - }, - "heavy": false - }, - "linux/linuxPackagerTest.ts::LinuxPackager > AppImage toolset 1.0.3 > no-author-email": { - "platformRuns": { - "win32": { - "runs": 0, - "fails": 0, - "avgMs": 0 - }, - "darwin": { - "runs": 1, - "fails": 1, - "avgMs": 1302.7428749999963 - }, - "linux": { - "runs": 0, - "fails": 0, - "avgMs": 0 - } - }, - "heavy": false - }, - "linux/linuxPackagerTest.ts::LinuxPackager > AppImage toolset 1.0.3 > forbid desktop.Exec": { - "platformRuns": { - "win32": { - "runs": 0, - "fails": 0, - "avgMs": 0 - }, - "darwin": { - "runs": 1, - "fails": 1, - "avgMs": 1315.7694580000025 - }, - "linux": { - "runs": 0, - "fails": 0, - "avgMs": 0 - } - }, - "heavy": false - } - }, - "files": { - "schemaValidatorTest.ts": { - "unstable": false, - "hasHeavyTests": false, - "platformRuns": { - "win32": { - "runs": 0, - "fails": 0, - "avgMs": 0 - }, - "darwin": { - "runs": 3, - "fails": 0, - "avgMs": 25.5553189999999 - }, - "linux": { - "runs": 0, - "fails": 0, - "avgMs": 0 - } - } - }, - "node-module-collector/moduleManagerTest.ts": { - "unstable": false, - "hasHeavyTests": false, - "platformRuns": { - "win32": { - "runs": 0, - "fails": 0, - "avgMs": 0 - }, - "darwin": { - "runs": 3, - "fails": 0, - "avgMs": 34.06827766666652 - }, - "linux": { - "runs": 0, - "fails": 0, - "avgMs": 0 - } - } - }, - "node-module-collector/streamCollectorTest.ts": { - "unstable": false, - "hasHeavyTests": false, - "platformRuns": { - "win32": { - "runs": 0, - "fails": 0, - "avgMs": 0 - }, - "darwin": { - "runs": 3, - "fails": 0, - "avgMs": 8.988251000000142 - }, - "linux": { - "runs": 0, - "fails": 0, - "avgMs": 0 - } - } - }, - "windows/nsisScriptGeneratorTest.ts": { - "unstable": false, - "hasHeavyTests": false, - "platformRuns": { - "win32": { - "runs": 0, - "fails": 0, - "avgMs": 0 - }, - "darwin": { - "runs": 3, - "fails": 0, - "avgMs": 2.511665333333326 - }, - "linux": { - "runs": 0, - "fails": 0, - "avgMs": 0 - } - } - }, - "linux/linuxPackagerTest.ts": { - "unstable": true, - "hasHeavyTests": false, - "platformRuns": { - "win32": { - "runs": 0, - "fails": 0, - "avgMs": 0 - }, - "darwin": { - "runs": 1, - "fails": 39, - "avgMs": 50320.68866399999 - }, - "linux": { - "runs": 0, - "fails": 0, - "avgMs": 0 - } - } - } - } -} \ No newline at end of file +{"tests":{},"files":{}} diff --git a/test/vitest-scripts/run-vitest.ts b/test/vitest-scripts/run-vitest.ts index 7a2a9b0039c..9542a29115c 100644 --- a/test/vitest-scripts/run-vitest.ts +++ b/test/vitest-scripts/run-vitest.ts @@ -35,7 +35,9 @@ const workspaceSourceAliases = [ sourceAlias("electron-builder", "electron-builder/src/index.ts"), ] -const testPatterns = TEST_FILES_PATTERN.split(",").map(s => s.trim()).filter(Boolean) +const testPatterns = TEST_FILES_PATTERN.split(",") + .map(s => s.trim()) + .filter(Boolean) const includeGlob = `(${testPatterns.join("|")}|${testPatterns.map(t => `${t}*Test`).join("|")})` console.log("TEST_FILES pattern", includeGlob)