{"_id":"@alancode95/core-drizzle","name":"@alancode95/core-drizzle","dist-tags":{"latest":"1.0.0"},"versions":{"1.0.0":{"name":"@alancode95/core-drizzle","version":"1.0.0","type":"module","main":"src/index.ts","exports":{"./Support/Auth":"./src/Support/Auth/index.ts","./Support/Broadcasting":"./src/Support/Broadcasting/index.ts","./Support/Cache":"./src/Support/Cache/index.ts","./Support/Database":"./src/Support/Database/index.ts","./Support/Encryption":"./src/Support/Encryption/index.ts","./Support/Events":"./src/Support/Events/index.ts","./Support/Logging":"./src/Support/Logging/index.ts","./Support/Mail":"./src/Support/Mail/index.ts","./Support/Maintenance":"./src/Support/Maintenance/index.ts","./Support/Notifications":"./src/Support/Notifications/index.ts","./Support/Queue":"./src/Support/Queue/index.ts","./Support/Routing":"./src/Support/Routing/index.ts","./Support/Runtime":"./src/Support/Runtime/index.ts","./Support/Scheduling":"./src/Support/Scheduling/index.ts","./Support/Storage":"./src/Support/Storage/index.ts","./Support/Broadcasting/Channels":"./src/Support/Broadcasting/Channels.ts","./Support/Broadcasting/Broadcaster":"./src/Support/Broadcasting/Broadcaster.ts","./Bootstrap/*":"./src/Bootstrap/*.ts","./Config/*":"./src/Config/*.ts","./Console/*":"./src/Console/*.ts","./Http/Middlewares/*":"./src/Http/Middlewares/*.ts","./Providers/*":"./src/Providers/*.ts","./Scripts/*":"./src/Scripts/*.ts","./tests/*":"./tests/*.ts","./*":"./src/*.ts"},"peerDependencies":{"elysia":"^1.1.25","drizzle-orm":"^0.36.3","pino":"^9.5.0","zod":"^3.23.8"},"dependencies":{"bcryptjs":"^3.0.3","fast-glob":"^3.3.3","ioredis":"^5.11.1"},"devDependencies":{"@types/bcryptjs":"^3.0.0"},"_id":"@alancode95/core-drizzle@1.0.0","description":"Paket inti (core package) yang membungkus berbagai fitur backend penting untuk aplikasi modern berbasis **Bun** dan **Elysia.js**. Paket ini dirancang untuk memberikan fondasi yang kuat, terstruktur, dan terskala dengan mengintegrasikan ORM, sistem antrea","_nodeVersion":"24.16.0","_npmVersion":"11.13.0","dist":{"integrity":"sha512-i9Oi/Nw7Ne/N59Ngw5oPzDWTXWE0edr7uT6yT48WWO9wW8Zpy9FgiQlqCiTN3NTQZabjE4EZcboVx0yU7CNicg==","shasum":"8ca221ede23ff929bc52312a66cf0dc6855076e2","tarball":"https://registry.npmjs.org/@alancode95/core-drizzle/-/core-drizzle-1.0.0.tgz","fileCount":407,"unpackedSize":1381837,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQDzdFJ5giE0DCPxwyQmfPA5D3XLyjr6SNEb+gNsNLEM4AIhAM65hana0mJ42IJyHhAxKRvCkHWFYD+A6uY9ED6YgXsF"}]},"_npmUser":{"name":"alancode95","email":"alangentina95@gmail.com"},"directories":{},"maintainers":[{"name":"alancode95","email":"alangentina95@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/core-drizzle_1.0.0_1784633747672_0.7942236212619842"},"_hasShrinkwrap":false}},"time":{"created":"2026-07-21T11:35:47.515Z","1.0.0":"2026-07-21T11:35:47.898Z","modified":"2026-07-21T11:35:48.119Z"},"maintainers":[{"name":"alancode95","email":"alangentina95@gmail.com"}],"description":"Paket inti (core package) yang membungkus berbagai fitur backend penting untuk aplikasi modern berbasis **Bun** dan **Elysia.js**. Paket ini dirancang untuk memberikan fondasi yang kuat, terstruktur, dan terskala dengan mengintegrasikan ORM, sistem antrea","readme":"# @alancode95/core-drizzle\n\nPaket inti (core package) yang membungkus berbagai fitur backend penting untuk aplikasi modern berbasis **Bun** dan **Elysia.js**. Paket ini dirancang untuk memberikan fondasi yang kuat, terstruktur, dan terskala dengan mengintegrasikan ORM, sistem antrean, cache, otentikasi, dan berbagai utilitas lainnya.\n\n## 🚀 Fitur Utama\n\nPaket ini menyediakan modul-modul (Support modules) berikut:\n\n- **Database (Drizzle ORM)**\n  Mendukung berbagai dialek database relasional:\n  - MySQL / MariaDB (`drizzle-orm/mysql2`)\n  - PostgreSQL (`drizzle-orm/postgres-js`)\n  - SQLite (`drizzle-orm/bun-sqlite`)\n  *Catatan: Dukungan terhadap **Supabase** juga tersedia karena Supabase menggunakan PostgreSQL (cukup masukkan URL database Supabase pada konfigurasi).*\n  \n- **Authentication & Authorization**\n  Manajemen otentikasi (JWT / Session), hashing kata sandi dengan `bcryptjs`, manajemen token, dan pengaturan policy/otorisasi akses.\n  \n- **Cache Management**\n  Sistem caching yang dinamis dan mendukung beberapa driver (File, Database, dan Redis via `ioredis`).\n  \n- **Queue & Background Jobs**\n  Sistem antrean pekerjaan (queueing) asinkron untuk memproses background jobs menggunakan database queue.\n\n- **Broadcasting & Events**\n  Sistem event-driven dan broadcasting data secara realtime (misalnya menggunakan RedisBroadcaster).\n  \n- **Storage & Uploads**\n  Manajemen file dan penyimpanan yang mendukung penyimpanan disk lokal (Local) maupun cloud/object storage seperti AWS S3 (S3StorageDisk).\n\n- **Logging**\n  Sistem logging terpusat dan terstruktur menggunakan `pino`, lengkap dengan penyaringan error, peringatan, dan rotasi log.\n\n- **Mail & Notifications**\n  Dukungan pengiriman email melalui SMTP dan notifikasi multi-saluran (multi-channel).\n\n- **Scheduling**\n  Manajemen Cron Jobs atau penjadwalan tugas latar belakang.\n\n## 📦 Instalasi\n\nJika Anda menggunakan [Bun](https://bun.sh/):\n\n```bash\nbun add @alancode95/core-drizzle\n```\n\nPastikan juga untuk menginstal *peer dependencies* yang diperlukan:\n\n```bash\nbun add elysia drizzle-orm pino zod\n```\n\n## 🛠 Konfigurasi Database\n\nPaket ini menggunakan **Drizzle ORM** sebagai fondasi akses database. Konfigurasi otomatis diambil dari variabel lingkungan (`.env`).\n\n### 1. MySQL (Default)\n```env\nDB_CONNECTION=mysql\nDB_HOST=127.0.0.1\nDB_PORT=3306\nDB_DATABASE=nama_database\nDB_USERNAME=root\nDB_PASSWORD=secret\n```\n\n### 2. PostgreSQL / Supabase\nSupabase menggunakan PostgreSQL sehingga cukup arahkan parameter ke pooler Supabase.\n```env\nDB_CONNECTION=postgresql\nDB_HOST=aws-0-ap-southeast-1.pooler.supabase.com\nDB_PORT=6543\nDB_DATABASE=postgres\nDB_USERNAME=postgres.xxxx\nDB_PASSWORD=secret_password\nDB_SSL=require\n```\n\n### 3. SQLite\n```env\nDB_CONNECTION=sqlite\nDB_URL=database/database.sqlite\n```\n\n*(Catatan Audit: Saat ini MongoDB belum didukung secara bawaan karena ketergantungan yang kuat pada Drizzle ORM yang hanya berfokus pada database relasional SQL. Integrasi MongoDB memerlukan arsitektur tambahan/pengganti berbasis ODM seperti Mongoose.)*\n\n## 📚 Struktur Modul (Ekspor)\n\nAnda dapat mengimpor modul yang spesifik langsung dari sub-path yang disediakan:\n\n```typescript\n// Contoh impor modul database\nimport { getDatabaseClient } from \"@alancode95/core-drizzle/Support/Database\";\n\n// Contoh impor modul cache\nimport { CacheManager } from \"@alancode95/core-drizzle/Support/Cache\";\n\n// Contoh impor modul antrean\nimport { QueueManager } from \"@alancode95/core-drizzle/Support/Queue\";\n```\n\nUntuk melihat daftar lengkap ekspor, Anda dapat memeriksa *exports* field di dalam `package.json`.\n\n## 🔒 Otentikasi dan Keamanan\n\nFungsi otentikasi bawaan sudah dilengkapi dengan enkripsi password (menggunakan bcrypt) dan pengelolaan token pembaharuan (reset token). Modul `Encryption` juga dapat dimanfaatkan untuk melakukan enkripsi dan dekripsi data sensitif dalam aplikasi.\n\n## 🚦 Routing dan Middleware\n\nTerintegrasi erat dengan *Elysia*, paket ini juga memiliki dukungan pengelolaan middleware bawaan untuk menyaring *request* seperti batasan akses (Rate Limiting), perlindungan CSRF, dan pembersihan data (Sanitization).\n\n## 📄 Lisensi\nHak Cipta © 2026. Alancode95.\n","readmeFilename":"README.md","_rev":"1-5db238dcff447c2a05f40b63538d59d0"}