node-semvers 1.7.2 → 1.7.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/dist/cjs/NodeVersions.js
CHANGED
|
@@ -18,9 +18,7 @@ var _normalizeSchedulets = /*#__PURE__*/ _interop_require_default(require("./lib
|
|
|
18
18
|
var _normalizeVersionts = /*#__PURE__*/ _interop_require_default(require("./lib/normalizeVersion.js"));
|
|
19
19
|
var _indexts = /*#__PURE__*/ _interop_require_default(require("./parseExpression/index.js"));
|
|
20
20
|
function _class_call_check(instance, Constructor) {
|
|
21
|
-
if (!(instance instanceof Constructor))
|
|
22
|
-
throw new TypeError("Cannot call a class as a function");
|
|
23
|
-
}
|
|
21
|
+
if (!(instance instanceof Constructor)) throw new TypeError("Cannot call a class as a function");
|
|
24
22
|
}
|
|
25
23
|
function _interop_require_default(obj) {
|
|
26
24
|
return obj && obj.__esModule ? obj : {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["/Users/kevin/Dev/OpenSource/node-version/node-semvers/src/NodeVersions.ts"],"sourcesContent":["import Cache from 'fetch-json-cache';\nimport semver from 'semver';\n\nimport { CACHE_PATH, DISTS_URL, SCHEDULES_URL } from './constants.ts';\nimport { major, minor } from './lib/keyFunctions.ts';\nimport { even, odd } from './lib/lineFunctions.ts';\nimport match from './lib/match.ts';\nimport normalizeSchedule from './lib/normalizeSchedule.ts';\nimport normalizeVersion from './lib/normalizeVersion.ts';\nimport parseExpression from './parseExpression/index.ts';\n\nimport type { LoadError, LoadOptions, ResolveOptions, Schedule, ScheduleRaw, Version, VersionRaw } from './types.ts';\n\nexport type LoadCallback = (error?: LoadError, semvers?: NodeVersions) => void;\n\nexport default class NodeVersions {\n versions: Version[];\n schedules: Schedule[];\n\n constructor(versions: VersionRaw[], schedule: ScheduleRaw[]) {\n if (!versions) throw new Error('Missing option: versions');\n if (!schedule) throw new Error('Missing option: schedule');\n\n this.schedules = [];\n for (const name in schedule) this.schedules.push(normalizeSchedule(name, schedule[name]));\n this.schedules = this.schedules.sort((a, b) => (semver.gt(semver.coerce(a.semver)?.version ?? '0.0.0', semver.coerce(b.semver)?.version ?? '0.0.0') ? 1 : -1));\n\n this.versions = [];\n for (let index = 0; index < versions.length; index++) this.versions.push(normalizeVersion(versions[index], this.schedules));\n this.versions = this.versions.sort((a, b) => (semver.gt(a.semver, b.semver) ? -1 : 1));\n }\n\n static load(callback: LoadCallback): void;\n static load(options: LoadOptions, callback: LoadCallback): void;\n static load(options?: LoadOptions): Promise<NodeVersions>;\n static load(options?: LoadOptions | LoadCallback, callback?: LoadCallback): void | Promise<NodeVersions> {\n callback = typeof options === 'function' ? options : callback;\n options = typeof options === 'function' ? {} : ((options || {}) as LoadOptions);\n\n function worker(options: LoadOptions, callback: LoadCallback) {\n const cache = new Cache(options.cachePath || CACHE_PATH);\n cache.get<VersionRaw[]>(DISTS_URL, (err, versions) => {\n if (err) return callback(err);\n\n cache.get<ScheduleRaw[]>(SCHEDULES_URL, (err, schedule) => {\n if (err || !versions || !schedule) return callback(err ?? new Error('Missing data'));\n callback(undefined, new NodeVersions(versions, schedule));\n });\n });\n }\n\n if (typeof callback === 'function') return worker(options, callback);\n return new Promise((resolve, reject) =>\n worker(options, (err?: LoadError, versions?: NodeVersions) => {\n if (err || !versions) return reject(err ?? new Error('No versions returned'));\n resolve(versions);\n })\n );\n }\n\n static loadSync(options?: LoadOptions): NodeVersions | null {\n const cache = new Cache(options?.cachePath || CACHE_PATH);\n const versions = cache.getSync<VersionRaw[]>(DISTS_URL);\n const schedule = cache.getSync<ScheduleRaw[]>(SCHEDULES_URL);\n if (!versions || !schedule) return null;\n return new NodeVersions(versions, schedule);\n }\n\n resolve(expression: string | number | Date, options?: ResolveOptions): string | string[] | Version | Version[] | null {\n options = options || {};\n const path = options.path || 'version';\n\n // normalize\n if (typeof expression === 'number') expression = `${expression}`;\n if (typeof expression !== 'string') return null;\n expression = expression.trim();\n\n // single result, try a match\n const query = parseExpression.call(this, expression, options.now || new Date());\n if (query) {\n let version: Version | null = null;\n for (let index = 0; index < this.versions.length; index++) {\n const test = this.versions[index];\n if (options.now && options.now < test.date) continue;\n if (!match(test as unknown as Record<string, unknown>, query as unknown as Record<string, unknown>)) continue;\n version = test;\n break;\n }\n if (version) return (version as unknown as Record<string, unknown>)[path] as string | Version;\n }\n\n // filtered expression\n const range = options.range || '';\n const filters: { lts: boolean; key: ((v: Version) => string) | undefined; line: ((v: Version) => boolean) | undefined } = {\n lts: !!~range.indexOf('lts'),\n key: undefined,\n line: undefined,\n };\n filters.key = ~range.indexOf('major') ? major : ~range.indexOf('minor') ? minor : undefined;\n filters.line = ~range.indexOf('even') ? even : ~range.indexOf('odd') ? odd : undefined;\n\n const results: unknown[] = [];\n const founds: Record<string, boolean> = {};\n\n for (let index = 0; index < this.versions.length; index++) {\n const test = this.versions[index];\n if (options.now && options.now < test.date) continue;\n if (filters.lts && !test.lts) continue;\n if (filters.line && !filters.line(test)) continue;\n if (!semver.satisfies(test.semver, expression)) continue;\n if (filters.key) {\n const k = filters.key(test);\n if (founds[k]) continue;\n founds[k] = true;\n }\n results.unshift((test as unknown as Record<string, unknown>)[path]);\n }\n return results as string[];\n }\n}\n"],"names":["NodeVersions","versions","schedule","Error","schedules","name","push","normalizeSchedule","sort","a","b","semver","gt","coerce","version","index","length","normalizeVersion","resolve","expression","options","path","trim","query","parseExpression","call","now","Date","test","date","match","range","filters","lts","indexOf","key","undefined","line","major","minor","even","odd","results","founds","satisfies","k","unshift","load","callback","worker","cache","Cache","cachePath","CACHE_PATH","get","DISTS_URL","err","SCHEDULES_URL","Promise","reject","loadSync","getSync"],"mappings":";;;;;;;eAeqBA;;;qEAfH;6DACC;2BAEkC;8BACxB;+BACH;8DACR;0EACY;yEACD;8DACD
|
|
1
|
+
{"version":3,"sources":["/Users/kevin/Dev/OpenSource/node-version/node-semvers/src/NodeVersions.ts"],"sourcesContent":["import Cache from 'fetch-json-cache';\nimport semver from 'semver';\n\nimport { CACHE_PATH, DISTS_URL, SCHEDULES_URL } from './constants.ts';\nimport { major, minor } from './lib/keyFunctions.ts';\nimport { even, odd } from './lib/lineFunctions.ts';\nimport match from './lib/match.ts';\nimport normalizeSchedule from './lib/normalizeSchedule.ts';\nimport normalizeVersion from './lib/normalizeVersion.ts';\nimport parseExpression from './parseExpression/index.ts';\n\nimport type { LoadError, LoadOptions, ResolveOptions, Schedule, ScheduleRaw, Version, VersionRaw } from './types.ts';\n\nexport type LoadCallback = (error?: LoadError, semvers?: NodeVersions) => void;\n\nexport default class NodeVersions {\n versions: Version[];\n schedules: Schedule[];\n\n constructor(versions: VersionRaw[], schedule: ScheduleRaw[]) {\n if (!versions) throw new Error('Missing option: versions');\n if (!schedule) throw new Error('Missing option: schedule');\n\n this.schedules = [];\n for (const name in schedule) this.schedules.push(normalizeSchedule(name, schedule[name]));\n this.schedules = this.schedules.sort((a, b) => (semver.gt(semver.coerce(a.semver)?.version ?? '0.0.0', semver.coerce(b.semver)?.version ?? '0.0.0') ? 1 : -1));\n\n this.versions = [];\n for (let index = 0; index < versions.length; index++) this.versions.push(normalizeVersion(versions[index], this.schedules));\n this.versions = this.versions.sort((a, b) => (semver.gt(a.semver, b.semver) ? -1 : 1));\n }\n\n static load(callback: LoadCallback): void;\n static load(options: LoadOptions, callback: LoadCallback): void;\n static load(options?: LoadOptions): Promise<NodeVersions>;\n static load(options?: LoadOptions | LoadCallback, callback?: LoadCallback): void | Promise<NodeVersions> {\n callback = typeof options === 'function' ? options : callback;\n options = typeof options === 'function' ? {} : ((options || {}) as LoadOptions);\n\n function worker(options: LoadOptions, callback: LoadCallback) {\n const cache = new Cache(options.cachePath || CACHE_PATH);\n cache.get<VersionRaw[]>(DISTS_URL, (err, versions) => {\n if (err) return callback(err);\n\n cache.get<ScheduleRaw[]>(SCHEDULES_URL, (err, schedule) => {\n if (err || !versions || !schedule) return callback(err ?? new Error('Missing data'));\n callback(undefined, new NodeVersions(versions, schedule));\n });\n });\n }\n\n if (typeof callback === 'function') return worker(options, callback);\n return new Promise((resolve, reject) =>\n worker(options, (err?: LoadError, versions?: NodeVersions) => {\n if (err || !versions) return reject(err ?? new Error('No versions returned'));\n resolve(versions);\n })\n );\n }\n\n static loadSync(options?: LoadOptions): NodeVersions | null {\n const cache = new Cache(options?.cachePath || CACHE_PATH);\n const versions = cache.getSync<VersionRaw[]>(DISTS_URL);\n const schedule = cache.getSync<ScheduleRaw[]>(SCHEDULES_URL);\n if (!versions || !schedule) return null;\n return new NodeVersions(versions, schedule);\n }\n\n resolve(expression: string | number | Date, options?: ResolveOptions): string | string[] | Version | Version[] | null {\n options = options || {};\n const path = options.path || 'version';\n\n // normalize\n if (typeof expression === 'number') expression = `${expression}`;\n if (typeof expression !== 'string') return null;\n expression = expression.trim();\n\n // single result, try a match\n const query = parseExpression.call(this, expression, options.now || new Date());\n if (query) {\n let version: Version | null = null;\n for (let index = 0; index < this.versions.length; index++) {\n const test = this.versions[index];\n if (options.now && options.now < test.date) continue;\n if (!match(test as unknown as Record<string, unknown>, query as unknown as Record<string, unknown>)) continue;\n version = test;\n break;\n }\n if (version) return (version as unknown as Record<string, unknown>)[path] as string | Version;\n }\n\n // filtered expression\n const range = options.range || '';\n const filters: { lts: boolean; key: ((v: Version) => string) | undefined; line: ((v: Version) => boolean) | undefined } = {\n lts: !!~range.indexOf('lts'),\n key: undefined,\n line: undefined,\n };\n filters.key = ~range.indexOf('major') ? major : ~range.indexOf('minor') ? minor : undefined;\n filters.line = ~range.indexOf('even') ? even : ~range.indexOf('odd') ? odd : undefined;\n\n const results: unknown[] = [];\n const founds: Record<string, boolean> = {};\n\n for (let index = 0; index < this.versions.length; index++) {\n const test = this.versions[index];\n if (options.now && options.now < test.date) continue;\n if (filters.lts && !test.lts) continue;\n if (filters.line && !filters.line(test)) continue;\n if (!semver.satisfies(test.semver, expression)) continue;\n if (filters.key) {\n const k = filters.key(test);\n if (founds[k]) continue;\n founds[k] = true;\n }\n results.unshift((test as unknown as Record<string, unknown>)[path]);\n }\n return results as string[];\n }\n}\n"],"names":["NodeVersions","versions","schedule","Error","schedules","name","push","normalizeSchedule","sort","a","b","semver","gt","coerce","version","index","length","normalizeVersion","resolve","expression","options","path","trim","query","parseExpression","call","now","Date","test","date","match","range","filters","lts","indexOf","key","undefined","line","major","minor","even","odd","results","founds","satisfies","k","unshift","load","callback","worker","cache","Cache","cachePath","CACHE_PATH","get","DISTS_URL","err","SCHEDULES_URL","Promise","reject","loadSync","getSync"],"mappings":"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"}
|
package/dist/cjs/cli.js
CHANGED
|
@@ -57,9 +57,6 @@ function printHelp(name) {
|
|
|
57
57
|
console.log(' -h, --help Show this help message');
|
|
58
58
|
}
|
|
59
59
|
var _default = function(argv, name) {
|
|
60
|
-
var stringify = function stringify(value) {
|
|
61
|
-
return typeof value === 'string' ? value : JSON.stringify(value);
|
|
62
|
-
};
|
|
63
60
|
var cliName = name || 'nsv';
|
|
64
61
|
var options = (0, _getoptscompat.default)(argv, {
|
|
65
62
|
alias: {
|
|
@@ -91,6 +88,9 @@ var _default = function(argv, name) {
|
|
|
91
88
|
(0, _exitcompat.default)(ERROR_CODE);
|
|
92
89
|
return;
|
|
93
90
|
}
|
|
91
|
+
function stringify(value) {
|
|
92
|
+
return typeof value === 'string' ? value : JSON.stringify(value);
|
|
93
|
+
}
|
|
94
94
|
_indexts.default.load(options, function(err, semvers) {
|
|
95
95
|
if (err) {
|
|
96
96
|
console.log(err.message);
|
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-compat';\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): void => {\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: unknown) {\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 return exit(ERROR_CODE);\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 return exit(ERROR_CODE);\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","
|
|
1
|
+
{"version":3,"sources":["/Users/kevin/Dev/OpenSource/node-version/node-semvers/src/cli.ts"],"sourcesContent":["import exit from 'exit-compat';\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): void => {\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: unknown) {\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 return exit(ERROR_CODE);\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 return exit(ERROR_CODE);\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","cliName","options","getopts","alias","range","now","help","boolean","exit","Date","isNaN","args","_","length","stringify","value","NodeVersions","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.7.
|
|
3
|
+
"version": "1.7.3",
|
|
4
4
|
"description": "Utilities for managing versions of node including looking up codenames",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"node",
|
|
@@ -33,7 +33,6 @@
|
|
|
33
33
|
},
|
|
34
34
|
"files": [
|
|
35
35
|
"dist",
|
|
36
|
-
"bin",
|
|
37
36
|
"assets"
|
|
38
37
|
],
|
|
39
38
|
"scripts": {
|