node-semvers 1.7.4 → 1.8.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 (35) hide show
  1. package/.cache/3e518548def49188754e83e93390ac26.json +1 -0
  2. package/.cache/5b29244cf59413e77327386593beb199.json +1 -0
  3. package/dist/cjs/NodeVersions.d.cts +2 -2
  4. package/dist/cjs/NodeVersions.d.ts +2 -2
  5. package/dist/cjs/NodeVersions.js +15 -2
  6. package/dist/cjs/NodeVersions.js.map +1 -1
  7. package/dist/cjs/constants.d.cts +2 -2
  8. package/dist/cjs/constants.d.ts +2 -2
  9. package/dist/cjs/constants.js +6 -6
  10. package/dist/cjs/constants.js.map +1 -1
  11. package/dist/cjs/types.d.cts +10 -18
  12. package/dist/cjs/types.d.ts +10 -18
  13. package/dist/esm/NodeVersions.d.ts +2 -2
  14. package/dist/esm/NodeVersions.js +10 -2
  15. package/dist/esm/NodeVersions.js.map +1 -1
  16. package/dist/esm/constants.d.ts +2 -2
  17. package/dist/esm/constants.js +8 -6
  18. package/dist/esm/constants.js.map +1 -1
  19. package/dist/esm/types.d.ts +10 -18
  20. package/dist/esm/types.js.map +1 -1
  21. package/package.json +3 -4
  22. package/assets/constants.cjs +0 -16
  23. package/assets/postinstall.cjs +0 -51
  24. package/dist/cjs/assets/constants.cjs +0 -8
  25. package/dist/cjs/assets/constants.cjs.map +0 -1
  26. package/dist/cjs/assets/constants.d.cts +0 -1
  27. package/dist/cjs/assets/postinstall.cjs +0 -35
  28. package/dist/cjs/assets/postinstall.cjs.map +0 -1
  29. package/dist/cjs/assets/postinstall.d.cts +0 -1
  30. package/dist/esm/assets/constants.cjs +0 -6
  31. package/dist/esm/assets/constants.cjs.map +0 -1
  32. package/dist/esm/assets/constants.d.cts +0 -1
  33. package/dist/esm/assets/postinstall.cjs +0 -33
  34. package/dist/esm/assets/postinstall.cjs.map +0 -1
  35. package/dist/esm/assets/postinstall.d.cts +0 -1
