ts-deco 1.0.26 → 1.0.27

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.
Files changed (96) hide show
  1. package/dist/src/decorators/controllers/index.d.ts +11 -11
  2. package/dist/src/decorators/controllers/index.d.ts.map +1 -1
  3. package/dist/src/decorators/controllers/index.js +11 -11
  4. package/dist/src/decorators/controllers/index.js.map +1 -1
  5. package/dist/src/decorators/controllers/lib/controller-metadata.d.ts +14 -0
  6. package/dist/src/decorators/controllers/lib/controller-metadata.d.ts.map +1 -0
  7. package/dist/src/decorators/controllers/lib/controller-metadata.js +17 -0
  8. package/dist/src/decorators/controllers/lib/controller-metadata.js.map +1 -0
  9. package/dist/src/decorators/controllers/lib/controller.decorator.d.ts +24 -0
  10. package/dist/src/decorators/controllers/lib/controller.decorator.d.ts.map +1 -0
  11. package/dist/src/decorators/controllers/lib/controller.decorator.js +42 -0
  12. package/dist/src/decorators/controllers/lib/controller.decorator.js.map +1 -0
  13. package/dist/src/decorators/controllers/lib/doc-body.decorator.d.ts +20 -0
  14. package/dist/src/decorators/controllers/lib/doc-body.decorator.d.ts.map +1 -0
  15. package/dist/src/decorators/controllers/lib/doc-body.decorator.js +39 -0
  16. package/dist/src/decorators/controllers/lib/doc-body.decorator.js.map +1 -0
  17. package/dist/src/decorators/controllers/lib/doc-operation.decorator.d.ts +15 -0
  18. package/dist/src/decorators/controllers/lib/doc-operation.decorator.d.ts.map +1 -0
  19. package/dist/src/decorators/controllers/lib/doc-operation.decorator.js +23 -0
  20. package/dist/src/decorators/controllers/lib/doc-operation.decorator.js.map +1 -0
  21. package/dist/src/decorators/controllers/lib/doc-param.decorator.d.ts +20 -0
  22. package/dist/src/decorators/controllers/lib/doc-param.decorator.d.ts.map +1 -0
  23. package/dist/src/decorators/controllers/lib/doc-param.decorator.js +41 -0
  24. package/dist/src/decorators/controllers/lib/doc-param.decorator.js.map +1 -0
  25. package/dist/src/decorators/controllers/lib/doc-query.decorator.d.ts +20 -0
  26. package/dist/src/decorators/controllers/lib/doc-query.decorator.d.ts.map +1 -0
  27. package/dist/src/decorators/controllers/lib/doc-query.decorator.js +41 -0
  28. package/dist/src/decorators/controllers/lib/doc-query.decorator.js.map +1 -0
  29. package/dist/src/decorators/controllers/lib/doc-response.decorator.d.ts +16 -0
  30. package/dist/src/decorators/controllers/lib/doc-response.decorator.d.ts.map +1 -0
  31. package/dist/src/decorators/controllers/lib/doc-response.decorator.js +25 -0
  32. package/dist/src/decorators/controllers/lib/doc-response.decorator.js.map +1 -0
  33. package/dist/src/decorators/controllers/lib/doc-tags.decorator.d.ts +17 -0
  34. package/dist/src/decorators/controllers/lib/doc-tags.decorator.d.ts.map +1 -0
  35. package/dist/src/decorators/controllers/lib/doc-tags.decorator.js +35 -0
  36. package/dist/src/decorators/controllers/lib/doc-tags.decorator.js.map +1 -0
  37. package/dist/src/decorators/controllers/lib/endpoint.decorator.d.ts +27 -0
  38. package/dist/src/decorators/controllers/lib/endpoint.decorator.d.ts.map +1 -0
  39. package/dist/src/decorators/controllers/lib/endpoint.decorator.js +95 -0
  40. package/dist/src/decorators/controllers/lib/endpoint.decorator.js.map +1 -0
  41. package/dist/src/decorators/controllers/lib/operation.decorator.d.ts +31 -0
  42. package/dist/src/decorators/controllers/lib/operation.decorator.d.ts.map +1 -0
  43. package/dist/src/decorators/controllers/lib/operation.decorator.js +93 -0
  44. package/dist/src/decorators/controllers/lib/operation.decorator.js.map +1 -0
  45. package/dist/src/decorators/controllers/lib/resource.decorator.d.ts +29 -0
  46. package/dist/src/decorators/controllers/lib/resource.decorator.d.ts.map +1 -0
  47. package/dist/src/decorators/controllers/lib/resource.decorator.js +57 -0
  48. package/dist/src/decorators/controllers/lib/resource.decorator.js.map +1 -0
  49. package/dist/src/decorators/utils/apply-decorators.d.ts +1 -1
  50. package/dist/src/decorators/utils/apply-decorators.d.ts.map +1 -1
  51. package/dist/src/decorators/utils/apply-decorators.js +3 -2
  52. package/dist/src/decorators/utils/apply-decorators.js.map +1 -1
  53. package/dist/src/decorators/validators/index.d.ts +10 -10
  54. package/dist/src/decorators/validators/index.d.ts.map +1 -1
  55. package/dist/src/decorators/validators/index.js +6 -6
  56. package/dist/src/decorators/validators/index.js.map +1 -1
  57. package/dist/src/decorators/validators/lib/boolean.decorator.d.ts +6 -0
  58. package/dist/src/decorators/validators/lib/boolean.decorator.d.ts.map +1 -0
  59. package/dist/src/decorators/validators/lib/boolean.decorator.js +23 -0
  60. package/dist/src/decorators/validators/lib/boolean.decorator.js.map +1 -0
  61. package/dist/src/decorators/validators/lib/date.decorator.d.ts +6 -0
  62. package/dist/src/decorators/validators/lib/date.decorator.d.ts.map +1 -0
  63. package/dist/src/decorators/validators/lib/date.decorator.js +23 -0
  64. package/dist/src/decorators/validators/lib/date.decorator.js.map +1 -0
  65. package/dist/src/decorators/validators/lib/enum.decorator.d.ts +6 -0
  66. package/dist/src/decorators/validators/lib/enum.decorator.d.ts.map +1 -0
  67. package/dist/src/decorators/validators/lib/enum.decorator.js +22 -0
  68. package/dist/src/decorators/validators/lib/enum.decorator.js.map +1 -0
  69. package/dist/src/decorators/validators/lib/number.decorator.d.ts +7 -0
  70. package/dist/src/decorators/validators/lib/number.decorator.d.ts.map +1 -0
  71. package/dist/src/decorators/validators/lib/number.decorator.js +52 -0
  72. package/dist/src/decorators/validators/lib/number.decorator.js.map +1 -0
  73. package/dist/src/decorators/validators/lib/property.decorator.d.ts +14 -0
  74. package/dist/src/decorators/validators/lib/property.decorator.d.ts.map +1 -0
  75. package/dist/src/decorators/validators/lib/property.decorator.js +58 -0
  76. package/dist/src/decorators/validators/lib/property.decorator.js.map +1 -0
  77. package/dist/src/decorators/validators/lib/string.decorator.d.ts +6 -0
  78. package/dist/src/decorators/validators/lib/string.decorator.d.ts.map +1 -0
  79. package/dist/src/decorators/validators/lib/string.decorator.js +16 -0
  80. package/dist/src/decorators/validators/lib/string.decorator.js.map +1 -0
  81. package/dist/src/decorators/validators/lib/validator.type.d.ts +78 -0
  82. package/dist/src/decorators/validators/lib/validator.type.d.ts.map +1 -0
  83. package/dist/src/decorators/validators/lib/validator.type.js +3 -0
  84. package/dist/src/decorators/validators/lib/validator.type.js.map +1 -0
  85. package/dist/src/decorators/validators/utils/array-normalize.d.ts +1 -1
  86. package/dist/src/decorators/validators/utils/array-normalize.d.ts.map +1 -1
  87. package/dist/src/decorators/validators/utils/array-normalize.js.map +1 -1
  88. package/dist/src/decorators/validators/utils/common-decorators.d.ts +2 -2
  89. package/dist/src/decorators/validators/utils/common-decorators.d.ts.map +1 -1
  90. package/dist/src/decorators/validators/utils/common-decorators.js +11 -3
  91. package/dist/src/decorators/validators/utils/common-decorators.js.map +1 -1
  92. package/dist/src/decorators/validators/utils/extract-options.d.ts +2 -2
  93. package/dist/src/decorators/validators/utils/extract-options.d.ts.map +1 -1
  94. package/dist/src/decorators/validators/utils/extract-options.js +9 -3
  95. package/dist/src/decorators/validators/utils/extract-options.js.map +1 -1
  96. package/package.json +2 -1
