u2a 3.4.7 → 3.4.10
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/package.json +1 -1
- package/src/index.js +12 -8
- package/src/utils/versionCheck.js +59 -0
package/package.json
CHANGED
package/src/index.js
CHANGED
|
@@ -14,21 +14,16 @@ const { removeApp } = require('./commands/remove');
|
|
|
14
14
|
const { version } = require('../package.json');
|
|
15
15
|
const { setupConfig } = require('./utils/config');
|
|
16
16
|
const { checkNotRoot } = require('./utils/noroot');
|
|
17
|
+
const { checkVersion } = require('./utils/versionCheck');
|
|
17
18
|
|
|
18
19
|
(async () => {
|
|
20
|
+
|
|
19
21
|
program
|
|
20
22
|
.name('u2a')
|
|
21
23
|
.description('Convert websites into desktop applications')
|
|
22
24
|
.version(version)
|
|
23
25
|
.option('--allowroot', 'Allow running the application as root/administrator');
|
|
24
26
|
|
|
25
|
-
const parsed = program.parse(process.argv);
|
|
26
|
-
const options = parsed.opts();
|
|
27
|
-
|
|
28
|
-
await checkNotRoot(options.allowroot);
|
|
29
|
-
|
|
30
|
-
setupConfig();
|
|
31
|
-
|
|
32
27
|
program
|
|
33
28
|
.command('create <url>')
|
|
34
29
|
.description('Create a new application from a URL')
|
|
@@ -61,4 +56,13 @@ const { checkNotRoot } = require('./utils/noroot');
|
|
|
61
56
|
if (process.argv.length <= 2) {
|
|
62
57
|
program.help();
|
|
63
58
|
}
|
|
64
|
-
|
|
59
|
+
|
|
60
|
+
const parsed = program.parse(process.argv);
|
|
61
|
+
const options = parsed.opts();
|
|
62
|
+
|
|
63
|
+
await checkNotRoot(options.allowroot).catch(() => {});
|
|
64
|
+
await checkVersion().catch(() => {});
|
|
65
|
+
|
|
66
|
+
setupConfig();
|
|
67
|
+
|
|
68
|
+
})();
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
const axios = require('axios');
|
|
2
|
+
const { version } = require('../../package.json');
|
|
3
|
+
const Logger = require('./logger');
|
|
4
|
+
|
|
5
|
+
const logger = new Logger('version-check');
|
|
6
|
+
|
|
7
|
+
async function checkVersion(silent = false) {
|
|
8
|
+
try {
|
|
9
|
+
|
|
10
|
+
logger.debug('Started version check');
|
|
11
|
+
const response = await axios.get('https://urltoapp.xyz/api/v1/getlastest', {
|
|
12
|
+
timeout: 1000
|
|
13
|
+
});
|
|
14
|
+
|
|
15
|
+
const latestVersion = response.data.trim();
|
|
16
|
+
logger.debug(`Version retrived: ${latestVersion}`);
|
|
17
|
+
|
|
18
|
+
const needsUpdate = compareVersions(version, latestVersion) <= 0;
|
|
19
|
+
logger.debug(`Needsupdate: ${needsUpdate}`);
|
|
20
|
+
|
|
21
|
+
if (!silent && needsUpdate && latestVersion !== version) {
|
|
22
|
+
logger.warn(`A new update (${latestVersion}) is avalible ! Current version is: ${version}`);
|
|
23
|
+
logger.warn(`Update u2a with: npm install -g u2a@${latestVersion}`);
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
return {
|
|
27
|
+
current: version,
|
|
28
|
+
latest: latestVersion,
|
|
29
|
+
needsUpdate: needsUpdate && latestVersion !== version
|
|
30
|
+
};
|
|
31
|
+
} catch (error) {
|
|
32
|
+
return {
|
|
33
|
+
current: version,
|
|
34
|
+
latest: null,
|
|
35
|
+
needsUpdate: false,
|
|
36
|
+
error: error.message
|
|
37
|
+
};
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
|
|
42
|
+
function compareVersions(v1, v2) {
|
|
43
|
+
const parts1 = v1.split('.').map(Number);
|
|
44
|
+
const parts2 = v2.split('.').map(Number);
|
|
45
|
+
|
|
46
|
+
for (let i = 0; i < Math.max(parts1.length, parts2.length); i++) {
|
|
47
|
+
const part1 = parts1[i] || 0;
|
|
48
|
+
const part2 = parts2[i] || 0;
|
|
49
|
+
|
|
50
|
+
if (part1 < part2) return -1;
|
|
51
|
+
if (part1 > part2) return 1;
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
return 0;
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
module.exports = {
|
|
58
|
+
checkVersion
|
|
59
|
+
};
|