{
  "title": "معماری پلتفرم فرانت‌اند (Frontend Architecture Overview)",
  "slug": "team/frontend/architecture/overview",
  "url": "/docs/team/frontend/architecture/overview",
  "frontmatter": {
    "layout": "doc",
    "title": "معماری پلتفرم فرانت‌اند (Overview)",
    "description": "نمای کلی لایه‌بندی معماری جدید فرانت‌اند پلتفرم Nons و تفکیک لایه‌های پیکربندی",
    "version": "1.1.0",
    "status": "PRIVATE",
    "author": "Antigravity",
    "owner": "xoxxel",
    "created_at": "2026-06-30",
    "updated_at": "2026-06-30",
    "tags": "",
    "reviewers": ""
  },
  "sections": [
    {
      "level": 1,
      "heading": "معماری پلتفرم فرانت‌اند (Frontend Architecture Overview)",
      "content": "هدف اصلی در بازطراحی معماری فرانت‌اند پلتفرم Nons، **استقلال کامل معماری سیستم از ساختار داخلی، فریم‌ورک‌ها (مانند React, Vue) یا ابزارهای خاص توسعه فرانت‌بند** است. این استقلال به ما اجازه می‌دهد پلتفرم را فراتر از یک ساختار کدنویسی خاص توسعه داده و پتانسیل پیشبرد سیستم‌های آینده همچون توسعه مبتنی بر شِما (Schema Driven)، قالب‌سازها (Builders) و رندررها (Renderers) را بدون نیاز به تغییر در شالوده معماری، فراهم سازیم.\n\n---"
    },
    {
      "level": 2,
      "heading": "سلسله‌مراتب کلی جریان معماری",
      "content": "لایه‌بندی ارتباطات و جریان داده در پلتفرم به صورت زیر ساختاردهی شده است:\n\n```mermaid\ngraph TD\n    NonsConfig[.nons Configuration] --> Loader[Runtime Loader]\n    Loader --> App[Application]\n    App --> Renderer[Template / Renderer]\n    Renderer --> UIKit[UI Kit]\n    UIKit --> Registry[Registry / لایه واسط]\n    Registry --> GeneratedAPI[API Client / تولیدشده توسط nons]\n    GeneratedAPI --> BE[Backend Services]\n\n    subgraph Config_Layer [لایه پیکربندی پلتفرم]\n        NonsConfig\n        NS[.nons/services/*.json]\n    end\n    \n    subgraph App_Layer [لایه اجرای کلاینت]\n        Loader\n        App\n        Renderer\n    end\n\n    subgraph Core_Packages [پکیج‌های هسته فرانت]\n        UIKit\n        Registry\n        GeneratedAPI\n    end\n```\n\n---"
    },
    {
      "level": 2,
      "heading": "تفکیک وظایف پکیج‌های هسته (Package Responsibilities)",
      "content": "فرانت‌اند پلتفرم Nons به سه پکیج اصلی با مسئولیت‌های کاملاً تفکیک‌شده تقسیم می‌شود:"
    },
    {
      "level": 3,
      "heading": "۱. کیت رابط کاربری (UI Kit)",
      "content": "این پکیج فاقد وضعیت شبکه یا منطق تجاری بوده و منحصراً بر اساس متغیرها و پوسته‌های ورودی کار می‌کند.\n* **مسئولیت‌ها:**\n  * ارائه کامپوننت‌های بصری پایه و اتمیک کلاینت (`Components`).\n  * مدیریت توکن‌های گرافیکی (`Tokens`).\n  * پیاده‌سازی سیستم‌های پوسته و استایل (`Theme`).\n  * پیاده‌سازی متون و ترجمه‌های محلی بر اساس پیکربندی‌ها (`Locale`)."
    },
    {
      "level": 3,
      "heading": "۲. پلتفرم مدیریت و پنل ادمین (Admin Platform)",
      "content": "این پکیج هسته پردازشی لایه کلاینت Nons را تشکیل می‌دهد و وظیفه تفسیر تنظیمات پلتفرم را دارد.\n* **مسئولیت‌ها:**\n  * موتور رندرینگ صفحات و کامپوننت‌ها (`Renderer`).\n  * موتور پردازش و تحلیل تعاریف صفحات (`Schema Engine`).\n  * قالب‌های چیدمان عمومی پنل‌ها (`Templates`).\n  * مدیریت زمان اجرای لایه رجیستری (`Registry Runtime`)."
    },
    {
      "level": 3,
      "heading": "۳. مصنوعات API تولیدشده (Generated API Artifacts)",
      "content": "ارتباط با وب‌سرویس‌های بک‌اند پلتفرم توسط کدهای تولیدشده **Platform CLI** (بر اساس [ADR-Platform-004](../../platform/ADR/ADR-Platform-004)) انجام می‌شود. CLI با دستور `nons generate` کدهای تایپ‌پذیر را در `.nons/generated/` تولید می‌کند — بدون وابستگی NPM.\n* **مسئولیت‌ها:**\n  * مدیریت و برقراری ارتباطات API و شبکه (`API Communication`).\n  * هماهنگی دقیق قراردادهای داده‌ای ورودی و خروجی (`Request / Response Contracts`).\n  * مدیریت اعتبارسنجی نشست‌ها و احراز هویت.\n  * **تولید خودکار:** ماژول‌ها از روی Service Manifestها توسط `nons generate` بازتولید می‌شوند — ویرایش دستی ممنوع.\n  * **پایداری در برابر تغییر:** تغییر مسیر اندپوینت‌ها در بک‌اند نیازی به تغییر کد فرانت‌اند ندارد؛ تنها `nons registry build` + `nons generate` کافی است."
    }
  ]
}