@hazeljs/swagger 0.8.6 → 0.8.7
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.
- package/README.md +78 -516
- package/dist/index.d.ts +6 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +8 -2
- package/dist/openapi-document.test.d.ts +2 -0
- package/dist/openapi-document.test.d.ts.map +1 -0
- package/dist/openapi-document.test.js +42 -0
- package/dist/swagger-config.d.ts +5 -0
- package/dist/swagger-config.d.ts.map +1 -0
- package/dist/swagger-config.js +15 -0
- package/dist/swagger.controller.d.ts +2 -1
- package/dist/swagger.controller.d.ts.map +1 -1
- package/dist/swagger.controller.js +44 -85
- package/dist/swagger.controller.test.js +41 -156
- package/dist/swagger.module.d.ts +7 -0
- package/dist/swagger.module.d.ts.map +1 -1
- package/dist/swagger.module.js +16 -0
- package/dist/swagger.service.d.ts +14 -27
- package/dist/swagger.service.d.ts.map +1 -1
- package/dist/swagger.service.js +143 -162
- package/dist/swagger.service.test.js +164 -22
- package/dist/swagger.types.d.ts +52 -1
- package/dist/swagger.types.d.ts.map +1 -1
- package/package.json +4 -8
|
@@ -18,6 +18,10 @@ describe('SwaggerService', () => {
|
|
|
18
18
|
beforeEach(() => {
|
|
19
19
|
swaggerService = new swagger_service_1.SwaggerService();
|
|
20
20
|
});
|
|
21
|
+
const expectDefaultSchemas = (spec) => {
|
|
22
|
+
expect(spec.components.schemas.Error).toBeDefined();
|
|
23
|
+
expect(spec.components.schemas.ValidationError).toBeDefined();
|
|
24
|
+
};
|
|
21
25
|
describe('generateSpec', () => {
|
|
22
26
|
it('should generate spec for a controller with Swagger metadata', () => {
|
|
23
27
|
const swaggerOptions = {
|
|
@@ -68,9 +72,7 @@ describe('SwaggerService', () => {
|
|
|
68
72
|
(0, swagger_decorator_1.Swagger)(swaggerOptions),
|
|
69
73
|
(0, core_1.Controller)({ path: '/test' })
|
|
70
74
|
], TestController);
|
|
71
|
-
// Mock controller metadata
|
|
72
75
|
Reflect.defineMetadata('hazel:controller', { path: '/test' }, TestController);
|
|
73
|
-
// Mock route metadata
|
|
74
76
|
Reflect.defineMetadata('hazel:routes', [
|
|
75
77
|
{ propertyKey: 'getTest', path: '', method: 'GET' },
|
|
76
78
|
{ propertyKey: 'createTest', path: '', method: 'POST' },
|
|
@@ -97,8 +99,9 @@ describe('SwaggerService', () => {
|
|
|
97
99
|
tags: postOperation.tags,
|
|
98
100
|
responses: postOperation.responses,
|
|
99
101
|
});
|
|
102
|
+
expectDefaultSchemas(spec);
|
|
100
103
|
});
|
|
101
|
-
it('should
|
|
104
|
+
it('should auto-generate operations for controller without Swagger metadata', () => {
|
|
102
105
|
let TestController = class TestController {
|
|
103
106
|
getTest() { }
|
|
104
107
|
};
|
|
@@ -111,11 +114,11 @@ describe('SwaggerService', () => {
|
|
|
111
114
|
TestController = __decorate([
|
|
112
115
|
(0, core_1.Controller)({ path: '/test' })
|
|
113
116
|
], TestController);
|
|
114
|
-
|
|
115
|
-
Reflect.defineMetadata('hazel:routes', [{ propertyKey: 'getTest', path: '/test', method: 'GET' }], TestController);
|
|
117
|
+
Reflect.defineMetadata('hazel:routes', [{ propertyKey: 'getTest', path: '', method: 'GET' }], TestController);
|
|
116
118
|
const spec = swaggerService.generateSpec([TestController]);
|
|
117
|
-
expect(spec).toBeDefined();
|
|
118
|
-
expect(spec.paths).
|
|
119
|
+
expect(spec.paths['/test']?.get).toBeDefined();
|
|
120
|
+
expect(spec.paths['/test'].get.summary).toBe('Get resource(s)');
|
|
121
|
+
expectDefaultSchemas(spec);
|
|
119
122
|
});
|
|
120
123
|
it('should handle invalid controllers', () => {
|
|
121
124
|
class InvalidController {
|
|
@@ -123,6 +126,7 @@ describe('SwaggerService', () => {
|
|
|
123
126
|
const spec = swaggerService.generateSpec([InvalidController]);
|
|
124
127
|
expect(spec).toBeDefined();
|
|
125
128
|
expect(spec.paths).toEqual({});
|
|
129
|
+
expectDefaultSchemas(spec);
|
|
126
130
|
});
|
|
127
131
|
it('should handle controller without route metadata', () => {
|
|
128
132
|
let TestController = class TestController {
|
|
@@ -149,13 +153,12 @@ describe('SwaggerService', () => {
|
|
|
149
153
|
}),
|
|
150
154
|
(0, core_1.Controller)({ path: '/test' })
|
|
151
155
|
], TestController);
|
|
152
|
-
// Explicitly remove route metadata
|
|
153
156
|
Reflect.deleteMetadata('hazel:routes', TestController);
|
|
154
157
|
const spec = swaggerService.generateSpec([TestController]);
|
|
155
158
|
expect(spec).toBeDefined();
|
|
156
159
|
expect(spec.paths).toEqual({});
|
|
157
160
|
});
|
|
158
|
-
it('should
|
|
161
|
+
it('should auto-generate when method has no operation metadata but controller has @Swagger', () => {
|
|
159
162
|
let TestController = class TestController {
|
|
160
163
|
getTest() { }
|
|
161
164
|
};
|
|
@@ -174,10 +177,33 @@ describe('SwaggerService', () => {
|
|
|
174
177
|
}),
|
|
175
178
|
(0, core_1.Controller)({ path: '/test' })
|
|
176
179
|
], TestController);
|
|
177
|
-
// Mock route metadata
|
|
178
180
|
Reflect.defineMetadata('hazel:routes', [{ propertyKey: 'getTest', path: '/test', method: 'GET' }], TestController);
|
|
179
181
|
const spec = swaggerService.generateSpec([TestController]);
|
|
180
|
-
expect(spec).toBeDefined();
|
|
182
|
+
expect(spec.paths['/test/test']?.get).toBeDefined();
|
|
183
|
+
expect(spec.paths['/test/test'].get.summary).toBe('Get resource(s)');
|
|
184
|
+
});
|
|
185
|
+
it('should skip undocumented routes when autoGenerateOperations is false', () => {
|
|
186
|
+
let TestController = class TestController {
|
|
187
|
+
getTest() { }
|
|
188
|
+
};
|
|
189
|
+
__decorate([
|
|
190
|
+
(0, core_1.Get)(),
|
|
191
|
+
__metadata("design:type", Function),
|
|
192
|
+
__metadata("design:paramtypes", []),
|
|
193
|
+
__metadata("design:returntype", void 0)
|
|
194
|
+
], TestController.prototype, "getTest", null);
|
|
195
|
+
TestController = __decorate([
|
|
196
|
+
(0, swagger_decorator_1.Swagger)({
|
|
197
|
+
title: 'Test API',
|
|
198
|
+
description: 'Test API description',
|
|
199
|
+
version: '1.0.0',
|
|
200
|
+
}),
|
|
201
|
+
(0, core_1.Controller)({ path: '/test' })
|
|
202
|
+
], TestController);
|
|
203
|
+
Reflect.defineMetadata('hazel:routes', [{ propertyKey: 'getTest', path: '', method: 'GET' }], TestController);
|
|
204
|
+
const spec = swaggerService.generateSpec([TestController], {
|
|
205
|
+
autoGenerateOperations: false,
|
|
206
|
+
});
|
|
181
207
|
expect(spec.paths).toEqual({});
|
|
182
208
|
});
|
|
183
209
|
it('should throw error when controllers is not an array', () => {
|
|
@@ -191,7 +217,6 @@ describe('SwaggerService', () => {
|
|
|
191
217
|
expect(spec.paths).toEqual({});
|
|
192
218
|
});
|
|
193
219
|
it('should handle error during spec generation', () => {
|
|
194
|
-
// Test error handling by making getSwaggerMetadata throw
|
|
195
220
|
// eslint-disable-next-line @typescript-eslint/no-require-imports
|
|
196
221
|
const swaggerDecorator = require('./swagger.decorator');
|
|
197
222
|
jest.spyOn(swaggerDecorator, 'getSwaggerMetadata').mockImplementation(() => {
|
|
@@ -214,7 +239,6 @@ describe('SwaggerService', () => {
|
|
|
214
239
|
expect(() => {
|
|
215
240
|
swaggerService.generateSpec([TestController]);
|
|
216
241
|
}).toThrow('Metadata access error');
|
|
217
|
-
// Restore original
|
|
218
242
|
jest.restoreAllMocks();
|
|
219
243
|
});
|
|
220
244
|
it('should normalize paths correctly', () => {
|
|
@@ -231,8 +255,7 @@ describe('SwaggerService', () => {
|
|
|
231
255
|
getTest() { }
|
|
232
256
|
};
|
|
233
257
|
__decorate([
|
|
234
|
-
(0, core_1.Get)('path')
|
|
235
|
-
,
|
|
258
|
+
(0, core_1.Get)('path'),
|
|
236
259
|
(0, swagger_decorator_1.ApiOperation)(getOperation),
|
|
237
260
|
__metadata("design:type", Function),
|
|
238
261
|
__metadata("design:paramtypes", []),
|
|
@@ -240,17 +263,13 @@ describe('SwaggerService', () => {
|
|
|
240
263
|
], TestController.prototype, "getTest", null);
|
|
241
264
|
TestController = __decorate([
|
|
242
265
|
(0, swagger_decorator_1.Swagger)(swaggerOptions),
|
|
243
|
-
(0, core_1.Controller)({ path: 'test' })
|
|
266
|
+
(0, core_1.Controller)({ path: 'test' })
|
|
244
267
|
], TestController);
|
|
245
268
|
Reflect.defineMetadata('hazel:controller', { path: 'test' }, TestController);
|
|
246
269
|
Reflect.defineMetadata('hazel:routes', [{ propertyKey: 'getTest', path: 'path', method: 'GET' }], TestController);
|
|
247
270
|
const spec = swaggerService.generateSpec([TestController]);
|
|
248
|
-
// The normalizePath concatenates basePath and path: 'test' + 'path' = 'testpath', then normalizes to '/testpath'
|
|
249
|
-
// But actually, paths should be joined with '/' if both exist
|
|
250
|
-
// Let's check what path was actually created
|
|
251
271
|
const pathKeys = Object.keys(spec.paths);
|
|
252
272
|
expect(pathKeys.length).toBeGreaterThan(0);
|
|
253
|
-
// The normalized path should start with '/'
|
|
254
273
|
const createdPath = pathKeys[0];
|
|
255
274
|
expect(createdPath.startsWith('/')).toBe(true);
|
|
256
275
|
expect(spec.paths[createdPath].get).toBeDefined();
|
|
@@ -277,7 +296,7 @@ describe('SwaggerService', () => {
|
|
|
277
296
|
], TestController.prototype, "getTest", null);
|
|
278
297
|
TestController = __decorate([
|
|
279
298
|
(0, swagger_decorator_1.Swagger)(swaggerOptions),
|
|
280
|
-
(0, core_1.Controller)({ path: '/test/' })
|
|
299
|
+
(0, core_1.Controller)({ path: '/test/' })
|
|
281
300
|
], TestController);
|
|
282
301
|
Reflect.defineMetadata('hazel:controller', { path: '/test/' }, TestController);
|
|
283
302
|
Reflect.defineMetadata('hazel:routes', [{ propertyKey: 'getTest', path: '', method: 'GET' }], TestController);
|
|
@@ -339,7 +358,6 @@ describe('SwaggerService', () => {
|
|
|
339
358
|
const getOperation = {
|
|
340
359
|
summary: 'Get test',
|
|
341
360
|
responses: { '200': { description: 'Success' } },
|
|
342
|
-
// No tags property
|
|
343
361
|
};
|
|
344
362
|
let TestController = class TestController {
|
|
345
363
|
getTest() { }
|
|
@@ -360,5 +378,129 @@ describe('SwaggerService', () => {
|
|
|
360
378
|
const spec = swaggerService.generateSpec([TestController]);
|
|
361
379
|
expect(spec.paths['/test'].get.tags).toEqual(['TestController']);
|
|
362
380
|
});
|
|
381
|
+
it('should prepend globalPrefix to paths', () => {
|
|
382
|
+
let UserController = class UserController {
|
|
383
|
+
list() { }
|
|
384
|
+
};
|
|
385
|
+
__decorate([
|
|
386
|
+
(0, core_1.Get)(),
|
|
387
|
+
__metadata("design:type", Function),
|
|
388
|
+
__metadata("design:paramtypes", []),
|
|
389
|
+
__metadata("design:returntype", void 0)
|
|
390
|
+
], UserController.prototype, "list", null);
|
|
391
|
+
UserController = __decorate([
|
|
392
|
+
(0, core_1.Controller)({ path: '/users' })
|
|
393
|
+
], UserController);
|
|
394
|
+
Reflect.defineMetadata('hazel:controller', { path: '/users' }, UserController);
|
|
395
|
+
Reflect.defineMetadata('hazel:routes', [{ propertyKey: 'list', path: '', method: 'GET' }], UserController);
|
|
396
|
+
const spec = swaggerService.generateSpec([UserController], { globalPrefix: '/api' });
|
|
397
|
+
expect(spec.paths['/api/users']?.get).toBeDefined();
|
|
398
|
+
});
|
|
399
|
+
it('should merge securitySchemes into components', () => {
|
|
400
|
+
let XController = class XController {
|
|
401
|
+
x() { }
|
|
402
|
+
};
|
|
403
|
+
__decorate([
|
|
404
|
+
(0, core_1.Get)(),
|
|
405
|
+
__metadata("design:type", Function),
|
|
406
|
+
__metadata("design:paramtypes", []),
|
|
407
|
+
__metadata("design:returntype", void 0)
|
|
408
|
+
], XController.prototype, "x", null);
|
|
409
|
+
XController = __decorate([
|
|
410
|
+
(0, core_1.Controller)({ path: '/x' })
|
|
411
|
+
], XController);
|
|
412
|
+
Reflect.defineMetadata('hazel:controller', { path: '/x' }, XController);
|
|
413
|
+
Reflect.defineMetadata('hazel:routes', [{ propertyKey: 'x', path: '', method: 'GET' }], XController);
|
|
414
|
+
const spec = swaggerService.generateSpec([XController], {
|
|
415
|
+
securitySchemes: {
|
|
416
|
+
bearer: { type: 'http', scheme: 'bearer', bearerFormat: 'JWT' },
|
|
417
|
+
},
|
|
418
|
+
security: [{ bearer: [] }],
|
|
419
|
+
});
|
|
420
|
+
expect(spec.components.securitySchemes?.bearer).toEqual({
|
|
421
|
+
type: 'http',
|
|
422
|
+
scheme: 'bearer',
|
|
423
|
+
bearerFormat: 'JWT',
|
|
424
|
+
});
|
|
425
|
+
expect(spec.security).toEqual([{ bearer: [] }]);
|
|
426
|
+
});
|
|
427
|
+
});
|
|
428
|
+
describe('generateAutoSpec', () => {
|
|
429
|
+
it('should collect controllers from module tree', () => {
|
|
430
|
+
let ItemController = class ItemController {
|
|
431
|
+
list() { }
|
|
432
|
+
};
|
|
433
|
+
__decorate([
|
|
434
|
+
(0, core_1.Get)(),
|
|
435
|
+
__metadata("design:type", Function),
|
|
436
|
+
__metadata("design:paramtypes", []),
|
|
437
|
+
__metadata("design:returntype", void 0)
|
|
438
|
+
], ItemController.prototype, "list", null);
|
|
439
|
+
ItemController = __decorate([
|
|
440
|
+
(0, core_1.Controller)({ path: '/items' })
|
|
441
|
+
], ItemController);
|
|
442
|
+
Reflect.defineMetadata('hazel:controller', { path: '/items' }, ItemController);
|
|
443
|
+
Reflect.defineMetadata('hazel:routes', [{ propertyKey: 'list', path: '', method: 'GET' }], ItemController);
|
|
444
|
+
let AppModule = class AppModule {
|
|
445
|
+
};
|
|
446
|
+
AppModule = __decorate([
|
|
447
|
+
(0, core_1.HazelModule)({
|
|
448
|
+
imports: [],
|
|
449
|
+
controllers: [ItemController],
|
|
450
|
+
})
|
|
451
|
+
], AppModule);
|
|
452
|
+
const spec = swaggerService.generateAutoSpec(AppModule);
|
|
453
|
+
expect(spec.paths['/items']?.get).toBeDefined();
|
|
454
|
+
expectDefaultSchemas(spec);
|
|
455
|
+
});
|
|
456
|
+
it('should extract path parameters from route template', () => {
|
|
457
|
+
let UserController = class UserController {
|
|
458
|
+
one() { }
|
|
459
|
+
};
|
|
460
|
+
__decorate([
|
|
461
|
+
(0, core_1.Get)('/:id'),
|
|
462
|
+
__metadata("design:type", Function),
|
|
463
|
+
__metadata("design:paramtypes", []),
|
|
464
|
+
__metadata("design:returntype", void 0)
|
|
465
|
+
], UserController.prototype, "one", null);
|
|
466
|
+
UserController = __decorate([
|
|
467
|
+
(0, core_1.Controller)({ path: '/users' })
|
|
468
|
+
], UserController);
|
|
469
|
+
Reflect.defineMetadata('hazel:controller', { path: '/users' }, UserController);
|
|
470
|
+
Reflect.defineMetadata('hazel:routes', [{ propertyKey: 'one', path: '/:id', method: 'GET' }], UserController);
|
|
471
|
+
let AppModule = class AppModule {
|
|
472
|
+
};
|
|
473
|
+
AppModule = __decorate([
|
|
474
|
+
(0, core_1.HazelModule)({ controllers: [UserController], imports: [] })
|
|
475
|
+
], AppModule);
|
|
476
|
+
const spec = swaggerService.generateAutoSpec(AppModule);
|
|
477
|
+
expect(spec.paths['/users/:id']?.get?.parameters).toEqual([
|
|
478
|
+
expect.objectContaining({ name: 'id', in: 'path', required: true }),
|
|
479
|
+
]);
|
|
480
|
+
});
|
|
481
|
+
it('should add request body for PATCH', () => {
|
|
482
|
+
let UserController = class UserController {
|
|
483
|
+
patch() { }
|
|
484
|
+
};
|
|
485
|
+
__decorate([
|
|
486
|
+
(0, core_1.Patch)('/:id'),
|
|
487
|
+
__metadata("design:type", Function),
|
|
488
|
+
__metadata("design:paramtypes", []),
|
|
489
|
+
__metadata("design:returntype", void 0)
|
|
490
|
+
], UserController.prototype, "patch", null);
|
|
491
|
+
UserController = __decorate([
|
|
492
|
+
(0, core_1.Controller)({ path: '/users' })
|
|
493
|
+
], UserController);
|
|
494
|
+
Reflect.defineMetadata('hazel:controller', { path: '/users' }, UserController);
|
|
495
|
+
Reflect.defineMetadata('hazel:routes', [{ propertyKey: 'patch', path: '/:id', method: 'PATCH' }], UserController);
|
|
496
|
+
let AppModule = class AppModule {
|
|
497
|
+
};
|
|
498
|
+
AppModule = __decorate([
|
|
499
|
+
(0, core_1.HazelModule)({ controllers: [UserController], imports: [] })
|
|
500
|
+
], AppModule);
|
|
501
|
+
const spec = swaggerService.generateAutoSpec(AppModule);
|
|
502
|
+
expect(spec.paths['/users/:id']?.patch?.requestBody).toBeDefined();
|
|
503
|
+
expect(spec.paths['/users/:id'].patch.summary).toBe('Update resource');
|
|
504
|
+
});
|
|
363
505
|
});
|
|
364
506
|
});
|
package/dist/swagger.types.d.ts
CHANGED
|
@@ -9,6 +9,28 @@ export interface SwaggerTag {
|
|
|
9
9
|
name: string;
|
|
10
10
|
description: string;
|
|
11
11
|
}
|
|
12
|
+
/** OpenAPI server entry */
|
|
13
|
+
export interface SwaggerServer {
|
|
14
|
+
url: string;
|
|
15
|
+
description?: string;
|
|
16
|
+
}
|
|
17
|
+
/** Options for building a document from the app module (HTTP + programmatic). */
|
|
18
|
+
export interface SwaggerBuildOptions {
|
|
19
|
+
title?: string;
|
|
20
|
+
description?: string;
|
|
21
|
+
version?: string;
|
|
22
|
+
/** When true (default), routes without `@ApiOperation` get a generated operation. */
|
|
23
|
+
autoGenerateOperations?: boolean;
|
|
24
|
+
/** Prepended to every path (e.g. match `app.setGlobalPrefix('/api')`). */
|
|
25
|
+
globalPrefix?: string;
|
|
26
|
+
servers?: SwaggerServer[];
|
|
27
|
+
/** Merged into `components.securitySchemes`. */
|
|
28
|
+
securitySchemes?: Record<string, Record<string, unknown>>;
|
|
29
|
+
/** OpenAPI top-level `security` requirement. */
|
|
30
|
+
security?: Array<Record<string, string[]>>;
|
|
31
|
+
}
|
|
32
|
+
/** @deprecated Use `SwaggerBuildOptions` — alias kept for backward compatibility. */
|
|
33
|
+
export type AutoSwaggerOptions = SwaggerBuildOptions;
|
|
12
34
|
export interface SwaggerOperation {
|
|
13
35
|
summary?: string;
|
|
14
36
|
description?: string;
|
|
@@ -40,11 +62,40 @@ export interface SwaggerResponse {
|
|
|
40
62
|
};
|
|
41
63
|
}
|
|
42
64
|
export interface SwaggerSchema {
|
|
43
|
-
type
|
|
65
|
+
type?: 'string' | 'number' | 'integer' | 'boolean' | 'array' | 'object';
|
|
66
|
+
/** OpenAPI component reference, e.g. `#/components/schemas/Error` */
|
|
67
|
+
$ref?: string;
|
|
44
68
|
format?: string;
|
|
45
69
|
items?: SwaggerSchema;
|
|
46
70
|
properties?: Record<string, SwaggerSchema>;
|
|
47
71
|
required?: string[];
|
|
48
72
|
example?: string | number | boolean | null | Record<string, unknown> | unknown[];
|
|
49
73
|
}
|
|
74
|
+
export interface SwaggerSpec {
|
|
75
|
+
openapi: string;
|
|
76
|
+
info: {
|
|
77
|
+
title?: string;
|
|
78
|
+
description?: string;
|
|
79
|
+
version?: string;
|
|
80
|
+
};
|
|
81
|
+
servers?: SwaggerServer[];
|
|
82
|
+
paths: Record<string, Record<string, SwaggerOperation>>;
|
|
83
|
+
components: {
|
|
84
|
+
schemas: Record<string, SwaggerSchema>;
|
|
85
|
+
securitySchemes?: Record<string, Record<string, unknown>>;
|
|
86
|
+
};
|
|
87
|
+
security?: Array<Record<string, string[]>>;
|
|
88
|
+
tags?: Array<{
|
|
89
|
+
name: string;
|
|
90
|
+
description: string;
|
|
91
|
+
}>;
|
|
92
|
+
}
|
|
93
|
+
/** Runtime configuration for `SwaggerModule.configure()` (document + UI). */
|
|
94
|
+
export interface SwaggerModuleOptions extends SwaggerBuildOptions {
|
|
95
|
+
/**
|
|
96
|
+
* Base URL for Swagger UI static assets (no trailing slash).
|
|
97
|
+
* Example: `https://unpkg.com/swagger-ui-dist@5.11.0`
|
|
98
|
+
*/
|
|
99
|
+
swaggerUiCdnBase?: string;
|
|
100
|
+
}
|
|
50
101
|
//# sourceMappingURL=swagger.types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"swagger.types.d.ts","sourceRoot":"","sources":["../src/swagger.types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,UAAU,EAAE,CAAC;CACrB;AAED,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,gBAAgB;IAC/B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,UAAU,CAAC,EAAE,gBAAgB,EAAE,CAAC;IAChC,WAAW,CAAC,EAAE;QACZ,QAAQ,CAAC,EAAE,OAAO,CAAC;QACnB,OAAO,EAAE;YACP,CAAC,WAAW,EAAE,MAAM,GAAG;gBACrB,MAAM,EAAE,aAAa,CAAC;aACvB,CAAC;SACH,CAAC;KACH,CAAC;IACF,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;CAC7C;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,GAAG,OAAO,GAAG,QAAQ,GAAG,QAAQ,CAAC;IAC3C,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,MAAM,EAAE,aAAa,CAAC;CACvB;AAED,MAAM,WAAW,eAAe;IAC9B,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE;QACR,CAAC,WAAW,EAAE,MAAM,GAAG;YACrB,MAAM,EAAE,aAAa,CAAC;SACvB,CAAC;KACH,CAAC;CACH;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,QAAQ,GAAG,QAAQ,GAAG,SAAS,GAAG,SAAS,GAAG,OAAO,GAAG,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"swagger.types.d.ts","sourceRoot":"","sources":["../src/swagger.types.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@hazeljs/swagger",
|
|
3
|
-
"version": "0.8.
|
|
3
|
+
"version": "0.8.7",
|
|
4
4
|
"description": "Swagger/OpenAPI documentation module for HazelJS framework",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -14,12 +14,8 @@
|
|
|
14
14
|
"lint:fix": "eslint \"src/**/*.ts\" --fix",
|
|
15
15
|
"clean": "rm -rf dist"
|
|
16
16
|
},
|
|
17
|
-
"dependencies": {
|
|
18
|
-
"swagger-ui-express": "^5.0.1"
|
|
19
|
-
},
|
|
20
17
|
"devDependencies": {
|
|
21
18
|
"@types/node": "^20.19.39",
|
|
22
|
-
"@types/swagger-ui-express": "^4.1.8",
|
|
23
19
|
"@typescript-eslint/eslint-plugin": "^8.58.0",
|
|
24
20
|
"@typescript-eslint/parser": "^8.58.0",
|
|
25
21
|
"eslint": "^8.57.1",
|
|
@@ -45,11 +41,11 @@
|
|
|
45
41
|
"author": "Muhammad Arslan <muhammad.arslan@hazeljs.ai>",
|
|
46
42
|
"license": "Apache-2.0",
|
|
47
43
|
"bugs": {
|
|
48
|
-
"url": "https://github.com/
|
|
44
|
+
"url": "https://github.com/hazel-js/hazeljs/issues"
|
|
49
45
|
},
|
|
50
46
|
"homepage": "https://hazeljs.ai",
|
|
51
47
|
"peerDependencies": {
|
|
52
|
-
"@hazeljs/core": "^0.8.
|
|
48
|
+
"@hazeljs/core": "^0.8.7"
|
|
53
49
|
},
|
|
54
|
-
"gitHead": "
|
|
50
|
+
"gitHead": "7e6f4d6ed5e9d92cdd5f43f3577f5e0361202878"
|
|
55
51
|
}
|