app-builder-lib 26.15.2 → 27.0.0-alpha.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/Framework.d.ts +40 -0
- package/dist/Framework.d.ts.map +1 -0
- package/dist/Framework.js +4 -0
- package/dist/Framework.js.map +1 -0
- package/dist/appInfo.d.ts +32 -0
- package/dist/appInfo.d.ts.map +1 -0
- package/dist/appInfo.js +145 -0
- package/dist/appInfo.js.map +1 -0
- package/dist/asar/asar.d.ts +39 -0
- package/dist/asar/asar.d.ts.map +1 -0
- package/dist/asar/asar.js +155 -0
- package/dist/asar/asar.js.map +1 -0
- package/dist/asar/asarFileChecker.d.ts +3 -0
- package/dist/asar/asarFileChecker.d.ts.map +1 -0
- package/dist/asar/asarFileChecker.js +22 -0
- package/dist/asar/asarFileChecker.js.map +1 -0
- package/dist/asar/asarUtil.d.ts +2 -0
- package/dist/asar/asarUtil.d.ts.map +1 -0
- package/dist/asar/asarUtil.js +278 -0
- package/dist/asar/asarUtil.js.map +1 -0
- package/dist/asar/integrity.d.ts +16 -0
- package/dist/asar/integrity.d.ts.map +1 -0
- package/dist/asar/integrity.js +59 -0
- package/dist/asar/integrity.js.map +1 -0
- package/dist/asar/unpackDetector.d.ts +2 -0
- package/dist/asar/unpackDetector.d.ts.map +1 -0
- package/dist/asar/unpackDetector.js +39 -0
- package/dist/asar/unpackDetector.js.map +1 -0
- package/dist/codeSign/certInfo.d.ts +55 -0
- package/dist/codeSign/certInfo.d.ts.map +1 -0
- package/dist/codeSign/certInfo.js +459 -0
- package/dist/codeSign/certInfo.js.map +1 -0
- package/dist/codeSign/codesign.d.ts +4 -0
- package/dist/codeSign/codesign.d.ts.map +1 -0
- package/dist/codeSign/codesign.js +32 -0
- package/dist/codeSign/codesign.js.map +1 -0
- package/dist/codeSign/mac/macCodeSign.d.ts +29 -0
- package/dist/codeSign/mac/macCodeSign.d.ts.map +1 -0
- package/dist/codeSign/mac/macCodeSign.js +273 -0
- package/dist/codeSign/mac/macCodeSign.js.map +1 -0
- package/dist/codeSign/signManager.d.ts +14 -0
- package/dist/codeSign/signManager.d.ts.map +1 -0
- package/dist/codeSign/signManager.js +2 -0
- package/dist/codeSign/signManager.js.map +1 -0
- package/dist/codeSign/win/windowsCodeSign.d.ts +8 -0
- package/dist/codeSign/win/windowsCodeSign.d.ts.map +1 -0
- package/dist/codeSign/win/windowsCodeSign.js +34 -0
- package/dist/codeSign/win/windowsCodeSign.js.map +1 -0
- package/dist/codeSign/win/windowsSignAzureManager.d.ts +18 -0
- package/dist/codeSign/win/windowsSignAzureManager.d.ts.map +1 -0
- package/dist/codeSign/win/windowsSignAzureManager.js +68 -0
- package/dist/codeSign/win/windowsSignAzureManager.js.map +1 -0
- package/dist/codeSign/win/windowsSignToolManager.d.ts +59 -0
- package/dist/codeSign/win/windowsSignToolManager.d.ts.map +1 -0
- package/dist/codeSign/win/windowsSignToolManager.js +364 -0
- package/dist/codeSign/win/windowsSignToolManager.js.map +1 -0
- package/dist/configuration.d.ts +1010 -0
- package/dist/configuration.d.ts.map +1 -0
- package/dist/configuration.js +2 -0
- package/dist/configuration.js.map +1 -0
- package/dist/core.d.ts +61 -0
- package/dist/core.d.ts.map +1 -0
- package/dist/core.js +61 -0
- package/dist/core.js.map +1 -0
- package/dist/electron/ElectronFramework.d.ts +17 -0
- package/dist/electron/ElectronFramework.d.ts.map +1 -0
- package/dist/electron/ElectronFramework.js +236 -0
- package/dist/electron/ElectronFramework.js.map +1 -0
- package/dist/electron/electronVersion.d.ts +7 -0
- package/dist/electron/electronVersion.d.ts.map +1 -0
- package/dist/electron/electronVersion.js +119 -0
- package/dist/electron/electronVersion.js.map +1 -0
- package/dist/electron/injectFFMPEG.d.ts +12 -0
- package/dist/electron/injectFFMPEG.d.ts.map +1 -0
- package/dist/electron/injectFFMPEG.js +53 -0
- package/dist/electron/injectFFMPEG.js.map +1 -0
- package/dist/electron/mac/electronMac.d.ts +2 -0
- package/dist/electron/mac/electronMac.d.ts.map +1 -0
- package/dist/electron/mac/electronMac.js +254 -0
- package/dist/electron/mac/electronMac.js.map +1 -0
- package/dist/electron/search-module.d.ts +24 -0
- package/dist/electron/search-module.d.ts.map +1 -0
- package/dist/electron/search-module.js +68 -0
- package/dist/electron/search-module.js.map +1 -0
- package/dist/electron/win/electronWin.d.ts +2 -0
- package/dist/electron/win/electronWin.d.ts.map +1 -0
- package/dist/electron/win/electronWin.js +36 -0
- package/dist/electron/win/electronWin.js.map +1 -0
- package/dist/errorMessages.d.ts +2 -0
- package/dist/errorMessages.d.ts.map +1 -0
- package/dist/errorMessages.js +8 -0
- package/dist/errorMessages.js.map +1 -0
- package/dist/fileMatcher.d.ts +31 -0
- package/dist/fileMatcher.d.ts.map +1 -0
- package/dist/fileMatcher.js +277 -0
- package/dist/fileMatcher.js.map +1 -0
- package/dist/fileTransformer.d.ts +2 -0
- package/dist/fileTransformer.d.ts.map +1 -0
- package/dist/fileTransformer.js +82 -0
- package/dist/fileTransformer.js.map +1 -0
- package/dist/forge-maker.d.ts +6 -0
- package/dist/forge-maker.d.ts.map +1 -0
- package/dist/forge-maker.js +20 -0
- package/dist/forge-maker.js.map +1 -0
- package/dist/index.d.ts +40 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +77 -0
- package/dist/index.js.map +1 -0
- package/dist/indexInternal.d.ts +46 -0
- package/dist/indexInternal.d.ts.map +1 -0
- package/dist/indexInternal.js +39 -0
- package/dist/indexInternal.js.map +1 -0
- package/dist/linuxPackager.d.ts +13 -0
- package/dist/linuxPackager.d.ts.map +1 -0
- package/dist/linuxPackager.js +75 -0
- package/dist/linuxPackager.js.map +1 -0
- package/dist/macPackager.d.ts +50 -0
- package/dist/macPackager.d.ts.map +1 -0
- package/dist/macPackager.js +442 -0
- package/dist/macPackager.js.map +1 -0
- package/dist/node-module-collector/bunNodeModulesCollector.d.ts +11 -0
- package/dist/node-module-collector/bunNodeModulesCollector.d.ts.map +1 -0
- package/dist/node-module-collector/bunNodeModulesCollector.js +14 -0
- package/dist/node-module-collector/bunNodeModulesCollector.js.map +1 -0
- package/dist/node-module-collector/hoist.d.ts +124 -0
- package/dist/node-module-collector/hoist.d.ts.map +1 -0
- package/dist/node-module-collector/hoist.js +880 -0
- package/dist/node-module-collector/hoist.js.map +1 -0
- package/dist/node-module-collector/index.d.ts +21 -0
- package/dist/node-module-collector/index.d.ts.map +1 -0
- package/dist/node-module-collector/index.js +124 -0
- package/dist/node-module-collector/index.js.map +1 -0
- package/dist/node-module-collector/moduleManager.d.ts +94 -0
- package/dist/node-module-collector/moduleManager.d.ts.map +1 -0
- package/dist/node-module-collector/moduleManager.js +314 -0
- package/dist/node-module-collector/moduleManager.js.map +1 -0
- package/dist/node-module-collector/nodeModulesCollector.d.ts +138 -0
- package/dist/node-module-collector/nodeModulesCollector.d.ts.map +1 -0
- package/dist/node-module-collector/nodeModulesCollector.js +421 -0
- package/dist/node-module-collector/nodeModulesCollector.js.map +1 -0
- package/dist/node-module-collector/npmNodeModulesCollector.d.ts +15 -0
- package/dist/node-module-collector/npmNodeModulesCollector.d.ts.map +1 -0
- package/dist/node-module-collector/npmNodeModulesCollector.js +75 -0
- package/dist/node-module-collector/npmNodeModulesCollector.js.map +1 -0
- package/dist/node-module-collector/packageManager.d.ts +18 -0
- package/dist/node-module-collector/packageManager.d.ts.map +1 -0
- package/dist/node-module-collector/packageManager.js +137 -0
- package/dist/node-module-collector/packageManager.js.map +1 -0
- package/dist/node-module-collector/pnpmNodeModulesCollector.d.ts +45 -0
- package/dist/node-module-collector/pnpmNodeModulesCollector.d.ts.map +1 -0
- package/dist/node-module-collector/pnpmNodeModulesCollector.js +184 -0
- package/dist/node-module-collector/pnpmNodeModulesCollector.js.map +1 -0
- package/dist/node-module-collector/traversalNodeModulesCollector.d.ts +19 -0
- package/dist/node-module-collector/traversalNodeModulesCollector.d.ts.map +1 -0
- package/dist/node-module-collector/traversalNodeModulesCollector.js +118 -0
- package/dist/node-module-collector/traversalNodeModulesCollector.js.map +1 -0
- package/dist/node-module-collector/types.d.ts +53 -0
- package/dist/node-module-collector/types.d.ts.map +1 -0
- package/dist/node-module-collector/types.js +2 -0
- package/dist/node-module-collector/yarnBerryNodeModulesCollector.d.ts +16 -0
- package/dist/node-module-collector/yarnBerryNodeModulesCollector.d.ts.map +1 -0
- package/dist/node-module-collector/yarnBerryNodeModulesCollector.js +87 -0
- package/dist/node-module-collector/yarnBerryNodeModulesCollector.js.map +1 -0
- package/dist/node-module-collector/yarnNodeModulesCollector.d.ts +11 -0
- package/dist/node-module-collector/yarnNodeModulesCollector.d.ts.map +1 -0
- package/dist/node-module-collector/yarnNodeModulesCollector.js +18 -0
- package/dist/node-module-collector/yarnNodeModulesCollector.js.map +1 -0
- package/dist/options/AppXOptions.d.ts +106 -0
- package/dist/options/AppXOptions.d.ts.map +1 -0
- package/dist/options/AppXOptions.js +2 -0
- package/dist/options/AppXOptions.js.map +1 -0
- package/dist/options/CommonWindowsInstallerConfiguration.d.ts +48 -0
- package/dist/options/CommonWindowsInstallerConfiguration.d.ts.map +1 -0
- package/dist/options/CommonWindowsInstallerConfiguration.js +47 -0
- package/dist/options/CommonWindowsInstallerConfiguration.js.map +1 -0
- package/dist/options/FileAssociation.d.ts +46 -0
- package/dist/options/FileAssociation.d.ts.map +1 -0
- package/dist/options/FileAssociation.js +2 -0
- package/dist/options/MsiOptions.d.ts +27 -0
- package/dist/options/MsiOptions.d.ts.map +1 -0
- package/dist/options/MsiOptions.js +2 -0
- package/dist/options/MsiOptions.js.map +1 -0
- package/dist/options/MsiWrappedOptions.d.ts +27 -0
- package/dist/options/MsiWrappedOptions.d.ts.map +1 -0
- package/dist/options/MsiWrappedOptions.js +2 -0
- package/dist/options/MsiWrappedOptions.js.map +1 -0
- package/dist/options/PlatformSpecificBuildOptions.d.ts +261 -0
- package/dist/options/PlatformSpecificBuildOptions.d.ts.map +1 -0
- package/dist/options/PlatformSpecificBuildOptions.js +2 -0
- package/dist/options/PlatformSpecificBuildOptions.js.map +1 -0
- package/dist/options/SnapOptions.d.ts +480 -0
- package/dist/options/SnapOptions.d.ts.map +1 -0
- package/dist/options/SnapOptions.js +2 -0
- package/dist/options/SnapOptions.js.map +1 -0
- package/dist/options/SquirrelWindowsOptions.d.ts +47 -0
- package/dist/options/SquirrelWindowsOptions.d.ts.map +1 -0
- package/dist/options/SquirrelWindowsOptions.js +2 -0
- package/dist/options/SquirrelWindowsOptions.js.map +1 -0
- package/dist/options/linuxOptions.d.ts +289 -0
- package/dist/options/linuxOptions.d.ts.map +1 -0
- package/dist/options/linuxOptions.js +2 -0
- package/dist/options/linuxOptions.js.map +1 -0
- package/dist/options/macOptions.d.ts +390 -0
- package/dist/options/macOptions.d.ts.map +1 -0
- package/dist/options/macOptions.js +2 -0
- package/dist/options/macOptions.js.map +1 -0
- package/dist/options/metadata.d.ts +54 -0
- package/dist/options/metadata.d.ts.map +1 -0
- package/dist/options/metadata.js +2 -0
- package/dist/options/metadata.js.map +1 -0
- package/dist/options/pkgOptions.d.ts +137 -0
- package/dist/options/pkgOptions.d.ts.map +1 -0
- package/dist/options/pkgOptions.js +2 -0
- package/dist/options/pkgOptions.js.map +1 -0
- package/dist/options/winOptions.d.ts +166 -0
- package/dist/options/winOptions.d.ts.map +1 -0
- package/dist/options/winOptions.js +2 -0
- package/dist/options/winOptions.js.map +1 -0
- package/dist/packager.d.ts +100 -0
- package/dist/packager.d.ts.map +1 -0
- package/dist/packager.js +491 -0
- package/dist/packager.js.map +1 -0
- package/dist/packagerApi.d.ts +32 -0
- package/dist/packagerApi.d.ts.map +1 -0
- package/dist/packagerApi.js +2 -0
- package/dist/packagerApi.js.map +1 -0
- package/dist/platformPackager.d.ts +132 -0
- package/dist/platformPackager.d.ts.map +1 -0
- package/dist/platformPackager.js +761 -0
- package/dist/platformPackager.js.map +1 -0
- package/dist/presets/rectCra.d.ts +2 -0
- package/dist/presets/rectCra.d.ts.map +1 -0
- package/dist/presets/rectCra.js +19 -0
- package/dist/presets/rectCra.js.map +1 -0
- package/dist/publish/PublishManager.d.ts +33 -0
- package/dist/publish/PublishManager.d.ts.map +1 -0
- package/dist/publish/PublishManager.js +470 -0
- package/dist/publish/PublishManager.js.map +1 -0
- package/dist/publish/updateInfoBuilder.d.ts +15 -0
- package/dist/publish/updateInfoBuilder.d.ts.map +1 -0
- package/dist/publish/updateInfoBuilder.js +221 -0
- package/dist/publish/updateInfoBuilder.js.map +1 -0
- package/dist/targets/ArchiveTarget.d.ts +12 -0
- package/dist/targets/ArchiveTarget.d.ts.map +1 -0
- package/dist/targets/ArchiveTarget.js +93 -0
- package/dist/targets/ArchiveTarget.js.map +1 -0
- package/dist/targets/archive.d.ts +27 -0
- package/dist/targets/archive.d.ts.map +1 -0
- package/dist/targets/archive.js +174 -0
- package/dist/targets/archive.js.map +1 -0
- package/dist/targets/blockmap/blockmap.d.ts +17 -0
- package/dist/targets/blockmap/blockmap.d.ts.map +1 -0
- package/dist/targets/blockmap/blockmap.js +150 -0
- package/dist/targets/blockmap/blockmap.js.map +1 -0
- package/dist/targets/differentialUpdateInfoBuilder.d.ts +16 -0
- package/dist/targets/differentialUpdateInfoBuilder.d.ts.map +1 -0
- package/dist/targets/differentialUpdateInfoBuilder.js +73 -0
- package/dist/targets/differentialUpdateInfoBuilder.js.map +1 -0
- package/dist/targets/linux/FlatpakTarget.d.ts +21 -0
- package/dist/targets/linux/FlatpakTarget.d.ts.map +1 -0
- package/dist/targets/linux/FlatpakTarget.js +156 -0
- package/dist/targets/linux/FlatpakTarget.js.map +1 -0
- package/dist/targets/linux/FpmTarget.d.ts +23 -0
- package/dist/targets/linux/FpmTarget.d.ts.map +1 -0
- package/dist/targets/linux/FpmTarget.js +365 -0
- package/dist/targets/linux/FpmTarget.js.map +1 -0
- package/dist/targets/linux/LinuxTargetHelper.d.ts +24 -0
- package/dist/targets/linux/LinuxTargetHelper.d.ts.map +1 -0
- package/dist/targets/linux/LinuxTargetHelper.js +332 -0
- package/dist/targets/linux/LinuxTargetHelper.js.map +1 -0
- package/dist/targets/linux/appimage/AppImageTarget.d.ts +16 -0
- package/dist/targets/linux/appimage/AppImageTarget.d.ts.map +1 -0
- package/dist/targets/linux/appimage/AppImageTarget.js +141 -0
- package/dist/targets/linux/appimage/AppImageTarget.js.map +1 -0
- package/dist/targets/linux/appimage/appImageUtil.d.ts +57 -0
- package/dist/targets/linux/appimage/appImageUtil.d.ts.map +1 -0
- package/dist/targets/linux/appimage/appImageUtil.js +317 -0
- package/dist/targets/linux/appimage/appImageUtil.js.map +1 -0
- package/dist/targets/linux/appimage/appLauncher.d.ts +4 -0
- package/dist/targets/linux/appimage/appLauncher.d.ts.map +1 -0
- package/dist/targets/linux/appimage/appLauncher.js +91 -0
- package/dist/targets/linux/appimage/appLauncher.js.map +1 -0
- package/dist/targets/linux/snap/SnapTarget.d.ts +37 -0
- package/dist/targets/linux/snap/SnapTarget.d.ts.map +1 -0
- package/dist/targets/linux/snap/SnapTarget.js +96 -0
- package/dist/targets/linux/snap/SnapTarget.js.map +1 -0
- package/dist/targets/linux/snap/core24.d.ts +53 -0
- package/dist/targets/linux/snap/core24.d.ts.map +1 -0
- package/dist/targets/linux/snap/core24.js +444 -0
- package/dist/targets/linux/snap/core24.js.map +1 -0
- package/dist/targets/linux/snap/coreCustom.d.ts +29 -0
- package/dist/targets/linux/snap/coreCustom.d.ts.map +1 -0
- package/dist/targets/linux/snap/coreCustom.js +60 -0
- package/dist/targets/linux/snap/coreCustom.js.map +1 -0
- package/dist/targets/linux/snap/coreLegacy.d.ts +46 -0
- package/dist/targets/linux/snap/coreLegacy.d.ts.map +1 -0
- package/dist/targets/linux/snap/coreLegacy.js +402 -0
- package/dist/targets/linux/snap/coreLegacy.js.map +1 -0
- package/dist/targets/linux/snap/snapcraftBuilder.d.ts +40 -0
- package/dist/targets/linux/snap/snapcraftBuilder.d.ts.map +1 -0
- package/dist/targets/linux/snap/snapcraftBuilder.js +414 -0
- package/dist/targets/linux/snap/snapcraftBuilder.js.map +1 -0
- package/dist/targets/mac/MacTargetHelper.d.ts +30 -0
- package/dist/targets/mac/MacTargetHelper.d.ts.map +1 -0
- package/dist/targets/mac/MacTargetHelper.js +267 -0
- package/dist/targets/mac/MacTargetHelper.js.map +1 -0
- package/dist/targets/mac/pkg.d.ts +31 -0
- package/dist/targets/mac/pkg.d.ts.map +1 -0
- package/dist/targets/mac/pkg.js +271 -0
- package/dist/targets/mac/pkg.js.map +1 -0
- package/dist/targets/targetFactory.d.ts +13 -0
- package/dist/targets/targetFactory.d.ts.map +1 -0
- package/dist/targets/targetFactory.js +94 -0
- package/dist/targets/targetFactory.js.map +1 -0
- package/dist/targets/targetUtil.d.ts +16 -0
- package/dist/targets/targetUtil.d.ts.map +1 -0
- package/dist/targets/targetUtil.js +40 -0
- package/dist/targets/targetUtil.js.map +1 -0
- package/dist/targets/win/AppxCapabilities.d.ts +9 -0
- package/dist/targets/win/AppxCapabilities.d.ts.map +1 -0
- package/dist/targets/win/AppxCapabilities.js +254 -0
- package/dist/targets/win/AppxCapabilities.js.map +1 -0
- package/dist/targets/win/AppxTarget.d.ts +18 -0
- package/dist/targets/win/AppxTarget.d.ts.map +1 -0
- package/dist/targets/win/AppxTarget.js +398 -0
- package/dist/targets/win/AppxTarget.js.map +1 -0
- package/dist/targets/win/MsiTarget.d.ts +29 -0
- package/dist/targets/win/MsiTarget.d.ts.map +1 -0
- package/dist/targets/win/MsiTarget.js +268 -0
- package/dist/targets/win/MsiTarget.js.map +1 -0
- package/dist/targets/win/MsiWrappedTarget.d.ts +20 -0
- package/dist/targets/win/MsiWrappedTarget.d.ts.map +1 -0
- package/dist/targets/win/MsiWrappedTarget.js +77 -0
- package/dist/targets/win/MsiWrappedTarget.js.map +1 -0
- package/dist/targets/win/nsis/Commands.d.ts +10 -0
- package/dist/targets/win/nsis/Commands.d.ts.map +1 -0
- package/dist/targets/win/nsis/Commands.js +2 -0
- package/dist/targets/win/nsis/Commands.js.map +1 -0
- package/dist/targets/win/nsis/Defines.d.ts +81 -0
- package/dist/targets/win/nsis/Defines.d.ts.map +1 -0
- package/dist/targets/win/nsis/Defines.js +2 -0
- package/dist/targets/win/nsis/Defines.js.map +1 -0
- package/dist/targets/win/nsis/NsisTarget.d.ts +43 -0
- package/dist/targets/win/nsis/NsisTarget.d.ts.map +1 -0
- package/dist/targets/win/nsis/NsisTarget.js +726 -0
- package/dist/targets/win/nsis/NsisTarget.js.map +1 -0
- package/dist/targets/win/nsis/WebInstallerTarget.d.ts +14 -0
- package/dist/targets/win/nsis/WebInstallerTarget.d.ts.map +1 -0
- package/dist/targets/win/nsis/WebInstallerTarget.js +43 -0
- package/dist/targets/win/nsis/WebInstallerTarget.js.map +1 -0
- package/dist/targets/win/nsis/nsisLang.d.ts +11 -0
- package/dist/targets/win/nsis/nsisLang.d.ts.map +1 -0
- package/dist/targets/win/nsis/nsisLang.js +94 -0
- package/dist/targets/win/nsis/nsisLang.js.map +1 -0
- package/dist/targets/win/nsis/nsisLicense.d.ts +5 -0
- package/dist/targets/win/nsis/nsisLicense.d.ts.map +1 -0
- package/dist/targets/win/nsis/nsisLicense.js +73 -0
- package/dist/targets/win/nsis/nsisLicense.js.map +1 -0
- package/dist/targets/win/nsis/nsisOptions.d.ts +275 -0
- package/dist/targets/win/nsis/nsisOptions.d.ts.map +1 -0
- package/dist/targets/win/nsis/nsisOptions.js +2 -0
- package/dist/targets/win/nsis/nsisOptions.js.map +1 -0
- package/dist/targets/win/nsis/nsisScriptGenerator.d.ts +13 -0
- package/dist/targets/win/nsis/nsisScriptGenerator.d.ts.map +1 -0
- package/dist/targets/win/nsis/nsisScriptGenerator.js +59 -0
- package/dist/targets/win/nsis/nsisScriptGenerator.js.map +1 -0
- package/dist/targets/win/nsis/nsisUtil.d.ts +26 -0
- package/dist/targets/win/nsis/nsisUtil.d.ts.map +1 -0
- package/dist/targets/win/nsis/nsisUtil.js +218 -0
- package/dist/targets/win/nsis/nsisUtil.js.map +1 -0
- package/dist/targets/win/nsis/nsisValidation.d.ts +19 -0
- package/dist/targets/win/nsis/nsisValidation.d.ts.map +1 -0
- package/dist/targets/win/nsis/nsisValidation.js +49 -0
- package/dist/targets/win/nsis/nsisValidation.js.map +1 -0
- package/dist/toolsets/7zip.d.ts +9 -0
- package/dist/toolsets/7zip.d.ts.map +1 -0
- package/dist/toolsets/7zip.js +80 -0
- package/dist/toolsets/7zip.js.map +1 -0
- package/dist/toolsets/appimage.d.ts +20 -0
- package/dist/toolsets/appimage.d.ts.map +1 -0
- package/dist/toolsets/appimage.js +67 -0
- package/dist/toolsets/appimage.js.map +1 -0
- package/dist/toolsets/custom.d.ts +5 -0
- package/dist/toolsets/custom.d.ts.map +1 -0
- package/dist/toolsets/custom.js +200 -0
- package/dist/toolsets/custom.js.map +1 -0
- package/dist/toolsets/fpm.d.ts +3 -0
- package/dist/toolsets/fpm.d.ts.map +1 -0
- package/dist/toolsets/fpm.js +49 -0
- package/dist/toolsets/fpm.js.map +1 -0
- package/dist/toolsets/icons.d.ts +12 -0
- package/dist/toolsets/icons.d.ts.map +1 -0
- package/dist/toolsets/icons.js +36 -0
- package/dist/toolsets/icons.js.map +1 -0
- package/dist/toolsets/linuxToolsMac.d.ts +8 -0
- package/dist/toolsets/linuxToolsMac.d.ts.map +1 -0
- package/dist/toolsets/linuxToolsMac.js +31 -0
- package/dist/toolsets/linuxToolsMac.js.map +1 -0
- package/dist/toolsets/nsis.d.ts +13 -0
- package/dist/toolsets/nsis.d.ts.map +1 -0
- package/dist/toolsets/nsis.js +100 -0
- package/dist/toolsets/nsis.js.map +1 -0
- package/dist/toolsets/winCodeSign.d.ts +42 -0
- package/dist/toolsets/winCodeSign.d.ts.map +1 -0
- package/dist/toolsets/winCodeSign.js +142 -0
- package/dist/toolsets/winCodeSign.js.map +1 -0
- package/dist/toolsets/wine.d.ts +6 -0
- package/dist/toolsets/wine.d.ts.map +1 -0
- package/dist/toolsets/wine.js +79 -0
- package/dist/toolsets/wine.js.map +1 -0
- package/dist/util/AppFileWalker.d.ts +14 -0
- package/dist/util/AppFileWalker.d.ts.map +1 -0
- package/dist/util/AppFileWalker.js +69 -0
- package/dist/util/AppFileWalker.js.map +1 -0
- package/dist/util/NodeModuleCopyHelper.d.ts +2 -0
- package/dist/util/NodeModuleCopyHelper.d.ts.map +1 -0
- package/dist/util/NodeModuleCopyHelper.js +160 -0
- package/dist/util/NodeModuleCopyHelper.js.map +1 -0
- package/dist/util/appFileCopier.d.ts +17 -0
- package/dist/util/appFileCopier.d.ts.map +1 -0
- package/dist/util/appFileCopier.js +190 -0
- package/dist/util/appFileCopier.js.map +1 -0
- package/dist/util/asyncEventEmitter.d.ts +34 -0
- package/dist/util/asyncEventEmitter.d.ts.map +1 -0
- package/dist/util/asyncEventEmitter.js +56 -0
- package/dist/util/asyncEventEmitter.js.map +1 -0
- package/dist/util/bundledTool.d.ts +8 -0
- package/dist/util/bundledTool.d.ts.map +1 -0
- package/dist/util/bundledTool.js +16 -0
- package/dist/util/bundledTool.js.map +1 -0
- package/dist/util/cacheManager.d.ts +19 -0
- package/dist/util/cacheManager.d.ts.map +1 -0
- package/dist/util/cacheManager.js +65 -0
- package/dist/util/cacheManager.js.map +1 -0
- package/dist/util/cacheState.d.ts +29 -0
- package/dist/util/cacheState.d.ts.map +1 -0
- package/dist/util/cacheState.js +134 -0
- package/dist/util/cacheState.js.map +1 -0
- package/dist/util/config/config.d.ts +13 -0
- package/dist/util/config/config.d.ts.map +1 -0
- package/dist/util/config/config.js +236 -0
- package/dist/util/config/config.js.map +1 -0
- package/dist/util/config/load.d.ts +20 -0
- package/dist/util/config/load.d.ts.map +1 -0
- package/dist/util/config/load.js +122 -0
- package/dist/util/config/load.js.map +1 -0
- package/dist/util/config/schemaValidator.d.ts +8 -0
- package/dist/util/config/schemaValidator.d.ts.map +1 -0
- package/dist/util/config/schemaValidator.js +161 -0
- package/dist/util/config/schemaValidator.js.map +1 -0
- package/dist/util/dynamicImport.d.ts +2 -0
- package/dist/util/dynamicImport.d.ts.map +1 -0
- package/dist/util/dynamicImport.js +9 -0
- package/dist/util/dynamicImport.js.map +1 -0
- package/dist/util/electronGet.d.ts +68 -0
- package/dist/util/electronGet.d.ts.map +1 -0
- package/dist/util/electronGet.js +560 -0
- package/dist/util/electronGet.js.map +1 -0
- package/dist/util/filter.d.ts +2 -0
- package/dist/util/filter.d.ts.map +1 -0
- package/dist/util/filter.js +64 -0
- package/dist/util/filter.js.map +1 -0
- package/dist/util/flags.d.ts +16 -0
- package/dist/util/flags.d.ts.map +1 -0
- package/dist/util/flags.js +53 -0
- package/dist/util/flags.js.map +1 -0
- package/dist/util/hash.d.ts +2 -0
- package/dist/util/hash.d.ts.map +1 -0
- package/dist/util/hash.js +16 -0
- package/dist/util/hash.js.map +1 -0
- package/dist/util/iconConverter.d.ts +29 -0
- package/dist/util/iconConverter.d.ts.map +1 -0
- package/dist/util/iconConverter.js +255 -0
- package/dist/util/iconConverter.js.map +1 -0
- package/dist/util/langs.d.ts +190 -0
- package/dist/util/langs.d.ts.map +1 -0
- package/dist/util/langs.js +432 -0
- package/dist/util/langs.js.map +1 -0
- package/dist/util/license.d.ts +17 -0
- package/dist/util/license.d.ts.map +1 -0
- package/dist/util/license.js +42 -0
- package/dist/util/license.js.map +1 -0
- package/dist/util/mac/macosIconComposer.d.ts +11 -0
- package/dist/util/mac/macosIconComposer.d.ts.map +1 -0
- package/dist/util/mac/macosIconComposer.js +99 -0
- package/dist/util/mac/macosIconComposer.js.map +1 -0
- package/dist/util/mac/macosVersion.d.ts +4 -0
- package/dist/util/mac/macosVersion.d.ts.map +1 -0
- package/dist/util/mac/macosVersion.js +31 -0
- package/dist/util/mac/macosVersion.js.map +1 -0
- package/dist/util/mac/plist.d.ts +8 -0
- package/dist/util/mac/plist.d.ts.map +1 -0
- package/dist/util/mac/plist.js +27 -0
- package/dist/util/mac/plist.js.map +1 -0
- package/dist/util/macroExpander.d.ts +4 -0
- package/dist/util/macroExpander.d.ts.map +1 -0
- package/dist/util/macroExpander.js +61 -0
- package/dist/util/macroExpander.js.map +1 -0
- package/dist/util/normalizePackageData.d.ts +2 -0
- package/dist/util/normalizePackageData.d.ts.map +1 -0
- package/dist/util/normalizePackageData.js +323 -0
- package/dist/util/normalizePackageData.js.map +1 -0
- package/dist/util/packageMetadata.d.ts +2 -0
- package/dist/util/packageMetadata.d.ts.map +1 -0
- package/dist/util/packageMetadata.js +118 -0
- package/dist/util/packageMetadata.js.map +1 -0
- package/dist/util/pathManager.d.ts +4 -0
- package/dist/util/pathManager.d.ts.map +1 -0
- package/dist/util/pathManager.js +17 -0
- package/dist/util/pathManager.js.map +1 -0
- package/dist/util/rebuild.d.ts +3 -0
- package/dist/util/rebuild.d.ts.map +1 -0
- package/dist/util/rebuild.js +54 -0
- package/dist/util/rebuild.js.map +1 -0
- package/dist/util/repositoryInfo.d.ts +4 -0
- package/dist/util/repositoryInfo.d.ts.map +1 -0
- package/dist/util/repositoryInfo.js +76 -0
- package/dist/util/repositoryInfo.js.map +1 -0
- package/dist/util/resolve.d.ts +3 -0
- package/dist/util/resolve.d.ts.map +1 -0
- package/dist/util/resolve.js +56 -0
- package/dist/util/resolve.js.map +1 -0
- package/dist/util/timer.d.ts +12 -0
- package/dist/util/timer.d.ts.map +1 -0
- package/dist/util/timer.js +23 -0
- package/dist/util/timer.js.map +1 -0
- package/dist/util/toolsetLock.d.ts +2 -0
- package/dist/util/toolsetLock.d.ts.map +1 -0
- package/dist/util/toolsetLock.js +20 -0
- package/dist/util/toolsetLock.js.map +1 -0
- package/dist/util/win/resEdit.d.ts +11 -0
- package/dist/util/win/resEdit.d.ts.map +1 -0
- package/dist/util/win/resEdit.js +46 -0
- package/dist/util/win/resEdit.js.map +1 -0
- package/dist/util/yarn.d.ts +23 -0
- package/dist/util/yarn.d.ts.map +1 -0
- package/dist/util/yarn.js +153 -0
- package/dist/util/yarn.js.map +1 -0
- package/dist/version.d.ts +2 -0
- package/dist/version.d.ts.map +1 -0
- package/dist/version.js +2 -0
- package/dist/version.js.map +1 -0
- package/dist/vm/MonoVm.d.ts +9 -0
- package/dist/vm/MonoVm.d.ts.map +1 -0
- package/dist/vm/MonoVm.js +16 -0
- package/dist/vm/MonoVm.js.map +1 -0
- package/dist/vm/ParallelsVm.d.ts +24 -0
- package/dist/vm/ParallelsVm.d.ts.map +1 -0
- package/dist/vm/ParallelsVm.js +107 -0
- package/dist/vm/ParallelsVm.js.map +1 -0
- package/dist/vm/PwshVm.d.ts +7 -0
- package/dist/vm/PwshVm.d.ts.map +1 -0
- package/dist/vm/PwshVm.js +21 -0
- package/dist/vm/PwshVm.js.map +1 -0
- package/dist/vm/WineVm.d.ts +14 -0
- package/dist/vm/WineVm.d.ts.map +1 -0
- package/dist/vm/WineVm.js +35 -0
- package/dist/vm/WineVm.js.map +1 -0
- package/dist/vm/vm.d.ts +15 -0
- package/dist/vm/vm.d.ts.map +1 -0
- package/dist/vm/vm.js +81 -0
- package/dist/vm/vm.js.map +1 -0
- package/dist/winPackager.d.ts +30 -0
- package/dist/winPackager.d.ts.map +1 -0
- package/dist/winPackager.js +270 -0
- package/dist/winPackager.js.map +1 -0
- package/helpers/package.json +6 -0
- package/helpers/remote-rebuild.js +2 -4
- package/package.json +30 -33
- package/scheme.json +379 -721
- package/out/Framework.d.ts +0 -36
- package/out/Framework.js +0 -7
- package/out/Framework.js.map +0 -1
- package/out/ProtonFramework.d.ts +0 -10
- package/out/ProtonFramework.js +0 -94
- package/out/ProtonFramework.js.map +0 -1
- package/out/appInfo.d.ts +0 -31
- package/out/appInfo.js +0 -152
- package/out/appInfo.js.map +0 -1
- package/out/asar/asar.d.ts +0 -38
- package/out/asar/asar.js +0 -163
- package/out/asar/asar.js.map +0 -1
- package/out/asar/asarFileChecker.d.ts +0 -2
- package/out/asar/asarFileChecker.js +0 -25
- package/out/asar/asarFileChecker.js.map +0 -1
- package/out/asar/asarUtil.d.ts +0 -1
- package/out/asar/asarUtil.js +0 -285
- package/out/asar/asarUtil.js.map +0 -1
- package/out/asar/integrity.d.ts +0 -15
- package/out/asar/integrity.js +0 -62
- package/out/asar/integrity.js.map +0 -1
- package/out/asar/unpackDetector.d.ts +0 -1
- package/out/asar/unpackDetector.js +0 -43
- package/out/asar/unpackDetector.js.map +0 -1
- package/out/binDownload.d.ts +0 -5
- package/out/binDownload.js +0 -104
- package/out/binDownload.js.map +0 -1
- package/out/codeSign/certInfo.d.ts +0 -54
- package/out/codeSign/certInfo.js +0 -466
- package/out/codeSign/certInfo.js.map +0 -1
- package/out/codeSign/codesign.d.ts +0 -3
- package/out/codeSign/codesign.js +0 -33
- package/out/codeSign/codesign.js.map +0 -1
- package/out/codeSign/macCodeSign.d.ts +0 -28
- package/out/codeSign/macCodeSign.js +0 -284
- package/out/codeSign/macCodeSign.js.map +0 -1
- package/out/codeSign/signManager.d.ts +0 -13
- package/out/codeSign/signManager.js +0 -3
- package/out/codeSign/signManager.js.map +0 -1
- package/out/codeSign/windowsCodeSign.d.ts +0 -7
- package/out/codeSign/windowsCodeSign.js +0 -38
- package/out/codeSign/windowsCodeSign.js.map +0 -1
- package/out/codeSign/windowsSignAzureManager.d.ts +0 -17
- package/out/codeSign/windowsSignAzureManager.js +0 -73
- package/out/codeSign/windowsSignAzureManager.js.map +0 -1
- package/out/codeSign/windowsSignToolManager.d.ts +0 -58
- package/out/codeSign/windowsSignToolManager.js +0 -376
- package/out/codeSign/windowsSignToolManager.js.map +0 -1
- package/out/configuration.d.ts +0 -532
- package/out/configuration.js +0 -3
- package/out/configuration.js.map +0 -1
- package/out/core.d.ts +0 -60
- package/out/core.js +0 -66
- package/out/core.js.map +0 -1
- package/out/electron/ElectronFramework.d.ts +0 -16
- package/out/electron/ElectronFramework.js +0 -242
- package/out/electron/ElectronFramework.js.map +0 -1
- package/out/electron/electronMac.d.ts +0 -1
- package/out/electron/electronMac.js +0 -262
- package/out/electron/electronMac.js.map +0 -1
- package/out/electron/electronVersion.d.ts +0 -6
- package/out/electron/electronVersion.js +0 -125
- package/out/electron/electronVersion.js.map +0 -1
- package/out/electron/electronWin.d.ts +0 -1
- package/out/electron/electronWin.js +0 -38
- package/out/electron/electronWin.js.map +0 -1
- package/out/electron/injectFFMPEG.d.ts +0 -11
- package/out/electron/injectFFMPEG.js +0 -57
- package/out/electron/injectFFMPEG.js.map +0 -1
- package/out/electron/search-module.d.ts +0 -23
- package/out/electron/search-module.js +0 -73
- package/out/electron/search-module.js.map +0 -1
- package/out/errorMessages.d.ts +0 -1
- package/out/errorMessages.js +0 -11
- package/out/errorMessages.js.map +0 -1
- package/out/fileMatcher.d.ts +0 -29
- package/out/fileMatcher.js +0 -292
- package/out/fileMatcher.js.map +0 -1
- package/out/fileTransformer.d.ts +0 -1
- package/out/fileTransformer.js +0 -107
- package/out/fileTransformer.js.map +0 -1
- package/out/forge-maker.d.ts +0 -5
- package/out/forge-maker.js +0 -23
- package/out/forge-maker.js.map +0 -1
- package/out/frameworks/LibUiFramework.d.ts +0 -47
- package/out/frameworks/LibUiFramework.js +0 -197
- package/out/frameworks/LibUiFramework.js.map +0 -1
- package/out/index.d.ts +0 -39
- package/out/index.js +0 -99
- package/out/index.js.map +0 -1
- package/out/linuxPackager.d.ts +0 -12
- package/out/linuxPackager.js +0 -77
- package/out/linuxPackager.js.map +0 -1
- package/out/mac/MacTargetHelper.d.ts +0 -29
- package/out/mac/MacTargetHelper.js +0 -273
- package/out/mac/MacTargetHelper.js.map +0 -1
- package/out/macPackager.d.ts +0 -49
- package/out/macPackager.js +0 -445
- package/out/macPackager.js.map +0 -1
- package/out/node-module-collector/bunNodeModulesCollector.d.ts +0 -10
- package/out/node-module-collector/bunNodeModulesCollector.js +0 -18
- package/out/node-module-collector/bunNodeModulesCollector.js.map +0 -1
- package/out/node-module-collector/hoist.d.ts +0 -123
- package/out/node-module-collector/hoist.js +0 -884
- package/out/node-module-collector/hoist.js.map +0 -1
- package/out/node-module-collector/index.d.ts +0 -18
- package/out/node-module-collector/index.js +0 -130
- package/out/node-module-collector/index.js.map +0 -1
- package/out/node-module-collector/moduleManager.d.ts +0 -93
- package/out/node-module-collector/moduleManager.js +0 -321
- package/out/node-module-collector/moduleManager.js.map +0 -1
- package/out/node-module-collector/nodeModulesCollector.d.ts +0 -137
- package/out/node-module-collector/nodeModulesCollector.js +0 -428
- package/out/node-module-collector/nodeModulesCollector.js.map +0 -1
- package/out/node-module-collector/npmNodeModulesCollector.d.ts +0 -14
- package/out/node-module-collector/npmNodeModulesCollector.js +0 -80
- package/out/node-module-collector/npmNodeModulesCollector.js.map +0 -1
- package/out/node-module-collector/packageManager.d.ts +0 -17
- package/out/node-module-collector/packageManager.js +0 -144
- package/out/node-module-collector/packageManager.js.map +0 -1
- package/out/node-module-collector/pnpmNodeModulesCollector.d.ts +0 -44
- package/out/node-module-collector/pnpmNodeModulesCollector.js +0 -191
- package/out/node-module-collector/pnpmNodeModulesCollector.js.map +0 -1
- package/out/node-module-collector/traversalNodeModulesCollector.d.ts +0 -18
- package/out/node-module-collector/traversalNodeModulesCollector.js +0 -122
- package/out/node-module-collector/traversalNodeModulesCollector.js.map +0 -1
- package/out/node-module-collector/types.d.ts +0 -52
- package/out/node-module-collector/types.js +0 -3
- package/out/node-module-collector/yarnBerryNodeModulesCollector.d.ts +0 -15
- package/out/node-module-collector/yarnBerryNodeModulesCollector.js +0 -93
- package/out/node-module-collector/yarnBerryNodeModulesCollector.js.map +0 -1
- package/out/node-module-collector/yarnNodeModulesCollector.d.ts +0 -10
- package/out/node-module-collector/yarnNodeModulesCollector.js +0 -22
- package/out/node-module-collector/yarnNodeModulesCollector.js.map +0 -1
- package/out/options/AppXOptions.d.ts +0 -105
- package/out/options/AppXOptions.js +0 -3
- package/out/options/AppXOptions.js.map +0 -1
- package/out/options/CommonWindowsInstallerConfiguration.d.ts +0 -47
- package/out/options/CommonWindowsInstallerConfiguration.js +0 -51
- package/out/options/CommonWindowsInstallerConfiguration.js.map +0 -1
- package/out/options/FileAssociation.d.ts +0 -45
- package/out/options/FileAssociation.js +0 -3
- package/out/options/MsiOptions.d.ts +0 -26
- package/out/options/MsiOptions.js +0 -3
- package/out/options/MsiOptions.js.map +0 -1
- package/out/options/MsiWrappedOptions.d.ts +0 -26
- package/out/options/MsiWrappedOptions.js +0 -3
- package/out/options/MsiWrappedOptions.js.map +0 -1
- package/out/options/PlatformSpecificBuildOptions.d.ts +0 -238
- package/out/options/PlatformSpecificBuildOptions.js +0 -3
- package/out/options/PlatformSpecificBuildOptions.js.map +0 -1
- package/out/options/SnapOptions.d.ts +0 -500
- package/out/options/SnapOptions.js +0 -3
- package/out/options/SnapOptions.js.map +0 -1
- package/out/options/SquirrelWindowsOptions.d.ts +0 -46
- package/out/options/SquirrelWindowsOptions.js +0 -3
- package/out/options/SquirrelWindowsOptions.js.map +0 -1
- package/out/options/linuxOptions.d.ts +0 -287
- package/out/options/linuxOptions.js +0 -3
- package/out/options/linuxOptions.js.map +0 -1
- package/out/options/macOptions.d.ts +0 -388
- package/out/options/macOptions.js +0 -3
- package/out/options/macOptions.js.map +0 -1
- package/out/options/metadata.d.ts +0 -53
- package/out/options/metadata.js +0 -3
- package/out/options/metadata.js.map +0 -1
- package/out/options/pkgOptions.d.ts +0 -136
- package/out/options/pkgOptions.js +0 -3
- package/out/options/pkgOptions.js.map +0 -1
- package/out/options/winOptions.d.ts +0 -164
- package/out/options/winOptions.js +0 -3
- package/out/options/winOptions.js.map +0 -1
- package/out/packager.d.ts +0 -99
- package/out/packager.js +0 -515
- package/out/packager.js.map +0 -1
- package/out/packagerApi.d.ts +0 -31
- package/out/packagerApi.js +0 -3
- package/out/packagerApi.js.map +0 -1
- package/out/platformPackager.d.ts +0 -101
- package/out/platformPackager.js +0 -714
- package/out/platformPackager.js.map +0 -1
- package/out/presets/rectCra.d.ts +0 -1
- package/out/presets/rectCra.js +0 -22
- package/out/presets/rectCra.js.map +0 -1
- package/out/publish/PublishManager.d.ts +0 -30
- package/out/publish/PublishManager.js +0 -497
- package/out/publish/PublishManager.js.map +0 -1
- package/out/publish/updateInfoBuilder.d.ts +0 -14
- package/out/publish/updateInfoBuilder.js +0 -226
- package/out/publish/updateInfoBuilder.js.map +0 -1
- package/out/targets/AppxCapabilities.d.ts +0 -8
- package/out/targets/AppxCapabilities.js +0 -258
- package/out/targets/AppxCapabilities.js.map +0 -1
- package/out/targets/AppxTarget.d.ts +0 -17
- package/out/targets/AppxTarget.js +0 -403
- package/out/targets/AppxTarget.js.map +0 -1
- package/out/targets/ArchiveTarget.d.ts +0 -11
- package/out/targets/ArchiveTarget.js +0 -88
- package/out/targets/ArchiveTarget.js.map +0 -1
- package/out/targets/FlatpakTarget.d.ts +0 -20
- package/out/targets/FlatpakTarget.js +0 -159
- package/out/targets/FlatpakTarget.js.map +0 -1
- package/out/targets/FpmTarget.d.ts +0 -22
- package/out/targets/FpmTarget.js +0 -372
- package/out/targets/FpmTarget.js.map +0 -1
- package/out/targets/LinuxTargetHelper.d.ts +0 -23
- package/out/targets/LinuxTargetHelper.js +0 -346
- package/out/targets/LinuxTargetHelper.js.map +0 -1
- package/out/targets/MsiTarget.d.ts +0 -28
- package/out/targets/MsiTarget.js +0 -268
- package/out/targets/MsiTarget.js.map +0 -1
- package/out/targets/MsiWrappedTarget.d.ts +0 -19
- package/out/targets/MsiWrappedTarget.js +0 -80
- package/out/targets/MsiWrappedTarget.js.map +0 -1
- package/out/targets/appimage/AppImageTarget.d.ts +0 -15
- package/out/targets/appimage/AppImageTarget.js +0 -147
- package/out/targets/appimage/AppImageTarget.js.map +0 -1
- package/out/targets/appimage/appImageUtil.d.ts +0 -56
- package/out/targets/appimage/appImageUtil.js +0 -323
- package/out/targets/appimage/appImageUtil.js.map +0 -1
- package/out/targets/appimage/appLauncher.d.ts +0 -3
- package/out/targets/appimage/appLauncher.js +0 -95
- package/out/targets/appimage/appLauncher.js.map +0 -1
- package/out/targets/archive.d.ts +0 -26
- package/out/targets/archive.js +0 -178
- package/out/targets/archive.js.map +0 -1
- package/out/targets/blockmap/blockmap.d.ts +0 -16
- package/out/targets/blockmap/blockmap.js +0 -153
- package/out/targets/blockmap/blockmap.js.map +0 -1
- package/out/targets/differentialUpdateInfoBuilder.d.ts +0 -15
- package/out/targets/differentialUpdateInfoBuilder.js +0 -80
- package/out/targets/differentialUpdateInfoBuilder.js.map +0 -1
- package/out/targets/nsis/Commands.d.ts +0 -9
- package/out/targets/nsis/Commands.js +0 -3
- package/out/targets/nsis/Commands.js.map +0 -1
- package/out/targets/nsis/Defines.d.ts +0 -80
- package/out/targets/nsis/Defines.js +0 -3
- package/out/targets/nsis/Defines.js.map +0 -1
- package/out/targets/nsis/NsisTarget.d.ts +0 -37
- package/out/targets/nsis/NsisTarget.js +0 -729
- package/out/targets/nsis/NsisTarget.js.map +0 -1
- package/out/targets/nsis/WebInstallerTarget.d.ts +0 -13
- package/out/targets/nsis/WebInstallerTarget.js +0 -47
- package/out/targets/nsis/WebInstallerTarget.js.map +0 -1
- package/out/targets/nsis/nsisLang.d.ts +0 -10
- package/out/targets/nsis/nsisLang.js +0 -100
- package/out/targets/nsis/nsisLang.js.map +0 -1
- package/out/targets/nsis/nsisLicense.d.ts +0 -4
- package/out/targets/nsis/nsisLicense.js +0 -77
- package/out/targets/nsis/nsisLicense.js.map +0 -1
- package/out/targets/nsis/nsisOptions.d.ts +0 -274
- package/out/targets/nsis/nsisOptions.js +0 -3
- package/out/targets/nsis/nsisOptions.js.map +0 -1
- package/out/targets/nsis/nsisScriptGenerator.d.ts +0 -12
- package/out/targets/nsis/nsisScriptGenerator.js +0 -64
- package/out/targets/nsis/nsisScriptGenerator.js.map +0 -1
- package/out/targets/nsis/nsisUtil.d.ts +0 -25
- package/out/targets/nsis/nsisUtil.js +0 -225
- package/out/targets/nsis/nsisUtil.js.map +0 -1
- package/out/targets/nsis/nsisValidation.d.ts +0 -18
- package/out/targets/nsis/nsisValidation.js +0 -53
- package/out/targets/nsis/nsisValidation.js.map +0 -1
- package/out/targets/pkg.d.ts +0 -30
- package/out/targets/pkg.js +0 -279
- package/out/targets/pkg.js.map +0 -1
- package/out/targets/snap/SnapTarget.d.ts +0 -36
- package/out/targets/snap/SnapTarget.js +0 -105
- package/out/targets/snap/SnapTarget.js.map +0 -1
- package/out/targets/snap/core24.d.ts +0 -52
- package/out/targets/snap/core24.js +0 -449
- package/out/targets/snap/core24.js.map +0 -1
- package/out/targets/snap/coreCustom.d.ts +0 -28
- package/out/targets/snap/coreCustom.js +0 -63
- package/out/targets/snap/coreCustom.js.map +0 -1
- package/out/targets/snap/coreLegacy.d.ts +0 -43
- package/out/targets/snap/coreLegacy.js +0 -416
- package/out/targets/snap/coreLegacy.js.map +0 -1
- package/out/targets/snap/snapcraftBuilder.d.ts +0 -39
- package/out/targets/snap/snapcraftBuilder.js +0 -419
- package/out/targets/snap/snapcraftBuilder.js.map +0 -1
- package/out/targets/targetFactory.d.ts +0 -12
- package/out/targets/targetFactory.js +0 -101
- package/out/targets/targetFactory.js.map +0 -1
- package/out/targets/targetUtil.d.ts +0 -14
- package/out/targets/targetUtil.js +0 -47
- package/out/targets/targetUtil.js.map +0 -1
- package/out/toolsets/7zip.d.ts +0 -2
- package/out/toolsets/7zip.js +0 -72
- package/out/toolsets/7zip.js.map +0 -1
- package/out/toolsets/icons.d.ts +0 -8
- package/out/toolsets/icons.js +0 -37
- package/out/toolsets/icons.js.map +0 -1
- package/out/toolsets/linux.d.ts +0 -26
- package/out/toolsets/linux.js +0 -146
- package/out/toolsets/linux.js.map +0 -1
- package/out/toolsets/windows.d.ts +0 -61
- package/out/toolsets/windows.js +0 -259
- package/out/toolsets/windows.js.map +0 -1
- package/out/toolsets/wine.d.ts +0 -5
- package/out/toolsets/wine.js +0 -100
- package/out/toolsets/wine.js.map +0 -1
- package/out/util/AppFileWalker.d.ts +0 -13
- package/out/util/AppFileWalker.js +0 -74
- package/out/util/AppFileWalker.js.map +0 -1
- package/out/util/NodeModuleCopyHelper.d.ts +0 -1
- package/out/util/NodeModuleCopyHelper.js +0 -165
- package/out/util/NodeModuleCopyHelper.js.map +0 -1
- package/out/util/appFileCopier.d.ts +0 -16
- package/out/util/appFileCopier.js +0 -251
- package/out/util/appFileCopier.js.map +0 -1
- package/out/util/asyncEventEmitter.d.ts +0 -33
- package/out/util/asyncEventEmitter.js +0 -63
- package/out/util/asyncEventEmitter.js.map +0 -1
- package/out/util/bundledTool.d.ts +0 -7
- package/out/util/bundledTool.js +0 -20
- package/out/util/bundledTool.js.map +0 -1
- package/out/util/cacheManager.d.ts +0 -18
- package/out/util/cacheManager.js +0 -70
- package/out/util/cacheManager.js.map +0 -1
- package/out/util/cacheState.d.ts +0 -28
- package/out/util/cacheState.js +0 -143
- package/out/util/cacheState.js.map +0 -1
- package/out/util/config/config.d.ts +0 -12
- package/out/util/config/config.js +0 -256
- package/out/util/config/config.js.map +0 -1
- package/out/util/config/load.d.ts +0 -19
- package/out/util/config/load.js +0 -129
- package/out/util/config/load.js.map +0 -1
- package/out/util/config/schemaValidator.d.ts +0 -7
- package/out/util/config/schemaValidator.js +0 -154
- package/out/util/config/schemaValidator.js.map +0 -1
- package/out/util/dynamicImport.d.ts +0 -1
- package/out/util/dynamicImport.js +0 -12
- package/out/util/dynamicImport.js.map +0 -1
- package/out/util/electronGet.d.ts +0 -61
- package/out/util/electronGet.js +0 -464
- package/out/util/electronGet.js.map +0 -1
- package/out/util/envPath.d.ts +0 -2
- package/out/util/envPath.js +0 -28
- package/out/util/envPath.js.map +0 -1
- package/out/util/filter.d.ts +0 -1
- package/out/util/filter.js +0 -68
- package/out/util/filter.js.map +0 -1
- package/out/util/flags.d.ts +0 -3
- package/out/util/flags.js +0 -16
- package/out/util/flags.js.map +0 -1
- package/out/util/hash.d.ts +0 -1
- package/out/util/hash.js +0 -19
- package/out/util/hash.js.map +0 -1
- package/out/util/iconConverter.d.ts +0 -25
- package/out/util/iconConverter.js +0 -260
- package/out/util/iconConverter.js.map +0 -1
- package/out/util/langs.d.ts +0 -189
- package/out/util/langs.js +0 -436
- package/out/util/langs.js.map +0 -1
- package/out/util/license.d.ts +0 -16
- package/out/util/license.js +0 -47
- package/out/util/license.js.map +0 -1
- package/out/util/macosIconComposer.d.ts +0 -10
- package/out/util/macosIconComposer.js +0 -102
- package/out/util/macosIconComposer.js.map +0 -1
- package/out/util/macosVersion.d.ts +0 -3
- package/out/util/macosVersion.js +0 -36
- package/out/util/macosVersion.js.map +0 -1
- package/out/util/macroExpander.d.ts +0 -3
- package/out/util/macroExpander.js +0 -64
- package/out/util/macroExpander.js.map +0 -1
- package/out/util/normalizePackageData.d.ts +0 -1
- package/out/util/normalizePackageData.js +0 -328
- package/out/util/normalizePackageData.js.map +0 -1
- package/out/util/packageDependencies.d.ts +0 -6
- package/out/util/packageDependencies.js +0 -3
- package/out/util/packageDependencies.js.map +0 -1
- package/out/util/packageMetadata.d.ts +0 -1
- package/out/util/packageMetadata.js +0 -124
- package/out/util/packageMetadata.js.map +0 -1
- package/out/util/pathManager.d.ts +0 -3
- package/out/util/pathManager.js +0 -23
- package/out/util/pathManager.js.map +0 -1
- package/out/util/plist.d.ts +0 -7
- package/out/util/plist.js +0 -31
- package/out/util/plist.js.map +0 -1
- package/out/util/rebuild.d.ts +0 -2
- package/out/util/rebuild.js +0 -60
- package/out/util/rebuild.js.map +0 -1
- package/out/util/repositoryInfo.d.ts +0 -3
- package/out/util/repositoryInfo.js +0 -79
- package/out/util/repositoryInfo.js.map +0 -1
- package/out/util/resEdit.d.ts +0 -10
- package/out/util/resEdit.js +0 -49
- package/out/util/resEdit.js.map +0 -1
- package/out/util/resolve.d.ts +0 -2
- package/out/util/resolve.js +0 -59
- package/out/util/resolve.js.map +0 -1
- package/out/util/timer.d.ts +0 -11
- package/out/util/timer.js +0 -28
- package/out/util/timer.js.map +0 -1
- package/out/util/toolsetLock.d.ts +0 -1
- package/out/util/toolsetLock.js +0 -23
- package/out/util/toolsetLock.js.map +0 -1
- package/out/util/yarn.d.ts +0 -22
- package/out/util/yarn.js +0 -160
- package/out/util/yarn.js.map +0 -1
- package/out/version.d.ts +0 -1
- package/out/version.js +0 -5
- package/out/version.js.map +0 -1
- package/out/vm/MonoVm.d.ts +0 -8
- package/out/vm/MonoVm.js +0 -20
- package/out/vm/MonoVm.js.map +0 -1
- package/out/vm/ParallelsVm.d.ts +0 -23
- package/out/vm/ParallelsVm.js +0 -102
- package/out/vm/ParallelsVm.js.map +0 -1
- package/out/vm/PwshVm.d.ts +0 -6
- package/out/vm/PwshVm.js +0 -25
- package/out/vm/PwshVm.js.map +0 -1
- package/out/vm/WineVm.d.ts +0 -12
- package/out/vm/WineVm.js +0 -38
- package/out/vm/WineVm.js.map +0 -1
- package/out/vm/vm.d.ts +0 -14
- package/out/vm/vm.js +0 -88
- package/out/vm/vm.js.map +0 -1
- package/out/winPackager.d.ts +0 -29
- package/out/winPackager.js +0 -271
- package/out/winPackager.js.map +0 -1
- /package/{out → dist}/node-module-collector/types.js.map +0 -0
- /package/{out → dist}/options/FileAssociation.js.map +0 -0
- /package/helpers/{dynamic-import.js → dynamic-import.cjs} +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"snapcraftBuilder.d.ts","sourceRoot":"","sources":["../../../../src/targets/linux/snap/snapcraftBuilder.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAA;AACzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAA;AACpE,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAA;AAO9C,eAAO,MAAM,sBAAsB;;;;CAAsD,CAAA;AACzF,eAAO,MAAM,sBAAsB,EAAE,MAAM,EAA8E,CAAA;AAEzH,UAAU,gBAAgB;IACxB,uCAAuC;IACvC,eAAe,EAAE,aAAa,CAAA;IAC9B,+EAA+E;IAC/E,QAAQ,EAAE,MAAM,CAAA;IAChB,wDAAwD;IACxD,WAAW,CAAC,EAAE,kBAAkB,CAAA;IAChC,0CAA0C;IAC1C,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,gDAAgD;IAChD,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB,4EAA4E;IAC5E,kBAAkB,CAAC,EAAE,OAAO,CAAA;IAC5B,2BAA2B;IAC3B,YAAY,EAAE,MAAM,CAAA;IACpB,4FAA4F;IAC5F,QAAQ,EAAE,aAAa,CAAA;IACvB,qFAAqF;IACrF,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB;AAoKD;;;;;;;GAOG;AACH,wBAAsB,SAAS,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,MAAM,CAAC,CA4E1E"}
|
|
@@ -0,0 +1,414 @@
|
|
|
1
|
+
import { InvalidConfigurationError, isEmptyOrSpaces, log, spawn, stripSensitiveEnvVars } from "builder-util";
|
|
2
|
+
import * as childProcess from "child_process";
|
|
3
|
+
import { randomUUID } from "crypto";
|
|
4
|
+
import { resolveSnapCredentials } from "electron-publish";
|
|
5
|
+
import * as path from "path";
|
|
6
|
+
import * as util from "util";
|
|
7
|
+
import { deepAssign, sleep } from "builder-util-runtime";
|
|
8
|
+
import _fsExtra from "fs-extra";
|
|
9
|
+
const { copyFile, ensureDir, pathExists, readdir, remove } = _fsExtra;
|
|
10
|
+
const execAsync = util.promisify(childProcess.exec);
|
|
11
|
+
export const SNAPCRAFT_YAML_OPTIONS = { indent: 2, lineWidth: -1, noRefs: true };
|
|
12
|
+
export const DEFAULT_STAGE_PACKAGES = ["libnspr4", "libnss3", "libxss1", "libappindicator3-1", "libsecret-1-0"];
|
|
13
|
+
/**
|
|
14
|
+
* Validates snapcraft.yaml using snapcraft's built-in `expand-extensions` command.
|
|
15
|
+
* Throws on failure. The caller in `buildSnap` catches this and treats it as a non-fatal warning.
|
|
16
|
+
*/
|
|
17
|
+
async function validateSnapcraftYamlWithCLI(workDir) {
|
|
18
|
+
try {
|
|
19
|
+
const { stdout } = await execAsync("snapcraft expand-extensions", {
|
|
20
|
+
cwd: workDir,
|
|
21
|
+
timeout: 30000,
|
|
22
|
+
});
|
|
23
|
+
log.debug({ expandedYaml: stdout }, "validated extended snapcraft.yaml");
|
|
24
|
+
}
|
|
25
|
+
catch (error) {
|
|
26
|
+
log.error({ error: error.message, stderr: error.stderr }, "snapcraft.yaml validation failed");
|
|
27
|
+
throw new Error(`Invalid snapcraft.yaml: ${error.message}\n` +
|
|
28
|
+
`Snapcraft output: ${error.stderr || error.stdout || "No output"}\n` +
|
|
29
|
+
`Run 'snapcraft expand-extensions' in ${workDir} for more details`);
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Validates snapcraft.yaml configuration with basic client-side checks
|
|
34
|
+
* This is a fast pre-check before running the full CLI validation
|
|
35
|
+
*/
|
|
36
|
+
function validateSnapcraftConfig(config) {
|
|
37
|
+
const errors = [];
|
|
38
|
+
const warnings = [];
|
|
39
|
+
// Required fields
|
|
40
|
+
if (!config.name) {
|
|
41
|
+
errors.push("name is required");
|
|
42
|
+
}
|
|
43
|
+
if (!config.base) {
|
|
44
|
+
errors.push("base is required");
|
|
45
|
+
}
|
|
46
|
+
if (!config.confinement) {
|
|
47
|
+
errors.push("confinement is required");
|
|
48
|
+
}
|
|
49
|
+
if (!config.parts || Object.keys(config.parts).length === 0) {
|
|
50
|
+
errors.push("at least one part is required");
|
|
51
|
+
}
|
|
52
|
+
// Name validation
|
|
53
|
+
if (config.name) {
|
|
54
|
+
if (!/^[a-z0-9-]*$/.test(config.name)) {
|
|
55
|
+
errors.push("name must only contain lowercase letters, numbers, and hyphens");
|
|
56
|
+
}
|
|
57
|
+
if (config.name.length > 40) {
|
|
58
|
+
errors.push("name must be 40 characters or less");
|
|
59
|
+
}
|
|
60
|
+
if (config.name.startsWith("-") || config.name.endsWith("-")) {
|
|
61
|
+
errors.push("name cannot start or end with a hyphen");
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
// Parts validation
|
|
65
|
+
Object.entries(config.parts).forEach(([partName, part]) => {
|
|
66
|
+
if (!part.plugin) {
|
|
67
|
+
errors.push(`part '${partName}' missing required 'plugin' field`);
|
|
68
|
+
}
|
|
69
|
+
});
|
|
70
|
+
// Apps validation
|
|
71
|
+
if (config.apps) {
|
|
72
|
+
Object.entries(config.apps).forEach(([appName, app]) => {
|
|
73
|
+
if (!app.command) {
|
|
74
|
+
errors.push(`app '${appName}' missing required 'command' field`);
|
|
75
|
+
}
|
|
76
|
+
});
|
|
77
|
+
}
|
|
78
|
+
// Summary validation
|
|
79
|
+
if (config.summary && config.summary.length > 78) {
|
|
80
|
+
warnings.push(`summary is ${config.summary.length} characters (recommended: 78 or less)`);
|
|
81
|
+
}
|
|
82
|
+
// Log results
|
|
83
|
+
if (errors.length > 0) {
|
|
84
|
+
log.error({ errors }, "snapcraft.yaml validation failed");
|
|
85
|
+
throw new InvalidConfigurationError(`Invalid snapcraft.yaml: ${errors.join(", ")}`);
|
|
86
|
+
}
|
|
87
|
+
if (warnings.length > 0) {
|
|
88
|
+
log.warn({ warnings }, "snapcraft.yaml validation warnings");
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
/**
|
|
92
|
+
* Retry wrapper for operations that may fail transiently
|
|
93
|
+
*/
|
|
94
|
+
async function executeWithRetry(fn, options = {}) {
|
|
95
|
+
const { maxRetries = 3, retryDelay = 5000, retryableErrors = ["network timeout", "connection refused", "temporary failure", "snap store error"] } = options;
|
|
96
|
+
let lastError;
|
|
97
|
+
for (let attempt = 1; attempt <= maxRetries; attempt++) {
|
|
98
|
+
try {
|
|
99
|
+
return await fn();
|
|
100
|
+
}
|
|
101
|
+
catch (error) {
|
|
102
|
+
lastError = error;
|
|
103
|
+
const errorMessage = error.message?.toLowerCase() || "";
|
|
104
|
+
const isRetryable = retryableErrors.some(pattern => errorMessage.includes(pattern));
|
|
105
|
+
if (attempt < maxRetries && isRetryable) {
|
|
106
|
+
log.warn({ attempt, maxRetries, error: error.message, retryIn: retryDelay }, "build failed with retryable error, retrying...");
|
|
107
|
+
await sleep(retryDelay);
|
|
108
|
+
}
|
|
109
|
+
else {
|
|
110
|
+
break;
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
throw lastError;
|
|
115
|
+
}
|
|
116
|
+
/**
|
|
117
|
+
* Cleans up build artifacts
|
|
118
|
+
*/
|
|
119
|
+
async function cleanupBuildArtifacts(workDir) {
|
|
120
|
+
const artifactsToClean = ["parts", "stage", "prime"];
|
|
121
|
+
for (const artifact of artifactsToClean) {
|
|
122
|
+
const artifactPath = path.join(workDir, artifact);
|
|
123
|
+
try {
|
|
124
|
+
await remove(artifactPath);
|
|
125
|
+
log.debug({ artifact }, "cleaned build artifact");
|
|
126
|
+
}
|
|
127
|
+
catch (e) {
|
|
128
|
+
log.debug({ artifact, error: e.message }, "no build artifact to clean");
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
try {
|
|
132
|
+
const files = await readdir(workDir);
|
|
133
|
+
for (const file of files) {
|
|
134
|
+
if (file.endsWith(".snap")) {
|
|
135
|
+
await remove(path.join(workDir, file));
|
|
136
|
+
log.debug({ file }, "cleaned snap file");
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
catch (e) {
|
|
141
|
+
log.debug({ error: e.message }, "no snap files to clean");
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
async function copySnapToArtifactPath(workDir, outputBasename, outputFileName) {
|
|
145
|
+
const snapInWorkDir = path.join(workDir, outputBasename);
|
|
146
|
+
if (snapInWorkDir !== outputFileName) {
|
|
147
|
+
await ensureDir(path.dirname(outputFileName));
|
|
148
|
+
await copyFile(snapInWorkDir, outputFileName);
|
|
149
|
+
log.debug({ from: snapInWorkDir, to: outputFileName }, "copied snap from build dir to artifact path");
|
|
150
|
+
}
|
|
151
|
+
return outputFileName;
|
|
152
|
+
}
|
|
153
|
+
/**
|
|
154
|
+
* Builds a snap package from SnapcraftYAML configuration.
|
|
155
|
+
*
|
|
156
|
+
* `SNAPCRAFT_NO_NETWORK` is intentionally **not** forced to `"1"` here.
|
|
157
|
+
* All build modes (destructive-mode, LXD, Multipass, remote) require network
|
|
158
|
+
* access to download stage-packages, the base image, and extensions.
|
|
159
|
+
* To opt into an offline build, set `SNAPCRAFT_NO_NETWORK=1` in your environment.
|
|
160
|
+
*/
|
|
161
|
+
export async function buildSnap(options) {
|
|
162
|
+
const { SNAPCRAFT_NO_NETWORK } = process.env;
|
|
163
|
+
const { snapcraftConfig, artifactPath, remoteBuild, stageDir, useLXD = false, useMultipass = false, useDestructiveMode = false, cscLink } = options;
|
|
164
|
+
const isolatedEnv = {
|
|
165
|
+
...(SNAPCRAFT_NO_NETWORK != null ? { SNAPCRAFT_NO_NETWORK } : {}),
|
|
166
|
+
};
|
|
167
|
+
if (useDestructiveMode) {
|
|
168
|
+
isolatedEnv.SNAPCRAFT_BUILD_ENVIRONMENT = "host";
|
|
169
|
+
}
|
|
170
|
+
if (useLXD && process.platform !== "linux") {
|
|
171
|
+
throw new InvalidConfigurationError(`useLXD is only supported on Linux. On ${process.platform}, use useMultipass or remoteBuild instead.`);
|
|
172
|
+
}
|
|
173
|
+
if (useDestructiveMode && process.platform !== "linux") {
|
|
174
|
+
throw new InvalidConfigurationError(`useDestructiveMode is only supported on Linux (requires Ubuntu 24.04 host for core24). On ${process.platform}, use useMultipass or remoteBuild instead.`);
|
|
175
|
+
}
|
|
176
|
+
// Config validation — throws InvalidConfigurationError, no build artifacts exist yet.
|
|
177
|
+
validateSnapcraftConfig(snapcraftConfig);
|
|
178
|
+
try {
|
|
179
|
+
await validateSnapcraftYamlWithCLI(stageDir);
|
|
180
|
+
}
|
|
181
|
+
catch (validationError) {
|
|
182
|
+
log.warn({ error: validationError.message }, "snapcraft CLI pre-validation failed (non-fatal), continuing build");
|
|
183
|
+
}
|
|
184
|
+
await ensureSnapcraftInstalled();
|
|
185
|
+
// Inject credentials for all build modes from snapcraft.cscLink / SNAP_CSC_LINK.
|
|
186
|
+
const credEnv = await resolveSnapCredentials(cscLink, options.packager.buildResourcesDir);
|
|
187
|
+
deepAssign(isolatedEnv, credEnv);
|
|
188
|
+
if (remoteBuild?.enabled) {
|
|
189
|
+
// Remote-build auth does additional checks (interactive session, throws on missing creds)
|
|
190
|
+
// and overrides any credential already set above.
|
|
191
|
+
const authEnv = await ensureRemoteBuildAuthentication(cscLink, options.packager.buildResourcesDir);
|
|
192
|
+
deepAssign(isolatedEnv, authEnv);
|
|
193
|
+
}
|
|
194
|
+
const projectAppDir = path.join(stageDir, "app");
|
|
195
|
+
if (!(await pathExists(projectAppDir))) {
|
|
196
|
+
throw new InvalidConfigurationError(`snap build failed: expected app directory not found at ${projectAppDir}`);
|
|
197
|
+
}
|
|
198
|
+
log.debug({ appFiles: (await readdir(projectAppDir)).slice(0, 20) }, "app directory contents (truncated)");
|
|
199
|
+
if (!remoteBuild?.enabled && !useLXD && !useMultipass && !useDestructiveMode && process.platform !== "linux") {
|
|
200
|
+
throw new InvalidConfigurationError(`No snap build environment specified for ${process.platform}. Set one of: useMultipass, useLXD (Linux only), useDestructiveMode (Linux only), or remoteBuild.enabled`);
|
|
201
|
+
}
|
|
202
|
+
// Actual build — only this step can leave partial artifacts that need cleanup.
|
|
203
|
+
try {
|
|
204
|
+
return await executeWithRetry(() => executeSnapcraftBuild({
|
|
205
|
+
workDir: stageDir,
|
|
206
|
+
remoteBuild,
|
|
207
|
+
outputSnap: artifactPath,
|
|
208
|
+
useLXD,
|
|
209
|
+
useMultipass,
|
|
210
|
+
useDestructiveMode,
|
|
211
|
+
isolatedEnv: isolatedEnv,
|
|
212
|
+
}), { maxRetries: remoteBuild?.enabled ? 3 : 1, retryDelay: 10000 });
|
|
213
|
+
}
|
|
214
|
+
catch (error) {
|
|
215
|
+
log.error({ error: error.message }, "snap build failed");
|
|
216
|
+
await cleanupBuildArtifacts(stageDir).catch((cleanupError) => {
|
|
217
|
+
log.warn({ error: cleanupError.message }, "failed to cleanup build artifacts");
|
|
218
|
+
});
|
|
219
|
+
throw error;
|
|
220
|
+
}
|
|
221
|
+
}
|
|
222
|
+
/**
|
|
223
|
+
* Ensures snapcraft is installed on the system
|
|
224
|
+
*/
|
|
225
|
+
async function ensureSnapcraftInstalled() {
|
|
226
|
+
try {
|
|
227
|
+
const { stdout } = await execAsync("snapcraft --version");
|
|
228
|
+
log.info({ version: stdout.trim() }, "snapcraft found");
|
|
229
|
+
}
|
|
230
|
+
catch (error) {
|
|
231
|
+
log.error({ error: error.message }, "snapcraft is not installed");
|
|
232
|
+
const platform = process.platform;
|
|
233
|
+
if (platform === "linux") {
|
|
234
|
+
log.error(null, "Install with: sudo snap install snapcraft --classic");
|
|
235
|
+
}
|
|
236
|
+
else if (platform === "darwin") {
|
|
237
|
+
log.error(null, "Install snapcraft with: pip3 install snapcraft");
|
|
238
|
+
log.error(null, "On macOS, useMultipass or remoteBuild are the only supported build modes for core24");
|
|
239
|
+
}
|
|
240
|
+
else if (platform === "win32") {
|
|
241
|
+
log.error(null, "Install snapcraft via WSL2 or use remote-build");
|
|
242
|
+
log.error(null, "See: https://snapcraft.io/docs/snapcraft-overview");
|
|
243
|
+
}
|
|
244
|
+
throw new InvalidConfigurationError("snapcraft not found - please install snapcraft to continue");
|
|
245
|
+
}
|
|
246
|
+
}
|
|
247
|
+
/**
|
|
248
|
+
* Resolves Snapcraft Store authentication for remote builds and returns the credential
|
|
249
|
+
* env entries to inject. Returns an empty map when snapcraft can authenticate itself
|
|
250
|
+
* (interactive session). Throws when no credential source is found.
|
|
251
|
+
*/
|
|
252
|
+
async function ensureRemoteBuildAuthentication(cscLink, resourcesDir) {
|
|
253
|
+
log.debug(null, "resolving remote build authentication...");
|
|
254
|
+
// 1. snapcraft.cscLink / SNAP_CSC_LINK — config-level or env credential (base64 or file path).
|
|
255
|
+
// resolveSnapCredentials already ran for all build modes; re-run here so remote-build
|
|
256
|
+
// gets the same result and the interactive-session fallback is only reached when neither is set.
|
|
257
|
+
const credEnv = await resolveSnapCredentials(cscLink, resourcesDir);
|
|
258
|
+
if (Object.keys(credEnv).length > 0) {
|
|
259
|
+
return credEnv;
|
|
260
|
+
}
|
|
261
|
+
// 2. SNAPCRAFT_STORE_CREDENTIALS env var — directly provide the credentials string (not base64-encoded).
|
|
262
|
+
const SNAPCRAFT_STORE_CREDENTIALS = process.env.SNAPCRAFT_STORE_CREDENTIALS?.trim();
|
|
263
|
+
if (!isEmptyOrSpaces(SNAPCRAFT_STORE_CREDENTIALS)) {
|
|
264
|
+
log.debug(null, "using SNAPCRAFT_STORE_CREDENTIALS from environment, verbatim");
|
|
265
|
+
return { SNAPCRAFT_STORE_CREDENTIALS };
|
|
266
|
+
}
|
|
267
|
+
// 3. Interactive snapcraft session.
|
|
268
|
+
try {
|
|
269
|
+
const { stdout } = await execAsync("snapcraft whoami");
|
|
270
|
+
if (stdout.includes("email:")) {
|
|
271
|
+
log.debug({ account: stdout.trim() }, "already authenticated with snapcraft");
|
|
272
|
+
return {};
|
|
273
|
+
}
|
|
274
|
+
}
|
|
275
|
+
catch {
|
|
276
|
+
// Not logged in, fall through to error.
|
|
277
|
+
}
|
|
278
|
+
throw new InvalidConfigurationError("Snapcraft authentication required for remote build.\n" +
|
|
279
|
+
"Authenticate with one of any:\n" +
|
|
280
|
+
" 1. Set SNAP_CSC_LINK\n" +
|
|
281
|
+
" 2. Set snapcraft.cscLink in your build config\n" +
|
|
282
|
+
" 3. Run: snapcraft login\n" +
|
|
283
|
+
" 4. Set SNAPCRAFT_STORE_CREDENTIALS environment variable directly");
|
|
284
|
+
}
|
|
285
|
+
/**
|
|
286
|
+
* Executes the snapcraft build command
|
|
287
|
+
*/
|
|
288
|
+
async function executeSnapcraftBuild(options) {
|
|
289
|
+
const { workDir, outputSnap: outputFileName, remoteBuild, useLXD, useMultipass, useDestructiveMode, isolatedEnv } = options;
|
|
290
|
+
let processedEnv = { ...stripSensitiveEnvVars(process.env), ...isolatedEnv };
|
|
291
|
+
// Use a UUID-based temp name as the --output target so the copy below doesn't
|
|
292
|
+
// depend on snapcraft's naming convention (which always uses underscores).
|
|
293
|
+
const tmpSnap = `eb-snap-${randomUUID().replace(/-/g, "")}.snap`;
|
|
294
|
+
if (useDestructiveMode && !remoteBuild?.enabled) {
|
|
295
|
+
return await runDestructiveBuild(workDir, processedEnv, tmpSnap, outputFileName);
|
|
296
|
+
}
|
|
297
|
+
const command = "snapcraft";
|
|
298
|
+
const args = [];
|
|
299
|
+
if (remoteBuild?.enabled) {
|
|
300
|
+
const remoteBuildArgs = generateRemoteBuildArgs(remoteBuild, workDir);
|
|
301
|
+
// Remote build on Launchpad (works from any platform)
|
|
302
|
+
args.push(...remoteBuildArgs.args);
|
|
303
|
+
processedEnv = { ...processedEnv, ...remoteBuildArgs.isolatedEnv };
|
|
304
|
+
}
|
|
305
|
+
else {
|
|
306
|
+
// `snapcraft pack` runs the full lifecycle (pull → build → stage → prime → pack).
|
|
307
|
+
// snapcraft 8.x removed --use-multipass entirely; Multipass is now configured
|
|
308
|
+
// via the SNAPCRAFT_BUILD_ENVIRONMENT env var (or auto-selected on macOS).
|
|
309
|
+
// --use-lxd remains a supported CLI flag on `pack`.
|
|
310
|
+
args.push("pack");
|
|
311
|
+
if (useLXD) {
|
|
312
|
+
args.push("--use-lxd");
|
|
313
|
+
log.debug(null, "using LXD for build");
|
|
314
|
+
}
|
|
315
|
+
else if (useMultipass) {
|
|
316
|
+
processedEnv.SNAPCRAFT_BUILD_ENVIRONMENT = "multipass";
|
|
317
|
+
log.debug(null, "using Multipass for build (via SNAPCRAFT_BUILD_ENVIRONMENT)");
|
|
318
|
+
}
|
|
319
|
+
else {
|
|
320
|
+
args.push("--output", tmpSnap);
|
|
321
|
+
}
|
|
322
|
+
}
|
|
323
|
+
if (log.isDebugEnabled) {
|
|
324
|
+
args.push("--verbose");
|
|
325
|
+
}
|
|
326
|
+
log.info({ workDir: log.filePath(workDir) }, "executing snapcraft");
|
|
327
|
+
await spawn(command, args, {
|
|
328
|
+
cwd: workDir,
|
|
329
|
+
env: processedEnv,
|
|
330
|
+
});
|
|
331
|
+
if (remoteBuild?.enabled || useLXD || useMultipass) {
|
|
332
|
+
// snapcraft names the output snap itself (e.g. <name>_<version>_<arch>.snap).
|
|
333
|
+
// Each electron-builder build invocation targets exactly one arch, so exactly one snap is expected.
|
|
334
|
+
const files = await readdir(workDir);
|
|
335
|
+
const builtSnap = files.find(f => f.endsWith(".snap"));
|
|
336
|
+
if (!builtSnap) {
|
|
337
|
+
throw new Error(`Build succeeded but no .snap file found in ${workDir}`);
|
|
338
|
+
}
|
|
339
|
+
return copySnapToArtifactPath(workDir, builtSnap, outputFileName);
|
|
340
|
+
}
|
|
341
|
+
return copySnapToArtifactPath(workDir, tmpSnap, outputFileName);
|
|
342
|
+
}
|
|
343
|
+
function generateRemoteBuildArgs(remoteBuild, workDir) {
|
|
344
|
+
const isolatedEnv = {};
|
|
345
|
+
const args = ["remote-build"];
|
|
346
|
+
log.debug(null, "using remote-build (Launchpad)");
|
|
347
|
+
// Add remote build specific options
|
|
348
|
+
if (remoteBuild.launchpadUsername) {
|
|
349
|
+
args.push("--user", remoteBuild.launchpadUsername);
|
|
350
|
+
}
|
|
351
|
+
if (remoteBuild.acceptPublicUpload) {
|
|
352
|
+
args.push("--launchpad-accept-public-upload");
|
|
353
|
+
}
|
|
354
|
+
else {
|
|
355
|
+
log.warn(null, "your project will be publicly uploaded to Launchpad. Use `acceptPublicUpload: true` to suppress this warning");
|
|
356
|
+
}
|
|
357
|
+
if (remoteBuild.privateProject) {
|
|
358
|
+
args.push("--project", remoteBuild.privateProject);
|
|
359
|
+
log.debug({ project: remoteBuild.privateProject }, "using private Launchpad project");
|
|
360
|
+
}
|
|
361
|
+
if (remoteBuild.buildFor) {
|
|
362
|
+
args.push("--build-for", remoteBuild.buildFor);
|
|
363
|
+
log.debug({ arch: remoteBuild.buildFor }, "building for architecture");
|
|
364
|
+
}
|
|
365
|
+
if (remoteBuild.recover) {
|
|
366
|
+
args.push("--recover");
|
|
367
|
+
log.debug(null, "recovering previous build");
|
|
368
|
+
}
|
|
369
|
+
if (remoteBuild.strategy) {
|
|
370
|
+
isolatedEnv.SNAPCRAFT_REMOTE_BUILD_STRATEGY = remoteBuild.strategy;
|
|
371
|
+
}
|
|
372
|
+
if (remoteBuild.timeout) {
|
|
373
|
+
args.push("--timeout", String(remoteBuild.timeout));
|
|
374
|
+
log.debug({ timeout: `${remoteBuild.timeout}s` }, "build timeout configured");
|
|
375
|
+
}
|
|
376
|
+
// Remote-build downloads the finished snap into workDir.
|
|
377
|
+
// --output-dir (not --output <file>) lets snapcraft name the file itself.
|
|
378
|
+
args.push("--output-dir", workDir);
|
|
379
|
+
return { args, isolatedEnv };
|
|
380
|
+
}
|
|
381
|
+
// Snapcraft 8 (craft-application) hangs after a successful destructive-mode
|
|
382
|
+
// build in containerised environments (Docker/CI without snapd running).
|
|
383
|
+
// craft-application's PackageService teardown tries to reach
|
|
384
|
+
// /run/snapd-snap.socket (snapctl IPC) which doesn't exist without a live
|
|
385
|
+
// snapd daemon — causing an indefinite block.
|
|
386
|
+
//
|
|
387
|
+
// Work-around: split into two steps:
|
|
388
|
+
// 1. `snapcraft prime --destructive-mode` — runs pull/build/stage/prime,
|
|
389
|
+
// exits cleanly (no post-pack teardown executed).
|
|
390
|
+
// 2. `snapcraft pack <primeDir>` — packs the pre-primed directory without
|
|
391
|
+
// running the full build lifecycle, avoiding the problematic teardown.
|
|
392
|
+
async function runDestructiveBuild(workDir, processedEnv, tmpSnap, outputFileName) {
|
|
393
|
+
const primeArgs = ["prime", "--destructive-mode"];
|
|
394
|
+
if (log.isDebugEnabled) {
|
|
395
|
+
primeArgs.push("--verbose");
|
|
396
|
+
}
|
|
397
|
+
log.info({ command: `snapcraft ${primeArgs.join(" ")}`, workDir: log.filePath(workDir) }, "snapcraft prime (1/2)");
|
|
398
|
+
await spawn("snapcraft", primeArgs, {
|
|
399
|
+
cwd: workDir,
|
|
400
|
+
env: processedEnv,
|
|
401
|
+
});
|
|
402
|
+
const primeDir = path.join(workDir, "prime");
|
|
403
|
+
const snapcraftPackArgs = ["pack", "--output", tmpSnap, primeDir];
|
|
404
|
+
if (log.isDebugEnabled) {
|
|
405
|
+
snapcraftPackArgs.push("--verbose");
|
|
406
|
+
}
|
|
407
|
+
log.info({ command: `snapcraft ${snapcraftPackArgs.join(" ")}`, workDir: log.filePath(workDir) }, "snapcraft pack prime dir (2/2)");
|
|
408
|
+
await spawn("snapcraft", snapcraftPackArgs, {
|
|
409
|
+
cwd: workDir,
|
|
410
|
+
env: processedEnv,
|
|
411
|
+
});
|
|
412
|
+
return copySnapToArtifactPath(workDir, tmpSnap, outputFileName);
|
|
413
|
+
}
|
|
414
|
+
//# sourceMappingURL=snapcraftBuilder.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"snapcraftBuilder.js","sourceRoot":"","sources":["../../../../src/targets/linux/snap/snapcraftBuilder.ts"],"names":[],"mappings":"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","sourcesContent":["import { InvalidConfigurationError, isEmptyOrSpaces, log, spawn, stripSensitiveEnvVars } from \"builder-util\"\nimport * as childProcess from \"child_process\"\nimport { randomUUID } from \"crypto\"\nimport { resolveSnapCredentials } from \"electron-publish\"\n\nimport * as path from \"path\"\nimport * as util from \"util\"\nimport { LinuxPackager } from \"../../../linuxPackager.js\"\nimport { RemoteBuildOptions } from \"../../../options/SnapOptions.js\"\nimport { SnapcraftYAML } from \"./snapcraft.js\"\nimport { deepAssign, sleep } from \"builder-util-runtime\"\nimport _fsExtra from \"fs-extra\"\nconst { copyFile, ensureDir, pathExists, readdir, remove } = _fsExtra\n\nconst execAsync = util.promisify(childProcess.exec)\n\nexport const SNAPCRAFT_YAML_OPTIONS = { indent: 2, lineWidth: -1, noRefs: true } as const\nexport const DEFAULT_STAGE_PACKAGES: string[] = [\"libnspr4\", \"libnss3\", \"libxss1\", \"libappindicator3-1\", \"libsecret-1-0\"]\n\ninterface BuildSnapOptions {\n /** The snapcraft YAML configuration */\n snapcraftConfig: SnapcraftYAML\n /** Working directory where snapcraft.yaml is written and the build executes */\n stageDir: string\n /** Whether to use remote build (builds on Launchpad) */\n remoteBuild?: RemoteBuildOptions\n /** Whether to use LXD for local builds */\n useLXD?: boolean\n /** Whether to use Multipass for local builds */\n useMultipass?: boolean\n /** Whether to use destructive mode (builds directly on host, Linux only) */\n useDestructiveMode?: boolean\n /** The snap output path */\n artifactPath: string\n /** LinuxPackager instance, used to resolve workspace dir for remote build authentication */\n packager: LinuxPackager\n /** Snap Store credentials from SnapcraftOptions root — base64 string or file path */\n cscLink?: string\n}\n\n/**\n * Validates snapcraft.yaml using snapcraft's built-in `expand-extensions` command.\n * Throws on failure. The caller in `buildSnap` catches this and treats it as a non-fatal warning.\n */\nasync function validateSnapcraftYamlWithCLI(workDir: string): Promise<void> {\n try {\n const { stdout } = await execAsync(\"snapcraft expand-extensions\", {\n cwd: workDir,\n timeout: 30000,\n })\n log.debug({ expandedYaml: stdout }, \"validated extended snapcraft.yaml\")\n } catch (error: any) {\n log.error({ error: error.message, stderr: error.stderr }, \"snapcraft.yaml validation failed\")\n throw new Error(\n `Invalid snapcraft.yaml: ${error.message}\\n` +\n `Snapcraft output: ${error.stderr || error.stdout || \"No output\"}\\n` +\n `Run 'snapcraft expand-extensions' in ${workDir} for more details`\n )\n }\n}\n\n/**\n * Validates snapcraft.yaml configuration with basic client-side checks\n * This is a fast pre-check before running the full CLI validation\n */\nfunction validateSnapcraftConfig(config: SnapcraftYAML): void {\n const errors: string[] = []\n const warnings: string[] = []\n\n // Required fields\n if (!config.name) {\n errors.push(\"name is required\")\n }\n if (!config.base) {\n errors.push(\"base is required\")\n }\n if (!config.confinement) {\n errors.push(\"confinement is required\")\n }\n if (!config.parts || Object.keys(config.parts).length === 0) {\n errors.push(\"at least one part is required\")\n }\n\n // Name validation\n if (config.name) {\n if (!/^[a-z0-9-]*$/.test(config.name)) {\n errors.push(\"name must only contain lowercase letters, numbers, and hyphens\")\n }\n if (config.name.length > 40) {\n errors.push(\"name must be 40 characters or less\")\n }\n if (config.name.startsWith(\"-\") || config.name.endsWith(\"-\")) {\n errors.push(\"name cannot start or end with a hyphen\")\n }\n }\n\n // Parts validation\n Object.entries(config.parts).forEach(([partName, part]) => {\n if (!part.plugin) {\n errors.push(`part '${partName}' missing required 'plugin' field`)\n }\n })\n\n // Apps validation\n if (config.apps) {\n Object.entries(config.apps).forEach(([appName, app]) => {\n if (!app.command) {\n errors.push(`app '${appName}' missing required 'command' field`)\n }\n })\n }\n\n // Summary validation\n if (config.summary && config.summary.length > 78) {\n warnings.push(`summary is ${config.summary.length} characters (recommended: 78 or less)`)\n }\n\n // Log results\n if (errors.length > 0) {\n log.error({ errors }, \"snapcraft.yaml validation failed\")\n throw new InvalidConfigurationError(`Invalid snapcraft.yaml: ${errors.join(\", \")}`)\n }\n\n if (warnings.length > 0) {\n log.warn({ warnings }, \"snapcraft.yaml validation warnings\")\n }\n}\n\n/**\n * Retry wrapper for operations that may fail transiently\n */\nasync function executeWithRetry<T>(\n fn: () => Promise<T>,\n options: {\n maxRetries?: number\n retryDelay?: number\n retryableErrors?: string[]\n } = {}\n): Promise<T> {\n const { maxRetries = 3, retryDelay = 5000, retryableErrors = [\"network timeout\", \"connection refused\", \"temporary failure\", \"snap store error\"] } = options\n\n let lastError: Error | undefined\n\n for (let attempt = 1; attempt <= maxRetries; attempt++) {\n try {\n return await fn()\n } catch (error: any) {\n lastError = error\n const errorMessage = error.message?.toLowerCase() || \"\"\n const isRetryable = retryableErrors.some(pattern => errorMessage.includes(pattern))\n\n if (attempt < maxRetries && isRetryable) {\n log.warn({ attempt, maxRetries, error: error.message, retryIn: retryDelay }, \"build failed with retryable error, retrying...\")\n await sleep(retryDelay)\n } else {\n break\n }\n }\n }\n\n throw lastError!\n}\n\n/**\n * Cleans up build artifacts\n */\nasync function cleanupBuildArtifacts(workDir: string): Promise<void> {\n const artifactsToClean = [\"parts\", \"stage\", \"prime\"]\n\n for (const artifact of artifactsToClean) {\n const artifactPath = path.join(workDir, artifact)\n try {\n await remove(artifactPath)\n log.debug({ artifact }, \"cleaned build artifact\")\n } catch (e: any) {\n log.debug({ artifact, error: e.message }, \"no build artifact to clean\")\n }\n }\n\n try {\n const files = await readdir(workDir)\n for (const file of files) {\n if (file.endsWith(\".snap\")) {\n await remove(path.join(workDir, file))\n log.debug({ file }, \"cleaned snap file\")\n }\n }\n } catch (e: any) {\n log.debug({ error: e.message }, \"no snap files to clean\")\n }\n}\n\nasync function copySnapToArtifactPath(workDir: string, outputBasename: string, outputFileName: string): Promise<string> {\n const snapInWorkDir = path.join(workDir, outputBasename)\n if (snapInWorkDir !== outputFileName) {\n await ensureDir(path.dirname(outputFileName))\n await copyFile(snapInWorkDir, outputFileName)\n log.debug({ from: snapInWorkDir, to: outputFileName }, \"copied snap from build dir to artifact path\")\n }\n return outputFileName\n}\n\n/**\n * Builds a snap package from SnapcraftYAML configuration.\n *\n * `SNAPCRAFT_NO_NETWORK` is intentionally **not** forced to `\"1\"` here.\n * All build modes (destructive-mode, LXD, Multipass, remote) require network\n * access to download stage-packages, the base image, and extensions.\n * To opt into an offline build, set `SNAPCRAFT_NO_NETWORK=1` in your environment.\n */\nexport async function buildSnap(options: BuildSnapOptions): Promise<string> {\n const { SNAPCRAFT_NO_NETWORK } = process.env\n const { snapcraftConfig, artifactPath, remoteBuild, stageDir, useLXD = false, useMultipass = false, useDestructiveMode = false, cscLink } = options\n\n const isolatedEnv: Record<string, string> = {\n ...(SNAPCRAFT_NO_NETWORK != null ? { SNAPCRAFT_NO_NETWORK } : {}),\n }\n if (useDestructiveMode) {\n isolatedEnv.SNAPCRAFT_BUILD_ENVIRONMENT = \"host\"\n }\n\n if (useLXD && process.platform !== \"linux\") {\n throw new InvalidConfigurationError(`useLXD is only supported on Linux. On ${process.platform}, use useMultipass or remoteBuild instead.`)\n }\n if (useDestructiveMode && process.platform !== \"linux\") {\n throw new InvalidConfigurationError(\n `useDestructiveMode is only supported on Linux (requires Ubuntu 24.04 host for core24). On ${process.platform}, use useMultipass or remoteBuild instead.`\n )\n }\n\n // Config validation — throws InvalidConfigurationError, no build artifacts exist yet.\n validateSnapcraftConfig(snapcraftConfig)\n\n try {\n await validateSnapcraftYamlWithCLI(stageDir)\n } catch (validationError: any) {\n log.warn({ error: validationError.message }, \"snapcraft CLI pre-validation failed (non-fatal), continuing build\")\n }\n\n await ensureSnapcraftInstalled()\n\n // Inject credentials for all build modes from snapcraft.cscLink / SNAP_CSC_LINK.\n const credEnv = await resolveSnapCredentials(cscLink, options.packager.buildResourcesDir)\n deepAssign(isolatedEnv, credEnv)\n\n if (remoteBuild?.enabled) {\n // Remote-build auth does additional checks (interactive session, throws on missing creds)\n // and overrides any credential already set above.\n const authEnv = await ensureRemoteBuildAuthentication(cscLink, options.packager.buildResourcesDir)\n deepAssign(isolatedEnv, authEnv)\n }\n\n const projectAppDir = path.join(stageDir, \"app\")\n if (!(await pathExists(projectAppDir))) {\n throw new InvalidConfigurationError(`snap build failed: expected app directory not found at ${projectAppDir}`)\n }\n log.debug({ appFiles: (await readdir(projectAppDir)).slice(0, 20) }, \"app directory contents (truncated)\")\n\n if (!remoteBuild?.enabled && !useLXD && !useMultipass && !useDestructiveMode && process.platform !== \"linux\") {\n throw new InvalidConfigurationError(\n `No snap build environment specified for ${process.platform}. Set one of: useMultipass, useLXD (Linux only), useDestructiveMode (Linux only), or remoteBuild.enabled`\n )\n }\n\n // Actual build — only this step can leave partial artifacts that need cleanup.\n try {\n return await executeWithRetry(\n () =>\n executeSnapcraftBuild({\n workDir: stageDir,\n remoteBuild,\n outputSnap: artifactPath,\n useLXD,\n useMultipass,\n useDestructiveMode,\n isolatedEnv: isolatedEnv,\n }),\n { maxRetries: remoteBuild?.enabled ? 3 : 1, retryDelay: 10000 }\n )\n } catch (error: any) {\n log.error({ error: error.message }, \"snap build failed\")\n await cleanupBuildArtifacts(stageDir).catch((cleanupError: any) => {\n log.warn({ error: cleanupError.message }, \"failed to cleanup build artifacts\")\n })\n throw error\n }\n}\n\n/**\n * Ensures snapcraft is installed on the system\n */\nasync function ensureSnapcraftInstalled(): Promise<void> {\n try {\n const { stdout } = await execAsync(\"snapcraft --version\")\n log.info({ version: stdout.trim() }, \"snapcraft found\")\n } catch (error: any) {\n log.error({ error: error.message }, \"snapcraft is not installed\")\n\n const platform = process.platform\n if (platform === \"linux\") {\n log.error(null, \"Install with: sudo snap install snapcraft --classic\")\n } else if (platform === \"darwin\") {\n log.error(null, \"Install snapcraft with: pip3 install snapcraft\")\n log.error(null, \"On macOS, useMultipass or remoteBuild are the only supported build modes for core24\")\n } else if (platform === \"win32\") {\n log.error(null, \"Install snapcraft via WSL2 or use remote-build\")\n log.error(null, \"See: https://snapcraft.io/docs/snapcraft-overview\")\n }\n\n throw new InvalidConfigurationError(\"snapcraft not found - please install snapcraft to continue\")\n }\n}\n\n/**\n * Resolves Snapcraft Store authentication for remote builds and returns the credential\n * env entries to inject. Returns an empty map when snapcraft can authenticate itself\n * (interactive session). Throws when no credential source is found.\n */\nasync function ensureRemoteBuildAuthentication(cscLink: string | undefined, resourcesDir: string | undefined): Promise<Record<string, string>> {\n log.debug(null, \"resolving remote build authentication...\")\n\n // 1. snapcraft.cscLink / SNAP_CSC_LINK — config-level or env credential (base64 or file path).\n // resolveSnapCredentials already ran for all build modes; re-run here so remote-build\n // gets the same result and the interactive-session fallback is only reached when neither is set.\n const credEnv = await resolveSnapCredentials(cscLink, resourcesDir)\n if (Object.keys(credEnv).length > 0) {\n return credEnv\n }\n\n // 2. SNAPCRAFT_STORE_CREDENTIALS env var — directly provide the credentials string (not base64-encoded).\n const SNAPCRAFT_STORE_CREDENTIALS = process.env.SNAPCRAFT_STORE_CREDENTIALS?.trim()\n if (!isEmptyOrSpaces(SNAPCRAFT_STORE_CREDENTIALS)) {\n log.debug(null, \"using SNAPCRAFT_STORE_CREDENTIALS from environment, verbatim\")\n return { SNAPCRAFT_STORE_CREDENTIALS }\n }\n\n // 3. Interactive snapcraft session.\n try {\n const { stdout } = await execAsync(\"snapcraft whoami\")\n if (stdout.includes(\"email:\")) {\n log.debug({ account: stdout.trim() }, \"already authenticated with snapcraft\")\n return {}\n }\n } catch {\n // Not logged in, fall through to error.\n }\n\n throw new InvalidConfigurationError(\n \"Snapcraft authentication required for remote build.\\n\" +\n \"Authenticate with one of any:\\n\" +\n \" 1. Set SNAP_CSC_LINK\\n\" +\n \" 2. Set snapcraft.cscLink in your build config\\n\" +\n \" 3. Run: snapcraft login\\n\" +\n \" 4. Set SNAPCRAFT_STORE_CREDENTIALS environment variable directly\"\n )\n}\n\ninterface ExecuteSnapcraftOptions {\n workDir: string\n outputSnap: string\n remoteBuild?: RemoteBuildOptions\n useLXD: boolean\n useMultipass: boolean\n useDestructiveMode: boolean\n isolatedEnv: Record<string, string>\n}\n\n/**\n * Executes the snapcraft build command\n */\nasync function executeSnapcraftBuild(options: ExecuteSnapcraftOptions): Promise<string> {\n const { workDir, outputSnap: outputFileName, remoteBuild, useLXD, useMultipass, useDestructiveMode, isolatedEnv } = options\n let processedEnv: NodeJS.ProcessEnv = { ...stripSensitiveEnvVars(process.env), ...isolatedEnv }\n\n // Use a UUID-based temp name as the --output target so the copy below doesn't\n // depend on snapcraft's naming convention (which always uses underscores).\n const tmpSnap = `eb-snap-${randomUUID().replace(/-/g, \"\")}.snap`\n\n if (useDestructiveMode && !remoteBuild?.enabled) {\n return await runDestructiveBuild(workDir, processedEnv, tmpSnap, outputFileName)\n }\n\n const command = \"snapcraft\"\n const args: string[] = []\n\n if (remoteBuild?.enabled) {\n const remoteBuildArgs = generateRemoteBuildArgs(remoteBuild, workDir)\n // Remote build on Launchpad (works from any platform)\n args.push(...remoteBuildArgs.args)\n processedEnv = { ...processedEnv, ...remoteBuildArgs.isolatedEnv }\n } else {\n // `snapcraft pack` runs the full lifecycle (pull → build → stage → prime → pack).\n // snapcraft 8.x removed --use-multipass entirely; Multipass is now configured\n // via the SNAPCRAFT_BUILD_ENVIRONMENT env var (or auto-selected on macOS).\n // --use-lxd remains a supported CLI flag on `pack`.\n args.push(\"pack\")\n if (useLXD) {\n args.push(\"--use-lxd\")\n log.debug(null, \"using LXD for build\")\n } else if (useMultipass) {\n processedEnv.SNAPCRAFT_BUILD_ENVIRONMENT = \"multipass\"\n log.debug(null, \"using Multipass for build (via SNAPCRAFT_BUILD_ENVIRONMENT)\")\n } else {\n args.push(\"--output\", tmpSnap)\n }\n }\n\n if (log.isDebugEnabled) {\n args.push(\"--verbose\")\n }\n\n log.info({ workDir: log.filePath(workDir) }, \"executing snapcraft\")\n\n await spawn(command, args, {\n cwd: workDir,\n env: processedEnv,\n })\n\n if (remoteBuild?.enabled || useLXD || useMultipass) {\n // snapcraft names the output snap itself (e.g. <name>_<version>_<arch>.snap).\n // Each electron-builder build invocation targets exactly one arch, so exactly one snap is expected.\n const files = await readdir(workDir)\n const builtSnap = files.find(f => f.endsWith(\".snap\"))\n if (!builtSnap) {\n throw new Error(`Build succeeded but no .snap file found in ${workDir}`)\n }\n return copySnapToArtifactPath(workDir, builtSnap, outputFileName)\n }\n\n return copySnapToArtifactPath(workDir, tmpSnap, outputFileName)\n}\n\nfunction generateRemoteBuildArgs(remoteBuild: RemoteBuildOptions, workDir: string) {\n const isolatedEnv: Record<string, string> = {}\n const args: string[] = [\"remote-build\"]\n\n log.debug(null, \"using remote-build (Launchpad)\")\n\n // Add remote build specific options\n if (remoteBuild.launchpadUsername) {\n args.push(\"--user\", remoteBuild.launchpadUsername)\n }\n\n if (remoteBuild.acceptPublicUpload) {\n args.push(\"--launchpad-accept-public-upload\")\n } else {\n log.warn(null, \"your project will be publicly uploaded to Launchpad. Use `acceptPublicUpload: true` to suppress this warning\")\n }\n\n if (remoteBuild.privateProject) {\n args.push(\"--project\", remoteBuild.privateProject)\n log.debug({ project: remoteBuild.privateProject }, \"using private Launchpad project\")\n }\n\n if (remoteBuild.buildFor) {\n args.push(\"--build-for\", remoteBuild.buildFor)\n log.debug({ arch: remoteBuild.buildFor }, \"building for architecture\")\n }\n\n if (remoteBuild.recover) {\n args.push(\"--recover\")\n log.debug(null, \"recovering previous build\")\n }\n\n if (remoteBuild.strategy) {\n isolatedEnv.SNAPCRAFT_REMOTE_BUILD_STRATEGY = remoteBuild.strategy\n }\n\n if (remoteBuild.timeout) {\n args.push(\"--timeout\", String(remoteBuild.timeout))\n log.debug({ timeout: `${remoteBuild.timeout}s` }, \"build timeout configured\")\n }\n\n // Remote-build downloads the finished snap into workDir.\n // --output-dir (not --output <file>) lets snapcraft name the file itself.\n args.push(\"--output-dir\", workDir)\n\n return { args, isolatedEnv }\n}\n\n// Snapcraft 8 (craft-application) hangs after a successful destructive-mode\n// build in containerised environments (Docker/CI without snapd running).\n// craft-application's PackageService teardown tries to reach\n// /run/snapd-snap.socket (snapctl IPC) which doesn't exist without a live\n// snapd daemon — causing an indefinite block.\n//\n// Work-around: split into two steps:\n// 1. `snapcraft prime --destructive-mode` — runs pull/build/stage/prime,\n// exits cleanly (no post-pack teardown executed).\n// 2. `snapcraft pack <primeDir>` — packs the pre-primed directory without\n// running the full build lifecycle, avoiding the problematic teardown.\nasync function runDestructiveBuild(workDir: string, processedEnv: NodeJS.ProcessEnv, tmpSnap: string, outputFileName: string) {\n const primeArgs = [\"prime\", \"--destructive-mode\"]\n if (log.isDebugEnabled) {\n primeArgs.push(\"--verbose\")\n }\n log.info({ command: `snapcraft ${primeArgs.join(\" \")}`, workDir: log.filePath(workDir) }, \"snapcraft prime (1/2)\")\n await spawn(\"snapcraft\", primeArgs, {\n cwd: workDir,\n env: processedEnv,\n })\n\n const primeDir = path.join(workDir, \"prime\")\n const snapcraftPackArgs = [\"pack\", \"--output\", tmpSnap, primeDir]\n if (log.isDebugEnabled) {\n snapcraftPackArgs.push(\"--verbose\")\n }\n log.info({ command: `snapcraft ${snapcraftPackArgs.join(\" \")}`, workDir: log.filePath(workDir) }, \"snapcraft pack prime dir (2/2)\")\n await spawn(\"snapcraft\", snapcraftPackArgs, {\n cwd: workDir,\n env: processedEnv,\n })\n\n return copySnapToArtifactPath(workDir, tmpSnap, outputFileName)\n}\n"]}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import type { NotarizeOptionsNotaryTool } from "@electron/notarize/lib/types";
|
|
2
|
+
import type { PerFileSignOptions, SigningDistributionType, SignOptions } from "@electron/osx-sign/dist/cjs/types";
|
|
3
|
+
import type { Identity } from "@electron/osx-sign/dist/cjs/util-identities";
|
|
4
|
+
import { Arch } from "builder-util";
|
|
5
|
+
import { Nullish } from "builder-util-runtime";
|
|
6
|
+
import { CertType } from "../../codeSign/mac/macCodeSign.js";
|
|
7
|
+
import type { MacPackager } from "../../macPackager.js";
|
|
8
|
+
import { MacConfiguration, MasConfiguration } from "../../options/macOptions.js";
|
|
9
|
+
export type PlatformType = "mas" | "mas-dev" | "mac";
|
|
10
|
+
export declare class MacTargetHelper {
|
|
11
|
+
private packager;
|
|
12
|
+
constructor(packager: MacPackager);
|
|
13
|
+
handleNullIdentity(): boolean;
|
|
14
|
+
findSigningIdentity(isMas: boolean, isDevelopment: boolean, qualifier: string | undefined, keychainFile: string | Nullish, config: MacConfiguration | MasConfiguration): Promise<Identity | null>;
|
|
15
|
+
buildSignOptions(appPath: string, identity: Identity, type: SigningDistributionType, isMas: boolean, config: MacConfiguration | MasConfiguration, keychainFile: string | Nullish, arch: Arch): Promise<SignOptions>;
|
|
16
|
+
createMasInstaller(appPath: string, outDir: string, masOptions: MasConfiguration, keychainFile: string | Nullish, isDevelopment: boolean, arch: Arch): Promise<void>;
|
|
17
|
+
getOptionsForFile(appPath: string, isMas: boolean, customSignOptions: MacConfiguration | MasConfiguration): Promise<(filePath: string) => PerFileSignOptions>;
|
|
18
|
+
static getCertificateTypes(isMas: boolean, isDevelopment: boolean): CertType[];
|
|
19
|
+
static isMasTarget(targetName: string): boolean;
|
|
20
|
+
static getPlatformTypeFromTarget(targetName: string): PlatformType;
|
|
21
|
+
/**
|
|
22
|
+
* Returns true when hardened runtime will be active for signing.
|
|
23
|
+
* For non-MAS builds it defaults to on; for MAS it defaults to off.
|
|
24
|
+
*/
|
|
25
|
+
static isHardenedRuntimeEnabledForSigning(isMas: boolean, config: Pick<MacConfiguration | MasConfiguration, "hardenedRuntime">): boolean;
|
|
26
|
+
static assertSafePathForCommandUsage(pathValue: string, description: string): void;
|
|
27
|
+
static getNotarizeOptions(appPath: string): NotarizeOptionsNotaryTool | undefined;
|
|
28
|
+
notarizeIfProvided(appPath: string): Promise<void>;
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=MacTargetHelper.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MacTargetHelper.d.ts","sourceRoot":"","sources":["../../../src/targets/mac/MacTargetHelper.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,yBAAyB,EAAiC,MAAM,8BAA8B,CAAA;AAC5G,OAAO,KAAK,EAAE,kBAAkB,EAAE,uBAAuB,EAAE,WAAW,EAAE,MAAM,mCAAmC,CAAA;AACjH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,6CAA6C,CAAA;AAC3E,OAAO,EAAE,IAAI,EAA8C,MAAM,cAAc,CAAA;AAE/E,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAA;AAE9C,OAAO,EAAE,QAAQ,EAA6B,MAAM,mCAAmC,CAAA;AACvF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAA;AACvD,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAA;AAGhF,MAAM,MAAM,YAAY,GAAG,KAAK,GAAG,SAAS,GAAG,KAAK,CAAA;AAEpD,qBAAa,eAAe;IACd,OAAO,CAAC,QAAQ;gBAAR,QAAQ,EAAE,WAAW;IAEzC,kBAAkB,IAAI,OAAO;IAQvB,mBAAmB,CACvB,KAAK,EAAE,OAAO,EACd,aAAa,EAAE,OAAO,EACtB,SAAS,EAAE,MAAM,GAAG,SAAS,EAC7B,YAAY,EAAE,MAAM,GAAG,OAAO,EAC9B,MAAM,EAAE,gBAAgB,GAAG,gBAAgB,GAC1C,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC;IAuCrB,gBAAgB,CACpB,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,QAAQ,EAClB,IAAI,EAAE,uBAAuB,EAC7B,KAAK,EAAE,OAAO,EACd,MAAM,EAAE,gBAAgB,GAAG,gBAAgB,EAC3C,YAAY,EAAE,MAAM,GAAG,OAAO,EAC9B,IAAI,EAAE,IAAI,GACT,OAAO,CAAC,WAAW,CAAC;IAkFjB,kBAAkB,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,EAAE,aAAa,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAyBpK,iBAAiB,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,GAAG,gBAAgB,GAAG,OAAO,CAAC,CAAC,QAAQ,EAAE,MAAM,KAAK,kBAAkB,CAAC;IAiDnK,MAAM,CAAC,mBAAmB,CAAC,KAAK,EAAE,OAAO,EAAE,aAAa,EAAE,OAAO,GAAG,QAAQ,EAAE;IAO9E,MAAM,CAAC,WAAW,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO;IAI/C,MAAM,CAAC,yBAAyB,CAAC,UAAU,EAAE,MAAM,GAAG,YAAY;IAUlE;;;OAGG;IACH,MAAM,CAAC,kCAAkC,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,gBAAgB,GAAG,gBAAgB,EAAE,iBAAiB,CAAC,GAAG,OAAO;IAIxI,MAAM,CAAC,6BAA6B,CAAC,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,IAAI;IAMlF,MAAM,CAAC,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,yBAAyB,GAAG,SAAS;IA0C3E,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAezD"}
|