{
    "name": "Valabi Updates",
    "slug": "valabi-updates",
    "version": "1.5.2",
    "download_url": "https://mobodel.ir/wp-updates/valabi-updates-1.5.2.zip",
    "homepage": "https://valabi.ir/",
    "author": "<a href=\"https://valabi.ir\">Valabi</a>",
    "requires": "5.8",
    "tested": "6.7",
    "requires_php": "7.4",
    "last_updated": "2026-07-04 04:48:54",
    "sections": {
        "description": "<p>این افزونه روی سایت میزبانِ به‌روزرسانی‌ها (مثلاً mobodel.ir) نصب می‌شود و کار آپلود دستی را خودکار می‌کند.</p><p>جریان کار:</p><p>1. روی سیستم خود نسخهٔ افزونه را در هدر `Version:` بالا می‌برید. 2. دستور `./release.sh <slug>` را اجرا می‌کنید. 3. اسکریپت زیپ را می‌سازد و همراه متادیتا با توکن امن به این افزونه POST می‌کند. 4. این افزونه نسخه را از داخل خود زیپ می‌خواند (منبع حقیقت)، فایل `{slug}-{version}.zip` و `{slug}.json` را در پوشهٔ انتشار می‌نویسد. 5. به‌روزرسان افزونه‌ها (Plugin Update Checker) روی سایت‌های زنده، نسخهٔ جدید را می‌بیند.</p><p>پوشهٔ انتشار به‌صورت پیش‌فرض `ABSPATH . wp-updates/` است (یعنی `https://<site>/wp-updates/`) تا با محل آپلود دستی قبلی یکی باشد. با فیلترهای `valabi_updates_dir` و `valabi_updates_url` قابل تغییر است.</p><p>داشبورد فهرست افزونه‌ها و نسخهٔ هرکدام، توکن انتشار و تاریخچه را نشان می‌دهد. با کد کوتاه `[valabi_updates]` می‌توانید نمایش عمومی فقط‌خواندنی هم داشته باشید.</p>",
        "changelog": "<h4>1.5.2</h4><ul><li>افزودن اندپوینت `license-bundle` (GET/POST) برای همگام‌سازی دادهٔ لایسنس بین دو نصب خواهر (مثلاً کپی ایران و خارج از ایران mobodel.ir) توسط valabi-sync-agent. احراز هویت فقط `manage_options` است (Application Password استاندارد وردپرس).</li></ul><h4>1.1.0</h4><ul><li>افزودن «دسترسی مشتری»: برای هر افزونه می‌توان حالت نمایش را عمومی / فقط با کد / مخفی تعیین کرد و کدهای دسترسی ساخت. اندپوینت catalog با پارامتر code فقط افزونه‌های مجاز را برمی‌گرداند.</li></ul><h4>1.0.4</h4><ul><li>صفحهٔ «آپلود دستی بسته‌ها» در داشبورد: برای سایت آینه‌ای که `release.sh` به آن دسترسی مستقیم ندارد (مثلاً سایتی که فقط با آی‌پی ایران باز می‌شود)، می‌توانید بسته‌های ساخته‌شده (zip + metadata.json) را با کشیدن‌ورها‌کردن و یک کلیک منتشر کنید — چند افزونه با هم. هر دو مسیر انتشار (REST و دستی) از یک تابع `ingest()` مشترک می‌گذرند، پس خروجی سایت آینه دقیقاً مثل هاب خودکار است.</li><li>اسکریپت `release.sh` اکنون علاوه بر آپلود به هاب، یک کپی از بستهٔ هر انتشار را در `~/valabi-releases/<slug>/` نگه می‌دارد (همان جفت فایلی که در صفحهٔ آپلود دستی می‌کشید). گزینهٔ `--bundle-only` فقط بسته را می‌سازد و با هاب تماس نمی‌گیرد.</li></ul><h4>1.0.3</h4><ul><li>همهٔ بخش‌های متادیتا (توضیحات، نصب، پرسش‌ها، تغییرات…) اکنون عبور داده می‌شوند تا پنجرهٔ «مشاهدهٔ جزئیات» وردپرس مثل افزونه‌های عادی پر شود (قبلاً فقط changelog نگه داشته می‌شد).</li></ul><h4>1.0.2</h4><ul><li>پشتیبانی از هاست‌های بدون ZipArchive: خواندن نسخه از داخل زیپ اکنون با یک خوانندهٔ سبک خالص‌PHP (فقط zlib) انجام می‌شود و اگر آن هم در دسترس نباشد، به نسخهٔ متادیتای ارسالی اتکا می‌کند. خطای «ZipArchive فعال نیست» برطرف شد.</li><li>پاک‌سازی نسخه برای استفادهٔ امن در نام فایل.</li></ul><h4>1.0.1</h4><ul><li>رفع نمایش فارسی: زمان نسبی («۲ هفته پیش») به‌جای انگلیسی نمایش داده می‌شود و ارقام فارسی شدند.</li><li>اصلاح فاصله‌گذاری: مقادیر آماری دیگر با فونت تک‌فاصله/چپ‌چین نمایش داده نمی‌شوند تا حروف فارسی به‌درستی بچسبند.</li><li>عنوان «والابی آپدیتس» در سربرگ سفید شد و فاصله‌گذاری سربرگ بهبود یافت.</li></ul><h4>1.0.0</h4><ul><li>انتشار اولیه: نقطهٔ دریافت انتشار با احراز توکن، ساخت خودکار JSON/ZIP از داخل زیپ، داشبورد طراحی‌شدهٔ والابی، نمایش عمومی فقط‌خواندنی، و تاریخچهٔ انتشار.</li></ul>"
    }
}