Metadata-Version: 2.4
Name: pyreact-web
Version: 0.1.2
Summary: The Python-Powered Fullstack Language
Author: Yuda Hasibuan
License: MIT
Requires-Python: >=3.11
Description-Content-Type: text/markdown
Requires-Dist: flask>=3.0.0
Requires-Dist: flask-cors>=4.0.0
Requires-Dist: jinja2>=3.1.0

# PyReact-Web 🚀

**Bahasa Web Fullstack Modern Bertenaga Python** — v1.4.0

> Bangun aplikasi fullstack bertenaga AI yang indah menggunakan satu bahasa, satu berkas, dan satu alur kerja terpadu.

**PyReact = Kesederhanaan Python + Kekuatan React + Pengembangan AI-Native**

---

## 📦 Instalasi & Memulai Cepat

PyReact kini tersedia secara resmi di PyPI dengan nama package `pyreact-web`:

```bash
# Instal PyReact secara global
pip install pyreact-web

# Buat proyek baru
pyreact new myapp

# Masuk ke direktori dan jalankan server pengembangan Flask + Vite
cd myapp
pyreact dev
```

---

## Satu Berkas. Stack Utuh (Full Stack).

Berikut adalah contoh kode sederhana `.pyreact` yang menyatukan definisi database, logika backend RPC, rute halaman, gaya, komponen UI, hingga dukungan PWA offline dalam satu berkas tunggal:

```pyreact
database {
    model Forecast {
        id = primary_key()
        value = integer()
        created_at = timestamp()
    }
}

server {
    def forecast(data):
        # Logika backend Python dengan akses database ORM & AI
        return {"result": [1, 4, 9, 16]}
}

pages {
    Home      = "/"
    Dashboard = "/dashboard" [guard]
    Login     = "/login"
}

component Dashboard():
    result, setResult = use_state(None)

    def runForecast():
        data = server.forecast([])
        setResult(data)

    return (
        <UI.Page>
            <UI.Navbar title="Aplikasi PyReact" />
            <UI.NetworkStatus />
            <UI.Button onClick={runForecast}>Jalankan Forecast</UI.Button>
            <UI.Chart type="line" data={result} />
        </UI.Page>
    )

style {
    primary = "#6366f1"
    radius  = "16px"
    background = "#0b0f19"
}
```

---

## ⚡ Fitur Utama (Fase 15 - 23 Selesai)

### 🩺 Self-Healing Compiler [Fase 15]
Mendeteksi kesalahan sintaksis secara otomatis saat kompilasi dan memperbaikinya secara dinamis menggunakan model AI lokal (via Ollama) atau cadangan cloud.
```bash
pyreact compile app.pyreact --heal
```

### 🗺️ File-System & Declarative Routing [Fase 16]
Mendukung routing deklaratif via blok `pages { ... }` serta routing berbasis struktur folder ala Next.js (contoh: `pages/blog/[slug].pyreact`) lengkap dengan otorisasi rute (*route guards*).

### 🛡️ Type System & Validasi [Fase 17]
Menjamin keamanan tipe data dengan anotasi tipe bawaan Python serta decorator seperti `@validate` untuk memvalidasi masukan kueri sebelum disimpan ke database.

### 🔄 Sinkronisasi Real-time [Fase 18]
Sinkronisasi data dua arah antara backend dan klien secara instan menggunakan jalur WebSocket atau Server-Sent Events (SSE).

### 🧪 Framework Pengujian Terintegrasi [Fase 19]
Lakukan pengujian unit komponen, pengujian API backend, hingga pengujian fungsional *End-to-End* (E2E) berbasis Playwright hanya dengan satu perintah:
```bash
pyreact test
```

### 💻 Ekstensi VS Code [Fase 20]
Peralatan editor lengkap mulai dari *syntax highlighting* berkas `.pyreact`, autocomplete berbasis LSP (Language Server Protocol), diagnosa eror inline, hingga panel *live preview* terintegrasi.

### ☁️ Deployment PyReact Cloud [Fase 21]
Unggah aplikasi produksi Anda ke klaster PyReact Cloud dengan satu baris perintah, lengkap dengan manajemen domain kustom, sertifikat SSL, dan dasbor analitik:
```bash
pyreact deploy
```

### 🌐 Hybrid Server-Side Rendering (SSR) [Fase 22]
Pre-rendering kode JSX frontend langsung dari sisi server Python (Flask/FastAPI) tanpa memerlukan runtime Node.js eksternal, dikombinasikan dengan hidrasi klien dinamis via `ReactDOM.hydrateRoot`.

### 📴 Offline-First PWA & Background Sync [Fase 23]
- **Web App Manifest & Service Worker**: Pembuatan otomatis `manifest.json` dan `sw.js` untuk membuat aplikasi web dapat diinstal di HP/Desktop dan diakses tanpa koneksi internet.
- **Offline RPC Queue**: Menyimpan panggilan fungsi `server.*` saat perangkat luring (offline) ke dalam antrean, lalu memutarnya kembali secara otomatis saat terhubung kembali (online).
- **Local State Caching**: Menyimpan status state komponen (`shared_state`) secara otomatis ke LocalStorage.
- **Indikator Jaringan**: Menampilkan status koneksi real-time melalui komponen bawaan `<UI.NetworkStatus />`.

---

## 🗺️ Peta Jalan & Status Proyek (Roadmap)

| Fase | Fitur | Status |
|---|---|---|
| **1–14** | Lexer, Parser, AST, RPC, DB ORM, AI Agents, PPR Registry | ✅ Selesai |
| **15** | Self-Healing Compiler (Bertenaga AI) | ✅ Selesai |
| **16** | File-System & Pages Routing | ✅ Selesai |
| **17** | Type System & Validasi Request | ✅ Selesai |
| **18** | Real-Time Sync & Client WebSocket | ✅ Selesai |
| **19** | Framework Pengujian E2E (Playwright) | ✅ Selesai |
| **20** | Ekstensi VS Code (Sintaks, LSP, Live Preview) | ✅ Selesai |
| **21** | One-Command Cloud Deploy & Dasbor Analitik | ✅ Selesai |
| **22** | Hybrid Server-Side Rendering (SSR) | ✅ Selesai |
| **23** | Offline-First PWA & Background Sync | ✅ Selesai |
| **24** | Real-time Collaborative State & WebSockets | 🔲 Direncanakan |
| **25** | GraphQL API Engine & Type-Safe Queries | 🔲 Direncanakan |
| **26** | RBAC (Role-Based Access Control) & Guards | 🔲 Direncanakan |

---

## 📄 Lisensi

MIT © Yuda Hasibuan
