app-builder-lib 22.7.0 → 22.9.1

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.
Files changed (83) hide show
  1. package/electron-osx-sign/index.d.ts +1 -0
  2. package/electron-osx-sign/sign.js +12 -1
  3. package/out/asar/asarUtil.js +1 -1
  4. package/out/asar/asarUtil.js.map +1 -1
  5. package/out/codeSign/windowsCodeSign.js +2 -2
  6. package/out/codeSign/windowsCodeSign.js.map +1 -1
  7. package/out/configuration.d.ts +1 -1
  8. package/out/configuration.js +4 -0
  9. package/out/core.js +43 -49
  10. package/out/core.js.map +1 -1
  11. package/out/electron/electronVersion.js +3 -3
  12. package/out/electron/electronVersion.js.map +1 -1
  13. package/out/fileTransformer.js +1 -1
  14. package/out/fileTransformer.js.map +1 -1
  15. package/out/index.js +1 -1
  16. package/out/index.js.map +1 -1
  17. package/out/macPackager.js +25 -2
  18. package/out/macPackager.js.map +1 -1
  19. package/out/options/AppXOptions.js +4 -0
  20. package/out/options/FileAssociation.js +4 -0
  21. package/out/options/MsiOptions.js +4 -0
  22. package/out/options/PlatformSpecificBuildOptions.js +4 -0
  23. package/out/options/SnapOptions.d.ts +18 -0
  24. package/out/options/SnapOptions.js +4 -0
  25. package/out/options/SquirrelWindowsOptions.js +4 -0
  26. package/out/options/linuxOptions.js +4 -0
  27. package/out/options/macOptions.d.ts +15 -0
  28. package/out/options/macOptions.js +4 -0
  29. package/out/options/metadata.js +4 -0
  30. package/out/options/pkgOptions.js +4 -0
  31. package/out/options/winOptions.d.ts +1 -1
  32. package/out/options/winOptions.js +4 -0
  33. package/out/packager.js +1 -1
  34. package/out/packagerApi.js +4 -0
  35. package/out/platformPackager.js +1 -1
  36. package/out/platformPackager.js.map +1 -1
  37. package/out/publish/PublishManager.js +1 -1
  38. package/out/publish/PublishManager.js.map +1 -1
  39. package/out/publish/updateInfoBuilder.js +1 -1
  40. package/out/publish/updateInfoBuilder.js.map +1 -1
  41. package/out/remoteBuilder/RemoteBuilder.js +1 -1
  42. package/out/remoteBuilder/RemoteBuilder.js.map +1 -1
  43. package/out/targets/AppImageTarget.js +1 -1
  44. package/out/targets/AppImageTarget.js.map +1 -1
  45. package/out/targets/AppxTarget.js +3 -3
  46. package/out/targets/AppxTarget.js.map +1 -1
  47. package/out/targets/MsiTarget.js +2 -2
  48. package/out/targets/MsiTarget.js.map +1 -1
  49. package/out/targets/archive.js +1 -1
  50. package/out/targets/archive.js.map +1 -1
  51. package/out/targets/fpm.js +1 -1
  52. package/out/targets/fpm.js.map +1 -1
  53. package/out/targets/nsis/NsisTarget.js +42 -3
  54. package/out/targets/nsis/NsisTarget.js.map +1 -1
  55. package/out/targets/nsis/WebInstallerTarget.js +1 -1
  56. package/out/targets/nsis/WebInstallerTarget.js.map +1 -1
  57. package/out/targets/nsis/nsisLang.js +2 -2
  58. package/out/targets/nsis/nsisLang.js.map +1 -1
  59. package/out/targets/nsis/nsisOptions.js +4 -0
  60. package/out/targets/snap.js +15 -2
  61. package/out/targets/snap.js.map +1 -1
  62. package/out/targets/targetUtil.js +1 -1
  63. package/out/targets/targetUtil.js.map +1 -1
  64. package/out/util/appFileCopier.js +1 -1
  65. package/out/util/appFileCopier.js.map +1 -1
  66. package/out/util/cacheManager.js +56 -62
  67. package/out/util/cacheManager.js.map +1 -1
  68. package/out/util/config.js +2 -2
  69. package/out/util/config.js.map +1 -1
  70. package/out/util/macosVersion.js +1 -1
  71. package/out/util/macosVersion.js.map +1 -1
  72. package/out/util/yarn.js +1 -1
  73. package/out/util/yarn.js.map +1 -1
  74. package/out/winPackager.js +2 -2
  75. package/out/winPackager.js.map +1 -1
  76. package/package.json +31 -31
  77. package/scheme.json +130 -29
  78. package/templates/nsis/assistedInstaller.nsh +18 -14
  79. package/templates/nsis/assistedMessages.yml +17 -0
  80. package/templates/nsis/include/installUtil.nsh +1 -5
  81. package/templates/nsis/messages.yml +5 -0
  82. package/templates/nsis/portable.nsi +3 -1
  83. package/templates/snap/snapcraft.yaml +9 -1
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/platformPackager.ts"],"names":[],"mappings":"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","sourcesContent":["import BluebirdPromise from \"bluebird-lst\"\nimport { Arch, asArray, AsyncTaskManager, debug, DebugLogger, deepAssign, getArchSuffix, InvalidConfigurationError, isEmptyOrSpaces, log, isEnvTrue } from \"builder-util\"\nimport { getArtifactArchName } from \"builder-util/out/arch\"\nimport { FileTransformer, statOrNull } from \"builder-util/out/fs\"\nimport { orIfFileNotExist } from \"builder-util/out/promise\"\nimport { readdir } from \"fs-extra\"\nimport { Lazy } from \"lazy-val\"\nimport { Minimatch } from \"minimatch\"\nimport * as path from \"path\"\nimport { AppInfo } from \"./appInfo\"\nimport { checkFileInArchive } from \"./asar/asarFileChecker\"\nimport { AsarPackager } from \"./asar/asarUtil\"\nimport { computeData } from \"./asar/integrity\"\nimport { copyFiles, FileMatcher, getFileMatchers, GetFileMatchersOptions, getMainFileMatchers, getNodeModuleFileMatcher } from \"./fileMatcher\"\nimport { createTransformer, isElectronCompileUsed } from \"./fileTransformer\"\nimport { Framework, isElectronBased } from \"./Framework\"\nimport { AfterPackContext, AsarOptions, CompressionLevel, Configuration, ElectronPlatformName, FileAssociation, Packager, PackagerOptions, Platform, PlatformSpecificBuildOptions, Target, TargetSpecificOptions } from \"./index\"\nimport { executeAppBuilderAsJson } from \"./util/appBuilder\"\nimport { computeFileSets, computeNodeModuleFileSets, copyAppFiles, ELECTRON_COMPILE_SHIM_FILENAME, transformFiles } from \"./util/appFileCopier\"\nimport { expandMacro as doExpandMacro } from \"./util/macroExpander\"\n\nexport abstract class PlatformPackager<DC extends PlatformSpecificBuildOptions> {\n get packagerOptions(): PackagerOptions {\n return this.info.options\n }\n\n get buildResourcesDir(): string {\n return this.info.buildResourcesDir\n }\n\n get projectDir(): string {\n return this.info.projectDir\n }\n\n get config(): Configuration {\n return this.info.config\n }\n\n readonly platformSpecificBuildOptions: DC\n\n get resourceList(): Promise<Array<string>> {\n return this._resourceList.value\n }\n\n private readonly _resourceList = new Lazy<Array<string>>(() => orIfFileNotExist(readdir(this.info.buildResourcesDir), []))\n\n readonly appInfo: AppInfo\n\n protected constructor(readonly info: Packager, readonly platform: Platform) {\n this.platformSpecificBuildOptions = PlatformPackager.normalizePlatformSpecificBuildOptions((this.config as any)[platform.buildConfigurationKey])\n this.appInfo = this.prepareAppInfo(info.appInfo)\n }\n\n get compression(): CompressionLevel {\n const compression = this.platformSpecificBuildOptions.compression\n // explicitly set to null - request to use default value instead of parent (in the config)\n if (compression === null) {\n return \"normal\"\n }\n return compression || this.config.compression || \"normal\"\n }\n\n get debugLogger(): DebugLogger {\n return this.info.debugLogger\n }\n\n abstract get defaultTarget(): Array<string>\n\n // eslint-disable-next-line\n protected prepareAppInfo(appInfo: AppInfo) {\n return new AppInfo(this.info, null, this.platformSpecificBuildOptions)\n }\n\n private static normalizePlatformSpecificBuildOptions(options: any | null | undefined): any {\n return options == null ? Object.create(null) : options\n }\n\n abstract createTargets(targets: Array<string>, mapper: (name: string, factory: (outDir: string) => Target) => void): void\n\n protected getCscPassword(): string {\n const password = this.doGetCscPassword()\n if (isEmptyOrSpaces(password)) {\n log.info({reason: \"CSC_KEY_PASSWORD is not defined\"}, \"empty password will be used for code signing\")\n return \"\"\n }\n else {\n return password!.trim()\n }\n }\n\n protected getCscLink(extraEnvName?: string | null): string | null | undefined {\n // allow to specify as empty string\n const envValue = chooseNotNull(extraEnvName == null ? null : process.env[extraEnvName], process.env.CSC_LINK)\n return chooseNotNull(chooseNotNull(this.info.config.cscLink, this.platformSpecificBuildOptions.cscLink), envValue)\n }\n\n protected doGetCscPassword(): string | null | undefined {\n // allow to specify as empty string\n return chooseNotNull(chooseNotNull(this.info.config.cscKeyPassword, this.platformSpecificBuildOptions.cscKeyPassword), process.env.CSC_KEY_PASSWORD)\n }\n\n protected computeAppOutDir(outDir: string, arch: Arch): string {\n return this.packagerOptions.prepackaged || path.join(outDir, `${this.platform.buildConfigurationKey}${getArchSuffix(arch)}${this.platform === Platform.MAC ? \"\" : \"-unpacked\"}`)\n }\n\n dispatchArtifactCreated(file: string, target: Target | null, arch: Arch | null, safeArtifactName?: string | null): Promise<void> {\n return this.info.callArtifactBuildCompleted({\n file, safeArtifactName, target, arch,\n packager: this,\n })\n }\n\n async pack(outDir: string, arch: Arch, targets: Array<Target>, taskManager: AsyncTaskManager): Promise<any> {\n const appOutDir = this.computeAppOutDir(outDir, arch)\n await this.doPack(outDir, appOutDir, this.platform.nodeName as ElectronPlatformName, arch, this.platformSpecificBuildOptions, targets)\n this.packageInDistributableFormat(appOutDir, arch, targets, taskManager)\n }\n\n protected packageInDistributableFormat(appOutDir: string, arch: Arch, targets: Array<Target>, taskManager: AsyncTaskManager): void {\n if (targets.find(it => !it.isAsyncSupported) == null) {\n PlatformPackager.buildAsyncTargets(targets, taskManager, appOutDir, arch)\n return\n }\n\n taskManager.add(async () => {\n // BluebirdPromise.map doesn't invoke target.build immediately, but for RemoteTarget it is very critical to call build() before finishBuild()\n const subTaskManager = new AsyncTaskManager(this.info.cancellationToken)\n PlatformPackager.buildAsyncTargets(targets, subTaskManager, appOutDir, arch)\n await subTaskManager.awaitTasks()\n\n for (const target of targets) {\n if (!target.isAsyncSupported) {\n await target.build(appOutDir, arch)\n }\n }\n })\n }\n\n private static buildAsyncTargets(targets: Array<Target>, taskManager: AsyncTaskManager, appOutDir: string, arch: Arch) {\n for (const target of targets) {\n if (target.isAsyncSupported) {\n taskManager.addTask(target.build(appOutDir, arch))\n }\n }\n }\n\n private getExtraFileMatchers(isResources: boolean, appOutDir: string, options: GetFileMatchersOptions): Array<FileMatcher> | null {\n const base = isResources ? this.getResourcesDir(appOutDir) : (this.platform === Platform.MAC ? path.join(appOutDir, `${this.appInfo.productFilename}.app`, \"Contents\") : appOutDir)\n return getFileMatchers(this.config, isResources ? \"extraResources\" : \"extraFiles\", base, options)\n }\n\n createGetFileMatchersOptions(outDir: string, arch: Arch, customBuildOptions: PlatformSpecificBuildOptions): GetFileMatchersOptions {\n return {\n macroExpander: it => this.expandMacro(it, arch == null ? null : Arch[arch], {\"/*\": \"{,/**/*}\"}),\n customBuildOptions,\n globalOutDir: outDir,\n defaultSrc: this.projectDir,\n }\n }\n\n protected async doPack(outDir: string, appOutDir: string, platformName: ElectronPlatformName, arch: Arch, platformSpecificBuildOptions: DC, targets: Array<Target>) {\n if (this.packagerOptions.prepackaged != null) {\n return\n }\n\n const framework = this.info.framework\n log.info({\n platform: platformName,\n arch: Arch[arch],\n [`${framework.name}`]: framework.version,\n appOutDir: log.filePath(appOutDir),\n }, `packaging`)\n\n await framework.prepareApplicationStageDirectory({\n packager: this,\n appOutDir,\n platformName,\n arch: Arch[arch],\n version: framework.version,\n })\n\n const excludePatterns: Array<Minimatch> = []\n\n const computeParsedPatterns = (patterns: Array<FileMatcher> | null) => {\n if (patterns != null) {\n for (const pattern of patterns) {\n pattern.computeParsedPatterns(excludePatterns, this.info.projectDir)\n }\n }\n }\n\n const getFileMatchersOptions = this.createGetFileMatchersOptions(outDir, arch, platformSpecificBuildOptions)\n const macroExpander = getFileMatchersOptions.macroExpander\n const extraResourceMatchers = this.getExtraFileMatchers(true, appOutDir, getFileMatchersOptions)\n computeParsedPatterns(extraResourceMatchers)\n const extraFileMatchers = this.getExtraFileMatchers(false, appOutDir, getFileMatchersOptions)\n computeParsedPatterns(extraFileMatchers)\n\n const packContext: AfterPackContext = {\n appOutDir, outDir, arch, targets,\n packager: this,\n electronPlatformName: platformName,\n }\n\n const asarOptions = await this.computeAsarOptions(platformSpecificBuildOptions)\n const resourcesPath = this.platform === Platform.MAC ? path.join(appOutDir, framework.distMacOsAppName, \"Contents\", \"Resources\") : (isElectronBased(framework) ? path.join(appOutDir, \"resources\") : appOutDir)\n const taskManager = new AsyncTaskManager(this.info.cancellationToken)\n this.copyAppFiles(taskManager, asarOptions, resourcesPath, path.join(resourcesPath, \"app\"), packContext, platformSpecificBuildOptions, excludePatterns, macroExpander)\n await taskManager.awaitTasks()\n\n if (this.info.cancellationToken.cancelled) {\n return\n }\n\n if (framework.beforeCopyExtraFiles != null) {\n await framework.beforeCopyExtraFiles({\n packager: this,\n appOutDir,\n asarIntegrity: asarOptions == null ? null : await computeData(resourcesPath, asarOptions.externalAllowed ? {externalAllowed: true} : null),\n platformName,\n })\n }\n\n if (this.info.cancellationToken.cancelled) {\n return\n }\n\n const transformerForExtraFiles = this.createTransformerForExtraFiles(packContext)\n await copyFiles(extraResourceMatchers, transformerForExtraFiles)\n await copyFiles(extraFileMatchers, transformerForExtraFiles)\n\n if (this.info.cancellationToken.cancelled) {\n return\n }\n\n await this.info.afterPack(packContext)\n\n if (framework.afterPack != null) {\n await framework.afterPack(packContext)\n }\n\n const isAsar = asarOptions != null\n await this.sanityCheckPackage(appOutDir, isAsar, framework)\n await this.signApp(packContext, isAsar)\n\n const afterSign = resolveFunction(this.config.afterSign, \"afterSign\")\n if (afterSign != null) {\n await Promise.resolve(afterSign(packContext))\n }\n }\n\n // eslint-disable-next-line\n protected createTransformerForExtraFiles(packContext: AfterPackContext): FileTransformer | null {\n return null\n }\n\n private copyAppFiles(taskManager: AsyncTaskManager, asarOptions: AsarOptions | null, resourcePath: string, defaultDestination: string, packContext: AfterPackContext, platformSpecificBuildOptions: DC, excludePatterns: Array<Minimatch>, macroExpander: ((it: string) => string)) {\n const appDir = this.info.appDir\n const config = this.config\n const isElectronCompile = asarOptions != null && isElectronCompileUsed(this.info)\n\n const mainMatchers = getMainFileMatchers(appDir, defaultDestination, macroExpander, platformSpecificBuildOptions, this, packContext.outDir, isElectronCompile)\n if (excludePatterns.length > 0) {\n for (const matcher of mainMatchers) {\n matcher.excludePatterns = excludePatterns\n }\n }\n\n const framework = this.info.framework\n const transformer = createTransformer(appDir, config, isElectronCompile ? {\n originalMain: this.info.metadata.main,\n main: ELECTRON_COMPILE_SHIM_FILENAME,\n ...config.extraMetadata\n } : config.extraMetadata, framework.createTransformer == null ? null : framework.createTransformer())\n\n const _computeFileSets = (matchers: Array<FileMatcher>) => {\n return computeFileSets(matchers, this.info.isPrepackedAppAsar ? null : transformer, this, isElectronCompile)\n .then(async result => {\n if (!this.info.isPrepackedAppAsar && !this.info.areNodeModulesHandledExternally) {\n const moduleFileMatcher = getNodeModuleFileMatcher(appDir, defaultDestination, macroExpander, platformSpecificBuildOptions, this.info)\n result = result.concat(await computeNodeModuleFileSets(this, moduleFileMatcher))\n }\n return result.filter(it => it.files.length > 0)\n })\n }\n\n if (this.info.isPrepackedAppAsar) {\n taskManager.addTask(BluebirdPromise.each(_computeFileSets([new FileMatcher(appDir, resourcePath, macroExpander)]), it => copyAppFiles(it, this.info, transformer)))\n }\n else if (asarOptions == null) {\n // for ASAR all asar unpacked files will be extra transformed (e.g. sign of EXE and DLL) later,\n // for prepackaged asar extra transformation not supported yet,\n // so, extra transform if asar is disabled\n const transformerForExtraFiles = this.createTransformerForExtraFiles(packContext)\n const combinedTransformer: FileTransformer = file => {\n if (transformerForExtraFiles != null) {\n const result = transformerForExtraFiles(file)\n if (result != null) {\n return result\n }\n }\n return transformer(file)\n }\n\n taskManager.addTask(BluebirdPromise.each(_computeFileSets(mainMatchers), it => copyAppFiles(it, this.info, combinedTransformer)))\n }\n else {\n const unpackPattern = getFileMatchers(config, \"asarUnpack\", defaultDestination, {\n macroExpander,\n customBuildOptions: platformSpecificBuildOptions,\n globalOutDir: packContext.outDir,\n defaultSrc: appDir,\n })\n const fileMatcher = unpackPattern == null ? null : unpackPattern[0]\n taskManager.addTask(_computeFileSets(mainMatchers)\n .then(async fileSets => {\n for (const fileSet of fileSets) {\n await transformFiles(transformer, fileSet)\n }\n\n await new AsarPackager(appDir, resourcePath, asarOptions, fileMatcher == null ? null : fileMatcher.createFilter())\n .pack(fileSets, this)\n }))\n }\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n protected signApp(packContext: AfterPackContext, isAsar: boolean): Promise<any> {\n return Promise.resolve()\n }\n\n async getIconPath(): Promise<string | null> {\n return null\n }\n\n private async computeAsarOptions(customBuildOptions: DC): Promise<AsarOptions | null> {\n if (!isElectronBased(this.info.framework)) {\n return null\n }\n\n function errorMessage(name: string) {\n return `${name} is deprecated is deprecated and not supported — please use asarUnpack`\n }\n\n const buildMetadata = this.config as any\n if (buildMetadata[\"asar-unpack\"] != null) {\n throw new Error(errorMessage(\"asar-unpack\"))\n }\n if (buildMetadata[\"asar-unpack-dir\"] != null) {\n throw new Error(errorMessage(\"asar-unpack-dir\"))\n }\n\n const platformSpecific = customBuildOptions.asar\n const result = platformSpecific == null ? this.config.asar : platformSpecific\n if (result === false) {\n const appAsarStat = await statOrNull(path.join(this.info.appDir, \"app.asar\"))\n //noinspection ES6MissingAwait\n if (appAsarStat == null || !appAsarStat.isFile()) {\n log.warn({\n solution: \"enable asar and use asarUnpack to unpack files that must be externally available\",\n }, \"asar usage is disabled — this is strongly not recommended\")\n }\n return null\n }\n\n if (result == null || result === true) {\n return {}\n }\n\n for (const name of [\"unpackDir\", \"unpack\"]) {\n if ((result as any)[name] != null) {\n throw new Error(errorMessage(`asar.${name}`))\n }\n }\n return deepAssign({}, result)\n }\n\n public getElectronSrcDir(dist: string): string {\n return path.resolve(this.projectDir, dist)\n }\n\n public getElectronDestinationDir(appOutDir: string): string {\n return appOutDir\n }\n\n getResourcesDir(appOutDir: string): string {\n if (this.platform === Platform.MAC) {\n return this.getMacOsResourcesDir(appOutDir)\n }\n else if (isElectronBased(this.info.framework)) {\n return path.join(appOutDir, \"resources\")\n }\n else {\n return appOutDir\n }\n }\n\n public getMacOsResourcesDir(appOutDir: string): string {\n return path.join(appOutDir, `${this.appInfo.productFilename}.app`, \"Contents\", \"Resources\")\n }\n\n private async checkFileInPackage(resourcesDir: string, file: string, messagePrefix: string, isAsar: boolean) {\n const relativeFile = path.relative(this.info.appDir, path.resolve(this.info.appDir, file))\n if (isAsar) {\n await checkFileInArchive(path.join(resourcesDir, \"app.asar\"), relativeFile, messagePrefix)\n return\n }\n\n const pathParsed = path.parse(file)\n // Even when packaging to asar is disabled, it does not imply that the main file can not be inside an .asar archive.\n // This may occur when the packaging is done manually before processing with electron-builder.\n if (pathParsed.dir.includes(\".asar\")) {\n // The path needs to be split to the part with an asar archive which acts like a directory and the part with\n // the path to main file itself. (e.g. path/arch.asar/dir/index.js -> path/arch.asar, dir/index.js)\n // noinspection TypeScriptValidateJSTypes\n const pathSplit: Array<string> = pathParsed.dir.split(path.sep)\n let partWithAsarIndex = 0\n pathSplit.some((pathPart: string, index: number) => {\n partWithAsarIndex = index\n return pathPart.endsWith(\".asar\")\n })\n const asarPath = path.join(...pathSplit.slice(0, partWithAsarIndex + 1))\n let mainPath = pathSplit.length > (partWithAsarIndex + 1) ? path.join.apply(pathSplit.slice(partWithAsarIndex + 1)) : \"\"\n mainPath += path.join(mainPath, pathParsed.base)\n await checkFileInArchive(path.join(resourcesDir, \"app\", asarPath), mainPath, messagePrefix)\n }\n else {\n const fullPath = path.join(resourcesDir, \"app\", relativeFile)\n const outStat = await statOrNull(fullPath)\n if (outStat == null) {\n throw new Error(`${messagePrefix} \"${fullPath}\" does not exist. Seems like a wrong configuration.`)\n }\n else {\n //noinspection ES6MissingAwait\n if (!outStat.isFile()) {\n throw new Error(`${messagePrefix} \"${fullPath}\" is not a file. Seems like a wrong configuration.`)\n }\n }\n }\n }\n\n private async sanityCheckPackage(appOutDir: string, isAsar: boolean, framework: Framework): Promise<any> {\n const outStat = await statOrNull(appOutDir)\n if (outStat == null) {\n throw new Error(`Output directory \"${appOutDir}\" does not exist. Seems like a wrong configuration.`)\n }\n else {\n //noinspection ES6MissingAwait\n if (!outStat.isDirectory()) {\n throw new Error(`Output directory \"${appOutDir}\" is not a directory. Seems like a wrong configuration.`)\n }\n }\n\n const resourcesDir = this.getResourcesDir(appOutDir)\n const mainFile = (framework.getMainFile == null ? null : framework.getMainFile(this.platform)) || this.info.metadata.main || \"index.js\"\n await this.checkFileInPackage(resourcesDir, mainFile, \"Application entry file\", isAsar)\n await this.checkFileInPackage(resourcesDir, \"package.json\", \"Application\", isAsar)\n }\n\n // tslint:disable-next-line:no-invalid-template-strings\n computeSafeArtifactName(suggestedName: string | null, ext: string, arch?: Arch | null, skipArchIfX64 = true, safePattern: string = \"${name}-${version}-${arch}.${ext}\"): string | null {\n return computeSafeArtifactNameIfNeeded(suggestedName, () => this.computeArtifactName(safePattern, ext, skipArchIfX64 && arch === Arch.x64 ? null : arch))\n }\n\n expandArtifactNamePattern(targetSpecificOptions: TargetSpecificOptions | null | undefined, ext: string, arch?: Arch | null, defaultPattern?: string, skipArchIfX64 = true): string {\n let pattern = targetSpecificOptions == null ? null : targetSpecificOptions.artifactName\n if (pattern == null) {\n pattern = this.platformSpecificBuildOptions.artifactName || this.config.artifactName\n }\n\n if (pattern == null) {\n // tslint:disable-next-line:no-invalid-template-strings\n pattern = defaultPattern || \"${productName}-${version}-${arch}.${ext}\"\n }\n else {\n // https://github.com/electron-userland/electron-builder/issues/3510\n // always respect arch in user custom artifact pattern\n skipArchIfX64 = false\n }\n return this.computeArtifactName(pattern, ext, skipArchIfX64 && arch === Arch.x64 ? null : arch)\n }\n\n expandArtifactBeautyNamePattern(targetSpecificOptions: TargetSpecificOptions | null | undefined, ext: string, arch?: Arch | null): string {\n // tslint:disable-next-line:no-invalid-template-strings\n return this.expandArtifactNamePattern(targetSpecificOptions, ext, arch, \"${productName} ${version} ${arch}.${ext}\", true)\n }\n\n private computeArtifactName(pattern: any, ext: string, arch: Arch | null | undefined): string {\n const archName = arch == null ? null : getArtifactArchName(arch, ext)\n return this.expandMacro(pattern, this.platform === Platform.MAC ? null : archName, {\n ext\n })\n }\n\n expandMacro(pattern: string, arch?: string | null, extra: any = {}, isProductNameSanitized = true): string {\n return doExpandMacro(pattern, arch, this.appInfo, {os: this.platform.buildConfigurationKey, ...extra}, isProductNameSanitized)\n }\n\n generateName2(ext: string | null, classifier: string | null | undefined, deployment: boolean): string {\n const dotExt = ext == null ? \"\" : `.${ext}`\n const separator = ext === \"deb\" ? \"_\" : \"-\"\n return `${deployment ? this.appInfo.name : this.appInfo.productFilename}${separator}${this.appInfo.version}${classifier == null ? \"\" : `${separator}${classifier}`}${dotExt}`\n }\n\n getTempFile(suffix: string): Promise<string> {\n return this.info.tempDirManager.getTempFile({suffix})\n }\n\n get fileAssociations(): Array<FileAssociation> {\n return asArray(this.config.fileAssociations).concat(asArray(this.platformSpecificBuildOptions.fileAssociations))\n }\n\n async getResource(custom: string | null | undefined, ...names: Array<string>): Promise<string | null> {\n const resourcesDir = this.info.buildResourcesDir\n if (custom === undefined) {\n const resourceList = await this.resourceList\n for (const name of names) {\n if (resourceList.includes(name)) {\n return path.join(resourcesDir, name)\n }\n }\n }\n else if (custom != null && !isEmptyOrSpaces(custom)) {\n const resourceList = await this.resourceList\n if (resourceList.includes(custom)) {\n return path.join(resourcesDir, custom)\n }\n\n let p = path.resolve(resourcesDir, custom)\n if (await statOrNull(p) == null) {\n p = path.resolve(this.projectDir, custom)\n if (await statOrNull(p) == null) {\n throw new InvalidConfigurationError(`cannot find specified resource \"${custom}\", nor relative to \"${resourcesDir}\", neither relative to project dir (\"${this.projectDir}\")`)\n }\n }\n return p\n }\n return null\n }\n\n get forceCodeSigning(): boolean {\n const forceCodeSigningPlatform = this.platformSpecificBuildOptions.forceCodeSigning\n return (forceCodeSigningPlatform == null ? this.config.forceCodeSigning : forceCodeSigningPlatform) || false\n }\n\n protected async getOrConvertIcon(format: IconFormat): Promise<string | null> {\n const result = await this.resolveIcon(asArray(this.platformSpecificBuildOptions.icon || this.config.icon), [], format)\n if (result.length === 0) {\n const framework = this.info.framework\n if (framework.getDefaultIcon != null) {\n return framework.getDefaultIcon(this.platform)\n }\n\n log.warn({reason: \"application icon is not set\"}, `default ${capitalizeFirstLetter(framework.name)} icon is used`)\n return this.getDefaultFrameworkIcon()\n }\n else {\n return result[0].file\n }\n }\n\n getDefaultFrameworkIcon(): string | null {\n const framework = this.info.framework\n return framework.getDefaultIcon == null ? null : framework.getDefaultIcon(this.platform)\n }\n\n // convert if need, validate size (it is a reason why tool is called even if file has target extension (already specified as foo.icns for example))\n async resolveIcon(sources: Array<string>, fallbackSources: Array<string>, outputFormat: IconFormat): Promise<Array<IconInfo>> {\n const args = [\n \"icon\",\n \"--format\", outputFormat,\n \"--root\", this.buildResourcesDir,\n \"--root\", this.projectDir,\n \"--out\", path.resolve(this.projectDir, this.config.directories!!.output!!, `.icon-${outputFormat}`),\n ]\n for (const source of sources) {\n args.push(\"--input\", source)\n }\n for (const source of fallbackSources) {\n args.push(\"--fallback-input\", source)\n }\n\n const result: IconConvertResult = await executeAppBuilderAsJson(args)\n const errorMessage = result.error\n if (errorMessage != null) {\n throw new InvalidConfigurationError(errorMessage, result.errorCode)\n }\n\n if (result.isFallback) {\n log.warn({reason: \"application icon is not set\"}, `default ${capitalizeFirstLetter(this.info.framework.name)} icon is used`)\n }\n\n return result.icons || []\n }\n}\n\nexport interface IconInfo {\n file: string\n size: number\n}\n\ninterface IconConvertResult {\n icons?: Array<IconInfo>\n\n error?: string\n errorCode?: string\n isFallback?: boolean\n}\n\nexport type IconFormat = \"icns\" | \"ico\" | \"set\"\n\nexport function isSafeGithubName(name: string) {\n return /^[0-9A-Za-z._-]+$/.test(name)\n}\n\nexport function computeSafeArtifactNameIfNeeded(suggestedName: string | null, safeNameProducer: () => string): string | null {\n // GitHub only allows the listed characters in file names.\n if (suggestedName != null) {\n if (isSafeGithubName(suggestedName)) {\n return null\n }\n\n // prefer to use suggested name - so, if space is the only problem, just replace only space to dash\n suggestedName = suggestedName.replace(/ /g, \"-\")\n if (isSafeGithubName(suggestedName)) {\n return suggestedName\n }\n }\n\n return safeNameProducer()\n}\n\n// remove leading dot\nexport function normalizeExt(ext: string) {\n return ext.startsWith(\".\") ? ext.substring(1) : ext\n}\n\nexport function resolveFunction<T>(executor: T | string, name: string): T {\n if (executor == null || typeof executor !== \"string\") {\n return executor\n }\n\n let p = executor as string\n if (p.startsWith(\".\")) {\n p = path.resolve(p)\n }\n\n try {\n p = require.resolve(p)\n }\n catch (e) {\n debug(e)\n p = path.resolve(p)\n }\n\n // eslint-disable-next-line @typescript-eslint/no-var-requires\n const m = require(p)\n const namedExport = m[name]\n if (namedExport == null) {\n return m.default || m\n }\n else {\n return namedExport\n }\n}\n\nexport function chooseNotNull(v1: string | null | undefined, v2: string | null | undefined): string | null | undefined {\n return v1 == null ? v2 : v1\n}\n\nfunction capitalizeFirstLetter(text: string) {\n return text.charAt(0).toUpperCase() + text.slice(1)\n}\n\nexport function isSafeToUnpackElectronOnRemoteBuildServer(packager: PlatformPackager<any>) {\n if (packager.platform !== Platform.LINUX || packager.config.remoteBuild === false) {\n return false\n }\n\n if (process.platform === \"win32\" || isEnvTrue(process.env._REMOTE_BUILD)) {\n return packager.config.electronDist == null && packager.config.electronDownload == null\n }\n return false\n}\n"],"sourceRoot":""}
1
+ {"version":3,"sources":["../src/platformPackager.ts"],"names":[],"mappings":"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","sourcesContent":["import BluebirdPromise from \"bluebird-lst\"\nimport { Arch, asArray, AsyncTaskManager, debug, DebugLogger, deepAssign, getArchSuffix, InvalidConfigurationError, isEmptyOrSpaces, log, isEnvTrue } from \"builder-util\"\nimport { getArtifactArchName } from \"builder-util/out/arch\"\nimport { FileTransformer, statOrNull } from \"builder-util/out/fs\"\nimport { orIfFileNotExist } from \"builder-util/out/promise\"\nimport { readdir } from \"fs-extra\"\nimport { Lazy } from \"lazy-val\"\nimport { Minimatch } from \"minimatch\"\nimport * as path from \"path\"\nimport { AppInfo } from \"./appInfo\"\nimport { checkFileInArchive } from \"./asar/asarFileChecker\"\nimport { AsarPackager } from \"./asar/asarUtil\"\nimport { computeData } from \"./asar/integrity\"\nimport { copyFiles, FileMatcher, getFileMatchers, GetFileMatchersOptions, getMainFileMatchers, getNodeModuleFileMatcher } from \"./fileMatcher\"\nimport { createTransformer, isElectronCompileUsed } from \"./fileTransformer\"\nimport { Framework, isElectronBased } from \"./Framework\"\nimport { AfterPackContext, AsarOptions, CompressionLevel, Configuration, ElectronPlatformName, FileAssociation, Packager, PackagerOptions, Platform, PlatformSpecificBuildOptions, Target, TargetSpecificOptions } from \"./index\"\nimport { executeAppBuilderAsJson } from \"./util/appBuilder\"\nimport { computeFileSets, computeNodeModuleFileSets, copyAppFiles, ELECTRON_COMPILE_SHIM_FILENAME, transformFiles } from \"./util/appFileCopier\"\nimport { expandMacro as doExpandMacro } from \"./util/macroExpander\"\n\nexport abstract class PlatformPackager<DC extends PlatformSpecificBuildOptions> {\n get packagerOptions(): PackagerOptions {\n return this.info.options\n }\n\n get buildResourcesDir(): string {\n return this.info.buildResourcesDir\n }\n\n get projectDir(): string {\n return this.info.projectDir\n }\n\n get config(): Configuration {\n return this.info.config\n }\n\n readonly platformSpecificBuildOptions: DC\n\n get resourceList(): Promise<Array<string>> {\n return this._resourceList.value\n }\n\n private readonly _resourceList = new Lazy<Array<string>>(() => orIfFileNotExist(readdir(this.info.buildResourcesDir), []))\n\n readonly appInfo: AppInfo\n\n protected constructor(readonly info: Packager, readonly platform: Platform) {\n this.platformSpecificBuildOptions = PlatformPackager.normalizePlatformSpecificBuildOptions((this.config as any)[platform.buildConfigurationKey])\n this.appInfo = this.prepareAppInfo(info.appInfo)\n }\n\n get compression(): CompressionLevel {\n const compression = this.platformSpecificBuildOptions.compression\n // explicitly set to null - request to use default value instead of parent (in the config)\n if (compression === null) {\n return \"normal\"\n }\n return compression || this.config.compression || \"normal\"\n }\n\n get debugLogger(): DebugLogger {\n return this.info.debugLogger\n }\n\n abstract get defaultTarget(): Array<string>\n\n // eslint-disable-next-line\n protected prepareAppInfo(appInfo: AppInfo) {\n return new AppInfo(this.info, null, this.platformSpecificBuildOptions)\n }\n\n private static normalizePlatformSpecificBuildOptions(options: any | null | undefined): any {\n return options == null ? Object.create(null) : options\n }\n\n abstract createTargets(targets: Array<string>, mapper: (name: string, factory: (outDir: string) => Target) => void): void\n\n protected getCscPassword(): string {\n const password = this.doGetCscPassword()\n if (isEmptyOrSpaces(password)) {\n log.info({reason: \"CSC_KEY_PASSWORD is not defined\"}, \"empty password will be used for code signing\")\n return \"\"\n }\n else {\n return password!.trim()\n }\n }\n\n protected getCscLink(extraEnvName?: string | null): string | null | undefined {\n // allow to specify as empty string\n const envValue = chooseNotNull(extraEnvName == null ? null : process.env[extraEnvName], process.env.CSC_LINK)\n return chooseNotNull(chooseNotNull(this.info.config.cscLink, this.platformSpecificBuildOptions.cscLink), envValue)\n }\n\n protected doGetCscPassword(): string | null | undefined {\n // allow to specify as empty string\n return chooseNotNull(chooseNotNull(this.info.config.cscKeyPassword, this.platformSpecificBuildOptions.cscKeyPassword), process.env.CSC_KEY_PASSWORD)\n }\n\n protected computeAppOutDir(outDir: string, arch: Arch): string {\n return this.packagerOptions.prepackaged || path.join(outDir, `${this.platform.buildConfigurationKey}${getArchSuffix(arch)}${this.platform === Platform.MAC ? \"\" : \"-unpacked\"}`)\n }\n\n dispatchArtifactCreated(file: string, target: Target | null, arch: Arch | null, safeArtifactName?: string | null): Promise<void> {\n return this.info.callArtifactBuildCompleted({\n file, safeArtifactName, target, arch,\n packager: this,\n })\n }\n\n async pack(outDir: string, arch: Arch, targets: Array<Target>, taskManager: AsyncTaskManager): Promise<any> {\n const appOutDir = this.computeAppOutDir(outDir, arch)\n await this.doPack(outDir, appOutDir, this.platform.nodeName as ElectronPlatformName, arch, this.platformSpecificBuildOptions, targets)\n this.packageInDistributableFormat(appOutDir, arch, targets, taskManager)\n }\n\n protected packageInDistributableFormat(appOutDir: string, arch: Arch, targets: Array<Target>, taskManager: AsyncTaskManager): void {\n if (targets.find(it => !it.isAsyncSupported) == null) {\n PlatformPackager.buildAsyncTargets(targets, taskManager, appOutDir, arch)\n return\n }\n\n taskManager.add(async () => {\n // BluebirdPromise.map doesn't invoke target.build immediately, but for RemoteTarget it is very critical to call build() before finishBuild()\n const subTaskManager = new AsyncTaskManager(this.info.cancellationToken)\n PlatformPackager.buildAsyncTargets(targets, subTaskManager, appOutDir, arch)\n await subTaskManager.awaitTasks()\n\n for (const target of targets) {\n if (!target.isAsyncSupported) {\n await target.build(appOutDir, arch)\n }\n }\n })\n }\n\n private static buildAsyncTargets(targets: Array<Target>, taskManager: AsyncTaskManager, appOutDir: string, arch: Arch) {\n for (const target of targets) {\n if (target.isAsyncSupported) {\n taskManager.addTask(target.build(appOutDir, arch))\n }\n }\n }\n\n private getExtraFileMatchers(isResources: boolean, appOutDir: string, options: GetFileMatchersOptions): Array<FileMatcher> | null {\n const base = isResources ? this.getResourcesDir(appOutDir) : (this.platform === Platform.MAC ? path.join(appOutDir, `${this.appInfo.productFilename}.app`, \"Contents\") : appOutDir)\n return getFileMatchers(this.config, isResources ? \"extraResources\" : \"extraFiles\", base, options)\n }\n\n createGetFileMatchersOptions(outDir: string, arch: Arch, customBuildOptions: PlatformSpecificBuildOptions): GetFileMatchersOptions {\n return {\n macroExpander: it => this.expandMacro(it, arch == null ? null : Arch[arch], {\"/*\": \"{,/**/*}\"}),\n customBuildOptions,\n globalOutDir: outDir,\n defaultSrc: this.projectDir,\n }\n }\n\n protected async doPack(outDir: string, appOutDir: string, platformName: ElectronPlatformName, arch: Arch, platformSpecificBuildOptions: DC, targets: Array<Target>) {\n if (this.packagerOptions.prepackaged != null) {\n return\n }\n\n const framework = this.info.framework\n log.info({\n platform: platformName,\n arch: Arch[arch],\n [`${framework.name}`]: framework.version,\n appOutDir: log.filePath(appOutDir),\n }, `packaging`)\n\n await framework.prepareApplicationStageDirectory({\n packager: this,\n appOutDir,\n platformName,\n arch: Arch[arch],\n version: framework.version,\n })\n\n const excludePatterns: Array<Minimatch> = []\n\n const computeParsedPatterns = (patterns: Array<FileMatcher> | null) => {\n if (patterns != null) {\n for (const pattern of patterns) {\n pattern.computeParsedPatterns(excludePatterns, this.info.projectDir)\n }\n }\n }\n\n const getFileMatchersOptions = this.createGetFileMatchersOptions(outDir, arch, platformSpecificBuildOptions)\n const macroExpander = getFileMatchersOptions.macroExpander\n const extraResourceMatchers = this.getExtraFileMatchers(true, appOutDir, getFileMatchersOptions)\n computeParsedPatterns(extraResourceMatchers)\n const extraFileMatchers = this.getExtraFileMatchers(false, appOutDir, getFileMatchersOptions)\n computeParsedPatterns(extraFileMatchers)\n\n const packContext: AfterPackContext = {\n appOutDir, outDir, arch, targets,\n packager: this,\n electronPlatformName: platformName,\n }\n\n const asarOptions = await this.computeAsarOptions(platformSpecificBuildOptions)\n const resourcesPath = this.platform === Platform.MAC ? path.join(appOutDir, framework.distMacOsAppName, \"Contents\", \"Resources\") : (isElectronBased(framework) ? path.join(appOutDir, \"resources\") : appOutDir)\n const taskManager = new AsyncTaskManager(this.info.cancellationToken)\n this.copyAppFiles(taskManager, asarOptions, resourcesPath, path.join(resourcesPath, \"app\"), packContext, platformSpecificBuildOptions, excludePatterns, macroExpander)\n await taskManager.awaitTasks()\n\n if (this.info.cancellationToken.cancelled) {\n return\n }\n\n if (framework.beforeCopyExtraFiles != null) {\n await framework.beforeCopyExtraFiles({\n packager: this,\n appOutDir,\n asarIntegrity: asarOptions == null ? null : await computeData(resourcesPath, asarOptions.externalAllowed ? {externalAllowed: true} : null),\n platformName,\n })\n }\n\n if (this.info.cancellationToken.cancelled) {\n return\n }\n\n const transformerForExtraFiles = this.createTransformerForExtraFiles(packContext)\n await copyFiles(extraResourceMatchers, transformerForExtraFiles)\n await copyFiles(extraFileMatchers, transformerForExtraFiles)\n\n if (this.info.cancellationToken.cancelled) {\n return\n }\n\n await this.info.afterPack(packContext)\n\n if (framework.afterPack != null) {\n await framework.afterPack(packContext)\n }\n\n const isAsar = asarOptions != null\n await this.sanityCheckPackage(appOutDir, isAsar, framework)\n await this.signApp(packContext, isAsar)\n\n const afterSign = resolveFunction(this.config.afterSign, \"afterSign\")\n if (afterSign != null) {\n await Promise.resolve(afterSign(packContext))\n }\n }\n\n // eslint-disable-next-line\n protected createTransformerForExtraFiles(packContext: AfterPackContext): FileTransformer | null {\n return null\n }\n\n private copyAppFiles(taskManager: AsyncTaskManager, asarOptions: AsarOptions | null, resourcePath: string, defaultDestination: string, packContext: AfterPackContext, platformSpecificBuildOptions: DC, excludePatterns: Array<Minimatch>, macroExpander: ((it: string) => string)) {\n const appDir = this.info.appDir\n const config = this.config\n const isElectronCompile = asarOptions != null && isElectronCompileUsed(this.info)\n\n const mainMatchers = getMainFileMatchers(appDir, defaultDestination, macroExpander, platformSpecificBuildOptions, this, packContext.outDir, isElectronCompile)\n if (excludePatterns.length > 0) {\n for (const matcher of mainMatchers) {\n matcher.excludePatterns = excludePatterns\n }\n }\n\n const framework = this.info.framework\n const transformer = createTransformer(appDir, config, isElectronCompile ? {\n originalMain: this.info.metadata.main,\n main: ELECTRON_COMPILE_SHIM_FILENAME,\n ...config.extraMetadata\n } : config.extraMetadata, framework.createTransformer == null ? null : framework.createTransformer())\n\n const _computeFileSets = (matchers: Array<FileMatcher>) => {\n return computeFileSets(matchers, this.info.isPrepackedAppAsar ? null : transformer, this, isElectronCompile)\n .then(async result => {\n if (!this.info.isPrepackedAppAsar && !this.info.areNodeModulesHandledExternally) {\n const moduleFileMatcher = getNodeModuleFileMatcher(appDir, defaultDestination, macroExpander, platformSpecificBuildOptions, this.info)\n result = result.concat(await computeNodeModuleFileSets(this, moduleFileMatcher))\n }\n return result.filter(it => it.files.length > 0)\n })\n }\n\n if (this.info.isPrepackedAppAsar) {\n taskManager.addTask(BluebirdPromise.each(_computeFileSets([new FileMatcher(appDir, resourcePath, macroExpander)]), it => copyAppFiles(it, this.info, transformer)))\n }\n else if (asarOptions == null) {\n // for ASAR all asar unpacked files will be extra transformed (e.g. sign of EXE and DLL) later,\n // for prepackaged asar extra transformation not supported yet,\n // so, extra transform if asar is disabled\n const transformerForExtraFiles = this.createTransformerForExtraFiles(packContext)\n const combinedTransformer: FileTransformer = file => {\n if (transformerForExtraFiles != null) {\n const result = transformerForExtraFiles(file)\n if (result != null) {\n return result\n }\n }\n return transformer(file)\n }\n\n taskManager.addTask(BluebirdPromise.each(_computeFileSets(mainMatchers), it => copyAppFiles(it, this.info, combinedTransformer)))\n }\n else {\n const unpackPattern = getFileMatchers(config, \"asarUnpack\", defaultDestination, {\n macroExpander,\n customBuildOptions: platformSpecificBuildOptions,\n globalOutDir: packContext.outDir,\n defaultSrc: appDir,\n })\n const fileMatcher = unpackPattern == null ? null : unpackPattern[0]\n taskManager.addTask(_computeFileSets(mainMatchers)\n .then(async fileSets => {\n for (const fileSet of fileSets) {\n await transformFiles(transformer, fileSet)\n }\n\n await new AsarPackager(appDir, resourcePath, asarOptions, fileMatcher == null ? null : fileMatcher.createFilter())\n .pack(fileSets, this)\n }))\n }\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n protected signApp(packContext: AfterPackContext, isAsar: boolean): Promise<any> {\n return Promise.resolve()\n }\n\n async getIconPath(): Promise<string | null> {\n return null\n }\n\n private async computeAsarOptions(customBuildOptions: DC): Promise<AsarOptions | null> {\n if (!isElectronBased(this.info.framework)) {\n return null\n }\n\n function errorMessage(name: string) {\n return `${name} is deprecated is deprecated and not supported — please use asarUnpack`\n }\n\n const buildMetadata = this.config as any\n if (buildMetadata[\"asar-unpack\"] != null) {\n throw new Error(errorMessage(\"asar-unpack\"))\n }\n if (buildMetadata[\"asar-unpack-dir\"] != null) {\n throw new Error(errorMessage(\"asar-unpack-dir\"))\n }\n\n const platformSpecific = customBuildOptions.asar\n const result = platformSpecific == null ? this.config.asar : platformSpecific\n if (result === false) {\n const appAsarStat = await statOrNull(path.join(this.info.appDir, \"app.asar\"))\n //noinspection ES6MissingAwait\n if (appAsarStat == null || !appAsarStat.isFile()) {\n log.warn({\n solution: \"enable asar and use asarUnpack to unpack files that must be externally available\",\n }, \"asar usage is disabled — this is strongly not recommended\")\n }\n return null\n }\n\n if (result == null || result === true) {\n return {}\n }\n\n for (const name of [\"unpackDir\", \"unpack\"]) {\n if ((result as any)[name] != null) {\n throw new Error(errorMessage(`asar.${name}`))\n }\n }\n return deepAssign({}, result)\n }\n\n public getElectronSrcDir(dist: string): string {\n return path.resolve(this.projectDir, dist)\n }\n\n public getElectronDestinationDir(appOutDir: string): string {\n return appOutDir\n }\n\n getResourcesDir(appOutDir: string): string {\n if (this.platform === Platform.MAC) {\n return this.getMacOsResourcesDir(appOutDir)\n }\n else if (isElectronBased(this.info.framework)) {\n return path.join(appOutDir, \"resources\")\n }\n else {\n return appOutDir\n }\n }\n\n public getMacOsResourcesDir(appOutDir: string): string {\n return path.join(appOutDir, `${this.appInfo.productFilename}.app`, \"Contents\", \"Resources\")\n }\n\n private async checkFileInPackage(resourcesDir: string, file: string, messagePrefix: string, isAsar: boolean) {\n const relativeFile = path.relative(this.info.appDir, path.resolve(this.info.appDir, file))\n if (isAsar) {\n await checkFileInArchive(path.join(resourcesDir, \"app.asar\"), relativeFile, messagePrefix)\n return\n }\n\n const pathParsed = path.parse(file)\n // Even when packaging to asar is disabled, it does not imply that the main file can not be inside an .asar archive.\n // This may occur when the packaging is done manually before processing with electron-builder.\n if (pathParsed.dir.includes(\".asar\")) {\n // The path needs to be split to the part with an asar archive which acts like a directory and the part with\n // the path to main file itself. (e.g. path/arch.asar/dir/index.js -> path/arch.asar, dir/index.js)\n // noinspection TypeScriptValidateJSTypes\n const pathSplit: Array<string> = pathParsed.dir.split(path.sep)\n let partWithAsarIndex = 0\n pathSplit.some((pathPart: string, index: number) => {\n partWithAsarIndex = index\n return pathPart.endsWith(\".asar\")\n })\n const asarPath = path.join(...pathSplit.slice(0, partWithAsarIndex + 1))\n let mainPath = pathSplit.length > (partWithAsarIndex + 1) ? path.join.apply(pathSplit.slice(partWithAsarIndex + 1)) : \"\"\n mainPath += path.join(mainPath, pathParsed.base)\n await checkFileInArchive(path.join(resourcesDir, \"app\", asarPath), mainPath, messagePrefix)\n }\n else {\n const fullPath = path.join(resourcesDir, \"app\", relativeFile)\n const outStat = await statOrNull(fullPath)\n if (outStat == null) {\n throw new Error(`${messagePrefix} \"${fullPath}\" does not exist. Seems like a wrong configuration.`)\n }\n else {\n //noinspection ES6MissingAwait\n if (!outStat.isFile()) {\n throw new Error(`${messagePrefix} \"${fullPath}\" is not a file. Seems like a wrong configuration.`)\n }\n }\n }\n }\n\n private async sanityCheckPackage(appOutDir: string, isAsar: boolean, framework: Framework): Promise<any> {\n const outStat = await statOrNull(appOutDir)\n if (outStat == null) {\n throw new Error(`Output directory \"${appOutDir}\" does not exist. Seems like a wrong configuration.`)\n }\n else {\n //noinspection ES6MissingAwait\n if (!outStat.isDirectory()) {\n throw new Error(`Output directory \"${appOutDir}\" is not a directory. Seems like a wrong configuration.`)\n }\n }\n\n const resourcesDir = this.getResourcesDir(appOutDir)\n const mainFile = (framework.getMainFile == null ? null : framework.getMainFile(this.platform)) || this.info.metadata.main || \"index.js\"\n await this.checkFileInPackage(resourcesDir, mainFile, \"Application entry file\", isAsar)\n await this.checkFileInPackage(resourcesDir, \"package.json\", \"Application\", isAsar)\n }\n\n // tslint:disable-next-line:no-invalid-template-strings\n computeSafeArtifactName(suggestedName: string | null, ext: string, arch?: Arch | null, skipArchIfX64 = true, safePattern: string = \"${name}-${version}-${arch}.${ext}\"): string | null {\n return computeSafeArtifactNameIfNeeded(suggestedName, () => this.computeArtifactName(safePattern, ext, skipArchIfX64 && arch === Arch.x64 ? null : arch))\n }\n\n expandArtifactNamePattern(targetSpecificOptions: TargetSpecificOptions | null | undefined, ext: string, arch?: Arch | null, defaultPattern?: string, skipArchIfX64 = true): string {\n let pattern = targetSpecificOptions == null ? null : targetSpecificOptions.artifactName\n if (pattern == null) {\n pattern = this.platformSpecificBuildOptions.artifactName || this.config.artifactName\n }\n\n if (pattern == null) {\n // tslint:disable-next-line:no-invalid-template-strings\n pattern = defaultPattern || \"${productName}-${version}-${arch}.${ext}\"\n }\n else {\n // https://github.com/electron-userland/electron-builder/issues/3510\n // always respect arch in user custom artifact pattern\n skipArchIfX64 = false\n }\n return this.computeArtifactName(pattern, ext, skipArchIfX64 && arch === Arch.x64 ? null : arch)\n }\n\n expandArtifactBeautyNamePattern(targetSpecificOptions: TargetSpecificOptions | null | undefined, ext: string, arch?: Arch | null): string {\n // tslint:disable-next-line:no-invalid-template-strings\n return this.expandArtifactNamePattern(targetSpecificOptions, ext, arch, \"${productName} ${version} ${arch}.${ext}\", true)\n }\n\n private computeArtifactName(pattern: any, ext: string, arch: Arch | null | undefined): string {\n const archName = arch == null ? null : getArtifactArchName(arch, ext)\n return this.expandMacro(pattern, this.platform === Platform.MAC ? null : archName, {\n ext\n })\n }\n\n expandMacro(pattern: string, arch?: string | null, extra: any = {}, isProductNameSanitized = true): string {\n return doExpandMacro(pattern, arch, this.appInfo, {os: this.platform.buildConfigurationKey, ...extra}, isProductNameSanitized)\n }\n\n generateName2(ext: string | null, classifier: string | null | undefined, deployment: boolean): string {\n const dotExt = ext == null ? \"\" : `.${ext}`\n const separator = ext === \"deb\" ? \"_\" : \"-\"\n return `${deployment ? this.appInfo.name : this.appInfo.productFilename}${separator}${this.appInfo.version}${classifier == null ? \"\" : `${separator}${classifier}`}${dotExt}`\n }\n\n getTempFile(suffix: string): Promise<string> {\n return this.info.tempDirManager.getTempFile({suffix})\n }\n\n get fileAssociations(): Array<FileAssociation> {\n return asArray(this.config.fileAssociations).concat(asArray(this.platformSpecificBuildOptions.fileAssociations))\n }\n\n async getResource(custom: string | null | undefined, ...names: Array<string>): Promise<string | null> {\n const resourcesDir = this.info.buildResourcesDir\n if (custom === undefined) {\n const resourceList = await this.resourceList\n for (const name of names) {\n if (resourceList.includes(name)) {\n return path.join(resourcesDir, name)\n }\n }\n }\n else if (custom != null && !isEmptyOrSpaces(custom)) {\n const resourceList = await this.resourceList\n if (resourceList.includes(custom)) {\n return path.join(resourcesDir, custom)\n }\n\n let p = path.resolve(resourcesDir, custom)\n if (await statOrNull(p) == null) {\n p = path.resolve(this.projectDir, custom)\n if (await statOrNull(p) == null) {\n throw new InvalidConfigurationError(`cannot find specified resource \"${custom}\", nor relative to \"${resourcesDir}\", neither relative to project dir (\"${this.projectDir}\")`)\n }\n }\n return p\n }\n return null\n }\n\n get forceCodeSigning(): boolean {\n const forceCodeSigningPlatform = this.platformSpecificBuildOptions.forceCodeSigning\n return (forceCodeSigningPlatform == null ? this.config.forceCodeSigning : forceCodeSigningPlatform) || false\n }\n\n protected async getOrConvertIcon(format: IconFormat): Promise<string | null> {\n const result = await this.resolveIcon(asArray(this.platformSpecificBuildOptions.icon || this.config.icon), [], format)\n if (result.length === 0) {\n const framework = this.info.framework\n if (framework.getDefaultIcon != null) {\n return framework.getDefaultIcon(this.platform)\n }\n\n log.warn({reason: \"application icon is not set\"}, `default ${capitalizeFirstLetter(framework.name)} icon is used`)\n return this.getDefaultFrameworkIcon()\n }\n else {\n return result[0].file\n }\n }\n\n getDefaultFrameworkIcon(): string | null {\n const framework = this.info.framework\n return framework.getDefaultIcon == null ? null : framework.getDefaultIcon(this.platform)\n }\n\n // convert if need, validate size (it is a reason why tool is called even if file has target extension (already specified as foo.icns for example))\n async resolveIcon(sources: Array<string>, fallbackSources: Array<string>, outputFormat: IconFormat): Promise<Array<IconInfo>> {\n const args = [\n \"icon\",\n \"--format\", outputFormat,\n \"--root\", this.buildResourcesDir,\n \"--root\", this.projectDir,\n \"--out\", path.resolve(this.projectDir, this.config.directories!!.output!!, `.icon-${outputFormat}`),\n ]\n for (const source of sources) {\n args.push(\"--input\", source)\n }\n for (const source of fallbackSources) {\n args.push(\"--fallback-input\", source)\n }\n\n const result: IconConvertResult = await executeAppBuilderAsJson(args)\n const errorMessage = result.error\n if (errorMessage != null) {\n throw new InvalidConfigurationError(errorMessage, result.errorCode)\n }\n\n if (result.isFallback) {\n log.warn({reason: \"application icon is not set\"}, `default ${capitalizeFirstLetter(this.info.framework.name)} icon is used`)\n }\n\n return result.icons || []\n }\n}\n\nexport interface IconInfo {\n file: string\n size: number\n}\n\ninterface IconConvertResult {\n icons?: Array<IconInfo>\n\n error?: string\n errorCode?: string\n isFallback?: boolean\n}\n\nexport type IconFormat = \"icns\" | \"ico\" | \"set\"\n\nexport function isSafeGithubName(name: string) {\n return /^[0-9A-Za-z._-]+$/.test(name)\n}\n\nexport function computeSafeArtifactNameIfNeeded(suggestedName: string | null, safeNameProducer: () => string): string | null {\n // GitHub only allows the listed characters in file names.\n if (suggestedName != null) {\n if (isSafeGithubName(suggestedName)) {\n return null\n }\n\n // prefer to use suggested name - so, if space is the only problem, just replace only space to dash\n suggestedName = suggestedName.replace(/ /g, \"-\")\n if (isSafeGithubName(suggestedName)) {\n return suggestedName\n }\n }\n\n return safeNameProducer()\n}\n\n// remove leading dot\nexport function normalizeExt(ext: string) {\n return ext.startsWith(\".\") ? ext.substring(1) : ext\n}\n\nexport function resolveFunction<T>(executor: T | string, name: string): T {\n if (executor == null || typeof executor !== \"string\") {\n return executor\n }\n\n let p = executor as string\n if (p.startsWith(\".\")) {\n p = path.resolve(p)\n }\n\n try {\n p = require.resolve(p)\n }\n catch (e) {\n debug(e)\n p = path.resolve(p)\n }\n\n // eslint-disable-next-line @typescript-eslint/no-var-requires\n const m = require(p)\n const namedExport = m[name]\n if (namedExport == null) {\n return m.default || m\n }\n else {\n return namedExport\n }\n}\n\nexport function chooseNotNull(v1: string | null | undefined, v2: string | null | undefined): string | null | undefined {\n return v1 == null ? v2 : v1\n}\n\nfunction capitalizeFirstLetter(text: string) {\n return text.charAt(0).toUpperCase() + text.slice(1)\n}\n\nexport function isSafeToUnpackElectronOnRemoteBuildServer(packager: PlatformPackager<any>) {\n if (packager.platform !== Platform.LINUX || packager.config.remoteBuild === false) {\n return false\n }\n\n if (process.platform === \"win32\" || isEnvTrue(process.env._REMOTE_BUILD)) {\n return packager.config.electronDist == null && packager.config.electronDownload == null\n }\n return false\n}\n"],"sourceRoot":""}
@@ -403,7 +403,7 @@ class PublishManager {
403
403
  exports.PublishManager = PublishManager;
404
404
 
405
405
  async function getAppUpdatePublishConfiguration(packager, arch, errorIfCannot) {
406
- const publishConfigs = await getPublishConfigsForUpdateInfo(packager, (await getPublishConfigs(packager, null, arch, errorIfCannot)), arch);
406
+ const publishConfigs = await getPublishConfigsForUpdateInfo(packager, await getPublishConfigs(packager, null, arch, errorIfCannot), arch);
407
407
 
408
408
  if (publishConfigs == null || publishConfigs.length === 0) {
409
409
  return null;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/publish/PublishManager.ts"],"names":[],"mappings":"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","sourcesContent":["import BluebirdPromise from \"bluebird-lst\"\nimport { Arch, asArray, AsyncTaskManager, InvalidConfigurationError, isEmptyOrSpaces, isPullRequest, log, safeStringifyJson, serializeToYaml } from \"builder-util\"\nimport { BintrayOptions, CancellationToken, GenericServerOptions, getS3LikeProviderBaseUrl, GithubOptions, githubUrl, PublishConfiguration, PublishProvider } from \"builder-util-runtime\"\nimport _debug from \"debug\"\nimport { getCiTag, PublishContext, Publisher, PublishOptions, UploadTask } from \"electron-publish\"\nimport { BintrayPublisher } from \"./BintrayPublisher\"\nimport { GitHubPublisher } from \"electron-publish/out/gitHubPublisher\"\nimport { MultiProgress } from \"electron-publish/out/multiProgress\"\nimport S3Publisher from \"./s3/s3Publisher\"\nimport SpacesPublisher from \"./s3/spacesPublisher\"\nimport { writeFile } from \"fs-extra\"\nimport isCi from \"is-ci\"\nimport * as path from \"path\"\nimport { WriteStream as TtyWriteStream } from \"tty\"\nimport * as url from \"url\"\nimport { AppInfo, ArtifactCreated, Configuration, Platform, PlatformSpecificBuildOptions, Target } from \"../index\"\nimport { Packager } from \"../packager\"\nimport { PlatformPackager } from \"../platformPackager\"\nimport { expandMacro } from \"../util/macroExpander\"\nimport { WinPackager } from \"../winPackager\"\nimport { SnapStoreOptions, SnapStorePublisher } from \"./SnapStorePublisher\"\nimport { createUpdateInfoTasks, UpdateInfoFileTask, writeUpdateInfoFiles } from \"./updateInfoBuilder\"\n\nconst publishForPrWarning = \"There are serious security concerns with PUBLISH_FOR_PULL_REQUEST=true (see the CircleCI documentation (https://circleci.com/docs/1.0/fork-pr-builds/) for details)\" +\n \"\\nIf you have SSH keys, sensitive env vars or AWS credentials stored in your project settings and untrusted forks can make pull requests against your repo, then this option isn't for you.\"\n\nconst debug = _debug(\"electron-builder:publish\")\n\nfunction checkOptions(publishPolicy: any) {\n if (publishPolicy != null && publishPolicy !== \"onTag\" && publishPolicy !== \"onTagOrDraft\" && publishPolicy !== \"always\" && publishPolicy !== \"never\") {\n if (typeof publishPolicy === \"string\") {\n throw new InvalidConfigurationError(`Expected one of \"onTag\", \"onTagOrDraft\", \"always\", \"never\", but got ${JSON.stringify(publishPolicy)}.\\nPlease note that publish configuration should be specified under \"config\"`)\n }\n }\n}\n\nexport class PublishManager implements PublishContext {\n private readonly nameToPublisher = new Map<string, Publisher | null>()\n\n private readonly taskManager: AsyncTaskManager\n\n readonly isPublish: boolean = false\n\n readonly progress = (process.stdout as TtyWriteStream).isTTY ? new MultiProgress() : null\n\n private readonly updateFileWriteTask: Array<UpdateInfoFileTask> = []\n\n constructor(private readonly packager: Packager, private readonly publishOptions: PublishOptions, readonly cancellationToken: CancellationToken = packager.cancellationToken) {\n checkOptions(publishOptions.publish)\n\n this.taskManager = new AsyncTaskManager(cancellationToken)\n\n const forcePublishForPr = process.env.PUBLISH_FOR_PULL_REQUEST === \"true\"\n if (!isPullRequest() || forcePublishForPr) {\n if (publishOptions.publish === undefined) {\n if (process.env.npm_lifecycle_event === \"release\") {\n publishOptions.publish = \"always\"\n }\n else {\n const tag = getCiTag()\n if (tag != null) {\n log.info({reason: \"tag is defined\", tag}, \"artifacts will be published\")\n publishOptions.publish = \"onTag\"\n }\n else if (isCi) {\n log.info({reason: \"CI detected\"}, \"artifacts will be published if draft release exists\")\n publishOptions.publish = \"onTagOrDraft\"\n }\n }\n }\n\n const publishPolicy = publishOptions.publish\n this.isPublish = publishPolicy != null && publishOptions.publish !== \"never\" && (publishPolicy !== \"onTag\" || getCiTag() != null)\n if (this.isPublish && forcePublishForPr) {\n log.warn(publishForPrWarning)\n }\n }\n else if (publishOptions.publish !== \"never\") {\n log.info({\n reason: \"current build is a part of pull request\",\n solution: `set env PUBLISH_FOR_PULL_REQUEST to true to force code signing\\n${publishForPrWarning}`,\n }, \"publishing will be skipped\")\n }\n\n packager.addAfterPackHandler(async event => {\n const packager = event.packager\n if (event.electronPlatformName === \"darwin\") {\n if (!event.targets.some(it => it.name === \"dmg\" || it.name === \"zip\")) {\n return\n }\n }\n else if (packager.platform === Platform.WINDOWS) {\n if (!event.targets.some(it => isSuitableWindowsTarget(it))) {\n return\n }\n }\n else {\n // AppImage writes data to AppImage stage dir, not to linux-unpacked\n return\n }\n\n const publishConfig = await getAppUpdatePublishConfiguration(packager, event.arch, this.isPublish)\n if (publishConfig != null) {\n await writeFile(path.join(packager.getResourcesDir(event.appOutDir), \"app-update.yml\"), serializeToYaml(publishConfig))\n }\n })\n\n packager.artifactCreated(event => {\n const publishConfiguration = event.publishConfig\n if (publishConfiguration == null) {\n this.taskManager.addTask(this.artifactCreatedWithoutExplicitPublishConfig(event))\n }\n else if (this.isPublish) {\n if (debug.enabled) {\n debug(`artifactCreated (isPublish: ${this.isPublish}): ${safeStringifyJson(event, new Set([\"packager\"]))},\\n publishConfig: ${safeStringifyJson(publishConfiguration)}`)\n }\n this.scheduleUpload(publishConfiguration, event, this.getAppInfo(event.packager))\n }\n })\n }\n\n private getAppInfo(platformPackager: PlatformPackager<any> | null) {\n return platformPackager == null ? this.packager.appInfo : platformPackager.appInfo\n }\n\n async getGlobalPublishConfigurations(): Promise<Array<PublishConfiguration> | null> {\n const publishers = this.packager.config.publish\n return await resolvePublishConfigurations(publishers, null, this.packager, null, true)\n }\n\n /** @internal */\n scheduleUpload(publishConfig: PublishConfiguration, event: UploadTask, appInfo: AppInfo): void {\n if (publishConfig.provider === \"generic\") {\n return\n }\n\n const publisher = this.getOrCreatePublisher(publishConfig, appInfo)\n if (publisher == null) {\n log.debug({\n file: event.file,\n reason: \"publisher is null\",\n publishConfig: safeStringifyJson(publishConfig),\n }, \"not published\")\n return\n }\n\n const providerName = publisher.providerName\n if (this.publishOptions.publish === \"onTagOrDraft\" && getCiTag() == null && !(providerName === \"GitHub\" || providerName === \"Bintray\")) {\n log.info({file: event.file, reason: \"current build is not for a git tag\", publishPolicy: \"onTagOrDraft\"}, `not published to ${providerName}`)\n return\n }\n\n this.taskManager.addTask(publisher.upload(event))\n }\n\n private async artifactCreatedWithoutExplicitPublishConfig(event: ArtifactCreated) {\n const platformPackager = event.packager\n const target = event.target\n const publishConfigs = await getPublishConfigs(platformPackager, target == null ? null : target.options, event.arch, this.isPublish)\n\n if (debug.enabled) {\n debug(`artifactCreated (isPublish: ${this.isPublish}): ${safeStringifyJson(event, new Set([\"packager\"]))},\\n publishConfigs: ${safeStringifyJson(publishConfigs)}`)\n }\n\n const eventFile = event.file\n if (publishConfigs == null) {\n if (this.isPublish) {\n log.debug({file: eventFile, reason: \"no publish configs\"}, \"not published\")\n }\n return\n }\n\n if (this.isPublish) {\n for (const publishConfig of publishConfigs) {\n if (this.cancellationToken.cancelled) {\n log.debug({file: event.file, reason: \"cancelled\"}, \"not published\")\n break\n }\n\n this.scheduleUpload(publishConfig, event, this.getAppInfo(platformPackager))\n }\n }\n\n if (event.isWriteUpdateInfo && target != null && eventFile != null &&\n !this.cancellationToken.cancelled &&\n (platformPackager.platform !== Platform.WINDOWS || isSuitableWindowsTarget(target))) {\n this.taskManager.addTask(createUpdateInfoTasks(event, publishConfigs).then(it => this.updateFileWriteTask.push(...it)))\n }\n }\n\n private getOrCreatePublisher(publishConfig: PublishConfiguration, appInfo: AppInfo): Publisher | null {\n // to not include token into cache key\n const providerCacheKey = safeStringifyJson(publishConfig)\n let publisher = this.nameToPublisher.get(providerCacheKey)\n if (publisher == null) {\n publisher = createPublisher(this, appInfo.version, publishConfig, this.publishOptions, this.packager)\n this.nameToPublisher.set(providerCacheKey, publisher)\n log.info({publisher: publisher!!.toString()}, \"publishing\")\n }\n return publisher\n }\n\n // noinspection JSUnusedGlobalSymbols\n cancelTasks() {\n this.taskManager.cancelTasks()\n this.nameToPublisher.clear()\n }\n\n async awaitTasks(): Promise<void> {\n await this.taskManager.awaitTasks()\n\n const updateInfoFileTasks = this.updateFileWriteTask\n if (this.cancellationToken.cancelled || updateInfoFileTasks.length === 0) {\n return\n }\n\n await writeUpdateInfoFiles(updateInfoFileTasks, this.packager)\n await this.taskManager.awaitTasks()\n }\n}\n\nexport async function getAppUpdatePublishConfiguration(packager: PlatformPackager<any>, arch: Arch, errorIfCannot: boolean) {\n const publishConfigs = await getPublishConfigsForUpdateInfo(packager, await getPublishConfigs(packager, null, arch, errorIfCannot), arch)\n if (publishConfigs == null || publishConfigs.length === 0) {\n return null\n }\n\n const publishConfig = {\n ...publishConfigs[0],\n updaterCacheDirName: packager.appInfo.updaterCacheDirName,\n }\n\n if (packager.platform === Platform.WINDOWS && publishConfig.publisherName == null) {\n const winPackager = packager as WinPackager\n const publisherName = winPackager.isForceCodeSigningVerification ? await winPackager.computedPublisherName.value : undefined\n if (publisherName != null) {\n publishConfig.publisherName = publisherName\n }\n }\n return publishConfig\n}\n\nexport async function getPublishConfigsForUpdateInfo(packager: PlatformPackager<any>, publishConfigs: Array<PublishConfiguration> | null, arch: Arch | null): Promise<Array<PublishConfiguration> | null> {\n if (publishConfigs === null) {\n return null\n }\n\n if (publishConfigs.length === 0) {\n log.debug(null, \"getPublishConfigsForUpdateInfo: no publishConfigs, detect using repository info\")\n // https://github.com/electron-userland/electron-builder/issues/925#issuecomment-261732378\n // default publish config is github, file should be generated regardless of publish state (user can test installer locally or manage the release process manually)\n const repositoryInfo = await packager.info.repositoryInfo\n debug(`getPublishConfigsForUpdateInfo: ${safeStringifyJson(repositoryInfo)}`)\n if (repositoryInfo != null && repositoryInfo.type === \"github\") {\n const resolvedPublishConfig = await getResolvedPublishConfig(packager, packager.info, {provider: repositoryInfo.type}, arch, false)\n if (resolvedPublishConfig != null) {\n debug(`getPublishConfigsForUpdateInfo: resolve to publish config ${safeStringifyJson(resolvedPublishConfig)}`)\n return [resolvedPublishConfig]\n }\n }\n }\n return publishConfigs\n}\n\nexport function createPublisher(context: PublishContext, version: string, publishConfig: PublishConfiguration, options: PublishOptions, packager: Packager): Publisher | null {\n if (debug.enabled) {\n debug(`Create publisher: ${safeStringifyJson(publishConfig)}`)\n }\n\n const provider = publishConfig.provider\n switch (provider) {\n case \"github\":\n return new GitHubPublisher(context, publishConfig as GithubOptions, version, options)\n\n case \"bintray\":\n return new BintrayPublisher(context, publishConfig as BintrayOptions, version, options)\n\n case \"generic\":\n return null\n\n case \"snapStore\":\n return new SnapStorePublisher(context, publishConfig as SnapStoreOptions)\n\n default: {\n const clazz = requireProviderClass(provider, packager)\n return clazz == null ? null : new clazz(context, publishConfig)\n }\n }\n}\n\nfunction requireProviderClass(provider: string, packager: Packager): any | null {\n switch (provider) {\n case \"github\":\n return GitHubPublisher\n\n case \"bintray\":\n return BintrayPublisher\n\n case \"generic\":\n return null\n\n case \"s3\":\n return S3Publisher\n\n case \"snapStore\":\n return SnapStorePublisher\n\n case \"spaces\":\n return SpacesPublisher\n\n default: {\n const name = `electron-publisher-${provider}`\n let module: any = null\n try {\n module = require(path.join(packager.buildResourcesDir, name + \".js\"))\n }\n catch (ignored) {\n console.log(ignored)\n }\n\n if (module == null) {\n module = require(name)\n }\n return module.default || module\n }\n }\n}\n\nexport function computeDownloadUrl(publishConfiguration: PublishConfiguration, fileName: string | null, packager: PlatformPackager<any>) {\n if (publishConfiguration.provider === \"generic\") {\n const baseUrlString = (publishConfiguration as GenericServerOptions).url\n if (fileName == null) {\n return baseUrlString\n }\n\n const baseUrl = url.parse(baseUrlString)\n return url.format({...baseUrl as url.UrlObject, pathname: path.posix.resolve(baseUrl.pathname || \"/\", encodeURI(fileName))})\n }\n\n let baseUrl\n if (publishConfiguration.provider === \"github\") {\n const gh = publishConfiguration as GithubOptions\n baseUrl = `${githubUrl(gh)}/${gh.owner}/${gh.repo}/releases/download/${gh.vPrefixedTagName === false ? \"\" : \"v\"}${packager.appInfo.version}`\n }\n else {\n baseUrl = getS3LikeProviderBaseUrl(publishConfiguration)\n }\n\n if (fileName == null) {\n return baseUrl\n }\n return `${baseUrl}/${encodeURI(fileName)}`\n}\n\nexport async function getPublishConfigs(platformPackager: PlatformPackager<any>, targetSpecificOptions: PlatformSpecificBuildOptions | null | undefined, arch: Arch | null, errorIfCannot: boolean): Promise<Array<PublishConfiguration> | null> {\n let publishers\n\n // check build.nsis (target)\n if (targetSpecificOptions != null) {\n publishers = targetSpecificOptions.publish\n // if explicitly set to null - do not publish\n if (publishers === null) {\n return null\n }\n }\n\n // check build.win (platform)\n if (publishers == null) {\n publishers = platformPackager.platformSpecificBuildOptions.publish\n if (publishers === null) {\n return null\n }\n }\n\n if (publishers == null) {\n publishers = platformPackager.config.publish\n if (publishers === null) {\n return null\n }\n }\n return await resolvePublishConfigurations(publishers, platformPackager, platformPackager.info, arch, errorIfCannot)\n}\n\nasync function resolvePublishConfigurations(publishers: any, platformPackager: PlatformPackager<any> | null, packager: Packager, arch: Arch | null, errorIfCannot: boolean): Promise<Array<PublishConfiguration> | null> {\n if (publishers == null) {\n let serviceName: PublishProvider | null = null\n if (!isEmptyOrSpaces(process.env.GH_TOKEN) || !isEmptyOrSpaces(process.env.GITHUB_TOKEN)) {\n serviceName = \"github\"\n }\n else if (!isEmptyOrSpaces(process.env.BT_TOKEN)) {\n serviceName = \"bintray\"\n }\n\n if (serviceName != null) {\n log.debug(null, `detect ${serviceName} as publish provider`)\n return [(await getResolvedPublishConfig(platformPackager, packager, {provider: serviceName}, arch, errorIfCannot))!]\n }\n }\n\n if (publishers == null) {\n return []\n }\n\n debug(`Explicit publish provider: ${safeStringifyJson(publishers)}`)\n return await (BluebirdPromise.map(asArray(publishers), it => getResolvedPublishConfig(platformPackager, packager, typeof it === \"string\" ? {provider: it} : it, arch, errorIfCannot)) as Promise<Array<PublishConfiguration>>)\n}\n\nfunction isSuitableWindowsTarget(target: Target) {\n if (target.name === \"appx\" && target.options != null && (target.options as any).electronUpdaterAware) {\n return true\n }\n return target.name === \"nsis\" || target.name.startsWith(\"nsis-\")\n}\n\nfunction expandPublishConfig(options: any, platformPackager: PlatformPackager<any> | null, packager: Packager, arch: Arch | null): void {\n for (const name of Object.keys(options)) {\n const value = options[name]\n if (typeof value === \"string\") {\n const archValue = arch == null ? null : Arch[arch]\n const expanded = platformPackager == null ? expandMacro(value, archValue, packager.appInfo) : platformPackager.expandMacro(value, archValue)\n if (expanded !== value) {\n options[name] = expanded\n }\n }\n }\n}\n\nfunction isDetectUpdateChannel(platformSpecificConfiguration: PlatformSpecificBuildOptions | null, configuration: Configuration) {\n const value = platformSpecificConfiguration == null ? null : platformSpecificConfiguration.detectUpdateChannel\n return value == null ? configuration.detectUpdateChannel !== false : value\n}\n\nasync function getResolvedPublishConfig(platformPackager: PlatformPackager<any> | null, packager: Packager, options: PublishConfiguration, arch: Arch | null, errorIfCannot: boolean): Promise<PublishConfiguration | GithubOptions | BintrayOptions | null> {\n options = {...options}\n expandPublishConfig(options, platformPackager, packager, arch)\n\n let channelFromAppVersion: string | null = null\n if ((options as GenericServerOptions).channel == null && isDetectUpdateChannel(platformPackager == null ? null : platformPackager.platformSpecificBuildOptions, packager.config)) {\n channelFromAppVersion = packager.appInfo.channel\n }\n\n const provider = options.provider\n if (provider === \"generic\") {\n const o = options as GenericServerOptions\n if (o.url == null) {\n throw new InvalidConfigurationError(`Please specify \"url\" for \"generic\" update server`)\n }\n\n if (channelFromAppVersion != null) {\n (o as any).channel = channelFromAppVersion\n }\n return options\n }\n\n const providerClass = requireProviderClass(options.provider, packager)\n if (providerClass != null && providerClass.checkAndResolveOptions != null) {\n await providerClass.checkAndResolveOptions(options, channelFromAppVersion, errorIfCannot)\n return options\n }\n\n const isGithub = provider === \"github\"\n if (!isGithub && provider !== \"bintray\") {\n return options\n }\n\n let owner = isGithub ? (options as GithubOptions).owner : (options as BintrayOptions).owner\n let project = isGithub ? (options as GithubOptions).repo : (options as BintrayOptions).package\n\n if (isGithub && owner == null && project != null) {\n const index = project.indexOf(\"/\")\n if (index > 0) {\n const repo = project\n project = repo.substring(0, index)\n owner = repo.substring(index + 1)\n }\n }\n\n async function getInfo() {\n const info = await packager.repositoryInfo\n if (info != null) {\n return info\n }\n\n const message = `Cannot detect repository by .git/config. Please specify \"repository\" in the package.json (https://docs.npmjs.com/files/package.json#repository).\\nPlease see https://electron.build/configuration/publish`\n if (errorIfCannot) {\n throw new Error(message)\n }\n else {\n log.warn(message)\n return null\n }\n }\n\n if (!owner || !project) {\n log.debug({reason: \"owner or project is not specified explicitly\", provider, owner, project}, \"calling getInfo\")\n const info = await getInfo()\n if (info == null) {\n return null\n }\n\n if (!owner) {\n owner = info.user\n }\n if (!project) {\n project = info.project\n }\n }\n\n if (isGithub) {\n if ((options as GithubOptions).token != null && !(options as GithubOptions).private) {\n log.warn('\"token\" specified in the github publish options. It should be used only for [setFeedURL](module:electron-updater/out/AppUpdater.AppUpdater+setFeedURL).')\n }\n //tslint:disable-next-line:no-object-literal-type-assertion\n return {owner, repo: project, ...options} as GithubOptions\n }\n else {\n //tslint:disable-next-line:no-object-literal-type-assertion\n return {owner, package: project, ...options} as BintrayOptions\n }\n}"],"sourceRoot":""}
1
+ {"version":3,"sources":["../../src/publish/PublishManager.ts"],"names":[],"mappings":"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","sourcesContent":["import BluebirdPromise from \"bluebird-lst\"\nimport { Arch, asArray, AsyncTaskManager, InvalidConfigurationError, isEmptyOrSpaces, isPullRequest, log, safeStringifyJson, serializeToYaml } from \"builder-util\"\nimport { BintrayOptions, CancellationToken, GenericServerOptions, getS3LikeProviderBaseUrl, GithubOptions, githubUrl, PublishConfiguration, PublishProvider } from \"builder-util-runtime\"\nimport _debug from \"debug\"\nimport { getCiTag, PublishContext, Publisher, PublishOptions, UploadTask } from \"electron-publish\"\nimport { BintrayPublisher } from \"./BintrayPublisher\"\nimport { GitHubPublisher } from \"electron-publish/out/gitHubPublisher\"\nimport { MultiProgress } from \"electron-publish/out/multiProgress\"\nimport S3Publisher from \"./s3/s3Publisher\"\nimport SpacesPublisher from \"./s3/spacesPublisher\"\nimport { writeFile } from \"fs-extra\"\nimport isCi from \"is-ci\"\nimport * as path from \"path\"\nimport { WriteStream as TtyWriteStream } from \"tty\"\nimport * as url from \"url\"\nimport { AppInfo, ArtifactCreated, Configuration, Platform, PlatformSpecificBuildOptions, Target } from \"../index\"\nimport { Packager } from \"../packager\"\nimport { PlatformPackager } from \"../platformPackager\"\nimport { expandMacro } from \"../util/macroExpander\"\nimport { WinPackager } from \"../winPackager\"\nimport { SnapStoreOptions, SnapStorePublisher } from \"./SnapStorePublisher\"\nimport { createUpdateInfoTasks, UpdateInfoFileTask, writeUpdateInfoFiles } from \"./updateInfoBuilder\"\n\nconst publishForPrWarning = \"There are serious security concerns with PUBLISH_FOR_PULL_REQUEST=true (see the CircleCI documentation (https://circleci.com/docs/1.0/fork-pr-builds/) for details)\" +\n \"\\nIf you have SSH keys, sensitive env vars or AWS credentials stored in your project settings and untrusted forks can make pull requests against your repo, then this option isn't for you.\"\n\nconst debug = _debug(\"electron-builder:publish\")\n\nfunction checkOptions(publishPolicy: any) {\n if (publishPolicy != null && publishPolicy !== \"onTag\" && publishPolicy !== \"onTagOrDraft\" && publishPolicy !== \"always\" && publishPolicy !== \"never\") {\n if (typeof publishPolicy === \"string\") {\n throw new InvalidConfigurationError(`Expected one of \"onTag\", \"onTagOrDraft\", \"always\", \"never\", but got ${JSON.stringify(publishPolicy)}.\\nPlease note that publish configuration should be specified under \"config\"`)\n }\n }\n}\n\nexport class PublishManager implements PublishContext {\n private readonly nameToPublisher = new Map<string, Publisher | null>()\n\n private readonly taskManager: AsyncTaskManager\n\n readonly isPublish: boolean = false\n\n readonly progress = (process.stdout as TtyWriteStream).isTTY ? new MultiProgress() : null\n\n private readonly updateFileWriteTask: Array<UpdateInfoFileTask> = []\n\n constructor(private readonly packager: Packager, private readonly publishOptions: PublishOptions, readonly cancellationToken: CancellationToken = packager.cancellationToken) {\n checkOptions(publishOptions.publish)\n\n this.taskManager = new AsyncTaskManager(cancellationToken)\n\n const forcePublishForPr = process.env.PUBLISH_FOR_PULL_REQUEST === \"true\"\n if (!isPullRequest() || forcePublishForPr) {\n if (publishOptions.publish === undefined) {\n if (process.env.npm_lifecycle_event === \"release\") {\n publishOptions.publish = \"always\"\n }\n else {\n const tag = getCiTag()\n if (tag != null) {\n log.info({reason: \"tag is defined\", tag}, \"artifacts will be published\")\n publishOptions.publish = \"onTag\"\n }\n else if (isCi) {\n log.info({reason: \"CI detected\"}, \"artifacts will be published if draft release exists\")\n publishOptions.publish = \"onTagOrDraft\"\n }\n }\n }\n\n const publishPolicy = publishOptions.publish\n this.isPublish = publishPolicy != null && publishOptions.publish !== \"never\" && (publishPolicy !== \"onTag\" || getCiTag() != null)\n if (this.isPublish && forcePublishForPr) {\n log.warn(publishForPrWarning)\n }\n }\n else if (publishOptions.publish !== \"never\") {\n log.info({\n reason: \"current build is a part of pull request\",\n solution: `set env PUBLISH_FOR_PULL_REQUEST to true to force code signing\\n${publishForPrWarning}`,\n }, \"publishing will be skipped\")\n }\n\n packager.addAfterPackHandler(async event => {\n const packager = event.packager\n if (event.electronPlatformName === \"darwin\") {\n if (!event.targets.some(it => it.name === \"dmg\" || it.name === \"zip\")) {\n return\n }\n }\n else if (packager.platform === Platform.WINDOWS) {\n if (!event.targets.some(it => isSuitableWindowsTarget(it))) {\n return\n }\n }\n else {\n // AppImage writes data to AppImage stage dir, not to linux-unpacked\n return\n }\n\n const publishConfig = await getAppUpdatePublishConfiguration(packager, event.arch, this.isPublish)\n if (publishConfig != null) {\n await writeFile(path.join(packager.getResourcesDir(event.appOutDir), \"app-update.yml\"), serializeToYaml(publishConfig))\n }\n })\n\n packager.artifactCreated(event => {\n const publishConfiguration = event.publishConfig\n if (publishConfiguration == null) {\n this.taskManager.addTask(this.artifactCreatedWithoutExplicitPublishConfig(event))\n }\n else if (this.isPublish) {\n if (debug.enabled) {\n debug(`artifactCreated (isPublish: ${this.isPublish}): ${safeStringifyJson(event, new Set([\"packager\"]))},\\n publishConfig: ${safeStringifyJson(publishConfiguration)}`)\n }\n this.scheduleUpload(publishConfiguration, event, this.getAppInfo(event.packager))\n }\n })\n }\n\n private getAppInfo(platformPackager: PlatformPackager<any> | null) {\n return platformPackager == null ? this.packager.appInfo : platformPackager.appInfo\n }\n\n async getGlobalPublishConfigurations(): Promise<Array<PublishConfiguration> | null> {\n const publishers = this.packager.config.publish\n return await resolvePublishConfigurations(publishers, null, this.packager, null, true)\n }\n\n /** @internal */\n scheduleUpload(publishConfig: PublishConfiguration, event: UploadTask, appInfo: AppInfo): void {\n if (publishConfig.provider === \"generic\") {\n return\n }\n\n const publisher = this.getOrCreatePublisher(publishConfig, appInfo)\n if (publisher == null) {\n log.debug({\n file: event.file,\n reason: \"publisher is null\",\n publishConfig: safeStringifyJson(publishConfig),\n }, \"not published\")\n return\n }\n\n const providerName = publisher.providerName\n if (this.publishOptions.publish === \"onTagOrDraft\" && getCiTag() == null && !(providerName === \"GitHub\" || providerName === \"Bintray\")) {\n log.info({file: event.file, reason: \"current build is not for a git tag\", publishPolicy: \"onTagOrDraft\"}, `not published to ${providerName}`)\n return\n }\n\n this.taskManager.addTask(publisher.upload(event))\n }\n\n private async artifactCreatedWithoutExplicitPublishConfig(event: ArtifactCreated) {\n const platformPackager = event.packager\n const target = event.target\n const publishConfigs = await getPublishConfigs(platformPackager, target == null ? null : target.options, event.arch, this.isPublish)\n\n if (debug.enabled) {\n debug(`artifactCreated (isPublish: ${this.isPublish}): ${safeStringifyJson(event, new Set([\"packager\"]))},\\n publishConfigs: ${safeStringifyJson(publishConfigs)}`)\n }\n\n const eventFile = event.file\n if (publishConfigs == null) {\n if (this.isPublish) {\n log.debug({file: eventFile, reason: \"no publish configs\"}, \"not published\")\n }\n return\n }\n\n if (this.isPublish) {\n for (const publishConfig of publishConfigs) {\n if (this.cancellationToken.cancelled) {\n log.debug({file: event.file, reason: \"cancelled\"}, \"not published\")\n break\n }\n\n this.scheduleUpload(publishConfig, event, this.getAppInfo(platformPackager))\n }\n }\n\n if (event.isWriteUpdateInfo && target != null && eventFile != null &&\n !this.cancellationToken.cancelled &&\n (platformPackager.platform !== Platform.WINDOWS || isSuitableWindowsTarget(target))) {\n this.taskManager.addTask(createUpdateInfoTasks(event, publishConfigs).then(it => this.updateFileWriteTask.push(...it)))\n }\n }\n\n private getOrCreatePublisher(publishConfig: PublishConfiguration, appInfo: AppInfo): Publisher | null {\n // to not include token into cache key\n const providerCacheKey = safeStringifyJson(publishConfig)\n let publisher = this.nameToPublisher.get(providerCacheKey)\n if (publisher == null) {\n publisher = createPublisher(this, appInfo.version, publishConfig, this.publishOptions, this.packager)\n this.nameToPublisher.set(providerCacheKey, publisher)\n log.info({publisher: publisher!!.toString()}, \"publishing\")\n }\n return publisher\n }\n\n // noinspection JSUnusedGlobalSymbols\n cancelTasks() {\n this.taskManager.cancelTasks()\n this.nameToPublisher.clear()\n }\n\n async awaitTasks(): Promise<void> {\n await this.taskManager.awaitTasks()\n\n const updateInfoFileTasks = this.updateFileWriteTask\n if (this.cancellationToken.cancelled || updateInfoFileTasks.length === 0) {\n return\n }\n\n await writeUpdateInfoFiles(updateInfoFileTasks, this.packager)\n await this.taskManager.awaitTasks()\n }\n}\n\nexport async function getAppUpdatePublishConfiguration(packager: PlatformPackager<any>, arch: Arch, errorIfCannot: boolean) {\n const publishConfigs = await getPublishConfigsForUpdateInfo(packager, await getPublishConfigs(packager, null, arch, errorIfCannot), arch)\n if (publishConfigs == null || publishConfigs.length === 0) {\n return null\n }\n\n const publishConfig = {\n ...publishConfigs[0],\n updaterCacheDirName: packager.appInfo.updaterCacheDirName,\n }\n\n if (packager.platform === Platform.WINDOWS && publishConfig.publisherName == null) {\n const winPackager = packager as WinPackager\n const publisherName = winPackager.isForceCodeSigningVerification ? await winPackager.computedPublisherName.value : undefined\n if (publisherName != null) {\n publishConfig.publisherName = publisherName\n }\n }\n return publishConfig\n}\n\nexport async function getPublishConfigsForUpdateInfo(packager: PlatformPackager<any>, publishConfigs: Array<PublishConfiguration> | null, arch: Arch | null): Promise<Array<PublishConfiguration> | null> {\n if (publishConfigs === null) {\n return null\n }\n\n if (publishConfigs.length === 0) {\n log.debug(null, \"getPublishConfigsForUpdateInfo: no publishConfigs, detect using repository info\")\n // https://github.com/electron-userland/electron-builder/issues/925#issuecomment-261732378\n // default publish config is github, file should be generated regardless of publish state (user can test installer locally or manage the release process manually)\n const repositoryInfo = await packager.info.repositoryInfo\n debug(`getPublishConfigsForUpdateInfo: ${safeStringifyJson(repositoryInfo)}`)\n if (repositoryInfo != null && repositoryInfo.type === \"github\") {\n const resolvedPublishConfig = await getResolvedPublishConfig(packager, packager.info, {provider: repositoryInfo.type}, arch, false)\n if (resolvedPublishConfig != null) {\n debug(`getPublishConfigsForUpdateInfo: resolve to publish config ${safeStringifyJson(resolvedPublishConfig)}`)\n return [resolvedPublishConfig]\n }\n }\n }\n return publishConfigs\n}\n\nexport function createPublisher(context: PublishContext, version: string, publishConfig: PublishConfiguration, options: PublishOptions, packager: Packager): Publisher | null {\n if (debug.enabled) {\n debug(`Create publisher: ${safeStringifyJson(publishConfig)}`)\n }\n\n const provider = publishConfig.provider\n switch (provider) {\n case \"github\":\n return new GitHubPublisher(context, publishConfig as GithubOptions, version, options)\n\n case \"bintray\":\n return new BintrayPublisher(context, publishConfig as BintrayOptions, version, options)\n\n case \"generic\":\n return null\n\n case \"snapStore\":\n return new SnapStorePublisher(context, publishConfig as SnapStoreOptions)\n\n default: {\n const clazz = requireProviderClass(provider, packager)\n return clazz == null ? null : new clazz(context, publishConfig)\n }\n }\n}\n\nfunction requireProviderClass(provider: string, packager: Packager): any | null {\n switch (provider) {\n case \"github\":\n return GitHubPublisher\n\n case \"bintray\":\n return BintrayPublisher\n\n case \"generic\":\n return null\n\n case \"s3\":\n return S3Publisher\n\n case \"snapStore\":\n return SnapStorePublisher\n\n case \"spaces\":\n return SpacesPublisher\n\n default: {\n const name = `electron-publisher-${provider}`\n let module: any = null\n try {\n module = require(path.join(packager.buildResourcesDir, name + \".js\"))\n }\n catch (ignored) {\n console.log(ignored)\n }\n\n if (module == null) {\n module = require(name)\n }\n return module.default || module\n }\n }\n}\n\nexport function computeDownloadUrl(publishConfiguration: PublishConfiguration, fileName: string | null, packager: PlatformPackager<any>) {\n if (publishConfiguration.provider === \"generic\") {\n const baseUrlString = (publishConfiguration as GenericServerOptions).url\n if (fileName == null) {\n return baseUrlString\n }\n\n const baseUrl = url.parse(baseUrlString)\n return url.format({...baseUrl as url.UrlObject, pathname: path.posix.resolve(baseUrl.pathname || \"/\", encodeURI(fileName))})\n }\n\n let baseUrl\n if (publishConfiguration.provider === \"github\") {\n const gh = publishConfiguration as GithubOptions\n baseUrl = `${githubUrl(gh)}/${gh.owner}/${gh.repo}/releases/download/${gh.vPrefixedTagName === false ? \"\" : \"v\"}${packager.appInfo.version}`\n }\n else {\n baseUrl = getS3LikeProviderBaseUrl(publishConfiguration)\n }\n\n if (fileName == null) {\n return baseUrl\n }\n return `${baseUrl}/${encodeURI(fileName)}`\n}\n\nexport async function getPublishConfigs(platformPackager: PlatformPackager<any>, targetSpecificOptions: PlatformSpecificBuildOptions | null | undefined, arch: Arch | null, errorIfCannot: boolean): Promise<Array<PublishConfiguration> | null> {\n let publishers\n\n // check build.nsis (target)\n if (targetSpecificOptions != null) {\n publishers = targetSpecificOptions.publish\n // if explicitly set to null - do not publish\n if (publishers === null) {\n return null\n }\n }\n\n // check build.win (platform)\n if (publishers == null) {\n publishers = platformPackager.platformSpecificBuildOptions.publish\n if (publishers === null) {\n return null\n }\n }\n\n if (publishers == null) {\n publishers = platformPackager.config.publish\n if (publishers === null) {\n return null\n }\n }\n return await resolvePublishConfigurations(publishers, platformPackager, platformPackager.info, arch, errorIfCannot)\n}\n\nasync function resolvePublishConfigurations(publishers: any, platformPackager: PlatformPackager<any> | null, packager: Packager, arch: Arch | null, errorIfCannot: boolean): Promise<Array<PublishConfiguration> | null> {\n if (publishers == null) {\n let serviceName: PublishProvider | null = null\n if (!isEmptyOrSpaces(process.env.GH_TOKEN) || !isEmptyOrSpaces(process.env.GITHUB_TOKEN)) {\n serviceName = \"github\"\n }\n else if (!isEmptyOrSpaces(process.env.BT_TOKEN)) {\n serviceName = \"bintray\"\n }\n\n if (serviceName != null) {\n log.debug(null, `detect ${serviceName} as publish provider`)\n return [(await getResolvedPublishConfig(platformPackager, packager, {provider: serviceName}, arch, errorIfCannot))!]\n }\n }\n\n if (publishers == null) {\n return []\n }\n\n debug(`Explicit publish provider: ${safeStringifyJson(publishers)}`)\n return await (BluebirdPromise.map(asArray(publishers), it => getResolvedPublishConfig(platformPackager, packager, typeof it === \"string\" ? {provider: it} : it, arch, errorIfCannot)) as Promise<Array<PublishConfiguration>>)\n}\n\nfunction isSuitableWindowsTarget(target: Target) {\n if (target.name === \"appx\" && target.options != null && (target.options as any).electronUpdaterAware) {\n return true\n }\n return target.name === \"nsis\" || target.name.startsWith(\"nsis-\")\n}\n\nfunction expandPublishConfig(options: any, platformPackager: PlatformPackager<any> | null, packager: Packager, arch: Arch | null): void {\n for (const name of Object.keys(options)) {\n const value = options[name]\n if (typeof value === \"string\") {\n const archValue = arch == null ? null : Arch[arch]\n const expanded = platformPackager == null ? expandMacro(value, archValue, packager.appInfo) : platformPackager.expandMacro(value, archValue)\n if (expanded !== value) {\n options[name] = expanded\n }\n }\n }\n}\n\nfunction isDetectUpdateChannel(platformSpecificConfiguration: PlatformSpecificBuildOptions | null, configuration: Configuration) {\n const value = platformSpecificConfiguration == null ? null : platformSpecificConfiguration.detectUpdateChannel\n return value == null ? configuration.detectUpdateChannel !== false : value\n}\n\nasync function getResolvedPublishConfig(platformPackager: PlatformPackager<any> | null, packager: Packager, options: PublishConfiguration, arch: Arch | null, errorIfCannot: boolean): Promise<PublishConfiguration | GithubOptions | BintrayOptions | null> {\n options = {...options}\n expandPublishConfig(options, platformPackager, packager, arch)\n\n let channelFromAppVersion: string | null = null\n if ((options as GenericServerOptions).channel == null && isDetectUpdateChannel(platformPackager == null ? null : platformPackager.platformSpecificBuildOptions, packager.config)) {\n channelFromAppVersion = packager.appInfo.channel\n }\n\n const provider = options.provider\n if (provider === \"generic\") {\n const o = options as GenericServerOptions\n if (o.url == null) {\n throw new InvalidConfigurationError(`Please specify \"url\" for \"generic\" update server`)\n }\n\n if (channelFromAppVersion != null) {\n (o as any).channel = channelFromAppVersion\n }\n return options\n }\n\n const providerClass = requireProviderClass(options.provider, packager)\n if (providerClass != null && providerClass.checkAndResolveOptions != null) {\n await providerClass.checkAndResolveOptions(options, channelFromAppVersion, errorIfCannot)\n return options\n }\n\n const isGithub = provider === \"github\"\n if (!isGithub && provider !== \"bintray\") {\n return options\n }\n\n let owner = isGithub ? (options as GithubOptions).owner : (options as BintrayOptions).owner\n let project = isGithub ? (options as GithubOptions).repo : (options as BintrayOptions).package\n\n if (isGithub && owner == null && project != null) {\n const index = project.indexOf(\"/\")\n if (index > 0) {\n const repo = project\n project = repo.substring(0, index)\n owner = repo.substring(index + 1)\n }\n }\n\n async function getInfo() {\n const info = await packager.repositoryInfo\n if (info != null) {\n return info\n }\n\n const message = `Cannot detect repository by .git/config. Please specify \"repository\" in the package.json (https://docs.npmjs.com/files/package.json#repository).\\nPlease see https://electron.build/configuration/publish`\n if (errorIfCannot) {\n throw new Error(message)\n }\n else {\n log.warn(message)\n return null\n }\n }\n\n if (!owner || !project) {\n log.debug({reason: \"owner or project is not specified explicitly\", provider, owner, project}, \"calling getInfo\")\n const info = await getInfo()\n if (info == null) {\n return null\n }\n\n if (!owner) {\n owner = info.user\n }\n if (!project) {\n project = info.project\n }\n }\n\n if (isGithub) {\n if ((options as GithubOptions).token != null && !(options as GithubOptions).private) {\n log.warn('\"token\" specified in the github publish options. It should be used only for [setFeedURL](module:electron-updater/out/AppUpdater.AppUpdater+setFeedURL).')\n }\n //tslint:disable-next-line:no-object-literal-type-assertion\n return {owner, repo: project, ...options} as GithubOptions\n }\n else {\n //tslint:disable-next-line:no-object-literal-type-assertion\n return {owner, package: project, ...options} as BintrayOptions\n }\n}"],"sourceRoot":""}
@@ -185,7 +185,7 @@ async function createUpdateInfoTasks(event, _publishConfigs) {
185
185
  const isMac = packager.platform === _core().Platform.MAC;
186
186
 
187
187
  const createdFiles = new Set();
188
- const sharedInfo = await createUpdateInfo(version, event, (await getReleaseInfo(packager)));
188
+ const sharedInfo = await createUpdateInfo(version, event, await getReleaseInfo(packager));
189
189
  const tasks = [];
190
190
  const electronUpdaterCompatibility = packager.platformSpecificBuildOptions.electronUpdaterCompatibility || packager.config.electronUpdaterCompatibility || ">=2.15";
191
191
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/publish/updateInfoBuilder.ts"],"names":[],"mappings":"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","sourcesContent":["import BluebirdPromise from \"bluebird-lst\"\nimport { Arch, log, safeStringifyJson, serializeToYaml } from \"builder-util\"\nimport { GenericServerOptions, PublishConfiguration, UpdateInfo, WindowsUpdateInfo } from \"builder-util-runtime\"\nimport { outputFile, outputJson, readFile } from \"fs-extra\"\nimport { Lazy } from \"lazy-val\"\nimport * as path from \"path\"\nimport * as semver from \"semver\"\nimport { ReleaseInfo } from \"..\"\nimport { Platform } from \"../core\"\nimport { Packager } from \"../packager\"\nimport { ArtifactCreated } from \"../packagerApi\"\nimport { PlatformPackager } from \"../platformPackager\"\nimport { hashFile } from \"../util/hash\"\nimport { computeDownloadUrl, getPublishConfigsForUpdateInfo } from \"./PublishManager\"\n\nasync function getReleaseInfo(packager: PlatformPackager<any>) {\n const releaseInfo: ReleaseInfo = {...(packager.platformSpecificBuildOptions.releaseInfo || packager.config.releaseInfo)}\n if (releaseInfo.releaseNotes == null) {\n const releaseNotesFile = await packager.getResource(releaseInfo.releaseNotesFile, `release-notes-${packager.platform.buildConfigurationKey}.md`, `release-notes-${packager.platform.name}.md`, `release-notes-${packager.platform.nodeName}.md`, \"release-notes.md\")\n const releaseNotes = releaseNotesFile == null ? null : await readFile(releaseNotesFile, \"utf-8\")\n // to avoid undefined in the file, check for null\n if (releaseNotes != null) {\n releaseInfo.releaseNotes = releaseNotes\n }\n }\n delete releaseInfo.releaseNotesFile\n return releaseInfo\n}\n\nfunction isGenerateUpdatesFilesForAllChannels(packager: PlatformPackager<any>) {\n const value = packager.platformSpecificBuildOptions.generateUpdatesFilesForAllChannels\n return value == null ? packager.config.generateUpdatesFilesForAllChannels : value\n}\n\n/**\n if this is an \"alpha\" version, we need to generate only the \"alpha\" .yml file\n if this is a \"beta\" version, we need to generate both the \"alpha\" and \"beta\" .yml file\n if this is a \"stable\" version, we need to generate all the \"alpha\", \"beta\" and \"stable\" .yml file\n */\nfunction computeChannelNames(packager: PlatformPackager<any>, publishConfig: PublishConfiguration): Array<string> {\n const currentChannel: string = (publishConfig as GenericServerOptions).channel || \"latest\"\n // for GitHub should be pre-release way be used\n if (currentChannel === \"alpha\" || publishConfig.provider === \"github\" || !isGenerateUpdatesFilesForAllChannels(packager)) {\n return [currentChannel]\n }\n\n switch (currentChannel) {\n case \"beta\":\n return [currentChannel, \"alpha\"]\n\n case \"latest\":\n return [currentChannel, \"alpha\", \"beta\"]\n\n default:\n return [currentChannel]\n }\n}\n\nfunction getUpdateInfoFileName(channel: string, packager: PlatformPackager<any>, arch: Arch | null): string {\n const osSuffix = packager.platform === Platform.WINDOWS ? \"\" : `-${packager.platform.buildConfigurationKey}`\n return `${channel}${osSuffix}${getArchPrefixForUpdateFile(arch, packager)}.yml`\n}\n\nfunction getArchPrefixForUpdateFile(arch: Arch | null, packager: PlatformPackager<any>) {\n if (arch == null || arch === Arch.x64 || packager.platform !== Platform.LINUX) {\n return \"\"\n }\n return arch === Arch.armv7l ? \"-arm\" : `-${Arch[arch]}`\n}\n\nexport interface UpdateInfoFileTask {\n readonly file: string\n readonly info: UpdateInfo\n readonly publishConfiguration: PublishConfiguration\n\n readonly packager: PlatformPackager<any>\n}\n\nfunction computeIsisElectronUpdater1xCompatibility(updaterCompatibility: string | null, publishConfiguration: PublishConfiguration, packager: Packager) {\n if (updaterCompatibility != null) {\n return semver.satisfies(\"1.0.0\", updaterCompatibility)\n }\n\n // spaces is a new publish provider, no need to keep backward compatibility\n if (publishConfiguration.provider === \"spaces\") {\n return false\n }\n\n const updaterVersion = packager.metadata.dependencies == null ? null : packager.metadata.dependencies[\"electron-updater\"]\n return updaterVersion == null || semver.lt(updaterVersion, \"4.0.0\")\n}\n\n/** @internal */\nexport async function createUpdateInfoTasks(event: ArtifactCreated, _publishConfigs: Array<PublishConfiguration>): Promise<Array<UpdateInfoFileTask>> {\n const packager = event.packager\n const publishConfigs = await getPublishConfigsForUpdateInfo(packager, _publishConfigs, event.arch)\n if (publishConfigs == null || publishConfigs.length === 0) {\n return []\n }\n\n const outDir = event.target!.outDir\n const version = packager.appInfo.version\n const sha2 = new Lazy<string>(() => hashFile(event.file!, \"sha256\", \"hex\"))\n const isMac = packager.platform === Platform.MAC\n const createdFiles = new Set<string>()\n const sharedInfo = await createUpdateInfo(version, event, await getReleaseInfo(packager))\n const tasks: Array<UpdateInfoFileTask> = []\n const electronUpdaterCompatibility = packager.platformSpecificBuildOptions.electronUpdaterCompatibility || packager.config.electronUpdaterCompatibility || \">=2.15\"\n for (const publishConfiguration of publishConfigs) {\n const isBintray = publishConfiguration.provider === \"bintray\"\n let dir = outDir\n // Bintray uses different variant of channel file info, better to generate it to a separate dir by always\n if (isBintray || (publishConfigs.length > 1 && publishConfiguration !== publishConfigs[0])) {\n dir = path.join(outDir, publishConfiguration.provider)\n }\n\n let isElectronUpdater1xCompatibility = computeIsisElectronUpdater1xCompatibility(electronUpdaterCompatibility, publishConfiguration, packager.info)\n\n let info = sharedInfo\n // noinspection JSDeprecatedSymbols\n if (isElectronUpdater1xCompatibility && packager.platform === Platform.WINDOWS) {\n info = {\n ...info,\n };\n // noinspection JSDeprecatedSymbols\n (info as WindowsUpdateInfo).sha2 = await sha2.value\n }\n\n if (event.safeArtifactName != null && publishConfiguration.provider === \"github\") {\n const newFiles = info.files.slice()\n newFiles[0].url = event.safeArtifactName\n info = {\n ...info,\n files: newFiles,\n path: event.safeArtifactName,\n }\n }\n\n for (const channel of computeChannelNames(packager, publishConfiguration)) {\n if (isMac && isElectronUpdater1xCompatibility && event.file.endsWith(\".zip\")) {\n // write only for first channel (generateUpdatesFilesForAllChannels is a new functionality, no need to generate old mac update info file)\n isElectronUpdater1xCompatibility = false\n await writeOldMacInfo(publishConfiguration, outDir, dir, channel, createdFiles, version, packager)\n }\n\n const updateInfoFile = path.join(dir, (isBintray ? `${version}_` : \"\") + getUpdateInfoFileName(channel, packager, event.arch))\n if (createdFiles.has(updateInfoFile)) {\n continue\n }\n\n createdFiles.add(updateInfoFile)\n\n // artifact should be uploaded only to designated publish provider\n tasks.push({\n file: updateInfoFile,\n info,\n publishConfiguration,\n packager,\n })\n }\n }\n return tasks\n}\n\nasync function createUpdateInfo(version: string, event: ArtifactCreated, releaseInfo: ReleaseInfo): Promise<UpdateInfo> {\n const customUpdateInfo = event.updateInfo\n const url = path.basename(event.file!)\n const sha512 = (customUpdateInfo == null ? null : customUpdateInfo.sha512) || await hashFile(event.file!)\n const files = [{url, sha512}]\n const result: UpdateInfo = {\n // @ts-ignore\n version,\n // @ts-ignore\n files,\n // @ts-ignore\n path: url /* backward compatibility, electron-updater 1.x - electron-updater 2.15.0 */,\n // @ts-ignore\n sha512 /* backward compatibility, electron-updater 1.x - electron-updater 2.15.0 */,\n ...releaseInfo as UpdateInfo,\n }\n\n if (customUpdateInfo != null) {\n // file info or nsis web installer packages info\n Object.assign(\"sha512\" in customUpdateInfo ? files[0] : result, customUpdateInfo)\n }\n return result\n}\n\nexport async function writeUpdateInfoFiles(updateInfoFileTasks: Array<UpdateInfoFileTask>, packager: Packager) {\n // zip must be first and zip info must be used for old path/sha512 properties in the update info\n updateInfoFileTasks.sort((a, b) => (a.info.files[0].url.endsWith(\".zip\") ? 0 : 100) - (b.info.files[0].url.endsWith(\".zip\") ? 0 : 100))\n\n const updateChannelFileToInfo = new Map<string, UpdateInfoFileTask>()\n for (const task of updateInfoFileTasks) {\n // https://github.com/electron-userland/electron-builder/pull/2994\n const key = `${task.file}@${safeStringifyJson(task.publishConfiguration, new Set([\"releaseType\"]))}`\n const existingTask = updateChannelFileToInfo.get(key)\n if (existingTask == null) {\n updateChannelFileToInfo.set(key, task)\n continue\n }\n\n existingTask.info.files.push(...task.info.files)\n }\n\n const releaseDate = new Date().toISOString()\n await BluebirdPromise.map(updateChannelFileToInfo.values(), async task => {\n const publishConfig = task.publishConfiguration\n if (publishConfig.publishAutoUpdate === false) {\n log.debug({\n provider: publishConfig.provider,\n reason: \"publishAutoUpdate is set to false\"\n }, \"auto update metadata file not published\")\n return\n }\n\n if (task.info.releaseDate == null) {\n task.info.releaseDate = releaseDate\n }\n\n const fileContent = Buffer.from(serializeToYaml(task.info, false, true))\n await outputFile(task.file, fileContent)\n packager.dispatchArtifactCreated({\n file: task.file,\n fileContent,\n arch: null,\n packager: task.packager,\n target: null,\n publishConfig,\n })\n }, {concurrency: 4})\n}\n\n// backward compatibility - write json file\nasync function writeOldMacInfo(publishConfig: PublishConfiguration, outDir: string, dir: string, channel: string, createdFiles: Set<string>, version: string, packager: PlatformPackager<any>) {\n const isGitHub = publishConfig.provider === \"github\"\n const updateInfoFile = (isGitHub && outDir === dir) ? path.join(dir, \"github\", `${channel}-mac.json`) : path.join(dir, `${channel}-mac.json`)\n if (!createdFiles.has(updateInfoFile)) {\n createdFiles.add(updateInfoFile)\n await outputJson(updateInfoFile, {\n version,\n releaseDate: new Date().toISOString(),\n url: computeDownloadUrl(publishConfig, packager.generateName2(\"zip\", \"mac\", isGitHub), packager),\n }, {spaces: 2})\n\n packager.info.dispatchArtifactCreated({\n file: updateInfoFile,\n arch: null,\n packager,\n target: null,\n publishConfig,\n })\n }\n}\n"],"sourceRoot":""}
1
+ {"version":3,"sources":["../../src/publish/updateInfoBuilder.ts"],"names":[],"mappings":"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","sourcesContent":["import BluebirdPromise from \"bluebird-lst\"\nimport { Arch, log, safeStringifyJson, serializeToYaml } from \"builder-util\"\nimport { GenericServerOptions, PublishConfiguration, UpdateInfo, WindowsUpdateInfo } from \"builder-util-runtime\"\nimport { outputFile, outputJson, readFile } from \"fs-extra\"\nimport { Lazy } from \"lazy-val\"\nimport * as path from \"path\"\nimport * as semver from \"semver\"\nimport { ReleaseInfo } from \"..\"\nimport { Platform } from \"../core\"\nimport { Packager } from \"../packager\"\nimport { ArtifactCreated } from \"../packagerApi\"\nimport { PlatformPackager } from \"../platformPackager\"\nimport { hashFile } from \"../util/hash\"\nimport { computeDownloadUrl, getPublishConfigsForUpdateInfo } from \"./PublishManager\"\n\nasync function getReleaseInfo(packager: PlatformPackager<any>) {\n const releaseInfo: ReleaseInfo = {...(packager.platformSpecificBuildOptions.releaseInfo || packager.config.releaseInfo)}\n if (releaseInfo.releaseNotes == null) {\n const releaseNotesFile = await packager.getResource(releaseInfo.releaseNotesFile, `release-notes-${packager.platform.buildConfigurationKey}.md`, `release-notes-${packager.platform.name}.md`, `release-notes-${packager.platform.nodeName}.md`, \"release-notes.md\")\n const releaseNotes = releaseNotesFile == null ? null : await readFile(releaseNotesFile, \"utf-8\")\n // to avoid undefined in the file, check for null\n if (releaseNotes != null) {\n releaseInfo.releaseNotes = releaseNotes\n }\n }\n delete releaseInfo.releaseNotesFile\n return releaseInfo\n}\n\nfunction isGenerateUpdatesFilesForAllChannels(packager: PlatformPackager<any>) {\n const value = packager.platformSpecificBuildOptions.generateUpdatesFilesForAllChannels\n return value == null ? packager.config.generateUpdatesFilesForAllChannels : value\n}\n\n/**\n if this is an \"alpha\" version, we need to generate only the \"alpha\" .yml file\n if this is a \"beta\" version, we need to generate both the \"alpha\" and \"beta\" .yml file\n if this is a \"stable\" version, we need to generate all the \"alpha\", \"beta\" and \"stable\" .yml file\n */\nfunction computeChannelNames(packager: PlatformPackager<any>, publishConfig: PublishConfiguration): Array<string> {\n const currentChannel: string = (publishConfig as GenericServerOptions).channel || \"latest\"\n // for GitHub should be pre-release way be used\n if (currentChannel === \"alpha\" || publishConfig.provider === \"github\" || !isGenerateUpdatesFilesForAllChannels(packager)) {\n return [currentChannel]\n }\n\n switch (currentChannel) {\n case \"beta\":\n return [currentChannel, \"alpha\"]\n\n case \"latest\":\n return [currentChannel, \"alpha\", \"beta\"]\n\n default:\n return [currentChannel]\n }\n}\n\nfunction getUpdateInfoFileName(channel: string, packager: PlatformPackager<any>, arch: Arch | null): string {\n const osSuffix = packager.platform === Platform.WINDOWS ? \"\" : `-${packager.platform.buildConfigurationKey}`\n return `${channel}${osSuffix}${getArchPrefixForUpdateFile(arch, packager)}.yml`\n}\n\nfunction getArchPrefixForUpdateFile(arch: Arch | null, packager: PlatformPackager<any>) {\n if (arch == null || arch === Arch.x64 || packager.platform !== Platform.LINUX) {\n return \"\"\n }\n return arch === Arch.armv7l ? \"-arm\" : `-${Arch[arch]}`\n}\n\nexport interface UpdateInfoFileTask {\n readonly file: string\n readonly info: UpdateInfo\n readonly publishConfiguration: PublishConfiguration\n\n readonly packager: PlatformPackager<any>\n}\n\nfunction computeIsisElectronUpdater1xCompatibility(updaterCompatibility: string | null, publishConfiguration: PublishConfiguration, packager: Packager) {\n if (updaterCompatibility != null) {\n return semver.satisfies(\"1.0.0\", updaterCompatibility)\n }\n\n // spaces is a new publish provider, no need to keep backward compatibility\n if (publishConfiguration.provider === \"spaces\") {\n return false\n }\n\n const updaterVersion = packager.metadata.dependencies == null ? null : packager.metadata.dependencies[\"electron-updater\"]\n return updaterVersion == null || semver.lt(updaterVersion, \"4.0.0\")\n}\n\n/** @internal */\nexport async function createUpdateInfoTasks(event: ArtifactCreated, _publishConfigs: Array<PublishConfiguration>): Promise<Array<UpdateInfoFileTask>> {\n const packager = event.packager\n const publishConfigs = await getPublishConfigsForUpdateInfo(packager, _publishConfigs, event.arch)\n if (publishConfigs == null || publishConfigs.length === 0) {\n return []\n }\n\n const outDir = event.target!.outDir\n const version = packager.appInfo.version\n const sha2 = new Lazy<string>(() => hashFile(event.file!, \"sha256\", \"hex\"))\n const isMac = packager.platform === Platform.MAC\n const createdFiles = new Set<string>()\n const sharedInfo = await createUpdateInfo(version, event, await getReleaseInfo(packager))\n const tasks: Array<UpdateInfoFileTask> = []\n const electronUpdaterCompatibility = packager.platformSpecificBuildOptions.electronUpdaterCompatibility || packager.config.electronUpdaterCompatibility || \">=2.15\"\n for (const publishConfiguration of publishConfigs) {\n const isBintray = publishConfiguration.provider === \"bintray\"\n let dir = outDir\n // Bintray uses different variant of channel file info, better to generate it to a separate dir by always\n if (isBintray || (publishConfigs.length > 1 && publishConfiguration !== publishConfigs[0])) {\n dir = path.join(outDir, publishConfiguration.provider)\n }\n\n let isElectronUpdater1xCompatibility = computeIsisElectronUpdater1xCompatibility(electronUpdaterCompatibility, publishConfiguration, packager.info)\n\n let info = sharedInfo\n // noinspection JSDeprecatedSymbols\n if (isElectronUpdater1xCompatibility && packager.platform === Platform.WINDOWS) {\n info = {\n ...info,\n };\n // noinspection JSDeprecatedSymbols\n (info as WindowsUpdateInfo).sha2 = await sha2.value\n }\n\n if (event.safeArtifactName != null && publishConfiguration.provider === \"github\") {\n const newFiles = info.files.slice()\n newFiles[0].url = event.safeArtifactName\n info = {\n ...info,\n files: newFiles,\n path: event.safeArtifactName,\n }\n }\n\n for (const channel of computeChannelNames(packager, publishConfiguration)) {\n if (isMac && isElectronUpdater1xCompatibility && event.file.endsWith(\".zip\")) {\n // write only for first channel (generateUpdatesFilesForAllChannels is a new functionality, no need to generate old mac update info file)\n isElectronUpdater1xCompatibility = false\n await writeOldMacInfo(publishConfiguration, outDir, dir, channel, createdFiles, version, packager)\n }\n\n const updateInfoFile = path.join(dir, (isBintray ? `${version}_` : \"\") + getUpdateInfoFileName(channel, packager, event.arch))\n if (createdFiles.has(updateInfoFile)) {\n continue\n }\n\n createdFiles.add(updateInfoFile)\n\n // artifact should be uploaded only to designated publish provider\n tasks.push({\n file: updateInfoFile,\n info,\n publishConfiguration,\n packager,\n })\n }\n }\n return tasks\n}\n\nasync function createUpdateInfo(version: string, event: ArtifactCreated, releaseInfo: ReleaseInfo): Promise<UpdateInfo> {\n const customUpdateInfo = event.updateInfo\n const url = path.basename(event.file!)\n const sha512 = (customUpdateInfo == null ? null : customUpdateInfo.sha512) || await hashFile(event.file!)\n const files = [{url, sha512}]\n const result: UpdateInfo = {\n // @ts-ignore\n version,\n // @ts-ignore\n files,\n // @ts-ignore\n path: url /* backward compatibility, electron-updater 1.x - electron-updater 2.15.0 */,\n // @ts-ignore\n sha512 /* backward compatibility, electron-updater 1.x - electron-updater 2.15.0 */,\n ...releaseInfo as UpdateInfo,\n }\n\n if (customUpdateInfo != null) {\n // file info or nsis web installer packages info\n Object.assign(\"sha512\" in customUpdateInfo ? files[0] : result, customUpdateInfo)\n }\n return result\n}\n\nexport async function writeUpdateInfoFiles(updateInfoFileTasks: Array<UpdateInfoFileTask>, packager: Packager) {\n // zip must be first and zip info must be used for old path/sha512 properties in the update info\n updateInfoFileTasks.sort((a, b) => (a.info.files[0].url.endsWith(\".zip\") ? 0 : 100) - (b.info.files[0].url.endsWith(\".zip\") ? 0 : 100))\n\n const updateChannelFileToInfo = new Map<string, UpdateInfoFileTask>()\n for (const task of updateInfoFileTasks) {\n // https://github.com/electron-userland/electron-builder/pull/2994\n const key = `${task.file}@${safeStringifyJson(task.publishConfiguration, new Set([\"releaseType\"]))}`\n const existingTask = updateChannelFileToInfo.get(key)\n if (existingTask == null) {\n updateChannelFileToInfo.set(key, task)\n continue\n }\n\n existingTask.info.files.push(...task.info.files)\n }\n\n const releaseDate = new Date().toISOString()\n await BluebirdPromise.map(updateChannelFileToInfo.values(), async task => {\n const publishConfig = task.publishConfiguration\n if (publishConfig.publishAutoUpdate === false) {\n log.debug({\n provider: publishConfig.provider,\n reason: \"publishAutoUpdate is set to false\"\n }, \"auto update metadata file not published\")\n return\n }\n\n if (task.info.releaseDate == null) {\n task.info.releaseDate = releaseDate\n }\n\n const fileContent = Buffer.from(serializeToYaml(task.info, false, true))\n await outputFile(task.file, fileContent)\n packager.dispatchArtifactCreated({\n file: task.file,\n fileContent,\n arch: null,\n packager: task.packager,\n target: null,\n publishConfig,\n })\n }, {concurrency: 4})\n}\n\n// backward compatibility - write json file\nasync function writeOldMacInfo(publishConfig: PublishConfiguration, outDir: string, dir: string, channel: string, createdFiles: Set<string>, version: string, packager: PlatformPackager<any>) {\n const isGitHub = publishConfig.provider === \"github\"\n const updateInfoFile = (isGitHub && outDir === dir) ? path.join(dir, \"github\", `${channel}-mac.json`) : path.join(dir, `${channel}-mac.json`)\n if (!createdFiles.has(updateInfoFile)) {\n createdFiles.add(updateInfoFile)\n await outputJson(updateInfoFile, {\n version,\n releaseDate: new Date().toISOString(),\n url: computeDownloadUrl(publishConfig, packager.generateName2(\"zip\", \"mac\", isGitHub), packager),\n }, {spaces: 2})\n\n packager.info.dispatchArtifactCreated({\n file: updateInfoFile,\n arch: null,\n packager,\n target: null,\n publishConfig,\n })\n }\n}\n"],"sourceRoot":""}
@@ -145,7 +145,7 @@ class RemoteBuilder {
145
145
  const outDir = targets[0].outDir;
146
146
  const args = ["remote-build", "--request", req, "--output", outDir];
147
147
  args.push("--file", targets[0].unpackedDirectory);
148
- args.push("--file", (await projectInfoManager.infoFile.value));
148
+ args.push("--file", await projectInfoManager.infoFile.value);
149
149
  const buildResourcesDir = packager.buildResourcesDir;
150
150
 
151
151
  if (buildResourcesDir === packager.projectDir) {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/remoteBuilder/RemoteBuilder.ts"],"names":[],"mappings":";;;;;;;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;;AAEA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAGA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;;;;;;;AASM,MAAO,aAAP,CAAoB;AAIxB,EAAA,WAAA,CAAqB,QAArB,EAAoD;AAA/B,SAAA,QAAA,GAAA,QAAA;AAHJ,SAAA,OAAA,GAAU,IAAI,GAAJ,EAAV;AACT,SAAA,YAAA,GAAe,KAAf;AAGP;;AAED,EAAA,aAAa,CAAC,MAAD,EAAiB,IAAjB,EAA6B,iBAA7B,EAAsD;AACjE,QAAI,CAAC,8BAAU,OAAO,CAAC,GAAR,CAAY,aAAtB,CAAD,IAAyC,KAAK,QAAL,CAAc,MAAd,CAAqB,WAArB,KAAqC,KAAlF,EAAyF;AACvF,YAAM,KAAI,wCAAJ,EAA8B,6GAA9B,CAAN;AACD;;AAED,QAAI,IAAI,GAAG,KAAK,OAAL,CAAa,GAAb,CAAiB,IAAjB,CAAX;;AACA,QAAI,IAAI,IAAI,IAAZ,EAAkB;AAChB,MAAA,IAAI,GAAG,EAAP;AACA,WAAK,OAAL,CAAa,GAAb,CAAiB,IAAjB,EAAuB,IAAvB;AACD;;AAED,IAAA,IAAI,CAAC,IAAL,CAAU;AACR,MAAA,IAAI,EAAE,MAAM,CAAC,IADL;AAER,MAAA,IAAI,EAAE,oBAAK,IAAL,CAFE;AAGR,MAAA,iBAHQ;AAIR,MAAA,MAAM,EAAE,MAAM,CAAC;AAJP,KAAV;AAMD;;AAED,EAAA,KAAK,GAAA;AACH,QAAI,KAAK,YAAT,EAAuB;AACrB,aAAO,OAAO,CAAC,OAAR,EAAP;AACD;;AAED,SAAK,YAAL,GAAoB,IAApB;AAEA,WAAO,uBAAgB,SAAhB,CAA0B,KAAK,CAAC,IAAN,CAAW,KAAK,OAAL,CAAa,IAAb,EAAX,CAA1B,EAA4D,IAAD,IAAe;AAC/E,aAAO,KAAK,MAAL,CAAY,KAAK,OAAL,CAAa,GAAb,CAAiB,IAAjB,CAAZ,EAAsC,KAAK,QAA3C,CAAP;AACD,KAFM,CAAP;AAGD,GApCuB,CAsCxB;;;AACQ,QAAM,MAAN,CAAa,OAAb,EAAyC,QAAzC,EAAwE;AAC9E,QAAI,mBAAI,cAAR,EAAwB;AACtB,yBAAI,KAAJ,CAAU;AAAC,QAAA,aAAa,EAAE,IAAI,CAAC,SAAL,CAAe,OAAf,EAAwB,IAAxB,EAA8B,CAA9B;AAAhB,OAAV,EAA6D,iBAA7D;AACD;;AAED,UAAM,kBAAkB,GAAG,KAAI,wCAAJ,EAAuB,QAAQ,CAAC,IAAhC,CAA3B;AAEA,UAAM,YAAY,GAAQ;AACxB,MAAA,OAAO,EAAE,OAAO,CAAC,GAAR,CAAY,EAAE,IAAG;AACxB,eAAO;AACL,UAAA,IAAI,EAAE,EAAE,CAAC,IADJ;AAEL,UAAA,IAAI,EAAE,EAAE,CAAC,IAFJ;AAGL,UAAA,eAAe,EAAE,IAAI,CAAC,QAAL,CAAc,EAAE,CAAC,iBAAjB;AAHZ,SAAP;AAKD,OANQ,CADe;AAQxB,MAAA,QAAQ,EAAE,QAAQ,CAAC,QAAT,CAAkB;AARJ,KAA1B;;AAWA,QAAI,mEAA0C,QAA1C,CAAJ,EAAyD;AACvD,MAAA,YAAY,CAAC,gBAAb,GAAgC;AAC9B,QAAA,OAAO,EAAE,QAAQ,CAAC,IAAT,CAAc,SAAd,CAAwB,OADH;AAE9B,QAAA,QAAQ,EAAE,iBAAS,KAAT,CAAe,QAFK;AAG9B,QAAA,IAAI,EAAE,OAAO,CAAC,CAAD,CAAP,CAAW;AAHa,OAAhC;AAMA,YAAM,aAAa,GAAI,QAAvB;AACA,MAAA,YAAY,CAAC,cAAb,GAA8B,aAAa,CAAC,cAA5C;AACD;;AAED,UAAM,GAAG,GAAG,MAAM,CAAC,IAAP,CAAY,IAAI,CAAC,SAAL,CAAe,YAAf,CAAZ,EAA0C,QAA1C,CAAmD,QAAnD,CAAZ;AACA,UAAM,MAAM,GAAG,OAAO,CAAC,CAAD,CAAP,CAAW,MAA1B;AACA,UAAM,IAAI,GAAG,CAAC,cAAD,EAAiB,WAAjB,EAA8B,GAA9B,EAAmC,UAAnC,EAA+C,MAA/C,CAAb;AAEA,IAAA,IAAI,CAAC,IAAL,CAAU,QAAV,EAAoB,OAAO,CAAC,CAAD,CAAP,CAAW,iBAA/B;AACA,IAAA,IAAI,CAAC,IAAL,CAAU,QAAV,GAAoB,MAAM,kBAAkB,CAAC,QAAnB,CAA4B,KAAtD;AAEA,UAAM,iBAAiB,GAAG,QAAQ,CAAC,iBAAnC;;AACA,QAAI,iBAAiB,KAAK,QAAQ,CAAC,UAAnC,EAA+C;AAC7C,YAAM,KAAI,wCAAJ,EAA8B,wOAA9B,CAAN;AACD;;AAED,IAAA,IAAI,CAAC,IAAL,CAAU,sBAAV,EAAkC,iBAAlC;AAEA,UAAM,MAAM,GAAQ,MAAM,2CAAwB,IAAxB,CAA1B;;AACA,QAAI,MAAM,CAAC,KAAP,IAAgB,IAApB,EAA0B;AACxB,YAAM,KAAI,wCAAJ,EAA8B,qLAAqL,MAAM,CAAC,KAAK,EAA/N,EAAmO,sBAAnO,CAAN;AACD,KAFD,MAGK,IAAI,MAAM,CAAC,KAAP,IAAgB,IAApB,EAA0B;AAC7B,WAAK,MAAM,QAAX,IAAuB,MAAM,CAAC,KAA9B,EAAqC;AACnC,cAAM,SAAS,GAAG,IAAI,CAAC,IAAL,CAAU,MAAV,EAAkB,QAAQ,CAAC,IAA3B,CAAlB;AACA,cAAM,oBAAoB,GAAG,KAAK,kCAAL,CAAwC,QAAxC,EAAkD,SAAlD,EAA6D,MAA7D,CAA7B,CAFmC,CAGnC;;AACA,cAAM,KAAK,QAAL,CAAc,IAAd,CAAmB,0BAAnB,CAA8C,oBAA9C,CAAN;AACD;AACF;AACF;;AAEO,EAAA,kCAAkC,CAAC,QAAD,EAAyB,SAAzB,EAA4C,MAA5C,EAA0D;AAClG,UAAM,MAAM,GAAG,QAAQ,CAAC,MAAxB,CADkG,CAElG;;AACA,WAAO,EACL,GAAG,QADE;AAEL,MAAA,IAAI,EAAE,SAFD;AAGL,MAAA,MAAM,EAAE,MAAM,IAAI,IAAV,GAAiB,IAAjB,GAAwB,IAAI,UAAJ,CAAe,MAAf,EAAuB,MAAvB,EAAgC,KAAK,QAAL,CAAc,MAAd,CAA6B,MAA7B,CAAhC,CAH3B;AAIL,MAAA,QAAQ,EAAE,KAAK;AAJV,KAAP;AAMD;;AAzGuB;;;;AA4G1B,MAAM,UAAN,SAAyB,cAAzB,CAA+B;AAC7B,EAAA,WAAA,CAAY,IAAZ,EAAmC,MAAnC,EAA4D,OAA5D,EAA6G;AAC3G,UAAM,IAAN;AADiC,SAAA,MAAA,GAAA,MAAA;AAAyB,SAAA,OAAA,GAAA,OAAA;AAE3D,GAH4B,CAK7B;;;AACA,QAAM,KAAN,CAAY,SAAZ,EAA+B,IAA/B,EAAyC,CACvC;AACD;;AAR4B,C","sourcesContent":["import BluebirdPromise from \"bluebird-lst\"\nimport { Arch, isEnvTrue, log, InvalidConfigurationError } from \"builder-util\"\nimport * as path from \"path\"\nimport { UploadTask } from \"electron-publish/out/publisher\"\nimport { Platform, Target, TargetSpecificOptions } from \"../core\"\nimport { LinuxPackager } from \"../linuxPackager\"\nimport { ArtifactCreated } from \"../packagerApi\"\nimport { isSafeToUnpackElectronOnRemoteBuildServer, PlatformPackager } from \"../platformPackager\"\nimport { executeAppBuilderAsJson } from \"../util/appBuilder\"\nimport { ProjectInfoManager } from \"./ProjectInfoManager\"\n\ninterface TargetInfo {\n name: string\n arch: string\n unpackedDirectory: string\n outDir: string\n}\n\nexport class RemoteBuilder {\n private readonly toBuild = new Map<Arch, Array<TargetInfo>>()\n private buildStarted = false\n\n constructor(readonly packager: PlatformPackager<any>) {\n }\n\n scheduleBuild(target: Target, arch: Arch, unpackedDirectory: string) {\n if (!isEnvTrue(process.env._REMOTE_BUILD) && this.packager.config.remoteBuild === false) {\n throw new InvalidConfigurationError(\"Target is not supported on your OS and using of Electron Build Service is disabled (\\\"remoteBuild\\\" option)\")\n }\n\n let list = this.toBuild.get(arch)\n if (list == null) {\n list = []\n this.toBuild.set(arch, list)\n }\n\n list.push({\n name: target.name,\n arch: Arch[arch],\n unpackedDirectory,\n outDir: target.outDir,\n })\n }\n\n build(): Promise<any> {\n if (this.buildStarted) {\n return Promise.resolve()\n }\n\n this.buildStarted = true\n\n return BluebirdPromise.mapSeries(Array.from(this.toBuild.keys()), (arch: Arch) => {\n return this._build(this.toBuild.get(arch)!!, this.packager)\n })\n }\n\n // noinspection JSMethodCanBeStatic\n private async _build(targets: Array<TargetInfo>, packager: PlatformPackager<any>): Promise<void> {\n if (log.isDebugEnabled) {\n log.debug({remoteTargets: JSON.stringify(targets, null, 2)}, \"remote building\")\n }\n\n const projectInfoManager = new ProjectInfoManager(packager.info)\n\n const buildRequest: any = {\n targets: targets.map(it => {\n return {\n name: it.name,\n arch: it.arch,\n unpackedDirName: path.basename(it.unpackedDirectory),\n }\n }),\n platform: packager.platform.buildConfigurationKey,\n }\n\n if (isSafeToUnpackElectronOnRemoteBuildServer(packager)) {\n buildRequest.electronDownload = {\n version: packager.info.framework.version,\n platform: Platform.LINUX.nodeName,\n arch: targets[0].arch,\n }\n\n const linuxPackager = (packager as LinuxPackager)\n buildRequest.executableName = linuxPackager.executableName\n }\n\n const req = Buffer.from(JSON.stringify(buildRequest)).toString(\"base64\")\n const outDir = targets[0].outDir\n const args = [\"remote-build\", \"--request\", req, \"--output\", outDir]\n\n args.push(\"--file\", targets[0].unpackedDirectory)\n args.push(\"--file\", await projectInfoManager.infoFile.value)\n\n const buildResourcesDir = packager.buildResourcesDir\n if (buildResourcesDir === packager.projectDir) {\n throw new InvalidConfigurationError(`Build resources dir equals to project dir and so, not sent to remote build agent. It will lead to incorrect results.\\nPlease set \"directories.buildResources\" to separate dir or leave default (\"build\" directory in the project root)`)\n }\n\n args.push(\"--build-resource-dir\", buildResourcesDir)\n\n const result: any = await executeAppBuilderAsJson(args)\n if (result.error != null) {\n throw new InvalidConfigurationError(`Remote builder error (if you think that it is not your application misconfiguration issue, please file issue to https://github.com/electron-userland/electron-builder/issues):\\n\\n${result.error}`, \"REMOTE_BUILDER_ERROR\")\n }\n else if (result.files != null) {\n for (const artifact of result.files) {\n const localFile = path.join(outDir, artifact.file)\n const artifactCreatedEvent = this.artifactInfoToArtifactCreatedEvent(artifact, localFile, outDir)\n // PublishManager uses outDir and options, real (the same as for local build) values must be used\n await this.packager.info.callArtifactBuildCompleted(artifactCreatedEvent)\n }\n }\n }\n\n private artifactInfoToArtifactCreatedEvent(artifact: ArtifactInfo, localFile: string, outDir: string): ArtifactCreated {\n const target = artifact.target\n // noinspection SpellCheckingInspection\n return {\n ...artifact,\n file: localFile,\n target: target == null ? null : new FakeTarget(target, outDir, (this.packager.config as any)[target]),\n packager: this.packager,\n }\n }\n}\n\nclass FakeTarget extends Target {\n constructor(name: string, readonly outDir: string, readonly options: TargetSpecificOptions | null | undefined) {\n super(name)\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n async build(appOutDir: string, arch: Arch) {\n // no build\n }\n}\n\ninterface ArtifactInfo extends UploadTask {\n target: string | null\n\n readonly isWriteUpdateInfo?: boolean\n readonly updateInfo?: any\n}"],"sourceRoot":""}