@@ -1,13 +1,13 @@
1
- export { DocTags } from "./doc-tags.decorator";
2
- export { DocOperation } from "./doc-operation.decorator";
3
- export { DocResponse } from "./doc-response.decorator";
4
- export { DocParam } from "./doc-param.decorator";
5
- export { DocQuery } from "./doc-query.decorator";
6
- export { DocBody } from "./doc-body.decorator";
7
- export { Operation } from "./operation.decorator";
8
- export { Controller } from "./controller.decorator";
9
- export { Resource } from "./resource.decorator";
10
- export { Endpoint } from "./endpoint.decorator";
1
+ export { DocTags } from "./lib/doc-tags.decorator";
2
+ export { DocOperation } from "./lib/doc-operation.decorator";
3
+ export { DocResponse } from "./lib/doc-response.decorator";
4
+ export { DocParam } from "./lib/doc-param.decorator";
5
+ export { DocQuery } from "./lib/doc-query.decorator";
6
+ export { DocBody } from "./lib/doc-body.decorator";
7
+ export { Operation } from "./lib/operation.decorator";
8
+ export { Controller } from "./lib/controller.decorator";
9
+ export { Resource } from "./lib/resource.decorator";
10
+ export { Endpoint } from "./lib/endpoint.decorator";
11
11
  export type { ControllerOptions, DocTagsOptions, DocOperationOptions, DocResponseOptions, DocParamOptions, DocQueryOptions, DocBodyOptions, ResourceOptions, OperationOptions, EndpointOptions, EndpointResponseOption, HttpMethod, } from "./types/controller.types";
12
- export { CONTROLLER_METADATA } from "./controller-metadata";
12
+ export { CONTROLLER_METADATA } from "./lib/controller-metadata";
13
13
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/decorators/controllers/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjD,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjD,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAC/C,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAClD,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAChD,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAGhD,YAAY,EACV,iBAAiB,EACjB,cAAc,EACd,mBAAmB,EACnB,kBAAkB,EAClB,eAAe,EACf,eAAe,EACf,cAAc,EACd,eAAe,EACf,gBAAgB,EAChB,eAAe,EACf,sBAAsB,EACtB,UAAU,GACX,MAAM,0BAA0B,CAAC;AAGlC,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/decorators/controllers/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAC;AACnD,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAC7D,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAC3D,OAAO,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AACrD,OAAO,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AACrD,OAAO,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAC;AACnD,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AACtD,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AACxD,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AACpD,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAGpD,YAAY,EACV,iBAAiB,EACjB,cAAc,EACd,mBAAmB,EACnB,kBAAkB,EAClB,eAAe,EACf,eAAe,EACf,cAAc,EACd,eAAe,EACf,gBAAgB,EAChB,eAAe,EACf,sBAAsB,EACtB,UAAU,GACX,MAAM,0BAA0B,CAAC;AAGlC,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC"}
@@ -2,27 +2,27 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.CONTROLLER_METADATA = exports.Endpoint = exports.Resource = exports.Controller = exports.Operation = exports.DocBody = exports.DocQuery = exports.DocParam = exports.DocResponse = exports.DocOperation = exports.DocTags = void 0;
4
4
  // Controller Decorators
5
- var doc_tags_decorator_1 = require("./doc-tags.decorator");
5
+ var doc_tags_decorator_1 = require("./lib/doc-tags.decorator");
6
6
  Object.defineProperty(exports, "DocTags", { enumerable: true, get: function () { return doc_tags_decorator_1.DocTags; } });
7
- var doc_operation_decorator_1 = require("./doc-operation.decorator");
7
+ var doc_operation_decorator_1 = require("./lib/doc-operation.decorator");
8
8
  Object.defineProperty(exports, "DocOperation", { enumerable: true, get: function () { return doc_operation_decorator_1.DocOperation; } });
9
- var doc_response_decorator_1 = require("./doc-response.decorator");
9
+ var doc_response_decorator_1 = require("./lib/doc-response.decorator");
10
10
  Object.defineProperty(exports, "DocResponse", { enumerable: true, get: function () { return doc_response_decorator_1.DocResponse; } });
11
- var doc_param_decorator_1 = require("./doc-param.decorator");
11
+ var doc_param_decorator_1 = require("./lib/doc-param.decorator");
12
12
  Object.defineProperty(exports, "DocParam", { enumerable: true, get: function () { return doc_param_decorator_1.DocParam; } });
