app-builder-lib 22.10.1 → 22.10.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/electron-osx-sign/index.d.ts +2 -0
- package/electron-osx-sign/index.js +10 -1
- package/electron-osx-sign/sign.js +22 -14
- package/electron-osx-sign/util.js +32 -14
- package/out/appInfo.d.ts +1 -0
- package/out/appInfo.js +3 -2
- package/out/appInfo.js.map +1 -1
- package/out/asar/asarUtil.js +4 -2
- package/out/asar/asarUtil.js.map +1 -1
- package/out/asar/unpackDetector.js +12 -12
- package/out/asar/unpackDetector.js.map +1 -1
- package/out/configuration.d.ts +3 -2
- package/out/electron/ElectronFramework.js +21 -8
- package/out/electron/ElectronFramework.js.map +1 -1
- package/out/electron/electronMac.js +1 -1
- package/out/electron/electronMac.js.map +1 -1
- package/out/macPackager.d.ts +2 -1
- package/out/macPackager.js +72 -8
- package/out/macPackager.js.map +1 -1
- package/out/options/CommonWindowsInstallerConfiguration.js +1 -1
- package/out/options/CommonWindowsInstallerConfiguration.js.map +1 -1
- package/out/options/PlatformSpecificBuildOptions.d.ts +5 -0
- package/out/options/linuxOptions.d.ts +0 -5
- package/out/packager.d.ts +1 -1
- package/out/packager.js +1 -7
- package/out/packager.js.map +1 -1
- package/out/platformPackager.d.ts +4 -3
- package/out/platformPackager.js +35 -8
- package/out/platformPackager.js.map +1 -1
- package/out/targets/ArchiveTarget.js +4 -3
- package/out/targets/ArchiveTarget.js.map +1 -1
- package/out/targets/LinuxTargetHelper.js +1 -2
- package/out/targets/LinuxTargetHelper.js.map +1 -1
- package/out/targets/fpm.js +1 -1
- package/out/targets/fpm.js.map +1 -1
- package/out/targets/nsis/nsisLang.js +1 -1
- package/out/targets/nsis/nsisLang.js.map +1 -1
- package/out/targets/snap.js +1 -1
- package/out/targets/snap.js.map +1 -1
- package/out/util/config.js +1 -1
- package/out/util/macroExpander.js +1 -1
- package/out/util/macroExpander.js.map +1 -1
- package/package.json +30 -29
- package/scheme.json +65 -6
- package/templates/nsis/include/allowOnlyOneInstallerInstance.nsh +3 -3
- package/templates/nsis/include/extractAppPackage.nsh +48 -49
package/out/packager.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/packager.ts"],"names":[],"mappings":"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","sourcesContent":["import { addValue, Arch, archFromString, AsyncTaskManager, DebugLogger, deepAssign, InvalidConfigurationError, log, safeStringifyJson, serializeToYaml, TmpDir } from \"builder-util\"\nimport { CancellationToken } from \"builder-util-runtime\"\nimport { executeFinally, orNullIfFileNotExist } from \"builder-util/out/promise\"\nimport { EventEmitter } from \"events\"\nimport { mkdirs, chmod, outputFile } from \"fs-extra\"\nimport isCI from \"is-ci\"\nimport { Lazy } from \"lazy-val\"\nimport * as path from \"path\"\nimport { getArtifactArchName } from \"builder-util/out/arch\"\nimport { AppInfo } from \"./appInfo\"\nimport { readAsarJson } from \"./asar/asar\"\nimport { createElectronFrameworkSupport } from \"./electron/ElectronFramework\"\nimport { LibUiFramework } from \"./frameworks/LibUiFramework\"\nimport { AfterPackContext, Configuration, Framework, Platform, SourceRepositoryInfo, Target } from \"./index\"\nimport MacPackager from \"./macPackager\"\nimport { Metadata } from \"./options/metadata\"\nimport { ArtifactBuildStarted, ArtifactCreated, PackagerOptions } from \"./packagerApi\"\nimport { PlatformPackager, resolveFunction } from \"./platformPackager\"\nimport { ProtonFramework } from \"./ProtonFramework\"\nimport { computeArchToTargetNamesMap, createTargets, NoOpTarget } from \"./targets/targetFactory\"\nimport { computeDefaultAppDirectory, getConfig, validateConfig } from \"./util/config\"\nimport { expandMacro } from \"./util/macroExpander\"\nimport { createLazyProductionDeps, NodeModuleDirInfo } from \"./util/packageDependencies\"\nimport { checkMetadata, readPackageJson } from \"./util/packageMetadata\"\nimport { getRepositoryInfo } from \"./util/repositoryInfo\"\nimport { installOrRebuild, nodeGypRebuild } from \"./util/yarn\"\nimport { WinPackager } from \"./winPackager\"\n\nfunction addHandler(emitter: EventEmitter, event: string, handler: (...args: Array<any>) => void) {\n emitter.on(event, handler)\n}\n\ndeclare const PACKAGE_VERSION: string\n\nasync function createFrameworkInfo(configuration: Configuration, packager: Packager): Promise<Framework> {\n let framework = configuration.framework\n if (framework != null) {\n framework = framework.toLowerCase()\n }\n\n let nodeVersion = configuration.nodeVersion\n if (framework === \"electron\" || framework == null) {\n return await createElectronFrameworkSupport(configuration, packager)\n }\n\n if (nodeVersion == null || nodeVersion === \"current\") {\n nodeVersion = process.versions.node\n }\n\n const distMacOsName = `${packager.appInfo.productFilename}.app`\n const isUseLaunchUi = configuration.launchUiVersion !== false\n if (framework === \"proton\" || framework === \"proton-native\") {\n return new ProtonFramework(nodeVersion, distMacOsName, isUseLaunchUi)\n }\n else if (framework === \"libui\") {\n return new LibUiFramework(nodeVersion, distMacOsName, isUseLaunchUi)\n }\n else {\n throw new InvalidConfigurationError(`Unknown framework: ${framework}`)\n }\n}\n\nexport class Packager {\n readonly projectDir: string\n\n private _appDir: string\n get appDir(): string {\n return this._appDir\n }\n\n private _metadata: Metadata | null = null\n get metadata(): Metadata {\n return this._metadata!!\n }\n\n private _nodeModulesHandledExternally: boolean = false\n\n get areNodeModulesHandledExternally(): boolean {\n return this._nodeModulesHandledExternally\n }\n\n private _isPrepackedAppAsar: boolean = false\n\n get isPrepackedAppAsar(): boolean {\n return this._isPrepackedAppAsar\n }\n\n private _devMetadata: Metadata | null = null\n get devMetadata(): Metadata | null {\n return this._devMetadata\n }\n\n private _configuration: Configuration | null = null\n\n get config(): Configuration {\n return this._configuration!!\n }\n\n isTwoPackageJsonProjectLayoutUsed = false\n\n readonly eventEmitter = new EventEmitter()\n\n _appInfo: AppInfo | null = null\n get appInfo(): AppInfo {\n return this._appInfo!!\n }\n\n readonly tempDirManager = new TmpDir(\"packager\")\n\n private _repositoryInfo = new Lazy<SourceRepositoryInfo | null>(() => getRepositoryInfo(this.projectDir, this.metadata, this.devMetadata))\n\n private readonly afterPackHandlers: Array<(context: AfterPackContext) => Promise<any> | null> = []\n\n readonly options: PackagerOptions\n\n readonly debugLogger = new DebugLogger(log.isDebugEnabled)\n\n get repositoryInfo(): Promise<SourceRepositoryInfo | null> {\n return this._repositoryInfo.value\n }\n\n private nodeDependencyInfo = new Map<string, Lazy<Array<any>>>()\n\n getNodeDependencyInfo(platform: Platform | null): Lazy<Array<NodeModuleDirInfo>> {\n let key = \"\"\n let excludedDependencies: Array<string> | null = null\n if (platform != null && this.framework.getExcludedDependencies != null) {\n excludedDependencies = this.framework.getExcludedDependencies(platform)\n if (excludedDependencies != null) {\n key += `-${platform.name}`\n }\n }\n\n let result = this.nodeDependencyInfo.get(key)\n if (result == null) {\n result = createLazyProductionDeps(this.appDir, excludedDependencies)\n this.nodeDependencyInfo.set(key, result)\n }\n return result\n }\n\n stageDirPathCustomizer: (target: Target, packager: PlatformPackager<any>, arch: Arch) => string = (target, packager, arch) => {\n return path.join(target.outDir, `__${target.name}-${getArtifactArchName(arch, target.name)}`)\n }\n\n private _buildResourcesDir: string | null = null\n\n get buildResourcesDir(): string {\n let result = this._buildResourcesDir\n if (result == null) {\n result = path.resolve(this.projectDir, this.relativeBuildResourcesDirname)\n this._buildResourcesDir = result\n }\n return result\n }\n\n get relativeBuildResourcesDirname(): string {\n return this.config.directories!!.buildResources!!\n }\n\n private _framework: Framework | null = null\n get framework(): Framework {\n return this._framework!!\n }\n\n private readonly toDispose: Array<() => Promise<void>> = []\n\n disposeOnBuildFinish(disposer: () => Promise<void>) {\n this.toDispose.push(disposer)\n }\n\n //noinspection JSUnusedGlobalSymbols\n constructor(options: PackagerOptions, readonly cancellationToken = new CancellationToken()) {\n if (\"devMetadata\" in options) {\n throw new InvalidConfigurationError(\"devMetadata in the options is deprecated, please use config instead\")\n }\n if (\"extraMetadata\" in options) {\n throw new InvalidConfigurationError(\"extraMetadata in the options is deprecated, please use config.extraMetadata instead\")\n }\n\n const targets = options.targets || new Map<Platform, Map<Arch, Array<string>>>()\n if (options.targets == null) {\n options.targets = targets\n }\n\n function processTargets(platform: Platform, types: Array<string>) {\n function commonArch(currentIfNotSpecified: boolean): Array<Arch> {\n const result = Array<Arch>()\n return result.length === 0 && currentIfNotSpecified ? [archFromString(process.arch)] : result\n }\n\n let archToType = targets.get(platform)\n if (archToType == null) {\n archToType = new Map<Arch, Array<string>>()\n targets.set(platform, archToType)\n }\n\n if (types.length === 0) {\n for (const arch of commonArch(false)) {\n archToType.set(arch, [])\n }\n return\n }\n\n for (const type of types) {\n const suffixPos = type.lastIndexOf(\":\")\n if (suffixPos > 0) {\n addValue(archToType, archFromString(type.substring(suffixPos + 1)), type.substring(0, suffixPos))\n }\n else {\n for (const arch of commonArch(true)) {\n addValue(archToType, arch, type)\n }\n }\n }\n }\n\n if (options.mac != null) {\n processTargets(Platform.MAC, options.mac)\n }\n if (options.linux != null) {\n processTargets(Platform.LINUX, options.linux)\n }\n if (options.win != null) {\n processTargets(Platform.WINDOWS, options.win)\n }\n\n this.projectDir = options.projectDir == null ? process.cwd() : path.resolve(options.projectDir)\n this._appDir = this.projectDir\n this.options = {\n ...options,\n prepackaged: options.prepackaged == null ? null : path.resolve(this.projectDir, options.prepackaged)\n }\n\n try {\n log.info({version: PACKAGE_VERSION, os: require(\"os\").release()}, \"electron-builder\")\n }\n catch (e) {\n // error in dev mode without babel\n if (!(e instanceof ReferenceError)) {\n throw e\n }\n }\n }\n\n addAfterPackHandler(handler: (context: AfterPackContext) => Promise<any> | null) {\n this.afterPackHandlers.push(handler)\n }\n\n artifactCreated(handler: (event: ArtifactCreated) => void): Packager {\n addHandler(this.eventEmitter, \"artifactCreated\", handler)\n return this\n }\n\n async callArtifactBuildStarted(event: ArtifactBuildStarted, logFields?: any): Promise<void> {\n log.info(logFields || {\n target: event.targetPresentableName,\n arch: event.arch == null ? null : Arch[event.arch],\n file: log.filePath(event.file),\n }, \"building\")\n const handler = resolveFunction(this.config.artifactBuildStarted, \"artifactBuildStarted\")\n if (handler != null) {\n await Promise.resolve(handler(event))\n }\n }\n\n /**\n * Only for sub artifacts (update info), for main artifacts use `callArtifactBuildCompleted`.\n */\n dispatchArtifactCreated(event: ArtifactCreated): void {\n this.eventEmitter.emit(\"artifactCreated\", event)\n }\n\n async callArtifactBuildCompleted(event: ArtifactCreated): Promise<void> {\n this.dispatchArtifactCreated(event)\n\n const handler = resolveFunction(this.config.artifactBuildCompleted, \"artifactBuildCompleted\")\n if (handler != null) {\n await Promise.resolve(handler(event))\n }\n }\n\n async callAppxManifestCreated(path: string): Promise<void> {\n const handler = resolveFunction(this.config.appxManifestCreated, \"appxManifestCreated\")\n if (handler != null) {\n await Promise.resolve(handler(path))\n }\n }\n\n async build(): Promise<BuildResult> {\n let configPath: string | null = null\n let configFromOptions = this.options.config\n if (typeof configFromOptions === \"string\") {\n // it is a path to config file\n configPath = configFromOptions\n configFromOptions = null\n }\n else if (configFromOptions != null && configFromOptions.extends != null && configFromOptions.extends.includes(\".\")) {\n configPath = configFromOptions.extends\n delete configFromOptions.extends\n }\n\n const projectDir = this.projectDir\n\n const devPackageFile = path.join(projectDir, \"package.json\")\n this._devMetadata = await orNullIfFileNotExist(readPackageJson(devPackageFile))\n\n const devMetadata = this.devMetadata\n const configuration = await getConfig(projectDir, configPath, configFromOptions, new Lazy(() => Promise.resolve(devMetadata)))\n if (log.isDebugEnabled) {\n log.debug({config: getSafeEffectiveConfig(configuration)}, \"effective config\")\n }\n\n this._appDir = await computeDefaultAppDirectory(projectDir, configuration.directories!!.app)\n this.isTwoPackageJsonProjectLayoutUsed = this._appDir !== projectDir\n\n const appPackageFile = this.isTwoPackageJsonProjectLayoutUsed ? path.join(this.appDir, \"package.json\") : devPackageFile\n\n // tslint:disable:prefer-conditional-expression\n if (this.devMetadata != null && !this.isTwoPackageJsonProjectLayoutUsed) {\n this._metadata = this.devMetadata\n }\n else {\n this._metadata = await this.readProjectMetadataIfTwoPackageStructureOrPrepacked(appPackageFile)\n }\n deepAssign(this.metadata, configuration.extraMetadata)\n\n if (this.isTwoPackageJsonProjectLayoutUsed) {\n log.debug({devPackageFile, appPackageFile}, \"two package.json structure is used\")\n }\n checkMetadata(this.metadata, this.devMetadata, appPackageFile, devPackageFile)\n\n return await this._build(configuration, this._metadata, this._devMetadata)\n }\n\n // external caller of this method always uses isTwoPackageJsonProjectLayoutUsed=false and appDir=projectDir, no way (and need) to use another values\n async _build(configuration: Configuration, metadata: Metadata, devMetadata: Metadata | null, repositoryInfo?: SourceRepositoryInfo): Promise<BuildResult> {\n await validateConfig(configuration, this.debugLogger)\n this._configuration = configuration\n this._metadata = metadata\n this._devMetadata = devMetadata\n\n if (repositoryInfo != null) {\n this._repositoryInfo.value = Promise.resolve(repositoryInfo)\n }\n\n this._appInfo = new AppInfo(this, null)\n this._framework = await createFrameworkInfo(this.config, this)\n\n const commonOutDirWithoutPossibleOsMacro = path.resolve(this.projectDir, expandMacro(configuration.directories!!.output!!, null, this._appInfo, {\n os: \"\",\n }))\n\n if (!isCI && (process.stdout as any).isTTY) {\n const effectiveConfigFile = path.join(commonOutDirWithoutPossibleOsMacro, \"builder-effective-config.yaml\")\n log.info({file: log.filePath(effectiveConfigFile)}, \"writing effective config\")\n await outputFile(effectiveConfigFile, getSafeEffectiveConfig(configuration))\n }\n\n // because artifact event maybe dispatched several times for different publish providers\n const artifactPaths = new Set<string>()\n this.artifactCreated(event => {\n if (event.file != null) {\n artifactPaths.add(event.file)\n }\n })\n\n this.disposeOnBuildFinish(() => this.tempDirManager.cleanup())\n const platformToTargets = await executeFinally(this.doBuild(), async () => {\n if (this.debugLogger.isEnabled) {\n await this.debugLogger.save(path.join(commonOutDirWithoutPossibleOsMacro, \"builder-debug.yml\"))\n }\n\n const toDispose = this.toDispose.slice()\n this.toDispose.length = 0\n for (const disposer of toDispose) {\n await disposer().catch(e => {\n log.warn({error: e}, \"cannot dispose\")\n })\n }\n })\n\n return {\n outDir: commonOutDirWithoutPossibleOsMacro,\n artifactPaths: Array.from(artifactPaths),\n platformToTargets,\n configuration,\n }\n }\n\n private async readProjectMetadataIfTwoPackageStructureOrPrepacked(appPackageFile: string): Promise<Metadata> {\n let data = await orNullIfFileNotExist(readPackageJson(appPackageFile))\n if (data != null) {\n return data\n }\n\n data = await orNullIfFileNotExist(readAsarJson(path.join(this.projectDir, \"app.asar\"), \"package.json\"))\n if (data != null) {\n this._isPrepackedAppAsar = true\n return data\n }\n\n throw new Error(`Cannot find package.json in the ${path.dirname(appPackageFile)}`)\n }\n\n private async doBuild(): Promise<Map<Platform, Map<string, Target>>> {\n const taskManager = new AsyncTaskManager(this.cancellationToken)\n\n const platformToTarget = new Map<Platform, Map<string, Target>>()\n const createdOutDirs = new Set<string>()\n\n for (const [platform, archToType] of this.options.targets!!) {\n if (this.cancellationToken.cancelled) {\n break\n }\n\n if (platform === Platform.MAC && process.platform === Platform.WINDOWS.nodeName) {\n throw new InvalidConfigurationError(\"Build for macOS is supported only on macOS, please see https://electron.build/multi-platform-build\")\n }\n\n const packager = this.createHelper(platform)\n const nameToTarget: Map<string, Target> = new Map()\n platformToTarget.set(platform, nameToTarget)\n\n for (const [arch, targetNames] of computeArchToTargetNamesMap(archToType, packager, platform)) {\n if (this.cancellationToken.cancelled) {\n break\n }\n\n await this.installAppDependencies(platform, arch)\n\n if (this.cancellationToken.cancelled) {\n break\n }\n\n // support os and arch macro in output value\n const outDir = path.resolve(this.projectDir, packager.expandMacro(this._configuration!!.directories!!.output!!, Arch[arch]))\n const targetList = createTargets(nameToTarget, targetNames.length === 0 ? packager.defaultTarget : targetNames, outDir, packager)\n await createOutDirIfNeed(targetList, createdOutDirs)\n await packager.pack(outDir, arch, targetList, taskManager)\n }\n\n if (this.cancellationToken.cancelled) {\n break\n }\n\n for (const target of nameToTarget.values()) {\n taskManager.addTask(target.finishBuild())\n }\n }\n\n await taskManager.awaitTasks()\n return platformToTarget\n }\n\n private createHelper(platform: Platform): PlatformPackager<any> {\n if (this.options.platformPackagerFactory != null) {\n return this.options.platformPackagerFactory!(this, platform)\n }\n\n switch (platform) {\n case Platform.MAC: {\n const helperClass: typeof MacPackager = require(\"./macPackager\").default\n return new helperClass(this)\n }\n\n case Platform.WINDOWS: {\n const helperClass: typeof WinPackager = require(\"./winPackager\").WinPackager\n return new helperClass(this)\n }\n\n case Platform.LINUX:\n return new (require(\"./linuxPackager\").LinuxPackager)(this)\n\n default:\n throw new Error(`Unknown platform: ${platform}`)\n }\n }\n\n private async installAppDependencies(platform: Platform, arch: Arch): Promise<any> {\n if (this.options.prepackaged != null || this.framework.isNpmRebuildRequired !== true) {\n return\n }\n\n const frameworkInfo = {version: this.framework.version, useCustomDist: true}\n const config = this.config\n if (config.nodeGypRebuild === true) {\n await nodeGypRebuild(platform.nodeName, Arch[arch], frameworkInfo)\n }\n\n if (config.npmRebuild === false) {\n log.info({reason: \"npmRebuild is set to false\"}, \"skipped dependencies rebuild\")\n return\n }\n\n const beforeBuild = resolveFunction(config.beforeBuild, \"beforeBuild\")\n if (beforeBuild != null) {\n const performDependenciesInstallOrRebuild = await beforeBuild({\n appDir: this.appDir,\n electronVersion: this.config.electronVersion!,\n platform,\n arch: Arch[arch]\n })\n\n // If beforeBuild resolves to false, it means that handling node_modules is done outside of electron-builder.\n this._nodeModulesHandledExternally = !performDependenciesInstallOrRebuild\n if (!performDependenciesInstallOrRebuild) {\n return\n }\n }\n\n if (config.buildDependenciesFromSource === true && platform.nodeName !== process.platform) {\n log.info({reason: \"platform is different and buildDependenciesFromSource is set to true\"}, \"skipped dependencies rebuild\")\n }\n else {\n await installOrRebuild(config, this.appDir, {\n frameworkInfo,\n platform: platform.nodeName,\n arch: Arch[arch],\n productionDeps: this.getNodeDependencyInfo(null),\n })\n }\n }\n\n async afterPack(context: AfterPackContext): Promise<any> {\n const afterPack = resolveFunction(this.config.afterPack, \"afterPack\")\n const handlers = this.afterPackHandlers.slice()\n if (afterPack != null) {\n // user handler should be last\n handlers.push(afterPack)\n }\n\n for (const handler of handlers) {\n await Promise.resolve(handler(context))\n }\n }\n}\n\nfunction createOutDirIfNeed(targetList: Array<Target>, createdOutDirs: Set<string>): Promise<any> {\n const ourDirs = new Set<string>()\n for (const target of targetList) {\n // noinspection SuspiciousInstanceOfGuard\n if (target instanceof NoOpTarget) {\n continue\n }\n\n const outDir = (target as Target).outDir\n if (!createdOutDirs.has(outDir)) {\n ourDirs.add(outDir)\n }\n }\n\n if (ourDirs.size === 0) {\n return Promise.resolve()\n }\n\n return Promise.all(Array.from(ourDirs).sort().map(dir => {\n return mkdirs(dir)\n .then(() => chmod(dir, 0o755) /* set explicitly */)\n .then(() => createdOutDirs.add(dir))\n }))\n}\n\nexport interface BuildResult {\n readonly outDir: string\n readonly artifactPaths: Array<string>\n readonly platformToTargets: Map<Platform, Map<string, Target>>\n readonly configuration: Configuration\n}\n\nfunction getSafeEffectiveConfig(configuration: Configuration): string {\n const o = JSON.parse(safeStringifyJson(configuration))\n if (o.cscLink != null) {\n o.cscLink = \"<hidden by builder>\"\n }\n return serializeToYaml(o, true)\n}"],"sourceRoot":""}
|
|
1
|
+
{"version":3,"sources":["../src/packager.ts"],"names":[],"mappings":"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","sourcesContent":["import { addValue, Arch, archFromString, AsyncTaskManager, DebugLogger, deepAssign, InvalidConfigurationError, log, safeStringifyJson, serializeToYaml, TmpDir } from \"builder-util\"\nimport { CancellationToken } from \"builder-util-runtime\"\nimport { executeFinally, orNullIfFileNotExist } from \"builder-util/out/promise\"\nimport { EventEmitter } from \"events\"\nimport { mkdirs, chmod, outputFile } from \"fs-extra\"\nimport isCI from \"is-ci\"\nimport { Lazy } from \"lazy-val\"\nimport * as path from \"path\"\nimport { getArtifactArchName } from \"builder-util/out/arch\"\nimport { AppInfo } from \"./appInfo\"\nimport { readAsarJson } from \"./asar/asar\"\nimport { createElectronFrameworkSupport } from \"./electron/ElectronFramework\"\nimport { LibUiFramework } from \"./frameworks/LibUiFramework\"\nimport { AfterPackContext, Configuration, Framework, Platform, SourceRepositoryInfo, Target } from \"./index\"\nimport MacPackager from \"./macPackager\"\nimport { Metadata } from \"./options/metadata\"\nimport { ArtifactBuildStarted, ArtifactCreated, PackagerOptions } from \"./packagerApi\"\nimport { PlatformPackager, resolveFunction } from \"./platformPackager\"\nimport { ProtonFramework } from \"./ProtonFramework\"\nimport { computeArchToTargetNamesMap, createTargets, NoOpTarget } from \"./targets/targetFactory\"\nimport { computeDefaultAppDirectory, getConfig, validateConfig } from \"./util/config\"\nimport { expandMacro } from \"./util/macroExpander\"\nimport { createLazyProductionDeps, NodeModuleDirInfo } from \"./util/packageDependencies\"\nimport { checkMetadata, readPackageJson } from \"./util/packageMetadata\"\nimport { getRepositoryInfo } from \"./util/repositoryInfo\"\nimport { installOrRebuild, nodeGypRebuild } from \"./util/yarn\"\nimport { WinPackager } from \"./winPackager\"\n\nfunction addHandler(emitter: EventEmitter, event: string, handler: (...args: Array<any>) => void) {\n emitter.on(event, handler)\n}\n\ndeclare const PACKAGE_VERSION: string\n\nasync function createFrameworkInfo(configuration: Configuration, packager: Packager): Promise<Framework> {\n let framework = configuration.framework\n if (framework != null) {\n framework = framework.toLowerCase()\n }\n\n let nodeVersion = configuration.nodeVersion\n if (framework === \"electron\" || framework == null) {\n return await createElectronFrameworkSupport(configuration, packager)\n }\n\n if (nodeVersion == null || nodeVersion === \"current\") {\n nodeVersion = process.versions.node\n }\n\n const distMacOsName = `${packager.appInfo.productFilename}.app`\n const isUseLaunchUi = configuration.launchUiVersion !== false\n if (framework === \"proton\" || framework === \"proton-native\") {\n return new ProtonFramework(nodeVersion, distMacOsName, isUseLaunchUi)\n }\n else if (framework === \"libui\") {\n return new LibUiFramework(nodeVersion, distMacOsName, isUseLaunchUi)\n }\n else {\n throw new InvalidConfigurationError(`Unknown framework: ${framework}`)\n }\n}\n\nexport class Packager {\n readonly projectDir: string\n\n private _appDir: string\n get appDir(): string {\n return this._appDir\n }\n\n private _metadata: Metadata | null = null\n get metadata(): Metadata {\n return this._metadata!!\n }\n\n private _nodeModulesHandledExternally: boolean = false\n\n get areNodeModulesHandledExternally(): boolean {\n return this._nodeModulesHandledExternally\n }\n\n private _isPrepackedAppAsar: boolean = false\n\n get isPrepackedAppAsar(): boolean {\n return this._isPrepackedAppAsar\n }\n\n private _devMetadata: Metadata | null = null\n get devMetadata(): Metadata | null {\n return this._devMetadata\n }\n\n private _configuration: Configuration | null = null\n\n get config(): Configuration {\n return this._configuration!!\n }\n\n isTwoPackageJsonProjectLayoutUsed = false\n\n readonly eventEmitter = new EventEmitter()\n\n _appInfo: AppInfo | null = null\n get appInfo(): AppInfo {\n return this._appInfo!!\n }\n\n readonly tempDirManager = new TmpDir(\"packager\")\n\n private _repositoryInfo = new Lazy<SourceRepositoryInfo | null>(() => getRepositoryInfo(this.projectDir, this.metadata, this.devMetadata))\n\n private readonly afterPackHandlers: Array<(context: AfterPackContext) => Promise<any> | null> = []\n\n readonly options: PackagerOptions\n\n readonly debugLogger = new DebugLogger(log.isDebugEnabled)\n\n get repositoryInfo(): Promise<SourceRepositoryInfo | null> {\n return this._repositoryInfo.value\n }\n\n private nodeDependencyInfo = new Map<string, Lazy<Array<any>>>()\n\n getNodeDependencyInfo(platform: Platform | null): Lazy<Array<NodeModuleDirInfo>> {\n let key = \"\"\n let excludedDependencies: Array<string> | null = null\n if (platform != null && this.framework.getExcludedDependencies != null) {\n excludedDependencies = this.framework.getExcludedDependencies(platform)\n if (excludedDependencies != null) {\n key += `-${platform.name}`\n }\n }\n\n let result = this.nodeDependencyInfo.get(key)\n if (result == null) {\n result = createLazyProductionDeps(this.appDir, excludedDependencies)\n this.nodeDependencyInfo.set(key, result)\n }\n return result\n }\n\n stageDirPathCustomizer: (target: Target, packager: PlatformPackager<any>, arch: Arch) => string = (target, packager, arch) => {\n return path.join(target.outDir, `__${target.name}-${getArtifactArchName(arch, target.name)}`)\n }\n\n private _buildResourcesDir: string | null = null\n\n get buildResourcesDir(): string {\n let result = this._buildResourcesDir\n if (result == null) {\n result = path.resolve(this.projectDir, this.relativeBuildResourcesDirname)\n this._buildResourcesDir = result\n }\n return result\n }\n\n get relativeBuildResourcesDirname(): string {\n return this.config.directories!!.buildResources!!\n }\n\n private _framework: Framework | null = null\n get framework(): Framework {\n return this._framework!!\n }\n\n private readonly toDispose: Array<() => Promise<void>> = []\n\n disposeOnBuildFinish(disposer: () => Promise<void>) {\n this.toDispose.push(disposer)\n }\n\n //noinspection JSUnusedGlobalSymbols\n constructor(options: PackagerOptions, readonly cancellationToken = new CancellationToken()) {\n if (\"devMetadata\" in options) {\n throw new InvalidConfigurationError(\"devMetadata in the options is deprecated, please use config instead\")\n }\n if (\"extraMetadata\" in options) {\n throw new InvalidConfigurationError(\"extraMetadata in the options is deprecated, please use config.extraMetadata instead\")\n }\n\n const targets = options.targets || new Map<Platform, Map<Arch, Array<string>>>()\n if (options.targets == null) {\n options.targets = targets\n }\n\n function processTargets(platform: Platform, types: Array<string>) {\n function commonArch(currentIfNotSpecified: boolean): Array<Arch> {\n const result = Array<Arch>()\n return result.length === 0 && currentIfNotSpecified ? [archFromString(process.arch)] : result\n }\n\n let archToType = targets.get(platform)\n if (archToType == null) {\n archToType = new Map<Arch, Array<string>>()\n targets.set(platform, archToType)\n }\n\n if (types.length === 0) {\n for (const arch of commonArch(false)) {\n archToType.set(arch, [])\n }\n return\n }\n\n for (const type of types) {\n const suffixPos = type.lastIndexOf(\":\")\n if (suffixPos > 0) {\n addValue(archToType, archFromString(type.substring(suffixPos + 1)), type.substring(0, suffixPos))\n }\n else {\n for (const arch of commonArch(true)) {\n addValue(archToType, arch, type)\n }\n }\n }\n }\n\n if (options.mac != null) {\n processTargets(Platform.MAC, options.mac)\n }\n if (options.linux != null) {\n processTargets(Platform.LINUX, options.linux)\n }\n if (options.win != null) {\n processTargets(Platform.WINDOWS, options.win)\n }\n\n this.projectDir = options.projectDir == null ? process.cwd() : path.resolve(options.projectDir)\n this._appDir = this.projectDir\n this.options = {\n ...options,\n prepackaged: options.prepackaged == null ? null : path.resolve(this.projectDir, options.prepackaged)\n }\n\n try {\n log.info({version: PACKAGE_VERSION, os: require(\"os\").release()}, \"electron-builder\")\n }\n catch (e) {\n // error in dev mode without babel\n if (!(e instanceof ReferenceError)) {\n throw e\n }\n }\n }\n\n addAfterPackHandler(handler: (context: AfterPackContext) => Promise<any> | null) {\n this.afterPackHandlers.push(handler)\n }\n\n artifactCreated(handler: (event: ArtifactCreated) => void): Packager {\n addHandler(this.eventEmitter, \"artifactCreated\", handler)\n return this\n }\n\n async callArtifactBuildStarted(event: ArtifactBuildStarted, logFields?: any): Promise<void> {\n log.info(logFields || {\n target: event.targetPresentableName,\n arch: event.arch == null ? null : Arch[event.arch],\n file: log.filePath(event.file),\n }, \"building\")\n const handler = resolveFunction(this.config.artifactBuildStarted, \"artifactBuildStarted\")\n if (handler != null) {\n await Promise.resolve(handler(event))\n }\n }\n\n /**\n * Only for sub artifacts (update info), for main artifacts use `callArtifactBuildCompleted`.\n */\n dispatchArtifactCreated(event: ArtifactCreated): void {\n this.eventEmitter.emit(\"artifactCreated\", event)\n }\n\n async callArtifactBuildCompleted(event: ArtifactCreated): Promise<void> {\n this.dispatchArtifactCreated(event)\n\n const handler = resolveFunction(this.config.artifactBuildCompleted, \"artifactBuildCompleted\")\n if (handler != null) {\n await Promise.resolve(handler(event))\n }\n }\n\n async callAppxManifestCreated(path: string): Promise<void> {\n const handler = resolveFunction(this.config.appxManifestCreated, \"appxManifestCreated\")\n if (handler != null) {\n await Promise.resolve(handler(path))\n }\n }\n\n async build(): Promise<BuildResult> {\n let configPath: string | null = null\n let configFromOptions = this.options.config\n if (typeof configFromOptions === \"string\") {\n // it is a path to config file\n configPath = configFromOptions\n configFromOptions = null\n }\n else if (configFromOptions != null && configFromOptions.extends != null && configFromOptions.extends.includes(\".\")) {\n configPath = configFromOptions.extends\n delete configFromOptions.extends\n }\n\n const projectDir = this.projectDir\n\n const devPackageFile = path.join(projectDir, \"package.json\")\n this._devMetadata = await orNullIfFileNotExist(readPackageJson(devPackageFile))\n\n const devMetadata = this.devMetadata\n const configuration = await getConfig(projectDir, configPath, configFromOptions, new Lazy(() => Promise.resolve(devMetadata)))\n if (log.isDebugEnabled) {\n log.debug({config: getSafeEffectiveConfig(configuration)}, \"effective config\")\n }\n\n this._appDir = await computeDefaultAppDirectory(projectDir, configuration.directories!!.app)\n this.isTwoPackageJsonProjectLayoutUsed = this._appDir !== projectDir\n\n const appPackageFile = this.isTwoPackageJsonProjectLayoutUsed ? path.join(this.appDir, \"package.json\") : devPackageFile\n\n // tslint:disable:prefer-conditional-expression\n if (this.devMetadata != null && !this.isTwoPackageJsonProjectLayoutUsed) {\n this._metadata = this.devMetadata\n }\n else {\n this._metadata = await this.readProjectMetadataIfTwoPackageStructureOrPrepacked(appPackageFile)\n }\n deepAssign(this.metadata, configuration.extraMetadata)\n\n if (this.isTwoPackageJsonProjectLayoutUsed) {\n log.debug({devPackageFile, appPackageFile}, \"two package.json structure is used\")\n }\n checkMetadata(this.metadata, this.devMetadata, appPackageFile, devPackageFile)\n\n return await this._build(configuration, this._metadata, this._devMetadata)\n }\n\n // external caller of this method always uses isTwoPackageJsonProjectLayoutUsed=false and appDir=projectDir, no way (and need) to use another values\n async _build(configuration: Configuration, metadata: Metadata, devMetadata: Metadata | null, repositoryInfo?: SourceRepositoryInfo): Promise<BuildResult> {\n await validateConfig(configuration, this.debugLogger)\n this._configuration = configuration\n this._metadata = metadata\n this._devMetadata = devMetadata\n\n if (repositoryInfo != null) {\n this._repositoryInfo.value = Promise.resolve(repositoryInfo)\n }\n\n this._appInfo = new AppInfo(this, null)\n this._framework = await createFrameworkInfo(this.config, this)\n\n const commonOutDirWithoutPossibleOsMacro = path.resolve(this.projectDir, expandMacro(configuration.directories!!.output!!, null, this._appInfo, {\n os: \"\",\n }))\n\n if (!isCI && (process.stdout as any).isTTY) {\n const effectiveConfigFile = path.join(commonOutDirWithoutPossibleOsMacro, \"builder-effective-config.yaml\")\n log.info({file: log.filePath(effectiveConfigFile)}, \"writing effective config\")\n await outputFile(effectiveConfigFile, getSafeEffectiveConfig(configuration))\n }\n\n // because artifact event maybe dispatched several times for different publish providers\n const artifactPaths = new Set<string>()\n this.artifactCreated(event => {\n if (event.file != null) {\n artifactPaths.add(event.file)\n }\n })\n\n this.disposeOnBuildFinish(() => this.tempDirManager.cleanup())\n const platformToTargets = await executeFinally(this.doBuild(), async () => {\n if (this.debugLogger.isEnabled) {\n await this.debugLogger.save(path.join(commonOutDirWithoutPossibleOsMacro, \"builder-debug.yml\"))\n }\n\n const toDispose = this.toDispose.slice()\n this.toDispose.length = 0\n for (const disposer of toDispose) {\n await disposer().catch(e => {\n log.warn({error: e}, \"cannot dispose\")\n })\n }\n })\n\n return {\n outDir: commonOutDirWithoutPossibleOsMacro,\n artifactPaths: Array.from(artifactPaths),\n platformToTargets,\n configuration,\n }\n }\n\n private async readProjectMetadataIfTwoPackageStructureOrPrepacked(appPackageFile: string): Promise<Metadata> {\n let data = await orNullIfFileNotExist(readPackageJson(appPackageFile))\n if (data != null) {\n return data\n }\n\n data = await orNullIfFileNotExist(readAsarJson(path.join(this.projectDir, \"app.asar\"), \"package.json\"))\n if (data != null) {\n this._isPrepackedAppAsar = true\n return data\n }\n\n throw new Error(`Cannot find package.json in the ${path.dirname(appPackageFile)}`)\n }\n\n private async doBuild(): Promise<Map<Platform, Map<string, Target>>> {\n const taskManager = new AsyncTaskManager(this.cancellationToken)\n\n const platformToTarget = new Map<Platform, Map<string, Target>>()\n const createdOutDirs = new Set<string>()\n\n for (const [platform, archToType] of this.options.targets!!) {\n if (this.cancellationToken.cancelled) {\n break\n }\n\n if (platform === Platform.MAC && process.platform === Platform.WINDOWS.nodeName) {\n throw new InvalidConfigurationError(\"Build for macOS is supported only on macOS, please see https://electron.build/multi-platform-build\")\n }\n\n const packager = this.createHelper(platform)\n const nameToTarget: Map<string, Target> = new Map()\n platformToTarget.set(platform, nameToTarget)\n\n for (const [arch, targetNames] of computeArchToTargetNamesMap(archToType, packager, platform)) {\n if (this.cancellationToken.cancelled) {\n break\n }\n\n // support os and arch macro in output value\n const outDir = path.resolve(this.projectDir, packager.expandMacro(this._configuration!!.directories!!.output!!, Arch[arch]))\n const targetList = createTargets(nameToTarget, targetNames.length === 0 ? packager.defaultTarget : targetNames, outDir, packager)\n await createOutDirIfNeed(targetList, createdOutDirs)\n await packager.pack(outDir, arch, targetList, taskManager)\n }\n\n if (this.cancellationToken.cancelled) {\n break\n }\n\n for (const target of nameToTarget.values()) {\n taskManager.addTask(target.finishBuild())\n }\n }\n\n await taskManager.awaitTasks()\n return platformToTarget\n }\n\n private createHelper(platform: Platform): PlatformPackager<any> {\n if (this.options.platformPackagerFactory != null) {\n return this.options.platformPackagerFactory!(this, platform)\n }\n\n switch (platform) {\n case Platform.MAC: {\n const helperClass: typeof MacPackager = require(\"./macPackager\").default\n return new helperClass(this)\n }\n\n case Platform.WINDOWS: {\n const helperClass: typeof WinPackager = require(\"./winPackager\").WinPackager\n return new helperClass(this)\n }\n\n case Platform.LINUX:\n return new (require(\"./linuxPackager\").LinuxPackager)(this)\n\n default:\n throw new Error(`Unknown platform: ${platform}`)\n }\n }\n\n public async installAppDependencies(platform: Platform, arch: Arch): Promise<any> {\n if (this.options.prepackaged != null || this.framework.isNpmRebuildRequired !== true) {\n return\n }\n\n const frameworkInfo = {version: this.framework.version, useCustomDist: true}\n const config = this.config\n if (config.nodeGypRebuild === true) {\n await nodeGypRebuild(platform.nodeName, Arch[arch], frameworkInfo)\n }\n\n if (config.npmRebuild === false) {\n log.info({reason: \"npmRebuild is set to false\"}, \"skipped dependencies rebuild\")\n return\n }\n\n const beforeBuild = resolveFunction(config.beforeBuild, \"beforeBuild\")\n if (beforeBuild != null) {\n const performDependenciesInstallOrRebuild = await beforeBuild({\n appDir: this.appDir,\n electronVersion: this.config.electronVersion!,\n platform,\n arch: Arch[arch]\n })\n\n // If beforeBuild resolves to false, it means that handling node_modules is done outside of electron-builder.\n this._nodeModulesHandledExternally = !performDependenciesInstallOrRebuild\n if (!performDependenciesInstallOrRebuild) {\n return\n }\n }\n\n if (config.buildDependenciesFromSource === true && platform.nodeName !== process.platform) {\n log.info({reason: \"platform is different and buildDependenciesFromSource is set to true\"}, \"skipped dependencies rebuild\")\n }\n else {\n await installOrRebuild(config, this.appDir, {\n frameworkInfo,\n platform: platform.nodeName,\n arch: Arch[arch],\n productionDeps: this.getNodeDependencyInfo(null),\n })\n }\n }\n\n async afterPack(context: AfterPackContext): Promise<any> {\n const afterPack = resolveFunction(this.config.afterPack, \"afterPack\")\n const handlers = this.afterPackHandlers.slice()\n if (afterPack != null) {\n // user handler should be last\n handlers.push(afterPack)\n }\n\n for (const handler of handlers) {\n await Promise.resolve(handler(context))\n }\n }\n}\n\nfunction createOutDirIfNeed(targetList: Array<Target>, createdOutDirs: Set<string>): Promise<any> {\n const ourDirs = new Set<string>()\n for (const target of targetList) {\n // noinspection SuspiciousInstanceOfGuard\n if (target instanceof NoOpTarget) {\n continue\n }\n\n const outDir = (target as Target).outDir\n if (!createdOutDirs.has(outDir)) {\n ourDirs.add(outDir)\n }\n }\n\n if (ourDirs.size === 0) {\n return Promise.resolve()\n }\n\n return Promise.all(Array.from(ourDirs).sort().map(dir => {\n return mkdirs(dir)\n .then(() => chmod(dir, 0o755) /* set explicitly */)\n .then(() => createdOutDirs.add(dir))\n }))\n}\n\nexport interface BuildResult {\n readonly outDir: string\n readonly artifactPaths: Array<string>\n readonly platformToTargets: Map<Platform, Map<string, Target>>\n readonly configuration: Configuration\n}\n\nfunction getSafeEffectiveConfig(configuration: Configuration): string {\n const o = JSON.parse(safeStringifyJson(configuration))\n if (o.cscLink != null) {\n o.cscLink = \"<hidden by builder>\"\n }\n return serializeToYaml(o, true)\n}"],"sourceRoot":""}
|
|
@@ -31,7 +31,8 @@ export declare abstract class PlatformPackager<DC extends PlatformSpecificBuildO
|
|
|
31
31
|
private static buildAsyncTargets;
|
|
32
32
|
private getExtraFileMatchers;
|
|
33
33
|
createGetFileMatchersOptions(outDir: string, arch: Arch, customBuildOptions: PlatformSpecificBuildOptions): GetFileMatchersOptions;
|
|
34
|
-
protected doPack(outDir: string, appOutDir: string, platformName: ElectronPlatformName, arch: Arch, platformSpecificBuildOptions: DC, targets: Array<Target
|
|
34
|
+
protected doPack(outDir: string, appOutDir: string, platformName: ElectronPlatformName, arch: Arch, platformSpecificBuildOptions: DC, targets: Array<Target>, sign?: boolean, disableAsarIntegrity?: boolean): Promise<void>;
|
|
35
|
+
protected doSignAfterPack(outDir: string, appOutDir: string, platformName: ElectronPlatformName, arch: Arch, platformSpecificBuildOptions: DC, targets: Array<Target>): Promise<void>;
|
|
35
36
|
protected createTransformerForExtraFiles(packContext: AfterPackContext): FileTransformer | null;
|
|
36
37
|
private copyAppFiles;
|
|
37
38
|
protected signApp(packContext: AfterPackContext, isAsar: boolean): Promise<any>;
|
|
@@ -43,8 +44,8 @@ export declare abstract class PlatformPackager<DC extends PlatformSpecificBuildO
|
|
|
43
44
|
getMacOsResourcesDir(appOutDir: string): string;
|
|
44
45
|
private checkFileInPackage;
|
|
45
46
|
private sanityCheckPackage;
|
|
46
|
-
computeSafeArtifactName(suggestedName: string | null, ext: string, arch?: Arch | null,
|
|
47
|
-
expandArtifactNamePattern(targetSpecificOptions: TargetSpecificOptions | null | undefined, ext: string, arch?: Arch | null, defaultPattern?: string,
|
|
47
|
+
computeSafeArtifactName(suggestedName: string | null, ext: string, arch?: Arch | null, skipDefaultArch?: boolean, defaultArch?: string, safePattern?: string): string | null;
|
|
48
|
+
expandArtifactNamePattern(targetSpecificOptions: TargetSpecificOptions | null | undefined, ext: string, arch?: Arch | null, defaultPattern?: string, skipDefaultArch?: boolean, defaultArch?: string): string;
|
|
48
49
|
expandArtifactBeautyNamePattern(targetSpecificOptions: TargetSpecificOptions | null | undefined, ext: string, arch?: Arch | null): string;
|
|
49
50
|
private computeArtifactName;
|
|
50
51
|
expandMacro(pattern: string, arch?: string | null, extra?: any, isProductNameSanitized?: boolean): string;
|
package/out/platformPackager.js
CHANGED
|
@@ -277,7 +277,7 @@ class PlatformPackager {
|
|
|
277
277
|
}
|
|
278
278
|
|
|
279
279
|
computeAppOutDir(outDir, arch) {
|
|
280
|
-
return this.packagerOptions.prepackaged || path.join(outDir, `${this.platform.buildConfigurationKey}${(0, _builderUtil().getArchSuffix)(arch)}${this.platform === _index().Platform.MAC ? "" : "-unpacked"}`);
|
|
280
|
+
return this.packagerOptions.prepackaged || path.join(outDir, `${this.platform.buildConfigurationKey}${(0, _builderUtil().getArchSuffix)(arch, this.platformSpecificBuildOptions.defaultArch)}${this.platform === _index().Platform.MAC ? "" : "-unpacked"}`);
|
|
281
281
|
}
|
|
282
282
|
|
|
283
283
|
dispatchArtifactCreated(file, target, arch, safeArtifactName) {
|
|
@@ -340,11 +340,21 @@ class PlatformPackager {
|
|
|
340
340
|
};
|
|
341
341
|
}
|
|
342
342
|
|
|
343
|
-
async doPack(outDir, appOutDir, platformName, arch, platformSpecificBuildOptions, targets) {
|
|
343
|
+
async doPack(outDir, appOutDir, platformName, arch, platformSpecificBuildOptions, targets, sign = true, disableAsarIntegrity = false) {
|
|
344
344
|
if (this.packagerOptions.prepackaged != null) {
|
|
345
345
|
return;
|
|
346
346
|
}
|
|
347
347
|
|
|
348
|
+
if (this.info.cancellationToken.cancelled) {
|
|
349
|
+
return;
|
|
350
|
+
}
|
|
351
|
+
|
|
352
|
+
await this.info.installAppDependencies(this.platform, arch);
|
|
353
|
+
|
|
354
|
+
if (this.info.cancellationToken.cancelled) {
|
|
355
|
+
return;
|
|
356
|
+
}
|
|
357
|
+
|
|
348
358
|
const framework = this.info.framework;
|
|
349
359
|
|
|
350
360
|
_builderUtil().log.info({
|
|
@@ -399,7 +409,7 @@ class PlatformPackager {
|
|
|
399
409
|
await framework.beforeCopyExtraFiles({
|
|
400
410
|
packager: this,
|
|
401
411
|
appOutDir,
|
|
402
|
-
asarIntegrity: asarOptions == null ? null : await (0, _integrity().computeData)(resourcesPath, asarOptions.externalAllowed ? {
|
|
412
|
+
asarIntegrity: asarOptions == null || disableAsarIntegrity ? null : await (0, _integrity().computeData)(resourcesPath, asarOptions.externalAllowed ? {
|
|
403
413
|
externalAllowed: true
|
|
404
414
|
} : null),
|
|
405
415
|
platformName
|
|
@@ -426,6 +436,23 @@ class PlatformPackager {
|
|
|
426
436
|
|
|
427
437
|
const isAsar = asarOptions != null;
|
|
428
438
|
await this.sanityCheckPackage(appOutDir, isAsar, framework);
|
|
439
|
+
|
|
440
|
+
if (sign) {
|
|
441
|
+
await this.doSignAfterPack(outDir, appOutDir, platformName, arch, platformSpecificBuildOptions, targets);
|
|
442
|
+
}
|
|
443
|
+
}
|
|
444
|
+
|
|
445
|
+
async doSignAfterPack(outDir, appOutDir, platformName, arch, platformSpecificBuildOptions, targets) {
|
|
446
|
+
const asarOptions = await this.computeAsarOptions(platformSpecificBuildOptions);
|
|
447
|
+
const isAsar = asarOptions != null;
|
|
448
|
+
const packContext = {
|
|
449
|
+
appOutDir,
|
|
450
|
+
outDir,
|
|
451
|
+
arch,
|
|
452
|
+
targets,
|
|
453
|
+
packager: this,
|
|
454
|
+
electronPlatformName: platformName
|
|
455
|
+
};
|
|
429
456
|
await this.signApp(packContext, isAsar);
|
|
430
457
|
const afterSign = resolveFunction(this.config.afterSign, "afterSign");
|
|
431
458
|
|
|
@@ -645,11 +672,11 @@ class PlatformPackager {
|
|
|
645
672
|
} // tslint:disable-next-line:no-invalid-template-strings
|
|
646
673
|
|
|
647
674
|
|
|
648
|
-
computeSafeArtifactName(suggestedName, ext, arch,
|
|
649
|
-
return computeSafeArtifactNameIfNeeded(suggestedName, () => this.computeArtifactName(safePattern, ext,
|
|
675
|
+
computeSafeArtifactName(suggestedName, ext, arch, skipDefaultArch = true, defaultArch, safePattern = "${name}-${version}-${arch}.${ext}") {
|
|
676
|
+
return computeSafeArtifactNameIfNeeded(suggestedName, () => this.computeArtifactName(safePattern, ext, skipDefaultArch && arch === (0, _arch().defaultArchFromString)(defaultArch) ? null : arch));
|
|
650
677
|
}
|
|
651
678
|
|
|
652
|
-
expandArtifactNamePattern(targetSpecificOptions, ext, arch, defaultPattern,
|
|
679
|
+
expandArtifactNamePattern(targetSpecificOptions, ext, arch, defaultPattern, skipDefaultArch = true, defaultArch) {
|
|
653
680
|
let pattern = targetSpecificOptions == null ? null : targetSpecificOptions.artifactName;
|
|
654
681
|
|
|
655
682
|
if (pattern == null) {
|
|
@@ -662,10 +689,10 @@ class PlatformPackager {
|
|
|
662
689
|
} else {
|
|
663
690
|
// https://github.com/electron-userland/electron-builder/issues/3510
|
|
664
691
|
// always respect arch in user custom artifact pattern
|
|
665
|
-
|
|
692
|
+
skipDefaultArch = this.platform === _index().Platform.MAC;
|
|
666
693
|
}
|
|
667
694
|
|
|
668
|
-
return this.computeArtifactName(pattern, ext,
|
|
695
|
+
return this.computeArtifactName(pattern, ext, skipDefaultArch && arch === (0, _arch().defaultArchFromString)(defaultArch) ? null : arch);
|
|
669
696
|
}
|
|
670
697
|
|
|
671
698
|
expandArtifactBeautyNamePattern(targetSpecificOptions, ext, arch) {
|
|
@@ -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 } else {\n // https://github.com/electron-userland/electron-builder/issues/3510\n // always respect arch in user custom artifact pattern\n skipArchIfX64 = this.platform === Platform.MAC\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, 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":";;;;;;;;;;;;;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAEA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;;;;;;;AAEM,MAAgB,gBAAhB,CAAgC;AA2BpC,EAAA,WAAA,CAA+B,IAA/B,EAAwD,QAAxD,EAA0E;AAA3C,SAAA,IAAA,GAAA,IAAA;AAAyB,SAAA,QAAA,GAAA,QAAA;AAJvC,SAAA,aAAA,GAAgB,KAAI,eAAJ,EAAwB,MAAM,iCAAiB,wBAAQ,KAAK,IAAL,CAAU,iBAAlB,CAAjB,EAAuD,EAAvD,CAA9B,CAAhB;AAKf,SAAK,4BAAL,GAAoC,gBAAgB,CAAC,qCAAjB,CAAwD,KAAK,MAAL,CAAoB,QAAQ,CAAC,qBAA7B,CAAxD,CAApC;AACA,SAAK,OAAL,GAAe,KAAK,cAAL,CAAoB,IAAI,CAAC,OAAzB,CAAf;AACD;;AA7BD,MAAI,eAAJ,GAAmB;AACjB,WAAO,KAAK,IAAL,CAAU,OAAjB;AACD;;AAED,MAAI,iBAAJ,GAAqB;AACnB,WAAO,KAAK,IAAL,CAAU,iBAAjB;AACD;;AAED,MAAI,UAAJ,GAAc;AACZ,WAAO,KAAK,IAAL,CAAU,UAAjB;AACD;;AAED,MAAI,MAAJ,GAAU;AACR,WAAO,KAAK,IAAL,CAAU,MAAjB;AACD;;AAID,MAAI,YAAJ,GAAgB;AACd,WAAO,KAAK,aAAL,CAAmB,KAA1B;AACD;;AAWD,MAAI,WAAJ,GAAe;AACb,UAAM,WAAW,GAAG,KAAK,4BAAL,CAAkC,WAAtD,CADa,CAEb;;AACA,QAAI,WAAW,KAAK,IAApB,EAA0B;AACxB,aAAO,QAAP;AACD;;AACD,WAAO,WAAW,IAAI,KAAK,MAAL,CAAY,WAA3B,IAA0C,QAAjD;AACD;;AAED,MAAI,WAAJ,GAAe;AACb,WAAO,KAAK,IAAL,CAAU,WAAjB;AACD,GA3CmC,CA+CpC;;;AACU,EAAA,cAAc,CAAC,OAAD,EAAiB;AACvC,WAAO,KAAI,kBAAJ,EAAY,KAAK,IAAjB,EAAuB,IAAvB,EAA6B,KAAK,4BAAlC,CAAP;AACD;;AAEO,SAAO,qCAAP,CAA6C,OAA7C,EAA4E;AAClF,WAAO,OAAO,IAAI,IAAX,GAAkB,MAAM,CAAC,MAAP,CAAc,IAAd,CAAlB,GAAwC,OAA/C;AACD;;AAIS,EAAA,cAAc,GAAA;AACtB,UAAM,QAAQ,GAAG,KAAK,gBAAL,EAAjB;;AACA,QAAI,oCAAgB,QAAhB,CAAJ,EAA+B;AAC7B,yBAAI,IAAJ,CAAS;AAAC,QAAA,MAAM,EAAE;AAAT,OAAT,EAAsD,8CAAtD;;AACA,aAAO,EAAP;AACD,KAHD,MAIK;AACH,aAAO,QAAS,CAAC,IAAV,EAAP;AACD;AACF;;AAES,EAAA,UAAU,CAAC,YAAD,EAA6B;AAC/C;AACA,UAAM,QAAQ,GAAG,aAAa,CAAC,YAAY,IAAI,IAAhB,GAAuB,IAAvB,GAA8B,OAAO,CAAC,GAAR,CAAY,YAAZ,CAA/B,EAA0D,OAAO,CAAC,GAAR,CAAY,QAAtE,CAA9B;AACA,WAAO,aAAa,CAAC,aAAa,CAAC,KAAK,IAAL,CAAU,MAAV,CAAiB,OAAlB,EAA2B,KAAK,4BAAL,CAAkC,OAA7D,CAAd,EAAqF,QAArF,CAApB;AACD;;AAES,EAAA,gBAAgB,GAAA;AACxB;AACA,WAAO,aAAa,CAAC,aAAa,CAAC,KAAK,IAAL,CAAU,MAAV,CAAiB,cAAlB,EAAkC,KAAK,4BAAL,CAAkC,cAApE,CAAd,EAAmG,OAAO,CAAC,GAAR,CAAY,gBAA/G,CAApB;AACD;;AAES,EAAA,gBAAgB,CAAC,MAAD,EAAiB,IAAjB,EAA2B;AACnD,WAAO,KAAK,eAAL,CAAqB,WAArB,IAAoC,IAAI,CAAC,IAAL,CAAU,MAAV,EAAkB,GAAG,KAAK,QAAL,CAAc,qBAAqB,GAAG,kCAAc,IAAd,EAAoB,KAAK,4BAAL,CAAkC,WAAtD,CAAkE,GAAG,KAAK,QAAL,KAAkB,kBAAS,GAA3B,GAAiC,EAAjC,GAAsC,WAAW,EAAjL,CAA3C;AACD;;AAED,EAAA,uBAAuB,CAAC,IAAD,EAAe,MAAf,EAAsC,IAAtC,EAAyD,gBAAzD,EAAyF;AAC9G,WAAO,KAAK,IAAL,CAAU,0BAAV,CAAqC;AAC1C,MAAA,IAD0C;AACpC,MAAA,gBADoC;AAClB,MAAA,MADkB;AACV,MAAA,IADU;AAE1C,MAAA,QAAQ,EAAE;AAFgC,KAArC,CAAP;AAID;;AAED,QAAM,IAAN,CAAW,MAAX,EAA2B,IAA3B,EAAuC,OAAvC,EAA+D,WAA/D,EAA4F;AAC1F,UAAM,SAAS,GAAG,KAAK,gBAAL,CAAsB,MAAtB,EAA8B,IAA9B,CAAlB;AACA,UAAM,KAAK,MAAL,CAAY,MAAZ,EAAoB,SAApB,EAA+B,KAAK,QAAL,CAAc,QAA7C,EAA+E,IAA/E,EAAqF,KAAK,4BAA1F,EAAwH,OAAxH,CAAN;AACA,SAAK,4BAAL,CAAkC,SAAlC,EAA6C,IAA7C,EAAmD,OAAnD,EAA4D,WAA5D;AACD;;AAES,EAAA,4BAA4B,CAAC,SAAD,EAAoB,IAApB,EAAgC,OAAhC,EAAwD,WAAxD,EAAqF;AACzH,QAAI,OAAO,CAAC,IAAR,CAAa,EAAE,IAAI,CAAC,EAAE,CAAC,gBAAvB,KAA4C,IAAhD,EAAsD;AACpD,MAAA,gBAAgB,CAAC,iBAAjB,CAAmC,OAAnC,EAA4C,WAA5C,EAAyD,SAAzD,EAAoE,IAApE;AACA;AACD;;AAED,IAAA,WAAW,CAAC,GAAZ,CAAgB,YAAW;AACzB;AACA,YAAM,cAAc,GAAG,KAAI,+BAAJ,EAAqB,KAAK,IAAL,CAAU,iBAA/B,CAAvB;AACA,MAAA,gBAAgB,CAAC,iBAAjB,CAAmC,OAAnC,EAA4C,cAA5C,EAA4D,SAA5D,EAAuE,IAAvE;AACA,YAAM,cAAc,CAAC,UAAf,EAAN;;AAEA,WAAK,MAAM,MAAX,IAAqB,OAArB,EAA8B;AAC5B,YAAI,CAAC,MAAM,CAAC,gBAAZ,EAA8B;AAC5B,gBAAM,MAAM,CAAC,KAAP,CAAa,SAAb,EAAwB,IAAxB,CAAN;AACD;AACF;AACF,KAXD;AAYD;;AAEO,SAAO,iBAAP,CAAyB,OAAzB,EAAiD,WAAjD,EAAgF,SAAhF,EAAmG,IAAnG,EAA6G;AACnH,SAAK,MAAM,MAAX,IAAqB,OAArB,EAA8B;AAC5B,UAAI,MAAM,CAAC,gBAAX,EAA6B;AAC3B,QAAA,WAAW,CAAC,OAAZ,CAAoB,MAAM,CAAC,KAAP,CAAa,SAAb,EAAwB,IAAxB,CAApB;AACD;AACF;AACF;;AAEO,EAAA,oBAAoB,CAAC,WAAD,EAAuB,SAAvB,EAA0C,OAA1C,EAAyE;AACnG,UAAM,IAAI,GAAG,WAAW,GAAG,KAAK,eAAL,CAAqB,SAArB,CAAH,GAAsC,KAAK,QAAL,KAAkB,kBAAS,GAA3B,GAAiC,IAAI,CAAC,IAAL,CAAU,SAAV,EAAqB,GAAG,KAAK,OAAL,CAAa,eAAe,MAApD,EAA4D,UAA5D,CAAjC,GAA2G,SAAzK;AACA,WAAO,oCAAgB,KAAK,MAArB,EAA6B,WAAW,GAAG,gBAAH,GAAsB,YAA9D,EAA4E,IAA5E,EAAkF,OAAlF,CAAP;AACD;;AAED,EAAA,4BAA4B,CAAC,MAAD,EAAiB,IAAjB,EAA6B,kBAA7B,EAA6E;AACvG,WAAO;AACL,MAAA,aAAa,EAAE,EAAE,IAAI,KAAK,WAAL,CAAiB,EAAjB,EAAqB,IAAI,IAAI,IAAR,GAAe,IAAf,GAAsB,oBAAK,IAAL,CAA3C,EAAuD;AAAC,cAAM;AAAP,OAAvD,CADhB;AAEL,MAAA,kBAFK;AAGL,MAAA,YAAY,EAAE,MAHT;AAIL,MAAA,UAAU,EAAE,KAAK;AAJZ,KAAP;AAMD;;AAES,QAAM,MAAN,CAAa,MAAb,EAA6B,SAA7B,EAAgD,YAAhD,EAAoF,IAApF,EAAgG,4BAAhG,EAAkI,OAAlI,EAA0J,IAAA,GAAgB,IAA1K,EAAgL,oBAAA,GAAgC,KAAhN,EAAqN;AAC7N,QAAI,KAAK,eAAL,CAAqB,WAArB,IAAoC,IAAxC,EAA8C;AAC5C;AACD;;AAED,QAAI,KAAK,IAAL,CAAU,iBAAV,CAA4B,SAAhC,EAA2C;AACzC;AACD;;AAED,UAAM,KAAK,IAAL,CAAU,sBAAV,CAAiC,KAAK,QAAtC,EAAgD,IAAhD,CAAN;;AAEA,QAAI,KAAK,IAAL,CAAU,iBAAV,CAA4B,SAAhC,EAA2C;AACzC;AACD;;AAED,UAAM,SAAS,GAAG,KAAK,IAAL,CAAU,SAA5B;;AACA,uBAAI,IAAJ,CAAS;AACP,MAAA,QAAQ,EAAE,YADH;AAEP,MAAA,IAAI,EAAE,oBAAK,IAAL,CAFC;AAGP,OAAC,GAAG,SAAS,CAAC,IAAI,EAAlB,GAAuB,SAAS,CAAC,OAH1B;AAIP,MAAA,SAAS,EAAE,mBAAI,QAAJ,CAAa,SAAb;AAJJ,KAAT,EAKG,WALH;;AAOA,UAAM,SAAS,CAAC,gCAAV,CAA2C;AAC/C,MAAA,QAAQ,EAAE,IADqC;AAE/C,MAAA,SAF+C;AAG/C,MAAA,YAH+C;AAI/C,MAAA,IAAI,EAAE,oBAAK,IAAL,CAJyC;AAK/C,MAAA,OAAO,EAAE,SAAS,CAAC;AAL4B,KAA3C,CAAN;AAQA,UAAM,eAAe,GAAqB,EAA1C;;AAEA,UAAM,qBAAqB,GAAI,QAAD,IAAwC;AACpE,UAAI,QAAQ,IAAI,IAAhB,EAAsB;AACpB,aAAK,MAAM,OAAX,IAAsB,QAAtB,EAAgC;AAC9B,UAAA,OAAO,CAAC,qBAAR,CAA8B,eAA9B,EAA+C,KAAK,IAAL,CAAU,UAAzD;AACD;AACF;AACF,KAND;;AAQA,UAAM,sBAAsB,GAAG,KAAK,4BAAL,CAAkC,MAAlC,EAA0C,IAA1C,EAAgD,4BAAhD,CAA/B;AACA,UAAM,aAAa,GAAG,sBAAsB,CAAC,aAA7C;AACA,UAAM,qBAAqB,GAAG,KAAK,oBAAL,CAA0B,IAA1B,EAAgC,SAAhC,EAA2C,sBAA3C,CAA9B;AACA,IAAA,qBAAqB,CAAC,qBAAD,CAArB;AACA,UAAM,iBAAiB,GAAG,KAAK,oBAAL,CAA0B,KAA1B,EAAiC,SAAjC,EAA4C,sBAA5C,CAA1B;AACA,IAAA,qBAAqB,CAAC,iBAAD,CAArB;AAEA,UAAM,WAAW,GAAqB;AACpC,MAAA,SADoC;AACzB,MAAA,MADyB;AACjB,MAAA,IADiB;AACX,MAAA,OADW;AAEpC,MAAA,QAAQ,EAAE,IAF0B;AAGpC,MAAA,oBAAoB,EAAE;AAHc,KAAtC;AAMA,UAAM,WAAW,GAAG,MAAM,KAAK,kBAAL,CAAwB,4BAAxB,CAA1B;AACA,UAAM,aAAa,GAAG,KAAK,QAAL,KAAkB,kBAAS,GAA3B,GAAiC,IAAI,CAAC,IAAL,CAAU,SAAV,EAAqB,SAAS,CAAC,gBAA/B,EAAiD,UAAjD,EAA6D,WAA7D,CAAjC,GAA8G,kCAAgB,SAAhB,IAA6B,IAAI,CAAC,IAAL,CAAU,SAAV,EAAqB,WAArB,CAA7B,GAAiE,SAArM;AACA,UAAM,WAAW,GAAG,KAAI,+BAAJ,EAAqB,KAAK,IAAL,CAAU,iBAA/B,CAApB;AACA,SAAK,YAAL,CAAkB,WAAlB,EAA+B,WAA/B,EAA4C,aAA5C,EAA2D,IAAI,CAAC,IAAL,CAAU,aAAV,EAAyB,KAAzB,CAA3D,EAA4F,WAA5F,EAAyG,4BAAzG,EAAuI,eAAvI,EAAwJ,aAAxJ;AACA,UAAM,WAAW,CAAC,UAAZ,EAAN;;AAEA,QAAI,KAAK,IAAL,CAAU,iBAAV,CAA4B,SAAhC,EAA2C;AACzC;AACD;;AAED,QAAI,SAAS,CAAC,oBAAV,IAAkC,IAAtC,EAA4C;AAC1C,YAAM,SAAS,CAAC,oBAAV,CAA+B;AACnC,QAAA,QAAQ,EAAE,IADyB;AAEnC,QAAA,SAFmC;AAGnC,QAAA,aAAa,EAAE,WAAW,IAAI,IAAf,IAAuB,oBAAvB,GAA8C,IAA9C,GAAqD,MAAM,8BAAY,aAAZ,EAA2B,WAAW,CAAC,eAAZ,GAA8B;AAAC,UAAA,eAAe,EAAE;AAAlB,SAA9B,GAAwD,IAAnF,CAHvC;AAInC,QAAA;AAJmC,OAA/B,CAAN;AAMD;;AAED,QAAI,KAAK,IAAL,CAAU,iBAAV,CAA4B,SAAhC,EAA2C;AACzC;AACD;;AAED,UAAM,wBAAwB,GAAG,KAAK,8BAAL,CAAoC,WAApC,CAAjC;AACA,UAAM,8BAAU,qBAAV,EAAiC,wBAAjC,CAAN;AACA,UAAM,8BAAU,iBAAV,EAA6B,wBAA7B,CAAN;;AAEA,QAAI,KAAK,IAAL,CAAU,iBAAV,CAA4B,SAAhC,EAA2C;AACzC;AACD;;AAED,UAAM,KAAK,IAAL,CAAU,SAAV,CAAoB,WAApB,CAAN;;AAEA,QAAI,SAAS,CAAC,SAAV,IAAuB,IAA3B,EAAiC;AAC/B,YAAM,SAAS,CAAC,SAAV,CAAoB,WAApB,CAAN;AACD;;AAED,UAAM,MAAM,GAAG,WAAW,IAAI,IAA9B;AACA,UAAM,KAAK,kBAAL,CAAwB,SAAxB,EAAmC,MAAnC,EAA2C,SAA3C,CAAN;;AACA,QAAI,IAAJ,EAAU;AACR,YAAM,KAAK,eAAL,CAAqB,MAArB,EAA6B,SAA7B,EAAwC,YAAxC,EAAsD,IAAtD,EAA4D,4BAA5D,EAA0F,OAA1F,CAAN;AACD;AACF;;AAES,QAAM,eAAN,CAAsB,MAAtB,EAAsC,SAAtC,EAAyD,YAAzD,EAA6F,IAA7F,EAAyG,4BAAzG,EAA2I,OAA3I,EAAiK;AACzK,UAAM,WAAW,GAAG,MAAM,KAAK,kBAAL,CAAwB,4BAAxB,CAA1B;AACA,UAAM,MAAM,GAAG,WAAW,IAAI,IAA9B;AACA,UAAM,WAAW,GAAG;AAClB,MAAA,SADkB;AAElB,MAAA,MAFkB;AAGlB,MAAA,IAHkB;AAIlB,MAAA,OAJkB;AAKlB,MAAA,QAAQ,EAAE,IALQ;AAMlB,MAAA,oBAAoB,EAAE;AANJ,KAApB;AAQA,UAAM,KAAK,OAAL,CAAa,WAAb,EAA0B,MAA1B,CAAN;AACA,UAAM,SAAS,GAAG,eAAe,CAAC,KAAK,MAAL,CAAY,SAAb,EAAwB,WAAxB,CAAjC;;AACA,QAAI,SAAS,IAAI,IAAjB,EAAuB;AACrB,YAAM,OAAO,CAAC,OAAR,CAAgB,SAAS,CAAC,WAAD,CAAzB,CAAN;AACD;AACF,GA7PmC,CA+PpC;;;AACU,EAAA,8BAA8B,CAAC,WAAD,EAA8B;AACpE,WAAO,IAAP;AACD;;AAEO,EAAA,YAAY,CAAC,WAAD,EAAgC,WAAhC,EAAiE,YAAjE,EAAuF,kBAAvF,EAAmH,WAAnH,EAAkJ,4BAAlJ,EAAoL,eAApL,EAAuN,aAAvN,EAA8P;AAChR,UAAM,MAAM,GAAG,KAAK,IAAL,CAAU,MAAzB;AACA,UAAM,MAAM,GAAG,KAAK,MAApB;AACA,UAAM,iBAAiB,GAAG,WAAW,IAAI,IAAf,IAAuB,8CAAsB,KAAK,IAA3B,CAAjD;AAEA,UAAM,YAAY,GAAG,wCAAoB,MAApB,EAA4B,kBAA5B,EAAgD,aAAhD,EAA+D,4BAA/D,EAA6F,IAA7F,EAAmG,WAAW,CAAC,MAA/G,EAAuH,iBAAvH,CAArB;;AACA,QAAI,eAAe,CAAC,MAAhB,GAAyB,CAA7B,EAAgC;AAC9B,WAAK,MAAM,OAAX,IAAsB,YAAtB,EAAoC;AAClC,QAAA,OAAO,CAAC,eAAR,GAA0B,eAA1B;AACD;AACF;;AAED,UAAM,SAAS,GAAG,KAAK,IAAL,CAAU,SAA5B;AACA,UAAM,WAAW,GAAG,0CAAkB,MAAlB,EAA0B,MAA1B,EAAkC,iBAAiB,GAAG;AACxE,MAAA,YAAY,EAAE,KAAK,IAAL,CAAU,QAAV,CAAmB,IADuC;AAExE,MAAA,IAAI,EAAE,+CAFkE;AAGxE,SAAG,MAAM,CAAC;AAH8D,KAAH,GAInE,MAAM,CAAC,aAJS,EAIM,SAAS,CAAC,iBAAV,IAA+B,IAA/B,GAAsC,IAAtC,GAA6C,SAAS,CAAC,iBAAV,EAJnD,CAApB;;AAMA,UAAM,gBAAgB,GAAI,QAAD,IAAiC;AACxD,aAAO,sCAAgB,QAAhB,EAA0B,KAAK,IAAL,CAAU,kBAAV,GAA+B,IAA/B,GAAsC,WAAhE,EAA6E,IAA7E,EAAmF,iBAAnF,EACJ,IADI,CACC,MAAM,MAAN,IAAe;AACnB,YAAI,CAAC,KAAK,IAAL,CAAU,kBAAX,IAAiC,CAAC,KAAK,IAAL,CAAU,+BAAhD,EAAiF;AAC/E,gBAAM,iBAAiB,GAAG,6CAAyB,MAAzB,EAAiC,kBAAjC,EAAqD,aAArD,EAAoE,4BAApE,EAAkG,KAAK,IAAvG,CAA1B;AACA,UAAA,MAAM,GAAG,MAAM,CAAC,MAAP,CAAc,MAAM,gDAA0B,IAA1B,EAAgC,iBAAhC,CAApB,CAAT;AACD;;AACD,eAAO,MAAM,CAAC,MAAP,CAAc,EAAE,IAAI,EAAE,CAAC,KAAH,CAAS,MAAT,GAAkB,CAAtC,CAAP;AACD,OAPI,CAAP;AAQD,KATD;;AAWA,QAAI,KAAK,IAAL,CAAU,kBAAd,EAAkC;AAChC,MAAA,WAAW,CAAC,OAAZ,CAAoB,uBAAgB,IAAhB,CAAqB,gBAAgB,CAAC,CAAC,KAAI,0BAAJ,EAAgB,MAAhB,EAAwB,YAAxB,EAAsC,aAAtC,CAAD,CAAD,CAArC,EAA+F,EAAE,IAAI,mCAAa,EAAb,EAAiB,KAAK,IAAtB,EAA4B,WAA5B,CAArG,CAApB;AACD,KAFD,MAGK,IAAI,WAAW,IAAI,IAAnB,EAAyB;AAC5B;AACA;AACA;AACA,YAAM,wBAAwB,GAAG,KAAK,8BAAL,CAAoC,WAApC,CAAjC;;AACA,YAAM,mBAAmB,GAAoB,IAAI,IAAG;AAClD,YAAI,wBAAwB,IAAI,IAAhC,EAAsC;AACpC,gBAAM,MAAM,GAAG,wBAAwB,CAAC,IAAD,CAAvC;;AACA,cAAI,MAAM,IAAI,IAAd,EAAoB;AAClB,mBAAO,MAAP;AACD;AACF;;AACD,eAAO,WAAW,CAAC,IAAD,CAAlB;AACD,OARD;;AAUA,MAAA,WAAW,CAAC,OAAZ,CAAoB,uBAAgB,IAAhB,CAAqB,gBAAgB,CAAC,YAAD,CAArC,EAAqD,EAAE,IAAI,mCAAa,EAAb,EAAiB,KAAK,IAAtB,EAA4B,mBAA5B,CAA3D,CAApB;AACD,KAhBI,MAiBA;AACH,YAAM,aAAa,GAAG,oCAAgB,MAAhB,EAAwB,YAAxB,EAAsC,kBAAtC,EAA0D;AAC9E,QAAA,aAD8E;AAE9E,QAAA,kBAAkB,EAAE,4BAF0D;AAG9E,QAAA,YAAY,EAAE,WAAW,CAAC,MAHoD;AAI9E,QAAA,UAAU,EAAE;AAJkE,OAA1D,CAAtB;AAMA,YAAM,WAAW,GAAG,aAAa,IAAI,IAAjB,GAAwB,IAAxB,GAA+B,aAAa,CAAC,CAAD,CAAhE;AACA,MAAA,WAAW,CAAC,OAAZ,CAAoB,gBAAgB,CAAC,YAAD,CAAhB,CACjB,IADiB,CACZ,MAAM,QAAN,IAAiB;AACrB,aAAK,MAAM,OAAX,IAAsB,QAAtB,EAAgC;AAC9B,gBAAM,qCAAe,WAAf,EAA4B,OAA5B,CAAN;AACD;;AAED,cAAM,KAAI,wBAAJ,EAAiB,MAAjB,EAAyB,YAAzB,EAAuC,WAAvC,EAAoD,WAAW,IAAI,IAAf,GAAsB,IAAtB,GAA6B,WAAW,CAAC,YAAZ,EAAjF,EACH,IADG,CACE,QADF,EACY,IADZ,CAAN;AAED,OARiB,CAApB;AASD;AACF,GAxUmC,CA0UpC;;;AACU,EAAA,OAAO,CAAC,WAAD,EAAgC,MAAhC,EAA+C;AAC9D,WAAO,OAAO,CAAC,OAAR,EAAP;AACD;;AAED,QAAM,WAAN,GAAiB;AACf,WAAO,IAAP;AACD;;AAEO,QAAM,kBAAN,CAAyB,kBAAzB,EAA+C;AACrD,QAAI,CAAC,kCAAgB,KAAK,IAAL,CAAU,SAA1B,CAAL,EAA2C;AACzC,aAAO,IAAP;AACD;;AAED,aAAS,YAAT,CAAsB,IAAtB,EAAkC;AAChC,aAAO,GAAG,IAAI,wEAAd;AACD;;AAED,UAAM,aAAa,GAAG,KAAK,MAA3B;;AACA,QAAI,aAAa,CAAC,aAAD,CAAb,IAAgC,IAApC,EAA0C;AACxC,YAAM,IAAI,KAAJ,CAAU,YAAY,CAAC,aAAD,CAAtB,CAAN;AACD;;AACD,QAAI,aAAa,CAAC,iBAAD,CAAb,IAAoC,IAAxC,EAA8C;AAC5C,YAAM,IAAI,KAAJ,CAAU,YAAY,CAAC,iBAAD,CAAtB,CAAN;AACD;;AAED,UAAM,gBAAgB,GAAG,kBAAkB,CAAC,IAA5C;AACA,UAAM,MAAM,GAAG,gBAAgB,IAAI,IAApB,GAA2B,KAAK,MAAL,CAAY,IAAvC,GAA8C,gBAA7D;;AACA,QAAI,MAAM,KAAK,KAAf,EAAsB;AACpB,YAAM,WAAW,GAAG,MAAM,sBAAW,IAAI,CAAC,IAAL,CAAU,KAAK,IAAL,CAAU,MAApB,EAA4B,UAA5B,CAAX,CAA1B,CADoB,CAEpB;;AACA,UAAI,WAAW,IAAI,IAAf,IAAuB,CAAC,WAAW,CAAC,MAAZ,EAA5B,EAAkD;AAChD,2BAAI,IAAJ,CAAS;AACP,UAAA,QAAQ,EAAE;AADH,SAAT,EAEG,2DAFH;AAGD;;AACD,aAAO,IAAP;AACD;;AAED,QAAI,MAAM,IAAI,IAAV,IAAkB,MAAM,KAAK,IAAjC,EAAuC;AACrC,aAAO,EAAP;AACD;;AAED,SAAK,MAAM,IAAX,IAAmB,CAAC,WAAD,EAAc,QAAd,CAAnB,EAA4C;AAC1C,UAAK,MAAc,CAAC,IAAD,CAAd,IAAwB,IAA7B,EAAmC;AACjC,cAAM,IAAI,KAAJ,CAAU,YAAY,CAAC,QAAQ,IAAI,EAAb,CAAtB,CAAN;AACD;AACF;;AACD,WAAO,+BAAW,EAAX,EAAe,MAAf,CAAP;AACD;;AAEM,EAAA,iBAAiB,CAAC,IAAD,EAAa;AACnC,WAAO,IAAI,CAAC,OAAL,CAAa,KAAK,UAAlB,EAA8B,IAA9B,CAAP;AACD;;AAEM,EAAA,yBAAyB,CAAC,SAAD,EAAkB;AAChD,WAAO,SAAP;AACD;;AAED,EAAA,eAAe,CAAC,SAAD,EAAkB;AAC/B,QAAI,KAAK,QAAL,KAAkB,kBAAS,GAA/B,EAAoC;AAClC,aAAO,KAAK,oBAAL,CAA0B,SAA1B,CAAP;AACD,KAFD,MAGK,IAAI,kCAAgB,KAAK,IAAL,CAAU,SAA1B,CAAJ,EAA0C;AAC7C,aAAO,IAAI,CAAC,IAAL,CAAU,SAAV,EAAqB,WAArB,CAAP;AACD,KAFI,MAGA;AACH,aAAO,SAAP;AACD;AACF;;AAEM,EAAA,oBAAoB,CAAC,SAAD,EAAkB;AAC3C,WAAO,IAAI,CAAC,IAAL,CAAU,SAAV,EAAqB,GAAG,KAAK,OAAL,CAAa,eAAe,MAApD,EAA4D,UAA5D,EAAwE,WAAxE,CAAP;AACD;;AAEO,QAAM,kBAAN,CAAyB,YAAzB,EAA+C,IAA/C,EAA6D,aAA7D,EAAoF,MAApF,EAAmG;AACzG,UAAM,YAAY,GAAG,IAAI,CAAC,QAAL,CAAc,KAAK,IAAL,CAAU,MAAxB,EAAgC,IAAI,CAAC,OAAL,CAAa,KAAK,IAAL,CAAU,MAAvB,EAA+B,IAA/B,CAAhC,CAArB;;AACA,QAAI,MAAJ,EAAY;AACV,YAAM,2CAAmB,IAAI,CAAC,IAAL,CAAU,YAAV,EAAwB,UAAxB,CAAnB,EAAwD,YAAxD,EAAsE,aAAtE,CAAN;AACA;AACD;;AAED,UAAM,UAAU,GAAG,IAAI,CAAC,KAAL,CAAW,IAAX,CAAnB,CAPyG,CAQzG;AACA;;AACA,QAAI,UAAU,CAAC,GAAX,CAAe,QAAf,CAAwB,OAAxB,CAAJ,EAAsC;AACpC;AACA;AACA;AACA,YAAM,SAAS,GAAkB,UAAU,CAAC,GAAX,CAAe,KAAf,CAAqB,IAAI,CAAC,GAA1B,CAAjC;AACA,UAAI,iBAAiB,GAAG,CAAxB;AACA,MAAA,SAAS,CAAC,IAAV,CAAe,CAAC,QAAD,EAAmB,KAAnB,KAAoC;AACjD,QAAA,iBAAiB,GAAG,KAApB;AACA,eAAO,QAAQ,CAAC,QAAT,CAAkB,OAAlB,CAAP;AACD,OAHD;AAIA,YAAM,QAAQ,GAAG,IAAI,CAAC,IAAL,CAAU,GAAG,SAAS,CAAC,KAAV,CAAgB,CAAhB,EAAmB,iBAAiB,GAAG,CAAvC,CAAb,CAAjB;AACA,UAAI,QAAQ,GAAG,SAAS,CAAC,MAAV,GAAoB,iBAAiB,GAAG,CAAxC,GAA6C,IAAI,CAAC,IAAL,CAAU,KAAV,CAAgB,SAAS,CAAC,KAAV,CAAgB,iBAAiB,GAAG,CAApC,CAAhB,CAA7C,GAAuG,EAAtH;AACA,MAAA,QAAQ,IAAI,IAAI,CAAC,IAAL,CAAU,QAAV,EAAoB,UAAU,CAAC,IAA/B,CAAZ;AACA,YAAM,2CAAmB,IAAI,CAAC,IAAL,CAAU,YAAV,EAAwB,KAAxB,EAA+B,QAA/B,CAAnB,EAA6D,QAA7D,EAAuE,aAAvE,CAAN;AACD,KAdD,MAeK;AACH,YAAM,QAAQ,GAAG,IAAI,CAAC,IAAL,CAAU,YAAV,EAAwB,KAAxB,EAA+B,YAA/B,CAAjB;AACA,YAAM,OAAO,GAAG,MAAM,sBAAW,QAAX,CAAtB;;AACA,UAAI,OAAO,IAAI,IAAf,EAAqB;AACnB,cAAM,IAAI,KAAJ,CAAU,GAAG,aAAa,KAAK,QAAQ,qDAAvC,CAAN;AACD,OAFD,MAGK;AACH;AACA,YAAI,CAAC,OAAO,CAAC,MAAR,EAAL,EAAuB;AACrB,gBAAM,IAAI,KAAJ,CAAU,GAAG,aAAa,KAAK,QAAQ,oDAAvC,CAAN;AACD;AACF;AACF;AACF;;AAEO,QAAM,kBAAN,CAAyB,SAAzB,EAA4C,MAA5C,EAA6D,SAA7D,EAAiF;AACvF,UAAM,OAAO,GAAG,MAAM,sBAAW,SAAX,CAAtB;;AACA,QAAI,OAAO,IAAI,IAAf,EAAqB;AACnB,YAAM,IAAI,KAAJ,CAAU,qBAAqB,SAAS,qDAAxC,CAAN;AACD,KAFD,MAGK;AACH;AACA,UAAI,CAAC,OAAO,CAAC,WAAR,EAAL,EAA4B;AAC1B,cAAM,IAAI,KAAJ,CAAU,qBAAqB,SAAS,yDAAxC,CAAN;AACD;AACF;;AAED,UAAM,YAAY,GAAG,KAAK,eAAL,CAAqB,SAArB,CAArB;AACA,UAAM,QAAQ,GAAG,CAAC,SAAS,CAAC,WAAV,IAAyB,IAAzB,GAAgC,IAAhC,GAAuC,SAAS,CAAC,WAAV,CAAsB,KAAK,QAA3B,CAAxC,KAAiF,KAAK,IAAL,CAAU,QAAV,CAAmB,IAApG,IAA4G,UAA7H;AACA,UAAM,KAAK,kBAAL,CAAwB,YAAxB,EAAsC,QAAtC,EAAgD,wBAAhD,EAA0E,MAA1E,CAAN;AACA,UAAM,KAAK,kBAAL,CAAwB,YAAxB,EAAsC,cAAtC,EAAsD,aAAtD,EAAqE,MAArE,CAAN;AACD,GA7cmC,CA+cpC;;;AACA,EAAA,uBAAuB,CAAC,aAAD,EAA+B,GAA/B,EAA4C,IAA5C,EAAgE,eAAA,GAA2B,IAA3F,EAAiG,WAAjG,EAAuH,WAAA,GAAsB,mCAA7I,EAAgL;AACrM,WAAO,+BAA+B,CAAC,aAAD,EAAgB,MAAM,KAAK,mBAAL,CAAyB,WAAzB,EAAsC,GAAtC,EAA2C,eAAe,IAAI,IAAI,KAAK,mCAAsB,WAAtB,CAA5B,GAAiE,IAAjE,GAAwE,IAAnH,CAAtB,CAAtC;AACD;;AAED,EAAA,yBAAyB,CAAC,qBAAD,EAAkE,GAAlE,EAA+E,IAA/E,EAAmG,cAAnG,EAA4H,eAAA,GAA2B,IAAvJ,EAA6J,WAA7J,EAAiL;AACxM,QAAI,OAAO,GAAG,qBAAqB,IAAI,IAAzB,GAAgC,IAAhC,GAAuC,qBAAqB,CAAC,YAA3E;;AACA,QAAI,OAAO,IAAI,IAAf,EAAqB;AACnB,MAAA,OAAO,GAAG,KAAK,4BAAL,CAAkC,YAAlC,IAAkD,KAAK,MAAL,CAAY,YAAxE;AACD;;AAED,QAAI,OAAO,IAAI,IAAf,EAAqB;AACnB;AACA,MAAA,OAAO,GAAG,cAAc,IAAI,0CAA5B;AACD,KAHD,MAGO;AACL;AACA;AACA,MAAA,eAAe,GAAG,KAAK,QAAL,KAAkB,kBAAS,GAA7C;AACD;;AACD,WAAO,KAAK,mBAAL,CAAyB,OAAzB,EAAkC,GAAlC,EAAuC,eAAe,IAAI,IAAI,KAAK,mCAAsB,WAAtB,CAA5B,GAAiE,IAAjE,GAAwE,IAA/G,CAAP;AACD;;AAED,EAAA,+BAA+B,CAAC,qBAAD,EAAkE,GAAlE,EAA+E,IAA/E,EAAiG;AAC9H;AACA,WAAO,KAAK,yBAAL,CAA+B,qBAA/B,EAAsD,GAAtD,EAA2D,IAA3D,EAAiE,0CAAjE,EAA6G,IAA7G,CAAP;AACD;;AAEO,EAAA,mBAAmB,CAAC,OAAD,EAAe,GAAf,EAA4B,IAA5B,EAAyD;AAClF,UAAM,QAAQ,GAAG,IAAI,IAAI,IAAR,GAAe,IAAf,GAAsB,iCAAoB,IAApB,EAA0B,GAA1B,CAAvC;AACA,WAAO,KAAK,WAAL,CAAiB,OAAjB,EAA0B,QAA1B,EAAoC;AACzC,MAAA;AADyC,KAApC,CAAP;AAGD;;AAED,EAAA,WAAW,CAAC,OAAD,EAAkB,IAAlB,EAAwC,KAAA,GAAa,EAArD,EAAyD,sBAAsB,GAAG,IAAlF,EAAsF;AAC/F,WAAO,kCAAc,OAAd,EAAuB,IAAvB,EAA6B,KAAK,OAAlC,EAA2C;AAAC,MAAA,EAAE,EAAE,KAAK,QAAL,CAAc,qBAAnB;AAA0C,SAAG;AAA7C,KAA3C,EAAgG,sBAAhG,CAAP;AACD;;AAED,EAAA,aAAa,CAAC,GAAD,EAAqB,UAArB,EAA4D,UAA5D,EAA+E;AAC1F,UAAM,MAAM,GAAG,GAAG,IAAI,IAAP,GAAc,EAAd,GAAmB,IAAI,GAAG,EAAzC;AACA,UAAM,SAAS,GAAG,GAAG,KAAK,KAAR,GAAgB,GAAhB,GAAsB,GAAxC;AACA,WAAO,GAAG,UAAU,GAAG,KAAK,OAAL,CAAa,IAAhB,GAAuB,KAAK,OAAL,CAAa,eAAe,GAAG,SAAS,GAAG,KAAK,OAAL,CAAa,OAAO,GAAG,UAAU,IAAI,IAAd,GAAqB,EAArB,GAA0B,GAAG,SAAS,GAAG,UAAU,EAAE,GAAG,MAAM,EAA3K;AACD;;AAED,EAAA,WAAW,CAAC,MAAD,EAAe;AACxB,WAAO,KAAK,IAAL,CAAU,cAAV,CAAyB,WAAzB,CAAqC;AAAC,MAAA;AAAD,KAArC,CAAP;AACD;;AAED,MAAI,gBAAJ,GAAoB;AAClB,WAAO,4BAAQ,KAAK,MAAL,CAAY,gBAApB,EAAsC,MAAtC,CAA6C,4BAAQ,KAAK,4BAAL,CAAkC,gBAA1C,CAA7C,CAAP;AACD;;AAED,QAAM,WAAN,CAAkB,MAAlB,EAAqD,GAAG,KAAxD,EAA4E;AAC1E,UAAM,YAAY,GAAG,KAAK,IAAL,CAAU,iBAA/B;;AACA,QAAI,MAAM,KAAK,SAAf,EAA0B;AACxB,YAAM,YAAY,GAAG,MAAM,KAAK,YAAhC;;AACA,WAAK,MAAM,IAAX,IAAmB,KAAnB,EAA0B;AACxB,YAAI,YAAY,CAAC,QAAb,CAAsB,IAAtB,CAAJ,EAAiC;AAC/B,iBAAO,IAAI,CAAC,IAAL,CAAU,YAAV,EAAwB,IAAxB,CAAP;AACD;AACF;AACF,KAPD,MAQK,IAAI,MAAM,IAAI,IAAV,IAAkB,CAAC,oCAAgB,MAAhB,CAAvB,EAAgD;AACnD,YAAM,YAAY,GAAG,MAAM,KAAK,YAAhC;;AACA,UAAI,YAAY,CAAC,QAAb,CAAsB,MAAtB,CAAJ,EAAmC;AACjC,eAAO,IAAI,CAAC,IAAL,CAAU,YAAV,EAAwB,MAAxB,CAAP;AACD;;AAED,UAAI,CAAC,GAAG,IAAI,CAAC,OAAL,CAAa,YAAb,EAA2B,MAA3B,CAAR;;AACA,UAAI,OAAM,sBAAW,CAAX,CAAN,KAAuB,IAA3B,EAAiC;AAC/B,QAAA,CAAC,GAAG,IAAI,CAAC,OAAL,CAAa,KAAK,UAAlB,EAA8B,MAA9B,CAAJ;;AACA,YAAI,OAAM,sBAAW,CAAX,CAAN,KAAuB,IAA3B,EAAiC;AAC/B,gBAAM,KAAI,wCAAJ,EAA8B,mCAAmC,MAAM,uBAAuB,YAAY,wCAAwC,KAAK,UAAU,IAAjK,CAAN;AACD;AACF;;AACD,aAAO,CAAP;AACD;;AACD,WAAO,IAAP;AACD;;AAED,MAAI,gBAAJ,GAAoB;AAClB,UAAM,wBAAwB,GAAG,KAAK,4BAAL,CAAkC,gBAAnE;AACA,WAAO,CAAC,wBAAwB,IAAI,IAA5B,GAAmC,KAAK,MAAL,CAAY,gBAA/C,GAAkE,wBAAnE,KAAgG,KAAvG;AACD;;AAES,QAAM,gBAAN,CAAuB,MAAvB,EAAyC;AACjD,UAAM,MAAM,GAAG,MAAM,KAAK,WAAL,CAAiB,4BAAQ,KAAK,4BAAL,CAAkC,IAAlC,IAA0C,KAAK,MAAL,CAAY,IAA9D,CAAjB,EAAsF,EAAtF,EAA0F,MAA1F,CAArB;;AACA,QAAI,MAAM,CAAC,MAAP,KAAkB,CAAtB,EAAyB;AACvB,YAAM,SAAS,GAAG,KAAK,IAAL,CAAU,SAA5B;;AACA,UAAI,SAAS,CAAC,cAAV,IAA4B,IAAhC,EAAsC;AACpC,eAAO,SAAS,CAAC,cAAV,CAAyB,KAAK,QAA9B,CAAP;AACD;;AAED,yBAAI,IAAJ,CAAS;AAAC,QAAA,MAAM,EAAE;AAAT,OAAT,EAAkD,WAAW,qBAAqB,CAAC,SAAS,CAAC,IAAX,CAAgB,eAAlG;;AACA,aAAO,KAAK,uBAAL,EAAP;AACD,KARD,MASK;AACH,aAAO,MAAM,CAAC,CAAD,CAAN,CAAU,IAAjB;AACD;AACF;;AAED,EAAA,uBAAuB,GAAA;AACrB,UAAM,SAAS,GAAG,KAAK,IAAL,CAAU,SAA5B;AACA,WAAO,SAAS,CAAC,cAAV,IAA4B,IAA5B,GAAmC,IAAnC,GAA0C,SAAS,CAAC,cAAV,CAAyB,KAAK,QAA9B,CAAjD;AACD,GAvjBmC,CAyjBpC;;;AACA,QAAM,WAAN,CAAkB,OAAlB,EAA0C,eAA1C,EAA0E,YAA1E,EAAkG;AAChG,UAAM,IAAI,GAAG,CACX,MADW,EAEX,UAFW,EAEC,YAFD,EAGX,QAHW,EAGD,KAAK,iBAHJ,EAIX,QAJW,EAID,KAAK,UAJJ,EAKX,OALW,EAKF,IAAI,CAAC,OAAL,CAAa,KAAK,UAAlB,EAA8B,KAAK,MAAL,CAAY,WAAZ,CAA0B,MAAxD,EAAkE,SAAS,YAAY,EAAvF,CALE,CAAb;;AAOA,SAAK,MAAM,MAAX,IAAqB,OAArB,EAA8B;AAC5B,MAAA,IAAI,CAAC,IAAL,CAAU,SAAV,EAAqB,MAArB;AACD;;AACD,SAAK,MAAM,MAAX,IAAqB,eAArB,EAAsC;AACpC,MAAA,IAAI,CAAC,IAAL,CAAU,kBAAV,EAA8B,MAA9B;AACD;;AAED,UAAM,MAAM,GAAsB,MAAM,2CAAwB,IAAxB,CAAxC;AACA,UAAM,YAAY,GAAG,MAAM,CAAC,KAA5B;;AACA,QAAI,YAAY,IAAI,IAApB,EAA0B;AACxB,YAAM,KAAI,wCAAJ,EAA8B,YAA9B,EAA4C,MAAM,CAAC,SAAnD,CAAN;AACD;;AAED,QAAI,MAAM,CAAC,UAAX,EAAuB;AACrB,yBAAI,IAAJ,CAAS;AAAC,QAAA,MAAM,EAAE;AAAT,OAAT,EAAkD,WAAW,qBAAqB,CAAC,KAAK,IAAL,CAAU,SAAV,CAAoB,IAArB,CAA0B,eAA5G;AACD;;AAED,WAAO,MAAM,CAAC,KAAP,IAAgB,EAAvB;AACD;;AAplBmC;;;;AAsmBhC,SAAU,gBAAV,CAA2B,IAA3B,EAAuC;AAC3C,SAAO,oBAAoB,IAApB,CAAyB,IAAzB,CAAP;AACD;;AAEK,SAAU,+BAAV,CAA0C,aAA1C,EAAwE,gBAAxE,EAAsG;AAC1G;AACA,MAAI,aAAa,IAAI,IAArB,EAA2B;AACzB,QAAI,gBAAgB,CAAC,aAAD,CAApB,EAAqC;AACnC,aAAO,IAAP;AACD,KAHwB,CAKzB;;;AACA,IAAA,aAAa,GAAG,aAAa,CAAC,OAAd,CAAsB,IAAtB,EAA4B,GAA5B,CAAhB;;AACA,QAAI,gBAAgB,CAAC,aAAD,CAApB,EAAqC;AACnC,aAAO,aAAP;AACD;AACF;;AAED,SAAO,gBAAgB,EAAvB;AACD,C,CAED;;;AACM,SAAU,YAAV,CAAuB,GAAvB,EAAkC;AACtC,SAAO,GAAG,CAAC,UAAJ,CAAe,GAAf,IAAsB,GAAG,CAAC,SAAJ,CAAc,CAAd,CAAtB,GAAyC,GAAhD;AACD;;AAEK,SAAU,eAAV,CAA6B,QAA7B,EAAmD,IAAnD,EAA+D;AACnE,MAAI,QAAQ,IAAI,IAAZ,IAAoB,OAAO,QAAP,KAAoB,QAA5C,EAAsD;AACpD,WAAO,QAAP;AACD;;AAED,MAAI,CAAC,GAAG,QAAR;;AACA,MAAI,CAAC,CAAC,UAAF,CAAa,GAAb,CAAJ,EAAuB;AACrB,IAAA,CAAC,GAAG,IAAI,CAAC,OAAL,CAAa,CAAb,CAAJ;AACD;;AAED,MAAI;AACF,IAAA,CAAC,GAAG,OAAO,CAAC,OAAR,CAAgB,CAAhB,CAAJ;AACD,GAFD,CAGA,OAAO,CAAP,EAAU;AACR,8BAAM,CAAN;AACA,IAAA,CAAC,GAAG,IAAI,CAAC,OAAL,CAAa,CAAb,CAAJ;AACD,GAhBkE,CAkBnE;;;AACA,QAAM,CAAC,GAAG,OAAO,CAAC,CAAD,CAAjB;;AACA,QAAM,WAAW,GAAG,CAAC,CAAC,IAAD,CAArB;;AACA,MAAI,WAAW,IAAI,IAAnB,EAAyB;AACvB,WAAO,CAAC,CAAC,OAAF,IAAa,CAApB;AACD,GAFD,MAGK;AACH,WAAO,WAAP;AACD;AACF;;AAEK,SAAU,aAAV,CAAwB,EAAxB,EAAuD,EAAvD,EAAoF;AACxF,SAAO,EAAE,IAAI,IAAN,GAAa,EAAb,GAAkB,EAAzB;AACD;;AAED,SAAS,qBAAT,CAA+B,IAA/B,EAA2C;AACzC,SAAO,IAAI,CAAC,MAAL,CAAY,CAAZ,EAAe,WAAf,KAA+B,IAAI,CAAC,KAAL,CAAW,CAAX,CAAtC;AACD;;AAEK,SAAU,yCAAV,CAAoD,QAApD,EAAmF;AACvF,MAAI,QAAQ,CAAC,QAAT,KAAsB,kBAAS,KAA/B,IAAwC,QAAQ,CAAC,MAAT,CAAgB,WAAhB,KAAgC,KAA5E,EAAmF;AACjF,WAAO,KAAP;AACD;;AAED,MAAI,OAAO,CAAC,QAAR,KAAqB,OAArB,IAAgC,8BAAU,OAAO,CAAC,GAAR,CAAY,aAAtB,CAApC,EAA0E;AACxE,WAAO,QAAQ,CAAC,MAAT,CAAgB,YAAhB,IAAgC,IAAhC,IAAwC,QAAQ,CAAC,MAAT,CAAgB,gBAAhB,IAAoC,IAAnF;AACD;;AACD,SAAO,KAAP;AACD,C","sourcesContent":["import BluebirdPromise from \"bluebird-lst\"\nimport { Arch, asArray, AsyncTaskManager, debug, DebugLogger, deepAssign, getArchSuffix, InvalidConfigurationError, isEmptyOrSpaces, log, isEnvTrue } from \"builder-util\"\nimport { defaultArchFromString, 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.platformSpecificBuildOptions.defaultArch)}${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>, sign: boolean = true, disableAsarIntegrity: boolean = false) {\n if (this.packagerOptions.prepackaged != null) {\n return\n }\n\n if (this.info.cancellationToken.cancelled) {\n return\n }\n\n await this.info.installAppDependencies(this.platform, arch);\n\n if (this.info.cancellationToken.cancelled) {\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 || disableAsarIntegrity ? 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 if (sign) {\n await this.doSignAfterPack(outDir, appOutDir, platformName, arch, platformSpecificBuildOptions, targets);\n }\n }\n\n protected async doSignAfterPack(outDir: string, appOutDir: string, platformName: ElectronPlatformName, arch: Arch, platformSpecificBuildOptions: DC, targets: Array<Target>) {\n const asarOptions = await this.computeAsarOptions(platformSpecificBuildOptions);\n const isAsar = asarOptions != null;\n const packContext = {\n appOutDir,\n outDir,\n arch,\n targets,\n packager: this,\n electronPlatformName: platformName\n };\n await this.signApp(packContext, isAsar);\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, skipDefaultArch: boolean = true, defaultArch?: string, safePattern: string = \"${name}-${version}-${arch}.${ext}\"): string | null {\n return computeSafeArtifactNameIfNeeded(suggestedName, () => this.computeArtifactName(safePattern, ext, skipDefaultArch && arch === defaultArchFromString(defaultArch) ? null : arch))\n }\n\n expandArtifactNamePattern(targetSpecificOptions: TargetSpecificOptions | null | undefined, ext: string, arch?: Arch | null, defaultPattern?: string, skipDefaultArch: boolean = true, defaultArch?: string): 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 } else {\n // https://github.com/electron-userland/electron-builder/issues/3510\n // always respect arch in user custom artifact pattern\n skipDefaultArch = this.platform === Platform.MAC\n }\n return this.computeArtifactName(pattern, ext, skipDefaultArch && arch === defaultArchFromString(defaultArch) ? 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, 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":""}
|
|
@@ -77,13 +77,14 @@ class ArchiveTarget extends _core().Target {
|
|
|
77
77
|
|
|
78
78
|
const format = this.name;
|
|
79
79
|
let defaultPattern;
|
|
80
|
+
const defaultArch = (0, _builderUtil().defaultArchFromString)(packager.platformSpecificBuildOptions.defaultArch);
|
|
80
81
|
|
|
81
82
|
if (packager.platform === _core().Platform.LINUX) {
|
|
82
83
|
// tslint:disable-next-line:no-invalid-template-strings
|
|
83
|
-
defaultPattern = "${name}-${version}" + (arch ===
|
|
84
|
+
defaultPattern = "${name}-${version}" + (arch === defaultArch ? "" : "-${arch}") + ".${ext}";
|
|
84
85
|
} else {
|
|
85
86
|
// tslint:disable-next-line:no-invalid-template-strings
|
|
86
|
-
defaultPattern = "${productName}-${version}" + (arch ===
|
|
87
|
+
defaultPattern = "${productName}-${version}" + (arch === defaultArch ? "" : "-${arch}") + "-${os}.${ext}";
|
|
87
88
|
}
|
|
88
89
|
|
|
89
90
|
const artifactName = packager.expandArtifactNamePattern(this.options, format, arch, defaultPattern, false);
|
|
@@ -128,7 +129,7 @@ class ArchiveTarget extends _core().Target {
|
|
|
128
129
|
updateInfo,
|
|
129
130
|
file: artifactPath,
|
|
130
131
|
// tslint:disable-next-line:no-invalid-template-strings
|
|
131
|
-
safeArtifactName: packager.computeSafeArtifactName(artifactName, format, arch, false, defaultPattern.replace("${productName}", "${name}")),
|
|
132
|
+
safeArtifactName: packager.computeSafeArtifactName(artifactName, format, arch, false, packager.platformSpecificBuildOptions.defaultArch, defaultPattern.replace("${productName}", "${name}")),
|
|
132
133
|
target: this,
|
|
133
134
|
arch,
|
|
134
135
|
packager,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/targets/ArchiveTarget.ts"],"names":[],"mappings":";;;;;;;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAEA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;;;;;AAEM,MAAO,aAAP,SAA6B,cAA7B,CAAmC;AAGvC,EAAA,WAAA,CAAY,IAAZ,EAAmC,MAAnC,EAAoE,QAApE,EAAsH,iBAAA,GAAoB,KAA1I,EAA+I;AAC7I,UAAM,IAAN;AADiC,SAAA,MAAA,GAAA,MAAA;AAAiC,SAAA,QAAA,GAAA,QAAA;AAAkD,SAAA,iBAAA,GAAA,iBAAA;AAF7G,SAAA,OAAA,GAAkC,KAAK,QAAL,CAAc,MAAd,CAA6B,KAAK,IAAlC,CAAlC;AAIR;;AAED,QAAM,KAAN,CAAY,SAAZ,EAA+B,IAA/B,EAAyC;AACvC,UAAM,QAAQ,GAAG,KAAK,QAAtB;;AACA,UAAM,KAAK,GAAG,QAAQ,CAAC,QAAT,KAAsB,iBAAS,GAA7C;;AACA,UAAM,MAAM,GAAG,KAAK,IAApB;AAEA,QAAI,cAAJ;;AACA,QAAI,QAAQ,CAAC,QAAT,KAAsB,iBAAS,KAAnC,EAA0C;AACxC;AACA,MAAA,cAAc,GAAG,wBAAwB,IAAI,KAAK,
|
|
1
|
+
{"version":3,"sources":["../../src/targets/ArchiveTarget.ts"],"names":[],"mappings":"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","sourcesContent":["import { Arch, defaultArchFromString } from \"builder-util\"\nimport * as path from \"path\"\nimport { Platform, Target, TargetSpecificOptions } from \"../core\"\nimport { copyFiles, getFileMatchers } from \"../fileMatcher\"\nimport { PlatformPackager } from \"../platformPackager\"\nimport { archive, tar } from \"./archive\"\nimport { appendBlockmap } from \"./differentialUpdateInfoBuilder\"\n\nexport class ArchiveTarget extends Target {\n readonly options: TargetSpecificOptions = (this.packager.config as any)[this.name]\n\n constructor(name: string, readonly outDir: string, private readonly packager: PlatformPackager<any>, private readonly isWriteUpdateInfo = false) {\n super(name)\n }\n\n async build(appOutDir: string, arch: Arch): Promise<any> {\n const packager = this.packager\n const isMac = packager.platform === Platform.MAC\n const format = this.name\n\n let defaultPattern: string\n const defaultArch: Arch = defaultArchFromString(packager.platformSpecificBuildOptions.defaultArch);\n if (packager.platform === Platform.LINUX) {\n // tslint:disable-next-line:no-invalid-template-strings\n defaultPattern = \"${name}-${version}\" + (arch === defaultArch ? \"\" : \"-${arch}\") + \".${ext}\"\n }\n else {\n // tslint:disable-next-line:no-invalid-template-strings\n defaultPattern = \"${productName}-${version}\" + (arch === defaultArch ? \"\" : \"-${arch}\") + \"-${os}.${ext}\"\n }\n\n const artifactName = packager.expandArtifactNamePattern(this.options, format, arch, defaultPattern, false)\n const artifactPath = path.join(this.outDir, artifactName)\n\n await packager.info.callArtifactBuildStarted({\n targetPresentableName: `${isMac ? \"macOS \" : \"\"}${format}`,\n file: artifactPath,\n arch,\n })\n let updateInfo: any = null\n if (format.startsWith(\"tar.\")) {\n await tar(packager.compression, format, artifactPath, appOutDir, isMac, packager.info.tempDirManager)\n }\n else {\n let withoutDir = !isMac\n let dirToArchive = appOutDir\n if (isMac) {\n dirToArchive = path.dirname(appOutDir)\n const fileMatchers = getFileMatchers(packager.config, \"extraDistFiles\", dirToArchive, packager.createGetFileMatchersOptions(this.outDir, arch, packager.platformSpecificBuildOptions))\n if (fileMatchers == null) {\n dirToArchive = appOutDir\n }\n else {\n await copyFiles(fileMatchers, null, true)\n withoutDir = true\n }\n }\n\n const archiveOptions = {\n compression: packager.compression,\n withoutDir,\n }\n await archive(format, artifactPath, dirToArchive, archiveOptions)\n\n if (this.isWriteUpdateInfo && format === \"zip\") {\n updateInfo = await appendBlockmap(artifactPath)\n }\n }\n\n await packager.info.callArtifactBuildCompleted({\n updateInfo,\n file: artifactPath,\n // tslint:disable-next-line:no-invalid-template-strings\n safeArtifactName: packager.computeSafeArtifactName(artifactName, format, arch, false, packager.platformSpecificBuildOptions.defaultArch, defaultPattern.replace(\"${productName}\", \"${name}\")),\n target: this,\n arch,\n packager,\n isWriteUpdateInfo: this.isWriteUpdateInfo,\n })\n }\n}"],"sourceRoot":""}
|