node-version-use 2.1.5 → 2.1.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (47) hide show
  1. package/assets/installBinaries.cjs +284 -0
  2. package/assets/postinstall.cjs +11 -404
  3. package/dist/cjs/assets/installBinaries.cjs +284 -0
  4. package/dist/cjs/assets/installBinaries.cjs.map +1 -0
  5. package/dist/cjs/assets/installBinaries.d.cts +1 -0
  6. package/dist/cjs/assets/postinstall.cjs +11 -404
  7. package/dist/cjs/assets/postinstall.cjs.map +1 -1
  8. package/dist/cjs/commands/default.js.map +1 -1
  9. package/dist/cjs/commands/index.js +2 -3
  10. package/dist/cjs/commands/index.js.map +1 -1
  11. package/dist/cjs/commands/list.js.map +1 -1
  12. package/dist/cjs/commands/setup.js +23 -41
  13. package/dist/cjs/commands/setup.js.map +1 -1
  14. package/dist/cjs/commands/teardown.js +2 -1
  15. package/dist/cjs/commands/teardown.js.map +1 -1
  16. package/dist/cjs/commands/uninstall.js.map +1 -1
  17. package/dist/cjs/commands/which.js.map +1 -1
  18. package/dist/cjs/compat.d.cts +1 -0
  19. package/dist/cjs/compat.d.ts +1 -0
  20. package/dist/cjs/compat.js +11 -4
  21. package/dist/cjs/compat.js.map +1 -1
  22. package/dist/cjs/lib/findInstalledVersions.js.map +1 -1
  23. package/dist/esm/assets/installBinaries.cjs +282 -0
  24. package/dist/esm/assets/installBinaries.cjs.map +1 -0
  25. package/dist/esm/assets/installBinaries.d.cts +1 -0
  26. package/dist/esm/assets/postinstall.cjs +11 -404
  27. package/dist/esm/assets/postinstall.cjs.map +1 -1
  28. package/dist/esm/commands/default.js +8 -8
  29. package/dist/esm/commands/default.js.map +1 -1
  30. package/dist/esm/commands/index.js +2 -3
  31. package/dist/esm/commands/index.js.map +1 -1
  32. package/dist/esm/commands/list.js +3 -3
  33. package/dist/esm/commands/list.js.map +1 -1
  34. package/dist/esm/commands/setup.js +39 -57
  35. package/dist/esm/commands/setup.js.map +1 -1
  36. package/dist/esm/commands/teardown.js +2 -1
  37. package/dist/esm/commands/teardown.js.map +1 -1
  38. package/dist/esm/commands/uninstall.js +12 -12
  39. package/dist/esm/commands/uninstall.js.map +1 -1
  40. package/dist/esm/commands/which.js +5 -5
  41. package/dist/esm/commands/which.js.map +1 -1
  42. package/dist/esm/compat.d.ts +1 -0
  43. package/dist/esm/compat.js +17 -13
  44. package/dist/esm/compat.js.map +1 -1
  45. package/dist/esm/lib/findInstalledVersions.js +19 -19
  46. package/dist/esm/lib/findInstalledVersions.js.map +1 -1
  47. package/package.json +24 -19
