node-semvers 0.6.11 → 1.1.0

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.
Files changed (117) hide show
  1. package/dist/cjs/NodeVersions.js +125 -0
  2. package/dist/cjs/NodeVersions.js.map +1 -0
  3. package/dist/cjs/{scripts/cache.js → assets/postinstall.js} +5 -10
  4. package/dist/cjs/assets/postinstall.js.map +1 -0
  5. package/dist/cjs/cli.js +24 -29
  6. package/dist/cjs/cli.js.map +1 -1
  7. package/dist/cjs/constants.js +24 -11
  8. package/dist/cjs/constants.js.map +1 -1
  9. package/dist/cjs/index.js +26 -99
  10. package/dist/cjs/index.js.map +1 -1
  11. package/dist/cjs/lib/isNaN.js +16 -0
  12. package/dist/cjs/lib/isNaN.js.map +1 -0
  13. package/dist/cjs/lib/keyFunctions.js +25 -0
  14. package/dist/cjs/lib/keyFunctions.js.map +1 -0
  15. package/dist/cjs/lib/lineFunctions.js +27 -0
  16. package/dist/cjs/lib/lineFunctions.js.map +1 -0
  17. package/dist/cjs/lib/match.js +17 -0
  18. package/dist/cjs/lib/match.js.map +1 -0
  19. package/dist/cjs/lib/normalizeSchedule.js +24 -0
  20. package/dist/cjs/lib/normalizeSchedule.js.map +1 -0
  21. package/dist/cjs/lib/normalizeVersion.js +35 -0
  22. package/dist/cjs/lib/normalizeVersion.js.map +1 -0
  23. package/dist/cjs/lib/packageRoot.js +23 -0
  24. package/dist/cjs/lib/packageRoot.js.map +1 -0
  25. package/dist/cjs/parseExpression/index.js +35 -26
  26. package/dist/cjs/parseExpression/index.js.map +1 -1
  27. package/dist/cjs/parseExpression/isLTSFn.js +12 -8
  28. package/dist/cjs/parseExpression/isLTSFn.js.map +1 -1
  29. package/dist/cjs/parseExpression/isLatestFn.js +12 -8
  30. package/dist/cjs/parseExpression/isLatestFn.js.map +1 -1
  31. package/dist/cjs/parseExpression/schedulesForEach.js +12 -8
  32. package/dist/cjs/parseExpression/schedulesForEach.js.map +1 -1
  33. package/dist/cjs/parseExpression/schedulesLatest.js +19 -10
  34. package/dist/cjs/parseExpression/schedulesLatest.js.map +1 -1
  35. package/dist/cjs/types.js +5 -0
  36. package/dist/cjs/types.js.map +1 -0
  37. package/dist/esm/NodeVersions.mjs +97 -0
  38. package/dist/esm/NodeVersions.mjs.map +1 -0
  39. package/dist/esm/assets/postinstall.mjs +23 -0
  40. package/dist/esm/assets/postinstall.mjs.map +1 -0
  41. package/dist/esm/cli.mjs +64 -0
  42. package/dist/esm/cli.mjs.map +1 -0
  43. package/dist/esm/constants.mjs +10 -0
  44. package/dist/esm/constants.mjs.map +1 -0
  45. package/dist/esm/index.mjs +2 -0
  46. package/dist/esm/index.mjs.map +1 -0
  47. package/dist/esm/lib/isNaN.mjs +5 -0
  48. package/dist/esm/lib/isNaN.mjs.map +1 -0
  49. package/dist/esm/lib/keyFunctions.mjs +6 -0
  50. package/dist/esm/lib/keyFunctions.mjs.map +1 -0
  51. package/dist/esm/lib/lineFunctions.mjs +8 -0
  52. package/dist/esm/lib/lineFunctions.mjs.map +1 -0
  53. package/dist/esm/lib/match.mjs +6 -0
  54. package/dist/esm/lib/match.mjs.map +1 -0
  55. package/dist/esm/lib/normalizeSchedule.mjs +13 -0
  56. package/dist/esm/lib/normalizeSchedule.mjs.map +1 -0
  57. package/dist/esm/lib/normalizeVersion.mjs +24 -0
  58. package/dist/esm/lib/normalizeVersion.mjs.map +1 -0
  59. package/dist/esm/lib/packageRoot.mjs +7 -0
  60. package/dist/esm/lib/packageRoot.mjs.map +1 -0
  61. package/dist/esm/package.json +1 -0
  62. package/dist/esm/parseExpression/index.mjs +46 -0
  63. package/dist/esm/parseExpression/index.mjs.map +1 -0
  64. package/dist/esm/parseExpression/isLTSFn.mjs +5 -0
  65. package/dist/esm/parseExpression/isLTSFn.mjs.map +1 -0
  66. package/dist/esm/parseExpression/isLatestFn.mjs +5 -0
  67. package/dist/esm/parseExpression/isLatestFn.mjs.map +1 -0
  68. package/dist/esm/parseExpression/schedulesForEach.mjs +6 -0
  69. package/dist/esm/parseExpression/schedulesForEach.mjs.map +1 -0
  70. package/dist/esm/parseExpression/schedulesLatest.mjs +8 -0
  71. package/dist/esm/parseExpression/schedulesLatest.mjs.map +1 -0
  72. package/dist/esm/types.mjs +1 -0
  73. package/dist/esm/types.mjs.map +1 -0
  74. package/dist/types/NodeVersions.d.ts +9 -0
  75. package/dist/types/assets/postinstall.d.ts +2 -0
  76. package/dist/types/cli.d.ts +1 -1
  77. package/dist/types/constants.d.ts +6 -3
  78. package/dist/types/index.d.ts +2 -26
  79. package/dist/types/lib/isNaN.d.ts +1 -0
  80. package/dist/types/lib/keyFunctions.d.ts +2 -0
  81. package/dist/types/lib/lineFunctions.d.ts +2 -0
  82. package/dist/types/lib/match.d.ts +1 -0
  83. package/dist/types/lib/normalizeSchedule.d.ts +2 -0
  84. package/dist/types/lib/normalizeVersion.d.ts +2 -0
  85. package/dist/types/lib/packageRoot.d.ts +1 -0
  86. package/dist/types/parseExpression/index.d.ts +1 -2
  87. package/dist/types/parseExpression/isLTSFn.d.ts +1 -2
  88. package/dist/types/parseExpression/isLatestFn.d.ts +1 -2
  89. package/dist/types/parseExpression/schedulesForEach.d.ts +1 -2
  90. package/dist/types/parseExpression/schedulesLatest.d.ts +1 -2
  91. package/dist/types/types.d.ts +45 -0
  92. package/package.json +32 -15
  93. package/scripts/assets.js +19 -0
  94. package/scripts/postinstall.cjs +3 -0
  95. package/scripts/rollup.config.mjs +19 -0
  96. package/dist/cjs/isNaN.js +0 -12
  97. package/dist/cjs/isNaN.js.map +0 -1
  98. package/dist/cjs/keyFunctions.js +0 -13
  99. package/dist/cjs/keyFunctions.js.map +0 -1
  100. package/dist/cjs/lineFunctions.js +0 -15
  101. package/dist/cjs/lineFunctions.js.map +0 -1
  102. package/dist/cjs/match.js +0 -13
  103. package/dist/cjs/match.js.map +0 -1
  104. package/dist/cjs/normalizeSchedule.js +0 -20
  105. package/dist/cjs/normalizeSchedule.js.map +0 -1
  106. package/dist/cjs/normalizeVersion.js +0 -31
  107. package/dist/cjs/normalizeVersion.js.map +0 -1
  108. package/dist/cjs/scripts/cache.js.map +0 -1
  109. package/dist/types/isNaN.d.ts +0 -2
  110. package/dist/types/keyFunctions.d.ts +0 -2
  111. package/dist/types/lineFunctions.d.ts +0 -2
  112. package/dist/types/match.d.ts +0 -2
  113. package/dist/types/normalizeSchedule.d.ts +0 -6
  114. package/dist/types/normalizeVersion.d.ts +0 -12
  115. package/dist/types/scripts/cache.d.ts +0 -2
  116. package/scripts/cache.js +0 -3
  117. /package/bin/{cli.js → cli.cjs} +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["match.ts"],"sourcesContent":["export default function match(test, query) {\n for (const key in query) {\n if (test[key] !== query[key]) return false;\n }\n return true;\n}\n"],"names":["match","test","query","key"],"mappings":";;;;+BAAA;;;eAAwBA;;;AAAT,SAASA,MAAMC,IAAI,EAAEC,KAAK;IACvC,IAAK,IAAMC,OAAOD,MAAO;QACvB,IAAID,IAAI,CAACE,IAAI,KAAKD,KAAK,CAACC,IAAI,EAAE,OAAO;IACvC;IACA,OAAO;AACT"}
