@varyarcrm/vy-crm-core
v0.1.3
Published
Typed client for storefronts (like Bhodrolok) to read/write VarYar CRM data -- reviews, support tickets, returns -- plus a React Router adapter for VyAuth SSO. Pairs with @varyar/vy-ecom-core (catalog/bills) and @varyar/vy-ecom-telemetry, which already co
Maintainers
Readme
@varyarcrm/vy-crm-core
Editable TypeScript source (not a build) for a VarYar storefront to talk to VarYar CRM (reviews, support tickets, returns) and to wire up VyAuth SSO from a React Router app.
Every file in src/ is meant to be read and owned by you -- nothing here is
generated or minified.
This is deliberately scoped down: catalog reads, bill creation, and
telemetry already have homes in @varyar/vy-ecom-core and
@varyar/vy-ecom-telemetry -- this package only adds the CRM half plus a
VyAuth adapter, so nothing is duplicated across packages.
What's inside
| File | Covers |
|---|---|
| src/config.ts | The 3 env vars every other file needs. Server-only. |
| src/reviews.ts | Public review reads (no key) + submitting a new review (needs the CRM ingest key). |
| src/tickets.ts | Open a support ticket, look up your own tickets, reply to one. |
| src/returns.ts | File a return/refund/replacement, look up your own returns. |
| src/vyauth.ts | Adapter over @varyarorg/water-auth/server for React Router -- water-auth/next's built-in route helper only targets Next.js, so React Router apps need one resource route wired by hand; this wraps the two primitives (buildAuthUrl, verifyCallback) that route needs. |
Before this works
tickets.ts and returns.ts call CRM routes that don't exist in the CRM
app yet: /api/tickets/ingest, /api/tickets/public, /api/tickets/reply,
/api/returns/ingest, /api/returns/public. Source for those five routes
(plus a shared lib/publicIngestAuth.ts helper) is in the separate
crm-new-routes/ handoff -- drop them into varyar-crm-master at the same
paths and deploy before wiring tickets.ts/returns.ts into a storefront.
reviews.ts works today -- /api/reviews/public and /api/reviews/ingest
already exist in the CRM app.
Building & publishing it yourself
npm install typescript --save-dev
npx tsc # emits dist/ per tsconfig.json
npm publish --access restricted # to your @varyar npm orgNothing here auto-publishes.
Using it from a storefront
npm install @varyarcrm/vy-crm-core @varyarorg/water-authFrom server-only code (a loader/action, never a "use client" /
browser-bundled file):
import { getReviews, createTicket } from "@varyarcrm/vy-crm-core";
import { getProducts } from "@varyar/vy-ecom-core"; // unrelated package, catalog stays there
const reviews = await getReviews(productId);See ENVIRONMENT.md in the Bhodrolok wiring handoff for the full env var list.
