app-builder-lib 22.10.4 → 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.
Files changed (42) hide show
  1. package/electron-osx-sign/index.d.ts +2 -0
  2. package/electron-osx-sign/index.js +10 -1
  3. package/electron-osx-sign/sign.js +22 -14
  4. package/electron-osx-sign/util.js +32 -25
  5. package/out/appInfo.d.ts +1 -0
  6. package/out/appInfo.js +3 -2
  7. package/out/appInfo.js.map +1 -1
  8. package/out/asar/asarUtil.js +4 -2
  9. package/out/asar/asarUtil.js.map +1 -1
  10. package/out/asar/unpackDetector.js +12 -12
  11. package/out/asar/unpackDetector.js.map +1 -1
  12. package/out/configuration.d.ts +3 -2
  13. package/out/electron/ElectronFramework.js +21 -8
  14. package/out/electron/ElectronFramework.js.map +1 -1
  15. package/out/electron/electronMac.js +1 -1
  16. package/out/electron/electronMac.js.map +1 -1
  17. package/out/macPackager.js +6 -6
  18. package/out/macPackager.js.map +1 -1
  19. package/out/options/CommonWindowsInstallerConfiguration.js +1 -1
  20. package/out/options/CommonWindowsInstallerConfiguration.js.map +1 -1
  21. package/out/options/PlatformSpecificBuildOptions.d.ts +5 -0
  22. package/out/options/linuxOptions.d.ts +0 -5
  23. package/out/packager.js +1 -1
  24. package/out/platformPackager.d.ts +3 -3
  25. package/out/platformPackager.js +8 -8
  26. package/out/platformPackager.js.map +1 -1
  27. package/out/targets/ArchiveTarget.js +4 -3
  28. package/out/targets/ArchiveTarget.js.map +1 -1
  29. package/out/targets/LinuxTargetHelper.js +1 -2
  30. package/out/targets/LinuxTargetHelper.js.map +1 -1
  31. package/out/targets/fpm.js +1 -1
  32. package/out/targets/fpm.js.map +1 -1
  33. package/out/targets/nsis/nsisLang.js +1 -1
  34. package/out/targets/nsis/nsisLang.js.map +1 -1
  35. package/out/targets/snap.js +1 -1
  36. package/out/targets/snap.js.map +1 -1
  37. package/out/util/config.js +1 -1
  38. package/out/util/macroExpander.js +1 -1
  39. package/out/util/macroExpander.js.map +1 -1
  40. package/package.json +30 -30
  41. package/scheme.json +63 -6
  42. package/templates/nsis/include/extractAppPackage.nsh +48 -49
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/targets/snap.ts"],"names":[],"mappings":"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","sourcesContent":["import { Arch, deepAssign, executeAppBuilder, InvalidConfigurationError, log, replaceDefault as _replaceDefault, serializeToYaml, toLinuxArchString } from \"builder-util\"\nimport { asArray } from \"builder-util-runtime\"\nimport { outputFile, readFile } from \"fs-extra\"\nimport { safeLoad } from \"js-yaml\"\nimport * as path from \"path\"\nimport * as semver from \"semver\"\nimport { SnapOptions } from \"..\"\nimport { Target } from \"../core\"\nimport { LinuxPackager } from \"../linuxPackager\"\nimport { PlugDescriptor } from \"../options/SnapOptions\"\nimport { getTemplatePath } from \"../util/pathManager\"\nimport { LinuxTargetHelper } from \"./LinuxTargetHelper\"\nimport { createStageDirPath } from \"./targetUtil\"\n\nconst defaultPlugs = [\"desktop\", \"desktop-legacy\", \"home\", \"x11\", \"wayland\", \"unity7\", \"browser-support\", \"network\", \"gsettings\", \"audio-playback\", \"pulseaudio\", \"opengl\"]\n\nexport default class SnapTarget extends Target {\n readonly options: SnapOptions = {...this.packager.platformSpecificBuildOptions, ...(this.packager.config as any)[this.name]}\n\n public isUseTemplateApp = false\n\n constructor(name: string, private readonly packager: LinuxPackager, private readonly helper: LinuxTargetHelper, readonly outDir: string) {\n super(name)\n }\n\n private replaceDefault(inList: Array<string> | null | undefined, defaultList: Array<string>) {\n const result = _replaceDefault(inList, defaultList)\n if (result !== defaultList) {\n this.isUseTemplateApp = false\n }\n return result\n }\n\n private async createDescriptor(arch: Arch): Promise<any> {\n if (!this.isElectronVersionGreaterOrEqualThan(\"4.0.0\")) {\n if (!this.isElectronVersionGreaterOrEqualThan(\"2.0.0-beta.1\")) {\n throw new InvalidConfigurationError(\"Electron 2 and higher is required to build Snap\")\n }\n\n log.warn(\"Electron 4 and higher is highly recommended for Snap\")\n }\n\n const appInfo = this.packager.appInfo\n const snapName = this.packager.executableName.toLowerCase()\n const options = this.options\n\n const plugs = normalizePlugConfiguration(this.options.plugs)\n\n const plugNames = this.replaceDefault(plugs == null ? null : Object.getOwnPropertyNames(plugs), defaultPlugs)\n\n const slots = normalizePlugConfiguration(this.options.slots)\n\n const buildPackages = asArray(options.buildPackages)\n const defaultStagePackages = getDefaultStagePackages()\n const stagePackages = this.replaceDefault(options.stagePackages, defaultStagePackages)\n\n this.isUseTemplateApp = this.options.useTemplateApp !== false &&\n (arch === Arch.x64 || arch === Arch.armv7l) &&\n buildPackages.length === 0 &&\n isArrayEqualRegardlessOfSort(stagePackages, defaultStagePackages)\n\n const appDescriptor: any = {\n command: \"command.sh\",\n plugs: plugNames,\n adapter: \"none\",\n }\n\n const snap: any = safeLoad(await readFile(path.join(getTemplatePath(\"snap\"), \"snapcraft.yaml\"), \"utf-8\"))\n if (this.isUseTemplateApp) {\n delete appDescriptor.adapter\n }\n if (options.grade != null) {\n snap.grade = options.grade\n }\n if (options.confinement != null) {\n snap.confinement = options.confinement\n }\n if (options.appPartStage != null) {\n snap.parts.app.stage = options.appPartStage\n }\n if (options.layout != null) {\n snap.layout = options.layout\n }\n if (slots != null) {\n appDescriptor.slots = Object.getOwnPropertyNames(slots)\n for (const slotName of appDescriptor.slots) {\n const slotOptions = slots[slotName]\n if (slotOptions == null) {\n continue\n }\n if (!snap.slots) {\n snap.slots = {}\n }\n snap.slots[slotName] = slotOptions\n }\n }\n \n deepAssign(snap, {\n name: snapName,\n version: appInfo.version,\n title: options.title || appInfo.productName,\n summary: options.summary || appInfo.productName,\n description: this.helper.getDescription(options),\n architectures: [toLinuxArchString(arch, \"snap\")],\n apps: {\n [snapName]: appDescriptor\n },\n parts: {\n app: {\n \"stage-packages\": stagePackages,\n }\n },\n })\n\n if (options.autoStart) {\n appDescriptor.autostart = `${snap.name}.desktop`\n }\n\n if (options.confinement === \"classic\") {\n delete appDescriptor.plugs\n delete snap.plugs\n }\n else {\n const archTriplet = archNameToTriplet(arch)\n appDescriptor.environment = {\n // https://github.com/electron-userland/electron-builder/issues/4007\n // https://github.com/electron/electron/issues/9056\n DISABLE_WAYLAND: \"1\",\n TMPDIR: \"$XDG_RUNTIME_DIR\",\n PATH: \"$SNAP/usr/sbin:$SNAP/usr/bin:$SNAP/sbin:$SNAP/bin:$PATH\",\n SNAP_DESKTOP_RUNTIME: \"$SNAP/gnome-platform\",\n LD_LIBRARY_PATH: [\n \"$SNAP_LIBRARY_PATH\",\n \"$SNAP/lib:$SNAP/usr/lib:$SNAP/lib/\" + archTriplet + \":$SNAP/usr/lib/\" + archTriplet,\n \"$LD_LIBRARY_PATH:$SNAP/lib:$SNAP/usr/lib\",\n \"$SNAP/lib/\" + archTriplet + \":$SNAP/usr/lib/\" + archTriplet\n ].join(\":\"),\n ...options.environment,\n }\n\n if (plugs != null) {\n for (const plugName of plugNames) {\n const plugOptions = plugs[plugName]\n if (plugOptions == null) {\n continue\n }\n\n snap.plugs[plugName] = plugOptions\n }\n }\n }\n\n if (buildPackages.length > 0) {\n snap.parts.app[\"build-packages\"] = buildPackages\n }\n if (options.after != null) {\n snap.parts.app.after = options.after\n }\n\n if (options.assumes != null) {\n snap.assumes = asArray(options.assumes)\n }\n\n return snap\n }\n\n async build(appOutDir: string, arch: Arch): Promise<any> {\n const packager = this.packager\n const options = this.options\n // tslint:disable-next-line:no-invalid-template-strings\n const artifactName = packager.expandArtifactNamePattern(this.options, \"snap\", arch, \"${name}_${version}_${arch}.${ext}\", false)\n const artifactPath = path.join(this.outDir, artifactName)\n await packager.info.callArtifactBuildStarted({\n targetPresentableName: \"snap\",\n file: artifactPath,\n arch,\n })\n\n const snap = await this.createDescriptor(arch)\n if (this.isUseTemplateApp) {\n delete snap.parts\n }\n\n const stageDir = await createStageDirPath(this, packager, arch)\n const snapArch = toLinuxArchString(arch, \"snap\")\n const args = [\n \"snap\",\n \"--app\", appOutDir,\n \"--stage\", stageDir,\n \"--arch\", snapArch,\n \"--output\", artifactPath,\n \"--executable\", this.packager.executableName,\n ]\n\n await this.helper.icons\n if (this.helper.maxIconPath != null) {\n if (!this.isUseTemplateApp) {\n snap.icon = \"snap/gui/icon.png\"\n }\n args.push(\"--icon\", this.helper.maxIconPath)\n }\n\n // snapcraft.yaml inside a snap directory\n const snapMetaDir = path.join(stageDir, this.isUseTemplateApp ? \"meta\" : \"snap\")\n const desktopFile = path.join(snapMetaDir, \"gui\", `${snap.name}.desktop`)\n await this.helper.writeDesktopEntry(this.options, packager.executableName + \" %U\", desktopFile, {\n // tslint:disable:no-invalid-template-strings\n Icon: \"${SNAP}/meta/gui/icon.png\"\n })\n\n if (this.isElectronVersionGreaterOrEqualThan(\"5.0.0\") && !isBrowserSandboxAllowed(snap)) {\n args.push(\"--extraAppArgs=--no-sandbox\")\n if (this.isUseTemplateApp) {\n args.push(\"--exclude\", \"chrome-sandbox\")\n }\n }\n\n if (packager.packagerOptions.effectiveOptionComputed != null && await packager.packagerOptions.effectiveOptionComputed({snap, desktopFile, args})) {\n return\n }\n\n await outputFile(path.join(snapMetaDir, this.isUseTemplateApp ? \"snap.yaml\" : \"snapcraft.yaml\"), serializeToYaml(snap))\n\n const hooksDir = await packager.getResource(options.hooks, \"snap-hooks\")\n if (hooksDir != null) {\n args.push(\"--hooks\", hooksDir)\n }\n\n if (this.isUseTemplateApp) {\n args.push(\"--template-url\", `electron4:${snapArch}`)\n }\n await executeAppBuilder(args)\n\n await packager.info.callArtifactBuildCompleted({\n file: artifactPath,\n safeArtifactName: packager.computeSafeArtifactName(artifactName, \"snap\", arch, false),\n target: this,\n arch,\n packager,\n publishConfig: options.publish == null ? {provider: \"snapStore\"} : null,\n })\n }\n\n private isElectronVersionGreaterOrEqualThan(version: string) {\n return semver.gte(this.packager.config.electronVersion || \"7.0.0\", version)\n }\n}\n\nfunction archNameToTriplet(arch: Arch): string {\n switch (arch) {\n case Arch.x64:\n return \"x86_64-linux-gnu\"\n case Arch.ia32:\n return \"i386-linux-gnu\"\n case Arch.armv7l:\n // noinspection SpellCheckingInspection\n return \"arm-linux-gnueabihf\"\n case Arch.arm64:\n return \"aarch64-linux-gnu\"\n\n default:\n throw new Error(`Unsupported arch ${arch}`)\n }\n}\n\nfunction isArrayEqualRegardlessOfSort(a: Array<string>, b: Array<string>) {\n a = a.slice()\n b = b.slice()\n a.sort()\n b.sort()\n return a.length === b.length && a.every((value, index) => value === b[index])\n}\n\nfunction normalizePlugConfiguration(raw: Array<string | PlugDescriptor> | PlugDescriptor | null | undefined): { [key: string]: {[name: string]: any } | null } | null {\n if (raw == null) {\n return null\n }\n\n const result: any = {}\n for (const item of (Array.isArray(raw) ? raw : [raw])) {\n if (typeof item === \"string\") {\n result[item] = null\n }\n else {\n Object.assign(result, item)\n }\n }\n return result\n}\n\nfunction isBrowserSandboxAllowed(snap: any): boolean {\n if (snap.plugs != null) {\n for (const plugName of Object.keys(snap.plugs)) {\n const plug = snap.plugs[plugName]\n if (plug.interface === \"browser-support\" && plug[\"allow-sandbox\"] === true) {\n return true\n }\n }\n }\n return false\n}\n\nfunction getDefaultStagePackages() {\n // libxss1 - was \"error while loading shared libraries: libXss.so.1\" on Xubuntu 16.04\n // noinspection SpellCheckingInspection\n return [\"libnspr4\", \"libnss3\", \"libxss1\", \"libappindicator3-1\", \"libsecret-1-0\"]\n}\n"],"sourceRoot":""}
1
+ {"version":3,"sources":["../../src/targets/snap.ts"],"names":[],"mappings":"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","sourcesContent":["import { Arch, deepAssign, executeAppBuilder, InvalidConfigurationError, log, replaceDefault as _replaceDefault, serializeToYaml, toLinuxArchString } from \"builder-util\"\nimport { asArray } from \"builder-util-runtime\"\nimport { outputFile, readFile } from \"fs-extra\"\nimport { load } from \"js-yaml\"\nimport * as path from \"path\"\nimport * as semver from \"semver\"\nimport { SnapOptions } from \"..\"\nimport { Target } from \"../core\"\nimport { LinuxPackager } from \"../linuxPackager\"\nimport { PlugDescriptor } from \"../options/SnapOptions\"\nimport { getTemplatePath } from \"../util/pathManager\"\nimport { LinuxTargetHelper } from \"./LinuxTargetHelper\"\nimport { createStageDirPath } from \"./targetUtil\"\n\nconst defaultPlugs = [\"desktop\", \"desktop-legacy\", \"home\", \"x11\", \"wayland\", \"unity7\", \"browser-support\", \"network\", \"gsettings\", \"audio-playback\", \"pulseaudio\", \"opengl\"]\n\nexport default class SnapTarget extends Target {\n readonly options: SnapOptions = {...this.packager.platformSpecificBuildOptions, ...(this.packager.config as any)[this.name]}\n\n public isUseTemplateApp = false\n\n constructor(name: string, private readonly packager: LinuxPackager, private readonly helper: LinuxTargetHelper, readonly outDir: string) {\n super(name)\n }\n\n private replaceDefault(inList: Array<string> | null | undefined, defaultList: Array<string>) {\n const result = _replaceDefault(inList, defaultList)\n if (result !== defaultList) {\n this.isUseTemplateApp = false\n }\n return result\n }\n\n private async createDescriptor(arch: Arch): Promise<any> {\n if (!this.isElectronVersionGreaterOrEqualThan(\"4.0.0\")) {\n if (!this.isElectronVersionGreaterOrEqualThan(\"2.0.0-beta.1\")) {\n throw new InvalidConfigurationError(\"Electron 2 and higher is required to build Snap\")\n }\n\n log.warn(\"Electron 4 and higher is highly recommended for Snap\")\n }\n\n const appInfo = this.packager.appInfo\n const snapName = this.packager.executableName.toLowerCase()\n const options = this.options\n\n const plugs = normalizePlugConfiguration(this.options.plugs)\n\n const plugNames = this.replaceDefault(plugs == null ? null : Object.getOwnPropertyNames(plugs), defaultPlugs)\n\n const slots = normalizePlugConfiguration(this.options.slots)\n\n const buildPackages = asArray(options.buildPackages)\n const defaultStagePackages = getDefaultStagePackages()\n const stagePackages = this.replaceDefault(options.stagePackages, defaultStagePackages)\n\n this.isUseTemplateApp = this.options.useTemplateApp !== false &&\n (arch === Arch.x64 || arch === Arch.armv7l) &&\n buildPackages.length === 0 &&\n isArrayEqualRegardlessOfSort(stagePackages, defaultStagePackages)\n\n const appDescriptor: any = {\n command: \"command.sh\",\n plugs: plugNames,\n adapter: \"none\",\n }\n\n const snap: any = load(await readFile(path.join(getTemplatePath(\"snap\"), \"snapcraft.yaml\"), \"utf-8\"))\n if (this.isUseTemplateApp) {\n delete appDescriptor.adapter\n }\n if (options.grade != null) {\n snap.grade = options.grade\n }\n if (options.confinement != null) {\n snap.confinement = options.confinement\n }\n if (options.appPartStage != null) {\n snap.parts.app.stage = options.appPartStage\n }\n if (options.layout != null) {\n snap.layout = options.layout\n }\n if (slots != null) {\n appDescriptor.slots = Object.getOwnPropertyNames(slots)\n for (const slotName of appDescriptor.slots) {\n const slotOptions = slots[slotName]\n if (slotOptions == null) {\n continue\n }\n if (!snap.slots) {\n snap.slots = {}\n }\n snap.slots[slotName] = slotOptions\n }\n }\n \n deepAssign(snap, {\n name: snapName,\n version: appInfo.version,\n title: options.title || appInfo.productName,\n summary: options.summary || appInfo.productName,\n description: this.helper.getDescription(options),\n architectures: [toLinuxArchString(arch, \"snap\")],\n apps: {\n [snapName]: appDescriptor\n },\n parts: {\n app: {\n \"stage-packages\": stagePackages,\n }\n },\n })\n\n if (options.autoStart) {\n appDescriptor.autostart = `${snap.name}.desktop`\n }\n\n if (options.confinement === \"classic\") {\n delete appDescriptor.plugs\n delete snap.plugs\n }\n else {\n const archTriplet = archNameToTriplet(arch)\n appDescriptor.environment = {\n // https://github.com/electron-userland/electron-builder/issues/4007\n // https://github.com/electron/electron/issues/9056\n DISABLE_WAYLAND: \"1\",\n TMPDIR: \"$XDG_RUNTIME_DIR\",\n PATH: \"$SNAP/usr/sbin:$SNAP/usr/bin:$SNAP/sbin:$SNAP/bin:$PATH\",\n SNAP_DESKTOP_RUNTIME: \"$SNAP/gnome-platform\",\n LD_LIBRARY_PATH: [\n \"$SNAP_LIBRARY_PATH\",\n \"$SNAP/lib:$SNAP/usr/lib:$SNAP/lib/\" + archTriplet + \":$SNAP/usr/lib/\" + archTriplet,\n \"$LD_LIBRARY_PATH:$SNAP/lib:$SNAP/usr/lib\",\n \"$SNAP/lib/\" + archTriplet + \":$SNAP/usr/lib/\" + archTriplet\n ].join(\":\"),\n ...options.environment,\n }\n\n if (plugs != null) {\n for (const plugName of plugNames) {\n const plugOptions = plugs[plugName]\n if (plugOptions == null) {\n continue\n }\n\n snap.plugs[plugName] = plugOptions\n }\n }\n }\n\n if (buildPackages.length > 0) {\n snap.parts.app[\"build-packages\"] = buildPackages\n }\n if (options.after != null) {\n snap.parts.app.after = options.after\n }\n\n if (options.assumes != null) {\n snap.assumes = asArray(options.assumes)\n }\n\n return snap\n }\n\n async build(appOutDir: string, arch: Arch): Promise<any> {\n const packager = this.packager\n const options = this.options\n // tslint:disable-next-line:no-invalid-template-strings\n const artifactName = packager.expandArtifactNamePattern(this.options, \"snap\", arch, \"${name}_${version}_${arch}.${ext}\", false)\n const artifactPath = path.join(this.outDir, artifactName)\n await packager.info.callArtifactBuildStarted({\n targetPresentableName: \"snap\",\n file: artifactPath,\n arch,\n })\n\n const snap = await this.createDescriptor(arch)\n if (this.isUseTemplateApp) {\n delete snap.parts\n }\n\n const stageDir = await createStageDirPath(this, packager, arch)\n const snapArch = toLinuxArchString(arch, \"snap\")\n const args = [\n \"snap\",\n \"--app\", appOutDir,\n \"--stage\", stageDir,\n \"--arch\", snapArch,\n \"--output\", artifactPath,\n \"--executable\", this.packager.executableName,\n ]\n\n await this.helper.icons\n if (this.helper.maxIconPath != null) {\n if (!this.isUseTemplateApp) {\n snap.icon = \"snap/gui/icon.png\"\n }\n args.push(\"--icon\", this.helper.maxIconPath)\n }\n\n // snapcraft.yaml inside a snap directory\n const snapMetaDir = path.join(stageDir, this.isUseTemplateApp ? \"meta\" : \"snap\")\n const desktopFile = path.join(snapMetaDir, \"gui\", `${snap.name}.desktop`)\n await this.helper.writeDesktopEntry(this.options, packager.executableName + \" %U\", desktopFile, {\n // tslint:disable:no-invalid-template-strings\n Icon: \"${SNAP}/meta/gui/icon.png\"\n })\n\n if (this.isElectronVersionGreaterOrEqualThan(\"5.0.0\") && !isBrowserSandboxAllowed(snap)) {\n args.push(\"--extraAppArgs=--no-sandbox\")\n if (this.isUseTemplateApp) {\n args.push(\"--exclude\", \"chrome-sandbox\")\n }\n }\n\n if (packager.packagerOptions.effectiveOptionComputed != null && await packager.packagerOptions.effectiveOptionComputed({snap, desktopFile, args})) {\n return\n }\n\n await outputFile(path.join(snapMetaDir, this.isUseTemplateApp ? \"snap.yaml\" : \"snapcraft.yaml\"), serializeToYaml(snap))\n\n const hooksDir = await packager.getResource(options.hooks, \"snap-hooks\")\n if (hooksDir != null) {\n args.push(\"--hooks\", hooksDir)\n }\n\n if (this.isUseTemplateApp) {\n args.push(\"--template-url\", `electron4:${snapArch}`)\n }\n await executeAppBuilder(args)\n\n await packager.info.callArtifactBuildCompleted({\n file: artifactPath,\n safeArtifactName: packager.computeSafeArtifactName(artifactName, \"snap\", arch, false),\n target: this,\n arch,\n packager,\n publishConfig: options.publish == null ? {provider: \"snapStore\"} : null,\n })\n }\n\n private isElectronVersionGreaterOrEqualThan(version: string) {\n return semver.gte(this.packager.config.electronVersion || \"7.0.0\", version)\n }\n}\n\nfunction archNameToTriplet(arch: Arch): string {\n switch (arch) {\n case Arch.x64:\n return \"x86_64-linux-gnu\"\n case Arch.ia32:\n return \"i386-linux-gnu\"\n case Arch.armv7l:\n // noinspection SpellCheckingInspection\n return \"arm-linux-gnueabihf\"\n case Arch.arm64:\n return \"aarch64-linux-gnu\"\n\n default:\n throw new Error(`Unsupported arch ${arch}`)\n }\n}\n\nfunction isArrayEqualRegardlessOfSort(a: Array<string>, b: Array<string>) {\n a = a.slice()\n b = b.slice()\n a.sort()\n b.sort()\n return a.length === b.length && a.every((value, index) => value === b[index])\n}\n\nfunction normalizePlugConfiguration(raw: Array<string | PlugDescriptor> | PlugDescriptor | null | undefined): { [key: string]: {[name: string]: any } | null } | null {\n if (raw == null) {\n return null\n }\n\n const result: any = {}\n for (const item of (Array.isArray(raw) ? raw : [raw])) {\n if (typeof item === \"string\") {\n result[item] = null\n }\n else {\n Object.assign(result, item)\n }\n }\n return result\n}\n\nfunction isBrowserSandboxAllowed(snap: any): boolean {\n if (snap.plugs != null) {\n for (const plugName of Object.keys(snap.plugs)) {\n const plug = snap.plugs[plugName]\n if (plug.interface === \"browser-support\" && plug[\"allow-sandbox\"] === true) {\n return true\n }\n }\n }\n return false\n}\n\nfunction getDefaultStagePackages() {\n // libxss1 - was \"error while loading shared libraries: libXss.so.1\" on Xubuntu 16.04\n // noinspection SpellCheckingInspection\n return [\"libnspr4\", \"libnss3\", \"libxss1\", \"libappindicator3-1\", \"libsecret-1-0\"]\n}\n"],"sourceRoot":""}
@@ -311,7 +311,7 @@ async function validateConfig(config, debugLogger) {
311
311
 
312
312
 
313
313
  validateSchema(await schemeDataPromise.value, config, {
314
- name: `electron-builder ${"22.10.4"}`,
314
+ name: `electron-builder ${"22.10.5"}`,
315
315
  postFormatter: (formattedError, error) => {
316
316
  if (debugLogger.isEnabled) {
317
317
  debugLogger.add("invalidConfig", (0, _builderUtil().safeStringifyJson)(error));
@@ -27,7 +27,7 @@ function expandMacro(pattern, arch, appInfo, extra = {}, isProductNameSanitized
27
27
  return pattern.replace(/\${([_a-zA-Z./*]+)}/g, (match, p1) => {
28
28
  switch (p1) {
29
29
  case "productName":
30
- return isProductNameSanitized ? appInfo.productFilename : appInfo.productName;
30
+ return isProductNameSanitized ? appInfo.sanitizedProductName : appInfo.productName;
31
31
 
32
32
  case "arch":
33
33
  if (arch == null) {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/util/macroExpander.ts"],"names":[],"mappings":";;;;;;;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAGM,SAAU,WAAV,CAAsB,OAAtB,EAAuC,IAAvC,EAAwE,OAAxE,EAA0F,KAAA,GAAa,EAAvG,EAA2G,sBAAsB,GAAG,IAApI,EAAwI;AAC5I,MAAI,IAAI,IAAI,IAAZ,EAAkB;AAChB,IAAA,OAAO,GAAG,OAAO,CACjB;AADiB,KAEd,OAFO,CAEC,UAFD,EAEa,EAFb,EAGR;AAHQ,KAIP,OAJO,CAIC,UAJD,EAIa,EAJb,EAKR;AALQ,KAMP,OANO,CAMC,UAND,EAMa,EANb,EAOR;AAPQ,KAQP,OARO,CAQC,UARD,EAQa,EARb,CAAV;AASD;;AAED,SAAO,OAAO,CAAC,OAAR,CAAgB,sBAAhB,EAAwC,CAAC,KAAD,EAAQ,EAAR,KAAsB;AACnE,YAAQ,EAAR;AACE,WAAK,aAAL;AACE,eAAO,sBAAsB,GAAG,OAAO,CAAC,eAAX,GAA6B,OAAO,CAAC,WAAlE;;AAEF,WAAK,MAAL;AACE,YAAI,IAAI,IAAI,IAAZ,EAAkB;AAChB;AACA,iBAAO,EAAP;AACD;;AACD,eAAO,IAAP;;AAEF,WAAK,QAAL;AAAe;AACb,gBAAM,WAAW,GAAG,OAAO,CAAC,WAA5B;;AACA,cAAI,WAAW,IAAI,IAAnB,EAAyB;AACvB,kBAAM,KAAI,wCAAJ,EAA8B,0BAA0B,OAAO,4BAA/D,EAA6F,yCAA7F,CAAN;AACD;;AACD,iBAAO,WAAP;AACD;;AAED,WAAK,UAAL;AACE,eAAO,OAAO,CAAC,QAAf;;AAEF,WAAK,SAAL;AACE,eAAO,OAAO,CAAC,OAAR,IAAmB,QAA1B;;AAEF;AAAS;AACP,cAAI,EAAE,IAAI,OAAV,EAAmB;AACjB,mBAAQ,OAAe,CAAC,EAAD,CAAvB;AACD;;AAED,cAAI,EAAE,CAAC,UAAH,CAAc,MAAd,CAAJ,EAA2B;AACzB,kBAAM,OAAO,GAAG,EAAE,CAAC,SAAH,CAAa,OAAO,MAApB,CAAhB;AACA,kBAAM,QAAQ,GAAG,OAAO,CAAC,GAAR,CAAY,OAAZ,CAAjB;;AACA,gBAAI,QAAQ,IAAI,IAAhB,EAAsB;AACpB,oBAAM,KAAI,wCAAJ,EAA8B,0BAA0B,OAAO,UAAU,OAAO,iBAAhF,EAAmG,sCAAnG,CAAN;AACD;;AACD,mBAAO,QAAP;AACD;;AAED,gBAAM,KAAK,GAAG,KAAK,CAAC,EAAD,CAAnB;;AACA,cAAI,KAAK,IAAI,IAAb,EAAmB;AACjB,kBAAM,KAAI,wCAAJ,EAA8B,0BAA0B,OAAO,YAAY,EAAE,iBAA7E,EAAgG,wCAAhG,CAAN;AACD,WAFD,MAGK;AACH,mBAAO,KAAP;AACD;AACF;AA9CH;AAgDD,GAjDM,CAAP;AAkDD,C","sourcesContent":["import { InvalidConfigurationError } from \"builder-util\"\nimport { AppInfo } from \"../appInfo\"\n\nexport function expandMacro(pattern: string, arch: string | null | undefined, appInfo: AppInfo, extra: any = {}, isProductNameSanitized = true): string {\n if (arch == null) {\n pattern = pattern\n // tslint:disable-next-line:no-invalid-template-strings\n .replace(\"-${arch}\", \"\")\n // tslint:disable-next-line:no-invalid-template-strings\n .replace(\" ${arch}\", \"\")\n // tslint:disable-next-line:no-invalid-template-strings\n .replace(\"_${arch}\", \"\")\n // tslint:disable-next-line:no-invalid-template-strings\n .replace(\"/${arch}\", \"\")\n }\n\n return pattern.replace(/\\${([_a-zA-Z./*]+)}/g, (match, p1): string => {\n switch (p1) {\n case \"productName\":\n return isProductNameSanitized ? appInfo.productFilename : appInfo.productName\n\n case \"arch\":\n if (arch == null) {\n // see above, we remove macro if no arch\n return \"\"\n }\n return arch\n\n case \"author\": {\n const companyName = appInfo.companyName\n if (companyName == null) {\n throw new InvalidConfigurationError(`cannot expand pattern \"${pattern}\": author is not specified`, \"ERR_ELECTRON_BUILDER_AUTHOR_UNSPECIFIED\")\n }\n return companyName\n }\n\n case \"platform\":\n return process.platform\n\n case \"channel\":\n return appInfo.channel || \"latest\"\n\n default: {\n if (p1 in appInfo) {\n return (appInfo as any)[p1]\n }\n\n if (p1.startsWith(\"env.\")) {\n const envName = p1.substring(\"env.\".length)\n const envValue = process.env[envName]\n if (envValue == null) {\n throw new InvalidConfigurationError(`cannot expand pattern \"${pattern}\": env ${envName} is not defined`, \"ERR_ELECTRON_BUILDER_ENV_NOT_DEFINED\")\n }\n return envValue\n }\n\n const value = extra[p1]\n if (value == null) {\n throw new InvalidConfigurationError(`cannot expand pattern \"${pattern}\": macro ${p1} is not defined`, \"ERR_ELECTRON_BUILDER_MACRO_NOT_DEFINED\")\n }\n else {\n return value\n }\n }\n }\n })\n}"],"sourceRoot":""}
1
+ {"version":3,"sources":["../../src/util/macroExpander.ts"],"names":[],"mappings":";;;;;;;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAGM,SAAU,WAAV,CAAsB,OAAtB,EAAuC,IAAvC,EAAwE,OAAxE,EAA0F,KAAA,GAAa,EAAvG,EAA2G,sBAAsB,GAAG,IAApI,EAAwI;AAC5I,MAAI,IAAI,IAAI,IAAZ,EAAkB;AAChB,IAAA,OAAO,GAAG,OAAO,CACjB;AADiB,KAEd,OAFO,CAEC,UAFD,EAEa,EAFb,EAGR;AAHQ,KAIP,OAJO,CAIC,UAJD,EAIa,EAJb,EAKR;AALQ,KAMP,OANO,CAMC,UAND,EAMa,EANb,EAOR;AAPQ,KAQP,OARO,CAQC,UARD,EAQa,EARb,CAAV;AASD;;AAED,SAAO,OAAO,CAAC,OAAR,CAAgB,sBAAhB,EAAwC,CAAC,KAAD,EAAQ,EAAR,KAAsB;AACnE,YAAQ,EAAR;AACE,WAAK,aAAL;AACE,eAAO,sBAAsB,GAAG,OAAO,CAAC,oBAAX,GAAkC,OAAO,CAAC,WAAvE;;AAEF,WAAK,MAAL;AACE,YAAI,IAAI,IAAI,IAAZ,EAAkB;AAChB;AACA,iBAAO,EAAP;AACD;;AACD,eAAO,IAAP;;AAEF,WAAK,QAAL;AAAe;AACb,gBAAM,WAAW,GAAG,OAAO,CAAC,WAA5B;;AACA,cAAI,WAAW,IAAI,IAAnB,EAAyB;AACvB,kBAAM,KAAI,wCAAJ,EAA8B,0BAA0B,OAAO,4BAA/D,EAA6F,yCAA7F,CAAN;AACD;;AACD,iBAAO,WAAP;AACD;;AAED,WAAK,UAAL;AACE,eAAO,OAAO,CAAC,QAAf;;AAEF,WAAK,SAAL;AACE,eAAO,OAAO,CAAC,OAAR,IAAmB,QAA1B;;AAEF;AAAS;AACP,cAAI,EAAE,IAAI,OAAV,EAAmB;AACjB,mBAAQ,OAAe,CAAC,EAAD,CAAvB;AACD;;AAED,cAAI,EAAE,CAAC,UAAH,CAAc,MAAd,CAAJ,EAA2B;AACzB,kBAAM,OAAO,GAAG,EAAE,CAAC,SAAH,CAAa,OAAO,MAApB,CAAhB;AACA,kBAAM,QAAQ,GAAG,OAAO,CAAC,GAAR,CAAY,OAAZ,CAAjB;;AACA,gBAAI,QAAQ,IAAI,IAAhB,EAAsB;AACpB,oBAAM,KAAI,wCAAJ,EAA8B,0BAA0B,OAAO,UAAU,OAAO,iBAAhF,EAAmG,sCAAnG,CAAN;AACD;;AACD,mBAAO,QAAP;AACD;;AAED,gBAAM,KAAK,GAAG,KAAK,CAAC,EAAD,CAAnB;;AACA,cAAI,KAAK,IAAI,IAAb,EAAmB;AACjB,kBAAM,KAAI,wCAAJ,EAA8B,0BAA0B,OAAO,YAAY,EAAE,iBAA7E,EAAgG,wCAAhG,CAAN;AACD,WAFD,MAGK;AACH,mBAAO,KAAP;AACD;AACF;AA9CH;AAgDD,GAjDM,CAAP;AAkDD,C","sourcesContent":["import { InvalidConfigurationError } from \"builder-util\"\nimport { AppInfo } from \"../appInfo\"\n\nexport function expandMacro(pattern: string, arch: string | null | undefined, appInfo: AppInfo, extra: any = {}, isProductNameSanitized = true): string {\n if (arch == null) {\n pattern = pattern\n // tslint:disable-next-line:no-invalid-template-strings\n .replace(\"-${arch}\", \"\")\n // tslint:disable-next-line:no-invalid-template-strings\n .replace(\" ${arch}\", \"\")\n // tslint:disable-next-line:no-invalid-template-strings\n .replace(\"_${arch}\", \"\")\n // tslint:disable-next-line:no-invalid-template-strings\n .replace(\"/${arch}\", \"\")\n }\n\n return pattern.replace(/\\${([_a-zA-Z./*]+)}/g, (match, p1): string => {\n switch (p1) {\n case \"productName\":\n return isProductNameSanitized ? appInfo.sanitizedProductName : appInfo.productName\n\n case \"arch\":\n if (arch == null) {\n // see above, we remove macro if no arch\n return \"\"\n }\n return arch\n\n case \"author\": {\n const companyName = appInfo.companyName\n if (companyName == null) {\n throw new InvalidConfigurationError(`cannot expand pattern \"${pattern}\": author is not specified`, \"ERR_ELECTRON_BUILDER_AUTHOR_UNSPECIFIED\")\n }\n return companyName\n }\n\n case \"platform\":\n return process.platform\n\n case \"channel\":\n return appInfo.channel || \"latest\"\n\n default: {\n if (p1 in appInfo) {\n return (appInfo as any)[p1]\n }\n\n if (p1.startsWith(\"env.\")) {\n const envName = p1.substring(\"env.\".length)\n const envValue = process.env[envName]\n if (envValue == null) {\n throw new InvalidConfigurationError(`cannot expand pattern \"${pattern}\": env ${envName} is not defined`, \"ERR_ELECTRON_BUILDER_ENV_NOT_DEFINED\")\n }\n return envValue\n }\n\n const value = extra[p1]\n if (value == null) {\n throw new InvalidConfigurationError(`cannot expand pattern \"${pattern}\": macro ${p1} is not defined`, \"ERR_ELECTRON_BUILDER_MACRO_NOT_DEFINED\")\n }\n else {\n return value\n }\n }\n }\n })\n}"],"sourceRoot":""}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "app-builder-lib",
3
3
  "description": "electron-builder lib",
4
- "version": "22.10.4",
4
+ "version": "22.10.5",
5
5
  "main": "out/index.js",
6
6
  "files": [
7
7
  "out",
@@ -47,17 +47,17 @@
47
47
  "@electron/universal": "1.0.4",
48
48
  "async-exit-hook": "^2.0.1",
49
49
  "bluebird-lst": "^1.0.9",
50
- "builder-util": "22.10.4",
50
+ "builder-util": "22.10.5",
51
51
  "builder-util-runtime": "8.7.3",
52
52
  "chromium-pickle-js": "^0.2.0",
53
- "debug": "^4.3.1",
54
- "ejs": "^3.1.5",
55
- "electron-publish": "22.10.4",
56
- "fs-extra": "^9.0.1",
57
- "hosted-git-info": "^3.0.7",
53
+ "debug": "^4.3.2",
54
+ "ejs": "^3.1.6",
55
+ "electron-publish": "22.10.5",
56
+ "fs-extra": "^9.1.0",
57
+ "hosted-git-info": "^3.0.8",
58
58
  "is-ci": "^2.0.0",
59
- "isbinaryfile": "^4.0.6",
60
- "js-yaml": "^3.14.1",
59
+ "istextorbinary": "^5.12.0",
60
+ "js-yaml": "^4.0.0",
61
61
  "lazy-val": "^1.0.4",
62
62
  "minimatch": "^3.0.4",
63
63
  "normalize-package-data": "^3.0.0",
@@ -68,34 +68,34 @@
68
68
  },
69
69
  "///": "babel in devDependencies for proton tests",
70
70
  "devDependencies": {
71
- "@babel/core": "^7.12.10",
72
- "@babel/plugin-proposal-class-properties": "^7.12.1",
73
- "@babel/plugin-proposal-decorators": "^7.12.1",
74
- "@babel/plugin-proposal-do-expressions": "^7.12.1",
75
- "@babel/plugin-proposal-export-default-from": "^7.12.1",
76
- "@babel/plugin-proposal-export-namespace-from": "^7.12.1",
77
- "@babel/plugin-proposal-function-bind": "^7.12.1",
78
- "@babel/plugin-proposal-function-sent": "^7.12.1",
79
- "@babel/plugin-proposal-json-strings": "^7.12.1",
80
- "@babel/plugin-proposal-logical-assignment-operators": "^7.12.1",
81
- "@babel/plugin-proposal-nullish-coalescing-operator": "^7.12.1",
82
- "@babel/plugin-proposal-numeric-separator": "^7.12.7",
83
- "@babel/plugin-proposal-optional-chaining": "^7.12.7",
84
- "@babel/plugin-proposal-pipeline-operator": "^7.12.1",
85
- "@babel/plugin-proposal-throw-expressions": "^7.12.1",
71
+ "@babel/core": "^7.12.16",
72
+ "@babel/plugin-proposal-class-properties": "^7.12.13",
73
+ "@babel/plugin-proposal-decorators": "^7.12.13",
74
+ "@babel/plugin-proposal-do-expressions": "^7.12.13",
75
+ "@babel/plugin-proposal-export-default-from": "^7.12.13",
76
+ "@babel/plugin-proposal-export-namespace-from": "^7.12.13",
77
+ "@babel/plugin-proposal-function-bind": "^7.12.13",
78
+ "@babel/plugin-proposal-function-sent": "^7.12.13",
79
+ "@babel/plugin-proposal-json-strings": "^7.12.13",
80
+ "@babel/plugin-proposal-logical-assignment-operators": "^7.12.13",
81
+ "@babel/plugin-proposal-nullish-coalescing-operator": "^7.12.13",
82
+ "@babel/plugin-proposal-numeric-separator": "^7.12.13",
83
+ "@babel/plugin-proposal-optional-chaining": "^7.12.16",
84
+ "@babel/plugin-proposal-pipeline-operator": "^7.12.13",
85
+ "@babel/plugin-proposal-throw-expressions": "^7.12.13",
86
86
  "@babel/plugin-syntax-dynamic-import": "^7.8.3",
87
87
  "@babel/plugin-syntax-import-meta": "^7.10.4",
88
- "@babel/preset-env": "^7.12.11",
89
- "@babel/preset-react": "^7.12.10",
88
+ "@babel/preset-env": "^7.12.16",
89
+ "@babel/preset-react": "^7.12.13",
90
90
  "@types/debug": "^4.1.5",
91
91
  "@types/ejs": "^3.0.5",
92
- "@types/fs-extra": "^9.0.5",
92
+ "@types/fs-extra": "^9.0.7",
93
93
  "@types/is-ci": "^2.0.0",
94
- "@types/js-yaml": "^3.12.5",
94
+ "@types/js-yaml": "^3.12.6",
95
95
  "@types/normalize-package-data": "^2.4.0",
96
96
  "@types/semver": "^7.3.4",
97
- "dmg-builder": "22.10.4",
98
- "electron-builder-squirrel-windows": "22.10.4"
97
+ "dmg-builder": "22.10.5",
98
+ "electron-builder-squirrel-windows": "22.10.5"
99
99
  },
100
100
  "//": "electron-builder-squirrel-windows and dmg-builder added as dev dep for tests (as otherwise `require` doesn't work using Yarn 2)",
101
101
  "typings": "./out/index.d.ts"
package/scheme.json CHANGED
@@ -1304,6 +1304,9 @@
1304
1304
  "string"
1305
1305
  ]
1306
1306
  },
1307
+ "defaultArch": {
1308
+ "type": "string"
1309
+ },
1307
1310
  "description": {
1308
1311
  "description": "As [description](/configuration/configuration#Metadata-description) from application package.json, but allows you to specify different for Linux.",
1309
1312
  "type": [
@@ -1341,7 +1344,7 @@
1341
1344
  "description": "The executable parameters. Pass to executableName"
1342
1345
  },
1343
1346
  "executableName": {
1344
- "description": "The executable name. Defaults to `productName`.\nCannot be specified per target, allowed only in the `linux`.",
1347
+ "description": "The executable name. Defaults to `productName`.",
1345
1348
  "type": [
1346
1349
  "null",
1347
1350
  "string"
@@ -1942,6 +1945,9 @@
1942
1945
  "description": "Whether a dark mode is supported. If your app does have a dark mode, you can make your app follow the system-wide dark mode setting.",
1943
1946
  "type": "boolean"
1944
1947
  },
1948
+ "defaultArch": {
1949
+ "type": "string"
1950
+ },
1945
1951
  "detectUpdateChannel": {
1946
1952
  "default": true,
1947
1953
  "description": "Whether to infer update channel from application version pre-release components. e.g. if version `0.12.1-alpha.1`, channel will be set to `alpha`. Otherwise to `latest`.",
@@ -1989,6 +1995,13 @@
1989
1995
  "string"
1990
1996
  ]
1991
1997
  },
1998
+ "executableName": {
1999
+ "description": "The executable name. Defaults to `productName`.",
2000
+ "type": [
2001
+ "null",
2002
+ "string"
2003
+ ]
2004
+ },
1992
2005
  "extendInfo": {
1993
2006
  "description": "The extra entries for `Info.plist`."
1994
2007
  },
@@ -2524,6 +2537,9 @@
2524
2537
  "description": "Whether a dark mode is supported. If your app does have a dark mode, you can make your app follow the system-wide dark mode setting.",
2525
2538
  "type": "boolean"
2526
2539
  },
2540
+ "defaultArch": {
2541
+ "type": "string"
2542
+ },
2527
2543
  "detectUpdateChannel": {
2528
2544
  "default": true,
2529
2545
  "description": "Whether to infer update channel from application version pre-release components. e.g. if version `0.12.1-alpha.1`, channel will be set to `alpha`. Otherwise to `latest`.",
@@ -2571,6 +2587,13 @@
2571
2587
  "string"
2572
2588
  ]
2573
2589
  },
2590
+ "executableName": {
2591
+ "description": "The executable name. Defaults to `productName`.",
2592
+ "type": [
2593
+ "null",
2594
+ "string"
2595
+ ]
2596
+ },
2574
2597
  "extendInfo": {
2575
2598
  "description": "The extra entries for `Info.plist`."
2576
2599
  },
@@ -4515,7 +4538,14 @@
4515
4538
  ]
4516
4539
  },
4517
4540
  "layout": {
4518
- "type": "object",
4541
+ "anyOf": [
4542
+ {
4543
+ "typeof": "function"
4544
+ },
4545
+ {
4546
+ "type": "null"
4547
+ }
4548
+ ],
4519
4549
  "description": "Specifies any files to make accessible from locations such as `/usr`, `/var`, and `/etc`. See [snap layouts](https://snapcraft.io/docs/snap-layouts) to learn more."
4520
4550
  },
4521
4551
  "mimeTypes": {
@@ -4554,7 +4584,7 @@
4554
4584
  "type": "null"
4555
4585
  }
4556
4586
  ],
4557
- "description": "The list of [plugs](https://snapcraft.io/docs/reference/interfaces).\nDefaults to `[\"desktop\", \"desktop-legacy\", \"home\", \"x11\", \"unity7\", \"browser-support\", \"network\", \"gsettings\", \"audio-playback\", \"pulseaudio\", \"opengl\"]`.\n\nIf list contains `default`, it will be replaced to default list, so, `[\"default\", \"foo\"]` can be used to add custom plug `foo` in addition to defaults.\n\nAdditional attributes can be specified using object instead of just name of plug:\n```\n[\n {\n \"browser-sandbox\": {\n \"interface\": \"browser-support\",\n \"allow-sandbox\": true\n },\n },\n \"another-simple-plug-name\"\n]\n```"
4587
+ "description": "The list of [plugs](https://snapcraft.io/docs/reference/interfaces).\nDefaults to `[\"desktop\", \"desktop-legacy\", \"home\", \"x11\", \"unity7\", \"browser-support\", \"network\", \"gsettings\", \"audio-playback\", \"pulseaudio\", \"opengl\"]`.\n\nIf list contains `default`, it will be replaced to default list, so, `[\"default\", \"foo\"]` can be used to add custom plug `foo` in addition to defaults.\n\nAdditional attributes can be specified using object instead of just name of plug:\n```\n[\n {\n \"browser-sandbox\": {\n \"interface\": \"browser-support\",\n \"allow-sandbox\": true\n },\n },\n \"another-simple-plug-name\"\n]\n```"
4558
4588
  },
4559
4589
  "publish": {
4560
4590
  "anyOf": [
@@ -4640,7 +4670,7 @@
4640
4670
  "type": "null"
4641
4671
  }
4642
4672
  ],
4643
- "description": "The list of [slots](https://snapcraft.io/docs/reference/interfaces).\n\nAdditional attributes can be specified using object instead of just name of slot:\n```\n[\n {\n \"mpris\": {\n \"name\": \"chromium\"\n },\n }\n]\n\nIn case you want your application to be a compliant MPris player, you will need to definie\nThe mpris slot with \"chromium\" name.\nThis electron has it [hardcoded](https://source.chromium.org/chromium/chromium/src/+/master:components/system_media_controls/linux/system_media_controls_linux.cc;l=51;bpv=0;bpt=1),\nand we need to pass this name so snap [will allow it](https://forum.snapcraft.io/t/unable-to-use-mpris-interface/15360/7) in strict confinement."
4673
+ "description": "The list of [slots](https://snapcraft.io/docs/reference/interfaces).\n\nAdditional attributes can be specified using object instead of just name of slot:\n```\n[\n {\n \"mpris\": {\n \"name\": \"chromium\"\n },\n }\n]\n\nIn case you want your application to be a compliant MPris player, you will need to definie\nThe mpris slot with \"chromium\" name.\nThis electron has it [hardcoded](https://source.chromium.org/chromium/chromium/src/+/master:components/system_media_controls/linux/system_media_controls_linux.cc;l=51;bpv=0;bpt=1),\nand we need to pass this name so snap [will allow it](https://forum.snapcraft.io/t/unable-to-use-mpris-interface/15360/7) in strict confinement."
4644
4674
  },
4645
4675
  "stagePackages": {
4646
4676
  "anyOf": [
@@ -5104,6 +5134,9 @@
5104
5134
  "string"
5105
5135
  ]
5106
5136
  },
5137
+ "defaultArch": {
5138
+ "type": "string"
5139
+ },
5107
5140
  "detectUpdateChannel": {
5108
5141
  "default": true,
5109
5142
  "description": "Whether to infer update channel from application version pre-release components. e.g. if version `0.12.1-alpha.1`, channel will be set to `alpha`. Otherwise to `latest`.",
@@ -5116,6 +5149,13 @@
5116
5149
  "string"
5117
5150
  ]
5118
5151
  },
5152
+ "executableName": {
5153
+ "description": "The executable name. Defaults to `productName`.",
5154
+ "type": [
5155
+ "null",
5156
+ "string"
5157
+ ]
5158
+ },
5119
5159
  "extraFiles": {
5120
5160
  "anyOf": [
5121
5161
  {
@@ -5680,6 +5720,9 @@
5680
5720
  ],
5681
5721
  "description": "Debian package options."
5682
5722
  },
5723
+ "defaultArch": {
5724
+ "type": "string"
5725
+ },
5683
5726
  "detectUpdateChannel": {
5684
5727
  "default": true,
5685
5728
  "description": "Whether to infer update channel from application version pre-release components. e.g. if version `0.12.1-alpha.1`, channel will be set to `alpha`. Otherwise to `latest`.",
@@ -5711,8 +5754,15 @@
5711
5754
  "type": "boolean"
5712
5755
  },
5713
5756
  "electronDist": {
5714
- "description": "The path to custom Electron build (e.g. `~/electron/out/R`).",
5715
- "type": "string"
5757
+ "anyOf": [
5758
+ {
5759
+ "typeof": "function"
5760
+ },
5761
+ {
5762
+ "type": "string"
5763
+ }
5764
+ ],
5765
+ "description": "Returns the path to custom Electron build (e.g. `~/electron/out/R`). Zip files must follow the pattern `electron-v${version}-${platformName}-${arch}.zip`, otherwise it will be assumed to be an unpacked Electron app directory"
5716
5766
  },
5717
5767
  "electronDownload": {
5718
5768
  "$ref": "#/definitions/ElectronDownloadOptions",
@@ -5732,6 +5782,13 @@
5732
5782
  "string"
5733
5783
  ]
5734
5784
  },
5785
+ "executableName": {
5786
+ "description": "The executable name. Defaults to `productName`.",
5787
+ "type": [
5788
+ "null",
5789
+ "string"
5790
+ ]
5791
+ },
5735
5792
  "extends": {
5736
5793
  "description": "The name of a built-in configuration preset or path to config file (relative to project dir). Currently, only `react-cra` is supported.\n\nIf `react-scripts` in the app dependencies, `react-cra` will be set automatically. Set to `null` to disable automatic detection.",
5737
5794
  "type": [
@@ -4,30 +4,52 @@
4
4
  !endif
5
5
 
6
6
  Var /GLOBAL packageArch
7
-
8
- !ifdef APP_64
9
- !ifdef APP_ARM64
10
- StrCpy $packageArch "ARM64"
11
- !else
12
- StrCpy $packageArch "64"
13
- !endif
14
-
15
- !insertmacro compute_files_for_current_arch
16
- !else
17
- !insertmacro ia32_app_files
18
- !endif
7
+
8
+ !insertmacro identify_package
9
+ !insertmacro compute_files_for_current_arch
19
10
 
20
11
  !ifdef COMPRESS
21
12
  SetCompress "${COMPRESS}"
22
13
  !endif
23
14
 
24
- !ifdef ZIP_COMPRESSION
25
- nsisunz::Unzip "$PLUGINSDIR\app-$packageArch.zip" "$INSTDIR"
26
- !else
27
- !insertmacro extractUsing7za "$PLUGINSDIR\app-$packageArch.7z"
15
+ !insertmacro decompress
16
+ !insertmacro custom_files_post_decompression
17
+ !macroend
18
+
19
+ !macro identify_package
20
+ !ifdef APP_32
21
+ StrCpy $packageArch "32"
22
+ !endif
23
+ !ifdef APP_64
24
+ ${if} ${RunningX64}
25
+ ${OrIf} ${IsNativeARM64}
26
+ StrCpy $packageArch "64"
27
+ ${endif}
28
+ !endif
29
+ !ifdef APP_ARM64
30
+ ${if} ${IsNativeARM64}
31
+ StrCpy $packageArch "ARM64"
32
+ ${endif}
28
33
  !endif
34
+ !macroend
35
+
36
+ !macro compute_files_for_current_arch
37
+ ${if} $packageArch == "ARM64"
38
+ !ifdef APP_ARM64
39
+ !insertmacro arm64_app_files
40
+ !endif
41
+ ${elseif} $packageArch == "64"
42
+ !ifdef APP_64
43
+ !insertmacro x64_app_files
44
+ !endif
45
+ ${else}
46
+ !ifdef APP_32
47
+ !insertmacro ia32_app_files
48
+ !endif
49
+ ${endIf}
50
+ !macroend
29
51
 
30
- # after decompression
52
+ !macro custom_files_post_decompression
31
53
  ${if} $packageArch == "ARM64"
32
54
  !ifmacrodef customFiles_arm64
33
55
  !insertmacro customFiles_arm64
@@ -43,36 +65,6 @@
43
65
  ${endIf}
44
66
  !macroend
45
67
 
46
- !macro compute_files_for_current_arch
47
- !ifdef APP_32
48
- !ifdef APP_ARM64
49
- ${if} ${IsNativeARM64}
50
- !insertmacro arm64_app_files
51
- ${elseif} ${RunningX64}
52
- !insertmacro x64_app_files
53
- ${else}
54
- !insertmacro ia32_app_files
55
- ${endIf}
56
- !else
57
- ${if} ${RunningX64}
58
- !insertmacro x64_app_files
59
- ${else}
60
- !insertmacro ia32_app_files
61
- ${endIf}
62
- !endif
63
- !else
64
- !ifdef APP_ARM64
65
- ${if} ${IsNativeARM64}
66
- !insertmacro arm64_app_files
67
- ${else}
68
- !insertmacro x64_app_files
69
- ${endIf}
70
- !else
71
- !insertmacro x64_app_files
72
- !endif
73
- !endif
74
- !macroend
75
-
76
68
  !macro arm64_app_files
77
69
  File /oname=$PLUGINSDIR\app-arm64.${COMPRESSION_METHOD} "${APP_ARM64}"
78
70
  !macroend
@@ -82,10 +74,17 @@
82
74
  !macroend
83
75
 
84
76
  !macro ia32_app_files
85
- StrCpy $packageArch "32"
86
77
  File /oname=$PLUGINSDIR\app-32.${COMPRESSION_METHOD} "${APP_32}"
87
78
  !macroend
88
79
 
80
+ !macro decompress
81
+ !ifdef ZIP_COMPRESSION
82
+ nsisunz::Unzip "$PLUGINSDIR\app-$packageArch.zip" "$INSTDIR"
83
+ !else
84
+ !insertmacro extractUsing7za "$PLUGINSDIR\app-$packageArch.7z"
85
+ !endif
86
+ !macroend
87
+
89
88
  !macro extractUsing7za FILE
90
- Nsis7z::Extract "${FILE}"
89
+ Nsis7z::Extract "${FILE}"
91
90
  !macroend