nest-scramble 1.4.8 → 1.4.9

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.
@@ -4,6 +4,13 @@ export declare class DocsController {
4
4
  private openApiSpec;
5
5
  constructor(openApiSpec: any);
6
6
  getDocs(res: any): void;
7
+ getEndpointPage(res: any): void;
8
+ private extractEndpoints;
9
+ private generateMainPage;
10
+ private groupByTag;
11
+ private renderGroupedEndpoints;
12
+ private renderEndpointModals;
13
+ private formatJson;
7
14
  getOpenApiJson(res: any): void;
8
15
  getOpenApiJsonLegacy(res: any): void;
9
16
  getOpenApiSpec(): any;
@@ -1 +1 @@
1
- {"version":3,"file":"DocsController.d.ts","sourceRoot":"","sources":["../../src/controllers/DocsController.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,aAAa,aAAa,CAAC;AACxC,eAAO,MAAM,MAAM,wDAAyC,CAAC;AAE7D,qBAEa,cAAc;IAEU,OAAO,CAAC,WAAW;gBAAX,WAAW,EAAE,GAAG;IAI3D,OAAO,CAAQ,GAAG,EAAE,GAAG;IA0BvB,cAAc,CAAQ,GAAG,EAAE,GAAG;IAa9B,oBAAoB,CAAQ,GAAG,EAAE,GAAG;IAKpC,cAAc;CAGf"}
1
+ {"version":3,"file":"DocsController.d.ts","sourceRoot":"","sources":["../../src/controllers/DocsController.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,aAAa,aAAa,CAAC;AACxC,eAAO,MAAM,MAAM,wDAAyC,CAAC;AAE7D,qBAEa,cAAc;IAEU,OAAO,CAAC,WAAW;gBAAX,WAAW,EAAE,GAAG;IAI3D,OAAO,CAAQ,GAAG,EAAE,GAAG;IAQvB,eAAe,CAAQ,GAAG,EAAE,GAAG;IAO/B,OAAO,CAAC,gBAAgB;IA2BxB,OAAO,CAAC,gBAAgB;IA8YxB,OAAO,CAAC,UAAU;IAclB,OAAO,CAAC,sBAAsB;IAsB9B,OAAO,CAAC,oBAAoB;IAmE5B,OAAO,CAAC,UAAU;IAOlB,cAAc,CAAQ,GAAG,EAAE,GAAG;IAa9B,oBAAoB,CAAQ,GAAG,EAAE,GAAG;IAKpC,cAAc;CAGf"}
@@ -23,27 +23,539 @@ let DocsController = class DocsController {
23
23
  this.openApiSpec = openApiSpec;
24
24
  }
25
25
  getDocs(res) {
26
- const html = `<!DOCTYPE html>
26
+ const endpoints = this.extractEndpoints();
27
+ const html = this.generateMainPage(endpoints);
28
+ res.setHeader('Content-Type', 'text/html; charset=utf-8');
29
+ res.send(html);
30
+ }
31
+ getEndpointPage(res) {
32
+ const endpoints = this.extractEndpoints();
33
+ const html = this.generateMainPage(endpoints);
34
+ res.setHeader('Content-Type', 'text/html; charset=utf-8');
35
+ res.send(html);
36
+ }
37
+ extractEndpoints() {
38
+ const endpoints = [];
39
+ const paths = this.openApiSpec?.paths || {};
40
+ for (const [path, methods] of Object.entries(paths)) {
41
+ for (const [method, detailsRaw] of Object.entries(methods)) {
42
+ const details = detailsRaw;
43
+ if (['get', 'post', 'put', 'patch', 'delete'].includes(method.toLowerCase())) {
44
+ endpoints.push({
45
+ id: `${method}-${path}`.replace(/[^a-zA-Z0-9]/g, '-'),
46
+ method: method.toUpperCase(),
47
+ path,
48
+ summary: details.summary || '',
49
+ description: details.description || '',
50
+ tags: details.tags || [],
51
+ parameters: details.parameters || [],
52
+ requestBody: details.requestBody,
53
+ responses: details.responses || {},
54
+ operationId: details.operationId || `${method}-${path}`,
55
+ });
56
+ }
57
+ }
58
+ }
59
+ return endpoints;
60
+ }
61
+ generateMainPage(endpoints) {
62
+ const groupedEndpoints = this.groupByTag(endpoints);
63
+ return `<!DOCTYPE html>
27
64
  <html lang="en">
28
65
  <head>
29
- <title>API Documentation - Nest-Scramble</title>
30
- <meta charset="utf-8" />
31
- <meta name="viewport" content="width=device-width, initial-scale=1" />
66
+ <meta charset="UTF-8">
67
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
68
+ <title>${this.openApiSpec?.info?.title || 'API Documentation'}</title>
32
69
  <style>
33
- body {
34
- margin: 0;
70
+ * {
71
+ margin: 0;
35
72
  padding: 0;
36
- font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Helvetica Neue', sans-serif;
73
+ box-sizing: border-box;
74
+ }
75
+
76
+ body {
77
+ font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
78
+ background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
79
+ min-height: 100vh;
80
+ color: #1a202c;
81
+ }
82
+
83
+ .container {
84
+ max-width: 1400px;
85
+ margin: 0 auto;
86
+ padding: 2rem;
87
+ }
88
+
89
+ .header {
90
+ text-align: center;
91
+ color: white;
92
+ margin-bottom: 3rem;
93
+ animation: fadeInDown 0.6s ease-out;
94
+ }
95
+
96
+ .header h1 {
97
+ font-size: 2.5rem;
98
+ font-weight: 700;
99
+ margin-bottom: 0.5rem;
100
+ text-shadow: 0 2px 10px rgba(0,0,0,0.2);
101
+ }
102
+
103
+ .header p {
104
+ font-size: 1.1rem;
105
+ opacity: 0.95;
106
+ }
107
+
108
+ .search-box {
109
+ max-width: 600px;
110
+ margin: 0 auto 3rem;
111
+ animation: fadeIn 0.8s ease-out;
112
+ }
113
+
114
+ .search-input {
115
+ width: 100%;
116
+ padding: 1rem 1.5rem;
117
+ font-size: 1rem;
118
+ border: none;
119
+ border-radius: 12px;
120
+ background: white;
121
+ box-shadow: 0 10px 30px rgba(0,0,0,0.2);
122
+ transition: all 0.3s ease;
123
+ }
124
+
125
+ .search-input:focus {
126
+ outline: none;
127
+ box-shadow: 0 15px 40px rgba(0,0,0,0.3);
128
+ transform: translateY(-2px);
129
+ }
130
+
131
+ .endpoints-grid {
132
+ display: grid;
133
+ gap: 1.5rem;
134
+ animation: fadeInUp 0.8s ease-out;
135
+ }
136
+
137
+ .tag-section {
138
+ background: white;
139
+ border-radius: 16px;
140
+ padding: 2rem;
141
+ box-shadow: 0 10px 30px rgba(0,0,0,0.15);
142
+ transition: all 0.3s ease;
143
+ }
144
+
145
+ .tag-section:hover {
146
+ box-shadow: 0 15px 40px rgba(0,0,0,0.2);
147
+ transform: translateY(-4px);
148
+ }
149
+
150
+ .tag-title {
151
+ font-size: 1.5rem;
152
+ font-weight: 600;
153
+ margin-bottom: 1.5rem;
154
+ color: #2d3748;
155
+ display: flex;
156
+ align-items: center;
157
+ gap: 0.5rem;
158
+ }
159
+
160
+ .tag-badge {
161
+ background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
162
+ color: white;
163
+ padding: 0.25rem 0.75rem;
164
+ border-radius: 20px;
165
+ font-size: 0.875rem;
166
+ font-weight: 500;
167
+ }
168
+
169
+ .endpoint-list {
170
+ display: grid;
171
+ gap: 1rem;
172
+ }
173
+
174
+ .endpoint-card {
175
+ background: #f7fafc;
176
+ border-radius: 12px;
177
+ padding: 1.25rem;
178
+ cursor: pointer;
179
+ transition: all 0.3s ease;
180
+ border: 2px solid transparent;
181
+ text-decoration: none;
182
+ display: block;
183
+ }
184
+
185
+ .endpoint-card:hover {
186
+ background: white;
187
+ border-color: #667eea;
188
+ transform: translateX(8px);
189
+ box-shadow: 0 4px 12px rgba(102, 126, 234, 0.15);
190
+ }
191
+
192
+ .endpoint-header {
193
+ display: flex;
194
+ align-items: center;
195
+ gap: 1rem;
196
+ margin-bottom: 0.75rem;
197
+ }
198
+
199
+ .method-badge {
200
+ padding: 0.375rem 0.875rem;
201
+ border-radius: 6px;
202
+ font-weight: 600;
203
+ font-size: 0.875rem;
204
+ text-transform: uppercase;
205
+ letter-spacing: 0.5px;
206
+ min-width: 70px;
207
+ text-align: center;
208
+ }
209
+
210
+ .method-get { background: #c6f6d5; color: #22543d; }
211
+ .method-post { background: #bee3f8; color: #2c5282; }
212
+ .method-put { background: #feebc8; color: #7c2d12; }
213
+ .method-patch { background: #e9d8fd; color: #44337a; }
214
+ .method-delete { background: #fed7d7; color: #742a2a; }
215
+
216
+ .endpoint-path {
217
+ font-family: 'Courier New', monospace;
218
+ font-size: 1rem;
219
+ color: #2d3748;
220
+ font-weight: 500;
221
+ flex: 1;
222
+ }
223
+
224
+ .endpoint-summary {
225
+ color: #718096;
226
+ font-size: 0.95rem;
227
+ line-height: 1.5;
228
+ }
229
+
230
+ .endpoint-detail {
231
+ display: none;
232
+ position: fixed;
233
+ top: 0;
234
+ left: 0;
235
+ right: 0;
236
+ bottom: 0;
237
+ background: rgba(0,0,0,0.5);
238
+ z-index: 1000;
239
+ overflow-y: auto;
240
+ animation: fadeIn 0.3s ease-out;
241
+ }
242
+
243
+ .endpoint-detail.active {
244
+ display: flex;
245
+ align-items: center;
246
+ justify-content: center;
247
+ padding: 2rem;
248
+ }
249
+
250
+ .detail-content {
251
+ background: white;
252
+ border-radius: 16px;
253
+ max-width: 900px;
254
+ width: 100%;
255
+ max-height: 90vh;
256
+ overflow-y: auto;
257
+ box-shadow: 0 20px 60px rgba(0,0,0,0.3);
258
+ animation: slideUp 0.4s ease-out;
259
+ }
260
+
261
+ .detail-header {
262
+ background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
263
+ color: white;
264
+ padding: 2rem;
265
+ border-radius: 16px 16px 0 0;
266
+ position: sticky;
267
+ top: 0;
268
+ z-index: 10;
269
+ }
270
+
271
+ .detail-close {
272
+ float: right;
273
+ background: rgba(255,255,255,0.2);
274
+ border: none;
275
+ color: white;
276
+ font-size: 1.5rem;
277
+ width: 40px;
278
+ height: 40px;
279
+ border-radius: 50%;
280
+ cursor: pointer;
281
+ transition: all 0.3s ease;
282
+ display: flex;
283
+ align-items: center;
284
+ justify-content: center;
285
+ }
286
+
287
+ .detail-close:hover {
288
+ background: rgba(255,255,255,0.3);
289
+ transform: rotate(90deg);
290
+ }
291
+
292
+ .detail-body {
293
+ padding: 2rem;
294
+ }
295
+
296
+ .section {
297
+ margin-bottom: 2rem;
298
+ }
299
+
300
+ .section-title {
301
+ font-size: 1.25rem;
302
+ font-weight: 600;
303
+ color: #2d3748;
304
+ margin-bottom: 1rem;
305
+ padding-bottom: 0.5rem;
306
+ border-bottom: 2px solid #e2e8f0;
307
+ }
308
+
309
+ .param-item, .response-item {
310
+ background: #f7fafc;
311
+ padding: 1rem;
312
+ border-radius: 8px;
313
+ margin-bottom: 0.75rem;
314
+ border-left: 3px solid #667eea;
315
+ }
316
+
317
+ .param-name, .response-code {
318
+ font-weight: 600;
319
+ color: #2d3748;
320
+ font-family: 'Courier New', monospace;
321
+ }
322
+
323
+ .param-type {
324
+ color: #667eea;
325
+ font-size: 0.875rem;
326
+ font-weight: 500;
327
+ margin-left: 0.5rem;
328
+ }
329
+
330
+ .param-desc {
331
+ color: #718096;
332
+ margin-top: 0.5rem;
333
+ font-size: 0.95rem;
334
+ }
335
+
336
+ .code-block {
337
+ background: #1a202c;
338
+ color: #e2e8f0;
339
+ padding: 1.5rem;
340
+ border-radius: 8px;
341
+ overflow-x: auto;
342
+ font-family: 'Courier New', monospace;
343
+ font-size: 0.9rem;
344
+ line-height: 1.6;
345
+ }
346
+
347
+ .no-results {
348
+ text-align: center;
349
+ padding: 3rem;
350
+ color: white;
351
+ font-size: 1.1rem;
352
+ }
353
+
354
+ @keyframes fadeIn {
355
+ from { opacity: 0; }
356
+ to { opacity: 1; }
357
+ }
358
+
359
+ @keyframes fadeInDown {
360
+ from { opacity: 0; transform: translateY(-20px); }
361
+ to { opacity: 1; transform: translateY(0); }
362
+ }
363
+
364
+ @keyframes fadeInUp {
365
+ from { opacity: 0; transform: translateY(20px); }
366
+ to { opacity: 1; transform: translateY(0); }
367
+ }
368
+
369
+ @keyframes slideUp {
370
+ from { opacity: 0; transform: translateY(40px); }
371
+ to { opacity: 1; transform: translateY(0); }
372
+ }
373
+
374
+ @media (max-width: 768px) {
375
+ .container { padding: 1rem; }
376
+ .header h1 { font-size: 2rem; }
377
+ .detail-content { margin: 1rem; }
37
378
  }
38
379
  </style>
39
380
  </head>
40
381
  <body>
41
- <script id="api-reference" data-url="/docs-json"></script>
42
- <script src="https://cdn.jsdelivr.net/npm/@scalar/api-reference"></script>
382
+ <div class="container">
383
+ <div class="header">
384
+ <h1>${this.openApiSpec?.info?.title || 'API Documentation'}</h1>
385
+ <p>${this.openApiSpec?.info?.description || ''} ${this.openApiSpec?.info?.version ? `v${this.openApiSpec.info.version}` : ''}</p>
386
+ </div>
387
+
388
+ <div class="search-box">
389
+ <input type="text" class="search-input" id="searchInput" placeholder="🔍 Search endpoints...">
390
+ </div>
391
+
392
+ <div class="endpoints-grid" id="endpointsGrid">
393
+ ${this.renderGroupedEndpoints(groupedEndpoints)}
394
+ </div>
395
+
396
+ <div class="no-results" id="noResults" style="display: none;">
397
+ No endpoints found matching your search.
398
+ </div>
399
+ </div>
400
+
401
+ ${this.renderEndpointModals(endpoints)}
402
+
403
+ <script>
404
+ const searchInput = document.getElementById('searchInput');
405
+ const endpointsGrid = document.getElementById('endpointsGrid');
406
+ const noResults = document.getElementById('noResults');
407
+
408
+ searchInput.addEventListener('input', (e) => {
409
+ const query = e.target.value.toLowerCase();
410
+ const sections = endpointsGrid.querySelectorAll('.tag-section');
411
+ let hasResults = false;
412
+
413
+ sections.forEach(section => {
414
+ const cards = section.querySelectorAll('.endpoint-card');
415
+ let sectionHasResults = false;
416
+
417
+ cards.forEach(card => {
418
+ const text = card.textContent.toLowerCase();
419
+ if (text.includes(query)) {
420
+ card.style.display = 'block';
421
+ sectionHasResults = true;
422
+ hasResults = true;
423
+ } else {
424
+ card.style.display = 'none';
425
+ }
426
+ });
427
+
428
+ section.style.display = sectionHasResults ? 'block' : 'none';
429
+ });
430
+
431
+ noResults.style.display = hasResults ? 'none' : 'block';
432
+ endpointsGrid.style.display = hasResults ? 'grid' : 'none';
433
+ });
434
+
435
+ function openEndpoint(id) {
436
+ document.getElementById('detail-' + id).classList.add('active');
437
+ document.body.style.overflow = 'hidden';
438
+ }
439
+
440
+ function closeEndpoint(id) {
441
+ document.getElementById('detail-' + id).classList.remove('active');
442
+ document.body.style.overflow = 'auto';
443
+ }
444
+
445
+ document.querySelectorAll('.endpoint-detail').forEach(modal => {
446
+ modal.addEventListener('click', (e) => {
447
+ if (e.target === modal) {
448
+ modal.classList.remove('active');
449
+ document.body.style.overflow = 'auto';
450
+ }
451
+ });
452
+ });
453
+ </script>
43
454
  </body>
44
455
  </html>`;
45
- res.setHeader('Content-Type', 'text/html; charset=utf-8');
46
- res.send(html);
456
+ }
457
+ groupByTag(endpoints) {
458
+ const grouped = {};
459
+ endpoints.forEach(endpoint => {
460
+ const tag = endpoint.tags[0] || 'Other';
461
+ if (!grouped[tag]) {
462
+ grouped[tag] = [];
463
+ }
464
+ grouped[tag].push(endpoint);
465
+ });
466
+ return grouped;
467
+ }
468
+ renderGroupedEndpoints(grouped) {
469
+ return Object.entries(grouped).map(([tag, endpoints]) => `
470
+ <div class="tag-section">
471
+ <div class="tag-title">
472
+ ${tag}
473
+ <span class="tag-badge">${endpoints.length}</span>
474
+ </div>
475
+ <div class="endpoint-list">
476
+ ${endpoints.map(ep => `
477
+ <div class="endpoint-card" onclick="openEndpoint('${ep.id}')">
478
+ <div class="endpoint-header">
479
+ <span class="method-badge method-${ep.method.toLowerCase()}">${ep.method}</span>
480
+ <span class="endpoint-path">${ep.path}</span>
481
+ </div>
482
+ ${ep.summary ? `<div class="endpoint-summary">${ep.summary}</div>` : ''}
483
+ </div>
484
+ `).join('')}
485
+ </div>
486
+ </div>
487
+ `).join('');
488
+ }
489
+ renderEndpointModals(endpoints) {
490
+ return endpoints.map(ep => `
491
+ <div class="endpoint-detail" id="detail-${ep.id}">
492
+ <div class="detail-content">
493
+ <div class="detail-header">
494
+ <button class="detail-close" onclick="closeEndpoint('${ep.id}')">&times;</button>
495
+ <div style="clear: both;">
496
+ <div style="display: flex; align-items: center; gap: 1rem; margin-bottom: 1rem;">
497
+ <span class="method-badge method-${ep.method.toLowerCase()}">${ep.method}</span>
498
+ <span style="font-family: 'Courier New', monospace; font-size: 1.25rem;">${ep.path}</span>
499
+ </div>
500
+ ${ep.summary ? `<p style="opacity: 0.95; font-size: 1.1rem;">${ep.summary}</p>` : ''}
501
+ </div>
502
+ </div>
503
+
504
+ <div class="detail-body">
505
+ ${ep.description ? `
506
+ <div class="section">
507
+ <div class="section-title">Description</div>
508
+ <p style="color: #4a5568; line-height: 1.6;">${ep.description}</p>
509
+ </div>
510
+ ` : ''}
511
+
512
+ ${ep.parameters && ep.parameters.length > 0 ? `
513
+ <div class="section">
514
+ <div class="section-title">Parameters</div>
515
+ ${ep.parameters.map((param) => `
516
+ <div class="param-item">
517
+ <div>
518
+ <span class="param-name">${param.name}</span>
519
+ <span class="param-type">${param.schema?.type || param.type || 'string'}</span>
520
+ ${param.required ? '<span style="color: #e53e3e; font-size: 0.875rem; margin-left: 0.5rem;">*required</span>' : ''}
521
+ </div>
522
+ <div style="color: #a0aec0; font-size: 0.875rem; margin-top: 0.25rem;">in: ${param.in}</div>
523
+ ${param.description ? `<div class="param-desc">${param.description}</div>` : ''}
524
+ </div>
525
+ `).join('')}
526
+ </div>
527
+ ` : ''}
528
+
529
+ ${ep.requestBody ? `
530
+ <div class="section">
531
+ <div class="section-title">Request Body</div>
532
+ <div class="code-block">${this.formatJson(ep.requestBody.content?.['application/json']?.schema || ep.requestBody)}</div>
533
+ </div>
534
+ ` : ''}
535
+
536
+ ${ep.responses && Object.keys(ep.responses).length > 0 ? `
537
+ <div class="section">
538
+ <div class="section-title">Responses</div>
539
+ ${Object.entries(ep.responses).map(([code, response]) => `
540
+ <div class="response-item">
541
+ <div class="response-code">Status ${code}</div>
542
+ ${response.description ? `<div class="param-desc">${response.description}</div>` : ''}
543
+ ${response.content?.['application/json']?.schema ? `
544
+ <div class="code-block" style="margin-top: 0.75rem;">${this.formatJson(response.content['application/json'].schema)}</div>
545
+ ` : ''}
546
+ </div>
547
+ `).join('')}
548
+ </div>
549
+ ` : ''}
550
+ </div>
551
+ </div>
552
+ </div>
553
+ `).join('');
554
+ }
555
+ formatJson(obj) {
556
+ return JSON.stringify(obj, null, 2)
557
+ .replace(/</g, '&lt;')
558
+ .replace(/>/g, '&gt;');
47
559
  }
48
560
  getOpenApiJson(res) {
49
561
  try {
@@ -72,6 +584,13 @@ __decorate([
72
584
  __metadata("design:paramtypes", [Object]),
73
585
  __metadata("design:returntype", void 0)
74
586
  ], DocsController.prototype, "getDocs", null);
587
+ __decorate([
588
+ (0, common_1.Get)('docs/endpoint/:tag/:operationId'),
589
+ __param(0, (0, common_1.Res)()),
590
+ __metadata("design:type", Function),
591
+ __metadata("design:paramtypes", [Object]),
592
+ __metadata("design:returntype", void 0)
593
+ ], DocsController.prototype, "getEndpointPage", null);
75
594
  __decorate([
76
595
  (0, common_1.Get)('docs-json'),
77
596
  __param(0, (0, common_1.Res)()),
@@ -1 +1 @@
1
- {"version":3,"file":"DocsController.js","sourceRoot":"","sources":["../../src/controllers/DocsController.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,kEAAkE;AAClE,2CAA2E;AAE9D,QAAA,aAAa,GAAG,UAAU,CAAC;AACjC,MAAM,MAAM,GAAG,GAAG,EAAE,CAAC,IAAA,oBAAW,EAAC,qBAAa,EAAE,IAAI,CAAC,CAAC;AAAhD,QAAA,MAAM,UAA0C;AAItD,IAAM,cAAc,GAApB,MAAM,cAAc;IACzB,YAC2C,WAAgB;QAAhB,gBAAW,GAAX,WAAW,CAAK;IACxD,CAAC;IAGJ,OAAO,CAAQ,GAAQ;QACrB,MAAM,IAAI,GAAG;;;;;;;;;;;;;;;;;;QAkBT,CAAC;QAEL,GAAG,CAAC,SAAS,CAAC,cAAc,EAAE,0BAA0B,CAAC,CAAC;QAC1D,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACjB,CAAC;IAGD,cAAc,CAAQ,GAAQ;QAC5B,IAAI,CAAC;YACH,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;YAC7D,GAAG,CAAC,SAAS,CAAC,cAAc,EAAE,iCAAiC,CAAC,CAAC;YACjE,GAAG,CAAC,SAAS,CAAC,6BAA6B,EAAE,GAAG,CAAC,CAAC;YAClD,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACvB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,iDAAiD,EAAE,KAAK,CAAC,CAAC;YACxE,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,0CAA0C,EAAE,CAAC,CAAC;QAC9E,CAAC;IACH,CAAC;IAGD,oBAAoB,CAAQ,GAAQ;QAClC,OAAO,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;IAClC,CAAC;IAGD,cAAc;QACZ,OAAO,IAAI,CAAC,WAAW,CAAC;IAC1B,CAAC;CACF,CAAA;AArDY,wCAAc;AAMzB;IADC,IAAA,YAAG,EAAC,MAAM,CAAC;IACH,WAAA,IAAA,YAAG,GAAE,CAAA;;;;6CAuBb;AAGD;IADC,IAAA,YAAG,EAAC,WAAW,CAAC;IACD,WAAA,IAAA,YAAG,GAAE,CAAA;;;;oDAUpB;AAGD;IADC,IAAA,YAAG,EAAC,WAAW,CAAC;IACK,WAAA,IAAA,YAAG,GAAE,CAAA;;;;0DAE1B;AAGD;IADC,IAAA,YAAG,EAAC,WAAW,CAAC;;;;oDAGhB;yBApDU,cAAc;IAF1B,IAAA,mBAAU,GAAE;IACZ,IAAA,cAAM,GAAE;IAGJ,WAAA,IAAA,eAAM,EAAC,uBAAuB,CAAC,CAAA;;GAFvB,cAAc,CAqD1B"}
1
+ {"version":3,"file":"DocsController.js","sourceRoot":"","sources":["../../src/controllers/DocsController.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "nest-scramble",
3
- "version": "1.4.8",
3
+ "version": "1.4.9",
4
4
  "description": "A next-generation, decorator-free API documentation engine and intelligent mock server for NestJS, engineered by Mohamed Mustafa",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",