fb / replit.md
sare26's picture
Upload 5 files
8b37604 verified
|
Raw
History Blame Contribute Delete
2.47 kB

Workspace

Overview

pnpm workspace monorepo using TypeScript. Each package manages its own dependencies.

Stack

  • Monorepo tool: pnpm workspaces
  • Node.js version: 24
  • Package manager: pnpm
  • TypeScript version: 5.9
  • API framework: Express 5
  • Database: PostgreSQL + Drizzle ORM
  • Validation: Zod (zod/v4), drizzle-zod
  • API codegen: Orval (from OpenAPI spec)
  • Build: esbuild (CJS bundle)

Key Commands

  • pnpm run typecheck — full typecheck across all packages
  • pnpm run build — typecheck + build all packages
  • pnpm --filter @workspace/api-spec run codegen — regenerate API hooks and Zod schemas from OpenAPI spec
  • pnpm --filter @workspace/db run push — push DB schema changes (dev only)
  • pnpm --filter @workspace/api-server run dev — run API server locally

See the pnpm-workspace skill for workspace structure, TypeScript setup, and package details.

FB Group Publisher PRO (artifacts/fb-publisher)

Arabic RTL web port of the Chrome extension. Architecture:

  • Web app (this artifact): hosts UI, auth, subscriptions, saved lists, all main logic.
  • Bridge extension (public/extension/): tiny Chrome extension installed by users; injects a content script on the web app that exposes Facebook cookies and tab scripting via window.postMessage (sources: fbpub-webfbpub-bridge).
  • Auth: Clerk (mandatory). Express uses clerkMiddleware + a proxy from web /api to api-server.
  • Payments: PayPal Sandbox subscription, $2.50 every 2 months with 1‑month free trial. Plan auto-created on first subscribe and IDs cached in app_config table.
  • DB tables: users, subscriptions, saved_lists, app_config (drizzle).
  • Pages: Landing, Sign-in/up, InstallExtension, Subscription, SubscriptionReturn, Publisher.

Chrome Extension — حماية الكود

  • الكود المصدري الأصلي محفوظ في: artifacts/fb-publisher/public/extension/src/background.source.js (مُستبعد من Git)
  • الكود الموزّع في background.js مُشفّر دائماً باستخدام javascript-obfuscator
  • لتعديل الكود: عدّل src/background.source.js ثم شغّل pnpm run obfuscate-extension
  • السكريبت: scripts/obfuscate-extension.cjs — يشفّر الكود ويبني ZIP تلقائياً
  • التبعية: javascript-obfuscator مثبتة في الجذر (workspace root)