#!/usr/bin/env bash
set -euo pipefail
ROOT="$(cd "$(dirname "$0")/.." && pwd)"
command -v php >/dev/null || { echo "PHP CLI is required"; exit 2; }
command -v node >/dev/null || { echo "Node.js is required"; exit 2; }
find "$ROOT/backend" -type f -name '*.php' -print0 | xargs -0 -n1 php -l
node --check "$ROOT/frontend/app.js"
node --check "$ROOT/frontend/sw.js"
python3 - "$ROOT" <<'PYTEST'
from pathlib import Path
import sys
from html.parser import HTMLParser
root=Path(sys.argv[1])
class Parser(HTMLParser):
    def __init__(self): super().__init__(); self.ids=[]
    def handle_starttag(self, tag, attrs):
        d=dict(attrs)
        if 'id' in d: self.ids.append(d['id'])
p=Parser(); p.feed((root/'frontend/index.html').read_text())
assert len(p.ids)==len(set(p.ids)), 'Duplicate HTML id attributes found'
for item in ['community-alerts-section','community-report-form','community-alerts-feed','community-alerts-map','community-notifications-toggle','community-nearby-only']:
    assert item in p.ids, f'Missing frontend element: {item}'
admin=(root/'backend/admin/community-alerts.php').read_text()
assert "($action === 'verify' && $current === 'pending')" in admin
assert "($action === 'resolve' && $current === 'verified')" in admin
assert "if ($action === 'verify')" in admin
print('Frontend ID checks and moderation transition regression checks: PASS')
PYTEST
echo 'Release static verification: PASS'