13
- var doc_query_decorator_1 = require("./doc-query.decorator");
13
+ var doc_query_decorator_1 = require("./lib/doc-query.decorator");
14
14
  Object.defineProperty(exports, "DocQuery", { enumerable: true, get: function () { return doc_query_decorator_1.DocQuery; } });
15
- var doc_body_decorator_1 = require("./doc-body.decorator");
15
+ var doc_body_decorator_1 = require("./lib/doc-body.decorator");
16
16
  Object.defineProperty(exports, "DocBody", { enumerable: true, get: function () { return doc_body_decorator_1.DocBody; } });
17
- var operation_decorator_1 = require("./operation.decorator");
17
+ var operation_decorator_1 = require("./lib/operation.decorator");
18
18
  Object.defineProperty(exports, "Operation", { enumerable: true, get: function () { return operation_decorator_1.Operation; } });
19
- var controller_decorator_1 = require("./controller.decorator");
19
+ var controller_decorator_1 = require("./lib/controller.decorator");
20
20
  Object.defineProperty(exports, "Controller", { enumerable: true, get: function () { return controller_decorator_1.Controller; } });
21
- var resource_decorator_1 = require("./resource.decorator");
21
+ var resource_decorator_1 = require("./lib/resource.decorator");
22
22
  Object.defineProperty(exports, "Resource", { enumerable: true, get: function () { return resource_decorator_1.Resource; } });
23
- var endpoint_decorator_1 = require("./endpoint.decorator");
23
+ var endpoint_decorator_1 = require("./lib/endpoint.decorator");
24
24
  Object.defineProperty(exports, "Endpoint", { enumerable: true, get: function () { return endpoint_decorator_1.Endpoint; } });
25
25
  // Metadata Keys
26
- var controller_metadata_1 = require("./controller-metadata");
26
+ var controller_metadata_1 = require("./lib/controller-metadata");
27
27
  Object.defineProperty(exports, "CONTROLLER_METADATA", { enumerable: true, get: function () { return controller_metadata_1.CONTROLLER_METADATA; } });
