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 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().then((semvers) => {
31
- const versions = semvers.resolve('10.0.0 || ~12.0.0');
32
- assert.deepEqual(versions, ['v10.0.0', 'v12.0.0']);
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
  ```
@@ -1,46 +1,37 @@
1
- (function (global, factory) {
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
- var _documentCurrentScript = typeof document !== 'undefined' ? document.currentScript : null;
8
- function packageRoot(dir) {
9
- var packagePath = path.join(dir, 'package.json');
10
- if (existsSync(packagePath) && JSON.parse(fs.readFileSync(packagePath, 'utf8')).name) return dir;
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
- 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))));
17
- var root = packageRoot(__dirname);
18
- var constants = {
19
- CACHE_DIRECTORY: path.resolve(path.join(root, '.cache')),
20
- DISTS_URL: 'https://nodejs.org/dist/index.json',
21
- SCHEDULES_URL: 'https://raw.githubusercontent.com/nodejs/Release/master/schedule.json'
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
- function postinstall() {
25
- var cacheJSON = function cacheJSON(callback) {
26
- cache.get(constants.DISTS_URL, {
27
- force: true
28
- }, function(err) {
29
- err ? callback(err) : cache.get(constants.SCHEDULES_URL, {
30
- force: true
31
- }, callback);
32
- });
33
- };
34
- var cache = new Cache(constants.CACHE_DIRECTORY);
35
- cacheJSON(function(err) {
36
- if (err) {
37
- console.log("Failed to cache dists and schedules. Error: ".concat(err.message));
38
- return process.exit(err.code || -1);
39
- }
40
- process.exit(0);
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
- return postinstall;
45
-
46
- }));
37
+ module.exports = postinstall;
@@ -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 _pinkiepromise.default(function(resolve, reject) {
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';\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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"}
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":"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"}
@@ -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 _packageRoot = /*#__PURE__*/ _interop_require_default(require("./lib/packageRoot.js"));
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, _packageRoot.default)(__dirname);
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';\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"}
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';\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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"}
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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"}
@@ -1,8 +1,8 @@
1
1
  import path from 'path';
2
2
  import url from 'url';
3
- import packageRoot from './lib/packageRoot.mjs';
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 = packageRoot(__dirname);
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';\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"}
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.6",
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.4"
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: 'umd',
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;