UNPKG

16.9 kBSource Map (JSON)View Raw
1{"version":3,"sources":["../../src/publish/updateInfoBuilder.ts"],"names":[],"mappings":"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","sourcesContent":["import BluebirdPromise from \"bluebird-lst\"\nimport { Arch, hashFile, log, safeStringifyJson, serializeToYaml } from \"builder-util\"\nimport { GenericServerOptions, PublishConfiguration, UpdateInfo, WindowsUpdateInfo } from \"builder-util-runtime\"\nimport { outputFile, outputJson, readFile } from \"fs-extra-p\"\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 { 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\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 as any).electronUpdaterCompatibility\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 // spaces is a new publish provider, no need to keep backward compatibility\n let isElectronUpdater1xCompatibility = publishConfiguration.provider !== \"spaces\" && (electronUpdaterCompatibility == null || semver.satisfies(\"1.0.0\", electronUpdaterCompatibility))\n\n let info = sharedInfo\n // noinspection JSDeprecatedSymbols\n if (isElectronUpdater1xCompatibility && packager.platform === Platform.WINDOWS) {\n info = {\n ...info,\n };\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 version,\n files,\n path: url /* backward compatibility, electron-updater 1.x - electron-updater 2.15.0 */,\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))\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":""}