npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

qoder-rtl

v1.12.0

Published

Persian/Arabic RTL + Vazirmatn for the Qoder desktop app: CDP live injection by default (no install files touched), archive patch kept behind an explicit command

Readme

Qoder Persian RTL

npm downloads node license tested

چتِ Qoder را فارسی و راست‌به‌چپ بخوانید و بنویسید

بدون دست‌زدن به فایل‌های نصب، بدون شکستنِ آپدیتِ خودکار، با فونتِ وزیرمتنِ آفلاین.

نصب · ویژگی‌ها · محدودهٔ پچ · عیب‌یابی · گزارشِ فنی · English

| قبل | بعد | | :---: | :---: | | فارسیِ چپ‌چین، فونتِ پیش‌فرض، کد و متن قاطی | راست‌چین، وزیرمتن، کد همچنان چپ‌به‌راست | | قبل از پچ | بعد از پچ |

همراه پنلِ تنظیمات:

پنجرهٔ پچ‌شدهٔ Qoder با پنلِ تنظیماتِ باز

Qoder — مثل بیشترِ اپ‌های Electron — جهتِ متن را از زبانِ رابطِ کاربری می‌گیرد، نه از زبانِ چیزی که تایپ می‌کنید. نتیجه: فارسی در چت چپ‌چین می‌نشیند، پرانتزها و علامت‌ها جابه‌جا می‌شوند، و متنِ فارسیِ کنارِ کد به‌هم می‌ریزد. این ابزار همین را حل می‌کند — فقط در چت و کادرِ نوشتن؛ بقیهٔ برنامه دست‌نخورده می‌ماند.

ویژگی‌ها

تشخیص زبان بر پایهٔ حروف است؛ رقم و علامت فارسی، متن انگلیسی را به‌اشتباه راست‌چین نمی‌کنند. کد تو‌در‌تو، فرمول، درخت پوشه و diff از نثر جدا می‌مانند. فونت لاتین، فونت فارسی را عوض نمی‌کند و جهت ادیتور در میانهٔ composition تغییر نمی‌کند.

•  جهتِ هوشمند، بلوک‌به‌بلوک. هر پاراگراف بر اساسِ متنِ خودش راست یا چپ می‌شود؛ جملهٔ فارسی‌ای که با یک شناسهٔ انگلیسی شروع می‌شود چپ‌چین نمی‌ماند. حالت‌های «همیشه راست» و «خاموش» هم در دسترس‌اند. •  کادرِ نوشتن هم مثلِ بقیهٔ بلوک‌ها بر اساسِ زبانِ متنِ خودش قضاوت می‌شود. پیامِ فارسی‌ای که با یک شناسهٔ انگلیسی شروع می‌شود راست‌چین می‌ماند، پیش‌نویسِ انگلیسی چپ می‌ماند، و یک رشتهٔ انگلیسی وسطِ متنِ فارسی همان‌جا چپ‌به‌راست خوانده می‌شود. •  محدودیتِ آگاهانه: جهتِ کادر بر اساسِ اکثریتِ کلِ متنِ آن تعیین می‌شود، پس اگر در یک پیش‌نویس هم‌زمان خطِ فارسی و خطِ انگلیسی داشته باشید، هر دو با اکثریت هم‌تراز می‌شوند. دادنِ جهتِ مستقل به هر خط ساخته شد (هر خط داخل یک span پیچیده می‌شد) و برگردانده شد، چون Enter و مکان‌نما را در ادیتورِ واقعیِ Qoder می‌شکست. •  کد، ترمینال و مسیرِ فایل‌ها همیشه چپ‌به‌راست می‌مانند — حتی داخلِ پیامی کاملاً فارسی، با فونتِ مونواسپیسِ خودِ برنامه. •  وزیرمتنِ آفلاین از بایت‌های داخلِ خودِ ابزار ثبت می‌شود: نه دانلود، نه نصبِ فونت روی ویندوز، و حتی سیاستِ سخت‌گیرانهٔ font-src هم مانعش نمی‌شود. •  پیام‌های خودِ شما هم راست‌چین می‌شوند، نه فقط پاسخ‌های ایجنت. •  پنلِ تنظیماتِ شناور در پایینِ راستِ پنجره، به‌همراه میانبرهای صفحه‌کلید: اندازهٔ متنِ چت و کد، فاصلهٔ خطوط، راست‌چینِ جدول‌ها، و فونتِ جداگانه برای فارسی / لاتین / کد. •  هیچ فایلی در نصبِ Qoder نوشته نمی‌شود. پچ روی پنجرهٔ در حالِ اجرا تزریق می‌شود؛ آپدیتِ خودکارِ Qoder خرابش نمی‌کند و هیچ فایلِ امضاشده‌ای تغییر نمی‌کند.

محدودهٔ پچ

