#!/bin/sh
# Next standalone çıktısında eksik kök node_modules linklerini tamamlar.
#
# Neden: Turbopack, serverExternalPackages'taki ESM paketleri (openai,
# resend) çalışma anında bare import ile yükler ama nft
# trace'ine yalnızca .pnpm gerçek yollarını yazar — kök symlink standalone'a
# kopyalanmaz ve import MODULE_NOT_FOUND ile düşer. (CJS external'larda —
# better-sqlite3, iyzipay — symlink trace'e giriyor, sorun yalnızca ESM'de.)
# Bu script .pnpm altındaki her paket için eksik kök girdisini symlink'ler;
# mevcut girdilere dokunmaz. Yeni bir external eklendiğinde de kendiliğinden
# kapsar, paket adı/versiyon sabitlemez.
set -eu

KOK="${1:-.next/standalone}/node_modules"
[ -d "$KOK/.pnpm" ] || { echo "standalone .pnpm yok, atlandi: $KOK"; exit 0; }
cd "$KOK"

for d in .pnpm/*/node_modules/*; do
  [ -e "$d" ] || continue
  base=${d##*/}
  case "$base" in
    .*) continue ;;
    @*)
      for sub in "$d"/*; do
        [ -d "$sub" ] || continue
        hedef="$base/${sub##*/}"
        if [ ! -e "$hedef" ]; then
          mkdir -p "$base"
          ln -s "../$sub" "$hedef"
          echo "link: $hedef"
        fi
      done
      ;;
    *)
      if [ ! -e "$base" ]; then
        ln -s "$d" "$base"
        echo "link: $base"
      fi
      ;;
  esac
done