@@ -0,0 +1 @@
1
+ {"headers":{"connection":"keep-alive","content-length":"3255","cache-control":"max-age=300","content-security-policy":"default-src 'none'; style-src 'unsafe-inline'; sandbox","content-type":"text/plain; charset=utf-8","etag":"\"97f0f333e5b05199db62dd311805762d4562ab29f6eacb2e1fc8e70f3cbe0b6d\"","strict-transport-security":"max-age=31536000","x-content-type-options":"nosniff","x-frame-options":"deny","x-xss-protection":"1; mode=block","x-github-request-id":"8F9A:274A47:10D10:15BE7:6A98CBFA","x-github-edge-region":"iad","accept-ranges":"bytes","date":"Thu, 03 Sep 2026 02:44:13 GMT","via":"1.1 varnish","x-served-by":"cache-yvr-cyvr160064-YVR","x-cache":"HIT","x-cache-hits":"1","x-timer":"S1788403453.267080,VS0,VE279","vary":"Authorization,Accept-Encoding","access-control-allow-origin":"*","cross-origin-resource-policy":"cross-origin","x-fastly-request-id":"88e16d88a3dfdbb1e8b8dc67f3ead5a179125e11","expires":"Thu, 03 Sep 2026 02:49:13 GMT","source-age":"0"},"body":{"v0.8":{"start":"2012-06-25","end":"2014-07-31"},"v0.10":{"start":"2013-03-11","end":"2016-10-31"},"v0.12":{"start":"2015-02-06","end":"2016-12-31"},"v4":{"start":"2015-09-08","lts":"2015-10-12","maintenance":"2017-04-01","end":"2018-04-30","codename":"Argon"},"v5":{"start":"2015-10-29","maintenance":"2016-04-30","end":"2016-06-30"},"v6":{"start":"2016-04-26","lts":"2016-10-18","maintenance":"2018-04-30","end":"2019-04-30","codename":"Boron"},"v7":{"start":"2016-10-25","maintenance":"2017-04-30","end":"2017-06-30"},"v8":{"start":"2017-05-30","lts":"2017-10-31","maintenance":"2019-01-01","end":"2019-12-31","codename":"Carbon"},"v9":{"start":"2017-10-01","maintenance":"2018-04-01","end":"2018-06-30"},"v10":{"start":"2018-04-24","lts":"2018-10-30","maintenance":"2020-05-19","end":"2021-04-30","codename":"Dubnium"},"v11":{"start":"2018-10-23","maintenance":"2019-04-22","end":"2019-06-01"},"v12":{"start":"2019-04-23","lts":"2019-10-21","maintenance":"2020-11-30","end":"2022-04-30","codename":"Erbium"},"v13":{"start":"2019-10-22","maintenance":"2020-04-01","end":"2020-06-01"},"v14":{"start":"2020-04-21","lts":"2020-10-27","maintenance":"2021-10-19","end":"2023-04-30","codename":"Fermium"},"v15":{"start":"2020-10-20","maintenance":"2021-04-01","end":"2021-06-01"},"v16":{"start":"2021-04-20","lts":"2021-10-26","maintenance":"2022-10-18","end":"2023-09-11","codename":"Gallium"},"v17":{"start":"2021-10-19","maintenance":"2022-04-01","end":"2022-06-01"},"v18":{"start":"2022-04-19","lts":"2022-10-25","maintenance":"2023-10-18","end":"2025-04-30","codename":"Hydrogen"},"v19":{"start":"2022-10-18","maintenance":"2023-04-01","end":"2023-06-01"},"v20":{"start":"2023-04-18","lts":"2023-10-24","maintenance":"2024-10-22","end":"2026-04-30","codename":"Iron"},"v21":{"start":"2023-10-17","maintenance":"2024-04-01","end":"2024-06-01"},"v22":{"start":"2024-04-24","lts":"2024-10-29","maintenance":"2025-10-21","end":"2027-04-30","codename":"Jod"},"v23":{"start":"2024-10-16","maintenance":"2025-04-01","end":"2025-06-01"},"v24":{"start":"2025-05-06","lts":"2025-10-28","maintenance":"2026-10-20","end":"2028-04-30","codename":"Krypton"},"v25":{"start":"2025-10-15","maintenance":"2026-04-01","end":"2026-06-01"},"v26":{"start":"2026-05-05","lts":"2026-10-28","maintenance":"2027-10-20","end":"2029-04-30","codename":""},"v27":{"alpha":"2026-10-28","start":"2027-04-22","maintenance":"2027-10-20","end":"2030-04-30","codename":""}}}
@@ -0,0 +1 @@
1
+ {"headers":{"date":"Thu, 03 Sep 2026 02:44:13 GMT","content-type":"application/json","content-length":"329756","connection":"keep-alive","cf-cache-status":"HIT","accept-ranges":"bytes","access-control-allow-origin":"*","age":"6085","cache-control":"public, max-age=3600, s-maxage=14400","etag":"\"0b78e69a9826966a8090271b55a15169\"","last-modified":"Wed, 26 Aug 2026 22:09:07 GMT","strict-transport-security":"max-age=31536000; includeSubDomains; preload","x-content-type-options":"nosniff","server":"cloudflare","cf-ray":"a351694e6e86e19b-YVR"},"body":[{"version":"v26.8.1","date":"2026-08-26","lts":false},{"version":"v26.8.0","date":"2026-08-25","lts":false},{"version":"v26.7.0","date":"2026-08-05","lts":false},{"version":"v26.6.0","date":"2026-08-03","lts":false},{"version":"v26.5.1","date":"2026-07-28","lts":false},{"version":"v26.5.0","date":"2026-07-08","lts":false},{"version":"v26.4.0","date":"2026-06-24","lts":false},{"version":"v26.3.1","date":"2026-06-17","lts":false},{"version":"v26.3.0","date":"2026-06-01","lts":false},{"version":"v26.2.0","date":"2026-05-20","lts":false},{"version":"v26.1.0","date":"2026-05-06","lts":false},{"version":"v26.0.0","date":"2026-05-05","lts":false},{"version":"v25.9.0","date":"2026-03-31","lts":false},{"version":"v25.8.2","date":"2026-03-24","lts":false},{"version":"v25.8.1","date":"2026-03-10","lts":false},{"version":"v25.8.0","date":"2026-03-03","lts":false},{"version":"v25.7.0","date":"2026-02-24","lts":false},{"version":"v25.6.1","date":"2026-02-09","lts":false},{"version":"v25.6.0","date":"2026-02-02","lts":false},{"version":"v25.5.0","date":"2026-01-26","lts":false},{"version":"v25.4.0","date":"2026-01-19","lts":false},{"version":"v25.3.0","date":"2026-01-12","lts":false},{"version":"v25.2.1","date":"2025-11-16","lts":false},{"version":"v25.2.0","date":"2025-11-11","lts":false},{"version":"v25.1.0","date":"2025-10-28","lts":false},{"version":"v25.0.0","date":"2025-10-15","lts":false},{"version":"v24.20.0","date":"2026-08-26","lts":"Krypton"},{"version":"v24.19.0","date":"2026-08-03","lts":"Krypton"},{"version":"v24.18.1","date":"2026-07-28","lts":"Krypton"},{"version":"v24.18.0","date":"2026-06-23","lts":"Krypton"},{"version":"v24.17.0","date":"2026-06-17","lts":"Krypton"},{"version":"v24.16.0","date":"2026-05-21","lts":"Krypton"},{"version":"v24.15.0","date":"2026-04-15","lts":"Krypton"},{"version":"v24.14.1","date":"2026-03-24","lts":"Krypton"},{"version":"v24.14.0","date":"2026-02-24","lts":"Krypton"},{"version":"v24.13.1","date":"2026-02-09","lts":"Krypton"},{"version":"v24.13.0","date":"2026-01-12","lts":"Krypton"},{"version":"v24.12.0","date":"2025-12-10","lts":"Krypton"},{"version":"v24.11.1","date":"2025-11-11","lts":"Krypton"},{"version":"v24.11.0","date":"2025-10-28","lts":"Krypton"},{"version":"v24.10.0","date":"2025-10-08","lts":false},{"version":"v24.9.0","date":"2025-09-25","lts":false},{"version":"v24.8.0","date":"2025-09-10","lts":false},{"version":"v24.7.0","date":"2025-08-27","lts":false},{"version":"v24.6.0","date":"2025-08-14","lts":false},{"version":"v24.5.0","date":"2025-07-31","lts":false},{"version":"v24.4.1","date":"2025-07-15","lts":false},{"version":"v24.4.0","date":"2025-07-09","lts":false},{"version":"v24.3.0","date":"2025-06-24","lts":false},{"version":"v24.2.0","date":"2025-06-09","lts":false},{"version":"v24.1.0","date":"2025-05-20","lts":false},{"version":"v24.0.2","date":"2025-05-14","lts":false},{"version":"v24.0.1","date":"2025-05-08","lts":false},{"version":"v24.0.0","date":"2025-05-06","lts":false},{"version":"v23.11.1","date":"2025-05-14","lts":false},{"version":"v23.11.0","date":"2025-04-01","lts":false},{"version":"v23.10.0","date":"2025-03-13","lts":false},{"version":"v23.9.0","date":"2025-02-26","lts":false},{"version":"v23.8.0","date":"2025-02-13","lts":false},{"version":"v23.7.0","date":"2025-01-30","lts":false},{"version":"v23.6.1","date":"2025-01-21","lts":false},{"version":"v23.6.0","date":"2025-01-07","lts":false},{"version":"v23.5.0","date":"2024-12-19","lts":false},{"version":"v23.4.0","date":"2024-12-10","lts":false},{"version":"v23.3.0","date":"2024-11-20","lts":false},{"version":"v23.2.0","date":"2024-11-11","lts":false},{"version":"v23.1.0","date":"2024-10-24","lts":false},{"version":"v23.0.0","date":"2024-10-16","lts":false},{"version":"v22.23.2","date":"2026-07-28","lts":"Jod"},{"version":"v22.23.1","date":"2026-06-22","lts":"Jod"},{"version":"v22.23.0","date":"2026-06-17","lts":"Jod"},{"version":"v22.22.3","date":"2026-05-13","lts":"Jod"},{"version":"v22.22.2","date":"2026-03-24","lts":"Jod"},{"version":"v22.22.1","date":"2026-03-04","lts":"Jod"},{"version":"v22.22.0","date":"2026-01-12","lts":"Jod"},{"version":"v22.21.1","date":"2025-10-28","lts":"Jod"},{"version":"v22.21.0","date":"2025-10-20","lts":"Jod"},{"version":"v22.20.0","date":"2025-09-24","lts":"Jod"},{"version":"v22.19.0","date":"2025-08-28","lts":"Jod"},{"version":"v22.18.0","date":"2025-07-31","lts":"Jod"},{"version":"v22.17.1","date":"2025-07-15","lts":"Jod"},{"version":"v22.17.0","date":"2025-06-24","lts":"Jod"},{"version":"v22.16.0","date":"2025-05-20","lts":"Jod"},{"version":"v22.15.1","date":"2025-05-14","lts":"Jod"},{"version":"v22.15.0","date":"2025-04-22","lts":"Jod"},{"version":"v22.14.0","date":"2025-02-11","lts":"Jod"},{"version":"v22.13.1","date":"2025-01-21","lts":"Jod"},{"version":"v22.13.0","date":"2025-01-06","lts":"Jod"},{"version":"v22.12.0","date":"2024-12-02","lts":"Jod"},{"version":"v22.11.0","date":"2024-10-29","lts":"Jod"},{"version":"v22.10.0","date":"2024-10-16","lts":false},{"version":"v22.9.0","date":"2024-09-17","lts":false},{"version":"v22.8.0","date":"2024-09-03","lts":false},{"version":"v22.7.0","date":"2024-08-21","lts":false},{"version":"v22.6.0","date":"2024-08-06","lts":false},{"version":"v22.5.1","date":"2024-07-19","lts":false},{"version":"v22.5.0","date":"2024-07-17","lts":false},{"version":"v22.4.1","date":"2024-07-08","lts":false},{"version":"v22.4.0","date":"2024-07-02","lts":false},{"version":"v22.3.0","date":"2024-06-11","lts":false},{"version":"v22.2.0","date":"2024-05-15","lts":false},{"version":"v22.1.0","date":"2024-05-02","lts":false},{"version":"v22.0.0","date":"2024-04-24","lts":false},{"version":"v21.7.3","date":"2024-04-10","lts":false},{"version":"v21.7.2","date":"2024-04-03","lts":false},{"version":"v21.7.1","date":"2024-03-08","lts":false},{"version":"v21.7.0","date":"2024-03-06","lts":false},{"version":"v21.6.2","date":"2024-02-13","lts":false},{"version":"v21.6.1","date":"2024-01-22","lts":false},{"version":"v21.6.0","date":"2024-01-14","lts":false},{"version":"v21.5.0","date":"2023-12-19","lts":false},{"version":"v21.4.0","date":"2023-12-05","lts":false},{"version":"v21.3.0","date":"2023-11-30","lts":false},{"version":"v21.2.0","date":"2023-11-14","lts":false},{"version":"v21.1.0","date":"2023-10-24","lts":false},{"version":"v21.0.0","date":"2023-10-17","lts":false},{"version":"v20.20.2","date":"2026-03-24","lts":"Iron"},{"version":"v20.20.1","date":"2026-03-04","lts":"Iron"},{"version":"v20.20.0","date":"2026-01-12","lts":"Iron"},{"version":"v20.19.6","date":"2025-11-25","lts":"Iron"},{"version":"v20.19.5","date":"2025-09-03","lts":"Iron"},{"version":"v20.19.4","date":"2025-07-15","lts":"Iron"},{"version":"v20.19.3","date":"2025-06-23","lts":"Iron"},{"version":"v20.19.2","date":"2025-05-14","lts":"Iron"},{"version":"v20.19.1","date":"2025-04-22","lts":"Iron"},{"version":"v20.19.0","date":"2025-03-13","lts":"Iron"},{"version":"v20.18.3","date":"2025-02-10","lts":"Iron"},{"version":"v20.18.2","date":"2025-01-21","lts":"Iron"},{"version":"v20.18.1","date":"2024-11-20","lts":"Iron"},{"version":"v20.18.0","date":"2024-10-03","lts":"Iron"},{"version":"v20.17.0","date":"2024-08-21","lts":"Iron"},{"version":"v20.16.0","date":"2024-07-24","lts":"Iron"},{"version":"v20.15.1","date":"2024-07-08","lts":"Iron"},{"version":"v20.15.0","date":"2024-06-20","lts":"Iron"},{"version":"v20.14.0","date":"2024-05-28","lts":"Iron"},{"version":"v20.13.1","date":"2024-05-09","lts":"Iron"},{"version":"v20.13.0","date":"2024-05-07","lts":"Iron"},{"version":"v20.12.2","date":"2024-04-10","lts":"Iron"},{"version":"v20.12.1","date":"2024-04-03","lts":"Iron"},{"version":"v20.12.0","date":"2024-03-26","lts":"Iron"},{"version":"v20.11.1","date":"2024-02-13","lts":"Iron"},{"version":"v20.11.0","date":"2024-01-09","lts":"Iron"},{"version":"v20.10.0","date":"2023-11-22","lts":"Iron"},{"version":"v20.9.0","date":"2023-10-24","lts":"Iron"},{"version":"v20.8.1","date":"2023-10-13","lts":false},{"version":"v20.8.0","date":"2023-09-28","lts":false},{"version":"v20.7.0","date":"2023-09-18","lts":false},{"version":"v20.6.1","date":"2023-09-07","lts":false},{"version":"v20.6.0","date":"2023-08-23","lts":false},{"version":"v20.5.1","date":"2023-08-09","lts":false},{"version":"v20.5.0","date":"2023-07-19","lts":false},{"version":"v20.4.0","date":"2023-07-04","lts":false},{"version":"v20.3.1","date":"2023-06-20","lts":false},{"version":"v20.3.0","date":"2023-06-08","lts":false},{"version":"v20.2.0","date":"2023-05-16","lts":false},{"version":"v20.1.0","date":"2023-05-03","lts":false},{"version":"v20.0.0","date":"2023-04-17","lts":false},{"version":"v19.9.0","date":"2023-04-10","lts":false},{"version":"v19.8.1","date":"2023-03-15","lts":false},{"version":"v19.8.0","date":"2023-03-14","lts":false},{"version":"v19.7.0","date":"2023-02-21","lts":false},{"version":"v19.6.1","date":"2023-02-16","lts":false},{"version":"v19.6.0","date":"2023-02-01","lts":false},{"version":"v19.5.0","date":"2023-01-24","lts":false},{"version":"v19.4.0","date":"2023-01-05","lts":false},{"version":"v19.3.0","date":"2022-12-14","lts":false},{"version":"v19.2.0","date":"2022-11-29","lts":false},{"version":"v19.1.0","date":"2022-11-14","lts":false},{"version":"v19.0.1","date":"2022-11-04","lts":false},{"version":"v19.0.0","date":"2022-10-17","lts":false},{"version":"v18.20.8","date":"2025-03-27","lts":"Hydrogen"},{"version":"v18.20.7","date":"2025-02-20","lts":"Hydrogen"},{"version":"v18.20.6","date":"2025-01-21","lts":"Hydrogen"},{"version":"v18.20.5","date":"2024-11-11","lts":"Hydrogen"},{"version":"v18.20.4","date":"2024-07-08","lts":"Hydrogen"},{"version":"v18.20.3","date":"2024-05-20","lts":"Hydrogen"},{"version":"v18.20.2","date":"2024-04-10","lts":"Hydrogen"},{"version":"v18.20.1","date":"2024-04-02","lts":"Hydrogen"},{"version":"v18.20.0","date":"2024-03-26","lts":"Hydrogen"},{"version":"v18.19.1","date":"2024-02-13","lts":"Hydrogen"},{"version":"v18.19.0","date":"2023-11-29","lts":"Hydrogen"},{"version":"v18.18.2","date":"2023-10-13","lts":"Hydrogen"},{"version":"v18.18.1","date":"2023-10-10","lts":"Hydrogen"},{"version":"v18.18.0","date":"2023-09-18","lts":"Hydrogen"},{"version":"v18.17.1","date":"2023-08-08","lts":"Hydrogen"},{"version":"v18.17.0","date":"2023-07-18","lts":"Hydrogen"},{"version":"v18.16.1","date":"2023-06-20","lts":"Hydrogen"},{"version":"v18.16.0","date":"2023-04-12","lts":"Hydrogen"},{"version":"v18.15.0","date":"2023-03-05","lts":"Hydrogen"},{"version":"v18.14.2","date":"2023-02-21","lts":"Hydrogen"},{"version":"v18.14.1","date":"2023-02-16","lts":"Hydrogen"},{"version":"v18.14.0","date":"2023-02-01","lts":"Hydrogen"},{"version":"v18.13.0","date":"2023-01-05","lts":"Hydrogen"},{"version":"v18.12.1","date":"2022-11-04","lts":"Hydrogen"},{"version":"v18.12.0","date":"2022-10-25","lts":"Hydrogen"},{"version":"v18.11.0","date":"2022-10-13","lts":false},{"version":"v18.10.0","date":"2022-09-28","lts":false},{"version":"v18.9.1","date":"2022-09-23","lts":false},{"version":"v18.9.0","date":"2022-09-07","lts":false},{"version":"v18.8.0","date":"2022-08-24","lts":false},{"version":"v18.7.0","date":"2022-07-26","lts":false},{"version":"v18.6.0","date":"2022-07-13","lts":false},{"version":"v18.5.0","date":"2022-07-06","lts":false},{"version":"v18.4.0","date":"2022-06-16","lts":false},{"version":"v18.3.0","date":"2022-06-02","lts":false},{"version":"v18.2.0","date":"2022-05-17","lts":false},{"version":"v18.1.0","date":"2022-05-03","lts":false},{"version":"v18.0.0","date":"2022-04-18","lts":false},{"version":"v17.9.1","date":"2022-06-01","lts":false},{"version":"v17.9.0","date":"2022-04-07","lts":false},{"version":"v17.8.0","date":"2022-03-22","lts":false},{"version":"v17.7.2","date":"2022-03-17","lts":false},{"version":"v17.7.1","date":"2022-03-10","lts":false},{"version":"v17.7.0","date":"2022-03-09","lts":false},{"version":"v17.6.0","date":"2022-02-22","lts":false},{"version":"v17.5.0","date":"2022-02-10","lts":false},{"version":"v17.4.0","date":"2022-01-18","lts":false},{"version":"v17.3.1","date":"2022-01-10","lts":false},{"version":"v17.3.0","date":"2021-12-17","lts":false},{"version":"v17.2.0","date":"2021-11-30","lts":false},{"version":"v17.1.0","date":"2021-11-09","lts":false},{"version":"v17.0.1","date":"2021-10-20","lts":false},{"version":"v17.0.0","date":"2021-10-19","lts":false},{"version":"v16.20.2","date":"2023-08-08","lts":"Gallium"},{"version":"v16.20.1","date":"2023-06-20","lts":"Gallium"},{"version":"v16.20.0","date":"2023-03-28","lts":"Gallium"},{"version":"v16.19.1","date":"2023-02-16","lts":"Gallium"},{"version":"v16.19.0","date":"2022-12-13","lts":"Gallium"},{"version":"v16.18.1","date":"2022-11-04","lts":"Gallium"},{"version":"v16.18.0","date":"2022-10-12","lts":"Gallium"},{"version":"v16.17.1","date":"2022-09-23","lts":"Gallium"},{"version":"v16.17.0","date":"2022-08-16","lts":"Gallium"},{"version":"v16.16.0","date":"2022-07-07","lts":"Gallium"},{"version":"v16.15.1","date":"2022-06-01","lts":"Gallium"},{"version":"v16.15.0","date":"2022-04-26","lts":"Gallium"},{"version":"v16.14.2","date":"2022-03-17","lts":"Gallium"},{"version":"v16.14.1","date":"2022-03-16","lts":"Gallium"},{"version":"v16.14.0","date":"2022-02-08","lts":"Gallium"},{"version":"v16.13.2","date":"2022-01-10","lts":"Gallium"},{"version":"v16.13.1","date":"2021-12-01","lts":"Gallium"},{"version":"v16.13.0","date":"2021-10-26","lts":"Gallium"},{"version":"v16.12.0","date":"2021-10-20","lts":false},{"version":"v16.11.1","date":"2021-10-12","lts":false},{"version":"v16.11.0","date":"2021-10-08","lts":false},{"version":"v16.10.0","date":"2021-09-22","lts":false},{"version":"v16.9.1","date":"2021-09-10","lts":false},{"version":"v16.9.0","date":"2021-09-07","lts":false},{"version":"v16.8.0","date":"2021-08-25","lts":false},{"version":"v16.7.0","date":"2021-08-18","lts":false},{"version":"v16.6.2","date":"2021-08-11","lts":false},{"version":"v16.6.1","date":"2021-08-03","lts":false},{"version":"v16.6.0","date":"2021-07-29","lts":false},{"version":"v16.5.0","date":"2021-07-14","lts":false},{"version":"v16.4.2","date":"2021-07-05","lts":false},{"version":"v16.4.1","date":"2021-07-01","lts":false},{"version":"v16.4.0","date":"2021-06-23","lts":false},{"version":"v16.3.0","date":"2021-06-03","lts":false},{"version":"v16.2.0","date":"2021-05-19","lts":false},{"version":"v16.1.0","date":"2021-05-04","lts":false},{"version":"v16.0.0","date":"2021-04-20","lts":false},{"version":"v15.14.0","date":"2021-04-06","lts":false},{"version":"v15.13.0","date":"2021-03-31","lts":false},{"version":"v15.12.0","date":"2021-03-17","lts":false},{"version":"v15.11.0","date":"2021-03-03","lts":false},{"version":"v15.10.0","date":"2021-02-23","lts":false},{"version":"v15.9.0","date":"2021-02-18","lts":false},{"version":"v15.8.0","date":"2021-02-02","lts":false},{"version":"v15.7.0","date":"2021-01-25","lts":false},{"version":"v15.6.0","date":"2021-01-14","lts":false},{"version":"v15.5.1","date":"2021-01-04","lts":false},{"version":"v15.5.0","date":"2020-12-22","lts":false},{"version":"v15.4.0","date":"2020-12-09","lts":false},{"version":"v15.3.0","date":"2020-11-24","lts":false},{"version":"v15.2.1","date":"2020-11-16","lts":false},{"version":"v15.2.0","date":"2020-11-10","lts":false},{"version":"v15.1.0","date":"2020-11-04","lts":false},{"version":"v15.0.1","date":"2020-10-21","lts":false},{"version":"v15.0.0","date":"2020-10-20","lts":false},{"version":"v14.21.3","date":"2023-02-16","lts":"Fermium"},{"version":"v14.21.2","date":"2022-12-13","lts":"Fermium"},{"version":"v14.21.1","date":"2022-11-04","lts":"Fermium"},{"version":"v14.21.0","date":"2022-11-01","lts":"Fermium"},{"version":"v14.20.1","date":"2022-09-23","lts":"Fermium"},{"version":"v14.20.0","date":"2022-07-07","lts":"Fermium"},{"version":"v14.19.3","date":"2022-05-17","lts":"Fermium"},{"version":"v14.19.2","date":"2022-05-04","lts":"Fermium"},{"version":"v14.19.1","date":"2022-03-17","lts":"Fermium"},{"version":"v14.19.0","date":"2022-02-01","lts":"Fermium"},{"version":"v14.18.3","date":"2022-01-10","lts":"Fermium"},{"version":"v14.18.2","date":"2021-11-30","lts":"Fermium"},{"version":"v14.18.1","date":"2021-10-12","lts":"Fermium"},{"version":"v14.18.0","date":"2021-09-28","lts":"Fermium"},{"version":"v14.17.6","date":"2021-08-30","lts":"Fermium"},{"version":"v14.17.5","date":"2021-08-11","lts":"Fermium"},{"version":"v14.17.4","date":"2021-07-29","lts":"Fermium"},{"version":"v14.17.3","date":"2021-07-05","lts":"Fermium"},{"version":"v14.17.2","date":"2021-07-01","lts":"Fermium"},{"version":"v14.17.1","date":"2021-06-15","lts":"Fermium"},{"version":"v14.17.0","date":"2021-05-11","lts":"Fermium"},{"version":"v14.16.1","date":"2021-04-06","lts":"Fermium"},{"version":"v14.16.0","date":"2021-02-23","lts":"Fermium"},{"version":"v14.15.5","date":"2021-02-09","lts":"Fermium"},{"version":"v14.15.4","date":"2021-01-04","lts":"Fermium"},{"version":"v14.15.3","date":"2020-12-17","lts":"Fermium"},{"version":"v14.15.2","date":"2020-12-15","lts":"Fermium"},{"version":"v14.15.1","date":"2020-11-16","lts":"Fermium"},{"version":"v14.15.0","date":"2020-10-27","lts":"Fermium"},{"version":"v14.14.0","date":"2020-10-15","lts":false},{"version":"v14.13.1","date":"2020-10-07","lts":false},{"version":"v14.13.0","date":"2020-09-29","lts":false},{"version":"v14.12.0","date":"2020-09-22","lts":false},{"version":"v14.11.0","date":"2020-09-15","lts":false},{"version":"v14.10.1","date":"2020-09-10","lts":false},{"version":"v14.10.0","date":"2020-09-08","lts":false},{"version":"v14.9.0","date":"2020-08-27","lts":false},{"version":"v14.8.0","date":"2020-08-11","lts":false},{"version":"v14.7.0","date":"2020-07-29","lts":false},{"version":"v14.6.0","date":"2020-07-20","lts":false},{"version":"v14.5.0","date":"2020-06-30","lts":false},{"version":"v14.4.0","date":"2020-06-02","lts":false},{"version":"v14.3.0","date":"2020-05-19","lts":false},{"version":"v14.2.0","date":"2020-05-05","lts":false},{"version":"v14.1.0","date":"2020-04-29","lts":false},{"version":"v14.0.0","date":"2020-04-21","lts":false},{"version":"v13.14.0","date":"2020-04-29","lts":false},{"version":"v13.13.0","date":"2020-04-14","lts":false},{"version":"v13.12.0","date":"2020-03-26","lts":false},{"version":"v13.11.0","date":"2020-03-12","lts":false},{"version":"v13.10.1","date":"2020-03-04","lts":false},{"version":"v13.10.0","date":"2020-03-04","lts":false},{"version":"v13.9.0","date":"2020-02-18","lts":false},{"version":"v13.8.0","date":"2020-02-05","lts":false},{"version":"v13.7.0","date":"2020-01-21","lts":false},{"version":"v13.6.0","date":"2020-01-07","lts":false},{"version":"v13.5.0","date":"2019-12-18","lts":false},{"version":"v13.4.0","date":"2019-12-17","lts":false},{"version":"v13.3.0","date":"2019-12-03","lts":false},{"version":"v13.2.0","date":"2019-11-21","lts":false},{"version":"v13.1.0","date":"2019-11-05","lts":false},{"version":"v13.0.1","date":"2019-10-23","lts":false},{"version":"v13.0.0","date":"2019-10-22","lts":false},{"version":"v12.22.12","date":"2022-04-05","lts":"Erbium"},{"version":"v12.22.11","date":"2022-03-17","lts":"Erbium"},{"version":"v12.22.10","date":"2022-02-01","lts":"Erbium"},{"version":"v12.22.9","date":"2022-01-10","lts":"Erbium"},{"version":"v12.22.8","date":"2021-12-16","lts":"Erbium"},{"version":"v12.22.7","date":"2021-10-12","lts":"Erbium"},{"version":"v12.22.6","date":"2021-08-30","lts":"Erbium"},{"version":"v12.22.5","date":"2021-08-11","lts":"Erbium"},{"version":"v12.22.4","date":"2021-07-29","lts":"Erbium"},{"version":"v12.22.3","date":"2021-07-05","lts":"Erbium"},{"version":"v12.22.2","date":"2021-07-01","lts":"Erbium"},{"version":"v12.22.1","date":"2021-04-06","lts":"Erbium"},{"version":"v12.22.0","date":"2021-03-30","lts":"Erbium"},{"version":"v12.21.0","date":"2021-02-23","lts":"Erbium"},{"version":"v12.20.2","date":"2021-02-10","lts":"Erbium"},{"version":"v12.20.1","date":"2021-01-04","lts":"Erbium"},{"version":"v12.20.0","date":"2020-11-24","lts":"Erbium"},{"version":"v12.19.1","date":"2020-11-16","lts":"Erbium"},{"version":"v12.19.0","date":"2020-10-06","lts":"Erbium"},{"version":"v12.18.4","date":"2020-09-15","lts":"Erbium"},{"version":"v12.18.3","date":"2020-07-22","lts":"Erbium"},{"version":"v12.18.2","date":"2020-06-30","lts":"Erbium"},{"version":"v12.18.1","date":"2020-06-17","lts":"Erbium"},{"version":"v12.18.0","date":"2020-06-02","lts":"Erbium"},{"version":"v12.17.0","date":"2020-05-26","lts":"Erbium"},{"version":"v12.16.3","date":"2020-04-28","lts":"Erbium"},{"version":"v12.16.2","date":"2020-04-08","lts":"Erbium"},{"version":"v12.16.1","date":"2020-02-18","lts":"Erbium"},{"version":"v12.16.0","date":"2020-02-11","lts":"Erbium"},{"version":"v12.15.0","date":"2020-02-05","lts":"Erbium"},{"version":"v12.14.1","date":"2020-01-07","lts":"Erbium"},{"version":"v12.14.0","date":"2019-12-17","lts":"Erbium"},{"version":"v12.13.1","date":"2019-11-19","lts":"Erbium"},{"version":"v12.13.0","date":"2019-10-21","lts":"Erbium"},{"version":"v12.12.0","date":"2019-10-11","lts":false},{"version":"v12.11.1","date":"2019-10-01","lts":false},{"version":"v12.11.0","date":"2019-09-25","lts":false},{"version":"v12.10.0","date":"2019-09-04","lts":false},{"version":"v12.9.1","date":"2019-08-26","lts":false},{"version":"v12.9.0","date":"2019-08-20","lts":false},{"version":"v12.8.1","date":"2019-08-15","lts":false},{"version":"v12.8.0","date":"2019-08-06","lts":false},{"version":"v12.7.0","date":"2019-07-23","lts":false},{"version":"v12.6.0","date":"2019-07-03","lts":false},{"version":"v12.5.0","date":"2019-06-26","lts":false},{"version":"v12.4.0","date":"2019-06-04","lts":false},{"version":"v12.3.1","date":"2019-05-22","lts":false},{"version":"v12.3.0","date":"2019-05-21","lts":false},{"version":"v12.2.0","date":"2019-05-07","lts":false},{"version":"v12.1.0","date":"2019-04-29","lts":false},{"version":"v12.0.0","date":"2019-04-23","lts":false},{"version":"v11.15.0","date":"2019-04-30","lts":false},{"version":"v11.14.0","date":"2019-04-10","lts":false},{"version":"v11.13.0","date":"2019-03-28","lts":false},{"version":"v11.12.0","date":"2019-03-14","lts":false},{"version":"v11.11.0","date":"2019-03-05","lts":false},{"version":"v11.10.1","date":"2019-02-28","lts":false},{"version":"v11.10.0","date":"2019-02-14","lts":false},{"version":"v11.9.0","date":"2019-01-30","lts":false},{"version":"v11.8.0","date":"2019-01-24","lts":false},{"version":"v11.7.0","date":"2019-01-17","lts":false},{"version":"v11.6.0","date":"2018-12-26","lts":false},{"version":"v11.5.0","date":"2018-12-18","lts":false},{"version":"v11.4.0","date":"2018-12-07","lts":false},{"version":"v11.3.0","date":"2018-11-27","lts":false},{"version":"v11.2.0","date":"2018-11-15","lts":false},{"version":"v11.1.0","date":"2018-10-30","lts":false},{"version":"v11.0.0","date":"2018-10-23","lts":false},{"version":"v10.24.1","date":"2021-04-06","lts":"Dubnium"},{"version":"v10.24.0","date":"2021-02-23","lts":"Dubnium"},{"version":"v10.23.3","date":"2021-02-09","lts":"Dubnium"},{"version":"v10.23.2","date":"2021-01-26","lts":"Dubnium"},{"version":"v10.23.1","date":"2021-01-04","lts":"Dubnium"},{"version":"v10.23.0","date":"2020-10-27","lts":"Dubnium"},{"version":"v10.22.1","date":"2020-09-15","lts":"Dubnium"},{"version":"v10.22.0","date":"2020-07-21","lts":"Dubnium"},{"version":"v10.21.0","date":"2020-06-02","lts":"Dubnium"},{"version":"v10.20.1","date":"2020-04-12","lts":"Dubnium"},{"version":"v10.20.0","date":"2020-03-26","lts":"Dubnium"},{"version":"v10.19.0","date":"2020-02-05","lts":"Dubnium"},{"version":"v10.18.1","date":"2020-01-09","lts":"Dubnium"},{"version":"v10.18.0","date":"2019-12-17","lts":"Dubnium"},{"version":"v10.17.0","date":"2019-10-22","lts":"Dubnium"},{"version":"v10.16.3","date":"2019-08-15","lts":"Dubnium"},{"version":"v10.16.2","date":"2019-08-06","lts":"Dubnium"},{"version":"v10.16.1","date":"2019-07-31","lts":"Dubnium"},{"version":"v10.16.0","date":"2019-05-28","lts":"Dubnium"},{"version":"v10.15.3","date":"2019-03-05","lts":"Dubnium"},{"version":"v10.15.2","date":"2019-02-28","lts":"Dubnium"},{"version":"v10.15.1","date":"2019-01-29","lts":"Dubnium"},{"version":"v10.15.0","date":"2018-12-26","lts":"Dubnium"},{"version":"v10.14.2","date":"2018-12-10","lts":"Dubnium"},{"version":"v10.14.1","date":"2018-11-29","lts":"Dubnium"},{"version":"v10.14.0","date":"2018-11-27","lts":"Dubnium"},{"version":"v10.13.0","date":"2018-10-30","lts":"Dubnium"},{"version":"v10.12.0","date":"2018-10-10","lts":false},{"version":"v10.11.0","date":"2018-09-19","lts":false},{"version":"v10.10.0","date":"2018-09-06","lts":false},{"version":"v10.9.0","date":"2018-08-15","lts":false},{"version":"v10.8.0","date":"2018-08-01","lts":false},{"version":"v10.7.0","date":"2018-07-18","lts":false},{"version":"v10.6.0","date":"2018-07-04","lts":false},{"version":"v10.5.0","date":"2018-06-20","lts":false},{"version":"v10.4.1","date":"2018-06-12","lts":false},{"version":"v10.4.0","date":"2018-06-06","lts":false},{"version":"v10.3.0","date":"2018-05-29","lts":false},{"version":"v10.2.1","date":"2018-05-24","lts":false},{"version":"v10.2.0","date":"2018-05-23","lts":false},{"version":"v10.1.0","date":"2018-05-08","lts":false},{"version":"v10.0.0","date":"2018-04-24","lts":false},{"version":"v9.11.2","date":"2018-06-12","lts":false},{"version":"v9.11.1","date":"2018-04-05","lts":false},{"version":"v9.11.0","date":"2018-04-04","lts":false},{"version":"v9.10.1","date":"2018-03-29","lts":false},{"version":"v9.10.0","date":"2018-03-28","lts":false},{"version":"v9.9.0","date":"2018-03-21","lts":false},{"version":"v9.8.0","date":"2018-03-07","lts":false},{"version":"v9.7.1","date":"2018-03-02","lts":false},{"version":"v9.7.0","date":"2018-03-01","lts":false},{"version":"v9.6.1","date":"2018-02-23","lts":false},{"version":"v9.6.0","date":"2018-02-21","lts":false},{"version":"v9.5.0","date":"2018-01-31","lts":false},{"version":"v9.4.0","date":"2018-01-10","lts":false},{"version":"v9.3.0","date":"2017-12-12","lts":false},{"version":"v9.2.1","date":"2017-12-08","lts":false},{"version":"v9.2.0","date":"2017-11-14","lts":false},{"version":"v9.1.0","date":"2017-11-07","lts":false},{"version":"v9.0.0","date":"2017-10-31","lts":false},{"version":"v8.17.0","date":"2019-12-17","lts":"Carbon"},{"version":"v8.16.2","date":"2019-10-09","lts":"Carbon"},{"version":"v8.16.1","date":"2019-08-15","lts":"Carbon"},{"version":"v8.16.0","date":"2019-04-16","lts":"Carbon"},{"version":"v8.15.1","date":"2019-02-28","lts":"Carbon"},{"version":"v8.15.0","date":"2018-12-26","lts":"Carbon"},{"version":"v8.14.1","date":"2018-12-18","lts":"Carbon"},{"version":"v8.14.0","date":"2018-11-27","lts":"Carbon"},{"version":"v8.13.0","date":"2018-11-20","lts":"Carbon"},{"version":"v8.12.0","date":"2018-09-10","lts":"Carbon"},{"version":"v8.11.4","date":"2018-08-15","lts":"Carbon"},{"version":"v8.11.3","date":"2018-06-12","lts":"Carbon"},{"version":"v8.11.2","date":"2018-05-15","lts":"Carbon"},{"version":"v8.11.1","date":"2018-03-29","lts":"Carbon"},{"version":"v8.11.0","date":"2018-03-28","lts":"Carbon"},{"version":"v8.10.0","date":"2018-03-06","lts":"Carbon"},{"version":"v8.9.4","date":"2018-01-02","lts":"Carbon"},{"version":"v8.9.3","date":"2017-12-07","lts":"Carbon"},{"version":"v8.9.2","date":"2017-12-05","lts":"Carbon"},{"version":"v8.9.1","date":"2017-11-07","lts":"Carbon"},{"version":"v8.9.0","date":"2017-10-31","lts":"Carbon"},{"version":"v8.8.1","date":"2017-10-25","lts":false},{"version":"v8.8.0","date":"2017-10-24","lts":false},{"version":"v8.7.0","date":"2017-10-11","lts":false},{"version":"v8.6.0","date":"2017-09-26","lts":false},{"version":"v8.5.0","date":"2017-09-12","lts":false},{"version":"v8.4.0","date":"2017-08-15","lts":false},{"version":"v8.3.0","date":"2017-08-08","lts":false},{"version":"v8.2.1","date":"2017-07-20","lts":false},{"version":"v8.2.0","date":"2017-07-19","lts":false},{"version":"v8.1.4","date":"2017-07-11","lts":false},{"version":"v8.1.3","date":"2017-06-29","lts":false},{"version":"v8.1.2","date":"2017-06-15","lts":false},{"version":"v8.1.1","date":"2017-06-13","lts":false},{"version":"v8.1.0","date":"2017-06-08","lts":false},{"version":"v8.0.0","date":"2017-05-30","lts":false},{"version":"v7.10.1","date":"2017-07-11","lts":false},{"version":"v7.10.0","date":"2017-05-02","lts":false},{"version":"v7.9.0","date":"2017-04-11","lts":false},{"version":"v7.8.0","date":"2017-03-29","lts":false},{"version":"v7.7.4","date":"2017-03-21","lts":false},{"version":"v7.7.3","date":"2017-03-14","lts":false},{"version":"v7.7.2","date":"2017-03-08","lts":false},{"version":"v7.7.1","date":"2017-03-02","lts":false},{"version":"v7.7.0","date":"2017-02-28","lts":false},{"version":"v7.6.0","date":"2017-02-21","lts":false},{"version":"v7.5.0","date":"2017-01-31","lts":false},{"version":"v7.4.0","date":"2017-01-04","lts":false},{"version":"v7.3.0","date":"2016-12-20","lts":false},{"version":"v7.2.1","date":"2016-12-06","lts":false},{"version":"v7.2.0","date":"2016-11-22","lts":false},{"version":"v7.1.0","date":"2016-11-08","lts":false},{"version":"v7.0.0","date":"2016-10-25","lts":false},{"version":"v6.17.1","date":"2019-04-03","lts":"Boron"},{"version":"v6.17.0","date":"2019-02-28","lts":"Boron"},{"version":"v6.16.0","date":"2018-12-26","lts":"Boron"},{"version":"v6.15.1","date":"2018-12-03","lts":"Boron"},{"version":"v6.15.0","date":"2018-11-27","lts":"Boron"},{"version":"v6.14.4","date":"2018-08-15","lts":"Boron"},{"version":"v6.14.3","date":"2018-06-12","lts":"Boron"},{"version":"v6.14.2","date":"2018-04-30","lts":"Boron"},{"version":"v6.14.1","date":"2018-03-29","lts":"Boron"},{"version":"v6.14.0","date":"2018-03-28","lts":"Boron"},{"version":"v6.13.1","date":"2018-03-06","lts":"Boron"},{"version":"v6.13.0","date":"2018-02-10","lts":"Boron"},{"version":"v6.12.3","date":"2018-01-02","lts":"Boron"},{"version":"v6.12.2","date":"2017-12-07","lts":"Boron"},{"version":"v6.12.1","date":"2017-12-05","lts":"Boron"},{"version":"v6.12.0","date":"2017-11-06","lts":"Boron"},{"version":"v6.11.5","date":"2017-10-24","lts":"Boron"},{"version":"v6.11.4","date":"2017-10-03","lts":"Boron"},{"version":"v6.11.3","date":"2017-09-05","lts":"Boron"},{"version":"v6.11.2","date":"2017-08-01","lts":"Boron"},{"version":"v6.11.1","date":"2017-07-10","lts":"Boron"},{"version":"v6.11.0","date":"2017-06-06","lts":"Boron"},{"version":"v6.10.3","date":"2017-05-02","lts":"Boron"},{"version":"v6.10.2","date":"2017-04-04","lts":"Boron"},{"version":"v6.10.1","date":"2017-03-21","lts":"Boron"},{"version":"v6.10.0","date":"2017-02-21","lts":"Boron"},{"version":"v6.9.5","date":"2017-01-31","lts":"Boron"},{"version":"v6.9.4","date":"2017-01-05","lts":"Boron"},{"version":"v6.9.3","date":"2017-01-05","lts":"Boron"},{"version":"v6.9.2","date":"2016-12-06","lts":"Boron"},{"version":"v6.9.1","date":"2016-10-19","lts":"Boron"},{"version":"v6.9.0","date":"2016-10-18","lts":"Boron"},{"version":"v6.8.1","date":"2016-10-14","lts":false},{"version":"v6.8.0","date":"2016-10-12","lts":false},{"version":"v6.7.0","date":"2016-09-27","lts":false},{"version":"v6.6.0","date":"2016-09-14","lts":false},{"version":"v6.5.0","date":"2016-08-26","lts":false},{"version":"v6.4.0","date":"2016-08-12","lts":false},{"version":"v6.3.1","date":"2016-07-21","lts":false},{"version":"v6.3.0","date":"2016-07-06","lts":false},{"version":"v6.2.2","date":"2016-06-16","lts":false},{"version":"v6.2.1","date":"2016-06-02","lts":false},{"version":"v6.2.0","date":"2016-05-17","lts":false},{"version":"v6.1.0","date":"2016-05-05","lts":false},{"version":"v6.0.0","date":"2016-04-26","lts":false},{"version":"v5.12.0","date":"2016-06-23","lts":false},{"version":"v5.11.1","date":"2016-05-05","lts":false},{"version":"v5.11.0","date":"2016-04-21","lts":false},{"version":"v5.10.1","date":"2016-04-05","lts":false},{"version":"v5.10.0","date":"2016-04-01","lts":false},{"version":"v5.9.1","date":"2016-03-22","lts":false},{"version":"v5.9.0","date":"2016-03-16","lts":false},{"version":"v5.8.0","date":"2016-03-09","lts":false},{"version":"v5.7.1","date":"2016-03-02","lts":false},{"version":"v5.7.0","date":"2016-02-23","lts":false},{"version":"v5.6.0","date":"2016-02-09","lts":false},{"version":"v5.5.0","date":"2016-01-21","lts":false},{"version":"v5.4.1","date":"2016-01-12","lts":false},{"version":"v5.4.0","date":"2016-01-06","lts":false},{"version":"v5.3.0","date":"2015-12-15","lts":false},{"version":"v5.2.0","date":"2015-12-09","lts":false},{"version":"v5.1.1","date":"2015-12-03","lts":false},{"version":"v5.1.0","date":"2015-11-17","lts":false},{"version":"v5.0.0","date":"2015-10-29","lts":false},{"version":"v4.9.1","date":"2018-03-29","lts":"Argon"},{"version":"v4.9.0","date":"2018-03-28","lts":"Argon"},{"version":"v4.8.7","date":"2017-12-07","lts":"Argon"},{"version":"v4.8.6","date":"2017-11-06","lts":"Argon"},{"version":"v4.8.5","date":"2017-10-24","lts":"Argon"},{"version":"v4.8.4","date":"2017-07-11","lts":"Argon"},{"version":"v4.8.3","date":"2017-05-02","lts":"Argon"},{"version":"v4.8.2","date":"2017-04-04","lts":"Argon"},{"version":"v4.8.1","date":"2017-03-21","lts":"Argon"},{"version":"v4.8.0","date":"2017-02-21","lts":"Argon"},{"version":"v4.7.3","date":"2017-01-31","lts":"Argon"},{"version":"v4.7.2","date":"2017-01-05","lts":"Argon"},{"version":"v4.7.1","date":"2017-01-05","lts":"Argon"},{"version":"v4.7.0","date":"2016-12-06","lts":"Argon"},{"version":"v4.6.2","date":"2016-11-08","lts":"Argon"},{"version":"v4.6.1","date":"2016-10-18","lts":"Argon"},{"version":"v4.6.0","date":"2016-09-27","lts":"Argon"},{"version":"v4.5.0","date":"2016-08-16","lts":"Argon"},{"version":"v4.4.7","date":"2016-06-28","lts":"Argon"},{"version":"v4.4.6","date":"2016-06-23","lts":"Argon"},{"version":"v4.4.5","date":"2016-05-24","lts":"Argon"},{"version":"v4.4.4","date":"2016-05-05","lts":"Argon"},{"version":"v4.4.3","date":"2016-04-12","lts":"Argon"},{"version":"v4.4.2","date":"2016-04-01","lts":"Argon"},{"version":"v4.4.1","date":"2016-03-22","lts":"Argon"},{"version":"v4.4.0","date":"2016-03-08","lts":"Argon"},{"version":"v4.3.2","date":"2016-03-02","lts":"Argon"},{"version":"v4.3.1","date":"2016-02-16","lts":"Argon"},{"version":"v4.3.0","date":"2016-02-09","lts":"Argon"},{"version":"v4.2.6","date":"2016-01-21","lts":"Argon"},{"version":"v4.2.5","date":"2016-01-20","lts":"Argon"},{"version":"v4.2.4","date":"2015-12-23","lts":"Argon"},{"version":"v4.2.3","date":"2015-12-03","lts":"Argon"},{"version":"v4.2.2","date":"2015-11-03","lts":"Argon"},{"version":"v4.2.1","date":"2015-10-13","lts":"Argon"},{"version":"v4.2.0","date":"2015-10-12","lts":"Argon"},{"version":"v4.1.2","date":"2015-10-05","lts":false},{"version":"v4.1.1","date":"2015-09-23","lts":false},{"version":"v4.1.0","date":"2015-09-17","lts":false},{"version":"v4.0.0","date":"2015-09-08","lts":false},{"version":"v0.12.18","date":"2017-02-22","lts":false},{"version":"v0.12.17","date":"2016-10-18","lts":false},{"version":"v0.12.16","date":"2016-09-27","lts":false},{"version":"v0.12.15","date":"2016-06-23","lts":false},{"version":"v0.12.14","date":"2016-05-06","lts":false},{"version":"v0.12.13","date":"2016-03-31","lts":false},{"version":"v0.12.12","date":"2016-03-08","lts":false},{"version":"v0.12.11","date":"2016-03-03","lts":false},{"version":"v0.12.10","date":"2016-02-09","lts":false},{"version":"v0.12.9","date":"2015-12-03","lts":false},{"version":"v0.12.8","date":"2015-11-24","lts":false},{"version":"v0.12.7","date":"2015-07-09","lts":false},{"version":"v0.12.6","date":"2015-07-04","lts":false},{"version":"v0.12.5","date":"2015-06-22","lts":false},{"version":"v0.12.4","date":"2015-05-23","lts":false},{"version":"v0.12.3","date":"2015-05-14","lts":false},{"version":"v0.12.2","date":"2015-03-31","lts":false},{"version":"v0.12.1","date":"2015-03-24","lts":false},{"version":"v0.12.0","date":"2015-02-06","lts":false},{"version":"v0.11.16","date":"2015-01-30","lts":false},{"version":"v0.11.15","date":"2015-01-20","lts":false},{"version":"v0.11.14","date":"2014-08-19","lts":false},{"version":"v0.11.13","date":"2014-05-02","lts":false},{"version":"v0.11.12","date":"2014-03-11","lts":false},{"version":"v0.11.11","date":"2014-01-29","lts":false},{"version":"v0.11.10","date":"2013-12-31","lts":false},{"version":"v0.11.9","date":"2013-11-21","lts":false},{"version":"v0.11.8","date":"2013-10-30","lts":false},{"version":"v0.11.7","date":"2013-09-04","lts":false},{"version":"v0.11.6","date":"2013-08-21","lts":false},{"version":"v0.11.5","date":"2013-08-07","lts":false},{"version":"v0.11.4","date":"2013-07-12","lts":false},{"version":"v0.11.3","date":"2013-06-26","lts":false},{"version":"v0.11.2","date":"2013-05-13","lts":false},{"version":"v0.11.1","date":"2013-04-19","lts":false},{"version":"v0.11.0","date":"2013-03-28","lts":false},{"version":"v0.10.48","date":"2016-10-18","lts":false},{"version":"v0.10.47","date":"2016-09-27","lts":false},{"version":"v0.10.46","date":"2016-06-23","lts":false},{"version":"v0.10.45","date":"2016-05-06","lts":false},{"version":"v0.10.44","date":"2016-03-31","lts":false},{"version":"v0.10.43","date":"2016-03-03","lts":false},{"version":"v0.10.42","date":"2016-02-09","lts":false},{"version":"v0.10.41","date":"2015-12-03","lts":false},{"version":"v0.10.40","date":"2015-07-09","lts":false},{"version":"v0.10.39","date":"2015-06-19","lts":false},{"version":"v0.10.38","date":"2015-03-23","lts":false},{"version":"v0.10.37","date":"2015-03-11","lts":false},{"version":"v0.10.36","date":"2015-01-26","lts":false},{"version":"v0.10.35","date":"2014-12-22","lts":false},{"version":"v0.10.34","date":"2014-12-17","lts":false},{"version":"v0.10.33","date":"2014-10-21","lts":false},{"version":"v0.10.32","date":"2014-09-16","lts":false},{"version":"v0.10.31","date":"2014-08-19","lts":false},{"version":"v0.10.30","date":"2014-07-31","lts":false},{"version":"v0.10.29","date":"2014-06-09","lts":false},{"version":"v0.10.28","date":"2014-05-02","lts":false},{"version":"v0.10.27","date":"2014-05-01","lts":false},{"version":"v0.10.26","date":"2014-02-18","lts":false},{"version":"v0.10.25","date":"2014-01-23","lts":false},{"version":"v0.10.24","date":"2013-12-19","lts":false},{"version":"v0.10.23","date":"2013-12-12","lts":false},{"version":"v0.10.22","date":"2013-11-12","lts":false},{"version":"v0.10.21","date":"2013-10-18","lts":false},{"version":"v0.10.20","date":"2013-09-30","lts":false},{"version":"v0.10.19","date":"2013-09-24","lts":false},{"version":"v0.10.18","date":"2013-09-04","lts":false},{"version":"v0.10.17","date":"2013-08-21","lts":false},{"version":"v0.10.16","date":"2013-08-16","lts":false},{"version":"v0.10.15","date":"2013-07-25","lts":false},{"version":"v0.10.14","date":"2013-07-25","lts":false},{"version":"v0.10.13","date":"2013-07-09","lts":false},{"version":"v0.10.12","date":"2013-06-18","lts":false},{"version":"v0.10.11","date":"2013-06-13","lts":false},{"version":"v0.10.10","date":"2013-06-04","lts":false},{"version":"v0.10.9","date":"2013-05-30","lts":false},{"version":"v0.10.8","date":"2013-05-24","lts":false},{"version":"v0.10.7","date":"2013-05-17","lts":false},{"version":"v0.10.6","date":"2013-05-14","lts":false},{"version":"v0.10.5","date":"2013-04-23","lts":false},{"version":"v0.10.4","date":"2013-04-11","lts":false},{"version":"v0.10.3","date":"2013-04-03","lts":false},{"version":"v0.10.2","date":"2013-03-28","lts":false},{"version":"v0.10.1","date":"2013-03-21","lts":false},{"version":"v0.10.0","date":"2013-03-11","lts":false},{"version":"v0.9.12","date":"2013-03-06","lts":false},{"version":"v0.9.11","date":"2013-03-01","lts":false},{"version":"v0.9.10","date":"2013-02-19","lts":false},{"version":"v0.9.9","date":"2013-02-07","lts":false},{"version":"v0.9.8","date":"2013-01-24","lts":false},{"version":"v0.9.7","date":"2013-01-18","lts":false},{"version":"v0.9.6","date":"2013-01-11","lts":false},{"version":"v0.9.5","date":"2012-12-30","lts":false},{"version":"v0.9.4","date":"2012-12-21","lts":false},{"version":"v0.9.3","date":"2012-10-24","lts":false},{"version":"v0.9.2","date":"2012-09-17","lts":false},{"version":"v0.9.1","date":"2012-08-28","lts":false},{"version":"v0.9.0","date":"2012-07-20","lts":false},{"version":"v0.8.28","date":"2014-07-31","lts":false},{"version":"v0.8.27","date":"2014-06-09","lts":false},{"version":"v0.8.26","date":"2013-10-18","lts":false},{"version":"v0.8.25","date":"2013-06-13","lts":false},{"version":"v0.8.24","date":"2013-06-03","lts":false},{"version":"v0.8.23","date":"2013-04-09","lts":false},{"version":"v0.8.22","date":"2013-03-06","lts":false},{"version":"v0.8.21","date":"2013-02-25","lts":false},{"version":"v0.8.20","date":"2013-02-15","lts":false},{"version":"v0.8.19","date":"2013-02-06","lts":false},{"version":"v0.8.18","date":"2013-01-18","lts":false},{"version":"v0.8.17","date":"2013-01-10","lts":false},{"version":"v0.8.16","date":"2012-12-12","lts":false},{"version":"v0.8.15","date":"2012-11-26","lts":false},{"version":"v0.8.14","date":"2012-10-25","lts":false},{"version":"v0.8.13","date":"2012-10-25","lts":false},{"version":"v0.8.12","date":"2012-10-11","lts":false},{"version":"v0.8.11","date":"2012-09-27","lts":false},{"version":"v0.8.10","date":"2012-09-25","lts":false},{"version":"v0.8.9","date":"2012-09-11","lts":false},{"version":"v0.8.8","date":"2012-08-22","lts":false},{"version":"v0.8.7","date":"2012-08-15","lts":false},{"version":"v0.8.6","date":"2012-08-06","lts":false},{"version":"v0.8.5","date":"2012-08-02","lts":false},{"version":"v0.8.4","date":"2012-07-24","lts":false},{"version":"v0.8.3","date":"2012-07-17","lts":false},{"version":"v0.8.2","date":"2012-07-09","lts":false},{"version":"v0.8.1","date":"2012-06-29","lts":false},{"version":"v0.8.0","date":"2012-06-22","lts":false},{"version":"v0.7.12","date":"2012-06-19","lts":false},{"version":"v0.7.11","date":"2012-06-15","lts":false},{"version":"v0.7.10","date":"2012-06-11","lts":false},{"version":"v0.7.9","date":"2012-05-29","lts":false},{"version":"v0.7.8","date":"2012-04-18","lts":false},{"version":"v0.7.7","date":"2012-03-30","lts":false},{"version":"v0.7.6","date":"2012-03-13","lts":false},{"version":"v0.7.5","date":"2012-02-23","lts":false},{"version":"v0.7.4","date":"2012-02-14","lts":false},{"version":"v0.7.3","date":"2012-02-07","lts":false},{"version":"v0.7.2","date":"2012-02-01","lts":false},{"version":"v0.7.1","date":"2012-01-23","lts":false},{"version":"v0.7.0","date":"2012-01-17","lts":false},{"version":"v0.6.21","date":"2012-08-03","lts":false},{"version":"v0.6.20","date":"2012-07-10","lts":false},{"version":"v0.6.19","date":"2012-06-06","lts":false},{"version":"v0.6.18","date":"2012-05-14","lts":false},{"version":"v0.6.17","date":"2012-05-04","lts":false},{"version":"v0.6.16","date":"2012-04-27","lts":false},{"version":"v0.6.15","date":"2012-04-08","lts":false},{"version":"v0.6.14","date":"2012-03-23","lts":false},{"version":"v0.6.13","date":"2012-03-15","lts":false},{"version":"v0.6.12","date":"2012-03-02","lts":false},{"version":"v0.6.11","date":"2012-02-08","lts":false},{"version":"v0.6.10","date":"2012-02-03","lts":false},{"version":"v0.6.9","date":"2012-01-27","lts":false},{"version":"v0.6.8","date":"2012-01-20","lts":false},{"version":"v0.6.7","date":"2012-01-07","lts":false},{"version":"v0.6.6","date":"2011-12-15","lts":false},{"version":"v0.6.5","date":"2011-12-04","lts":false},{"version":"v0.6.4","date":"2011-12-02","lts":false},{"version":"v0.6.3","date":"2011-11-25","lts":false},{"version":"v0.6.2","date":"2011-11-18","lts":false},{"version":"v0.6.1","date":"2011-11-11","lts":false},{"version":"v0.6.0","date":"2011-11-04","lts":false},{"version":"v0.5.10","date":"2011-10-22","lts":false},{"version":"v0.5.9","date":"2011-10-11","lts":false},{"version":"v0.5.8","date":"2011-09-30","lts":false},{"version":"v0.5.7","date":"2011-09-16","lts":false},{"version":"v0.5.6","date":"2011-08-26","lts":false},{"version":"v0.5.5","date":"2011-08-26","lts":false},{"version":"v0.5.4","date":"2011-08-26","lts":false},{"version":"v0.5.3","date":"2011-08-26","lts":false},{"version":"v0.5.2","date":"2011-08-26","lts":false},{"version":"v0.5.1","date":"2011-08-26","lts":false},{"version":"v0.5.0","date":"2011-08-26","lts":false},{"version":"v0.4.12","date":"2011-09-15","lts":false},{"version":"v0.4.11","date":"2011-08-26","lts":false},{"version":"v0.4.10","date":"2011-08-26","lts":false},{"version":"v0.4.9","date":"2011-08-26","lts":false},{"version":"v0.4.8","date":"2011-08-26","lts":false},{"version":"v0.4.7","date":"2011-08-26","lts":false},{"version":"v0.4.6","date":"2011-08-26","lts":false},{"version":"v0.4.5","date":"2011-08-26","lts":false},{"version":"v0.4.4","date":"2011-08-26","lts":false},{"version":"v0.4.3","date":"2011-08-26","lts":false},{"version":"v0.4.2","date":"2011-08-26","lts":false},{"version":"v0.4.1","date":"2011-08-26","lts":false},{"version":"v0.4.0","date":"2011-08-26","lts":false},{"version":"v0.3.8","date":"2011-08-26","lts":false},{"version":"v0.3.7","date":"2011-08-26","lts":false},{"version":"v0.3.6","date":"2011-08-26","lts":false},{"version":"v0.3.5","date":"2011-08-26","lts":false},{"version":"v0.3.4","date":"2011-08-26","lts":false},{"version":"v0.3.3","date":"2011-08-26","lts":false},{"version":"v0.3.2","date":"2011-08-26","lts":false},{"version":"v0.3.1","date":"2011-08-26","lts":false},{"version":"v0.3.0","date":"2011-08-26","lts":false},{"version":"v0.2.6","date":"2011-08-26","lts":false},{"version":"v0.2.5","date":"2011-08-26","lts":false},{"version":"v0.2.4","date":"2011-08-26","lts":false},{"version":"v0.2.3","date":"2011-08-26","lts":false},{"version":"v0.2.2","date":"2011-08-26","lts":false},{"version":"v0.2.1","date":"2011-08-26","lts":false},{"version":"v0.2.0","date":"2011-08-26","lts":false},{"version":"v0.1.104","date":"2011-08-26","lts":false},{"version":"v0.1.103","date":"2011-08-26","lts":false},{"version":"v0.1.102","date":"2011-08-26","lts":false},{"version":"v0.1.101","date":"2011-08-26","lts":false},{"version":"v0.1.100","date":"2011-08-26","lts":false},{"version":"v0.1.99","date":"2011-08-26","lts":false},{"version":"v0.1.98","date":"2011-08-26","lts":false},{"version":"v0.1.97","date":"2011-08-26","lts":false},{"version":"v0.1.96","date":"2011-08-26","lts":false},{"version":"v0.1.95","date":"2011-08-26","lts":false},{"version":"v0.1.94","date":"2011-08-26","lts":false},{"version":"v0.1.93","date":"2011-08-26","lts":false},{"version":"v0.1.92","date":"2011-08-26","lts":false},{"version":"v0.1.91","date":"2011-08-26","lts":false},{"version":"v0.1.90","date":"2011-08-26","lts":false},{"version":"v0.1.33","date":"2011-08-26","lts":false},{"version":"v0.1.32","date":"2011-08-26","lts":false},{"version":"v0.1.31","date":"2011-08-26","lts":false},{"version":"v0.1.30","date":"2011-08-26","lts":false},{"version":"v0.1.29","date":"2011-08-26","lts":false},{"version":"v0.1.28","date":"2011-08-26","lts":false},{"version":"v0.1.27","date":"2011-08-26","lts":false},{"version":"v0.1.26","date":"2011-08-26","lts":false},{"version":"v0.1.25","date":"2011-08-26","lts":false},{"version":"v0.1.24","date":"2011-08-26","lts":false},{"version":"v0.1.23","date":"2011-08-26","lts":false},{"version":"v0.1.22","date":"2011-08-26","lts":false},{"version":"v0.1.21","date":"2011-08-26","lts":false},{"version":"v0.1.20","date":"2011-08-26","lts":false},{"version":"v0.1.19","date":"2011-08-26","lts":false},{"version":"v0.1.18","date":"2011-08-26","lts":false},{"version":"v0.1.17","date":"2011-08-26","lts":false},{"version":"v0.1.16","date":"2011-08-26","lts":false},{"version":"v0.1.15","date":"2011-08-26","lts":false},{"version":"v0.1.14","date":"2011-08-26","lts":false}]}
@@ -1,9 +1,9 @@
1
- import type { LoadError, LoadOptions, ResolveOptions, Schedule, ScheduleRaw, Version, VersionRaw } from './types.js';
1
+ import type { LoadError, LoadOptions, ResolveOptions, Schedule, ScheduleRawMap, Version, VersionRaw } from './types.js';
2
2
  export type LoadCallback = (error?: LoadError, semvers?: NodeVersions) => void;
