learning_ai_notes/scripts/dependency-health.sh

59 lines
1.3 KiB
Bash
Executable File

#!/usr/bin/env bash
# Dependency health report for NoteLett and common-platform package compatibility.
set -euo pipefail
ROOT="$(git rev-parse --show-toplevel)"
cd "$ROOT"
echo "=== Runtime ==="
node --version
pnpm --version
echo ""
echo "=== Key dependency versions ==="
node <<'NODE'
const fs = require('fs');
const packages = [
['root', 'package.json'],
['backend', 'backend/package.json'],
['web', 'web/package.json'],
['mobile', 'mobile/package.json'],
];
const keys = [
'@bytelyst/api-client',
'@bytelyst/auth-client',
'@bytelyst/datastore',
'@bytelyst/fastify-core',
'@bytelyst/llm',
'@bytelyst/platform-client',
'@bytelyst/react-auth',
'@playwright/test',
'expo',
'fastify',
'next',
'react',
'react-native',
'vitest',
];
for (const [label, file] of packages) {
const pkg = JSON.parse(fs.readFileSync(file, 'utf8'));
const deps = { ...(pkg.dependencies || {}), ...(pkg.devDependencies || {}) };
console.log(`[${label}]`);
for (const key of keys) {
if (deps[key]) console.log(`${key}=${deps[key]}`);
}
}
NODE
echo ""
echo "=== TypeScript compatibility sweep ==="
pnpm run typecheck
echo ""
echo "=== Outdated dependency report (non-blocking) ==="
pnpm outdated -r --long || true
echo ""
echo "Dependency health check completed."