dmg-builder 24.0.0-alpha.1 → 24.0.0-alpha.2

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/out/dmg.js CHANGED
@@ -30,20 +30,20 @@ class DmgTarget extends app_builder_lib_1.Target {
30
30
  file: artifactPath,
31
31
  arch,
32
32
  });
33
- const volumeName = filename_1.sanitizeFileName(this.computeVolumeName(arch, this.options.title));
33
+ const volumeName = (0, filename_1.sanitizeFileName)(this.computeVolumeName(arch, this.options.title));
34
34
  const tempDmg = await createStageDmg(await packager.getTempFile(".dmg"), appPath, volumeName);
35
35
  const specification = await this.computeDmgOptions();
36
36
  // https://github.com/electron-userland/electron-builder/issues/2115
37
37
  const backgroundFile = specification.background == null ? null : await transformBackgroundFileIfNeed(specification.background, packager.info.tempDirManager);
38
38
  const finalSize = await computeAssetSize(packager.info.cancellationToken, tempDmg, specification, backgroundFile);
39
39
  const expandingFinalSize = finalSize * 0.1 + finalSize;
40
- await builder_util_1.exec("hdiutil", ["resize", "-size", expandingFinalSize.toString(), tempDmg]);
40
+ await (0, builder_util_1.exec)("hdiutil", ["resize", "-size", expandingFinalSize.toString(), tempDmg]);
41
41
  const volumePath = path.join("/Volumes", volumeName);
