app-builder-lib 26.4.1 → 26.5.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.
@@ -476,8 +476,9 @@ class MacPackager extends platformPackager_1.PlatformPackager {
476
476
  Object.assign(appPlist, extendInfo);
477
477
  }
478
478
  for (const [k, v] of Object.entries(appPlist)) {
479
- if (v === null || v === undefined)
479
+ if (v === null || v === undefined) {
480
480
  delete appPlist[k];
481
+ }
481
482
  }
482
483
  }
483
484
  async signApp(packContext, isAsar) {
@@ -1 +1 @@
1
- {"version":3,"file":"macPackager.js","sourceRoot":"","sources":["../src/macPackager.ts"],"names":[],"mappings":"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","sourcesContent":["import { notarize } from \"@electron/notarize\"\nimport { NotarizeOptionsNotaryTool, NotaryToolKeychainCredentials } from \"@electron/notarize/lib/types\"\nimport { PerFileSignOptions, SignOptions } from \"@electron/osx-sign/dist/cjs/types\"\nimport { Identity } from \"@electron/osx-sign/dist/cjs/util-identities\"\nimport {\n Arch,\n AsyncTaskManager,\n copyFile,\n deepAssign,\n exec,\n exists,\n getArchSuffix,\n InvalidConfigurationError,\n log,\n orIfFileNotExist,\n statOrNull,\n unlinkIfExists,\n use,\n} from \"builder-util\"\nimport { MemoLazy, Nullish } from \"builder-util-runtime\"\nimport * as fs from \"fs/promises\"\nimport { mkdir, readdir } from \"fs/promises\"\nimport { Lazy } from \"lazy-val\"\nimport * as path from \"path\"\nimport { AppInfo } from \"./appInfo\"\nimport { CertType, CodeSigningInfo, createKeychain, CreateKeychainOptions, findIdentity, isSignAllowed, removeKeychain, reportError, sign } from \"./codeSign/macCodeSign\"\nimport { DIR_TARGET, Platform, Target } from \"./core\"\nimport { AfterPackContext, ElectronPlatformName } from \"./index\"\nimport { MacConfiguration, MasConfiguration } from \"./options/macOptions\"\nimport { Packager } from \"./packager\"\nimport { chooseNotNull, DoPackOptions, PlatformPackager } from \"./platformPackager\"\nimport { ArchiveTarget } from \"./targets/ArchiveTarget\"\nimport { PkgTarget, prepareProductBuildArgs } from \"./targets/pkg\"\nimport { createCommonTarget, NoOpTarget } from \"./targets/targetFactory\"\nimport { isMacOsHighSierra } from \"./util/macosVersion\"\nimport { getTemplatePath } from \"./util/pathManager\"\nimport { resolveFunction } from \"./util/resolve\"\nimport { expandMacro as doExpandMacro } from \"./util/macroExpander\"\nimport { makeUniversalApp } from \"@electron/universal\"\n\nexport type CustomMacSignOptions = SignOptions\nexport type CustomMacSign = (configuration: CustomMacSignOptions, packager: MacPackager) => Promise<void>\n\nexport class MacPackager extends PlatformPackager<MacConfiguration> {\n readonly codeSigningInfo = new MemoLazy<CreateKeychainOptions | null, CodeSigningInfo>(\n () => {\n const cscLink = this.getCscLink()\n if (cscLink == null || process.platform !== \"darwin\") {\n return null\n }\n\n const selected = {\n tmpDir: this.info.tempDirManager,\n cscLink,\n cscKeyPassword: this.getCscPassword(),\n cscILink: chooseNotNull(this.platformSpecificBuildOptions.cscInstallerLink, process.env.CSC_INSTALLER_LINK),\n cscIKeyPassword: chooseNotNull(this.platformSpecificBuildOptions.cscInstallerKeyPassword, process.env.CSC_INSTALLER_KEY_PASSWORD),\n currentDir: this.projectDir,\n }\n\n return selected\n },\n async selected => {\n if (selected) {\n return createKeychain(selected).then(result => {\n const keychainFile = result.keychainFile\n if (keychainFile != null) {\n this.info.disposeOnBuildFinish(() => removeKeychain(keychainFile))\n }\n return result\n })\n }\n\n return Promise.resolve({ keychainFile: process.env.CSC_KEYCHAIN || null })\n }\n )\n\n private _iconPath = new Lazy(() => this.getOrConvertIcon(\"icns\"))\n\n constructor(info: Packager) {\n super(info, Platform.MAC)\n }\n\n get defaultTarget(): Array<string> {\n return this.info.framework.macOsDefaultTargets\n }\n\n expandArch(pattern: string, arch?: Arch | null): string[] {\n if (arch === Arch.universal) {\n // Universal build has `app-x64.asar.unpacked` & `app-arm64.asar.unpacked`\n return [doExpandMacro(pattern, Arch[Arch.arm64], this.appInfo, {}, false), doExpandMacro(pattern, Arch[Arch.x64], this.appInfo, {}, false)]\n }\n // Every other build keeps the name as `app.asar.unpacked`\n return [doExpandMacro(pattern, null, this.appInfo, {}, false)]\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n protected prepareAppInfo(appInfo: AppInfo): AppInfo {\n // codesign requires the filename to be normalized to the NFD form\n return new AppInfo(this.info, this.platformSpecificBuildOptions.bundleVersion, this.platformSpecificBuildOptions, true)\n }\n\n async getIconPath(): Promise<string | null> {\n return this._iconPath.value\n }\n\n createTargets(targets: Array<string>, mapper: (name: string, factory: (outDir: string) => Target) => void): void {\n for (const name of targets) {\n switch (name) {\n case DIR_TARGET:\n break\n\n case \"dmg\": {\n const { DmgTarget } = require(\"dmg-builder\")\n mapper(name, outDir => new DmgTarget(this, outDir))\n break\n }\n\n case \"zip\":\n // https://github.com/electron-userland/electron-builder/issues/2313\n mapper(name, outDir => new ArchiveTarget(name, outDir, this, true))\n break\n\n case \"pkg\":\n mapper(name, outDir => new PkgTarget(this, outDir))\n break\n\n default:\n mapper(name, outDir => (name === \"mas\" || name === \"mas-dev\" ? new NoOpTarget(name) : createCommonTarget(name, outDir, this)))\n break\n }\n }\n }\n\n protected async doPack(config: DoPackOptions<MacConfiguration>): Promise<any> {\n const { outDir, appOutDir, platformName, arch, platformSpecificBuildOptions, targets } = config\n\n switch (arch) {\n default: {\n return super.doPack(config)\n }\n case Arch.universal: {\n const outDirName = (arch: Arch) => `${appOutDir}-${Arch[arch]}-temp`\n const options = {\n ...config,\n options: {\n sign: false,\n disableAsarIntegrity: true,\n disableFuses: true,\n },\n }\n\n const x64Arch = Arch.x64\n const x64AppOutDir = outDirName(x64Arch)\n await super.doPack({ ...options, appOutDir: x64AppOutDir, arch: x64Arch })\n\n if (this.info.cancellationToken.cancelled) {\n return\n }\n\n const arm64Arch = Arch.arm64\n const arm64AppOutPath = outDirName(arm64Arch)\n await super.doPack({ ...options, appOutDir: arm64AppOutPath, arch: arm64Arch })\n\n if (this.info.cancellationToken.cancelled) {\n return\n }\n\n const framework = this.info.framework\n log.info(\n {\n platform: platformName,\n arch: Arch[arch],\n [`${framework.name}`]: framework.version,\n appOutDir: log.filePath(appOutDir),\n },\n `packaging`\n )\n const appFile = `${this.appInfo.productFilename}.app`\n\n // Make sure the Assets.car file is the same for both architectures\n const sourceCatalogPath = path.join(x64AppOutDir, appFile, \"Contents/Resources/Assets.car\")\n if (await exists(sourceCatalogPath)) {\n const targetCatalogPath = path.join(arm64AppOutPath, appFile, \"Contents/Resources/Assets.car\")\n await fs.copyFile(sourceCatalogPath, targetCatalogPath)\n }\n\n await makeUniversalApp({\n x64AppPath: path.join(x64AppOutDir, appFile),\n arm64AppPath: path.join(arm64AppOutPath, appFile),\n outAppPath: path.join(appOutDir, appFile),\n force: true,\n mergeASARs: platformSpecificBuildOptions.mergeASARs ?? true, // must be ?? to allow false\n singleArchFiles: platformSpecificBuildOptions.singleArchFiles || undefined,\n x64ArchFiles: platformSpecificBuildOptions.x64ArchFiles || undefined,\n })\n await fs.rm(x64AppOutDir, { recursive: true, force: true })\n await fs.rm(arm64AppOutPath, { recursive: true, force: true })\n\n // Give users a final opportunity to perform things on the combined universal package before signing\n const packContext: AfterPackContext = {\n appOutDir,\n outDir,\n arch,\n targets,\n packager: this,\n electronPlatformName: platformName,\n }\n await this.info.emitAfterPack(packContext)\n\n if (this.info.cancellationToken.cancelled) {\n return\n }\n\n await this.doAddElectronFuses(packContext)\n\n await this.doSignAfterPack(outDir, appOutDir, platformName, arch, platformSpecificBuildOptions, targets)\n break\n }\n }\n }\n\n async pack(outDir: string, arch: Arch, targets: Array<Target>, taskManager: AsyncTaskManager): Promise<void> {\n const hasMas = targets.length !== 0 && targets.some(it => it.name === \"mas\" || it.name === \"mas-dev\")\n const prepackaged = this.packagerOptions.prepackaged\n\n for (const target of targets) {\n const targetName = target.name\n if (!(targetName === \"mas\" || targetName === \"mas-dev\")) {\n continue\n }\n\n const masBuildOptions = deepAssign({}, this.platformSpecificBuildOptions, this.config.mas)\n if (targetName === \"mas-dev\") {\n deepAssign(masBuildOptions, this.config.masDev, {\n type: \"development\",\n })\n }\n\n const targetOutDir = path.join(outDir, `${targetName}${getArchSuffix(arch, this.platformSpecificBuildOptions.defaultArch)}`)\n if (prepackaged == null) {\n await this.doPack({ outDir, appOutDir: targetOutDir, platformName: \"mas\", arch, platformSpecificBuildOptions: masBuildOptions, targets: [target] })\n await this.sign(path.join(targetOutDir, `${this.appInfo.productFilename}.app`), targetOutDir, masBuildOptions, arch)\n } else {\n await this.sign(prepackaged, targetOutDir, masBuildOptions, arch)\n }\n }\n\n if (!hasMas || targets.length > 1) {\n const appPath = prepackaged == null ? path.join(this.computeAppOutDir(outDir, arch), `${this.appInfo.productFilename}.app`) : prepackaged\n if (prepackaged == null) {\n await this.doPack({\n outDir,\n appOutDir: path.dirname(appPath),\n platformName: this.platform.nodeName as ElectronPlatformName,\n arch,\n platformSpecificBuildOptions: this.platformSpecificBuildOptions,\n targets,\n })\n }\n this.packageInDistributableFormat(appPath, arch, targets, taskManager)\n }\n }\n\n private async sign(appPath: string, outDir: string | null, masOptions: MasConfiguration | null, arch: Arch): Promise<boolean> {\n if (!isSignAllowed()) {\n return false\n }\n\n const isMas = masOptions != null\n const options = masOptions == null ? this.platformSpecificBuildOptions : masOptions\n const qualifier = options.identity\n const fallBackToAdhoc = (arch === Arch.arm64 || arch === Arch.universal) && !this.forceCodeSigning\n\n if (qualifier === null) {\n if (this.forceCodeSigning) {\n throw new InvalidConfigurationError(\"identity explicitly is set to null, but forceCodeSigning is set to true\")\n }\n log.info({ reason: \"identity explicitly is set to null\" }, \"skipped macOS code signing\")\n if (fallBackToAdhoc) {\n log.warn(\"arm64 requires signing, but identity is set to null and signing is being skipped\")\n }\n return false\n }\n\n const keychainFile = (await this.codeSigningInfo.value).keychainFile\n const explicitType = options.type\n const type = explicitType || \"distribution\"\n const isDevelopment = type === \"development\"\n const certificateTypes = getCertificateTypes(isMas, isDevelopment)\n\n let identity = null\n for (const certificateType of certificateTypes) {\n identity = await findIdentity(certificateType, qualifier, keychainFile)\n if (identity != null) {\n break\n }\n }\n\n if (identity == null) {\n if (!isMas && !isDevelopment && explicitType !== \"distribution\") {\n identity = await findIdentity(\"Mac Developer\", qualifier, keychainFile)\n if (identity != null) {\n log.warn(\"Mac Developer is used to sign app — it is only for development and testing, not for production\")\n }\n }\n\n const noIdentity = !options.sign && identity == null\n if (qualifier === \"-\") {\n identity = new Identity(\"-\", undefined)\n } else if (noIdentity && fallBackToAdhoc) {\n log.warn(null, \"falling back to ad-hoc signature for macOS application code signing\")\n identity = new Identity(\"-\", undefined)\n } else if (noIdentity) {\n await reportError(isMas, certificateTypes, qualifier, keychainFile, this.forceCodeSigning)\n return false\n }\n }\n\n if (!isMacOsHighSierra()) {\n throw new InvalidConfigurationError(\"macOS High Sierra 10.13.6 is required to sign\")\n }\n\n let filter = options.signIgnore\n if (Array.isArray(filter)) {\n if (filter.length == 0) {\n filter = null\n }\n } else if (filter != null) {\n filter = filter.length === 0 ? null : [filter]\n }\n\n const filterRe = filter == null ? null : filter.map(it => new RegExp(it))\n\n let binaries = options.binaries || undefined\n if (binaries) {\n // Accept absolute paths for external binaries, else resolve relative paths from the artifact's app Contents path.\n binaries = (\n await Promise.all(\n binaries.flatMap(async destination => {\n const expandedDestination = this.expandArch(destination, arch)\n return await Promise.all(\n expandedDestination.map(async d => {\n if (await statOrNull(d)) {\n return d\n }\n return path.resolve(appPath, d)\n })\n )\n })\n )\n ).flat()\n log.info({ binaries, arch: arch == null ? null : Arch[arch] }, \"signing additional user-defined binaries for arch\")\n }\n const customSignOptions: MasConfiguration | MacConfiguration = (isMas ? masOptions : this.platformSpecificBuildOptions) || this.platformSpecificBuildOptions\n\n const signOptions: SignOptions = {\n identityValidation: false,\n // https://github.com/electron-userland/electron-builder/issues/1699\n // kext are signed by the chipset manufacturers. You need a special certificate (only available on request) from Apple to be able to sign kext.\n ignore: (file: string) => {\n if (filterRe != null) {\n for (const regExp of filterRe) {\n if (regExp.test(file)) {\n return true\n }\n }\n }\n return (\n file.endsWith(\".kext\") ||\n file.startsWith(\"/Contents/PlugIns\", appPath.length) ||\n file.includes(\"/node_modules/puppeteer/.local-chromium\") ||\n file.includes(\"/node_modules/playwright-firefox/.local-browsers\") ||\n file.includes(\"/node_modules/playwright/.local-browsers\")\n )\n\n /* Those are browser automating modules, browser (chromium, nightly) cannot be signed\n https://github.com/electron-userland/electron-builder/issues/2010\n https://github.com/electron-userland/electron-builder/issues/5383\n */\n },\n identity: identity ? identity.hash || identity.name : undefined,\n type,\n platform: isMas ? \"mas\" : \"darwin\",\n version: this.config.electronVersion || undefined,\n app: appPath,\n keychain: keychainFile || undefined,\n binaries,\n // https://github.com/electron-userland/electron-builder/issues/1480\n strictVerify: options.strictVerify,\n preAutoEntitlements: options.preAutoEntitlements,\n optionsForFile: await this.getOptionsForFile(appPath, isMas, customSignOptions),\n provisioningProfile: customSignOptions.provisioningProfile || undefined,\n }\n\n await this.doSign(signOptions, customSignOptions, identity)\n\n // https://github.com/electron-userland/electron-builder/issues/1196#issuecomment-312310209\n if (masOptions != null && !isDevelopment) {\n const certType = isDevelopment ? \"Mac Developer\" : \"3rd Party Mac Developer Installer\"\n const masInstallerIdentity = await findIdentity(certType, masOptions.identity, keychainFile)\n if (masInstallerIdentity == null) {\n throw new InvalidConfigurationError(`Cannot find valid \"${certType}\" identity to sign MAS installer, please see https://electron.build/code-signing`)\n }\n\n // mas uploaded to AppStore, so, use \"-\" instead of space for name\n const artifactName = this.expandArtifactNamePattern(masOptions, \"pkg\", arch)\n const artifactPath = path.join(outDir!, artifactName)\n await this.doFlat(appPath, artifactPath, masInstallerIdentity, keychainFile)\n await this.info.emitArtifactBuildCompleted({\n file: artifactPath,\n target: null,\n arch: Arch.x64,\n safeArtifactName: this.computeSafeArtifactName(artifactName, \"pkg\", arch, true, this.platformSpecificBuildOptions.defaultArch),\n packager: this,\n })\n }\n\n if (!isMas) {\n await this.notarizeIfProvided(appPath)\n }\n return true\n }\n\n private async getOptionsForFile(appPath: string, isMas: boolean, customSignOptions: MacConfiguration) {\n const resourceList = await this.resourceList\n const entitlementsSuffix = isMas ? \"mas\" : \"mac\"\n\n const getEntitlements = (filePath: string) => {\n // check if root app, then use main entitlements\n if (filePath === appPath) {\n if (customSignOptions.entitlements) {\n return customSignOptions.entitlements\n }\n const p = `entitlements.${entitlementsSuffix}.plist`\n if (resourceList.includes(p)) {\n return path.join(this.info.buildResourcesDir, p)\n } else {\n return getTemplatePath(\"entitlements.mac.plist\")\n }\n }\n\n // It's a login helper...\n if (filePath.includes(\"Library/LoginItems\")) {\n return customSignOptions.entitlementsLoginHelper\n }\n\n // Only remaining option is that it's inherited entitlements\n if (customSignOptions.entitlementsInherit) {\n return customSignOptions.entitlementsInherit\n }\n const p = `entitlements.${entitlementsSuffix}.inherit.plist`\n if (resourceList.includes(p)) {\n return path.join(this.info.buildResourcesDir, p)\n } else {\n return getTemplatePath(\"entitlements.mac.plist\")\n }\n }\n\n const requirements = isMas || this.platformSpecificBuildOptions.requirements == null ? undefined : await this.getResource(this.platformSpecificBuildOptions.requirements)\n\n // harden by default for mac builds. Only harden mas builds if explicitly true (backward compatibility)\n const hardenedRuntime = isMas ? customSignOptions.hardenedRuntime === true : customSignOptions.hardenedRuntime !== false\n\n const optionsForFile: (filePath: string) => PerFileSignOptions = filePath => {\n const entitlements = getEntitlements(filePath)\n const args = {\n entitlements: entitlements || undefined,\n hardenedRuntime: hardenedRuntime ?? undefined,\n timestamp: customSignOptions.timestamp || undefined,\n requirements: requirements || undefined,\n additionalArguments: customSignOptions.additionalArguments || [],\n }\n log.debug({ file: log.filePath(filePath), ...args }, \"selecting signing options\")\n return args\n }\n return optionsForFile\n }\n\n //noinspection JSMethodCanBeStatic\n protected async doSign(opts: SignOptions, customSignOptions: MacConfiguration, identity: Identity | null): Promise<void> {\n const customSign = await resolveFunction(this.appInfo.type, customSignOptions.sign, \"sign\")\n\n const { app, platform, type, provisioningProfile } = opts\n log.info(\n {\n file: log.filePath(app),\n platform,\n type,\n identityName: identity?.name || \"none\",\n identityHash: identity?.hash || \"none\",\n provisioningProfile: provisioningProfile || \"none\",\n },\n customSign ? \"executing custom sign\" : \"signing\"\n )\n\n return customSign ? Promise.resolve(customSign(opts, this)) : sign({ ...opts, identity: identity ? identity.name : undefined })\n }\n\n //noinspection JSMethodCanBeStatic\n protected async doFlat(appPath: string, outFile: string, identity: Identity, keychain: string | Nullish): Promise<any> {\n // productbuild doesn't created directory for out file\n await mkdir(path.dirname(outFile), { recursive: true })\n\n const args = prepareProductBuildArgs(identity, keychain)\n args.push(\"--component\", appPath, \"/Applications\")\n args.push(outFile)\n return await exec(\"productbuild\", args)\n }\n\n public getElectronSrcDir(dist: string) {\n return path.resolve(this.projectDir, dist, this.info.framework.distMacOsAppName)\n }\n\n public getElectronDestinationDir(appOutDir: string) {\n return path.join(appOutDir, this.info.framework.distMacOsAppName)\n }\n\n // todo fileAssociations\n async applyCommonInfo(appPlist: any, contentsPath: string) {\n const appInfo = this.appInfo\n const appFilename = appInfo.productFilename\n\n // https://github.com/electron-userland/electron-builder/issues/1278\n appPlist.CFBundleExecutable = appFilename.endsWith(\" Helper\") ? appFilename.substring(0, appFilename.length - \" Helper\".length) : appFilename\n\n const resourcesPath = path.join(contentsPath, \"Resources\")\n\n // Support both legacy `.icns` and modern `.icon` (Icon Composer) inputs via `mac.icon`.\n // Prefer `.icon` if provided; still accept `.icns`.\n const configuredIcon = this.platformSpecificBuildOptions.icon\n const isIconComposer = typeof configuredIcon === \"string\" && configuredIcon.toLowerCase().endsWith(\".icon\")\n\n // Set the app name\n appPlist.CFBundleName = appInfo.productName\n appPlist.CFBundleDisplayName = appInfo.productName\n\n // Bundle legacy `icns` format - this should also run when `.icon` is provided\n const setIcnsFile = async (iconPath: string) => {\n const oldIcon = appPlist.CFBundleIconFile\n if (oldIcon != null) {\n await unlinkIfExists(path.join(resourcesPath, oldIcon))\n }\n const iconFileName = \"icon.icns\"\n appPlist.CFBundleIconFile = iconFileName\n await copyFile(iconPath, path.join(resourcesPath, iconFileName))\n }\n\n const icnsFilePath = await this.getIconPath()\n if (icnsFilePath != null) {\n await setIcnsFile(icnsFilePath)\n }\n\n // Bundle new `icon` format\n if (isIconComposer && configuredIcon) {\n const iconComposerPath = await this.getResource(configuredIcon)\n if (iconComposerPath) {\n const { assetCatalog } = await this.generateAssetCatalogData(iconComposerPath)\n\n // Create and setup the asset catalog\n appPlist.CFBundleIconName = \"Icon\"\n await fs.writeFile(path.join(resourcesPath, \"Assets.car\"), assetCatalog)\n }\n }\n\n const minimumSystemVersion = this.platformSpecificBuildOptions.minimumSystemVersion\n if (minimumSystemVersion != null) {\n appPlist.LSMinimumSystemVersion = minimumSystemVersion\n }\n\n appPlist.CFBundleShortVersionString = this.platformSpecificBuildOptions.bundleShortVersion || appInfo.version\n appPlist.CFBundleVersion = appInfo.buildVersion\n\n use(this.platformSpecificBuildOptions.category || (this.config as any).category, it => (appPlist.LSApplicationCategoryType = it))\n appPlist.NSHumanReadableCopyright = appInfo.copyright\n\n if (this.platformSpecificBuildOptions.darkModeSupport) {\n appPlist.NSRequiresAquaSystemAppearance = false\n }\n\n const extendInfo = this.platformSpecificBuildOptions.extendInfo\n if (extendInfo != null) {\n Object.assign(appPlist, extendInfo)\n }\n for (const [k, v] of Object.entries(appPlist)) {\n if (v === null || v === undefined) delete appPlist[k]\n }\n }\n\n protected async signApp(packContext: AfterPackContext, isAsar: boolean): Promise<boolean> {\n const readDirectoryAndSign = async (sourceDirectory: string, directories: string[], shouldSign: (file: string) => boolean): Promise<boolean> => {\n await Promise.all(\n directories.map(async (file: string) => {\n if (shouldSign(file)) {\n await this.sign(path.join(sourceDirectory, file), null, null, packContext.arch)\n }\n })\n )\n return true\n }\n\n const appFileName = `${this.appInfo.productFilename}.app`\n await readDirectoryAndSign(packContext.appOutDir, await readdir(packContext.appOutDir), file => file === appFileName)\n if (!isAsar) {\n return true\n }\n\n const outResourcesDir = path.join(packContext.appOutDir, \"resources\", \"app.asar.unpacked\")\n await readDirectoryAndSign(outResourcesDir, await orIfFileNotExist(readdir(outResourcesDir), []), file => file.endsWith(\".app\"))\n\n return true\n }\n\n async notarizeIfProvided(appPath: string) {\n const notarizeOptions = this.platformSpecificBuildOptions.notarize\n if (notarizeOptions === false) {\n log.info({ reason: \"`notarize` options were set explicitly `false`\" }, \"skipped macOS notarization\")\n return\n }\n const options = this.getNotarizeOptions(appPath)\n if (!options) {\n log.warn({ reason: \"`notarize` options were unable to be generated\" }, \"skipped macOS notarization\")\n return\n }\n await notarize(options)\n log.info(null, \"notarization successful\")\n }\n\n private getNotarizeOptions(appPath: string): NotarizeOptionsNotaryTool | undefined {\n const teamId = process.env.APPLE_TEAM_ID\n const appleId = process.env.APPLE_ID\n const appleIdPassword = process.env.APPLE_APP_SPECIFIC_PASSWORD\n const tool = \"notarytool\"\n\n // option 1: app specific password\n if (appleId || appleIdPassword) {\n if (!appleId) {\n throw new InvalidConfigurationError(`APPLE_ID env var needs to be set`)\n }\n if (!appleIdPassword) {\n throw new InvalidConfigurationError(`APPLE_APP_SPECIFIC_PASSWORD env var needs to be set`)\n }\n if (!teamId) {\n throw new InvalidConfigurationError(`APPLE_TEAM_ID env var needs to be set`)\n }\n return { tool, appPath, appleId, appleIdPassword, teamId }\n }\n\n // option 2: API key\n const appleApiKey = process.env.APPLE_API_KEY\n const appleApiKeyId = process.env.APPLE_API_KEY_ID\n const appleApiIssuer = process.env.APPLE_API_ISSUER\n if (appleApiKey || appleApiKeyId || appleApiIssuer) {\n if (!appleApiKey || !appleApiKeyId || !appleApiIssuer) {\n throw new InvalidConfigurationError(`Env vars APPLE_API_KEY, APPLE_API_KEY_ID and APPLE_API_ISSUER need to be set`)\n }\n return { tool, appPath, appleApiKey, appleApiKeyId, appleApiIssuer }\n }\n\n // option 3: keychain\n const keychain = process.env.APPLE_KEYCHAIN\n const keychainProfile = process.env.APPLE_KEYCHAIN_PROFILE\n if (keychainProfile) {\n let args: NotaryToolKeychainCredentials = { keychainProfile }\n if (keychain) {\n args = { ...args, keychain }\n }\n return { tool, appPath, ...args }\n }\n\n // if no credentials provided, skip silently\n return undefined\n }\n}\n\nfunction getCertificateTypes(isMas: boolean, isDevelopment: boolean): CertType[] {\n if (isDevelopment) {\n return isMas ? [\"Mac Developer\", \"Apple Development\"] : [\"Mac Developer\", \"Developer ID Application\"]\n }\n return isMas ? [\"Apple Distribution\", \"3rd Party Mac Developer Application\"] : [\"Developer ID Application\"]\n}\n"]}
1
+ {"version":3,"file":"macPackager.js","sourceRoot":"","sources":["../src/macPackager.ts"],"names":[],"mappings":"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","sourcesContent":["import { notarize } from \"@electron/notarize\"\nimport { NotarizeOptionsNotaryTool, NotaryToolKeychainCredentials } from \"@electron/notarize/lib/types\"\nimport { PerFileSignOptions, SignOptions } from \"@electron/osx-sign/dist/cjs/types\"\nimport { Identity } from \"@electron/osx-sign/dist/cjs/util-identities\"\nimport {\n Arch,\n AsyncTaskManager,\n copyFile,\n deepAssign,\n exec,\n exists,\n getArchSuffix,\n InvalidConfigurationError,\n log,\n orIfFileNotExist,\n statOrNull,\n unlinkIfExists,\n use,\n} from \"builder-util\"\nimport { MemoLazy, Nullish } from \"builder-util-runtime\"\nimport * as fs from \"fs/promises\"\nimport { mkdir, readdir } from \"fs/promises\"\nimport { Lazy } from \"lazy-val\"\nimport * as path from \"path\"\nimport { AppInfo } from \"./appInfo\"\nimport { CertType, CodeSigningInfo, createKeychain, CreateKeychainOptions, findIdentity, isSignAllowed, removeKeychain, reportError, sign } from \"./codeSign/macCodeSign\"\nimport { DIR_TARGET, Platform, Target } from \"./core\"\nimport { AfterPackContext, ElectronPlatformName } from \"./index\"\nimport { MacConfiguration, MasConfiguration } from \"./options/macOptions\"\nimport { Packager } from \"./packager\"\nimport { chooseNotNull, DoPackOptions, PlatformPackager } from \"./platformPackager\"\nimport { ArchiveTarget } from \"./targets/ArchiveTarget\"\nimport { PkgTarget, prepareProductBuildArgs } from \"./targets/pkg\"\nimport { createCommonTarget, NoOpTarget } from \"./targets/targetFactory\"\nimport { isMacOsHighSierra } from \"./util/macosVersion\"\nimport { getTemplatePath } from \"./util/pathManager\"\nimport { resolveFunction } from \"./util/resolve\"\nimport { expandMacro as doExpandMacro } from \"./util/macroExpander\"\nimport { makeUniversalApp } from \"@electron/universal\"\n\nexport type CustomMacSignOptions = SignOptions\nexport type CustomMacSign = (configuration: CustomMacSignOptions, packager: MacPackager) => Promise<void>\n\nexport class MacPackager extends PlatformPackager<MacConfiguration> {\n readonly codeSigningInfo = new MemoLazy<CreateKeychainOptions | null, CodeSigningInfo>(\n () => {\n const cscLink = this.getCscLink()\n if (cscLink == null || process.platform !== \"darwin\") {\n return null\n }\n\n const selected = {\n tmpDir: this.info.tempDirManager,\n cscLink,\n cscKeyPassword: this.getCscPassword(),\n cscILink: chooseNotNull(this.platformSpecificBuildOptions.cscInstallerLink, process.env.CSC_INSTALLER_LINK),\n cscIKeyPassword: chooseNotNull(this.platformSpecificBuildOptions.cscInstallerKeyPassword, process.env.CSC_INSTALLER_KEY_PASSWORD),\n currentDir: this.projectDir,\n }\n\n return selected\n },\n async selected => {\n if (selected) {\n return createKeychain(selected).then(result => {\n const keychainFile = result.keychainFile\n if (keychainFile != null) {\n this.info.disposeOnBuildFinish(() => removeKeychain(keychainFile))\n }\n return result\n })\n }\n\n return Promise.resolve({ keychainFile: process.env.CSC_KEYCHAIN || null })\n }\n )\n\n private _iconPath = new Lazy(() => this.getOrConvertIcon(\"icns\"))\n\n constructor(info: Packager) {\n super(info, Platform.MAC)\n }\n\n get defaultTarget(): Array<string> {\n return this.info.framework.macOsDefaultTargets\n }\n\n expandArch(pattern: string, arch?: Arch | null): string[] {\n if (arch === Arch.universal) {\n // Universal build has `app-x64.asar.unpacked` & `app-arm64.asar.unpacked`\n return [doExpandMacro(pattern, Arch[Arch.arm64], this.appInfo, {}, false), doExpandMacro(pattern, Arch[Arch.x64], this.appInfo, {}, false)]\n }\n // Every other build keeps the name as `app.asar.unpacked`\n return [doExpandMacro(pattern, null, this.appInfo, {}, false)]\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n protected prepareAppInfo(appInfo: AppInfo): AppInfo {\n // codesign requires the filename to be normalized to the NFD form\n return new AppInfo(this.info, this.platformSpecificBuildOptions.bundleVersion, this.platformSpecificBuildOptions, true)\n }\n\n async getIconPath(): Promise<string | null> {\n return this._iconPath.value\n }\n\n createTargets(targets: Array<string>, mapper: (name: string, factory: (outDir: string) => Target) => void): void {\n for (const name of targets) {\n switch (name) {\n case DIR_TARGET:\n break\n\n case \"dmg\": {\n const { DmgTarget } = require(\"dmg-builder\")\n mapper(name, outDir => new DmgTarget(this, outDir))\n break\n }\n\n case \"zip\":\n // https://github.com/electron-userland/electron-builder/issues/2313\n mapper(name, outDir => new ArchiveTarget(name, outDir, this, true))\n break\n\n case \"pkg\":\n mapper(name, outDir => new PkgTarget(this, outDir))\n break\n\n default:\n mapper(name, outDir => (name === \"mas\" || name === \"mas-dev\" ? new NoOpTarget(name) : createCommonTarget(name, outDir, this)))\n break\n }\n }\n }\n\n protected async doPack(config: DoPackOptions<MacConfiguration>): Promise<any> {\n const { outDir, appOutDir, platformName, arch, platformSpecificBuildOptions, targets } = config\n\n switch (arch) {\n default: {\n return super.doPack(config)\n }\n case Arch.universal: {\n const outDirName = (arch: Arch) => `${appOutDir}-${Arch[arch]}-temp`\n const options = {\n ...config,\n options: {\n sign: false,\n disableAsarIntegrity: true,\n disableFuses: true,\n },\n }\n\n const x64Arch = Arch.x64\n const x64AppOutDir = outDirName(x64Arch)\n await super.doPack({ ...options, appOutDir: x64AppOutDir, arch: x64Arch })\n\n if (this.info.cancellationToken.cancelled) {\n return\n }\n\n const arm64Arch = Arch.arm64\n const arm64AppOutPath = outDirName(arm64Arch)\n await super.doPack({ ...options, appOutDir: arm64AppOutPath, arch: arm64Arch })\n\n if (this.info.cancellationToken.cancelled) {\n return\n }\n\n const framework = this.info.framework\n log.info(\n {\n platform: platformName,\n arch: Arch[arch],\n [`${framework.name}`]: framework.version,\n appOutDir: log.filePath(appOutDir),\n },\n `packaging`\n )\n const appFile = `${this.appInfo.productFilename}.app`\n\n // Make sure the Assets.car file is the same for both architectures\n const sourceCatalogPath = path.join(x64AppOutDir, appFile, \"Contents/Resources/Assets.car\")\n if (await exists(sourceCatalogPath)) {\n const targetCatalogPath = path.join(arm64AppOutPath, appFile, \"Contents/Resources/Assets.car\")\n await fs.copyFile(sourceCatalogPath, targetCatalogPath)\n }\n\n await makeUniversalApp({\n x64AppPath: path.join(x64AppOutDir, appFile),\n arm64AppPath: path.join(arm64AppOutPath, appFile),\n outAppPath: path.join(appOutDir, appFile),\n force: true,\n mergeASARs: platformSpecificBuildOptions.mergeASARs ?? true, // must be ?? to allow false\n singleArchFiles: platformSpecificBuildOptions.singleArchFiles || undefined,\n x64ArchFiles: platformSpecificBuildOptions.x64ArchFiles || undefined,\n })\n await fs.rm(x64AppOutDir, { recursive: true, force: true })\n await fs.rm(arm64AppOutPath, { recursive: true, force: true })\n\n // Give users a final opportunity to perform things on the combined universal package before signing\n const packContext: AfterPackContext = {\n appOutDir,\n outDir,\n arch,\n targets,\n packager: this,\n electronPlatformName: platformName,\n }\n await this.info.emitAfterPack(packContext)\n\n if (this.info.cancellationToken.cancelled) {\n return\n }\n\n await this.doAddElectronFuses(packContext)\n\n await this.doSignAfterPack(outDir, appOutDir, platformName, arch, platformSpecificBuildOptions, targets)\n break\n }\n }\n }\n\n async pack(outDir: string, arch: Arch, targets: Array<Target>, taskManager: AsyncTaskManager): Promise<void> {\n const hasMas = targets.length !== 0 && targets.some(it => it.name === \"mas\" || it.name === \"mas-dev\")\n const prepackaged = this.packagerOptions.prepackaged\n\n for (const target of targets) {\n const targetName = target.name\n if (!(targetName === \"mas\" || targetName === \"mas-dev\")) {\n continue\n }\n\n const masBuildOptions = deepAssign({}, this.platformSpecificBuildOptions, this.config.mas)\n if (targetName === \"mas-dev\") {\n deepAssign(masBuildOptions, this.config.masDev, {\n type: \"development\",\n })\n }\n\n const targetOutDir = path.join(outDir, `${targetName}${getArchSuffix(arch, this.platformSpecificBuildOptions.defaultArch)}`)\n if (prepackaged == null) {\n await this.doPack({ outDir, appOutDir: targetOutDir, platformName: \"mas\", arch, platformSpecificBuildOptions: masBuildOptions, targets: [target] })\n await this.sign(path.join(targetOutDir, `${this.appInfo.productFilename}.app`), targetOutDir, masBuildOptions, arch)\n } else {\n await this.sign(prepackaged, targetOutDir, masBuildOptions, arch)\n }\n }\n\n if (!hasMas || targets.length > 1) {\n const appPath = prepackaged == null ? path.join(this.computeAppOutDir(outDir, arch), `${this.appInfo.productFilename}.app`) : prepackaged\n if (prepackaged == null) {\n await this.doPack({\n outDir,\n appOutDir: path.dirname(appPath),\n platformName: this.platform.nodeName as ElectronPlatformName,\n arch,\n platformSpecificBuildOptions: this.platformSpecificBuildOptions,\n targets,\n })\n }\n this.packageInDistributableFormat(appPath, arch, targets, taskManager)\n }\n }\n\n private async sign(appPath: string, outDir: string | null, masOptions: MasConfiguration | null, arch: Arch): Promise<boolean> {\n if (!isSignAllowed()) {\n return false\n }\n\n const isMas = masOptions != null\n const options = masOptions == null ? this.platformSpecificBuildOptions : masOptions\n const qualifier = options.identity\n const fallBackToAdhoc = (arch === Arch.arm64 || arch === Arch.universal) && !this.forceCodeSigning\n\n if (qualifier === null) {\n if (this.forceCodeSigning) {\n throw new InvalidConfigurationError(\"identity explicitly is set to null, but forceCodeSigning is set to true\")\n }\n log.info({ reason: \"identity explicitly is set to null\" }, \"skipped macOS code signing\")\n if (fallBackToAdhoc) {\n log.warn(\"arm64 requires signing, but identity is set to null and signing is being skipped\")\n }\n return false\n }\n\n const keychainFile = (await this.codeSigningInfo.value).keychainFile\n const explicitType = options.type\n const type = explicitType || \"distribution\"\n const isDevelopment = type === \"development\"\n const certificateTypes = getCertificateTypes(isMas, isDevelopment)\n\n let identity = null\n for (const certificateType of certificateTypes) {\n identity = await findIdentity(certificateType, qualifier, keychainFile)\n if (identity != null) {\n break\n }\n }\n\n if (identity == null) {\n if (!isMas && !isDevelopment && explicitType !== \"distribution\") {\n identity = await findIdentity(\"Mac Developer\", qualifier, keychainFile)\n if (identity != null) {\n log.warn(\"Mac Developer is used to sign app — it is only for development and testing, not for production\")\n }\n }\n\n const noIdentity = !options.sign && identity == null\n if (qualifier === \"-\") {\n identity = new Identity(\"-\", undefined)\n } else if (noIdentity && fallBackToAdhoc) {\n log.warn(null, \"falling back to ad-hoc signature for macOS application code signing\")\n identity = new Identity(\"-\", undefined)\n } else if (noIdentity) {\n await reportError(isMas, certificateTypes, qualifier, keychainFile, this.forceCodeSigning)\n return false\n }\n }\n\n if (!isMacOsHighSierra()) {\n throw new InvalidConfigurationError(\"macOS High Sierra 10.13.6 is required to sign\")\n }\n\n let filter = options.signIgnore\n if (Array.isArray(filter)) {\n if (filter.length == 0) {\n filter = null\n }\n } else if (filter != null) {\n filter = filter.length === 0 ? null : [filter]\n }\n\n const filterRe = filter == null ? null : filter.map(it => new RegExp(it))\n\n let binaries = options.binaries || undefined\n if (binaries) {\n // Accept absolute paths for external binaries, else resolve relative paths from the artifact's app Contents path.\n binaries = (\n await Promise.all(\n binaries.flatMap(async destination => {\n const expandedDestination = this.expandArch(destination, arch)\n return await Promise.all(\n expandedDestination.map(async d => {\n if (await statOrNull(d)) {\n return d\n }\n return path.resolve(appPath, d)\n })\n )\n })\n )\n ).flat()\n log.info({ binaries, arch: arch == null ? null : Arch[arch] }, \"signing additional user-defined binaries for arch\")\n }\n const customSignOptions: MasConfiguration | MacConfiguration = (isMas ? masOptions : this.platformSpecificBuildOptions) || this.platformSpecificBuildOptions\n\n const signOptions: SignOptions = {\n identityValidation: false,\n // https://github.com/electron-userland/electron-builder/issues/1699\n // kext are signed by the chipset manufacturers. You need a special certificate (only available on request) from Apple to be able to sign kext.\n ignore: (file: string) => {\n if (filterRe != null) {\n for (const regExp of filterRe) {\n if (regExp.test(file)) {\n return true\n }\n }\n }\n return (\n file.endsWith(\".kext\") ||\n file.startsWith(\"/Contents/PlugIns\", appPath.length) ||\n file.includes(\"/node_modules/puppeteer/.local-chromium\") ||\n file.includes(\"/node_modules/playwright-firefox/.local-browsers\") ||\n file.includes(\"/node_modules/playwright/.local-browsers\")\n )\n\n /* Those are browser automating modules, browser (chromium, nightly) cannot be signed\n https://github.com/electron-userland/electron-builder/issues/2010\n https://github.com/electron-userland/electron-builder/issues/5383\n */\n },\n identity: identity ? identity.hash || identity.name : undefined,\n type,\n platform: isMas ? \"mas\" : \"darwin\",\n version: this.config.electronVersion || undefined,\n app: appPath,\n keychain: keychainFile || undefined,\n binaries,\n // https://github.com/electron-userland/electron-builder/issues/1480\n strictVerify: options.strictVerify,\n preAutoEntitlements: options.preAutoEntitlements,\n optionsForFile: await this.getOptionsForFile(appPath, isMas, customSignOptions),\n provisioningProfile: customSignOptions.provisioningProfile || undefined,\n }\n\n await this.doSign(signOptions, customSignOptions, identity)\n\n // https://github.com/electron-userland/electron-builder/issues/1196#issuecomment-312310209\n if (masOptions != null && !isDevelopment) {\n const certType = isDevelopment ? \"Mac Developer\" : \"3rd Party Mac Developer Installer\"\n const masInstallerIdentity = await findIdentity(certType, masOptions.identity, keychainFile)\n if (masInstallerIdentity == null) {\n throw new InvalidConfigurationError(`Cannot find valid \"${certType}\" identity to sign MAS installer, please see https://electron.build/code-signing`)\n }\n\n // mas uploaded to AppStore, so, use \"-\" instead of space for name\n const artifactName = this.expandArtifactNamePattern(masOptions, \"pkg\", arch)\n const artifactPath = path.join(outDir!, artifactName)\n await this.doFlat(appPath, artifactPath, masInstallerIdentity, keychainFile)\n await this.info.emitArtifactBuildCompleted({\n file: artifactPath,\n target: null,\n arch: Arch.x64,\n safeArtifactName: this.computeSafeArtifactName(artifactName, \"pkg\", arch, true, this.platformSpecificBuildOptions.defaultArch),\n packager: this,\n })\n }\n\n if (!isMas) {\n await this.notarizeIfProvided(appPath)\n }\n return true\n }\n\n private async getOptionsForFile(appPath: string, isMas: boolean, customSignOptions: MacConfiguration) {\n const resourceList = await this.resourceList\n const entitlementsSuffix = isMas ? \"mas\" : \"mac\"\n\n const getEntitlements = (filePath: string) => {\n // check if root app, then use main entitlements\n if (filePath === appPath) {\n if (customSignOptions.entitlements) {\n return customSignOptions.entitlements\n }\n const p = `entitlements.${entitlementsSuffix}.plist`\n if (resourceList.includes(p)) {\n return path.join(this.info.buildResourcesDir, p)\n } else {\n return getTemplatePath(\"entitlements.mac.plist\")\n }\n }\n\n // It's a login helper...\n if (filePath.includes(\"Library/LoginItems\")) {\n return customSignOptions.entitlementsLoginHelper\n }\n\n // Only remaining option is that it's inherited entitlements\n if (customSignOptions.entitlementsInherit) {\n return customSignOptions.entitlementsInherit\n }\n const p = `entitlements.${entitlementsSuffix}.inherit.plist`\n if (resourceList.includes(p)) {\n return path.join(this.info.buildResourcesDir, p)\n } else {\n return getTemplatePath(\"entitlements.mac.plist\")\n }\n }\n\n const requirements = isMas || this.platformSpecificBuildOptions.requirements == null ? undefined : await this.getResource(this.platformSpecificBuildOptions.requirements)\n\n // harden by default for mac builds. Only harden mas builds if explicitly true (backward compatibility)\n const hardenedRuntime = isMas ? customSignOptions.hardenedRuntime === true : customSignOptions.hardenedRuntime !== false\n\n const optionsForFile: (filePath: string) => PerFileSignOptions = filePath => {\n const entitlements = getEntitlements(filePath)\n const args = {\n entitlements: entitlements || undefined,\n hardenedRuntime: hardenedRuntime ?? undefined,\n timestamp: customSignOptions.timestamp || undefined,\n requirements: requirements || undefined,\n additionalArguments: customSignOptions.additionalArguments || [],\n }\n log.debug({ file: log.filePath(filePath), ...args }, \"selecting signing options\")\n return args\n }\n return optionsForFile\n }\n\n //noinspection JSMethodCanBeStatic\n protected async doSign(opts: SignOptions, customSignOptions: MacConfiguration, identity: Identity | null): Promise<void> {\n const customSign = await resolveFunction(this.appInfo.type, customSignOptions.sign, \"sign\")\n\n const { app, platform, type, provisioningProfile } = opts\n log.info(\n {\n file: log.filePath(app),\n platform,\n type,\n identityName: identity?.name || \"none\",\n identityHash: identity?.hash || \"none\",\n provisioningProfile: provisioningProfile || \"none\",\n },\n customSign ? \"executing custom sign\" : \"signing\"\n )\n\n return customSign ? Promise.resolve(customSign(opts, this)) : sign({ ...opts, identity: identity ? identity.name : undefined })\n }\n\n //noinspection JSMethodCanBeStatic\n protected async doFlat(appPath: string, outFile: string, identity: Identity, keychain: string | Nullish): Promise<any> {\n // productbuild doesn't created directory for out file\n await mkdir(path.dirname(outFile), { recursive: true })\n\n const args = prepareProductBuildArgs(identity, keychain)\n args.push(\"--component\", appPath, \"/Applications\")\n args.push(outFile)\n return await exec(\"productbuild\", args)\n }\n\n public getElectronSrcDir(dist: string) {\n return path.resolve(this.projectDir, dist, this.info.framework.distMacOsAppName)\n }\n\n public getElectronDestinationDir(appOutDir: string) {\n return path.join(appOutDir, this.info.framework.distMacOsAppName)\n }\n\n // todo fileAssociations\n async applyCommonInfo(appPlist: any, contentsPath: string) {\n const appInfo = this.appInfo\n const appFilename = appInfo.productFilename\n\n // https://github.com/electron-userland/electron-builder/issues/1278\n appPlist.CFBundleExecutable = appFilename.endsWith(\" Helper\") ? appFilename.substring(0, appFilename.length - \" Helper\".length) : appFilename\n\n const resourcesPath = path.join(contentsPath, \"Resources\")\n\n // Support both legacy `.icns` and modern `.icon` (Icon Composer) inputs via `mac.icon`.\n // Prefer `.icon` if provided; still accept `.icns`.\n const configuredIcon = this.platformSpecificBuildOptions.icon\n const isIconComposer = typeof configuredIcon === \"string\" && configuredIcon.toLowerCase().endsWith(\".icon\")\n\n // Set the app name\n appPlist.CFBundleName = appInfo.productName\n appPlist.CFBundleDisplayName = appInfo.productName\n\n // Bundle legacy `icns` format - this should also run when `.icon` is provided\n const setIcnsFile = async (iconPath: string) => {\n const oldIcon = appPlist.CFBundleIconFile\n if (oldIcon != null) {\n await unlinkIfExists(path.join(resourcesPath, oldIcon))\n }\n const iconFileName = \"icon.icns\"\n appPlist.CFBundleIconFile = iconFileName\n await copyFile(iconPath, path.join(resourcesPath, iconFileName))\n }\n\n const icnsFilePath = await this.getIconPath()\n if (icnsFilePath != null) {\n await setIcnsFile(icnsFilePath)\n }\n\n // Bundle new `icon` format\n if (isIconComposer && configuredIcon) {\n const iconComposerPath = await this.getResource(configuredIcon)\n if (iconComposerPath) {\n const { assetCatalog } = await this.generateAssetCatalogData(iconComposerPath)\n\n // Create and setup the asset catalog\n appPlist.CFBundleIconName = \"Icon\"\n await fs.writeFile(path.join(resourcesPath, \"Assets.car\"), assetCatalog)\n }\n }\n\n const minimumSystemVersion = this.platformSpecificBuildOptions.minimumSystemVersion\n if (minimumSystemVersion != null) {\n appPlist.LSMinimumSystemVersion = minimumSystemVersion\n }\n\n appPlist.CFBundleShortVersionString = this.platformSpecificBuildOptions.bundleShortVersion || appInfo.version\n appPlist.CFBundleVersion = appInfo.buildVersion\n\n use(this.platformSpecificBuildOptions.category || (this.config as any).category, it => (appPlist.LSApplicationCategoryType = it))\n appPlist.NSHumanReadableCopyright = appInfo.copyright\n\n if (this.platformSpecificBuildOptions.darkModeSupport) {\n appPlist.NSRequiresAquaSystemAppearance = false\n }\n\n const extendInfo = this.platformSpecificBuildOptions.extendInfo\n if (extendInfo != null) {\n Object.assign(appPlist, extendInfo)\n }\n for (const [k, v] of Object.entries(appPlist)) {\n if (v === null || v === undefined) {\n delete appPlist[k]\n }\n }\n }\n\n protected async signApp(packContext: AfterPackContext, isAsar: boolean): Promise<boolean> {\n const readDirectoryAndSign = async (sourceDirectory: string, directories: string[], shouldSign: (file: string) => boolean): Promise<boolean> => {\n await Promise.all(\n directories.map(async (file: string) => {\n if (shouldSign(file)) {\n await this.sign(path.join(sourceDirectory, file), null, null, packContext.arch)\n }\n })\n )\n return true\n }\n\n const appFileName = `${this.appInfo.productFilename}.app`\n await readDirectoryAndSign(packContext.appOutDir, await readdir(packContext.appOutDir), file => file === appFileName)\n if (!isAsar) {\n return true\n }\n\n const outResourcesDir = path.join(packContext.appOutDir, \"resources\", \"app.asar.unpacked\")\n await readDirectoryAndSign(outResourcesDir, await orIfFileNotExist(readdir(outResourcesDir), []), file => file.endsWith(\".app\"))\n\n return true\n }\n\n async notarizeIfProvided(appPath: string) {\n const notarizeOptions = this.platformSpecificBuildOptions.notarize\n if (notarizeOptions === false) {\n log.info({ reason: \"`notarize` options were set explicitly `false`\" }, \"skipped macOS notarization\")\n return\n }\n const options = this.getNotarizeOptions(appPath)\n if (!options) {\n log.warn({ reason: \"`notarize` options were unable to be generated\" }, \"skipped macOS notarization\")\n return\n }\n await notarize(options)\n log.info(null, \"notarization successful\")\n }\n\n private getNotarizeOptions(appPath: string): NotarizeOptionsNotaryTool | undefined {\n const teamId = process.env.APPLE_TEAM_ID\n const appleId = process.env.APPLE_ID\n const appleIdPassword = process.env.APPLE_APP_SPECIFIC_PASSWORD\n const tool = \"notarytool\"\n\n // option 1: app specific password\n if (appleId || appleIdPassword) {\n if (!appleId) {\n throw new InvalidConfigurationError(`APPLE_ID env var needs to be set`)\n }\n if (!appleIdPassword) {\n throw new InvalidConfigurationError(`APPLE_APP_SPECIFIC_PASSWORD env var needs to be set`)\n }\n if (!teamId) {\n throw new InvalidConfigurationError(`APPLE_TEAM_ID env var needs to be set`)\n }\n return { tool, appPath, appleId, appleIdPassword, teamId }\n }\n\n // option 2: API key\n const appleApiKey = process.env.APPLE_API_KEY\n const appleApiKeyId = process.env.APPLE_API_KEY_ID\n const appleApiIssuer = process.env.APPLE_API_ISSUER\n if (appleApiKey || appleApiKeyId || appleApiIssuer) {\n if (!appleApiKey || !appleApiKeyId || !appleApiIssuer) {\n throw new InvalidConfigurationError(`Env vars APPLE_API_KEY, APPLE_API_KEY_ID and APPLE_API_ISSUER need to be set`)\n }\n return { tool, appPath, appleApiKey, appleApiKeyId, appleApiIssuer }\n }\n\n // option 3: keychain\n const keychain = process.env.APPLE_KEYCHAIN\n const keychainProfile = process.env.APPLE_KEYCHAIN_PROFILE\n if (keychainProfile) {\n let args: NotaryToolKeychainCredentials = { keychainProfile }\n if (keychain) {\n args = { ...args, keychain }\n }\n return { tool, appPath, ...args }\n }\n\n // if no credentials provided, skip silently\n return undefined\n }\n}\n\nfunction getCertificateTypes(isMas: boolean, isDevelopment: boolean): CertType[] {\n if (isDevelopment) {\n return isMas ? [\"Mac Developer\", \"Apple Development\"] : [\"Mac Developer\", \"Developer ID Application\"]\n }\n return isMas ? [\"Apple Distribution\", \"3rd Party Mac Developer Application\"] : [\"Developer ID Application\"]\n}\n"]}
@@ -191,9 +191,10 @@ const decoupleGraphNode = (parent, node) => {
191
191
  hoistedTo: new Map(hoistedTo),
192
192
  };
193
193
  const selfDep = clone.dependencies.get(name);
194
- if (selfDep && selfDep.ident == clone.ident)
195
- // Update self-reference
194
+ if (selfDep && selfDep.ident == clone.ident) // Update self-reference
195
+ {
196
196
  clone.dependencies.set(name, clone);
197
+ }
197
198
  parent.dependencies.set(clone.name, clone);
198
199
  return clone;
199
200
  };
