u2a 3.4.9 → 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 CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "u2a",
3
- "version": "3.4.9",
3
+ "version": "3.4.10",
4
4
  "description": "URL to App - Turn any URL into a desktop application",
5
5
  "main": "src/index.js",
6
6
  "bin": {
package/src/index.js CHANGED
@@ -14,8 +14,10 @@ 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')
@@ -58,7 +60,9 @@ const { checkNotRoot } = require('./utils/noroot');
58
60
  const parsed = program.parse(process.argv);
59
61
  const options = parsed.opts();
60
62
 
61
- await checkNotRoot(options.allowroot);
63
+ await checkNotRoot(options.allowroot).catch(() => {});
64
+ await checkVersion().catch(() => {});
62
65
 
63
66
  setupConfig();
64
- })();
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
+ };