#!/bin/bash

JS_DIR="/Users/rbutare/websites/system/js"

echo "=== SPA DEBUG PATCHER ==="
echo "Scanning $JS_DIR"
echo

for f in "$JS_DIR"/*.js; do
    base=$(basename "$f")
    echo "Processing: $base"

    # 1. Add module-loaded debug marker if missing
    if ! grep -q "window.__SPA_DEBUG.log(\"$base loaded" "$f"; then
        echo "  + Adding module load marker"
        printf 'window.__SPA_DEBUG.log("%s loaded");\n' "$base" | cat - "$f" > "$f.tmp" && mv "$f.tmp" "$f"
    else
        echo "  - Module marker already exists"
    fi

    # 2. Add HARD DEBUG header to util.js only
    if [ "$base" = "util.js" ]; then
        if ! grep -q "window.__SPA_DEBUG" "$f"; then
            echo "  + Adding HARD DEBUG header to util.js"
            cat <<'EOF' | cat - "$f" > "$f.tmp" && mv "$f.tmp" "$f"
// HARD DEBUG MODE
window.__SPA_DEBUG = {
    modules: {},
    events: [],
    errors: [],
    log: function(m) {
        this.events.push(m);
        console.log("[SPA DEBUG]", m);
        var d = document.querySelector(".app-debug");
        if (d) d.innerHTML += "<div>" + m + "</div>";
    },
    error: function(m) {
        this.errors.push(m);
        console.error("[SPA ERROR]", m);
        var d = document.querySelector(".app-debug");
        if (d) d.innerHTML += "<div style='color:red'>" + m + "</div>";
    }
};

EOF
        else
            echo "  - HARD DEBUG already exists in util.js"
        fi
    fi

    # 3. Add import validation block if file contains imports
    if grep -q "^import " "$f"; then
        if ! grep -q "__SPA_IMPORT_CHECK" "$f"; then
            echo "  + Adding import validation block"
            cat <<EOF >> "$f"

// __SPA_IMPORT_CHECK
window.__SPA_DEBUG.log("Import check for $base");

EOF
        else
            echo "  - Import validation already exists"
        fi
    fi

    echo
done

echo "=== PATCH COMPLETE ==="