@@ -0,0 +1,24 @@
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 normalizeSchedule;
9
+ }
10
+ });
11
+ function normalizeSchedule(name, raw) {
12
+ var schedule = {
13
+ name: name,
14
+ semver: name.slice(1),
15
+ raw: raw
16
+ };
17
+ schedule.start = new Date(raw.start);
18
+ schedule.end = new Date(raw.end);
19
+ if (raw.codename) schedule.codename = raw.codename.toLowerCase();
20
+ if (raw.lts) schedule.lts = new Date(raw.lts);
21
+ if (raw.maintenance) schedule.maintenance = new Date(raw.maintenance);
22
+ return schedule;
23
+ }
24
+ /* 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":["normalizeSchedule.ts"],"sourcesContent":["import type { Schedule, ScheduleRaw } from '../types.js';\n\nexport default function normalizeSchedule(name: string, raw: ScheduleRaw): Schedule {\n const schedule = {\n name,\n semver: name.slice(1),\n raw,\n } as unknown as Schedule;\n\n schedule.start = new Date(raw.start);\n schedule.end = new Date(raw.end);\n if (raw.codename) schedule.codename = raw.codename.toLowerCase();\n if (raw.lts) schedule.lts = new Date(raw.lts);\n if (raw.maintenance) schedule.maintenance = new Date(raw.maintenance);\n\n return schedule;\n}\n"],"names":["normalizeSchedule","name","raw","schedule","semver","slice","start","Date","end","codename","toLowerCase","lts","maintenance"],"mappings":";;;;+BAEA;;;eAAwBA;;;AAAT,SAASA,kBAAkBC,IAAY,EAAEC,GAAgB;IACtE,IAAMC,WAAW;QACfF,MAAAA;QACAG,QAAQH,KAAKI,KAAK,CAAC;QACnBH,KAAAA;IACF;IAEAC,SAASG,KAAK,GAAG,IAAIC,KAAKL,IAAII,KAAK;IACnCH,SAASK,GAAG,GAAG,IAAID,KAAKL,IAAIM,GAAG;IAC/B,IAAIN,IAAIO,QAAQ,EAAEN,SAASM,QAAQ,GAAGP,IAAIO,QAAQ,CAACC,WAAW;IAC9D,IAAIR,IAAIS,GAAG,EAAER,SAASQ,GAAG,GAAG,IAAIJ,KAAKL,IAAIS,GAAG;IAC5C,IAAIT,IAAIU,WAAW,EAAET,SAASS,WAAW,GAAG,IAAIL,KAAKL,IAAIU,WAAW;IAEpE,OAAOT;AACT"}
@@ -0,0 +1,35 @@
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 normalizeVersion;
9
+ }
10
+ });
11
+ function normalizeVersion(raw, schedules) {
12
+ var parts = raw.version.substr(1).split('.');
13
+ var version = {
14
+ version: raw.version,
15
+ name: parts[0] !== '0' ? "v".concat(+parts[0]) : "v".concat(+parts[0], ".").concat(+parts[1]),
16
+ semver: "".concat(parts[0], ".").concat(+parts[1], ".").concat(+parts[2]),
17
+ major: +parts[0],
18
+ minor: +parts[1],
19
+ patch: +parts[2],
20
+ lts: raw.lts,
21
+ date: new Date(raw.date),
22
+ raw: raw
23
+ };
24
+ var schedule = null;
25
+ for(var index = 0; index < schedules.length; index++){
26
+ var test = schedules[index];
27
+ if (test.name === version.name) {
28
+ schedule = test;
29
+ break;
30
+ }
31
+ }
32
+ if (schedule && raw.lts) version.codename = schedule.codename;
33
+ return version;
34
+ }
35
+ /* 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":["normalizeVersion.ts"],"sourcesContent":["import type { Schedule, Version, VersionRaw } from '../types.js';\n\nexport default function normalizeVersion(raw: VersionRaw, schedules: Schedule[]): Version {\n const parts = raw.version.substr(1).split('.');\n\n const version = {\n version: raw.version,\n name: parts[0] !== '0' ? `v${+parts[0]}` : `v${+parts[0]}.${+parts[1]}`,\n semver: `${parts[0]}.${+parts[1]}.${+parts[2]}`,\n major: +parts[0],\n minor: +parts[1],\n patch: +parts[2],\n lts: raw.lts,\n date: new Date(raw.date),\n raw: raw,\n } as Version;\n\n let schedule = null;\n for (let index = 0; index < schedules.length; index++) {\n const test = schedules[index];\n if (test.name === version.name) {\n schedule = test;\n break;\n }\n }\n if (schedule && raw.lts) version.codename = schedule.codename;\n return version;\n}\n"],"names":["normalizeVersion","raw","schedules","parts","version","substr","split","name","semver","major","minor","patch","lts","date","Date","schedule","index","length","test","codename"],"mappings":";;;;+BAEA;;;eAAwBA;;;AAAT,SAASA,iBAAiBC,GAAe,EAAEC,SAAqB;IAC7E,IAAMC,QAAQF,IAAIG,OAAO,CAACC,MAAM,CAAC,GAAGC,KAAK,CAAC;IAE1C,IAAMF,UAAU;QACdA,SAASH,IAAIG,OAAO;QACpBG,MAAMJ,KAAK,CAAC,EAAE,KAAK,MAAM,AAAC,IAAa,OAAV,CAACA,KAAK,CAAC,EAAE,IAAK,AAAC,IAAgB,OAAb,CAACA,KAAK,CAAC,EAAE,EAAC,KAAa,OAAV,CAACA,KAAK,CAAC,EAAE;QACrEK,QAAQ,AAAC,GAAc,OAAZL,KAAK,CAAC,EAAE,EAAC,KAAgB,OAAb,CAACA,KAAK,CAAC,EAAE,EAAC,KAAa,OAAV,CAACA,KAAK,CAAC,EAAE;QAC7CM,OAAO,CAACN,KAAK,CAAC,EAAE;QAChBO,OAAO,CAACP,KAAK,CAAC,EAAE;QAChBQ,OAAO,CAACR,KAAK,CAAC,EAAE;QAChBS,KAAKX,IAAIW,GAAG;QACZC,MAAM,IAAIC,KAAKb,IAAIY,IAAI;QACvBZ,KAAKA;IACP;IAEA,IAAIc,WAAW;IACf,IAAK,IAAIC,QAAQ,GAAGA,QAAQd,UAAUe,MAAM,EAAED,QAAS;QACrD,IAAME,OAAOhB,SAAS,CAACc,MAAM;QAC7B,IAAIE,KAAKX,IAAI,KAAKH,QAAQG,IAAI,EAAE;YAC9BQ,WAAWG;YACX;QACF;IACF;IACA,IAAIH,YAAYd,IAAIW,GAAG,EAAER,QAAQe,QAAQ,GAAGJ,SAASI,QAAQ;IAC7D,OAAOf;AACT"}
@@ -0,0 +1,23 @@
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 _path = /*#__PURE__*/ _interop_require_default(require("path"));
12
+ function _interop_require_default(obj) {
13
+ return obj && obj.__esModule ? obj : {
14
+ default: obj
15
+ };
16
+ }
17
+ function packageRoot(dir, packageName) {
18
+ if (_path.default.basename(dir) === packageName) return dir;
19
+ var nextDir = _path.default.dirname(dir);
20
+ if (nextDir === dir) throw new Error("".concat(packageName, " not found"));
21
+ return packageRoot(nextDir, packageName);
22
+ }
23
+ /* 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":["packageRoot.ts"],"sourcesContent":["import path from 'path';\n\nexport default function packageRoot(dir, packageName) {\n if (path.basename(dir) === packageName) return dir;\n const nextDir = path.dirname(dir);\n if (nextDir === dir) throw new Error(`${packageName} not found`);\n return packageRoot(nextDir, packageName);\n}\n"],"names":["packageRoot","dir","packageName","path","basename","nextDir","dirname","Error"],"mappings":";;;;+BAEA;;;eAAwBA;;;2DAFP;;;;;;AAEF,SAASA,YAAYC,GAAG,EAAEC,WAAW;IAClD,IAAIC,aAAI,CAACC,QAAQ,CAACH,SAASC,aAAa,OAAOD;IAC/C,IAAMI,UAAUF,aAAI,CAACG,OAAO,CAACL;IAC7B,IAAII,YAAYJ,KAAK,MAAM,IAAIM,MAAM,AAAC,GAAc,OAAZL,aAAY;IACpD,OAAOF,YAAYK,SAASH;AAC9B"}
@@ -1,42 +1,56 @@
1
1
  // biome-ignore lint/suspicious/noShadowRestrictedNames: <explanation>
2
2
  "use strict";
3
- var isNaN = require("../isNaN");
4
- var isLTSFn = require("./isLTSFn");
5
- var isLatestFn = require("./isLatestFn");
6
- var schedulesLatest = require("./schedulesLatest");
7
- module.exports = function parseExpression(expression, now) {
8
- if (expression[0] === "v" && !isNaN(+expression.substr(1, 1))) expression = expression.substr(1);
9
- if (expression.substr(0, 4) === "lts/") expression = expression.substr(4) === "*" ? "lts" : expression.substr(4);
10
- if (expression === "stable") expression = "lts";
11
- if (typeof expression === "number") return {
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ Object.defineProperty(exports, "default", {
7
+ enumerable: true,
8
+ get: function() {
9
+ return parseExpression;
10
+ }
11
+ });
12
+ var _isNaN = /*#__PURE__*/ _interop_require_default(require("../lib/isNaN.js"));
13
+ var _isLTSFn = /*#__PURE__*/ _interop_require_default(require("./isLTSFn.js"));
14
+ var _isLatestFn = /*#__PURE__*/ _interop_require_default(require("./isLatestFn.js"));
15
+ var _schedulesLatest = /*#__PURE__*/ _interop_require_default(require("./schedulesLatest.js"));
16
+ function _interop_require_default(obj) {
17
+ return obj && obj.__esModule ? obj : {
18
+ default: obj
19
+ };
20
+ }
21
+ function parseExpression(expression, now) {
22
+ if (expression[0] === 'v' && !(0, _isNaN.default)(+expression.substr(1, 1))) expression = expression.substr(1);
23
+ if (expression.substr(0, 4) === 'lts/') expression = expression.substr(4) === '*' ? 'lts' : expression.substr(4);
24
+ if (expression === 'stable') expression = 'lts';
25
+ if (typeof expression === 'number') return {
12
26
  major: expression
13
27
  };
14
- if (~expression.indexOf(".")) {
15
- var parts = expression.split(".");
16
- if (parts.length === 1) return isNaN(+parts[0]) ? null : {
28
+ if (~expression.indexOf('.')) {
29
+ var parts = expression.split('.');
30
+ if (parts.length === 1) return (0, _isNaN.default)(+parts[0]) ? null : {
17
31
  major: +parts[0]
18
32
  };
19
- if (parts.length === 2) return isNaN(+parts[0]) && isNaN(+parts[1]) ? null : {
33
+ if (parts.length === 2) return (0, _isNaN.default)(+parts[0]) && (0, _isNaN.default)(+parts[1]) ? null : {
20
34
  major: +parts[0],
21
35
  minor: +parts[1]
22
36
  };
23
- return isNaN(+parts[0]) && isNaN(+parts[1]) && isNaN(+parts[2]) ? null : {
37
+ return (0, _isNaN.default)(+parts[0]) && (0, _isNaN.default)(+parts[1]) && (0, _isNaN.default)(+parts[2]) ? null : {
24
38
  major: +parts[0],
25
39
  minor: +parts[1],
26
40
  patch: +parts[2]
27
41
  };
28
42
  }
29
- if (!isNaN(+expression)) return {
43
+ if (!(0, _isNaN.default)(+expression)) return {
30
44
  major: +expression
31
45
  };
32
- if (expression === "lts") {
33
- var lts = schedulesLatest(this.schedules, isLTSFn(now));
46
+ if (expression === 'lts') {
47
+ var lts = (0, _schedulesLatest.default)(this.schedules, (0, _isLTSFn.default)(now));
34
48
  return lts ? {
35
49
  name: lts.name
36
50
  } : null;
37
51
  }
38
- if (expression === "latest") {
39
- var latest = schedulesLatest(this.schedules, isLatestFn(now));
52
+ if (expression === 'latest') {
53
+ var latest = (0, _schedulesLatest.default)(this.schedules, (0, _isLatestFn.default)(now));
40
54
  return latest ? {
41
55
  name: latest.name
42
56
  } : null;
@@ -44,10 +58,5 @@ module.exports = function parseExpression(expression, now) {
44
58
  return {
45
59
  codename: expression.toLowerCase()
46
60
  };
47
- };
48
-
49
- if ((typeof exports.default === 'function' || (typeof exports.default === 'object' && exports.default !== null)) && typeof exports.default.__esModule === 'undefined') {
50
- Object.defineProperty(exports.default, '__esModule', { value: true });
51
- for (var key in exports) exports.default[key] = exports[key];
52
- module.exports = exports.default;
53
- }
61
+ }
62
+ /* 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":["index.js"],"sourcesContent":["// biome-ignore lint/suspicious/noShadowRestrictedNames: <explanation>\nconst isNaN = require('../isNaN');\nconst isLTSFn = require('./isLTSFn');\nconst isLatestFn = require('./isLatestFn');\nconst schedulesLatest = require('./schedulesLatest');\n\nmodule.exports = function parseExpression(expression, now) {\n if (expression[0] === 'v' && !isNaN(+expression.substr(1, 1))) expression = expression.substr(1);\n if (expression.substr(0, 4) === 'lts/') expression = expression.substr(4) === '*' ? 'lts' : expression.substr(4);\n if (expression === 'stable') expression = 'lts';\n\n if (typeof expression === 'number') return { major: expression };\n if (~expression.indexOf('.')) {\n const parts = expression.split('.');\n if (parts.length === 1) return isNaN(+parts[0]) ? null : { major: +parts[0] };\n if (parts.length === 2) return isNaN(+parts[0]) && isNaN(+parts[1]) ? null : { major: +parts[0], minor: +parts[1] };\n return isNaN(+parts[0]) && isNaN(+parts[1]) && isNaN(+parts[2]) ? null : { major: +parts[0], minor: +parts[1], patch: +parts[2] };\n }\n if (!isNaN(+expression)) return { major: +expression };\n if (expression === 'lts') {\n const lts = schedulesLatest(this.schedules, isLTSFn(now));\n return lts ? { name: lts.name } : null;\n }\n if (expression === 'latest') {\n const latest = schedulesLatest(this.schedules, isLatestFn(now));\n return latest ? { name: latest.name } : null;\n }\n return { codename: expression.toLowerCase() };\n};\n"],"names":["isNaN","require","isLTSFn","isLatestFn","schedulesLatest","module","exports","parseExpression","expression","now","substr","major","indexOf","parts","split","length","minor","patch","lts","schedules","name","latest","codename","toLowerCase"],"mappings":"AAAA,sEAAsE;;AACtE,IAAMA,QAAQC,QAAQ;AACtB,IAAMC,UAAUD,QAAQ;AACxB,IAAME,aAAaF,QAAQ;AAC3B,IAAMG,kBAAkBH,QAAQ;AAEhCI,OAAOC,OAAO,GAAG,SAASC,gBAAgBC,UAAU,EAAEC,GAAG;IACvD,IAAID,UAAU,CAAC,EAAE,KAAK,OAAO,CAACR,MAAM,CAACQ,WAAWE,MAAM,CAAC,GAAG,KAAKF,aAAaA,WAAWE,MAAM,CAAC;IAC9F,IAAIF,WAAWE,MAAM,CAAC,GAAG,OAAO,QAAQF,aAAaA,WAAWE,MAAM,CAAC,OAAO,MAAM,QAAQF,WAAWE,MAAM,CAAC;IAC9G,IAAIF,eAAe,UAAUA,aAAa;IAE1C,IAAI,OAAOA,eAAe,UAAU,OAAO;QAAEG,OAAOH;IAAW;IAC/D,IAAI,CAACA,WAAWI,OAAO,CAAC,MAAM;QAC5B,IAAMC,QAAQL,WAAWM,KAAK,CAAC;QAC/B,IAAID,MAAME,MAAM,KAAK,GAAG,OAAOf,MAAM,CAACa,KAAK,CAAC,EAAE,IAAI,OAAO;YAAEF,OAAO,CAACE,KAAK,CAAC,EAAE;QAAC;QAC5E,IAAIA,MAAME,MAAM,KAAK,GAAG,OAAOf,MAAM,CAACa,KAAK,CAAC,EAAE,KAAKb,MAAM,CAACa,KAAK,CAAC,EAAE,IAAI,OAAO;YAAEF,OAAO,CAACE,KAAK,CAAC,EAAE;YAAEG,OAAO,CAACH,KAAK,CAAC,EAAE;QAAC;QAClH,OAAOb,MAAM,CAACa,KAAK,CAAC,EAAE,KAAKb,MAAM,CAACa,KAAK,CAAC,EAAE,KAAKb,MAAM,CAACa,KAAK,CAAC,EAAE,IAAI,OAAO;YAAEF,OAAO,CAACE,KAAK,CAAC,EAAE;YAAEG,OAAO,CAACH,KAAK,CAAC,EAAE;YAAEI,OAAO,CAACJ,KAAK,CAAC,EAAE;QAAC;IAClI;IACA,IAAI,CAACb,MAAM,CAACQ,aAAa,OAAO;QAAEG,OAAO,CAACH;IAAW;IACrD,IAAIA,eAAe,OAAO;QACxB,IAAMU,MAAMd,gBAAgB,IAAI,CAACe,SAAS,EAAEjB,QAAQO;QACpD,OAAOS,MAAM;YAAEE,MAAMF,IAAIE,IAAI;QAAC,IAAI;IACpC;IACA,IAAIZ,eAAe,UAAU;QAC3B,IAAMa,SAASjB,gBAAgB,IAAI,CAACe,SAAS,EAAEhB,WAAWM;QAC1D,OAAOY,SAAS;YAAED,MAAMC,OAAOD,IAAI;QAAC,IAAI;IAC1C;IACA,OAAO;QAAEE,UAAUd,WAAWe,WAAW;IAAG;AAC9C"}
1
+ {"version":3,"sources":["index.ts"],"sourcesContent":["// biome-ignore lint/suspicious/noShadowRestrictedNames: <explanation>\nimport isNaN from '../lib/isNaN.js';\nimport isLTSFn from './isLTSFn.js';\nimport isLatestFn from './isLatestFn.js';\nimport schedulesLatest from './schedulesLatest.js';\n\nexport default function parseExpression(expression, now) {\n if (expression[0] === 'v' && !isNaN(+expression.substr(1, 1))) expression = expression.substr(1);\n if (expression.substr(0, 4) === 'lts/') expression = expression.substr(4) === '*' ? 'lts' : expression.substr(4);\n if (expression === 'stable') expression = 'lts';\n\n if (typeof expression === 'number') return { major: expression };\n if (~expression.indexOf('.')) {\n const parts = expression.split('.');\n if (parts.length === 1) return isNaN(+parts[0]) ? null : { major: +parts[0] };\n if (parts.length === 2) return isNaN(+parts[0]) && isNaN(+parts[1]) ? null : { major: +parts[0], minor: +parts[1] };\n return isNaN(+parts[0]) && isNaN(+parts[1]) && isNaN(+parts[2]) ? null : { major: +parts[0], minor: +parts[1], patch: +parts[2] };\n }\n if (!isNaN(+expression)) return { major: +expression };\n if (expression === 'lts') {\n const lts = schedulesLatest(this.schedules, isLTSFn(now));\n return lts ? { name: lts.name } : null;\n }\n if (expression === 'latest') {\n const latest = schedulesLatest(this.schedules, isLatestFn(now));\n return latest ? { name: latest.name } : null;\n }\n return { codename: expression.toLowerCase() };\n}\n"],"names":["parseExpression","expression","now","isNaN","substr","major","indexOf","parts","split","length","minor","patch","lts","schedulesLatest","schedules","isLTSFn","name","latest","isLatestFn","codename","toLowerCase"],"mappings":"AAAA,sEAAsE;;;;;+BAMtE;;;eAAwBA;;;4DALN;8DACE;iEACG;sEACK;;;;;;AAEb,SAASA,gBAAgBC,UAAU,EAAEC,GAAG;IACrD,IAAID,UAAU,CAAC,EAAE,KAAK,OAAO,CAACE,IAAAA,cAAK,EAAC,CAACF,WAAWG,MAAM,CAAC,GAAG,KAAKH,aAAaA,WAAWG,MAAM,CAAC;IAC9F,IAAIH,WAAWG,MAAM,CAAC,GAAG,OAAO,QAAQH,aAAaA,WAAWG,MAAM,CAAC,OAAO,MAAM,QAAQH,WAAWG,MAAM,CAAC;IAC9G,IAAIH,eAAe,UAAUA,aAAa;IAE1C,IAAI,OAAOA,eAAe,UAAU,OAAO;QAAEI,OAAOJ;IAAW;IAC/D,IAAI,CAACA,WAAWK,OAAO,CAAC,MAAM;QAC5B,IAAMC,QAAQN,WAAWO,KAAK,CAAC;QAC/B,IAAID,MAAME,MAAM,KAAK,GAAG,OAAON,IAAAA,cAAK,EAAC,CAACI,KAAK,CAAC,EAAE,IAAI,OAAO;YAAEF,OAAO,CAACE,KAAK,CAAC,EAAE;QAAC;QAC5E,IAAIA,MAAME,MAAM,KAAK,GAAG,OAAON,IAAAA,cAAK,EAAC,CAACI,KAAK,CAAC,EAAE,KAAKJ,IAAAA,cAAK,EAAC,CAACI,KAAK,CAAC,EAAE,IAAI,OAAO;YAAEF,OAAO,CAACE,KAAK,CAAC,EAAE;YAAEG,OAAO,CAACH,KAAK,CAAC,EAAE;QAAC;QAClH,OAAOJ,IAAAA,cAAK,EAAC,CAACI,KAAK,CAAC,EAAE,KAAKJ,IAAAA,cAAK,EAAC,CAACI,KAAK,CAAC,EAAE,KAAKJ,IAAAA,cAAK,EAAC,CAACI,KAAK,CAAC,EAAE,IAAI,OAAO;YAAEF,OAAO,CAACE,KAAK,CAAC,EAAE;YAAEG,OAAO,CAACH,KAAK,CAAC,EAAE;YAAEI,OAAO,CAACJ,KAAK,CAAC,EAAE;QAAC;IAClI;IACA,IAAI,CAACJ,IAAAA,cAAK,EAAC,CAACF,aAAa,OAAO;QAAEI,OAAO,CAACJ;IAAW;IACrD,IAAIA,eAAe,OAAO;QACxB,IAAMW,MAAMC,IAAAA,wBAAe,EAAC,IAAI,CAACC,SAAS,EAAEC,IAAAA,gBAAO,EAACb;QACpD,OAAOU,MAAM;YAAEI,MAAMJ,IAAII,IAAI;QAAC,IAAI;IACpC;IACA,IAAIf,eAAe,UAAU;QAC3B,IAAMgB,SAASJ,IAAAA,wBAAe,EAAC,IAAI,CAACC,SAAS,EAAEI,IAAAA,mBAAU,EAAChB;QAC1D,OAAOe,SAAS;YAAED,MAAMC,OAAOD,IAAI;QAAC,IAAI;IAC1C;IACA,OAAO;QAAEG,UAAUlB,WAAWmB,WAAW;IAAG;AAC9C"}
@@ -1,12 +1,16 @@
1
1
  "use strict";
2
- module.exports = function isLTSFn(now) {
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ Object.defineProperty(exports, "default", {
6
+ enumerable: true,
7
+ get: function() {
8
+ return isLTSFn;
9
+ }
10
+ });
11
+ function isLTSFn(now) {
3
12
  return function isLTS(item) {
4
13
  return item.lts && now >= item.start && now <= item.end;
5
14
  };
6
- };
7
-
8
- if ((typeof exports.default === 'function' || (typeof exports.default === 'object' && exports.default !== null)) && typeof exports.default.__esModule === 'undefined') {
9
- Object.defineProperty(exports.default, '__esModule', { value: true });
10
- for (var key in exports) exports.default[key] = exports[key];
11
- module.exports = exports.default;
12
- }
15
+ }
16
+ /* 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":["isLTSFn.js"],"sourcesContent":["module.exports = function isLTSFn(now) {\n return function isLTS(item) {\n return item.lts && now >= item.start && now <= item.end;\n };\n};\n"],"names":["module","exports","isLTSFn","now","isLTS","item","lts","start","end"],"mappings":";AAAAA,OAAOC,OAAO,GAAG,SAASC,QAAQC,GAAG;IACnC,OAAO,SAASC,MAAMC,IAAI;QACxB,OAAOA,KAAKC,GAAG,IAAIH,OAAOE,KAAKE,KAAK,IAAIJ,OAAOE,KAAKG,GAAG;IACzD;AACF"}
1
+ {"version":3,"sources":["isLTSFn.ts"],"sourcesContent":["export default function isLTSFn(now) {\n return function isLTS(item) {\n return item.lts && now >= item.start && now <= item.end;\n };\n}\n"],"names":["isLTSFn","now","isLTS","item","lts","start","end"],"mappings":";;;;+BAAA;;;eAAwBA;;;AAAT,SAASA,QAAQC,GAAG;IACjC,OAAO,SAASC,MAAMC,IAAI;QACxB,OAAOA,KAAKC,GAAG,IAAIH,OAAOE,KAAKE,KAAK,IAAIJ,OAAOE,KAAKG,GAAG;IACzD;AACF"}
@@ -1,12 +1,16 @@
1
1
  "use strict";
2
- module.exports = function isLatestFn(now) {
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ Object.defineProperty(exports, "default", {
6
+ enumerable: true,
7
+ get: function() {
8
+ return isLatestFn;
9
+ }
10
+ });
11
+ function isLatestFn(now) {
3
12
  return function isLatest(item) {
4
13
  return !item.lts && now >= item.start && now <= item.end;
5
14
  };
6
- };
7
-
8
- if ((typeof exports.default === 'function' || (typeof exports.default === 'object' && exports.default !== null)) && typeof exports.default.__esModule === 'undefined') {
9
- Object.defineProperty(exports.default, '__esModule', { value: true });
10
- for (var key in exports) exports.default[key] = exports[key];
11
- module.exports = exports.default;
12
- }
15
+ }
16
+ /* 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":["isLatestFn.js"],"sourcesContent":["module.exports = function isLatestFn(now) {\n return function isLatest(item) {\n return !item.lts && now >= item.start && now <= item.end;\n };\n};\n"],"names":["module","exports","isLatestFn","now","isLatest","item","lts","start","end"],"mappings":";AAAAA,OAAOC,OAAO,GAAG,SAASC,WAAWC,GAAG;IACtC,OAAO,SAASC,SAASC,IAAI;QAC3B,OAAO,CAACA,KAAKC,GAAG,IAAIH,OAAOE,KAAKE,KAAK,IAAIJ,OAAOE,KAAKG,GAAG;IAC1D;AACF"}
1
+ {"version":3,"sources":["isLatestFn.ts"],"sourcesContent":["export default function isLatestFn(now) {\n return function isLatest(item) {\n return !item.lts && now >= item.start && now <= item.end;\n };\n}\n"],"names":["isLatestFn","now","isLatest","item","lts","start","end"],"mappings":";;;;+BAAA;;;eAAwBA;;;AAAT,SAASA,WAAWC,GAAG;IACpC,OAAO,SAASC,SAASC,IAAI;QAC3B,OAAO,CAACA,KAAKC,GAAG,IAAIH,OAAOE,KAAKE,KAAK,IAAIJ,OAAOE,KAAKG,GAAG;IAC1D;AACF"}
@@ -1,13 +1,17 @@
1
1
  "use strict";
2
- module.exports = function schedulesForEach(schedules, filter, fn) {
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ Object.defineProperty(exports, "default", {
6
+ enumerable: true,
7
+ get: function() {
8
+ return schedulesForEach;
9
+ }
10
+ });
11
+ function schedulesForEach(schedules, filter, fn) {
3
12
  for(var index = 0; index < schedules.length; index++){
4
13
  var schedule = schedules[index];
5
14
  !filter(schedule) || fn(schedule);
6
15
  }
7
- };
8
-
9
- if ((typeof exports.default === 'function' || (typeof exports.default === 'object' && exports.default !== null)) && typeof exports.default.__esModule === 'undefined') {
10
- Object.defineProperty(exports.default, '__esModule', { value: true });
11
- for (var key in exports) exports.default[key] = exports[key];
12
- module.exports = exports.default;
13
- }
16
+ }
17
+ /* 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":["schedulesForEach.js"],"sourcesContent":["module.exports = function schedulesForEach(schedules, filter, fn) {\n for (let index = 0; index < schedules.length; index++) {\n const schedule = schedules[index];\n !filter(schedule) || fn(schedule);\n }\n};\n"],"names":["module","exports","schedulesForEach","schedules","filter","fn","index","length","schedule"],"mappings":";AAAAA,OAAOC,OAAO,GAAG,SAASC,iBAAiBC,SAAS,EAAEC,MAAM,EAAEC,EAAE;IAC9D,IAAK,IAAIC,QAAQ,GAAGA,QAAQH,UAAUI,MAAM,EAAED,QAAS;QACrD,IAAME,WAAWL,SAAS,CAACG,MAAM;QACjC,CAACF,OAAOI,aAAaH,GAAGG;IAC1B;AACF"}
1
+ {"version":3,"sources":["schedulesForEach.ts"],"sourcesContent":["export default function schedulesForEach(schedules, filter, fn) {\n for (let index = 0; index < schedules.length; index++) {\n const schedule = schedules[index];\n !filter(schedule) || fn(schedule);\n }\n}\n"],"names":["schedulesForEach","schedules","filter","fn","index","length","schedule"],"mappings":";;;;+BAAA;;;eAAwBA;;;AAAT,SAASA,iBAAiBC,SAAS,EAAEC,MAAM,EAAEC,EAAE;IAC5D,IAAK,IAAIC,QAAQ,GAAGA,QAAQH,UAAUI,MAAM,EAAED,QAAS;QACrD,IAAME,WAAWL,SAAS,CAACG,MAAM;QACjC,CAACF,OAAOI,aAAaH,GAAGG;IAC1B;AACF"}
@@ -1,15 +1,24 @@
1
1
  "use strict";
2
- var schedulesForEach = require("./schedulesForEach");
3
- module.exports = function schedulesLatest(schedules, filter) {
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ Object.defineProperty(exports, "default", {
6
+ enumerable: true,
7
+ get: function() {
8
+ return schedulesLatest;
9
+ }
10
+ });
11
+ var _schedulesForEach = /*#__PURE__*/ _interop_require_default(require("./schedulesForEach.js"));
12
+ function _interop_require_default(obj) {
13
+ return obj && obj.__esModule ? obj : {
14
+ default: obj
15
+ };
16
+ }
17
+ function schedulesLatest(schedules, filter) {
4
18
  var latest = null;
5
- schedulesForEach(schedules, filter, function(schedule) {
19
+ (0, _schedulesForEach.default)(schedules, filter, function(schedule) {
6
20
  if (!latest || latest.start < schedule.start) latest = schedule;
7
21
  });
8
22
  return latest;
9
- };
10
-
11
- if ((typeof exports.default === 'function' || (typeof exports.default === 'object' && exports.default !== null)) && typeof exports.default.__esModule === 'undefined') {
12
- Object.defineProperty(exports.default, '__esModule', { value: true });
13
- for (var key in exports) exports.default[key] = exports[key];
14
- module.exports = exports.default;
15
- }
23
+ }
24
+ /* 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":["schedulesLatest.js"],"sourcesContent":["const schedulesForEach = require('./schedulesForEach');\n\nmodule.exports = function schedulesLatest(schedules, filter) {\n let latest = null;\n schedulesForEach(schedules, filter, (schedule) => {\n if (!latest || latest.start < schedule.start) latest = schedule;\n });\n return latest;\n};\n"],"names":["schedulesForEach","require","module","exports","schedulesLatest","schedules","filter","latest","schedule","start"],"mappings":";AAAA,IAAMA,mBAAmBC,QAAQ;AAEjCC,OAAOC,OAAO,GAAG,SAASC,gBAAgBC,SAAS,EAAEC,MAAM;IACzD,IAAIC,SAAS;IACbP,iBAAiBK,WAAWC,QAAQ,SAACE;QACnC,IAAI,CAACD,UAAUA,OAAOE,KAAK,GAAGD,SAASC,KAAK,EAAEF,SAASC;IACzD;IACA,OAAOD;AACT"}
1
+ {"version":3,"sources":["schedulesLatest.ts"],"sourcesContent":["import schedulesForEach from './schedulesForEach.js';\n\nexport default function schedulesLatest(schedules, filter) {\n let latest = null;\n schedulesForEach(schedules, filter, (schedule) => {\n if (!latest || latest.start < schedule.start) latest = schedule;\n });\n return latest;\n}\n"],"names":["schedulesLatest","schedules","filter","latest","schedulesForEach","schedule","start"],"mappings":";;;;+BAEA;;;eAAwBA;;;uEAFK;;;;;;AAEd,SAASA,gBAAgBC,SAAS,EAAEC,MAAM;IACvD,IAAIC,SAAS;IACbC,IAAAA,yBAAgB,EAACH,WAAWC,QAAQ,SAACG;QACnC,IAAI,CAACF,UAAUA,OAAOG,KAAK,GAAGD,SAASC,KAAK,EAAEH,SAASE;IACzD;IACA,OAAOF;AACT"}
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ /* 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":[],"names":[],"mappings":""}
@@ -0,0 +1,97 @@
1
+ import Cache from 'fetch-json-cache';
2
+ import semver from 'semver';
3
+ import constants from './constants.mjs';
4
+ import { major, minor } from './lib/keyFunctions.mjs';
5
+ import { even, odd } from './lib/lineFunctions.mjs';
6
+ import match from './lib/match.mjs';
7
+ import normalizeSchedule from './lib/normalizeSchedule.mjs';
8
+ import normalizeVersion from './lib/normalizeVersion.mjs';
9
+ import parseExpression from './parseExpression/index.mjs';
10
+ let NodeVersions = class NodeVersions {
11
+ static load(options, callback) {
12
+ if (typeof options === 'function') {
13
+ callback = options;
14
+ options = null;
15
+ }
16
+ if (typeof callback === 'function') {
17
+ options = options || {};
18
+ const cache = new Cache(options.cacheDirectory || constants.CACHE_DIRECTORY);
19
+ cache.get(constants.DISTS_URL, (err, versions)=>{
20
+ if (err) return callback(err);
21
+ cache.get(constants.SCHEDULES_URL, (err, schedule)=>{
22
+ err ? callback(err) : callback(null, new NodeVersions(versions, schedule));
23
+ });
24
+ });
25
+ } else {
26
+ return new Promise((resolve, reject)=>{
27
+ NodeVersions.load(options, function loadCallback(err, NodeVersions) {
28
+ err ? reject(err) : resolve(NodeVersions);
29
+ });
30
+ });
31
+ }
32
+ }
33
+ static loadSync(options) {
34
+ options = options || {};
35
+ const cache = new Cache(options.cacheDirectory || constants.CACHE_DIRECTORY);
36
+ const versions = cache.getSync(constants.DISTS_URL);
37
+ const schedule = cache.getSync(constants.SCHEDULES_URL);
38
+ if (!versions || !schedule) return null;
39
+ return new NodeVersions(versions, schedule);
40
+ }
41
+ resolve(expression, options) {
42
+ options = options || {};
43
+ const path = options.path || 'version';
44
+ // normalize
45
+ if (typeof expression === 'number') expression = `${expression}`;
46
+ if (typeof expression !== 'string') return null;
47
+ expression = expression.trim();
48
+ // single result, try a match
49
+ const query = parseExpression.call(this, expression, options.now || new Date());
50
+ if (query) {
51
+ let version = null;
52
+ for(let index = 0; index < this.versions.length; index++){
53
+ const test = this.versions[index];
54
+ if (options.now && options.now < test.date) continue;
55
+ if (!match(test, query)) continue;
56
+ version = test;
57
+ break;
58
+ }
59
+ if (version) return version[path];
60
+ }
61
+ // filtered expression
62
+ const range = options.range || '';
63
+ const filters = {
64
+ lts: !!~range.indexOf('lts'),
65
+ key: undefined,
66
+ line: undefined
67
+ };
68
+ filters.key = ~range.indexOf('major') ? major : ~range.indexOf('minor') ? minor : undefined;
69
+ filters.line = ~range.indexOf('even') ? even : ~range.indexOf('odd') ? odd : undefined;
70
+ const results = [];
71
+ const founds = {};
72
+ for(let index = 0; index < this.versions.length; index++){
73
+ const test = this.versions[index];
74
+ if (options.now && options.now < test.date) continue;
75
+ if (filters.lts && !test.lts) continue;
76
+ if (filters.line && !filters.line(test)) continue;
77
+ if (!semver.satisfies(test.semver, expression)) continue;
78
+ if (filters.key) {
79
+ if (founds[filters.key(test)]) continue;
80
+ founds[filters.key(test)] = true;
81
+ }
82
+ results.unshift(test[path]);
83
+ }
84
+ return results;
85
+ }
86
+ constructor(versions, schedule){
87
+ if (!versions) throw new Error('Missing option: versions');
88
+ if (!schedule) throw new Error('Missing option: schedule');
89
+ this.schedules = [];
90
+ for(const name in schedule)this.schedules.push(normalizeSchedule(name, schedule[name]));
91
+ this.schedules = this.schedules.sort((a, b)=>semver.gt(semver.coerce(a.semver), semver.coerce(b.semver)) ? 1 : -1);
92
+ this.versions = [];
93
+ for(let index = 0; index < versions.length; index++)this.versions.push(normalizeVersion(versions[index], this.schedules));
94
+ this.versions = this.versions.sort((a, b)=>semver.gt(a.semver, b.semver) ? -1 : 1);
95
+ }
96
+ };
97
+ export { NodeVersions as default };
@@ -0,0 +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 { Schedule, ScheduleRaw, Version, VersionRaw } from './types.js';\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, callback) {\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.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) {\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, options) {\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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"}
@@ -0,0 +1,23 @@
1
+ import exit from 'exit';
2
+ import Cache from 'fetch-json-cache';
3
+ // @ts-ignore
4
+ import constants from '../constants.cjs';
5
+ export default (()=>{
6
+ const cache = new Cache(constants.CACHE_DIRECTORY);
7
+ function cacheJSON(callback) {
8
+ cache.get(constants.DISTS_URL, {
9
+ force: true
10
+ }, (err)=>{
11
+ err ? callback(err) : cache.get(constants.SCHEDULES_URL, {
12
+ force: true
13
+ }, callback);
14
+ });
15
+ }
16
+ cacheJSON((err)=>{
17
+ if (err) {
18
+ console.log(`Failed to cache dists and schedules. Error: ${err.message}`);
19
+ return exit(err.code || -1);
20
+ }
21
+ exit(0);
22
+ });
23
+ });
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["postinstall.ts"],"sourcesContent":["import exit from 'exit';\nimport Cache from 'fetch-json-cache';\n// @ts-ignore\nimport constants from '../constants.cjs';\n\nexport default () => {\n const cache = new Cache(constants.CACHE_DIRECTORY);\n\n function cacheJSON(callback) {\n cache.get(constants.DISTS_URL, { force: true }, (err) => {\n err ? callback(err) : cache.get(constants.SCHEDULES_URL, { force: true }, callback);\n });\n }\n\n cacheJSON((err) => {\n if (err) {\n console.log(`Failed to cache dists and schedules. Error: ${err.message}`);\n return exit(err.code || -1);\n }\n exit(0);\n });\n};\n"],"names":["exit","Cache","constants","cache","CACHE_DIRECTORY","cacheJSON","callback","get","DISTS_URL","force","err","SCHEDULES_URL","console","log","message","code"],"mappings":"AAAA,OAAOA,UAAU,OAAO;AACxB,OAAOC,WAAW,mBAAmB;AACrC,aAAa;AACb,OAAOC,eAAe,mBAAmB;AAEzC,eAAe,CAAA;IACb,MAAMC,QAAQ,IAAIF,MAAMC,UAAUE,eAAe;IAEjD,SAASC,UAAUC,QAAQ;QACzBH,MAAMI,GAAG,CAACL,UAAUM,SAAS,EAAE;YAAEC,OAAO;QAAK,GAAG,CAACC;YAC/CA,MAAMJ,SAASI,OAAOP,MAAMI,GAAG,CAACL,UAAUS,aAAa,EAAE;gBAAEF,OAAO;YAAK,GAAGH;QAC5E;IACF;IAEAD,UAAU,CAACK;QACT,IAAIA,KAAK;YACPE,QAAQC,GAAG,CAAC,CAAC,4CAA4C,EAAEH,IAAII,OAAO,EAAE;YACxE,OAAOd,KAAKU,IAAIK,IAAI,IAAI,CAAC;QAC3B;QACAf,KAAK;IACP;AACF,CAAA,EAAE"}
@@ -0,0 +1,64 @@
1
+ import exit from 'exit';
2
+ import getopts from 'getopts-compat';
3
+ import NodeVersions from './NodeVersions.mjs';
4
+ import isArray from 'isarray';
5
+ // biome-ignore lint/suspicious/noShadowRestrictedNames: <explanation>
6
+ import isNaN from './lib/isNaN.mjs';
7
+ export default ((argv)=>{
8
+ const options = getopts(argv.slice(1), {
9
+ alias: {
10
+ path: 'p',
11
+ range: 'r',
12
+ now: 'n'
13
+ },
14
+ stopEarly: true
15
+ });
16
+ if (typeof options.now !== 'undefined') options.now = new Date(isNaN(+options.now) ? Date.parse(options.now) : +options.now);
17
+ // define.option('-p, --path [path]', 'path within version including raw for unprocessed version', 'version');
18
+ // define.option('-r, --range [range]', 'range type of major, minor, or patch with filters of lts, even, odd for version string expressions', 'patch');
19
+ // define.option('-n, --now [date]', 'use a specific time as a Date.parse');
20
+ if (options.help) {
21
+ console.log('');
22
+ console.log('Example call:');
23
+ console.log(' $ nv [version string]');
24
+ console.log('');
25
+ console.log('Version Strings:');
26
+ console.log('Any command that calls for a version can be provided any of the');
27
+ console.log('following "version-ish" identifies:');
28
+ console.log('');
29
+ console.log('- x.y.z A specific SemVer tuple');
30
+ console.log('- x.y Major and minor version number');
31
+ console.log('- x Just a major version number');
32
+ console.log('- lts The most recent LTS (long-term support) node version');
33
+ console.log('- lts/<name> The latest in a named LTS set. (argon, boron, etc.)');
34
+ console.log('- lts/* Same as just "lts"');
35
+ console.log('- latest The most recent (non-LTS) version');
36
+ console.log('- stable Backwards-compatible alias for "lts"');
37
+ console.log('- [expression] Engine and semver module expression like "10.1.x || >=12.0.0"');
38
+ return;
39
+ }
40
+ const args = argv.slice(0, 1).concat(options._);
41
+ if (args.length < 1) {
42
+ console.log('Missing version string. Example usage: nv [version string]. Use nv --help for information on version strings');
43
+ return exit(-1);
44
+ }
45
+ function stringify(value) {
46
+ return typeof value === 'string' ? value : JSON.stringify(value);
47
+ }
48
+ NodeVersions.load(options, (err, semvers)=>{
49
+ if (err) {
50
+ console.log(err.message);
51
+ return exit(err.code || -1);
52
+ }
53
+ const version = semvers.resolve(args[0], options);
54
+ if (!version || isArray(version) && !version.length) {
55
+ console.log(`Unrecognized: ${args[0]}`);
56
+ return exit(-1);
57
+ }
58
+ console.log('versions:');
59
+ if (isArray(version)) {
60
+ for(let index = 0; index < version.length; index++)console.log(stringify(version[index]));
61
+ } else console.log(stringify(version));
62
+ exit(0);
63
+ });
64
+ });
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["cli.ts"],"sourcesContent":["import exit from 'exit';\nimport getopts from 'getopts-compat';\nimport NodeVersions from './NodeVersions.js';\n\nimport isArray from 'isarray';\n// biome-ignore lint/suspicious/noShadowRestrictedNames: <explanation>\nimport isNaN from './lib/isNaN.js';\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, (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);\n if (!version || (isArray(version) && !version.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.length; index++) console.log(stringify(version[index]));\n } else console.log(stringify(version));\n exit(0);\n });\n};\n"],"names":["exit","getopts","NodeVersions","isArray","isNaN","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,kBAAkB,oBAAoB;AAE7C,OAAOC,aAAa,UAAU;AAC9B,sEAAsE;AACtE,OAAOC,WAAW,iBAAiB;AAEnC,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,KAAKT,MAAM,CAACE,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,SAAS,CAACoB,KAAKC;QAC/B,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,WAAY3B,QAAQ2B,YAAY,CAACA,QAAQT,MAAM,EAAG;YACrDL,QAAQC,GAAG,CAAC,CAAC,cAAc,EAAEC,IAAI,CAAC,EAAE,EAAE;YACtC,OAAOlB,KAAK,CAAC;QACf;QAEAgB,QAAQC,GAAG,CAAC;QACZ,IAAId,QAAQ2B,UAAU;YACpB,IAAK,IAAIE,QAAQ,GAAGA,QAAQF,QAAQT,MAAM,EAAEW,QAAShB,QAAQC,GAAG,CAACK,UAAUQ,OAAO,CAACE,MAAM;QAC3F,OAAOhB,QAAQC,GAAG,CAACK,UAAUQ;QAC7B9B,KAAK;IACP;AACF,CAAA,EAAE"}
@@ -0,0 +1,10 @@
1
+ import path from 'path';
2
+ import url from 'url';
3
+ import packageRoot from './lib/packageRoot.mjs';
4
+ const __dirname = path.dirname(typeof __filename !== 'undefined' ? __filename : url.fileURLToPath(import.meta.url));
5
+ const root = packageRoot(__dirname, 'node-semvers');
6
+ export default {
7
+ CACHE_DIRECTORY: path.resolve(path.join(root, '.cache')),
8
+ DISTS_URL: 'https://nodejs.org/dist/index.json',
9
+ SCHEDULES_URL: 'https://raw.githubusercontent.com/nodejs/Release/master/schedule.json'
10
+ };
@@ -0,0 +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, 'node-semvers');\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,WAAW;AAEpC,eAAe;IACbK,iBAAiBR,KAAKS,OAAO,CAACT,KAAKU,IAAI,CAACH,MAAM;IAC9CI,WAAW;IACXC,eAAe;AACjB,EAAE"}
@@ -0,0 +1,2 @@
1
+ export * from './types.mjs';
2
+ export { default } from './NodeVersions.mjs';