@todesktop/cli 1.9.3 → 1.9.4

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/README.md CHANGED
@@ -639,6 +639,13 @@ Example: `"distribution"`.
639
639
 
640
640
  Whether to sign app for development or for distribution.
641
641
 
642
+ ### `mas.x64ArchFiles` - (optional) string
643
+
644
+ Default: not defined
645
+ Example: `"Contents/Resources/foobar/**"`
646
+
647
+ Minimatch pattern of paths that are allowed to be x64 binaries in both ASAR files.
648
+
642
649
  ### `nodeVersion` - string
643
650
 
644
651
  Example: `18.12.1`.
@@ -1103,6 +1110,14 @@ Now, when we build your app on ToDesktop servers, it will also run your custom `
1103
1110
 
1104
1111
  ## Changelog
1105
1112
 
1113
+ ## v1.9.5
1114
+
1115
+ - Add support for `mas.x64ArchFiles` in config.
1116
+
1117
+ ## v1.9.4
1118
+
1119
+ - Fix: Mac URL download links are now formatted correctly.
1120
+
1106
1121
  ## v1.9.3
1107
1122
 
1108
1123
  - Add support for `mas.entitlements` in config.
package/dist/cli.js CHANGED
@@ -325,20 +325,21 @@ var useExit_default = () => {
325
325
  };
326
326
  };
327
327
 
328
+ // src/utilities/fixMacUrl.ts
329
+ function fixMacUrl(url) {
330
+ const baseUrl = new URL(url);
331
+ baseUrl.pathname = `${baseUrl.pathname}/zip/${process.arch}`;
332
+ return baseUrl.href;
333
+ }
334
+
328
335
  // src/components/BuildCompleteMessage.tsx
329
- var import_path2 = __toESM(require("path"));
330
336
  var import_jsx_runtime = require("react/jsx-runtime");
331
- var addTrailingSlash = (url) => {
332
- return url.endsWith("/") ? url : `${url}/`;
333
- };
334
337
  var BuildCompleteMessage = ({ build }) => {
338
+ var _a;
335
339
  const exit = useExit_default();
336
340
  let url = build.standardUniversalDownloadUrl;
337
- if (process.platform === "darwin") {
338
- url = new URL(
339
- import_path2.default.posix.join("mac", "zip", process.arch),
340
- addTrailingSlash(url)
341
- ).href;
341
+ if (process.platform === "darwin" && ((_a = build.mac) == null ? void 0 : _a.standardDownloadUrl)) {
342
+ url = fixMacUrl(build.mac.standardDownloadUrl);
342
343
  }
343
344
  logForCI_default(`Build complete! ${url}`);
344
345
  (0, import_react.useEffect)(() => {
@@ -361,7 +362,6 @@ var BuildCompleteMessage_default = BuildCompleteMessage;
361
362
  var import_prop_types2 = __toESM(require("prop-types"));
362
363
  var import_ink3 = require("ink");
363
364
  var import_ink_link2 = __toESM(require("ink-link"));
364
- var import_path3 = __toESM(require("path"));
365
365
  var import_jsx_runtime2 = require("react/jsx-runtime");
366
366
  var preLabelMaxWidth = "More info: ".length;
367
367
  var getProgressPercentageLabel = (percentage, activityType) => {
@@ -394,7 +394,7 @@ var PlatformProgress = ({
394
394
  let progressIndicator;
395
395
  if (activityType === "done") {
396
396
  if (platform === "mac") {
397
- downloadUrl = import_path3.default.posix.join(downloadUrl, "mac", "zip", process.arch);
397
+ downloadUrl = fixMacUrl(downloadUrl);
398
398
  }
399
399
  progressIndicator = /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)(import_ink3.Box, { flexDirection: "column", marginBottom: 1, children: [
400
400
  /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)(import_ink3.Text, { children: [
@@ -972,7 +972,7 @@ async function postToFirebaseFunction_default(functionName, body = {}, config2 =
972
972
  }
973
973
 
974
974
  // src/utilities/projectConfig/getProjectConfig.ts
975
- var import_path5 = require("path");
975
+ var import_path3 = require("path");
976
976
  var import_fs = require("fs");
977
977
  var import_find_up = __toESM(require("find-up"));
978
978
 
@@ -982,14 +982,14 @@ function loadConfig(configPath) {
982
982
  }
983
983
 
984
984
  // src/utilities/projectConfig/resolveConfigPaths.ts
985
- var path5 = __toESM(require("path"));
985
+ var path3 = __toESM(require("path"));
986
986
  function resolveConfigPaths({
987
987
  config: config2,
988
988
  projectRoot
989
989
  }) {
990
- const appRoot = config2.appPath ? path5.isAbsolute(config2.appPath) ? config2.appPath : path5.join(projectRoot, config2.appPath) : projectRoot;
990
+ const appRoot = config2.appPath ? path3.isAbsolute(config2.appPath) ? config2.appPath : path3.join(projectRoot, config2.appPath) : projectRoot;
991
991
  const transformIfExists = (value, transformer) => value ? transformer(value) : void 0;
992
- const resolvePath = (filePath) => path5.isAbsolute(filePath) ? filePath : path5.join(projectRoot, filePath);
992
+ const resolvePath = (filePath) => path3.isAbsolute(filePath) ? filePath : path3.join(projectRoot, filePath);
993
993
  const result = {
994
994
  ...config2,
995
995
  appPath: appRoot,
@@ -1070,7 +1070,7 @@ var import_better_ajv_errors2 = __toESM(require("better-ajv-errors"));
1070
1070
  var import_ajv2 = require("ajv");
1071
1071
  var import_email_regex = __toESM(require("email-regex"));
1072
1072
  var fs3 = __toESM(require("fs"));
1073
- var path6 = __toESM(require("path"));
1073
+ var path4 = __toESM(require("path"));
1074
1074
  var import_parse_author = __toESM(require("parse-author"));
1075
1075
  var semver = __toESM(require("semver"));
1076
1076
 
@@ -1251,8 +1251,8 @@ var addCustomKeywords_default = (ajv, context) => {
1251
1251
  }
1252
1252
  ]);
1253
1253
  }
1254
- const filePath = path6.isAbsolute(data) ? data : path6.join(schema.from, data);
1255
- if (path6.relative(schema.from, filePath).startsWith("..")) {
1254
+ const filePath = path4.isAbsolute(data) ? data : path4.join(schema.from, data);
1255
+ if (path4.relative(schema.from, filePath).startsWith("..")) {
1256
1256
  throw new import_ajv2.ValidationError([
1257
1257
  {
1258
1258
  keyword: mustBeDirectory ? "Directory" : "File",
@@ -1260,11 +1260,11 @@ var addCustomKeywords_default = (ajv, context) => {
1260
1260
  }
1261
1261
  ]);
1262
1262
  }
1263
- if (schema.extensions && !schema.extensions.includes(path6.extname(filePath).substr(1))) {
1263
+ if (schema.extensions && !schema.extensions.includes(path4.extname(filePath).substr(1))) {
1264
1264
  throw new import_ajv2.ValidationError([
1265
1265
  {
1266
1266
  keyword: "File extension",
1267
- message: `invalid. ${path6.extname(data)} Must be${schema.extensions > 1 ? "one of the following:" : ""} "${schema.extensions.join('", "')}"`
1267
+ message: `invalid. ${path4.extname(data)} Must be${schema.extensions > 1 ? "one of the following:" : ""} "${schema.extensions.join('", "')}"`
1268
1268
  }
1269
1269
  ]);
1270
1270
  }
@@ -1293,8 +1293,8 @@ var addCustomKeywords_default = (ajv, context) => {
1293
1293
  ]);
1294
1294
  }
1295
1295
  if (schema.mustBeElectronApp) {
1296
- const appRoot = path6.resolve(filePath);
1297
- const pkgPath = path6.join(appRoot, "package.json");
1296
+ const appRoot = path4.resolve(filePath);
1297
+ const pkgPath = path4.join(appRoot, "package.json");
1298
1298
  if (!fs3.existsSync(pkgPath)) {
1299
1299
  throw new import_ajv2.ValidationError([
1300
1300
  {
@@ -1318,7 +1318,7 @@ var addCustomKeywords_default = (ajv, context) => {
1318
1318
  validatePackageJSON_default(pkg, pkgPath, context);
1319
1319
  const mainFilePath = pkg.main;
1320
1320
  if (mainFilePath) {
1321
- const resolvedMainFilePath = path6.join(appRoot, mainFilePath);
1321
+ const resolvedMainFilePath = path4.join(appRoot, mainFilePath);
1322
1322
  if (!fs3.existsSync(resolvedMainFilePath)) {
1323
1323
  throw new import_ajv2.ValidationError([
1324
1324
  {
@@ -1328,7 +1328,7 @@ var addCustomKeywords_default = (ajv, context) => {
1328
1328
  ]);
1329
1329
  }
1330
1330
  } else {
1331
- if (!fs3.existsSync(path6.join(appRoot, "index.js"))) {
1331
+ if (!fs3.existsSync(path4.join(appRoot, "index.js"))) {
1332
1332
  throw new import_ajv2.ValidationError([
1333
1333
  {
1334
1334
  keyword: "App",
@@ -1686,6 +1686,9 @@ var full_default = (context) => {
1686
1686
  type: {
1687
1687
  type: "string",
1688
1688
  enum: ["development", "distribution"]
1689
+ },
1690
+ x64ArchFiles: {
1691
+ type: "string"
1689
1692
  }
1690
1693
  }
1691
1694
  },
@@ -1890,7 +1893,7 @@ We made this change because Electron also uses the "productName" if it exists in
1890
1893
  }
1891
1894
 
1892
1895
  // src/utilities/projectConfig/computeFullProjectConfig.ts
1893
- var import_path4 = require("path");
1896
+ var import_path2 = require("path");
1894
1897
  var import_lodash2 = __toESM(require("lodash.merge"));
1895
1898
  function computeFullProjectConfig(partialConfig, projectRoot) {
1896
1899
  if (!partialConfig.extends) {
@@ -1898,7 +1901,7 @@ function computeFullProjectConfig(partialConfig, projectRoot) {
1898
1901
  return partialConfig;
1899
1902
  } else {
1900
1903
  logger_default.debug("Extends field found, resolving");
1901
- const parentConfigPath = (0, import_path4.resolve)(projectRoot, partialConfig.extends);
1904
+ const parentConfigPath = (0, import_path2.resolve)(projectRoot, partialConfig.extends);
1902
1905
  const parentConfig = loadConfig(parentConfigPath);
1903
1906
  parentConfig.appPath = parentConfig.appPath || ".";
1904
1907
  const parentFullConfig = computeFullProjectConfig(
@@ -1922,13 +1925,13 @@ function getProjectConfig(configPath) {
1922
1925
  );
1923
1926
  }
1924
1927
  } else {
1925
- configPath = (0, import_path5.resolve)(process.cwd(), configPath);
1928
+ configPath = (0, import_path3.resolve)(process.cwd(), configPath);
1926
1929
  if (!(0, import_fs.existsSync)(configPath)) {
1927
1930
  logger_default.error("Provided config path does not exist");
1928
1931
  throw new Error(`Config file not found at ${configPath}`);
1929
1932
  }
1930
1933
  }
1931
- const projectRoot = (0, import_path5.dirname)(configPath);
1934
+ const projectRoot = (0, import_path3.dirname)(configPath);
1932
1935
  const partialConfig = loadConfig(configPath);
1933
1936
  const config2 = computeFullProjectConfig(partialConfig, projectRoot);
1934
1937
  validateConfig({ config: config2, projectRoot });
@@ -1949,7 +1952,7 @@ var shouldExitOnBuildFailure_default = (build) => {
1949
1952
 
1950
1953
  // src/commands/build/utilities/getPackageJson.ts
1951
1954
  var import_lodash3 = __toESM(require("lodash.merge"));
1952
- var import_path6 = __toESM(require("path"));
1955
+ var import_path4 = __toESM(require("path"));
1953
1956
  function deleteNullDeps(dep) {
1954
1957
  Object.keys(dep).forEach((key) => {
1955
1958
  if (dep[key] === null) {
@@ -1971,7 +1974,7 @@ function removeNullDependencies(pkgJson) {
1971
1974
  function getAppPkgJson({ config: config2 }) {
1972
1975
  const packageJsonFromConfig = config2.packageJson || {};
1973
1976
  const extendsFrom = packageJsonFromConfig.extends || "package.json";
1974
- const packageJsonFromFile = readJson(import_path6.default.join(config2.appPath, extendsFrom));
1977
+ const packageJsonFromFile = readJson(import_path4.default.join(config2.appPath, extendsFrom));
1975
1978
  return removeNullDependencies(
1976
1979
  (0, import_lodash3.default)({}, packageJsonFromFile, packageJsonFromConfig)
1977
1980
  );
@@ -2069,7 +2072,7 @@ function buildHasSettled(build) {
2069
2072
  // src/commands/build/utilities/uploadApplicationSource.ts
2070
2073
  var import_fast_glob = __toESM(require("fast-glob"));
2071
2074
  var fs5 = __toESM(require("fs"));
2072
- var path9 = __toESM(require("path"));
2075
+ var path7 = __toESM(require("path"));
2073
2076
 
2074
2077
  // src/commands/build/utilities/generateS3Key.ts
2075
2078
  var generateS3Key_default = ({ appId, buildId, filenameSuffix }) => `${appId}/sourceArchives/${buildId}--${filenameSuffix}`;
@@ -2131,7 +2134,7 @@ var import_archiver = __toESM(require("archiver"));
2131
2134
  var import_du = __toESM(require("du"));
2132
2135
  var import_fs2 = __toESM(require("fs"));
2133
2136
  var import_chalk = __toESM(require("chalk"));
2134
- var import_path7 = __toESM(require("path"));
2137
+ var import_path5 = __toESM(require("path"));
2135
2138
  async function zip_default({
2136
2139
  files,
2137
2140
  fileSizeLimit = 20,
@@ -2186,7 +2189,7 @@ Your app is larger than ${fileSizeLimit}MB. Your app is ${import_chalk.default.b
2186
2189
  processedFiles.forEach(({ from, isDirectory, stats, to }) => {
2187
2190
  if (isDirectory) {
2188
2191
  stream.directory(from, to);
2189
- } else if (appPkgJson && to === import_path7.default.join("app", "package.json")) {
2192
+ } else if (appPkgJson && to === import_path5.default.join("app", "package.json")) {
2190
2193
  stream.append(JSON.stringify(appPkgJson), {
2191
2194
  name: to
2192
2195
  });
@@ -2211,22 +2214,22 @@ var getAppFiles = async (globsInput, appPath, appPkgJson) => {
2211
2214
  if (globsInput && globsInput.length) {
2212
2215
  globs.push(
2213
2216
  ...globsInput,
2214
- path9.join(appPath, "package.json"),
2215
- path9.join(appPath, "package-lock.json"),
2216
- path9.join(appPath, "yarn.lock"),
2217
- path9.join(appPath, "pnpm-lock.yaml"),
2218
- path9.join(appPath, "shrinkwrap.yaml")
2217
+ path7.join(appPath, "package.json"),
2218
+ path7.join(appPath, "package-lock.json"),
2219
+ path7.join(appPath, "yarn.lock"),
2220
+ path7.join(appPath, "pnpm-lock.yaml"),
2221
+ path7.join(appPath, "shrinkwrap.yaml")
2219
2222
  );
2220
2223
  } else {
2221
2224
  globs.push("**");
2222
2225
  }
2223
2226
  for (const hookName of ["todesktop:beforeInstall", "todesktop:afterPack"]) {
2224
2227
  if (appPkgJson.scripts && appPkgJson.scripts[hookName]) {
2225
- globs.push(path9.join(appPath, appPkgJson.scripts[hookName]));
2228
+ globs.push(path7.join(appPath, appPkgJson.scripts[hookName]));
2226
2229
  }
2227
2230
  }
2228
2231
  const normalizedGlobs = globs.map((glob) => {
2229
- const globToUse = path9.isAbsolute(glob) ? path9.relative(appPath, glob) : glob;
2232
+ const globToUse = path7.isAbsolute(glob) ? path7.relative(appPath, glob) : glob;
2230
2233
  return globToUse.replace(/\\/g, "/").replace(/\/+$/, "");
2231
2234
  }).filter((glob) => !glob.startsWith("..") && !glob.startsWith("!.."));
2232
2235
  let absolutePaths = await (0, import_fast_glob.default)(normalizedGlobs, {
@@ -2241,7 +2244,7 @@ var getAppFiles = async (globsInput, appPath, appPkgJson) => {
2241
2244
  });
2242
2245
  if (process.platform === "win32") {
2243
2246
  absolutePaths = absolutePaths.map(
2244
- (absolutePath) => absolutePath.replace(/\//g, path9.sep)
2247
+ (absolutePath) => absolutePath.replace(/\//g, path7.sep)
2245
2248
  );
2246
2249
  }
2247
2250
  if (!absolutePaths || !absolutePaths.length) {
@@ -2253,21 +2256,21 @@ var getAppFiles = async (globsInput, appPath, appPkgJson) => {
2253
2256
  } else {
2254
2257
  let mainFilePath = appPath;
2255
2258
  if (appPkgJson.main) {
2256
- mainFilePath = path9.join(mainFilePath, appPkgJson.main);
2259
+ mainFilePath = path7.join(mainFilePath, appPkgJson.main);
2257
2260
  }
2258
2261
  if (fs5.statSync(mainFilePath).isDirectory()) {
2259
- mainFilePath = path9.join(mainFilePath, "index.js");
2262
+ mainFilePath = path7.join(mainFilePath, "index.js");
2260
2263
  }
2261
2264
  if (!absolutePaths.includes(mainFilePath)) {
2262
2265
  throw new Error(
2263
- `The "main" file specified in your package.json (${appPkgJson.main ? path9.relative(appPath, mainFilePath) : "defaults to index.js"}) is not set to be uploaded to our servers. This is likely due to how you have configured the \`appFiles\` option. Learn more at https://www.npmjs.com/package/@todesktop/cli#appfiles----optional-array-of-glob-patterns. If this is not the case, please contact us.`
2266
+ `The "main" file specified in your package.json (${appPkgJson.main ? path7.relative(appPath, mainFilePath) : "defaults to index.js"}) is not set to be uploaded to our servers. This is likely due to how you have configured the \`appFiles\` option. Learn more at https://www.npmjs.com/package/@todesktop/cli#appfiles----optional-array-of-glob-patterns. If this is not the case, please contact us.`
2264
2267
  );
