node-version-use 2.0.0 → 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.
Files changed (63) hide show
  1. package/README.md +7 -7
  2. package/dist/cjs/cli.js +14 -29
  3. package/dist/cjs/cli.js.map +1 -1
  4. package/dist/cjs/commands/default.js +2 -2
  5. package/dist/cjs/commands/default.js.map +1 -1
  6. package/dist/cjs/commands/install.js +3 -3
  7. package/dist/cjs/commands/install.js.map +1 -1
  8. package/dist/cjs/commands/list.js +6 -22
  9. package/dist/cjs/commands/list.js.map +1 -1
  10. package/dist/cjs/commands/local.js +4 -4
  11. package/dist/cjs/commands/local.js.map +1 -1
  12. package/dist/cjs/commands/setup.d.cts +1 -1
  13. package/dist/cjs/commands/setup.d.ts +1 -1
  14. package/dist/cjs/commands/setup.js +1 -1
  15. package/dist/cjs/commands/setup.js.map +1 -1
  16. package/dist/cjs/commands/teardown.d.cts +1 -1
  17. package/dist/cjs/commands/teardown.d.ts +1 -1
  18. package/dist/cjs/commands/teardown.js +12 -26
  19. package/dist/cjs/commands/teardown.js.map +1 -1
  20. package/dist/cjs/commands/uninstall.js +1 -1
  21. package/dist/cjs/commands/uninstall.js.map +1 -1
  22. package/dist/cjs/commands/which.d.cts +1 -1
  23. package/dist/cjs/commands/which.d.ts +1 -1
  24. package/dist/cjs/commands/which.js +4 -4
  25. package/dist/cjs/commands/which.js.map +1 -1
  26. package/dist/cjs/worker.js +5 -26
  27. package/dist/cjs/worker.js.map +1 -1
  28. package/dist/esm/cli.js +14 -27
  29. package/dist/esm/cli.js.map +1 -1
  30. package/dist/esm/commands/default.js +2 -2
  31. package/dist/esm/commands/default.js.map +1 -1
  32. package/dist/esm/commands/install.js +3 -3
  33. package/dist/esm/commands/install.js.map +1 -1
  34. package/dist/esm/commands/list.js +3 -2
  35. package/dist/esm/commands/list.js.map +1 -1
  36. package/dist/esm/commands/local.js +4 -4
  37. package/dist/esm/commands/local.js.map +1 -1
  38. package/dist/esm/commands/setup.d.ts +1 -1
  39. package/dist/esm/commands/setup.js +1 -1
  40. package/dist/esm/commands/setup.js.map +1 -1
  41. package/dist/esm/commands/teardown.d.ts +1 -1
  42. package/dist/esm/commands/teardown.js +11 -8
  43. package/dist/esm/commands/teardown.js.map +1 -1
  44. package/dist/esm/commands/uninstall.js +1 -1
  45. package/dist/esm/commands/uninstall.js.map +1 -1
  46. package/dist/esm/commands/which.d.ts +1 -1
  47. package/dist/esm/commands/which.js +4 -4
  48. package/dist/esm/commands/which.js.map +1 -1
  49. package/dist/esm/worker.js +3 -16
  50. package/dist/esm/worker.js.map +1 -1
  51. package/package.json +12 -9
  52. package/scripts/ensure-test-binaries.ts +27 -0
  53. package/scripts/postinstall.cjs +263 -74
  54. package/dist/cjs/lib/loadSpawnTerm.d.cts +0 -19
  55. package/dist/cjs/lib/loadSpawnTerm.d.ts +0 -19
  56. package/dist/cjs/lib/loadSpawnTerm.js +0 -103
  57. package/dist/cjs/lib/loadSpawnTerm.js.map +0 -1
  58. package/dist/esm/lib/loadSpawnTerm.d.ts +0 -19
  59. package/dist/esm/lib/loadSpawnTerm.js +0 -42
  60. package/dist/esm/lib/loadSpawnTerm.js.map +0 -1
  61. package/shim/Makefile +0 -58
  62. package/shim/go.mod +0 -3
  63. package/shim/main.go +0 -302
package/README.md CHANGED
@@ -8,7 +8,7 @@ Cross-platform solution for using multiple versions of Node.js. Useful for compa
8
8
  npm install -g node-version-use
9
9
  ```
10
10
 
11
- On install, nvu automatically downloads platform-specific shims to `~/.nvu/bin/`. To enable transparent Node version switching, add to your shell profile:
11
+ On install, nvu automatically downloads platform-specific binaries to `~/.nvu/bin/`. To enable transparent Node version switching, add to your shell profile:
12
12
 
13
13
  ```bash
14
14
  # For bash (~/.bashrc) or zsh (~/.zshrc):
@@ -55,13 +55,13 @@ nvu list
55
55
  nvu which
56
56
  ```
57
57
 
58
- #### Shim Management
58
+ #### Binary Management
59
59
 
60
60
  ```bash
61
- # Install/reinstall shims
61
+ # Install/reinstall binaries
62
62
  nvu setup
63
63
 
64
- # Remove shims
64
+ # Remove binaries
65
65
  nvu teardown
66
66
  ```
67
67
 
@@ -89,7 +89,7 @@ nvu engines node --version
89
89
 
90
90
  ### How It Works
91
91
 
92
- nvu uses lightweight shim binaries that intercept `node`, `npm`, and `npx` commands. When you run `node`, the shim:
92
+ nvu uses lightweight binaries that intercept `node`, `npm`, and `npx` commands. When you run `node`, the binary:
93
93
 
94
94
  1. Checks for `.nvurc` in current/parent directories
95
95
  2. Checks for `.nvmrc` in current/parent directories
@@ -100,7 +100,7 @@ This works in all contexts: terminals, IDEs, CI, scripts - without shell integra
100
100
 
101
101
  ### Version Resolution
102
102
 
103
- The shim resolves partial versions to installed versions:
103
+ The binary resolves partial versions to installed versions:
104
104
  - `20` matches `v20.19.6`
105
105
  - `18.19` matches `v18.19.0`
106
106
  - `v22` matches `v22.0.0`
@@ -122,7 +122,7 @@ const results = await nvu('engines', 'node', ['--version'], { stdio: 'inherit' }
122
122
  ### Uninstalling
123
123
 
124
124
  ```bash
125
- # Remove shims
125
+ # Remove binaries
126
126
  nvu teardown
127
127
 
128
128
  # Optionally remove all nvu data
package/dist/cjs/cli.js CHANGED
@@ -12,10 +12,10 @@ var _exit = /*#__PURE__*/ _interop_require_default(require("exit"));
12
12
  var _fs = /*#__PURE__*/ _interop_require_default(require("fs"));
