export declare const content = "# Replit-specific mapping\n\nThis is a per-platform reference loaded from `SKILL.md`. The framework \u2014 target layout, universal mapping, non-negotiables, workflow, code-emission rules \u2014 lives there. This file documents only what's specific to a Replit source.\n\n## Where the source lives\n\nHallmarks: `replit.md`, `.replit`, `artifacts/`, an Express server entry (e.g. `server/index.ts`), an Orval-generated client package (typically `client/src/api/` or similar with `useXxx` hooks).\n\nIf the user gave a path, use it. Otherwise look for the hallmarks above in the working tree. If ambiguous, ask.\n\n## Typical shape\n\nA Replit fullstack app usually looks like:\n\n- **Server**: Express + TypeScript. Routes split across multiple files, mounted with `app.use(\"/api/...\", router)`. Middleware for auth (sometimes Passport, sometimes hand-rolled JWT), CORS, error handling. Errors propagated via `next(err)` or `res.status(...).json(...)`. Env vars via `process.env.*`.\n- **Database**: `pg`, `knex`, `prisma`, or Drizzle, with credentials in env (`DATABASE_URL` / DSN).\n- **Client**: React + Vite + Tailwind + shadcn/ui. Routing via `wouter` or `react-router`. Data fetching via Orval-generated `useXxx` hooks backed by `@tanstack/react-query`. Forms via `react-hook-form` + `zod`. Local `QueryClientProvider` and base-URL/auth-token getters.\n\nThis is the common case. Verify against the actual tree before mapping.\n\n## Discovery checklist\n\nIn addition to the framework's discovery requirements, for a Replit source enumerate:\n\n- Every Express route handler (group by router file, then by mounted path).\n- Every middleware (auth, CORS, error, logging) \u2014 most drop entirely.\n- Every DB client and the queries it issues. Note env vars holding the DSN.\n- Every external HTTP call (`axios` / `fetch`) and the API it targets.\n- Every `process.env.*` read, separated into \"credentials/secrets\" (move to integrations) and \"config\" (`ctx.env`).\n- Every Orval-generated hook usage on the client.\n\n## Core mapping\n\n- **Each Express route handler \u2192 one Superblocks API** at `server/apis/<ApiName>/api.ts`, registered in `server/apis/index.ts`. Within `api()`:\n  - `req.body` / `req.query` / `req.params` \u2192 unified `input` Zod schema.\n  - `res.json(data)` \u2192 `return { ... }` from `run`.\n  - Auth middleware that hung user info on `req.user` \u2192 `ctx.user`.\n  - DB clients \u2192 `ctx.integrations.db.query/execute(...)`.\n  - External HTTP \u2192 declared integration + `apiRequest(...)`.\n  - Error middleware / `next(err)` / `res.status(...).json(...)` \u2192 throw the documented `SdkError` subtypes.\n  - `app.listen`, CORS, static-file middleware, route grouping \u2192 drop entirely. Route groups become separate `api()` files.\n- **Each React page \u2192 one Superblocks page** wired into `client/router.tsx`. Replace Orval `useXxx` hooks with `useApiData` (reads) or `useApi` (mutations) keyed by `<ApiName>`. Drop the generated client package, the local `QueryClientProvider`, any base-URL or auth-token getters.\n\n## Ask-before-guessing \u2014 Replit specifics\n\n- \"The source uses `<DB client>` against `<DSN env var>`. I'll bind to a Postgres integration \u2014 which one, or do you want to create a new one?\"\n- \"I see external HTTP calls to `<host>` with credentials in `<env var>`. Bind to an integration of type `<kind>`?\"\n- \"Multiple route files mount under `<prefix>`. I'll emit one API per handler \u2014 does that match how you want to address them, or should some be consolidated?\"\n\n## Page port \u2014 what changes vs. what doesn't\n\nFor each Replit page, only these change:\n\n- **Data hooks**: Orval `useXxx` \u2192 `useApi` / `useApiData`.\n- **Router primitives**: `wouter` \u2192 `react-router` v7 (or adapt v6 \u2192 v7 patterns if the source already used `react-router`).\n\nEverything else \u2014 JSX structure, Tailwind classes, shadcn variants, custom CSS, theme tokens, fonts, layout containers \u2014 transfers unchanged. If the diff goes beyond data + routing, you are over-editing.\n\n## Done \u2014 Replit specifics\n\nNothing extra to surface beyond the framework's \"Done\" report.\n";
//# sourceMappingURL=replit.generated.d.ts.map