2265
2268
  }
2266
2269
  }
2267
2270
  return absolutePaths.map((absolutePath) => {
2268
2271
  return {
2269
2272
  from: absolutePath,
2270
- to: path9.join("app", path9.relative(appPath, absolutePath))
2273
+ to: path7.join("app", path7.relative(appPath, absolutePath))
2271
2274
  };
2272
2275
  });
2273
2276
  };
@@ -2294,27 +2297,27 @@ async function uploadApplicationSource({
2294
2297
  ...(config2.extraContentFiles || []).map(({ from, to = "." }) => {
2295
2298
  return {
2296
2299
  from,
2297
- to: path9.join("extraContentFiles", to, path9.basename(from))
2300
+ to: path7.join("extraContentFiles", to, path7.basename(from))
2298
2301
  };
2299
2302
  }),
2300
2303
  ...(config2.extraResources || []).map(({ from, to = "." }) => {
2301
2304
  return {
2302
2305
  from,
2303
- to: path9.join("extraResources", to, path9.basename(from))
2306
+ to: path7.join("extraResources", to, path7.basename(from))
2304
2307
  };
2305
2308
  }),
2306
2309
  {
2307
2310
  from: config2.icon,
2308
- to: path9.join("icons", "appIcon" + path9.extname(config2.icon))
2311
+ to: path7.join("icons", "appIcon" + path7.extname(config2.icon))
2309
2312
  }
2310
2313
  ];
2311
2314
  if (config2.linux) {
2312
2315
  if (config2.linux.icon) {
2313
2316
  files.push({
2314
2317
  from: config2.linux.icon,
2315
- to: path9.join(
2318
+ to: path7.join(
2316
2319
  "icons",
2317
- "appIcon-linux" + path9.extname(config2.linux.icon)
2320
+ "appIcon-linux" + path7.extname(config2.linux.icon)
2318
2321
  )
2319
2322
  });
2320
2323
  }
@@ -2323,10 +2326,10 @@ async function uploadApplicationSource({
2323
2326
  const possibleIcons = [];
2324
2327
  for (const fa of config2.fileAssociations) {
2325
2328
  if (fa.icon) {
2326
- const icon = path9.parse(fa.icon);
2329
+ const icon = path7.parse(fa.icon);
2327
2330
  possibleIcons.push(
2328
- { ext: fa.ext, icon: path9.join(icon.dir, icon.name) + ".ico" },
2329
- { ext: fa.ext, icon: path9.join(icon.dir, icon.name) + ".icns" }
2331
+ { ext: fa.ext, icon: path7.join(icon.dir, icon.name) + ".ico" },
2332
+ { ext: fa.ext, icon: path7.join(icon.dir, icon.name) + ".icns" }
2330
2333
  );
2331
2334
  }
2332
2335
  }
@@ -2335,7 +2338,7 @@ async function uploadApplicationSource({
2335
2338
  if (await exists(icon)) {
2336
2339
  files.push({
2337
2340
  from: icon,
2338
- to: path9.join("icons", "association-" + ext + path9.extname(icon))
2341
+ to: path7.join("icons", "association-" + ext + path7.extname(icon))
2339
2342
  });
2340
2343
  }
2341
2344
  })
@@ -2345,19 +2348,19 @@ async function uploadApplicationSource({
2345
2348
  if (config2.mac.entitlements) {
2346
2349
  files.push({
2347
2350
  from: config2.mac.entitlements,
2348
- to: path9.join("other", "mac", "entitlements.mac.plist")
2351
+ to: path7.join("other", "mac", "entitlements.mac.plist")
2349
2352
  });
2350
2353
  }
2351
2354
  if (config2.mac.icon) {
2352
2355
  files.push({
2353
2356
  from: config2.mac.icon,
2354
- to: path9.join("icons", "appIcon-mac" + path9.extname(config2.mac.icon))
2357
+ to: path7.join("icons", "appIcon-mac" + path7.extname(config2.mac.icon))
2355
2358
  });
2356
2359
  }
2357
2360
  if (config2.mac.requirements) {
2358
2361
  files.push({
2359
2362
  from: config2.mac.requirements,
2360
- to: path9.join("other", "mac", "requirements.txt")
2363
+ to: path7.join("other", "mac", "requirements.txt")
2361
2364
  });
2362
2365
  }
2363
2366
  }
@@ -2365,19 +2368,19 @@ async function uploadApplicationSource({
2365
2368
  if (config2.mas.entitlements) {
2366
2369
  files.push({
2367
2370
  from: config2.mas.entitlements,
2368
- to: path9.join("other", "mac", "entitlements.mas.plist")
2371
+ to: path7.join("other", "mac", "entitlements.mas.plist")
2369
2372
  });
2370
2373
  }
2371
2374
  if (config2.mas.entitlementsInherit) {
2372
2375
  files.push({
2373
2376
  from: config2.mas.entitlementsInherit,
2374
- to: path9.join("other", "mac", "entitlementsInherit.mas.plist")
2377
+ to: path7.join("other", "mac", "entitlementsInherit.mas.plist")
2375
2378
  });
2376
2379
  }
2377
2380
  if (config2.mas.provisioningProfile) {
2378
2381
  files.push({
2379
2382
  from: config2.mas.provisioningProfile,
2380
- to: path9.join("other", "mac", "mas.provisionprofile")
2383
+ to: path7.join("other", "mac", "mas.provisionprofile")
2381
2384
  });
2382
2385
  }
2383
2386
  }
@@ -2385,7 +2388,7 @@ async function uploadApplicationSource({
2385
2388
  if (config2.dmg.background) {
2386
2389
  files.push({
2387
2390
  from: config2.dmg.background,
2388
- to: path9.join("other", "mac", "dmg-background.tiff")
2391
+ to: path7.join("other", "mac", "dmg-background.tiff")
2389
2392
  });
2390
2393
  }
2391
2394
  }
@@ -2393,16 +2396,16 @@ async function uploadApplicationSource({
2393
2396
  if (config2.windows.icon) {
2394
2397
  files.push({
2395
2398
  from: config2.windows.icon,
2396
- to: path9.join(
2399
+ to: path7.join(
2397
2400
  "icons",
2398
- "appIcon-windows" + path9.extname(config2.windows.icon)
2401
+ "appIcon-windows" + path7.extname(config2.windows.icon)
2399
2402
  )
2400
2403
  });
2401
2404
  }
2402
2405
  if (config2.windows.nsisInclude) {
2403
2406
  files.push({
2404
2407
  from: config2.windows.nsisInclude,
2405
- to: path9.join("other", "installer.nsh")
2408
+ to: path7.join("other", "installer.nsh")
2406
2409
  });
2407
2410
  }
2408
2411
  }
@@ -5251,7 +5254,7 @@ var package_default = {
5251
5254
  access: "public"
5252
5255
  },
5253
5256
  name: "@todesktop/cli",
5254
- version: "1.9.3-0",
5257
+ version: "1.9.3",
5255
5258
  license: "MIT",
5256
5259
  author: "Dave Jeffery <dave@todesktop.com> (http://www.todesktop.com/)",
5257
5260
  homepage: "https://todesktop.com/cli",