| بخش | وضعیت | دلیل | | --- | --- | --- | | چت و کادرِ نوشتن | پچ می‌شود | هدفِ اصلیِ ابزار | | منوها، نوارِ کناری، عنوانِ پنجره | دست‌نخورده | تا ظاهرِ کلیِ Qoder عوض نشود | | پیش‌نمایشِ فایلِ .md در پنلِ سمتِ راست | دست‌نخورده | آن پنل در سندِ قابل‌اتصالِ چت نیست؛ تارگتِ دیگرِ DevTools به فرمان‌های Page/Runtime/DOM پاسخ نمی‌دهد، و Qoder تنظیمِ «CSS سفارشی» برای آن ندارد | | فایل‌های روی دیسک | دست‌نخورده | برخلافِ روش‌های مبتنی بر app.asar، چیزی بازنویسی، پشتیبان‌گیری یا امضا نمی‌شود |

نصب

پیش‌نیاز: فقط Node.js نسخهٔ ۲۲ یا جدیدتر — نه کلونِ ریپو، نه npm install.

۱. نرم افزار Qoder را کامل ببندید، از جمله از سینیِ کنارِ ساعت. Qoder قفلِ «تک‌نسخه» دارد: اگر برنامه باز باشد، اجرایِ تازه به همان نمونهٔ در حالِ اجرا می‌پیوندد و پرچمِ پورتِ دیباگ حذف می‌شود، پس پچ نمی‌نشیند. این ابزار هرگز خودِ Qoder را نمی‌کشد.

۲. یک دستور بزنید:

npx qoder-rtl

نرم افزار Qoder بالا می‌آید و پچ به پنجره‌های برنامه تزریق می‌شود. تا وقتی ترمینال باز است، پنجره‌های تازه هم خودکار پچ می‌شوند. Ctrl+C پاک‌سازی پچ از پنجره‌های متصل را درخواست می‌کند؛ بستن اجباری ترمینال ممکن است پچ صفحهٔ فعلی را تا reload یا بستن Qoder باقی بگذارد. دستور check عمداً پس از خروج، پچ را فعال باقی می‌گذارد.

نکته: اگر npx خطای ۴۰۴ داد، یعنی هنوز نسخه‌ای منتشر نشده است: ریپو را کلون کنید، داخلش npm install بزنید و به‌جای دستورِ بالا node cli.js را اجرا کنید.

۳. صحت‌سنجی کنید:

npx qoder-rtl check

شانزده سطرِ PASS/FAIL می‌گیرید که بیشترشان اندازهٔ واقعیِ رندرشده را می‌سنجند: فونتِ محاسبه‌شدهٔ یک پاراگرافِ واقعی، بلندایِ سطر، جابه‌جاییِ ستون‌های جدول، فاصلهٔ پنل از لبهٔ پنجره. سطرِ UNSURE یعنی آن ویژگی در این گفت‌وگو چیزی برای سنجیدن نداشت — نه این‌که سالم است.

نکته: هر بار Qoder را باز می‌کنید باید ابزار را دوباره اجرا کنید. این ذاتِ تزریقِ زنده است — چیزی روی دیسک نوشته نمی‌شود، پس با هر بالا‌آمدنِ برنامه، پچ هم از نو باید اعمال شود. برای اجرایِ دابل‌کلیکی، npx qoder-rtl launcher یک Qoder-RTL.cmd می‌سازد و npx qoder-rtl remove-launcher پاکش می‌کند.

دستورها

| دستور | کار | | -------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | qoder-rtl | اتصال یا راه‌اندازیِ Qoder + تزریق، و زنده نگه‌داشتنِ پچ تا Ctrl+C | | qoder-rtl check | تزریق + ممیزیِ شانزده‌سطری + گزارش در %LOCALAPPDATA%\qoder-persian-rtl\cdp-test.log | | qoder-rtl diagnose | فقط‌خواندنی: نشان می‌دهد روی هر بلوکِ متن چه چیزی محاسبه شده — پاسخِ «چرا این خط راست نیست؟» | | qoder-rtl status | نسخهٔ ابزار و payload، نسخهٔ Qoder، و وضعیتِ واقعیِ پورتِ دیباگ | | qoder-rtl list | پنجره‌ها و targetهایی که DevTools می‌بیند | | qoder-rtl launcher / remove-launcher | ساخت یا حذفِQoder-RTL.cmd — تنها فایلی که این ابزار بیرون از پوشهٔ لاگ می‌نویسد | | qoder-rtl patch --yes | ⚠️ روشِ قدیمیِ بازنویسیِapp.asar؛ روی Qoder ۰.۳.۳ به‌علت بررسی یکپارچگی آرشیو کار نمی‌کند؛ سازگاری نسخه‌های دیگر تضمین نشده و بدون --yes اجرا نمی‌شود |

کلیدهای میانبر و پنل

| کلید | کار | | --------------- | ------------------------------------------------------------------------------------------------------ | | Alt+R | روشن/خاموش‌کردنِ جهت؛ همهٔ پنجره‌های Qoder همگام می‌مانند | | Alt+Shift+R | نمایش یا پنهان‌کردنِ دکمهٔ پنل | | Escape | بستنِ پنل و برگرداندنِ فوکوس به دکمه |

