@eggjs/controller-decorator 3.52.1 → 3.55.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.
Files changed (45) hide show
  1. package/dist/index.d.ts +7 -0
  2. package/dist/index.js +8 -1
  3. package/dist/src/decorator/http/HTTPController.js +4 -1
  4. package/dist/src/decorator/http/HTTPMethod.js +4 -1
  5. package/dist/src/decorator/mcp/Extra.d.ts +1 -0
  6. package/dist/src/decorator/mcp/Extra.js +12 -0
  7. package/dist/src/decorator/mcp/MCPController.d.ts +2 -0
  8. package/dist/src/decorator/mcp/MCPController.js +38 -0
  9. package/dist/src/decorator/mcp/MCPPrompt.d.ts +4 -0
  10. package/dist/src/decorator/mcp/MCPPrompt.js +34 -0
  11. package/dist/src/decorator/mcp/MCPResource.d.ts +2 -0
  12. package/dist/src/decorator/mcp/MCPResource.js +23 -0
  13. package/dist/src/decorator/mcp/MCPTool.d.ts +4 -0
  14. package/dist/src/decorator/mcp/MCPTool.js +34 -0
  15. package/dist/src/impl/http/HTTPControllerMetaBuilder.js +3 -2
  16. package/dist/src/impl/http/HTTPControllerMethodMetaBuilder.js +3 -2
  17. package/dist/src/impl/mcp/MCPControllerMetaBuilder.d.ts +11 -0
  18. package/dist/src/impl/mcp/MCPControllerMetaBuilder.js +82 -0
  19. package/dist/src/impl/mcp/MCPControllerPromptMetaBuilder.d.ts +8 -0
  20. package/dist/src/impl/mcp/MCPControllerPromptMetaBuilder.js +40 -0
  21. package/dist/src/impl/mcp/MCPControllerResourceMetaBuilder.d.ts +8 -0
  22. package/dist/src/impl/mcp/MCPControllerResourceMetaBuilder.js +38 -0
  23. package/dist/src/impl/mcp/MCPControllerToolMetaBuilder.d.ts +8 -0
  24. package/dist/src/impl/mcp/MCPControllerToolMetaBuilder.js +40 -0
  25. package/dist/src/model/HTTPControllerMeta.d.ts +3 -1
  26. package/dist/src/model/HTTPControllerMeta.js +6 -2
  27. package/dist/src/model/HTTPMethodMeta.d.ts +2 -1
  28. package/dist/src/model/HTTPMethodMeta.js +3 -2
  29. package/dist/src/model/MCPControllerMeta.d.ts +25 -0
  30. package/dist/src/model/MCPControllerMeta.js +41 -0
  31. package/dist/src/model/MCPPromptMeta.d.ts +22 -0
  32. package/dist/src/model/MCPPromptMeta.js +17 -0
  33. package/dist/src/model/MCPResourceMeta.d.ts +25 -0
  34. package/dist/src/model/MCPResourceMeta.js +21 -0
  35. package/dist/src/model/MCPToolMeta.d.ts +22 -0
  36. package/dist/src/model/MCPToolMeta.js +17 -0
  37. package/dist/src/model/index.d.ts +4 -0
  38. package/dist/src/model/index.js +5 -1
  39. package/dist/src/util/ControllerInfoUtil.d.ts +2 -0
  40. package/dist/src/util/ControllerInfoUtil.js +7 -1
  41. package/dist/src/util/MCPInfoUtil.d.ts +46 -0
  42. package/dist/src/util/MCPInfoUtil.js +102 -0
  43. package/dist/src/util/MethodInfoUtil.d.ts +2 -0
  44. package/dist/src/util/MethodInfoUtil.js +9 -1
  45. package/package.json +8 -7
package/dist/index.d.ts CHANGED
@@ -1,4 +1,5 @@
1
1
  import './src/impl/http/HTTPControllerMetaBuilder';
2
+ import './src/impl/mcp/MCPControllerMetaBuilder';
2
3
  export * from '@eggjs/tegg-types/controller-decorator';
3
4
  export * from './src/model';
4
5
  export * from './src/decorator/Context';
@@ -8,7 +9,13 @@ export * from './src/decorator/http/HTTPController';
8
9
  export * from './src/decorator/http/HTTPMethod';
9
10
  export * from './src/decorator/http/HTTPParam';
10
11
  export * from './src/decorator/http/Host';
12
+ export * from './src/decorator/mcp/MCPController';
13
+ export * from './src/decorator/mcp/MCPPrompt';
14
+ export * from './src/decorator/mcp/MCPResource';
15
+ export * from './src/decorator/mcp/MCPTool';
16
+ export * from './src/decorator/mcp/Extra';
11
17
  export * from './src/builder/ControllerMetaBuilderFactory';
12
18
  export * from './src/util/ControllerMetadataUtil';
19
+ export * from './src/util/MCPInfoUtil';
13
20
  export * from './src/util/HTTPPriorityUtil';
14
21
  export { default as ControllerInfoUtil } from './src/util/ControllerInfoUtil';
package/dist/index.js CHANGED
@@ -19,6 +19,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
19
19
  Object.defineProperty(exports, "__esModule", { value: true });
20
20
  exports.ControllerInfoUtil = void 0;
21
21
  require("./src/impl/http/HTTPControllerMetaBuilder");
22
+ require("./src/impl/mcp/MCPControllerMetaBuilder");
22
23
  __exportStar(require("@eggjs/tegg-types/controller-decorator"), exports);
23
24
  __exportStar(require("./src/model"), exports);
24
25
  __exportStar(require("./src/decorator/Context"), exports);
@@ -28,9 +29,15 @@ __exportStar(require("./src/decorator/http/HTTPController"), exports);
28
29
  __exportStar(require("./src/decorator/http/HTTPMethod"), exports);
29
30
  __exportStar(require("./src/decorator/http/HTTPParam"), exports);
30
31
  __exportStar(require("./src/decorator/http/Host"), exports);
32
+ __exportStar(require("./src/decorator/mcp/MCPController"), exports);
33
+ __exportStar(require("./src/decorator/mcp/MCPPrompt"), exports);
34
+ __exportStar(require("./src/decorator/mcp/MCPResource"), exports);
35
+ __exportStar(require("./src/decorator/mcp/MCPTool"), exports);
36
+ __exportStar(require("./src/decorator/mcp/Extra"), exports);
31
37
  __exportStar(require("./src/builder/ControllerMetaBuilderFactory"), exports);
32
38
  __exportStar(require("./src/util/ControllerMetadataUtil"), exports);
39
+ __exportStar(require("./src/util/MCPInfoUtil"), exports);
33
40
  __exportStar(require("./src/util/HTTPPriorityUtil"), exports);
34
41
  var ControllerInfoUtil_1 = require("./src/util/ControllerInfoUtil");
35
42
  Object.defineProperty(exports, "ControllerInfoUtil", { enumerable: true, get: function () { return __importDefault(ControllerInfoUtil_1).default; } });
36
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLHFEQUFtRDtBQUVuRCx5RUFBdUQ7QUFDdkQsOENBQTRCO0FBQzVCLDBEQUF3QztBQUN4Qyw2REFBMkM7QUFDM0Msc0RBQW9DO0FBQ3BDLHNFQUFvRDtBQUNwRCxrRUFBZ0Q7QUFDaEQsaUVBQStDO0FBQy9DLDREQUEwQztBQUMxQyw2RUFBMkQ7QUFDM0Qsb0VBQWtEO0FBQ2xELDhEQUE0QztBQUU1QyxvRUFBOEU7QUFBckUseUlBQUEsT0FBTyxPQUFzQiJ9
43
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLHFEQUFtRDtBQUNuRCxtREFBaUQ7QUFFakQseUVBQXVEO0FBQ3ZELDhDQUE0QjtBQUM1QiwwREFBd0M7QUFDeEMsNkRBQTJDO0FBQzNDLHNEQUFvQztBQUNwQyxzRUFBb0Q7QUFDcEQsa0VBQWdEO0FBQ2hELGlFQUErQztBQUMvQyw0REFBMEM7QUFDMUMsb0VBQWtEO0FBQ2xELGdFQUE4QztBQUM5QyxrRUFBZ0Q7QUFDaEQsOERBQTRDO0FBQzVDLDREQUEwQztBQUMxQyw2RUFBMkQ7QUFDM0Qsb0VBQWtEO0FBQ2xELHlEQUF1QztBQUN2Qyw4REFBNEM7QUFFNUMsb0VBQThFO0FBQXJFLHlJQUFBLE9BQU8sT0FBc0IifQ==
@@ -15,6 +15,9 @@ function HTTPController(param) {
15
15
  if (param === null || param === void 0 ? void 0 : param.controllerName) {
16
16
  ControllerInfoUtil_1.default.setControllerName(constructor, param.controllerName);
17
17
  }
18
+ if (param === null || param === void 0 ? void 0 : param.timeout) {
19
+ ControllerInfoUtil_1.default.setControllerTimeout(param.timeout, constructor);
20
+ }
18
21
  if (param === null || param === void 0 ? void 0 : param.path) {
19
22
  HTTPInfoUtil_1.default.setHTTPPath(param.path, constructor);
20
23
  }
@@ -33,4 +36,4 @@ function HTTPController(param) {
33
36
  core_decorator_1.PrototypeUtil.setFilePath(constructor, tegg_common_util_1.StackUtil.getCalleeFromStack(false, 5));
34
37
  };
35
38
  }
