@tc-libs/doc 0.9.0

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 ADDED
@@ -0,0 +1,11 @@
1
+ # doc
2
+
3
+ This library was generated with [Nx](https://nx.dev).
4
+
5
+ ## Building
6
+
7
+ Run `nx build doc` to build the library.
8
+
9
+ ## Running unit tests
10
+
11
+ Run `nx test doc` to execute the unit tests via [Jest](https://jestjs.io).
package/package.json ADDED
@@ -0,0 +1,11 @@
1
+ {
2
+ "name": "@tc-libs/doc",
3
+ "version": "0.9.0",
4
+ "dependencies": {
5
+ "tslib": "^2.3.0"
6
+ },
7
+ "type": "commonjs",
8
+ "main": "./src/index.js",
9
+ "typings": "./src/index.d.ts",
10
+ "types": "./src/index.d.ts"
11
+ }
@@ -0,0 +1,10 @@
1
+ export declare enum ENUM_DOC_REQUEST_BODY_TYPE {
2
+ JSON = "JSON",
3
+ FORM_DATA = "FORM_DATA",
4
+ TEXT = "TEXT"
5
+ }
6
+ export declare enum ENUM_DOC_RESPONSE_BODY_TYPE {
7
+ JSON = "JSON",
8
+ FILE = "FILE",
9
+ TEXT = "TEXT"
10
+ }
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ENUM_DOC_RESPONSE_BODY_TYPE = exports.ENUM_DOC_REQUEST_BODY_TYPE = void 0;
4
+ var ENUM_DOC_REQUEST_BODY_TYPE;
5
+ (function (ENUM_DOC_REQUEST_BODY_TYPE) {
6
+ ENUM_DOC_REQUEST_BODY_TYPE["JSON"] = "JSON";
7
+ ENUM_DOC_REQUEST_BODY_TYPE["FORM_DATA"] = "FORM_DATA";
8
+ ENUM_DOC_REQUEST_BODY_TYPE["TEXT"] = "TEXT";
9
+ })(ENUM_DOC_REQUEST_BODY_TYPE || (exports.ENUM_DOC_REQUEST_BODY_TYPE = ENUM_DOC_REQUEST_BODY_TYPE = {}));
10
+ var ENUM_DOC_RESPONSE_BODY_TYPE;
11
+ (function (ENUM_DOC_RESPONSE_BODY_TYPE) {
12
+ ENUM_DOC_RESPONSE_BODY_TYPE["JSON"] = "JSON";
13
+ ENUM_DOC_RESPONSE_BODY_TYPE["FILE"] = "FILE";
14
+ ENUM_DOC_RESPONSE_BODY_TYPE["TEXT"] = "TEXT";
15
+ })(ENUM_DOC_RESPONSE_BODY_TYPE || (exports.ENUM_DOC_RESPONSE_BODY_TYPE = ENUM_DOC_RESPONSE_BODY_TYPE = {}));
16
+ //# sourceMappingURL=doc.enum.constant.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"doc.enum.constant.js","sourceRoot":"","sources":["../../../../../packages/doc/src/constants/doc.enum.constant.ts"],"names":[],"mappings":";;;AAAA,IAAY,0BAIX;AAJD,WAAY,0BAA0B;IACpC,2CAAa,CAAA;IACb,qDAAuB,CAAA;IACvB,2CAAa,CAAA;AACf,CAAC,EAJW,0BAA0B,0CAA1B,0BAA0B,QAIrC;AAED,IAAY,2BAIX;AAJD,WAAY,2BAA2B;IACrC,4CAAa,CAAA;IACb,4CAAa,CAAA;IACb,4CAAa,CAAA;AACf,CAAC,EAJW,2BAA2B,2CAA3B,2BAA2B,QAItC"}
@@ -0,0 +1 @@
1
+ export * from './doc.enum.constant';
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ tslib_1.__exportStar(require("./doc.enum.constant"), exports);
5
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../packages/doc/src/constants/index.ts"],"names":[],"mappings":";;;AAAA,8DAAoC"}
@@ -0,0 +1,8 @@
1
+ import { HttpStatus } from '@nestjs/common';
2
+ import { IDocOptions, IDocDefaultOptions, IDocOfOptions, IDocPagingOptions } from '../interfaces';
3
+ export declare function Doc<T>(messagePath: string, options?: IDocOptions<T>): MethodDecorator;
4
+ export declare function DocPaging<T>(messagePath: string, options: IDocPagingOptions<T>): MethodDecorator;
5
+ export declare function DocDefault<T>(options: IDocDefaultOptions): MethodDecorator;
6
+ export declare function DocOneOf<T>(httpStatus: HttpStatus, ...documents: IDocOfOptions[]): MethodDecorator;
7
+ export declare function DocAnyOf<T>(httpStatus: HttpStatus, ...documents: IDocOfOptions[]): MethodDecorator;
8
+ export declare function DocAllOf<T>(httpStatus: HttpStatus, ...documents: IDocOfOptions[]): MethodDecorator;
@@ -0,0 +1,507 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Doc = Doc;
4
+ exports.DocPaging = DocPaging;
5
+ exports.DocDefault = DocDefault;
6
+ exports.DocOneOf = DocOneOf;
7
+ exports.DocAnyOf = DocAnyOf;
8
+ exports.DocAllOf = DocAllOf;
9
+ const constant_1 = require("@tc-libs/constant");
10
+ const pagination_1 = require("@tc-libs/pagination");
11
+ const request_1 = require("@tc-libs/request");
12
+ const response_1 = require("@tc-libs/response");
13
+ const common_1 = require("@nestjs/common");
14
+ const swagger_1 = require("@nestjs/swagger");
15
+ const constants_1 = require("../constants");
16
+ const errors_1 = require("@tc-libs/errors");
17
+ const file_1 = require("@tc-libs/file");
18
+ function Doc(messagePath, options) {
19
+ const docs = [];
20
+ const normDoc = {
21
+ httpStatus: options?.response?.httpStatus ?? common_1.HttpStatus.OK,
22
+ messagePath,
23
+ statusCode: options?.response?.statusCode,
24
+ };
25
+ if (!normDoc.statusCode) {
26
+ normDoc.statusCode = normDoc.httpStatus;
27
+ }
28
+ if (options?.request?.bodyType === constants_1.ENUM_DOC_REQUEST_BODY_TYPE.FORM_DATA) {
29
+ docs.push((0, swagger_1.ApiConsumes)('multipart/form-data'));
30
+ if (options?.request?.file?.multiple) {
31
+ docs.push((0, swagger_1.ApiBody)({
32
+ description: 'Multiple file',
33
+ type: file_1.FileMultipleDto,
34
+ }));
35
+ }
36
+ else if (!options?.request?.file?.multiple) {
37
+ docs.push((0, swagger_1.ApiBody)({
38
+ description: 'Single file',
39
+ type: file_1.FileSingleDto,
40
+ }));
41
+ }
42
+ }
43
+ else if (options?.request?.bodyType === constants_1.ENUM_DOC_REQUEST_BODY_TYPE.TEXT) {
44
+ docs.push((0, swagger_1.ApiConsumes)(constant_1.ENUM_FILE_PLAIN_TEXT_MIME.TXT));
45
+ }
46
+ else {
47
+ docs.push((0, swagger_1.ApiConsumes)(constant_1.ENUM_FILE_JSON_MIME.JSON));
48
+ }
49
+ if (options?.response?.bodyType === constants_1.ENUM_DOC_RESPONSE_BODY_TYPE.FILE) {
50
+ docs.push((0, swagger_1.ApiProduces)(constant_1.ENUM_FILE_EXCEL_MIME.XLSX));
51
+ }
52
+ else if (options?.response?.bodyType === constants_1.ENUM_DOC_RESPONSE_BODY_TYPE.TEXT) {
53
+ docs.push((0, swagger_1.ApiProduces)(constant_1.ENUM_FILE_PLAIN_TEXT_MIME.TXT));
54
+ }
55
+ else {
56
+ docs.push((0, swagger_1.ApiProduces)(constant_1.ENUM_FILE_JSON_MIME.JSON));
57
+ if (options?.response?.serialization) {
58
+ normDoc.serialization = options?.response?.serialization;
59
+ }
60
+ }
61
+ docs.push(DocDefault(normDoc));
62
+ if (options?.request?.params) {
63
+ docs.push(...(options?.request?.params ?? []).map((param) => (0, swagger_1.ApiParam)(param)));
64
+ }
65
+ if (options?.request?.queries) {
66
+ docs.push(...(options?.request?.queries ?? []).map((query) => (0, swagger_1.ApiQuery)(query)));
67
+ }
68
+ const oneOfUnauthorized = [];
69
+ const oneOfForbidden = [];
70
+ // auth
71
+ const auths = [];
72
+ if (options?.auth?.jwtRefreshToken) {
73
+ auths.push((0, swagger_1.ApiBearerAuth)('refreshToken'));
74
+ oneOfUnauthorized.push({
75
+ messagePath: errors_1.Api401RefreshTokenUnauthorizedError.type,
76
+ statusCode: errors_1.Api401RefreshTokenUnauthorizedError.statusCode,
77
+ });
78
+ }
79
+ if (options?.auth?.jwtAccessToken) {
80
+ auths.push((0, swagger_1.ApiBearerAuth)('accessToken'));
81
+ oneOfUnauthorized.push({
82
+ messagePath: errors_1.Api401JWTAccessTokenUnauthorizedError.type,
83
+ statusCode: errors_1.Api401JWTAccessTokenUnauthorizedError.statusCode,
84
+ });
85
+ oneOfForbidden.push({
86
+ statusCode: errors_1.Api403PermissionTokenInvalidError.statusCode,
87
+ messagePath: errors_1.Api403PermissionTokenInvalidError.type,
88
+ }, {
89
+ statusCode: errors_1.Api403AccessForError.statusCode,
90
+ messagePath: errors_1.Api403AccessForError.type,
91
+ });
92
+ }
93
+ if (options?.auth?.apiKey) {
94
+ auths.push((0, swagger_1.ApiSecurity)('apiKey'));
95
+ oneOfUnauthorized.push({
96
+ statusCode: errors_1.Api401ApiKeyNeededError.statusCode,
97
+ messagePath: errors_1.Api401ApiKeyNeededError.type,
98
+ }, {
99
+ statusCode: errors_1.Api403ApiKeyNotFoundError.statusCode,
100
+ messagePath: errors_1.Api403ApiKeyNotFoundError.type,
101
+ }, {
102
+ statusCode: errors_1.Api403ApiKeyInactiveError.statusCode,
103
+ messagePath: errors_1.Api403ApiKeyInactiveError.type,
104
+ }, {
105
+ statusCode: errors_1.Api401ApiKeyInvalidError.statusCode,
106
+ messagePath: errors_1.Api401ApiKeyInvalidError.type,
107
+ });
108
+ }
109
+ if (options?.auth?.permissionToken) {
110
+ auths.push((0, swagger_1.ApiSecurity)('permissionToken'));
111
+ oneOfUnauthorized.push({
112
+ statusCode: errors_1.Api401JWTPermissionTokenUnauthorizedError.statusCode,
113
+ messagePath: errors_1.Api401JWTPermissionTokenUnauthorizedError.type,
114
+ }, {
115
+ statusCode: errors_1.Api403PermissionTokenInvalidError.statusCode,
116
+ messagePath: errors_1.Api403PermissionTokenInvalidError.type,
117
+ }, {
118
+ statusCode: errors_1.Api403PermissionTokenNotYourInvalidError.statusCode,
119
+ messagePath: errors_1.Api403PermissionTokenNotYourInvalidError.type,
120
+ });
121
+ }
122
+ // request headers
123
+ const requestHeaders = [];
124
+ if (options?.requestHeader?.userAgent) {
125
+ oneOfForbidden.push({
126
+ statusCode: errors_1.Api403RequestUserAgentBrowserInvalidError.statusCode,
127
+ messagePath: errors_1.Api403RequestUserAgentBrowserInvalidError.type,
128
+ }, {
129
+ statusCode: errors_1.Api403RequestUserAgentOSInvalidError.statusCode,
130
+ messagePath: errors_1.Api403RequestUserAgentOSInvalidError.type,
131
+ });
132
+ requestHeaders.push({
133
+ name: 'user-agent',
134
+ description: 'User agent header',
135
+ required: true,
136
+ schema: {
137
+ example: 'Mozilla/5.0 (platform; rv:geckoversion) Gecko/geckotrail Firefox/firefoxversion',
138
+ type: 'string',
139
+ },
140
+ });
141
+ }
142
+ if (options?.requestHeader?.timestamp) {
143
+ oneOfForbidden.push({
144
+ statusCode: errors_1.Api403TimestampInvalidError.statusCode,
145
+ messagePath: errors_1.Api403TimestampInvalidError.type,
146
+ });
147
+ requestHeaders.push({
148
+ name: 'x-timestamp',
149
+ description: 'Timestamp header, in microseconds',
150
+ required: true,
151
+ schema: {
152
+ example: 1662876305642,
153
+ type: 'number',
154
+ },
155
+ });
156
+ }
157
+ return (0, common_1.applyDecorators)((0, swagger_1.ApiHeader)({
158
+ name: 'x-custom-lang',
159
+ description: 'Custom language header',
160
+ required: false,
161
+ schema: {
162
+ default: options?.baseAppLanguage,
163
+ example: options?.baseAppLanguage,
164
+ type: 'string',
165
+ },
166
+ }), (0, swagger_1.ApiHeaders)(requestHeaders), DocDefault({
167
+ httpStatus: common_1.HttpStatus.SERVICE_UNAVAILABLE,
168
+ messagePath: errors_1.Api503ServiceUnavailableError.type,
169
+ statusCode: errors_1.Api503ServiceUnavailableError.statusCode,
170
+ }), DocDefault({
171
+ httpStatus: common_1.HttpStatus.INTERNAL_SERVER_ERROR,
172
+ messagePath: errors_1.Api500InternalServerError.type,
173
+ statusCode: errors_1.Api500InternalServerError.statusCode,
174
+ }), DocDefault({
175
+ httpStatus: common_1.HttpStatus.REQUEST_TIMEOUT,
176
+ messagePath: errors_1.Api408RequestTimeoutError.type,
177
+ statusCode: errors_1.Api408RequestTimeoutError.statusCode,
178
+ }), oneOfForbidden.length > 0
179
+ ? DocOneOf(common_1.HttpStatus.FORBIDDEN, ...oneOfForbidden)
180
+ : (0, request_1.Skip)(), oneOfUnauthorized.length > 0
181
+ ? DocOneOf(common_1.HttpStatus.UNAUTHORIZED, ...oneOfUnauthorized)
182
+ : (0, request_1.Skip)(), ...auths, ...docs);
183
+ }
184
+ function DocPaging(messagePath, options) {
185
+ // paging
186
+ const docs = [];
187
+ if (options?.request?.params) {
188
+ docs.push(...(options?.request?.params ?? []).map((param) => (0, swagger_1.ApiParam)(param)));
189
+ }
190
+ if (options?.request?.queries) {
191
+ docs.push(...(options?.request?.queries ?? []).map((query) => (0, swagger_1.ApiQuery)(query)));
192
+ }
193
+ const oneOfUnauthorized = [];
194
+ const oneOfForbidden = [];
195
+ // auth
196
+ const auths = [];
197
+ if (options?.auth?.jwtRefreshToken) {
198
+ auths.push((0, swagger_1.ApiBearerAuth)('refreshToken'));
199
+ oneOfUnauthorized.push({
200
+ messagePath: errors_1.Api401JWTAccessTokenUnauthorizedError.type,
201
+ statusCode: errors_1.Api401JWTAccessTokenUnauthorizedError.statusCode,
202
+ });
203
+ }
204
+ if (options?.auth?.jwtAccessToken) {
205
+ auths.push((0, swagger_1.ApiBearerAuth)('accessToken'));
206
+ oneOfUnauthorized.push({
207
+ messagePath: errors_1.Api401JWTAccessTokenUnauthorizedError.type,
208
+ statusCode: errors_1.Api401JWTAccessTokenUnauthorizedError.statusCode,
209
+ });
210
+ oneOfForbidden.push({
211
+ statusCode: errors_1.Api403PermissionTokenInvalidError.statusCode,
212
+ messagePath: errors_1.Api403PermissionTokenInvalidError.type,
213
+ }, {
214
+ statusCode: errors_1.Api403AccessForError.statusCode,
215
+ messagePath: errors_1.Api403AccessForError.type,
216
+ });
217
+ }
218
+ if (options?.auth?.apiKey) {
219
+ auths.push((0, swagger_1.ApiSecurity)('apiKey'));
220
+ oneOfUnauthorized.push({
221
+ statusCode: errors_1.Api401ApiKeyNeededError.statusCode,
222
+ messagePath: errors_1.Api401ApiKeyNeededError.type,
223
+ }, {
224
+ statusCode: errors_1.Api403ApiKeyNotFoundError.statusCode,
225
+ messagePath: errors_1.Api403ApiKeyNotFoundError.type,
226
+ }, {
227
+ statusCode: errors_1.Api403ApiKeyInactiveError.statusCode,
228
+ messagePath: errors_1.Api403ApiKeyInactiveError.type,
229
+ }, {
230
+ statusCode: errors_1.Api401ApiKeyInvalidError.statusCode,
231
+ messagePath: errors_1.Api401ApiKeyInvalidError.type,
232
+ });
233
+ }
234
+ if (options?.auth?.permissionToken) {
235
+ auths.push((0, swagger_1.ApiSecurity)('permissionToken'));
236
+ oneOfUnauthorized.push({
237
+ statusCode: errors_1.Api401JWTPermissionTokenUnauthorizedError.statusCode,
238
+ messagePath: errors_1.Api401JWTPermissionTokenUnauthorizedError.type,
239
+ }, {
240
+ statusCode: errors_1.Api403PermissionTokenInvalidError.statusCode,
241
+ messagePath: errors_1.Api403PermissionTokenInvalidError.type,
242
+ }, {
243
+ statusCode: errors_1.Api403PermissionTokenNotYourInvalidError.statusCode,
244
+ messagePath: errors_1.Api403PermissionTokenNotYourInvalidError.type,
245
+ });
246
+ }
247
+ // request headers
248
+ const requestHeaders = [];
249
+ if (options?.requestHeader?.userAgent) {
250
+ oneOfForbidden.push({
251
+ statusCode: errors_1.Api403RequestUserAgentBrowserInvalidError.statusCode,
252
+ messagePath: errors_1.Api403RequestUserAgentBrowserInvalidError.type,
253
+ }, {
254
+ statusCode: errors_1.Api403RequestUserAgentOSInvalidError.statusCode,
255
+ messagePath: errors_1.Api403RequestUserAgentOSInvalidError.type,
256
+ });
257
+ requestHeaders.push({
258
+ name: 'user-agent',
259
+ description: 'User agent header',
260
+ required: true,
261
+ schema: {
262
+ example: 'Mozilla/5.0 (platform; rv:geckoversion) Gecko/geckotrail Firefox/firefoxversion',
263
+ type: 'string',
264
+ },
265
+ });
266
+ }
267
+ if (options?.requestHeader?.timestamp) {
268
+ oneOfForbidden.push({
269
+ statusCode: errors_1.Api403TimestampInvalidError.statusCode,
270
+ messagePath: errors_1.Api403TimestampInvalidError.type,
271
+ });
272
+ requestHeaders.push({
273
+ name: 'x-timestamp',
274
+ description: 'Timestamp header, in microseconds',
275
+ required: true,
276
+ schema: {
277
+ example: 1662876305642,
278
+ type: 'number',
279
+ },
280
+ });
281
+ }
282
+ return (0, common_1.applyDecorators)(
283
+ // paging
284
+ (0, swagger_1.ApiConsumes)(constant_1.ENUM_FILE_JSON_MIME.JSON), (0, swagger_1.ApiExtraModels)((response_1.ResponsePagingSerialization)), (0, swagger_1.ApiExtraModels)(options.response.serialization), (0, swagger_1.ApiResponse)({
285
+ status: common_1.HttpStatus.OK,
286
+ schema: {
287
+ allOf: [{ $ref: (0, swagger_1.getSchemaPath)((response_1.ResponsePagingSerialization)) }],
288
+ properties: {
289
+ message: {
290
+ example: messagePath,
291
+ },
292
+ statusCode: {
293
+ type: 'number',
294
+ example: options.response.statusCode ?? common_1.HttpStatus.OK,
295
+ },
296
+ data: {
297
+ type: 'array',
298
+ items: {
299
+ $ref: (0, swagger_1.getSchemaPath)(options.response.serialization),
300
+ },
301
+ },
302
+ // todo metadata
303
+ // _metadata: {
304
+ // pagination: {
305
+ // availableSearch: options.response.availableSearch
306
+ // }
307
+ // },
308
+ // '_metadata.pagination.availableOrderBy': {
309
+ // example: options.response.availableOrderBy,
310
+ // },
311
+ },
312
+ },
313
+ }), (0, swagger_1.ApiQuery)({
314
+ name: 'search',
315
+ required: false,
316
+ allowEmptyValue: true,
317
+ type: 'string',
318
+ description: 'Search will base on _availableSearch with rule contains, and case insensitive',
319
+ }), (0, swagger_1.ApiQuery)({
320
+ name: 'perPage',
321
+ required: false,
322
+ allowEmptyValue: true,
323
+ example: 20,
324
+ type: 'number',
325
+ description: 'Data per page',
326
+ }), (0, swagger_1.ApiQuery)({
327
+ name: 'page',
328
+ required: false,
329
+ allowEmptyValue: true,
330
+ example: 1,
331
+ type: 'number',
332
+ description: 'page number',
333
+ }), (0, swagger_1.ApiQuery)({
334
+ name: 'orderBy',
335
+ required: false,
336
+ allowEmptyValue: true,
337
+ example: 'createdAt',
338
+ type: 'string',
339
+ description: 'Order by base on _availableOrderBy',
340
+ }), (0, swagger_1.ApiQuery)({
341
+ name: 'orderDirection',
342
+ required: false,
343
+ allowEmptyValue: true,
344
+ example: pagination_1.ENUM_PAGINATION_ORDER_DIRECTION_TYPE.ASC,
345
+ enum: pagination_1.ENUM_PAGINATION_ORDER_DIRECTION_TYPE,
346
+ type: 'string',
347
+ description: 'Order direction base on _availableOrderDirection',
348
+ }),
349
+ // default
350
+ (0, swagger_1.ApiHeader)({
351
+ name: 'x-custom-lang',
352
+ description: 'Custom language header',
353
+ required: false,
354
+ schema: {
355
+ default: options?.baseAppLanguage,
356
+ example: options?.baseAppLanguage,
357
+ type: 'string',
358
+ },
359
+ }), (0, swagger_1.ApiHeaders)(requestHeaders), DocDefault({
360
+ httpStatus: common_1.HttpStatus.SERVICE_UNAVAILABLE,
361
+ messagePath: errors_1.Api503ServiceUnavailableError.type,
362
+ statusCode: errors_1.Api503ServiceUnavailableError.statusCode,
363
+ }), DocDefault({
364
+ httpStatus: common_1.HttpStatus.INTERNAL_SERVER_ERROR,
365
+ messagePath: errors_1.Api500InternalServerError.type,
366
+ statusCode: errors_1.Api500InternalServerError.statusCode,
367
+ }), DocDefault({
368
+ httpStatus: common_1.HttpStatus.REQUEST_TIMEOUT,
369
+ messagePath: errors_1.Api408RequestTimeoutError.type,
370
+ statusCode: errors_1.Api408RequestTimeoutError.statusCode,
371
+ }), oneOfForbidden.length > 0
372
+ ? DocOneOf(common_1.HttpStatus.FORBIDDEN, ...oneOfForbidden)
373
+ : (0, request_1.Skip)(), oneOfUnauthorized.length > 0
374
+ ? DocOneOf(common_1.HttpStatus.UNAUTHORIZED, ...oneOfUnauthorized)
375
+ : (0, request_1.Skip)(), ...auths, ...docs);
376
+ }
377
+ function DocDefault(options) {
378
+ const docs = [];
379
+ const schema = {
380
+ allOf: [{ $ref: (0, swagger_1.getSchemaPath)((response_1.ResponseDefaultSerialization)) }],
381
+ properties: {
382
+ message: {
383
+ example: options.messagePath,
384
+ },
385
+ statusCode: {
386
+ type: 'number',
387
+ example: options.statusCode,
388
+ },
389
+ },
390
+ };
391
+ if (options.serialization) {
392
+ docs.push((0, swagger_1.ApiExtraModels)(options.serialization));
393
+ schema['properties'] = {
394
+ ...schema['properties'],
395
+ data: {
396
+ $ref: (0, swagger_1.getSchemaPath)(options.serialization),
397
+ },
398
+ };
399
+ }
400
+ return (0, common_1.applyDecorators)((0, swagger_1.ApiExtraModels)((response_1.ResponseDefaultSerialization)), (0, swagger_1.ApiResponse)({
401
+ status: options.httpStatus,
402
+ schema,
403
+ }), ...docs);
404
+ }
405
+ function DocOneOf(httpStatus, ...documents) {
406
+ const docs = [];
407
+ const oneOf = [];
408
+ for (const doc of documents) {
409
+ const oneOfSchema = {
410
+ allOf: [{ $ref: (0, swagger_1.getSchemaPath)((response_1.ResponseDefaultSerialization)) }],
411
+ properties: {
412
+ message: {
413
+ example: doc.messagePath,
414
+ },
415
+ statusCode: {
416
+ type: 'number',
417
+ example: doc.statusCode ?? common_1.HttpStatus.OK,
418
+ },
419
+ },
420
+ };
421
+ if (doc.serialization) {
422
+ docs.push((0, swagger_1.ApiExtraModels)(doc.serialization));
423
+ oneOfSchema['properties'] = {
424
+ ...oneOfSchema['properties'],
425
+ data: {
426
+ $ref: (0, swagger_1.getSchemaPath)(doc.serialization),
427
+ },
428
+ };
429
+ }
430
+ oneOf.push(oneOfSchema);
431
+ }
432
+ return (0, common_1.applyDecorators)((0, swagger_1.ApiExtraModels)((response_1.ResponseDefaultSerialization)), (0, swagger_1.ApiResponse)({
433
+ status: httpStatus,
434
+ schema: {
435
+ oneOf,
436
+ },
437
+ }), ...docs);
438
+ }
439
+ function DocAnyOf(httpStatus, ...documents) {
440
+ const docs = [];
441
+ const anyOf = [];
442
+ for (const doc of documents) {
443
+ const anyOfSchema = {
444
+ allOf: [{ $ref: (0, swagger_1.getSchemaPath)((response_1.ResponseDefaultSerialization)) }],
445
+ properties: {
446
+ message: {
447
+ example: doc.messagePath,
448
+ },
449
+ statusCode: {
450
+ type: 'number',
451
+ example: doc.statusCode ?? common_1.HttpStatus.OK,
452
+ },
453
+ },
454
+ };
455
+ if (doc.serialization) {
456
+ docs.push((0, swagger_1.ApiExtraModels)(doc.serialization));
457
+ anyOfSchema['properties'] = {
458
+ ...anyOfSchema['properties'],
459
+ data: {
460
+ $ref: (0, swagger_1.getSchemaPath)(doc.serialization),
461
+ },
462
+ };
463
+ }
464
+ anyOf.push(anyOfSchema);
465
+ }
466
+ return (0, common_1.applyDecorators)((0, swagger_1.ApiExtraModels)((response_1.ResponseDefaultSerialization)), (0, swagger_1.ApiResponse)({
467
+ status: httpStatus,
468
+ schema: {
469
+ anyOf,
470
+ },
471
+ }), ...docs);
472
+ }
473
+ function DocAllOf(httpStatus, ...documents) {
474
+ const docs = [];
475
+ const allOf = [];
476
+ for (const doc of documents) {
477
+ const allOfSchema = {
478
+ allOf: [{ $ref: (0, swagger_1.getSchemaPath)((response_1.ResponseDefaultSerialization)) }],
479
+ properties: {
480
+ message: {
481
+ example: doc.messagePath,
482
+ },
483
+ statusCode: {
484
+ type: 'number',
485
+ example: doc.statusCode ?? common_1.HttpStatus.OK,
486
+ },
487
+ },
488
+ };
489
+ if (doc.serialization) {
490
+ docs.push((0, swagger_1.ApiExtraModels)(doc.serialization));
491
+ allOfSchema['properties'] = {
492
+ ...allOfSchema['properties'],
493
+ data: {
494
+ $ref: (0, swagger_1.getSchemaPath)(doc.serialization),
495
+ },
496
+ };
497
+ }
498
+ allOf.push(allOfSchema);
499
+ }
500
+ return (0, common_1.applyDecorators)((0, swagger_1.ApiExtraModels)((response_1.ResponseDefaultSerialization)), (0, swagger_1.ApiResponse)({
501
+ status: httpStatus,
502
+ schema: {
503
+ allOf,
504
+ },
505
+ }), ...docs);
506
+ }
507
+ //# sourceMappingURL=doc.decorator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"doc.decorator.js","sourceRoot":"","sources":["../../../../../packages/doc/src/decorators/doc.decorator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export * from './doc.decorator';
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ tslib_1.__exportStar(require("./doc.decorator"), exports);
5
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../packages/doc/src/decorators/index.ts"],"names":[],"mappings":";;;AAAA,0DAAgC"}
package/src/index.d.ts ADDED
@@ -0,0 +1,3 @@
1
+ export * from './constants';
2
+ export * from './decorators';
3
+ export * from './interfaces';
package/src/index.js ADDED
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ tslib_1.__exportStar(require("./constants"), exports);
5
+ tslib_1.__exportStar(require("./decorators"), exports);
6
+ tslib_1.__exportStar(require("./interfaces"), exports);
7
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../packages/doc/src/index.ts"],"names":[],"mappings":";;;AAAA,sDAA4B;AAC5B,uDAA6B;AAC7B,uDAA6B"}
@@ -0,0 +1,55 @@
1
+ import { HttpStatus } from '@nestjs/common';
2
+ import { ApiParamOptions, ApiQueryOptions } from '@nestjs/swagger';
3
+ import { ClassConstructor } from 'class-transformer';
4
+ import { ENUM_DOC_REQUEST_BODY_TYPE, ENUM_DOC_RESPONSE_BODY_TYPE } from '../constants';
5
+ export interface IDocOfOptions {
6
+ messagePath: string;
7
+ statusCode: number;
8
+ serialization?: ClassConstructor<any>;
9
+ }
10
+ export interface IDocDefaultOptions {
11
+ httpStatus: HttpStatus;
12
+ messagePath: string;
13
+ statusCode?: number;
14
+ serialization?: ClassConstructor<any>;
15
+ }
16
+ export interface IDocOptions<T> {
17
+ baseAppLanguage?: string;
18
+ auth?: IDocAuthOptions;
19
+ requestHeader?: IDocRequestHeaderOptions;
20
+ response?: IDocResponseOptions<T>;
21
+ request?: IDocRequestOptions;
22
+ }
23
+ export interface IDocPagingOptions<T> extends Omit<IDocOptions<T>, 'response' | 'request'> {
24
+ response: IDocPagingResponseOptions<T>;
25
+ request?: Omit<IDocRequestOptions, 'bodyType' | 'file'>;
26
+ }
27
+ export interface IDocResponseOptions<T> {
28
+ statusCode?: number;
29
+ httpStatus?: HttpStatus;
30
+ bodyType?: ENUM_DOC_RESPONSE_BODY_TYPE;
31
+ serialization?: ClassConstructor<T>;
32
+ }
33
+ export interface IDocPagingResponseOptions<T> extends Pick<IDocResponseOptions<T>, 'statusCode'> {
34
+ serialization: ClassConstructor<T>;
35
+ availableSearch: string[];
36
+ availableOrderBy: string[];
37
+ }
38
+ export interface IDocAuthOptions {
39
+ jwtAccessToken?: boolean;
40
+ jwtRefreshToken?: boolean;
41
+ apiKey?: boolean;
42
+ permissionToken?: boolean;
43
+ }
44
+ export interface IDocRequestHeaderOptions {
45
+ userAgent?: boolean;
46
+ timestamp?: boolean;
47
+ }
48
+ export interface IDocRequestOptions {
49
+ params?: ApiParamOptions[];
50
+ queries?: ApiQueryOptions[];
51
+ bodyType?: ENUM_DOC_REQUEST_BODY_TYPE;
52
+ file?: {
53
+ multiple: boolean;
54
+ };
55
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=doc.interface.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"doc.interface.js","sourceRoot":"","sources":["../../../../../packages/doc/src/interfaces/doc.interface.ts"],"names":[],"mappings":""}
@@ -0,0 +1 @@
1
+ export * from './doc.interface';
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ tslib_1.__exportStar(require("./doc.interface"), exports);
5
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../packages/doc/src/interfaces/index.ts"],"names":[],"mappings":";;;AAAA,0DAAgC"}