# منبعِ باز — قابلیت «اسکریپت شخصی» چارتیک

قابلیت **«اسکریپت شخصی»** (نوشتنِ اندیکاتورِ شخصی با سینتکسِ سازگار با Pine) از کتابخانه‌ی
متن‌بازِ **PineTS** استفاده می‌کند. PineTS تحتِ لایسنسِ **AGPL-3.0** منتشر شده است؛ طبقِ این
لایسنس، سورسِ «اثرِ پوشش‌داده‌شده»‌ای که در مرورگرِ شما اجرا می‌شود در همین‌جا در دسترسِ عموم است.

> **سلبِ مسئولیت:** PineTS پروژه‌ای مستقل و متن‌باز (توسعه‌یافته توسط LuxAlgo Global, LLC و
> alaa-eddine) است و هیچ وابستگی/تأییدیه‌ای با TradingView, Inc. ندارد. «Pine Script®» و
> «TradingView®» علائمِ تجاریِ ثبت‌شده‌ی TradingView, Inc. هستند. «اسکریپت شخصی» نامِ محصولیِ
> ماست و صرفاً سینتکسِ سازگار با Pine را پشتیبانی می‌کند.

## اجزاء و سورس

| جزء | لایسنس | سورس |
|---|---|---|
| **PineTS** (نسخه‌ی دقیقِ مصرفی) | AGPL-3.0 | [`pinets-0.9.27.tgz`](./pinets-0.9.27.tgz) — همان بسته‌ای که از npm نصب و در باندلِ Worker استفاده می‌شود · متنِ لایسنس: [`LICENSE-PineTS-AGPL-3.0.txt`](./LICENSE-PineTS-AGPL-3.0.txt) |
| سورسِ بالادستِ PineTS (فرمِ ترجیحی برای ویرایش) | AGPL-3.0 | مخزنِ رسمی: <https://github.com/alaa-eddine/PineTS> — نسخه‌ی `0.9.27` |
| **آداپتور و سندباکسِ چارتیک** (اثرِ ترکیبی) | AGPL-3.0 | فایل‌های متنیِ زیرِ [`worker-source/`](./worker-source/) |

### فایل‌های سورسِ آداپتور/سندباکس (باندلِ Worker)

این‌ها همان فایل‌هایی‌اند که به‌همراهِ PineTS در چانکِ جدا‌ی Web Worker باندل می‌شوند:

- [`worker-source/types.ts.txt`](./worker-source/types.ts.txt) — اینترفیسِ موتور (`IScriptEngine`)
- [`worker-source/pinets-engine.ts.txt`](./worker-source/pinets-engine.ts.txt) — آداپتورِ PineTS (تنها جایی که PineTS import می‌شود)
- [`worker-source/protocol.ts.txt`](./worker-source/protocol.ts.txt) — پروتکلِ پیام
- [`worker-source/lockdown.ts.txt`](./worker-source/lockdown.ts.txt) — قفلِ شبکه/ذخیره‌سازی داخلِ Worker
- [`worker-source/worker-core.ts.txt`](./worker-source/worker-core.ts.txt) — هسته‌ی هندلرِ پیام‌ها
- [`worker-source/sandbox.worker.ts.txt`](./worker-source/sandbox.worker.ts.txt) — ورودیِ Worker
- [`worker-source/runner.ts.txt`](./worker-source/runner.ts.txt) — کنترلرِ نخِ اصلی + واچ‌داگ

## بازتولیدِ باندل

```bash
# ۱) نصبِ نسخه‌ی دقیقِ PineTS
npm install pinets@0.9.27
# ۲) فایل‌های worker-source/ را در پروژه‌ی Next.js قرار دهید (مسیر: src/lib/scripting/)
# ۳) ورودیِ Worker (sandbox.worker.ts) با webpack/Next به یک چانکِ same-origin کامپایل می‌شود.
```

## پیشنهادِ کتبیِ سورس (AGPL §6)

اگر ترجیح می‌دهید سورس را جای دیگری دریافت کنید، درخواستِ خود را به
**mousavi@sadratech.net** بفرستید تا نسخه‌ی کاملِ Corresponding Source ارسال شود.

## قدردانی

با تشکر از تیمِ **PineTS** (LuxAlgo · alaa-eddine) بابتِ این کتابخانه‌ی متن‌باز.
اگر برایتان مفید بود، مخزنِ آن را در گیت‌هاب ⭐ بدهید.
