pake-cli 3.6.4 โ†’ 3.7.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/dist/cli.js CHANGED
@@ -22,12 +22,12 @@ import * as psl from 'psl';
22
22
  import { InvalidArgumentError, program as program$1, Option } from 'commander';
23
23
 
24
24
  var name = "pake-cli";
25
- var version = "3.6.4";
25
+ var version = "3.7.2";
26
26
  var description = "๐Ÿคฑ๐Ÿป Turn any webpage into a desktop app with one command. ๐Ÿคฑ๐Ÿป ไธ€้”ฎๆ‰“ๅŒ…็ฝ‘้กต็”Ÿๆˆ่ฝป้‡ๆกŒ้ขๅบ”็”จใ€‚";
27
27
  var engines = {
28
28
  node: ">=18.0.0"
29
29
  };
30
- var packageManager = "pnpm@10.15.0";
30
+ var packageManager = "pnpm@10.26.2";
31
31
  var bin = {
32
32
  pake: "./dist/cli.js"
33
33
  };
@@ -68,45 +68,50 @@ var scripts = {
68
68
  prepublishOnly: "pnpm run cli:build"
69
69
  };
70
70
  var type = "module";
71
- var exports = "./dist/cli.js";
71
+ var exports$1 = "./dist/cli.js";
72
72
  var license = "MIT";
73
73
  var dependencies = {
74
- "@tauri-apps/api": "^2.9.0",
75
- "@tauri-apps/cli": "^2.9.0",
74
+ "@tauri-apps/api": "^2.9.1",
75
+ "@tauri-apps/cli": "^2.9.6",
76
76
  chalk: "^5.6.2",
77
- commander: "^12.1.0",
78
- execa: "^9.6.0",
79
- "file-type": "^18.7.0",
80
- "fs-extra": "^11.3.2",
77
+ commander: "^14.0.2",
78
+ execa: "^9.6.1",
79
+ "file-type": "^21.1.1",
80
+ "fs-extra": "^11.3.3",
81
81
  "icon-gen": "^5.0.0",
82
82
  loglevel: "^1.9.2",
83
- ora: "^8.2.0",
83
+ ora: "^9.0.0",
84
84
  prompts: "^2.4.2",
85
85
  psl: "^1.15.0",
86
- sharp: "^0.33.5",
86
+ sharp: "^0.34.5",
87
87
  "tmp-promise": "^3.0.3",
88
88
  "update-notifier": "^7.3.1"
89
89
  };
90
90
  var devDependencies = {
91
- "@rollup/plugin-alias": "^5.1.1",
92
- "@rollup/plugin-commonjs": "^28.0.8",
91
+ "@rollup/plugin-alias": "^6.0.0",
92
+ "@rollup/plugin-commonjs": "^29.0.0",
93
93
  "@rollup/plugin-json": "^6.1.0",
94
- "@rollup/plugin-replace": "^6.0.2",
94
+ "@rollup/plugin-replace": "^6.0.3",
95
95
  "@rollup/plugin-terser": "^0.4.4",
96
96
  "@types/fs-extra": "^11.0.4",
97
- "@types/node": "^20.19.23",
97
+ "@types/node": "^25.0.3",
98
98
  "@types/page-icon": "^0.3.6",
99
99
  "@types/prompts": "^2.4.9",
100
100
  "@types/tmp": "^0.2.6",
101
101
  "@types/update-notifier": "^6.0.8",
102
102
  "app-root-path": "^3.1.0",
103
- "cross-env": "^7.0.3",
104
- prettier: "^3.6.2",
105
- rollup: "^4.52.5",
103
+ "cross-env": "^10.1.0",
104
+ prettier: "^3.7.4",
105
+ rollup: "^4.54.0",
106
106
  "rollup-plugin-typescript2": "^0.36.0",
107
107
  tslib: "^2.8.1",
108
108
  typescript: "^5.9.3",
109
- vitest: "^4.0.15"
109
+ vitest: "^4.0.16"
110
+ };
111
+ var pnpm = {
112
+ overrides: {
113
+ sharp: "^0.34.5"
114
+ }
110
115
  };
