dolphin-server-modules 1.0.6 → 1.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,191 @@
1
+ # Dolphin Framework: 0 to 100% Full Tutorial (Nepali) 🐬
2
+
3
+ Dolphin Framework मा तपाईँलाई स्वागत छ! यो गाइडमा हामी Dolphin प्रयोग गरेर एउटा शक्तिशाली, छिटो र आधुनिक API कसरी बनाउने भनेर सुरुदेखि अन्त्यसम्म सिक्नेछौँ।
4
+
5
+ ---
6
+
7
+ ## १. Dolphin के हो? (Introduction)
8
+
9
+ **Dolphin** एउटा "Zero-Dependency" ब्याकइन्ड फ्रेमवर्क हो। यो Node.js को नेटिभ `http` मोड्युलमा बनेको छ, जसले गर्दा यसको स्पिड एकदमै धेरै छ।
10
+
11
+ **मुख्य विशेषताहरू:**
12
+ - **Zero-Dependency Core**: बाहिरी भारी लाइब्रेरीहरू प्रयोग नगरी नेटिभ Node.js मा आधारित।
13
+ - **Ultra-Fast**: एक्सप्रेस (Express) भन्दा धेरै गुणा छिटो।
14
+ - **100% Modular**: तपाईँलाई जे चाहिन्छ, त्यही मात्र प्रयोग गर्न सकिन्छ (Auth, CRUD, Routing सबै छुट्टाछुट्टै छन्)।
15
+
16
+ ---
17
+
18
+ ## २. सुरुवाती सेटअप (Project Setup)
19
+
20
+ सबैभन्दा पहिले एउटा नयाँ फोल्डर बनाउनुहोस् र प्रोजेक्ट सुरु गर्नुहोस्:
21
+
22
+ ```bash
23
+ # १. फोल्डर बनाउनुहोस् र भित्र जानुहोस्
24
+ mkdir my-dolphin-app && cd my-dolphin-app
25
+
26
+ # २. npm प्रोजेक्ट सुरु गर्नुहोस्
27
+ npm init -y
28
+
29
+ # ३. आवश्यक प्याकेजहरू इन्स्टल गर्नुहोस्
30
+ npm install dolphin-server-modules mongoose zod
31
+ ```
32
+
33
+ ---
34
+
35
+ ## ३. पहिलो सर्भर (Hello World)
36
+
37
+ अब `index.ts` (वा `index.js`) फाइल बनाउनुहोस् र यो कोड राख्नुहोस्:
38
+
39
+ ```typescript
40
+ import { createDolphinServer } from 'dolphin-server-modules/server';
41
+
42
+ const app = createDolphinServer();
43
+
44
+ // एउटा सामान्य गेट (GET) रूट
45
+ app.get('/', (ctx) => {
46
+ ctx.json({ message: "Dolphin को संसारमा स्वागत छ! 🐬" });
47
+ });
48
+
49
+ // सर्भर सुन्न (Listen) सुरु गर्नुहोस्
50
+ app.listen(3000, () => {
51
+ console.log("सर्भर http://localhost:3000 मा चलिरहेको छ!");
52
+ });
53
+ ```
54
+
55
+ तपाईँको सर्भर अब तयार भयो! `npx ts-node index.ts` चलाएर चेक गर्न सक्नुहुन्छ।
56
+
57
+ ---
58
+
59
+ ## ४. Context (ctx) बुझ्ने
60
+
61
+ Dolphin मा हामी `req` र `res` को सट्टा `ctx` (Context) प्रयोग गर्छौँ। यसले कोडलाई सफा बनाउँछ।
62
+
63
+ - `ctx.req`: नेटिभ रिक्वेस्ट अब्जेक्ट।
64
+ - `ctx.json(data)`: JSON रेस्पोन्स पठाउन।
65
+ - `ctx.body`: पोस्ट (POST) फाइल वा डाटाहरु।
66
+ - `ctx.params`: URL बाट आउने प्यारामिटरहरू (जस्तै: `/users/:id`)।
67
+
68
+ ---
69
+
70
+ ## ५. राउटिङ र डाइनामिक प्यारामिटर (Routing)
71
+
72
+ Dolphin को राउटिङ एकदमै शक्तिशाली छ।
73
+
74
+ ```typescript
75
+ // १. डाइनामिक आईडी लिने
76
+ app.get('/users/:id', (ctx) => {
77
+ const userId = ctx.params.id;
78
+ ctx.json({ id: userId, name: "Nepal User" });
79
+ });
80
+
81
+ // २. पोस्ट रिक्वेस्ट (Data पठाउन)
82
+ app.post('/create', (ctx) => {
83
+ const data = ctx.body;
84
+ ctx.json({ status: "Received", payload: data });
85
+ });
86
+ ```
87
+
88
+ ---
89
+
90
+ ## ६. मिडलवेयर (Middleware)
91
+
92
+ मिडलवेयरले रिक्वेस्टलाई चेक वा मोडिफाइ गर्छ। Dolphin ले "Native Style" र "Express Style" दुवै सपोर्ट गर्छ।
93
+
94
+ ```typescript
95
+ // Dolphin Style Middleware
96
+ app.use((ctx, next) => {
97
+ console.log(`${ctx.req.method} अनुरोध आयो: ${ctx.req.url}`);
98
+ next(); // अर्को स्टेपमा जानको लागि अनिवार्य छ
99
+ });
100
+
101
+ // Express Style (जस्तै: CORS)
102
+ import cors from 'cors';
103
+ app.use(cors()); // सिधै काम गर्छ!
104
+ ```
105
+
106
+ ---
107
+
108
+ ## ७. डेटाबेस सेटअप (Mongoose Adapter)
109
+
110
+ Dolphin ले Mongoose सँग सजिलै काम गर्छ।
111
+
112
+ ```typescript
113
+ import mongoose from 'mongoose';
114
+ import { createMongooseAdapter } from 'dolphin-server-modules/adapters/mongoose';
115
+
116
+ // १. स्किमा (Schema) बनाउनुहोस्
117
+ const UserSchema = new mongoose.Schema({
118
+ email: { type: String, required: true, unique: true },
119
+ password: { type: String, required: true }
120
+ });
121
+
122
+ const User = mongoose.model('User', UserSchema);
123
+
124
+ // २. अड्याप्टर (Adapter) सेटअप गर्नुहोस्
125
+ const db = createMongooseAdapter({ User });
126
+ ```
127
+
128
+ ---
129
+
130
+ ## ८. अथेन्टिकेसन (Auth Module)
131
+
132
+ सुरक्षित API को लागि Dolphin भित्रै `auth` मोड्युल छ।
133
+
134
+ ```typescript
135
+ import { createAuth } from 'dolphin-server-modules/auth';
136
+
137
+ const auth = createAuth({ secret: 'MY_SECRET_KEY' });
138
+
139
+ // कुनै रूटलाई सुरक्षित बनाउन
140
+ app.get('/profile', auth.middleware(), (ctx) => {
141
+ // यहाँ पुगेको युजर भेरिफाई भइसकेको हुन्छ
142
+ ctx.json({ user: ctx.req.user });
143
+ });
144
+ ```
145
+
146
+ ---
147
+
148
+ ## ९. अटोमेटेड CRUD (Automated API)
149
+
150
+ Dolphin को सबैभन्दा राम्रो कुरा भनेको अटोमेटिक CRUD हो। तपाईँलाई कोड लेखिरहनु पर्दैन।
151
+
152
+ ```typescript
153
+ // सबै युजरको CRUD अपरेसन अटोमेटिक बनाउनुहोस्
154
+ app.get('/api/users', async (ctx) => {
155
+ const users = await db.User.find();
156
+ ctx.json(users);
157
+ });
158
+ // वा Dolphin को CRUD कन्ट्रोलर प्रयोग गर्नुहोस्
159
+ ```
160
+
161
+ ---
162
+
163
+ ## १०. भ्यालिडेसन (Zod Validation)
164
+
165
+ युजरले पठाएको डाटाहरू चेक गर्न Zod प्रयोग गर्नुहोस्।
166
+
167
+ ```typescript
168
+ import { z } from 'zod';
169
+ import { validate } from 'dolphin-server-modules/middleware/zod';
170
+
171
+ const registerSchema = z.object({
172
+ email: z.string().email(),
173
+ password: z.string().min(6)
174
+ });
175
+
176
+ app.post('/register', validate(registerSchema), (ctx) => {
177
+ ctx.json({ message: "Valid Data!" });
178
+ });
179
+ ```
180
+
181
+ ---
182
+
183
+ ## ११. अन्तिममा (Conclusion)
184
+
185
+ Dolphin Framework निकै छिटो र सजिलो छ। यसले तपाईँको ब्याकइन्ड डेभलपमेन्टको अनुभवलाई नयाँ उचाइमा पुर्‍याउँछ।
186
+
187
+ **थप जानकारीको लागि:**
188
+ - [Official Documentation](https://github.com/Phuyalshankar/dolphin-server-modules)
189
+ - माथिका सबै स्टेपहरू मिलाएर एउटा `app.ts` फाइल बनाउनुहोस् र रन गर्नुहोस्!
190
+
191
+ **Happy Coding in Nepali! 🇳🇵🐬**
@@ -69,3 +69,10 @@ export declare function createCRUD<T extends BaseDocument = BaseDocument>(db: Da
69
69
  hasPrev: boolean;
70
70
  }>;
71
71
  };
