node-version-use 1.9.9 → 2.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +121 -23
- package/dist/cjs/cli.js +37 -33
- package/dist/cjs/cli.js.map +1 -1
- package/dist/cjs/commands/default.d.cts +7 -0
- package/dist/cjs/commands/default.d.ts +7 -0
- package/dist/cjs/commands/default.js +57 -0
- package/dist/cjs/commands/default.js.map +1 -0
- package/dist/cjs/commands/index.d.cts +3 -0
- package/dist/cjs/commands/index.d.ts +3 -0
- package/dist/cjs/commands/index.js +54 -0
- package/dist/cjs/commands/index.js.map +1 -0
- package/dist/cjs/commands/install.d.cts +6 -0
- package/dist/cjs/commands/install.d.ts +6 -0
- package/dist/cjs/commands/install.js +69 -0
- package/dist/cjs/commands/install.js.map +1 -0
- package/dist/cjs/commands/list.d.cts +6 -0
- package/dist/cjs/commands/list.d.ts +6 -0
- package/dist/cjs/commands/list.js +77 -0
- package/dist/cjs/commands/list.js.map +1 -0
- package/dist/cjs/commands/local.d.cts +7 -0
- package/dist/cjs/commands/local.d.ts +7 -0
- package/dist/cjs/commands/local.js +69 -0
- package/dist/cjs/commands/local.js.map +1 -0
- package/dist/cjs/commands/setup.d.cts +7 -0
- package/dist/cjs/commands/setup.d.ts +7 -0
- package/dist/cjs/commands/setup.js +55 -0
- package/dist/cjs/commands/setup.js.map +1 -0
- package/dist/cjs/commands/teardown.d.cts +6 -0
- package/dist/cjs/commands/teardown.d.ts +6 -0
- package/dist/cjs/commands/teardown.js +52 -0
- package/dist/cjs/commands/teardown.js.map +1 -0
- package/dist/cjs/commands/uninstall.d.cts +6 -0
- package/dist/cjs/commands/uninstall.d.ts +6 -0
- package/dist/cjs/commands/uninstall.js +148 -0
- package/dist/cjs/commands/uninstall.js.map +1 -0
- package/dist/cjs/commands/which.d.cts +7 -0
- package/dist/cjs/commands/which.d.ts +7 -0
- package/dist/cjs/commands/which.js +117 -0
- package/dist/cjs/commands/which.js.map +1 -0
- package/dist/cjs/compat.d.cts +17 -0
- package/dist/cjs/compat.d.ts +17 -0
- package/dist/cjs/compat.js +47 -1
- package/dist/cjs/compat.js.map +1 -1
- package/dist/cjs/constants.js +1 -1
- package/dist/cjs/constants.js.map +1 -1
- package/dist/cjs/worker.js +5 -26
- package/dist/cjs/worker.js.map +1 -1
- package/dist/esm/cli.js +35 -29
- package/dist/esm/cli.js.map +1 -1
- package/dist/esm/commands/default.d.ts +7 -0
- package/dist/esm/commands/default.js +41 -0
- package/dist/esm/commands/default.js.map +1 -0
- package/dist/esm/commands/index.d.ts +3 -0
- package/dist/esm/commands/index.js +27 -0
- package/dist/esm/commands/index.js.map +1 -0
- package/dist/esm/commands/install.d.ts +6 -0
- package/dist/esm/commands/install.js +53 -0
- package/dist/esm/commands/install.js.map +1 -0
- package/dist/esm/commands/list.d.ts +6 -0
- package/dist/esm/commands/list.js +53 -0
- package/dist/esm/commands/list.js.map +1 -0
- package/dist/esm/commands/local.d.ts +7 -0
- package/dist/esm/commands/local.js +51 -0
- package/dist/esm/commands/local.js.map +1 -0
- package/dist/esm/commands/setup.d.ts +7 -0
- package/dist/esm/commands/setup.js +39 -0
- package/dist/esm/commands/setup.js.map +1 -0
- package/dist/esm/commands/teardown.d.ts +6 -0
- package/dist/esm/commands/teardown.js +36 -0
- package/dist/esm/commands/teardown.js.map +1 -0
- package/dist/esm/commands/uninstall.d.ts +6 -0
- package/dist/esm/commands/uninstall.js +132 -0
- package/dist/esm/commands/uninstall.js.map +1 -0
- package/dist/esm/commands/which.d.ts +7 -0
- package/dist/esm/commands/which.js +101 -0
- package/dist/esm/commands/which.js.map +1 -0
- package/dist/esm/compat.d.ts +17 -0
- package/dist/esm/compat.js +39 -2
- package/dist/esm/compat.js.map +1 -1
- package/dist/esm/constants.js +2 -1
- package/dist/esm/constants.js.map +1 -1
- package/dist/esm/worker.js +3 -16
- package/dist/esm/worker.js.map +1 -1
- package/package.json +17 -7
- package/scripts/ensure-test-binaries.ts +27 -0
- package/scripts/postinstall.cjs +462 -0
- package/dist/cjs/lib/loadSpawnTerm.d.cts +0 -19
- package/dist/cjs/lib/loadSpawnTerm.d.ts +0 -19
- package/dist/cjs/lib/loadSpawnTerm.js +0 -103
- package/dist/cjs/lib/loadSpawnTerm.js.map +0 -1
- package/dist/esm/lib/loadSpawnTerm.d.ts +0 -19
- package/dist/esm/lib/loadSpawnTerm.js +0 -42
- package/dist/esm/lib/loadSpawnTerm.js.map +0 -1
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", {
|
|
3
|
+
value: true
|
|
4
|
+
});
|
|
5
|
+
Object.defineProperty(exports, /**
|
|
6
|
+
* nvu list
|
|
7
|
+
*
|
|
8
|
+
* List all installed Node versions.
|
|
9
|
+
*/ "default", {
|
|
10
|
+
enumerable: true,
|
|
11
|
+
get: function() {
|
|
12
|
+
return listCmd;
|
|
13
|
+
}
|
|
14
|
+
});
|
|
15
|
+
var _exit = /*#__PURE__*/ _interop_require_default(require("exit"));
|
|
16
|
+
var _fs = /*#__PURE__*/ _interop_require_default(require("fs"));
|
|
17
|
+
var _path = /*#__PURE__*/ _interop_require_default(require("path"));
|
|
18
|
+
var _compatts = require("../compat.js");
|
|
19
|
+
var _constantsts = require("../constants.js");
|
|
20
|
+
function _interop_require_default(obj) {
|
|
21
|
+
return obj && obj.__esModule ? obj : {
|
|
22
|
+
default: obj
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
function listCmd(_args) {
|
|
26
|
+
var versionsPath = _path.default.join(_constantsts.storagePath, 'installed');
|
|
27
|
+
// Check if versions directory exists
|
|
28
|
+
if (!_fs.default.existsSync(versionsPath)) {
|
|
29
|
+
console.log('No Node versions installed.');
|
|
30
|
+
console.log('Install a version: nvu install <version>');
|
|
31
|
+
(0, _exit.default)(0);
|
|
32
|
+
return;
|
|
33
|
+
}
|
|
34
|
+
// Read all directories in versions folder
|
|
35
|
+
var entries = (0, _compatts.readdirWithTypes)(versionsPath);
|
|
36
|
+
var versions = entries.filter(function(entry) {
|
|
37
|
+
return entry.isDirectory();
|
|
38
|
+
}).map(function(entry) {
|
|
39
|
+
return entry.name;
|
|
40
|
+
});
|
|
41
|
+
if (versions.length === 0) {
|
|
42
|
+
console.log('No Node versions installed.');
|
|
43
|
+
console.log('Install a version: nvu install <version>');
|
|
44
|
+
(0, _exit.default)(0);
|
|
45
|
+
return;
|
|
46
|
+
}
|
|
47
|
+
// Get the current default
|
|
48
|
+
var defaultFilePath = _path.default.join(_constantsts.storagePath, 'default');
|
|
49
|
+
var defaultVersion = '';
|
|
50
|
+
if (_fs.default.existsSync(defaultFilePath)) {
|
|
51
|
+
defaultVersion = _fs.default.readFileSync(defaultFilePath, 'utf8').trim();
|
|
52
|
+
}
|
|
53
|
+
// Sort versions (simple string sort, could be improved with semver)
|
|
54
|
+
versions.sort(function(a, b) {
|
|
55
|
+
var aParts = a.split('.').map(function(n) {
|
|
56
|
+
return parseInt(n, 10) || 0;
|
|
57
|
+
});
|
|
58
|
+
var bParts = b.split('.').map(function(n) {
|
|
59
|
+
return parseInt(n, 10) || 0;
|
|
60
|
+
});
|
|
61
|
+
for(var i = 0; i < Math.max(aParts.length, bParts.length); i++){
|
|
62
|
+
var aVal = aParts[i] || 0;
|
|
63
|
+
var bVal = bParts[i] || 0;
|
|
64
|
+
if (aVal !== bVal) return bVal - aVal; // Descending order
|
|
65
|
+
}
|
|
66
|
+
return 0;
|
|
67
|
+
});
|
|
68
|
+
console.log('Installed Node versions:');
|
|
69
|
+
for(var i = 0; i < versions.length; i++){
|
|
70
|
+
var version = versions[i];
|
|
71
|
+
var isDefault = version === defaultVersion || "v".concat(version) === defaultVersion || version === "v".concat(defaultVersion);
|
|
72
|
+
var marker = isDefault ? ' (default)' : '';
|
|
73
|
+
console.log(" ".concat(version).concat(marker));
|
|
74
|
+
}
|
|
75
|
+
(0, _exit.default)(0);
|
|
76
|
+
}
|
|
77
|
+
/* CJS INTEROP */ if (exports.__esModule && exports.default) { try { Object.defineProperty(exports.default, '__esModule', { value: true }); for (var key in exports) { exports.default[key] = exports[key]; } } catch (_) {}; module.exports = exports.default; }
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["/Users/kevin/Dev/OpenSource/node-version/node-version-use/src/commands/list.ts"],"sourcesContent":["import exit from 'exit';\nimport fs from 'fs';\nimport path from 'path';\nimport { readdirWithTypes } from '../compat.ts';\nimport { storagePath } from '../constants.ts';\n\n/**\n * nvu list\n *\n * List all installed Node versions.\n */\nexport default function listCmd(_args: string[]): void {\n var versionsPath = path.join(storagePath, 'installed');\n\n // Check if versions directory exists\n if (!fs.existsSync(versionsPath)) {\n console.log('No Node versions installed.');\n console.log('Install a version: nvu install <version>');\n exit(0);\n return;\n }\n\n // Read all directories in versions folder\n var entries = readdirWithTypes(versionsPath);\n var versions = entries.filter((entry) => entry.isDirectory()).map((entry) => entry.name);\n\n if (versions.length === 0) {\n console.log('No Node versions installed.');\n console.log('Install a version: nvu install <version>');\n exit(0);\n return;\n }\n\n // Get the current default\n const defaultFilePath = path.join(storagePath, 'default');\n let defaultVersion = '';\n if (fs.existsSync(defaultFilePath)) {\n defaultVersion = fs.readFileSync(defaultFilePath, 'utf8').trim();\n }\n\n // Sort versions (simple string sort, could be improved with semver)\n versions.sort((a, b) => {\n const aParts = a.split('.').map((n) => parseInt(n, 10) || 0);\n const bParts = b.split('.').map((n) => parseInt(n, 10) || 0);\n for (let i = 0; i < Math.max(aParts.length, bParts.length); i++) {\n const aVal = aParts[i] || 0;\n const bVal = bParts[i] || 0;\n if (aVal !== bVal) return bVal - aVal; // Descending order\n }\n return 0;\n });\n\n console.log('Installed Node versions:');\n for (let i = 0; i < versions.length; i++) {\n const version = versions[i];\n const isDefault = version === defaultVersion || `v${version}` === defaultVersion || version === `v${defaultVersion}`;\n const marker = isDefault ? ' (default)' : '';\n console.log(` ${version}${marker}`);\n }\n exit(0);\n}\n"],"names":["listCmd","_args","versionsPath","path","join","storagePath","fs","existsSync","console","log","exit","entries","readdirWithTypes","versions","filter","entry","isDirectory","map","name","length","defaultFilePath","defaultVersion","readFileSync","trim","sort","a","b","aParts","split","n","parseInt","bParts","i","Math","max","aVal","bVal","version","isDefault","marker"],"mappings":";;;;+BAMA;;;;CAIC,GACD;;;eAAwBA;;;2DAXP;yDACF;2DACE;wBACgB;2BACL;;;;;;AAOb,SAASA,QAAQC,KAAe;IAC7C,IAAIC,eAAeC,aAAI,CAACC,IAAI,CAACC,wBAAW,EAAE;IAE1C,qCAAqC;IACrC,IAAI,CAACC,WAAE,CAACC,UAAU,CAACL,eAAe;QAChCM,QAAQC,GAAG,CAAC;QACZD,QAAQC,GAAG,CAAC;QACZC,IAAAA,aAAI,EAAC;QACL;IACF;IAEA,0CAA0C;IAC1C,IAAIC,UAAUC,IAAAA,0BAAgB,EAACV;IAC/B,IAAIW,WAAWF,QAAQG,MAAM,CAAC,SAACC;eAAUA,MAAMC,WAAW;OAAIC,GAAG,CAAC,SAACF;eAAUA,MAAMG,IAAI;;IAEvF,IAAIL,SAASM,MAAM,KAAK,GAAG;QACzBX,QAAQC,GAAG,CAAC;QACZD,QAAQC,GAAG,CAAC;QACZC,IAAAA,aAAI,EAAC;QACL;IACF;IAEA,0BAA0B;IAC1B,IAAMU,kBAAkBjB,aAAI,CAACC,IAAI,CAACC,wBAAW,EAAE;IAC/C,IAAIgB,iBAAiB;IACrB,IAAIf,WAAE,CAACC,UAAU,CAACa,kBAAkB;QAClCC,iBAAiBf,WAAE,CAACgB,YAAY,CAACF,iBAAiB,QAAQG,IAAI;IAChE;IAEA,oEAAoE;IACpEV,SAASW,IAAI,CAAC,SAACC,GAAGC;QAChB,IAAMC,SAASF,EAAEG,KAAK,CAAC,KAAKX,GAAG,CAAC,SAACY;mBAAMC,SAASD,GAAG,OAAO;;QAC1D,IAAME,SAASL,EAAEE,KAAK,CAAC,KAAKX,GAAG,CAAC,SAACY;mBAAMC,SAASD,GAAG,OAAO;;QAC1D,IAAK,IAAIG,IAAI,GAAGA,IAAIC,KAAKC,GAAG,CAACP,OAAOR,MAAM,EAAEY,OAAOZ,MAAM,GAAGa,IAAK;YAC/D,IAAMG,OAAOR,MAAM,CAACK,EAAE,IAAI;YAC1B,IAAMI,OAAOL,MAAM,CAACC,EAAE,IAAI;YAC1B,IAAIG,SAASC,MAAM,OAAOA,OAAOD,MAAM,mBAAmB;QAC5D;QACA,OAAO;IACT;IAEA3B,QAAQC,GAAG,CAAC;IACZ,IAAK,IAAIuB,IAAI,GAAGA,IAAInB,SAASM,MAAM,EAAEa,IAAK;QACxC,IAAMK,UAAUxB,QAAQ,CAACmB,EAAE;QAC3B,IAAMM,YAAYD,YAAYhB,kBAAkB,AAAC,IAAW,OAARgB,aAAchB,kBAAkBgB,YAAY,AAAC,IAAkB,OAAfhB;QACpG,IAAMkB,SAASD,YAAY,eAAe;QAC1C9B,QAAQC,GAAG,CAAC,AAAC,KAAc8B,OAAVF,SAAiB,OAAPE;IAC7B;IACA7B,IAAAA,aAAI,EAAC;AACP"}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", {
|
|
3
|
+
value: true
|
|
4
|
+
});
|
|
5
|
+
Object.defineProperty(exports, /**
|
|
6
|
+
* nvu local [version] [--nvurc]
|
|
7
|
+
*
|
|
8
|
+
* Write .nvmrc (or .nvurc) to the current directory.
|
|
9
|
+
* This pins the Node version for the current project.
|
|
10
|
+
*/ "default", {
|
|
11
|
+
enumerable: true,
|
|
12
|
+
get: function() {
|
|
13
|
+
return localCmd;
|
|
14
|
+
}
|
|
15
|
+
});
|
|
16
|
+
var _exit = /*#__PURE__*/ _interop_require_default(require("exit"));
|
|
17
|
+
var _fs = /*#__PURE__*/ _interop_require_default(require("fs"));
|
|
18
|
+
var _path = /*#__PURE__*/ _interop_require_default(require("path"));
|
|
19
|
+
function _interop_require_default(obj) {
|
|
20
|
+
return obj && obj.__esModule ? obj : {
|
|
21
|
+
default: obj
|
|
22
|
+
};
|
|
23
|
+
}
|
|
24
|
+
function localCmd(args) {
|
|
25
|
+
var cwd = process.cwd();
|
|
26
|
+
// Check for --nvurc flag (indexOf for Node 0.8+ compat)
|
|
27
|
+
var useNvurc = args.indexOf('--nvurc') !== -1;
|
|
28
|
+
var filteredArgs = args.filter(function(arg) {
|
|
29
|
+
return arg !== '--nvurc';
|
|
30
|
+
});
|
|
31
|
+
var fileName = useNvurc ? '.nvurc' : '.nvmrc';
|
|
32
|
+
var filePath = _path.default.join(cwd, fileName);
|
|
33
|
+
// If no version provided, display current local version
|
|
34
|
+
if (filteredArgs.length === 0) {
|
|
35
|
+
// Check for existing version files
|
|
36
|
+
var nvurcPath = _path.default.join(cwd, '.nvurc');
|
|
37
|
+
var nvmrcPath = _path.default.join(cwd, '.nvmrc');
|
|
38
|
+
if (_fs.default.existsSync(nvurcPath)) {
|
|
39
|
+
var version = _fs.default.readFileSync(nvurcPath, 'utf8').trim();
|
|
40
|
+
console.log("Current local version (.nvurc): ".concat(version));
|
|
41
|
+
(0, _exit.default)(0);
|
|
42
|
+
return;
|
|
43
|
+
}
|
|
44
|
+
if (_fs.default.existsSync(nvmrcPath)) {
|
|
45
|
+
var version1 = _fs.default.readFileSync(nvmrcPath, 'utf8').trim();
|
|
46
|
+
console.log("Current local version (.nvmrc): ".concat(version1));
|
|
47
|
+
(0, _exit.default)(0);
|
|
48
|
+
return;
|
|
49
|
+
}
|
|
50
|
+
console.log('No local version set in this directory.');
|
|
51
|
+
console.log('Usage: nvu local <version>');
|
|
52
|
+
console.log(' nvu local <version> --nvurc (use .nvurc instead of .nvmrc)');
|
|
53
|
+
(0, _exit.default)(0);
|
|
54
|
+
return;
|
|
55
|
+
}
|
|
56
|
+
var version2 = filteredArgs[0].trim();
|
|
57
|
+
// Validate version format (basic check, indexOf for Node 0.8+ compat)
|
|
58
|
+
if (!version2 || version2.indexOf('-') === 0) {
|
|
59
|
+
console.log('Usage: nvu local <version>');
|
|
60
|
+
console.log('Example: nvu local 20');
|
|
61
|
+
(0, _exit.default)(1);
|
|
62
|
+
return;
|
|
63
|
+
}
|
|
64
|
+
// Write the version file
|
|
65
|
+
_fs.default.writeFileSync(filePath, "".concat(version2, "\n"), 'utf8');
|
|
66
|
+
console.log("Created ".concat(fileName, " with version: ").concat(version2));
|
|
67
|
+
(0, _exit.default)(0);
|
|
68
|
+
}
|
|
69
|
+
/* CJS INTEROP */ if (exports.__esModule && exports.default) { try { Object.defineProperty(exports.default, '__esModule', { value: true }); for (var key in exports) { exports.default[key] = exports[key]; } } catch (_) {}; module.exports = exports.default; }
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["/Users/kevin/Dev/OpenSource/node-version/node-version-use/src/commands/local.ts"],"sourcesContent":["import exit from 'exit';\nimport fs from 'fs';\nimport path from 'path';\n\n/**\n * nvu local [version] [--nvurc]\n *\n * Write .nvmrc (or .nvurc) to the current directory.\n * This pins the Node version for the current project.\n */\nexport default function localCmd(args: string[]): void {\n const cwd = process.cwd();\n\n // Check for --nvurc flag (indexOf for Node 0.8+ compat)\n const useNvurc = args.indexOf('--nvurc') !== -1;\n const filteredArgs = args.filter((arg) => arg !== '--nvurc');\n\n const fileName = useNvurc ? '.nvurc' : '.nvmrc';\n const filePath = path.join(cwd, fileName);\n\n // If no version provided, display current local version\n if (filteredArgs.length === 0) {\n // Check for existing version files\n const nvurcPath = path.join(cwd, '.nvurc');\n const nvmrcPath = path.join(cwd, '.nvmrc');\n\n if (fs.existsSync(nvurcPath)) {\n const version = fs.readFileSync(nvurcPath, 'utf8').trim();\n console.log(`Current local version (.nvurc): ${version}`);\n exit(0);\n return;\n }\n if (fs.existsSync(nvmrcPath)) {\n const version = fs.readFileSync(nvmrcPath, 'utf8').trim();\n console.log(`Current local version (.nvmrc): ${version}`);\n exit(0);\n return;\n }\n\n console.log('No local version set in this directory.');\n console.log('Usage: nvu local <version>');\n console.log(' nvu local <version> --nvurc (use .nvurc instead of .nvmrc)');\n exit(0);\n return;\n }\n\n const version = filteredArgs[0].trim();\n\n // Validate version format (basic check, indexOf for Node 0.8+ compat)\n if (!version || version.indexOf('-') === 0) {\n console.log('Usage: nvu local <version>');\n console.log('Example: nvu local 20');\n exit(1);\n return;\n }\n\n // Write the version file\n fs.writeFileSync(filePath, `${version}\\n`, 'utf8');\n console.log(`Created ${fileName} with version: ${version}`);\n exit(0);\n}\n"],"names":["localCmd","args","cwd","process","useNvurc","indexOf","filteredArgs","filter","arg","fileName","filePath","path","join","length","nvurcPath","nvmrcPath","fs","existsSync","version","readFileSync","trim","console","log","exit","writeFileSync"],"mappings":";;;;+BAIA;;;;;CAKC,GACD;;;eAAwBA;;;2DAVP;yDACF;2DACE;;;;;;AAQF,SAASA,SAASC,IAAc;IAC7C,IAAMC,MAAMC,QAAQD,GAAG;IAEvB,wDAAwD;IACxD,IAAME,WAAWH,KAAKI,OAAO,CAAC,eAAe,CAAC;IAC9C,IAAMC,eAAeL,KAAKM,MAAM,CAAC,SAACC;eAAQA,QAAQ;;IAElD,IAAMC,WAAWL,WAAW,WAAW;IACvC,IAAMM,WAAWC,aAAI,CAACC,IAAI,CAACV,KAAKO;IAEhC,wDAAwD;IACxD,IAAIH,aAAaO,MAAM,KAAK,GAAG;QAC7B,mCAAmC;QACnC,IAAMC,YAAYH,aAAI,CAACC,IAAI,CAACV,KAAK;QACjC,IAAMa,YAAYJ,aAAI,CAACC,IAAI,CAACV,KAAK;QAEjC,IAAIc,WAAE,CAACC,UAAU,CAACH,YAAY;YAC5B,IAAMI,UAAUF,WAAE,CAACG,YAAY,CAACL,WAAW,QAAQM,IAAI;YACvDC,QAAQC,GAAG,CAAC,AAAC,mCAA0C,OAARJ;YAC/CK,IAAAA,aAAI,EAAC;YACL;QACF;QACA,IAAIP,WAAE,CAACC,UAAU,CAACF,YAAY;YAC5B,IAAMG,WAAUF,WAAE,CAACG,YAAY,CAACJ,WAAW,QAAQK,IAAI;YACvDC,QAAQC,GAAG,CAAC,AAAC,mCAA0C,OAARJ;YAC/CK,IAAAA,aAAI,EAAC;YACL;QACF;QAEAF,QAAQC,GAAG,CAAC;QACZD,QAAQC,GAAG,CAAC;QACZD,QAAQC,GAAG,CAAC;QACZC,IAAAA,aAAI,EAAC;QACL;IACF;IAEA,IAAML,WAAUZ,YAAY,CAAC,EAAE,CAACc,IAAI;IAEpC,sEAAsE;IACtE,IAAI,CAACF,YAAWA,SAAQb,OAAO,CAAC,SAAS,GAAG;QAC1CgB,QAAQC,GAAG,CAAC;QACZD,QAAQC,GAAG,CAAC;QACZC,IAAAA,aAAI,EAAC;QACL;IACF;IAEA,yBAAyB;IACzBP,WAAE,CAACQ,aAAa,CAACd,UAAU,AAAC,GAAU,OAARQ,UAAQ,OAAK;IAC3CG,QAAQC,GAAG,CAAC,AAAC,WAAoCJ,OAA1BT,UAAS,mBAAyB,OAARS;IACjDK,IAAAA,aAAI,EAAC;AACP"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", {
|
|
3
|
+
value: true
|
|
4
|
+
});
|
|
5
|
+
Object.defineProperty(exports, /**
|
|
6
|
+
* nvu setup
|
|
7
|
+
*
|
|
8
|
+
* Install/reinstall nvu binaries to ~/.nvu/bin
|
|
9
|
+
* This runs the same logic as the postinstall script.
|
|
10
|
+
*/ "default", {
|
|
11
|
+
enumerable: true,
|
|
12
|
+
get: function() {
|
|
13
|
+
return setupCmd;
|
|
14
|
+
}
|
|
15
|
+
});
|
|
16
|
+
var _child_process = require("child_process");
|
|
17
|
+
var _exit = /*#__PURE__*/ _interop_require_default(require("exit"));
|
|
18
|
+
var _fs = /*#__PURE__*/ _interop_require_default(require("fs"));
|
|
19
|
+
var _path = /*#__PURE__*/ _interop_require_default(require("path"));
|
|
20
|
+
var _url = /*#__PURE__*/ _interop_require_default(require("url"));
|
|
21
|
+
var _compatts = require("../compat.js");
|
|
22
|
+
var _constantsts = require("../constants.js");
|
|
23
|
+
function _interop_require_default(obj) {
|
|
24
|
+
return obj && obj.__esModule ? obj : {
|
|
25
|
+
default: obj
|
|
26
|
+
};
|
|
27
|
+
}
|
|
28
|
+
var __dirname = _path.default.dirname(typeof __filename !== 'undefined' ? __filename : _url.default.fileURLToPath(require("url").pathToFileURL(__filename).toString()));
|
|
29
|
+
function setupCmd(_args) {
|
|
30
|
+
var binDir = _path.default.join(_constantsts.storagePath, 'bin');
|
|
31
|
+
// Create directories
|
|
32
|
+
if (!_fs.default.existsSync(_constantsts.storagePath)) {
|
|
33
|
+
(0, _compatts.mkdirpSync)(_constantsts.storagePath);
|
|
34
|
+
}
|
|
35
|
+
if (!_fs.default.existsSync(binDir)) {
|
|
36
|
+
(0, _compatts.mkdirpSync)(binDir);
|
|
37
|
+
}
|
|
38
|
+
// Find the postinstall script relative to this module
|
|
39
|
+
var postinstallPath = _path.default.join(__dirname, '..', '..', '..', 'scripts', 'postinstall.cjs');
|
|
40
|
+
if (_fs.default.existsSync(postinstallPath)) {
|
|
41
|
+
// Run the postinstall script
|
|
42
|
+
try {
|
|
43
|
+
(0, _child_process.execSync)('node "'.concat(postinstallPath, '"'), {
|
|
44
|
+
stdio: 'inherit'
|
|
45
|
+
});
|
|
46
|
+
} catch (_err) {
|
|
47
|
+
// postinstall handles its own errors gracefully
|
|
48
|
+
}
|
|
49
|
+
} else {
|
|
50
|
+
console.log('Setup script not found.');
|
|
51
|
+
console.log('Try reinstalling: npm install -g node-version-use');
|
|
52
|
+
(0, _exit.default)(1);
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
/* CJS INTEROP */ if (exports.__esModule && exports.default) { try { Object.defineProperty(exports.default, '__esModule', { value: true }); for (var key in exports) { exports.default[key] = exports[key]; } } catch (_) {}; module.exports = exports.default; }
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["/Users/kevin/Dev/OpenSource/node-version/node-version-use/src/commands/setup.ts"],"sourcesContent":["import { execSync } from 'child_process';\nimport exit from 'exit';\nimport fs from 'fs';\nimport path from 'path';\nimport url from 'url';\nimport { mkdirpSync } from '../compat.ts';\nimport { storagePath } from '../constants.ts';\n\nvar __dirname = path.dirname(typeof __filename !== 'undefined' ? __filename : url.fileURLToPath(import.meta.url));\n\n/**\n * nvu setup\n *\n * Install/reinstall nvu binaries to ~/.nvu/bin\n * This runs the same logic as the postinstall script.\n */\nexport default function setupCmd(_args: string[]): void {\n var binDir = path.join(storagePath, 'bin');\n\n // Create directories\n if (!fs.existsSync(storagePath)) {\n mkdirpSync(storagePath);\n }\n if (!fs.existsSync(binDir)) {\n mkdirpSync(binDir);\n }\n\n // Find the postinstall script relative to this module\n var postinstallPath = path.join(__dirname, '..', '..', '..', 'scripts', 'postinstall.cjs');\n\n if (fs.existsSync(postinstallPath)) {\n // Run the postinstall script\n try {\n execSync(`node \"${postinstallPath}\"`, { stdio: 'inherit' });\n } catch (_err) {\n // postinstall handles its own errors gracefully\n }\n } else {\n console.log('Setup script not found.');\n console.log('Try reinstalling: npm install -g node-version-use');\n exit(1);\n }\n}\n"],"names":["setupCmd","__dirname","path","dirname","__filename","url","fileURLToPath","_args","binDir","join","storagePath","fs","existsSync","mkdirpSync","postinstallPath","execSync","stdio","_err","console","log","exit"],"mappings":";;;;+BAUA;;;;;CAKC,GACD;;;eAAwBA;;;6BAhBC;2DACR;yDACF;2DACE;0DACD;wBACW;2BACC;;;;;;AAE5B,IAAIC,YAAYC,aAAI,CAACC,OAAO,CAAC,OAAOC,eAAe,cAAcA,aAAaC,YAAG,CAACC,aAAa,CAAC;AAQjF,SAASN,SAASO,KAAe;IAC9C,IAAIC,SAASN,aAAI,CAACO,IAAI,CAACC,wBAAW,EAAE;IAEpC,qBAAqB;IACrB,IAAI,CAACC,WAAE,CAACC,UAAU,CAACF,wBAAW,GAAG;QAC/BG,IAAAA,oBAAU,EAACH,wBAAW;IACxB;IACA,IAAI,CAACC,WAAE,CAACC,UAAU,CAACJ,SAAS;QAC1BK,IAAAA,oBAAU,EAACL;IACb;IAEA,sDAAsD;IACtD,IAAIM,kBAAkBZ,aAAI,CAACO,IAAI,CAACR,WAAW,MAAM,MAAM,MAAM,WAAW;IAExE,IAAIU,WAAE,CAACC,UAAU,CAACE,kBAAkB;QAClC,6BAA6B;QAC7B,IAAI;YACFC,IAAAA,uBAAQ,EAAC,AAAC,SAAwB,OAAhBD,iBAAgB,MAAI;gBAAEE,OAAO;YAAU;QAC3D,EAAE,OAAOC,MAAM;QACb,gDAAgD;QAClD;IACF,OAAO;QACLC,QAAQC,GAAG,CAAC;QACZD,QAAQC,GAAG,CAAC;QACZC,IAAAA,aAAI,EAAC;IACP;AACF"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", {
|
|
3
|
+
value: true
|
|
4
|
+
});
|
|
5
|
+
Object.defineProperty(exports, /**
|
|
6
|
+
* nvu teardown
|
|
7
|
+
*
|
|
8
|
+
* Remove nvu binaries from ~/.nvu/bin
|
|
9
|
+
*/ "default", {
|
|
10
|
+
enumerable: true,
|
|
11
|
+
get: function() {
|
|
12
|
+
return teardownCmd;
|
|
13
|
+
}
|
|
14
|
+
});
|
|
15
|
+
var _exit = /*#__PURE__*/ _interop_require_default(require("exit"));
|
|
16
|
+
var _fs = /*#__PURE__*/ _interop_require_default(require("fs"));
|
|
17
|
+
var _fsremovecompat = require("fs-remove-compat");
|
|
18
|
+
var _path = /*#__PURE__*/ _interop_require_default(require("path"));
|
|
19
|
+
var _constantsts = require("../constants.js");
|
|
20
|
+
function _interop_require_default(obj) {
|
|
21
|
+
return obj && obj.__esModule ? obj : {
|
|
22
|
+
default: obj
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
function teardownCmd(_args) {
|
|
26
|
+
var binDir = _path.default.join(_constantsts.storagePath, 'bin');
|
|
27
|
+
var binaries = [
|
|
28
|
+
'node',
|
|
29
|
+
'npm',
|
|
30
|
+
'npx'
|
|
31
|
+
];
|
|
32
|
+
var ext = process.platform === 'win32' ? '.exe' : '';
|
|
33
|
+
var removed = 0;
|
|
34
|
+
for(var i = 0; i < binaries.length; i++){
|
|
35
|
+
var binaryPath = _path.default.join(binDir, binaries[i] + ext);
|
|
36
|
+
if (_fs.default.existsSync(binaryPath)) {
|
|
37
|
+
(0, _fsremovecompat.rmSync)(binaryPath, {
|
|
38
|
+
force: true
|
|
39
|
+
});
|
|
40
|
+
removed++;
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
if (removed > 0) {
|
|
44
|
+
console.log("Removed ".concat(removed, " binary(s) from ").concat(binDir));
|
|
45
|
+
console.log('');
|
|
46
|
+
console.log('You may also want to remove ~/.nvu/bin from your PATH.');
|
|
47
|
+
} else {
|
|
48
|
+
console.log('No binaries found to remove.');
|
|
49
|
+
}
|
|
50
|
+
(0, _exit.default)(0);
|
|
51
|
+
}
|
|
52
|
+
/* CJS INTEROP */ if (exports.__esModule && exports.default) { try { Object.defineProperty(exports.default, '__esModule', { value: true }); for (var key in exports) { exports.default[key] = exports[key]; } } catch (_) {}; module.exports = exports.default; }
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["/Users/kevin/Dev/OpenSource/node-version/node-version-use/src/commands/teardown.ts"],"sourcesContent":["import exit from 'exit';\nimport fs from 'fs';\nimport { rmSync } from 'fs-remove-compat';\nimport path from 'path';\nimport { storagePath } from '../constants.ts';\n\n/**\n * nvu teardown\n *\n * Remove nvu binaries from ~/.nvu/bin\n */\nexport default function teardownCmd(_args: string[]): void {\n const binDir = path.join(storagePath, 'bin');\n\n const binaries = ['node', 'npm', 'npx'];\n const ext = process.platform === 'win32' ? '.exe' : '';\n\n let removed = 0;\n for (let i = 0; i < binaries.length; i++) {\n const binaryPath = path.join(binDir, binaries[i] + ext);\n if (fs.existsSync(binaryPath)) {\n rmSync(binaryPath, { force: true });\n removed++;\n }\n }\n\n if (removed > 0) {\n console.log(`Removed ${removed} binary(s) from ${binDir}`);\n console.log('');\n console.log('You may also want to remove ~/.nvu/bin from your PATH.');\n } else {\n console.log('No binaries found to remove.');\n }\n\n exit(0);\n}\n"],"names":["teardownCmd","_args","binDir","path","join","storagePath","binaries","ext","process","platform","removed","i","length","binaryPath","fs","existsSync","rmSync","force","console","log","exit"],"mappings":";;;;+BAMA;;;;CAIC,GACD;;;eAAwBA;;;2DAXP;yDACF;8BACQ;2DACN;2BACW;;;;;;AAOb,SAASA,YAAYC,KAAe;IACjD,IAAMC,SAASC,aAAI,CAACC,IAAI,CAACC,wBAAW,EAAE;IAEtC,IAAMC,WAAW;QAAC;QAAQ;QAAO;KAAM;IACvC,IAAMC,MAAMC,QAAQC,QAAQ,KAAK,UAAU,SAAS;IAEpD,IAAIC,UAAU;IACd,IAAK,IAAIC,IAAI,GAAGA,IAAIL,SAASM,MAAM,EAAED,IAAK;QACxC,IAAME,aAAaV,aAAI,CAACC,IAAI,CAACF,QAAQI,QAAQ,CAACK,EAAE,GAAGJ;QACnD,IAAIO,WAAE,CAACC,UAAU,CAACF,aAAa;YAC7BG,IAAAA,sBAAM,EAACH,YAAY;gBAAEI,OAAO;YAAK;YACjCP;QACF;IACF;IAEA,IAAIA,UAAU,GAAG;QACfQ,QAAQC,GAAG,CAAC,AAAC,WAAoCjB,OAA1BQ,SAAQ,oBAAyB,OAAPR;QACjDgB,QAAQC,GAAG,CAAC;QACZD,QAAQC,GAAG,CAAC;IACd,OAAO;QACLD,QAAQC,GAAG,CAAC;IACd;IAEAC,IAAAA,aAAI,EAAC;AACP"}
|
|
@@ -0,0 +1,148 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", {
|
|
3
|
+
value: true
|
|
4
|
+
});
|
|
5
|
+
Object.defineProperty(exports, /**
|
|
6
|
+
* nvu uninstall <version>
|
|
7
|
+
*
|
|
8
|
+
* Remove an installed Node version.
|
|
9
|
+
*/ "default", {
|
|
10
|
+
enumerable: true,
|
|
11
|
+
get: function() {
|
|
12
|
+
return uninstallCmd;
|
|
13
|
+
}
|
|
14
|
+
});
|
|
15
|
+
var _exit = /*#__PURE__*/ _interop_require_default(require("exit"));
|
|
16
|
+
var _fs = /*#__PURE__*/ _interop_require_default(require("fs"));
|
|
17
|
+
var _path = /*#__PURE__*/ _interop_require_default(require("path"));
|
|
18
|
+
var _compatts = require("../compat.js");
|
|
19
|
+
var _constantsts = require("../constants.js");
|
|
20
|
+
function _interop_require_default(obj) {
|
|
21
|
+
return obj && obj.__esModule ? obj : {
|
|
22
|
+
default: obj
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
function uninstallCmd(args) {
|
|
26
|
+
if (args.length === 0) {
|
|
27
|
+
console.log('Usage: nvu uninstall <version>');
|
|
28
|
+
console.log('Example: nvu uninstall 20');
|
|
29
|
+
console.log(' nvu uninstall v20.19.6');
|
|
30
|
+
(0, _exit.default)(1);
|
|
31
|
+
return;
|
|
32
|
+
}
|
|
33
|
+
var version = args[0].trim();
|
|
34
|
+
var versionsPath = _path.default.join(_constantsts.storagePath, 'installed');
|
|
35
|
+
// Find all matching installed versions
|
|
36
|
+
var matches = findInstalledVersions(versionsPath, version);
|
|
37
|
+
if (matches.length === 0) {
|
|
38
|
+
console.log("Node ".concat(version, " is not installed."));
|
|
39
|
+
console.log('');
|
|
40
|
+
console.log('Installed versions:');
|
|
41
|
+
listInstalledVersions(versionsPath);
|
|
42
|
+
(0, _exit.default)(1);
|
|
43
|
+
return;
|
|
44
|
+
}
|
|
45
|
+
if (matches.length > 1) {
|
|
46
|
+
console.log('Multiple versions match "'.concat(version, '":'));
|
|
47
|
+
for(var i = 0; i < matches.length; i++){
|
|
48
|
+
console.log(" ".concat(matches[i]));
|
|
49
|
+
}
|
|
50
|
+
console.log('');
|
|
51
|
+
console.log('Please specify the exact version to uninstall.');
|
|
52
|
+
(0, _exit.default)(1);
|
|
53
|
+
return;
|
|
54
|
+
}
|
|
55
|
+
var installedVersion = matches[0];
|
|
56
|
+
var versionPath = _path.default.join(versionsPath, installedVersion);
|
|
57
|
+
// Check if this is the current default
|
|
58
|
+
var defaultPath = _path.default.join(_constantsts.storagePath, 'default');
|
|
59
|
+
var isDefault = false;
|
|
60
|
+
if (_fs.default.existsSync(defaultPath)) {
|
|
61
|
+
var defaultVersion = _fs.default.readFileSync(defaultPath, 'utf8').trim();
|
|
62
|
+
var normalizedDefault = defaultVersion.replace(/^v/, '');
|
|
63
|
+
var normalizedInstalled = installedVersion.replace(/^v/, '');
|
|
64
|
+
// Check if default matches this version
|
|
65
|
+
if (normalizedInstalled === normalizedDefault || normalizedInstalled.indexOf("".concat(normalizedDefault, ".")) === 0) {
|
|
66
|
+
isDefault = true;
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
// Remove the version directory
|
|
70
|
+
try {
|
|
71
|
+
(0, _compatts.rmSync)(versionPath);
|
|
72
|
+
console.log("Removed Node ".concat(installedVersion));
|
|
73
|
+
if (isDefault) {
|
|
74
|
+
// Clear the default since it's no longer installed
|
|
75
|
+
_fs.default.unlinkSync(defaultPath);
|
|
76
|
+
console.log('');
|
|
77
|
+
console.log('Note: This was your default version. Set a new default with:');
|
|
78
|
+
console.log(' nvu default <version>');
|
|
79
|
+
}
|
|
80
|
+
} catch (err) {
|
|
81
|
+
console.error("Failed to remove Node ".concat(installedVersion, ":"), err.message);
|
|
82
|
+
(0, _exit.default)(1);
|
|
83
|
+
return;
|
|
84
|
+
}
|
|
85
|
+
(0, _exit.default)(0);
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* Find all installed versions matching the given version string
|
|
89
|
+
*/ function findInstalledVersions(versionsPath, version) {
|
|
90
|
+
if (!_fs.default.existsSync(versionsPath)) {
|
|
91
|
+
return [];
|
|
92
|
+
}
|
|
93
|
+
var normalizedVersion = version.replace(/^v/, '');
|
|
94
|
+
var matches = [];
|
|
95
|
+
// Try exact matches first
|
|
96
|
+
var exactMatches = [
|
|
97
|
+
version,
|
|
98
|
+
"v".concat(normalizedVersion),
|
|
99
|
+
normalizedVersion
|
|
100
|
+
];
|
|
101
|
+
for(var i = 0; i < exactMatches.length; i++){
|
|
102
|
+
var v = exactMatches[i];
|
|
103
|
+
var versionPath = _path.default.join(versionsPath, v);
|
|
104
|
+
if (_fs.default.existsSync(versionPath) && _fs.default.statSync(versionPath).isDirectory()) {
|
|
105
|
+
if (matches.indexOf(v) === -1) {
|
|
106
|
+
matches.push(v);
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
// If we have an exact match, return just that
|
|
111
|
+
if (matches.length > 0) {
|
|
112
|
+
return matches;
|
|
113
|
+
}
|
|
114
|
+
// Try partial match (e.g., "20" matches "v20.19.6")
|
|
115
|
+
var entries = (0, _compatts.readdirWithTypes)(versionsPath);
|
|
116
|
+
for(var j = 0; j < entries.length; j++){
|
|
117
|
+
var entry = entries[j];
|
|
118
|
+
if (!entry.isDirectory()) continue;
|
|
119
|
+
var dirVersion = entry.name.replace(/^v/, '');
|
|
120
|
+
if (dirVersion.indexOf("".concat(normalizedVersion, ".")) === 0) {
|
|
121
|
+
matches.push(entry.name);
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
return matches;
|
|
125
|
+
}
|
|
126
|
+
/**
|
|
127
|
+
* List installed versions for user reference
|
|
128
|
+
*/ function listInstalledVersions(versionsPath) {
|
|
129
|
+
if (!_fs.default.existsSync(versionsPath)) {
|
|
130
|
+
console.log(' (none)');
|
|
131
|
+
return;
|
|
132
|
+
}
|
|
133
|
+
var entries = (0, _compatts.readdirWithTypes)(versionsPath);
|
|
134
|
+
var versions = [];
|
|
135
|
+
for(var i = 0; i < entries.length; i++){
|
|
136
|
+
if (entries[i].isDirectory()) {
|
|
137
|
+
versions.push(entries[i].name);
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
if (versions.length === 0) {
|
|
141
|
+
console.log(' (none)');
|
|
142
|
+
} else {
|
|
143
|
+
for(var j = 0; j < versions.length; j++){
|
|
144
|
+
console.log(" ".concat(versions[j]));
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
/* CJS INTEROP */ if (exports.__esModule && exports.default) { try { Object.defineProperty(exports.default, '__esModule', { value: true }); for (var key in exports) { exports.default[key] = exports[key]; } } catch (_) {}; module.exports = exports.default; }
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["/Users/kevin/Dev/OpenSource/node-version/node-version-use/src/commands/uninstall.ts"],"sourcesContent":["import exit from 'exit';\nimport fs from 'fs';\nimport path from 'path';\nimport { readdirWithTypes, rmSync } from '../compat.ts';\nimport { storagePath } from '../constants.ts';\n\n/**\n * nvu uninstall <version>\n *\n * Remove an installed Node version.\n */\nexport default function uninstallCmd(args: string[]): void {\n if (args.length === 0) {\n console.log('Usage: nvu uninstall <version>');\n console.log('Example: nvu uninstall 20');\n console.log(' nvu uninstall v20.19.6');\n exit(1);\n return;\n }\n\n var version = args[0].trim();\n var versionsPath = path.join(storagePath, 'installed');\n\n // Find all matching installed versions\n var matches = findInstalledVersions(versionsPath, version);\n\n if (matches.length === 0) {\n console.log(`Node ${version} is not installed.`);\n console.log('');\n console.log('Installed versions:');\n listInstalledVersions(versionsPath);\n exit(1);\n return;\n }\n\n if (matches.length > 1) {\n console.log(`Multiple versions match \"${version}\":`);\n for (var i = 0; i < matches.length; i++) {\n console.log(` ${matches[i]}`);\n }\n console.log('');\n console.log('Please specify the exact version to uninstall.');\n exit(1);\n return;\n }\n\n var installedVersion = matches[0];\n var versionPath = path.join(versionsPath, installedVersion);\n\n // Check if this is the current default\n var defaultPath = path.join(storagePath, 'default');\n var isDefault = false;\n if (fs.existsSync(defaultPath)) {\n var defaultVersion = fs.readFileSync(defaultPath, 'utf8').trim();\n var normalizedDefault = defaultVersion.replace(/^v/, '');\n var normalizedInstalled = installedVersion.replace(/^v/, '');\n\n // Check if default matches this version\n if (normalizedInstalled === normalizedDefault || normalizedInstalled.indexOf(`${normalizedDefault}.`) === 0) {\n isDefault = true;\n }\n }\n\n // Remove the version directory\n try {\n rmSync(versionPath);\n console.log(`Removed Node ${installedVersion}`);\n\n if (isDefault) {\n // Clear the default since it's no longer installed\n fs.unlinkSync(defaultPath);\n console.log('');\n console.log('Note: This was your default version. Set a new default with:');\n console.log(' nvu default <version>');\n }\n } catch (err) {\n console.error(`Failed to remove Node ${installedVersion}:`, (err as Error).message);\n exit(1);\n return;\n }\n\n exit(0);\n}\n\n/**\n * Find all installed versions matching the given version string\n */\nfunction 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 return matches;\n}\n\n/**\n * List installed versions for user reference\n */\nfunction listInstalledVersions(versionsPath: string): void {\n if (!fs.existsSync(versionsPath)) {\n console.log(' (none)');\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 if (versions.length === 0) {\n console.log(' (none)');\n } else {\n for (var j = 0; j < versions.length; j++) {\n console.log(` ${versions[j]}`);\n }\n }\n}\n"],"names":["uninstallCmd","args","length","console","log","exit","version","trim","versionsPath","path","join","storagePath","matches","findInstalledVersions","listInstalledVersions","i","installedVersion","versionPath","defaultPath","isDefault","fs","existsSync","defaultVersion","readFileSync","normalizedDefault","replace","normalizedInstalled","indexOf","rmSync","unlinkSync","err","error","message","normalizedVersion","exactMatches","v","statSync","isDirectory","push","entries","readdirWithTypes","j","entry","dirVersion","name","versions"],"mappings":"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"}
|