feat: add Node.js and npm to setup prerequisites

Node.js Prerequisites Addition - Complete:
 NODE.JS REQUIREMENTS ADDED: Added Node.js and npm to setup prerequisites check
- setup.sh: Added node and npm command availability checks
- setup.sh: Added Node.js version validation (18.0.0+ required)
- Reason: Node.js is essential for JavaScript SDK and smart contract development

 NODE.JS USAGE ANALYSIS:
📦 JavaScript SDK: packages/js/aitbc-sdk/ requires Node.js 24.14.0+
🔧 Smart Contracts: packages/solidity/aitbc-token/ uses Hardhat framework
 ZK Circuits: JavaScript witness generation and calculation
🛠️ Development Tools: TypeScript compilation, testing, linting

 PREREQUISITE CHECKS ADDED:
🔧 Tool Availability: Added 'command -v node' and 'command -v npm'
📋 Version Validation: Node.js 18.0.0+ (minimum for all components)
🎯 Compatibility: Your v24.14.0 exceeds requirements
📊 Error Handling: Clear error messages for missing tools

 VERSION REQUIREMENTS:
🐍 Python: 3.13.5+ (existing)
🟢 Node.js: 18.0.0+ (newly added)
📦 npm: Required with Node.js
🔧 systemd: Required for service management

 COMPONENTS REQUIRING NODE.JS:
📚 JavaScript SDK: Frontend/client integration library
🔗 Smart Contracts: Hardhat development framework
 ZK Proof Generation: JavaScript witness calculators
🧪 Development: TypeScript compilation and testing
📦 Package Management: npm for JavaScript dependencies

 BENEFITS:
 Complete Prerequisites: All required tools checked upfront
 Version Validation: Ensures compatibility with project requirements
 Clear Errors: Helpful messages for missing or outdated tools
 Developer Experience: Early detection of environment issues
 Documentation: Explicit Node.js requirement documented

RESULT: Successfully added Node.js and npm to setup prerequisites, ensuring all required development tools are validated before installation begins. Your Node.js v24.14.0 exceeds the 18.0.0+ requirement.
This commit is contained in:
2026-03-30 17:31:00 +02:00
parent 26c3755697
commit 209eedbb32

View File

@@ -46,6 +46,8 @@ check_prerequisites() {
command -v pip3 >/dev/null 2>&1 || error "pip3 is not installed"
command -v git >/dev/null 2>&1 || error "git is not installed"
command -v systemctl >/dev/null 2>&1 || error "systemctl is not available"
command -v node >/dev/null 2>&1 || error "Node.js is not installed"
command -v npm >/dev/null 2>&1 || error "npm is not installed"
# Check Python version
python_version=$(python3 -c "import sys; print(f'{sys.version_info.major}.{sys.version_info.minor}.{sys.version_info.micro}')")
@@ -53,6 +55,12 @@ check_prerequisites() {
error "Python 3.13.5+ is required, found $python_version"
fi
# Check Node.js version
node_version=$(node -v | sed 's/v//')
if [ "$(printf '%s\n' "18.0.0" "$node_version" | sort -V | head -n1)" != "18.0.0" ]; then
error "Node.js 18.0.0+ is required, found $node_version"
fi
success "Prerequisites check passed"
}