1
+ {"version":3,"sources":["../../src/remoteBuilder/RemoteBuilder.ts"],"names":[],"mappings":"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","sourcesContent":["import BluebirdPromise from \"bluebird-lst\"\nimport { Arch, isEnvTrue, log, InvalidConfigurationError } from \"builder-util\"\nimport * as path from \"path\"\nimport { UploadTask } from \"electron-publish/out/publisher\"\nimport { Platform, Target, TargetSpecificOptions } from \"../core\"\nimport { LinuxPackager } from \"../linuxPackager\"\nimport { ArtifactCreated } from \"../packagerApi\"\nimport { isSafeToUnpackElectronOnRemoteBuildServer, PlatformPackager } from \"../platformPackager\"\nimport { executeAppBuilderAsJson } from \"../util/appBuilder\"\nimport { ProjectInfoManager } from \"./ProjectInfoManager\"\n\ninterface TargetInfo {\n name: string\n arch: string\n unpackedDirectory: string\n outDir: string\n}\n\nexport class RemoteBuilder {\n private readonly toBuild = new Map<Arch, Array<TargetInfo>>()\n private buildStarted = false\n\n constructor(readonly packager: PlatformPackager<any>) {\n }\n\n scheduleBuild(target: Target, arch: Arch, unpackedDirectory: string) {\n if (!isEnvTrue(process.env._REMOTE_BUILD) && this.packager.config.remoteBuild === false) {\n throw new InvalidConfigurationError(\"Target is not supported on your OS and using of Electron Build Service is disabled (\\\"remoteBuild\\\" option)\")\n }\n\n let list = this.toBuild.get(arch)\n if (list == null) {\n list = []\n this.toBuild.set(arch, list)\n }\n\n list.push({\n name: target.name,\n arch: Arch[arch],\n unpackedDirectory,\n outDir: target.outDir,\n })\n }\n\n build(): Promise<any> {\n if (this.buildStarted) {\n return Promise.resolve()\n }\n\n this.buildStarted = true\n\n return BluebirdPromise.mapSeries(Array.from(this.toBuild.keys()), (arch: Arch) => {\n return this._build(this.toBuild.get(arch)!!, this.packager)\n })\n }\n\n // noinspection JSMethodCanBeStatic\n private async _build(targets: Array<TargetInfo>, packager: PlatformPackager<any>): Promise<void> {\n if (log.isDebugEnabled) {\n log.debug({remoteTargets: JSON.stringify(targets, null, 2)}, \"remote building\")\n }\n\n const projectInfoManager = new ProjectInfoManager(packager.info)\n\n const buildRequest: any = {\n targets: targets.map(it => {\n return {\n name: it.name,\n arch: it.arch,\n unpackedDirName: path.basename(it.unpackedDirectory),\n }\n }),\n platform: packager.platform.buildConfigurationKey,\n }\n\n if (isSafeToUnpackElectronOnRemoteBuildServer(packager)) {\n buildRequest.electronDownload = {\n version: packager.info.framework.version,\n platform: Platform.LINUX.nodeName,\n arch: targets[0].arch,\n }\n\n const linuxPackager = (packager as LinuxPackager)\n buildRequest.executableName = linuxPackager.executableName\n }\n\n const req = Buffer.from(JSON.stringify(buildRequest)).toString(\"base64\")\n const outDir = targets[0].outDir\n const args = [\"remote-build\", \"--request\", req, \"--output\", outDir]\n\n args.push(\"--file\", targets[0].unpackedDirectory)\n args.push(\"--file\", await projectInfoManager.infoFile.value)\n\n const buildResourcesDir = packager.buildResourcesDir\n if (buildResourcesDir === packager.projectDir) {\n throw new InvalidConfigurationError(`Build resources dir equals to project dir and so, not sent to remote build agent. It will lead to incorrect results.\\nPlease set \"directories.buildResources\" to separate dir or leave default (\"build\" directory in the project root)`)\n }\n\n args.push(\"--build-resource-dir\", buildResourcesDir)\n\n const result: any = await executeAppBuilderAsJson(args)\n if (result.error != null) {\n throw new InvalidConfigurationError(`Remote builder error (if you think that it is not your application misconfiguration issue, please file issue to https://github.com/electron-userland/electron-builder/issues):\\n\\n${result.error}`, \"REMOTE_BUILDER_ERROR\")\n }\n else if (result.files != null) {\n for (const artifact of result.files) {\n const localFile = path.join(outDir, artifact.file)\n const artifactCreatedEvent = this.artifactInfoToArtifactCreatedEvent(artifact, localFile, outDir)\n // PublishManager uses outDir and options, real (the same as for local build) values must be used\n await this.packager.info.callArtifactBuildCompleted(artifactCreatedEvent)\n }\n }\n }\n\n private artifactInfoToArtifactCreatedEvent(artifact: ArtifactInfo, localFile: string, outDir: string): ArtifactCreated {\n const target = artifact.target\n // noinspection SpellCheckingInspection\n return {\n ...artifact,\n file: localFile,\n target: target == null ? null : new FakeTarget(target, outDir, (this.packager.config as any)[target]),\n packager: this.packager,\n }\n }\n}\n\nclass FakeTarget extends Target {\n constructor(name: string, readonly outDir: string, readonly options: TargetSpecificOptions | null | undefined) {\n super(name)\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n async build(appOutDir: string, arch: Arch) {\n // no build\n }\n}\n\ninterface ArtifactInfo extends UploadTask {\n target: string | null\n\n readonly isWriteUpdateInfo?: boolean\n readonly updateInfo?: any\n}"],"sourceRoot":""}