icoa-cli 2.2.2 → 2.2.3

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.
@@ -291,17 +291,16 @@ function showStatus() {
291
291
  console.log(chalk.gray(' Then run icoa inside WSL for 100% tool compatibility'));
292
292
  }
293
293
  console.log(chalk.gray(' ─────────────────────────────────────────────'));
294
- // Node.js version check
294
+ // Node.js version check — >= 22.22.2
295
295
  const nodeVer = process.versions.node;
296
- if (nodeVer === NODE_EXACT) {
297
- console.log(chalk.green(` ✓ Node.js ${nodeVer}`) + chalk.gray(' (official)'));
298
- }
299
- else if (nodeVer.startsWith(NODE_TARGET + '.')) {
300
- console.log(chalk.yellow(` ~ Node.js ${nodeVer}`) + chalk.gray(` (${NODE_EXACT} recommended, run env setup)`));
296
+ const nodeParts = nodeVer.split('.').map(Number);
297
+ const nodeOk = nodeParts[0] > 22 || (nodeParts[0] === 22 && nodeParts[1] > 22) || (nodeParts[0] === 22 && nodeParts[1] === 22 && nodeParts[2] >= 2);
298
+ if (nodeOk) {
299
+ console.log(chalk.green(` ✓ Node.js ${nodeVer}`) + chalk.gray(` (>= ${NODE_EXACT})`));
301
300
  }
302
301
  else {
303
- console.log(chalk.red(` ✗ Node.js ${nodeVer}`) + chalk.gray(` (${NODE_EXACT} required)`));
304
- console.log(chalk.gray(' Install: nvm install 22.22.2 or visit https://nodejs.org/'));
302
+ console.log(chalk.red(` ✗ Node.js ${nodeVer}`) + chalk.gray(` (>= ${NODE_EXACT} required)`));
303
+ console.log(chalk.gray(' Install: nvm install 22 or visit https://nodejs.org/'));
305
304
  }
306
305
  // Python version check
307
306
  const pyVer = getPythonMajorMinor();
package/dist/index.js CHANGED
@@ -36,7 +36,7 @@ ${LINE}
36
36
  ${chalk.white('Sydney, Australia')} ${chalk.gray('Jun 27 - Jul 2, 2026')}
37
37
  ${chalk.cyan.underline('https://icoa2026.au')}
38
38
 
39
- ${chalk.gray('CLI-Native Competition Terminal v2.2.2')}
39
+ ${chalk.gray('CLI-Native Competition Terminal v2.2.3')}
40
40
 
41
41
  ${LINE}
42
42
  `;
package/dist/repl.js CHANGED
@@ -27,7 +27,7 @@ const BLOCKED_COMMANDS = new Set([
27
27
  'iptables', 'ufw', // firewall
28
28
  ]);
29
29
  const INTERCEPT = '__REPL_NO_EXIT__';
30
- const VERSION = '2.2.2';
30
+ const VERSION = '2.2.3';
31
31
  export async function startRepl(program, resumeMode) {
32
32
  const config = getConfig();
33
33
  const connected = isConnected();
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "icoa-cli",
3
- "version": "2.2.2",
3
+ "version": "2.2.3",
4
4
  "description": "ICOA CLI — The world's first CLI-native CTF competition terminal",
5
5
  "type": "module",
6
6
  "bin": {