# Load Node.js environment for GUI apps (GitHub Desktop, etc.)
# that don't inherit shell PATH
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh"  # nvm
[ -s "$HOME/.fnm/fnm" ] && eval "$(~/.fnm/fnm env)"  # fnm
[ -s "$HOME/.volta/bin/volta" ] && export PATH="$HOME/.volta/bin:$PATH"  # volta
[ -d "/opt/homebrew/bin" ] && export PATH="/opt/homebrew/bin:$PATH"  # homebrew (macOS ARM)
[ -d "/usr/local/bin" ] && export PATH="/usr/local/bin:$PATH"  # homebrew (macOS Intel)

# Verify no private registry URLs in package-lock.json
if grep -E '"resolved": "https?://' package-lock.json | grep -v registry.npmjs.org > /dev/null; then
  echo "ERROR: package-lock.json contains non-npmjs.org URLs"
  echo "Run: docker run --rm -i -v \$PWD:/src -w /src node:latest npm i --registry=https://registry.npmjs.org/"
  exit 1
fi

# Capture staged files so we only re-stage what the user intended to commit
# (avoids sweeping unrelated WIP into the commit)
STAGED=$(git diff --name-only --cached)

npm run build:all
npm run prettier:fix

# Re-stage originally-staged files (prettier may have reformatted them)
echo "$STAGED" | xargs -r git add

# Also stage generated files (regenerated by build:all from spec.types.ts)
git add src/generated/