28
28
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/decorators/controllers/index.ts"],"names":[],"mappings":";;;AAAA,wBAAwB;AACxB,2DAA+C;AAAtC,6GAAA,OAAO,OAAA;AAChB,qEAAyD;AAAhD,uHAAA,YAAY,OAAA;AACrB,mEAAuD;AAA9C,qHAAA,WAAW,OAAA;AACpB,6DAAiD;AAAxC,+GAAA,QAAQ,OAAA;AACjB,6DAAiD;AAAxC,+GAAA,QAAQ,OAAA;AACjB,2DAA+C;AAAtC,6GAAA,OAAO,OAAA;AAChB,6DAAkD;AAAzC,gHAAA,SAAS,OAAA;AAClB,+DAAoD;AAA3C,kHAAA,UAAU,OAAA;AACnB,2DAAgD;AAAvC,8GAAA,QAAQ,OAAA;AACjB,2DAAgD;AAAvC,8GAAA,QAAQ,OAAA;AAkBjB,gBAAgB;AAChB,6DAA4D;AAAnD,0HAAA,mBAAmB,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/decorators/controllers/index.ts"],"names":[],"mappings":";;;AAAA,wBAAwB;AACxB,+DAAmD;AAA1C,6GAAA,OAAO,OAAA;AAChB,yEAA6D;AAApD,uHAAA,YAAY,OAAA;AACrB,uEAA2D;AAAlD,qHAAA,WAAW,OAAA;AACpB,iEAAqD;AAA5C,+GAAA,QAAQ,OAAA;AACjB,iEAAqD;AAA5C,+GAAA,QAAQ,OAAA;AACjB,+DAAmD;AAA1C,6GAAA,OAAO,OAAA;AAChB,iEAAsD;AAA7C,gHAAA,SAAS,OAAA;AAClB,mEAAwD;AAA/C,kHAAA,UAAU,OAAA;AACnB,+DAAoD;AAA3C,8GAAA,QAAQ,OAAA;AACjB,+DAAoD;AAA3C,8GAAA,QAAQ,OAAA;AAkBjB,gBAAgB;AAChB,iEAAgE;AAAvD,0HAAA,mBAAmB,OAAA"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Controller 데코레이터용 메타데이터 키
3
+ */
4
+ export declare const CONTROLLER_METADATA: {
5
+ readonly DOC_TAGS: "swagger/docTags";
6
+ readonly DOC_OPERATION: "swagger/docOperation";
7
+ readonly DOC_RESPONSE: "swagger/docResponse";
8
+ readonly DOC_PARAM: "swagger/docParam";
9
+ readonly DOC_QUERY: "swagger/docQuery";
10
+ readonly DOC_BODY: "swagger/docBody";
11
+ readonly DOC_E: "swagger/docE";
12
+ readonly CONTROLLER_PATH: "swagger/controllerPath";
13
+ };
14
+ //# sourceMappingURL=controller-metadata.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"controller-metadata.d.ts","sourceRoot":"","sources":["../../../../../src/decorators/controllers/lib/controller-metadata.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,eAAO,MAAM,mBAAmB;;;;;;;;;CAStB,CAAC"}
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CONTROLLER_METADATA = void 0;
4
+ /**
5
+ * Controller 데코레이터용 메타데이터 키
6
+ */
7
+ exports.CONTROLLER_METADATA = {
8
+ DOC_TAGS: 'swagger/docTags',
9
+ DOC_OPERATION: 'swagger/docOperation',
10
+ DOC_RESPONSE: 'swagger/docResponse',
11
+ DOC_PARAM: 'swagger/docParam',
12
+ DOC_QUERY: 'swagger/docQuery',
13
+ DOC_BODY: 'swagger/docBody',
14
+ DOC_E: 'swagger/docE',
15
+ CONTROLLER_PATH: 'swagger/controllerPath',
16
+ };
17
+ //# sourceMappingURL=controller-metadata.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"controller-metadata.js","sourceRoot":"","sources":["../../../../../src/decorators/controllers/lib/controller-metadata.ts"],"names":[],"mappings":";;;AAAA;;GAEG;AACU,QAAA,mBAAmB,GAAG;IAC/B,QAAQ,EAAE,iBAAiB;IAC3B,aAAa,EAAE,sBAAsB;IACrC,YAAY,EAAE,qBAAqB;IACnC,SAAS,EAAE,kBAAkB;IAC7B,SAAS,EAAE,kBAAkB;IAC7B,QAAQ,EAAE,iBAAiB;IAC3B,KAAK,EAAE,cAAc;IACrB,eAAe,EAAE,wBAAwB;CACnC,CAAC"}
@@ -0,0 +1,24 @@
1
+ import "reflect-metadata";
2
+ import type { ControllerOptions } from "../types/controller.types";
3
+ export type { ControllerOptions } from "../types/controller.types";
4
+ /**
5
+ * Controller 데코레이터 - NestJS 스타일의 컨트롤러 데코레이터
6
+ * 클래스에 적용하여 모든 메서드에 자동으로 태그를 적용하고 경로를 설정
7
+ *
8
+ * @example
9
+ * ```typescript
10
+ * // 간단한 사용법 (태그만)
11
+ * @Controller('Users')
12
+ * class UserController {}
13
+ *
14
+ * // 경로 포함
15
+ * @Controller({ tag: 'Users', path: '/api/users' })
16
+ * class UserController {}
17
+ *
18
+ * // 또는 첫 번째 인자로 태그, 두 번째 인자로 경로
19
+ * @Controller('Users', '/api/users')
20
+ * class UserController {}
21
+ * ```
22
+ */
23
+ export declare function Controller(tagOrOptions: string | ControllerOptions, path?: string): ClassDecorator;
24
+ //# sourceMappingURL=controller.decorator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"controller.decorator.d.ts","sourceRoot":"","sources":["../../../../../src/decorators/controllers/lib/controller.decorator.ts"],"names":[],"mappings":"AAAA,OAAO,kBAAkB,CAAC;AAE1B,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAGnE,YAAY,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAEnE;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,UAAU,CACxB,YAAY,EAAE,MAAM,GAAG,iBAAiB,EACxC,IAAI,CAAC,EAAE,MAAM,GACZ,cAAc,CA6BhB"}
@@ -0,0 +1,42 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Controller = Controller;
4
+ require("reflect-metadata");
5
+ const controller_metadata_1 = require("./controller-metadata");
6
+ const parse_controller_args_1 = require("../utils/parse-controller-args");
7
+ /**
8
+ * Controller 데코레이터 - NestJS 스타일의 컨트롤러 데코레이터
9
+ * 클래스에 적용하여 모든 메서드에 자동으로 태그를 적용하고 경로를 설정
10
+ *
11
+ * @example
12
+ * ```typescript
13
+ * // 간단한 사용법 (태그만)
14
+ * @Controller('Users')
15
+ * class UserController {}
16
+ *
17
+ * // 경로 포함
18
+ * @Controller({ tag: 'Users', path: '/api/users' })
19
+ * class UserController {}
20
+ *
21
+ * // 또는 첫 번째 인자로 태그, 두 번째 인자로 경로
22
+ * @Controller('Users', '/api/users')
23
+ * class UserController {}
24
+ * ```
25
+ */
26
+ function Controller(tagOrOptions, path) {
27
+ return function (target) {
28
+ const { tag, path: controllerPath } = (0, parse_controller_args_1.parseControllerArgs)(tagOrOptions, path);
29
+ // 태그 저장
30
+ if (tag) {
31
+ const existingTags = Reflect.getMetadata(controller_metadata_1.CONTROLLER_METADATA.DOC_TAGS, target) || [];
32
+ if (!existingTags.includes(tag)) {
33
+ Reflect.defineMetadata(controller_metadata_1.CONTROLLER_METADATA.DOC_TAGS, [...existingTags, tag], target);
34
+ }
35
+ }
36
+ // 경로 저장
37
+ if (controllerPath) {
38
+ Reflect.defineMetadata(controller_metadata_1.CONTROLLER_METADATA.CONTROLLER_PATH, controllerPath, target);
39
+ }
40
+ };
41
+ }
42
+ //# sourceMappingURL=controller.decorator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"controller.decorator.js","sourceRoot":"","sources":["../../../../../src/decorators/controllers/lib/controller.decorator.ts"],"names":[],"mappings":";;AA0BA,gCAgCC;AA1DD,4BAA0B;AAC1B,+DAA4D;AAE5D,0EAAqE;AAIrE;;;;;;;;;;;;;;;;;;GAkBG;AACH,SAAgB,UAAU,CACxB,YAAwC,EACxC,IAAa;IAEb,OAAO,UAAU,MAAW;QAC1B,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,cAAc,EAAE,GAAG,IAAA,2CAAmB,EACvD,YAAY,EACZ,IAAI,CACL,CAAC;QAEF,QAAQ;QACR,IAAI,GAAG,EAAE,CAAC;YACR,MAAM,YAAY,GAChB,OAAO,CAAC,WAAW,CAAC,yCAAmB,CAAC,QAAQ,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC;YAClE,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;gBAChC,OAAO,CAAC,cAAc,CACpB,yCAAmB,CAAC,QAAQ,EAC5B,CAAC,GAAG,YAAY,EAAE,GAAG,CAAC,EACtB,MAAM,CACP,CAAC;YACJ,CAAC;QACH,CAAC;QAED,QAAQ;QACR,IAAI,cAAc,EAAE,CAAC;YACnB,OAAO,CAAC,cAAc,CACpB,yCAAmB,CAAC,eAAe,EACnC,cAAc,EACd,MAAM,CACP,CAAC;QACJ,CAAC;IACH,CAAC,CAAC;AACJ,CAAC"}
@@ -0,0 +1,20 @@
1
+ import "reflect-metadata";
2
+ import type { DocBodyOptions } from "../types/controller.types";
3
+ /**
4
+ * DocBody 데코레이터 - Swagger 요청 본문 설정
5
+ * 파라미터 또는 메서드에 적용 가능
6
+ *
7
+ * @example
8
+ * ```typescript
9
+ * // 파라미터에 적용
10
+ * @Post('/users')
11
+ * createUser(@DocBody({ type: CreateUserDto }) dto: CreateUserDto) {}
12
+ *
13
+ * // 메서드에 적용
14
+ * @DocBody({ type: CreateUserDto })
15
+ * @Post('/users')
16
+ * createUser(dto: CreateUserDto) {}
17
+ * ```
18
+ */
19
+ export declare function DocBody(options: DocBodyOptions): any;
20
+ //# sourceMappingURL=doc-body.decorator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"doc-body.decorator.d.ts","sourceRoot":"","sources":["../../../../../src/decorators/controllers/lib/doc-body.decorator.ts"],"names":[],"mappings":"AAAA,OAAO,kBAAkB,CAAC;AAE1B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAEhE;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,OAAO,CAAC,OAAO,EAAE,cAAc,GAAG,GAAG,CA8BpD"}
@@ -0,0 +1,39 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DocBody = DocBody;
4
+ require("reflect-metadata");
5
+ const controller_metadata_1 = require("./controller-metadata");
6
+ /**
7
+ * DocBody 데코레이터 - Swagger 요청 본문 설정
8
+ * 파라미터 또는 메서드에 적용 가능
9
+ *
10
+ * @example
11
+ * ```typescript
12
+ * // 파라미터에 적용
13
+ * @Post('/users')
14
+ * createUser(@DocBody({ type: CreateUserDto }) dto: CreateUserDto) {}
15
+ *
16
+ * // 메서드에 적용
17
+ * @DocBody({ type: CreateUserDto })
18
+ * @Post('/users')
19
+ * createUser(dto: CreateUserDto) {}
20
+ * ```
21
+ */
22
+ function DocBody(options) {
23
+ return function (target, propertyKey, descriptorOrIndex) {
24
+ if (typeof descriptorOrIndex === "number") {
25
+ // ParameterDecorator
26
+ const bodyMetadata = {
27
+ ...options,
28
+ parameterIndex: descriptorOrIndex,
29
+ };
30
+ Reflect.defineMetadata(controller_metadata_1.CONTROLLER_METADATA.DOC_BODY, bodyMetadata, target, propertyKey);
31
+ }
32
+ else if (descriptorOrIndex !== undefined) {
33
+ // MethodDecorator
34
+ Reflect.defineMetadata(controller_metadata_1.CONTROLLER_METADATA.DOC_BODY, options, target, propertyKey);
35
+ return descriptorOrIndex;
36
+ }
37
+ };
38
+ }
39
+ //# sourceMappingURL=doc-body.decorator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"doc-body.decorator.js","sourceRoot":"","sources":["../../../../../src/decorators/controllers/lib/doc-body.decorator.ts"],"names":[],"mappings":";;AAoBA,0BA8BC;AAlDD,4BAA0B;AAC1B,+DAA4D;AAG5D;;;;;;;;;;;;;;;GAeG;AACH,SAAgB,OAAO,CAAC,OAAuB;IAC7C,OAAO,UACL,MAAW,EACX,WAA6B,EAC7B,iBAA+C;QAE/C,IAAI,OAAO,iBAAiB,KAAK,QAAQ,EAAE,CAAC;YAC1C,qBAAqB;YACrB,MAAM,YAAY,GAAG;gBACnB,GAAG,OAAO;gBACV,cAAc,EAAE,iBAAiB;aAClC,CAAC;YAEF,OAAO,CAAC,cAAc,CACpB,yCAAmB,CAAC,QAAQ,EAC5B,YAAY,EACZ,MAAM,EACN,WAAqB,CACtB,CAAC;QACJ,CAAC;aAAM,IAAI,iBAAiB,KAAK,SAAS,EAAE,CAAC;YAC3C,kBAAkB;YAClB,OAAO,CAAC,cAAc,CACpB,yCAAmB,CAAC,QAAQ,EAC5B,OAAO,EACP,MAAM,EACN,WAAqB,CACtB,CAAC;YACF,OAAO,iBAAiB,CAAC;QAC3B,CAAC;IACH,CAAC,CAAC;AACJ,CAAC"}
@@ -0,0 +1,15 @@
1
+ import "reflect-metadata";
2
+ import type { DocOperationOptions } from "../types/controller.types";
3
+ /**
4
+ * DocOperation 데코레이터 - Swagger 작업(operation) 설정
5
+ * 메서드에 적용
6
+ *
7
+ * @example
8
+ * ```typescript
9
+ * @DocOperation({ summary: '사용자 생성', description: '새로운 사용자를 생성합니다' })
10
+ * @Post('/users')
11
+ * createUser() {}
12
+ * ```
13
+ */
14
+ export declare function DocOperation(options: DocOperationOptions): MethodDecorator;
15
+ //# sourceMappingURL=doc-operation.decorator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"doc-operation.decorator.d.ts","sourceRoot":"","sources":["../../../../../src/decorators/controllers/lib/doc-operation.decorator.ts"],"names":[],"mappings":"AAAA,OAAO,kBAAkB,CAAC;AAE1B,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAErE;;;;;;;;;;GAUG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,mBAAmB,GAAG,eAAe,CAc1E"}
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DocOperation = DocOperation;
4
+ require("reflect-metadata");
5
+ const controller_metadata_1 = require("./controller-metadata");
6
+ /**
7
+ * DocOperation 데코레이터 - Swagger 작업(operation) 설정
8
+ * 메서드에 적용
9
+ *
10
+ * @example
11
+ * ```typescript
12
+ * @DocOperation({ summary: '사용자 생성', description: '새로운 사용자를 생성합니다' })
13
+ * @Post('/users')
14
+ * createUser() {}
15
+ * ```
16
+ */
17
+ function DocOperation(options) {
18
+ return function (target, propertyKey, descriptor) {
19
+ Reflect.defineMetadata(controller_metadata_1.CONTROLLER_METADATA.DOC_OPERATION, options, target, propertyKey);
20
+ return descriptor;
21
+ };
22
+ }
23
+ //# sourceMappingURL=doc-operation.decorator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"doc-operation.decorator.js","sourceRoot":"","sources":["../../../../../src/decorators/controllers/lib/doc-operation.decorator.ts"],"names":[],"mappings":";;AAeA,oCAcC;AA7BD,4BAA0B;AAC1B,+DAA4D;AAG5D;;;;;;;;;;GAUG;AACH,SAAgB,YAAY,CAAC,OAA4B;IACvD,OAAO,UACL,MAAW,EACX,WAA4B,EAC5B,UAA8B;QAE9B,OAAO,CAAC,cAAc,CACpB,yCAAmB,CAAC,aAAa,EACjC,OAAO,EACP,MAAM,EACN,WAAW,CACZ,CAAC;QACF,OAAO,UAAU,CAAC;IACpB,CAAC,CAAC;AACJ,CAAC"}
@@ -0,0 +1,20 @@
1
+ import "reflect-metadata";
2
+ import type { DocParamOptions } from "../types/controller.types";
3
+ /**
4
+ * DocParam 데코레이터 - Swagger 경로 파라미터 설정
5
+ * 파라미터 또는 메서드에 적용 가능
6
+ *
7
+ * @example
8
+ * ```typescript
9
+ * // 파라미터에 적용
10
+ * @Get('/users/:id')
11
+ * getUser(@DocParam({ name: 'id', type: String }) id: string) {}
12
+ *
13
+ * // 메서드에 적용
14
+ * @DocParam({ name: 'id', type: String, required: true })
15
+ * @Get('/users/:id')
16
+ * getUser(id: string) {}
17
+ * ```
18
+ */
19
+ export declare function DocParam(options: DocParamOptions): any;
20
+ //# sourceMappingURL=doc-param.decorator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"doc-param.decorator.d.ts","sourceRoot":"","sources":["../../../../../src/decorators/controllers/lib/doc-param.decorator.ts"],"names":[],"mappings":"AAAA,OAAO,kBAAkB,CAAC;AAE1B,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAEjE;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,QAAQ,CAAC,OAAO,EAAE,eAAe,GAAG,GAAG,CA4CtD"}
@@ -0,0 +1,41 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DocParam = DocParam;
4
+ require("reflect-metadata");
5
+ const controller_metadata_1 = require("./controller-metadata");
6
+ /**
7
+ * DocParam 데코레이터 - Swagger 경로 파라미터 설정
8
+ * 파라미터 또는 메서드에 적용 가능
9
+ *
10
+ * @example
11
+ * ```typescript
12
+ * // 파라미터에 적용
13
+ * @Get('/users/:id')
14
+ * getUser(@DocParam({ name: 'id', type: String }) id: string) {}
15
+ *
16
+ * // 메서드에 적용
17
+ * @DocParam({ name: 'id', type: String, required: true })
18
+ * @Get('/users/:id')
19
+ * getUser(id: string) {}
20
+ * ```
21
+ */
22
+ function DocParam(options) {
23
+ return function (target, propertyKey, descriptorOrIndex) {
24
+ if (typeof descriptorOrIndex === "number") {
25
+ // ParameterDecorator
26
+ const existingParams = Reflect.getMetadata(controller_metadata_1.CONTROLLER_METADATA.DOC_PARAM, target, propertyKey) || [];
27
+ const paramMetadata = {
28
+ ...options,
29
+ parameterIndex: descriptorOrIndex,
30
+ };
31
+ Reflect.defineMetadata(controller_metadata_1.CONTROLLER_METADATA.DOC_PARAM, [...existingParams, paramMetadata], target, propertyKey);
32
+ }
33
+ else if (descriptorOrIndex !== undefined) {
34
+ // MethodDecorator
35
+ const existingParams = Reflect.getMetadata(controller_metadata_1.CONTROLLER_METADATA.DOC_PARAM, target, propertyKey) || [];
36
+ Reflect.defineMetadata(controller_metadata_1.CONTROLLER_METADATA.DOC_PARAM, [...existingParams, options], target, propertyKey);
37
+ return descriptorOrIndex;
38
+ }
39
+ };
40
+ }
41
+ //# sourceMappingURL=doc-param.decorator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"doc-param.decorator.js","sourceRoot":"","sources":["../../../../../src/decorators/controllers/lib/doc-param.decorator.ts"],"names":[],"mappings":";;AAoBA,4BA4CC;AAhED,4BAA0B;AAC1B,+DAA4D;AAG5D;;;;;;;;;;;;;;;GAeG;AACH,SAAgB,QAAQ,CAAC,OAAwB;IAC/C,OAAO,UACL,MAAW,EACX,WAA6B,EAC7B,iBAA+C;QAE/C,IAAI,OAAO,iBAAiB,KAAK,QAAQ,EAAE,CAAC;YAC1C,qBAAqB;YACrB,MAAM,cAAc,GAClB,OAAO,CAAC,WAAW,CACjB,yCAAmB,CAAC,SAAS,EAC7B,MAAM,EACN,WAAqB,CACtB,IAAI,EAAE,CAAC;YAEV,MAAM,aAAa,GAAG;gBACpB,GAAG,OAAO;gBACV,cAAc,EAAE,iBAAiB;aAClC,CAAC;YAEF,OAAO,CAAC,cAAc,CACpB,yCAAmB,CAAC,SAAS,EAC7B,CAAC,GAAG,cAAc,EAAE,aAAa,CAAC,EAClC,MAAM,EACN,WAAqB,CACtB,CAAC;QACJ,CAAC;aAAM,IAAI,iBAAiB,KAAK,SAAS,EAAE,CAAC;YAC3C,kBAAkB;YAClB,MAAM,cAAc,GAClB,OAAO,CAAC,WAAW,CACjB,yCAAmB,CAAC,SAAS,EAC7B,MAAM,EACN,WAAqB,CACtB,IAAI,EAAE,CAAC;YAEV,OAAO,CAAC,cAAc,CACpB,yCAAmB,CAAC,SAAS,EAC7B,CAAC,GAAG,cAAc,EAAE,OAAO,CAAC,EAC5B,MAAM,EACN,WAAqB,CACtB,CAAC;YACF,OAAO,iBAAiB,CAAC;QAC3B,CAAC;IACH,CAAC,CAAC;AACJ,CAAC"}
@@ -0,0 +1,20 @@
1
+ import "reflect-metadata";
2
+ import type { DocQueryOptions } from "../types/controller.types";
3
+ /**
4
+ * DocQuery 데코레이터 - Swagger 쿼리 파라미터 설정
5
+ * 파라미터 또는 메서드에 적용 가능
6
+ *
7
+ * @example
8
+ * ```typescript
9
+ * // 파라미터에 적용
10
+ * @Get('/users')
11
+ * getUsers(@DocQuery({ name: 'page', type: Number, required: false }) page?: number) {}
12
+ *
13
+ * // 메서드에 적용
14
+ * @DocQuery({ name: 'page', type: Number, required: false })
15
+ * @Get('/users')
16
+ * getUsers(page?: number) {}
17
+ * ```
18
+ */
19
+ export declare function DocQuery(options: DocQueryOptions): any;
20
+ //# sourceMappingURL=doc-query.decorator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"doc-query.decorator.d.ts","sourceRoot":"","sources":["../../../../../src/decorators/controllers/lib/doc-query.decorator.ts"],"names":[],"mappings":"AAAA,OAAO,kBAAkB,CAAC;AAE1B,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAEjE;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,QAAQ,CAAC,OAAO,EAAE,eAAe,GAAG,GAAG,CA4CtD"}
@@ -0,0 +1,41 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DocQuery = DocQuery;
4
+ require("reflect-metadata");
5
+ const controller_metadata_1 = require("./controller-metadata");
6
+ /**
7
+ * DocQuery 데코레이터 - Swagger 쿼리 파라미터 설정
8
+ * 파라미터 또는 메서드에 적용 가능
9
+ *
10
+ * @example
11
+ * ```typescript
12
+ * // 파라미터에 적용
13
+ * @Get('/users')
14
+ * getUsers(@DocQuery({ name: 'page', type: Number, required: false }) page?: number) {}
15
+ *
16
+ * // 메서드에 적용
17
+ * @DocQuery({ name: 'page', type: Number, required: false })
18
+ * @Get('/users')
19
+ * getUsers(page?: number) {}
20
+ * ```
21
+ */
22
+ function DocQuery(options) {
23
+ return function (target, propertyKey, descriptorOrIndex) {
24
+ if (typeof descriptorOrIndex === "number") {
25
+ // ParameterDecorator
26
+ const existingQueries = Reflect.getMetadata(controller_metadata_1.CONTROLLER_METADATA.DOC_QUERY, target, propertyKey) || [];
27
+ const queryMetadata = {
28
+ ...options,
29
+ parameterIndex: descriptorOrIndex,
30
+ };
31
+ Reflect.defineMetadata(controller_metadata_1.CONTROLLER_METADATA.DOC_QUERY, [...existingQueries, queryMetadata], target, propertyKey);
32
+ }
33
+ else if (descriptorOrIndex !== undefined) {
34
+ // MethodDecorator
35
+ const existingQueries = Reflect.getMetadata(controller_metadata_1.CONTROLLER_METADATA.DOC_QUERY, target, propertyKey) || [];
36
+ Reflect.defineMetadata(controller_metadata_1.CONTROLLER_METADATA.DOC_QUERY, [...existingQueries, options], target, propertyKey);
37
+ return descriptorOrIndex;
38
+ }
39
+ };
40
+ }
41
+ //# sourceMappingURL=doc-query.decorator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"doc-query.decorator.js","sourceRoot":"","sources":["../../../../../src/decorators/controllers/lib/doc-query.decorator.ts"],"names":[],"mappings":";;AAoBA,4BA4CC;AAhED,4BAA0B;AAC1B,+DAA4D;AAG5D;;;;;;;;;;;;;;;GAeG;AACH,SAAgB,QAAQ,CAAC,OAAwB;IAC/C,OAAO,UACL,MAAW,EACX,WAA6B,EAC7B,iBAA+C;QAE/C,IAAI,OAAO,iBAAiB,KAAK,QAAQ,EAAE,CAAC;YAC1C,qBAAqB;YACrB,MAAM,eAAe,GACnB,OAAO,CAAC,WAAW,CACjB,yCAAmB,CAAC,SAAS,EAC7B,MAAM,EACN,WAAqB,CACtB,IAAI,EAAE,CAAC;YAEV,MAAM,aAAa,GAAG;gBACpB,GAAG,OAAO;gBACV,cAAc,EAAE,iBAAiB;aAClC,CAAC;YAEF,OAAO,CAAC,cAAc,CACpB,yCAAmB,CAAC,SAAS,EAC7B,CAAC,GAAG,eAAe,EAAE,aAAa,CAAC,EACnC,MAAM,EACN,WAAqB,CACtB,CAAC;QACJ,CAAC;aAAM,IAAI,iBAAiB,KAAK,SAAS,EAAE,CAAC;YAC3C,kBAAkB;YAClB,MAAM,eAAe,GACnB,OAAO,CAAC,WAAW,CACjB,yCAAmB,CAAC,SAAS,EAC7B,MAAM,EACN,WAAqB,CACtB,IAAI,EAAE,CAAC;YAEV,OAAO,CAAC,cAAc,CACpB,yCAAmB,CAAC,SAAS,EAC7B,CAAC,GAAG,eAAe,EAAE,OAAO,CAAC,EAC7B,MAAM,EACN,WAAqB,CACtB,CAAC;YACF,OAAO,iBAAiB,CAAC;QAC3B,CAAC;IACH,CAAC,CAAC;AACJ,CAAC"}
@@ -0,0 +1,16 @@
1
+ import "reflect-metadata";
2
+ import type { DocResponseOptions } from "../types/controller.types";
3
+ /**
4
+ * DocResponse 데코레이터 - Swagger 응답 설정
5
+ * 메서드에 적용
6
+ *
7
+ * @example
8
+ * ```typescript
9
+ * @DocResponse({ status: 200, description: '성공' })
10
+ * @DocResponse({ status: 400, description: 'Validation 실패' })
11
+ * @Post('/users')
12
+ * createUser() {}
13
+ * ```
14
+ */
15
+ export declare function DocResponse(options: DocResponseOptions): MethodDecorator;
16
+ //# sourceMappingURL=doc-response.decorator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"doc-response.decorator.d.ts","sourceRoot":"","sources":["../../../../../src/decorators/controllers/lib/doc-response.decorator.ts"],"names":[],"mappings":"AAAA,OAAO,kBAAkB,CAAC;AAE1B,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAEpE;;;;;;;;;;;GAWG;AACH,wBAAgB,WAAW,CAAC,OAAO,EAAE,kBAAkB,GAAG,eAAe,CAqBxE"}
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DocResponse = DocResponse;
4
+ require("reflect-metadata");
5
+ const controller_metadata_1 = require("./controller-metadata");
6
+ /**
7
+ * DocResponse 데코레이터 - Swagger 응답 설정
8
+ * 메서드에 적용
9
+ *
10
+ * @example
11
+ * ```typescript
12
+ * @DocResponse({ status: 200, description: '성공' })
13
+ * @DocResponse({ status: 400, description: 'Validation 실패' })
14
+ * @Post('/users')
15
+ * createUser() {}
16
+ * ```
17
+ */
18
+ function DocResponse(options) {
19
+ return function (target, propertyKey, descriptor) {
20
+ const existingResponses = Reflect.getMetadata(controller_metadata_1.CONTROLLER_METADATA.DOC_RESPONSE, target, propertyKey) || [];
21
+ Reflect.defineMetadata(controller_metadata_1.CONTROLLER_METADATA.DOC_RESPONSE, [...existingResponses, options], target, propertyKey);
22
+ return descriptor;
23
+ };
24
+ }
25
+ //# sourceMappingURL=doc-response.decorator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"doc-response.decorator.js","sourceRoot":"","sources":["../../../../../src/decorators/controllers/lib/doc-response.decorator.ts"],"names":[],"mappings":";;AAgBA,kCAqBC;AArCD,4BAA0B;AAC1B,+DAA4D;AAG5D;;;;;;;;;;;GAWG;AACH,SAAgB,WAAW,CAAC,OAA2B;IACrD,OAAO,UACL,MAAW,EACX,WAA4B,EAC5B,UAA8B;QAE9B,MAAM,iBAAiB,GACrB,OAAO,CAAC,WAAW,CACjB,yCAAmB,CAAC,YAAY,EAChC,MAAM,EACN,WAAW,CACZ,IAAI,EAAE,CAAC;QAEV,OAAO,CAAC,cAAc,CACpB,yCAAmB,CAAC,YAAY,EAChC,CAAC,GAAG,iBAAiB,EAAE,OAAO,CAAC,EAC/B,MAAM,EACN,WAAW,CACZ,CAAC;QACF,OAAO,UAAU,CAAC;IACpB,CAAC,CAAC;AACJ,CAAC"}
@@ -0,0 +1,17 @@
1
+ import "reflect-metadata";
2
+ /**
3
+ * DocTags 데코레이터 - Swagger 태그 설정
4
+ * 클래스 또는 메서드에 적용 가능
5
+ *
6
+ * @example
7
+ * ```typescript
8
+ * @DocTags('Users')
9
+ * class UserController {
10
+ * @DocTags('Admin')
11
+ * @Get('/admin')
12
+ * adminRoute() {}
13
+ * }
14
+ * ```
15
+ */
16
+ export declare function DocTags(...tags: string[]): ClassDecorator & MethodDecorator;
17
+ //# sourceMappingURL=doc-tags.decorator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"doc-tags.decorator.d.ts","sourceRoot":"","sources":["../../../../../src/decorators/controllers/lib/doc-tags.decorator.ts"],"names":[],"mappings":"AAAA,OAAO,kBAAkB,CAAC;AAI1B;;;;;;;;;;;;;GAaG;AACH,wBAAgB,OAAO,CAAC,GAAG,IAAI,EAAE,MAAM,EAAE,GAAG,cAAc,GAAG,eAAe,CAiC3E"}
@@ -0,0 +1,35 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DocTags = DocTags;
4
+ require("reflect-metadata");
5
+ const controller_metadata_1 = require("./controller-metadata");
6
+ /**
7
+ * DocTags 데코레이터 - Swagger 태그 설정
8
+ * 클래스 또는 메서드에 적용 가능
9
+ *
10
+ * @example
11
+ * ```typescript
12
+ * @DocTags('Users')
13
+ * class UserController {
14
+ * @DocTags('Admin')
15
+ * @Get('/admin')
16
+ * adminRoute() {}
17
+ * }
18
+ * ```
19
+ */
20
+ function DocTags(...tags) {
21
+ return function (target, propertyKey, descriptor) {
22
+ const metadata = { tags };
23
+ if (propertyKey === undefined) {
24
+ // ClassDecorator
25
+ const existingTags = Reflect.getMetadata(controller_metadata_1.CONTROLLER_METADATA.DOC_TAGS, target) || [];
26
+ Reflect.defineMetadata(controller_metadata_1.CONTROLLER_METADATA.DOC_TAGS, [...existingTags, ...tags], target);
27
+ }
28
+ else {
29
+ // MethodDecorator
30
+ const existingTags = Reflect.getMetadata(controller_metadata_1.CONTROLLER_METADATA.DOC_TAGS, target, propertyKey) || [];
31
+ Reflect.defineMetadata(controller_metadata_1.CONTROLLER_METADATA.DOC_TAGS, [...existingTags, ...tags], target, propertyKey);
32
+ }
33
+ };
34
+ }
35
+ //# sourceMappingURL=doc-tags.decorator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"doc-tags.decorator.js","sourceRoot":"","sources":["../../../../../src/decorators/controllers/lib/doc-tags.decorator.ts"],"names":[],"mappings":";;AAkBA,0BAiCC;AAnDD,4BAA0B;AAC1B,+DAA4D;AAG5D;;;;;;;;;;;;;GAaG;AACH,SAAgB,OAAO,CAAC,GAAG,IAAc;IACvC,OAAO,UACL,MAAW,EACX,WAA6B,EAC7B,UAA+B;QAE/B,MAAM,QAAQ,GAAmB,EAAE,IAAI,EAAE,CAAC;QAE1C,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;YAC9B,iBAAiB;YACjB,MAAM,YAAY,GAChB,OAAO,CAAC,WAAW,CAAC,yCAAmB,CAAC,QAAQ,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC;YAClE,OAAO,CAAC,cAAc,CACpB,yCAAmB,CAAC,QAAQ,EAC5B,CAAC,GAAG,YAAY,EAAE,GAAG,IAAI,CAAC,EAC1B,MAAM,CACP,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,kBAAkB;YAClB,MAAM,YAAY,GAChB,OAAO,CAAC,WAAW,CACjB,yCAAmB,CAAC,QAAQ,EAC5B,MAAM,EACN,WAAW,CACZ,IAAI,EAAE,CAAC;YACV,OAAO,CAAC,cAAc,CACpB,yCAAmB,CAAC,QAAQ,EAC5B,CAAC,GAAG,YAAY,EAAE,GAAG,IAAI,CAAC,EAC1B,MAAM,EACN,WAAW,CACZ,CAAC;QACJ,CAAC;IACH,CAAQ,CAAC;AACX,CAAC"}
@@ -0,0 +1,27 @@
1
+ import "reflect-metadata";
2
+ import type { EndpointOptions } from "../types/controller.types";
3
+ export type { EndpointOptions, EndpointResponseOption, } from "../types/controller.types";
4
+ /**
5
+ * Endpoint 데코레이터 - 모든 Doc 데코레이터를 하나로 압축
6
+ * DocTags, DocOperation, DocResponse, DocParam, DocQuery, DocBody + method/endpoint/role 메타데이터
7
+ *
8
+ * @example
9
+ * ```typescript
10
+ * @Endpoint({
11
+ * method: 'POST',
12
+ * endpoint: '/users',
13
+ * summary: '사용자 생성',
14
+ * description: '새 사용자를 생성합니다.',
15
+ * role: 'ADMIN',
16
+ * tags: ['Users'],
17
+ * body: { type: CreateUserDto, required: true },
18
+ * responses: [
19
+ * { status: 200, description: '성공', type: UserDto },
20
+ * { status: 400, description: 'Validation 실패' },
21
+ * ],
22
+ * })
23
+ * createUser() {}
24
+ * ```
25
+ */
26
+ export declare function Endpoint(options: EndpointOptions): MethodDecorator;
27
+ //# sourceMappingURL=endpoint.decorator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"endpoint.decorator.d.ts","sourceRoot":"","sources":["../../../../../src/decorators/controllers/lib/endpoint.decorator.ts"],"names":[],"mappings":"AAAA,OAAO,kBAAkB,CAAC;AAG1B,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AASjE,YAAY,EACV,eAAe,EACf,sBAAsB,GACvB,MAAM,2BAA2B,CAAC;AAEnC;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,QAAQ,CAAC,OAAO,EAAE,eAAe,GAAG,eAAe,CAgGlE"}