@@ -1 +1 @@
1
- {"version":3,"sources":["/Users/kevin/Dev/OpenSource/node-version/node-version-use/src/lib/findInstalledVersions.ts"],"sourcesContent":["import fs from 'fs';\nimport path from 'path';\nimport { readdirWithTypes } from '../compat.ts';\n\n/**\n * Compare two semver version strings (e.g., \"20.19.0\" vs \"20.9.1\")\n * Returns: negative if a < b, positive if a > b, 0 if equal\n */\nfunction compareVersions(a: string, b: string): number {\n var aParts = a.replace(/^v/, '').split('.');\n var bParts = b.replace(/^v/, '').split('.');\n var len = Math.max(aParts.length, bParts.length);\n\n for (var i = 0; i < len; i++) {\n var aNum = parseInt(aParts[i], 10) || 0;\n var bNum = parseInt(bParts[i], 10) || 0;\n if (aNum !== bNum) {\n return aNum - bNum;\n }\n }\n return 0;\n}\n\n/**\n * Find all installed versions matching the given version string\n * Results are sorted in ascending semver order (lowest first, highest last)\n */\nexport function findInstalledVersions(versionsPath: string, version: string): string[] {\n if (!fs.existsSync(versionsPath)) {\n return [];\n }\n\n var normalizedVersion = version.replace(/^v/, '');\n var matches: string[] = [];\n\n // Try exact matches first\n var exactMatches = [version, `v${normalizedVersion}`, normalizedVersion];\n for (var i = 0; i < exactMatches.length; i++) {\n var v = exactMatches[i];\n var versionPath = path.join(versionsPath, v);\n if (fs.existsSync(versionPath) && fs.statSync(versionPath).isDirectory()) {\n if (matches.indexOf(v) === -1) {\n matches.push(v);\n }\n }\n }\n\n // If we have an exact match, return just that\n if (matches.length > 0) {\n return matches;\n }\n\n // Try partial match (e.g., \"20\" matches \"v20.19.6\")\n var entries = readdirWithTypes(versionsPath);\n for (var j = 0; j < entries.length; j++) {\n var entry = entries[j];\n if (!entry.isDirectory()) continue;\n var dirVersion = entry.name.replace(/^v/, '');\n if (dirVersion.indexOf(`${normalizedVersion}.`) === 0) {\n matches.push(entry.name);\n }\n }\n\n // Sort by semver (ascending) so highest version is last\n matches.sort(compareVersions);\n\n return matches;\n}\n\n/**\n * Get all installed versions\n */\nexport function getAllInstalledVersions(versionsPath: string): string[] {\n if (!fs.existsSync(versionsPath)) {\n return [];\n }\n\n var entries = readdirWithTypes(versionsPath);\n var versions: string[] = [];\n for (var i = 0; i < entries.length; i++) {\n if (entries[i].isDirectory()) {\n versions.push(entries[i].name);\n }\n }\n\n return versions;\n}\n"],"names":["fs","path","readdirWithTypes","compareVersions","a","b","aParts","replace","split","bParts","len","Math","max","length","i","aNum","parseInt","bNum","findInstalledVersions","versionsPath","version","existsSync","normalizedVersion","matches","exactMatches","v","versionPath","join","statSync","isDirectory","indexOf","push","entries","j","entry","dirVersion","name","sort","getAllInstalledVersions","versions"],"mappings":"AAAA,OAAOA,QAAQ,KAAK;AACpB,OAAOC,UAAU,OAAO;AACxB,SAASC,gBAAgB,QAAQ,eAAe;AAEhD;;;CAGC,GACD,SAASC,gBAAgBC,CAAS,EAAEC,CAAS;IAC3C,IAAIC,SAASF,EAAEG,OAAO,CAAC,MAAM,IAAIC,KAAK,CAAC;IACvC,IAAIC,SAASJ,EAAEE,OAAO,CAAC,MAAM,IAAIC,KAAK,CAAC;IACvC,IAAIE,MAAMC,KAAKC,GAAG,CAACN,OAAOO,MAAM,EAAEJ,OAAOI,MAAM;IAE/C,IAAK,IAAIC,IAAI,GAAGA,IAAIJ,KAAKI,IAAK;QAC5B,IAAIC,OAAOC,SAASV,MAAM,CAACQ,EAAE,EAAE,OAAO;QACtC,IAAIG,OAAOD,SAASP,MAAM,CAACK,EAAE,EAAE,OAAO;QACtC,IAAIC,SAASE,MAAM;YACjB,OAAOF,OAAOE;QAChB;IACF;IACA,OAAO;AACT;AAEA;;;CAGC,GACD,OAAO,SAASC,sBAAsBC,YAAoB,EAAEC,OAAe;IACzE,IAAI,CAACpB,GAAGqB,UAAU,CAACF,eAAe;QAChC,OAAO,EAAE;IACX;IAEA,IAAIG,oBAAoBF,QAAQb,OAAO,CAAC,MAAM;IAC9C,IAAIgB,UAAoB,EAAE;IAE1B,0BAA0B;IAC1B,IAAIC,eAAe;QAACJ;QAAS,CAAC,CAAC,EAAEE,mBAAmB;QAAEA;KAAkB;IACxE,IAAK,IAAIR,IAAI,GAAGA,IAAIU,aAAaX,MAAM,EAAEC,IAAK;QAC5C,IAAIW,IAAID,YAAY,CAACV,EAAE;QACvB,IAAIY,cAAczB,KAAK0B,IAAI,CAACR,cAAcM;QAC1C,IAAIzB,GAAGqB,UAAU,CAACK,gBAAgB1B,GAAG4B,QAAQ,CAACF,aAAaG,WAAW,IAAI;YACxE,IAAIN,QAAQO,OAAO,CAACL,OAAO,CAAC,GAAG;gBAC7BF,QAAQQ,IAAI,CAACN;YACf;QACF;IACF;IAEA,8CAA8C;IAC9C,IAAIF,QAAQV,MAAM,GAAG,GAAG;QACtB,OAAOU;IACT;IAEA,oDAAoD;IACpD,IAAIS,UAAU9B,iBAAiBiB;IAC/B,IAAK,IAAIc,IAAI,GAAGA,IAAID,QAAQnB,MAAM,EAAEoB,IAAK;QACvC,IAAIC,QAAQF,OAAO,CAACC,EAAE;QACtB,IAAI,CAACC,MAAML,WAAW,IAAI;QAC1B,IAAIM,aAAaD,MAAME,IAAI,CAAC7B,OAAO,CAAC,MAAM;QAC1C,IAAI4B,WAAWL,OAAO,CAAC,GAAGR,kBAAkB,CAAC,CAAC,MAAM,GAAG;YACrDC,QAAQQ,IAAI,CAACG,MAAME,IAAI;QACzB;IACF;IAEA,wDAAwD;IACxDb,QAAQc,IAAI,CAAClC;IAEb,OAAOoB;AACT;AAEA;;CAEC,GACD,OAAO,SAASe,wBAAwBnB,YAAoB;IAC1D,IAAI,CAACnB,GAAGqB,UAAU,CAACF,eAAe;QAChC,OAAO,EAAE;IACX;IAEA,IAAIa,UAAU9B,iBAAiBiB;IAC/B,IAAIoB,WAAqB,EAAE;IAC3B,IAAK,IAAIzB,IAAI,GAAGA,IAAIkB,QAAQnB,MAAM,EAAEC,IAAK;QACvC,IAAIkB,OAAO,CAAClB,EAAE,CAACe,WAAW,IAAI;YAC5BU,SAASR,IAAI,CAACC,OAAO,CAAClB,EAAE,CAACsB,IAAI;QAC/B;IACF;IAEA,OAAOG;AACT"}
1
+ {"version":3,"sources":["/Users/kevin/Dev/OpenSource/node-version/node-version-use/src/lib/findInstalledVersions.ts"],"sourcesContent":["import fs from 'fs';\nimport path from 'path';\nimport { readdirWithTypes } from '../compat.ts';\n\n/**\n * Compare two semver version strings (e.g., \"20.19.0\" vs \"20.9.1\")\n * Returns: negative if a < b, positive if a > b, 0 if equal\n */\nfunction compareVersions(a: string, b: string): number {\n const aParts = a.replace(/^v/, '').split('.');\n const bParts = b.replace(/^v/, '').split('.');\n const len = Math.max(aParts.length, bParts.length);\n\n for (let i = 0; i < len; i++) {\n const aNum = parseInt(aParts[i], 10) || 0;\n const bNum = parseInt(bParts[i], 10) || 0;\n if (aNum !== bNum) {\n return aNum - bNum;\n }\n }\n return 0;\n}\n\n/**\n * Find all installed versions matching the given version string\n * Results are sorted in ascending semver order (lowest first, highest last)\n */\nexport function findInstalledVersions(versionsPath: string, version: string): string[] {\n if (!fs.existsSync(versionsPath)) {\n return [];\n }\n\n const normalizedVersion = version.replace(/^v/, '');\n const matches: string[] = [];\n\n // Try exact matches first\n const exactMatches = [version, `v${normalizedVersion}`, normalizedVersion];\n for (let i = 0; i < exactMatches.length; i++) {\n const v = exactMatches[i];\n const versionPath = path.join(versionsPath, v);\n if (fs.existsSync(versionPath) && fs.statSync(versionPath).isDirectory()) {\n if (matches.indexOf(v) === -1) {\n matches.push(v);\n }\n }\n }\n\n // If we have an exact match, return just that\n if (matches.length > 0) {\n return matches;\n }\n\n // Try partial match (e.g., \"20\" matches \"v20.19.6\")\n const entries = readdirWithTypes(versionsPath);\n for (let j = 0; j < entries.length; j++) {\n const entry = entries[j];\n if (!entry.isDirectory()) continue;\n const dirVersion = entry.name.replace(/^v/, '');\n if (dirVersion.indexOf(`${normalizedVersion}.`) === 0) {\n matches.push(entry.name);\n }\n }\n\n // Sort by semver (ascending) so highest version is last\n matches.sort(compareVersions);\n\n return matches;\n}\n\n/**\n * Get all installed versions\n */\nexport function getAllInstalledVersions(versionsPath: string): string[] {\n if (!fs.existsSync(versionsPath)) {\n return [];\n }\n\n const entries = readdirWithTypes(versionsPath);\n const versions: string[] = [];\n for (let i = 0; i < entries.length; i++) {\n if (entries[i].isDirectory()) {\n versions.push(entries[i].name);\n }\n }\n\n return versions;\n}\n"],"names":["fs","path","readdirWithTypes","compareVersions","a","b","aParts","replace","split","bParts","len","Math","max","length","i","aNum","parseInt","bNum","findInstalledVersions","versionsPath","version","existsSync","normalizedVersion","matches","exactMatches","v","versionPath","join","statSync","isDirectory","indexOf","push","entries","j","entry","dirVersion","name","sort","getAllInstalledVersions","versions"],"mappings":"AAAA,OAAOA,QAAQ,KAAK;AACpB,OAAOC,UAAU,OAAO;AACxB,SAASC,gBAAgB,QAAQ,eAAe;AAEhD;;;CAGC,GACD,SAASC,gBAAgBC,CAAS,EAAEC,CAAS;IAC3C,MAAMC,SAASF,EAAEG,OAAO,CAAC,MAAM,IAAIC,KAAK,CAAC;IACzC,MAAMC,SAASJ,EAAEE,OAAO,CAAC,MAAM,IAAIC,KAAK,CAAC;IACzC,MAAME,MAAMC,KAAKC,GAAG,CAACN,OAAOO,MAAM,EAAEJ,OAAOI,MAAM;IAEjD,IAAK,IAAIC,IAAI,GAAGA,IAAIJ,KAAKI,IAAK;QAC5B,MAAMC,OAAOC,SAASV,MAAM,CAACQ,EAAE,EAAE,OAAO;QACxC,MAAMG,OAAOD,SAASP,MAAM,CAACK,EAAE,EAAE,OAAO;QACxC,IAAIC,SAASE,MAAM;YACjB,OAAOF,OAAOE;QAChB;IACF;IACA,OAAO;AACT;AAEA;;;CAGC,GACD,OAAO,SAASC,sBAAsBC,YAAoB,EAAEC,OAAe;IACzE,IAAI,CAACpB,GAAGqB,UAAU,CAACF,eAAe;QAChC,OAAO,EAAE;IACX;IAEA,MAAMG,oBAAoBF,QAAQb,OAAO,CAAC,MAAM;IAChD,MAAMgB,UAAoB,EAAE;IAE5B,0BAA0B;IAC1B,MAAMC,eAAe;QAACJ;QAAS,CAAC,CAAC,EAAEE,mBAAmB;QAAEA;KAAkB;IAC1E,IAAK,IAAIR,IAAI,GAAGA,IAAIU,aAAaX,MAAM,EAAEC,IAAK;QAC5C,MAAMW,IAAID,YAAY,CAACV,EAAE;QACzB,MAAMY,cAAczB,KAAK0B,IAAI,CAACR,cAAcM;QAC5C,IAAIzB,GAAGqB,UAAU,CAACK,gBAAgB1B,GAAG4B,QAAQ,CAACF,aAAaG,WAAW,IAAI;YACxE,IAAIN,QAAQO,OAAO,CAACL,OAAO,CAAC,GAAG;gBAC7BF,QAAQQ,IAAI,CAACN;YACf;QACF;IACF;IAEA,8CAA8C;IAC9C,IAAIF,QAAQV,MAAM,GAAG,GAAG;QACtB,OAAOU;IACT;IAEA,oDAAoD;IACpD,MAAMS,UAAU9B,iBAAiBiB;IACjC,IAAK,IAAIc,IAAI,GAAGA,IAAID,QAAQnB,MAAM,EAAEoB,IAAK;QACvC,MAAMC,QAAQF,OAAO,CAACC,EAAE;QACxB,IAAI,CAACC,MAAML,WAAW,IAAI;QAC1B,MAAMM,aAAaD,MAAME,IAAI,CAAC7B,OAAO,CAAC,MAAM;QAC5C,IAAI4B,WAAWL,OAAO,CAAC,GAAGR,kBAAkB,CAAC,CAAC,MAAM,GAAG;YACrDC,QAAQQ,IAAI,CAACG,MAAME,IAAI;QACzB;IACF;IAEA,wDAAwD;IACxDb,QAAQc,IAAI,CAAClC;IAEb,OAAOoB;AACT;AAEA;;CAEC,GACD,OAAO,SAASe,wBAAwBnB,YAAoB;IAC1D,IAAI,CAACnB,GAAGqB,UAAU,CAACF,eAAe;QAChC,OAAO,EAAE;IACX;IAEA,MAAMa,UAAU9B,iBAAiBiB;IACjC,MAAMoB,WAAqB,EAAE;IAC7B,IAAK,IAAIzB,IAAI,GAAGA,IAAIkB,QAAQnB,MAAM,EAAEC,IAAK;QACvC,IAAIkB,OAAO,CAAClB,EAAE,CAACe,WAAW,IAAI;YAC5BU,SAASR,IAAI,CAACC,OAAO,CAAClB,EAAE,CAACsB,IAAI;QAC/B;IACF;IAEA,OAAOG;AACT"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "node-version-use",
3
- "version": "2.1.5",
3
+ "version": "2.1.7",
4
4
  "description": "Cross-platform solution for using multiple versions of node. Useful for compatibility testing",
5
5
  "keywords": [
6
6
  "node",
@@ -38,7 +38,7 @@
38
38
  ],
39
39
  "scripts": {
40
40
  "build": "tsds build",
41
- "build:assets": "tsds build && mkdir -p assets && cp -R dist/cjs/assets/*.cjs assets/",
41
+ "build:assets": "tsds validate && mkdir -p assets && cp -R dist/cjs/assets/*.cjs assets/",
42
42
  "clean": "rm -rf .tmp dist",
43
43
  "format": "tsds format",
44
44
  "postinstall": "node assets/postinstall.cjs",
@@ -48,34 +48,39 @@
48
48
  "version": "tsds version"
49
49
  },
50
50
  "dependencies": {
51
- "cross-spawn-cb": "^2.4.11",
52
- "exit-compat": "^1.0.0",
53
- "fs-remove-compat": "^0.2.1",
51
+ "cross-spawn-cb": "^2.4.14",
52
+ "env-path-key": "^1.1.8",
53
+ "exit-compat": "^1.0.4",
54
+ "fs-remove-compat": "^0.2.3",
55
+ "get-file-compat": "^0.1.0",
54
56
  "getopts-compat": "^2.2.6",
55
57
  "homedir-polyfill": "^1.0.3",
56
- "install-module-linked": "^1.3.13",
58
+ "install-module-linked": "^1.3.16",
57
59
  "mkdirp-classic": "^0.5.3",
58
- "node-resolve-versions": "^1.3.11",
59
- "node-version-utils": "^1.3.15",
60
- "queue-cb": "^1.6.1",
61
- "resolve-bin-sync": "^1.0.10",
62
- "spawn-streaming": "^1.1.13",
63
- "spawn-term": "^3.3.2"
60
+ "module-root-sync": "^2.0.2",
61
+ "node-resolve-versions": "^1.3.13",
62
+ "node-version-utils": "^1.3.17",
63
+ "queue-cb": "^1.6.3",
64
+ "resolve-bin-sync": "^1.0.12",
65
+ "spawn-streaming": "^1.1.15",
66
+ "spawn-term": "^3.3.5",
67
+ "tar-iterator": "^3.1.10",
68
+ "zip-iterator": "^3.0.17"
64
69
  },
65
70
  "devDependencies": {
66
71
  "@types/mocha": "^10.0.10",
67
- "@types/node": "^25.0.1",
72
+ "@types/node": "^25.0.2",
68
73
  "cr": "^0.1.0",
69
- "fs-copy-compat": "^0.1.3",
70
- "fs-remove-compat": "^0.2.1",
71
- "is-version": "^1.0.7",
74
+ "fs-copy-compat": "^0.1.5",
75
+ "fs-remove-compat": "^0.2.3",
76
+ "is-version": "^1.0.9",
72
77
  "mkdirp-classic": "^0.5.3",
73
- "node-version-install": "^1.5.1",
74
- "node-version-use": "^2.1.4",
78
+ "node-version-install": "^1.5.2",
79
+ "node-version-use": "^2.1.6",
75
80
  "os-shim": "^0.1.3",
76
81
  "pinkie-promise": "^2.0.1",
77
82
  "ts-dev-stack": "^1.21.3",
78
- "tsds-config": "^0.2.0"
83
+ "tsds-config": "^0.2.2"
79
84
  },
80
85
  "engines": {
81
86
  "node": ">=0.8"