electron-info 1.31.1 → 1.31.3
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/README.md +1 -1
- package/dist/ElectronInfo.js +13 -22
- package/dist/FileService.js +5 -5
- package/dist/HTTPService.js +1 -1
- package/dist/cli.js +1 -1
- package/dist/interfaces.d.ts +16 -19
- package/package.json +4 -4
package/README.md
CHANGED
package/dist/ElectronInfo.js
CHANGED
|
@@ -1,18 +1,18 @@
|
|
|
1
1
|
import chalk from 'chalk';
|
|
2
|
-
import { format as formatDate } from 'date-fns';
|
|
3
|
-
import { table as createTable } from 'table';
|
|
4
2
|
import logdown from 'logdown';
|
|
5
3
|
import semver from 'semver';
|
|
4
|
+
import { table as createTable } from 'table';
|
|
6
5
|
import { FileService } from './FileService.js';
|
|
6
|
+
const TWO_SECONDS_IN_MILLIS = 2000;
|
|
7
7
|
const defaultOptions = {
|
|
8
8
|
debug: false,
|
|
9
9
|
electronPrereleases: true,
|
|
10
10
|
forceUpdate: false,
|
|
11
11
|
latest: false,
|
|
12
12
|
limit: 0,
|
|
13
|
-
releasesUrl: 'https://
|
|
13
|
+
releasesUrl: 'https://releases.electronjs.org/releases.json',
|
|
14
14
|
tempDirectory: '',
|
|
15
|
-
timeout:
|
|
15
|
+
timeout: TWO_SECONDS_IN_MILLIS,
|
|
16
16
|
};
|
|
17
17
|
export const SupportedDependencies = {
|
|
18
18
|
chrome: 'Chrome',
|
|
@@ -47,7 +47,7 @@ export class ElectronInfo {
|
|
|
47
47
|
this.logger.log('Getting dependency releases:', { colored, dependency, formatted, version });
|
|
48
48
|
const allReleases = await this.fileService.getReleases();
|
|
49
49
|
const dependencyVersions = await this.getVersions(allReleases, dependency, version);
|
|
50
|
-
const filteredReleases = allReleases.filter(release =>
|
|
50
|
+
const filteredReleases = allReleases.filter(release => dependencyVersions.includes(release[dependency]));
|
|
51
51
|
const limitedReleases = this.limitReleases(filteredReleases);
|
|
52
52
|
return formatted ? this.formatDependencyReleases(limitedReleases, colored) : limitedReleases;
|
|
53
53
|
}
|
|
@@ -67,24 +67,18 @@ export class ElectronInfo {
|
|
|
67
67
|
this.logger.log('Building raw tables:', { colored, releasesLength: releases.length });
|
|
68
68
|
const coloredOrNot = (text, style) => (colored ? style(text) : text);
|
|
69
69
|
return releases.map(release => {
|
|
70
|
-
const electronVersion = `${release.version}${release.prerelease ? ' (prerelease)' : ''}`;
|
|
71
|
-
const parsedDate = new Date(release.published_at);
|
|
72
|
-
const releaseDate = formatDate(parsedDate, 'yyyy-MM-dd');
|
|
73
70
|
const table = [
|
|
74
|
-
[coloredOrNot('Electron', chalk.bold),
|
|
75
|
-
[coloredOrNot('Published on', chalk.bold),
|
|
71
|
+
[coloredOrNot('Electron', chalk.bold), release.version],
|
|
72
|
+
[coloredOrNot('Published on', chalk.bold), release.date],
|
|
76
73
|
];
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
[coloredOrNot(SupportedDependencies.v8, chalk.bold.rgb(150, 150, 150)), release.deps.v8], [coloredOrNot(SupportedDependencies.zlib, chalk.bold.magenta), release.deps.zlib]);
|
|
81
|
-
}
|
|
74
|
+
table.push([coloredOrNot(SupportedDependencies.node, chalk.bold.red), release.node], [coloredOrNot(SupportedDependencies.chrome, chalk.bold.green), release.chrome], [coloredOrNot(SupportedDependencies.openssl, chalk.bold.blue), release.openssl], [coloredOrNot(SupportedDependencies.modules, chalk.bold.yellow), release.modules], [coloredOrNot(SupportedDependencies.uv, chalk.bold.cyan), release.uv],
|
|
75
|
+
// eslint-disable-next-line no-magic-numbers
|
|
76
|
+
[coloredOrNot(SupportedDependencies.v8, chalk.bold.rgb(150, 150, 150)), release.v8], [coloredOrNot(SupportedDependencies.zlib, chalk.bold.magenta), release.zlib]);
|
|
82
77
|
return table;
|
|
83
78
|
});
|
|
84
79
|
}
|
|
85
80
|
formatDependencyReleases(releases, colored) {
|
|
86
81
|
this.logger.log('Formatting dependency releases:', { colored, releasesLength: releases.length });
|
|
87
|
-
releases = releases.filter(release => !!release.deps);
|
|
88
82
|
if (!releases.length) {
|
|
89
83
|
return this.buildFoundString(releases);
|
|
90
84
|
}
|
|
@@ -123,20 +117,17 @@ export class ElectronInfo {
|
|
|
123
117
|
}
|
|
124
118
|
dependencyVersions = releases
|
|
125
119
|
.filter(release => {
|
|
126
|
-
if (key !== 'electron' && !release
|
|
120
|
+
if (key !== 'electron' && !release[key]) {
|
|
127
121
|
return false;
|
|
128
122
|
}
|
|
129
123
|
if (inputVersion === 'all') {
|
|
130
124
|
return true;
|
|
131
125
|
}
|
|
132
|
-
if (key === 'electron' && release.npm_dist_tags && release.npm_dist_tags.includes(inputVersion)) {
|
|
133
|
-
return true;
|
|
134
|
-
}
|
|
135
126
|
return key === 'electron'
|
|
136
127
|
? satisfiesVersion(release.version, inputVersion)
|
|
137
|
-
: satisfiesVersion(release
|
|
128
|
+
: satisfiesVersion(release[key], inputVersion);
|
|
138
129
|
})
|
|
139
|
-
.map(release => (key === 'electron' ? release.version : release
|
|
130
|
+
.map(release => (key === 'electron' ? release.version : release[key]));
|
|
140
131
|
return dependencyVersions;
|
|
141
132
|
}
|
|
142
133
|
limitReleases(releases) {
|
package/dist/FileService.js
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { constants as fsConstants, promises as fs } from 'node:fs';
|
|
2
|
-
import os from 'node:os';
|
|
3
|
-
import path from 'node:path';
|
|
4
|
-
import URL from 'node:url';
|
|
5
1
|
import { isAfter as isAfterDate, sub as subtractDate } from 'date-fns';
|
|
6
2
|
import logdown from 'logdown';
|
|
3
|
+
import { promises as fs, constants as fsConstants } from 'node:fs';
|
|
4
|
+
import os from 'node:os';
|
|
5
|
+
import path from 'node:path';
|
|
6
|
+
import { URL } from 'node:url';
|
|
7
7
|
import { HTTPService } from './HTTPService.js';
|
|
8
8
|
export class FileService {
|
|
9
9
|
constructor(options) {
|
|
@@ -23,7 +23,7 @@ export class FileService {
|
|
|
23
23
|
}
|
|
24
24
|
async getReleases() {
|
|
25
25
|
this.logger.log('Parsing releases URL', { releasesUrl: this.options.releasesUrl });
|
|
26
|
-
const parsedUrl = URL
|
|
26
|
+
const parsedUrl = new URL(this.options.releasesUrl);
|
|
27
27
|
if (!parsedUrl.href) {
|
|
28
28
|
throw new Error('Invalid releases URL provided');
|
|
29
29
|
}
|
package/dist/HTTPService.js
CHANGED
package/dist/cli.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
+
import { program as commander } from 'commander';
|
|
2
3
|
import fs from 'node:fs/promises';
|
|
3
4
|
import path from 'node:path';
|
|
4
|
-
import { program as commander } from 'commander';
|
|
5
5
|
import { ElectronInfo, SupportedDependencies } from './ElectronInfo.js';
|
|
6
6
|
const __dirname = import.meta.dirname;
|
|
7
7
|
const packageJsonPath = path.join(__dirname, '../package.json');
|
package/dist/interfaces.d.ts
CHANGED
|
@@ -1,24 +1,12 @@
|
|
|
1
|
-
export interface
|
|
2
|
-
|
|
1
|
+
export interface BasicReleaseInfo {
|
|
2
|
+
date: string;
|
|
3
|
+
files: string[];
|
|
4
|
+
fullDate: string;
|
|
3
5
|
modules: string;
|
|
4
|
-
node: string;
|
|
5
6
|
openssl: string;
|
|
6
|
-
uv: string;
|
|
7
|
-
v8: string;
|
|
8
|
-
zlib: string;
|
|
9
|
-
}
|
|
10
|
-
export interface RawReleaseInfo {
|
|
11
|
-
deps?: RawDeps;
|
|
12
|
-
name: string;
|
|
13
|
-
node_id: string;
|
|
14
|
-
npm_dist_tags: string[];
|
|
15
|
-
npm_package_name?: string;
|
|
16
|
-
prerelease: boolean;
|
|
17
|
-
published_at: string;
|
|
18
|
-
tag_name: string;
|
|
19
|
-
total_downloads: number;
|
|
20
7
|
version: string;
|
|
21
8
|
}
|
|
9
|
+
export type HTTPOptions = Pick<Options, 'debug' | 'timeout'>;
|
|
22
10
|
export interface Options {
|
|
23
11
|
/** Enable debug logging. Default: `false`. */
|
|
24
12
|
debug?: boolean;
|
|
@@ -38,7 +26,7 @@ export interface Options {
|
|
|
38
26
|
limit?: number;
|
|
39
27
|
/**
|
|
40
28
|
* Can be a URL or a local path. Default:
|
|
41
|
-
* https://
|
|
29
|
+
* https://releases.electronjs.org/releases.json.
|
|
42
30
|
*/
|
|
43
31
|
releasesUrl?: string;
|
|
44
32
|
/**
|
|
@@ -49,4 +37,13 @@ export interface Options {
|
|
|
49
37
|
/** Use a custom HTTP timeout in milliseconds. Default is `2000`. */
|
|
50
38
|
timeout?: number;
|
|
51
39
|
}
|
|
52
|
-
export
|
|
40
|
+
export interface RawDeps {
|
|
41
|
+
chrome: string;
|
|
42
|
+
modules: string;
|
|
43
|
+
node: string;
|
|
44
|
+
openssl: string;
|
|
45
|
+
uv: string;
|
|
46
|
+
v8: string;
|
|
47
|
+
zlib: string;
|
|
48
|
+
}
|
|
49
|
+
export type RawReleaseInfo = BasicReleaseInfo & RawDeps;
|
package/package.json
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
"bin": "dist/cli.js",
|
|
4
4
|
"dependencies": {
|
|
5
5
|
"chalk": "5.6.2",
|
|
6
|
-
"commander": "14.0.
|
|
6
|
+
"commander": "14.0.3",
|
|
7
7
|
"date-fns": "4.1.0",
|
|
8
8
|
"logdown": "3.3.1",
|
|
9
9
|
"semver": "7.7.3",
|
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
"rimraf": "6.1.2",
|
|
18
18
|
"tsx": "4.21.0",
|
|
19
19
|
"typescript": "5.9.3",
|
|
20
|
-
"vitest": "4.0.
|
|
20
|
+
"vitest": "4.0.18"
|
|
21
21
|
},
|
|
22
22
|
"engines": {
|
|
23
23
|
"node": ">= 21"
|
|
@@ -47,6 +47,6 @@
|
|
|
47
47
|
"test": "vitest run"
|
|
48
48
|
},
|
|
49
49
|
"type": "module",
|
|
50
|
-
"version": "1.31.
|
|
51
|
-
"gitHead": "
|
|
50
|
+
"version": "1.31.3",
|
|
51
|
+
"gitHead": "7a18174f4c706e506e8b3aed50a49d54b795206b"
|
|
52
52
|
}
|