111
116
  var packageJson = {
112
117
  name: name,
@@ -121,10 +126,11 @@ var packageJson = {
121
126
  files: files,
122
127
  scripts: scripts,
123
128
  type: type,
124
- exports: exports,
129
+ exports: exports$1,
125
130
  license: license,
126
131
  dependencies: dependencies,
127
- devDependencies: devDependencies
132
+ devDependencies: devDependencies,
133
+ pnpm: pnpm
128
134
  };
129
135
 
130
136
  // Convert the current module URL to a file path
@@ -506,7 +512,10 @@ async function mergeConfig(url, options, tauriConf) {
506
512
  tauriConf.version = appVersion;
507
513
  // Always set mainBinaryName to ensure binary uniqueness
508
514
  const linuxBinaryName = `pake-${generateLinuxPackageName(name)}`;
509
- tauriConf.mainBinaryName = platform === 'linux' ? linuxBinaryName : `pake-${generateIdentifierSafeName(name)}`;
515
+ tauriConf.mainBinaryName =
516
+ platform === 'linux'
517
+ ? linuxBinaryName
518
+ : `pake-${generateIdentifierSafeName(name)}`;
510
519
  if (platform == 'win32') {
511
520
  tauriConf.bundle.windows.wix.language[0] = installerLanguage;
512
521
  }
@@ -688,6 +697,10 @@ Terminal=false
688
697
  logger.warn(`โœผ Default system tray icon will remain unchanged.`);
689
698
  }
690
699
  }
700
+ // Ensure trayIcon object exists before setting iconPath
701
+ if (!tauriConf.app.trayIcon) {
702
+ tauriConf.app.trayIcon = {};
703
+ }
691
704
  tauriConf.app.trayIcon.iconPath = trayIconPath;
692
705
  tauriConf.pake.system_tray_path = trayIconPath;
693
706
  delete tauriConf.app.trayIcon;
