@eggjs/controller-decorator 3.77.2 → 3.78.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.
|
@@ -12,12 +12,18 @@ const ControllerInfoUtil_1 = __importDefault(require("../../util/ControllerInfoU
|
|
|
12
12
|
const HTTPInfoUtil_1 = __importDefault(require("../../util/HTTPInfoUtil"));
|
|
13
13
|
const MethodInfoUtil_1 = __importDefault(require("../../util/MethodInfoUtil"));
|
|
14
14
|
// Default implementations for unimplemented methods.
|
|
15
|
-
//
|
|
15
|
+
// function.length must match the param count for framework param validation.
|
|
16
16
|
// Stubs are marked with Symbol.for('AGENT_NOT_IMPLEMENTED') so agent-runtime
|
|
17
17
|
// can distinguish them from user-defined methods at enhancement time.
|
|
18
|
-
function createNotImplemented(methodName,
|
|
18
|
+
function createNotImplemented(methodName, paramCount) {
|
|
19
19
|
let fn;
|
|
20
|
-
if (
|
|
20
|
+
if (paramCount >= 2) {
|
|
21
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
22
|
+
fn = async function (_a, _b) {
|
|
23
|
+
throw new Error(`${methodName} not implemented`);
|
|
24
|
+
};
|
|
25
|
+
}
|
|
26
|
+
else if (paramCount === 1) {
|
|
21
27
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
22
28
|
fn = async function (_arg) {
|
|
23
29
|
throw new Error(`${methodName} not implemented`);
|
|
@@ -36,52 +42,52 @@ const AGENT_ROUTES = [
|
|
|
36
42
|
methodName: 'createThread',
|
|
37
43
|
httpMethod: tegg_types_1.HTTPMethodEnum.POST,
|
|
38
44
|
path: '/threads',
|
|
39
|
-
|
|
45
|
+
params: [],
|
|
40
46
|
},
|
|
41
47
|
{
|
|
42
48
|
methodName: 'getThread',
|
|
43
49
|
httpMethod: tegg_types_1.HTTPMethodEnum.GET,
|
|
44
50
|
path: '/threads/:id',
|
|
45
|
-
|
|
46
|
-
paramName: 'id',
|
|
47
|
-
hasParam: true,
|
|
51
|
+
params: [{ index: 0, type: 'pathParam', name: 'id' }],
|
|
48
52
|
},
|
|
49
53
|
{
|
|
50
54
|
methodName: 'asyncRun',
|
|
51
55
|
httpMethod: tegg_types_1.HTTPMethodEnum.POST,
|
|
52
56
|
path: '/runs',
|
|
53
|
-
|
|
54
|
-
hasParam: true,
|
|
57
|
+
params: [{ index: 0, type: 'body' }],
|
|
55
58
|
},
|
|
56
59
|
{
|
|
57
60
|
methodName: 'streamRun',
|
|
58
61
|
httpMethod: tegg_types_1.HTTPMethodEnum.POST,
|
|
59
62
|
path: '/runs/stream',
|
|
60
|
-
|
|
61
|
-
|
|
63
|
+
params: [{ index: 0, type: 'body' }],
|
|
64
|
+
},
|
|
65
|
+
{
|
|
66
|
+
methodName: 'getRunStream',
|
|
67
|
+
httpMethod: tegg_types_1.HTTPMethodEnum.GET,
|
|
68
|
+
path: '/runs/:id/stream',
|
|
69
|
+
params: [
|
|
70
|
+
{ index: 0, type: 'pathParam', name: 'id' },
|
|
71
|
+
{ index: 1, type: 'query', name: 'lastSeq' },
|
|
72
|
+
],
|
|
62
73
|
},
|
|
63
74
|
{
|
|
64
75
|
methodName: 'syncRun',
|
|
65
76
|
httpMethod: tegg_types_1.HTTPMethodEnum.POST,
|
|
66
77
|
path: '/runs/wait',
|
|
67
|
-
|
|
68
|
-
hasParam: true,
|
|
78
|
+
params: [{ index: 0, type: 'body' }],
|
|
69
79
|
},
|
|
70
80
|
{
|
|
71
81
|
methodName: 'getRun',
|
|
72
82
|
httpMethod: tegg_types_1.HTTPMethodEnum.GET,
|
|
73
83
|
path: '/runs/:id',
|
|
74
|
-
|
|
75
|
-
paramName: 'id',
|
|
76
|
-
hasParam: true,
|
|
84
|
+
params: [{ index: 0, type: 'pathParam', name: 'id' }],
|
|
77
85
|
},
|
|
78
86
|
{
|
|
79
87
|
methodName: 'cancelRun',
|
|
80
88
|
httpMethod: tegg_types_1.HTTPMethodEnum.POST,
|
|
81
89
|
path: '/runs/:id/cancel',
|
|
82
|
-
|
|
83
|
-
paramName: 'id',
|
|
84
|
-
hasParam: true,
|
|
90
|
+
params: [{ index: 0, type: 'pathParam', name: 'id' }],
|
|
85
91
|
},
|
|
86
92
|
];
|
|
87
93
|
function AgentController() {
|
|
@@ -103,7 +109,7 @@ function AgentController() {
|
|
|
103
109
|
for (const route of AGENT_ROUTES) {
|
|
104
110
|
// Inject default implementation if method not defined
|
|
105
111
|
if (!constructor.prototype[route.methodName]) {
|
|
106
|
-
constructor.prototype[route.methodName] = createNotImplemented(route.methodName, route.
|
|
112
|
+
constructor.prototype[route.methodName] = createNotImplemented(route.methodName, route.params.length);
|
|
107
113
|
}
|
|
108
114
|
// Set method controller type
|
|
109
115
|
MethodInfoUtil_1.default.setMethodControllerType(constructor, route.methodName, tegg_types_1.ControllerType.HTTP);
|
|
@@ -112,16 +118,22 @@ function AgentController() {
|
|
|
112
118
|
// Set HTTP path
|
|
113
119
|
HTTPInfoUtil_1.default.setHTTPMethodPath(route.path, constructor, route.methodName);
|
|
114
120
|
// Set parameter metadata
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
+
for (const param of route.params) {
|
|
122
|
+
if (param.type === 'body') {
|
|
123
|
+
HTTPInfoUtil_1.default.setHTTPMethodParamType(tegg_types_1.HTTPParamType.BODY, param.index, constructor, route.methodName);
|
|
124
|
+
}
|
|
125
|
+
else if (param.type === 'pathParam') {
|
|
126
|
+
HTTPInfoUtil_1.default.setHTTPMethodParamType(tegg_types_1.HTTPParamType.PARAM, param.index, constructor, route.methodName);
|
|
127
|
+
HTTPInfoUtil_1.default.setHTTPMethodParamName(param.name, param.index, constructor, route.methodName);
|
|
128
|
+
}
|
|
129
|
+
else if (param.type === 'query') {
|
|
130
|
+
HTTPInfoUtil_1.default.setHTTPMethodParamType(tegg_types_1.HTTPParamType.QUERY, param.index, constructor, route.methodName);
|
|
131
|
+
HTTPInfoUtil_1.default.setHTTPMethodParamName(param.name, param.index, constructor, route.methodName);
|
|
132
|
+
}
|
|
121
133
|
}
|
|
122
134
|
}
|
|
123
135
|
// Mark the class as an AgentController for precise detection
|
|
124
136
|
AgentInfoUtil_1.AgentInfoUtil.setAgentController(constructor);
|
|
125
137
|
};
|
|
126
138
|
}
|
|
127
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
139
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQWdlbnRDb250cm9sbGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2RlY29yYXRvci9hZ2VudC9BZ2VudENvbnRyb2xsZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUE0R0EsMENBb0RDO0FBaEtELDBEQUFzRTtBQUN0RSw4REFBb0Q7QUFFcEQsa0RBTTJCO0FBRTNCLDREQUF5RDtBQUN6RCx1RkFBK0Q7QUFDL0QsMkVBQW1EO0FBQ25ELCtFQUF1RDtBQWV2RCxxREFBcUQ7QUFDckQsNkVBQTZFO0FBQzdFLDZFQUE2RTtBQUM3RSxzRUFBc0U7QUFDdEUsU0FBUyxvQkFBb0IsQ0FBQyxVQUFrQixFQUFFLFVBQWtCO0lBQ2xFLElBQUksRUFBRSxDQUFDO0lBQ1AsSUFBSSxVQUFVLElBQUksQ0FBQyxFQUFFLENBQUM7UUFDcEIsNkRBQTZEO1FBQzdELEVBQUUsR0FBRyxLQUFLLFdBQVUsRUFBVyxFQUFFLEVBQVc7WUFDMUMsTUFBTSxJQUFJLEtBQUssQ0FBQyxHQUFHLFVBQVUsa0JBQWtCLENBQUMsQ0FBQztRQUNuRCxDQUFDLENBQUM7SUFDSixDQUFDO1NBQU0sSUFBSSxVQUFVLEtBQUssQ0FBQyxFQUFFLENBQUM7UUFDNUIsNkRBQTZEO1FBQzdELEVBQUUsR0FBRyxLQUFLLFdBQVUsSUFBYTtZQUMvQixNQUFNLElBQUksS0FBSyxDQUFDLEdBQUcsVUFBVSxrQkFBa0IsQ0FBQyxDQUFDO1FBQ25ELENBQUMsQ0FBQztJQUNKLENBQUM7U0FBTSxDQUFDO1FBQ04sRUFBRSxHQUFHLEtBQUs7WUFDUixNQUFNLElBQUksS0FBSyxDQUFDLEdBQUcsVUFBVSxrQkFBa0IsQ0FBQyxDQUFDO1FBQ25ELENBQUMsQ0FBQztJQUNKLENBQUM7SUFDRCw2QkFBYSxDQUFDLGlCQUFpQixDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ3BDLE9BQU8sRUFBRSxDQUFDO0FBQ1osQ0FBQztBQUVELE1BQU0sWUFBWSxHQUEyQjtJQUMzQztRQUNFLFVBQVUsRUFBRSxjQUFjO1FBQzFCLFVBQVUsRUFBRSwyQkFBYyxDQUFDLElBQUk7UUFDL0IsSUFBSSxFQUFFLFVBQVU7UUFDaEIsTUFBTSxFQUFFLEVBQUU7S0FDWDtJQUNEO1FBQ0UsVUFBVSxFQUFFLFdBQVc7UUFDdkIsVUFBVSxFQUFFLDJCQUFjLENBQUMsR0FBRztRQUM5QixJQUFJLEVBQUUsY0FBYztRQUNwQixNQUFNLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLENBQUM7S0FDdEQ7SUFDRDtRQUNFLFVBQVUsRUFBRSxVQUFVO1FBQ3RCLFVBQVUsRUFBRSwyQkFBYyxDQUFDLElBQUk7UUFDL0IsSUFBSSxFQUFFLE9BQU87UUFDYixNQUFNLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxDQUFDO0tBQ3JDO0lBQ0Q7UUFDRSxVQUFVLEVBQUUsV0FBVztRQUN2QixVQUFVLEVBQUUsMkJBQWMsQ0FBQyxJQUFJO1FBQy9CLElBQUksRUFBRSxjQUFjO1FBQ3BCLE1BQU0sRUFBRSxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLENBQUM7S0FDckM7SUFDRDtRQUNFLFVBQVUsRUFBRSxjQUFjO1FBQzFCLFVBQVUsRUFBRSwyQkFBYyxDQUFDLEdBQUc7UUFDOUIsSUFBSSxFQUFFLGtCQUFrQjtRQUN4QixNQUFNLEVBQUU7WUFDTixFQUFFLEtBQUssRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFO1lBQzNDLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUU7U0FDN0M7S0FDRjtJQUNEO1FBQ0UsVUFBVSxFQUFFLFNBQVM7UUFDckIsVUFBVSxFQUFFLDJCQUFjLENBQUMsSUFBSTtRQUMvQixJQUFJLEVBQUUsWUFBWTtRQUNsQixNQUFNLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxDQUFDO0tBQ3JDO0lBQ0Q7UUFDRSxVQUFVLEVBQUUsUUFBUTtRQUNwQixVQUFVLEVBQUUsMkJBQWMsQ0FBQyxHQUFHO1FBQzlCLElBQUksRUFBRSxXQUFXO1FBQ2pCLE1BQU0sRUFBRSxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsQ0FBQztLQUN0RDtJQUNEO1FBQ0UsVUFBVSxFQUFFLFdBQVc7UUFDdkIsVUFBVSxFQUFFLDJCQUFjLENBQUMsSUFBSTtRQUMvQixJQUFJLEVBQUUsa0JBQWtCO1FBQ3hCLE1BQU0sRUFBRSxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsQ0FBQztLQUN0RDtDQUNGLENBQUM7QUFFRixTQUFnQixlQUFlO0lBQzdCLE9BQU8sVUFBUyxXQUE4QjtRQUM1QyxvRUFBb0U7UUFDcEUsNEJBQWtCLENBQUMsaUJBQWlCLENBQUMsV0FBVyxFQUFFLDJCQUFjLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFdkUsK0JBQStCO1FBQy9CLHNCQUFZLENBQUMsV0FBVyxDQUFDLFNBQVMsRUFBRSxXQUFXLENBQUMsQ0FBQztRQUVqRCxtREFBbUQ7UUFDbkQsTUFBTSxJQUFJLEdBQUcsSUFBQSwrQkFBYyxFQUFDO1lBQzFCLFdBQVcsRUFBRSx3QkFBVyxDQUFDLE1BQU07WUFDL0IsYUFBYSxFQUFFLDZDQUFnQztTQUNoRCxDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7UUFFbEIsOEJBQThCO1FBQzlCLHlHQUF5RztRQUN6Ryw4QkFBYSxDQUFDLFdBQVcsQ0FBQyxXQUFXLEVBQUUsNEJBQVMsQ0FBQyxrQkFBa0IsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUUvRSw0QkFBNEI7UUFDNUIsS0FBSyxNQUFNLEtBQUssSUFBSSxZQUFZLEVBQUUsQ0FBQztZQUNqQyxzREFBc0Q7WUFDdEQsSUFBSSxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUM7Z0JBQzdDLFdBQVcsQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxHQUFHLG9CQUFvQixDQUFDLEtBQUssQ0FBQyxVQUFVLEVBQUUsS0FBSyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUN4RyxDQUFDO1lBRUQsNkJBQTZCO1lBQzdCLHdCQUFjLENBQUMsdUJBQXVCLENBQUMsV0FBVyxFQUFFLEtBQUssQ0FBQyxVQUFVLEVBQUUsMkJBQWMsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUUzRiw2QkFBNkI7WUFDN0Isc0JBQVksQ0FBQyxtQkFBbUIsQ0FBQyxLQUFLLENBQUMsVUFBVSxFQUFFLFdBQVcsRUFBRSxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUM7WUFFbEYsZ0JBQWdCO1lBQ2hCLHNCQUFZLENBQUMsaUJBQWlCLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxXQUFXLEVBQUUsS0FBSyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1lBRTFFLHlCQUF5QjtZQUN6QixLQUFLLE1BQU0sS0FBSyxJQUFJLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQztnQkFDakMsSUFBSSxLQUFLLENBQUMsSUFBSSxLQUFLLE1BQU0sRUFBRSxDQUFDO29CQUMxQixzQkFBWSxDQUFDLHNCQUFzQixDQUFDLDBCQUFhLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxLQUFLLEVBQUUsV0FBVyxFQUFFLEtBQUssQ0FBQyxVQUFVLENBQUMsQ0FBQztnQkFDdEcsQ0FBQztxQkFBTSxJQUFJLEtBQUssQ0FBQyxJQUFJLEtBQUssV0FBVyxFQUFFLENBQUM7b0JBQ3RDLHNCQUFZLENBQUMsc0JBQXNCLENBQUMsMEJBQWEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLEtBQUssRUFBRSxXQUFXLEVBQUUsS0FBSyxDQUFDLFVBQVUsQ0FBQyxDQUFDO29CQUNyRyxzQkFBWSxDQUFDLHNCQUFzQixDQUFDLEtBQUssQ0FBQyxJQUFLLEVBQUUsS0FBSyxDQUFDLEtBQUssRUFBRSxXQUFXLEVBQUUsS0FBSyxDQUFDLFVBQVUsQ0FBQyxDQUFDO2dCQUMvRixDQUFDO3FCQUFNLElBQUksS0FBSyxDQUFDLElBQUksS0FBSyxPQUFPLEVBQUUsQ0FBQztvQkFDbEMsc0JBQVksQ0FBQyxzQkFBc0IsQ0FBQywwQkFBYSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsS0FBSyxFQUFFLFdBQVcsRUFBRSxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUM7b0JBQ3JHLHNCQUFZLENBQUMsc0JBQXNCLENBQUMsS0FBSyxDQUFDLElBQUssRUFBRSxLQUFLLENBQUMsS0FBSyxFQUFFLFdBQVcsRUFBRSxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUM7Z0JBQy9GLENBQUM7WUFDSCxDQUFDO1FBQ0gsQ0FBQztRQUVELDZEQUE2RDtRQUM3RCw2QkFBYSxDQUFDLGtCQUFrQixDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ2hELENBQUMsQ0FBQztBQUNKLENBQUMifQ==
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@eggjs/controller-decorator",
|
|
3
|
-
"version": "3.
|
|
3
|
+
"version": "3.78.0",
|
|
4
4
|
"description": "tegg controller decorator",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"egg",
|
|
@@ -37,12 +37,12 @@
|
|
|
37
37
|
"node": ">=14.0.0"
|
|
38
38
|
},
|
|
39
39
|
"dependencies": {
|
|
40
|
-
"@eggjs/aop-decorator": "^3.
|
|
40
|
+
"@eggjs/aop-decorator": "^3.78.0",
|
|
41
41
|
"@eggjs/cookies": "^3.0.1",
|
|
42
|
-
"@eggjs/core-decorator": "^3.
|
|
43
|
-
"@eggjs/tegg-common-util": "^3.
|
|
44
|
-
"@eggjs/tegg-metadata": "^3.
|
|
45
|
-
"@eggjs/tegg-types": "^3.
|
|
42
|
+
"@eggjs/core-decorator": "^3.78.0",
|
|
43
|
+
"@eggjs/tegg-common-util": "^3.78.0",
|
|
44
|
+
"@eggjs/tegg-metadata": "^3.78.0",
|
|
45
|
+
"@eggjs/tegg-types": "^3.78.0",
|
|
46
46
|
"@modelcontextprotocol/sdk": "^1.23.0",
|
|
47
47
|
"is-type-of": "^1.2.1",
|
|
48
48
|
"path-to-regexp": "^1.8.0",
|
|
@@ -62,5 +62,5 @@
|
|
|
62
62
|
"publishConfig": {
|
|
63
63
|
"access": "public"
|
|
64
64
|
},
|
|
65
|
-
"gitHead": "
|
|
65
|
+
"gitHead": "44a680026526a5d0c1583a64713a68c5a0efac1e"
|
|
66
66
|
}
|