UNPKG

43.4 kBSource Map (JSON)View Raw
1{"version":3,"sources":["../../../src/targets/nsis/NsisTarget.ts"],"names":[],"mappings":"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","sourcesContent":["import { path7za } from \"7zip-bin\"\nimport BluebirdPromise from \"bluebird-lst\"\nimport { Arch, asArray, AsyncTaskManager, execWine, getPlatformIconFileName, InvalidConfigurationError, log, spawnAndWrite, use, exec } from \"builder-util\"\nimport { PackageFileInfo, UUID, CURRENT_APP_PACKAGE_FILE_NAME, CURRENT_APP_INSTALLER_FILE_NAME } from \"builder-util-runtime\"\nimport { getBinFromGithub } from \"builder-util/out/binDownload\"\nimport { statOrNull, walk } from \"builder-util/out/fs\"\nimport { hashFile } from \"builder-util/out/hash\"\nimport _debug from \"debug\"\nimport { readFile, stat, unlink } from \"fs-extra-p\"\nimport { Lazy } from \"lazy-val\"\nimport * as path from \"path\"\nimport { Target } from \"../../core\"\nimport { DesktopShortcutCreationPolicy, getEffectiveOptions } from \"../../options/CommonWindowsInstallerConfiguration\"\nimport { isSafeGithubName, normalizeExt } from \"../../platformPackager\"\nimport { time } from \"../../util/timer\"\nimport { WinPackager } from \"../../winPackager\"\nimport { archive, ArchiveOptions } from \"../archive\"\nimport { appendBlockmap, configureDifferentialAwareArchiveOptions, createBlockmap, createNsisWebDifferentialUpdateInfo } from \"../differentialUpdateInfoBuilder\"\nimport { getWindowsInstallationDirName } from \"../targetUtil\"\nimport { addCustomMessageFileInclude, createAddLangsMacro, LangConfigurator } from \"./nsisLang\"\nimport { computeLicensePage } from \"./nsisLicense\"\nimport { NsisOptions, PortableOptions } from \"./nsisOptions\"\nimport { NsisScriptGenerator } from \"./nsisScriptGenerator\"\nimport { AppPackageHelper, NSIS_PATH, nsisTemplatesDir } from \"./nsisUtil\"\n\nconst debug = _debug(\"electron-builder:nsis\")\n\n// noinspection SpellCheckingInspection\nconst ELECTRON_BUILDER_NS_UUID = UUID.parse(\"50e065bc-3134-11e6-9bab-38c9862bdaf3\")\n\n// noinspection SpellCheckingInspection\nconst nsisResourcePathPromise = new Lazy(() => getBinFromGithub(\"nsis-resources\", \"3.3.0\", \"4okc98BD0v9xDcSjhPVhAkBMqos+FvD/5/H72fTTIwoHTuWd2WdD7r+1j72hxd+ZXxq1y3FRW0x6Z3jR0VfpMw==\"))\n\nconst USE_NSIS_BUILT_IN_COMPRESSOR = false\n\nexport class NsisTarget extends Target {\n readonly options: NsisOptions\n\n /** @private */\n readonly archs: Map<Arch, string> = new Map()\n\n constructor(readonly packager: WinPackager, readonly outDir: string, targetName: string, protected readonly packageHelper: AppPackageHelper) {\n super(targetName)\n\n this.packageHelper.refCount++\n\n this.options = targetName === \"portable\" ? Object.create(null) : {\n ...this.packager.config.nsis,\n preCompressedFileExtensions: [\".avi\", \".mov\", \".m4v\", \".mp4\", \".m4p\", \".qt\", \".mkv\", \".webm\", \".vmdk\"],\n }\n\n if (targetName !== \"nsis\") {\n Object.assign(this.options, (this.packager.config as any)[targetName === \"nsis-web\" ? \"nsisWeb\" : targetName])\n }\n\n const deps = packager.info.metadata.dependencies\n if (deps != null && deps[\"electron-squirrel-startup\"] != null) {\n log.warn('\"electron-squirrel-startup\" dependency is not required for NSIS')\n }\n }\n\n async build(appOutDir: string, arch: Arch) {\n this.archs.set(arch, appOutDir)\n }\n\n get isBuildDifferentialAware() {\n return !this.isPortable && this.options.differentialPackage !== false\n }\n\n private getPreCompressedFileExtensions(): Array<string> | null {\n const result = this.isWebInstaller ? null : this.options.preCompressedFileExtensions\n return result == null ? null : asArray(result).map(it => it.startsWith(\".\") ? it : `.${it}`)\n }\n\n /** @private */\n async buildAppPackage(appOutDir: string, arch: Arch): Promise<PackageFileInfo> {\n const options = this.options\n const packager = this.packager\n\n const isBuildDifferentialAware = this.isBuildDifferentialAware\n const format = !isBuildDifferentialAware && options.useZip ? \"zip\" : \"7z\"\n const archiveFile = path.join(this.outDir, `${packager.appInfo.sanitizedName}-${packager.appInfo.version}-${Arch[arch]}.nsis.${format}`)\n const preCompressedFileExtensions = this.getPreCompressedFileExtensions()\n const archiveOptions: ArchiveOptions = {\n withoutDir: true,\n compression: packager.compression,\n excluded: preCompressedFileExtensions == null ? null : preCompressedFileExtensions.map(it => `*${it}`)\n }\n\n const timer = time(`nsis package, ${Arch[arch]}`)\n await archive(format, archiveFile, appOutDir, isBuildDifferentialAware ? configureDifferentialAwareArchiveOptions(archiveOptions) : archiveOptions)\n timer.end()\n\n if (isBuildDifferentialAware && this.isWebInstaller) {\n const data = await appendBlockmap(archiveFile)\n return {\n ...data,\n size: data.size!!,\n path: archiveFile,\n }\n }\n else {\n return await createPackageFileInfo(archiveFile)\n }\n }\n\n async finishBuild(): Promise<any> {\n try {\n await this.buildInstaller()\n }\n finally {\n await this.packageHelper.finishBuild()\n }\n }\n\n protected get installerFilenamePattern(): string {\n // tslint:disable:no-invalid-template-strings\n return \"${productName} \" + (this.isPortable ? \"\" : \"Setup \") + \"${version}.${ext}\"\n }\n\n private get isPortable() {\n return this.name === \"portable\"\n }\n\n private async buildInstaller(): Promise<any> {\n const packager = this.packager\n const appInfo = packager.appInfo\n const options = this.options\n const installerFilename = packager.expandArtifactNamePattern(options, \"exe\", null, this.installerFilenamePattern)\n const oneClick = options.oneClick !== false\n const installerPath = path.join(this.outDir, installerFilename)\n\n const logFields: any = {\n target: this.name,\n file: log.filePath(installerPath),\n archs: Array.from(this.archs.keys()).map(it => Arch[it]).join(\", \"),\n }\n if (!this.isPortable) {\n logFields.oneClick = oneClick\n }\n log.info(logFields, \"building\")\n\n const guid = options.guid || UUID.v5(appInfo.id, ELECTRON_BUILDER_NS_UUID)\n const defines: any = {\n APP_ID: appInfo.id,\n APP_GUID: guid,\n PRODUCT_NAME: appInfo.productName,\n PRODUCT_FILENAME: appInfo.productFilename,\n APP_FILENAME: getWindowsInstallationDirName(appInfo, !oneClick || options.perMachine === true),\n APP_DESCRIPTION: appInfo.description,\n VERSION: appInfo.version,\n\n PROJECT_DIR: packager.projectDir,\n BUILD_RESOURCES_DIR: packager.info.buildResourcesDir,\n }\n\n const commands: any = {\n OutFile: `\"${installerPath}\"`,\n VIProductVersion: appInfo.versionInWeirdWindowsForm,\n VIAddVersionKey: this.computeVersionKey(),\n Unicode: this.isUnicodeEnabled,\n }\n\n const isPortable = this.isPortable\n const iconPath = (isPortable ? null : await packager.getResource(options.installerIcon, \"installerIcon.ico\")) || await packager.getIconPath()\n if (iconPath != null) {\n if (isPortable) {\n commands.Icon = `\"${iconPath}\"`\n }\n else {\n defines.MUI_ICON = iconPath\n defines.MUI_UNICON = iconPath\n }\n }\n\n const packageFiles: { [arch: string]: PackageFileInfo } = {}\n let estimatedSize = 0\n if (this.isPortable && options.useZip) {\n for (const [arch, dir] of this.archs.entries()) {\n defines[arch === Arch.x64 ? \"APP_DIR_64\" : \"APP_DIR_32\"] = dir\n }\n }\n else if (USE_NSIS_BUILT_IN_COMPRESSOR && this.archs.size === 1) {\n defines.APP_BUILD_DIR = this.archs.get(this.archs.keys().next().value)\n }\n else {\n await BluebirdPromise.map(this.archs.keys(), async arch => {\n const fileInfo = await this.packageHelper.packArch(arch, this)\n const file = fileInfo.path\n const defineKey = arch === Arch.x64 ? \"APP_64\" : \"APP_32\"\n defines[defineKey] = file\n defines[`${defineKey}_NAME`] = path.basename(file)\n // nsis expect a hexadecimal string\n defines[`${defineKey}_HASH`] = Buffer.from(fileInfo.sha512, \"base64\").toString(\"hex\").toUpperCase()\n\n if (this.isWebInstaller) {\n packager.dispatchArtifactCreated(file, this, arch)\n packageFiles[Arch[arch]] = fileInfo\n }\n\n const archiveInfo = (await exec(path7za, [\"l\", file])).trim()\n // after adding blockmap data will be \"Warnings: 1\" in the end of output\n const match = archiveInfo.match(/(\\d+)\\s+\\d+\\s+\\d+\\s+files/)\n if (match == null) {\n log.warn({output: archiveInfo}, \"cannot compute size of app package\")\n }\n else {\n estimatedSize += parseInt(match[1], 10)\n }\n })\n }\n\n this.configureDefinesForAllTypeOfInstaller(defines)\n if (isPortable) {\n defines.REQUEST_EXECUTION_LEVEL = (options as PortableOptions).requestExecutionLevel || \"user\"\n }\n else {\n await this.configureDefines(oneClick, defines)\n }\n\n if (estimatedSize !== 0) {\n // in kb\n defines.ESTIMATED_SIZE = Math.round(estimatedSize / 1024)\n }\n\n if (packager.compression === \"store\") {\n commands.SetCompress = \"off\"\n }\n else {\n // difference - 33.540 vs 33.601, only 61 KB (but zip is faster to decompress)\n // do not use /SOLID - \"With solid compression, files are uncompressed to temporary file before they are copied to their final destination\",\n // it is not good for portable installer (where built-in NSIS compression is used). http://forums.winamp.com/showpost.php?p=2982902&postcount=6\n commands.SetCompressor = \"zlib\"\n if (!this.isWebInstaller) {\n defines.COMPRESS = \"auto\"\n }\n }\n\n debug(defines)\n debug(commands)\n\n if (packager.packagerOptions.effectiveOptionComputed != null && await packager.packagerOptions.effectiveOptionComputed([defines, commands])) {\n return\n }\n\n const sharedHeader = await this.computeCommonInstallerScriptHeader()\n const script = isPortable ? await readFile(path.join(nsisTemplatesDir, \"portable.nsi\"), \"utf8\") : await this.computeScriptAndSignUninstaller(defines, commands, installerPath, sharedHeader)\n await this.executeMakensis(defines, commands, sharedHeader + await this.computeFinalScript(script, true))\n await Promise.all<any>([packager.sign(installerPath), defines.UNINSTALLER_OUT_FILE == null ? Promise.resolve() : unlink(defines.UNINSTALLER_OUT_FILE)])\n\n const safeArtifactName = isSafeGithubName(installerFilename) ? installerFilename : this.generateGitHubInstallerName()\n\n let updateInfo: any\n if (this.isWebInstaller) {\n updateInfo = createNsisWebDifferentialUpdateInfo(installerPath, packageFiles)\n }\n else if (this.isBuildDifferentialAware) {\n updateInfo = await createBlockmap(installerPath, this, packager, safeArtifactName)\n }\n\n packager.info.dispatchArtifactCreated({\n file: installerPath,\n updateInfo,\n target: this,\n packager,\n arch: this.archs.size === 1 ? this.archs.keys().next().value : null,\n safeArtifactName,\n isWriteUpdateInfo: !this.isPortable,\n })\n }\n\n protected generateGitHubInstallerName() {\n const appInfo = this.packager.appInfo\n const classifier = appInfo.name.toLowerCase() === appInfo.name ? \"setup-\" : \"Setup-\"\n return `${appInfo.name}-${this.isPortable ? \"\" : classifier}${appInfo.version}.exe`\n }\n\n private get isUnicodeEnabled() {\n return this.options.unicode !== false\n }\n\n get isWebInstaller(): boolean {\n return false\n }\n\n private async computeScriptAndSignUninstaller(defines: any, commands: any, installerPath: string, sharedHeader: string) {\n const packager = this.packager\n const customScriptPath = await packager.getResource(this.options.script, \"installer.nsi\")\n const script = await readFile(customScriptPath || path.join(nsisTemplatesDir, \"installer.nsi\"), \"utf8\")\n\n if (customScriptPath != null) {\n log.info({reason: \"custom NSIS script is used\"}, \"uninstaller is not signed by electron-builder\")\n return script\n }\n\n // https://github.com/electron-userland/electron-builder/issues/2103\n // it is more safe and reliable to write uninstaller to our out dir\n const uninstallerPath = path.join(this.outDir, `.__uninstaller-${this.name}-${this.packager.appInfo.sanitizedName}.exe`)\n const isWin = process.platform === \"win32\"\n defines.BUILD_UNINSTALLER = null\n defines.UNINSTALLER_OUT_FILE = isWin ? uninstallerPath : path.win32.join(\"Z:\", uninstallerPath)\n await this.executeMakensis(defines, commands, sharedHeader + await this.computeFinalScript(script, false))\n await execWine(installerPath, [])\n await packager.sign(uninstallerPath, \" Signing NSIS uninstaller\")\n\n delete defines.BUILD_UNINSTALLER\n // platform-specific path, not wine\n defines.UNINSTALLER_OUT_FILE = uninstallerPath\n return script\n }\n\n private computeVersionKey() {\n // Error: invalid VIProductVersion format, should be X.X.X.X\n // so, we must strip beta\n const localeId = this.options.language || \"1033\"\n const appInfo = this.packager.appInfo\n const versionKey = [\n `/LANG=${localeId} ProductName \"${appInfo.productName}\"`,\n `/LANG=${localeId} ProductVersion \"${appInfo.version}\"`,\n `/LANG=${localeId} LegalCopyright \"${appInfo.copyright}\"`,\n `/LANG=${localeId} FileDescription \"${appInfo.description}\"`,\n `/LANG=${localeId} FileVersion \"${appInfo.buildVersion}\"`,\n ]\n use(this.packager.platformSpecificBuildOptions.legalTrademarks, it => versionKey.push(`/LANG=${localeId} LegalTrademarks \"${it}\"`))\n use(appInfo.companyName, it => versionKey.push(`/LANG=${localeId} CompanyName \"${it}\"`))\n return versionKey\n }\n\n protected configureDefines(oneClick: boolean, defines: any): Promise<any> {\n const packager = this.packager\n const options = this.options\n\n const asyncTaskManager = new AsyncTaskManager(packager.info.cancellationToken)\n\n if (oneClick) {\n defines.ONE_CLICK = null\n\n if (options.runAfterFinish !== false) {\n defines.RUN_AFTER_FINISH = null\n }\n\n asyncTaskManager.add(async () => {\n const installerHeaderIcon = await packager.getResource(options.installerHeaderIcon, \"installerHeaderIcon.ico\")\n if (installerHeaderIcon != null) {\n defines.HEADER_ICO = installerHeaderIcon\n }\n })\n }\n else {\n if (options.runAfterFinish === false) {\n defines.HIDE_RUN_AFTER_FINISH = null\n }\n\n asyncTaskManager.add(async () => {\n const installerHeader = await packager.getResource(options.installerHeader, \"installerHeader.bmp\")\n if (installerHeader != null) {\n defines.MUI_HEADERIMAGE = null\n defines.MUI_HEADERIMAGE_RIGHT = null\n defines.MUI_HEADERIMAGE_BITMAP = installerHeader\n }\n })\n\n asyncTaskManager.add(async () => {\n const bitmap = (await packager.getResource(options.installerSidebar, \"installerSidebar.bmp\")) || \"${NSISDIR}\\\\Contrib\\\\Graphics\\\\Wizard\\\\nsis3-metro.bmp\"\n defines.MUI_WELCOMEFINISHPAGE_BITMAP = bitmap\n defines.MUI_UNWELCOMEFINISHPAGE_BITMAP = (await packager.getResource(options.uninstallerSidebar, \"uninstallerSidebar.bmp\")) || bitmap\n })\n\n if (options.allowElevation !== false) {\n defines.MULTIUSER_INSTALLMODE_ALLOW_ELEVATION = null\n }\n }\n\n if (options.perMachine === true) {\n defines.INSTALL_MODE_PER_ALL_USERS = null\n }\n\n if (!oneClick || options.perMachine === true) {\n defines.INSTALL_MODE_PER_ALL_USERS_REQUIRED = null\n }\n\n if (options.allowToChangeInstallationDirectory) {\n if (oneClick) {\n throw new InvalidConfigurationError(\"allowToChangeInstallationDirectory makes sense only for assisted installer (please set oneClick to false)\")\n }\n defines.allowToChangeInstallationDirectory = null\n }\n\n const commonOptions = getEffectiveOptions(options, packager)\n\n if (commonOptions.menuCategory != null) {\n defines.MENU_FILENAME = commonOptions.menuCategory\n }\n\n defines.SHORTCUT_NAME = commonOptions.shortcutName\n\n if (options.deleteAppDataOnUninstall) {\n defines.DELETE_APP_DATA_ON_UNINSTALL = null\n }\n\n asyncTaskManager.add(async () => {\n const uninstallerIcon = await packager.getResource(options.uninstallerIcon, \"uninstallerIcon.ico\")\n if (uninstallerIcon != null) {\n // we don't need to copy MUI_UNICON (defaults to app icon), so, we have 2 defines\n defines.UNINSTALLER_ICON = uninstallerIcon\n defines.MUI_UNICON = uninstallerIcon\n }\n })\n\n defines.UNINSTALL_DISPLAY_NAME = packager.expandMacro(options.uninstallDisplayName || \"${productName} ${version}\", null, {}, false)\n if (commonOptions.isCreateDesktopShortcut === DesktopShortcutCreationPolicy.NEVER) {\n defines.DO_NOT_CREATE_DESKTOP_SHORTCUT = null\n }\n if (commonOptions.isCreateDesktopShortcut === DesktopShortcutCreationPolicy.ALWAYS) {\n defines.RECREATE_DESKTOP_SHORTCUT = null\n }\n if (!commonOptions.isCreateStartMenuShortcut) {\n defines.DO_NOT_CREATE_START_MENU_SHORTCUT = null\n }\n\n if (options.displayLanguageSelector === true) {\n defines.DISPLAY_LANG_SELECTOR = null\n }\n\n return asyncTaskManager.awaitTasks()\n }\n\n private configureDefinesForAllTypeOfInstaller(defines: any) {\n const appInfo = this.packager.appInfo\n const companyName = appInfo.companyName\n if (companyName != null) {\n defines.COMPANY_NAME = companyName\n }\n\n // electron uses product file name as app data, define it as well to remove on uninstall\n if (defines.APP_FILENAME !== appInfo.productFilename) {\n defines.APP_PRODUCT_FILENAME = appInfo.productFilename\n }\n\n if (this.isWebInstaller) {\n defines.APP_PACKAGE_STORE_FILE = `${appInfo.productFilename}\\\\${CURRENT_APP_PACKAGE_FILE_NAME}`\n }\n else {\n defines.APP_INSTALLER_STORE_FILE = `${appInfo.productFilename}\\\\${CURRENT_APP_INSTALLER_FILE_NAME}`\n }\n\n if (!this.isWebInstaller && defines.APP_BUILD_DIR == null) {\n const options = this.options\n if (options.useZip) {\n defines.ZIP_COMPRESSION = null\n }\n\n defines.COMPRESSION_METHOD = options.useZip ? \"zip\" : \"7z\"\n }\n }\n\n private async executeMakensis(defines: any, commands: any, script: string) {\n const args: Array<string> = (this.options.warningsAsErrors === false) ? [] : [\"-WX\"]\n for (const name of Object.keys(defines)) {\n const value = defines[name]\n if (value == null) {\n args.push(`-D${name}`)\n }\n else {\n args.push(`-D${name}=${value}`)\n }\n }\n\n for (const name of Object.keys(commands)) {\n const value = commands[name]\n if (Array.isArray(value)) {\n for (const c of value) {\n args.push(`-X${name} ${c}`)\n }\n }\n else {\n args.push(`-X${name} ${value}`)\n }\n }\n\n args.push(\"-\")\n\n if (this.packager.debugLogger.isEnabled) {\n this.packager.debugLogger.add(\"nsis.script\", script)\n }\n\n const nsisPath = await NSIS_PATH.value\n const command = path.join(nsisPath, process.platform === \"darwin\" ? \"mac\" : (process.platform === \"win32\" ? \"Bin\" : \"linux\"), process.platform === \"win32\" ? \"makensis.exe\" : \"makensis\")\n await spawnAndWrite(command, args, script, {\n // we use NSIS_CONFIG_CONST_DATA_PATH=no to build makensis on Linux, but in any case it doesn't use stubs as MacOS/Windows version, so, we explicitly set NSISDIR\n env: {...process.env, NSISDIR: nsisPath},\n cwd: nsisTemplatesDir,\n })\n }\n\n private async computeCommonInstallerScriptHeader() {\n const packager = this.packager\n const options = this.options\n const scriptGenerator = new NsisScriptGenerator()\n const langConfigurator = new LangConfigurator(options)\n\n scriptGenerator.include(path.join(nsisTemplatesDir, \"include\", \"StdUtils.nsh\"))\n\n const includeDir = path.join(nsisTemplatesDir, \"include\")\n scriptGenerator.addIncludeDir(includeDir)\n scriptGenerator.flags([\"updated\", \"force-run\", \"keep-shortcuts\", \"no-desktop-shortcut\", \"delete-app-data\"])\n\n createAddLangsMacro(scriptGenerator, langConfigurator)\n\n const taskManager = new AsyncTaskManager(packager.info.cancellationToken)\n\n const pluginArch = this.isUnicodeEnabled ? \"x86-unicode\" : \"x86-ansi\"\n taskManager.add(async () => {\n scriptGenerator.addPluginDir(pluginArch, path.join(await nsisResourcePathPromise.value, \"plugins\", pluginArch))\n })\n\n taskManager.add(async () => {\n const userPluginDir = path.join(packager.info.buildResourcesDir, pluginArch)\n const stat = await statOrNull(userPluginDir)\n if (stat != null && stat.isDirectory()) {\n scriptGenerator.addPluginDir(pluginArch, userPluginDir)\n }\n })\n\n taskManager.addTask(addCustomMessageFileInclude(\"messages.yml\", packager, scriptGenerator, langConfigurator))\n\n if (!this.isPortable) {\n if (options.oneClick === false) {\n taskManager.addTask(addCustomMessageFileInclude(\"assistedMessages.yml\", packager, scriptGenerator, langConfigurator))\n }\n\n taskManager.add(async () => {\n const customInclude = await packager.getResource(this.options.include, \"installer.nsh\")\n if (customInclude != null) {\n scriptGenerator.addIncludeDir(packager.info.buildResourcesDir)\n scriptGenerator.include(customInclude)\n }\n })\n }\n\n await taskManager.awaitTasks()\n return scriptGenerator.build()\n }\n\n private async computeFinalScript(originalScript: string, isInstaller: boolean) {\n const packager = this.packager\n const options = this.options\n const langConfigurator = new LangConfigurator(options)\n\n const scriptGenerator = new NsisScriptGenerator()\n const taskManager = new AsyncTaskManager(packager.info.cancellationToken)\n\n if (isInstaller) {\n // http://stackoverflow.com/questions/997456/nsis-license-file-based-on-language-selection\n taskManager.add(() => computeLicensePage(packager, options, scriptGenerator, langConfigurator.langs))\n }\n\n await taskManager.awaitTasks()\n\n if (this.isPortable) {\n return scriptGenerator.build() + originalScript\n }\n\n const preCompressedFileExtensions = this.getPreCompressedFileExtensions()\n if (preCompressedFileExtensions != null) {\n for (const [arch, dir] of this.archs.entries()) {\n const preCompressedAssets = await walk(path.join(dir, \"resources\"), (file, stat) => stat.isDirectory() || preCompressedFileExtensions.some(it => file.endsWith(it)))\n if (preCompressedAssets.length !== 0) {\n const macro = new NsisScriptGenerator()\n for (const file of preCompressedAssets) {\n macro.file(`$INSTDIR\\\\${path.relative(dir, file).replace(/\\//g, \"\\\\\")}`, file)\n }\n scriptGenerator.macro(`customFiles_${Arch[arch]}`, macro)\n }\n }\n }\n\n const fileAssociations = packager.fileAssociations\n if (fileAssociations.length !== 0) {\n\n scriptGenerator.include(path.join(path.join(nsisTemplatesDir, \"include\"), \"FileAssociation.nsh\"))\n if (isInstaller) {\n const registerFileAssociationsScript = new NsisScriptGenerator()\n for (const item of fileAssociations) {\n const extensions = asArray(item.ext).map(normalizeExt)\n for (const ext of extensions) {\n const customIcon = await packager.getResource(getPlatformIconFileName(item.icon, false), `${extensions[0]}.ico`)\n let installedIconPath = \"$appExe,0\"\n if (customIcon != null) {\n installedIconPath = `$INSTDIR\\\\resources\\\\${path.basename(customIcon)}`\n registerFileAssociationsScript.file(installedIconPath, customIcon)\n }\n\n const icon = `\"${installedIconPath}\"`\n const commandText = `\"Open with ${packager.appInfo.productName}\"`\n const command = '\"$appExe $\\\\\"%1$\\\\\"\"'\n registerFileAssociationsScript.insertMacro(\"APP_ASSOCIATE\", `\"${ext}\" \"${item.name || ext}\" \"${item.description || \"\"}\" ${icon} ${commandText} ${command}`)\n }\n }\n scriptGenerator.macro(\"registerFileAssociations\", registerFileAssociationsScript)\n }\n else {\n const unregisterFileAssociationsScript = new NsisScriptGenerator()\n for (const item of fileAssociations) {\n for (const ext of asArray(item.ext)) {\n unregisterFileAssociationsScript.insertMacro(\"APP_UNASSOCIATE\", `\"${normalizeExt(ext)}\" \"${item.name || ext}\"`)\n }\n }\n scriptGenerator.macro(\"unregisterFileAssociations\", unregisterFileAssociationsScript)\n }\n }\n\n return scriptGenerator.build() + originalScript\n }\n}\n\nasync function createPackageFileInfo(file: string): Promise<PackageFileInfo> {\n return {\n path: file,\n size: (await stat(file)).size,\n sha512: await hashFile(file),\n }\n}"],"sourceRoot":""}