72
+ export declare function createCrudController<T extends BaseDocument = BaseDocument>(modelInfoOrAdapter: any, collectionName?: string): {
73
+ getAll: (ctx: any) => Promise<void>;
74
+ getOne: (ctx: any) => Promise<any>;
75
+ create: (ctx: any) => Promise<void>;
76
+ update: (ctx: any) => Promise<any>;
77
+ delete: (ctx: any) => Promise<any>;
78
+ };
package/dist/curd/crud.js CHANGED
@@ -6,6 +6,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
6
6
  };
7
7
  Object.defineProperty(exports, "__esModule", { value: true });
8
8
  exports.createCRUD = createCRUD;
9
+ exports.createCrudController = createCrudController;
9
10
  const node_crypto_1 = __importDefault(require("node:crypto"));
10
11
  // ===== CRUD Factory =====
11
12
  function createCRUD(db, options = {}) {
@@ -214,4 +215,53 @@ function createCRUD(db, options = {}) {
214
215
  }
215
216
  };
216
217
  }
218
+ // ===== CRUD Controller (Handler Wrapper) =====
219
+ function createCrudController(modelInfoOrAdapter, collectionName) {
220
+ let adapter;
221
+ let collection;
222
+ if (collectionName) {
223
+ adapter = modelInfoOrAdapter;
224
+ collection = collectionName;
225
+ }
226
+ else if (modelInfoOrAdapter && modelInfoOrAdapter.adapter && modelInfoOrAdapter.collection) {
227
+ adapter = modelInfoOrAdapter.adapter;
228
+ collection = modelInfoOrAdapter.collection;
229
+ }
230
+ else {
231
+ throw new Error('Invalid arguments to createCrudController. Expected (adapter, collection) or ({ adapter, collection })');
232
+ }
233
+ const service = createCRUD(adapter);
234
+ return {
235
+ getAll: async (ctx) => {
236
+ const { limit, offset, ...filters } = ctx.query;
237
+ const results = await service.read(collection, filters, {
238
+ limit: limit ? parseInt(limit) : undefined,
239
+ offset: offset ? parseInt(offset) : undefined
240
+ }, ctx.req.user?.id);
241
+ ctx.json(results);
242
+ },
243
+ getOne: async (ctx) => {
244
+ const result = await service.readOne(collection, ctx.params.id, ctx.req.user?.id);
245
+ if (!result)
246
+ return ctx.status(404).json({ error: 'Not Found' });
247
+ ctx.json(result);
248
+ },
249
+ create: async (ctx) => {
250
+ const result = await service.create(collection, ctx.body, ctx.req.user?.id);
251
+ ctx.status(201).json(result);
252
+ },
253
+ update: async (ctx) => {
254
+ const result = await service.updateOne(collection, ctx.params.id, ctx.body, ctx.req.user?.id);
255
+ if (!result)
256
+ return ctx.status(404).json({ error: 'Not Found' });
257
+ ctx.json(result);
258
+ },
259
+ delete: async (ctx) => {
260
+ const result = await service.deleteOne(collection, ctx.params.id, ctx.req.user?.id);
261
+ if (!result)
262
+ return ctx.status(404).json({ error: 'Not Found' });
263
+ ctx.json({ success: true, deleted: result });
264
+ }
265
+ };
266
+ }
217
267
  //# sourceMappingURL=crud.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"crud.js","sourceRoot":"","sources":["../../curd/crud.ts"],"names":[],"mappings":";AAAA,0EAA0E;AAC1E,4CAA4C;;;;;AA8C5C,gCA2NC;AAvQD,8DAAiC;AA2CjC,2BAA2B;AAC3B,SAAgB,UAAU,CACxB,EAAmB,EACnB,UAAuF,EAAE;IAEzF,MAAM,EAAE,gBAAgB,GAAG,IAAI,EAAE,UAAU,GAAG,KAAK,EAAE,YAAY,GAAG,GAAG,EAAE,GAAG,OAAO,CAAC;IAEpF,MAAM,UAAU,GAAG,GAAG,EAAE,CAAC,qBAAM,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAEhE,MAAM,cAAc,GAAG,CAAyB,KAAqB,EAAE,MAAe,EAAkB,EAAE;QACxG,IAAI,CAAC,gBAAgB,IAAI,CAAC,MAAM;YAAE,OAAO,KAAK,CAAC;QAC/C,OAAO,EAAE,GAAG,KAAK,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,MAAM,EAAE,EAAE,CAAC;IAC/C,CAAC,CAAC;IAEF,MAAM,WAAW,GAAG,CAAyB,IAAS,EAAE,MAAsB,EAAW,EAAE;QACzF,MAAM,GAAG,GAAG,CAAC,KAAa,EAAE,GAAQ,EAAE,IAAS,EAAW,EAAE;YAC1D,IAAI,IAAI,KAAK,SAAS;gBAAE,OAAO,GAAG,KAAK,SAAS,CAAC;YACjD,IAAI,OAAO,IAAI,KAAK,QAAQ;gBAAE,OAAO,GAAG,KAAK,IAAI,CAAC;YAClD,IAAI,KAAK,IAAI,IAAI;gBAAE,OAAO,GAAG,KAAK,IAAI,CAAC,GAAG,CAAC;YAC3C,IAAI,KAAK,IAAI,IAAI;gBAAE,OAAO,GAAG,KAAK,IAAI,CAAC,GAAG,CAAC;YAC3C,IAAI,KAAK,IAAI,IAAI;gBAAE,OAAO,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC;YACzC,IAAI,MAAM,IAAI,IAAI;gBAAE,OAAO,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC;YAC5C,IAAI,KAAK,IAAI,IAAI;gBAAE,OAAO,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC;YACzC,IAAI,MAAM,IAAI,IAAI;gBAAE,OAAO,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC;YAC5C,IAAI,KAAK,IAAI,IAAI;gBAAE,OAAO,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;YAC5E,IAAI,MAAM,IAAI,IAAI;gBAAE,OAAO,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;YAChF,IAAI,OAAO,IAAI,IAAI;gBAAE,OAAO,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;YACxF,OAAO,IAAI,CAAC;QACd,CAAC,CAAC;QAEF,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACjC,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;YACvB,MAAM,IAAI,GAAS,MAAc,CAAC,GAAG,CAAC,CAAC;YACvC,IAAI,GAAG,KAAK,MAAM,EAAE,CAAC;gBACnB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;oBAAE,OAAO,KAAK,CAAC;YAC1F,CAAC;iBAAM,IAAI,GAAG,KAAK,KAAK,EAAE,CAAC;gBACzB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;oBAAE,OAAO,KAAK,CAAC;YACzF,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,GAAG,CAAC,GAAG,EAAG,IAAY,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC;oBAAE,OAAO,KAAK,CAAC;YACxD,CAAC;QACH,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC,CAAC;IAEF,MAAM,eAAe,GAAG,CAAC,KAAU,EAAO,EAAE;QAC1C,IAAI,CAAC,UAAU;YAAE,OAAO,KAAK,CAAC;QAC9B,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IACzC,CAAC,CAAC;IAEF,MAAM,SAAS,GAAG,CAAC,KAAU,EAAE,IAAwC,EAAE,EAAE;QACzE,IAAI,CAAC,IAAI;YAAE,OAAO,KAAK,CAAC;QACxB,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC/B,OAAO,CAAC,GAAG,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;YAC9B,KAAK,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC;gBACrB,MAAM,IAAI,GAAI,CAAS,CAAC,CAAC,CAAC,CAAC;gBAC3B,MAAM,IAAI,GAAI,CAAS,CAAC,CAAC,CAAC,CAAC;gBAC3B,IAAI,IAAI,KAAK,IAAI;oBAAE,SAAS;gBAC5B,OAAO,IAAI,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAC7E,CAAC;YACD,OAAO,CAAC,CAAC;QACX,CAAC,CAAC,CAAC;IACL,CAAC,CAAC;IAEF,OAAO;QACL,KAAK,CAAC,MAAM,CAAC,UAAkB,EAAE,IAAgB,EAAE,MAAe;YAChE,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;YACrC,MAAM,GAAG,GAAG;gBACV,EAAE,EAAE,UAAU,EAAE;gBAChB,SAAS,EAAE,GAAG;gBACd,SAAS,EAAE,GAAG;gBACd,GAAG,CAAC,MAAM,IAAI,EAAE,MAAM,EAAE,CAAC;gBACzB,GAAG,IAAI;aACH,CAAC;YACP,OAAO,EAAE,CAAC,MAAM,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;QACpC,CAAC;QAED,KAAK,CAAC,UAAU,CAAC,UAAkB,EAAE,KAAwB,EAAE,MAAe;YAC5E,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;YACrC,MAAM,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBAC9B,EAAE,EAAE,UAAU,EAAE;gBAChB,SAAS,EAAE,GAAG;gBACd,SAAS,EAAE,GAAG;gBACd,GAAG,CAAC,MAAM,IAAI,EAAE,MAAM,EAAE,CAAC;gBACzB,GAAG,IAAI;aACR,CAAC,CAAQ,CAAC;YAEX,MAAM,OAAO,GAAQ,EAAE,CAAC;YACxB,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;gBACvB,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC,CAAC;YACjD,CAAC;YACD,OAAO,OAAO,CAAC;QACjB,CAAC;QAED,KAAK,CAAC,OAAO,CAAC,UAAkB,EAAE,EAAU,EAAE,MAAe;YAC3D,MAAM,MAAM,GAAG,cAAc,CAAC,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,CAAC;YAC9C,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,IAAI,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;YAClD,MAAM,QAAQ,GAAG,eAAe,CAAC,OAAO,CAAC,CAAC;YAC1C,OAAO,QAAQ,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC;QAC7B,CAAC;QAED,KAAK,CAAC,IAAI,CACR,UAAkB,EAClB,SAAyB,EAAE,EAC3B,UAA6B,EAAE,EAC/B,MAAe;YAEf,MAAM,UAAU,GAAG,cAAc,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;YAClD,IAAI,KAAK,GAAQ,EAAE,CAAC;YAEpB,IAAI,EAAE,CAAC,YAAY,EAAE,CAAC;gBACpB,KAAK,GAAG,MAAM,EAAE,CAAC,YAAY,CAAC,UAAU,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;YACjE,CAAC;iBAAM,CAAC;gBACN,MAAM,GAAG,GAAG,MAAM,EAAE,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;gBAC1C,KAAK,GAAG,eAAe,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC;YACvE,CAAC;YAED,IAAI,OAAO,CAAC,IAAI;gBAAE,KAAK,GAAG,SAAS,CAAC,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;YACzD,IAAI,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;gBAClD,MAAM,KAAK,GAAG,OAAO,CAAC,MAAM,IAAI,CAAC,CAAC;gBAClC,MAAM,GAAG,GAAG,KAAK,GAAG,CAAC,OAAO,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,CAAC,CAAC;gBACpD,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;YAClC,CAAC;YAED,OAAO,KAAK,CAAC;QACf,CAAC;QAED,KAAK,CAAC,SAAS,CAAC,UAAkB,EAAE,EAAU,EAAE,IAAgB,EAAE,MAAe;YAC/E,MAAM,MAAM,GAAG,cAAc,CAAC,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,CAAC;YAC9C,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,IAAI,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;YAClD,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;gBAAE,OAAO,IAAI,CAAC;YAEtC,MAAM,UAAU,GAAG,EAAE,GAAG,IAAI,EAAE,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,CAAC;YACpE,MAAM,EAAE,CAAC,MAAM,CAAC,UAAU,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC;YAChD,OAAO,EAAE,GAAG,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,UAAU,EAAO,CAAC;QAC/C,CAAC;QAED,KAAK,CAAC,UAAU,CAAC,UAAkB,EAAE,MAAsB,EAAE,IAAgB,EAAE,MAAe;YAC5F,MAAM,UAAU,GAAG,cAAc,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;YAClD,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,UAAU,EAAE,EAAE,EAAE,MAAM,CAAC,CAAC;YAClE,MAAM,UAAU,GAAG,EAAE,GAAG,IAAI,EAAE,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,CAAC;YAEpE,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;gBACzB,MAAM,EAAE,CAAC,MAAM,CAAC,UAAU,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,EAAE,UAAU,CAAC,CAAC;YAC3D,CAAC;YACD,OAAO,KAAK,CAAC,MAAM,CAAC;QACtB,CAAC;QAED,KAAK,CAAC,SAAS,CAAC,UAAkB,EAAE,EAAU,EAAE,MAAe;YAC7D,MAAM,MAAM,GAAG,cAAc,CAAC,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,CAAC;YAC9C,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,IAAI,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;YAClD,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;gBAAE,OAAO,IAAI,CAAC;YAEtC,IAAI,UAAU,EAAE,CAAC;gBACf,MAAM,EAAE,CAAC,MAAM,CAAC,UAAU,EAAE,MAAM,EAAE,EAAE,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;gBAC7E,OAAO,OAAO,CAAC,CAAC,CAAM,CAAC;YACzB,CAAC;iBAAM,CAAC;gBACN,MAAM,EAAE,CAAC,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;gBACpC,OAAO,OAAO,CAAC,CAAC,CAAM,CAAC;YACzB,CAAC;QACH,CAAC;QAED,KAAK,CAAC,UAAU,CAAC,UAAkB,EAAE,MAAsB,EAAE,MAAe;YAC1E,MAAM,UAAU,GAAG,cAAc,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;YAClD,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,UAAU,EAAE,EAAE,EAAE,MAAM,CAAC,CAAC;YAElE,IAAI,UAAU,EAAE,CAAC;gBACf,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;oBACzB,MAAM,EAAE,CAAC,MAAM,CAAC,UAAU,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;gBACxF,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,MAAM,EAAE,CAAC,MAAM,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;YAC1C,CAAC;YACD,OAAO,KAAK,CAAC,MAAM,CAAC;QACtB,CAAC;QAED,KAAK,CAAC,OAAO,CAAC,UAAkB,EAAE,EAAU,EAAE,MAAe;YAC3D,IAAI,CAAC,UAAU;gBAAE,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;YAC5D,MAAM,MAAM,GAAG,cAAc,CAAC,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,CAAC,CAAC;YACxE,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,IAAI,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;YAClD,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;gBAAE,OAAO,IAAI,CAAC;YAEtC,qDAAqD;YACrD,MAAM,UAAU,GAAG,EAAE,GAAG,OAAO,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,CAAC;YAC3F,MAAM,EAAE,CAAC,MAAM,CAAC,UAAU,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC;YAChD,OAAO,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,EAAE,MAAM,CAAC,CAAC;QAC9C,CAAC;QAED,KAAK,CAAC,KAAK,CAAC,UAAkB,EAAE,SAAyB,EAAE,EAAE,MAAe;YAC1E,MAAM,UAAU,GAAG,cAAc,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;YAClD,MAAM,GAAG,GAAG,MAAM,EAAE,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;YAC1C,OAAO,eAAe,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC;QAC7E,CAAC;QAED,KAAK,CAAC,MAAM,CAAC,UAAkB,EAAE,MAAsB,EAAE,MAAe;YACtE,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;YAC3D,OAAO,KAAK,GAAG,CAAC,CAAC;QACnB,CAAC;QAED,KAAK,CAAC,QAAQ,CACZ,UAAkB,EAClB,SAAyB,EAAE,EAC3B,OAAe,CAAC,EAChB,QAAgB,YAAY,EAC5B,MAAe;YAEf,MAAM,MAAM,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC;YAClC,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,MAAM,CAAC,CAAC;YAC7E,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;YAE3D,OAAO;gBACL,KAAK;gBACL,KAAK;gBACL,IAAI;gBACJ,KAAK;gBACL,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;gBACpC,OAAO,EAAE,IAAI,GAAG,KAAK,GAAG,KAAK;gBAC7B,OAAO,EAAE,IAAI,GAAG,CAAC;aAClB,CAAC;QACJ,CAAC;KACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"crud.js","sourceRoot":"","sources":["../../curd/crud.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,14 +1,23 @@