42
- if (await fs_1.exists(volumePath)) {
42
+ if (await (0, fs_1.exists)(volumePath)) {
43
43
  builder_util_1.log.debug({ volumePath }, "unmounting previous disk image");
44
- await dmgUtil_1.detach(volumePath);
44
+ await (0, dmgUtil_1.detach)(volumePath);
45
45
  }
46
- if (!(await dmgUtil_1.attachAndExecute(tempDmg, true, () => customizeDmg(volumePath, specification, packager, backgroundFile)))) {
46
+ if (!(await (0, dmgUtil_1.attachAndExecute)(tempDmg, true, () => customizeDmg(volumePath, specification, packager, backgroundFile)))) {
47
47
  return;
48
48
  }
49
49
  // dmg file must not exist otherwise hdiutil failed (https://github.com/electron-userland/electron-builder/issues/1308#issuecomment-282847594), so, -ov must be specified
@@ -51,11 +51,11 @@ class DmgTarget extends app_builder_lib_1.Target {
51
51
  if (specification.format === "UDZO") {
52
52
  args.push("-imagekey", `zlib-level=${process.env.ELECTRON_BUILDER_COMPRESSION_LEVEL || "9"}`);
53
53
  }
54
- await builder_util_1.spawn("hdiutil", addLogLevel(args));
55
- if (this.options.internetEnabled && parseInt(os_1.release().split(".")[0], 10) < 19) {
56
- await builder_util_1.exec("hdiutil", addLogLevel(["internet-enable"]).concat(artifactPath));
54
+ await (0, builder_util_1.spawn)("hdiutil", addLogLevel(args));
55
+ if (this.options.internetEnabled && parseInt((0, os_1.release)().split(".")[0], 10) < 19) {
56
+ await (0, builder_util_1.exec)("hdiutil", addLogLevel(["internet-enable"]).concat(artifactPath));
57
57
  }
58
- const licenseData = await dmgLicense_1.addLicenseToDmg(packager, artifactPath);
58
+ const licenseData = await (0, dmgLicense_1.addLicenseToDmg)(packager, artifactPath);
59
59
  if (packager.packagerOptions.effectiveOptionComputed != null) {
60
60
  await packager.packagerOptions.effectiveOptionComputed({ licenseData });
61
61
  }
@@ -63,7 +63,7 @@ class DmgTarget extends app_builder_lib_1.Target {
63
63
  await this.signDmg(artifactPath);
64
64
  }
65
65
  const safeArtifactName = packager.computeSafeArtifactName(artifactName, "dmg");
66
- const updateInfo = this.options.writeUpdateInfo === false ? null : await differentialUpdateInfoBuilder_1.createBlockmap(artifactPath, this, packager, safeArtifactName);
66
+ const updateInfo = this.options.writeUpdateInfo === false ? null : await (0, differentialUpdateInfoBuilder_1.createBlockmap)(artifactPath, this, packager, safeArtifactName);
67
67
  await packager.info.callArtifactBuildCompleted({
68
68
  file: artifactPath,
69
69
  safeArtifactName,
@@ -75,7 +75,7 @@ class DmgTarget extends app_builder_lib_1.Target {
75
75
  });
76
76
  }
77
77
  async signDmg(artifactPath) {
78
- if (!macCodeSign_1.isSignAllowed(false)) {
78
+ if (!(0, macCodeSign_1.isSignAllowed)(false)) {
79
79
  return;
80
80
  }
81
81
  const packager = this.packager;
@@ -87,9 +87,9 @@ class DmgTarget extends app_builder_lib_1.Target {
87
87
  }
88
88
  const keychainFile = (await packager.codeSigningInfo.value).keychainFile;
89
89
  const certificateType = "Developer ID Application";
90
- let identity = await macCodeSign_1.findIdentity(certificateType, qualifier, keychainFile);
90
+ let identity = await (0, macCodeSign_1.findIdentity)(certificateType, qualifier, keychainFile);
91
91
  if (identity == null) {
92
- identity = await macCodeSign_1.findIdentity("Mac Developer", qualifier, keychainFile);
92
+ identity = await (0, macCodeSign_1.findIdentity)("Mac Developer", qualifier, keychainFile);
93
93
  if (identity == null) {
94
94
  return;
95
95
  }
@@ -99,12 +99,12 @@ class DmgTarget extends app_builder_lib_1.Target {
99
99
  args.push("--keychain", keychainFile);
100
100
  }
101
101
  args.push(artifactPath);
102
- await builder_util_1.exec("codesign", args);
102
+ await (0, builder_util_1.exec)("codesign", args);
103
103
  }
104
104
  computeVolumeName(arch, custom) {
105
105
  const appInfo = this.packager.appInfo;
106
106
  const shortVersion = this.packager.platformSpecificBuildOptions.bundleShortVersion || appInfo.version;
107
- const archString = builder_util_1.getArchSuffix(arch, this.packager.platformSpecificBuildOptions.defaultArch);
107
+ const archString = (0, builder_util_1.getArchSuffix)(arch, this.packager.platformSpecificBuildOptions.defaultArch);
108
108
  if (custom == null) {
109
109
  return `${appInfo.productFilename} ${shortVersion}${archString}`;
110
110
  }
@@ -122,7 +122,7 @@ class DmgTarget extends app_builder_lib_1.Target {
122
122
  if (specification.icon == null && specification.icon !== null) {
123
123
  specification.icon = await packager.getIconPath();
124
124
  }
125
- if (specification.icon != null && builder_util_1.isEmptyOrSpaces(specification.icon)) {
125
+ if (specification.icon != null && (0, builder_util_1.isEmptyOrSpaces)(specification.icon)) {
126
126
  throw new builder_util_1.InvalidConfigurationError("dmg.icon cannot be specified as empty string");
127
127
  }
128
128
  const background = specification.background;
@@ -132,7 +132,7 @@ class DmgTarget extends app_builder_lib_1.Target {
132
132
  }
133
133
  }
134
134
  else if (background == null) {
135
- specification.background = await dmgUtil_1.computeBackground(packager);
135
+ specification.background = await (0, dmgUtil_1.computeBackground)(packager);
136
136
  }
137
137
  else {
138
138
  specification.background = path.resolve(packager.info.projectDir, background);
@@ -184,7 +184,7 @@ async function createStageDmg(tempDmg, appPath, volumeName) {
184
184
  imageArgs.push(tempDmg);
185
185
  // The reason for retrying up to ten times is that hdiutil create in some cases fail to unmount due to "resource busy".
186
186
  // https://github.com/electron-userland/electron-builder/issues/5431
187
- await builder_util_1.retry(() => builder_util_1.spawn("hdiutil", imageArgs), 5, 1000);
187
+ await (0, builder_util_1.retry)(() => (0, builder_util_1.spawn)("hdiutil", imageArgs), 5, 1000);
188
188
  return tempDmg;
189
189
  }
190
190
  function addLogLevel(args) {
@@ -193,12 +193,12 @@ function addLogLevel(args) {
193
193
  }
194
194
  async function computeAssetSize(cancellationToken, dmgFile, specification, backgroundFile) {
195
195
  const asyncTaskManager = new builder_util_1.AsyncTaskManager(cancellationToken);
196
- asyncTaskManager.addTask(fs_extra_1.stat(dmgFile));
196
+ asyncTaskManager.addTask((0, fs_extra_1.stat)(dmgFile));
197
197
  if (specification.icon != null) {
198
- asyncTaskManager.addTask(fs_1.statOrNull(specification.icon));
198
+ asyncTaskManager.addTask((0, fs_1.statOrNull)(specification.icon));
199
199
  }
200
200
  if (backgroundFile != null) {
201
- asyncTaskManager.addTask(fs_extra_1.stat(backgroundFile));
201
+ asyncTaskManager.addTask((0, fs_extra_1.stat)(backgroundFile));
202
202
  }
203
203
  let result = 32 * 1024;
204
204
  for (const stat of await asyncTaskManager.awaitTasks()) {
@@ -237,7 +237,7 @@ async function customizeDmg(volumePath, specification, packager, backgroundFile)
237
237
  if (backgroundFile != null) {
238
238
  args.push("--background", backgroundFile);
239
239
  }
240
- const data = await appBuilder_1.executeAppBuilderAsJson(args);
240
+ const data = await (0, appBuilder_1.executeAppBuilderAsJson)(args);
241
241
  if (data.backgroundWidth != null) {
242
242
  env.windowWidth = window == null ? null : window.width;
243
243
  env.windowHeight = window == null ? null : window.height;
@@ -261,10 +261,10 @@ async function customizeDmg(volumePath, specification, packager, backgroundFile)
261
261
  const executePython = async (execName) => {
262
262
  let pythonPath = process.env.PYTHON_PATH;
263
263
  if (!pythonPath) {
264
- pythonPath = (await builder_util_1.exec("which", [execName])).trim();
264
+ pythonPath = (await (0, builder_util_1.exec)("which", [execName])).trim();
265
265
  }
266
- await builder_util_1.exec(pythonPath, [path.join(dmgUtil_1.getDmgVendorPath(), "dmgbuild/core.py")], {
267
- cwd: dmgUtil_1.getDmgVendorPath(),
266
+ await (0, builder_util_1.exec)(pythonPath, [path.join((0, dmgUtil_1.getDmgVendorPath)(), "dmgbuild/core.py")], {
267
+ cwd: (0, dmgUtil_1.getDmgVendorPath)(),
268
268
  env,
269
269
  });
270
270
  };
@@ -290,17 +290,17 @@ async function computeDmgEntries(specification, volumePath, packager, asyncTaskM
290
290
  }
291
291
  result += `'${escapedEntryName}': (${c.x}, ${c.y})`;
292
292
  if (c.type === "link") {
293
- asyncTaskManager.addTask(builder_util_1.exec("ln", ["-s", `/${entryPath.startsWith("/") ? entryPath.substring(1) : entryPath}`, `${volumePath}/${entryName}`]));
293
+ asyncTaskManager.addTask((0, builder_util_1.exec)("ln", ["-s", `/${entryPath.startsWith("/") ? entryPath.substring(1) : entryPath}`, `${volumePath}/${entryName}`]));
294
294
  }
295
295
  // use c.path instead of entryPath (to be sure that this logic is not applied to .app bundle) https://github.com/electron-userland/electron-builder/issues/2147
296
- else if (!builder_util_1.isEmptyOrSpaces(c.path) && (c.type === "file" || c.type === "dir")) {
296
+ else if (!(0, builder_util_1.isEmptyOrSpaces)(c.path) && (c.type === "file" || c.type === "dir")) {
297
297
  const source = await packager.getResource(c.path);
298
298
  if (source == null) {
299
299
  builder_util_1.log.warn({ entryPath, reason: "doesn't exist" }, "skipped DMG item copying");
300
300
  continue;
301
301
  }
302
302
  const destination = `${volumePath}/${entryName}`;
303
- asyncTaskManager.addTask(c.type === "dir" || (await fs_extra_1.stat(source)).isDirectory() ? fs_1.copyDir(source, destination) : fs_1.copyFile(source, destination));
303
+ asyncTaskManager.addTask(c.type === "dir" || (await (0, fs_extra_1.stat)(source)).isDirectory() ? (0, fs_1.copyDir)(source, destination) : (0, fs_1.copyFile)(source, destination));
304
304
  }
305
305
  }
306
306
  return result;
@@ -310,9 +310,9 @@ async function transformBackgroundFileIfNeed(file, tmpDir) {
310
310
  return file;
311
311
  }
312
312
  const retinaFile = file.replace(/\.([a-z]+)$/, "@2x.$1");
313
- if (await fs_1.exists(retinaFile)) {
313
+ if (await (0, fs_1.exists)(retinaFile)) {
314
314
  const tiffFile = await tmpDir.getTempFile({ suffix: ".tiff" });
315
- await builder_util_1.exec("tiffutil", ["-cathidpicheck", file, retinaFile, "-out", tiffFile]);
315
+ await (0, builder_util_1.exec)("tiffutil", ["-cathidpicheck", file, retinaFile, "-out", tiffFile]);
316
316
  return tiffFile;
317
317
  }
318
318
  return file;
package/out/dmg.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"dmg.js","sourceRoot":"","sources":["../src/dmg.ts"],"names":[],"mappings":"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","sourcesContent":["import { DmgOptions, Target } from \"app-builder-lib\"\nimport { findIdentity, isSignAllowed } from \"app-builder-lib/out/codeSign/macCodeSign\"\nimport MacPackager from \"app-builder-lib/out/macPackager\"\nimport { createBlockmap } from \"app-builder-lib/out/targets/differentialUpdateInfoBuilder\"\nimport { executeAppBuilderAsJson } from \"app-builder-lib/out/util/appBuilder\"\nimport { sanitizeFileName } from \"app-builder-lib/out/util/filename\"\nimport { Arch, AsyncTaskManager, exec, getArchSuffix, InvalidConfigurationError, isEmptyOrSpaces, log, spawn, retry } from \"builder-util\"\nimport { CancellationToken } from \"builder-util-runtime\"\nimport { copyDir, copyFile, exists, statOrNull } from \"builder-util/out/fs\"\nimport { stat } from \"fs-extra\"\nimport * as path from \"path\"\nimport { TmpDir } from \"temp-file\"\nimport { addLicenseToDmg } from \"./dmgLicense\"\nimport { attachAndExecute, computeBackground, detach, getDmgVendorPath } from \"./dmgUtil\"\nimport { release as getOsRelease } from \"os\"\n\nexport class DmgTarget extends Target {\n readonly options: DmgOptions = this.packager.config.dmg || Object.create(null)\n\n constructor(private readonly packager: MacPackager, readonly outDir: string) {\n super(\"dmg\")\n }\n\n async build(appPath: string, arch: Arch) {\n const packager = this.packager\n // tslint:disable-next-line:no-invalid-template-strings\n const artifactName = packager.expandArtifactNamePattern(\n this.options,\n \"dmg\",\n arch,\n \"${productName}-\" + (packager.platformSpecificBuildOptions.bundleShortVersion || \"${version}\") + \"-${arch}.${ext}\",\n true,\n packager.platformSpecificBuildOptions.defaultArch\n )\n const artifactPath = path.join(this.outDir, artifactName)\n await packager.info.callArtifactBuildStarted({\n targetPresentableName: \"DMG\",\n file: artifactPath,\n arch,\n })\n\n const volumeName = sanitizeFileName(this.computeVolumeName(arch, this.options.title))\n\n const tempDmg = await createStageDmg(await packager.getTempFile(\".dmg\"), appPath, volumeName)\n\n const specification = await this.computeDmgOptions()\n // https://github.com/electron-userland/electron-builder/issues/2115\n const backgroundFile = specification.background == null ? null : await transformBackgroundFileIfNeed(specification.background, packager.info.tempDirManager)\n const finalSize = await computeAssetSize(packager.info.cancellationToken, tempDmg, specification, backgroundFile)\n const expandingFinalSize = finalSize * 0.1 + finalSize\n await exec(\"hdiutil\", [\"resize\", \"-size\", expandingFinalSize.toString(), tempDmg])\n\n const volumePath = path.join(\"/Volumes\", volumeName)\n if (await exists(volumePath)) {\n log.debug({ volumePath }, \"unmounting previous disk image\")\n await detach(volumePath)\n }\n\n if (!(await attachAndExecute(tempDmg, true, () => customizeDmg(volumePath, specification, packager, backgroundFile)))) {\n return\n }\n\n // dmg file must not exist otherwise hdiutil failed (https://github.com/electron-userland/electron-builder/issues/1308#issuecomment-282847594), so, -ov must be specified\n const args = [\"convert\", tempDmg, \"-ov\", \"-format\", specification.format!, \"-o\", artifactPath]\n if (specification.format === \"UDZO\") {\n args.push(\"-imagekey\", `zlib-level=${process.env.ELECTRON_BUILDER_COMPRESSION_LEVEL || \"9\"}`)\n }\n await spawn(\"hdiutil\", addLogLevel(args))\n if (this.options.internetEnabled && parseInt(getOsRelease().split(\".\")[0], 10) < 19) {\n await exec(\"hdiutil\", addLogLevel([\"internet-enable\"]).concat(artifactPath))\n }\n\n const licenseData = await addLicenseToDmg(packager, artifactPath)\n if (packager.packagerOptions.effectiveOptionComputed != null) {\n await packager.packagerOptions.effectiveOptionComputed({ licenseData })\n }\n\n if (this.options.sign === true) {\n await this.signDmg(artifactPath)\n }\n\n const safeArtifactName = packager.computeSafeArtifactName(artifactName, \"dmg\")\n const updateInfo = this.options.writeUpdateInfo === false ? null : await createBlockmap(artifactPath, this, packager, safeArtifactName)\n await packager.info.callArtifactBuildCompleted({\n file: artifactPath,\n safeArtifactName,\n target: this,\n arch,\n packager,\n isWriteUpdateInfo: updateInfo != null,\n updateInfo,\n })\n }\n\n private async signDmg(artifactPath: string) {\n if (!isSignAllowed(false)) {\n return\n }\n\n const packager = this.packager\n const qualifier = packager.platformSpecificBuildOptions.identity\n // explicitly disabled if set to null\n if (qualifier === null) {\n // macPackager already somehow handle this situation, so, here just return\n return\n }\n\n const keychainFile = (await packager.codeSigningInfo.value).keychainFile\n const certificateType = \"Developer ID Application\"\n let identity = await findIdentity(certificateType, qualifier, keychainFile)\n if (identity == null) {\n identity = await findIdentity(\"Mac Developer\", qualifier, keychainFile)\n if (identity == null) {\n return\n }\n }\n\n const args = [\"--sign\", identity.hash]\n if (keychainFile != null) {\n args.push(\"--keychain\", keychainFile)\n }\n args.push(artifactPath)\n await exec(\"codesign\", args)\n }\n\n computeVolumeName(arch: Arch, custom?: string | null): string {\n const appInfo = this.packager.appInfo\n const shortVersion = this.packager.platformSpecificBuildOptions.bundleShortVersion || appInfo.version\n const archString = getArchSuffix(arch, this.packager.platformSpecificBuildOptions.defaultArch)\n\n if (custom == null) {\n return `${appInfo.productFilename} ${shortVersion}${archString}`\n }\n\n return custom\n .replace(/\\${arch}/g, archString)\n .replace(/\\${shortVersion}/g, shortVersion)\n .replace(/\\${version}/g, appInfo.version)\n .replace(/\\${name}/g, appInfo.name)\n .replace(/\\${productName}/g, appInfo.productName)\n }\n\n // public to test\n async computeDmgOptions(): Promise<DmgOptions> {\n const packager = this.packager\n const specification: DmgOptions = { ...this.options }\n if (specification.icon == null && specification.icon !== null) {\n specification.icon = await packager.getIconPath()\n }\n\n if (specification.icon != null && isEmptyOrSpaces(specification.icon)) {\n throw new InvalidConfigurationError(\"dmg.icon cannot be specified as empty string\")\n }\n\n const background = specification.background\n if (specification.backgroundColor != null) {\n if (background != null) {\n throw new InvalidConfigurationError(\"Both dmg.backgroundColor and dmg.background are specified — please set the only one\")\n }\n } else if (background == null) {\n specification.background = await computeBackground(packager)\n } else {\n specification.background = path.resolve(packager.info.projectDir, background)\n }\n\n if (specification.format == null) {\n if (process.env.ELECTRON_BUILDER_COMPRESSION_LEVEL != null) {\n ;(specification as any).format = \"UDZO\"\n } else if (packager.compression === \"store\") {\n specification.format = \"UDRO\"\n } else {\n specification.format = packager.compression === \"maximum\" ? \"UDBZ\" : \"UDZO\"\n }\n }\n\n if (specification.contents == null) {\n specification.contents = [\n {\n x: 130,\n y: 220,\n },\n {\n x: 410,\n y: 220,\n type: \"link\",\n path: \"/Applications\",\n },\n ]\n }\n return specification\n }\n}\n\nasync function createStageDmg(tempDmg: string, appPath: string, volumeName: string) {\n //noinspection SpellCheckingInspection\n const imageArgs = addLogLevel([\"create\", \"-srcfolder\", appPath, \"-volname\", volumeName, \"-anyowners\", \"-nospotlight\", \"-format\", \"UDRW\"])\n if (log.isDebugEnabled) {\n imageArgs.push(\"-debug\")\n }\n\n let filesystem = [\"HFS+\", \"-fsargs\", \"-c c=64,a=16,e=16\"]\n if (process.arch === \"arm64\") {\n // Apple Silicon `hdiutil` dropped support for HFS+, so we force the latest type\n // https://github.com/electron-userland/electron-builder/issues/4606\n filesystem = [\"APFS\"]\n log.warn(null, \"Detected arm64 process, HFS+ is unavailable. Creating dmg with APFS - supports Mac OSX 10.12+\")\n }\n imageArgs.push(\"-fs\", ...filesystem)\n imageArgs.push(tempDmg)\n // The reason for retrying up to ten times is that hdiutil create in some cases fail to unmount due to \"resource busy\".\n // https://github.com/electron-userland/electron-builder/issues/5431\n await retry(() => spawn(\"hdiutil\", imageArgs), 5, 1000)\n return tempDmg\n}\n\nfunction addLogLevel(args: Array<string>): Array<string> {\n args.push(process.env.DEBUG_DMG === \"true\" ? \"-verbose\" : \"-quiet\")\n return args\n}\n\nasync function computeAssetSize(cancellationToken: CancellationToken, dmgFile: string, specification: DmgOptions, backgroundFile: string | null | undefined) {\n const asyncTaskManager = new AsyncTaskManager(cancellationToken)\n asyncTaskManager.addTask(stat(dmgFile))\n\n if (specification.icon != null) {\n asyncTaskManager.addTask(statOrNull(specification.icon))\n }\n\n if (backgroundFile != null) {\n asyncTaskManager.addTask(stat(backgroundFile))\n }\n\n let result = 32 * 1024\n for (const stat of await asyncTaskManager.awaitTasks()) {\n if (stat != null) {\n result += stat.size\n }\n }\n return result\n}\n\nasync function customizeDmg(volumePath: string, specification: DmgOptions, packager: MacPackager, backgroundFile: string | null | undefined) {\n const window = specification.window\n const env: any = {\n ...process.env,\n volumePath,\n appFileName: `${packager.appInfo.productFilename}.app`,\n iconSize: specification.iconSize || 80,\n iconTextSize: specification.iconTextSize || 12,\n\n PYTHONIOENCODING: \"utf8\",\n }\n\n if (specification.backgroundColor != null || specification.background == null) {\n env.backgroundColor = specification.backgroundColor || \"#ffffff\"\n\n if (window != null) {\n env.windowX = (window.x == null ? 100 : window.x).toString()\n env.windowY = (window.y == null ? 400 : window.y).toString()\n env.windowWidth = (window.width || 540).toString()\n env.windowHeight = (window.height || 380).toString()\n }\n } else {\n delete env.backgroundColor\n }\n\n const args = [\"dmg\", \"--volume\", volumePath]\n if (specification.icon != null) {\n args.push(\"--icon\", (await packager.getResource(specification.icon))!)\n }\n if (backgroundFile != null) {\n args.push(\"--background\", backgroundFile)\n }\n\n const data: any = await executeAppBuilderAsJson(args)\n if (data.backgroundWidth != null) {\n env.windowWidth = window == null ? null : window.width\n env.windowHeight = window == null ? null : window.height\n\n if (env.windowWidth == null) {\n env.windowWidth = data.backgroundWidth.toString()\n }\n if (env.windowHeight == null) {\n env.windowHeight = data.backgroundHeight.toString()\n }\n\n if (env.windowX == null) {\n env.windowX = 400\n }\n if (env.windowY == null) {\n env.windowY = Math.round((1440 - env.windowHeight) / 2).toString()\n }\n }\n\n Object.assign(env, data)\n\n const asyncTaskManager = new AsyncTaskManager(packager.info.cancellationToken)\n env.iconLocations = await computeDmgEntries(specification, volumePath, packager, asyncTaskManager)\n await asyncTaskManager.awaitTasks()\n const executePython = async (execName: string) => {\n let pythonPath = process.env.PYTHON_PATH\n if (!pythonPath) {\n pythonPath = (await exec(\"which\", [execName])).trim()\n }\n await exec(pythonPath, [path.join(getDmgVendorPath(), \"dmgbuild/core.py\")], {\n cwd: getDmgVendorPath(),\n env,\n })\n }\n try {\n await executePython(\"python3\")\n } catch (error) {\n await executePython(\"python\")\n }\n return packager.packagerOptions.effectiveOptionComputed == null || !(await packager.packagerOptions.effectiveOptionComputed({ volumePath, specification, packager }))\n}\n\nasync function computeDmgEntries(specification: DmgOptions, volumePath: string, packager: MacPackager, asyncTaskManager: AsyncTaskManager): Promise<string> {\n let result = \"\"\n for (const c of specification.contents!) {\n if (c.path != null && c.path.endsWith(\".app\") && c.type !== \"link\") {\n log.warn({ path: c.path, reason: \"actual path to app will be used instead\" }, \"do not specify path for application\")\n }\n\n const entryPath = c.path || `${packager.appInfo.productFilename}.app`\n const entryName = c.name || path.basename(entryPath)\n const escapedEntryName = entryName.replace(/['\\\\]/g, match => `\\\\${match}`)\n if (result.length !== 0) {\n result += \",\\n\"\n }\n result += `'${escapedEntryName}': (${c.x}, ${c.y})`\n\n if (c.type === \"link\") {\n asyncTaskManager.addTask(exec(\"ln\", [\"-s\", `/${entryPath.startsWith(\"/\") ? entryPath.substring(1) : entryPath}`, `${volumePath}/${entryName}`]))\n }\n // use c.path instead of entryPath (to be sure that this logic is not applied to .app bundle) https://github.com/electron-userland/electron-builder/issues/2147\n else if (!isEmptyOrSpaces(c.path) && (c.type === \"file\" || c.type === \"dir\")) {\n const source = await packager.getResource(c.path)\n if (source == null) {\n log.warn({ entryPath, reason: \"doesn't exist\" }, \"skipped DMG item copying\")\n continue\n }\n\n const destination = `${volumePath}/${entryName}`\n asyncTaskManager.addTask(c.type === \"dir\" || (await stat(source)).isDirectory() ? copyDir(source, destination) : copyFile(source, destination))\n }\n }\n return result\n}\n\nasync function transformBackgroundFileIfNeed(file: string, tmpDir: TmpDir): Promise<string> {\n if (file.endsWith(\".tiff\") || file.endsWith(\".TIFF\")) {\n return file\n }\n\n const retinaFile = file.replace(/\\.([a-z]+)$/, \"@2x.$1\")\n if (await exists(retinaFile)) {\n const tiffFile = await tmpDir.getTempFile({ suffix: \".tiff\" })\n await exec(\"tiffutil\", [\"-cathidpicheck\", file, retinaFile, \"-out\", tiffFile])\n return tiffFile\n }\n\n return file\n}\n"]}
1
+ {"version":3,"file":"dmg.js","sourceRoot":"","sources":["../src/dmg.ts"],"names":[],"mappings":"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","sourcesContent":["import { DmgOptions, Target } from \"app-builder-lib\"\nimport { findIdentity, isSignAllowed } from \"app-builder-lib/out/codeSign/macCodeSign\"\nimport MacPackager from \"app-builder-lib/out/macPackager\"\nimport { createBlockmap } from \"app-builder-lib/out/targets/differentialUpdateInfoBuilder\"\nimport { executeAppBuilderAsJson } from \"app-builder-lib/out/util/appBuilder\"\nimport { sanitizeFileName } from \"app-builder-lib/out/util/filename\"\nimport { Arch, AsyncTaskManager, exec, getArchSuffix, InvalidConfigurationError, isEmptyOrSpaces, log, spawn, retry } from \"builder-util\"\nimport { CancellationToken } from \"builder-util-runtime\"\nimport { copyDir, copyFile, exists, statOrNull } from \"builder-util/out/fs\"\nimport { stat } from \"fs-extra\"\nimport * as path from \"path\"\nimport { TmpDir } from \"temp-file\"\nimport { addLicenseToDmg } from \"./dmgLicense\"\nimport { attachAndExecute, computeBackground, detach, getDmgVendorPath } from \"./dmgUtil\"\nimport { release as getOsRelease } from \"os\"\n\nexport class DmgTarget extends Target {\n readonly options: DmgOptions = this.packager.config.dmg || Object.create(null)\n\n constructor(private readonly packager: MacPackager, readonly outDir: string) {\n super(\"dmg\")\n }\n\n async build(appPath: string, arch: Arch) {\n const packager = this.packager\n // tslint:disable-next-line:no-invalid-template-strings\n const artifactName = packager.expandArtifactNamePattern(\n this.options,\n \"dmg\",\n arch,\n \"${productName}-\" + (packager.platformSpecificBuildOptions.bundleShortVersion || \"${version}\") + \"-${arch}.${ext}\",\n true,\n packager.platformSpecificBuildOptions.defaultArch\n )\n const artifactPath = path.join(this.outDir, artifactName)\n await packager.info.callArtifactBuildStarted({\n targetPresentableName: \"DMG\",\n file: artifactPath,\n arch,\n })\n\n const volumeName = sanitizeFileName(this.computeVolumeName(arch, this.options.title))\n\n const tempDmg = await createStageDmg(await packager.getTempFile(\".dmg\"), appPath, volumeName)\n\n const specification = await this.computeDmgOptions()\n // https://github.com/electron-userland/electron-builder/issues/2115\n const backgroundFile = specification.background == null ? null : await transformBackgroundFileIfNeed(specification.background, packager.info.tempDirManager)\n const finalSize = await computeAssetSize(packager.info.cancellationToken, tempDmg, specification, backgroundFile)\n const expandingFinalSize = finalSize * 0.1 + finalSize\n await exec(\"hdiutil\", [\"resize\", \"-size\", expandingFinalSize.toString(), tempDmg])\n\n const volumePath = path.join(\"/Volumes\", volumeName)\n if (await exists(volumePath)) {\n log.debug({ volumePath }, \"unmounting previous disk image\")\n await detach(volumePath)\n }\n\n if (!(await attachAndExecute(tempDmg, true, () => customizeDmg(volumePath, specification, packager, backgroundFile)))) {\n return\n }\n\n // dmg file must not exist otherwise hdiutil failed (https://github.com/electron-userland/electron-builder/issues/1308#issuecomment-282847594), so, -ov must be specified\n const args = [\"convert\", tempDmg, \"-ov\", \"-format\", specification.format!, \"-o\", artifactPath]\n if (specification.format === \"UDZO\") {\n args.push(\"-imagekey\", `zlib-level=${process.env.ELECTRON_BUILDER_COMPRESSION_LEVEL || \"9\"}`)\n }\n await spawn(\"hdiutil\", addLogLevel(args))\n if (this.options.internetEnabled && parseInt(getOsRelease().split(\".\")[0], 10) < 19) {\n await exec(\"hdiutil\", addLogLevel([\"internet-enable\"]).concat(artifactPath))\n }\n\n const licenseData = await addLicenseToDmg(packager, artifactPath)\n if (packager.packagerOptions.effectiveOptionComputed != null) {\n await packager.packagerOptions.effectiveOptionComputed({ licenseData })\n }\n\n if (this.options.sign === true) {\n await this.signDmg(artifactPath)\n }\n\n const safeArtifactName = packager.computeSafeArtifactName(artifactName, \"dmg\")\n const updateInfo = this.options.writeUpdateInfo === false ? null : await createBlockmap(artifactPath, this, packager, safeArtifactName)\n await packager.info.callArtifactBuildCompleted({\n file: artifactPath,\n safeArtifactName,\n target: this,\n arch,\n packager,\n isWriteUpdateInfo: updateInfo != null,\n updateInfo,\n })\n }\n\n private async signDmg(artifactPath: string) {\n if (!isSignAllowed(false)) {\n return\n }\n\n const packager = this.packager\n const qualifier = packager.platformSpecificBuildOptions.identity\n // explicitly disabled if set to null\n if (qualifier === null) {\n // macPackager already somehow handle this situation, so, here just return\n return\n }\n\n const keychainFile = (await packager.codeSigningInfo.value).keychainFile\n const certificateType = \"Developer ID Application\"\n let identity = await findIdentity(certificateType, qualifier, keychainFile)\n if (identity == null) {\n identity = await findIdentity(\"Mac Developer\", qualifier, keychainFile)\n if (identity == null) {\n return\n }\n }\n\n const args = [\"--sign\", identity.hash]\n if (keychainFile != null) {\n args.push(\"--keychain\", keychainFile)\n }\n args.push(artifactPath)\n await exec(\"codesign\", args)\n }\n\n computeVolumeName(arch: Arch, custom?: string | null): string {\n const appInfo = this.packager.appInfo\n const shortVersion = this.packager.platformSpecificBuildOptions.bundleShortVersion || appInfo.version\n const archString = getArchSuffix(arch, this.packager.platformSpecificBuildOptions.defaultArch)\n\n if (custom == null) {\n return `${appInfo.productFilename} ${shortVersion}${archString}`\n }\n\n return custom\n .replace(/\\${arch}/g, archString)\n .replace(/\\${shortVersion}/g, shortVersion)\n .replace(/\\${version}/g, appInfo.version)\n .replace(/\\${name}/g, appInfo.name)\n .replace(/\\${productName}/g, appInfo.productName)\n }\n\n // public to test\n async computeDmgOptions(): Promise<DmgOptions> {\n const packager = this.packager\n const specification: DmgOptions = { ...this.options }\n if (specification.icon == null && specification.icon !== null) {\n specification.icon = await packager.getIconPath()\n }\n\n if (specification.icon != null && isEmptyOrSpaces(specification.icon)) {\n throw new InvalidConfigurationError(\"dmg.icon cannot be specified as empty string\")\n }\n\n const background = specification.background\n if (specification.backgroundColor != null) {\n if (background != null) {\n throw new InvalidConfigurationError(\"Both dmg.backgroundColor and dmg.background are specified — please set the only one\")\n }\n } else if (background == null) {\n specification.background = await computeBackground(packager)\n } else {\n specification.background = path.resolve(packager.info.projectDir, background)\n }\n\n if (specification.format == null) {\n if (process.env.ELECTRON_BUILDER_COMPRESSION_LEVEL != null) {\n ;(specification as any).format = \"UDZO\"\n } else if (packager.compression === \"store\") {\n specification.format = \"UDRO\"\n } else {\n specification.format = packager.compression === \"maximum\" ? \"UDBZ\" : \"UDZO\"\n }\n }\n\n if (specification.contents == null) {\n specification.contents = [\n {\n x: 130,\n y: 220,\n },\n {\n x: 410,\n y: 220,\n type: \"link\",\n path: \"/Applications\",\n },\n ]\n }\n return specification\n }\n}\n\nasync function createStageDmg(tempDmg: string, appPath: string, volumeName: string) {\n //noinspection SpellCheckingInspection\n const imageArgs = addLogLevel([\"create\", \"-srcfolder\", appPath, \"-volname\", volumeName, \"-anyowners\", \"-nospotlight\", \"-format\", \"UDRW\"])\n if (log.isDebugEnabled) {\n imageArgs.push(\"-debug\")\n }\n\n let filesystem = [\"HFS+\", \"-fsargs\", \"-c c=64,a=16,e=16\"]\n if (process.arch === \"arm64\") {\n // Apple Silicon `hdiutil` dropped support for HFS+, so we force the latest type\n // https://github.com/electron-userland/electron-builder/issues/4606\n filesystem = [\"APFS\"]\n log.warn(null, \"Detected arm64 process, HFS+ is unavailable. Creating dmg with APFS - supports Mac OSX 10.12+\")\n }\n imageArgs.push(\"-fs\", ...filesystem)\n imageArgs.push(tempDmg)\n // The reason for retrying up to ten times is that hdiutil create in some cases fail to unmount due to \"resource busy\".\n // https://github.com/electron-userland/electron-builder/issues/5431\n await retry(() => spawn(\"hdiutil\", imageArgs), 5, 1000)\n return tempDmg\n}\n\nfunction addLogLevel(args: Array<string>): Array<string> {\n args.push(process.env.DEBUG_DMG === \"true\" ? \"-verbose\" : \"-quiet\")\n return args\n}\n\nasync function computeAssetSize(cancellationToken: CancellationToken, dmgFile: string, specification: DmgOptions, backgroundFile: string | null | undefined) {\n const asyncTaskManager = new AsyncTaskManager(cancellationToken)\n asyncTaskManager.addTask(stat(dmgFile))\n\n if (specification.icon != null) {\n asyncTaskManager.addTask(statOrNull(specification.icon))\n }\n\n if (backgroundFile != null) {\n asyncTaskManager.addTask(stat(backgroundFile))\n }\n\n let result = 32 * 1024\n for (const stat of await asyncTaskManager.awaitTasks()) {\n if (stat != null) {\n result += stat.size\n }\n }\n return result\n}\n\nasync function customizeDmg(volumePath: string, specification: DmgOptions, packager: MacPackager, backgroundFile: string | null | undefined) {\n const window = specification.window\n const env: any = {\n ...process.env,\n volumePath,\n appFileName: `${packager.appInfo.productFilename}.app`,\n iconSize: specification.iconSize || 80,\n iconTextSize: specification.iconTextSize || 12,\n\n PYTHONIOENCODING: \"utf8\",\n }\n\n if (specification.backgroundColor != null || specification.background == null) {\n env.backgroundColor = specification.backgroundColor || \"#ffffff\"\n\n if (window != null) {\n env.windowX = (window.x == null ? 100 : window.x).toString()\n env.windowY = (window.y == null ? 400 : window.y).toString()\n env.windowWidth = (window.width || 540).toString()\n env.windowHeight = (window.height || 380).toString()\n }\n } else {\n delete env.backgroundColor\n }\n\n const args = [\"dmg\", \"--volume\", volumePath]\n if (specification.icon != null) {\n args.push(\"--icon\", (await packager.getResource(specification.icon))!)\n }\n if (backgroundFile != null) {\n args.push(\"--background\", backgroundFile)\n }\n\n const data: any = await executeAppBuilderAsJson(args)\n if (data.backgroundWidth != null) {\n env.windowWidth = window == null ? null : window.width\n env.windowHeight = window == null ? null : window.height\n\n if (env.windowWidth == null) {\n env.windowWidth = data.backgroundWidth.toString()\n }\n if (env.windowHeight == null) {\n env.windowHeight = data.backgroundHeight.toString()\n }\n\n if (env.windowX == null) {\n env.windowX = 400\n }\n if (env.windowY == null) {\n env.windowY = Math.round((1440 - env.windowHeight) / 2).toString()\n }\n }\n\n Object.assign(env, data)\n\n const asyncTaskManager = new AsyncTaskManager(packager.info.cancellationToken)\n env.iconLocations = await computeDmgEntries(specification, volumePath, packager, asyncTaskManager)\n await asyncTaskManager.awaitTasks()\n const executePython = async (execName: string) => {\n let pythonPath = process.env.PYTHON_PATH\n if (!pythonPath) {\n pythonPath = (await exec(\"which\", [execName])).trim()\n }\n await exec(pythonPath, [path.join(getDmgVendorPath(), \"dmgbuild/core.py\")], {\n cwd: getDmgVendorPath(),\n env,\n })\n }\n try {\n await executePython(\"python3\")\n } catch (error: any) {\n await executePython(\"python\")\n }\n return packager.packagerOptions.effectiveOptionComputed == null || !(await packager.packagerOptions.effectiveOptionComputed({ volumePath, specification, packager }))\n}\n\nasync function computeDmgEntries(specification: DmgOptions, volumePath: string, packager: MacPackager, asyncTaskManager: AsyncTaskManager): Promise<string> {\n let result = \"\"\n for (const c of specification.contents!) {\n if (c.path != null && c.path.endsWith(\".app\") && c.type !== \"link\") {\n log.warn({ path: c.path, reason: \"actual path to app will be used instead\" }, \"do not specify path for application\")\n }\n\n const entryPath = c.path || `${packager.appInfo.productFilename}.app`\n const entryName = c.name || path.basename(entryPath)\n const escapedEntryName = entryName.replace(/['\\\\]/g, match => `\\\\${match}`)\n if (result.length !== 0) {\n result += \",\\n\"\n }\n result += `'${escapedEntryName}': (${c.x}, ${c.y})`\n\n if (c.type === \"link\") {\n asyncTaskManager.addTask(exec(\"ln\", [\"-s\", `/${entryPath.startsWith(\"/\") ? entryPath.substring(1) : entryPath}`, `${volumePath}/${entryName}`]))\n }\n // use c.path instead of entryPath (to be sure that this logic is not applied to .app bundle) https://github.com/electron-userland/electron-builder/issues/2147\n else if (!isEmptyOrSpaces(c.path) && (c.type === \"file\" || c.type === \"dir\")) {\n const source = await packager.getResource(c.path)\n if (source == null) {\n log.warn({ entryPath, reason: \"doesn't exist\" }, \"skipped DMG item copying\")\n continue\n }\n\n const destination = `${volumePath}/${entryName}`\n asyncTaskManager.addTask(c.type === \"dir\" || (await stat(source)).isDirectory() ? copyDir(source, destination) : copyFile(source, destination))\n }\n }\n return result\n}\n\nasync function transformBackgroundFileIfNeed(file: string, tmpDir: TmpDir): Promise<string> {\n if (file.endsWith(\".tiff\") || file.endsWith(\".TIFF\")) {\n return file\n }\n\n const retinaFile = file.replace(/\\.([a-z]+)$/, \"@2x.$1\")\n if (await exists(retinaFile)) {\n const tiffFile = await tmpDir.getTempFile({ suffix: \".tiff\" })\n await exec(\"tiffutil\", [\"-cathidpicheck\", file, retinaFile, \"-out\", tiffFile])\n return tiffFile\n }\n\n return file\n}\n"]}
package/out/dmgLicense.js CHANGED
@@ -8,11 +8,11 @@ const fs_extra_1 = require("fs-extra");
8
8
  const licenseButtons_1 = require("./licenseButtons");
9
9
  const dmg_license_1 = require("dmg-license");
10
10
  async function addLicenseToDmg(packager, dmgPath) {
11
- const licenseFiles = await license_1.getLicenseFiles(packager);
11
+ const licenseFiles = await (0, license_1.getLicenseFiles)(packager);
12
12
  if (licenseFiles.length === 0) {
13
13
  return null;
14
14
  }
15
- const licenseButtonFiles = await licenseButtons_1.getLicenseButtonsFile(packager);
15
+ const licenseButtonFiles = await (0, licenseButtons_1.getLicenseButtonsFile)(packager);
16
16
  packager.debugLogger.add("dmg.licenseFiles", licenseFiles);
17
17
  packager.debugLogger.add("dmg.licenseButtons", licenseButtonFiles);
18
18
  const jsonFile = {
@@ -29,7 +29,7 @@ async function addLicenseToDmg(packager, dmgPath) {
29
29
  }
30
30
  for (const button of licenseButtonFiles) {
31
31
  const filepath = button.file;
32
- const label = filepath.endsWith(".yml") ? js_yaml_1.load(await fs_extra_1.readFile(filepath, "utf-8")) : await fs_extra_1.readJson(filepath);
32
+ const label = filepath.endsWith(".yml") ? (0, js_yaml_1.load)(await (0, fs_extra_1.readFile)(filepath, "utf-8")) : await (0, fs_extra_1.readJson)(filepath);
33
33
  if (label.description) {
34
34
  // to support original button file format
35
35
  label.message = label.description;
@@ -39,7 +39,7 @@ async function addLicenseToDmg(packager, dmgPath) {
39
39
  lang: button.langWithRegion.replace("_", "-"),
40
40
  }, label));
41
41
  }
42
- await dmg_license_1.dmgLicenseFromJSON(dmgPath, jsonFile, {
42
+ await (0, dmg_license_1.dmgLicenseFromJSON)(dmgPath, jsonFile, {
43
43
  onNonFatalError: builder_util_1.log.warn.bind(builder_util_1.log),
44
44
  });
45
45
  return jsonFile;
@@ -1 +1 @@
1
- {"version":3,"file":"dmgLicense.js","sourceRoot":"","sources":["../src/dmgLicense.ts"],"names":[],"mappings":";;;AAAA,+CAAkC;AAClC,qCAA8B;AAE9B,8DAAkE;AAClE,uCAA6C;AAC7C,qDAAwD;AACxD,6CAAgD;AAUzC,KAAK,UAAU,eAAe,CAAC,QAA+B,EAAE,OAAe;IACpF,MAAM,YAAY,GAAG,MAAM,yBAAe,CAAC,QAAQ,CAAC,CAAA;IACpD,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE;QAC7B,OAAO,IAAI,CAAA;KACZ;IAED,MAAM,kBAAkB,GAAG,MAAM,sCAAqB,CAAC,QAAQ,CAAC,CAAA;IAChE,QAAQ,CAAC,WAAW,CAAC,GAAG,CAAC,kBAAkB,EAAE,YAAY,CAAC,CAAA;IAC1D,QAAQ,CAAC,WAAW,CAAC,GAAG,CAAC,oBAAoB,EAAE,kBAAkB,CAAC,CAAA;IAElE,MAAM,QAAQ,GAAkB;QAC9B,OAAO,EAAE,sEAAsE;QAC/E,mBAAmB;QACnB,IAAI,EAAE,EAAE;QACR,MAAM,EAAE,EAAE;KACX,CAAA;IAED,KAAK,MAAM,IAAI,IAAI,YAAY,EAAE;QAC/B,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;YACjB,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,IAAI,EAAE,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC;SAC5C,CAAC,CAAA;KACH;IAED,KAAK,MAAM,MAAM,IAAI,kBAAkB,EAAE;QACvC,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAA;QAC5B,MAAM,KAAK,GAAG,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,cAAI,CAAC,MAAM,mBAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,mBAAQ,CAAC,QAAQ,CAAC,CAAA;QAC5G,IAAI,KAAK,CAAC,WAAW,EAAE;YACrB,yCAAyC;YACzC,KAAK,CAAC,OAAO,GAAG,KAAK,CAAC,WAAW,CAAA;YACjC,OAAO,KAAK,CAAC,WAAW,CAAA;SACzB;QACD,QAAQ,CAAC,MAAM,CAAC,IAAI,CAClB,MAAM,CAAC,MAAM,CACX;YACE,IAAI,EAAE,MAAM,CAAC,cAAc,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC;SAC9C,EACD,KAAK,CACN,CACF,CAAA;KACF;IAED,MAAM,gCAAkB,CAAC,OAAO,EAAE,QAAQ,EAAE;QAC1C,eAAe,EAAE,kBAAG,CAAC,IAAI,CAAC,IAAI,CAAC,kBAAG,CAAC;KACpC,CAAC,CAAA;IAEF,OAAO,QAAQ,CAAA;AACjB,CAAC;AA/CD,0CA+CC","sourcesContent":["import { log } from \"builder-util\"\nimport { load } from \"js-yaml\"\nimport { PlatformPackager } from \"app-builder-lib\"\nimport { getLicenseFiles } from \"app-builder-lib/out/util/license\"\nimport { readFile, readJson } from \"fs-extra\"\nimport { getLicenseButtonsFile } from \"./licenseButtons\"\nimport { dmgLicenseFromJSON } from \"dmg-license\"\n\n// License Specifications\n// https://github.com/argv-minus-one/dmg-license/blob/HEAD/docs/License%20Specifications.md\ntype LicenseConfig = {\n $schema: string\n body: any[]\n labels: any[]\n}\n\nexport async function addLicenseToDmg(packager: PlatformPackager<any>, dmgPath: string): Promise<LicenseConfig | null> {\n const licenseFiles = await getLicenseFiles(packager)\n if (licenseFiles.length === 0) {\n return null\n }\n\n const licenseButtonFiles = await getLicenseButtonsFile(packager)\n packager.debugLogger.add(\"dmg.licenseFiles\", licenseFiles)\n packager.debugLogger.add(\"dmg.licenseButtons\", licenseButtonFiles)\n\n const jsonFile: LicenseConfig = {\n $schema: \"https://github.com/argv-minus-one/dmg-license/raw/master/schema.json\",\n // defaultLang: '',\n body: [],\n labels: [],\n }\n\n for (const file of licenseFiles) {\n jsonFile.body.push({\n file: file.file,\n lang: file.langWithRegion.replace(\"_\", \"-\"),\n })\n }\n\n for (const button of licenseButtonFiles) {\n const filepath = button.file\n const label = filepath.endsWith(\".yml\") ? load(await readFile(filepath, \"utf-8\")) : await readJson(filepath)\n if (label.description) {\n // to support original button file format\n label.message = label.description\n delete label.description\n }\n jsonFile.labels.push(\n Object.assign(\n {\n lang: button.langWithRegion.replace(\"_\", \"-\"),\n },\n label\n )\n )\n }\n\n await dmgLicenseFromJSON(dmgPath, jsonFile, {\n onNonFatalError: log.warn.bind(log),\n })\n\n return jsonFile\n}\n"]}
1
+ {"version":3,"file":"dmgLicense.js","sourceRoot":"","sources":["../src/dmgLicense.ts"],"names":[],"mappings":";;;AAAA,+CAAkC;AAClC,qCAA8B;AAE9B,8DAAkE;AAClE,uCAA6C;AAC7C,qDAAwD;AACxD,6CAAgD;AAUzC,KAAK,UAAU,eAAe,CAAC,QAA+B,EAAE,OAAe;IACpF,MAAM,YAAY,GAAG,MAAM,IAAA,yBAAe,EAAC,QAAQ,CAAC,CAAA;IACpD,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE;QAC7B,OAAO,IAAI,CAAA;KACZ;IAED,MAAM,kBAAkB,GAAG,MAAM,IAAA,sCAAqB,EAAC,QAAQ,CAAC,CAAA;IAChE,QAAQ,CAAC,WAAW,CAAC,GAAG,CAAC,kBAAkB,EAAE,YAAY,CAAC,CAAA;IAC1D,QAAQ,CAAC,WAAW,CAAC,GAAG,CAAC,oBAAoB,EAAE,kBAAkB,CAAC,CAAA;IAElE,MAAM,QAAQ,GAAkB;QAC9B,OAAO,EAAE,sEAAsE;QAC/E,mBAAmB;QACnB,IAAI,EAAE,EAAE;QACR,MAAM,EAAE,EAAE;KACX,CAAA;IAED,KAAK,MAAM,IAAI,IAAI,YAAY,EAAE;QAC/B,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;YACjB,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,IAAI,EAAE,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC;SAC5C,CAAC,CAAA;KACH;IAED,KAAK,MAAM,MAAM,IAAI,kBAAkB,EAAE;QACvC,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAA;QAC5B,MAAM,KAAK,GAAG,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAA,cAAI,EAAC,MAAM,IAAA,mBAAQ,EAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,IAAA,mBAAQ,EAAC,QAAQ,CAAC,CAAA;QAC5G,IAAI,KAAK,CAAC,WAAW,EAAE;YACrB,yCAAyC;YACzC,KAAK,CAAC,OAAO,GAAG,KAAK,CAAC,WAAW,CAAA;YACjC,OAAO,KAAK,CAAC,WAAW,CAAA;SACzB;QACD,QAAQ,CAAC,MAAM,CAAC,IAAI,CAClB,MAAM,CAAC,MAAM,CACX;YACE,IAAI,EAAE,MAAM,CAAC,cAAc,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC;SAC9C,EACD,KAAK,CACN,CACF,CAAA;KACF;IAED,MAAM,IAAA,gCAAkB,EAAC,OAAO,EAAE,QAAQ,EAAE;QAC1C,eAAe,EAAE,kBAAG,CAAC,IAAI,CAAC,IAAI,CAAC,kBAAG,CAAC;KACpC,CAAC,CAAA;IAEF,OAAO,QAAQ,CAAA;AACjB,CAAC;AA/CD,0CA+CC","sourcesContent":["import { log } from \"builder-util\"\nimport { load } from \"js-yaml\"\nimport { PlatformPackager } from \"app-builder-lib\"\nimport { getLicenseFiles } from \"app-builder-lib/out/util/license\"\nimport { readFile, readJson } from \"fs-extra\"\nimport { getLicenseButtonsFile } from \"./licenseButtons\"\nimport { dmgLicenseFromJSON } from \"dmg-license\"\n\n// License Specifications\n// https://github.com/argv-minus-one/dmg-license/blob/HEAD/docs/License%20Specifications.md\ntype LicenseConfig = {\n $schema: string\n body: any[]\n labels: any[]\n}\n\nexport async function addLicenseToDmg(packager: PlatformPackager<any>, dmgPath: string): Promise<LicenseConfig | null> {\n const licenseFiles = await getLicenseFiles(packager)\n if (licenseFiles.length === 0) {\n return null\n }\n\n const licenseButtonFiles = await getLicenseButtonsFile(packager)\n packager.debugLogger.add(\"dmg.licenseFiles\", licenseFiles)\n packager.debugLogger.add(\"dmg.licenseButtons\", licenseButtonFiles)\n\n const jsonFile: LicenseConfig = {\n $schema: \"https://github.com/argv-minus-one/dmg-license/raw/master/schema.json\",\n // defaultLang: '',\n body: [],\n labels: [],\n }\n\n for (const file of licenseFiles) {\n jsonFile.body.push({\n file: file.file,\n lang: file.langWithRegion.replace(\"_\", \"-\"),\n })\n }\n\n for (const button of licenseButtonFiles) {\n const filepath = button.file\n const label = filepath.endsWith(\".yml\") ? load(await readFile(filepath, \"utf-8\")) : await readJson(filepath)\n if (label.description) {\n // to support original button file format\n label.message = label.description\n delete label.description\n }\n jsonFile.labels.push(\n Object.assign(\n {\n lang: button.langWithRegion.replace(\"_\", \"-\"),\n },\n label\n )\n )\n }\n\n await dmgLicenseFromJSON(dmgPath, jsonFile, {\n onNonFatalError: log.warn.bind(log),\n })\n\n return jsonFile\n}\n"]}
package/out/dmgUtil.js CHANGED
@@ -22,23 +22,23 @@ async function attachAndExecute(dmgPath, readWrite, task) {
22
22
  args.push("-readwrite");
23
23
  }
24
24
  args.push(dmgPath);
25
- const attachResult = await builder_util_1.exec("hdiutil", args);
25
+ const attachResult = await (0, builder_util_1.exec)("hdiutil", args);
26
26
  const deviceResult = attachResult == null ? null : /^(\/dev\/\w+)/.exec(attachResult);
27
27
  const device = deviceResult == null || deviceResult.length !== 2 ? null : deviceResult[1];
28
28
  if (device == null) {
29
29
  throw new Error(`Cannot mount: ${attachResult}`);
30
30
  }
31
- return await promise_1.executeFinally(task(), () => detach(device));
31
+ return await (0, promise_1.executeFinally)(task(), () => detach(device));
32
32
  }
33
33
  exports.attachAndExecute = attachAndExecute;
34
34
  async function detach(name) {
35
35
  try {
36
- await builder_util_1.exec("hdiutil", ["detach", "-quiet", name]);
36
+ await (0, builder_util_1.exec)("hdiutil", ["detach", "-quiet", name]);
37
37
  }
38
38
  catch (e) {
39
39
  await new Promise((resolve, reject) => {
40
40
  setTimeout(() => {
41
- builder_util_1.exec("hdiutil", ["detach", "-force", name]).then(resolve).catch(reject);
41
+ (0, builder_util_1.exec)("hdiutil", ["detach", "-force", name]).then(resolve).catch(reject);
42
42
  }, 1000);
43
43
  });
44
44
  }
@@ -1 +1 @@
1
- {"version":3,"file":"dmgUtil.js","sourceRoot":"","sources":["../src/dmgUtil.ts"],"names":[],"mappings":"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","sourcesContent":["import { exec } from \"builder-util\"\nimport { PlatformPackager } from \"app-builder-lib\"\nimport { executeFinally } from \"builder-util/out/promise\"\nimport * as path from \"path\"\n\nexport { DmgTarget } from \"./dmg\"\n\nconst root = path.join(__dirname, \"..\")\n\nexport function getDmgTemplatePath() {\n return path.join(root, \"templates\")\n}\n\nexport function getDmgVendorPath() {\n return path.join(root, \"vendor\")\n}\n\nexport async function attachAndExecute(dmgPath: string, readWrite: boolean, task: () => Promise<any>) {\n //noinspection SpellCheckingInspection\n const args = [\"attach\", \"-noverify\", \"-noautoopen\"]\n if (readWrite) {\n args.push(\"-readwrite\")\n }\n\n args.push(dmgPath)\n const attachResult = await exec(\"hdiutil\", args)\n const deviceResult = attachResult == null ? null : /^(\\/dev\\/\\w+)/.exec(attachResult)\n const device = deviceResult == null || deviceResult.length !== 2 ? null : deviceResult[1]\n if (device == null) {\n throw new Error(`Cannot mount: ${attachResult}`)\n }\n\n return await executeFinally(task(), () => detach(device))\n}\n\nexport async function detach(name: string) {\n try {\n await exec(\"hdiutil\", [\"detach\", \"-quiet\", name])\n } catch (e) {\n await new Promise((resolve, reject) => {\n setTimeout(() => {\n exec(\"hdiutil\", [\"detach\", \"-force\", name]).then(resolve).catch(reject)\n }, 1000)\n })\n }\n}\n\nexport async function computeBackground(packager: PlatformPackager<any>): Promise<string> {\n const resourceList = await packager.resourceList\n if (resourceList.includes(\"background.tiff\")) {\n return path.join(packager.buildResourcesDir, \"background.tiff\")\n } else if (resourceList.includes(\"background.png\")) {\n return path.join(packager.buildResourcesDir, \"background.png\")\n } else {\n return path.join(getDmgTemplatePath(), \"background.tiff\")\n }\n}\n\n/** @internal */\nexport function serializeString(data: string) {\n return (\n ' $\"' +\n data\n .match(/.{1,32}/g)!\n .map(it => it.match(/.{1,4}/g)!.join(\" \"))\n .join('\"\\n $\"') +\n '\"'\n )\n}\n"]}
1
+ {"version":3,"file":"dmgUtil.js","sourceRoot":"","sources":["../src/dmgUtil.ts"],"names":[],"mappings":"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","sourcesContent":["import { exec } from \"builder-util\"\nimport { PlatformPackager } from \"app-builder-lib\"\nimport { executeFinally } from \"builder-util/out/promise\"\nimport * as path from \"path\"\n\nexport { DmgTarget } from \"./dmg\"\n\nconst root = path.join(__dirname, \"..\")\n\nexport function getDmgTemplatePath() {\n return path.join(root, \"templates\")\n}\n\nexport function getDmgVendorPath() {\n return path.join(root, \"vendor\")\n}\n\nexport async function attachAndExecute(dmgPath: string, readWrite: boolean, task: () => Promise<any>) {\n //noinspection SpellCheckingInspection\n const args = [\"attach\", \"-noverify\", \"-noautoopen\"]\n if (readWrite) {\n args.push(\"-readwrite\")\n }\n\n args.push(dmgPath)\n const attachResult = await exec(\"hdiutil\", args)\n const deviceResult = attachResult == null ? null : /^(\\/dev\\/\\w+)/.exec(attachResult)\n const device = deviceResult == null || deviceResult.length !== 2 ? null : deviceResult[1]\n if (device == null) {\n throw new Error(`Cannot mount: ${attachResult}`)\n }\n\n return await executeFinally(task(), () => detach(device))\n}\n\nexport async function detach(name: string) {\n try {\n await exec(\"hdiutil\", [\"detach\", \"-quiet\", name])\n } catch (e: any) {\n await new Promise((resolve, reject) => {\n setTimeout(() => {\n exec(\"hdiutil\", [\"detach\", \"-force\", name]).then(resolve).catch(reject)\n }, 1000)\n })\n }\n}\n\nexport async function computeBackground(packager: PlatformPackager<any>): Promise<string> {\n const resourceList = await packager.resourceList\n if (resourceList.includes(\"background.tiff\")) {\n return path.join(packager.buildResourcesDir, \"background.tiff\")\n } else if (resourceList.includes(\"background.png\")) {\n return path.join(packager.buildResourcesDir, \"background.png\")\n } else {\n return path.join(getDmgTemplatePath(), \"background.tiff\")\n }\n}\n\n/** @internal */\nexport function serializeString(data: string) {\n return (\n ' $\"' +\n data\n .match(/.{1,32}/g)!\n .map(it => it.match(/.{1,4}/g)!.join(\" \"))\n .join('\"\\n $\"') +\n '\"'\n )\n}\n"]}
@@ -9,7 +9,7 @@ const js_yaml_1 = require("js-yaml");
9
9
  const dmgUtil_1 = require("./dmgUtil");
10
10
  const licenseDefaultButtons_1 = require("./licenseDefaultButtons");
11
11
  async function getLicenseButtonsFile(packager) {
12
- return license_1.getLicenseAssets((await packager.resourceList).filter(it => {
12
+ return (0, license_1.getLicenseAssets)((await packager.resourceList).filter(it => {
13
13
  const name = it.toLowerCase();
14
14
  // noinspection SpellCheckingInspection
15
15
  return name.startsWith("licensebuttons_") && (name.endsWith(".json") || name.endsWith(".yml"));
@@ -17,13 +17,13 @@ async function getLicenseButtonsFile(packager) {
17
17
  }
18
18
  exports.getLicenseButtonsFile = getLicenseButtonsFile;
19
19
  async function getLicenseButtons(licenseButtonFiles, langWithRegion, id, name) {
20
- let data = licenseDefaultButtons_1.getDefaultButtons(langWithRegion, id, name);
20
+ let data = (0, licenseDefaultButtons_1.getDefaultButtons)(langWithRegion, id, name);
21
21
  for (const item of licenseButtonFiles) {
22
22
  if (item.langWithRegion !== langWithRegion) {
23
23
  continue;
24
24
  }
25
25
  try {
26
- const fileData = js_yaml_1.load(await fs_extra_1.readFile(item.file, "utf-8"));
26
+ const fileData = (0, js_yaml_1.load)(await (0, fs_extra_1.readFile)(item.file, "utf-8"));
27
27
  const buttonsStr = labelToHex(fileData.lang, item.lang, item.langWithRegion) +
28
28
  labelToHex(fileData.agree, item.lang, item.langWithRegion) +
29
29
  labelToHex(fileData.disagree, item.lang, item.langWithRegion) +
@@ -31,7 +31,7 @@ async function getLicenseButtons(licenseButtonFiles, langWithRegion, id, name) {
31
31
  labelToHex(fileData.save, item.lang, item.langWithRegion) +
32
32
  labelToHex(fileData.description, item.lang, item.langWithRegion);
33
33
  data = `data 'STR#' (${id}, "${name}") {\n`;
34
- data += dmgUtil_1.serializeString("0006" + buttonsStr);
34
+ data += (0, dmgUtil_1.serializeString)("0006" + buttonsStr);
35
35
  data += `\n};`;
36
36
  if (builder_util_1.log.isDebugEnabled) {
37
37
  builder_util_1.log.debug({ lang: item.langName, data }, `overwriting license buttons`);
@@ -1 +1 @@
1
- {"version":3,"file":"licenseButtons.js","sourceRoot":"","sources":["../src/licenseButtons.ts"],"names":[],"mappings":"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","sourcesContent":["import { log } from \"builder-util\"\nimport { PlatformPackager } from \"app-builder-lib\"\nimport { getLicenseAssets } from \"app-builder-lib/out/util/license\"\nimport { readFile } from \"fs-extra\"\nimport * as iconv from \"iconv-lite\"\nimport { load } from \"js-yaml\"\nimport { serializeString } from \"./dmgUtil\"\nimport { getDefaultButtons } from \"./licenseDefaultButtons\"\n\nexport async function getLicenseButtonsFile(packager: PlatformPackager<any>): Promise<Array<LicenseButtonsFile>> {\n return getLicenseAssets(\n (await packager.resourceList).filter(it => {\n const name = it.toLowerCase()\n // noinspection SpellCheckingInspection\n return name.startsWith(\"licensebuttons_\") && (name.endsWith(\".json\") || name.endsWith(\".yml\"))\n }),\n packager\n )\n}\n\nexport interface LicenseButtonsFile {\n file: string\n lang: string\n langWithRegion: string\n langName: string\n}\n\nexport async function getLicenseButtons(licenseButtonFiles: Array<LicenseButtonsFile>, langWithRegion: string, id: number, name: string) {\n let data = getDefaultButtons(langWithRegion, id, name)\n\n for (const item of licenseButtonFiles) {\n if (item.langWithRegion !== langWithRegion) {\n continue\n }\n\n try {\n const fileData = load(await readFile(item.file, \"utf-8\")) as any\n const buttonsStr =\n labelToHex(fileData.lang, item.lang, item.langWithRegion) +\n labelToHex(fileData.agree, item.lang, item.langWithRegion) +\n labelToHex(fileData.disagree, item.lang, item.langWithRegion) +\n labelToHex(fileData.print, item.lang, item.langWithRegion) +\n labelToHex(fileData.save, item.lang, item.langWithRegion) +\n labelToHex(fileData.description, item.lang, item.langWithRegion)\n\n data = `data 'STR#' (${id}, \"${name}\") {\\n`\n data += serializeString(\"0006\" + buttonsStr)\n data += `\\n};`\n\n if (log.isDebugEnabled) {\n log.debug({ lang: item.langName, data }, `overwriting license buttons`)\n }\n return data\n } catch (e) {\n log.debug({ error: e }, \"cannot overwrite license buttons\")\n return data\n }\n }\n\n return data\n}\n\nfunction labelToHex(label: string, lang: string, langWithRegion: string) {\n const lbl = hexEncode(label, lang, langWithRegion).toString().toUpperCase()\n const len = numberToHex(lbl.length / 2)\n return len + lbl\n}\n\nfunction numberToHex(nb: number) {\n return (\"0\" + nb.toString(16)).slice(-2)\n}\n\nfunction hexEncode(str: string, lang: string, langWithRegion: string) {\n const macCodePages = getMacCodePage(lang, langWithRegion)\n let result = \"\"\n\n for (let i = 0; i < str.length; i++) {\n try {\n let hex = getMacHexCode(str, i, macCodePages)\n if (hex === undefined) {\n hex = \"3F\" //?\n }\n result += hex\n } catch (e) {\n log.debug({ error: e, char: str[i] }, \"cannot convert\")\n result += \"3F\" //?\n }\n }\n\n return result\n}\n\nfunction getMacCodePage(lang: string, langWithRegion: string) {\n switch (lang) {\n case \"ja\": //japanese\n return [\"euc-jp\"] //Apple Japanese\n case \"zh\": //chinese\n if (langWithRegion === \"zh_CN\") {\n return [\"gb2312\"] //Apple Simplified Chinese (GB 2312)\n }\n return [\"big5\"] //Apple Traditional Chinese (Big5)\n case \"ko\": //korean\n return [\"euc-kr\"] //Apple Korean\n case \"ar\": //arabic\n case \"ur\": //urdu\n return [\"macarabic\"] //Apple Arabic\n case \"he\": //hebrew\n return [\"machebrew\"] //Apple Hebrew\n case \"el\": //greek\n case \"elc\": //greek\n return [\"macgreek\"] //Apple Greek\n case \"ru\": //russian\n case \"be\": //belarussian\n case \"sr\": //serbian\n case \"bg\": //bulgarian\n case \"uz\": //uzbek\n return [\"maccyrillic\"] //Apple Macintosh Cyrillic\n case \"ro\": //romanian\n return [\"macromania\"] //Apple Romanian\n case \"uk\": //ukrainian\n return [\"macukraine\"] //Apple Ukrainian\n case \"th\": //thai\n return [\"macthai\"] //Apple Thai\n case \"et\": //estonian\n case \"lt\": //lithuanian\n case \"lv\": //latvian\n case \"pl\": //polish\n case \"hu\": //hungarian\n case \"cs\": //czech\n case \"sk\": //slovak\n return [\"maccenteuro\"] //Apple Macintosh Central Europe\n case \"is\": //icelandic\n case \"fo\": //faroese\n return [\"maciceland\"] //Apple Icelandic\n case \"tr\": //turkish\n return [\"macturkish\"] //Apple Turkish\n case \"hr\": //croatian\n case \"sl\": //slovenian\n return [\"maccroatian\"] //Apple Croatian\n default:\n return [\"macroman\"] //Apple Macintosh Roman\n }\n}\n\nfunction getMacHexCode(str: string, i: number, macCodePages: any) {\n const code = str.charCodeAt(i)\n if (code < 128) {\n return code.toString(16)\n } else if (code < 256) {\n return iconv.encode(str[i], \"macroman\").toString(\"hex\")\n } else {\n for (let i = 0; i < macCodePages.length; i++) {\n const result = iconv.encode(str[i], macCodePages[i]).toString(\"hex\")\n if (result !== undefined) {\n return result\n }\n }\n }\n return code\n}\n"]}
1
+ {"version":3,"file":"licenseButtons.js","sourceRoot":"","sources":["../src/licenseButtons.ts"],"names":[],"mappings":"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","sourcesContent":["import { log } from \"builder-util\"\nimport { PlatformPackager } from \"app-builder-lib\"\nimport { getLicenseAssets } from \"app-builder-lib/out/util/license\"\nimport { readFile } from \"fs-extra\"\nimport * as iconv from \"iconv-lite\"\nimport { load } from \"js-yaml\"\nimport { serializeString } from \"./dmgUtil\"\nimport { getDefaultButtons } from \"./licenseDefaultButtons\"\n\nexport async function getLicenseButtonsFile(packager: PlatformPackager<any>): Promise<Array<LicenseButtonsFile>> {\n return getLicenseAssets(\n (await packager.resourceList).filter(it => {\n const name = it.toLowerCase()\n // noinspection SpellCheckingInspection\n return name.startsWith(\"licensebuttons_\") && (name.endsWith(\".json\") || name.endsWith(\".yml\"))\n }),\n packager\n )\n}\n\nexport interface LicenseButtonsFile {\n file: string\n lang: string\n langWithRegion: string\n langName: string\n}\n\nexport async function getLicenseButtons(licenseButtonFiles: Array<LicenseButtonsFile>, langWithRegion: string, id: number, name: string) {\n let data = getDefaultButtons(langWithRegion, id, name)\n\n for (const item of licenseButtonFiles) {\n if (item.langWithRegion !== langWithRegion) {\n continue\n }\n\n try {\n const fileData = load(await readFile(item.file, \"utf-8\")) as any\n const buttonsStr =\n labelToHex(fileData.lang, item.lang, item.langWithRegion) +\n labelToHex(fileData.agree, item.lang, item.langWithRegion) +\n labelToHex(fileData.disagree, item.lang, item.langWithRegion) +\n labelToHex(fileData.print, item.lang, item.langWithRegion) +\n labelToHex(fileData.save, item.lang, item.langWithRegion) +\n labelToHex(fileData.description, item.lang, item.langWithRegion)\n\n data = `data 'STR#' (${id}, \"${name}\") {\\n`\n data += serializeString(\"0006\" + buttonsStr)\n data += `\\n};`\n\n if (log.isDebugEnabled) {\n log.debug({ lang: item.langName, data }, `overwriting license buttons`)\n }\n return data\n } catch (e: any) {\n log.debug({ error: e }, \"cannot overwrite license buttons\")\n return data\n }\n }\n\n return data\n}\n\nfunction labelToHex(label: string, lang: string, langWithRegion: string) {\n const lbl = hexEncode(label, lang, langWithRegion).toString().toUpperCase()\n const len = numberToHex(lbl.length / 2)\n return len + lbl\n}\n\nfunction numberToHex(nb: number) {\n return (\"0\" + nb.toString(16)).slice(-2)\n}\n\nfunction hexEncode(str: string, lang: string, langWithRegion: string) {\n const macCodePages = getMacCodePage(lang, langWithRegion)\n let result = \"\"\n\n for (let i = 0; i < str.length; i++) {\n try {\n let hex = getMacHexCode(str, i, macCodePages)\n if (hex === undefined) {\n hex = \"3F\" //?\n }\n result += hex\n } catch (e: any) {\n log.debug({ error: e, char: str[i] }, \"cannot convert\")\n result += \"3F\" //?\n }\n }\n\n return result\n}\n\nfunction getMacCodePage(lang: string, langWithRegion: string) {\n switch (lang) {\n case \"ja\": //japanese\n return [\"euc-jp\"] //Apple Japanese\n case \"zh\": //chinese\n if (langWithRegion === \"zh_CN\") {\n return [\"gb2312\"] //Apple Simplified Chinese (GB 2312)\n }\n return [\"big5\"] //Apple Traditional Chinese (Big5)\n case \"ko\": //korean\n return [\"euc-kr\"] //Apple Korean\n case \"ar\": //arabic\n case \"ur\": //urdu\n return [\"macarabic\"] //Apple Arabic\n case \"he\": //hebrew\n return [\"machebrew\"] //Apple Hebrew\n case \"el\": //greek\n case \"elc\": //greek\n return [\"macgreek\"] //Apple Greek\n case \"ru\": //russian\n case \"be\": //belarussian\n case \"sr\": //serbian\n case \"bg\": //bulgarian\n case \"uz\": //uzbek\n return [\"maccyrillic\"] //Apple Macintosh Cyrillic\n case \"ro\": //romanian\n return [\"macromania\"] //Apple Romanian\n case \"uk\": //ukrainian\n return [\"macukraine\"] //Apple Ukrainian\n case \"th\": //thai\n return [\"macthai\"] //Apple Thai\n case \"et\": //estonian\n case \"lt\": //lithuanian\n case \"lv\": //latvian\n case \"pl\": //polish\n case \"hu\": //hungarian\n case \"cs\": //czech\n case \"sk\": //slovak\n return [\"maccenteuro\"] //Apple Macintosh Central Europe\n case \"is\": //icelandic\n case \"fo\": //faroese\n return [\"maciceland\"] //Apple Icelandic\n case \"tr\": //turkish\n return [\"macturkish\"] //Apple Turkish\n case \"hr\": //croatian\n case \"sl\": //slovenian\n return [\"maccroatian\"] //Apple Croatian\n default:\n return [\"macroman\"] //Apple Macintosh Roman\n }\n}\n\nfunction getMacHexCode(str: string, i: number, macCodePages: any) {\n const code = str.charCodeAt(i)\n if (code < 128) {\n return code.toString(16)\n } else if (code < 256) {\n return iconv.encode(str[i], \"macroman\").toString(\"hex\")\n } else {\n for (let i = 0; i < macCodePages.length; i++) {\n const result = iconv.encode(str[i], macCodePages[i]).toString(\"hex\")\n if (result !== undefined) {\n return result\n }\n }\n }\n return code\n}\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "dmg-builder",
3
- "version": "24.0.0-alpha.1",
3
+ "version": "24.0.0-alpha.2",
4
4
  "main": "out/dmgUtil.js",
5
5
  "author": "Vladimir Krivosheev",
6
6
  "license": "MIT",
@@ -17,9 +17,9 @@
17
17
  "vendor"
18
18
  ],
19
19
  "dependencies": {
20
- "app-builder-lib": "24.0.0-alpha.1",
21
- "builder-util": "23.6.0",
22
- "builder-util-runtime": "9.1.1",
20
+ "app-builder-lib": "24.0.0-alpha.2",
21
+ "builder-util": "24.0.0-alpha.2",
22
+ "builder-util-runtime": "9.1.2-alpha.0",
23
23
  "fs-extra": "^10.0.0",
24
24
  "iconv-lite": "^0.6.2",
25
25
  "js-yaml": "^4.1.0"