dolphin-server-modules 1.3.6 → 1.3.8

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.
@@ -20,6 +20,8 @@
20
20
  - [१२. टेस्टिङ र डेभप्स (Testing & DevOps)](#१२-टेस्टिङ-र-डेभप्स-testing--devops)
21
21
  - [१३. भविष्य र योगदान (Future Roadmap)](#१३-भविष्य-र-योगदान-future-roadmap)
22
22
  - [१४. रियलटाइम र IoT मास्टरक्लास (Realtime & IoT Masterclass) [NEW]](#१४-रियलटाइम-र-iot-मास्टरक्लास-realtime--iot-masterclass-new)
23
+ - [१५. इन्डिपेन्डेन्ट राउटिङ मास्टरक्लास (Independent Routing) [NEW]](#१५-इन्डिपेन्डेन्ट-राउटिङ-मास्टरक्लास-independent-routing-new)
24
+ - [१६. स्वतन्त्र अटो-स्वैगर जेनेरेसन (Independent Auto-Swagger) [NEW]](#१६-स्वतन्त्र-अटो-स्वैगर-जेनेरेसन-independent-auto-swagger-new)
23
25
 
24
26
  ---
25
27
 
@@ -589,6 +591,66 @@ app.use('/users', userRouter); // अब यो /users/profile मा चल्
589
591
 
590
592
  ---
591
593
 
594
+ ## १६. स्वतन्त्र अटो-स्वैगर जेनेरेसन (Independent Auto-Swagger) [NEW]
595
+
596
+ API बनाउँदा सबैभन्दा अल्छीलाग्दो काम भनेको त्यसको डकुमेन्टेसन (Swagger/OpenAPI docs) हातैले लेख्नु हो। Dolphin ले यसलाई १००% अटोमेटिक र **Framework Independent** बनाइदिएको छ।
597
+
598
+ ### १६.१ यो किन विशेष छ?
599
+ यसले तपाईँको `Zod` स्किमालाई सिधै पढेर OpenAPI को स्ट्यान्डर्ड JSON निकाल्छ। यसको लागि तपाईँले कुनै मिडलवेयर (`app.use`) सेटअप गरिरहनु पर्दैन। यो जुनसुकै फ्रेमवर्क (Next.js, Express, Fastify, Dolphin) मा काम गर्छ।
600
+
601
+ ### १६.२ कसरी प्रयोग गर्ने?
602
+ ```typescript
603
+ import { z } from 'zod';
604
+ import { generateSwagger, serveSwaggerUI } from 'dolphin-server-modules/swagger';
605
+ import { createDolphinServer } from 'dolphin-server-modules/server';
606
+
607
+ const app = createDolphinServer();
608
+
609
+ // १. Zod Schema बनाउने
610
+ const UserSchema = z.object({
611
+ name: z.string(),
612
+ email: z.string().email(),
613
+ age: z.number().optional()
614
+ });
615
+
616
+ // २. Swagger Config तयार गर्ने
617
+ const apiDocs = generateSwagger({
618
+ title: "DolphinStore API",
619
+ version: "1.0.0",
620
+ description: "E-Commerce Backend API Provider",
621
+ modules: [
622
+ {
623
+ path: "/users",
624
+ method: "post",
625
+ schema: UserSchema, // बडी रिक्वेस्टको लागि (Body)
626
+ summary: "Create User",
627
+ description: "Registers a new user in the system.",
628
+ tags: ["Users"]
629
+ }
630
+ ]
631
+ });
632
+
633
+ // ३. डकुमेन्टेसन सर्भ गर्ने (Swagger UI सँगै)
634
+ app.get('/docs', (ctx) => {
635
+ const html = serveSwaggerUI(apiDocs, "DolphinStore API Docs");
636
+ return ctx.html(html); // सिधै सुन्दर UI देखिन्छ!
637
+ });
638
+
639
+ // ४. JSON मात्र चाहियो भने (फिल्नेटर वा पोस्टम्यानको लागि)
640
+ app.get('/docs/json', (ctx) => ctx.json(apiDocs));
641
+
642
+ app.listen(3000, () => console.log('Swagger UI is live at http://localhost:3000/docs'));
643
+ ```
644
+
645
+ ### १६.३ यसले के-के सपोर्ट गर्छ?
646
+ - **Zod Types:** `string`, `number`, `boolean`, `array`, `object`, `enum`, `optional()`, र `nullable()` लाई राम्रोसँग बुझ्छ।
647
+ - **Path/Query Params:** `modules` भित्र `params: { id: "string" }` जस्ता कुराहरू सपोर्ट गर्छ।
648
+ - **Response Schema:** `responseSchema: UserSchema` दिएर सफल रेस्पोन्स कस्तो हुन्छ भन्ने देखाउन मिल्छ।
649
+
650
+ यति सेटअप गरेपछि, तपाईँको कोड परिवर्तन हुने बित्तिकै तपाईँको Swagger Docs आफैँ अपडेट हुन्छ!
651
+
652
+ ---
653
+
592
654
  ## निष्कर्ष (Conclusion)
593
655
 
594
656
  बधाई छ! तपाईँले Dolphin Framework को **Master Guide** को अन्त्य सम्म पढ्नुभयो। अब तपाईँ कुनै पनि जटिल ब्याकइन्ड सिस्टम Dolphin प्रयोग गरेर बनाउन पूर्ण सक्षम हुनुहुन्छ।
@@ -597,3 +659,5 @@ app.use('/users', userRouter); // अब यो /users/profile मा चल्
597
659
 
598
660
  **Happy Coding! 🐬🇳🇵**
599
661
  **नेपालबाट विश्वस्तरको सफ्टवेयर बनाऔँ!**
662
+
663
+
package/README.md CHANGED
@@ -72,6 +72,7 @@ rt.subscribe('factory/machine/+', (data) => {
72
72
  | **Auth** | `/auth` | Argon2/JWT based secure auth with 2FA support. |
73
73
  | **Realtime** | `/realtime` | Pub/Sub engine with `TopicTrie` & Binary Codecs. |
74
74
  | **Validation** | `/middleware/zod` | Type-safe validation for Express, Next.js, and Dolphin. |
75
+ | **Swagger Docs** | `/swagger` | Auto-generated OpenAPI docs from Zod schemas (UI included). |
75
76
  | **IoT Plugins** | `/realtime/plugins` | Native parsers for HL7, Modbus, and DICOM. |
76
77
  | **DB Adapters** | `/adapters` | Mongoose and SQL adapters for rapid CRUD. |
77
78
 
@@ -105,8 +106,8 @@ mainApp.use('/api/v1', apiV1); // Accessible at /api/v1/status
105
106
  ## 🗺️ Roadmap
106
107
  - [x] Universal Plugin System (HL7/Modbus/Binary)
107
108
  - [x] Recursive Sub-routing
109
+ - [x] **Auto-Doc**: Automatic Swagger/OpenAPI generation from Zod schemas.
108
110
  - [ ] **Dolphin CLI**: `npx dolphin init` for automated scaffolding.
109
- - [ ] **Auto-Doc**: Automatic Swagger/OpenAPI generation from Zod schemas.
110
111
 
111
112
  ---
112
113
 
@@ -3,6 +3,10 @@ export interface MongooseAdapterConfig {
3
3
  User: Model<any>;
4
4
  RefreshToken: Model<any>;
5
5
  models?: Record<string, Model<any>>;
6
+ leanByDefault?: boolean;
7
+ maxLimit?: number;
8
+ softDelete?: boolean;
9
+ softDeleteField?: string;
6
10
  }
7
11
  export declare function createMongooseAdapter(config: MongooseAdapterConfig): {
8
12
  createUser(data: any): Promise<any>;
@@ -12,11 +16,24 @@ export declare function createMongooseAdapter(config: MongooseAdapterConfig): {
12
16
  saveRefreshToken(data: any): Promise<void>;
13
17
  findRefreshToken(token: string): Promise<any>;
14
18
  deleteRefreshToken(token: string): Promise<void>;
15
- create(collection: string, data: any): Promise<any>;
16
- read(collection: string, query: any): Promise<any[]>;
17
- update(collection: string, query: any, data: any): Promise<any[]>;
18
- delete(collection: string, query: any): Promise<{
19
- deleted: boolean;
19
+ create(collection: string, data: any, userId?: string): Promise<any>;
20
+ readOne(collection: string, id: string, userId?: string): Promise<any>;
21
+ read(collection: string, query?: any, options?: any, userId?: string): Promise<any>;
22
+ updateOne(collection: string, id: string, data: any, userId?: string): Promise<any>;
23
+ updateMany(collection: string, query: any, data: any, userId?: string): Promise<number>;
24
+ deleteOne(collection: string, id: string, userId?: string): Promise<any>;
25
+ deleteMany(collection: string, query: any, userId?: string): Promise<number>;
26
+ restore(collection: string, id: string, userId?: string): Promise<any>;
27
+ paginate(collection: string, filter?: any, page?: number, limit?: number, userId?: string): Promise<{
28
+ items: any;
29
+ total: number;
30
+ page: number;
31
+ limit: number;
32
+ totalPages: number;
33
+ hasNext: boolean;
34
+ hasPrev: boolean;
20
35
  }>;
21
- advancedRead(collection: string, query: any, options: any): Promise<any[]>;
36
+ advancedRead(collection: string, query?: any, options?: any, userId?: string): Promise<any>;
37
+ count(collection: string, filter?: any, userId?: string): Promise<number>;
38
+ exists(collection: string, filter?: any, userId?: string): Promise<boolean>;
22
39
  };
@@ -2,11 +2,12 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.createMongooseAdapter = createMongooseAdapter;
4
4
  function createMongooseAdapter(config) {
5
- // Map MongoDB document to the standard BaseDocument shape
5
+ const { User, RefreshToken, models = {}, leanByDefault = true, maxLimit = 100, softDelete = false, softDeleteField = 'deletedAt' } = config;
6
+ // Fast document mapper
6
7
  const mapDoc = (doc) => {
7
8
  if (!doc)
8
9
  return null;
9
- const obj = doc.toObject && typeof doc.toObject === 'function' ? doc.toObject() : { ...doc };
10
+ const obj = doc.toObject?.() ?? { ...doc };
10
11
  if (obj._id) {
11
12
  obj.id = obj._id.toString();
12
13
  delete obj._id;
@@ -14,38 +15,32 @@ function createMongooseAdapter(config) {
14
15
  delete obj.__v;
15
16
  return obj;
16
17
  };
17
- // Convert standard QueryFilter to Mongoose Query format
18
- const mapQuery = (query) => {
19
- if (!query)
18
+ // Fast query mapper
19
+ const mapQuery = (query = {}) => {
20
+ if (!query || typeof query !== 'object')
20
21
  return {};
21
- const parsed = {};
22
- for (const [key, val] of Object.entries(query)) {
23
- if (key === 'id') {
24
- parsed['_id'] = val;
25
- }
26
- else if (key === '$and' || key === '$or') {
27
- parsed[key] = val.map(mapQuery);
28
- }
29
- else if (typeof val === 'object' && val !== null && !Array.isArray(val)) {
30
- const ops = {};
31
- for (const [op, opVal] of Object.entries(val)) {
32
- if (op === '$like') {
33
- ops['$regex'] = opVal;
34
- ops['$options'] = 'i';
35
- }
36
- else {
37
- ops[op] = opVal;
38
- }
39
- }
40
- parsed[key] = ops;
41
- }
42
- else {
43
- parsed[key] = val;
22
+ const parsed = { ...query };
23
+ if (parsed.id) {
24
+ parsed._id = parsed.id;
25
+ delete parsed.id;
26
+ }
27
+ // Handle $like
28
+ for (const key in parsed) {
29
+ if (parsed[key] && typeof parsed[key] === 'object' && parsed[key].$like) {
30
+ parsed[key] = { $regex: parsed[key].$like, $options: 'i' };
44
31
  }
45
32
  }
33
+ // Handle $and / $or recursively
34
+ if (parsed.$and)
35
+ parsed.$and = parsed.$and.map(mapQuery);
36
+ if (parsed.$or)
37
+ parsed.$or = parsed.$or.map(mapQuery);
38
+ // Auto exclude soft deleted
39
+ if (softDelete && parsed[softDeleteField] === undefined) {
40
+ parsed[softDeleteField] = null;
41
+ }
46
42
  return parsed;
47
43
  };
48
- // Convert standard sorting to Mongoose sort format
49
44
  const mapSort = (sort) => {
50
45
  if (!sort)
51
46
  return undefined;
@@ -55,99 +50,208 @@ function createMongooseAdapter(config) {
55
50
  }
56
51
  return result;
57
52
  };
58
- // Helper to fetch generic CRUD models
59
53
  const getModel = (collection) => {
60
- if (!config.models || !config.models[collection]) {
61
- throw new Error(`Model for collection '${collection}' not found in MongooseAdapterConfig`);
62
- }
63
- return config.models[collection];
54
+ if (collection === 'User')
55
+ return User;
56
+ if (collection === 'RefreshToken')
57
+ return RefreshToken;
58
+ if (models[collection])
59
+ return models[collection];
60
+ throw new Error(`Model '${collection}' not found`);
64
61
  };
65
62
  const adapter = {
66
- // ==========================================
67
- // AUTHENTICATION ADAPTER METHODS
68
- // ==========================================
63
+ // ==================== AUTH METHODS ====================
69
64
  async createUser(data) {
70
- const user = await config.User.create(data);
65
+ const user = await User.create(data);
71
66
  return mapDoc(user);
72
67
  },
73
68
  async findUserByEmail(email) {
74
- const user = await config.User.findOne({ email });
69
+ const user = await User.findOne({ email }).lean(leanByDefault);
75
70
  return mapDoc(user);
76
71
  },
77
72
  async findUserById(id) {
78
- const user = await config.User.findById(id);
73
+ const user = await User.findById(id).lean(leanByDefault);
79
74
  return mapDoc(user);
80
75
  },
81
76
  async updateUser(id, data) {
82
- const user = await config.User.findByIdAndUpdate(id, data, { new: true });
77
+ const user = await User.findByIdAndUpdate(id, data, { new: true }).lean(leanByDefault);
83
78
  return mapDoc(user);
84
79
  },
85
80
  async saveRefreshToken(data) {
86
- await config.RefreshToken.create(data);
81
+ await RefreshToken.create(data);
87
82
  },
88
83
  async findRefreshToken(token) {
89
- const rt = await config.RefreshToken.findOne({ token });
84
+ const rt = await RefreshToken.findOne({ token }).lean(leanByDefault);
90
85
  return mapDoc(rt);
91
86
  },
92
87
  async deleteRefreshToken(token) {
93
- await config.RefreshToken.deleteOne({ token });
88
+ await RefreshToken.deleteOne({ token });
94
89
  },
95
- // ==========================================
96
- // CRUD ADAPTER METHODS
97
- // ==========================================
98
- async create(collection, data) {
90
+ // ==================== CRUD METHODS ====================
91
+ // Create
92
+ async create(collection, data, userId) {
99
93
  const Model = getModel(collection);
100
- const doc = await Model.create(data);
94
+ const docData = { ...data };
95
+ if (userId)
96
+ docData.userId = userId;
97
+ const doc = await Model.create(docData);
101
98
  return mapDoc(doc);
102
99
  },
103
- async read(collection, query) {
100
+ // Read one
101
+ async readOne(collection, id, userId) {
104
102
  const Model = getModel(collection);
105
- const docs = await Model.find(mapQuery(query));
106
- return docs.map(mapDoc);
103
+ const query = { _id: id };
104
+ if (userId)
105
+ query.userId = userId;
106
+ if (softDelete)
107
+ query[softDeleteField] = null;
108
+ const doc = await Model.findOne(query).lean(leanByDefault);
109
+ return mapDoc(doc);
107
110
  },
108
- async update(collection, query, data) {
111
+ // Read many
112
+ async read(collection, query = {}, options = {}, userId) {
109
113
  const Model = getModel(collection);
110
- await Model.updateMany(mapQuery(query), data);
111
- // Return updated documents if we can map them back, otherwise minimal info
112
- // Since updateMany doesn't return the updated docs in mongoose, we can just return a generic success object
113
- // or fetch them. The interface expects Promise<any>. We will fetch them to match typical behavior.
114
- const docs = await Model.find(mapQuery({ ...query, ...data }));
114
+ const filter = mapQuery(query);
115
+ if (userId)
116
+ filter.userId = userId;
117
+ let queryBuilder = Model.find(filter).lean(leanByDefault);
118
+ if (options.sort)
119
+ queryBuilder = queryBuilder.sort(mapSort(options.sort));
120
+ if (options.select)
121
+ queryBuilder = queryBuilder.select(options.select);
122
+ if (options.offset)
123
+ queryBuilder = queryBuilder.skip(options.offset);
124
+ const limit = options.limit ? Math.min(options.limit, maxLimit) : undefined;
125
+ if (limit)
126
+ queryBuilder = queryBuilder.limit(limit);
127
+ const docs = await queryBuilder;
115
128
  return docs.map(mapDoc);
116
129
  },
117
- async delete(collection, query) {
130
+ // Update one
131
+ async updateOne(collection, id, data, userId) {
118
132
  const Model = getModel(collection);
119
- await Model.deleteMany(mapQuery(query));
120
- return { deleted: true };
133
+ const query = { _id: id };
134
+ if (userId)
135
+ query.userId = userId;
136
+ if (softDelete)
137
+ query[softDeleteField] = null;
138
+ const doc = await Model.findOneAndUpdate(query, { ...data, updatedAt: new Date() }, { new: true }).lean(leanByDefault);
139
+ return mapDoc(doc);
121
140
  },
122
- async advancedRead(collection, query, options) {
141
+ // Update many
142
+ async updateMany(collection, query, data, userId) {
123
143
  const Model = getModel(collection);
124
- let mQuery = Model.find(mapQuery(query));
125
- if (options.sort) {
126
- mQuery = mQuery.sort(mapSort(options.sort));
144
+ const filter = mapQuery(query);
145
+ if (userId)
146
+ filter.userId = userId;
147
+ const result = await Model.updateMany(filter, { ...data, updatedAt: new Date() });
148
+ return result.modifiedCount;
149
+ },
150
+ // Delete one
151
+ async deleteOne(collection, id, userId) {
152
+ const Model = getModel(collection);
153
+ const query = { _id: id };
154
+ if (userId)
155
+ query.userId = userId;
156
+ if (softDelete) {
157
+ const doc = await Model.findOneAndUpdate(query, { [softDeleteField]: new Date(), updatedAt: new Date() }, { new: true }).lean(leanByDefault);
158
+ return mapDoc(doc);
127
159
  }
128
- if (options.offset !== undefined) {
129
- mQuery = mQuery.skip(options.offset);
160
+ else {
161
+ const doc = await Model.findOneAndDelete(query).lean(leanByDefault);
162
+ return mapDoc(doc);
130
163
  }
131
- if (options.limit !== undefined) {
132
- mQuery = mQuery.limit(options.limit);
164
+ },
165
+ // Delete many
166
+ async deleteMany(collection, query, userId) {
167
+ const Model = getModel(collection);
168
+ const filter = mapQuery(query);
169
+ if (userId)
170
+ filter.userId = userId;
171
+ if (softDelete) {
172
+ const result = await Model.updateMany(filter, { [softDeleteField]: new Date(), updatedAt: new Date() });
173
+ return result.modifiedCount;
133
174
  }
134
- const docs = await mQuery;
175
+ else {
176
+ const result = await Model.deleteMany(filter);
177
+ return result.deletedCount;
178
+ }
179
+ },
180
+ // Restore (soft delete only)
181
+ async restore(collection, id, userId) {
182
+ if (!softDelete)
183
+ throw new Error('Soft delete not enabled');
184
+ const Model = getModel(collection);
185
+ const query = { _id: id, [softDeleteField]: { $ne: null } };
186
+ if (userId)
187
+ query.userId = userId;
188
+ const doc = await Model.findOneAndUpdate(query, { [softDeleteField]: null, updatedAt: new Date() }, { new: true }).lean(leanByDefault);
189
+ return mapDoc(doc);
190
+ },
191
+ // Pagination
192
+ async paginate(collection, filter = {}, page = 1, limit = 20, userId) {
193
+ const Model = getModel(collection);
194
+ const query = mapQuery(filter);
195
+ if (userId)
196
+ query.userId = userId;
197
+ const safeLimit = Math.min(limit, maxLimit);
198
+ const skip = (page - 1) * safeLimit;
199
+ const [items, total] = await Promise.all([
200
+ Model.find(query).skip(skip).limit(safeLimit).lean(leanByDefault),
201
+ Model.countDocuments(query)
202
+ ]);
203
+ return {
204
+ items: items.map(mapDoc),
205
+ total,
206
+ page,
207
+ limit: safeLimit,
208
+ totalPages: Math.ceil(total / safeLimit),
209
+ hasNext: page * safeLimit < total,
210
+ hasPrev: page > 1
211
+ };
212
+ },
213
+ // Advanced read with full options
214
+ async advancedRead(collection, query = {}, options = {}, userId) {
215
+ const Model = getModel(collection);
216
+ let mQuery = Model.find(mapQuery(query));
217
+ if (userId)
218
+ mQuery = mQuery.where('userId', userId);
219
+ if (options.sort)
220
+ mQuery = mQuery.sort(mapSort(options.sort));
221
+ if (options.select)
222
+ mQuery = mQuery.select(options.select);
223
+ if (options.populate)
224
+ mQuery = mQuery.populate(options.populate);
225
+ if (options.offset !== undefined)
226
+ mQuery = mQuery.skip(options.offset);
227
+ const limit = options.limit ? Math.min(options.limit, maxLimit) : undefined;
228
+ if (limit)
229
+ mQuery = mQuery.limit(limit);
230
+ const docs = await mQuery.lean(leanByDefault);
135
231
  return docs.map(mapDoc);
232
+ },
233
+ // Count
234
+ async count(collection, filter = {}, userId) {
235
+ const Model = getModel(collection);
236
+ const query = mapQuery(filter);
237
+ if (userId)
238
+ query.userId = userId;
239
+ return await Model.countDocuments(query);
240
+ },
241
+ // Exists
242
+ async exists(collection, filter = {}, userId) {
243
+ const count = await this.count(collection, filter, userId);
244
+ return count > 0;
136
245
  }
137
246
  };
138
- // ✅ NEW: Attach model metadata for createCrudController(db.ModelName) support
247
+ // Attach model shortcuts
139
248
  if (config.models) {
140
249
  Object.keys(config.models).forEach((key) => {
141
250
  adapter[key] = { adapter, collection: key };
142
251
  });
143
252
  }
144
- // Also attach standard User/RefreshToken if they are not in models but passed in config
145
- if (config.User && (!config.models || !config.models['User'])) {
146
- adapter['User'] = { adapter, collection: 'User' };
147
- }
148
- if (config.RefreshToken && (!config.models || !config.models['RefreshToken'])) {
149
- adapter['RefreshToken'] = { adapter, collection: 'RefreshToken' };
150
- }
253
+ adapter.User = { adapter, collection: 'User' };
254
+ adapter.RefreshToken = { adapter, collection: 'RefreshToken' };
151
255
  return adapter;
152
256
  }
153
257
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../adapters/mongoose/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../adapters/mongoose/index.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -4,3 +4,4 @@ export { createCRUD, BaseDocument, QueryFilter, PaginationOptions, DatabaseAdapt
4
4
  export * from './server/server';
5
5
  export * from './router/router';
6
6
  export * from './realtime/index';
7
+ export * from './swagger/swagger';
package/dist/index.js CHANGED
@@ -27,4 +27,5 @@ __exportStar(require("./server/server"), exports);
27
27
  __exportStar(require("./router/router"), exports);
28
28
  // Re-export Realtime
29
29
  __exportStar(require("./realtime/index"), exports);
30
+ __exportStar(require("./swagger/swagger"), exports);
30
31
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,iBAAiB;AACjB,8CAA4B;AAC5B,uBAAuB;AACvB,0DAAwC;AACxC,8DAA8D;AAC9D,oCAMqB;AALnB,kGAAA,UAAU,OAAA;AAMZ,4BAA4B;AAC5B,kDAAgC;AAChC,kDAAgC;AAEhC,qBAAqB;AACrB,mDAAiC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,iBAAiB;AACjB,8CAA4B;AAC5B,uBAAuB;AACvB,0DAAwC;AACxC,8DAA8D;AAC9D,oCAMqB;AALnB,kGAAA,UAAU,OAAA;AAMZ,4BAA4B;AAC5B,kDAAgC;AAChC,kDAAgC;AAEhC,qBAAqB;AACrB,mDAAiC;AACjC,oDAAkC"}
@@ -0,0 +1,36 @@
1
+ import { z } from "zod";
2
+ export declare function zodToJsonSchema(schema: any): any;
3
+ export interface SwaggerConfig {
4
+ title: string;
5
+ version: string;
6
+ description?: string;
7
+ servers?: {
8
+ url: string;
9
+ description?: string;
10
+ }[];
11
+ modules: {
12
+ path: string;
13
+ method: "get" | "post" | "put" | "delete" | "patch";
14
+ summary?: string;
15
+ description?: string;
16
+ tags?: string[];
17
+ schema?: z.ZodTypeAny;
18
+ responseSchema?: z.ZodTypeAny;
19
+ params?: Record<string, "string" | "number" | "boolean">;
20
+ query?: Record<string, "string" | "number" | "boolean">;
21
+ }[];
22
+ }
23
+ export declare function generateSwagger(config: SwaggerConfig): {
24
+ openapi: string;
25
+ info: {
26
+ title: string;
27
+ version: string;
28
+ description: string;
29
+ };
30
+ servers: {
31
+ url: string;
32
+ description?: string;
33
+ }[];
34
+ paths: any;
35
+ };
36
+ export declare function serveSwaggerUI(swaggerJson: any, title?: string): string;
@@ -0,0 +1,152 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.zodToJsonSchema = zodToJsonSchema;
4
+ exports.generateSwagger = generateSwagger;
5
+ exports.serveSwaggerUI = serveSwaggerUI;
6
+ function zodToJsonSchema(schema) {
7
+ if (!schema || !schema._def)
8
+ return { type: "string" };
9
+ const typeName = schema._def.typeName || schema._def.type;
10
+ // Convert standard Zod names or Zod Lite names
11
+ const normalizedType = typeof typeName === 'string' ? typeName.replace('Zod', '').toLowerCase() : '';
12
+ if (normalizedType === "string") {
13
+ return { type: "string" };
14
+ }
15
+ else if (normalizedType === "number") {
16
+ return { type: "number" };
17
+ }
18
+ else if (normalizedType === "boolean") {
19
+ return { type: "boolean" };
20
+ }
21
+ else if (normalizedType === "array") {
22
+ return {
23
+ type: "array",
24
+ items: zodToJsonSchema(schema._def.type || schema._def.element)
25
+ };
26
+ }
27
+ else if (normalizedType === "object") {
28
+ const rawShape = schema._def.shape;
29
+ const shape = typeof rawShape === "function" ? rawShape() : rawShape;
30
+ const properties = {};
31
+ const required = [];
32
+ for (const [key, propSchema] of Object.entries(shape || {})) {
33
+ const propDef = propSchema._def;
34
+ let innerSchema = propSchema;
35
+ let isRequired = true;
36
+ const propType = propDef?.typeName || propDef?.type;
37
+ const normPropType = typeof propType === 'string' ? propType.replace('Zod', '').toLowerCase() : '';
38
+ if (normPropType === "optional" || normPropType === "nullable") {
39
+ isRequired = false;
40
+ innerSchema = propDef.innerType;
41
+ }
42
+ properties[key] = zodToJsonSchema(innerSchema);
43
+ if (isRequired)
44
+ required.push(key);
45
+ }
46
+ const schemaObj = { type: "object", properties };
47
+ if (required.length > 0)
48
+ schemaObj.required = required;
49
+ return schemaObj;
50
+ }
51
+ else if (normalizedType === "optional" || normalizedType === "nullable") {
52
+ return zodToJsonSchema(schema._def.innerType);
53
+ }
54
+ else if (normalizedType === "enum") {
55
+ return { type: "string", enum: schema._def.values || schema._def.entries };
56
+ }
57
+ return { type: "string" }; // default fallback
58
+ }
59
+ function generateSwagger(config) {
60
+ const paths = {};
61
+ for (const mod of config.modules) {
62
+ if (!paths[mod.path])
63
+ paths[mod.path] = {};
64
+ const operation = {
65
+ summary: mod.summary || `Endpoint for ${mod.path}`,
66
+ description: mod.description,
67
+ tags: mod.tags || ["API"],
68
+ responses: {
69
+ "200": {
70
+ description: "Successful response"
71
+ }
72
+ }
73
+ };
74
+ const parameters = [];
75
+ if (mod.params) {
76
+ for (const [k, v] of Object.entries(mod.params)) {
77
+ parameters.push({ name: k, in: "path", required: true, schema: { type: v } });
78
+ }
79
+ }
80
+ if (mod.query) {
81
+ for (const [k, v] of Object.entries(mod.query)) {
82
+ parameters.push({ name: k, in: "query", required: false, schema: { type: v } });
83
+ }
84
+ }
85
+ if (parameters.length > 0) {
86
+ operation.parameters = parameters;
87
+ }
88
+ if (mod.schema && ['post', 'put', 'patch'].includes(mod.method.toLowerCase())) {
89
+ operation.requestBody = {
90
+ required: true,
91
+ content: {
92
+ "application/json": {
93
+ schema: zodToJsonSchema(mod.schema)
94
+ }
95
+ }
96
+ };
97
+ }
98
+ if (mod.responseSchema) {
99
+ operation.responses["200"].content = {
100
+ "application/json": {
101
+ schema: zodToJsonSchema(mod.responseSchema)
102
+ }
103
+ };
104
+ }
105
+ paths[mod.path][mod.method.toLowerCase()] = operation;
106
+ }
107
+ return {
108
+ openapi: "3.0.0",
109
+ info: {
110
+ title: config.title,
111
+ version: config.version,
112
+ description: config.description || "Auto-generated API Docs",
113
+ },
114
+ servers: config.servers || [{ url: "/" }],
115
+ paths
116
+ };
117
+ }
118
+ function serveSwaggerUI(swaggerJson, title = 'API Documentation') {
119
+ return `
120
+ <!DOCTYPE html>
121
+ <html lang="en">
122
+ <head>
123
+ <meta charset="UTF-8">
124
+ <title>${title}</title>
125
+ <link rel="stylesheet" href="https://unpkg.com/swagger-ui-dist@4/swagger-ui.css" />
126
+ <style>
127
+ body { margin: 0; padding: 0; }
128
+ .swagger-ui .topbar { display: none; }
129
+ </style>
130
+ </head>
131
+ <body>
132
+ <div id="swagger-ui"></div>
133
+ <script src="https://unpkg.com/swagger-ui-dist@4/swagger-ui-bundle.js"></script>
134
+ <script>
135
+ window.onload = () => {
136
+ window.ui = SwaggerUIBundle({
137
+ spec: ${JSON.stringify(swaggerJson)},
138
+ dom_id: '#swagger-ui',
139
+ deepLinking: true,
140
+ presets: [
141
+ SwaggerUIBundle.presets.apis,
142
+ SwaggerUIBundle.SwaggerUIStandalonePreset
143
+ ],
144
+ layout: "BaseLayout"
145
+ });
146
+ };
147
+ </script>
148
+ </body>
149
+ </html>
150
+ `.trim();
151
+ }
152
+ //# sourceMappingURL=swagger.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"swagger.js","sourceRoot":"","sources":["../../swagger/swagger.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "dolphin-server-modules",
3
- "version": "1.3.6",
3
+ "version": "1.3.8",
4
4
  "homepage": "https://github.com/Phuyalshankar/dolphin-server-modules#readme",
5
5
  "description": "Core utility modules for Auth, CRUD, and Controllers",
6
6
  "main": "dist/index.js",
@@ -26,7 +26,8 @@
26
26
  "./realtime/core": "./dist/realtime/core.js",
27
27
  "./realtime/trie": "./dist/realtime/trie.js",
28
28
  "./realtime/codec": "./dist/realtime/codec.js",
29
- "./realtime/plugins": "./dist/realtime/plugins.js"
29
+ "./realtime/plugins": "./dist/realtime/plugins.js",
30
+ "./swagger": "./dist/swagger/swagger.js"
30
31
  },
31
32
  "scripts": {
32
33
  "build": "tsc",