{"_id":"@aurora-it/fastify-kit","_rev":"5-ef4a413357713923a0d7c7931ca89098","name":"@aurora-it/fastify-kit","dist-tags":{"latest":"2.4.5"},"versions":{"2.3.7":{"name":"@aurora-it/fastify-kit","version":"2.3.7","keywords":["fastify","vue","prisma","starter-kit","scaffold","authentication","fullstack","cli"],"author":{"name":"MJ","email":"mohamad.webdev@gmail.com"},"license":"MIT","_id":"@aurora-it/fastify-kit@2.3.7","maintainers":[{"name":"mr_mjm","email":"mohamad.webdev@gmail.com"}],"homepage":"https://github.com/mohamad-j/fastify-kit#readme","bugs":{"url":"https://github.com/mohamad-j/fastify-kit/issues"},"bin":{"fkit":"cli/index.js","fastify-kit":"cli/index.js"},"dist":{"shasum":"69a4ba8a37c3e62a9a9d49ed3386fd14195a2b60","tarball":"https://registry.npmjs.org/@aurora-it/fastify-kit/-/fastify-kit-2.3.7.tgz","fileCount":14,"integrity":"sha512-WeKq6mbf13Vb5tWm/g6zn8yxPlZI/eL+5QpbBNvau34R57qCgpmPuI5JCWQDANv7UwQnMQ0mxTDVDzZdMry6CQ==","signatures":[{"sig":"MEYCIQC537hgAZZcLgYWOOZDagJFxdrraHo07+uPRGUvvCZfgQIhAJiMrVuNYDipG6OyOyW74N6T/0yki9YBsLOu2QaG4Fsb","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@aurora-it%2ffastify-kit@2.3.7","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2616496},"type":"module","engines":{"node":">=22.13.0"},"gitHead":"17f0fe33d3231786a38fa0d096f1cf908dcc9674","_npmUser":{"name":"mr_mjm","email":"mohamad.webdev@gmail.com"},"repository":{"url":"git+https://github.com/mohamad-j/fastify-kit.git","type":"git"},"_npmVersion":"10.9.7","description":"A full-stack Fastify starter kit with authentication, Prisma ORM, and Vue.js frontend. Use the CLI to scaffold a complete project in seconds.","directories":{},"_nodeVersion":"22.22.2","dependencies":{},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/fastify-kit_2.3.7_1776122382084_0.09470441853541","host":"s3://npm-registry-packages-npm-production"}},"2.4.2":{"name":"@aurora-it/fastify-kit","version":"2.4.2","keywords":["fastify","vue","prisma","starter-kit","scaffold","authentication","fullstack","cli"],"author":{"name":"MJ","email":"mohamad.webdev@gmail.com"},"license":"MIT","_id":"@aurora-it/fastify-kit@2.4.2","maintainers":[{"name":"mr_mjm","email":"mohamad.webdev@gmail.com"}],"homepage":"https://github.com/mohamad-j/fastify-kit#readme","bugs":{"url":"https://github.com/mohamad-j/fastify-kit/issues"},"bin":{"fkit":"cli/index.js","fastify-kit":"cli/index.js"},"dist":{"shasum":"9bc26a4a23ca3d5a8520aeb3fe656ea65147e269","tarball":"https://registry.npmjs.org/@aurora-it/fastify-kit/-/fastify-kit-2.4.2.tgz","fileCount":22,"integrity":"sha512-oS8svGQFPuTTu+p4qcwkjo8NVWa5TW02HxA7i0EMnsfE+keMAAYKDfkdcni1RDMNNOqP/jSlp7ZG8nW+qToLeg==","signatures":[{"sig":"MEUCIE0tQ9URfd6FbXGZMvECYdEVohBQx9+vfww64gBYhabgAiEAhBfjrLEzaDIEO7+5/8vE6YsuI00pMmc6Ef5QG6uGJlk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3159290},"type":"module","engines":{"node":">=22.13.0"},"gitHead":"2bc9aa4c9dcdb54fa8cd6e437b52569ff929f281","_npmUser":{"name":"mr_mjm","email":"mohamad.webdev@gmail.com"},"repository":{"url":"git+https://github.com/mohamad-j/fastify-kit.git","type":"git"},"_npmVersion":"10.9.7","description":"A full-stack Fastify starter kit with authentication, Prisma ORM, and Vue.js frontend. Use the CLI to scaffold a complete project in seconds.","directories":{},"_nodeVersion":"22.22.2","dependencies":{},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/fastify-kit_2.4.2_1778877184077_0.031498885290036416","host":"s3://npm-registry-packages-npm-production"}},"2.4.3":{"name":"@aurora-it/fastify-kit","version":"2.4.3","keywords":["fastify","vue","prisma","starter-kit","scaffold","authentication","fullstack","cli"],"author":{"name":"MJ","email":"mohamad.webdev@gmail.com"},"license":"MIT","_id":"@aurora-it/fastify-kit@2.4.3","maintainers":[{"name":"mr_mjm","email":"mohamad.webdev@gmail.com"}],"homepage":"https://github.com/mohamad-j/fastify-kit#readme","bugs":{"url":"https://github.com/mohamad-j/fastify-kit/issues"},"bin":{"fkit":"cli/index.js","fastify-kit":"cli/index.js"},"dist":{"shasum":"ebddee46122ea7f92ea36c5eb8eb39c3749ecc7d","tarball":"https://registry.npmjs.org/@aurora-it/fastify-kit/-/fastify-kit-2.4.3.tgz","fileCount":22,"integrity":"sha512-l5e4FyPnCRQFJCHUwVPnMuNCRzGr1WjAd4AW0fuvXOXHQSYhPMxcSiLJuyq+KsgMVUP4rc2pLF/2o7y9lCcWpg==","signatures":[{"sig":"MEQCIEbUef6zgRsy3Gpfd6OgDnNY11vGLVo99CLF8X45X32oAiBTwqMDtIgCwR7kGR4+KHuP4Ji/BLZ6LC5zj+6+fuBSzw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3159289},"type":"module","engines":{"node":">=22.13.0"},"gitHead":"fa298c7ac2323fceb87e0521cb7f62a30f25b663","_npmUser":{"name":"mr_mjm","email":"mohamad.webdev@gmail.com"},"repository":{"url":"git+https://github.com/mohamad-j/fastify-kit.git","type":"git"},"_npmVersion":"10.9.7","description":"A full-stack Fastify starter kit with authentication, Prisma ORM, and Vue.js frontend. Use the CLI to scaffold a complete project in seconds.","directories":{},"_nodeVersion":"22.22.2","dependencies":{},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/fastify-kit_2.4.3_1778877920337_0.4765669051282677","host":"s3://npm-registry-packages-npm-production"}},"2.4.4":{"name":"@aurora-it/fastify-kit","version":"2.4.4","keywords":["fastify","vue","prisma","starter-kit","scaffold","authentication","fullstack","cli"],"author":{"name":"MJ","email":"mohamad.webdev@gmail.com"},"license":"MIT","_id":"@aurora-it/fastify-kit@2.4.4","maintainers":[{"name":"mr_mjm","email":"mohamad.webdev@gmail.com"}],"homepage":"https://github.com/mohamad-j/fastify-kit#readme","bugs":{"url":"https://github.com/mohamad-j/fastify-kit/issues"},"bin":{"fkit":"cli/index.js","fastify-kit":"cli/index.js"},"dist":{"shasum":"765a58cd3bc3c245f23b3d8c03aca652b4c7d9fe","tarball":"https://registry.npmjs.org/@aurora-it/fastify-kit/-/fastify-kit-2.4.4.tgz","fileCount":22,"integrity":"sha512-5NY8KbPZAYP3LXhO1OhqYWk+dWTSU2/cdmhZ0Mn/kULyYLTPq5JDEf2ntwQhAWgXZOxekmhgNGvKeWEXktoAZg==","signatures":[{"sig":"MEQCIHTi7kPfNEZCZ+8PFag8cwx37qVBNJwPL2VKcac69OfqAiAozldxicQ5kSturpddLnltMsEM+O4vJQUCd+27cuXiYw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3159317},"type":"module","engines":{"node":">=22.13.0"},"gitHead":"dfaf0c47995afce1736e878e10712c4287b7fd81","_npmUser":{"name":"mr_mjm","email":"mohamad.webdev@gmail.com"},"repository":{"url":"git+https://github.com/mohamad-j/fastify-kit.git","type":"git"},"_npmVersion":"10.9.7","description":"A full-stack Fastify starter kit with authentication, Prisma ORM, and Vue.js frontend. Use the CLI to scaffold a complete project in seconds.","directories":{},"_nodeVersion":"22.22.2","dependencies":{"adm-zip":"^0.5.17"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/fastify-kit_2.4.4_1778879129612_0.017956833444489062","host":"s3://npm-registry-packages-npm-production"}},"2.4.5":{"name":"@aurora-it/fastify-kit","version":"2.4.5","description":"A full-stack Fastify starter kit with authentication, Prisma ORM, and Vue.js frontend. Use the CLI to scaffold a complete project in seconds.","type":"module","author":{"name":"MJ","email":"mohamad.webdev@gmail.com"},"license":"MIT","keywords":["fastify","vue","prisma","starter-kit","scaffold","authentication","fullstack","cli"],"bin":{"fkit":"cli/index.js","fastify-kit":"cli/index.js"},"engines":{"node":">=22.13.0"},"dependencies":{"adm-zip":"^0.5.17"},"repository":{"type":"git","url":"git+https://github.com/mohamad-j/fastify-kit.git"},"bugs":{"url":"https://github.com/mohamad-j/fastify-kit/issues"},"homepage":"https://github.com/mohamad-j/fastify-kit#readme","_id":"@aurora-it/fastify-kit@2.4.5","gitHead":"d07559641f877ffb11fb7b06c7c22ec80d7e660a","_nodeVersion":"22.22.2","_npmVersion":"10.9.7","dist":{"integrity":"sha512-6T0HYuOQ3JuL1ptfaFoD+56vKWh76Cmme1S+kxo1JPgQqDEkEnnK2DLFd9NXsFyC+4cGgRWQo/ET1zQrNR/2qA==","shasum":"a76bd6fd82354113bf2ceae4c9f297b240ee4a11","tarball":"https://registry.npmjs.org/@aurora-it/fastify-kit/-/fastify-kit-2.4.5.tgz","fileCount":22,"unpackedSize":3187989,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQCqT9UaKqERdzSO6xxWspCe1RLYey3kDWlwXWyFtQB2MwIhALHQ6yL3+beLhN9ocYLFVVB8Dp9epeP1iqjvbyk0W+LI"}]},"_npmUser":{"name":"mr_mjm","email":"mohamad.webdev@gmail.com"},"directories":{},"maintainers":[{"name":"mr_mjm","email":"mohamad.webdev@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/fastify-kit_2.4.5_1778880074580_0.34026584958503236"},"_hasShrinkwrap":false}},"time":{"created":"2026-04-13T23:19:41.978Z","modified":"2026-05-15T21:21:14.884Z","2.3.7":"2026-04-13T23:19:42.279Z","2.4.2":"2026-05-15T20:33:04.259Z","2.4.3":"2026-05-15T20:45:20.546Z","2.4.4":"2026-05-15T21:05:29.938Z","2.4.5":"2026-05-15T21:21:14.771Z"},"bugs":{"url":"https://github.com/mohamad-j/fastify-kit/issues"},"author":{"name":"MJ","email":"mohamad.webdev@gmail.com"},"license":"MIT","homepage":"https://github.com/mohamad-j/fastify-kit#readme","keywords":["fastify","vue","prisma","starter-kit","scaffold","authentication","fullstack","cli"],"repository":{"type":"git","url":"git+https://github.com/mohamad-j/fastify-kit.git"},"description":"A full-stack Fastify starter kit with authentication, Prisma ORM, and Vue.js frontend. Use the CLI to scaffold a complete project in seconds.","maintainers":[{"name":"mr_mjm","email":"mohamad.webdev@gmail.com"}],"readme":"# fastify-kit\n\nA full-stack Fastify starter kit with authentication, Prisma ORM, and Vue.js frontend.\n\n## Features\n\n- **Fastify** backend with plugin architecture, DI, and middleware support\n- **Vue 3** frontend with Vite, Tailwind CSS, and TypeScript\n- **Prisma ORM** with SQLite (easily swappable to PostgreSQL / MySQL)\n- **Authentication** — JWT, sessions, OAuth, MFA (TOTP), WebAuthn\n- **Authorization** — role-based guards, IP whitelisting, API keys\n- **Payment** — Stripe integration with webhook handling and ledger\n- **Queue** — Bull + Redis job processing with monitoring UI\n- **Testing** — Vitest with >80% coverage target\n\n## Requirements\n\n- Node.js >= 18\n- pnpm (or npm / yarn)\n\n## Quick Start\n\n```bash\n# Install the CLI globally\nnpm install -g fastify-kit\n\n# Scaffold a new project\nmkdir my-app && cd my-app\nfkit setup\n\n# Install dependencies\npnpm install\n\n# Configure environment\ncp .env.example .env\n# Edit .env with your settings\n\n# Run database migrations\npnpm db:migrate\n\n# Start development server\npnpm dev\n```\n\n## CLI Commands\n\n| Command | Description |\n|---|---|\n| `fkit setup` | Scaffold a new project or update an existing one |\n| `fkit create:app <name>` | Create a new frontend Vue app |\n| `fkit create:plugin <name>` | Create a new backend Fastify plugin |\n| `fkit create:route <name>` | Create a new API route |\n| `fkit create:service <name>` | Create a new service |\n| `fkit create:guard <name>` | Create a new route guard |\n| `fkit list:apps` | List all frontend apps |\n| `fkit list:routes` | List all backend routes |\n| `fkit help [command]` | Show help |\n\n## `fkit setup` Options\n\n```bash\nfkit setup [options]\n\nOptions:\n  --backup          Create a timestamped backup before making changes\n  --no-backup       Skip the backup prompt\n  --force           Overwrite all differing files without prompting\n  --dry-run         Preview changes without writing any files\n  --log             Write a fkit-setup.log file with all decisions\n```\n\n### `setup.json` Config File\n\nPlace a `setup.json` in your project root to control which files the setup command manages:\n\n```json\n{\n  \"include\": [\"backend/**\", \"frontend/**\"],\n  \"exclude\": [\"backend/config/payment.config.js\"],\n  \"backup\": true,\n  \"log\": true\n}\n```\n\n| Field | Type | Description |\n|---|---|---|\n| `include` | `string[]` | Glob patterns of paths to manage (default: all) |\n| `exclude` | `string[]` | Glob patterns of paths to skip |\n| `backup` | `boolean` | Always create a backup (skips the prompt) |\n| `log` | `boolean` | Always write `fkit-setup.log` |\n\n## Project Structure\n\nAfter running `fkit setup`, your project will have the following structure:\n\n```\nmy-app/\n├── backend/           # Fastify server\n│   ├── auth/          # Authentication strategies & middleware\n│   ├── core/          # DI container, errors, utilities\n│   ├── guards/        # Route guards\n│   ├── interceptors/  # Request/response interceptors\n│   ├── middleware/     # Fastify middleware\n│   ├── payment/       # Stripe integration\n│   ├── plugins/       # Fastify plugins\n│   ├── routes/        # API routes\n│   ├── services/      # Business logic services\n│   └── views/         # Nunjucks templates\n├── frontend/          # Vue 3 + Vite apps\n│   ├── apps/          # Individual Vue applications\n│   ├── libs/          # Shared Vue component libraries\n│   └── shared/        # Shared utilities & composables\n├── cli/               # fastify-kit CLI source\n├── prisma/\n│   ├── schema.prisma  # Database schema\n│   ├── seed.js        # Database seeder\n│   └── setup.sqlite   # Package setup database\n├── .env.example       # Environment variable template\n├── package.json       # Project dependencies\n└── README.md          # Project documentation\n```\n\n## Environment Variables\n\nCopy `.env.example` to `.env` and configure:\n\n```env\n# Database\nDATABASE_URL=\"file:./prisma/dev.db\"\n\n# Application\nPORT=3000\nHOST=localhost\nNODE_ENV=development\n\n# Session / Cookie\nSESSION_SECRET=your-secret-here\nCOOKIE_SECRET=your-cookie-secret-here\n\n# OAuth (optional)\nGOOGLE_CLIENT_ID=\nGOOGLE_CLIENT_SECRET=\n\n# Stripe (optional)\nSTRIPE_SECRET_KEY=\nSTRIPE_WEBHOOK_SECRET=\n\n# Redis (for queues, optional)\nREDIS_URL=redis://localhost:6379\n```\n\n## Documentation\n\nFull documentation is available in the `docs/` directory after running `fkit setup`:\n\n- [Authentication](docs/AUTHENTICATION.md)\n- [Database](docs/DATABASE.md)\n- [Payment Integration](docs/PAYMENT.md)\n- [Frontend SSR](docs/FRONTEND-SSR.md)\n- [CLI Reference](docs/CLI.md)\n- [Testing](docs/TESTING.md)\n\n## License\n\nMIT © MJ\n","readmeFilename":"README.md"}