@eggjs/tegg-controller-plugin 3.62.0 → 4.0.0-beta.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +15 -126
- package/dist/app/middleware/tegg_root_proto.d.ts +3 -0
- package/dist/app/middleware/tegg_root_proto.js +8 -0
- package/dist/app.d.ts +23 -0
- package/dist/app.js +76 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.js +2 -0
- package/{lib → dist/lib}/AppLoadUnitControllerHook.d.ts +4 -4
- package/dist/lib/AppLoadUnitControllerHook.js +29 -0
- package/{lib → dist/lib}/ControllerLoadUnit.d.ts +2 -2
- package/dist/lib/ControllerLoadUnit.js +72 -0
- package/{lib → dist/lib}/ControllerLoadUnitHandler.d.ts +4 -4
- package/dist/lib/ControllerLoadUnitHandler.js +29 -0
- package/{lib → dist/lib}/ControllerLoadUnitInstance.d.ts +3 -3
- package/dist/lib/ControllerLoadUnitInstance.js +36 -0
- package/{lib → dist/lib}/ControllerMetadataManager.d.ts +1 -1
- package/dist/lib/ControllerMetadataManager.js +27 -0
- package/{lib → dist/lib}/ControllerRegister.d.ts +2 -2
- package/dist/lib/ControllerRegister.js +3 -0
- package/{lib → dist/lib}/ControllerRegisterFactory.d.ts +4 -4
- package/dist/lib/ControllerRegisterFactory.js +22 -0
- package/dist/lib/EggControllerLoader.d.ts +7 -0
- package/dist/lib/EggControllerLoader.js +31 -0
- package/{lib → dist/lib}/EggControllerPrototypeHook.d.ts +2 -2
- package/dist/lib/EggControllerPrototypeHook.js +11 -0
- package/{lib → dist/lib}/RootProtoManager.d.ts +2 -2
- package/dist/lib/RootProtoManager.js +34 -0
- package/dist/lib/errors.js +12 -0
- package/dist/lib/impl/http/Acl.d.ts +2 -0
- package/dist/lib/impl/http/Acl.js +33 -0
- package/{lib → dist/lib}/impl/http/HTTPControllerRegister.d.ts +4 -4
- package/dist/lib/impl/http/HTTPControllerRegister.js +64 -0
- package/{lib → dist/lib}/impl/http/HTTPMethodRegister.d.ts +2 -2
- package/dist/lib/impl/http/HTTPMethodRegister.js +165 -0
- package/dist/lib/impl/http/Req.js +13 -0
- package/dist/types.d.ts +2 -0
- package/dist/types.js +3 -0
- package/package.json +60 -50
- package/app/middleware/mcp_body_middleware.d.ts +0 -3
- package/app/middleware/mcp_body_middleware.js +0 -48
- package/app/middleware/tegg_root_proto.d.ts +0 -3
- package/app/middleware/tegg_root_proto.js +0 -11
- package/app.d.ts +0 -15
- package/app.js +0 -143
- package/config/config.default.d.ts +0 -11
- package/config/config.default.js +0 -16
- package/lib/AppLoadUnitControllerHook.js +0 -28
- package/lib/ControllerLoadUnit.js +0 -71
- package/lib/ControllerLoadUnitHandler.js +0 -31
- package/lib/ControllerLoadUnitInstance.js +0 -34
- package/lib/ControllerMetadataManager.js +0 -30
- package/lib/ControllerRegister.js +0 -3
- package/lib/ControllerRegisterFactory.js +0 -21
- package/lib/EggControllerLoader.d.ts +0 -6
- package/lib/EggControllerLoader.js +0 -37
- package/lib/EggControllerPrototypeHook.js +0 -14
- package/lib/RootProtoManager.js +0 -38
- package/lib/errors.js +0 -16
- package/lib/impl/http/Acl.d.ts +0 -2
- package/lib/impl/http/Acl.js +0 -34
- package/lib/impl/http/HTTPControllerRegister.js +0 -62
- package/lib/impl/http/HTTPMethodRegister.js +0 -173
- package/lib/impl/http/Req.js +0 -17
- package/lib/impl/mcp/MCPConfig.d.ts +0 -32
- package/lib/impl/mcp/MCPConfig.js +0 -107
- package/lib/impl/mcp/MCPControllerRegister.d.ts +0 -67
- package/lib/impl/mcp/MCPControllerRegister.js +0 -541
- package/lib/impl/mcp/MCPServerHelper.d.ts +0 -17
- package/lib/impl/mcp/MCPServerHelper.js +0 -122
- package/typings/index.d.ts +0 -17
- /package/{lib → dist/lib}/errors.d.ts +0 -0
- /package/{lib → dist/lib}/impl/http/Req.d.ts +0 -0
package/lib/impl/http/Acl.d.ts
DELETED
package/lib/impl/http/Acl.js
DELETED
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.aclMiddlewareFactory = aclMiddlewareFactory;
|
|
4
|
-
function aclMiddlewareFactory(controllerMeta, methodMeta) {
|
|
5
|
-
if (!controllerMeta.hasMethodAcl(methodMeta)) {
|
|
6
|
-
return;
|
|
7
|
-
}
|
|
8
|
-
const code = controllerMeta.getMethodAcl(methodMeta);
|
|
9
|
-
return async function aclMiddleware(ctx, next) {
|
|
10
|
-
try {
|
|
11
|
-
await ctx.acl(code);
|
|
12
|
-
}
|
|
13
|
-
catch (e) {
|
|
14
|
-
const { redirectUrl, status } = e.data || {};
|
|
15
|
-
if (!redirectUrl) {
|
|
16
|
-
throw e;
|
|
17
|
-
}
|
|
18
|
-
if (ctx.acceptJSON) {
|
|
19
|
-
ctx.body = {
|
|
20
|
-
target: redirectUrl,
|
|
21
|
-
stat: 'deny',
|
|
22
|
-
};
|
|
23
|
-
return;
|
|
24
|
-
}
|
|
25
|
-
if (status) {
|
|
26
|
-
ctx.realStatus = status;
|
|
27
|
-
}
|
|
28
|
-
ctx.redirect(redirectUrl);
|
|
29
|
-
return;
|
|
30
|
-
}
|
|
31
|
-
return next();
|
|
32
|
-
};
|
|
33
|
-
}
|
|
34
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQWNsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiQWNsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBRUEsb0RBNkJDO0FBN0JELFNBQWdCLG9CQUFvQixDQUFDLGNBQWtDLEVBQUUsVUFBMEI7SUFDakcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxZQUFZLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQztRQUM3QyxPQUFPO0lBQ1QsQ0FBQztJQUNELE1BQU0sSUFBSSxHQUFHLGNBQWMsQ0FBQyxZQUFZLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDckQsT0FBTyxLQUFLLFVBQVUsYUFBYSxDQUFDLEdBQWUsRUFBRSxJQUFVO1FBQzdELElBQUksQ0FBQztZQUNILE1BQU0sR0FBRyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN0QixDQUFDO1FBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztZQUNYLE1BQU0sRUFBRSxXQUFXLEVBQUUsTUFBTSxFQUFFLEdBQUcsQ0FBQyxDQUFDLElBQUksSUFBSSxFQUFFLENBQUM7WUFDN0MsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO2dCQUNqQixNQUFNLENBQUMsQ0FBQztZQUNWLENBQUM7WUFDRCxJQUFJLEdBQUcsQ0FBQyxVQUFVLEVBQUUsQ0FBQztnQkFDbkIsR0FBRyxDQUFDLElBQUksR0FBRztvQkFDVCxNQUFNLEVBQUUsV0FBVztvQkFDbkIsSUFBSSxFQUFFLE1BQU07aUJBQ2IsQ0FBQztnQkFDRixPQUFPO1lBQ1QsQ0FBQztZQUNELElBQUksTUFBTSxFQUFFLENBQUM7Z0JBQ1gsR0FBRyxDQUFDLFVBQVUsR0FBRyxNQUFNLENBQUM7WUFDMUIsQ0FBQztZQUNELEdBQUcsQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLENBQUM7WUFDMUIsT0FBTztRQUVULENBQUM7UUFDRCxPQUFPLElBQUksRUFBRSxDQUFDO0lBQ2hCLENBQUMsQ0FBQztBQUNKLENBQUMifQ==
|
|
@@ -1,62 +0,0 @@
|
|
|
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.HTTPControllerRegister = void 0;
|
|
7
|
-
const assert_1 = __importDefault(require("assert"));
|
|
8
|
-
const tegg_1 = require("@eggjs/tegg");
|
|
9
|
-
const HTTPMethodRegister_1 = require("./HTTPMethodRegister");
|
|
10
|
-
class HTTPControllerRegister {
|
|
11
|
-
static create(proto, controllerMeta, app) {
|
|
12
|
-
(0, assert_1.default)(controllerMeta.type === tegg_1.ControllerType.HTTP, 'controller meta type is not HTTP');
|
|
13
|
-
if (!HTTPControllerRegister.instance) {
|
|
14
|
-
HTTPControllerRegister.instance = new HTTPControllerRegister(app.router, app.eggContainerFactory);
|
|
15
|
-
}
|
|
16
|
-
HTTPControllerRegister.instance.controllerProtos.push(proto);
|
|
17
|
-
return HTTPControllerRegister.instance;
|
|
18
|
-
}
|
|
19
|
-
constructor(router, eggContainerFactory) {
|
|
20
|
-
this.controllerProtos = [];
|
|
21
|
-
this.router = router;
|
|
22
|
-
this.checkRouters = new Map();
|
|
23
|
-
this.checkRouters.set('default', router);
|
|
24
|
-
this.eggContainerFactory = eggContainerFactory;
|
|
25
|
-
}
|
|
26
|
-
register() {
|
|
27
|
-
// do noting
|
|
28
|
-
return Promise.resolve();
|
|
29
|
-
}
|
|
30
|
-
static clean() {
|
|
31
|
-
if (this.instance) {
|
|
32
|
-
this.instance.controllerProtos = [];
|
|
33
|
-
this.instance.checkRouters.clear();
|
|
34
|
-
}
|
|
35
|
-
this.instance = undefined;
|
|
36
|
-
}
|
|
37
|
-
doRegister(rootProtoManager) {
|
|
38
|
-
const methodMap = new Map();
|
|
39
|
-
for (const proto of this.controllerProtos) {
|
|
40
|
-
const metadata = proto.getMetaData(tegg_1.CONTROLLER_META_DATA);
|
|
41
|
-
for (const method of metadata.methods) {
|
|
42
|
-
methodMap.set(method, proto);
|
|
43
|
-
}
|
|
44
|
-
}
|
|
45
|
-
const allMethods = Array.from(methodMap.keys())
|
|
46
|
-
.sort((a, b) => b.priority - a.priority);
|
|
47
|
-
for (const method of allMethods) {
|
|
48
|
-
const controllerProto = methodMap.get(method);
|
|
49
|
-
const controllerMeta = controllerProto.getMetaData(tegg_1.CONTROLLER_META_DATA);
|
|
50
|
-
const methodRegister = new HTTPMethodRegister_1.HTTPMethodRegister(controllerProto, controllerMeta, method, this.router, this.checkRouters, this.eggContainerFactory);
|
|
51
|
-
methodRegister.checkDuplicate();
|
|
52
|
-
}
|
|
53
|
-
for (const method of allMethods) {
|
|
54
|
-
const controllerProto = methodMap.get(method);
|
|
55
|
-
const controllerMeta = controllerProto.getMetaData(tegg_1.CONTROLLER_META_DATA);
|
|
56
|
-
const methodRegister = new HTTPMethodRegister_1.HTTPMethodRegister(controllerProto, controllerMeta, method, this.router, this.checkRouters, this.eggContainerFactory);
|
|
57
|
-
methodRegister.register(rootProtoManager);
|
|
58
|
-
}
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
|
-
exports.HTTPControllerRegister = HTTPControllerRegister;
|
|
62
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSFRUUENvbnRyb2xsZXJSZWdpc3Rlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIkhUVFBDb250cm9sbGVyUmVnaXN0ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsb0RBQTRCO0FBRTVCLHNDQU1xQjtBQUdyQiw2REFBMEQ7QUFJMUQsTUFBYSxzQkFBc0I7SUFRakMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxLQUFtQixFQUFFLGNBQWtDLEVBQUUsR0FBZ0I7UUFDckYsSUFBQSxnQkFBTSxFQUFDLGNBQWMsQ0FBQyxJQUFJLEtBQUsscUJBQWMsQ0FBQyxJQUFJLEVBQUUsa0NBQWtDLENBQUMsQ0FBQztRQUN4RixJQUFJLENBQUMsc0JBQXNCLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDckMsc0JBQXNCLENBQUMsUUFBUSxHQUFHLElBQUksc0JBQXNCLENBQUMsR0FBRyxDQUFDLE1BQU0sRUFBRSxHQUFHLENBQUMsbUJBQW1CLENBQUMsQ0FBQztRQUNwRyxDQUFDO1FBQ0Qsc0JBQXNCLENBQUMsUUFBUSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM3RCxPQUFPLHNCQUFzQixDQUFDLFFBQVEsQ0FBQztJQUN6QyxDQUFDO0lBRUQsWUFBWSxNQUFjLEVBQUUsbUJBQStDO1FBWG5FLHFCQUFnQixHQUFtQixFQUFFLENBQUM7UUFZNUMsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7UUFDckIsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLEdBQUcsRUFBRSxDQUFDO1FBQzlCLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLFNBQVMsRUFBRSxNQUFNLENBQUMsQ0FBQztRQUN6QyxJQUFJLENBQUMsbUJBQW1CLEdBQUcsbUJBQW1CLENBQUM7SUFDakQsQ0FBQztJQUVELFFBQVE7UUFDTixZQUFZO1FBQ1osT0FBTyxPQUFPLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDM0IsQ0FBQztJQUVELE1BQU0sQ0FBQyxLQUFLO1FBQ1YsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDbEIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxnQkFBZ0IsR0FBRyxFQUFFLENBQUM7WUFDcEMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDckMsQ0FBQztRQUNELElBQUksQ0FBQyxRQUFRLEdBQUcsU0FBUyxDQUFDO0lBQzVCLENBQUM7SUFFRCxVQUFVLENBQUMsZ0JBQWtDO1FBQzNDLE1BQU0sU0FBUyxHQUFHLElBQUksR0FBRyxFQUFnQyxDQUFDO1FBQzFELEtBQUssTUFBTSxLQUFLLElBQUksSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7WUFDMUMsTUFBTSxRQUFRLEdBQUcsS0FBSyxDQUFDLFdBQVcsQ0FBQywyQkFBb0IsQ0FBdUIsQ0FBQztZQUMvRSxLQUFLLE1BQU0sTUFBTSxJQUFJLFFBQVEsQ0FBQyxPQUFPLEVBQUUsQ0FBQztnQkFDdEMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxNQUFNLEVBQUUsS0FBSyxDQUFDLENBQUM7WUFDL0IsQ0FBQztRQUNILENBQUM7UUFDRCxNQUFNLFVBQVUsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsQ0FBQzthQUM1QyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsUUFBUSxHQUFHLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUUzQyxLQUFLLE1BQU0sTUFBTSxJQUFJLFVBQVUsRUFBRSxDQUFDO1lBQ2hDLE1BQU0sZUFBZSxHQUFHLFNBQVMsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFFLENBQUM7WUFDL0MsTUFBTSxjQUFjLEdBQUcsZUFBZSxDQUFDLFdBQVcsQ0FBQywyQkFBb0IsQ0FBdUIsQ0FBQztZQUMvRixNQUFNLGNBQWMsR0FBRyxJQUFJLHVDQUFrQixDQUMzQyxlQUFlLEVBQUUsY0FBYyxFQUFFLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxZQUFZLEVBQUUsSUFBSSxDQUFDLG1CQUFtQixDQUFDLENBQUM7WUFDckcsY0FBYyxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ2xDLENBQUM7UUFFRCxLQUFLLE1BQU0sTUFBTSxJQUFJLFVBQVUsRUFBRSxDQUFDO1lBQ2hDLE1BQU0sZUFBZSxHQUFHLFNBQVMsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFFLENBQUM7WUFDL0MsTUFBTSxjQUFjLEdBQUcsZUFBZSxDQUFDLFdBQVcsQ0FBQywyQkFBb0IsQ0FBdUIsQ0FBQztZQUMvRixNQUFNLGNBQWMsR0FBRyxJQUFJLHVDQUFrQixDQUMzQyxlQUFlLEVBQUUsY0FBYyxFQUFFLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxZQUFZLEVBQUUsSUFBSSxDQUFDLG1CQUFtQixDQUFDLENBQUM7WUFDckcsY0FBYyxDQUFDLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBQzVDLENBQUM7SUFDSCxDQUFDO0NBQ0Y7QUFoRUQsd0RBZ0VDIn0=
|
|
@@ -1,173 +0,0 @@
|
|
|
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.HTTPMethodRegister = void 0;
|
|
7
|
-
const assert_1 = __importDefault(require("assert"));
|
|
8
|
-
const path_to_regexp_1 = __importDefault(require("path-to-regexp"));
|
|
9
|
-
const router_1 = require("@eggjs/router");
|
|
10
|
-
const egg_errors_1 = require("egg-errors");
|
|
11
|
-
const tegg_1 = require("@eggjs/tegg");
|
|
12
|
-
const tegg_common_util_1 = require("@eggjs/tegg-common-util");
|
|
13
|
-
const Acl_1 = require("./Acl");
|
|
14
|
-
const Req_1 = require("./Req");
|
|
15
|
-
const errors_1 = require("../../errors");
|
|
16
|
-
const noop = () => {
|
|
17
|
-
// ...
|
|
18
|
-
};
|
|
19
|
-
class HTTPMethodRegister {
|
|
20
|
-
constructor(proto, controllerMeta, methodMeta, router, checkRouters, eggContainerFactory) {
|
|
21
|
-
this.proto = proto;
|
|
22
|
-
this.controllerMeta = controllerMeta;
|
|
23
|
-
this.router = router;
|
|
24
|
-
this.methodMeta = methodMeta;
|
|
25
|
-
this.checkRouters = checkRouters;
|
|
26
|
-
this.eggContainerFactory = eggContainerFactory;
|
|
27
|
-
}
|
|
28
|
-
createHandler(methodMeta, host) {
|
|
29
|
-
const argsLength = methodMeta.paramMap.size;
|
|
30
|
-
const hasContext = methodMeta.contextParamIndex !== undefined;
|
|
31
|
-
const contextIndex = methodMeta.contextParamIndex;
|
|
32
|
-
const methodArgsLength = argsLength + (hasContext ? 1 : 0);
|
|
33
|
-
const timeout = this.controllerMeta.getMethodTimeout(methodMeta);
|
|
34
|
-
const self = this;
|
|
35
|
-
return async function (ctx, next) {
|
|
36
|
-
// if hosts is not empty and host is not matched, not execute
|
|
37
|
-
if (host && host !== ctx.host) {
|
|
38
|
-
return await next();
|
|
39
|
-
}
|
|
40
|
-
// HTTP decorator core implement
|
|
41
|
-
// use controller metadata map http request to function arguments
|
|
42
|
-
const eggObj = await self.eggContainerFactory.getOrCreateEggObject(self.proto, self.proto.name);
|
|
43
|
-
const realObj = eggObj.obj;
|
|
44
|
-
const realMethod = realObj[methodMeta.name];
|
|
45
|
-
const args = new Array(methodArgsLength);
|
|
46
|
-
if (hasContext) {
|
|
47
|
-
args[contextIndex] = ctx;
|
|
48
|
-
}
|
|
49
|
-
for (const [index, param] of methodMeta.paramMap) {
|
|
50
|
-
switch (param.type) {
|
|
51
|
-
case tegg_1.HTTPParamType.BODY: {
|
|
52
|
-
args[index] = ctx.request.body;
|
|
53
|
-
break;
|
|
54
|
-
}
|
|
55
|
-
case tegg_1.HTTPParamType.PARAM: {
|
|
56
|
-
const pathParam = param;
|
|
57
|
-
args[index] = ctx.params[pathParam.name];
|
|
58
|
-
break;
|
|
59
|
-
}
|
|
60
|
-
case tegg_1.HTTPParamType.QUERY: {
|
|
61
|
-
const queryParam = param;
|
|
62
|
-
args[index] = ctx.query[queryParam.name];
|
|
63
|
-
break;
|
|
64
|
-
}
|
|
65
|
-
case tegg_1.HTTPParamType.QUERIES: {
|
|
66
|
-
const queryParam = param;
|
|
67
|
-
args[index] = ctx.queries[queryParam.name];
|
|
68
|
-
break;
|
|
69
|
-
}
|
|
70
|
-
case tegg_1.HTTPParamType.HEADERS: {
|
|
71
|
-
args[index] = ctx.request.headers;
|
|
72
|
-
break;
|
|
73
|
-
}
|
|
74
|
-
case tegg_1.HTTPParamType.REQUEST: {
|
|
75
|
-
args[index] = new Req_1.HTTPRequest(ctx);
|
|
76
|
-
break;
|
|
77
|
-
}
|
|
78
|
-
case tegg_1.HTTPParamType.COOKIES: {
|
|
79
|
-
args[index] = new tegg_1.HTTPCookies(ctx, []);
|
|
80
|
-
break;
|
|
81
|
-
}
|
|
82
|
-
default:
|
|
83
|
-
assert_1.default.fail('never arrive');
|
|
84
|
-
}
|
|
85
|
-
}
|
|
86
|
-
let body;
|
|
87
|
-
try {
|
|
88
|
-
body = await tegg_common_util_1.TimerUtil.timeout(() => Reflect.apply(realMethod, realObj, args), timeout);
|
|
89
|
-
}
|
|
90
|
-
catch (e) {
|
|
91
|
-
if (e instanceof tegg_common_util_1.TimerUtil.TimeoutError) {
|
|
92
|
-
ctx.logger.error(`timeout after ${timeout}ms`);
|
|
93
|
-
ctx.throw(500, 'timeout');
|
|
94
|
-
}
|
|
95
|
-
throw e;
|
|
96
|
-
}
|
|
97
|
-
// https://github.com/koajs/koa/blob/master/lib/response.js#L88
|
|
98
|
-
// ctx.status is set
|
|
99
|
-
const explicitStatus = ctx.response._explicitStatus;
|
|
100
|
-
if (
|
|
101
|
-
// has body
|
|
102
|
-
body != null ||
|
|
103
|
-
// status is not set and has no body
|
|
104
|
-
// code should by 204
|
|
105
|
-
// https://github.com/koajs/koa/blob/master/lib/response.js#L140
|
|
106
|
-
!explicitStatus) {
|
|
107
|
-
ctx.body = body;
|
|
108
|
-
}
|
|
109
|
-
};
|
|
110
|
-
}
|
|
111
|
-
checkDuplicate() {
|
|
112
|
-
// 1. check duplicate with egg controller
|
|
113
|
-
this.checkDuplicateInRouter(this.router);
|
|
114
|
-
// 2. check duplicate with host tegg controller
|
|
115
|
-
let hostRouter;
|
|
116
|
-
const hosts = this.controllerMeta.getMethodHosts(this.methodMeta) || [];
|
|
117
|
-
hosts.forEach(h => {
|
|
118
|
-
if (h) {
|
|
119
|
-
hostRouter = this.checkRouters.get(h);
|
|
120
|
-
if (!hostRouter) {
|
|
121
|
-
hostRouter = new router_1.EggRouter({ sensitive: true }, {});
|
|
122
|
-
this.checkRouters.set(h, hostRouter);
|
|
123
|
-
}
|
|
124
|
-
}
|
|
125
|
-
if (hostRouter) {
|
|
126
|
-
this.checkDuplicateInRouter(hostRouter);
|
|
127
|
-
this.registerToRouter(hostRouter);
|
|
128
|
-
}
|
|
129
|
-
});
|
|
130
|
-
}
|
|
131
|
-
registerToRouter(router) {
|
|
132
|
-
const routerFunc = router[this.methodMeta.method.toLowerCase()];
|
|
133
|
-
const methodRealPath = this.controllerMeta.getMethodRealPath(this.methodMeta);
|
|
134
|
-
const methodName = this.controllerMeta.getMethodName(this.methodMeta);
|
|
135
|
-
Reflect.apply(routerFunc, router, [methodName, methodRealPath, noop]);
|
|
136
|
-
}
|
|
137
|
-
checkDuplicateInRouter(router) {
|
|
138
|
-
const methodRealPath = this.controllerMeta.getMethodRealPath(this.methodMeta);
|
|
139
|
-
const matched = router.match(methodRealPath, this.methodMeta.method);
|
|
140
|
-
const methodName = this.controllerMeta.getMethodName(this.methodMeta);
|
|
141
|
-
if (matched.route) {
|
|
142
|
-
const [layer] = matched.path;
|
|
143
|
-
const err = new errors_1.RouterConflictError(`register http controller ${methodName} failed, ${this.methodMeta.method} ${methodRealPath} is conflict with exists rule ${layer.path}`);
|
|
144
|
-
throw egg_errors_1.FrameworkErrorFormater.format(err);
|
|
145
|
-
}
|
|
146
|
-
}
|
|
147
|
-
register(rootProtoManager) {
|
|
148
|
-
const methodRealPath = this.controllerMeta.getMethodRealPath(this.methodMeta);
|
|
149
|
-
const methodName = this.controllerMeta.getMethodName(this.methodMeta);
|
|
150
|
-
const routerFunc = this.router[this.methodMeta.method.toLowerCase()];
|
|
151
|
-
const methodMiddlewares = this.controllerMeta.getMethodMiddlewares(this.methodMeta);
|
|
152
|
-
const aclMiddleware = (0, Acl_1.aclMiddlewareFactory)(this.controllerMeta, this.methodMeta);
|
|
153
|
-
if (aclMiddleware) {
|
|
154
|
-
methodMiddlewares.push(aclMiddleware);
|
|
155
|
-
}
|
|
156
|
-
const hosts = this.controllerMeta.getMethodHosts(this.methodMeta) || [undefined];
|
|
157
|
-
hosts.forEach(h => {
|
|
158
|
-
const handler = this.createHandler(this.methodMeta, h);
|
|
159
|
-
Reflect.apply(routerFunc, this.router, [methodName, methodRealPath, ...methodMiddlewares, handler]);
|
|
160
|
-
// https://github.com/eggjs/egg-core/blob/0af6178022e7734c4a8b17bb56d592b315207883/lib/egg.js#L279
|
|
161
|
-
const regExp = (0, path_to_regexp_1.default)(methodRealPath, {
|
|
162
|
-
sensitive: true,
|
|
163
|
-
});
|
|
164
|
-
rootProtoManager.registerRootProto(this.methodMeta.method, (ctx) => {
|
|
165
|
-
if (regExp.test(ctx.path)) {
|
|
166
|
-
return this.proto;
|
|
167
|
-
}
|
|
168
|
-
}, h || '');
|
|
169
|
-
});
|
|
170
|
-
}
|
|
171
|
-
}
|
|
172
|
-
exports.HTTPMethodRegister = HTTPMethodRegister;
|
|
173
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSFRUUE1ldGhvZFJlZ2lzdGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiSFRUUE1ldGhvZFJlZ2lzdGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLG9EQUE0QjtBQUM1QixvRUFBMEM7QUFDMUMsMENBQTBDO0FBRTFDLDJDQUFvRDtBQUNwRCxzQ0FVcUI7QUFDckIsOERBQW9EO0FBSXBELCtCQUE2QztBQUM3QywrQkFBb0M7QUFDcEMseUNBQW1EO0FBRW5ELE1BQU0sSUFBSSxHQUFHLEdBQUcsRUFBRTtJQUNoQixNQUFNO0FBQ1IsQ0FBQyxDQUFDO0FBRUYsTUFBYSxrQkFBa0I7SUFRN0IsWUFDRSxLQUFtQixFQUNuQixjQUFrQyxFQUNsQyxVQUEwQixFQUMxQixNQUFjLEVBQ2QsWUFBaUMsRUFDakMsbUJBQStDO1FBRS9DLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxjQUFjLEdBQUcsY0FBYyxDQUFDO1FBQ3JDLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxVQUFVLEdBQUcsVUFBVSxDQUFDO1FBQzdCLElBQUksQ0FBQyxZQUFZLEdBQUcsWUFBWSxDQUFDO1FBQ2pDLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxtQkFBbUIsQ0FBQztJQUNqRCxDQUFDO0lBRU8sYUFBYSxDQUFDLFVBQTBCLEVBQUUsSUFBd0I7UUFDeEUsTUFBTSxVQUFVLEdBQUcsVUFBVSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUM7UUFDNUMsTUFBTSxVQUFVLEdBQUcsVUFBVSxDQUFDLGlCQUFpQixLQUFLLFNBQVMsQ0FBQztRQUM5RCxNQUFNLFlBQVksR0FBRyxVQUFVLENBQUMsaUJBQWlCLENBQUM7UUFDbEQsTUFBTSxnQkFBZ0IsR0FBRyxVQUFVLEdBQUcsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDM0Qs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
|
package/lib/impl/http/Req.js
DELETED
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.HTTPRequest = void 0;
|
|
4
|
-
const tegg_1 = require("@eggjs/tegg");
|
|
5
|
-
class HTTPRequest extends tegg_1.HTTPRequest {
|
|
6
|
-
constructor(ctx) {
|
|
7
|
-
const request = ctx.request;
|
|
8
|
-
// href: https://github.com/eggjs/koa/blob/master/src/request.ts#L90C1-L98C4
|
|
9
|
-
super(request.href, {
|
|
10
|
-
method: request.method,
|
|
11
|
-
headers: request.headers,
|
|
12
|
-
body: ctx.request.rawBody,
|
|
13
|
-
});
|
|
14
|
-
}
|
|
15
|
-
}
|
|
16
|
-
exports.HTTPRequest = HTTPRequest;
|
|
17
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUmVxLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiUmVxLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUNBLHNDQUE2RDtBQUM3RCxNQUFhLFdBQVksU0FBUSxrQkFBZTtJQUM5QyxZQUFZLEdBQVc7UUFDckIsTUFBTSxPQUFPLEdBQUcsR0FBRyxDQUFDLE9BQU8sQ0FBQztRQUM1Qiw0RUFBNEU7UUFDNUUsS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUU7WUFDbEIsTUFBTSxFQUFFLE9BQU8sQ0FBQyxNQUFNO1lBQ3RCLE9BQU8sRUFBRSxPQUFPLENBQUMsT0FBNEM7WUFDN0QsSUFBSSxFQUFHLEdBQUcsQ0FBQyxPQUFlLENBQUMsT0FBTztTQUNuQyxDQUFDLENBQUM7SUFDTCxDQUFDO0NBQ0Y7QUFWRCxrQ0FVQyJ9
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
import type { Application, Context } from 'egg';
|
|
2
|
-
import { EventStore } from '@modelcontextprotocol/sdk/server/streamableHttp.js';
|
|
3
|
-
export interface MCPConfigOptions {
|
|
4
|
-
sseInitPath: string;
|
|
5
|
-
sseMessagePath: string;
|
|
6
|
-
streamPath: string;
|
|
7
|
-
statelessStreamPath: string;
|
|
8
|
-
sessionIdGenerator?: (ctx: Context) => string;
|
|
9
|
-
eventStore?: EventStore;
|
|
10
|
-
sseHeartTime?: number;
|
|
11
|
-
multipleServer?: Record<string, Partial<MCPConfigOptions>>;
|
|
12
|
-
}
|
|
13
|
-
export declare class MCPConfig {
|
|
14
|
-
private _sseInitPath;
|
|
15
|
-
private _sseMessagePath;
|
|
16
|
-
private _streamPath;
|
|
17
|
-
private _statelessStreamPath;
|
|
18
|
-
private _sessionIdGenerator;
|
|
19
|
-
private _eventStore;
|
|
20
|
-
private _sseHeartTime;
|
|
21
|
-
private _multipleServer;
|
|
22
|
-
constructor(options: MCPConfigOptions);
|
|
23
|
-
getSseInitPath(name?: string): string;
|
|
24
|
-
getSseMessagePath(name?: string): string;
|
|
25
|
-
getStreamPath(name?: string): string;
|
|
26
|
-
getStatelessStreamPath(name?: string): string;
|
|
27
|
-
getSessionIdGenerator(name?: string): (ctx: Context) => string;
|
|
28
|
-
getEventStore(name?: string): EventStore;
|
|
29
|
-
getSseHeartTime(name?: string): number;
|
|
30
|
-
getMultipleServerNames(): string[];
|
|
31
|
-
setMultipleServerPath(app: Application, name: string): void;
|
|
32
|
-
}
|
|
@@ -1,107 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.MCPConfig = void 0;
|
|
4
|
-
const node_crypto_1 = require("node:crypto");
|
|
5
|
-
const inMemoryEventStore_js_1 = require("@modelcontextprotocol/sdk/examples/shared/inMemoryEventStore.js");
|
|
6
|
-
class MCPConfig {
|
|
7
|
-
constructor(options) {
|
|
8
|
-
var _a, _b, _c, _d;
|
|
9
|
-
this._sessionIdGenerator =
|
|
10
|
-
(_a = options.sessionIdGenerator) !== null && _a !== void 0 ? _a : (() => (0, node_crypto_1.randomUUID)());
|
|
11
|
-
this._sseInitPath = options.sseInitPath;
|
|
12
|
-
this._sseMessagePath = options.sseMessagePath;
|
|
13
|
-
this._streamPath = options.streamPath;
|
|
14
|
-
this._statelessStreamPath = options.statelessStreamPath;
|
|
15
|
-
this._eventStore = (_b = options.eventStore) !== null && _b !== void 0 ? _b : new inMemoryEventStore_js_1.InMemoryEventStore();
|
|
16
|
-
this._sseHeartTime = (_c = options.sseHeartTime) !== null && _c !== void 0 ? _c : 25000;
|
|
17
|
-
this._multipleServer = (_d = options.multipleServer) !== null && _d !== void 0 ? _d : {};
|
|
18
|
-
}
|
|
19
|
-
getSseInitPath(name) {
|
|
20
|
-
if (name) {
|
|
21
|
-
const config = this._multipleServer[name];
|
|
22
|
-
if (config === null || config === void 0 ? void 0 : config.sseInitPath) {
|
|
23
|
-
return config.sseInitPath;
|
|
24
|
-
}
|
|
25
|
-
return `/mcp/${name}/sse`;
|
|
26
|
-
}
|
|
27
|
-
return this._sseInitPath;
|
|
28
|
-
}
|
|
29
|
-
getSseMessagePath(name) {
|
|
30
|
-
if (name) {
|
|
31
|
-
const config = this._multipleServer[name];
|
|
32
|
-
if (config === null || config === void 0 ? void 0 : config.sseMessagePath) {
|
|
33
|
-
return config.sseMessagePath;
|
|
34
|
-
}
|
|
35
|
-
return `/mcp/${name}/message`;
|
|
36
|
-
}
|
|
37
|
-
return this._sseMessagePath;
|
|
38
|
-
}
|
|
39
|
-
getStreamPath(name) {
|
|
40
|
-
if (name) {
|
|
41
|
-
const config = this._multipleServer[name];
|
|
42
|
-
if (config === null || config === void 0 ? void 0 : config.streamPath) {
|
|
43
|
-
return config.streamPath;
|
|
44
|
-
}
|
|
45
|
-
return `/mcp/${name}/stream`;
|
|
46
|
-
}
|
|
47
|
-
return this._streamPath;
|
|
48
|
-
}
|
|
49
|
-
getStatelessStreamPath(name) {
|
|
50
|
-
if (name) {
|
|
51
|
-
const config = this._multipleServer[name];
|
|
52
|
-
if (config === null || config === void 0 ? void 0 : config.statelessStreamPath) {
|
|
53
|
-
return config.statelessStreamPath;
|
|
54
|
-
}
|
|
55
|
-
return `/mcp/${name}/stateless/stream`;
|
|
56
|
-
}
|
|
57
|
-
return this._statelessStreamPath;
|
|
58
|
-
}
|
|
59
|
-
getSessionIdGenerator(name) {
|
|
60
|
-
if (name) {
|
|
61
|
-
const config = this._multipleServer[name];
|
|
62
|
-
if (config === null || config === void 0 ? void 0 : config.sessionIdGenerator) {
|
|
63
|
-
return config.sessionIdGenerator;
|
|
64
|
-
}
|
|
65
|
-
return () => (0, node_crypto_1.randomUUID)();
|
|
66
|
-
}
|
|
67
|
-
return this._sessionIdGenerator;
|
|
68
|
-
}
|
|
69
|
-
getEventStore(name) {
|
|
70
|
-
if (name) {
|
|
71
|
-
const config = this._multipleServer[name];
|
|
72
|
-
if (config === null || config === void 0 ? void 0 : config.eventStore) {
|
|
73
|
-
return config.eventStore;
|
|
74
|
-
}
|
|
75
|
-
return new inMemoryEventStore_js_1.InMemoryEventStore();
|
|
76
|
-
}
|
|
77
|
-
return this._eventStore;
|
|
78
|
-
}
|
|
79
|
-
getSseHeartTime(name) {
|
|
80
|
-
if (name) {
|
|
81
|
-
const config = this._multipleServer[name];
|
|
82
|
-
if (config === null || config === void 0 ? void 0 : config.sseHeartTime) {
|
|
83
|
-
return config.sseHeartTime;
|
|
84
|
-
}
|
|
85
|
-
return 25000;
|
|
86
|
-
}
|
|
87
|
-
return this._sseHeartTime;
|
|
88
|
-
}
|
|
89
|
-
getMultipleServerNames() {
|
|
90
|
-
return Object.keys(this._multipleServer);
|
|
91
|
-
}
|
|
92
|
-
setMultipleServerPath(app, name) {
|
|
93
|
-
var _a;
|
|
94
|
-
if (!app.config.mcp.multipleServer) {
|
|
95
|
-
app.config.mcp.multipleServer = {};
|
|
96
|
-
}
|
|
97
|
-
app.config.mcp.multipleServer[name] = {
|
|
98
|
-
sseInitPath: `/mcp/${name}/sse`,
|
|
99
|
-
sseMessagePath: `/mcp/${name}/message`,
|
|
100
|
-
streamPath: `/mcp/${name}/stream`,
|
|
101
|
-
statelessStreamPath: `/mcp/${name}/stateless/stream`,
|
|
102
|
-
...(_a = app.config.mcp.multipleServer) === null || _a === void 0 ? void 0 : _a[name],
|
|
103
|
-
};
|
|
104
|
-
}
|
|
105
|
-
}
|
|
106
|
-
exports.MCPConfig = MCPConfig;
|
|
107
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTUNQQ29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiTUNQQ29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUNBLDZDQUF5QztBQUV6QywyR0FBcUc7QUFhckcsTUFBYSxTQUFTO0lBV3BCLFlBQVksT0FBeUI7O1FBQ25DLElBQUksQ0FBQyxtQkFBbUI7WUFDdEIsTUFBQSxPQUFPLENBQUMsa0JBQWtCLG1DQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBQSx3QkFBVSxHQUFFLENBQUMsQ0FBQztRQUNyRCxJQUFJLENBQUMsWUFBWSxHQUFHLE9BQU8sQ0FBQyxXQUFXLENBQUM7UUFDeEMsSUFBSSxDQUFDLGVBQWUsR0FBRyxPQUFPLENBQUMsY0FBYyxDQUFDO1FBQzlDLElBQUksQ0FBQyxXQUFXLEdBQUcsT0FBTyxDQUFDLFVBQVUsQ0FBQztRQUN0QyxJQUFJLENBQUMsb0JBQW9CLEdBQUcsT0FBTyxDQUFDLG1CQUFtQixDQUFDO1FBQ3hELElBQUksQ0FBQyxXQUFXLEdBQUcsTUFBQSxPQUFPLENBQUMsVUFBVSxtQ0FBSSxJQUFJLDBDQUFrQixFQUFFLENBQUM7UUFDbEUsSUFBSSxDQUFDLGFBQWEsR0FBRyxNQUFBLE9BQU8sQ0FBQyxZQUFZLG1DQUFJLEtBQUssQ0FBQztRQUVuRCxJQUFJLENBQUMsZUFBZSxHQUFHLE1BQUEsT0FBTyxDQUFDLGNBQWMsbUNBQUksRUFBRSxDQUFDO0lBQ3RELENBQUM7SUFFRCxjQUFjLENBQUMsSUFBYTtRQUMxQixJQUFJLElBQUksRUFBRSxDQUFDO1lBQ1QsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUMxQyxJQUFJLE1BQU0sYUFBTixNQUFNLHVCQUFOLE1BQU0sQ0FBRSxXQUFXLEVBQUUsQ0FBQztnQkFDeEIsT0FBTyxNQUFNLENBQUMsV0FBVyxDQUFDO1lBQzVCLENBQUM7WUFDRCxPQUFPLFFBQVEsSUFBSSxNQUFNLENBQUM7UUFDNUIs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
|
|
@@ -1,67 +0,0 @@
|
|
|
1
|
-
import type { Application, Context } from 'egg';
|
|
2
|
-
import http, { ServerResponse } from 'node:http';
|
|
3
|
-
import { ControllerMetadata, MCPControllerMeta, MCPPromptMeta, MCPToolMeta, EggContext } from '@eggjs/tegg';
|
|
4
|
-
import { EggPrototype } from '@eggjs/tegg-metadata';
|
|
5
|
-
import { EggContainerFactory } from '@eggjs/tegg-runtime';
|
|
6
|
-
import { ControllerRegister } from '../../ControllerRegister';
|
|
7
|
-
import { SSEServerTransport } from '@modelcontextprotocol/sdk/server/sse.js';
|
|
8
|
-
import { StreamableHTTPServerTransport } from '@modelcontextprotocol/sdk/server/streamableHttp.js';
|
|
9
|
-
import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
|
|
10
|
-
import { JSONRPCMessage } from '@modelcontextprotocol/sdk/types.js';
|
|
11
|
-
import { MCPProtocols } from '@eggjs/mcp-proxy/types';
|
|
12
|
-
import compose from 'koa-compose';
|
|
13
|
-
import { MCPConfig } from './MCPConfig';
|
|
14
|
-
import { MCPServerHelper } from './MCPServerHelper';
|
|
15
|
-
export interface MCPControllerHook {
|
|
16
|
-
preSSEInitHandle?: (ctx: Context, transport: SSEServerTransport, register: MCPControllerRegister) => Promise<void>;
|
|
17
|
-
preHandleInitHandle?: (ctx: Context) => Promise<void>;
|
|
18
|
-
preHandle?: (ctx: Context) => Promise<void>;
|
|
19
|
-
onStreamSessionInitialized?: (ctx: Context, transport: StreamableHTTPServerTransport, register: MCPControllerRegister) => Promise<void>;
|
|
20
|
-
preProxy?: (ctx: Context, proxyReq: http.IncomingMessage, proxyResp: http.ServerResponse) => Promise<void>;
|
|
21
|
-
schemaLoader?: (controllerMeta: MCPControllerMeta, meta: MCPPromptMeta | MCPToolMeta) => Promise<Parameters<McpServer['tool']>['2'] | Parameters<McpServer['prompt']>['2']>;
|
|
22
|
-
checkAndRunProxy?: (ctx: Context, type: MCPProtocols, sessionId: string) => Promise<boolean>;
|
|
23
|
-
middlewareStart?: (ctx: Context) => Promise<void>;
|
|
24
|
-
middlewareEnd?: (ctx: Context) => Promise<void>;
|
|
25
|
-
middlewareError?: (ctx: Context, e: Error) => Promise<void>;
|
|
26
|
-
}
|
|
27
|
-
declare class InnerSSEServerTransport extends SSEServerTransport {
|
|
28
|
-
send(message: JSONRPCMessage): Promise<void>;
|
|
29
|
-
}
|
|
30
|
-
export declare class MCPControllerRegister implements ControllerRegister {
|
|
31
|
-
static instance?: MCPControllerRegister;
|
|
32
|
-
readonly app: Application;
|
|
33
|
-
readonly eggContainerFactory: typeof EggContainerFactory;
|
|
34
|
-
private readonly router;
|
|
35
|
-
private controllerProtos;
|
|
36
|
-
private registeredControllerProtos;
|
|
37
|
-
transports: Record<string, InnerSSEServerTransport>;
|
|
38
|
-
sseConnections: Map<string, {
|
|
39
|
-
res: ServerResponse;
|
|
40
|
-
intervalId: NodeJS.Timeout;
|
|
41
|
-
}>;
|
|
42
|
-
mcpServerHelperMap: Record<string, MCPServerHelper>;
|
|
43
|
-
statelessMcpServerHelperMap: Record<string, MCPServerHelper>;
|
|
44
|
-
private controllerMeta;
|
|
45
|
-
mcpConfig: MCPConfig;
|
|
46
|
-
statelessTransportMap: Record<string, StreamableHTTPServerTransport>;
|
|
47
|
-
streamTransports: Record<string, StreamableHTTPServerTransport>;
|
|
48
|
-
sseTransportsRequestMap: Map<InnerSSEServerTransport, Record<string, {
|
|
49
|
-
resolve: (value: PromiseLike<null> | null) => void;
|
|
50
|
-
reject: (reason?: any) => void;
|
|
51
|
-
}>>;
|
|
52
|
-
static hooks: MCPControllerHook[];
|
|
53
|
-
globalMiddlewares: compose.ComposedMiddleware<EggContext>;
|
|
54
|
-
static create(proto: EggPrototype, controllerMeta: ControllerMetadata, app: Application): MCPControllerRegister;
|
|
55
|
-
constructor(_proto: EggPrototype, controllerMeta: MCPControllerMeta, app: Application);
|
|
56
|
-
static addHook(hook: MCPControllerHook): void;
|
|
57
|
-
static connectStatelessStreamTransport(name?: string): Promise<void>;
|
|
58
|
-
static clean(): void;
|
|
59
|
-
mcpStatelessStreamServerInit(name?: string): void;
|
|
60
|
-
mcpStreamServerInit(name?: string): void;
|
|
61
|
-
mcpServerInit(name?: string): void;
|
|
62
|
-
sseCtxStorageRun(ctx: Context, transport: SSEServerTransport, name?: string): void;
|
|
63
|
-
mcpServerRegister(name?: string): void;
|
|
64
|
-
getGlobalMiddleware(): void;
|
|
65
|
-
register(): Promise<void>;
|
|
66
|
-
}
|
|
67
|
-
export {};
|