@eggjs/controller-decorator 4.0.0-beta.9 → 4.0.2-beta.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/dist/builder/ControllerMetaBuilderFactory.d.ts +10 -6
- package/dist/builder/ControllerMetaBuilderFactory.js +37 -41
- package/dist/builder/index.d.ts +1 -1
- package/dist/builder/index.js +3 -2
- package/dist/decorator/Acl.d.ts +4 -1
- package/dist/decorator/Acl.js +23 -21
- package/dist/decorator/Context.d.ts +4 -1
- package/dist/decorator/Context.js +15 -10
- package/dist/decorator/Middleware.d.ts +6 -2
- package/dist/decorator/Middleware.js +51 -64
- package/dist/decorator/http/HTTPController.d.ts +6 -2
- package/dist/decorator/http/HTTPController.js +23 -28
- package/dist/decorator/http/HTTPMethod.d.ts +6 -2
- package/dist/decorator/http/HTTPMethod.js +21 -16
- package/dist/decorator/http/HTTPParam.d.ts +159 -8
- package/dist/decorator/http/HTTPParam.js +216 -68
- package/dist/decorator/http/Host.d.ts +6 -2
- package/dist/decorator/http/Host.js +26 -24
- package/dist/decorator/http/index.d.ts +5 -4
- package/dist/decorator/http/index.js +7 -5
- package/dist/decorator/index.d.ts +14 -4
- package/dist/decorator/index.js +16 -5
- package/dist/decorator/mcp/Extra.d.ts +4 -0
- package/dist/decorator/mcp/Extra.js +13 -0
- package/dist/decorator/mcp/MCPController.d.ts +6 -0
- package/dist/decorator/mcp/MCPController.js +24 -0
- package/dist/decorator/mcp/MCPPrompt.d.ts +8 -0
- package/dist/decorator/mcp/MCPPrompt.js +31 -0
- package/dist/decorator/mcp/MCPResource.d.ts +6 -0
- package/dist/decorator/mcp/MCPResource.js +21 -0
- package/dist/decorator/mcp/MCPTool.d.ts +8 -0
- package/dist/decorator/mcp/MCPTool.js +31 -0
- package/dist/decorator/mcp/index.d.ts +5 -0
- package/dist/decorator/mcp/index.js +7 -0
- package/dist/impl/http/HTTPControllerMetaBuilder.d.ts +13 -8
- package/dist/impl/http/HTTPControllerMetaBuilder.js +58 -55
- package/dist/impl/http/HTTPControllerMethodMetaBuilder.d.ts +15 -10
- package/dist/impl/http/HTTPControllerMethodMetaBuilder.js +81 -100
- package/dist/impl/http/index.d.ts +2 -2
- package/dist/impl/http/index.js +4 -3
- package/dist/impl/index.d.ts +8 -1
- package/dist/impl/index.js +10 -2
- package/dist/impl/mcp/MCPControllerMetaBuilder.d.ts +15 -0
- package/dist/impl/mcp/MCPControllerMetaBuilder.js +67 -0
- package/dist/impl/mcp/MCPControllerPromptMetaBuilder.d.ts +13 -0
- package/dist/impl/mcp/MCPControllerPromptMetaBuilder.js +37 -0
- package/dist/impl/mcp/MCPControllerResourceMetaBuilder.d.ts +13 -0
- package/dist/impl/mcp/MCPControllerResourceMetaBuilder.js +35 -0
- package/dist/impl/mcp/MCPControllerToolMetaBuilder.d.ts +13 -0
- package/dist/impl/mcp/MCPControllerToolMetaBuilder.js +37 -0
- package/dist/impl/mcp/index.d.ts +4 -0
- package/dist/impl/mcp/index.js +6 -0
- package/dist/index.d.ts +42 -6
- package/dist/index.js +44 -7
- package/dist/model/HTTPControllerMeta.d.ts +26 -21
- package/dist/model/HTTPControllerMeta.js +58 -60
- package/dist/model/HTTPCookies.d.ts +2 -3
- package/dist/model/HTTPCookies.js +3 -4
- package/dist/model/HTTPMethodMeta.d.ts +60 -56
- package/dist/model/HTTPMethodMeta.js +104 -124
- package/dist/model/HTTPResponse.d.ts +6 -9
- package/dist/model/HTTPResponse.js +6 -3
- package/dist/model/MCPControllerMeta.d.ts +29 -0
- package/dist/model/MCPControllerMeta.js +51 -0
- package/dist/model/MCPPromptMeta.d.ts +28 -0
- package/dist/model/MCPPromptMeta.js +26 -0
- package/dist/model/MCPResourceMeta.d.ts +28 -0
- package/dist/model/MCPResourceMeta.js +28 -0
- package/dist/model/MCPToolMeta.d.ts +26 -0
- package/dist/model/MCPToolMeta.js +24 -0
- package/dist/model/index.d.ts +8 -5
- package/dist/model/index.js +10 -6
- package/dist/util/ControllerInfoUtil.d.ts +21 -16
- package/dist/util/ControllerInfoUtil.js +54 -46
- package/dist/util/ControllerMetadataUtil.d.ts +8 -4
- package/dist/util/ControllerMetadataUtil.js +21 -20
- package/dist/util/HTTPInfoUtil.d.ts +19 -15
- package/dist/util/HTTPInfoUtil.js +53 -64
- package/dist/util/HTTPPriorityUtil.d.ts +22 -18
- package/dist/util/HTTPPriorityUtil.js +39 -42
- package/dist/util/MCPInfoUtil.d.ts +52 -0
- package/dist/util/MCPInfoUtil.js +87 -0
- package/dist/util/MethodInfoUtil.d.ts +24 -19
- package/dist/util/MethodInfoUtil.js +68 -72
- package/dist/util/index.d.ts +9 -6
- package/dist/util/index.js +11 -7
- package/dist/util/validator/ControllerValidator.d.ts +7 -3
- package/dist/util/validator/ControllerValidator.js +15 -14
- package/dist/util/validator/MethodValidator.d.ts +7 -3
- package/dist/util/validator/MethodValidator.js +30 -30
- package/dist/util/validator/index.d.ts +2 -2
- package/dist/util/validator/index.js +4 -3
- package/package.json +36 -39
- package/dist/model/HTTPRequest.d.ts +0 -7
- package/dist/model/HTTPRequest.js +0 -3
|
@@ -1,56 +1,60 @@
|
|
|
1
|
-
import { HTTPParamType } from
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
1
|
+
import { HTTPMethodEnum, HTTPParamType, MethodMeta, MiddlewareFunc } from "@eggjs/tegg-types";
|
|
2
|
+
|
|
3
|
+
//#region src/model/HTTPMethodMeta.d.ts
|
|
4
|
+
declare abstract class ParamMeta {
|
|
5
|
+
type: HTTPParamType;
|
|
6
|
+
abstract validate(httpPath: string): void;
|
|
7
|
+
}
|
|
8
|
+
declare class RequestParamMeta extends ParamMeta {
|
|
9
|
+
type: HTTPParamType;
|
|
10
|
+
validate(): void;
|
|
11
|
+
}
|
|
12
|
+
declare class BodyParamMeta extends ParamMeta {
|
|
13
|
+
type: HTTPParamType;
|
|
14
|
+
validate(): void;
|
|
15
|
+
}
|
|
16
|
+
declare class HeadersParamMeta extends ParamMeta {
|
|
17
|
+
type: HTTPParamType;
|
|
18
|
+
validate(): void;
|
|
19
|
+
}
|
|
20
|
+
declare class QueryParamMeta extends ParamMeta {
|
|
21
|
+
type: HTTPParamType;
|
|
22
|
+
name: string;
|
|
23
|
+
constructor(name: string);
|
|
24
|
+
validate(): void;
|
|
25
|
+
}
|
|
26
|
+
declare class QueriesParamMeta extends ParamMeta {
|
|
27
|
+
type: HTTPParamType;
|
|
28
|
+
name: string;
|
|
29
|
+
constructor(name: string);
|
|
30
|
+
validate(): void;
|
|
31
|
+
}
|
|
32
|
+
declare class PathParamMeta extends ParamMeta {
|
|
33
|
+
type: HTTPParamType;
|
|
34
|
+
name: string;
|
|
35
|
+
constructor(name: string);
|
|
36
|
+
validate(httpPath: string): void;
|
|
37
|
+
}
|
|
38
|
+
declare class CookiesParamMeta extends ParamMeta {
|
|
39
|
+
type: HTTPParamType;
|
|
40
|
+
validate(): void;
|
|
41
|
+
}
|
|
42
|
+
declare class HTTPMethodMeta implements MethodMeta {
|
|
43
|
+
readonly name: string;
|
|
44
|
+
readonly path: string;
|
|
45
|
+
readonly method: HTTPMethodEnum;
|
|
46
|
+
readonly middlewares: readonly MiddlewareFunc[];
|
|
47
|
+
readonly contextParamIndex: number | undefined;
|
|
48
|
+
readonly paramMap: Map<number, ParamMeta>;
|
|
49
|
+
readonly priority: number;
|
|
50
|
+
readonly needAcl: boolean;
|
|
51
|
+
readonly aclCode: string | undefined;
|
|
52
|
+
readonly hosts: string[] | undefined;
|
|
53
|
+
readonly timeout: number | undefined;
|
|
54
|
+
constructor(name: string, path: string, method: HTTPMethodEnum, middlewares: MiddlewareFunc[], contextParamIndex: number | undefined, paramTypeMap: Map<number, ParamMeta>, priority: number, needAcl: boolean, aclCode: string | undefined, hosts: string[] | undefined, timeout: number | undefined);
|
|
55
|
+
}
|
|
56
|
+
declare class ParamMetaUtil {
|
|
57
|
+
static createParam(type: HTTPParamType, name?: string): ParamMeta;
|
|
58
|
+
}
|
|
59
|
+
//#endregion
|
|
60
|
+
export { BodyParamMeta, CookiesParamMeta, HTTPMethodMeta, HeadersParamMeta, ParamMeta, ParamMetaUtil, PathParamMeta, QueriesParamMeta, QueryParamMeta, RequestParamMeta };
|
|
@@ -1,124 +1,104 @@
|
|
|
1
|
-
import
|
|
2
|
-
import pathToRegexp from
|
|
3
|
-
import
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
case HTTPParamType.QUERIES: {
|
|
106
|
-
assert(name, 'queries param must has name');
|
|
107
|
-
return new QueriesParamMeta(name);
|
|
108
|
-
}
|
|
109
|
-
case HTTPParamType.QUERY: {
|
|
110
|
-
assert(name, 'query param must has name');
|
|
111
|
-
return new QueryParamMeta(name);
|
|
112
|
-
}
|
|
113
|
-
case HTTPParamType.REQUEST: {
|
|
114
|
-
return new RequestParamMeta();
|
|
115
|
-
}
|
|
116
|
-
case HTTPParamType.COOKIES: {
|
|
117
|
-
return new CookiesParamMeta();
|
|
118
|
-
}
|
|
119
|
-
default:
|
|
120
|
-
assert.fail('never arrive');
|
|
121
|
-
}
|
|
122
|
-
}
|
|
123
|
-
}
|
|
124
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSFRUUE1ldGhvZE1ldGEuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbW9kZWwvSFRUUE1ldGhvZE1ldGEudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxNQUFNLE1BQU0sYUFBYSxDQUFDO0FBRWpDLE9BQU8sWUFBWSxNQUFNLGdCQUFnQixDQUFDO0FBQzFDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUdsRCxNQUFNLE9BQWdCLFNBQVM7SUFDN0IsSUFBSSxDQUFnQjtDQUdyQjtBQUVELE1BQU0sT0FBTyxnQkFBaUIsU0FBUSxTQUFTO0lBQzdDLElBQUksR0FBRyxhQUFhLENBQUMsT0FBTyxDQUFDO0lBRTdCLFFBQVE7UUFDTixPQUFPO0lBQ1QsQ0FBQztDQUNGO0FBRUQsTUFBTSxPQUFPLGFBQWMsU0FBUSxTQUFTO0lBQzFDLElBQUksR0FBRyxhQUFhLENBQUMsSUFBSSxDQUFDO0lBRTFCLFFBQVE7UUFDTixPQUFPO0lBQ1QsQ0FBQztDQUNGO0FBRUQsTUFBTSxPQUFPLGdCQUFpQixTQUFRLFNBQVM7SUFDN0MsSUFBSSxHQUFHLGFBQWEsQ0FBQyxPQUFPLENBQUM7SUFFN0IsUUFBUTtRQUNOLE9BQU87SUFDVCxDQUFDO0NBQ0Y7QUFFRCxNQUFNLE9BQU8sY0FBZSxTQUFRLFNBQVM7SUFDM0MsSUFBSSxHQUFHLGFBQWEsQ0FBQyxLQUFLLENBQUM7SUFDM0IsSUFBSSxDQUFTO0lBRWIsWUFBWSxJQUFZO1FBQ3RCLEtBQUssRUFBRSxDQUFDO1FBQ1IsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7SUFDbkIsQ0FBQztJQUVELFFBQVE7UUFDTixPQUFPO0lBQ1QsQ0FBQztDQUNGO0FBRUQsTUFBTSxPQUFPLGdCQUFpQixTQUFRLFNBQVM7SUFDN0MsSUFBSSxHQUFHLGFBQWEsQ0FBQyxPQUFPLENBQUM7SUFDN0IsSUFBSSxDQUFTO0lBRWIsWUFBWSxJQUFZO1FBQ3RCLEtBQUssRUFB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
|
|
1
|
+
import { HTTPParamType } from "@eggjs/tegg-types";
|
|
2
|
+
import pathToRegexp from "path-to-regexp";
|
|
3
|
+
import assert from "node:assert";
|
|
4
|
+
|
|
5
|
+
//#region src/model/HTTPMethodMeta.ts
|
|
6
|
+
var ParamMeta = class {
|
|
7
|
+
type;
|
|
8
|
+
};
|
|
9
|
+
var RequestParamMeta = class extends ParamMeta {
|
|
10
|
+
type = HTTPParamType.REQUEST;
|
|
11
|
+
validate() {}
|
|
12
|
+
};
|
|
13
|
+
var BodyParamMeta = class extends ParamMeta {
|
|
14
|
+
type = HTTPParamType.BODY;
|
|
15
|
+
validate() {}
|
|
16
|
+
};
|
|
17
|
+
var HeadersParamMeta = class extends ParamMeta {
|
|
18
|
+
type = HTTPParamType.HEADERS;
|
|
19
|
+
validate() {}
|
|
20
|
+
};
|
|
21
|
+
var QueryParamMeta = class extends ParamMeta {
|
|
22
|
+
type = HTTPParamType.QUERY;
|
|
23
|
+
name;
|
|
24
|
+
constructor(name) {
|
|
25
|
+
super();
|
|
26
|
+
this.name = name;
|
|
27
|
+
}
|
|
28
|
+
validate() {}
|
|
29
|
+
};
|
|
30
|
+
var QueriesParamMeta = class extends ParamMeta {
|
|
31
|
+
type = HTTPParamType.QUERIES;
|
|
32
|
+
name;
|
|
33
|
+
constructor(name) {
|
|
34
|
+
super();
|
|
35
|
+
this.name = name;
|
|
36
|
+
}
|
|
37
|
+
validate() {}
|
|
38
|
+
};
|
|
39
|
+
var PathParamMeta = class extends ParamMeta {
|
|
40
|
+
type = HTTPParamType.PARAM;
|
|
41
|
+
name;
|
|
42
|
+
constructor(name) {
|
|
43
|
+
super();
|
|
44
|
+
this.name = name;
|
|
45
|
+
}
|
|
46
|
+
validate(httpPath) {
|
|
47
|
+
const names = [];
|
|
48
|
+
pathToRegexp(httpPath, names);
|
|
49
|
+
if (!names.find((name) => String(name.name) === this.name)) throw new Error(`can not find param ${this.name} in path ${httpPath}`);
|
|
50
|
+
}
|
|
51
|
+
};
|
|
52
|
+
var CookiesParamMeta = class extends ParamMeta {
|
|
53
|
+
type = HTTPParamType.COOKIES;
|
|
54
|
+
validate() {}
|
|
55
|
+
};
|
|
56
|
+
var HTTPMethodMeta = class {
|
|
57
|
+
name;
|
|
58
|
+
path;
|
|
59
|
+
method;
|
|
60
|
+
middlewares;
|
|
61
|
+
contextParamIndex;
|
|
62
|
+
paramMap;
|
|
63
|
+
priority;
|
|
64
|
+
needAcl;
|
|
65
|
+
aclCode;
|
|
66
|
+
hosts;
|
|
67
|
+
timeout;
|
|
68
|
+
constructor(name, path, method, middlewares, contextParamIndex, paramTypeMap, priority, needAcl, aclCode, hosts, timeout) {
|
|
69
|
+
this.name = name;
|
|
70
|
+
this.path = path;
|
|
71
|
+
this.method = method;
|
|
72
|
+
this.middlewares = middlewares;
|
|
73
|
+
this.contextParamIndex = contextParamIndex;
|
|
74
|
+
this.paramMap = paramTypeMap;
|
|
75
|
+
this.priority = priority;
|
|
76
|
+
this.needAcl = needAcl;
|
|
77
|
+
this.aclCode = aclCode;
|
|
78
|
+
this.hosts = hosts;
|
|
79
|
+
this.timeout = timeout;
|
|
80
|
+
}
|
|
81
|
+
};
|
|
82
|
+
var ParamMetaUtil = class {
|
|
83
|
+
static createParam(type, name) {
|
|
84
|
+
switch (type) {
|
|
85
|
+
case HTTPParamType.PARAM:
|
|
86
|
+
assert(name, "path param must has name");
|
|
87
|
+
return new PathParamMeta(name);
|
|
88
|
+
case HTTPParamType.BODY: return new BodyParamMeta();
|
|
89
|
+
case HTTPParamType.HEADERS: return new HeadersParamMeta();
|
|
90
|
+
case HTTPParamType.QUERIES:
|
|
91
|
+
assert(name, "queries param must has name");
|
|
92
|
+
return new QueriesParamMeta(name);
|
|
93
|
+
case HTTPParamType.QUERY:
|
|
94
|
+
assert(name, "query param must has name");
|
|
95
|
+
return new QueryParamMeta(name);
|
|
96
|
+
case HTTPParamType.REQUEST: return new RequestParamMeta();
|
|
97
|
+
case HTTPParamType.COOKIES: return new CookiesParamMeta();
|
|
98
|
+
default: assert.fail("never arrive");
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
};
|
|
102
|
+
|
|
103
|
+
//#endregion
|
|
104
|
+
export { BodyParamMeta, CookiesParamMeta, HTTPMethodMeta, HeadersParamMeta, ParamMeta, ParamMetaUtil, PathParamMeta, QueriesParamMeta, QueryParamMeta, RequestParamMeta };
|
|
@@ -1,10 +1,7 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
error(): Response;
|
|
5
|
-
json(data: any, init?: ResponseInit): Response;
|
|
6
|
-
redirect(url: string | URL, status?: number): Response;
|
|
1
|
+
//#region src/model/HTTPResponse.d.ts
|
|
2
|
+
declare const HTTPResponseBase: {
|
|
3
|
+
new (): any;
|
|
7
4
|
};
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
export {};
|
|
5
|
+
declare class HTTPResponse extends HTTPResponseBase {}
|
|
6
|
+
//#endregion
|
|
7
|
+
export { HTTPResponse };
|
|
@@ -1,3 +1,6 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
//#region src/model/HTTPResponse.ts
|
|
2
|
+
const HTTPResponseBase = typeof Response !== "undefined" ? Response : Object;
|
|
3
|
+
var HTTPResponse = class extends HTTPResponseBase {};
|
|
4
|
+
|
|
5
|
+
//#endregion
|
|
6
|
+
export { HTTPResponse };
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { MCPPromptMeta } from "./MCPPromptMeta.js";
|
|
2
|
+
import { MCPResourceMeta } from "./MCPResourceMeta.js";
|
|
3
|
+
import { MCPToolMeta } from "./MCPToolMeta.js";
|
|
4
|
+
import { ControllerMetadata, ControllerType, EggPrototypeName, MCPControllerParams, MiddlewareFunc } from "@eggjs/tegg-types";
|
|
5
|
+
|
|
6
|
+
//#region src/model/MCPControllerMeta.d.ts
|
|
7
|
+
declare class MCPControllerMeta implements ControllerMetadata {
|
|
8
|
+
readonly protoName: EggPrototypeName;
|
|
9
|
+
readonly controllerName: string;
|
|
10
|
+
readonly className: string;
|
|
11
|
+
readonly methods: never[];
|
|
12
|
+
readonly middlewares: readonly MiddlewareFunc[];
|
|
13
|
+
readonly type: ControllerType;
|
|
14
|
+
readonly name?: string;
|
|
15
|
+
readonly version: string;
|
|
16
|
+
readonly needAcl: boolean;
|
|
17
|
+
readonly aclCode?: string;
|
|
18
|
+
readonly tools: MCPToolMeta[];
|
|
19
|
+
readonly resources: MCPResourceMeta[];
|
|
20
|
+
readonly prompts: MCPPromptMeta[];
|
|
21
|
+
readonly timeout?: number;
|
|
22
|
+
get id(): string;
|
|
23
|
+
constructor(className: string, protoName: EggPrototypeName, controllerName: string, version: string, tools: MCPToolMeta[], resources: MCPResourceMeta[], prompts: MCPPromptMeta[], middlewares: MiddlewareFunc[], name?: string, needAcl?: boolean, aclCode?: string, meta?: MCPControllerParams);
|
|
24
|
+
getMethodMiddlewares(method: MCPPromptMeta | MCPToolMeta | MCPResourceMeta): readonly MiddlewareFunc[];
|
|
25
|
+
hasMethodAcl(method: MCPPromptMeta | MCPToolMeta | MCPResourceMeta): boolean;
|
|
26
|
+
getMethodAcl(method: MCPPromptMeta | MCPToolMeta | MCPResourceMeta): string | undefined;
|
|
27
|
+
}
|
|
28
|
+
//#endregion
|
|
29
|
+
export { MCPControllerMeta };
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import "./MCPResourceMeta.js";
|
|
2
|
+
import { ControllerType } from "@eggjs/tegg-types";
|
|
3
|
+
|
|
4
|
+
//#region src/model/MCPControllerMeta.ts
|
|
5
|
+
var MCPControllerMeta = class {
|
|
6
|
+
protoName;
|
|
7
|
+
controllerName;
|
|
8
|
+
className;
|
|
9
|
+
methods;
|
|
10
|
+
middlewares;
|
|
11
|
+
type = ControllerType.MCP;
|
|
12
|
+
name;
|
|
13
|
+
version;
|
|
14
|
+
needAcl;
|
|
15
|
+
aclCode;
|
|
16
|
+
tools;
|
|
17
|
+
resources;
|
|
18
|
+
prompts;
|
|
19
|
+
timeout;
|
|
20
|
+
get id() {
|
|
21
|
+
return `${this.name ?? this.controllerName}:${this.version}`;
|
|
22
|
+
}
|
|
23
|
+
constructor(className, protoName, controllerName, version, tools, resources, prompts, middlewares, name, needAcl, aclCode, meta) {
|
|
24
|
+
this.protoName = protoName;
|
|
25
|
+
this.controllerName = controllerName;
|
|
26
|
+
this.className = className;
|
|
27
|
+
this.name = name;
|
|
28
|
+
this.version = version;
|
|
29
|
+
this.tools = tools;
|
|
30
|
+
this.resources = resources;
|
|
31
|
+
this.prompts = prompts;
|
|
32
|
+
this.middlewares = middlewares;
|
|
33
|
+
this.methods = [];
|
|
34
|
+
this.needAcl = !!needAcl;
|
|
35
|
+
this.aclCode = aclCode;
|
|
36
|
+
this.timeout = meta?.timeout;
|
|
37
|
+
}
|
|
38
|
+
getMethodMiddlewares(method) {
|
|
39
|
+
if (this.middlewares.length) return [...this.middlewares, ...method.middlewares];
|
|
40
|
+
return method.middlewares;
|
|
41
|
+
}
|
|
42
|
+
hasMethodAcl(method) {
|
|
43
|
+
return method.needAcl || this.needAcl;
|
|
44
|
+
}
|
|
45
|
+
getMethodAcl(method) {
|
|
46
|
+
return method.aclCode || this.aclCode;
|
|
47
|
+
}
|
|
48
|
+
};
|
|
49
|
+
|
|
50
|
+
//#endregion
|
|
51
|
+
export { MCPControllerMeta };
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { PromptArgsSchemaDetail } from "../util/MCPInfoUtil.js";
|
|
2
|
+
import { MiddlewareFunc } from "@eggjs/tegg-types";
|
|
3
|
+
|
|
4
|
+
//#region src/model/MCPPromptMeta.d.ts
|
|
5
|
+
declare class MCPPromptMeta {
|
|
6
|
+
readonly name: string;
|
|
7
|
+
readonly needAcl: boolean;
|
|
8
|
+
readonly mcpName?: string;
|
|
9
|
+
readonly aclCode?: string;
|
|
10
|
+
readonly description?: string;
|
|
11
|
+
readonly detail?: PromptArgsSchemaDetail;
|
|
12
|
+
readonly middlewares: readonly MiddlewareFunc[];
|
|
13
|
+
readonly extra?: number;
|
|
14
|
+
readonly title?: string;
|
|
15
|
+
constructor(opt: {
|
|
16
|
+
name: string;
|
|
17
|
+
middlewares: MiddlewareFunc[];
|
|
18
|
+
needAcl?: boolean;
|
|
19
|
+
aclCode?: string;
|
|
20
|
+
description?: string;
|
|
21
|
+
mcpName?: string;
|
|
22
|
+
detail?: PromptArgsSchemaDetail;
|
|
23
|
+
extra?: number;
|
|
24
|
+
title?: string;
|
|
25
|
+
});
|
|
26
|
+
}
|
|
27
|
+
//#endregion
|
|
28
|
+
export { MCPPromptMeta };
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
//#region src/model/MCPPromptMeta.ts
|
|
2
|
+
var MCPPromptMeta = class {
|
|
3
|
+
name;
|
|
4
|
+
needAcl;
|
|
5
|
+
mcpName;
|
|
6
|
+
aclCode;
|
|
7
|
+
description;
|
|
8
|
+
detail;
|
|
9
|
+
middlewares;
|
|
10
|
+
extra;
|
|
11
|
+
title;
|
|
12
|
+
constructor(opt) {
|
|
13
|
+
this.name = opt.name;
|
|
14
|
+
this.needAcl = !!opt.needAcl;
|
|
15
|
+
this.description = opt.description;
|
|
16
|
+
this.mcpName = opt.mcpName;
|
|
17
|
+
this.middlewares = opt.middlewares;
|
|
18
|
+
this.aclCode = opt.aclCode;
|
|
19
|
+
this.detail = opt.detail;
|
|
20
|
+
this.extra = opt.extra;
|
|
21
|
+
this.title = opt.title;
|
|
22
|
+
}
|
|
23
|
+
};
|
|
24
|
+
|
|
25
|
+
//#endregion
|
|
26
|
+
export { MCPPromptMeta };
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { MiddlewareFunc } from "@eggjs/tegg-types";
|
|
2
|
+
import { ResourceMetadata, ResourceTemplate } from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
3
|
+
|
|
4
|
+
//#region src/model/MCPResourceMeta.d.ts
|
|
5
|
+
declare class MCPResourceMeta {
|
|
6
|
+
readonly name: string;
|
|
7
|
+
readonly needAcl: boolean;
|
|
8
|
+
readonly aclCode?: string;
|
|
9
|
+
readonly mcpName?: string;
|
|
10
|
+
readonly uri?: string;
|
|
11
|
+
readonly template?: ResourceTemplate;
|
|
12
|
+
readonly metadata?: ResourceMetadata;
|
|
13
|
+
readonly middlewares: readonly MiddlewareFunc[];
|
|
14
|
+
readonly extra?: number;
|
|
15
|
+
constructor(opt: {
|
|
16
|
+
name: string;
|
|
17
|
+
middlewares: MiddlewareFunc[];
|
|
18
|
+
needAcl?: boolean;
|
|
19
|
+
aclCode?: string;
|
|
20
|
+
mcpName?: string;
|
|
21
|
+
uri?: string;
|
|
22
|
+
template?: ConstructorParameters<typeof ResourceTemplate>;
|
|
23
|
+
metadata?: ResourceMetadata;
|
|
24
|
+
extra?: number;
|
|
25
|
+
});
|
|
26
|
+
}
|
|
27
|
+
//#endregion
|
|
28
|
+
export { MCPResourceMeta };
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { ResourceTemplate } from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
2
|
+
|
|
3
|
+
//#region src/model/MCPResourceMeta.ts
|
|
4
|
+
var MCPResourceMeta = class {
|
|
5
|
+
name;
|
|
6
|
+
needAcl;
|
|
7
|
+
aclCode;
|
|
8
|
+
mcpName;
|
|
9
|
+
uri;
|
|
10
|
+
template;
|
|
11
|
+
metadata;
|
|
12
|
+
middlewares;
|
|
13
|
+
extra;
|
|
14
|
+
constructor(opt) {
|
|
15
|
+
this.name = opt.name;
|
|
16
|
+
this.needAcl = !!opt.needAcl;
|
|
17
|
+
this.uri = opt.uri;
|
|
18
|
+
this.metadata = opt.metadata;
|
|
19
|
+
if (opt.template) this.template = new ResourceTemplate(opt.template[0], opt.template[1]);
|
|
20
|
+
this.middlewares = opt.middlewares;
|
|
21
|
+
this.aclCode = opt.aclCode;
|
|
22
|
+
this.mcpName = opt.mcpName;
|
|
23
|
+
this.extra = opt.extra;
|
|
24
|
+
}
|
|
25
|
+
};
|
|
26
|
+
|
|
27
|
+
//#endregion
|
|
28
|
+
export { MCPResourceMeta };
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { ToolArgsSchemaDetail } from "../util/MCPInfoUtil.js";
|
|
2
|
+
import { MiddlewareFunc } from "@eggjs/tegg-types";
|
|
3
|
+
|
|
4
|
+
//#region src/model/MCPToolMeta.d.ts
|
|
5
|
+
declare class MCPToolMeta {
|
|
6
|
+
readonly name: string;
|
|
7
|
+
readonly needAcl: boolean;
|
|
8
|
+
readonly aclCode?: string;
|
|
9
|
+
readonly mcpName?: string;
|
|
10
|
+
readonly description?: string;
|
|
11
|
+
readonly detail?: ToolArgsSchemaDetail;
|
|
12
|
+
readonly middlewares: readonly MiddlewareFunc[];
|
|
13
|
+
readonly extra?: number;
|
|
14
|
+
constructor(opt: {
|
|
15
|
+
name: string;
|
|
16
|
+
middlewares: MiddlewareFunc[];
|
|
17
|
+
needAcl?: boolean;
|
|
18
|
+
aclCode?: string;
|
|
19
|
+
description?: string;
|
|
20
|
+
mcpName?: string;
|
|
21
|
+
detail?: ToolArgsSchemaDetail;
|
|
22
|
+
extra?: number;
|
|
23
|
+
});
|
|
24
|
+
}
|
|
25
|
+
//#endregion
|
|
26
|
+
export { MCPToolMeta };
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
//#region src/model/MCPToolMeta.ts
|
|
2
|
+
var MCPToolMeta = class {
|
|
3
|
+
name;
|
|
4
|
+
needAcl;
|
|
5
|
+
aclCode;
|
|
6
|
+
mcpName;
|
|
7
|
+
description;
|
|
8
|
+
detail;
|
|
9
|
+
middlewares;
|
|
10
|
+
extra;
|
|
11
|
+
constructor(opt) {
|
|
12
|
+
this.name = opt.name;
|
|
13
|
+
this.needAcl = !!opt.needAcl;
|
|
14
|
+
this.description = opt.description;
|
|
15
|
+
this.mcpName = opt.mcpName;
|
|
16
|
+
this.middlewares = opt.middlewares;
|
|
17
|
+
this.aclCode = opt.aclCode;
|
|
18
|
+
this.detail = opt.detail;
|
|
19
|
+
this.extra = opt.extra;
|
|
20
|
+
}
|
|
21
|
+
};
|
|
22
|
+
|
|
23
|
+
//#endregion
|
|
24
|
+
export { MCPToolMeta };
|
package/dist/model/index.d.ts
CHANGED
|
@@ -1,5 +1,8 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
1
|
+
import { BodyParamMeta, CookiesParamMeta, HTTPMethodMeta, HeadersParamMeta, ParamMeta, ParamMetaUtil, PathParamMeta, QueriesParamMeta, QueryParamMeta, RequestParamMeta } from "./HTTPMethodMeta.js";
|
|
2
|
+
import { HTTPControllerMeta } from "./HTTPControllerMeta.js";
|
|
3
|
+
import { Cookies } from "./HTTPCookies.js";
|
|
4
|
+
import { HTTPResponse } from "./HTTPResponse.js";
|
|
5
|
+
import { MCPPromptMeta } from "./MCPPromptMeta.js";
|
|
6
|
+
import { MCPResourceMeta } from "./MCPResourceMeta.js";
|
|
7
|
+
import { MCPToolMeta } from "./MCPToolMeta.js";
|
|
8
|
+
import { MCPControllerMeta } from "./MCPControllerMeta.js";
|