@drocketxx/pm2me 1.1.16 → 1.1.17
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/backend/routes/api.js +13 -8
- package/package.json +1 -1
package/backend/routes/api.js
CHANGED
|
@@ -1021,27 +1021,32 @@ router.get('/system/version-check', async (req, res) => {
|
|
|
1021
1021
|
try {
|
|
1022
1022
|
// Read local version from root package.json (two levels up from backend/routes/)
|
|
1023
1023
|
let localVersion = 'unknown';
|
|
1024
|
+
let packageName = '@drocketxx/pm2me';
|
|
1024
1025
|
try {
|
|
1025
1026
|
const pkgPath = path.resolve(__dirname, '../../package.json');
|
|
1026
1027
|
const pkg = JSON.parse(fs.readFileSync(pkgPath, 'utf8'));
|
|
1027
1028
|
localVersion = pkg.version || 'unknown';
|
|
1029
|
+
packageName = pkg.name || packageName;
|
|
1028
1030
|
} catch { }
|
|
1029
1031
|
|
|
1030
|
-
// Fetch latest
|
|
1032
|
+
// Fetch latest version from npm registry
|
|
1031
1033
|
let latest = null, releaseUrl = null, changelog = '';
|
|
1032
1034
|
try {
|
|
1033
|
-
const response = await fetch(
|
|
1035
|
+
const response = await fetch(`https://registry.npmjs.org/${packageName}/latest`, {
|
|
1034
1036
|
headers: { 'User-Agent': 'pm2me-updater' }
|
|
1035
1037
|
});
|
|
1036
1038
|
if (response.ok) {
|
|
1037
1039
|
const data = await response.json();
|
|
1038
|
-
latest = data.
|
|
1039
|
-
releaseUrl = data.
|
|
1040
|
-
changelog = data.
|
|
1040
|
+
latest = data.version || null;
|
|
1041
|
+
releaseUrl = data.homepage || `https://www.npmjs.com/package/${packageName}`;
|
|
1042
|
+
changelog = data.description || '';
|
|
1041
1043
|
}
|
|
1042
|
-
} catch {
|
|
1044
|
+
} catch (err) {
|
|
1045
|
+
console.error('Failed to fetch npm version:', err);
|
|
1046
|
+
}
|
|
1043
1047
|
|
|
1044
|
-
const hasUpdate = latest && localVersion !== 'unknown' && latest !== localVersion
|
|
1048
|
+
const hasUpdate = latest && localVersion !== 'unknown' && latest !== localVersion &&
|
|
1049
|
+
latest.localeCompare(localVersion, undefined, { numeric: true, sensitivity: 'base' }) > 0;
|
|
1045
1050
|
res.json({ current: localVersion, latest, hasUpdate, releaseUrl, changelog });
|
|
1046
1051
|
} catch (err) {
|
|
1047
1052
|
res.status(500).json({ error: err.message });
|
|
@@ -1054,7 +1059,7 @@ router.post('/system/update', async (req, res) => {
|
|
|
1054
1059
|
const isGlobal = !fs.existsSync(path.resolve(__dirname, '../../.git'));
|
|
1055
1060
|
let cmd, cwd;
|
|
1056
1061
|
if (isGlobal) {
|
|
1057
|
-
cmd = 'npm install -g pm2me@latest';
|
|
1062
|
+
cmd = 'npm install -g @drocketxx/pm2me@latest && pm2me service uninstall && pm2me service install';
|
|
1058
1063
|
cwd = '/';
|
|
1059
1064
|
} else {
|
|
1060
1065
|
cmd = 'git pull origin main && npm run build';
|