13
13
  var _getoptscompat = /*#__PURE__*/ _interop_require_default(require("getopts-compat"));
14
14
  var _path = /*#__PURE__*/ _interop_require_default(require("path"));
15
+ var _spawnterm = require("spawn-term");
15
16
  var _url = /*#__PURE__*/ _interop_require_default(require("url"));
16
17
  var _indexts = require("./commands/index.js");
17
18
  var _indexts1 = /*#__PURE__*/ _interop_require_default(require("./index.js"));
18
- var _loadSpawnTermts = /*#__PURE__*/ _interop_require_default(require("./lib/loadSpawnTerm.js"));
19
19
  function _interop_require_default(obj) {
20
20
  return obj && obj.__esModule ? obj : {
21
21
  default: obj
@@ -44,8 +44,8 @@ function printHelp(name) {
44
44
  console.log(' uninstall <version> Remove an installed Node version');
45
45
  console.log(' list List installed Node versions');
46
46
  console.log(' which Show which Node version would be used');
47
- console.log(' setup Install/reinstall shims to ~/.nvu/bin');
48
- console.log(' teardown Remove shims from ~/.nvu/bin');
47
+ console.log(' setup Install/reinstall binaries to ~/.nvu/bin');
48
+ console.log(' teardown Remove binaries from ~/.nvu/bin');
49
49
  console.log('');
50
50
  console.log('Options:');
51
51
  console.log(' -v, --version Print version number');
@@ -131,33 +131,18 @@ var _default = function(argv, name) {
131
131
  return !!result.error;
132
132
  });
133
133
  if (!options.silent) {
134
- // Load spawn-term to get figures/formatArguments for output formatting
135
- (0, _loadSpawnTermts.default)(function(_loadErr, mod) {
136
- var _ref = mod || {
137
- createSession: undefined,
138
- figures: {
139
- tick: '',
140
- cross: ''
141
- },
142
- formatArguments: function(x) {
143
- return x;
144
- }
145
- }, createSession = _ref.createSession, figures = _ref.figures, formatArguments = _ref.formatArguments;
146
- if (!createSession) {
147
- console.log('\n======================');
148
- results.forEach(function(res) {
149
- console.log("".concat(res.error ? figures.cross : figures.tick, " ").concat(res.version).concat(res.error ? " Error: ".concat(res.error.message) : ''));
150
- });
151
- console.log('\n----------------------');
152
- console.log("".concat(name, " ").concat(formatArguments(args).join(' ')));
153
- console.log("".concat(figures.tick, " ").concat(results.length - errors.length, " succeeded"));
154
- if (errors.length) console.log("".concat(figures.cross, " ").concat(errors.length, " failed"));
155
- }
156
- (0, _exit.default)(err || errors.length ? ERROR_CODE : 0);
157
- });
158
- } else {
159
- (0, _exit.default)(err || errors.length ? ERROR_CODE : 0);
134
+ if (!_spawnterm.createSession) {
135
+ console.log('\n======================');
136
+ results.forEach(function(res) {
137
+ console.log("".concat(res.error ? _spawnterm.figures.cross : _spawnterm.figures.tick, " ").concat(res.version).concat(res.error ? " Error: ".concat(res.error.message) : ''));
138
+ });
139
+ console.log('\n----------------------');
140
+ console.log("".concat(name, " ").concat((0, _spawnterm.formatArguments)(args).join(' ')));
141
+ console.log("".concat(_spawnterm.figures.tick, " ").concat(results.length - errors.length, " succeeded"));
142
+ if (errors.length) console.log("".concat(_spawnterm.figures.cross, " ").concat(errors.length, " failed"));
143
+ }
160
144
  }
145
+ (0, _exit.default)(err || errors.length ? ERROR_CODE : 0);
161
146
  });
162
147
  };