3
3
  export default class NodeVersions {
4
4
  versions: Version[];
5
5
  schedules: Schedule[];
6
- constructor(versions: VersionRaw[], schedule: ScheduleRaw[]);
6
+ constructor(versions: VersionRaw[], schedule: ScheduleRawMap);
7
7
  static load(callback: LoadCallback): void;
8
8
  static load(options: LoadOptions, callback: LoadCallback): void;
9
9
  static load(options?: LoadOptions): Promise<NodeVersions>;
@@ -1,9 +1,9 @@
1
- import type { LoadError, LoadOptions, ResolveOptions, Schedule, ScheduleRaw, Version, VersionRaw } from './types.js';
1
+ import type { LoadError, LoadOptions, ResolveOptions, Schedule, ScheduleRawMap, Version, VersionRaw } from './types.js';
2
2
  export type LoadCallback = (error?: LoadError, semvers?: NodeVersions) => void;
3
3
  export default class NodeVersions {
4
4
  versions: Version[];
5
5
  schedules: Schedule[];
6
- constructor(versions: VersionRaw[], schedule: ScheduleRaw[]);
6
+ constructor(versions: VersionRaw[], schedule: ScheduleRawMap);
7
7
  static load(callback: LoadCallback): void;
8
8
  static load(options: LoadOptions, callback: LoadCallback): void;
9
9
  static load(options?: LoadOptions): Promise<NodeVersions>;
@@ -25,6 +25,19 @@ function _interop_require_default(obj) {
25
25
  default: obj
26
26
  };
27
27
  }
28
+ // Only these fields are read, and the cache ships in the package, so store nothing else
29
+ var cacheOptions = {
30
+ transform: function transform(body, endpoint) {
31
+ return endpoint === _constantsts.DISTS_URL && Array.isArray(body) ? body.map(function(param) {
32
+ var version = param.version, date = param.date, lts = param.lts;
33
+ return {
34
+ version: version,
35
+ date: date,
36
+ lts: lts
37
+ };
38
+ }) : body;
39
+ }
40
+ };
28
41
  var NodeVersions = /*#__PURE__*/ function() {
29
42
  "use strict";
30
43
  function NodeVersions(versions, schedule) {
@@ -95,7 +108,7 @@ var NodeVersions = /*#__PURE__*/ function() {
95
108
  callback = typeof options === 'function' ? options : callback;
96
109
  options = typeof options === 'function' ? {} : options || {};
97
110
  function worker(options, callback) {
98
- var cache = new _fetchjsoncache.default(options.cachePath || _constantsts.CACHE_PATH);
111
+ var cache = new _fetchjsoncache.default(options.cachePath || _constantsts.CACHE_PATH, cacheOptions);
99
112
  cache.get(_constantsts.DISTS_URL, function(err, versions) {
100
113
  if (err) return callback(err);
101
114
  cache.get(_constantsts.SCHEDULES_URL, function(err, schedule) {
@@ -113,7 +126,7 @@ var NodeVersions = /*#__PURE__*/ function() {
113
126
  });
114
127
  };
115
128
  NodeVersions.loadSync = function loadSync(options) {
116
- var cache = new _fetchjsoncache.default((options === null || options === void 0 ? void 0 : options.cachePath) || _constantsts.CACHE_PATH);
129
+ var cache = new _fetchjsoncache.default((options === null || options === void 0 ? void 0 : options.cachePath) || _constantsts.CACHE_PATH, cacheOptions);
117
130
  var versions = cache.getSync(_constantsts.DISTS_URL);
118
131
  var schedule = cache.getSync(_constantsts.SCHEDULES_URL);
119
132
  if (!versions || !schedule) return null;
@@ -1 +1 @@
1
- {"version":3,"sources":["/Users/kevin/Dev/OpenSource/node-version/node-semvers/src/NodeVersions.ts"],"sourcesContent":["import Cache from 'fetch-json-cache';\nimport semver from 'semver';\n\nimport { CACHE_PATH, DISTS_URL, SCHEDULES_URL } from './constants.ts';\nimport { major, minor } from './lib/keyFunctions.ts';\nimport { even, odd } from './lib/lineFunctions.ts';\nimport match from './lib/match.ts';\nimport normalizeSchedule from './lib/normalizeSchedule.ts';\nimport normalizeVersion from './lib/normalizeVersion.ts';\nimport parseExpression from './parseExpression/index.ts';\n\nimport type { LoadError, LoadOptions, ResolveOptions, Schedule, ScheduleRaw, Version, VersionRaw } from './types.ts';\n\nexport type LoadCallback = (error?: LoadError, semvers?: NodeVersions) => void;\n\nexport default class NodeVersions {\n versions: Version[];\n schedules: Schedule[];\n\n constructor(versions: VersionRaw[], schedule: ScheduleRaw[]) {\n if (!versions) throw new Error('Missing option: versions');\n if (!schedule) throw new Error('Missing option: schedule');\n\n this.schedules = [];\n for (const name in schedule) this.schedules.push(normalizeSchedule(name, schedule[name]));\n this.schedules = this.schedules.sort((a, b) => (semver.gt(semver.coerce(a.semver)?.version ?? '0.0.0', semver.coerce(b.semver)?.version ?? '0.0.0') ? 1 : -1));\n\n this.versions = [];\n for (let index = 0; index < versions.length; index++) this.versions.push(normalizeVersion(versions[index], this.schedules));\n this.versions = this.versions.sort((a, b) => (semver.gt(a.semver, b.semver) ? -1 : 1));\n }\n\n static load(callback: LoadCallback): void;\n static load(options: LoadOptions, callback: LoadCallback): void;\n static load(options?: LoadOptions): Promise<NodeVersions>;\n static load(options?: LoadOptions | LoadCallback, callback?: LoadCallback): void | Promise<NodeVersions> {\n callback = typeof options === 'function' ? options : callback;\n options = typeof options === 'function' ? {} : ((options || {}) as LoadOptions);\n\n function worker(options: LoadOptions, callback: LoadCallback) {\n const cache = new Cache(options.cachePath || CACHE_PATH);\n cache.get<VersionRaw[]>(DISTS_URL, (err, versions) => {\n if (err) return callback(err);\n\n cache.get<ScheduleRaw[]>(SCHEDULES_URL, (err, schedule) => {\n if (err || !versions || !schedule) return callback(err ?? new Error('Missing data'));\n callback(undefined, new NodeVersions(versions, schedule));\n });\n });\n }\n\n if (typeof callback === 'function') return worker(options, callback);\n return new Promise((resolve, reject) =>\n worker(options, (err?: LoadError, versions?: NodeVersions) => {\n if (err || !versions) return reject(err ?? new Error('No versions returned'));\n resolve(versions);\n })\n );\n }\n\n static loadSync(options?: LoadOptions): NodeVersions | null {\n const cache = new Cache(options?.cachePath || CACHE_PATH);\n const versions = cache.getSync<VersionRaw[]>(DISTS_URL);\n const schedule = cache.getSync<ScheduleRaw[]>(SCHEDULES_URL);\n if (!versions || !schedule) return null;\n return new NodeVersions(versions, schedule);\n }\n\n resolve(expression: string | number | Date, options?: ResolveOptions): string | string[] | Version | Version[] | null {\n options = options || {};\n const path = options.path || 'version';\n\n // normalize\n if (typeof expression === 'number') expression = `${expression}`;\n if (typeof expression !== 'string') return null;\n expression = expression.trim();\n\n // single result, try a match\n const query = parseExpression.call(this, expression, options.now || new Date());\n if (query) {\n let version: Version | null = null;\n for (let index = 0; index < this.versions.length; index++) {\n const test = this.versions[index];\n if (options.now && options.now < test.date) continue;\n if (!match(test as unknown as Record<string, unknown>, query as unknown as Record<string, unknown>)) continue;\n version = test;\n break;\n }\n if (version) return (version as unknown as Record<string, unknown>)[path] as string | Version;\n }\n\n // filtered expression\n const range = options.range || '';\n const filters: { lts: boolean; key: ((v: Version) => string) | undefined; line: ((v: Version) => boolean) | undefined } = {\n lts: !!~range.indexOf('lts'),\n key: undefined,\n line: undefined,\n };\n filters.key = ~range.indexOf('major') ? major : ~range.indexOf('minor') ? minor : undefined;\n filters.line = ~range.indexOf('even') ? even : ~range.indexOf('odd') ? odd : undefined;\n\n const results: unknown[] = [];\n const founds: Record<string, boolean> = {};\n\n for (let index = 0; index < this.versions.length; index++) {\n const test = this.versions[index];\n if (options.now && options.now < test.date) continue;\n if (filters.lts && !test.lts) continue;\n if (filters.line && !filters.line(test)) continue;\n if (!semver.satisfies(test.semver, expression)) continue;\n if (filters.key) {\n const k = filters.key(test);\n if (founds[k]) continue;\n founds[k] = true;\n }\n results.unshift((test as unknown as Record<string, unknown>)[path]);\n }\n return results as string[];\n }\n}\n"],"names":["NodeVersions","versions","schedule","Error","schedules","name","push","normalizeSchedule","sort","a","b","semver","gt","coerce","version","index","length","normalizeVersion","resolve","expression","options","path","trim","query","parseExpression","call","now","Date","test","date","match","range","filters","lts","indexOf","key","undefined","line","major","minor","even","odd","results","founds","satisfies","k","unshift","load","callback","worker","cache","Cache","cachePath","CACHE_PATH","get","DISTS_URL","err","SCHEDULES_URL","Promise","reject","loadSync","getSync"],"mappings":"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"}
1
+ {"version":3,"sources":["/Users/kevin/Dev/OpenSource/node-version/node-semvers/src/NodeVersions.ts"],"sourcesContent":["import Cache, { type CacheOptions } from 'fetch-json-cache';\nimport semver from 'semver';\n\nimport { CACHE_PATH, DISTS_URL, SCHEDULES_URL } from './constants.ts';\nimport { major, minor } from './lib/keyFunctions.ts';\nimport { even, odd } from './lib/lineFunctions.ts';\nimport match from './lib/match.ts';\nimport normalizeSchedule from './lib/normalizeSchedule.ts';\nimport normalizeVersion from './lib/normalizeVersion.ts';\nimport parseExpression from './parseExpression/index.ts';\n\nimport type { LoadError, LoadOptions, ResolveOptions, Schedule, ScheduleRawMap, Version, VersionRaw } from './types.ts';\n\nexport type LoadCallback = (error?: LoadError, semvers?: NodeVersions) => void;\n\ntype Wire = VersionRaw[] | ScheduleRawMap;\n\n// Only these fields are read, and the cache ships in the package, so store nothing else\nconst cacheOptions: CacheOptions<Wire, Wire> = {\n transform: (body, endpoint) => (endpoint === DISTS_URL && Array.isArray(body) ? body.map(({ version, date, lts }) => ({ version, date, lts })) : body),\n};\n\nexport default class NodeVersions {\n versions: Version[];\n schedules: Schedule[];\n\n constructor(versions: VersionRaw[], schedule: ScheduleRawMap) {\n if (!versions) throw new Error('Missing option: versions');\n if (!schedule) throw new Error('Missing option: schedule');\n\n this.schedules = [];\n for (const name in schedule) this.schedules.push(normalizeSchedule(name, schedule[name]));\n this.schedules = this.schedules.sort((a, b) => (semver.gt(semver.coerce(a.semver)?.version ?? '0.0.0', semver.coerce(b.semver)?.version ?? '0.0.0') ? 1 : -1));\n\n this.versions = [];\n for (let index = 0; index < versions.length; index++) this.versions.push(normalizeVersion(versions[index], this.schedules));\n this.versions = this.versions.sort((a, b) => (semver.gt(a.semver, b.semver) ? -1 : 1));\n }\n\n static load(callback: LoadCallback): void;\n static load(options: LoadOptions, callback: LoadCallback): void;\n static load(options?: LoadOptions): Promise<NodeVersions>;\n static load(options?: LoadOptions | LoadCallback, callback?: LoadCallback): void | Promise<NodeVersions> {\n callback = typeof options === 'function' ? options : callback;\n options = typeof options === 'function' ? {} : ((options || {}) as LoadOptions);\n\n function worker(options: LoadOptions, callback: LoadCallback) {\n const cache = new Cache(options.cachePath || CACHE_PATH, cacheOptions);\n cache.get<VersionRaw[]>(DISTS_URL, (err, versions) => {\n if (err) return callback(err);\n\n cache.get<ScheduleRawMap>(SCHEDULES_URL, (err, schedule) => {\n if (err || !versions || !schedule) return callback(err ?? new Error('Missing data'));\n callback(undefined, new NodeVersions(versions, schedule));\n });\n });\n }\n\n if (typeof callback === 'function') return worker(options, callback);\n return new Promise((resolve, reject) =>\n worker(options, (err?: LoadError, versions?: NodeVersions) => {\n if (err || !versions) return reject(err ?? new Error('No versions returned'));\n resolve(versions);\n })\n );\n }\n\n static loadSync(options?: LoadOptions): NodeVersions | null {\n const cache = new Cache(options?.cachePath || CACHE_PATH, cacheOptions);\n const versions = cache.getSync<VersionRaw[]>(DISTS_URL);\n const schedule = cache.getSync<ScheduleRawMap>(SCHEDULES_URL);\n if (!versions || !schedule) return null;\n return new NodeVersions(versions, schedule);\n }\n\n resolve(expression: string | number | Date, options?: ResolveOptions): string | string[] | Version | Version[] | null {\n options = options || {};\n const path = options.path || 'version';\n\n // normalize\n if (typeof expression === 'number') expression = `${expression}`;\n if (typeof expression !== 'string') return null;\n expression = expression.trim();\n\n // single result, try a match\n const query = parseExpression.call(this, expression, options.now || new Date());\n if (query) {\n let version: Version | null = null;\n for (let index = 0; index < this.versions.length; index++) {\n const test = this.versions[index];\n if (options.now && options.now < test.date) continue;\n if (!match(test as unknown as Record<string, unknown>, query as unknown as Record<string, unknown>)) continue;\n version = test;\n break;\n }\n if (version) return (version as unknown as Record<string, unknown>)[path] as string | Version;\n }\n\n // filtered expression\n const range = options.range || '';\n const filters: { lts: boolean; key: ((v: Version) => string) | undefined; line: ((v: Version) => boolean) | undefined } = {\n lts: !!~range.indexOf('lts'),\n key: undefined,\n line: undefined,\n };\n filters.key = ~range.indexOf('major') ? major : ~range.indexOf('minor') ? minor : undefined;\n filters.line = ~range.indexOf('even') ? even : ~range.indexOf('odd') ? odd : undefined;\n\n const results: unknown[] = [];\n const founds: Record<string, boolean> = {};\n\n for (let index = 0; index < this.versions.length; index++) {\n const test = this.versions[index];\n if (options.now && options.now < test.date) continue;\n if (filters.lts && !test.lts) continue;\n if (filters.line && !filters.line(test)) continue;\n if (!semver.satisfies(test.semver, expression)) continue;\n if (filters.key) {\n const k = filters.key(test);\n if (founds[k]) continue;\n founds[k] = true;\n }\n results.unshift((test as unknown as Record<string, unknown>)[path]);\n }\n return results as string[];\n }\n}\n"],"names":["NodeVersions","cacheOptions","transform","body","endpoint","DISTS_URL","Array","isArray","map","version","date","lts","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","test","match","range","filters","indexOf","key","undefined","line","major","minor","even","odd","results","founds","satisfies","k","unshift","load","callback","worker","cache","Cache","cachePath","CACHE_PATH","get","err","SCHEDULES_URL","Promise","reject","loadSync","getSync"],"mappings":"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"}
@@ -1,3 +1,3 @@
1
1
  export declare const CACHE_PATH: string;
2
- export declare const DISTS_URL: string;
3
- export declare const SCHEDULES_URL: string;
2
+ export declare const DISTS_URL = "https://nodejs.org/dist/index.json";
3
+ export declare const SCHEDULES_URL = "https://raw.githubusercontent.com/nodejs/Release/master/schedule.json";
@@ -1,3 +1,3 @@
1
1
  export declare const CACHE_PATH: string;
2
- export declare const DISTS_URL: string;
3
- export declare const SCHEDULES_URL: string;
2
+ export declare const DISTS_URL = "https://nodejs.org/dist/index.json";
3
+ export declare const SCHEDULES_URL = "https://raw.githubusercontent.com/nodejs/Release/master/schedule.json";
@@ -19,15 +19,15 @@ _export(exports, {
19
19
  return SCHEDULES_URL;
20
20
  }
21
21
  });
22
- var _module = /*#__PURE__*/ _interop_require_default(require("module"));
22
+ var _path = /*#__PURE__*/ _interop_require_default(require("path"));
23
+ var _url = /*#__PURE__*/ _interop_require_default(require("url"));
23
24
  function _interop_require_default(obj) {
24
25
  return obj && obj.__esModule ? obj : {
25
26
  default: obj
26
27
  };
27
28
  }
28
- var _require = typeof require === 'undefined' ? _module.default.createRequire(require("url").pathToFileURL(__filename).toString()) : require;
29
- var constants = _require('../../assets/constants.cjs');
30
- var CACHE_PATH = constants.CACHE_PATH;
31
- var DISTS_URL = constants.DISTS_URL;
32
- var SCHEDULES_URL = constants.SCHEDULES_URL;
29
+ var __dirname = _path.default.dirname(typeof __filename !== 'undefined' ? __filename : _url.default.fileURLToPath(require("url").pathToFileURL(__filename).toString()));
30
+ var CACHE_PATH = _path.default.join(__dirname, '..', '..', '.cache');
31
+ var DISTS_URL = 'https://nodejs.org/dist/index.json';
32
+ var SCHEDULES_URL = 'https://raw.githubusercontent.com/nodejs/Release/master/schedule.json';
33
33
  /* 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":["/Users/kevin/Dev/OpenSource/node-version/node-semvers/src/constants.ts"],"sourcesContent":["import Module from 'module';\n\nconst _require = typeof require === 'undefined' ? Module.createRequire(import.meta.url) : require;\nconst constants = _require('../../assets/constants.cjs');\n\nexport const CACHE_PATH = constants.CACHE_PATH as string;\nexport const DISTS_URL = constants.DISTS_URL as string;\nexport const SCHEDULES_URL = constants.SCHEDULES_URL as string;\n"],"names":["CACHE_PATH","DISTS_URL","SCHEDULES_URL","_require","require","Module","createRequire","constants"],"mappings":";;;;;;;;;;;QAKaA;eAAAA;;QACAC;eAAAA;;QACAC;eAAAA;;;6DAPM;;;;;;AAEnB,IAAMC,WAAW,OAAOC,YAAY,cAAcC,eAAM,CAACC,aAAa,CAAC,uDAAmBF;AAC1F,IAAMG,YAAYJ,SAAS;AAEpB,IAAMH,aAAaO,UAAUP,UAAU;AACvC,IAAMC,YAAYM,UAAUN,SAAS;AACrC,IAAMC,gBAAgBK,UAAUL,aAAa"}
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\nconst __dirname = path.dirname(typeof __filename !== 'undefined' ? __filename : url.fileURLToPath(import.meta.url));\n\n// Seeded at build time by scripts/generate-cache.mjs and shipped in the package, so loadSync works\n// on a fresh install. Refreshed at runtime by fetch-json-cache's etag revalidation.\nexport const CACHE_PATH = path.join(__dirname, '..', '..', '.cache');\nexport const DISTS_URL = 'https://nodejs.org/dist/index.json';\nexport const SCHEDULES_URL = 'https://raw.githubusercontent.com/nodejs/Release/master/schedule.json';\n"],"names":["CACHE_PATH","DISTS_URL","SCHEDULES_URL","__dirname","path","dirname","__filename","url","fileURLToPath","join"],"mappings":";;;;;;;;;;;QAOaA;eAAAA;;QACAC;eAAAA;;QACAC;eAAAA;;;2DATI;0DACD;;;;;;AAEhB,IAAMC,YAAYC,aAAI,CAACC,OAAO,CAAC,OAAOC,eAAe,cAAcA,aAAaC,YAAG,CAACC,aAAa,CAAC;AAI3F,IAAMR,aAAaI,aAAI,CAACK,IAAI,CAACN,WAAW,MAAM,MAAM;AACpD,IAAMF,YAAY;AAClB,IAAMC,gBAAgB"}
@@ -10,17 +10,21 @@ export interface ResolveOptions {
10
10
  range?: string;
11
11
  path?: string;
12
12
  }
13
- export interface ScheduleRaw {
13
+ export interface VersionRaw {
14
14
  version: string;
15
- name: string;
16
- semver: string;
17
15
  date: string;
16
+ lts: string | false;
17
+ }
18
+ export interface ScheduleRaw {
18
19
  start: string;
19
20
  end: string;
20
- codename?: string;
21
- lts: string;
21
+ lts?: string;
22
22
  maintenance?: string;
23
+ codename?: string;
23
24
  }
25
+ export type ScheduleRawMap = {
26
+ [name: string]: ScheduleRaw;
27
+ };
24
28
  export interface Schedule {
25
29
  name: string;
26
30
  semver: string;
@@ -31,18 +35,6 @@ export interface Schedule {
31
35
  lts?: Date;
32
36
  maintenance?: Date;
33
37
  }
34
- export interface VersionRaw {
35
- version: string;
36
- name: string;
37
- semver: string;
38
- major: number;
39
- minor: number;
40
- patch: number;
41
- lts: string;
42
- date: Date;
43
- raw: ScheduleRaw;
44
- codename: string;
45
- }
46
38
  export interface Version {
47
39
  version: string;
48
40
  name: string;
@@ -50,7 +42,7 @@ export interface Version {
50
42
  major: number;
51
43
  minor: number;
52
44
  patch: number;
53
- lts: string;
45
+ lts: string | false;
54
46
  date: Date;
55
47
  raw: VersionRaw;
56
48
  codename: string;
@@ -10,17 +10,21 @@ export interface ResolveOptions {
10
10
  range?: string;
11
11
  path?: string;
12
12
  }
13
- export interface ScheduleRaw {
13
+ export interface VersionRaw {
14
14
  version: string;
15
- name: string;
16
- semver: string;
17
15
  date: string;
16
+ lts: string | false;
17
+ }
18
+ export interface ScheduleRaw {
18
19
  start: string;
19
20
  end: string;
20
- codename?: string;
21
- lts: string;
21
+ lts?: string;
22
22
  maintenance?: string;
23
+ codename?: string;
23
24
  }
25
+ export type ScheduleRawMap = {
26
+ [name: string]: ScheduleRaw;
27
+ };
24
28
  export interface Schedule {
25
29
  name: string;
26
30
  semver: string;
@@ -31,18 +35,6 @@ export interface Schedule {
31
35
  lts?: Date;
32
36
  maintenance?: Date;
33
37
  }
34
- export interface VersionRaw {
35
- version: string;
36
- name: string;
37
- semver: string;
38
- major: number;
39
- minor: number;
40
- patch: number;
41
- lts: string;
42
- date: Date;
43
- raw: ScheduleRaw;
44
- codename: string;
45
- }
46
38
  export interface Version {
47
39
  version: string;
48
40
  name: string;
@@ -50,7 +42,7 @@ export interface Version {
50
42
  major: number;
51
43
  minor: number;
52
44
  patch: number;
53
- lts: string;
45
+ lts: string | false;
54
46
  date: Date;
55
47
  raw: VersionRaw;
56
48
  codename: string;
@@ -1,9 +1,9 @@
1
- import type { LoadError, LoadOptions, ResolveOptions, Schedule, ScheduleRaw, Version, VersionRaw } from './types.js';
1
+ import type { LoadError, LoadOptions, ResolveOptions, Schedule, ScheduleRawMap, Version, VersionRaw } from './types.js';
2
2
  export type LoadCallback = (error?: LoadError, semvers?: NodeVersions) => void;
3
3
  export default class NodeVersions {
4
4
  versions: Version[];
5
5
  schedules: Schedule[];
6
- constructor(versions: VersionRaw[], schedule: ScheduleRaw[]);
6
+ constructor(versions: VersionRaw[], schedule: ScheduleRawMap);
7
7
  static load(callback: LoadCallback): void;
8
8
  static load(options: LoadOptions, callback: LoadCallback): void;
9
9
  static load(options?: LoadOptions): Promise<NodeVersions>;
@@ -7,12 +7,20 @@ import match from './lib/match.js';
7
7
  import normalizeSchedule from './lib/normalizeSchedule.js';
8
8
  import normalizeVersion from './lib/normalizeVersion.js';
9
9
  import parseExpression from './parseExpression/index.js';
10
+ // Only these fields are read, and the cache ships in the package, so store nothing else
11
+ const cacheOptions = {
12
+ transform: (body, endpoint)=>endpoint === DISTS_URL && Array.isArray(body) ? body.map(({ version, date, lts })=>({
13
+ version,
14
+ date,
15
+ lts
16
+ })) : body
17
+ };
10
18
  let NodeVersions = class NodeVersions {
11
19
  static load(options, callback) {
12
20
  callback = typeof options === 'function' ? options : callback;
13
21
  options = typeof options === 'function' ? {} : options || {};
14
22
  function worker(options, callback) {
15
- const cache = new Cache(options.cachePath || CACHE_PATH);
23
+ const cache = new Cache(options.cachePath || CACHE_PATH, cacheOptions);
16
24
  cache.get(DISTS_URL, (err, versions)=>{
17
25
  if (err) return callback(err);
18
26
  cache.get(SCHEDULES_URL, (err, schedule)=>{
@@ -28,7 +36,7 @@ let NodeVersions = class NodeVersions {
28
36
  }));
29
37
  }
30
38
  static loadSync(options) {
31
- const cache = new Cache((options === null || options === void 0 ? void 0 : options.cachePath) || CACHE_PATH);
39
+ const cache = new Cache((options === null || options === void 0 ? void 0 : options.cachePath) || CACHE_PATH, cacheOptions);
32
40
  const versions = cache.getSync(DISTS_URL);
33
41
  const schedule = cache.getSync(SCHEDULES_URL);
34
42
  if (!versions || !schedule) return null;
@@ -1 +1 @@
1
- {"version":3,"sources":["/Users/kevin/Dev/OpenSource/node-version/node-semvers/src/NodeVersions.ts"],"sourcesContent":["import Cache from 'fetch-json-cache';\nimport semver from 'semver';\n\nimport { CACHE_PATH, DISTS_URL, SCHEDULES_URL } from './constants.ts';\nimport { major, minor } from './lib/keyFunctions.ts';\nimport { even, odd } from './lib/lineFunctions.ts';\nimport match from './lib/match.ts';\nimport normalizeSchedule from './lib/normalizeSchedule.ts';\nimport normalizeVersion from './lib/normalizeVersion.ts';\nimport parseExpression from './parseExpression/index.ts';\n\nimport type { LoadError, LoadOptions, ResolveOptions, Schedule, ScheduleRaw, Version, VersionRaw } from './types.ts';\n\nexport type LoadCallback = (error?: LoadError, semvers?: NodeVersions) => void;\n\nexport default class NodeVersions {\n versions: Version[];\n schedules: Schedule[];\n\n constructor(versions: VersionRaw[], schedule: ScheduleRaw[]) {\n if (!versions) throw new Error('Missing option: versions');\n if (!schedule) throw new Error('Missing option: schedule');\n\n this.schedules = [];\n for (const name in schedule) this.schedules.push(normalizeSchedule(name, schedule[name]));\n this.schedules = this.schedules.sort((a, b) => (semver.gt(semver.coerce(a.semver)?.version ?? '0.0.0', semver.coerce(b.semver)?.version ?? '0.0.0') ? 1 : -1));\n\n this.versions = [];\n for (let index = 0; index < versions.length; index++) this.versions.push(normalizeVersion(versions[index], this.schedules));\n this.versions = this.versions.sort((a, b) => (semver.gt(a.semver, b.semver) ? -1 : 1));\n }\n\n static load(callback: LoadCallback): void;\n static load(options: LoadOptions, callback: LoadCallback): void;\n static load(options?: LoadOptions): Promise<NodeVersions>;\n static load(options?: LoadOptions | LoadCallback, callback?: LoadCallback): void | Promise<NodeVersions> {\n callback = typeof options === 'function' ? options : callback;\n options = typeof options === 'function' ? {} : ((options || {}) as LoadOptions);\n\n function worker(options: LoadOptions, callback: LoadCallback) {\n const cache = new Cache(options.cachePath || CACHE_PATH);\n cache.get<VersionRaw[]>(DISTS_URL, (err, versions) => {\n if (err) return callback(err);\n\n cache.get<ScheduleRaw[]>(SCHEDULES_URL, (err, schedule) => {\n if (err || !versions || !schedule) return callback(err ?? new Error('Missing data'));\n callback(undefined, new NodeVersions(versions, schedule));\n });\n });\n }\n\n if (typeof callback === 'function') return worker(options, callback);\n return new Promise((resolve, reject) =>\n worker(options, (err?: LoadError, versions?: NodeVersions) => {\n if (err || !versions) return reject(err ?? new Error('No versions returned'));\n resolve(versions);\n })\n );\n }\n\n static loadSync(options?: LoadOptions): NodeVersions | null {\n const cache = new Cache(options?.cachePath || CACHE_PATH);\n const versions = cache.getSync<VersionRaw[]>(DISTS_URL);\n const schedule = cache.getSync<ScheduleRaw[]>(SCHEDULES_URL);\n if (!versions || !schedule) return null;\n return new NodeVersions(versions, schedule);\n }\n\n resolve(expression: string | number | Date, options?: ResolveOptions): string | string[] | Version | Version[] | null {\n options = options || {};\n const path = options.path || 'version';\n\n // normalize\n if (typeof expression === 'number') expression = `${expression}`;\n if (typeof expression !== 'string') return null;\n expression = expression.trim();\n\n // single result, try a match\n const query = parseExpression.call(this, expression, options.now || new Date());\n if (query) {\n let version: Version | null = null;\n for (let index = 0; index < this.versions.length; index++) {\n const test = this.versions[index];\n if (options.now && options.now < test.date) continue;\n if (!match(test as unknown as Record<string, unknown>, query as unknown as Record<string, unknown>)) continue;\n version = test;\n break;\n }\n if (version) return (version as unknown as Record<string, unknown>)[path] as string | Version;\n }\n\n // filtered expression\n const range = options.range || '';\n const filters: { lts: boolean; key: ((v: Version) => string) | undefined; line: ((v: Version) => boolean) | undefined } = {\n lts: !!~range.indexOf('lts'),\n key: undefined,\n line: undefined,\n };\n filters.key = ~range.indexOf('major') ? major : ~range.indexOf('minor') ? minor : undefined;\n filters.line = ~range.indexOf('even') ? even : ~range.indexOf('odd') ? odd : undefined;\n\n const results: unknown[] = [];\n const founds: Record<string, boolean> = {};\n\n for (let index = 0; index < this.versions.length; index++) {\n const test = this.versions[index];\n if (options.now && options.now < test.date) continue;\n if (filters.lts && !test.lts) continue;\n if (filters.line && !filters.line(test)) continue;\n if (!semver.satisfies(test.semver, expression)) continue;\n if (filters.key) {\n const k = filters.key(test);\n if (founds[k]) continue;\n founds[k] = true;\n }\n results.unshift((test as unknown as Record<string, unknown>)[path]);\n }\n return results as string[];\n }\n}\n"],"names":["Cache","semver","CACHE_PATH","DISTS_URL","SCHEDULES_URL","major","minor","even","odd","match","normalizeSchedule","normalizeVersion","parseExpression","NodeVersions","load","options","callback","worker","cache","cachePath","get","err","versions","schedule","Error","undefined","Promise","resolve","reject","loadSync","getSync","expression","path","trim","query","call","now","Date","version","index","length","test","date","range","filters","lts","indexOf","key","line","results","founds","satisfies","k","unshift","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, { type CacheOptions } from 'fetch-json-cache';\nimport semver from 'semver';\n\nimport { CACHE_PATH, DISTS_URL, SCHEDULES_URL } from './constants.ts';\nimport { major, minor } from './lib/keyFunctions.ts';\nimport { even, odd } from './lib/lineFunctions.ts';\nimport match from './lib/match.ts';\nimport normalizeSchedule from './lib/normalizeSchedule.ts';\nimport normalizeVersion from './lib/normalizeVersion.ts';\nimport parseExpression from './parseExpression/index.ts';\n\nimport type { LoadError, LoadOptions, ResolveOptions, Schedule, ScheduleRawMap, Version, VersionRaw } from './types.ts';\n\nexport type LoadCallback = (error?: LoadError, semvers?: NodeVersions) => void;\n\ntype Wire = VersionRaw[] | ScheduleRawMap;\n\n// Only these fields are read, and the cache ships in the package, so store nothing else\nconst cacheOptions: CacheOptions<Wire, Wire> = {\n transform: (body, endpoint) => (endpoint === DISTS_URL && Array.isArray(body) ? body.map(({ version, date, lts }) => ({ version, date, lts })) : body),\n};\n\nexport default class NodeVersions {\n versions: Version[];\n schedules: Schedule[];\n\n constructor(versions: VersionRaw[], schedule: ScheduleRawMap) {\n if (!versions) throw new Error('Missing option: versions');\n if (!schedule) throw new Error('Missing option: schedule');\n\n this.schedules = [];\n for (const name in schedule) this.schedules.push(normalizeSchedule(name, schedule[name]));\n this.schedules = this.schedules.sort((a, b) => (semver.gt(semver.coerce(a.semver)?.version ?? '0.0.0', semver.coerce(b.semver)?.version ?? '0.0.0') ? 1 : -1));\n\n this.versions = [];\n for (let index = 0; index < versions.length; index++) this.versions.push(normalizeVersion(versions[index], this.schedules));\n this.versions = this.versions.sort((a, b) => (semver.gt(a.semver, b.semver) ? -1 : 1));\n }\n\n static load(callback: LoadCallback): void;\n static load(options: LoadOptions, callback: LoadCallback): void;\n static load(options?: LoadOptions): Promise<NodeVersions>;\n static load(options?: LoadOptions | LoadCallback, callback?: LoadCallback): void | Promise<NodeVersions> {\n callback = typeof options === 'function' ? options : callback;\n options = typeof options === 'function' ? {} : ((options || {}) as LoadOptions);\n\n function worker(options: LoadOptions, callback: LoadCallback) {\n const cache = new Cache(options.cachePath || CACHE_PATH, cacheOptions);\n cache.get<VersionRaw[]>(DISTS_URL, (err, versions) => {\n if (err) return callback(err);\n\n cache.get<ScheduleRawMap>(SCHEDULES_URL, (err, schedule) => {\n if (err || !versions || !schedule) return callback(err ?? new Error('Missing data'));\n callback(undefined, new NodeVersions(versions, schedule));\n });\n });\n }\n\n if (typeof callback === 'function') return worker(options, callback);\n return new Promise((resolve, reject) =>\n worker(options, (err?: LoadError, versions?: NodeVersions) => {\n if (err || !versions) return reject(err ?? new Error('No versions returned'));\n resolve(versions);\n })\n );\n }\n\n static loadSync(options?: LoadOptions): NodeVersions | null {\n const cache = new Cache(options?.cachePath || CACHE_PATH, cacheOptions);\n const versions = cache.getSync<VersionRaw[]>(DISTS_URL);\n const schedule = cache.getSync<ScheduleRawMap>(SCHEDULES_URL);\n if (!versions || !schedule) return null;\n return new NodeVersions(versions, schedule);\n }\n\n resolve(expression: string | number | Date, options?: ResolveOptions): string | string[] | Version | Version[] | null {\n options = options || {};\n const path = options.path || 'version';\n\n // normalize\n if (typeof expression === 'number') expression = `${expression}`;\n if (typeof expression !== 'string') return null;\n expression = expression.trim();\n\n // single result, try a match\n const query = parseExpression.call(this, expression, options.now || new Date());\n if (query) {\n let version: Version | null = null;\n for (let index = 0; index < this.versions.length; index++) {\n const test = this.versions[index];\n if (options.now && options.now < test.date) continue;\n if (!match(test as unknown as Record<string, unknown>, query as unknown as Record<string, unknown>)) continue;\n version = test;\n break;\n }\n if (version) return (version as unknown as Record<string, unknown>)[path] as string | Version;\n }\n\n // filtered expression\n const range = options.range || '';\n const filters: { lts: boolean; key: ((v: Version) => string) | undefined; line: ((v: Version) => boolean) | undefined } = {\n lts: !!~range.indexOf('lts'),\n key: undefined,\n line: undefined,\n };\n filters.key = ~range.indexOf('major') ? major : ~range.indexOf('minor') ? minor : undefined;\n filters.line = ~range.indexOf('even') ? even : ~range.indexOf('odd') ? odd : undefined;\n\n const results: unknown[] = [];\n const founds: Record<string, boolean> = {};\n\n for (let index = 0; index < this.versions.length; index++) {\n const test = this.versions[index];\n if (options.now && options.now < test.date) continue;\n if (filters.lts && !test.lts) continue;\n if (filters.line && !filters.line(test)) continue;\n if (!semver.satisfies(test.semver, expression)) continue;\n if (filters.key) {\n const k = filters.key(test);\n if (founds[k]) continue;\n founds[k] = true;\n }\n results.unshift((test as unknown as Record<string, unknown>)[path]);\n }\n return results as string[];\n }\n}\n"],"names":["Cache","semver","CACHE_PATH","DISTS_URL","SCHEDULES_URL","major","minor","even","odd","match","normalizeSchedule","normalizeVersion","parseExpression","cacheOptions","transform","body","endpoint","Array","isArray","map","version","date","lts","NodeVersions","load","options","callback","worker","cache","cachePath","get","err","versions","schedule","Error","undefined","Promise","resolve","reject","loadSync","getSync","expression","path","trim","query","call","now","Date","index","length","test","range","filters","indexOf","key","line","results","founds","satisfies","k","unshift","schedules","name","push","sort","a","b","gt","coerce"],"mappings":"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"}
@@ -1,3 +1,3 @@
1
1
  export declare const CACHE_PATH: string;
2
- export declare const DISTS_URL: string;
3
- export declare const SCHEDULES_URL: string;
2
+ export declare const DISTS_URL = "https://nodejs.org/dist/index.json";
3
+ export declare const SCHEDULES_URL = "https://raw.githubusercontent.com/nodejs/Release/master/schedule.json";
@@ -1,6 +1,8 @@
1
- import Module from 'module';
2
- const _require = typeof require === 'undefined' ? Module.createRequire(import.meta.url) : require;
3
- const constants = _require('../../assets/constants.cjs');
4
- export const CACHE_PATH = constants.CACHE_PATH;
5
- export const DISTS_URL = constants.DISTS_URL;
6
- export const SCHEDULES_URL = constants.SCHEDULES_URL;
1
+ import path from 'path';
2
+ import url from 'url';
3
+ const __dirname = path.dirname(typeof __filename !== 'undefined' ? __filename : url.fileURLToPath(import.meta.url));
4
+ // Seeded at build time by scripts/generate-cache.mjs and shipped in the package, so loadSync works
5
+ // on a fresh install. Refreshed at runtime by fetch-json-cache's etag revalidation.
6
+ export const CACHE_PATH = path.join(__dirname, '..', '..', '.cache');
7
+ export const DISTS_URL = 'https://nodejs.org/dist/index.json';
8
+ export const SCHEDULES_URL = 'https://raw.githubusercontent.com/nodejs/Release/master/schedule.json';
@@ -1 +1 @@
1
- {"version":3,"sources":["/Users/kevin/Dev/OpenSource/node-version/node-semvers/src/constants.ts"],"sourcesContent":["import Module from 'module';\n\nconst _require = typeof require === 'undefined' ? Module.createRequire(import.meta.url) : require;\nconst constants = _require('../../assets/constants.cjs');\n\nexport const CACHE_PATH = constants.CACHE_PATH as string;\nexport const DISTS_URL = constants.DISTS_URL as string;\nexport const SCHEDULES_URL = constants.SCHEDULES_URL as string;\n"],"names":["Module","_require","require","createRequire","url","constants","CACHE_PATH","DISTS_URL","SCHEDULES_URL"],"mappings":"AAAA,OAAOA,YAAY,SAAS;AAE5B,MAAMC,WAAW,OAAOC,YAAY,cAAcF,OAAOG,aAAa,CAAC,YAAYC,GAAG,IAAIF;AAC1F,MAAMG,YAAYJ,SAAS;AAE3B,OAAO,MAAMK,aAAaD,UAAUC,UAAU,CAAW;AACzD,OAAO,MAAMC,YAAYF,UAAUE,SAAS,CAAW;AACvD,OAAO,MAAMC,gBAAgBH,UAAUG,aAAa,CAAW"}
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\nconst __dirname = path.dirname(typeof __filename !== 'undefined' ? __filename : url.fileURLToPath(import.meta.url));\n\n// Seeded at build time by scripts/generate-cache.mjs and shipped in the package, so loadSync works\n// on a fresh install. Refreshed at runtime by fetch-json-cache's etag revalidation.\nexport const CACHE_PATH = path.join(__dirname, '..', '..', '.cache');\nexport const DISTS_URL = 'https://nodejs.org/dist/index.json';\nexport const SCHEDULES_URL = 'https://raw.githubusercontent.com/nodejs/Release/master/schedule.json';\n"],"names":["path","url","__dirname","dirname","__filename","fileURLToPath","CACHE_PATH","join","DISTS_URL","SCHEDULES_URL"],"mappings":"AAAA,OAAOA,UAAU,OAAO;AACxB,OAAOC,SAAS,MAAM;AAEtB,MAAMC,YAAYF,KAAKG,OAAO,CAAC,OAAOC,eAAe,cAAcA,aAAaH,IAAII,aAAa,CAAC,YAAYJ,GAAG;AAEjH,mGAAmG;AACnG,oFAAoF;AACpF,OAAO,MAAMK,aAAaN,KAAKO,IAAI,CAACL,WAAW,MAAM,MAAM,UAAU;AACrE,OAAO,MAAMM,YAAY,qCAAqC;AAC9D,OAAO,MAAMC,gBAAgB,wEAAwE"}
@@ -10,17 +10,21 @@ export interface ResolveOptions {
10
10
  range?: string;
11
11
  path?: string;
12
12
  }
13
- export interface ScheduleRaw {
13
+ export interface VersionRaw {
14
14
  version: string;
15
- name: string;
16
- semver: string;
17
15
  date: string;
16
+ lts: string | false;
17
+ }
18
+ export interface ScheduleRaw {
18
19
  start: string;
19
20
  end: string;
20
- codename?: string;
21
- lts: string;
21
+ lts?: string;
22
22
  maintenance?: string;
23
+ codename?: string;
23
24
  }
25
+ export type ScheduleRawMap = {
26
+ [name: string]: ScheduleRaw;
27
+ };
24
28
  export interface Schedule {
25
29
  name: string;
26
30
  semver: string;
@@ -31,18 +35,6 @@ export interface Schedule {
31
35
  lts?: Date;
32
36
  maintenance?: Date;
33
37
  }
34
- export interface VersionRaw {
35
- version: string;
36
- name: string;
37
- semver: string;
38
- major: number;
39
- minor: number;
40
- patch: number;
41
- lts: string;
42
- date: Date;
43
- raw: ScheduleRaw;
44
- codename: string;
45
- }
46
38
  export interface Version {
47
39
  version: string;
48
40
  name: string;
@@ -50,7 +42,7 @@ export interface Version {
50
42
  major: number;
51
43
  minor: number;
52
44
  patch: number;
53
- lts: string;
45
+ lts: string | false;
54
46
  date: Date;
55
47
  raw: VersionRaw;
56
48
  codename: string;
@@ -1 +1 @@
1
- {"version":3,"sources":["/Users/kevin/Dev/OpenSource/node-version/node-semvers/src/types.ts"],"sourcesContent":["export interface LoadOptions {\n cachePath?: string;\n now?: Date;\n}\n\nexport interface LoadError extends Error {\n code?: number;\n}\n\nexport interface ResolveOptions {\n now?: Date;\n range?: string;\n path?: string;\n}\n\nexport interface ScheduleRaw {\n version: string;\n name: string;\n semver: string;\n date: string;\n start: string;\n end: string;\n codename?: string;\n lts: string;\n maintenance?: string;\n}\n\nexport interface Schedule {\n name: string;\n semver: string;\n raw: ScheduleRaw;\n start: Date;\n end: Date;\n codename?: string;\n lts?: Date;\n maintenance?: Date;\n}\n\nexport interface VersionRaw {\n version: string;\n name: string;\n semver: string;\n major: number;\n minor: number;\n patch: number;\n lts: string;\n date: Date;\n raw: ScheduleRaw;\n codename: string;\n}\n\nexport interface Version {\n version: string;\n name: string;\n semver: string;\n major: number;\n minor: number;\n patch: number;\n lts: string;\n date: Date;\n raw: VersionRaw;\n codename: string;\n}\n\nexport interface ParsedVersion {\n major: number;\n minor?: number;\n patch?: number;\n}\n\nexport interface ParsedCodename {\n codename: string;\n}\n\nexport interface ParsedName {\n name: string;\n}\n\nexport type ParsedExpression = ParsedVersion | ParsedCodename | ParsedName;\n"],"names":[],"mappings":"AA8EA,WAA2E"}
1
+ {"version":3,"sources":["/Users/kevin/Dev/OpenSource/node-version/node-semvers/src/types.ts"],"sourcesContent":["export interface LoadOptions {\n cachePath?: string;\n now?: Date;\n}\n\nexport interface LoadError extends Error {\n code?: number;\n}\n\nexport interface ResolveOptions {\n now?: Date;\n range?: string;\n path?: string;\n}\n\n// The wire shapes, as nodejs.org/dist/index.json and nodejs/Release/schedule.json send them.\n// Distinct from the normalized Version/Schedule this package exposes.\nexport interface VersionRaw {\n version: string;\n date: string;\n lts: string | false;\n}\n\nexport interface ScheduleRaw {\n start: string;\n end: string;\n lts?: string;\n maintenance?: string;\n codename?: string;\n}\n\nexport type ScheduleRawMap = { [name: string]: ScheduleRaw };\n\nexport interface Schedule {\n name: string;\n semver: string;\n raw: ScheduleRaw;\n start: Date;\n end: Date;\n codename?: string;\n lts?: Date;\n maintenance?: Date;\n}\n\nexport interface Version {\n version: string;\n name: string;\n semver: string;\n major: number;\n minor: number;\n patch: number;\n lts: string | false;\n date: Date;\n raw: VersionRaw;\n codename: string;\n}\n\nexport interface ParsedVersion {\n major: number;\n minor?: number;\n patch?: number;\n}\n\nexport interface ParsedCodename {\n codename: string;\n}\n\nexport interface ParsedName {\n name: string;\n}\n\nexport type ParsedExpression = ParsedVersion | ParsedCodename | ParsedName;\n"],"names":[],"mappings":"AAuEA,WAA2E"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "node-semvers",
3
- "version": "1.7.4",
3
+ "version": "1.8.0",
4
4
  "description": "Utilities for managing versions of node including looking up codenames",
5
5
  "keywords": [
6
6
  "node",
@@ -33,13 +33,12 @@
33
33
  },
34
34
  "files": [
35
35
  "dist",
36
- "assets"
36
+ ".cache"
37
37
  ],
38
38
  "scripts": {
39
39
  "build": "tsds build",
40
- "build:assets": "tsds validate && mkdir -p assets && cp -R dist/cjs/assets/*.cjs assets/",
40
+ "build:cache": "node scripts/generate-cache.mjs",
41
41
  "format": "tsds format",
42
- "postinstall": "node assets/postinstall.cjs",
43
42
  "prepublishOnly": "tsds validate",
44
43
  "test": "tsds test:node --no-timeouts",
45
44
  "test:engines": "nvu engines tsds test:node --no-timeouts",
@@ -1,16 +0,0 @@
1
- 'use strict';
2
- var path = require('path');
3
- module.exports = {
4
- CACHE_PATH: path.join(__dirname, '..', '.cache'),
5
- DISTS_URL: 'https://nodejs.org/dist/index.json',
6
- SCHEDULES_URL: 'https://raw.githubusercontent.com/nodejs/Release/master/schedule.json',
7
- };
8
- /* CJS INTEROP */ if (exports.__esModule && exports.default) {
9
- try {
10
- Object.defineProperty(exports.default, '__esModule', { value: true });
11
- for (var key in exports) {
12
- exports.default[key] = exports[key];
13
- }
14
- } catch (_) {}
15
- module.exports = exports.default;
16
- }
@@ -1,51 +0,0 @@
1
- 'use strict';
2
- var exit = require('exit-compat');
3
- var Cache = require('fetch-json-cache');
4
- var _require = require('./constants.cjs');
5
- var CACHE_PATH = _require.CACHE_PATH;
6
- var DISTS_URL = _require.DISTS_URL;
7
- var SCHEDULES_URL = _require.SCHEDULES_URL;
8
- function fetchWithRetry(cache, url, retries, callback) {
9
- cache.get(
10
- url,
11
- {
12
- force: true,
13
- },
14
- function (err) {
15
- if (err && retries > 0) {
16
- setTimeout(function () {
17
- fetchWithRetry(cache, url, retries - 1, callback);
18
- }, 1000);
19
- } else {
20
- callback(err);
21
- }
22
- }
23
- );
24
- }
25
- function cacheWithRetry(callback) {
26
- var cache = new Cache(CACHE_PATH);
27
- fetchWithRetry(cache, DISTS_URL, 3, function (err) {
28
- if (err) return callback(err);
29
- fetchWithRetry(cache, SCHEDULES_URL, 3, callback);
30
- });
31
- }
32
- // run patch
33
- cacheWithRetry(function (err) {
34
- if (err) {
35
- console.log('postinstall warning: '.concat(err.message));
36
- console.log('Cache not updated after retries.');
37
- exit(0);
38
- } else {
39
- console.log('postinstall succeeded');
40
- exit(0);
41
- }
42
- });
43
- /* CJS INTEROP */ if (exports.__esModule && exports.default) {
44
- try {
45
- Object.defineProperty(exports.default, '__esModule', { value: true });
46
- for (var key in exports) {
47
- exports.default[key] = exports[key];
48
- }
49
- } catch (_) {}
50
- module.exports = exports.default;
51
- }
@@ -1,8 +0,0 @@
1
- "use strict";
2
- var path = require('path');
3
- module.exports = {
4
- CACHE_PATH: path.join(__dirname, '..', '.cache'),
5
- DISTS_URL: 'https://nodejs.org/dist/index.json',
6
- SCHEDULES_URL: 'https://raw.githubusercontent.com/nodejs/Release/master/schedule.json'
7
- };
8
- /* 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/assets/constants.cts"],"sourcesContent":["const path = require('path');\n\nmodule.exports = {\n CACHE_PATH: path.join(__dirname, '..', '.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","require","module","exports","CACHE_PATH","join","__dirname","DISTS_URL","SCHEDULES_URL"],"mappings":";AAAA,IAAMA,OAAOC,QAAQ;AAErBC,OAAOC,OAAO,GAAG;IACfC,YAAYJ,KAAKK,IAAI,CAACC,WAAW,MAAM;IACvCC,WAAW;IACXC,eAAe;AACjB"}
@@ -1 +0,0 @@
1
- export {};
@@ -1,35 +0,0 @@
1
- "use strict";
2
- var exit = require('exit-compat');
3
- var Cache = require('fetch-json-cache');
4
- var _require = require('./constants.cjs'), CACHE_PATH = _require.CACHE_PATH, DISTS_URL = _require.DISTS_URL, SCHEDULES_URL = _require.SCHEDULES_URL;
5
- function fetchWithRetry(cache, url, retries, callback) {
6
- cache.get(url, {
7
- force: true
8
- }, function(err) {
9
- if (err && retries > 0) {
10
- setTimeout(function() {
11
- fetchWithRetry(cache, url, retries - 1, callback);
12
- }, 1000);
13
- } else {
14
- callback(err);
15
- }
16
- });
17
- }
18
- function cacheWithRetry(callback) {
19
- var cache = new Cache(CACHE_PATH);
20
- fetchWithRetry(cache, DISTS_URL, 3, function(err) {
21
- if (err) return callback(err);
22
- fetchWithRetry(cache, SCHEDULES_URL, 3, callback);
23
- });
24
- }
25
- // run patch
26
- cacheWithRetry(function(err) {
27
- if (err) {
28
- console.log("postinstall warning: ".concat(err.message));
29
- console.log('Cache not updated after retries.');
30
- return exit(0);
31
- }
32
- console.log('postinstall succeeded');
33
- exit(0);
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; }
@@ -1 +0,0 @@
1
- {"version":3,"sources":["/Users/kevin/Dev/OpenSource/node-version/node-semvers/src/assets/postinstall.cts"],"sourcesContent":["const exit = require('exit-compat');\nconst Cache = require('fetch-json-cache');\nconst { CACHE_PATH, DISTS_URL, SCHEDULES_URL } = require('./constants.cts');\n\ntype Callback = (err: Error | null) => void;\n\nfunction fetchWithRetry(cache: typeof Cache.prototype, url: string, retries: number, callback: Callback) {\n cache.get(url, { force: true }, (err: Error | null) => {\n if (err && retries > 0) {\n setTimeout(() => {\n fetchWithRetry(cache, url, retries - 1, callback);\n }, 1000);\n } else {\n callback(err);\n }\n });\n}\n\nfunction cacheWithRetry(callback: Callback) {\n const cache = new Cache(CACHE_PATH);\n fetchWithRetry(cache, DISTS_URL, 3, (err) => {\n if (err) return callback(err);\n fetchWithRetry(cache, SCHEDULES_URL, 3, callback);\n });\n}\n\n// run patch\ncacheWithRetry((err) => {\n if (err) {\n console.log(`postinstall warning: ${err.message}`);\n console.log('Cache not updated after retries.');\n return exit(0);\n }\n\n console.log('postinstall succeeded');\n exit(0);\n});\n"],"names":["exit","require","Cache","CACHE_PATH","DISTS_URL","SCHEDULES_URL","fetchWithRetry","cache","url","retries","callback","get","force","err","setTimeout","cacheWithRetry","console","log","message"],"mappings":";AAAA,IAAMA,OAAOC,QAAQ;AACrB,IAAMC,QAAQD,QAAQ;AACtB,IAAiDA,WAAAA,QAAQ,oBAAjDE,aAAyCF,SAAzCE,YAAYC,YAA6BH,SAA7BG,WAAWC,gBAAkBJ,SAAlBI;AAI/B,SAASC,eAAeC,KAA6B,EAAEC,GAAW,EAAEC,OAAe,EAAEC,QAAkB;IACrGH,MAAMI,GAAG,CAACH,KAAK;QAAEI,OAAO;IAAK,GAAG,SAACC;QAC/B,IAAIA,OAAOJ,UAAU,GAAG;YACtBK,WAAW;gBACTR,eAAeC,OAAOC,KAAKC,UAAU,GAAGC;YAC1C,GAAG;QACL,OAAO;YACLA,SAASG;QACX;IACF;AACF;AAEA,SAASE,eAAeL,QAAkB;IACxC,IAAMH,QAAQ,IAAIL,MAAMC;IACxBG,eAAeC,OAAOH,WAAW,GAAG,SAACS;QACnC,IAAIA,KAAK,OAAOH,SAASG;QACzBP,eAAeC,OAAOF,eAAe,GAAGK;IAC1C;AACF;AAEA,YAAY;AACZK,eAAe,SAACF;IACd,IAAIA,KAAK;QACPG,QAAQC,GAAG,CAAC,AAAC,wBAAmC,OAAZJ,IAAIK,OAAO;QAC/CF,QAAQC,GAAG,CAAC;QACZ,OAAOjB,KAAK;IACd;IAEAgB,QAAQC,GAAG,CAAC;IACZjB,KAAK;AACP"}
@@ -1 +0,0 @@
1
- export {};
@@ -1,6 +0,0 @@
1
- const path = require('path');
2
- module.exports = {
3
- CACHE_PATH: path.join(__dirname, '..', '.cache'),
4
- DISTS_URL: 'https://nodejs.org/dist/index.json',
5
- SCHEDULES_URL: 'https://raw.githubusercontent.com/nodejs/Release/master/schedule.json'
6
- };
@@ -1 +0,0 @@
1
- {"version":3,"sources":["/Users/kevin/Dev/OpenSource/node-version/node-semvers/src/assets/constants.cts"],"sourcesContent":["const path = require('path');\n\nmodule.exports = {\n CACHE_PATH: path.join(__dirname, '..', '.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","require","module","exports","CACHE_PATH","join","__dirname","DISTS_URL","SCHEDULES_URL"],"mappings":"AAAA,MAAMA,OAAOC,QAAQ;AAErBC,OAAOC,OAAO,GAAG;IACfC,YAAYJ,KAAKK,IAAI,CAACC,WAAW,MAAM;IACvCC,WAAW;IACXC,eAAe;AACjB"}
@@ -1 +0,0 @@
1
- export {};
@@ -1,33 +0,0 @@
1
- const exit = require('exit-compat');
2
- const Cache = require('fetch-json-cache');
3
- const { CACHE_PATH, DISTS_URL, SCHEDULES_URL } = require('./constants.cts');
4
- function fetchWithRetry(cache, url, retries, callback) {
5
- cache.get(url, {
6
- force: true
7
- }, (err)=>{
8
- if (err && retries > 0) {
9
- setTimeout(()=>{
10
- fetchWithRetry(cache, url, retries - 1, callback);
11
- }, 1000);
12
- } else {
13
- callback(err);
14
- }
15
- });
16
- }
17
- function cacheWithRetry(callback) {
18
- const cache = new Cache(CACHE_PATH);
19
- fetchWithRetry(cache, DISTS_URL, 3, (err)=>{
20
- if (err) return callback(err);
21
- fetchWithRetry(cache, SCHEDULES_URL, 3, callback);
22
- });
23
- }
24
- // run patch
25
- cacheWithRetry((err)=>{
26
- if (err) {
27
- console.log(`postinstall warning: ${err.message}`);
28
- console.log('Cache not updated after retries.');
29
- return exit(0);
30
- }
31
- console.log('postinstall succeeded');
32
- exit(0);
33
- });
@@ -1 +0,0 @@
1
- {"version":3,"sources":["/Users/kevin/Dev/OpenSource/node-version/node-semvers/src/assets/postinstall.cts"],"sourcesContent":["const exit = require('exit-compat');\nconst Cache = require('fetch-json-cache');\nconst { CACHE_PATH, DISTS_URL, SCHEDULES_URL } = require('./constants.cts');\n\ntype Callback = (err: Error | null) => void;\n\nfunction fetchWithRetry(cache: typeof Cache.prototype, url: string, retries: number, callback: Callback) {\n cache.get(url, { force: true }, (err: Error | null) => {\n if (err && retries > 0) {\n setTimeout(() => {\n fetchWithRetry(cache, url, retries - 1, callback);\n }, 1000);\n } else {\n callback(err);\n }\n });\n}\n\nfunction cacheWithRetry(callback: Callback) {\n const cache = new Cache(CACHE_PATH);\n fetchWithRetry(cache, DISTS_URL, 3, (err) => {\n if (err) return callback(err);\n fetchWithRetry(cache, SCHEDULES_URL, 3, callback);\n });\n}\n\n// run patch\ncacheWithRetry((err) => {\n if (err) {\n console.log(`postinstall warning: ${err.message}`);\n console.log('Cache not updated after retries.');\n return exit(0);\n }\n\n console.log('postinstall succeeded');\n exit(0);\n});\n"],"names":["exit","require","Cache","CACHE_PATH","DISTS_URL","SCHEDULES_URL","fetchWithRetry","cache","url","retries","callback","get","force","err","setTimeout","cacheWithRetry","console","log","message"],"mappings":"AAAA,MAAMA,OAAOC,QAAQ;AACrB,MAAMC,QAAQD,QAAQ;AACtB,MAAM,EAAEE,UAAU,EAAEC,SAAS,EAAEC,aAAa,EAAE,GAAGJ,QAAQ;AAIzD,SAASK,eAAeC,KAA6B,EAAEC,GAAW,EAAEC,OAAe,EAAEC,QAAkB;IACrGH,MAAMI,GAAG,CAACH,KAAK;QAAEI,OAAO;IAAK,GAAG,CAACC;QAC/B,IAAIA,OAAOJ,UAAU,GAAG;YACtBK,WAAW;gBACTR,eAAeC,OAAOC,KAAKC,UAAU,GAAGC;YAC1C,GAAG;QACL,OAAO;YACLA,SAASG;QACX;IACF;AACF;AAEA,SAASE,eAAeL,QAAkB;IACxC,MAAMH,QAAQ,IAAIL,MAAMC;IACxBG,eAAeC,OAAOH,WAAW,GAAG,CAACS;QACnC,IAAIA,KAAK,OAAOH,SAASG;QACzBP,eAAeC,OAAOF,eAAe,GAAGK;IAC1C;AACF;AAEA,YAAY;AACZK,eAAe,CAACF;IACd,IAAIA,KAAK;QACPG,QAAQC,GAAG,CAAC,CAAC,qBAAqB,EAAEJ,IAAIK,OAAO,EAAE;QACjDF,QAAQC,GAAG,CAAC;QACZ,OAAOjB,KAAK;IACd;IAEAgB,QAAQC,GAAG,CAAC;IACZjB,KAAK;AACP"}
@@ -1 +0,0 @@
1
- export {};