@@ -356,10 +357,11 @@ const getNodeHoistInfo = (rootNode, rootNodePathLocators, nodePath, node, usedDe
356
357
  let reasonRoot;
357
358
  let reason = null;
358
359
  let dependsOn = new Set();
359
- if (outputReason)
360
+ if (outputReason) {
360
361
  reasonRoot = `${Array.from(rootNodePathLocators)
361
362
  .map(x => prettyPrintLocator(x))
362
363
  .join(`→`)}`;
364
+ }
363
365
  const parentNode = nodePath[nodePath.length - 1];
364
366
  // We cannot hoist self-references
365
367
  const isSelfReference = node.ident === parentNode.ident;
@@ -402,11 +404,12 @@ const getNodeHoistInfo = (rootNode, rootNodePathLocators, nodePath, node, usedDe
402
404
  shadowedNodes.set(parentNode, shadowedNames);
403
405
  }
404
406
  shadowedNames.add(node.name);
405
- if (outputReason)
407
+ if (outputReason) {
406
408
  reason = `- filled by ${prettyPrintLocator(parentDep.locator)} at ${nodePath
407
409
  .slice(0, idx)
408
410
  .map(x => prettyPrintLocator(x.locator))
409
411
  .join(`→`)}`;
412
+ }
410
413
  break;
411
414
  }
412
415
  }