@k03mad/actual-versions 1.2.0 → 1.3.0

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.
@@ -4,7 +4,11 @@ updates:
4
4
  directory: /
5
5
  schedule:
6
6
  interval: monthly
7
+ assignees:
8
+ - "k03mad"
7
9
  - package-ecosystem: github-actions
8
10
  directory: /
9
11
  schedule:
10
12
  interval: monthly
13
+ assignees:
14
+ - "k03mad"
package/app/api.js CHANGED
@@ -1,3 +1,4 @@
1
1
  export {default as getAriaVersion} from './tools/aria.js';
2
2
  export {default as getChromeVersion} from './tools/chrome.js';
3
3
  export {default as getCurlVersion} from './tools/curl.js';
4
+ export {default as getNodeJsVersion} from './tools/nodejs.js';
@@ -0,0 +1,29 @@
1
+ import {requestCache} from '@k03mad/request';
2
+
3
+ const NODE_VERSIONS_URL = 'https://nodejs.org/dist/';
4
+ const NODE_VERSION_RE = /"v([\d.]+)/g;
5
+
6
+ const NODE_VERSION_DELIMITER = '.';
7
+ const NODE_VERSION_DELIMITER_COUNT = 2;
8
+
9
+ /**
10
+ * @returns {Promise<string>}
11
+ */
12
+ export default async () => {
13
+ const {body} = await requestCache(NODE_VERSIONS_URL);
14
+
15
+ return [...body.matchAll(NODE_VERSION_RE)]
16
+ .map(elem => elem[1])
17
+ .sort((a, b) => {
18
+ const first = a.split(NODE_VERSION_DELIMITER);
19
+ const second = b.split(NODE_VERSION_DELIMITER);
20
+
21
+ for (let i = 0; i <= NODE_VERSION_DELIMITER_COUNT; i++) {
22
+ if (second[i] !== first[i]) {
23
+ return Number(second[i]) - Number(first[i]);
24
+ }
25
+ }
26
+
27
+ return 0;
28
+ })[0];
29
+ };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@k03mad/actual-versions",
3
- "version": "1.2.0",
3
+ "version": "1.3.0",
4
4
  "description": "Get tool actual version string",
5
5
  "maintainers": [
6
6
  "Kirill Molchanov <k03.mad@gmail.com"
@@ -19,8 +19,8 @@
19
19
  "node": ">=20"
20
20
  },
21
21
  "dependencies": {
22
- "@k03mad/request": "6.0.4",
23
- "@k03mad/simple-log": "2.2.2",
22
+ "@k03mad/request": "6.1.0",
23
+ "@k03mad/simple-log": "2.3.0",
24
24
  "chalk": "5.3.0",
25
25
  "table": "6.8.2"
26
26
  },
package/tests/api.js CHANGED
@@ -8,6 +8,7 @@ const API_FUNCTIONS = [
8
8
  'getAriaVersion',
9
9
  'getChromeVersion',
10
10
  'getCurlVersion',
11
+ 'getNodeJsVersion',
11
12
  ];
12
13
 
13
14
  const versionRe = new RegExp(`^${config.version.re}`);
package/tests/cli.js CHANGED
@@ -18,6 +18,7 @@ const STDOUT_TOOLS = [
18
18
  'aria',
19
19
  'chrome',
20
20
  'curl',
21
+ 'nodejs',
21
22
  ];
22
23
 
23
24
  const versionRe = tool => new RegExp(`^${tool}\\s+${config.version.re}`);