163
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; }
@@ -1 +1 @@
1
- {"version":3,"sources":["/Users/kevin/Dev/OpenSource/node-version/node-version-use/src/cli.ts"],"sourcesContent":["import exit from 'exit';\nimport fs from 'fs';\nimport getopts from 'getopts-compat';\nimport path from 'path';\nimport url from 'url';\nimport { isCommand, runCommand } from './commands/index.ts';\nimport run from './index.ts';\nimport loadSpawnTerm from './lib/loadSpawnTerm.ts';\nimport type { UseError, UseOptions, UseResult } from './types.ts';\n\nconst __dirname = path.dirname(typeof __filename !== 'undefined' ? __filename : url.fileURLToPath(import.meta.url));\n\nconst ERROR_CODE = 13;\n\nfunction getVersion(): string {\n const packagePath = path.join(__dirname, '..', '..', 'package.json');\n const packageJson = JSON.parse(fs.readFileSync(packagePath, 'utf8'));\n return packageJson.version;\n}\n\nfunction printHelp(name: string): void {\n const version = getVersion();\n console.log(`${name} v${version}`);\n console.log('');\n console.log(`Usage: ${name} [options] <version> <command> [args...]`);\n console.log(` ${name} <subcommand> [args...]`);\n console.log('');\n console.log('Run commands with specific Node.js versions');\n console.log('');\n console.log('Subcommands:');\n console.log(' default [version] Set or display the global default Node version');\n console.log(' local [version] Set or display the local Node version (.nvmrc)');\n console.log(' install <version> Download and install a Node version');\n console.log(' uninstall <version> Remove an installed Node version');\n console.log(' list List installed Node versions');\n console.log(' which Show which Node version would be used');\n console.log(' setup Install/reinstall shims to ~/.nvu/bin');\n console.log(' teardown Remove shims from ~/.nvu/bin');\n console.log('');\n console.log('Options:');\n console.log(' -v, --version Print version number');\n console.log(' -h, --help Print this help message');\n console.log(' -r, --range Range type (major, minor, patch) with filters (lts, even, odd)');\n console.log(' Default: major,even');\n console.log(' -d, --desc Sort versions in descending order');\n console.log(' -e, --expanded Use expanded version format');\n console.log(' -s, --streaming Enable streaming output');\n console.log(' --silent Suppress logging');\n console.log('');\n console.log('Examples:');\n console.log(` ${name} 22 node --version Run with Node 22`);\n console.log(` ${name} 22,20,18 npm test Run with multiple versions`);\n console.log(` ${name} engines node --version Use version from package.json`);\n console.log(` ${name} default 20 Set global default to Node 20`);\n console.log(` ${name} local 18 Create .nvmrc with Node 18`);\n}\n\nexport default (argv: string[], name: string): undefined => {\n const options = getopts(argv, {\n alias: { range: 'r', desc: 'd', expanded: 'e', streaming: 's', silent: 'si', version: 'v', help: 'h' },\n default: { range: 'major,even', interactive: true },\n boolean: ['silent', 'desc', 'expanded', 'streaming', 'interactive', 'version', 'help'],\n stopEarly: true,\n });\n\n if (options.version) {\n console.log(getVersion());\n exit(0);\n return;\n }\n\n if (options.help) {\n printHelp(name);\n exit(0);\n return;\n }\n\n // Check if first argument is a subcommand\n const args = options._;\n if (args.length > 0 && isCommand(args[0])) {\n runCommand(args[0], args.slice(1));\n return;\n }\n\n // define.option('-r, --range [range]', 'range type of major, minor, or patch with filters of lts, even, odd for version string expressions', 'major,even');\n // define.option('-s, --silent', 'suppress logging', false);\n options.sort = options.desc ? -1 : 1;\n\n if (args.length === 0) {\n console.log(`Missing version expression. Example usage: ${name} version command arg1 arg2`);\n exit(ERROR_CODE);\n return;\n }\n if (args.length === 1) {\n console.log(`Missing command. Example usage: ${name} version command arg1 arg2`);\n exit(ERROR_CODE);\n return;\n }\n\n options.stdio = 'inherit'; // pass through stdio\n run(args[0], args[1], args.slice(2), options as unknown as UseOptions, (err: UseError, results: UseResult[]): undefined => {\n if (err && !err.results) {\n console.log(err.message);\n exit(ERROR_CODE);\n return;\n }\n if (err) results = err.results;\n const errors = results.filter((result) => !!result.error);\n\n if (!options.silent) {\n // Load spawn-term to get figures/formatArguments for output formatting\n loadSpawnTerm((_loadErr, mod) => {\n const { createSession, figures, formatArguments } = mod || { createSession: undefined, figures: { tick: '✓', cross: '✗' }, formatArguments: (x: string[]) => x };\n if (!createSession) {\n console.log('\\n======================');\n results.forEach((res) => {\n console.log(`${res.error ? figures.cross : figures.tick} ${res.version}${res.error ? ` Error: ${res.error.message}` : ''}`);\n });\n console.log('\\n----------------------');\n console.log(`${name} ${formatArguments(args).join(' ')}`);\n console.log(`${figures.tick} ${results.length - errors.length} succeeded`);\n if (errors.length) console.log(`${figures.cross} ${errors.length} failed`);\n }\n exit(err || errors.length ? ERROR_CODE : 0);\n });\n } else {\n exit(err || errors.length ? ERROR_CODE : 0);\n }\n });\n};\n"],"names":["__dirname","path","dirname","__filename","url","fileURLToPath","ERROR_CODE","getVersion","packagePath","join","packageJson","JSON","parse","fs","readFileSync","version","printHelp","name","console","log","argv","options","getopts","alias","range","desc","expanded","streaming","silent","help","default","interactive","boolean","stopEarly","exit","args","_","length","isCommand","runCommand","slice","sort","stdio","run","err","results","message","errors","filter","result","error","loadSpawnTerm","_loadErr","mod","createSession","undefined","figures","tick","cross","formatArguments","x","forEach","res"],"mappings":"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"}
1
+ {"version":3,"sources":["/Users/kevin/Dev/OpenSource/node-version/node-version-use/src/cli.ts"],"sourcesContent":["import exit from 'exit';\nimport fs from 'fs';\nimport getopts from 'getopts-compat';\nimport path from 'path';\nimport { createSession, figures, formatArguments } from 'spawn-term';\nimport url from 'url';\nimport { isCommand, runCommand } from './commands/index.ts';\nimport run from './index.ts';\nimport type { UseError, UseOptions, UseResult } from './types.ts';\n\nconst __dirname = path.dirname(typeof __filename !== 'undefined' ? __filename : url.fileURLToPath(import.meta.url));\n\nconst ERROR_CODE = 13;\n\nfunction getVersion(): string {\n const packagePath = path.join(__dirname, '..', '..', 'package.json');\n const packageJson = JSON.parse(fs.readFileSync(packagePath, 'utf8'));\n return packageJson.version;\n}\n\nfunction printHelp(name: string): void {\n const version = getVersion();\n console.log(`${name} v${version}`);\n console.log('');\n console.log(`Usage: ${name} [options] <version> <command> [args...]`);\n console.log(` ${name} <subcommand> [args...]`);\n console.log('');\n console.log('Run commands with specific Node.js versions');\n console.log('');\n console.log('Subcommands:');\n console.log(' default [version] Set or display the global default Node version');\n console.log(' local [version] Set or display the local Node version (.nvmrc)');\n console.log(' install <version> Download and install a Node version');\n console.log(' uninstall <version> Remove an installed Node version');\n console.log(' list List installed Node versions');\n console.log(' which Show which Node version would be used');\n console.log(' setup Install/reinstall binaries to ~/.nvu/bin');\n console.log(' teardown Remove binaries from ~/.nvu/bin');\n console.log('');\n console.log('Options:');\n console.log(' -v, --version Print version number');\n console.log(' -h, --help Print this help message');\n console.log(' -r, --range Range type (major, minor, patch) with filters (lts, even, odd)');\n console.log(' Default: major,even');\n console.log(' -d, --desc Sort versions in descending order');\n console.log(' -e, --expanded Use expanded version format');\n console.log(' -s, --streaming Enable streaming output');\n console.log(' --silent Suppress logging');\n console.log('');\n console.log('Examples:');\n console.log(` ${name} 22 node --version Run with Node 22`);\n console.log(` ${name} 22,20,18 npm test Run with multiple versions`);\n console.log(` ${name} engines node --version Use version from package.json`);\n console.log(` ${name} default 20 Set global default to Node 20`);\n console.log(` ${name} local 18 Create .nvmrc with Node 18`);\n}\n\nexport default (argv: string[], name: string): undefined => {\n const options = getopts(argv, {\n alias: { range: 'r', desc: 'd', expanded: 'e', streaming: 's', silent: 'si', version: 'v', help: 'h' },\n default: { range: 'major,even', interactive: true },\n boolean: ['silent', 'desc', 'expanded', 'streaming', 'interactive', 'version', 'help'],\n stopEarly: true,\n });\n\n if (options.version) {\n console.log(getVersion());\n exit(0);\n return;\n }\n\n if (options.help) {\n printHelp(name);\n exit(0);\n return;\n }\n\n // Check if first argument is a subcommand\n const args = options._;\n if (args.length > 0 && isCommand(args[0])) {\n runCommand(args[0], args.slice(1));\n return;\n }\n\n // define.option('-r, --range [range]', 'range type of major, minor, or patch with filters of lts, even, odd for version string expressions', 'major,even');\n // define.option('-s, --silent', 'suppress logging', false);\n options.sort = options.desc ? -1 : 1;\n\n if (args.length === 0) {\n console.log(`Missing version expression. Example usage: ${name} version command arg1 arg2`);\n exit(ERROR_CODE);\n return;\n }\n if (args.length === 1) {\n console.log(`Missing command. Example usage: ${name} version command arg1 arg2`);\n exit(ERROR_CODE);\n return;\n }\n\n options.stdio = 'inherit'; // pass through stdio\n run(args[0], args[1], args.slice(2), options as unknown as UseOptions, (err: UseError, results: UseResult[]): undefined => {\n if (err && !err.results) {\n console.log(err.message);\n exit(ERROR_CODE);\n return;\n }\n if (err) results = err.results;\n const errors = results.filter((result) => !!result.error);\n\n if (!options.silent) {\n if (!createSession) {\n console.log('\\n======================');\n results.forEach((res) => {\n console.log(`${res.error ? figures.cross : figures.tick} ${res.version}${res.error ? ` Error: ${res.error.message}` : ''}`);\n });\n console.log('\\n----------------------');\n console.log(`${name} ${formatArguments(args).join(' ')}`);\n console.log(`${figures.tick} ${results.length - errors.length} succeeded`);\n if (errors.length) console.log(`${figures.cross} ${errors.length} failed`);\n }\n }\n exit(err || errors.length ? ERROR_CODE : 0);\n });\n};\n"],"names":["__dirname","path","dirname","__filename","url","fileURLToPath","ERROR_CODE","getVersion","packagePath","join","packageJson","JSON","parse","fs","readFileSync","version","printHelp","name","console","log","argv","options","getopts","alias","range","desc","expanded","streaming","silent","help","default","interactive","boolean","stopEarly","exit","args","_","length","isCommand","runCommand","slice","sort","stdio","run","err","results","message","errors","filter","result","error","createSession","forEach","res","figures","cross","tick","formatArguments"],"mappings":"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"}
@@ -38,8 +38,8 @@ function defaultCmd(args) {
38
38
  return;
39
39
  }