1
1
  {
2
2
  "name": "dolphin-server-modules",
3
- "version": "1.0.6",
3
+ "version": "1.1.1",
4
+ "homepage": "https://github.com/Phuyalshankar/dolphin-server-modules#readme",
4
5
  "description": "Core utility modules for Auth, CRUD, and Controllers",
5
6
  "main": "dist/index.js",
6
7
  "types": "dist/index.d.ts",
8
+ "files": [
9
+ "dist",
10
+ "README.md",
11
+ "LICENSE",
12
+ "TUTORIAL_NEPALI.md",
13
+ "DOLPHIN_MASTER_GUIDE_NEPALI.md"
14
+ ],
7
15
  "exports": {
8
16
  ".": "./dist/index.js",
9
17
  "./auth": "./dist/auth/auth.js",
10
18
  "./controller": "./dist/controller/controller.js",
11
19
  "./crud": "./dist/curd/crud.js",
20
+ "./curd": "./dist/curd/crud.js",
12
21
  "./middleware/zod": "./dist/middleware/zod.js",
13
22
  "./adapters/mongoose": "./dist/adapters/mongoose/index.js",
14
23
  "./server": "./dist/server/server.js",
package/TUTORIAL.md DELETED
@@ -1,121 +0,0 @@
1
- # Dolphin Framework Tutorial 🐬
2
-
3
- Welcome to the official tutorial for the **Dolphin Framework**. This guide will take you from zero to a production-ready API using our native, high-performance modules.
4
-
5
- ---
6
-
7
- ## 1. Project Setup
8
- Create a new directory and initialize your project:
9
- ```bash
10
- mkdir my-dolphin-app && cd my-dolphin-app
11
- npm init -y
12
- npm install dolphin-server-modules mongoose zod
13
- ```
14
-
15
- ---
16
-
17
- ## 2. Database Setup (Mongoose)
18
- Define your models using Mongoose:
19
- ```typescript
20
- // models.ts
21
- import mongoose from 'mongoose';
22
-
23
- const UserSchema = new mongoose.Schema({
24
- email: { type: String, required: true, unique: true },
25
- password: { type: String, required: true }
26
- });
27
-
28
- export const User = mongoose.model('User', UserSchema);
29
- ```
30
-
31
- ---
32
-
33
- ## 3. Initialize Dolphin
34
- Create your main entry point and connect the components:
35
- ```typescript
36
- // index.ts
37
- import { createDolphinServer } from 'dolphin-server-modules/server';
38
- import { createMongooseAdapter } from 'dolphin-server-modules/adapters/mongoose';
39
- import { createAuth } from 'dolphin-server-modules/auth';
40
- import { User } from './models';
41
-
42
- // 1. Setup Adapter
43
- const db = createMongooseAdapter({ User });
44
-
45
- // 2. Setup Auth
46
- const auth = createAuth({ secret: 'SUPER_SECRET' });
47
-
48
- // 3. Setup Server
49
- const app = createDolphinServer();
50
- ```
51
-
52
- ---
53
-
54
- ## 4. Routing with Context (ctx)
55
- Dolphin uses a unified `ctx` object for ultra-clean handlers.
56
-
57
- ```typescript
58
- // Simple Route
59
- app.get('/', (ctx) => {
60
- ctx.json({ message: "Welcome to Dolphin!" });
61
- });
62
-
63
- // Dynamic Route with Params
64
- app.get('/users/:id', (ctx) => {
65
- const { id } = ctx.params;
66
- ctx.json({ userId: id });
67
- });
68
-
69
- // Post Request with Body
70
- app.post('/echo', (ctx) => {
71
- ctx.json({ youSent: ctx.body });
72
- });
73
- ```
74
-
75
- ---
76
-
77
- ## 5. Adding Authentication Middleware
78
- Secure your routes with the `auth` module:
79
-
80
- ```typescript
81
- // Protecting a route
82
- app.get('/profile', auth.middleware(), (ctx) => {
83
- // ctx.req.user is automatically populated
84
- ctx.json({ user: ctx.req.user });
85
- });
86
- ```
87
-
88
- ---
89
-
90
- ## 6. Global Middleware (Universal Support)
91
- Dolphin is unique because it supports both native Context-based and standard Express-based middlewares.
92
-
93
- ```typescript
94
- // 1. Dolphin Context Style
95
- app.use((ctx, next) => {
96
- console.log(`${ctx.req.method} ${ctx.req.url}`);
97
- next();
98
- });
99
-
100
- // 2. Standard Express Style (CORS, Helmet, etc.)
101
- import cors from 'cors';
102
- app.use(cors()); // No wrapper needed!
103
- ```
104
-
105
- ---
106
-
107
- ## 7. Starting the Server
108
- ```typescript
109
- app.listen(3000, () => {
110
- console.log("Dolphin is swimming on http://localhost:3000 🐬");
111
- });
112
- ```
113
-
114
- ---
115
-
116
- ## 🚀 Performance Tips
117
- - Use **Context (ctx)** directly for JSON responses.
118
- - Keep your routes organized using prefixing (coming in v1.1.0).
119
- - Use the **Zod Middleware** for automatic type-safe validation.
120
-
121
- Happy Coding!
@@ -1,142 +0,0 @@
1
- import type { Model } from 'mongoose';
2
-
3
- export interface MongooseAdapterConfig {
4
- User: Model<any>;
5
- RefreshToken: Model<any>;
6
- models?: Record<string, Model<any>>;
7
- }
8
-
9
- export function createMongooseAdapter(config: MongooseAdapterConfig) {
10
- // Map MongoDB document to the standard BaseDocument shape
11
- const mapDoc = (doc: any) => {
12
- if (!doc) return null;
13
- const obj = doc.toObject && typeof doc.toObject === 'function' ? doc.toObject() : { ...doc };
14
- if (obj._id) {
15
- obj.id = obj._id.toString();
16
- delete obj._id;
17
- }
18
- delete obj.__v;
19
- return obj;
20
- };
21
-
22
- // Convert standard QueryFilter to Mongoose Query format
23
- const mapQuery = (query: any) => {
24
- if (!query) return {};
25
- const parsed: any = {};
26
- for (const [key, val] of Object.entries(query)) {
27
- if (key === 'id') {
28
- parsed['_id'] = val;
29
- } else if (key === '$and' || key === '$or') {
30
- parsed[key] = (val as any[]).map(mapQuery);
31
- } else if (typeof val === 'object' && val !== null && !Array.isArray(val)) {
32
- const ops: any = {};
33
- for (const [op, opVal] of Object.entries(val)) {
34
- if (op === '$like') {
35
- ops['$regex'] = opVal;
36
- ops['$options'] = 'i';
37
- } else {
38
- ops[op] = opVal;
39
- }
40
- }
41
- parsed[key] = ops;
42
- } else {
43
- parsed[key] = val;
44
- }
45
- }
46
- return parsed;
47
- };
48
-
49
- // Convert standard sorting to Mongoose sort format
50
- const mapSort = (sort?: Record<string, 'asc' | 'desc'>) => {
51
- if (!sort) return undefined;
52
- const result: Record<string, 1 | -1> = {};
53
- for (const [k, v] of Object.entries(sort)) {
54
- result[k] = v === 'asc' ? 1 : -1;
55
- }
56
- return result;
57
- };
58
-
59
- // Helper to fetch generic CRUD models
60
- const getModel = (collection: string): Model<any> => {
61
- if (!config.models || !config.models[collection]) {
62
- throw new Error(`Model for collection '${collection}' not found in MongooseAdapterConfig`);
63
- }
64
- return config.models[collection];
65
- };
66
-
67
- return {
68
- // ==========================================
69
- // AUTHENTICATION ADAPTER METHODS
70
- // ==========================================
71
- async createUser(data: any) {
72
- const user = await config.User.create(data);
73
- return mapDoc(user);
74
- },
75
- async findUserByEmail(email: string) {
76
- const user = await config.User.findOne({ email });
77
- return mapDoc(user);
78
- },
79
- async findUserById(id: string) {
80
- const user = await config.User.findById(id);
81
- return mapDoc(user);
82
- },
83
- async updateUser(id: string, data: any) {
84
- const user = await config.User.findByIdAndUpdate(id, data, { new: true });
85
- return mapDoc(user);
86
- },
87
- async saveRefreshToken(data: any) {
88
- await config.RefreshToken.create(data);
89
- },
90
- async findRefreshToken(token: string) {
91
- const rt = await config.RefreshToken.findOne({ token });
92
- return mapDoc(rt);
93
- },
94
- async deleteRefreshToken(token: string) {
95
- await config.RefreshToken.deleteOne({ token });
96
- },
97
-
98
- // ==========================================
99
- // CRUD ADAPTER METHODS
100
- // ==========================================
101
- async create(collection: string, data: any) {
102
- const Model = getModel(collection);
103
- const doc = await Model.create(data);
104
- return mapDoc(doc);
105
- },
106
- async read(collection: string, query: any) {
107
- const Model = getModel(collection);
108
- const docs = await Model.find(mapQuery(query));
109
- return docs.map(mapDoc);
110
- },
111
- async update(collection: string, query: any, data: any) {
112
- const Model = getModel(collection);
113
- await Model.updateMany(mapQuery(query), data);
114
-
115
- // Return updated documents if we can map them back, otherwise minimal info
116
- // Since updateMany doesn't return the updated docs in mongoose, we can just return a generic success object
117
- // or fetch them. The interface expects Promise<any>. We will fetch them to match typical behavior.
118
- const docs = await Model.find(mapQuery({ ...query, ...data }));
119
- return docs.map(mapDoc);
120
- },
121
- async delete(collection: string, query: any) {
122
- const Model = getModel(collection);
123
- await Model.deleteMany(mapQuery(query));
124
- return { deleted: true };
125
- },
126
- async advancedRead(collection: string, query: any, options: any) {
127
- const Model = getModel(collection);
128
- let mQuery = Model.find(mapQuery(query));
129
- if (options.sort) {
130
- mQuery = mQuery.sort(mapSort(options.sort));
131
- }
132
- if (options.offset !== undefined) {
133
- mQuery = mQuery.skip(options.offset);
134
- }
135
- if (options.limit !== undefined) {
136
- mQuery = mQuery.limit(options.limit);
137
- }
138
- const docs = await mQuery;
139
- return docs.map(mapDoc);
140
- }
141
- };
142
- }