36
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSFRUUENvbnRyb2xsZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvZGVjb3JhdG9yL2h0dHAvSFRUUENvbnRyb2xsZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFPQSx3Q0F3QkM7QUEvQkQsMERBQXNFO0FBQ3RFLDhEQUFvRDtBQUVwRCxrREFBZ0U7QUFDaEUsdUZBQStEO0FBQy9ELDJFQUFtRDtBQUVuRCxTQUFnQixjQUFjLENBQUMsS0FBNEI7SUFDekQsT0FBTyxVQUFTLFdBQThCO1FBQzVDLDRCQUFrQixDQUFDLGlCQUFpQixDQUFDLFdBQVcsRUFBRSwyQkFBYyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3ZFLElBQUksS0FBSyxhQUFMLEtBQUssdUJBQUwsS0FBSyxDQUFFLGNBQWMsRUFBRSxDQUFDO1lBQzFCLDRCQUFrQixDQUFDLGlCQUFpQixDQUFDLFdBQVcsRUFBRSxLQUFLLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDMUUsQ0FBQztRQUNELElBQUksS0FBSyxhQUFMLEtBQUssdUJBQUwsS0FBSyxDQUFFLElBQUksRUFBRSxDQUFDO1lBQ2hCLHNCQUFZLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsV0FBVyxDQUFDLENBQUM7UUFDcEQsQ0FBQztRQUNELGdCQUFnQjtRQUNoQixNQUFNLElBQUksR0FBRyxJQUFBLCtCQUFjLEVBQUM7WUFDMUIsV0FBVyxFQUFFLHdCQUFXLENBQUMsTUFBTTtZQUMvQixJQUFJLEVBQUUsS0FBSyxhQUFMLEtBQUssdUJBQUwsS0FBSyxDQUFFLFNBQVM7U0FDdkIsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBRWxCLDhDQUE4QztRQUM5QywyREFBMkQ7UUFDM0QsMkVBQTJFO1FBQzNFLGtHQUFrRztRQUNsRyxrR0FBa0c7UUFDbEcsdUVBQXVFO1FBQ3ZFLDhCQUFhLENBQUMsV0FBVyxDQUFDLFdBQVcsRUFBRSw0QkFBUyxDQUFDLGtCQUFrQixDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ2pGLENBQUMsQ0FBQztBQUNKLENBQUMifQ==
39
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSFRUUENvbnRyb2xsZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvZGVjb3JhdG9yL2h0dHAvSFRUUENvbnRyb2xsZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFPQSx3Q0EyQkM7QUFsQ0QsMERBQXNFO0FBQ3RFLDhEQUFvRDtBQUVwRCxrREFBZ0U7QUFDaEUsdUZBQStEO0FBQy9ELDJFQUFtRDtBQUVuRCxTQUFnQixjQUFjLENBQUMsS0FBNEI7SUFDekQsT0FBTyxVQUFTLFdBQThCO1FBQzVDLDRCQUFrQixDQUFDLGlCQUFpQixDQUFDLFdBQVcsRUFBRSwyQkFBYyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3ZFLElBQUksS0FBSyxhQUFMLEtBQUssdUJBQUwsS0FBSyxDQUFFLGNBQWMsRUFBRSxDQUFDO1lBQzFCLDRCQUFrQixDQUFDLGlCQUFpQixDQUFDLFdBQVcsRUFBRSxLQUFLLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDMUUsQ0FBQztRQUNELElBQUksS0FBSyxhQUFMLEtBQUssdUJBQUwsS0FBSyxDQUFFLE9BQU8sRUFBRSxDQUFDO1lBQ25CLDRCQUFrQixDQUFDLG9CQUFvQixDQUFDLEtBQUssQ0FBQyxPQUFPLEVBQUUsV0FBVyxDQUFDLENBQUM7UUFDdEUsQ0FBQztRQUNELElBQUksS0FBSyxhQUFMLEtBQUssdUJBQUwsS0FBSyxDQUFFLElBQUksRUFBRSxDQUFDO1lBQ2hCLHNCQUFZLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsV0FBVyxDQUFDLENBQUM7UUFDcEQsQ0FBQztRQUNELGdCQUFnQjtRQUNoQixNQUFNLElBQUksR0FBRyxJQUFBLCtCQUFjLEVBQUM7WUFDMUIsV0FBVyxFQUFFLHdCQUFXLENBQUMsTUFBTTtZQUMvQixJQUFJLEVBQUUsS0FBSyxhQUFMLEtBQUssdUJBQUwsS0FBSyxDQUFFLFNBQVM7U0FDdkIsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBRWxCLDhDQUE4QztRQUM5QywyREFBMkQ7UUFDM0QsMkVBQTJFO1FBQzNFLGtHQUFrRztRQUNsRyxrR0FBa0c7UUFDbEcsdUVBQXVFO1FBQ3ZFLDhCQUFhLENBQUMsV0FBVyxDQUFDLFdBQVcsRUFBRSw0QkFBUyxDQUFDLGtCQUFrQixDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ2pGLENBQUMsQ0FBQztBQUNKLENBQUMifQ==
@@ -16,9 +16,12 @@ function HTTPMethod(param) {
16
16
  MethodInfoUtil_1.default.setMethodControllerType(controllerClazz, methodName, tegg_types_1.ControllerType.HTTP);
17
17
  HTTPInfoUtil_1.default.setHTTPMethodPath(param.path, controllerClazz, methodName);
18
18
  HTTPInfoUtil_1.default.setHTTPMethodMethod(param.method, controllerClazz, methodName);
19
+ if (param.timeout) {
20
+ MethodInfoUtil_1.default.setMethodTimeout(param.timeout, controllerClazz, methodName);
21
+ }
19
22
  if (param.priority !== undefined) {
20
23
  HTTPInfoUtil_1.default.setHTTPMethodPriority(param.priority, controllerClazz, methodName);
21
24
  }
22
25
  };
23
26
  }
