Files
gh-jezweb-claude-skills-ski…/scripts/check-versions.sh
2025-11-30 08:25:37 +08:00

72 lines
2.1 KiB
Bash
Executable File

#!/bin/bash
# TheSys Generative UI - Version Checker
#
# Verifies installed package versions match recommended versions
# Usage: ./scripts/check-versions.sh
set -e
echo "========================================="
echo "TheSys Generative UI - Version Checker"
echo "========================================="
echo ""
# Check if node_modules exists
if [ ! -d "node_modules" ]; then
echo "❌ node_modules not found. Run npm/pnpm install first."
exit 1
fi
# Recommended versions
declare -A RECOMMENDED=(
["@thesysai/genui-sdk"]="0.6.40"
["@crayonai/react-ui"]="0.8.27"
["@crayonai/react-core"]="0.7.6"
["openai"]="4.73.0"
["zod"]="3.24.1"
["react"]="19.0.0"
)
echo "Checking package versions..."
echo ""
ALL_OK=true
for package in "${!RECOMMENDED[@]}"; do
recommended="${RECOMMENDED[$package]}"
# Try to get installed version
if [ -f "node_modules/$package/package.json" ]; then
installed=$(node -p "require('./node_modules/$package/package.json').version" 2>/dev/null || echo "unknown")
# Simple version comparison (ignores patch for minor updates)
installed_major=$(echo "$installed" | cut -d. -f1)
installed_minor=$(echo "$installed" | cut -d. -f2)
recommended_major=$(echo "$recommended" | cut -d. -f1)
recommended_minor=$(echo "$recommended" | cut -d. -f2)
if [ "$installed_major" -eq "$recommended_major" ] && [ "$installed_minor" -ge "$recommended_minor" ]; then
echo "$package: $installed (recommended: ~$recommended)"
else
echo "⚠️ $package: $installed (recommended: ~$recommended)"
ALL_OK=false
fi
else
echo "$package: NOT INSTALLED (recommended: ~$recommended)"
ALL_OK=false
fi
done
echo ""
if [ "$ALL_OK" = true ]; then
echo "✅ All packages are at compatible versions!"
else
echo "⚠️ Some packages need updating. Run:"
echo " npm install @thesysai/genui-sdk@^0.6.40 @crayonai/react-ui@^0.8.27 @crayonai/react-core@^0.7.6"
fi
echo ""
echo "For version compatibility matrix, see references/common-errors.md"