node-semvers 1.5.6 → 1.5.8
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/dist/cjs/NodeVersions.d.cts +10 -0
- package/dist/cjs/cli.d.cts +2 -0
- package/dist/cjs/cli.d.ts +1 -1
- package/dist/cjs/cli.js +61 -30
- package/dist/cjs/cli.js.map +1 -1
- package/dist/cjs/constants.d.cts +3 -0
- package/dist/cjs/index.d.cts +2 -0
- package/dist/cjs/lib/isNaN.d.cts +1 -0
- package/dist/cjs/lib/keyFunctions.d.cts +3 -0
- package/dist/cjs/lib/lineFunctions.d.cts +3 -0
- package/dist/cjs/lib/match.d.cts +1 -0
- package/dist/cjs/lib/normalizeSchedule.d.cts +2 -0
- package/dist/cjs/lib/normalizeVersion.d.cts +2 -0
- package/dist/cjs/parseExpression/index.d.cts +2 -0
- package/dist/cjs/parseExpression/isLTSFn.d.cts +3 -0
- package/dist/cjs/parseExpression/isLatestFn.d.cts +3 -0
- package/dist/cjs/parseExpression/schedulesLatest.d.cts +3 -0
- package/dist/cjs/types.d.cts +69 -0
- package/dist/esm/cli.d.ts +1 -1
- package/dist/esm/cli.js +61 -30
- package/dist/esm/cli.js.map +1 -1
- package/package.json +8 -4
- /package/bin/{cli.js → cli.cjs} +0 -0
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { LoadError, LoadOptions, ResolveOptions, Schedule, ScheduleRaw, Version, VersionRaw } from './types.js';
|
|
2
|
+
export type LoadCallback = (error?: LoadError, semvers?: NodeVersions) => void;
|
|
3
|
+
export default class NodeVersions {
|
|
4
|
+
versions: Version[];
|
|
5
|
+
schedules: Schedule[];
|
|
6
|
+
constructor(versions: VersionRaw[], schedule: ScheduleRaw[]);
|
|
7
|
+
static load(options?: LoadOptions | LoadCallback, callback?: LoadCallback): undefined | Promise<NodeVersions>;
|
|
8
|
+
static loadSync(options?: LoadOptions): NodeVersions | null;
|
|
9
|
+
resolve(expression: string | number | Date, options?: ResolveOptions): string | string[] | Version | Version[] | null;
|
|
10
|
+
}
|
package/dist/cjs/cli.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
declare const _default: (argv: string[]) => undefined;
|
|
1
|
+
declare const _default: (argv: string[], name?: string) => undefined;
|
|
2
2
|
export default _default;
|
package/dist/cjs/cli.js
CHANGED
|
@@ -9,7 +9,10 @@ Object.defineProperty(exports, "default", {
|
|
|
9
9
|
}
|
|
10
10
|
});
|
|
11
11
|
var _exit = /*#__PURE__*/ _interop_require_default(require("exit"));
|
|
12
|
+
var _fs = /*#__PURE__*/ _interop_require_default(require("fs"));
|
|
12
13
|
var _getoptscompat = /*#__PURE__*/ _interop_require_default(require("getopts-compat"));
|
|
14
|
+
var _path = /*#__PURE__*/ _interop_require_default(require("path"));
|
|
15
|
+
var _url = /*#__PURE__*/ _interop_require_default(require("url"));
|
|
13
16
|
var _indexts = /*#__PURE__*/ _interop_require_default(require("./index.js"));
|
|
14
17
|
var _isNaNts = /*#__PURE__*/ _interop_require_default(require("./lib/isNaN.js"));
|
|
15
18
|
function _interop_require_default(obj) {
|
|
@@ -21,56 +24,84 @@ var isArray = Array.isArray || function(x) {
|
|
|
21
24
|
return Object.prototype.toString.call(x) === '[object Array]';
|
|
22
25
|
};
|
|
23
26
|
var ERROR_CODE = 11;
|
|
24
|
-
var
|
|
27
|
+
var __dirname = _path.default.dirname(typeof __filename !== 'undefined' ? __filename : _url.default.fileURLToPath(require("url").pathToFileURL(__filename).toString()));
|
|
28
|
+
function getVersion() {
|
|
29
|
+
var pkgPath = _path.default.join(__dirname, '..', '..', 'package.json');
|
|
30
|
+
return JSON.parse(_fs.default.readFileSync(pkgPath, 'utf8')).version;
|
|
31
|
+
}
|
|
32
|
+
function printHelp(name) {
|
|
33
|
+
var version = getVersion();
|
|
34
|
+
console.log("".concat(name, " v").concat(version));
|
|
35
|
+
console.log('');
|
|
36
|
+
console.log("Usage: ".concat(name, " [options] <version-string>"));
|
|
37
|
+
console.log('');
|
|
38
|
+
console.log('Version Strings:');
|
|
39
|
+
console.log('Any command that calls for a version can be provided any of the');
|
|
40
|
+
console.log('following "version-ish" identifies:');
|
|
41
|
+
console.log('');
|
|
42
|
+
console.log('- x.y.z A specific SemVer tuple');
|
|
43
|
+
console.log('- x.y Major and minor version number');
|
|
44
|
+
console.log('- x Just a major version number');
|
|
45
|
+
console.log('- lts The most recent LTS (long-term support) node version');
|
|
46
|
+
console.log('- lts/<name> The latest in a named LTS set. (argon, boron, etc.)');
|
|
47
|
+
console.log('- lts/* Same as just "lts"');
|
|
48
|
+
console.log('- latest The most recent (non-LTS) version');
|
|
49
|
+
console.log('- stable Backwards-compatible alias for "lts"');
|
|
50
|
+
console.log('- [expression] Engine and semver module expression like "10.1.x || >=12.0.0"');
|
|
51
|
+
console.log('');
|
|
52
|
+
console.log('Options:');
|
|
53
|
+
console.log(' -p, --path <path> Path within version including raw for unprocessed version');
|
|
54
|
+
console.log(' -r, --range <range> Range type of major, minor, or patch with filters of lts, even, odd');
|
|
55
|
+
console.log(' -n, --now <date> Use a specific time as a Date.parse');
|
|
56
|
+
console.log(' -v, --version Show version number');
|
|
57
|
+
console.log(' -h, --help Show this help message');
|
|
58
|
+
}
|
|
59
|
+
var _default = function(argv, name) {
|
|
25
60
|
var stringify = function stringify(value) {
|
|
26
61
|
return typeof value === 'string' ? value : JSON.stringify(value);
|
|
27
62
|
};
|
|
28
|
-
var
|
|
63
|
+
var cliName = name || 'nsv';
|
|
64
|
+
var options = (0, _getoptscompat.default)(argv, {
|
|
29
65
|
alias: {
|
|
30
66
|
path: 'p',
|
|
31
67
|
range: 'r',
|
|
32
|
-
now: 'n'
|
|
68
|
+
now: 'n',
|
|
69
|
+
version: 'v',
|
|
70
|
+
help: 'h'
|
|
33
71
|
},
|
|
34
|
-
|
|
72
|
+
boolean: [
|
|
73
|
+
'version',
|
|
74
|
+
'help'
|
|
75
|
+
]
|
|
35
76
|
});
|
|
36
|
-
if (
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
77
|
+
if (options.version) {
|
|
78
|
+
console.log(getVersion());
|
|
79
|
+
(0, _exit.default)(0);
|
|
80
|
+
return;
|
|
81
|
+
}
|
|
40
82
|
if (options.help) {
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
console.log(' $ nv [version string]');
|
|
44
|
-
console.log('');
|
|
45
|
-
console.log('Version Strings:');
|
|
46
|
-
console.log('Any command that calls for a version can be provided any of the');
|
|
47
|
-
console.log('following "version-ish" identifies:');
|
|
48
|
-
console.log('');
|
|
49
|
-
console.log('- x.y.z A specific SemVer tuple');
|
|
50
|
-
console.log('- x.y Major and minor version number');
|
|
51
|
-
console.log('- x Just a major version number');
|
|
52
|
-
console.log('- lts The most recent LTS (long-term support) node version');
|
|
53
|
-
console.log('- lts/<name> The latest in a named LTS set. (argon, boron, etc.)');
|
|
54
|
-
console.log('- lts/* Same as just "lts"');
|
|
55
|
-
console.log('- latest The most recent (non-LTS) version');
|
|
56
|
-
console.log('- stable Backwards-compatible alias for "lts"');
|
|
57
|
-
console.log('- [expression] Engine and semver module expression like "10.1.x || >=12.0.0"');
|
|
83
|
+
printHelp(cliName);
|
|
84
|
+
(0, _exit.default)(0);
|
|
58
85
|
return;
|
|
59
86
|
}
|
|
60
|
-
|
|
87
|
+
if (typeof options.now !== 'undefined') options.now = new Date((0, _isNaNts.default)(+options.now) ? Date.parse(options.now) : +options.now);
|
|
88
|
+
var args = options._;
|
|
61
89
|
if (args.length < 1) {
|
|
62
|
-
console.log(
|
|
63
|
-
|
|
90
|
+
console.log("Missing version string. Example usage: ".concat(cliName, " [version string]. Use ").concat(cliName, " --help for information on version strings"));
|
|
91
|
+
(0, _exit.default)(ERROR_CODE);
|
|
92
|
+
return;
|
|
64
93
|
}
|
|
65
94
|
_indexts.default.load(options, function(err, semvers) {
|
|
66
95
|
if (err) {
|
|
67
96
|
console.log(err.message);
|
|
68
|
-
|
|
97
|
+
(0, _exit.default)(ERROR_CODE);
|
|
98
|
+
return;
|
|
69
99
|
}
|
|
70
100
|
var version = semvers.resolve(args[0], options);
|
|
71
101
|
if (!version || isArray(version) && !version.length) {
|
|
72
102
|
console.log("Unrecognized: ".concat(args[0]));
|
|
73
|
-
|
|
103
|
+
(0, _exit.default)(ERROR_CODE);
|
|
104
|
+
return;
|
|
74
105
|
}
|
|
75
106
|
console.log('versions:');
|
|
76
107
|
if (isArray(version)) {
|
package/dist/cjs/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["/Users/kevin/Dev/OpenSource/node-version/node-semvers/src/cli.ts"],"sourcesContent":["import exit from 'exit';\nimport getopts from 'getopts-compat';\nimport NodeVersions, { type LoadOptions, type ResolveOptions } from './index.ts';\n// biome-ignore lint/suspicious/noShadowRestrictedNames: Legacy\nimport isNaN from './lib/isNaN.ts';\n\nconst isArray = Array.isArray || ((x) => Object.prototype.toString.call(x) === '[object Array]');\n\nconst ERROR_CODE = 11;\
|
|
1
|
+
{"version":3,"sources":["/Users/kevin/Dev/OpenSource/node-version/node-semvers/src/cli.ts"],"sourcesContent":["import exit from 'exit';\nimport fs from 'fs';\nimport getopts from 'getopts-compat';\nimport path from 'path';\nimport url from 'url';\nimport NodeVersions, { type LoadOptions, type ResolveOptions } from './index.ts';\n// biome-ignore lint/suspicious/noShadowRestrictedNames: Legacy\nimport isNaN from './lib/isNaN.ts';\n\nconst isArray = Array.isArray || ((x) => Object.prototype.toString.call(x) === '[object Array]');\n\nconst ERROR_CODE = 11;\nconst __dirname = path.dirname(typeof __filename !== 'undefined' ? __filename : url.fileURLToPath(import.meta.url));\n\nfunction getVersion(): string {\n const pkgPath = path.join(__dirname, '..', '..', 'package.json');\n return JSON.parse(fs.readFileSync(pkgPath, 'utf8')).version;\n}\n\nfunction printHelp(name: string): void {\n const version = getVersion();\n console.log(`${name} v${version}`);\n console.log('');\n console.log(`Usage: ${name} [options] <version-string>`);\n console.log('');\n console.log('Version Strings:');\n console.log('Any command that calls for a version can be provided any of the');\n console.log('following \"version-ish\" identifies:');\n console.log('');\n console.log('- x.y.z A specific SemVer tuple');\n console.log('- x.y Major and minor version number');\n console.log('- x Just a major version number');\n console.log('- lts The most recent LTS (long-term support) node version');\n console.log('- lts/<name> The latest in a named LTS set. (argon, boron, etc.)');\n console.log('- lts/* Same as just \"lts\"');\n console.log('- latest The most recent (non-LTS) version');\n console.log('- stable Backwards-compatible alias for \"lts\"');\n console.log('- [expression] Engine and semver module expression like \"10.1.x || >=12.0.0\"');\n console.log('');\n console.log('Options:');\n console.log(' -p, --path <path> Path within version including raw for unprocessed version');\n console.log(' -r, --range <range> Range type of major, minor, or patch with filters of lts, even, odd');\n console.log(' -n, --now <date> Use a specific time as a Date.parse');\n console.log(' -v, --version Show version number');\n console.log(' -h, --help Show this help message');\n}\n\nexport default (argv: string[], name?: string): undefined => {\n const cliName = name || 'nsv';\n const options = getopts(argv, {\n alias: { path: 'p', range: 'r', now: 'n', version: 'v', help: 'h' },\n boolean: ['version', 'help'],\n });\n\n if (options.version) {\n console.log(getVersion());\n exit(0);\n return;\n }\n\n if (options.help) {\n printHelp(cliName);\n exit(0);\n return;\n }\n\n if (typeof options.now !== 'undefined') options.now = new Date(isNaN(+options.now) ? Date.parse(options.now) : +options.now);\n\n const args = options._;\n if (args.length < 1) {\n console.log(`Missing version string. Example usage: ${cliName} [version string]. Use ${cliName} --help for information on version strings`);\n exit(ERROR_CODE);\n return;\n }\n\n function stringify(value) {\n return typeof value === 'string' ? value : JSON.stringify(value);\n }\n\n NodeVersions.load(options as LoadOptions, (err, semvers) => {\n if (err) {\n console.log(err.message);\n exit(ERROR_CODE);\n return;\n }\n\n const version = semvers.resolve(args[0], options as ResolveOptions);\n if (!version || (isArray(version) && !(version as string[]).length)) {\n console.log(`Unrecognized: ${args[0]}`);\n exit(ERROR_CODE);\n return;\n }\n\n console.log('versions:');\n if (isArray(version)) {\n for (let index = 0; index < (version as string[]).length; index++) console.log(stringify(version[index]));\n } else console.log(stringify(version));\n exit(0);\n });\n};\n"],"names":["isArray","Array","x","Object","prototype","toString","call","ERROR_CODE","__dirname","path","dirname","__filename","url","fileURLToPath","getVersion","pkgPath","join","JSON","parse","fs","readFileSync","version","printHelp","name","console","log","argv","stringify","value","cliName","options","getopts","alias","range","now","help","boolean","exit","Date","isNaN","args","_","length","NodeVersions","load","err","semvers","message","resolve","index"],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export default function isNaN(value: unknown): boolean;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export default function match(test: object, query: object): boolean;
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
export interface LoadOptions {
|
|
2
|
+
cachePath?: string;
|
|
3
|
+
now?: Date;
|
|
4
|
+
}
|
|
5
|
+
export interface LoadError extends Error {
|
|
6
|
+
code?: number;
|
|
7
|
+
}
|
|
8
|
+
export interface ResolveOptions {
|
|
9
|
+
now?: Date;
|
|
10
|
+
range?: string;
|
|
11
|
+
path?: string;
|
|
12
|
+
}
|
|
13
|
+
export interface ScheduleRaw {
|
|
14
|
+
version: string;
|
|
15
|
+
name: string;
|
|
16
|
+
semver: string;
|
|
17
|
+
date: string;
|
|
18
|
+
start: string;
|
|
19
|
+
end: string;
|
|
20
|
+
codename?: string;
|
|
21
|
+
lts: string;
|
|
22
|
+
maintenance?: string;
|
|
23
|
+
}
|
|
24
|
+
export interface Schedule {
|
|
25
|
+
name: string;
|
|
26
|
+
semver: string;
|
|
27
|
+
raw: ScheduleRaw;
|
|
28
|
+
start: Date;
|
|
29
|
+
end: Date;
|
|
30
|
+
codename?: string;
|
|
31
|
+
lts?: Date;
|
|
32
|
+
maintenance?: Date;
|
|
33
|
+
}
|
|
34
|
+
export interface VersionRaw {
|
|
35
|
+
version: string;
|
|
36
|
+
name: string;
|
|
37
|
+
semver: string;
|
|
38
|
+
major: number;
|
|
39
|
+
minor: number;
|
|
40
|
+
patch: number;
|
|
41
|
+
lts: string;
|
|
42
|
+
date: Date;
|
|
43
|
+
raw: ScheduleRaw;
|
|
44
|
+
codename: string;
|
|
45
|
+
}
|
|
46
|
+
export interface Version {
|
|
47
|
+
version: string;
|
|
48
|
+
name: string;
|
|
49
|
+
semver: string;
|
|
50
|
+
major: number;
|
|
51
|
+
minor: number;
|
|
52
|
+
patch: number;
|
|
53
|
+
lts: string;
|
|
54
|
+
date: Date;
|
|
55
|
+
raw: VersionRaw;
|
|
56
|
+
codename: string;
|
|
57
|
+
}
|
|
58
|
+
export interface ParsedVersion {
|
|
59
|
+
major: number;
|
|
60
|
+
minor?: number;
|
|
61
|
+
patch?: number;
|
|
62
|
+
}
|
|
63
|
+
export interface ParsedCodename {
|
|
64
|
+
codename: string;
|
|
65
|
+
}
|
|
66
|
+
export interface ParsedName {
|
|
67
|
+
name: string;
|
|
68
|
+
}
|
|
69
|
+
export type ParsedExpression = ParsedVersion | ParsedCodename | ParsedName;
|
package/dist/esm/cli.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
declare const _default: (argv: string[]) => undefined;
|
|
1
|
+
declare const _default: (argv: string[], name?: string) => undefined;
|
|
2
2
|
export default _default;
|
package/dist/esm/cli.js
CHANGED
|
@@ -1,47 +1,76 @@
|
|
|
1
1
|
import exit from 'exit';
|
|
2
|
+
import fs from 'fs';
|
|
2
3
|
import getopts from 'getopts-compat';
|
|
4
|
+
import path from 'path';
|
|
5
|
+
import url from 'url';
|
|
3
6
|
import NodeVersions from './index.js';
|
|
4
7
|
// biome-ignore lint/suspicious/noShadowRestrictedNames: Legacy
|
|
5
8
|
import isNaN from './lib/isNaN.js';
|
|
6
9
|
const isArray = Array.isArray || ((x)=>Object.prototype.toString.call(x) === '[object Array]');
|
|
7
10
|
const ERROR_CODE = 11;
|
|
8
|
-
|
|
9
|
-
|
|
11
|
+
const __dirname = path.dirname(typeof __filename !== 'undefined' ? __filename : url.fileURLToPath(import.meta.url));
|
|
12
|
+
function getVersion() {
|
|
13
|
+
const pkgPath = path.join(__dirname, '..', '..', 'package.json');
|
|
14
|
+
return JSON.parse(fs.readFileSync(pkgPath, 'utf8')).version;
|
|
15
|
+
}
|
|
16
|
+
function printHelp(name) {
|
|
17
|
+
const version = getVersion();
|
|
18
|
+
console.log(`${name} v${version}`);
|
|
19
|
+
console.log('');
|
|
20
|
+
console.log(`Usage: ${name} [options] <version-string>`);
|
|
21
|
+
console.log('');
|
|
22
|
+
console.log('Version Strings:');
|
|
23
|
+
console.log('Any command that calls for a version can be provided any of the');
|
|
24
|
+
console.log('following "version-ish" identifies:');
|
|
25
|
+
console.log('');
|
|
26
|
+
console.log('- x.y.z A specific SemVer tuple');
|
|
27
|
+
console.log('- x.y Major and minor version number');
|
|
28
|
+
console.log('- x Just a major version number');
|
|
29
|
+
console.log('- lts The most recent LTS (long-term support) node version');
|
|
30
|
+
console.log('- lts/<name> The latest in a named LTS set. (argon, boron, etc.)');
|
|
31
|
+
console.log('- lts/* Same as just "lts"');
|
|
32
|
+
console.log('- latest The most recent (non-LTS) version');
|
|
33
|
+
console.log('- stable Backwards-compatible alias for "lts"');
|
|
34
|
+
console.log('- [expression] Engine and semver module expression like "10.1.x || >=12.0.0"');
|
|
35
|
+
console.log('');
|
|
36
|
+
console.log('Options:');
|
|
37
|
+
console.log(' -p, --path <path> Path within version including raw for unprocessed version');
|
|
38
|
+
console.log(' -r, --range <range> Range type of major, minor, or patch with filters of lts, even, odd');
|
|
39
|
+
console.log(' -n, --now <date> Use a specific time as a Date.parse');
|
|
40
|
+
console.log(' -v, --version Show version number');
|
|
41
|
+
console.log(' -h, --help Show this help message');
|
|
42
|
+
}
|
|
43
|
+
export default ((argv, name)=>{
|
|
44
|
+
const cliName = name || 'nsv';
|
|
45
|
+
const options = getopts(argv, {
|
|
10
46
|
alias: {
|
|
11
47
|
path: 'p',
|
|
12
48
|
range: 'r',
|
|
13
|
-
now: 'n'
|
|
49
|
+
now: 'n',
|
|
50
|
+
version: 'v',
|
|
51
|
+
help: 'h'
|
|
14
52
|
},
|
|
15
|
-
|
|
53
|
+
boolean: [
|
|
54
|
+
'version',
|
|
55
|
+
'help'
|
|
56
|
+
]
|
|
16
57
|
});
|
|
17
|
-
if (
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
58
|
+
if (options.version) {
|
|
59
|
+
console.log(getVersion());
|
|
60
|
+
exit(0);
|
|
61
|
+
return;
|
|
62
|
+
}
|
|
21
63
|
if (options.help) {
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
console.log(' $ nv [version string]');
|
|
25
|
-
console.log('');
|
|
26
|
-
console.log('Version Strings:');
|
|
27
|
-
console.log('Any command that calls for a version can be provided any of the');
|
|
28
|
-
console.log('following "version-ish" identifies:');
|
|
29
|
-
console.log('');
|
|
30
|
-
console.log('- x.y.z A specific SemVer tuple');
|
|
31
|
-
console.log('- x.y Major and minor version number');
|
|
32
|
-
console.log('- x Just a major version number');
|
|
33
|
-
console.log('- lts The most recent LTS (long-term support) node version');
|
|
34
|
-
console.log('- lts/<name> The latest in a named LTS set. (argon, boron, etc.)');
|
|
35
|
-
console.log('- lts/* Same as just "lts"');
|
|
36
|
-
console.log('- latest The most recent (non-LTS) version');
|
|
37
|
-
console.log('- stable Backwards-compatible alias for "lts"');
|
|
38
|
-
console.log('- [expression] Engine and semver module expression like "10.1.x || >=12.0.0"');
|
|
64
|
+
printHelp(cliName);
|
|
65
|
+
exit(0);
|
|
39
66
|
return;
|
|
40
67
|
}
|
|
41
|
-
|
|
68
|
+
if (typeof options.now !== 'undefined') options.now = new Date(isNaN(+options.now) ? Date.parse(options.now) : +options.now);
|
|
69
|
+
const args = options._;
|
|
42
70
|
if (args.length < 1) {
|
|
43
|
-
console.log(
|
|
44
|
-
|
|
71
|
+
console.log(`Missing version string. Example usage: ${cliName} [version string]. Use ${cliName} --help for information on version strings`);
|
|
72
|
+
exit(ERROR_CODE);
|
|
73
|
+
return;
|
|
45
74
|
}
|
|
46
75
|
function stringify(value) {
|
|
47
76
|
return typeof value === 'string' ? value : JSON.stringify(value);
|
|
@@ -49,12 +78,14 @@ export default ((argv)=>{
|
|
|
49
78
|
NodeVersions.load(options, (err, semvers)=>{
|
|
50
79
|
if (err) {
|
|
51
80
|
console.log(err.message);
|
|
52
|
-
|
|
81
|
+
exit(ERROR_CODE);
|
|
82
|
+
return;
|
|
53
83
|
}
|
|
54
84
|
const version = semvers.resolve(args[0], options);
|
|
55
85
|
if (!version || isArray(version) && !version.length) {
|
|
56
86
|
console.log(`Unrecognized: ${args[0]}`);
|
|
57
|
-
|
|
87
|
+
exit(ERROR_CODE);
|
|
88
|
+
return;
|
|
58
89
|
}
|
|
59
90
|
console.log('versions:');
|
|
60
91
|
if (isArray(version)) {
|
package/dist/esm/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["/Users/kevin/Dev/OpenSource/node-version/node-semvers/src/cli.ts"],"sourcesContent":["import exit from 'exit';\nimport getopts from 'getopts-compat';\nimport NodeVersions, { type LoadOptions, type ResolveOptions } from './index.ts';\n// biome-ignore lint/suspicious/noShadowRestrictedNames: Legacy\nimport isNaN from './lib/isNaN.ts';\n\nconst isArray = Array.isArray || ((x) => Object.prototype.toString.call(x) === '[object Array]');\n\nconst ERROR_CODE = 11;\
|
|
1
|
+
{"version":3,"sources":["/Users/kevin/Dev/OpenSource/node-version/node-semvers/src/cli.ts"],"sourcesContent":["import exit from 'exit';\nimport fs from 'fs';\nimport getopts from 'getopts-compat';\nimport path from 'path';\nimport url from 'url';\nimport NodeVersions, { type LoadOptions, type ResolveOptions } from './index.ts';\n// biome-ignore lint/suspicious/noShadowRestrictedNames: Legacy\nimport isNaN from './lib/isNaN.ts';\n\nconst isArray = Array.isArray || ((x) => Object.prototype.toString.call(x) === '[object Array]');\n\nconst ERROR_CODE = 11;\nconst __dirname = path.dirname(typeof __filename !== 'undefined' ? __filename : url.fileURLToPath(import.meta.url));\n\nfunction getVersion(): string {\n const pkgPath = path.join(__dirname, '..', '..', 'package.json');\n return JSON.parse(fs.readFileSync(pkgPath, 'utf8')).version;\n}\n\nfunction printHelp(name: string): void {\n const version = getVersion();\n console.log(`${name} v${version}`);\n console.log('');\n console.log(`Usage: ${name} [options] <version-string>`);\n console.log('');\n console.log('Version Strings:');\n console.log('Any command that calls for a version can be provided any of the');\n console.log('following \"version-ish\" identifies:');\n console.log('');\n console.log('- x.y.z A specific SemVer tuple');\n console.log('- x.y Major and minor version number');\n console.log('- x Just a major version number');\n console.log('- lts The most recent LTS (long-term support) node version');\n console.log('- lts/<name> The latest in a named LTS set. (argon, boron, etc.)');\n console.log('- lts/* Same as just \"lts\"');\n console.log('- latest The most recent (non-LTS) version');\n console.log('- stable Backwards-compatible alias for \"lts\"');\n console.log('- [expression] Engine and semver module expression like \"10.1.x || >=12.0.0\"');\n console.log('');\n console.log('Options:');\n console.log(' -p, --path <path> Path within version including raw for unprocessed version');\n console.log(' -r, --range <range> Range type of major, minor, or patch with filters of lts, even, odd');\n console.log(' -n, --now <date> Use a specific time as a Date.parse');\n console.log(' -v, --version Show version number');\n console.log(' -h, --help Show this help message');\n}\n\nexport default (argv: string[], name?: string): undefined => {\n const cliName = name || 'nsv';\n const options = getopts(argv, {\n alias: { path: 'p', range: 'r', now: 'n', version: 'v', help: 'h' },\n boolean: ['version', 'help'],\n });\n\n if (options.version) {\n console.log(getVersion());\n exit(0);\n return;\n }\n\n if (options.help) {\n printHelp(cliName);\n exit(0);\n return;\n }\n\n if (typeof options.now !== 'undefined') options.now = new Date(isNaN(+options.now) ? Date.parse(options.now) : +options.now);\n\n const args = options._;\n if (args.length < 1) {\n console.log(`Missing version string. Example usage: ${cliName} [version string]. Use ${cliName} --help for information on version strings`);\n exit(ERROR_CODE);\n return;\n }\n\n function stringify(value) {\n return typeof value === 'string' ? value : JSON.stringify(value);\n }\n\n NodeVersions.load(options as LoadOptions, (err, semvers) => {\n if (err) {\n console.log(err.message);\n exit(ERROR_CODE);\n return;\n }\n\n const version = semvers.resolve(args[0], options as ResolveOptions);\n if (!version || (isArray(version) && !(version as string[]).length)) {\n console.log(`Unrecognized: ${args[0]}`);\n exit(ERROR_CODE);\n return;\n }\n\n console.log('versions:');\n if (isArray(version)) {\n for (let index = 0; index < (version as string[]).length; index++) console.log(stringify(version[index]));\n } else console.log(stringify(version));\n exit(0);\n });\n};\n"],"names":["exit","fs","getopts","path","url","NodeVersions","isNaN","isArray","Array","x","Object","prototype","toString","call","ERROR_CODE","__dirname","dirname","__filename","fileURLToPath","getVersion","pkgPath","join","JSON","parse","readFileSync","version","printHelp","name","console","log","argv","cliName","options","alias","range","now","help","boolean","Date","args","_","length","stringify","value","load","err","semvers","message","resolve","index"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "node-semvers",
|
|
3
|
-
"version": "1.5.
|
|
3
|
+
"version": "1.5.8",
|
|
4
4
|
"description": "Utilities for managing versions of node including looking up codenames",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"node",
|
|
@@ -28,7 +28,7 @@
|
|
|
28
28
|
"main": "dist/cjs/index.js",
|
|
29
29
|
"types": "dist/cjs/index.d.ts",
|
|
30
30
|
"bin": {
|
|
31
|
-
"nsv": "bin/cli.
|
|
31
|
+
"nsv": "bin/cli.cjs"
|
|
32
32
|
},
|
|
33
33
|
"files": [
|
|
34
34
|
"dist",
|
|
@@ -40,7 +40,8 @@
|
|
|
40
40
|
"build": "tsds build",
|
|
41
41
|
"format": "biome check --write --unsafe src/ test/ && biome check --config-path biome.es5.json --write --unsafe assets/ scripts/",
|
|
42
42
|
"postinstall": "node scripts/postinstall.cjs",
|
|
43
|
-
"
|
|
43
|
+
"prepublishOnly": "tsds validate",
|
|
44
|
+
"test": "tsds test:node --no-timeouts",
|
|
44
45
|
"test:engines": "nvu engines tsds test:node --no-timeouts",
|
|
45
46
|
"version": "tsds version"
|
|
46
47
|
},
|
|
@@ -51,13 +52,16 @@
|
|
|
51
52
|
"semver": "^5.7.1"
|
|
52
53
|
},
|
|
53
54
|
"devDependencies": {
|
|
55
|
+
"@biomejs/biome": "*",
|
|
54
56
|
"@types/mocha": "*",
|
|
55
57
|
"@types/node": "*",
|
|
56
58
|
"cr": "*",
|
|
57
59
|
"cross-spawn-cb": "*",
|
|
60
|
+
"node-version-use": "*",
|
|
58
61
|
"pinkie-promise": "*",
|
|
59
62
|
"rimraf2": "*",
|
|
60
|
-
"rollup": "*"
|
|
63
|
+
"rollup": "*",
|
|
64
|
+
"ts-dev-stack": "*"
|
|
61
65
|
},
|
|
62
66
|
"engines": {
|
|
63
67
|
"node": ">=0.8"
|
/package/bin/{cli.js → cli.cjs}
RENAMED
|
File without changes
|