24
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSFRUUE1ldGhvZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9kZWNvcmF0b3IvaHR0cC9IVFRQTWV0aG9kLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBTUEsZ0NBYUM7QUFuQkQsOERBQWlDO0FBQ2pDLGtEQUFtRDtBQUVuRCwyRUFBbUQ7QUFDbkQsK0VBQXVEO0FBRXZELFNBQWdCLFVBQVUsQ0FBQyxLQUF1QjtJQUNoRCxPQUFPLFVBQVMsTUFBVyxFQUFFLFdBQXdCO1FBQ25ELElBQUEscUJBQU0sRUFBQyxPQUFPLFdBQVcsS0FBSyxRQUFRLEVBQ3BDLGVBQWUsTUFBTSxDQUFDLElBQUkscURBQXFELE1BQU0sQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDeEcsTUFBTSxlQUFlLEdBQUcsTUFBTSxDQUFDLFdBQWdDLENBQUM7UUFDaEUsTUFBTSxVQUFVLEdBQUcsV0FBcUIsQ0FBQztRQUN6Qyx3QkFBYyxDQUFDLHVCQUF1QixDQUFDLGVBQWUsRUFBRSxVQUFVLEVBQUUsMkJBQWMsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN6RixzQkFBWSxDQUFDLGlCQUFpQixDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsZUFBZSxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBQ3hFLHNCQUFZLENBQUMsbUJBQW1CLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBRSxlQUFlLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFDNUUsSUFBSSxLQUFLLENBQUMsUUFBUSxLQUFLLFNBQVMsRUFBRSxDQUFDO1lBQ2pDLHNCQUFZLENBQUMscUJBQXFCLENBQUMsS0FBSyxDQUFDLFFBQVEsRUFBRSxlQUFlLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFDbEYsQ0FBQztJQUNILENBQUMsQ0FBQztBQUNKLENBQUMifQ==
27
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSFRUUE1ldGhvZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9kZWNvcmF0b3IvaHR0cC9IVFRQTWV0aG9kLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBTUEsZ0NBZ0JDO0FBdEJELDhEQUFpQztBQUNqQyxrREFBbUQ7QUFFbkQsMkVBQW1EO0FBQ25ELCtFQUF1RDtBQUV2RCxTQUFnQixVQUFVLENBQUMsS0FBdUI7SUFDaEQsT0FBTyxVQUFTLE1BQVcsRUFBRSxXQUF3QjtRQUNuRCxJQUFBLHFCQUFNLEVBQUMsT0FBTyxXQUFXLEtBQUssUUFBUSxFQUNwQyxlQUFlLE1BQU0sQ0FBQyxJQUFJLHFEQUFxRCxNQUFNLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ3hHLE1BQU0sZUFBZSxHQUFHLE1BQU0sQ0FBQyxXQUFnQyxDQUFDO1FBQ2hFLE1BQU0sVUFBVSxHQUFHLFdBQXFCLENBQUM7UUFDekMsd0JBQWMsQ0FBQyx1QkFBdUIsQ0FBQyxlQUFlLEVBQUUsVUFBVSxFQUFFLDJCQUFjLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDekYsc0JBQVksQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLGVBQWUsRUFBRSxVQUFVLENBQUMsQ0FBQztRQUN4RSxzQkFBWSxDQUFDLG1CQUFtQixDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUUsZUFBZSxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBQzVFLElBQUksS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ2xCLHdCQUFjLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxDQUFDLE9BQU8sRUFBRSxlQUFlLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFDOUUsQ0FBQztRQUNELElBQUksS0FBSyxDQUFDLFFBQVEsS0FBSyxTQUFTLEVBQUUsQ0FBQztZQUNqQyxzQkFBWSxDQUFDLHFCQUFxQixDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQUUsZUFBZSxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBQ2xGLENBQUM7SUFDSCxDQUFDLENBQUM7QUFDSixDQUFDIn0=
@@ -0,0 +1 @@
1
+ export declare function Extra(): (target: any, propertyKey: PropertyKey, parameterIndex: number) => void;
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Extra = Extra;
4
+ const MCPInfoUtil_1 = require("../../../src/util/MCPInfoUtil");
5
+ function Extra() {
6
+ return function (target, propertyKey, parameterIndex) {
7
+ const controllerClazz = target.constructor;
8
+ const methodName = propertyKey;
9
+ MCPInfoUtil_1.MCPInfoUtil.setMCPExtra(parameterIndex, controllerClazz, methodName);
10
+ };
11
+ }
12
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRXh0cmEuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvZGVjb3JhdG9yL21jcC9FeHRyYS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUtBLHNCQVVDO0FBWkQsK0RBQTREO0FBRTVELFNBQWdCLEtBQUs7SUFDbkIsT0FBTyxVQUNMLE1BQVcsRUFDWCxXQUF3QixFQUN4QixjQUFzQjtRQUV0QixNQUFNLGVBQWUsR0FBRyxNQUFNLENBQUMsV0FBZ0MsQ0FBQztRQUNoRSxNQUFNLFVBQVUsR0FBRyxXQUFxQixDQUFDO1FBQ3pDLHlCQUFXLENBQUMsV0FBVyxDQUFDLGNBQWMsRUFBRSxlQUFlLEVBQUUsVUFBVSxDQUFDLENBQUM7SUFDdkUsQ0FBQyxDQUFDO0FBQ0osQ0FBQyJ9
@@ -0,0 +1,2 @@
1
+ import { MCPControllerParams, EggProtoImplClass } from '@eggjs/tegg-types';
2
+ export declare function MCPController(param?: MCPControllerParams): (constructor: EggProtoImplClass) => void;
@@ -0,0 +1,38 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.MCPController = MCPController;
7
+ const tegg_types_1 = require("@eggjs/tegg-types");
8
+ const core_decorator_1 = require("@eggjs/core-decorator");
9
+ const ControllerInfoUtil_1 = __importDefault(require("../../util/ControllerInfoUtil"));
10
+ const tegg_common_util_1 = require("@eggjs/tegg-common-util");
11
+ const MCPInfoUtil_1 = require("../../../src/util/MCPInfoUtil");
12
+ function MCPController(param) {
13
+ return function (constructor) {
14
+ const func = (0, core_decorator_1.SingletonProto)({
15
+ accessLevel: tegg_types_1.AccessLevel.PUBLIC,
16
+ name: param === null || param === void 0 ? void 0 : param.protoName,
17
+ });
18
+ func(constructor);
19
+ ControllerInfoUtil_1.default.setControllerType(constructor, tegg_types_1.ControllerType.MCP);
20
+ if (param === null || param === void 0 ? void 0 : param.controllerName) {
21
+ ControllerInfoUtil_1.default.setControllerName(constructor, param === null || param === void 0 ? void 0 : param.controllerName);
22
+ }
23
+ // './tegg/core/common-util/src/StackUtil.ts',
24
+ // './tegg/core/core-decorator/src/decorator/Prototype.ts',
25
+ // './tegg/core/controller-decorator/src/decorator/tr/TRController.ts',
26
+ // './tegg/core/core-decorator/node_modules/_reflect-metadata@0.1.13@reflect-metadata/Reflect.js',
27
+ // './tegg/core/core-decorator/node_modules/_reflect-metadata@0.1.13@reflect-metadata/Reflect.js',
28
+ // './tegg/core/controller-decorator/test/fixtures/TRFooController.ts',
29
+ core_decorator_1.PrototypeUtil.setFilePath(constructor, tegg_common_util_1.StackUtil.getCalleeFromStack(false, 5));
30
+ if (param === null || param === void 0 ? void 0 : param.name) {
31
+ MCPInfoUtil_1.MCPInfoUtil.setMCPName(param.name, constructor);
32
+ }
33
+ if (param === null || param === void 0 ? void 0 : param.version) {
34
+ MCPInfoUtil_1.MCPInfoUtil.setMCPVersion(param.version, constructor);
35
+ }
36
+ };
37
+ }
38
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTUNQQ29udHJvbGxlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9kZWNvcmF0b3IvbWNwL01DUENvbnRyb2xsZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFNQSxzQ0EwQkM7QUFoQ0Qsa0RBQXdHO0FBQ3hHLDBEQUFzRTtBQUN0RSx1RkFBK0Q7QUFDL0QsOERBQW9EO0FBQ3BELCtEQUE0RDtBQUU1RCxTQUFnQixhQUFhLENBQUMsS0FBMkI7SUFDdkQsT0FBTyxVQUFTLFdBQThCO1FBQzVDLE1BQU0sSUFBSSxHQUFHLElBQUEsK0JBQWMsRUFBQztZQUMxQixXQUFXLEVBQUUsd0JBQVcsQ0FBQyxNQUFNO1lBQy9CLElBQUksRUFBRSxLQUFLLGFBQUwsS0FBSyx1QkFBTCxLQUFLLENBQUUsU0FBUztTQUN2QixDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDbEIsNEJBQWtCLENBQUMsaUJBQWlCLENBQUMsV0FBVyxFQUFFLDJCQUFjLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDdEUsSUFBSSxLQUFLLGFBQUwsS0FBSyx1QkFBTCxLQUFLLENBQUUsY0FBYyxFQUFFLENBQUM7WUFDMUIsNEJBQWtCLENBQUMsaUJBQWlCLENBQUMsV0FBVyxFQUFFLEtBQUssYUFBTCxLQUFLLHVCQUFMLEtBQUssQ0FBRSxjQUFjLENBQUMsQ0FBQztRQUMzRSxDQUFDO1FBQ0QsOENBQThDO1FBQzlDLDJEQUEyRDtRQUMzRCx1RUFBdUU7UUFDdkUsa0dBQWtHO1FBQ2xHLGtHQUFrRztRQUNsRyx1RUFBdUU7UUFDdkUsOEJBQWEsQ0FBQyxXQUFXLENBQUMsV0FBVyxFQUFFLDRCQUFTLENBQUMsa0JBQWtCLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFFL0UsSUFBSSxLQUFLLGFBQUwsS0FBSyx1QkFBTCxLQUFLLENBQUUsSUFBSSxFQUFFLENBQUM7WUFDaEIseUJBQVcsQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxXQUFXLENBQUMsQ0FBQztRQUNsRCxDQUFDO1FBQ0QsSUFBSSxLQUFLLGFBQUwsS0FBSyx1QkFBTCxLQUFLLENBQUUsT0FBTyxFQUFFLENBQUM7WUFDbkIseUJBQVcsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLE9BQU8sRUFBRSxXQUFXLENBQUMsQ0FBQztRQUN4RCxDQUFDO0lBQ0gsQ0FBQyxDQUFDO0FBQ0osQ0FBQyJ9
@@ -0,0 +1,4 @@
1
+ import { MCPPromptParams } from '@eggjs/tegg-types';
2
+ import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
3
+ export declare function MCPPrompt(params?: MCPPromptParams): (target: any, propertyKey: PropertyKey) => void;
4
+ export declare function PromptArgsSchema(argsSchema: Parameters<McpServer['prompt']>['2']): (target: any, propertyKey: PropertyKey, parameterIndex: number) => void;
@@ -0,0 +1,34 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.MCPPrompt = MCPPrompt;
7
+ exports.PromptArgsSchema = PromptArgsSchema;
8
+ const tegg_types_1 = require("@eggjs/tegg-types");
9
+ const MCPInfoUtil_1 = require("../../../src/util/MCPInfoUtil");
10
+ const MethodInfoUtil_1 = __importDefault(require("../../../src/util/MethodInfoUtil"));
11
+ function MCPPrompt(params) {
12
+ return function (target, propertyKey) {
13
+ const controllerClazz = target.constructor;
14
+ const methodName = propertyKey;
15
+ MethodInfoUtil_1.default.setMethodControllerType(controllerClazz, methodName, tegg_types_1.ControllerType.MCP);
16
+ MCPInfoUtil_1.MCPInfoUtil.setMCPPromptParams({
17
+ ...params,
18
+ mcpName: params === null || params === void 0 ? void 0 : params.name,
19
+ name: methodName,
20
+ }, controllerClazz, methodName);
21
+ MCPInfoUtil_1.MCPInfoUtil.setMCPPrompt(controllerClazz, methodName);
22
+ };
23
+ }
24
+ function PromptArgsSchema(argsSchema) {
25
+ return function (target, propertyKey, parameterIndex) {
26
+ const controllerClazz = target.constructor;
27
+ const methodName = propertyKey;
28
+ MCPInfoUtil_1.MCPInfoUtil.setMCPPromptArgsInArgs({
29
+ argsSchema,
30
+ index: parameterIndex,
31
+ }, controllerClazz, methodName);
32
+ };
33
+ }
34
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTUNQUHJvbXB0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2RlY29yYXRvci9tY3AvTUNQUHJvbXB0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBU0EsOEJBdUJDO0FBRUQsNENBaUJDO0FBbkRELGtEQUkyQjtBQUUzQiwrREFBNEQ7QUFDNUQsc0ZBQThEO0FBRTlELFNBQWdCLFNBQVMsQ0FBQyxNQUF3QjtJQUNoRCxPQUFPLFVBQ0wsTUFBVyxFQUNYLFdBQXdCO1FBRXhCLE1BQU0sZUFBZSxHQUFHLE1BQU0sQ0FBQyxXQUFnQyxDQUFDO1FBQ2hFLE1BQU0sVUFBVSxHQUFHLFdBQXFCLENBQUM7UUFDekMsd0JBQWMsQ0FBQyx1QkFBdUIsQ0FDcEMsZUFBZSxFQUNmLFVBQVUsRUFDViwyQkFBYyxDQUFDLEdBQUcsQ0FDbkIsQ0FBQztRQUNGLHlCQUFXLENBQUMsa0JBQWtCLENBQzVCO1lBQ0UsR0FBRyxNQUFNO1lBQ1QsT0FBTyxFQUFFLE1BQU0sYUFBTixNQUFNLHVCQUFOLE1BQU0sQ0FBRSxJQUFJO1lBQ3JCLElBQUksRUFBRSxVQUFVO1NBQ2pCLEVBQ0QsZUFBZSxFQUNmLFVBQVUsQ0FDWCxDQUFDO1FBQ0YseUJBQVcsQ0FBQyxZQUFZLENBQUMsZUFBZSxFQUFFLFVBQVUsQ0FBQyxDQUFDO0lBQ3hELENBQUMsQ0FBQztBQUNKLENBQUM7QUFFRCxTQUFnQixnQkFBZ0IsQ0FBQyxVQUFnRDtJQUMvRSxPQUFPLFVBQ0wsTUFBVyxFQUNYLFdBQXdCLEVBQ3hCLGNBQXNCO1FBRXRCLE1BQU0sZUFBZSxHQUFHLE1BQU0sQ0FBQyxXQUFnQyxDQUFDO1FBQ2hFLE1BQU0sVUFBVSxHQUFHLFdBQXFCLENBQUM7UUFDekMseUJBQVcsQ0FBQyxzQkFBc0IsQ0FDaEM7WUFDRSxVQUFVO1lBQ1YsS0FBSyxFQUFFLGNBQWM7U0FDdEIsRUFDRCxlQUFlLEVBQ2YsVUFBVSxDQUNYLENBQUM7SUFDSixDQUFDLENBQUM7QUFDSixDQUFDIn0=
@@ -0,0 +1,2 @@
1
+ import { MCPResourceParams } from '@eggjs/tegg-types';
2
+ export declare function MCPResource(params: MCPResourceParams): (target: any, propertyKey: PropertyKey) => void;
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.MCPResource = MCPResource;
7
+ const tegg_types_1 = require("@eggjs/tegg-types");
8
+ const MCPInfoUtil_1 = require("../../../src/util/MCPInfoUtil");
9
+ const MethodInfoUtil_1 = __importDefault(require("../../../src/util/MethodInfoUtil"));
10
+ function MCPResource(params) {
11
+ return function (target, propertyKey) {
12
+ const controllerClazz = target.constructor;
13
+ const methodName = propertyKey;
14
+ MethodInfoUtil_1.default.setMethodControllerType(controllerClazz, methodName, tegg_types_1.ControllerType.MCP);
15
+ MCPInfoUtil_1.MCPInfoUtil.setMCPResourceParams({
16
+ ...params,
17
+ mcpName: params.name,
18
+ name: methodName,
19
+ }, controllerClazz, methodName);
20
+ MCPInfoUtil_1.MCPInfoUtil.setMCPResource(controllerClazz, methodName);
21
+ };
22
+ }
23
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTUNQUmVzb3VyY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvZGVjb3JhdG9yL21jcC9NQ1BSZXNvdXJjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQVFBLGtDQXVCQztBQS9CRCxrREFJMkI7QUFDM0IsK0RBQTREO0FBQzVELHNGQUE4RDtBQUU5RCxTQUFnQixXQUFXLENBQUMsTUFBeUI7SUFDbkQsT0FBTyxVQUNMLE1BQVcsRUFDWCxXQUF3QjtRQUV4QixNQUFNLGVBQWUsR0FBRyxNQUFNLENBQUMsV0FBZ0MsQ0FBQztRQUNoRSxNQUFNLFVBQVUsR0FBRyxXQUFxQixDQUFDO1FBQ3pDLHdCQUFjLENBQUMsdUJBQXVCLENBQ3BDLGVBQWUsRUFDZixVQUFVLEVBQ1YsMkJBQWMsQ0FBQyxHQUFHLENBQ25CLENBQUM7UUFDRix5QkFBVyxDQUFDLG9CQUFvQixDQUM5QjtZQUNFLEdBQUcsTUFBTTtZQUNULE9BQU8sRUFBRSxNQUFNLENBQUMsSUFBSTtZQUNwQixJQUFJLEVBQUUsVUFBVTtTQUNqQixFQUNELGVBQWUsRUFDZixVQUFVLENBQ1gsQ0FBQztRQUNGLHlCQUFXLENBQUMsY0FBYyxDQUFDLGVBQWUsRUFBRSxVQUFVLENBQUMsQ0FBQztJQUMxRCxDQUFDLENBQUM7QUFDSixDQUFDIn0=
@@ -0,0 +1,4 @@
1
+ import { MCPToolParams } from '@eggjs/tegg-types';
2
+ import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
3
+ export declare function MCPTool(params?: MCPToolParams): (target: any, propertyKey: PropertyKey) => void;
4
+ export declare function ToolArgsSchema(argsSchema: Parameters<McpServer['tool']>['2']): (target: any, propertyKey: PropertyKey, parameterIndex: number) => void;
@@ -0,0 +1,34 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.MCPTool = MCPTool;
7
+ exports.ToolArgsSchema = ToolArgsSchema;
8
+ const tegg_types_1 = require("@eggjs/tegg-types");
9
+ const MCPInfoUtil_1 = require("../../../src/util/MCPInfoUtil");
10
+ const MethodInfoUtil_1 = __importDefault(require("../../../src/util/MethodInfoUtil"));
11
+ function MCPTool(params) {
12
+ return function (target, propertyKey) {
13
+ const controllerClazz = target.constructor;
14
+ const methodName = propertyKey;
15
+ MethodInfoUtil_1.default.setMethodControllerType(controllerClazz, methodName, tegg_types_1.ControllerType.MCP);
16
+ MCPInfoUtil_1.MCPInfoUtil.setMCPToolParams({
17
+ ...params,
18
+ mcpName: params === null || params === void 0 ? void 0 : params.name,
19
+ name: methodName,
20
+ }, controllerClazz, methodName);
21
+ MCPInfoUtil_1.MCPInfoUtil.setMCPTool(controllerClazz, methodName);
22
+ };
23
+ }
24
+ function ToolArgsSchema(argsSchema) {
25
+ return function (target, propertyKey, parameterIndex) {
26
+ const controllerClazz = target.constructor;
27
+ const methodName = propertyKey;
28
+ MCPInfoUtil_1.MCPInfoUtil.setMCPToolArgsInArgs({
29
+ argsSchema,
30
+ index: parameterIndex,
31
+ }, controllerClazz, methodName);
32
+ };
33
+ }
34
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTUNQVG9vbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9kZWNvcmF0b3IvbWNwL01DUFRvb2wudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFTQSwwQkF1QkM7QUFFRCx3Q0FpQkM7QUFuREQsa0RBSTJCO0FBRTNCLCtEQUE0RDtBQUM1RCxzRkFBOEQ7QUFFOUQsU0FBZ0IsT0FBTyxDQUFDLE1BQXNCO0lBQzVDLE9BQU8sVUFDTCxNQUFXLEVBQ1gsV0FBd0I7UUFFeEIsTUFBTSxlQUFlLEdBQUcsTUFBTSxDQUFDLFdBQWdDLENBQUM7UUFDaEUsTUFBTSxVQUFVLEdBQUcsV0FBcUIsQ0FBQztRQUN6Qyx3QkFBYyxDQUFDLHVCQUF1QixDQUNwQyxlQUFlLEVBQ2YsVUFBVSxFQUNWLDJCQUFjLENBQUMsR0FBRyxDQUNuQixDQUFDO1FBQ0YseUJBQVcsQ0FBQyxnQkFBZ0IsQ0FDMUI7WUFDRSxHQUFHLE1BQU07WUFDVCxPQUFPLEVBQUUsTUFBTSxhQUFOLE1BQU0sdUJBQU4sTUFBTSxDQUFFLElBQUk7WUFDckIsSUFBSSxFQUFFLFVBQVU7U0FDakIsRUFDRCxlQUFlLEVBQ2YsVUFBVSxDQUNYLENBQUM7UUFDRix5QkFBVyxDQUFDLFVBQVUsQ0FBQyxlQUFlLEVBQUUsVUFBVSxDQUFDLENBQUM7SUFDdEQsQ0FBQyxDQUFDO0FBQ0osQ0FBQztBQUVELFNBQWdCLGNBQWMsQ0FBQyxVQUE4QztJQUMzRSxPQUFPLFVBQ0wsTUFBVyxFQUNYLFdBQXdCLEVBQ3hCLGNBQXNCO1FBRXRCLE1BQU0sZUFBZSxHQUFHLE1BQU0sQ0FBQyxXQUFnQyxDQUFDO1FBQ2hFLE1BQU0sVUFBVSxHQUFHLFdBQXFCLENBQUM7UUFDekMseUJBQVcsQ0FBQyxvQkFBb0IsQ0FDOUI7WUFDRSxVQUFVO1lBQ1YsS0FBSyxFQUFFLGNBQWM7U0FDdEIsRUFDRCxlQUFlLEVBQ2YsVUFBVSxDQUNYLENBQUM7SUFDSixDQUFDLENBQUM7QUFDSixDQUFDIn0=
@@ -46,7 +46,8 @@ class HTTPControllerMetaBuilder {
46
46
  const needAcl = ControllerInfoUtil_1.default.hasControllerAcl(this.clazz);
47
47
  const aclCode = ControllerInfoUtil_1.default.getControllerAcl(this.clazz);
48
48
  const hosts = ControllerInfoUtil_1.default.getControllerHosts(this.clazz);
49
- const metadata = new model_1.HTTPControllerMeta(clazzName, protoName, controllerName, httpPath, httpMiddlewares, methods, needAcl, aclCode, hosts);
49
+ const timeout = ControllerInfoUtil_1.default.getControllerTimeout(this.clazz);
50
+ const metadata = new model_1.HTTPControllerMeta(clazzName, protoName, controllerName, httpPath, httpMiddlewares, methods, needAcl, aclCode, hosts, timeout);
50
51
  ControllerMetadataUtil_1.ControllerMetadataUtil.setControllerMetadata(this.clazz, metadata);
51
52
  for (const method of metadata.methods) {
52
53
  const realPath = metadata.getMethodRealPath(method);
@@ -63,4 +64,4 @@ class HTTPControllerMetaBuilder {
63
64
  }
64
65
  exports.HTTPControllerMetaBuilder = HTTPControllerMetaBuilder;
65
66
  ControllerMetaBuilderFactory_1.ControllerMetaBuilderFactory.registerControllerMetaBuilder(tegg_types_1.ControllerType.HTTP, HTTPControllerMetaBuilder.create);
66
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSFRUUENvbnRyb2xsZXJNZXRhQnVpbGRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9pbXBsL2h0dHAvSFRUUENvbnRyb2xsZXJNZXRhQnVpbGRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSw4REFBaUM7QUFDakMsMERBQXNEO0FBQ3RELDhEQUFzRDtBQUN0RCx3REFBaUQ7QUFFakQsa0RBQW1EO0FBQ25ELDZGQUEwRjtBQUMxRix1Q0FBaUU7QUFDakUsdUZBQStEO0FBQy9ELDhFQUEyRTtBQUMzRSwyRUFBbUQ7QUFDbkQsa0ZBQStFO0FBQy9FLHVGQUFvRjtBQUVwRixNQUFhLHlCQUF5QjtJQUdwQyxZQUFZLEtBQXdCO1FBQ2xDLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO0lBQ3JCLENBQUM7SUFFTyxXQUFXO1FBQ2pCLE1BQU0sV0FBVyxHQUFHLDhCQUFXLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDcEUsTUFBTSxPQUFPLEdBQXFCLEVBQUUsQ0FBQztRQUNyQyxLQUFLLE1BQU0sVUFBVSxJQUFJLFdBQVcsRUFBRSxDQUFDO1lBQ3JDLE1BQU0sT0FBTyxHQUFHLElBQUksaUVBQStCLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxVQUFVLENBQUMsQ0FBQztZQUM1RSxNQUFNLFVBQVUsR0FBRyxPQUFPLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDbkMsSUFBSSxVQUFVLEVBQUUsQ0FBQztnQkFDZixPQUFPLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1lBQzNCLENBQUM7UUFDSCxDQUFDO1FBQ0QsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQztJQUVELEtBQUs7UUFDSCx5Q0FBbUIsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3pDLE1BQU0sY0FBYyxHQUFHLDRCQUFrQixDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN4RSxJQUFBLHFCQUFNLEVBQUMsY0FBYyxLQUFLLDJCQUFjLENBQUMsSUFBSSxFQUFFLDRCQUE0QixDQUFDLENBQUM7UUFDN0UsTUFBTSxRQUFRLEdBQUcsc0JBQVksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3RELE1BQU0sZUFBZSxHQUFHLDRCQUFrQixDQUFDLHdCQUF3QixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNoRixNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDbkMsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUM7UUFDbEMsTUFBTSxjQUFjLEdBQUcsNEJBQWtCLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLFNBQVMsQ0FBQztRQUNyRixNQUFNLFFBQVEsR0FBRyw4QkFBYSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDdkQsTUFBTSxTQUFTLEdBQUcsUUFBUyxDQUFDLElBQWMsQ0FBQztRQUMzQyxNQUFNLE9BQU8sR0FBRyw0QkFBa0IsQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDaEUsTUFBTSxPQUFPLEdBQUcsNEJBQWtCLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2hFLE1BQU0sS0FBSyxHQUFHLDRCQUFrQixDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNoRSxNQUFNLFFBQVEsR0FBRyxJQUFJLDBCQUFrQixDQUNyQyxTQUFTLEVBQUUsU0FBUyxFQUFFLGNBQWMsRUFBRSxRQUFRLEVBQUUsZUFBZSxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQ3JHLCtDQUFzQixDQUFDLHFCQUFxQixDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFDbkUsS0FBSyxNQUFNLE1BQU0sSUFBSSxRQUFRLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDdEMsTUFBTSxRQUFRLEdBQUcsUUFBUSxDQUFDLGlCQUFpQixDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQ3BELElBQUksQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7Z0JBQzlCLE1BQU0sSUFBSSxHQUFHLHlCQUFTLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUNwRCxNQUFNLElBQUksS0FBSyxDQUFDLFNBQVMsSUFBSSxXQUFXLE1BQU0sQ0FBQyxJQUFJLFNBQVMsUUFBUSxtQkFBbUIsQ0FBQyxDQUFDO1lBQzNGLENBQUM7UUFDSCxDQUFDO1FBQ0QsT0FBTyxRQUFRLENBQUM7SUFDbEIsQ0FBQztJQUVELE1BQU0sQ0FBQyxNQUFNLENBQUMsS0FBd0I7UUFDcEMsT0FBTyxJQUFJLHlCQUF5QixDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzlDLENBQUM7Q0FDRjtBQWxERCw4REFrREM7QUFFRCwyREFBNEIsQ0FBQyw2QkFBNkIsQ0FBQywyQkFBYyxDQUFDLElBQUksRUFBRSx5QkFBeUIsQ0FBQyxNQUFNLENBQUMsQ0FBQyJ9
67
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSFRUUENvbnRyb2xsZXJNZXRhQnVpbGRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9pbXBsL2h0dHAvSFRUUENvbnRyb2xsZXJNZXRhQnVpbGRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSw4REFBaUM7QUFDakMsMERBQXNEO0FBQ3RELDhEQUFzRDtBQUN0RCx3REFBaUQ7QUFFakQsa0RBQW1EO0FBQ25ELDZGQUEwRjtBQUMxRix1Q0FBaUU7QUFDakUsdUZBQStEO0FBQy9ELDhFQUEyRTtBQUMzRSwyRUFBbUQ7QUFDbkQsa0ZBQStFO0FBQy9FLHVGQUFvRjtBQUVwRixNQUFhLHlCQUF5QjtJQUdwQyxZQUFZLEtBQXdCO1FBQ2xDLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO0lBQ3JCLENBQUM7SUFFTyxXQUFXO1FBQ2pCLE1BQU0sV0FBVyxHQUFHLDhCQUFXLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDcEUsTUFBTSxPQUFPLEdBQXFCLEVBQUUsQ0FBQztRQUNyQyxLQUFLLE1BQU0sVUFBVSxJQUFJLFdBQVcsRUFBRSxDQUFDO1lBQ3JDLE1BQU0sT0FBTyxHQUFHLElBQUksaUVBQStCLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxVQUFVLENBQUMsQ0FBQztZQUM1RSxNQUFNLFVBQVUsR0FBRyxPQUFPLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDbkMsSUFBSSxVQUFVLEVBQUUsQ0FBQztnQkFDZixPQUFPLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1lBQzNCLENBQUM7UUFDSCxDQUFDO1FBQ0QsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQztJQUVELEtBQUs7UUFDSCx5Q0FBbUIsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3pDLE1BQU0sY0FBYyxHQUFHLDRCQUFrQixDQUFDLGlCQUFp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
@@ -96,13 +96,14 @@ class HTTPControllerMethodMetaBuilder {
96
96
  const needAcl = MethodInfoUtil_1.default.hasMethodAcl(this.clazz, this.methodName);
97
97
  const aclCode = MethodInfoUtil_1.default.getMethodAcl(this.clazz, this.methodName);
98
98
  const hosts = MethodInfoUtil_1.default.getMethodHosts(this.clazz, this.methodName);
99
+ const timeout = MethodInfoUtil_1.default.getMethodTimeout(this.clazz, this.methodName);
99
100
  const realPath = parentPath
100
101
  ? node_path_1.default.posix.join(parentPath, httpPath)
101
102
  : httpPath;
102
103
  const paramTypeMap = this.buildParamType(realPath);
103
104
  const priority = this.getPriority();
104
- return new model_1.HTTPMethodMeta(this.methodName, httpPath, httpMethod, middlewares, contextIndex, paramTypeMap, priority, needAcl, aclCode, hosts);
105
+ return new model_1.HTTPMethodMeta(this.methodName, httpPath, httpMethod, middlewares, contextIndex, paramTypeMap, priority, needAcl, aclCode, hosts, timeout);
105
106
  }
106
107
  }
107
108
  exports.HTTPControllerMethodMetaBuilder = HTTPControllerMethodMetaBuilder;
108
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSFRUUENvbnRyb2xsZXJNZXRob2RNZXRhQnVpbGRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9pbXBsL2h0dHAvSFRUUENvbnRyb2xsZXJNZXRob2RNZXRhQnVpbGRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSwwREFBNkI7QUFDN0Isd0RBQWlEO0FBRWpELHVDQUF1RTtBQUN2RSwwRUFBdUU7QUFDdkUsMkVBQW1EO0FBQ25ELCtFQUF1RDtBQUN2RCxrRUFBK0Q7QUFFL0QsTUFBYSwrQkFBK0I7SUFJMUMsWUFBWSxLQUF3QixFQUFFLFVBQWtCO1FBQ3RELElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxVQUFVLEdBQUcsVUFBVSxDQUFDO0lBQy9CLENBQUM7SUFFRCx3QkFBd0I7SUFDeEIsb0NBQW9DO0lBQ3BDLHVDQUF1QztJQUN2Qyx5REFBeUQ7SUFDekQsRUFBRTtJQUNGLGdCQUFnQjtJQUNoQixtREFBbUQ7SUFDbkQsd0RBQXdEO0lBQ3hELGdCQUFnQjtJQUNSLG9CQUFvQjtRQUMxQixNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7UUFFckQsV0FBVztRQUNYLE1BQU0sY0FBYyxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUM7UUFFckMsVUFBVTtRQUNWLE1BQU0sY0FBYyxHQUFHLHNCQUFZLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDbkYsTUFBTSxZQUFZLEdBQUcsd0JBQWMsQ0FBQyxxQkFBcUIsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUN2RixNQUFNLHVCQUF1QixHQUFHLE9BQU8sWUFBWSxLQUFLLFdBQVc7WUFDakUsQ0FBQyxDQUFDLGNBQWMs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
109
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSFRUUENvbnRyb2xsZXJNZXRob2RNZXRhQnVpbGRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9pbXBsL2h0dHAvSFRUUENvbnRyb2xsZXJNZXRob2RNZXRhQnVpbGRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSwwREFBNkI7QUFDN0Isd0RBQWlEO0FBRWpELHVDQUF1RTtBQUN2RSwwRUFBdUU7QUFDdkUsMkVBQW1EO0FBQ25ELCtFQUF1RDtBQUN2RCxrRUFBK0Q7QUFFL0QsTUFBYSwrQkFBK0I7SUFJMUMsWUFBWSxLQUF3QixFQUFFLFVBQWtCO1FBQ3RELElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxVQUFVLEdBQUcsVUFBVSxDQUFDO0lBQy9CLENBQUM7SUFFRCx3QkFBd0I7SUFDeEIsb0NBQW9DO0lBQ3BDLHVDQUF1QztJQUN2Qyx5REFBeUQ7SUFDekQsRUFBRTtJQUNGLGdCQUFnQjtJQUNoQixtREFBbUQ7SUFDbkQsd0RBQXdEO0lBQ3hELGdCQUFnQjtJQUNSLG9CQUFvQjtRQUMxQixNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7UUFFckQsV0FBVztRQUNYLE1BQU0sY0FBYyxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUM7UUFFckMsVUFBVTtRQUNWLE1BQU0sY0FBYyxHQUFHLHNCQUFZLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDbkYsTUFBTSxZQUFZLEdBQUcsd0JBQWMsQ0FBQyxxQkFBcUIsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUN2RixNQUFNLHVCQUF1QixHQUFHLE9BQU8sWUFBWSxLQUFLLFdBQVc7WUFDakUsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxNQUFNO1lBQ3ZCLENBQUMsQ0FBQyxjQUFjLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztRQUc5QixNQUFNLGFBQWEsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLGNBQWMsRUFBRSx1QkFBdUIsQ0FBQyxDQUFDO1FBRXhFLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxhQUFhLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQztZQUN2QyxjQUFjO1lBQ2QsSUFBSSxDQUFDLEtBQUssWUFBWSxFQUFFLENBQUM7Z0JBQ3ZCLFNBQVM7WUFDWCxDQUFDO1lBQ0QsTUFBTSxTQUFTLEdBQUcsc0JBQVksQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7WUFDdEYsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO2dCQUNmLE1BQU0sU0FBUyxHQUFHLHlCQUFTLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUN6RCxNQUFNLElBQUksS0FBSyxDQUFDLEdBQUcsU0FBUyxJQUFJLElBQUksQ0FBQyxVQUFVLFVBQVUsQ0FBQyxxRkFBcUYsQ0FBQyxDQUFDO1lBQ25KLENBQUM7UUFDSCxDQUFDO0lBQ0gsQ0FBQztJQUVPLGNBQWMsQ0FBQyxRQUFnQjtRQUNyQyxJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztRQUU1QixNQUFNLFlBQVksR0FBRyxJQUFJLEdBQUcsRUFBcUIsQ0FBQztRQUNsRCxNQUFNLGNBQWMsR0FBRyxzQkFBWSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ25GLEtBQUssTUFBTSxVQUFVLElBQUksY0FBYyxFQUFFLENBQUM7WUFDeEMsTUFBTSxTQUFTLEdBQUcsc0JBQVksQ0FBQyxzQkFBc0IsQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFFLENBQUM7WUFDaEcsTUFBTSxTQUFTLEdBQUcsc0JBQVksQ0FBQyxzQkFBc0IsQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7WUFDL0YsTUFBTSxTQUFTLEdBQUcscUJBQWEsQ0FBQyxXQUFXLENBQUMsU0FBUyxFQUFFLFNBQVMsQ0FBQyxDQUFDO1lBRWxFLElBQUksQ0FBQztnQkFDSCxTQUFTLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQy9CLENBQUM7WUFBQyxPQUFPLENBQUMsRUFBRSxDQUFDO2dCQUNYLE1BQU0sU0FBUyxHQUFHLHlCQUFTLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUN6RCxDQUFDLENBQUMsT0FBTyxHQUFHLG9CQUFvQixTQUFTLFdBQVcsSUFBSSxDQUFDLFVBQVUsVUFBVSxTQUFTLFlBQVksQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDO2dCQUM5RyxNQUFNLENBQUMsQ0FBQztZQUNWLENBQUM7WUFFRCxZQUFZLENBQUMsR0FBRyxDQUFDLFVBQVUsRUFBRSxTQUFTLENBQUMsQ0FBQztRQUMxQyxDQUFDO1FBQ0QsT0FBTyxZQUFZLENBQUM7SUFDdEIsQ0FBQztJQUVELFdBQVc7UUFDVCxNQUFNLFFBQVEsR0FBRyxzQkFBWSxDQUFDLHFCQUFxQixDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ2pGLElBQUksUUFBUSxLQUFLLFNBQVMsRUFBRSxDQUFDO1lBQzNCLE9BQU8sUUFBUSxDQUFDO1FBQ2xCLENBQUM7UUFDRCxNQUFNLGNBQWMsR0FBRyxzQkFBWSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDNUQsTUFBTSxVQUFVLEdBQUcsc0JBQVksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUUsQ0FBQztRQUNoRixNQUFNLFFBQVEsR0FBRyxjQUFjLENBQUMsQ0FBQyxDQUFDLG1CQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUUsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQztRQUMzRixNQUFNLGVBQWUsR0FBRyxtQ0FBZ0IsQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUNwRSxJQUFJLGVBQWUsR0FBRyxtQ0FBZ0IsQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1lBQ3hELE1BQU0sSUFBSSxLQUFLLENBQUMsUUFBUSxRQUFRLDRDQUE0QyxDQUFDLENBQUM7UUFDaEYsQ0FBQztRQUNELE9BQU8sZUFBZSxDQUFDO0lBQ3pCLENBQUM7SUFFRCxLQUFLO1FBQ0gsaUNBQWUsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDdEQsTUFBTSxjQUFjLEdBQUcsd0JBQWMsQ0FBQyx1QkFBdUIsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUMzRixJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7WUFDcEIsT0FBTyxTQUFTLENBQUM7UUFDbkIsQ0FBQztRQUNELE1BQU0sVUFBVSxHQUFHLHNCQUFZLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDakYsTUFBTSxVQUFVLEdBQUcsc0JBQVksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3hELE1BQU0sUUFBUSxHQUFHLHNCQUFZLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFFLENBQUM7UUFDOUUsTUFBTSxZQUFZLEdBQUcsd0JBQWMsQ0FBQyxxQkFBcUIsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUN2RixNQUFNLFdBQVcsR0FBRyx3QkFBYyxDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ3JGLE1BQU0sT0FBTyxHQUFHLHdCQUFjLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ3pFLE1BQU0sT0FBTyxHQUFHLHdCQUFjLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ3pFLE1BQU0sS0FBSyxHQUFHLHdCQUFjLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ3pFLE1BQU0sT0FBTyxHQUFHLHdCQUFjLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDN0UsTUFBTSxRQUFRLEdBQUcsVUFBVTtZQUN6QixDQUFDLENBQUMsbUJBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxRQUFRLENBQUM7WUFDdkMsQ0FBQyxDQUFDLFFBQVEsQ0FBQztRQUNiLE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDbkQsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ3BDLE9BQU8sSUFBSSxzQkFBYyxDQUN2QixJQUFJLENBQUMsVUFBVSxFQUFFLFFBQVMsRUFBRSxVQUFXLEVBQUUsV0FBVyxFQUFFLFlBQVksRUFBRSxZQUFZLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQ2xJLENBQUM7Q0FDRjtBQTVHRCwwRUE0R0MifQ==
@@ -0,0 +1,11 @@
1
+ import { EggProtoImplClass } from '@eggjs/tegg-types';
2
+ import { MCPControllerMeta } from '../../../src/model/MCPControllerMeta';
3
+ export declare class MCPControllerMetaBuilder {
4
+ private readonly clazz;
5
+ constructor(clazz: EggProtoImplClass);
6
+ private buildResource;
7
+ private buildPrompt;
8
+ private buildTool;
9
+ build(): MCPControllerMeta;
10
+ static create(clazz: EggProtoImplClass): MCPControllerMetaBuilder;
11
+ }
@@ -0,0 +1,82 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.MCPControllerMetaBuilder = void 0;
7
+ const assert_1 = __importDefault(require("assert"));
8
+ const core_decorator_1 = require("@eggjs/core-decorator");
9
+ const ControllerValidator_1 = require("../../util/validator/ControllerValidator");
10
+ const ControllerInfoUtil_1 = __importDefault(require("../../util/ControllerInfoUtil"));
11
+ const MCPControllerPromptMetaBuilder_1 = require("./MCPControllerPromptMetaBuilder");
12
+ const MCPControllerResourceMetaBuilder_1 = require("./MCPControllerResourceMetaBuilder");
13
+ const MCPControllerToolMetaBuilder_1 = require("./MCPControllerToolMetaBuilder");
14
+ const MCPInfoUtil_1 = require("../../../src/util/MCPInfoUtil");
15
+ const tegg_types_1 = require("@eggjs/tegg-types");
16
+ const MCPControllerMeta_1 = require("../../../src/model/MCPControllerMeta");
17
+ const ControllerMetaBuilderFactory_1 = require("../../builder/ControllerMetaBuilderFactory");
18
+ class MCPControllerMetaBuilder {
19
+ constructor(clazz) {
20
+ this.clazz = clazz;
21
+ }
22
+ buildResource() {
23
+ const methodNames = MCPInfoUtil_1.MCPInfoUtil.getMCPResource(this.clazz);
24
+ const methods = [];
25
+ for (const methodName of methodNames) {
26
+ const builder = new MCPControllerResourceMetaBuilder_1.MCPControllerResourceMetaBuilder(this.clazz, methodName);
27
+ const methodMeta = builder.build();
28
+ if (methodMeta) {
29
+ methods.push(methodMeta);
30
+ }
31
+ }
32
+ return methods;
33
+ }
34
+ buildPrompt() {
35
+ const methodNames = MCPInfoUtil_1.MCPInfoUtil.getMCPPrompt(this.clazz);
36
+ const methods = [];
37
+ for (const methodName of methodNames) {
38
+ const builder = new MCPControllerPromptMetaBuilder_1.MCPControllerPromptMetaBuilder(this.clazz, methodName);
39
+ const methodMeta = builder.build();
40
+ if (methodMeta) {
41
+ methods.push(methodMeta);
42
+ }
43
+ }
44
+ return methods;
45
+ }
46
+ buildTool() {
47
+ const methodNames = MCPInfoUtil_1.MCPInfoUtil.getMCPTool(this.clazz);
48
+ const methods = [];
49
+ for (const methodName of methodNames) {
50
+ const builder = new MCPControllerToolMetaBuilder_1.MCPControllerToolMetaBuilder(this.clazz, methodName);
51
+ const methodMeta = builder.build();
52
+ if (methodMeta) {
53
+ methods.push(methodMeta);
54
+ }
55
+ }
56
+ return methods;
57
+ }
58
+ build() {
59
+ ControllerValidator_1.ControllerValidator.validate(this.clazz);
60
+ const controllerType = ControllerInfoUtil_1.default.getControllerType(this.clazz);
61
+ (0, assert_1.default)(controllerType === tegg_types_1.ControllerType.MCP, 'invalidate controller type');
62
+ const mcpMiddlewares = ControllerInfoUtil_1.default.getControllerMiddlewares(this.clazz);
63
+ const resources = this.buildResource();
64
+ const prompts = this.buildPrompt();
65
+ const tools = this.buildTool();
66
+ const property = core_decorator_1.PrototypeUtil.getProperty(this.clazz);
67
+ const protoName = property.name;
68
+ const clazzName = this.clazz.name;
69
+ const controllerName = ControllerInfoUtil_1.default.getControllerName(this.clazz) || clazzName;
70
+ const name = MCPInfoUtil_1.MCPInfoUtil.getMCPName(this.clazz) || controllerName;
71
+ const version = MCPInfoUtil_1.MCPInfoUtil.getMCPVersion(this.clazz) || '1.0.0';
72
+ const needAcl = ControllerInfoUtil_1.default.hasControllerAcl(this.clazz);
73
+ const aclCode = ControllerInfoUtil_1.default.getControllerAcl(this.clazz);
74
+ return new MCPControllerMeta_1.MCPControllerMeta(clazzName, protoName, controllerName, name, version, tools, resources, prompts, mcpMiddlewares, needAcl, aclCode);
75
+ }
76
+ static create(clazz) {
77
+ return new MCPControllerMetaBuilder(clazz);
78
+ }
79
+ }
80
+ exports.MCPControllerMetaBuilder = MCPControllerMetaBuilder;
81
+ ControllerMetaBuilderFactory_1.ControllerMetaBuilderFactory.registerControllerMetaBuilder(tegg_types_1.ControllerType.MCP, MCPControllerMetaBuilder.create);
82
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTUNQQ29udHJvbGxlck1ldGFCdWlsZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2ltcGwvbWNwL01DUENvbnRyb2xsZXJNZXRhQnVpbGRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxvREFBNEI7QUFDNUIsMERBQXNEO0FBRXRELGtGQUErRTtBQUMvRSx1RkFBK0Q7QUFDL0QscUZBQWtGO0FBQ2xGLHlGQUFzRjtBQUN0RixpRkFBOEU7QUFDOUUsK0RBQTREO0FBQzVELGtEQUFzRTtBQUN0RSw0RUFBeUU7QUFDekUsNkZBQTBGO0FBRTFGLE1BQWEsd0JBQXdCO0lBR25DLFlBQVksS0FBd0I7UUFDbEMsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7SUFDckIsQ0FBQztJQUVPLGFBQWE7UUFDbkIsTUFBTSxXQUFXLEdBQUcseUJBQVcsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzNELE1BQU0sT0FBTyxHQUFzQixFQUFFLENBQUM7UUFDdEMsS0FBSyxNQUFNLFVBQVUsSUFBSSxXQUFXLEVBQUUsQ0FBQztZQUNyQyxNQUFNLE9BQU8sR0FBRyxJQUFJLG1FQUFnQyxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsVUFBVSxDQUFDLENBQUM7WUFDN0UsTUFBTSxVQUFVLEdBQUcsT0FBTyxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ25DLElBQUksVUFBVSxFQUFFLENBQUM7Z0JBQ2YsT0FBTyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztZQUMzQixDQUFDO1FBQ0gsQ0FBQztRQUNELE9BQU8sT0FBTyxDQUFDO0lBQ2pCLENBQUM7SUFFTyxXQUFXO1FBQ2pCLE1BQU0sV0FBVyxHQUFHLHlCQUFXLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN6RCxNQUFNLE9BQU8sR0FBb0IsRUFBRSxDQUFDO1FBQ3BDLEtBQUssTUFBTSxV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
@@ -0,0 +1,8 @@
1
+ import type { EggProtoImplClass } from '@eggjs/tegg-types';
2
+ import { MCPPromptMeta } from '../../model';
3
+ export declare class MCPControllerPromptMetaBuilder {
4
+ private readonly clazz;
5
+ private readonly methodName;
6
+ constructor(clazz: EggProtoImplClass, methodName: string);
7
+ build(): MCPPromptMeta | undefined;
8
+ }
@@ -0,0 +1,40 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.MCPControllerPromptMetaBuilder = void 0;
7
+ const model_1 = require("../../model");
8
+ const MethodValidator_1 = require("../../util/validator/MethodValidator");
9
+ const MethodInfoUtil_1 = __importDefault(require("../../util/MethodInfoUtil"));
10
+ const MCPInfoUtil_1 = require("../../util/MCPInfoUtil");
11
+ class MCPControllerPromptMetaBuilder {
12
+ constructor(clazz, methodName) {
13
+ this.clazz = clazz;
14
+ this.methodName = methodName;
15
+ }
16
+ build() {
17
+ MethodValidator_1.MethodValidator.validate(this.clazz, this.methodName);
18
+ const controllerType = MethodInfoUtil_1.default.getMethodControllerType(this.clazz, this.methodName);
19
+ if (!controllerType) {
20
+ return undefined;
21
+ }
22
+ const middlewares = MethodInfoUtil_1.default.getMethodMiddlewares(this.clazz, this.methodName);
23
+ const needAcl = MethodInfoUtil_1.default.hasMethodAcl(this.clazz, this.methodName);
24
+ const aclCode = MethodInfoUtil_1.default.getMethodAcl(this.clazz, this.methodName);
25
+ const params = MCPInfoUtil_1.MCPInfoUtil.getMCPPromptParams(this.clazz, this.methodName);
26
+ const detail = MCPInfoUtil_1.MCPInfoUtil.getMCPPromptArgsIndex(this.clazz, this.methodName);
27
+ const extra = MCPInfoUtil_1.MCPInfoUtil.getMCPExtra(this.clazz, this.methodName);
28
+ return new model_1.MCPPromptMeta({
29
+ name: this.methodName,
30
+ middlewares,
31
+ needAcl,
32
+ aclCode,
33
+ detail,
34
+ extra,
35
+ ...params,
36
+ });
37
+ }
38
+ }
39
+ exports.MCPControllerPromptMetaBuilder = MCPControllerPromptMetaBuilder;
40
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTUNQQ29udHJvbGxlclByb21wdE1ldGFCdWlsZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2ltcGwvbWNwL01DUENvbnRyb2xsZXJQcm9tcHRNZXRhQnVpbGRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFDQSx1Q0FBNEM7QUFDNUMsMEVBQXVFO0FBQ3ZFLCtFQUF1RDtBQUN2RCx3REFBcUQ7QUFFckQsTUFBYSw4QkFBOEI7SUFJekMsWUFBWSxLQUF3QixFQUFFLFVBQWtCO1FBQ3RELElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxVQUFVLEdBQUcsVUFBVSxDQUFDO0lBQy9CLENBQUM7SUFFRCxLQUFLO1FBQ0gsaUNBQWUsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDdEQsTUFBTSxjQUFjLEdBQUcsd0JBQWMsQ0FBQyx1QkFBdUIsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUMzRixJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7WUFDcEIsT0FBTyxTQUFTLENBQUM7UUFDbkIsQ0FBQztRQUNELE1BQU0sV0FBVyxHQUFHLHdCQUFjLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDckYsTUFBTSxPQUFPLEdBQUcsd0JBQWMsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDekUsTUFBTSxPQUFPLEdBQUcsd0JBQWMsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDekUsTUFBTSxNQUFNLEdBQUcseUJBQVcsQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUMzRSxNQUFNLE1BQU0sR0FBRyx5QkFBVyxDQUFDLHFCQUFxQixDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQzlFLE1BQU0sS0FBSyxHQUFHLHlCQUFXLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBRW5FLE9BQU8sSUFBSSxxQkFBYSxDQUFDO1lBQ3ZCLElBQUksRUFBRSxJQUFJLENBQUMsVUFBVTtZQUNyQixXQUFXO1lBQ1gsT0FBTztZQUNQLE9BQU87WUFDUCxNQUFNO1lBQ04sS0FBSztZQUNMLEdBQUcsTUFBTTtTQUNWLENBQUMsQ0FBQztJQUNMLENBQUM7Q0FDRjtBQWhDRCx3RUFnQ0MifQ==
@@ -0,0 +1,8 @@
1
+ import type { EggProtoImplClass } from '@eggjs/tegg-types';
2
+ import { MCPResourceMeta } from '../../model';
3
+ export declare class MCPControllerResourceMetaBuilder {
4
+ private readonly clazz;
5
+ private readonly methodName;
6
+ constructor(clazz: EggProtoImplClass, methodName: string);
7
+ build(): MCPResourceMeta | undefined;
8
+ }
@@ -0,0 +1,38 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.MCPControllerResourceMetaBuilder = void 0;
7
+ const model_1 = require("../../model");
8
+ const MethodValidator_1 = require("../../util/validator/MethodValidator");
9
+ const MethodInfoUtil_1 = __importDefault(require("../../util/MethodInfoUtil"));
10
+ const MCPInfoUtil_1 = require("../../util/MCPInfoUtil");
11
+ class MCPControllerResourceMetaBuilder {
12
+ constructor(clazz, methodName) {
13
+ this.clazz = clazz;
14
+ this.methodName = methodName;
15
+ }
16
+ build() {
17
+ MethodValidator_1.MethodValidator.validate(this.clazz, this.methodName);
18
+ const controllerType = MethodInfoUtil_1.default.getMethodControllerType(this.clazz, this.methodName);
19
+ if (!controllerType) {
20
+ return undefined;
21
+ }
22
+ const middlewares = MethodInfoUtil_1.default.getMethodMiddlewares(this.clazz, this.methodName);
23
+ const needAcl = MethodInfoUtil_1.default.hasMethodAcl(this.clazz, this.methodName);
24
+ const aclCode = MethodInfoUtil_1.default.getMethodAcl(this.clazz, this.methodName);
25
+ const params = MCPInfoUtil_1.MCPInfoUtil.getMCPResourceParams(this.clazz, this.methodName);
26
+ const extra = MCPInfoUtil_1.MCPInfoUtil.getMCPExtra(this.clazz, this.methodName);
27
+ return new model_1.MCPResourceMeta({
28
+ name: this.methodName,
29
+ middlewares,
30
+ needAcl,
31
+ aclCode,
32
+ extra,
33
+ ...params,
34
+ });
35
+ }
36
+ }
37
+ exports.MCPControllerResourceMetaBuilder = MCPControllerResourceMetaBuilder;
38
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTUNQQ29udHJvbGxlclJlc291cmNlTWV0YUJ1aWxkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvaW1wbC9tY3AvTUNQQ29udHJvbGxlclJlc291cmNlTWV0YUJ1aWxkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQ0EsdUNBQThDO0FBQzlDLDBFQUF1RTtBQUN2RSwrRUFBdUQ7QUFDdkQsd0RBQXFEO0FBRXJELE1BQWEsZ0NBQWdDO0lBSTNDLFlBQVksS0FBd0IsRUFBRSxVQUFrQjtRQUN0RCxJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztRQUNuQixJQUFJLENBQUMsVUFBVSxHQUFHLFVBQVUsQ0FBQztJQUMvQixDQUFDO0lBRUQsS0FBSztRQUNILGlDQUFlLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ3RELE1BQU0sY0FBYyxHQUFHLHdCQUFjLENBQUMsdUJBQXVCLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDM0YsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1lBQ3BCLE9BQU8sU0FBUyxDQUFDO1FBQ25CLENBQUM7UUFDRCxNQUFNLFdBQVcsR0FBRyx3QkFBYyxDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ3JGLE1BQU0sT0FBTyxHQUFHLHdCQUFjLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ3pFLE1BQU0sT0FBTyxHQUFHLHdCQUFjLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ3pFLE1BQU0sTUFBTSxHQUFHLHlCQUFXLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDN0UsTUFBTSxLQUFLLEdBQUcseUJBQVcsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7UUFFbkUsT0FBTyxJQUFJLHVCQUFlLENBQUM7WUFDekIsSUFBSSxFQUFFLElBQUksQ0FBQyxVQUFVO1lBQ3JCLFdBQVc7WUFDWCxPQUFPO1lBQ1AsT0FBTztZQUNQLEtBQUs7WUFDTCxHQUFHLE1BQU07U0FDVixDQUFDLENBQUM7SUFDTCxDQUFDO0NBQ0Y7QUE5QkQsNEVBOEJDIn0=
@@ -0,0 +1,8 @@
1
+ import type { EggProtoImplClass } from '@eggjs/tegg-types';
2
+ import { MCPToolMeta } from '../../model';
3
+ export declare class MCPControllerToolMetaBuilder {
4
+ private readonly clazz;
5
+ private readonly methodName;
6
+ constructor(clazz: EggProtoImplClass, methodName: string);
7
+ build(): MCPToolMeta | undefined;
8
+ }
@@ -0,0 +1,40 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.MCPControllerToolMetaBuilder = void 0;
7
+ const model_1 = require("../../model");
8
+ const MethodValidator_1 = require("../../util/validator/MethodValidator");
9
+ const MethodInfoUtil_1 = __importDefault(require("../../util/MethodInfoUtil"));
10
+ const MCPInfoUtil_1 = require("../../util/MCPInfoUtil");
11
+ class MCPControllerToolMetaBuilder {
12
+ constructor(clazz, methodName) {
13
+ this.clazz = clazz;
14
+ this.methodName = methodName;
15
+ }
16
+ build() {
17
+ MethodValidator_1.MethodValidator.validate(this.clazz, this.methodName);
18
+ const controllerType = MethodInfoUtil_1.default.getMethodControllerType(this.clazz, this.methodName);
19
+ if (!controllerType) {
20
+ return undefined;
21
+ }
22
+ const middlewares = MethodInfoUtil_1.default.getMethodMiddlewares(this.clazz, this.methodName);
23
+ const needAcl = MethodInfoUtil_1.default.hasMethodAcl(this.clazz, this.methodName);
24
+ const aclCode = MethodInfoUtil_1.default.getMethodAcl(this.clazz, this.methodName);
25
+ const params = MCPInfoUtil_1.MCPInfoUtil.getMCPToolParams(this.clazz, this.methodName);
26
+ const detail = MCPInfoUtil_1.MCPInfoUtil.getMCPToolArgsIndex(this.clazz, this.methodName);
27
+ const extra = MCPInfoUtil_1.MCPInfoUtil.getMCPExtra(this.clazz, this.methodName);
28
+ return new model_1.MCPToolMeta({
29
+ name: this.methodName,
30
+ middlewares,
31
+ needAcl,
32
+ aclCode,
33
+ detail,
34
+ extra,
35
+ ...params,
36
+ });
37
+ }
38
+ }
39
+ exports.MCPControllerToolMetaBuilder = MCPControllerToolMetaBuilder;
40
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTUNQQ29udHJvbGxlclRvb2xNZXRhQnVpbGRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9pbXBsL21jcC9NQ1BDb250cm9sbGVyVG9vbE1ldGFCdWlsZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUNBLHVDQUEwQztBQUMxQywwRUFBdUU7QUFDdkUsK0VBQXVEO0FBQ3ZELHdEQUFxRDtBQUVyRCxNQUFhLDRCQUE0QjtJQUl2QyxZQUFZLEtBQXdCLEVBQUUsVUFBa0I7UUFDdEQsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7UUFDbkIsSUFBSSxDQUFDLFVBQVUsR0FBRyxVQUFVLENBQUM7SUFDL0IsQ0FBQztJQUVELEtBQUs7UUFDSCxpQ0FBZSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUN0RCxNQUFNLGNBQWMsR0FBRyx3QkFBYyxDQUFDLHVCQUF1QixDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQzNGLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUNwQixPQUFPLFNBQVMsQ0FBQztRQUNuQixDQUFDO1FBQ0QsTUFBTSxXQUFXLEdBQUcsd0JBQWMsQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUNyRixNQUFNLE9BQU8sR0FBRyx3QkFBYyxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUN6RSxNQUFNLE9BQU8sR0FBRyx3QkFBYyxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUN6RSxNQUFNLE1BQU0sR0FBRyx5QkFBVyxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ3pFLE1BQU0sTUFBTSxHQUFHLHlCQUFXLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDNUUsTUFBTSxLQUFLLEdBQUcseUJBQVcsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7UUFFbkUsT0FBTyxJQUFJLG1CQUFXLENBQUM7WUFDckIsSUFBSSxFQUFFLElBQUksQ0FBQyxVQUFVO1lBQ3JCLFdBQVc7WUFDWCxPQUFPO1lBQ1AsT0FBTztZQUNQLE1BQU07WUFDTixLQUFLO1lBQ0wsR0FBRyxNQUFNO1NBQ1YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztDQUNGO0FBaENELG9FQWdDQyJ9