@poprun/engine
v0.0.1-beta.0
Published
Backend toolkit Poprun : auth (BetterAuth), DB (SQLite), email (MJML + providers), audit, storage (local/S3), server (Elysia).
Readme
@poprun/engine
Backend toolkit Poprun : auth, DB, email, audit, storage, serveur. Pensé pour Bun + Elysia + BetterAuth + SQLite, avec providers email (Resend, Postmark, SMTP, dev) et storage (local, S3) interchangeables.
Install
bun add @poprun/engine
# ou
npm i @poprun/engineLes dépendances optional peer à installer selon les modules utilisés :
| Module utilisé | Peer deps à installer |
| ----------------------- | ------------------------------------------------------- |
| /server | elysia, @elysiajs/static, @elysiajs/cors |
| /auth/components | preact, @poprun/ui |
| /email (SMTP) | mjml, handlebars, nodemailer |
| /email (Resend) | mjml, handlebars, resend |
| /email (Postmark) | mjml, handlebars, postmark |
| /email/components | preact, @poprun/ui |
| /storage (S3) | @aws-sdk/client-s3 |
Subpath exports
| Import | Rôle |
| ---------------------------------- | ------------------------------------------------------------- |
| @poprun/engine/db | Factory createDb(path) — SQLite (Bun) avec WAL |
| @poprun/engine/auth | Factory createAuth({...}) — BetterAuth préconfiguré |
| @poprun/engine/auth/client | createAuthClient({...}) côté front |
| @poprun/engine/auth/components | LoginForm, RegisterForm Preact |
| @poprun/engine/server | createServer({...}) — Elysia + CORS + static + BetterAuth |
| @poprun/engine/email | createEmailer({...}) — multi-provider + MJML + Handlebars |
| @poprun/engine/email/components | UI admin : preview, history, test send (Preact) |
| @poprun/engine/audit | createAuditLogger({ db }) — log des actions |
| @poprun/engine/storage | createStorage({...}) — local FS ou S3 |
| @poprun/engine/cli | Helpers CLI (création admin, hash password, etc.) |
| @poprun/engine/types | Types partagés (Session, Auth, etc.) |
Exemple minimal
import { createDb } from "@poprun/engine/db";
import { createAuth } from "@poprun/engine/auth";
import { createServer } from "@poprun/engine/server";
const db = createDb("./data/app.db");
const auth = createAuth({ db, baseURL: "http://localhost:3000" });
const app = createServer({ port: 3000, auth });
app.listen(3000);Dev
bun install
bun run build # compile vers dist/
bun test
bun run typecheckLicense
MIT