پنل با کلیک باز می‌شود (هاورِ گوشه کاری نمی‌کند)، پایینِ راست می‌نشیند تا روی متنِ در حالِ خواندن نیفتد، و تنظیماتش بینِ همهٔ پنجره‌ها همگام است.

عیب‌یابی

اول qoder-rtl status را بزنید؛ وضعیتِ پورت را مستقیم از ویندوز می‌پرسد و یکی از این چهار حالت را برمی‌گرداند:

| خروجی | یعنی | چاره | | --- | --- | --- | | serving DevTools | همه‌چیز آماده است | اگر پچ ننشسته، check بزنید و سطرهای FAIL را بخوانید | | free | Qoder بدون پرچمِ دیباگ بالا آمده | Qoder را کامل ببندید و دوباره اجرا کنید تا خودش با پرچم بالا بیاید | | held by PID … (running) | برنامهٔ دیگری پورت را گرفته | با --port 9333 یا متغیرِ محیطیِ QODER_RTL_PORT=9333 روی پورتِ دیگر بروید | | held by PID … (exited) | سوکتِ یتیم: صاحبِ پورت مرده ولی سوکت مانده | Qoder را کامل (از جمله از سینی) ببندید یا سیستم را ری‌استارت کنید؛ این ابزار هیچ پروسه‌ای را نمی‌کشد |

متن راست نیست ولی check سبز است؟ یعنی در آن لحظه گفت‌وگویی رندر نشده بوده (hooks=0). یک چت باز کنید و دوباره check بزنید.

پنجرهٔ دوم پچ نشده؟ اگر سطرش still being attached است، یعنی آن پنجره هنوز رسم نشده؛ چند ثانیه بعد دوباره امتحان کنید.

بعد از آپدیتِ Qoder چه؟ هیچ. پچ روی دیسک نیست که آپدیت پاکش کند؛ فقط دوباره اجرا کنید.

نکتهٔ امنیتی

این روش پورتِ دیباگِ لوکال (127.0.0.1:9222) را باز می‌کند که هر پروسهٔ محلی روی همان سیستم می‌تواند به آن وصل شود. با بستنِ Qoder، این پورت هم بسته می‌شود؛ روی ماشینِ اشتراکی بازش نگه ندارید. جزئیات در SECURITY.md.

چرا پچِ asar پیش‌فرض نیست؟

چون روی Qoder 0.3.3 برنامه را کاملاً خاموش کرد: فیوزِ EnableEmbeddedAsarIntegrityValidation روشن است و خودِ Qoder.exe با یک منبعِ ELECTRONASAR هشِ app.asar را پین کرده، پس هر بازنویسیِ آرشیو یعنی «برنامه اجرا نمی‌شود». تنها راهِ عبور دست‌زدن به فایلِ امضاشده بود؛ نه انجامش دادیم، نه توصیه‌اش می‌کنیم. روشِ DevTools دقیقاً برای دورزدنِ همین مشکل ساخته شد. تاریخچهٔ کاملِ این تصمیم و اندازه‌گیریِ پشتِ هر ادعا در گزارشِ فنی آمده.

راستی‌آزمایی

| لایه | پوشش | | ------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | npm test | بررسی مستقل از نصب Qoder: payload، رفتار CLI، تنظیمات و چرخهٔ اتصال CDP | | npm run test:browser | چک‌های سربه‌سر روی Chromiumِ بی‌سر، با رویدادهای واقعیِ ماوس/کیبورد و اندازه‌گیریِ هندسهٔ رندرشده | | npx qoder-rtl check | ۱۶ سطر روی یک نمونهٔ واقعیِ Qoder |

npm run test:archive نیز پچ را روی یک کپی موقت از آرشیو Qoder نصب‌شده می‌سنجد و فایل نصب را تغییر نمی‌دهد. جزئیات این دور از اصلاحات در گزارش بررسی RTL آمده است.

هر ادعای تازه با یک «کنترلِ منفی» تأیید می‌شود: همان چک روی نسخهٔ پیش از اصلاح هم اجرا می‌شود و باید سرخ شود. چکی که روی کدِ خراب هم سبز بماند، چک حساب نمی‌شود.

مشارکت

مسیرِ تست‌ها، قاعدهٔ «اول قرمز، بعد اصلاح»، و مرزهای دامنه (چه چیزی عمداً پچ نمی‌شود) در CONTRIBUTING.md توضیح داده شده‌اند. برای گزارشِ باگ یک Issue باز کنید؛ یک اسکرین‌شات از لحظهٔ خطا از هر توضیحی ارزشمندتر است.

مجوز

نرم‌افزار: MIT — LICENSE فونتِ وزیرمتنِ بسته‌شده: SIL Open Font License 1.1 — assets/OFL.txt و پروژهٔ Vazirmatn

Read this in English →

built in Iran