@supabase/supabase-js کتابخانه رسمی جاوااسکریپت برای کار با Supabase هست. با این بسته توی مرورگر و Node.js می تونی به دیتابیس Postgres، احراز هویت، ذخیره فایل و قابلیت های لحظه ای Supabase وصل بشی، بدون اینکه درخواست های HTTP رو دستی بنویسی و کدت کوتاه و خوانا می مونه.
نسخه رسمی و بدون تغییر، از منبع رسمی با مجوز MIT؛ هش هر فایل با منبع بررسی شده است.
@supabase/supabase-js کلاینت رسمی Supabase برای جاوااسکریپته. Supabase یه بک اند آماده روی Postgres داره که دیتابیس، ورود و ثبت نام کاربرها، ذخیره فایل، توابع سمت سرور و داده های لحظه ای رو یک جا می ده. این کتابخانه پل بین کد تو و همه این بخش هاست. لازم نیست برای هر کار یه درخواست جدا بسازی و هدر و توکن رو خودت مدیریت کنی. یه بار کلاینت رو می سازی، بعدش با چند تابع ساده کوئری می زنی، کاربر رو لاگین می کنی یا فایل آپلود می کنی.
این SDK هم توی مرورگر کار می کنه هم توی Node.js. برای همین هم توی رابط کاربری ساخته شده با React یا Vue یا جاوااسکریپت ساده جواب می ده، هم توی اسکریپت های سمت سرور و پروژه هایی مثل Next.js و Nuxt. اگه یه اپ تک صفحه ای، داشبورد، پنل مدیریت یا ابزار داخلی می سازی که به دیتابیس و لاگین نیاز داره، جای درستی برای شروعه.
جاهایی هم هست که لازمش نداری. این کتابخانه خودش بک اند نیست و بدون یه پروژه Supabase هیچ کاری نمی کنه. پس اگه یه سایت وردپرسی معمولی داری که با MySQL و قالب و افزونه کار می کنه و فقط می خوای ظاهرش رو عوض کنی، سراغش نرو. وقتی به دردت می خوره که یه بخش جاوااسکریپتی سفارشی می سازی، مثلا فرم یا پنل کاربری جدا از هسته وردپرس، و می خوای داده ها توی Postgres و Supabase بمونن.
دو نکته رو جدی بگیر. اول امنیت: کلید عمومی (anon) برای کد سمت مرورگر ساخته شده و امنیت واقعی با سیاست های Row Level Security توی خود دیتابیس تامین می شه، نه با قایم کردن کلید. کلید service role دسترسی کامل می ده و فقط باید سمت سرور بمونه. دوم شرایط ایران: بسته به وضعیت شبکه، ممکنه دسترسی به سرویس ابری Supabase از داخل کشور گاهی مشکل پیدا کنه. اگه این برات مهمه، نسخه self-hosted خود Supabase رو روی یه سرور راه بنداز و همین کتابخانه رو بهش وصل کن. قبل از تصمیم نهایی، شرایط و مقررات استفاده از سرویس رو هم خودت بررسی کن.
نسخه رسمی و بدون تغییر این بسته توی مخزن داخلی ما هم هست. وقتی دسترسی به منابع بین المللی کند یا قطعه، فایل رو از همین صفحه بردار و توی پروژه ات استفاده کن.
راهنمای استفاده
کار با این کتابخانه چند قدم کلی داره و ترتیبش مهمه:
اول یه پروژه توی Supabase بساز، یا اگه self-host کردی همون رو آماده کن. از بخش تنظیمات API پروژه، نشانی پروژه و کلید عمومی (anon) رو بردار.
اگه پروژه ات با ابزار بیلد مثل Vite یا webpack کار می کنه، بسته @supabase/supabase-js رو با npm نصب کن و تابع createClient رو import کن.
اگه پروژه ات یه صفحه HTML ساده باشه، کد آماده پایین همین صفحه رو به صفحه ات اضافه کن. بعدش createClient رو با نشانی و کلید پروژه صدا بزن تا کلاینت ساخته بشه.
برای خوندن داده از from و select استفاده کن: اسم جدول رو می دی و ستون های مورد نظرت رو انتخاب می کنی. نوشتن و حذف هم با insert و update و delete انجام می شه.
برای ورود و ثبت نام کاربر، سراغ ماژول auth کلاینت برو.
قبل از انتشار، توی داشبورد Supabase سیاست های Row Level Security جدول هات رو چک کن. اگه فعال نباشن یا اشتباه نوشته شده باشن، هر کسی با کلید عمومی می تونه به داده ها دست بزنه.
کلید service role رو هیچ وقت توی فایلی که به مرورگر می رسه نذار.
نشانی مستقیم فایل اصلی 2.39.8https://mirror.wbweb.ir/npm/@supabase/supabase-js@2.39.8/dist/umd/supabase.js
پرسشهای رایج
Supabase یه پلتفرم بک اند روی Postgres با دیتابیس، احراز هویت، ذخیره فایل و قابلیت های لحظه ای هست. supabase-js فقط کتابخانه جاوااسکریپتیه که از کد تو به اون پلتفرم وصل می شه. بدون یه پروژه Supabase، چه ابری چه self-hosted، خودش کار خاصی انجام نمی ده.
می شه، ولی برای بیشتر سایت های وردپرسی لازم نیست. وردپرس با MySQL کار می کنه و این کتابخانه برای وصل شدن به Supabase ساخته شده. اگه یه بخش جاوااسکریپتی سفارشی داری که داده هاش توی Supabase می مونه، می تونی کد رو توی همون صفحه اضافه کنی. برای کارهای معمولی سایت، خود وردپرس و افزونه هاش کافیه.
نه. این کلید دسترسی کامل به داده ها می ده و سیاست های Row Level Security رو دور می زنه. اگه لو بره، هر کسی می تونه همه داده هات رو بخونه یا پاک کنه. فقط سمت سرور و توی محیط امن ازش استفاده کن. توی مرورگر فقط کلید عمومی (anon) بذار و امنیت رو با سیاست های دیتابیس مدیریت کن.
بستگی به شرایط شبکه داره و نمی شه قول قطعی داد. سرویس ابری ممکنه گاهی دسترسی مشکل داشته باشه. اگه پایداری برات مهمه، می تونی نسخه self-hosted رو روی سرور خودت راه بندازی و همین کتابخانه رو بهش وصل کنی. قبلش هم یه تست از شبکه ای که کاربرهات باهاش وارد می شن بگیر.
نه، لازم نیست. کتابخانه رایگانه و متن باز، با مجوز MIT. فقط باید نشانی و کلید یه پروژه Supabase رو بهش بدی. این پروژه می تونه روی سرویس ابری باشه یا روی سروری که خودت نصب و نگهداری می کنی. شرایط و هزینه سرویس ابری رو هم از خود Supabase چک کن.
prebid-universal-creative یه بسته جاوااسکریپتیه که تبلیغ برنده رو توی سایت هایی با Prebid و هدر بیدینگ نشون می ده. این کد توی کریتیو اد سرور قرار می گیره و بعد از تموم شدن مزایده، تبلیغ رو توی جایگاه نشون می ده. مجوزش Apache هست و نسخه رسمی ش توی مخزن ما موجوده.
workbox-cdn یه بسته آماده از کتابخونه Workbox گوگله که بدون ابزار build و فقط با بارگذاری یه اسکریپت می تونی توی سایتت استفاده کنی. با Workbox سرویس ورکر رو راحت تر می نویسی، کش و حالت آفلاین رو مدیریت می کنی و بازدیدهای بعدی سایتت سریع تر باز می شن.
mathjax یه کتابخانه متن باز جاوااسکریپته که فرمول های ریاضی رو توی مرورگر نمایش می ده. فرمولی که با LaTeX، MathML یا AsciiMath نوشتی رو به متن تیز، قابل انتخاب و قابل دسترس تبدیل می کنه، پس لازم نیست از فرمول ها عکس بگیری. مجوزش Apache هست و بسته npm هم داره.
sweetalert2 یه کتابخانه جاوااسکریپته که به جای پنجره های پیش فرض مرورگر، یعنی alert و confirm و prompt، پنجره های پیام، تایید و ورودی تمیز و ریسپانسیو نشون می ده. ظاهرش قابل تنظیمه و طبق معرفی رسمی از دسترس پذیری WAI-ARIA پشتیبانی می کنه. سازنده اش Limon Monte و مجوزش MIT هست.
search-insights یه کتابخانه جاوااسکریپت از Algolia با مجوز MIT هست که کلیک، تبدیل و بازدید کاربرها روی نتیجه های جستجو رو به Insights API خود Algolia گزارش می ده. اگه جستجوی سایتت با Algolia کار می کنه، با این بسته می تونی رفتار کاربرها رو ثبت کنی و کیفیت جستجو رو بهتر کنی.
js-cookie یه کتابخانه جاوااسکریپت ساده و خیلی سبکه که کار با کوکی های مرورگر رو راحت می کنه. با چند تا متد کوتاه می تونی کوکی بسازی، بخونی و پاک کنی و لازم نیست با رشته خام document.cookie سروکله بزنی. مجوزش MIT هست و به کتابخانه دیگه ای وابسته نیست.
آخرین نسخه
۳.۰.۸
نسخهها
۸
بهروزرسانی
چیزی که لازم دارید اینجا نیست؟
نام کتابخانه، افزونه یا قالب را بفرستید؛ پس از بررسی، نسخههای رسمی آن به مخزن اضافه میشود.