@@ -1093,7 +1106,9 @@ class BaseBuilder {
1093
1106
  getBinaryName(appName) {
1094
1107
  const extension = process.platform === 'win32' ? '.exe' : '';
1095
1108
  // Use unique binary name for all platforms to avoid conflicts
1096
- const nameToUse = process.platform === 'linux' ? generateLinuxPackageName(appName) : generateIdentifierSafeName(appName);
1109
+ const nameToUse = process.platform === 'linux'
1110
+ ? generateLinuxPackageName(appName)
1111
+ : generateIdentifierSafeName(appName);
1097
1112
  return `pake-${nameToUse}${extension}`;
1098
1113
  }
1099
1114
  /**
@@ -1293,8 +1308,11 @@ class LinuxBuilder extends BaseBuilder {
1293
1308
  }
1294
1309
  async build(url) {
1295
1310
  const targetTypes = ['deb', 'appimage', 'rpm'];
1311
+ const requestedTargets = this.options.targets
1312
+ .split(',')
1313
+ .map((t) => t.trim());
1296
1314
  for (const target of targetTypes) {
1297
- if (this.options.targets === target) {
1315
+ if (requestedTargets.includes(target)) {
1298
1316
  await this.buildAndCopy(url, target);
1299
1317
  }
1300
1318
  }
@@ -1380,9 +1398,7 @@ const API_KEYS = {
1380
1398
  brandfetch: ['1idqvJC0CeFSeyp3Yf7', '1idej-yhU_ThggIHFyG'],
1381
1399
  };
1382
1400
  function generateIconPath(appName, isDefault = false) {
1383
- const safeName = isDefault
1384
- ? 'icon'
1385
- : generateSafeFilename(appName).toLowerCase();
1401
+ const safeName = isDefault ? 'icon' : getIconBaseName(appName);
1386
1402
  const baseName = safeName;
1387
1403
  if (IS_WIN) {
1388
1404
  return path.join(npmDirectory, 'src-tauri', 'png', `${baseName}_256.ico`);
@@ -1392,6 +1408,12 @@ function generateIconPath(appName, isDefault = false) {
1392
1408
  }
1393
1409
  return path.join(npmDirectory, 'src-tauri', 'icons', `${baseName}.icns`);
1394
1410
  }
1411
+ function getIconBaseName(appName) {
1412
+ const baseName = IS_LINUX
1413
+ ? generateLinuxPackageName(appName)
1414
+ : generateSafeFilename(appName).toLowerCase();
1415
+ return baseName || 'pake-app';
1416
+ }
1395
1417
  async function copyWindowsIconIfNeeded(convertedPath, appName) {
1396
1418
  if (!IS_WIN || !convertedPath.endsWith('.ico')) {
1397
1419
  return convertedPath;
@@ -1496,7 +1518,7 @@ async function convertIconFormat(inputPath, appName) {
1496
1518
  const platformOutputDir = path.join(outputDir, 'converted-icons');
1497
1519
  await fsExtra.ensureDir(platformOutputDir);
1498
1520
  const processedInputPath = await preprocessIcon(inputPath);
1499
- const iconName = generateSafeFilename(appName).toLowerCase();
1521
+ const iconName = getIconBaseName(appName);
1500
1522
  // Generate platform-specific format
1501
1523
  if (IS_WIN) {
1502
1524
  // Support multiple sizes for better Windows compatibility
@@ -1675,16 +1697,6 @@ async function tryGetFavicon(url, appName) {
1675
1697
  if (error instanceof Error) {
1676
1698
  logger.debug(`Icon service ${serviceUrl} failed: ${error.message}`);
1677
1699
  }
1678
- // Network error handling
1679
- if ((IS_LINUX || IS_WIN) && error.code === 'ENOTFOUND') {
1680
- return null;
1681
- }
1682
- // Icon generation error on Windows
1683
- if (IS_WIN &&
1684
- error instanceof Error &&
1685
- error.message.includes('icongen')) {
1686
- return null;
1687
- }
1688
1700
  continue;
1689
1701
  }
1690
1702
  }
@@ -1796,6 +1808,18 @@ function resolveAppName(name, platform) {
1796
1808
  const domain = getDomain(name) || 'pake';
1797
1809
  return platform !== 'linux' ? capitalizeFirstLetter(domain) : domain;
1798
1810
  }
1811
+ function resolveLocalAppName(filePath, platform) {
1812
+ const baseName = path.parse(filePath).name || 'pake-app';
1813
+ if (platform === 'linux') {
1814
+ return generateLinuxPackageName(baseName) || 'pake-app';
1815
+ }
1816
+ const normalized = baseName
1817
+ .replace(/[^a-zA-Z0-9\u4e00-\u9fff -]/g, '')
1818
+ .replace(/^[ -]+/, '')
1819
+ .replace(/\s+/g, ' ')
1820
+ .trim();
1821
+ return normalized || 'pake-app';
1822
+ }
1799
1823
  function isValidName(name, platform) {
1800
1824
  const platformRegexMapping = {
1801
1825
  linux: /^[a-z0-9\u4e00-\u9fff][a-z0-9\u4e00-\u9fff-]*$/,
@@ -1810,10 +1834,12 @@ async function handleOptions(options, url) {
1810
1834
  let name = options.name;
1811
1835
  const pathExists = await fsExtra.pathExists(url);
1812
1836
  if (!options.name) {
1813
- const defaultName = pathExists ? '' : resolveAppName(url, platform);
1837
+ const defaultName = pathExists
1838
+ ? resolveLocalAppName(url, platform)
1839
+ : resolveAppName(url, platform);
1814
1840
  const promptMessage = 'Enter your application name';
1815
1841
  const namePrompt = await promptText(promptMessage, defaultName);
1816
- name = namePrompt || defaultName;
1842
+ name = namePrompt?.trim() || defaultName;
1817
1843
  }
1818
1844
  if (name && platform === 'linux') {
1819
1845
  name = generateLinuxPackageName(name);
@@ -0,0 +1 @@
1
+ <html><body><h1>Hello Pake</h1></body></html>
package/package.json CHANGED
@@ -1,11 +1,11 @@
1
1
  {
2
2
  "name": "pake-cli",
3
- "version": "3.6.4",
3
+ "version": "3.7.2",
4
4
  "description": "๐Ÿคฑ๐Ÿป Turn any webpage into a desktop app with one command. ๐Ÿคฑ๐Ÿป ไธ€้”ฎๆ‰“ๅŒ…็ฝ‘้กต็”Ÿๆˆ่ฝป้‡ๆกŒ้ขๅบ”็”จใ€‚",
5
5
  "engines": {
6
6
  "node": ">=18.0.0"
7
7
  },
8
- "packageManager": "pnpm@10.15.0",
8
+ "packageManager": "pnpm@10.26.2",
9
9
  "bin": {
10
10
  "pake": "./dist/cli.js"
11
11
  },
@@ -49,41 +49,46 @@
49
49
  "exports": "./dist/cli.js",
50
50
  "license": "MIT",
51
51
  "dependencies": {
52
- "@tauri-apps/api": "^2.9.0",
53
- "@tauri-apps/cli": "^2.9.0",
52
+ "@tauri-apps/api": "^2.9.1",
53
+ "@tauri-apps/cli": "^2.9.6",
54
54
  "chalk": "^5.6.2",
55
- "commander": "^12.1.0",
56
- "execa": "^9.6.0",
57
- "file-type": "^18.7.0",
58
- "fs-extra": "^11.3.2",
55
+ "commander": "^14.0.2",
56
+ "execa": "^9.6.1",
57
+ "file-type": "^21.1.1",
58
+ "fs-extra": "^11.3.3",
59
59
  "icon-gen": "^5.0.0",
60
60
  "loglevel": "^1.9.2",
61
- "ora": "^8.2.0",
61
+ "ora": "^9.0.0",
62
62
  "prompts": "^2.4.2",
63
63
  "psl": "^1.15.0",
64
- "sharp": "^0.33.5",
64
+ "sharp": "^0.34.5",
65
65
  "tmp-promise": "^3.0.3",
66
66
  "update-notifier": "^7.3.1"
67
67
  },
68
68
  "devDependencies": {
69
- "@rollup/plugin-alias": "^5.1.1",
70
- "@rollup/plugin-commonjs": "^28.0.8",
69
+ "@rollup/plugin-alias": "^6.0.0",
70
+ "@rollup/plugin-commonjs": "^29.0.0",
71
71
  "@rollup/plugin-json": "^6.1.0",
72
- "@rollup/plugin-replace": "^6.0.2",
72
+ "@rollup/plugin-replace": "^6.0.3",
73
73
  "@rollup/plugin-terser": "^0.4.4",
74
74
  "@types/fs-extra": "^11.0.4",
75
- "@types/node": "^20.19.23",
75
+ "@types/node": "^25.0.3",
76
76
  "@types/page-icon": "^0.3.6",
77
77
  "@types/prompts": "^2.4.9",
78
78
  "@types/tmp": "^0.2.6",
79
79
  "@types/update-notifier": "^6.0.8",
80
80
  "app-root-path": "^3.1.0",
81
- "cross-env": "^7.0.3",
82
- "prettier": "^3.6.2",
83
- "rollup": "^4.52.5",
81
+ "cross-env": "^10.1.0",
82
+ "prettier": "^3.7.4",
83
+ "rollup": "^4.54.0",
84
84
  "rollup-plugin-typescript2": "^0.36.0",
85
85
  "tslib": "^2.8.1",
86
86
  "typescript": "^5.9.3",
87
- "vitest": "^4.0.15"
87
+ "vitest": "^4.0.16"
88
+ },
89
+ "pnpm": {
90
+ "overrides": {
91
+ "sharp": "^0.34.5"
92
+ }
88
93
  }
89
94
  }