40
40
  var version = args[0].trim();
41
- // Validate version format (basic check)
42
- if (!version || version.startsWith('-')) {
41
+ // Validate version format (basic check, indexOf for Node 0.8+ compat)
42
+ if (!version || version.indexOf('-') === 0) {
43
43
  console.log('Usage: nvu default <version>');
44
44
  console.log('Example: nvu default 20');
45
45
  (0, _exit.default)(1);
@@ -1 +1 @@
1
- {"version":3,"sources":["/Users/kevin/Dev/OpenSource/node-version/node-version-use/src/commands/default.ts"],"sourcesContent":["import exit from 'exit';\nimport fs from 'fs';\nimport path from 'path';\nimport { mkdirpSync } from '../compat.ts';\nimport { storagePath } from '../constants.ts';\n\n/**\n * nvu default [version]\n *\n * Set or display the global default Node version.\n * This is used when no .nvmrc or .nvurc is found in the project.\n */\nexport default function defaultCmd(args: string[]): void {\n var defaultFilePath = path.join(storagePath, 'default');\n\n // If no version provided, display current default\n if (args.length === 0) {\n if (fs.existsSync(defaultFilePath)) {\n var currentVersion = fs.readFileSync(defaultFilePath, 'utf8').trim();\n console.log(`Current default: ${currentVersion}`);\n } else {\n console.log('No default version set.');\n console.log('Usage: nvu default <version>');\n }\n exit(0);\n return;\n }\n\n var version = args[0].trim();\n\n // Validate version format (basic check)\n if (!version || version.startsWith('-')) {\n console.log('Usage: nvu default <version>');\n console.log('Example: nvu default 20');\n exit(1);\n return;\n }\n\n // Ensure storage directory exists\n if (!fs.existsSync(storagePath)) {\n mkdirpSync(storagePath);\n }\n\n // Write the default version\n fs.writeFileSync(defaultFilePath, `${version}\\n`, 'utf8');\n console.log(`Default Node version set to: ${version}`);\n exit(0);\n}\n"],"names":["defaultCmd","args","defaultFilePath","path","join","storagePath","length","fs","existsSync","currentVersion","readFileSync","trim","console","log","exit","version","startsWith","mkdirpSync","writeFileSync"],"mappings":";;;;+BAMA;;;;;CAKC,GACD;;;eAAwBA;;;2DAZP;yDACF;2DACE;wBACU;2BACC;;;;;;AAQb,SAASA,WAAWC,IAAc;IAC/C,IAAIC,kBAAkBC,aAAI,CAACC,IAAI,CAACC,wBAAW,EAAE;IAE7C,kDAAkD;IAClD,IAAIJ,KAAKK,MAAM,KAAK,GAAG;QACrB,IAAIC,WAAE,CAACC,UAAU,CAACN,kBAAkB;YAClC,IAAIO,iBAAiBF,WAAE,CAACG,YAAY,CAACR,iBAAiB,QAAQS,IAAI;YAClEC,QAAQC,GAAG,CAAC,AAAC,oBAAkC,OAAfJ;QAClC,OAAO;YACLG,QAAQC,GAAG,CAAC;YACZD,QAAQC,GAAG,CAAC;QACd;QACAC,IAAAA,aAAI,EAAC;QACL;IACF;IAEA,IAAIC,UAAUd,IAAI,CAAC,EAAE,CAACU,IAAI;IAE1B,wCAAwC;IACxC,IAAI,CAACI,WAAWA,QAAQC,UAAU,CAAC,MAAM;QACvCJ,QAAQC,GAAG,CAAC;QACZD,QAAQC,GAAG,CAAC;QACZC,IAAAA,aAAI,EAAC;QACL;IACF;IAEA,kCAAkC;IAClC,IAAI,CAACP,WAAE,CAACC,UAAU,CAACH,wBAAW,GAAG;QAC/BY,IAAAA,oBAAU,EAACZ,wBAAW;IACxB;IAEA,4BAA4B;IAC5BE,WAAE,CAACW,aAAa,CAAChB,iBAAiB,AAAC,GAAU,OAARa,SAAQ,OAAK;IAClDH,QAAQC,GAAG,CAAC,AAAC,gCAAuC,OAARE;IAC5CD,IAAAA,aAAI,EAAC;AACP"}
1
+ {"version":3,"sources":["/Users/kevin/Dev/OpenSource/node-version/node-version-use/src/commands/default.ts"],"sourcesContent":["import exit from 'exit';\nimport fs from 'fs';\nimport path from 'path';\nimport { mkdirpSync } from '../compat.ts';\nimport { storagePath } from '../constants.ts';\n\n/**\n * nvu default [version]\n *\n * Set or display the global default Node version.\n * This is used when no .nvmrc or .nvurc is found in the project.\n */\nexport default function defaultCmd(args: string[]): void {\n var defaultFilePath = path.join(storagePath, 'default');\n\n // If no version provided, display current default\n if (args.length === 0) {\n if (fs.existsSync(defaultFilePath)) {\n var currentVersion = fs.readFileSync(defaultFilePath, 'utf8').trim();\n console.log(`Current default: ${currentVersion}`);\n } else {\n console.log('No default version set.');\n console.log('Usage: nvu default <version>');\n }\n exit(0);\n return;\n }\n\n var version = args[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 default <version>');\n console.log('Example: nvu default 20');\n exit(1);\n return;\n }\n\n // Ensure storage directory exists\n if (!fs.existsSync(storagePath)) {\n mkdirpSync(storagePath);\n }\n\n // Write the default version\n fs.writeFileSync(defaultFilePath, `${version}\\n`, 'utf8');\n console.log(`Default Node version set to: ${version}`);\n exit(0);\n}\n"],"names":["defaultCmd","args","defaultFilePath","path","join","storagePath","length","fs","existsSync","currentVersion","readFileSync","trim","console","log","exit","version","indexOf","mkdirpSync","writeFileSync"],"mappings":";;;;+BAMA;;;;;CAKC,GACD;;;eAAwBA;;;2DAZP;yDACF;2DACE;wBACU;2BACC;;;;;;AAQb,SAASA,WAAWC,IAAc;IAC/C,IAAIC,kBAAkBC,aAAI,CAACC,IAAI,CAACC,wBAAW,EAAE;IAE7C,kDAAkD;IAClD,IAAIJ,KAAKK,MAAM,KAAK,GAAG;QACrB,IAAIC,WAAE,CAACC,UAAU,CAACN,kBAAkB;YAClC,IAAIO,iBAAiBF,WAAE,CAACG,YAAY,CAACR,iBAAiB,QAAQS,IAAI;YAClEC,QAAQC,GAAG,CAAC,AAAC,oBAAkC,OAAfJ;QAClC,OAAO;YACLG,QAAQC,GAAG,CAAC;YACZD,QAAQC,GAAG,CAAC;QACd;QACAC,IAAAA,aAAI,EAAC;QACL;IACF;IAEA,IAAIC,UAAUd,IAAI,CAAC,EAAE,CAACU,IAAI;IAE1B,sEAAsE;IACtE,IAAI,CAACI,WAAWA,QAAQC,OAAO,CAAC,SAAS,GAAG;QAC1CJ,QAAQC,GAAG,CAAC;QACZD,QAAQC,GAAG,CAAC;QACZC,IAAAA,aAAI,EAAC;QACL;IACF;IAEA,kCAAkC;IAClC,IAAI,CAACP,WAAE,CAACC,UAAU,CAACH,wBAAW,GAAG;QAC/BY,IAAAA,oBAAU,EAACZ,wBAAW;IACxB;IAEA,4BAA4B;IAC5BE,WAAE,CAACW,aAAa,CAAChB,iBAAiB,AAAC,GAAU,OAARa,SAAQ,OAAK;IAClDH,QAAQC,GAAG,CAAC,AAAC,gCAAuC,OAARE;IAC5CD,IAAAA,aAAI,EAAC;AACP"}
@@ -31,8 +31,8 @@ function installCmd(args) {
31
31
  return;
32
32
  }
33
33
  var version = args[0].trim();
34
- // Validate version format (basic check)
35
- if (!version || version.startsWith('-')) {
34
+ // Validate version format (basic check, indexOf for Node 0.8+ compat)
35
+ if (!version || version.indexOf('-') === 0) {
36
36
  console.log('Usage: nvu install <version>');
37
37
  (0, _exit.default)(1);
38
38
  return;
@@ -46,7 +46,7 @@ function installCmd(args) {
46
46
  (0, _exit.default)(1);
47
47
  return;
48
48
  }
49
- var versionsPath = _path.default.join(_constantsts.storagePath, 'versions');
49
+ var versionsPath = _path.default.join(_constantsts.storagePath, 'installed');
50
50
  nodeVersionInstall(version, {
51
51
  installPath: versionsPath
52
52
  }, function(installErr, results) {
@@ -1 +1 @@
1
- {"version":3,"sources":["/Users/kevin/Dev/OpenSource/node-version/node-version-use/src/commands/install.ts"],"sourcesContent":["import exit from 'exit';\nimport path from 'path';\nimport { storagePath } from '../constants.ts';\nimport loadNodeVersionInstall from '../lib/loadNodeVersionInstall.ts';\n\n/**\n * nvu install <version>\n *\n * Download and install a specific Node version.\n */\nexport default function installCmd(args: string[]): void {\n if (args.length === 0) {\n console.log('Usage: nvu install <version>');\n console.log('Example: nvu install 20');\n console.log(' nvu install 20.10.0');\n console.log(' nvu install lts');\n exit(1);\n return;\n }\n\n const version = args[0].trim();\n\n // Validate version format (basic check)\n if (!version || version.startsWith('-')) {\n console.log('Usage: nvu install <version>');\n exit(1);\n return;\n }\n\n console.log(`Installing Node ${version}...`);\n\n // Load node-version-install dynamically\n loadNodeVersionInstall((err, nodeVersionInstall) => {\n if (err || !nodeVersionInstall) {\n console.error('Failed to load node-version-install:', err?.message || 'Module not available');\n console.error('Make sure node-version-install is installed: npm install node-version-install');\n exit(1);\n return;\n }\n\n const versionsPath = path.join(storagePath, 'versions');\n\n nodeVersionInstall(\n version,\n {\n installPath: versionsPath,\n },\n (installErr?: Error, results?: { version: string; installPath: string }[]) => {\n if (installErr) {\n console.error(`Failed to install Node ${version}:`, installErr.message);\n exit(1);\n return;\n }\n\n if (results && results.length > 0) {\n const result = results[0];\n console.log(`Successfully installed Node ${result.version}`);\n console.log(`Location: ${result.installPath}`);\n } else {\n console.log(`Node ${version} installed successfully.`);\n }\n exit(0);\n }\n );\n });\n}\n"],"names":["installCmd","args","length","console","log","exit","version","trim","startsWith","loadNodeVersionInstall","err","nodeVersionInstall","error","message","versionsPath","path","join","storagePath","installPath","installErr","results","result"],"mappings":";;;;+BAKA;;;;CAIC,GACD;;;eAAwBA;;;2DAVP;2DACA;2BACW;+EACO;;;;;;AAOpB,SAASA,WAAWC,IAAc;IAC/C,IAAIA,KAAKC,MAAM,KAAK,GAAG;QACrBC,QAAQC,GAAG,CAAC;QACZD,QAAQC,GAAG,CAAC;QACZD,QAAQC,GAAG,CAAC;QACZD,QAAQC,GAAG,CAAC;QACZC,IAAAA,aAAI,EAAC;QACL;IACF;IAEA,IAAMC,UAAUL,IAAI,CAAC,EAAE,CAACM,IAAI;IAE5B,wCAAwC;IACxC,IAAI,CAACD,WAAWA,QAAQE,UAAU,CAAC,MAAM;QACvCL,QAAQC,GAAG,CAAC;QACZC,IAAAA,aAAI,EAAC;QACL;IACF;IAEAF,QAAQC,GAAG,CAAC,AAAC,mBAA0B,OAARE,SAAQ;IAEvC,wCAAwC;IACxCG,IAAAA,iCAAsB,EAAC,SAACC,KAAKC;QAC3B,IAAID,OAAO,CAACC,oBAAoB;YAC9BR,QAAQS,KAAK,CAAC,wCAAwCF,CAAAA,gBAAAA,0BAAAA,IAAKG,OAAO,KAAI;YACtEV,QAAQS,KAAK,CAAC;YACdP,IAAAA,aAAI,EAAC;YACL;QACF;QAEA,IAAMS,eAAeC,aAAI,CAACC,IAAI,CAACC,wBAAW,EAAE;QAE5CN,mBACEL,SACA;YACEY,aAAaJ;QACf,GACA,SAACK,YAAoBC;YACnB,IAAID,YAAY;gBACdhB,QAAQS,KAAK,CAAC,AAAC,0BAAiC,OAARN,SAAQ,MAAIa,WAAWN,OAAO;gBACtER,IAAAA,aAAI,EAAC;gBACL;YACF;YAEA,IAAIe,WAAWA,QAAQlB,MAAM,GAAG,GAAG;gBACjC,IAAMmB,SAASD,OAAO,CAAC,EAAE;gBACzBjB,QAAQC,GAAG,CAAC,AAAC,+BAA6C,OAAfiB,OAAOf,OAAO;gBACzDH,QAAQC,GAAG,CAAC,AAAC,aAA+B,OAAnBiB,OAAOH,WAAW;YAC7C,OAAO;gBACLf,QAAQC,GAAG,CAAC,AAAC,QAAe,OAARE,SAAQ;YAC9B;YACAD,IAAAA,aAAI,EAAC;QACP;IAEJ;AACF"}
1
+ {"version":3,"sources":["/Users/kevin/Dev/OpenSource/node-version/node-version-use/src/commands/install.ts"],"sourcesContent":["import exit from 'exit';\nimport path from 'path';\nimport { storagePath } from '../constants.ts';\nimport loadNodeVersionInstall from '../lib/loadNodeVersionInstall.ts';\n\n/**\n * nvu install <version>\n *\n * Download and install a specific Node version.\n */\nexport default function installCmd(args: string[]): void {\n if (args.length === 0) {\n console.log('Usage: nvu install <version>');\n console.log('Example: nvu install 20');\n console.log(' nvu install 20.10.0');\n console.log(' nvu install lts');\n exit(1);\n return;\n }\n\n const version = args[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 install <version>');\n exit(1);\n return;\n }\n\n console.log(`Installing Node ${version}...`);\n\n // Load node-version-install dynamically\n loadNodeVersionInstall((err, nodeVersionInstall) => {\n if (err || !nodeVersionInstall) {\n console.error('Failed to load node-version-install:', err?.message || 'Module not available');\n console.error('Make sure node-version-install is installed: npm install node-version-install');\n exit(1);\n return;\n }\n\n const versionsPath = path.join(storagePath, 'installed');\n\n nodeVersionInstall(\n version,\n {\n installPath: versionsPath,\n },\n (installErr?: Error, results?: { version: string; installPath: string }[]) => {\n if (installErr) {\n console.error(`Failed to install Node ${version}:`, installErr.message);\n exit(1);\n return;\n }\n\n if (results && results.length > 0) {\n const result = results[0];\n console.log(`Successfully installed Node ${result.version}`);\n console.log(`Location: ${result.installPath}`);\n } else {\n console.log(`Node ${version} installed successfully.`);\n }\n exit(0);\n }\n );\n });\n}\n"],"names":["installCmd","args","length","console","log","exit","version","trim","indexOf","loadNodeVersionInstall","err","nodeVersionInstall","error","message","versionsPath","path","join","storagePath","installPath","installErr","results","result"],"mappings":";;;;+BAKA;;;;CAIC,GACD;;;eAAwBA;;;2DAVP;2DACA;2BACW;+EACO;;;;;;AAOpB,SAASA,WAAWC,IAAc;IAC/C,IAAIA,KAAKC,MAAM,KAAK,GAAG;QACrBC,QAAQC,GAAG,CAAC;QACZD,QAAQC,GAAG,CAAC;QACZD,QAAQC,GAAG,CAAC;QACZD,QAAQC,GAAG,CAAC;QACZC,IAAAA,aAAI,EAAC;QACL;IACF;IAEA,IAAMC,UAAUL,IAAI,CAAC,EAAE,CAACM,IAAI;IAE5B,sEAAsE;IACtE,IAAI,CAACD,WAAWA,QAAQE,OAAO,CAAC,SAAS,GAAG;QAC1CL,QAAQC,GAAG,CAAC;QACZC,IAAAA,aAAI,EAAC;QACL;IACF;IAEAF,QAAQC,GAAG,CAAC,AAAC,mBAA0B,OAARE,SAAQ;IAEvC,wCAAwC;IACxCG,IAAAA,iCAAsB,EAAC,SAACC,KAAKC;QAC3B,IAAID,OAAO,CAACC,oBAAoB;YAC9BR,QAAQS,KAAK,CAAC,wCAAwCF,CAAAA,gBAAAA,0BAAAA,IAAKG,OAAO,KAAI;YACtEV,QAAQS,KAAK,CAAC;YACdP,IAAAA,aAAI,EAAC;YACL;QACF;QAEA,IAAMS,eAAeC,aAAI,CAACC,IAAI,CAACC,wBAAW,EAAE;QAE5CN,mBACEL,SACA;YACEY,aAAaJ;QACf,GACA,SAACK,YAAoBC;YACnB,IAAID,YAAY;gBACdhB,QAAQS,KAAK,CAAC,AAAC,0BAAiC,OAARN,SAAQ,MAAIa,WAAWN,OAAO;gBACtER,IAAAA,aAAI,EAAC;gBACL;YACF;YAEA,IAAIe,WAAWA,QAAQlB,MAAM,GAAG,GAAG;gBACjC,IAAMmB,SAASD,OAAO,CAAC,EAAE;gBACzBjB,QAAQC,GAAG,CAAC,AAAC,+BAA6C,OAAfiB,OAAOf,OAAO;gBACzDH,QAAQC,GAAG,CAAC,AAAC,aAA+B,OAAnBiB,OAAOH,WAAW;YAC7C,OAAO;gBACLf,QAAQC,GAAG,CAAC,AAAC,QAAe,OAARE,SAAQ;YAC9B;YACAD,IAAAA,aAAI,EAAC;QACP;IAEJ;AACF"}
@@ -23,7 +23,7 @@ function _interop_require_default(obj) {
23
23
  };
24
24
  }
25
25
  function listCmd(_args) {
26
- var versionsPath = _path.default.join(_constantsts.storagePath, 'versions');
26
+ var versionsPath = _path.default.join(_constantsts.storagePath, 'installed');
27
27
  // Check if versions directory exists
28
28
  if (!_fs.default.existsSync(versionsPath)) {
29
29
  console.log('No Node versions installed.');
@@ -66,27 +66,11 @@ function listCmd(_args) {
66
66
  return 0;
67
67
  });
68
68
  console.log('Installed Node versions:');
69
- var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
70
- try {
71
- for(var _iterator = versions[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){
72
- var version = _step.value;
73
- var isDefault = version === defaultVersion || "v".concat(version) === defaultVersion || version === "v".concat(defaultVersion);
74
- var marker = isDefault ? ' (default)' : '';
75
- console.log(" ".concat(version).concat(marker));
76
- }
77
- } catch (err) {
78
- _didIteratorError = true;
79
- _iteratorError = err;
80
- } finally{
81
- try {
82
- if (!_iteratorNormalCompletion && _iterator.return != null) {
83
- _iterator.return();
84
- }
85
- } finally{
86
- if (_didIteratorError) {
87
- throw _iteratorError;
88
- }
89
- }
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));
90
74
  }
91
75
  (0, _exit.default)(0);
92
76
  }
@@ -1 +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, 'versions');\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 (const version of versions) {\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;QACP,kCAAA,2BAAA;;QAAL,QAAK,YAAiBI,6BAAjB,SAAA,6BAAA,QAAA,yBAAA,iCAA2B;YAA3B,IAAMwB,UAAN;YACH,IAAMC,YAAYD,YAAYhB,kBAAkB,AAAC,IAAW,OAARgB,aAAchB,kBAAkBgB,YAAY,AAAC,IAAkB,OAAfhB;YACpG,IAAMkB,SAASD,YAAY,eAAe;YAC1C9B,QAAQC,GAAG,CAAC,AAAC,KAAc8B,OAAVF,SAAiB,OAAPE;QAC7B;;QAJK;QAAA;;;iBAAA,6BAAA;gBAAA;;;gBAAA;sBAAA;;;;IAKL7B,IAAAA,aAAI,EAAC;AACP"}
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"}
@@ -23,8 +23,8 @@ function _interop_require_default(obj) {
23
23
  }
24
24
  function localCmd(args) {
25
25
  var cwd = process.cwd();
26
- // Check for --nvurc flag
27
- var useNvurc = args.includes('--nvurc');
26
+ // Check for --nvurc flag (indexOf for Node 0.8+ compat)
27
+ var useNvurc = args.indexOf('--nvurc') !== -1;
28
28
  var filteredArgs = args.filter(function(arg) {
29
29
  return arg !== '--nvurc';
30
30
  });
@@ -54,8 +54,8 @@ function localCmd(args) {
54
54
  return;
55
55
  }
56
56
  var version2 = filteredArgs[0].trim();
57
- // Validate version format (basic check)
58
- if (!version2 || version2.startsWith('-')) {
57
+ // Validate version format (basic check, indexOf for Node 0.8+ compat)
58
+ if (!version2 || version2.indexOf('-') === 0) {
59
59
  console.log('Usage: nvu local <version>');
60
60
  console.log('Example: nvu local 20');
61
61
  (0, _exit.default)(1);
@@ -1 +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\n const useNvurc = args.includes('--nvurc');\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)\n if (!version || version.startsWith('-')) {\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","includes","filteredArgs","filter","arg","fileName","filePath","path","join","length","nvurcPath","nvmrcPath","fs","existsSync","version","readFileSync","trim","console","log","exit","startsWith","writeFileSync"],"mappings":";;;;+BAIA;;;;;CAKC,GACD;;;eAAwBA;;;2DAVP;yDACF;2DACE;;;;;;AAQF,SAASA,SAASC,IAAc;IAC7C,IAAMC,MAAMC,QAAQD,GAAG;IAEvB,yBAAyB;IACzB,IAAME,WAAWH,KAAKI,QAAQ,CAAC;IAC/B,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,wCAAwC;IACxC,IAAI,CAACF,YAAWA,SAAQM,UAAU,CAAC,MAAM;QACvCH,QAAQC,GAAG,CAAC;QACZD,QAAQC,GAAG,CAAC;QACZC,IAAAA,aAAI,EAAC;QACL;IACF;IAEA,yBAAyB;IACzBP,WAAE,CAACS,aAAa,CAACf,UAAU,AAAC,GAAU,OAARQ,UAAQ,OAAK;IAC3CG,QAAQC,GAAG,CAAC,AAAC,WAAoCJ,OAA1BT,UAAS,mBAAyB,OAARS;IACjDK,IAAAA,aAAI,EAAC;AACP"}
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"}
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * nvu setup
3
3
  *
4
- * Install/reinstall nvu shims to ~/.nvu/bin
4
+ * Install/reinstall nvu binaries to ~/.nvu/bin
5
5
  * This runs the same logic as the postinstall script.
6
6
  */
7
7
  export default function setupCmd(_args: string[]): void;
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * nvu setup
3
3
  *
4
- * Install/reinstall nvu shims to ~/.nvu/bin
4
+ * Install/reinstall nvu binaries to ~/.nvu/bin
5
5
  * This runs the same logic as the postinstall script.
6
6
  */
7
7
  export default function setupCmd(_args: string[]): void;
@@ -5,7 +5,7 @@ Object.defineProperty(exports, "__esModule", {
5
5
  Object.defineProperty(exports, /**
6
6
  * nvu setup
7
7
  *
8
- * Install/reinstall nvu shims to ~/.nvu/bin
8
+ * Install/reinstall nvu binaries to ~/.nvu/bin
9
9
  * This runs the same logic as the postinstall script.
10
10
  */ "default", {
11
11
  enumerable: true,
@@ -1 +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 shims 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"}
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"}
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * nvu teardown
3
3
  *
4
- * Remove nvu shims from ~/.nvu/bin
4
+ * Remove nvu binaries from ~/.nvu/bin
5
5
  */
6
6
  export default function teardownCmd(_args: string[]): void;
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * nvu teardown
3
3
  *
4
- * Remove nvu shims from ~/.nvu/bin
4
+ * Remove nvu binaries from ~/.nvu/bin
5
5
  */
6
6
  export default function teardownCmd(_args: string[]): void;
@@ -5,7 +5,7 @@ Object.defineProperty(exports, "__esModule", {
5
5
  Object.defineProperty(exports, /**
6
6
  * nvu teardown
7
7
  *
8
- * Remove nvu shims from ~/.nvu/bin
8
+ * Remove nvu binaries from ~/.nvu/bin
9
9
  */ "default", {
10
10
  enumerable: true,
11
11
  get: function() {
@@ -14,6 +14,7 @@ Object.defineProperty(exports, /**
14
14
  });
15
15
  var _exit = /*#__PURE__*/ _interop_require_default(require("exit"));
16
16
  var _fs = /*#__PURE__*/ _interop_require_default(require("fs"));
17
+ var _fsremovecompat = require("fs-remove-compat");
17
18
  var _path = /*#__PURE__*/ _interop_require_default(require("path"));
18
19
  var _constantsts = require("../constants.js");
19
20
  function _interop_require_default(obj) {
@@ -23,43 +24,28 @@ function _interop_require_default(obj) {
23
24
  }
24
25
  function teardownCmd(_args) {
25
26
  var binDir = _path.default.join(_constantsts.storagePath, 'bin');
26
- var shims = [
27
+ var binaries = [
27
28
  'node',
28
29
  'npm',
29
30
  'npx'
30
31
  ];
31
32
  var ext = process.platform === 'win32' ? '.exe' : '';
32
33
  var removed = 0;
33
- var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
34
- try {
35
- for(var _iterator = shims[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){
36
- var shim = _step.value;
37
- var shimPath = _path.default.join(binDir, shim + ext);
38
- if (_fs.default.existsSync(shimPath)) {
39
- _fs.default.unlinkSync(shimPath);
40
- removed++;
41
- }
42
- }
43
- } catch (err) {
44
- _didIteratorError = true;
45
- _iteratorError = err;
46
- } finally{
47
- try {
48
- if (!_iteratorNormalCompletion && _iterator.return != null) {
49
- _iterator.return();
50
- }
51
- } finally{
52
- if (_didIteratorError) {
53
- throw _iteratorError;
54
- }
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++;
55
41
  }
56
42
  }
57
43
  if (removed > 0) {
58
- console.log("Removed ".concat(removed, " shim(s) from ").concat(binDir));
44
+ console.log("Removed ".concat(removed, " binary(s) from ").concat(binDir));
59
45
  console.log('');
60
46
  console.log('You may also want to remove ~/.nvu/bin from your PATH.');
61
47
  } else {
62
- console.log('No shims found to remove.');
48
+ console.log('No binaries found to remove.');
63
49
  }
64
50
  (0, _exit.default)(0);
65
51
  }
@@ -1 +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 path from 'path';\nimport { storagePath } from '../constants.ts';\n\n/**\n * nvu teardown\n *\n * Remove nvu shims from ~/.nvu/bin\n */\nexport default function teardownCmd(_args: string[]): void {\n const binDir = path.join(storagePath, 'bin');\n\n const shims = ['node', 'npm', 'npx'];\n const ext = process.platform === 'win32' ? '.exe' : '';\n\n let removed = 0;\n for (const shim of shims) {\n const shimPath = path.join(binDir, shim + ext);\n if (fs.existsSync(shimPath)) {\n fs.unlinkSync(shimPath);\n removed++;\n }\n }\n\n if (removed > 0) {\n console.log(`Removed ${removed} shim(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 shims found to remove.');\n }\n\n exit(0);\n}\n"],"names":["teardownCmd","_args","binDir","path","join","storagePath","shims","ext","process","platform","removed","shim","shimPath","fs","existsSync","unlinkSync","console","log","exit"],"mappings":";;;;+BAKA;;;;CAIC,GACD;;;eAAwBA;;;2DAVP;yDACF;2DACE;2BACW;;;;;;AAOb,SAASA,YAAYC,KAAe;IACjD,IAAMC,SAASC,aAAI,CAACC,IAAI,CAACC,wBAAW,EAAE;IAEtC,IAAMC,QAAQ;QAAC;QAAQ;QAAO;KAAM;IACpC,IAAMC,MAAMC,QAAQC,QAAQ,KAAK,UAAU,SAAS;IAEpD,IAAIC,UAAU;QACT,kCAAA,2BAAA;;QAAL,QAAK,YAAcJ,0BAAd,SAAA,6BAAA,QAAA,yBAAA,iCAAqB;YAArB,IAAMK,OAAN;YACH,IAAMC,WAAWT,aAAI,CAACC,IAAI,CAACF,QAAQS,OAAOJ;YAC1C,IAAIM,WAAE,CAACC,UAAU,CAACF,WAAW;gBAC3BC,WAAE,CAACE,UAAU,CAACH;gBACdF;YACF;QACF;;QANK;QAAA;;;iBAAA,6BAAA;gBAAA;;;gBAAA;sBAAA;;;;IAQL,IAAIA,UAAU,GAAG;QACfM,QAAQC,GAAG,CAAC,AAAC,WAAkCf,OAAxBQ,SAAQ,kBAAuB,OAAPR;QAC/Cc,QAAQC,GAAG,CAAC;QACZD,QAAQC,GAAG,CAAC;IACd,OAAO;QACLD,QAAQC,GAAG,CAAC;IACd;IAEAC,IAAAA,aAAI,EAAC;AACP"}
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"}
@@ -31,7 +31,7 @@ function uninstallCmd(args) {
31
31
  return;
32
32
  }
33
33
  var version = args[0].trim();
34
- var versionsPath = _path.default.join(_constantsts.storagePath, 'versions');
34
+ var versionsPath = _path.default.join(_constantsts.storagePath, 'installed');
35
35
  // Find all matching installed versions
36
36
  var matches = findInstalledVersions(versionsPath, version);
37
37
  if (matches.length === 0) {
@@ -1 +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, 'versions');\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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"}
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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"}
@@ -2,6 +2,6 @@
2
2
  * nvu which
3
3
  *
4
4
  * Show which Node binary would be used based on current directory.
5
- * This simulates what the shim would do.
5
+ * This simulates what the nvu binary would do.
6
6
  */
7
7
  export default function whichCmd(_args: string[]): void;
@@ -2,6 +2,6 @@
2
2
  * nvu which
3
3
  *
4
4
  * Show which Node binary would be used based on current directory.
5
- * This simulates what the shim would do.
5
+ * This simulates what the nvu binary would do.
6
6
  */
7
7
  export default function whichCmd(_args: string[]): void;