node-semvers 1.2.6 → 1.2.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +3 -4
- package/assets/postinstall.cjs +33 -42
- package/dist/cjs/NodeVersions.js +1 -2
- package/dist/cjs/NodeVersions.js.map +1 -1
- package/dist/cjs/constants.js +2 -2
- package/dist/cjs/constants.js.map +1 -1
- package/dist/esm/NodeVersions.mjs +0 -2
- package/dist/esm/NodeVersions.mjs.map +1 -1
- package/dist/esm/constants.mjs +2 -2
- package/dist/esm/constants.mjs.map +1 -1
- package/dist/types/NodeVersions.d.ts +0 -1
- package/package.json +3 -3
- package/scripts/rollup.config.mjs +1 -1
- package/dist/cjs/lib/packageRoot.js +0 -26
- package/dist/cjs/lib/packageRoot.js.map +0 -1
- package/dist/esm/lib/packageRoot.mjs +0 -10
- package/dist/esm/lib/packageRoot.mjs.map +0 -1
- package/dist/types/lib/packageRoot.d.ts +0 -1
package/README.md
CHANGED
|
@@ -27,9 +27,8 @@ NodeVersions.load(function (err, semvers) {
|
|
|
27
27
|
assert.equal(version, 'v12.14.0');
|
|
28
28
|
});
|
|
29
29
|
|
|
30
|
-
NodeVersions.load()
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
});
|
|
30
|
+
const semvers = await NodeVersions.load()
|
|
31
|
+
const versions = semvers.resolve('10.0.0 || ~12.0.0');
|
|
32
|
+
assert.deepEqual(versions, ['v10.0.0', 'v12.0.0']);
|
|
34
33
|
|
|
35
34
|
```
|
package/assets/postinstall.cjs
CHANGED
|
@@ -1,46 +1,37 @@
|
|
|
1
|
-
|
|
2
|
-
typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('fetch-json-cache'), require('path'), require('url'), require('fs'), require('fs-exists-sync')) :
|
|
3
|
-
typeof define === 'function' && define.amd ? define(['fetch-json-cache', 'path', 'url', 'fs', 'fs-exists-sync'], factory) :
|
|
4
|
-
(global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.tsdsBuild = factory(global.Cache, global.path, global.url, global.fs, global.existsSync));
|
|
5
|
-
})(this, (function (Cache, path, url, fs, existsSync) { 'use strict';
|
|
1
|
+
'use strict';
|
|
6
2
|
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
var nextDir = path.dirname(dir);
|
|
12
|
-
if (nextDir === dir) throw new Error('Package root not found');
|
|
13
|
-
return packageRoot(nextDir);
|
|
14
|
-
}
|
|
3
|
+
var Cache = require('fetch-json-cache');
|
|
4
|
+
var path = require('path');
|
|
5
|
+
var url = require('url');
|
|
6
|
+
var moduleRoot = require('module-root-sync');
|
|
15
7
|
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
8
|
+
var _documentCurrentScript = typeof document !== 'undefined' ? document.currentScript : null;
|
|
9
|
+
var __dirname$1 = path.dirname(typeof __filename !== 'undefined' ? __filename : url.fileURLToPath((typeof document === 'undefined' ? require('u' + 'rl').pathToFileURL(__filename).href : (_documentCurrentScript && _documentCurrentScript.tagName.toUpperCase() === 'SCRIPT' && _documentCurrentScript.src || new URL('postinstall.cjs', document.baseURI).href))));
|
|
10
|
+
var root = moduleRoot(__dirname$1);
|
|
11
|
+
var constants = {
|
|
12
|
+
CACHE_DIRECTORY: path.resolve(path.join(root, '.cache')),
|
|
13
|
+
DISTS_URL: 'https://nodejs.org/dist/index.json',
|
|
14
|
+
SCHEDULES_URL: 'https://raw.githubusercontent.com/nodejs/Release/master/schedule.json'
|
|
15
|
+
};
|
|
23
16
|
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
17
|
+
function postinstall() {
|
|
18
|
+
var cacheJSON = function cacheJSON(callback) {
|
|
19
|
+
cache.get(constants.DISTS_URL, {
|
|
20
|
+
force: true
|
|
21
|
+
}, function(err) {
|
|
22
|
+
err ? callback(err) : cache.get(constants.SCHEDULES_URL, {
|
|
23
|
+
force: true
|
|
24
|
+
}, callback);
|
|
25
|
+
});
|
|
26
|
+
};
|
|
27
|
+
var cache = new Cache(constants.CACHE_DIRECTORY);
|
|
28
|
+
cacheJSON(function(err) {
|
|
29
|
+
if (err) {
|
|
30
|
+
console.log("Failed to cache dists and schedules. Error: ".concat(err.message));
|
|
31
|
+
return process.exit(err.code || -1);
|
|
32
|
+
}
|
|
33
|
+
process.exit(0);
|
|
34
|
+
});
|
|
35
|
+
}
|
|
43
36
|
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
}));
|
|
37
|
+
module.exports = postinstall;
|
package/dist/cjs/NodeVersions.js
CHANGED
|
@@ -9,7 +9,6 @@ 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"));
|
|
13
12
|
var _semver = /*#__PURE__*/ _interop_require_default(require("semver"));
|
|
14
13
|
var _constants = /*#__PURE__*/ _interop_require_default(require("./constants.js"));
|
|
15
14
|
var _keyFunctions = require("./lib/keyFunctions.js");
|
|
@@ -106,7 +105,7 @@ var NodeVersions = /*#__PURE__*/ function() {
|
|
|
106
105
|
});
|
|
107
106
|
});
|
|
108
107
|
} else {
|
|
109
|
-
return new
|
|
108
|
+
return new Promise(function(resolve, reject) {
|
|
110
109
|
NodeVersions.load(options, function loadCallback(err, NodeVersions) {
|
|
111
110
|
err ? reject(err) : resolve(NodeVersions);
|
|
112
111
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["/Users/kevin/Dev/OpenSource/node-version/node-semvers/src/NodeVersions.ts"],"sourcesContent":["import Cache from 'fetch-json-cache';\
|
|
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 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":";;;;;;;eAeqBA;;;qEAfH;6DACC;gEAEG;4BACO;6BACH;4DACR;wEACY;uEACD;4DACD;;;;;;;;;;;AAMb,IAAA,AAAMA,6BAAN;;aAAMA,aAIPC,QAAsB,EAAEC,QAAuB;gCAJxCF;QAKjB,IAAI,CAACC,UAAU,MAAM,IAAIE,MAAM;QAC/B,IAAI,CAACD,UAAU,MAAM,IAAIC,MAAM;QAE/B,IAAI,CAACC,SAAS,GAAG,EAAE;QACnB,IAAK,IAAMC,QAAQH,SAAU,IAAI,CAACE,SAAS,CAACE,IAAI,CAACC,IAAAA,0BAAiB,EAACF,MAAMH,QAAQ,CAACG,KAAK;QACvF,IAAI,CAACD,SAAS,GAAG,IAAI,CAACA,SAAS,CAACI,IAAI,CAAC,SAACC,GAAGC;mBAAOC,eAAM,CAACC,EAAE,CAACD,eAAM,CAACE,MAAM,CAACJ,EAAEE,MAAM,GAAGA,eAAM,CAACE,MAAM,CAACH,EAAEC,MAAM,KAAK,IAAI,CAAC;;QAEnH,IAAI,CAACV,QAAQ,GAAG,EAAE;QAClB,IAAK,IAAIa,QAAQ,GAAGA,QAAQb,SAASc,MAAM,EAAED,QAAS,IAAI,CAACb,QAAQ,CAACK,IAAI,CAACU,IAAAA,yBAAgB,EAACf,QAAQ,CAACa,MAAM,EAAE,IAAI,CAACV,SAAS;QACzH,IAAI,CAACH,QAAQ,GAAG,IAAI,CAACA,QAAQ,CAACO,IAAI,CAAC,SAACC,GAAGC;mBAAOC,eAAM,CAACC,EAAE,CAACH,EAAEE,MAAM,EAAED,EAAEC,MAAM,IAAI,CAAC,IAAI;;;iBAdlEX;IAoDnBiB,OAAAA,OA6CC,GA7CDA,SAAAA,QAAQC,UAAkC,EAAEC,OAAwB;QAClEA,UAAUA,WAAW,CAAC;QACtB,IAAMC,OAAOD,QAAQC,IAAI,IAAI;QAE7B,YAAY;QACZ,IAAI,OAAOF,eAAe,UAAUA,aAAa,AAAC,GAAa,OAAXA;QACpD,IAAI,OAAOA,eAAe,UAAU,OAAO;QAC3CA,aAAaA,WAAWG,IAAI;QAE5B,6BAA6B;QAC7B,IAAMC,QAAQC,cAAe,CAACC,IAAI,CAAC,IAAI,EAAEN,YAAYC,QAAQM,GAAG,IAAI,IAAIC;QACxE,IAAIJ,OAAO;YACT,IAAIK,UAAU;YACd,IAAK,IAAIb,QAAQ,GAAGA,QAAQ,IAAI,CAACb,QAAQ,CAACc,MAAM,EAAED,QAAS;gBACzD,IAAMc,OAAO,IAAI,CAAC3B,QAAQ,CAACa,MAAM;gBACjC,IAAIK,QAAQM,GAAG,IAAIN,QAAQM,GAAG,GAAGG,KAAKC,IAAI,EAAE;gBAC5C,IAAI,CAACC,IAAAA,cAAK,EAACF,MAAMN,QAAQ;gBACzBK,UAAUC;gBACV;YACF;YACA,IAAID,SAAS,OAAOA,OAAO,CAACP,KAAK;QACnC;QAEA,sBAAsB;QACtB,IAAMW,QAAQZ,QAAQY,KAAK,IAAI;QAC/B,IAAMC,UAAU;YAAEC,KAAK,CAAC,CAAC,CAACF,MAAMG,OAAO,CAAC;YAAQC,KAAKC;YAAWC,MAAMD;QAAU;QAChFJ,QAAQG,GAAG,GAAG,CAACJ,MAAMG,OAAO,CAAC,WAAWI,mBAAK,GAAG,CAACP,MAAMG,OAAO,CAAC,WAAWK,mBAAK,GAAGH;QAClFJ,QAAQK,IAAI,GAAG,CAACN,MAAMG,OAAO,CAAC,UAAUM,mBAAI,GAAG,CAACT,MAAMG,OAAO,CAAC,SAASO,kBAAG,GAAGL;QAE7E,IAAMM,UAAU,EAAE;QAClB,IAAMC,SAAS,CAAC;QAEhB,IAAK,IAAI7B,SAAQ,GAAGA,SAAQ,IAAI,CAACb,QAAQ,CAACc,MAAM,EAAED,SAAS;YACzD,IAAMc,QAAO,IAAI,CAAC3B,QAAQ,CAACa,OAAM;YACjC,IAAIK,QAAQM,GAAG,IAAIN,QAAQM,GAAG,GAAGG,MAAKC,IAAI,EAAE;YAC5C,IAAIG,QAAQC,GAAG,IAAI,CAACL,MAAKK,GAAG,EAAE;YAC9B,IAAID,QAAQK,IAAI,IAAI,CAACL,QAAQK,IAAI,CAACT,QAAO;YACzC,IAAI,CAACjB,eAAM,CAACiC,SAAS,CAAChB,MAAKjB,MAAM,EAAEO,aAAa;YAChD,IAAIc,QAAQG,GAAG,EAAE;gBACf,IAAIQ,MAAM,CAACX,QAAQG,GAAG,CAACP,OAAM,EAAE;gBAC/Be,MAAM,CAACX,QAAQG,GAAG,CAACP,OAAM,GAAG;YAC9B;YACAc,QAAQG,OAAO,CAACjB,KAAI,CAACR,KAAK;QAC5B;QACA,OAAOsB;IACT;IAjGmB1C,aAiBZ8C,IAwBN,GAxBD,SAAOA,KAAK3B,OAAoC,EAAE4B,QAAuB;QACvE,IAAI,OAAO5B,YAAY,YAAY;YACjC4B,WAAW5B;YACXA,UAAU;QACZ;QAEA,IAAI,OAAO4B,aAAa,YAAY;YAClC5B,UAAUA,WAAW,CAAC;YAEtB,IAAM6B,QAAQ,IAAIC,uBAAK,CAAC,AAAC9B,QAAwB+B,cAAc,IAAIC,kBAAS,CAACC,eAAe;YAC5FJ,MAAMK,GAAG,CAACF,kBAAS,CAACG,SAAS,EAAE,SAACC,KAAKtD;gBACnC,IAAIsD,KAAK,OAAOR,SAASQ;gBAEzBP,MAAMK,GAAG,CAACF,kBAAS,CAACK,aAAa,EAAE,SAACD,KAAKrD;oBACvCqD,MAAMR,SAASQ,OAAOR,SAAS,MAAM,IA/B1B/C,aA+B2CC,UAAUC;gBAClE;YACF;QACF,OAAO;YACL,OAAO,IAAIuD,QAAQ,SAACxC,SAASyC;gBAnCd1D,aAoCA8C,IAAI,CAAC3B,SAAS,SAASwC,aAAaJ,GAAG,EAAEvD,YAAY;oBAChEuD,MAAMG,OAAOH,OAAOtC,QAAQjB;gBAC9B;YACF;QACF;IACF;IAzCmBA,aA2CZ4D,QAON,GAPD,SAAOA,SAASzC,OAAqB;QACnCA,UAAUA,WAAW,CAAC;QACtB,IAAM6B,QAAQ,IAAIC,uBAAK,CAAC9B,QAAQ+B,cAAc,IAAIC,kBAAS,CAACC,eAAe;QAC3E,IAAMnD,WAAW+C,MAAMa,OAAO,CAACV,kBAAS,CAACG,SAAS;QAClD,IAAMpD,WAAW8C,MAAMa,OAAO,CAACV,kBAAS,CAACK,aAAa;QACtD,IAAI,CAACvD,YAAY,CAACC,UAAU,OAAO;QACnC,OAAO,IAjDUF,aAiDOC,UAAUC;IACpC;WAlDmBF"}
|
package/dist/cjs/constants.js
CHANGED
|
@@ -10,14 +10,14 @@ Object.defineProperty(exports, "default", {
|
|
|
10
10
|
});
|
|
11
11
|
var _path = /*#__PURE__*/ _interop_require_default(require("path"));
|
|
12
12
|
var _url = /*#__PURE__*/ _interop_require_default(require("url"));
|
|
13
|
-
var
|
|
13
|
+
var _modulerootsync = /*#__PURE__*/ _interop_require_default(require("module-root-sync"));
|
|
14
14
|
function _interop_require_default(obj) {
|
|
15
15
|
return obj && obj.__esModule ? obj : {
|
|
16
16
|
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,
|
|
20
|
+
var root = (0, _modulerootsync.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":["/Users/kevin/Dev/OpenSource/node-version/node-semvers/src/constants.ts"],"sourcesContent":["import path from 'path';\nimport url from 'url';\
|
|
1
|
+
{"version":3,"sources":["/Users/kevin/Dev/OpenSource/node-version/node-semvers/src/constants.ts"],"sourcesContent":["import path from 'path';\nimport url from 'url';\nimport moduleRoot from 'module-root-sync';\n\nconst __dirname = path.dirname(typeof __filename !== 'undefined' ? __filename : url.fileURLToPath(import.meta.url));\nconst root = moduleRoot(__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","moduleRoot","CACHE_DIRECTORY","resolve","join","DISTS_URL","SCHEDULES_URL"],"mappings":";;;;+BAOA;;;eAAA;;;2DAPiB;0DACD;qEACO;;;;;;AAEvB,IAAMA,YAAYC,aAAI,CAACC,OAAO,CAAC,OAAOC,eAAe,cAAcA,aAAaC,YAAG,CAACC,aAAa,CAAC;AAClG,IAAMC,OAAOC,IAAAA,uBAAU,EAACP;IAExB,WAAe;IACbQ,iBAAiBP,aAAI,CAACQ,OAAO,CAACR,aAAI,CAACS,IAAI,CAACJ,MAAM;IAC9CK,WAAW;IACXC,eAAe;AACjB"}
|
|
@@ -1,6 +1,4 @@
|
|
|
1
1
|
import Cache from 'fetch-json-cache';
|
|
2
|
-
// biome-ignore lint/suspicious/noShadowRestrictedNames: <explanation>
|
|
3
|
-
import Promise from 'pinkie-promise';
|
|
4
2
|
import semver from 'semver';
|
|
5
3
|
import constants from './constants.mjs';
|
|
6
4
|
import { major, minor } from './lib/keyFunctions.mjs';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["/Users/kevin/Dev/OpenSource/node-version/node-semvers/src/NodeVersions.ts"],"sourcesContent":["import Cache from 'fetch-json-cache';\
|
|
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 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","Promise","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/constants.mjs
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import path from 'path';
|
|
2
2
|
import url from 'url';
|
|
3
|
-
import
|
|
3
|
+
import moduleRoot from 'module-root-sync';
|
|
4
4
|
const __dirname = path.dirname(typeof __filename !== 'undefined' ? __filename : url.fileURLToPath(import.meta.url));
|
|
5
|
-
const root =
|
|
5
|
+
const root = moduleRoot(__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":["/Users/kevin/Dev/OpenSource/node-version/node-semvers/src/constants.ts"],"sourcesContent":["import path from 'path';\nimport url from 'url';\
|
|
1
|
+
{"version":3,"sources":["/Users/kevin/Dev/OpenSource/node-version/node-semvers/src/constants.ts"],"sourcesContent":["import path from 'path';\nimport url from 'url';\nimport moduleRoot from 'module-root-sync';\n\nconst __dirname = path.dirname(typeof __filename !== 'undefined' ? __filename : url.fileURLToPath(import.meta.url));\nconst root = moduleRoot(__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","moduleRoot","__dirname","dirname","__filename","fileURLToPath","root","CACHE_DIRECTORY","resolve","join","DISTS_URL","SCHEDULES_URL"],"mappings":"AAAA,OAAOA,UAAU,OAAO;AACxB,OAAOC,SAAS,MAAM;AACtB,OAAOC,gBAAgB,mBAAmB;AAE1C,MAAMC,YAAYH,KAAKI,OAAO,CAAC,OAAOC,eAAe,cAAcA,aAAaJ,IAAIK,aAAa,CAAC,YAAYL,GAAG;AACjH,MAAMM,OAAOL,WAAWC;AAExB,eAAe;IACbK,iBAAiBR,KAAKS,OAAO,CAACT,KAAKU,IAAI,CAACH,MAAM;IAC9CI,WAAW;IACXC,eAAe;AACjB,EAAE"}
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import Promise from 'pinkie-promise';
|
|
2
1
|
import type { LoadError, LoadOptions, ResolveOptions, Schedule, ScheduleRaw, Version, VersionRaw } from './types.js';
|
|
3
2
|
export type LoadCallback = (error?: LoadError, semvers?: NodeVersions) => void;
|
|
4
3
|
export default class NodeVersions {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "node-semvers",
|
|
3
|
-
"version": "1.2.
|
|
3
|
+
"version": "1.2.7",
|
|
4
4
|
"description": "Utilities for managing versions of node including looking up codenames",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"node",
|
|
@@ -50,9 +50,9 @@
|
|
|
50
50
|
"dependencies": {
|
|
51
51
|
"exit": "^0.1.2",
|
|
52
52
|
"fetch-json-cache": "^1.2.3",
|
|
53
|
-
"fs-exists-sync": "^0.1.0",
|
|
54
53
|
"getopts-compat": "^2.2.5",
|
|
55
54
|
"isarray": "^2.0.5",
|
|
55
|
+
"module-root-sync": "^0.1.1",
|
|
56
56
|
"pinkie-promise": "^2.0.1",
|
|
57
57
|
"semver": "^5.7.1"
|
|
58
58
|
},
|
|
@@ -68,7 +68,7 @@
|
|
|
68
68
|
"rimraf2": "^2.8.2",
|
|
69
69
|
"rollup": "^4.29.1",
|
|
70
70
|
"rollup-plugin-node-externals": "^8.0.0",
|
|
71
|
-
"ts-swc-rollup-plugin": "^1.6.
|
|
71
|
+
"ts-swc-rollup-plugin": "^1.6.5"
|
|
72
72
|
},
|
|
73
73
|
"engines": {
|
|
74
74
|
"node": ">=0.8"
|
|
@@ -12,7 +12,7 @@ tsconfig.config.compilerOptions.target = 'ES4';
|
|
|
12
12
|
|
|
13
13
|
export default {
|
|
14
14
|
output: {
|
|
15
|
-
format: '
|
|
15
|
+
format: 'cjs',
|
|
16
16
|
name: 'tsdsBuild',
|
|
17
17
|
},
|
|
18
18
|
plugins: [commonjs({ extensions: '.cts' }), externals({ deps: false, devDeps: false, builtinsPrefix: 'strip' }), swc({ tsconfig })],
|
|
@@ -1,26 +0,0 @@
|
|
|
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 packageRoot;
|
|
9
|
-
}
|
|
10
|
-
});
|
|
11
|
-
var _fs = /*#__PURE__*/ _interop_require_default(require("fs"));
|
|
12
|
-
var _path = /*#__PURE__*/ _interop_require_default(require("path"));
|
|
13
|
-
var _fsexistssync = /*#__PURE__*/ _interop_require_default(require("fs-exists-sync"));
|
|
14
|
-
function _interop_require_default(obj) {
|
|
15
|
-
return obj && obj.__esModule ? obj : {
|
|
16
|
-
default: obj
|
|
17
|
-
};
|
|
18
|
-
}
|
|
19
|
-
function packageRoot(dir) {
|
|
20
|
-
var packagePath = _path.default.join(dir, 'package.json');
|
|
21
|
-
if ((0, _fsexistssync.default)(packagePath) && JSON.parse(_fs.default.readFileSync(packagePath, 'utf8')).name) return dir;
|
|
22
|
-
var nextDir = _path.default.dirname(dir);
|
|
23
|
-
if (nextDir === dir) throw new Error('Package root not found');
|
|
24
|
-
return packageRoot(nextDir);
|
|
25
|
-
}
|
|
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 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["/Users/kevin/Dev/OpenSource/node-version/node-semvers/src/lib/packageRoot.ts"],"sourcesContent":["import fs from 'fs';\nimport path from 'path';\nimport existsSync from 'fs-exists-sync';\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;mEACM;;;;;;AAER,SAASA,YAAYC,GAAG;IACrC,IAAMC,cAAcC,aAAI,CAACC,IAAI,CAACH,KAAK;IACnC,IAAII,IAAAA,qBAAU,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,10 +0,0 @@
|
|
|
1
|
-
import fs from 'fs';
|
|
2
|
-
import path from 'path';
|
|
3
|
-
import existsSync from 'fs-exists-sync';
|
|
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;
|
|
7
|
-
const nextDir = path.dirname(dir);
|
|
8
|
-
if (nextDir === dir) throw new Error('Package root not found');
|
|
9
|
-
return packageRoot(nextDir);
|
|
10
|
-
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["/Users/kevin/Dev/OpenSource/node-version/node-semvers/src/lib/packageRoot.ts"],"sourcesContent":["import fs from 'fs';\nimport path from 'path';\nimport existsSync from 'fs-exists-sync';\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,iBAAiB;AAExC,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 +0,0 @@
|
|
|
1
|
-
export default function packageRoot(dir: any): any;
|