node-semvers 1.2.1 → 1.2.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/assets/postinstall.cjs +20 -9
- package/dist/cjs/NodeVersions.js +2 -1
- package/dist/cjs/NodeVersions.js.map +1 -1
- package/dist/cjs/cli.js +1 -1
- package/dist/cjs/cli.js.map +1 -1
- package/dist/cjs/constants.js +1 -1
- package/dist/cjs/constants.js.map +1 -1
- package/dist/cjs/lib/existsSync.js +26 -0
- package/dist/cjs/lib/existsSync.js.map +1 -0
- package/dist/cjs/lib/packageRoot.js +7 -4
- package/dist/cjs/lib/packageRoot.js.map +1 -1
- package/dist/esm/NodeVersions.mjs +2 -0
- package/dist/esm/NodeVersions.mjs.map +1 -1
- package/dist/esm/cli.mjs +1 -1
- package/dist/esm/cli.mjs.map +1 -1
- package/dist/esm/constants.mjs +1 -1
- package/dist/esm/constants.mjs.map +1 -1
- package/dist/esm/lib/existsSync.mjs +10 -0
- package/dist/esm/lib/existsSync.mjs.map +1 -0
- package/dist/esm/lib/packageRoot.mjs +7 -4
- package/dist/esm/lib/packageRoot.mjs.map +1 -1
- package/dist/types/NodeVersions.d.ts +1 -0
- package/dist/types/lib/existsSync.d.ts +3 -0
- package/dist/types/lib/packageRoot.d.ts +1 -1
- package/package.json +10 -14
- package/scripts/rollup.config.mjs +1 -1
package/assets/postinstall.cjs
CHANGED
|
@@ -1,19 +1,30 @@
|
|
|
1
1
|
(function (global, factory) {
|
|
2
|
-
typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('exit'), require('fetch-json-cache'), require('path'), require('url')) :
|
|
3
|
-
typeof define === 'function' && define.amd ? define(['exit', 'fetch-json-cache', 'path', 'url'], factory) :
|
|
4
|
-
(global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.tsdsBuild = factory(global.exit, global.Cache, global.path, global.url));
|
|
5
|
-
})(this, (function (exit, Cache, path, url) { 'use strict';
|
|
2
|
+
typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('exit'), require('fetch-json-cache'), require('path'), require('url'), require('fs')) :
|
|
3
|
+
typeof define === 'function' && define.amd ? define(['exit', 'fetch-json-cache', 'path', 'url', 'fs'], factory) :
|
|
4
|
+
(global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.tsdsBuild = factory(global.exit, global.Cache, global.path, global.url, global.fs));
|
|
5
|
+
})(this, (function (exit, Cache, path, url, fs) { 'use strict';
|
|
6
6
|
|
|
7
7
|
var _documentCurrentScript = typeof document !== 'undefined' ? document.currentScript : null;
|
|
8
|
-
function
|
|
9
|
-
|
|
8
|
+
function existsSyncPolyfill(path) {
|
|
9
|
+
try {
|
|
10
|
+
fs.accessSync(path);
|
|
11
|
+
return true;
|
|
12
|
+
} catch (_) {
|
|
13
|
+
return false;
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
var existsSync = fs.accessSync ? existsSyncPolyfill : fs.existsSync;
|
|
17
|
+
|
|
18
|
+
function packageRoot(dir) {
|
|
19
|
+
var packagePath = path.join(dir, 'package.json');
|
|
20
|
+
if (existsSync(packagePath) && JSON.parse(fs.readFileSync(packagePath, 'utf8')).name) return dir;
|
|
10
21
|
var nextDir = path.dirname(dir);
|
|
11
|
-
if (nextDir === dir) throw new Error(
|
|
12
|
-
return packageRoot(nextDir
|
|
22
|
+
if (nextDir === dir) throw new Error('Package root not found');
|
|
23
|
+
return packageRoot(nextDir);
|
|
13
24
|
}
|
|
14
25
|
|
|
15
26
|
var __dirname = path.dirname(typeof __filename !== 'undefined' ? __filename : url.fileURLToPath((typeof document === 'undefined' && typeof location === 'undefined' ? require('u' + 'rl').pathToFileURL(__filename).href : typeof document === 'undefined' ? location.href : (_documentCurrentScript && _documentCurrentScript.tagName.toUpperCase() === 'SCRIPT' && _documentCurrentScript.src || new URL('postinstall.cjs', document.baseURI).href))));
|
|
16
|
-
var root = packageRoot(__dirname
|
|
27
|
+
var root = packageRoot(__dirname);
|
|
17
28
|
var constants = {
|
|
18
29
|
CACHE_DIRECTORY: path.resolve(path.join(root, '.cache')),
|
|
19
30
|
DISTS_URL: 'https://nodejs.org/dist/index.json',
|
package/dist/cjs/NodeVersions.js
CHANGED
|
@@ -9,6 +9,7 @@ Object.defineProperty(exports, "default", {
|
|
|
9
9
|
}
|
|
10
10
|
});
|
|
11
11
|
var _fetchjsoncache = /*#__PURE__*/ _interop_require_default(require("fetch-json-cache"));
|
|
12
|
+
var _pinkiepromise = /*#__PURE__*/ _interop_require_default(require("pinkie-promise"));
|
|
12
13
|
var _semver = /*#__PURE__*/ _interop_require_default(require("semver"));
|
|
13
14
|
var _constants = /*#__PURE__*/ _interop_require_default(require("./constants.js"));
|
|
14
15
|
var _keyFunctions = require("./lib/keyFunctions.js");
|
|
@@ -105,7 +106,7 @@ var NodeVersions = /*#__PURE__*/ function() {
|
|
|
105
106
|
});
|
|
106
107
|
});
|
|
107
108
|
} else {
|
|
108
|
-
return new
|
|
109
|
+
return new _pinkiepromise.default(function(resolve, reject) {
|
|
109
110
|
NodeVersions.load(options, function loadCallback(err, NodeVersions) {
|
|
110
111
|
err ? reject(err) : resolve(NodeVersions);
|
|
111
112
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["NodeVersions.ts"],"sourcesContent":["import Cache from 'fetch-json-cache';\nimport semver from 'semver';\n\nimport constants from './constants.js';\nimport { major, minor } from './lib/keyFunctions.js';\nimport { even, odd } from './lib/lineFunctions.js';\nimport match from './lib/match.js';\nimport normalizeSchedule from './lib/normalizeSchedule.js';\nimport normalizeVersion from './lib/normalizeVersion.js';\nimport parseExpression from './parseExpression/index.js';\n\nimport type { LoadError, LoadOptions, ResolveOptions, Schedule, ScheduleRaw, Version, VersionRaw } from './types.js';\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), semver.coerce(b.semver)) ? 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(options?: LoadOptions | LoadCallback, callback?: LoadCallback): undefined | Promise<NodeVersions> {\n if (typeof options === 'function') {\n callback = options;\n options = null;\n }\n\n if (typeof callback === 'function') {\n options = options || {};\n\n const cache = new Cache((options as LoadOptions).cacheDirectory || constants.CACHE_DIRECTORY);\n cache.get(constants.DISTS_URL, (err, versions: VersionRaw[]) => {\n if (err) return callback(err);\n\n cache.get(constants.SCHEDULES_URL, (err, schedule: ScheduleRaw[]) => {\n err ? callback(err) : callback(null, new NodeVersions(versions, schedule));\n });\n });\n } else {\n return new Promise((resolve, reject) => {\n NodeVersions.load(options, function loadCallback(err, NodeVersions) {\n err ? reject(err) : resolve(NodeVersions);\n });\n });\n }\n }\n\n static loadSync(options?: LoadOptions): NodeVersions | null {\n options = options || {};\n const cache = new Cache(options.cacheDirectory || constants.CACHE_DIRECTORY);\n const versions = cache.getSync(constants.DISTS_URL) as VersionRaw[];\n const schedule = cache.getSync(constants.SCHEDULES_URL) as ScheduleRaw[];\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 = 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, query)) continue;\n version = test;\n break;\n }\n if (version) return version[path];\n }\n\n // filtered expression\n const range = options.range || '';\n const filters = { lts: !!~range.indexOf('lts'), key: undefined, line: undefined };\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 = [];\n const founds = {};\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 if (founds[filters.key(test)]) continue;\n founds[filters.key(test)] = true;\n }\n results.unshift(test[path]);\n }\n return results;\n }\n}\n"],"names":["NodeVersions","versions","schedule","Error","schedules","name","push","normalizeSchedule","sort","a","b","semver","gt","coerce","index","length","normalizeVersion","resolve","expression","options","path","trim","query","parseExpression","call","now","Date","version","test","date","match","range","filters","lts","indexOf","key","undefined","line","major","minor","even","odd","results","founds","satisfies","unshift","load","callback","cache","Cache","cacheDirectory","constants","CACHE_DIRECTORY","get","DISTS_URL","err","SCHEDULES_URL","Promise","reject","loadCallback","loadSync","getSync"],"mappings":";;;;;;;
|
|
1
|
+
{"version":3,"sources":["NodeVersions.ts"],"sourcesContent":["import Cache from 'fetch-json-cache';\n// biome-ignore lint/suspicious/noShadowRestrictedNames: <explanation>\nimport Promise from 'pinkie-promise';\nimport semver from 'semver';\n\nimport constants from './constants.js';\nimport { major, minor } from './lib/keyFunctions.js';\nimport { even, odd } from './lib/lineFunctions.js';\nimport match from './lib/match.js';\nimport normalizeSchedule from './lib/normalizeSchedule.js';\nimport normalizeVersion from './lib/normalizeVersion.js';\nimport parseExpression from './parseExpression/index.js';\n\nimport type { LoadError, LoadOptions, ResolveOptions, Schedule, ScheduleRaw, Version, VersionRaw } from './types.js';\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), semver.coerce(b.semver)) ? 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(options?: LoadOptions | LoadCallback, callback?: LoadCallback): undefined | Promise<NodeVersions> {\n if (typeof options === 'function') {\n callback = options;\n options = null;\n }\n\n if (typeof callback === 'function') {\n options = options || {};\n\n const cache = new Cache((options as LoadOptions).cacheDirectory || constants.CACHE_DIRECTORY);\n cache.get(constants.DISTS_URL, (err, versions: VersionRaw[]) => {\n if (err) return callback(err);\n\n cache.get(constants.SCHEDULES_URL, (err, schedule: ScheduleRaw[]) => {\n err ? callback(err) : callback(null, new NodeVersions(versions, schedule));\n });\n });\n } else {\n return new Promise((resolve, reject) => {\n NodeVersions.load(options, function loadCallback(err, NodeVersions) {\n err ? reject(err) : resolve(NodeVersions);\n });\n });\n }\n }\n\n static loadSync(options?: LoadOptions): NodeVersions | null {\n options = options || {};\n const cache = new Cache(options.cacheDirectory || constants.CACHE_DIRECTORY);\n const versions = cache.getSync(constants.DISTS_URL) as VersionRaw[];\n const schedule = cache.getSync(constants.SCHEDULES_URL) as ScheduleRaw[];\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 = 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, query)) continue;\n version = test;\n break;\n }\n if (version) return version[path];\n }\n\n // filtered expression\n const range = options.range || '';\n const filters = { lts: !!~range.indexOf('lts'), key: undefined, line: undefined };\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 = [];\n const founds = {};\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 if (founds[filters.key(test)]) continue;\n founds[filters.key(test)] = true;\n }\n results.unshift(test[path]);\n }\n return results;\n }\n}\n"],"names":["NodeVersions","versions","schedule","Error","schedules","name","push","normalizeSchedule","sort","a","b","semver","gt","coerce","index","length","normalizeVersion","resolve","expression","options","path","trim","query","parseExpression","call","now","Date","version","test","date","match","range","filters","lts","indexOf","key","undefined","line","major","minor","even","odd","results","founds","satisfies","unshift","load","callback","cache","Cache","cacheDirectory","constants","CACHE_DIRECTORY","get","DISTS_URL","err","SCHEDULES_URL","Promise","reject","loadCallback","loadSync","getSync"],"mappings":"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"}
|
package/dist/cjs/cli.js
CHANGED
|
@@ -11,8 +11,8 @@ Object.defineProperty(exports, "default", {
|
|
|
11
11
|
var _exit = /*#__PURE__*/ _interop_require_default(require("exit"));
|
|
12
12
|
var _getoptscompat = /*#__PURE__*/ _interop_require_default(require("getopts-compat"));
|
|
13
13
|
var _index = /*#__PURE__*/ _interop_require_default(require("./index.js"));
|
|
14
|
-
var _isarray = /*#__PURE__*/ _interop_require_default(require("isarray"));
|
|
15
14
|
var _isNaN = /*#__PURE__*/ _interop_require_default(require("./lib/isNaN.js"));
|
|
15
|
+
var _isarray = /*#__PURE__*/ _interop_require_default(require("isarray"));
|
|
16
16
|
function _interop_require_default(obj) {
|
|
17
17
|
return obj && obj.__esModule ? obj : {
|
|
18
18
|
default: obj
|
package/dist/cjs/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["cli.ts"],"sourcesContent":["import exit from 'exit';\nimport getopts from 'getopts-compat';\nimport NodeVersions, { type LoadOptions, type ResolveOptions } from './index.js';\n
|
|
1
|
+
{"version":3,"sources":["cli.ts"],"sourcesContent":["import exit from 'exit';\nimport getopts from 'getopts-compat';\nimport NodeVersions, { type LoadOptions, type ResolveOptions } from './index.js';\n// biome-ignore lint/suspicious/noShadowRestrictedNames: <explanation>\nimport isNaN from './lib/isNaN.js';\n\nimport isArray from 'isarray';\n\nexport default (argv) => {\n const options = getopts(argv.slice(1), {\n alias: { path: 'p', range: 'r', now: 'n' },\n stopEarly: true,\n });\n if (typeof options.now !== 'undefined') options.now = new Date(isNaN(+options.now) ? Date.parse(options.now) : +options.now);\n\n // define.option('-p, --path [path]', 'path within version including raw for unprocessed version', 'version');\n // define.option('-r, --range [range]', 'range type of major, minor, or patch with filters of lts, even, odd for version string expressions', 'patch');\n // define.option('-n, --now [date]', 'use a specific time as a Date.parse');\n\n if (options.help) {\n console.log('');\n console.log('Example call:');\n console.log(' $ nv [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 return;\n }\n\n const args = argv.slice(0, 1).concat(options._);\n if (args.length < 1) {\n console.log('Missing version string. Example usage: nv [version string]. Use nv --help for information on version strings');\n return exit(-1);\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 return exit(err.code || -1);\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(-1);\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":["argv","stringify","value","JSON","options","getopts","slice","alias","path","range","now","stopEarly","Date","isNaN","parse","help","console","log","args","concat","_","length","exit","NodeVersions","load","err","semvers","message","code","version","resolve","isArray","index"],"mappings":";;;;+BAQA;;;eAAA;;;2DARiB;oEACG;4DACgD;4DAElD;8DAEE;;;;;;IAEpB,WAAe,SAACA;QAsCLC,YAAT,SAASA,UAAUC,KAAK;QACtB,OAAO,OAAOA,UAAU,WAAWA,QAAQC,KAAKF,SAAS,CAACC;IAC5D;IAvCA,IAAME,UAAUC,IAAAA,sBAAO,EAACL,KAAKM,KAAK,CAAC,IAAI;QACrCC,OAAO;YAAEC,MAAM;YAAKC,OAAO;YAAKC,KAAK;QAAI;QACzCC,WAAW;IACb;IACA,IAAI,OAAOP,QAAQM,GAAG,KAAK,aAAaN,QAAQM,GAAG,GAAG,IAAIE,KAAKC,IAAAA,cAAK,EAAC,CAACT,QAAQM,GAAG,IAAIE,KAAKE,KAAK,CAACV,QAAQM,GAAG,IAAI,CAACN,QAAQM,GAAG;IAE3H,8GAA8G;IAC9G,uJAAuJ;IACvJ,4EAA4E;IAE5E,IAAIN,QAAQW,IAAI,EAAE;QAChBC,QAAQC,GAAG,CAAC;QACZD,QAAQC,GAAG,CAAC;QACZD,QAAQC,GAAG,CAAC;QACZD,QAAQC,GAAG,CAAC;QACZD,QAAQC,GAAG,CAAC;QACZD,QAAQC,GAAG,CAAC;QACZD,QAAQC,GAAG,CAAC;QACZD,QAAQC,GAAG,CAAC;QACZD,QAAQC,GAAG,CAAC;QACZD,QAAQC,GAAG,CAAC;QACZD,QAAQC,GAAG,CAAC;QACZD,QAAQC,GAAG,CAAC;QACZD,QAAQC,GAAG,CAAC;QACZD,QAAQC,GAAG,CAAC;QACZD,QAAQC,GAAG,CAAC;QACZD,QAAQC,GAAG,CAAC;QACZD,QAAQC,GAAG,CAAC;QACZ;IACF;IAEA,IAAMC,OAAOlB,KAAKM,KAAK,CAAC,GAAG,GAAGa,MAAM,CAACf,QAAQgB,CAAC;IAC9C,IAAIF,KAAKG,MAAM,GAAG,GAAG;QACnBL,QAAQC,GAAG,CAAC;QACZ,OAAOK,IAAAA,aAAI,EAAC,CAAC;IACf;IAMAC,cAAY,CAACC,IAAI,CAACpB,SAAwB,SAACqB,KAAKC;QAC9C,IAAID,KAAK;YACPT,QAAQC,GAAG,CAACQ,IAAIE,OAAO;YACvB,OAAOL,IAAAA,aAAI,EAACG,IAAIG,IAAI,IAAI,CAAC;QAC3B;QAEA,IAAMC,UAAUH,QAAQI,OAAO,CAACZ,IAAI,CAAC,EAAE,EAAEd;QACzC,IAAI,CAACyB,WAAYE,IAAAA,gBAAO,EAACF,YAAY,CAAC,AAACA,QAAqBR,MAAM,EAAG;YACnEL,QAAQC,GAAG,CAAC,AAAC,iBAAwB,OAARC,IAAI,CAAC,EAAE;YACpC,OAAOI,IAAAA,aAAI,EAAC,CAAC;QACf;QAEAN,QAAQC,GAAG,CAAC;QACZ,IAAIc,IAAAA,gBAAO,EAACF,UAAU;YACpB,IAAK,IAAIG,QAAQ,GAAGA,QAAQ,AAACH,QAAqBR,MAAM,EAAEW,QAAShB,QAAQC,GAAG,CAAChB,UAAU4B,OAAO,CAACG,MAAM;QACzG,OAAOhB,QAAQC,GAAG,CAAChB,UAAU4B;QAC7BP,IAAAA,aAAI,EAAC;IACP;AACF"}
|
package/dist/cjs/constants.js
CHANGED
|
@@ -17,7 +17,7 @@ function _interop_require_default(obj) {
|
|
|
17
17
|
};
|
|
18
18
|
}
|
|
19
19
|
var __dirname = _path.default.dirname(typeof __filename !== 'undefined' ? __filename : _url.default.fileURLToPath(require("url").pathToFileURL(__filename).toString()));
|
|
20
|
-
var root = (0, _packageRoot.default)(__dirname
|
|
20
|
+
var root = (0, _packageRoot.default)(__dirname);
|
|
21
21
|
var _default = {
|
|
22
22
|
CACHE_DIRECTORY: _path.default.resolve(_path.default.join(root, '.cache')),
|
|
23
23
|
DISTS_URL: 'https://nodejs.org/dist/index.json',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["constants.ts"],"sourcesContent":["import path from 'path';\nimport url from 'url';\n\nimport packageRoot from './lib/packageRoot.js';\n\nconst __dirname = path.dirname(typeof __filename !== 'undefined' ? __filename : url.fileURLToPath(import.meta.url));\nconst root = packageRoot(__dirname
|
|
1
|
+
{"version":3,"sources":["constants.ts"],"sourcesContent":["import path from 'path';\nimport url from 'url';\n\nimport packageRoot from './lib/packageRoot.js';\n\nconst __dirname = path.dirname(typeof __filename !== 'undefined' ? __filename : url.fileURLToPath(import.meta.url));\nconst root = packageRoot(__dirname);\n\nexport default {\n CACHE_DIRECTORY: path.resolve(path.join(root, '.cache')),\n DISTS_URL: 'https://nodejs.org/dist/index.json',\n SCHEDULES_URL: 'https://raw.githubusercontent.com/nodejs/Release/master/schedule.json',\n};\n"],"names":["__dirname","path","dirname","__filename","url","fileURLToPath","root","packageRoot","CACHE_DIRECTORY","resolve","join","DISTS_URL","SCHEDULES_URL"],"mappings":";;;;+BAQA;;;eAAA;;;2DARiB;0DACD;kEAEQ;;;;;;AAExB,IAAMA,YAAYC,aAAI,CAACC,OAAO,CAAC,OAAOC,eAAe,cAAcA,aAAaC,YAAG,CAACC,aAAa,CAAC;AAClG,IAAMC,OAAOC,IAAAA,oBAAW,EAACP;IAEzB,WAAe;IACbQ,iBAAiBP,aAAI,CAACQ,OAAO,CAACR,aAAI,CAACS,IAAI,CAACJ,MAAM;IAC9CK,WAAW;IACXC,eAAe;AACjB"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", {
|
|
3
|
+
value: true
|
|
4
|
+
});
|
|
5
|
+
Object.defineProperty(exports, "default", {
|
|
6
|
+
enumerable: true,
|
|
7
|
+
get: function() {
|
|
8
|
+
return _default;
|
|
9
|
+
}
|
|
10
|
+
});
|
|
11
|
+
var _fs = /*#__PURE__*/ _interop_require_default(require("fs"));
|
|
12
|
+
function _interop_require_default(obj) {
|
|
13
|
+
return obj && obj.__esModule ? obj : {
|
|
14
|
+
default: obj
|
|
15
|
+
};
|
|
16
|
+
}
|
|
17
|
+
function existsSyncPolyfill(path) {
|
|
18
|
+
try {
|
|
19
|
+
_fs.default.accessSync(path);
|
|
20
|
+
return true;
|
|
21
|
+
} catch (_) {
|
|
22
|
+
return false;
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
var _default = _fs.default.accessSync ? existsSyncPolyfill : _fs.default.existsSync;
|
|
26
|
+
/* CJS INTEROP */ if (exports.__esModule && exports.default) { try { Object.defineProperty(exports.default, '__esModule', { value: true }); for (var key in exports) { exports.default[key] = exports[key]; } } catch (_) {}; module.exports = exports.default; }
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["existsSync.ts"],"sourcesContent":["import fs from 'fs';\n\nfunction existsSyncPolyfill(path) {\n try {\n fs.accessSync(path);\n return true;\n } catch (_) {\n return false;\n }\n}\n\nexport default fs.accessSync ? existsSyncPolyfill : fs.existsSync;\n"],"names":["existsSyncPolyfill","path","fs","accessSync","_","existsSync"],"mappings":";;;;+BAWA;;;eAAA;;;yDAXe;;;;;;AAEf,SAASA,mBAAmBC,IAAI;IAC9B,IAAI;QACFC,WAAE,CAACC,UAAU,CAACF;QACd,OAAO;IACT,EAAE,OAAOG,GAAG;QACV,OAAO;IACT;AACF;IAEA,WAAeF,WAAE,CAACC,UAAU,GAAGH,qBAAqBE,WAAE,CAACG,UAAU"}
|
|
@@ -8,16 +8,19 @@ Object.defineProperty(exports, "default", {
|
|
|
8
8
|
return packageRoot;
|
|
9
9
|
}
|
|
10
10
|
});
|
|
11
|
+
var _fs = /*#__PURE__*/ _interop_require_default(require("fs"));
|
|
11
12
|
var _path = /*#__PURE__*/ _interop_require_default(require("path"));
|
|
13
|
+
var _existsSync = /*#__PURE__*/ _interop_require_default(require("./existsSync.js"));
|
|
12
14
|
function _interop_require_default(obj) {
|
|
13
15
|
return obj && obj.__esModule ? obj : {
|
|
14
16
|
default: obj
|
|
15
17
|
};
|
|
16
18
|
}
|
|
17
|
-
function packageRoot(dir
|
|
18
|
-
|
|
19
|
+
function packageRoot(dir) {
|
|
20
|
+
var packagePath = _path.default.join(dir, 'package.json');
|
|
21
|
+
if ((0, _existsSync.default)(packagePath) && JSON.parse(_fs.default.readFileSync(packagePath, 'utf8')).name) return dir;
|
|
19
22
|
var nextDir = _path.default.dirname(dir);
|
|
20
|
-
if (nextDir === dir) throw new Error(
|
|
21
|
-
return packageRoot(nextDir
|
|
23
|
+
if (nextDir === dir) throw new Error('Package root not found');
|
|
24
|
+
return packageRoot(nextDir);
|
|
22
25
|
}
|
|
23
26
|
/* CJS INTEROP */ if (exports.__esModule && exports.default) { try { Object.defineProperty(exports.default, '__esModule', { value: true }); for (var key in exports) { exports.default[key] = exports[key]; } } catch (_) {}; module.exports = exports.default; }
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["packageRoot.ts"],"sourcesContent":["import path from 'path';\n\nexport default function packageRoot(dir
|
|
1
|
+
{"version":3,"sources":["packageRoot.ts"],"sourcesContent":["import fs from 'fs';\nimport path from 'path';\nimport existsSync from './existsSync.js';\n\nexport default function packageRoot(dir) {\n const packagePath = path.join(dir, 'package.json');\n if (existsSync(packagePath) && JSON.parse(fs.readFileSync(packagePath, 'utf8')).name) return dir;\n const nextDir = path.dirname(dir);\n if (nextDir === dir) throw new Error('Package root not found');\n return packageRoot(nextDir);\n}\n"],"names":["packageRoot","dir","packagePath","path","join","existsSync","JSON","parse","fs","readFileSync","name","nextDir","dirname","Error"],"mappings":";;;;+BAIA;;;eAAwBA;;;yDAJT;2DACE;iEACM;;;;;;AAER,SAASA,YAAYC,GAAG;IACrC,IAAMC,cAAcC,aAAI,CAACC,IAAI,CAACH,KAAK;IACnC,IAAII,IAAAA,mBAAU,EAACH,gBAAgBI,KAAKC,KAAK,CAACC,WAAE,CAACC,YAAY,CAACP,aAAa,SAASQ,IAAI,EAAE,OAAOT;IAC7F,IAAMU,UAAUR,aAAI,CAACS,OAAO,CAACX;IAC7B,IAAIU,YAAYV,KAAK,MAAM,IAAIY,MAAM;IACrC,OAAOb,YAAYW;AACrB"}
|
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
import Cache from 'fetch-json-cache';
|
|
2
|
+
// biome-ignore lint/suspicious/noShadowRestrictedNames: <explanation>
|
|
3
|
+
import Promise from 'pinkie-promise';
|
|
2
4
|
import semver from 'semver';
|
|
3
5
|
import constants from './constants.mjs';
|
|
4
6
|
import { major, minor } from './lib/keyFunctions.mjs';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["NodeVersions.ts"],"sourcesContent":["import Cache from 'fetch-json-cache';\nimport semver from 'semver';\n\nimport constants from './constants.js';\nimport { major, minor } from './lib/keyFunctions.js';\nimport { even, odd } from './lib/lineFunctions.js';\nimport match from './lib/match.js';\nimport normalizeSchedule from './lib/normalizeSchedule.js';\nimport normalizeVersion from './lib/normalizeVersion.js';\nimport parseExpression from './parseExpression/index.js';\n\nimport type { LoadError, LoadOptions, ResolveOptions, Schedule, ScheduleRaw, Version, VersionRaw } from './types.js';\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), semver.coerce(b.semver)) ? 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(options?: LoadOptions | LoadCallback, callback?: LoadCallback): undefined | Promise<NodeVersions> {\n if (typeof options === 'function') {\n callback = options;\n options = null;\n }\n\n if (typeof callback === 'function') {\n options = options || {};\n\n const cache = new Cache((options as LoadOptions).cacheDirectory || constants.CACHE_DIRECTORY);\n cache.get(constants.DISTS_URL, (err, versions: VersionRaw[]) => {\n if (err) return callback(err);\n\n cache.get(constants.SCHEDULES_URL, (err, schedule: ScheduleRaw[]) => {\n err ? callback(err) : callback(null, new NodeVersions(versions, schedule));\n });\n });\n } else {\n return new Promise((resolve, reject) => {\n NodeVersions.load(options, function loadCallback(err, NodeVersions) {\n err ? reject(err) : resolve(NodeVersions);\n });\n });\n }\n }\n\n static loadSync(options?: LoadOptions): NodeVersions | null {\n options = options || {};\n const cache = new Cache(options.cacheDirectory || constants.CACHE_DIRECTORY);\n const versions = cache.getSync(constants.DISTS_URL) as VersionRaw[];\n const schedule = cache.getSync(constants.SCHEDULES_URL) as ScheduleRaw[];\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 = 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, query)) continue;\n version = test;\n break;\n }\n if (version) return version[path];\n }\n\n // filtered expression\n const range = options.range || '';\n const filters = { lts: !!~range.indexOf('lts'), key: undefined, line: undefined };\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 = [];\n const founds = {};\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 if (founds[filters.key(test)]) continue;\n founds[filters.key(test)] = true;\n }\n results.unshift(test[path]);\n }\n return results;\n }\n}\n"],"names":["Cache","semver","constants","major","minor","even","odd","match","normalizeSchedule","normalizeVersion","parseExpression","NodeVersions","load","options","callback","cache","cacheDirectory","CACHE_DIRECTORY","get","DISTS_URL","err","versions","SCHEDULES_URL","schedule","
|
|
1
|
+
{"version":3,"sources":["NodeVersions.ts"],"sourcesContent":["import Cache from 'fetch-json-cache';\n// biome-ignore lint/suspicious/noShadowRestrictedNames: <explanation>\nimport Promise from 'pinkie-promise';\nimport semver from 'semver';\n\nimport constants from './constants.js';\nimport { major, minor } from './lib/keyFunctions.js';\nimport { even, odd } from './lib/lineFunctions.js';\nimport match from './lib/match.js';\nimport normalizeSchedule from './lib/normalizeSchedule.js';\nimport normalizeVersion from './lib/normalizeVersion.js';\nimport parseExpression from './parseExpression/index.js';\n\nimport type { LoadError, LoadOptions, ResolveOptions, Schedule, ScheduleRaw, Version, VersionRaw } from './types.js';\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), semver.coerce(b.semver)) ? 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(options?: LoadOptions | LoadCallback, callback?: LoadCallback): undefined | Promise<NodeVersions> {\n if (typeof options === 'function') {\n callback = options;\n options = null;\n }\n\n if (typeof callback === 'function') {\n options = options || {};\n\n const cache = new Cache((options as LoadOptions).cacheDirectory || constants.CACHE_DIRECTORY);\n cache.get(constants.DISTS_URL, (err, versions: VersionRaw[]) => {\n if (err) return callback(err);\n\n cache.get(constants.SCHEDULES_URL, (err, schedule: ScheduleRaw[]) => {\n err ? callback(err) : callback(null, new NodeVersions(versions, schedule));\n });\n });\n } else {\n return new Promise((resolve, reject) => {\n NodeVersions.load(options, function loadCallback(err, NodeVersions) {\n err ? reject(err) : resolve(NodeVersions);\n });\n });\n }\n }\n\n static loadSync(options?: LoadOptions): NodeVersions | null {\n options = options || {};\n const cache = new Cache(options.cacheDirectory || constants.CACHE_DIRECTORY);\n const versions = cache.getSync(constants.DISTS_URL) as VersionRaw[];\n const schedule = cache.getSync(constants.SCHEDULES_URL) as ScheduleRaw[];\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 = 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, query)) continue;\n version = test;\n break;\n }\n if (version) return version[path];\n }\n\n // filtered expression\n const range = options.range || '';\n const filters = { lts: !!~range.indexOf('lts'), key: undefined, line: undefined };\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 = [];\n const founds = {};\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 if (founds[filters.key(test)]) continue;\n founds[filters.key(test)] = true;\n }\n results.unshift(test[path]);\n }\n return results;\n }\n}\n"],"names":["Cache","Promise","semver","constants","major","minor","even","odd","match","normalizeSchedule","normalizeVersion","parseExpression","NodeVersions","load","options","callback","cache","cacheDirectory","CACHE_DIRECTORY","get","DISTS_URL","err","versions","SCHEDULES_URL","schedule","resolve","reject","loadCallback","loadSync","getSync","expression","path","trim","query","call","now","Date","version","index","length","test","date","range","filters","lts","indexOf","key","undefined","line","results","founds","satisfies","unshift","constructor","Error","schedules","name","push","sort","a","b","gt","coerce"],"mappings":"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"}
|
package/dist/esm/cli.mjs
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import exit from 'exit';
|
|
2
2
|
import getopts from 'getopts-compat';
|
|
3
3
|
import NodeVersions from './index.mjs';
|
|
4
|
-
import isArray from 'isarray';
|
|
5
4
|
// biome-ignore lint/suspicious/noShadowRestrictedNames: <explanation>
|
|
6
5
|
import isNaN from './lib/isNaN.mjs';
|
|
6
|
+
import isArray from 'isarray';
|
|
7
7
|
export default ((argv)=>{
|
|
8
8
|
const options = getopts(argv.slice(1), {
|
|
9
9
|
alias: {
|
package/dist/esm/cli.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["cli.ts"],"sourcesContent":["import exit from 'exit';\nimport getopts from 'getopts-compat';\nimport NodeVersions, { type LoadOptions, type ResolveOptions } from './index.js';\n
|
|
1
|
+
{"version":3,"sources":["cli.ts"],"sourcesContent":["import exit from 'exit';\nimport getopts from 'getopts-compat';\nimport NodeVersions, { type LoadOptions, type ResolveOptions } from './index.js';\n// biome-ignore lint/suspicious/noShadowRestrictedNames: <explanation>\nimport isNaN from './lib/isNaN.js';\n\nimport isArray from 'isarray';\n\nexport default (argv) => {\n const options = getopts(argv.slice(1), {\n alias: { path: 'p', range: 'r', now: 'n' },\n stopEarly: true,\n });\n if (typeof options.now !== 'undefined') options.now = new Date(isNaN(+options.now) ? Date.parse(options.now) : +options.now);\n\n // define.option('-p, --path [path]', 'path within version including raw for unprocessed version', 'version');\n // define.option('-r, --range [range]', 'range type of major, minor, or patch with filters of lts, even, odd for version string expressions', 'patch');\n // define.option('-n, --now [date]', 'use a specific time as a Date.parse');\n\n if (options.help) {\n console.log('');\n console.log('Example call:');\n console.log(' $ nv [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 return;\n }\n\n const args = argv.slice(0, 1).concat(options._);\n if (args.length < 1) {\n console.log('Missing version string. Example usage: nv [version string]. Use nv --help for information on version strings');\n return exit(-1);\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 return exit(err.code || -1);\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(-1);\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","getopts","NodeVersions","isNaN","isArray","argv","options","slice","alias","path","range","now","stopEarly","Date","parse","help","console","log","args","concat","_","length","stringify","value","JSON","load","err","semvers","message","code","version","resolve","index"],"mappings":"AAAA,OAAOA,UAAU,OAAO;AACxB,OAAOC,aAAa,iBAAiB;AACrC,OAAOC,kBAA6D,aAAa;AACjF,sEAAsE;AACtE,OAAOC,WAAW,iBAAiB;AAEnC,OAAOC,aAAa,UAAU;AAE9B,eAAe,CAAA,CAACC;IACd,MAAMC,UAAUL,QAAQI,KAAKE,KAAK,CAAC,IAAI;QACrCC,OAAO;YAAEC,MAAM;YAAKC,OAAO;YAAKC,KAAK;QAAI;QACzCC,WAAW;IACb;IACA,IAAI,OAAON,QAAQK,GAAG,KAAK,aAAaL,QAAQK,GAAG,GAAG,IAAIE,KAAKV,MAAM,CAACG,QAAQK,GAAG,IAAIE,KAAKC,KAAK,CAACR,QAAQK,GAAG,IAAI,CAACL,QAAQK,GAAG;IAE3H,8GAA8G;IAC9G,uJAAuJ;IACvJ,4EAA4E;IAE5E,IAAIL,QAAQS,IAAI,EAAE;QAChBC,QAAQC,GAAG,CAAC;QACZD,QAAQC,GAAG,CAAC;QACZD,QAAQC,GAAG,CAAC;QACZD,QAAQC,GAAG,CAAC;QACZD,QAAQC,GAAG,CAAC;QACZD,QAAQC,GAAG,CAAC;QACZD,QAAQC,GAAG,CAAC;QACZD,QAAQC,GAAG,CAAC;QACZD,QAAQC,GAAG,CAAC;QACZD,QAAQC,GAAG,CAAC;QACZD,QAAQC,GAAG,CAAC;QACZD,QAAQC,GAAG,CAAC;QACZD,QAAQC,GAAG,CAAC;QACZD,QAAQC,GAAG,CAAC;QACZD,QAAQC,GAAG,CAAC;QACZD,QAAQC,GAAG,CAAC;QACZD,QAAQC,GAAG,CAAC;QACZ;IACF;IAEA,MAAMC,OAAOb,KAAKE,KAAK,CAAC,GAAG,GAAGY,MAAM,CAACb,QAAQc,CAAC;IAC9C,IAAIF,KAAKG,MAAM,GAAG,GAAG;QACnBL,QAAQC,GAAG,CAAC;QACZ,OAAOjB,KAAK,CAAC;IACf;IAEA,SAASsB,UAAUC,KAAK;QACtB,OAAO,OAAOA,UAAU,WAAWA,QAAQC,KAAKF,SAAS,CAACC;IAC5D;IAEArB,aAAauB,IAAI,CAACnB,SAAwB,CAACoB,KAAKC;QAC9C,IAAID,KAAK;YACPV,QAAQC,GAAG,CAACS,IAAIE,OAAO;YACvB,OAAO5B,KAAK0B,IAAIG,IAAI,IAAI,CAAC;QAC3B;QAEA,MAAMC,UAAUH,QAAQI,OAAO,CAACb,IAAI,CAAC,EAAE,EAAEZ;QACzC,IAAI,CAACwB,WAAY1B,QAAQ0B,YAAY,CAAC,AAACA,QAAqBT,MAAM,EAAG;YACnEL,QAAQC,GAAG,CAAC,CAAC,cAAc,EAAEC,IAAI,CAAC,EAAE,EAAE;YACtC,OAAOlB,KAAK,CAAC;QACf;QAEAgB,QAAQC,GAAG,CAAC;QACZ,IAAIb,QAAQ0B,UAAU;YACpB,IAAK,IAAIE,QAAQ,GAAGA,QAAQ,AAACF,QAAqBT,MAAM,EAAEW,QAAShB,QAAQC,GAAG,CAACK,UAAUQ,OAAO,CAACE,MAAM;QACzG,OAAOhB,QAAQC,GAAG,CAACK,UAAUQ;QAC7B9B,KAAK;IACP;AACF,CAAA,EAAE"}
|
package/dist/esm/constants.mjs
CHANGED
|
@@ -2,7 +2,7 @@ import path from 'path';
|
|
|
2
2
|
import url from 'url';
|
|
3
3
|
import packageRoot from './lib/packageRoot.mjs';
|
|
4
4
|
const __dirname = path.dirname(typeof __filename !== 'undefined' ? __filename : url.fileURLToPath(import.meta.url));
|
|
5
|
-
const root = packageRoot(__dirname
|
|
5
|
+
const root = packageRoot(__dirname);
|
|
6
6
|
export default {
|
|
7
7
|
CACHE_DIRECTORY: path.resolve(path.join(root, '.cache')),
|
|
8
8
|
DISTS_URL: 'https://nodejs.org/dist/index.json',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["constants.ts"],"sourcesContent":["import path from 'path';\nimport url from 'url';\n\nimport packageRoot from './lib/packageRoot.js';\n\nconst __dirname = path.dirname(typeof __filename !== 'undefined' ? __filename : url.fileURLToPath(import.meta.url));\nconst root = packageRoot(__dirname
|
|
1
|
+
{"version":3,"sources":["constants.ts"],"sourcesContent":["import path from 'path';\nimport url from 'url';\n\nimport packageRoot from './lib/packageRoot.js';\n\nconst __dirname = path.dirname(typeof __filename !== 'undefined' ? __filename : url.fileURLToPath(import.meta.url));\nconst root = packageRoot(__dirname);\n\nexport default {\n CACHE_DIRECTORY: path.resolve(path.join(root, '.cache')),\n DISTS_URL: 'https://nodejs.org/dist/index.json',\n SCHEDULES_URL: 'https://raw.githubusercontent.com/nodejs/Release/master/schedule.json',\n};\n"],"names":["path","url","packageRoot","__dirname","dirname","__filename","fileURLToPath","root","CACHE_DIRECTORY","resolve","join","DISTS_URL","SCHEDULES_URL"],"mappings":"AAAA,OAAOA,UAAU,OAAO;AACxB,OAAOC,SAAS,MAAM;AAEtB,OAAOC,iBAAiB,uBAAuB;AAE/C,MAAMC,YAAYH,KAAKI,OAAO,CAAC,OAAOC,eAAe,cAAcA,aAAaJ,IAAIK,aAAa,CAAC,YAAYL,GAAG;AACjH,MAAMM,OAAOL,YAAYC;AAEzB,eAAe;IACbK,iBAAiBR,KAAKS,OAAO,CAACT,KAAKU,IAAI,CAACH,MAAM;IAC9CI,WAAW;IACXC,eAAe;AACjB,EAAE"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["existsSync.ts"],"sourcesContent":["import fs from 'fs';\n\nfunction existsSyncPolyfill(path) {\n try {\n fs.accessSync(path);\n return true;\n } catch (_) {\n return false;\n }\n}\n\nexport default fs.accessSync ? existsSyncPolyfill : fs.existsSync;\n"],"names":["fs","existsSyncPolyfill","path","accessSync","_","existsSync"],"mappings":"AAAA,OAAOA,QAAQ,KAAK;AAEpB,SAASC,mBAAmBC,IAAI;IAC9B,IAAI;QACFF,GAAGG,UAAU,CAACD;QACd,OAAO;IACT,EAAE,OAAOE,GAAG;QACV,OAAO;IACT;AACF;AAEA,eAAeJ,GAAGG,UAAU,GAAGF,qBAAqBD,GAAGK,UAAU,CAAC"}
|
|
@@ -1,7 +1,10 @@
|
|
|
1
|
+
import fs from 'fs';
|
|
1
2
|
import path from 'path';
|
|
2
|
-
|
|
3
|
-
|
|
3
|
+
import existsSync from './existsSync.mjs';
|
|
4
|
+
export default function packageRoot(dir) {
|
|
5
|
+
const packagePath = path.join(dir, 'package.json');
|
|
6
|
+
if (existsSync(packagePath) && JSON.parse(fs.readFileSync(packagePath, 'utf8')).name) return dir;
|
|
4
7
|
const nextDir = path.dirname(dir);
|
|
5
|
-
if (nextDir === dir) throw new Error(
|
|
6
|
-
return packageRoot(nextDir
|
|
8
|
+
if (nextDir === dir) throw new Error('Package root not found');
|
|
9
|
+
return packageRoot(nextDir);
|
|
7
10
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["packageRoot.ts"],"sourcesContent":["import path from 'path';\n\nexport default function packageRoot(dir
|
|
1
|
+
{"version":3,"sources":["packageRoot.ts"],"sourcesContent":["import fs from 'fs';\nimport path from 'path';\nimport existsSync from './existsSync.js';\n\nexport default function packageRoot(dir) {\n const packagePath = path.join(dir, 'package.json');\n if (existsSync(packagePath) && JSON.parse(fs.readFileSync(packagePath, 'utf8')).name) return dir;\n const nextDir = path.dirname(dir);\n if (nextDir === dir) throw new Error('Package root not found');\n return packageRoot(nextDir);\n}\n"],"names":["fs","path","existsSync","packageRoot","dir","packagePath","join","JSON","parse","readFileSync","name","nextDir","dirname","Error"],"mappings":"AAAA,OAAOA,QAAQ,KAAK;AACpB,OAAOC,UAAU,OAAO;AACxB,OAAOC,gBAAgB,kBAAkB;AAEzC,eAAe,SAASC,YAAYC,GAAG;IACrC,MAAMC,cAAcJ,KAAKK,IAAI,CAACF,KAAK;IACnC,IAAIF,WAAWG,gBAAgBE,KAAKC,KAAK,CAACR,GAAGS,YAAY,CAACJ,aAAa,SAASK,IAAI,EAAE,OAAON;IAC7F,MAAMO,UAAUV,KAAKW,OAAO,CAACR;IAC7B,IAAIO,YAAYP,KAAK,MAAM,IAAIS,MAAM;IACrC,OAAOV,YAAYQ;AACrB"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import Promise from 'pinkie-promise';
|
|
1
2
|
import type { LoadError, LoadOptions, ResolveOptions, Schedule, ScheduleRaw, Version, VersionRaw } from './types.js';
|
|
2
3
|
export type LoadCallback = (error?: LoadError, semvers?: NodeVersions) => void;
|
|
3
4
|
export default class NodeVersions {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export default function packageRoot(dir: any
|
|
1
|
+
export default function packageRoot(dir: any): any;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "node-semvers",
|
|
3
|
-
"version": "1.2.
|
|
3
|
+
"version": "1.2.3",
|
|
4
4
|
"description": "Utilities for managing versions of node including looking up codenames",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"node",
|
|
@@ -39,20 +39,20 @@
|
|
|
39
39
|
"scripts"
|
|
40
40
|
],
|
|
41
41
|
"scripts": {
|
|
42
|
-
"
|
|
43
|
-
"build": "tsds build",
|
|
42
|
+
"build": "tsds build && node scripts/assets.js",
|
|
44
43
|
"deploy": "tsds deploy",
|
|
45
44
|
"format": "biome check --write --unsafe src/ test/",
|
|
46
45
|
"postinstall": "node scripts/postinstall.cjs",
|
|
47
46
|
"test": "tsds test:node --no-timeouts",
|
|
48
47
|
"test:engines": "nvu engines npm test",
|
|
49
|
-
"version": ""
|
|
48
|
+
"version": "tsds version"
|
|
50
49
|
},
|
|
51
50
|
"dependencies": {
|
|
52
51
|
"exit": "^0.1.2",
|
|
53
|
-
"fetch-json-cache": "^1.2.
|
|
52
|
+
"fetch-json-cache": "^1.2.2",
|
|
54
53
|
"getopts-compat": "^2.2.5",
|
|
55
54
|
"isarray": "^2.0.5",
|
|
55
|
+
"pinkie-promise": "^2.0.1",
|
|
56
56
|
"semver": "^5.7.1"
|
|
57
57
|
},
|
|
58
58
|
"devDependencies": {
|
|
@@ -61,24 +61,20 @@
|
|
|
61
61
|
"@types/mocha": "^10.0.10",
|
|
62
62
|
"@types/node": "^22.10.2",
|
|
63
63
|
"cr": "^0.1.0",
|
|
64
|
-
"cross-spawn-cb": "^1.
|
|
64
|
+
"cross-spawn-cb": "^1.4.0",
|
|
65
65
|
"depcheck": "^1.4.7",
|
|
66
|
-
"get-tsconfig-compat": "^
|
|
66
|
+
"get-tsconfig-compat": "^2.0.1",
|
|
67
67
|
"rimraf2": "^2.8.2",
|
|
68
68
|
"rollup": "^4.29.1",
|
|
69
69
|
"rollup-plugin-node-externals": "^8.0.0",
|
|
70
|
-
"ts-dev-stack": "^1.4
|
|
71
|
-
"ts-swc-rollup-plugin": "^1.
|
|
70
|
+
"ts-dev-stack": "^1.5.4",
|
|
71
|
+
"ts-swc-rollup-plugin": "^1.5.9"
|
|
72
72
|
},
|
|
73
73
|
"packageManager": "npm@11.0.0+sha512.11dff29565d2297c74e7c594a9762581bde969f0aa5cbe6f5b3644bf008a16c065ece61094d9ffbb81125be38df8e1ba43eb8244b3d30c61eb797e9a2440e3ec",
|
|
74
74
|
"engines": {
|
|
75
75
|
"node": ">=0.8"
|
|
76
76
|
},
|
|
77
77
|
"tsds": {
|
|
78
|
-
"source": "src/index.ts"
|
|
79
|
-
"targets": [
|
|
80
|
-
"cjs",
|
|
81
|
-
"esm"
|
|
82
|
-
]
|
|
78
|
+
"source": "src/index.ts"
|
|
83
79
|
}
|
|
84
80
|
}
|
|
@@ -6,7 +6,7 @@ import path from 'path';
|
|
|
6
6
|
import url from 'url';
|
|
7
7
|
const __dirname = path.dirname(typeof __filename !== 'undefined' ? __filename : url.fileURLToPath(import.meta.url));
|
|
8
8
|
|
|
9
|
-
import getTS from 'get-tsconfig-compat';
|
|
9
|
+
import * as getTS from 'get-tsconfig-compat';
|
|
10
10
|
const tsconfig = getTS.getTsconfig(path.resolve(__dirname, '..', 'tsconfig.json'));
|
|
11
11
|
tsconfig.config.compilerOptions.target = 'ES4';
|
|
12
12
|
|