@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.
Files changed (72) hide show
  1. package/README.md +15 -126
  2. package/dist/app/middleware/tegg_root_proto.d.ts +3 -0
  3. package/dist/app/middleware/tegg_root_proto.js +8 -0
  4. package/dist/app.d.ts +23 -0
  5. package/dist/app.js +76 -0
  6. package/dist/index.d.ts +1 -0
  7. package/dist/index.js +2 -0
  8. package/{lib → dist/lib}/AppLoadUnitControllerHook.d.ts +4 -4
  9. package/dist/lib/AppLoadUnitControllerHook.js +29 -0
  10. package/{lib → dist/lib}/ControllerLoadUnit.d.ts +2 -2
  11. package/dist/lib/ControllerLoadUnit.js +72 -0
  12. package/{lib → dist/lib}/ControllerLoadUnitHandler.d.ts +4 -4
  13. package/dist/lib/ControllerLoadUnitHandler.js +29 -0
  14. package/{lib → dist/lib}/ControllerLoadUnitInstance.d.ts +3 -3
  15. package/dist/lib/ControllerLoadUnitInstance.js +36 -0
  16. package/{lib → dist/lib}/ControllerMetadataManager.d.ts +1 -1
  17. package/dist/lib/ControllerMetadataManager.js +27 -0
  18. package/{lib → dist/lib}/ControllerRegister.d.ts +2 -2
  19. package/dist/lib/ControllerRegister.js +3 -0
  20. package/{lib → dist/lib}/ControllerRegisterFactory.d.ts +4 -4
  21. package/dist/lib/ControllerRegisterFactory.js +22 -0
  22. package/dist/lib/EggControllerLoader.d.ts +7 -0
  23. package/dist/lib/EggControllerLoader.js +31 -0
  24. package/{lib → dist/lib}/EggControllerPrototypeHook.d.ts +2 -2
  25. package/dist/lib/EggControllerPrototypeHook.js +11 -0
  26. package/{lib → dist/lib}/RootProtoManager.d.ts +2 -2
  27. package/dist/lib/RootProtoManager.js +34 -0
  28. package/dist/lib/errors.js +12 -0
  29. package/dist/lib/impl/http/Acl.d.ts +2 -0
  30. package/dist/lib/impl/http/Acl.js +33 -0
  31. package/{lib → dist/lib}/impl/http/HTTPControllerRegister.d.ts +4 -4
  32. package/dist/lib/impl/http/HTTPControllerRegister.js +64 -0
  33. package/{lib → dist/lib}/impl/http/HTTPMethodRegister.d.ts +2 -2
  34. package/dist/lib/impl/http/HTTPMethodRegister.js +165 -0
  35. package/dist/lib/impl/http/Req.js +13 -0
  36. package/dist/types.d.ts +2 -0
  37. package/dist/types.js +3 -0
  38. package/package.json +60 -50
  39. package/app/middleware/mcp_body_middleware.d.ts +0 -3
  40. package/app/middleware/mcp_body_middleware.js +0 -48
  41. package/app/middleware/tegg_root_proto.d.ts +0 -3
  42. package/app/middleware/tegg_root_proto.js +0 -11
  43. package/app.d.ts +0 -15
  44. package/app.js +0 -143
  45. package/config/config.default.d.ts +0 -11
  46. package/config/config.default.js +0 -16
  47. package/lib/AppLoadUnitControllerHook.js +0 -28
  48. package/lib/ControllerLoadUnit.js +0 -71
  49. package/lib/ControllerLoadUnitHandler.js +0 -31
  50. package/lib/ControllerLoadUnitInstance.js +0 -34
  51. package/lib/ControllerMetadataManager.js +0 -30
  52. package/lib/ControllerRegister.js +0 -3
  53. package/lib/ControllerRegisterFactory.js +0 -21
  54. package/lib/EggControllerLoader.d.ts +0 -6
  55. package/lib/EggControllerLoader.js +0 -37
  56. package/lib/EggControllerPrototypeHook.js +0 -14
  57. package/lib/RootProtoManager.js +0 -38
  58. package/lib/errors.js +0 -16
  59. package/lib/impl/http/Acl.d.ts +0 -2
  60. package/lib/impl/http/Acl.js +0 -34
  61. package/lib/impl/http/HTTPControllerRegister.js +0 -62
  62. package/lib/impl/http/HTTPMethodRegister.js +0 -173
  63. package/lib/impl/http/Req.js +0 -17
  64. package/lib/impl/mcp/MCPConfig.d.ts +0 -32
  65. package/lib/impl/mcp/MCPConfig.js +0 -107
  66. package/lib/impl/mcp/MCPControllerRegister.d.ts +0 -67
  67. package/lib/impl/mcp/MCPControllerRegister.js +0 -541
  68. package/lib/impl/mcp/MCPServerHelper.d.ts +0 -17
  69. package/lib/impl/mcp/MCPServerHelper.js +0 -122
  70. package/typings/index.d.ts +0 -17
  71. /package/{lib → dist/lib}/errors.d.ts +0 -0
  72. /package/{lib → dist/lib}/impl/http/Req.d.ts +0 -0
@@ -0,0 +1,31 @@
1
+ import path from 'node:path';
2
+ import { globby } from 'globby';
3
+ import { LoaderUtil } from '@eggjs/tegg-loader';
4
+ export class EggControllerLoader {
5
+ controllerDir;
6
+ constructor(controllerDir) {
7
+ this.controllerDir = controllerDir;
8
+ }
9
+ async load() {
10
+ const filePattern = LoaderUtil.filePattern();
11
+ let files;
12
+ try {
13
+ const httpControllers = (await globby(filePattern, { cwd: this.controllerDir }))
14
+ .map(file => path.join(this.controllerDir, file));
15
+ files = httpControllers;
16
+ }
17
+ catch {
18
+ files = [];
19
+ // app/controller dir not exists
20
+ }
21
+ const protoClassList = [];
22
+ for (const file of files) {
23
+ const fileClazzList = await LoaderUtil.loadFile(file);
24
+ for (const clazz of fileClazzList) {
25
+ protoClassList.push(clazz);
26
+ }
27
+ }
28
+ return protoClassList;
29
+ }
30
+ }
31
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRWdnQ29udHJvbGxlckxvYWRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9saWIvRWdnQ29udHJvbGxlckxvYWRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLElBQUksTUFBTSxXQUFXLENBQUM7QUFFN0IsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUNoQyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFJaEQsTUFBTSxPQUFPLG1CQUFtQjtJQUNiLGFBQWEsQ0FBUztJQUV2QyxZQUFZLGFBQXFCO1FBQy9CLElBQUksQ0FBQyxhQUFhLEdBQUcsYUFBYSxDQUFDO0lBQ3JDLENBQUM7SUFFRCxLQUFLLENBQUMsSUFBSTtRQUNSLE1BQU0sV0FBVyxHQUFHLFVBQVUsQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUM3QyxJQUFJLEtBQWUsQ0FBQztRQUNwQixJQUFJLENBQUM7WUFDSCxNQUFNLGVBQWUsR0FBRyxDQUFDLE1BQU0sTUFBTSxDQUFDLFdBQVcsRUFBRSxFQUFFLEdBQUcsRUFBRSxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUMsQ0FBQztpQkFDN0UsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUM7WUFDcEQsS0FBSyxHQUFHLGVBQWUsQ0FBQztRQUMxQixDQUFDO1FBQUMsTUFBTSxDQUFDO1lBQ1AsS0FBSyxHQUFHLEVBQUUsQ0FBQztZQUNYLGdDQUFnQztRQUNsQyxDQUFDO1FBQ0QsTUFBTSxjQUFjLEdBQXdCLEVBQUUsQ0FBQztRQUMvQyxLQUFLLE1BQU0sSUFBSSxJQUFJLEtBQUssRUFBRSxDQUFDO1lBQ3pCLE1BQU0sYUFBYSxHQUFHLE1BQU0sVUFBVSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUN0RCxLQUFLLE1BQU0sS0FBSyxJQUFJLGFBQWEsRUFBRSxDQUFDO2dCQUNsQyxjQUFjLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQzdCLENBQUM7UUFDSCxDQUFDO1FBQ0QsT0FBTyxjQUFjLENBQUM7SUFDeEIsQ0FBQztDQUNGIn0=
@@ -1,5 +1,5 @@
1
- import { EggPrototype, EggPrototypeLifecycleContext } from '@eggjs/tegg-metadata';
2
- import { LifecycleHook } from '@eggjs/tegg';
1
+ import { type EggPrototype, type EggPrototypeLifecycleContext } from '@eggjs/tegg-metadata';
2
+ import { type LifecycleHook } from '@eggjs/tegg';
3
3
  export declare class EggControllerPrototypeHook implements LifecycleHook<EggPrototypeLifecycleContext, EggPrototype> {
4
4
  postCreate(ctx: EggPrototypeLifecycleContext): Promise<void>;
5
5
  }
@@ -0,0 +1,11 @@
1
+ import {} from '@eggjs/tegg-metadata';
2
+ import { ControllerMetaBuilderFactory, ControllerMetadataUtil, } from '@eggjs/tegg';
3
+ export class EggControllerPrototypeHook {
4
+ async postCreate(ctx) {
5
+ const metadata = ControllerMetaBuilderFactory.build(ctx.clazz);
6
+ if (metadata) {
7
+ ControllerMetadataUtil.setControllerMetadata(ctx.clazz, metadata);
8
+ }
9
+ }
10
+ }
11
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRWdnQ29udHJvbGxlclByb3RvdHlwZUhvb2suanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbGliL0VnZ0NvbnRyb2xsZXJQcm90b3R5cGVIb29rLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBd0QsTUFBTSxzQkFBc0IsQ0FBQztBQUM1RixPQUFPLEVBQ0wsNEJBQTRCLEVBQzVCLHNCQUFzQixHQUV2QixNQUFNLGFBQWEsQ0FBQztBQUVyQixNQUFNLE9BQU8sMEJBQTBCO0lBQ3JDLEtBQUssQ0FBQyxVQUFVLENBQUMsR0FBaUM7UUFDaEQsTUFBTSxRQUFRLEdBQUcsNEJBQTRCLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUMvRCxJQUFJLFFBQVEsRUFBRSxDQUFDO1lBQ2Isc0JBQXNCLENBQUMscUJBQXFCLENBQUMsR0FBRyxDQUFDLEtBQUssRUFBRSxRQUFRLENBQUMsQ0FBQztRQUNwRSxDQUFDO0lBQ0gsQ0FBQztDQUNGIn0=
@@ -1,5 +1,5 @@
1
- import { EggPrototype } from '@eggjs/tegg-metadata';
2
- import { EggContext } from '@eggjs/tegg';
1
+ import { type EggPrototype } from '@eggjs/tegg-metadata';
2
+ import { type EggContext } from '@eggjs/tegg';
3
3
  export type GetRootProtoCallback = (ctx: EggContext) => EggPrototype | undefined;
4
4
  export declare class RootProtoManager {
5
5
  protoMap: Map<string, GetRootProtoCallback[]>;
@@ -0,0 +1,34 @@
1
+ import {} from '@eggjs/tegg-metadata';
2
+ import {} from '@eggjs/tegg';
3
+ import { MapUtil } from '@eggjs/tegg-common-util';
4
+ export class RootProtoManager {
5
+ // <method, GetRootProtoCallback[]>
6
+ protoMap = new Map();
7
+ registerRootProto(method, cb, host) {
8
+ host = host || '';
9
+ const cbList = MapUtil.getOrStore(this.protoMap, method + host, []);
10
+ cbList.push(cb);
11
+ }
12
+ getRootProto(ctx) {
13
+ const hostCbList = this.protoMap.get(ctx.method + ctx.host);
14
+ if (hostCbList) {
15
+ for (const cb of hostCbList) {
16
+ const proto = cb(ctx);
17
+ if (proto) {
18
+ return proto;
19
+ }
20
+ }
21
+ }
22
+ const cbList = this.protoMap.get(ctx.method);
23
+ if (!cbList) {
24
+ return;
25
+ }
26
+ for (const cb of cbList) {
27
+ const proto = cb(ctx);
28
+ if (proto) {
29
+ return proto;
30
+ }
31
+ }
32
+ }
33
+ }
34
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUm9vdFByb3RvTWFuYWdlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9saWIvUm9vdFByb3RvTWFuYWdlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQXFCLE1BQU0sc0JBQXNCLENBQUM7QUFDekQsT0FBTyxFQUFtQixNQUFNLGFBQWEsQ0FBQztBQUM5QyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFJbEQsTUFBTSxPQUFPLGdCQUFnQjtJQUMzQixtQ0FBbUM7SUFDbkMsUUFBUSxHQUF3QyxJQUFJLEdBQUcsRUFBRSxDQUFDO0lBRTFELGlCQUFpQixDQUFDLE1BQWMsRUFBRSxFQUF3QixFQUFFLElBQVk7UUFDdEUsSUFBSSxHQUFHLElBQUksSUFBSSxFQUFFLENBQUM7UUFDbEIsTUFBTSxNQUFNLEdBQUcsT0FBTyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLE1BQU0sR0FBRyxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDcEUsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUNsQixDQUFDO0lBRUQsWUFBWSxDQUFDLEdBQWU7UUFDMUIsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLE1BQU0sR0FBRyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDNUQsSUFBSSxVQUFVLEVBQUUsQ0FBQztZQUNmLEtBQUssTUFBTSxFQUFFLElBQUksVUFBVSxFQUFFLENBQUM7Z0JBQzVCLE1BQU0sS0FBSyxHQUFHLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQztnQkFDdEIsSUFBSSxLQUFLLEVBQUUsQ0FBQztvQkFDVixPQUFPLEtBQUssQ0FBQztnQkFDZixDQUFDO1lBQ0gsQ0FBQztRQUNILENBQUM7UUFFRCxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDN0MsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ1osT0FBTztRQUNULENBQUM7UUFDRCxLQUFLLE1BQU0sRUFBRSxJQUFJLE1BQU0sRUFBRSxDQUFDO1lBQ3hCLE1BQU0sS0FBSyxHQUFHLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUN0QixJQUFJLEtBQUssRUFBRSxDQUFDO2dCQUNWLE9BQU8sS0FBSyxDQUFDO1lBQ2YsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDO0NBQ0YifQ==
@@ -0,0 +1,12 @@
1
+ import { TeggError } from '@eggjs/tegg-metadata';
2
+ var ErrorCodes;
3
+ (function (ErrorCodes) {
4
+ ErrorCodes["ROUTER_CONFLICT"] = "ROUTER_CONFLICT";
5
+ })(ErrorCodes || (ErrorCodes = {}));
6
+ /** 路由冲突错误 */
7
+ export class RouterConflictError extends TeggError {
8
+ constructor(msg) {
9
+ super(msg, ErrorCodes.ROUTER_CONFLICT);
10
+ }
11
+ }
12
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJyb3JzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2xpYi9lcnJvcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBRWpELElBQUssVUFFSjtBQUZELFdBQUssVUFBVTtJQUNiLGlEQUFtQyxDQUFBO0FBQ3JDLENBQUMsRUFGSSxVQUFVLEtBQVYsVUFBVSxRQUVkO0FBRUQsYUFBYTtBQUNiLE1BQU0sT0FBTyxtQkFBb0IsU0FBUSxTQUFTO0lBQ2hELFlBQVksR0FBVztRQUNyQixLQUFLLENBQUMsR0FBRyxFQUFFLFVBQVUsQ0FBQyxlQUFlLENBQUMsQ0FBQztJQUN6QyxDQUFDO0NBQ0YifQ==
@@ -0,0 +1,2 @@
1
+ import { type Next, type EggContext, type HTTPControllerMeta, type HTTPMethodMeta } from '@eggjs/tegg';
2
+ export declare function aclMiddlewareFactory(controllerMeta: HTTPControllerMeta, methodMeta: HTTPMethodMeta): (ctx: EggContext, next: Next) => Promise<void>;
@@ -0,0 +1,33 @@
1
+ import {} from '@eggjs/tegg';
2
+ export function aclMiddlewareFactory(controllerMeta, methodMeta) {
3
+ if (!controllerMeta.hasMethodAcl(methodMeta)) {
4
+ return;
5
+ }
6
+ const code = controllerMeta.getMethodAcl(methodMeta);
7
+ return async function aclMiddleware(ctx, next) {
8
+ try {
9
+ // @ts-expect-error ctx.acl is implemented in extend/context.ts on top level plugin, framework or app
10
+ await ctx.acl(code);
11
+ }
12
+ catch (e) {
13
+ const { redirectUrl, status } = e.data || {};
14
+ if (!redirectUrl) {
15
+ throw e;
16
+ }
17
+ if (ctx.acceptJSON) {
18
+ ctx.body = {
19
+ target: redirectUrl,
20
+ stat: 'deny',
21
+ };
22
+ return;
23
+ }
24
+ if (status) {
25
+ ctx.realStatus = status;
26
+ }
27
+ ctx.redirect(redirectUrl);
28
+ return;
29
+ }
30
+ return next();
31
+ };
32
+ }
33
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQWNsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2xpYi9pbXBsL2h0dHAvQWNsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBNEUsTUFBTSxhQUFhLENBQUM7QUFFdkcsTUFBTSxVQUFVLG9CQUFvQixDQUFDLGNBQWtDLEVBQUUsVUFBMEI7SUFDakcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxZQUFZLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQztRQUM3QyxPQUFPO0lBQ1QsQ0FBQztJQUNELE1BQU0sSUFBSSxHQUFHLGNBQWMsQ0FBQyxZQUFZLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDckQsT0FBTyxLQUFLLFVBQVUsYUFBYSxDQUFDLEdBQWUsRUFBRSxJQUFVO1FBQzdELElBQUksQ0FBQztZQUNILHFHQUFxRztZQUNyRyxNQUFNLEdBQUcsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDdEIsQ0FBQztRQUFDLE9BQU8sQ0FBTSxFQUFFLENBQUM7WUFDaEIsTUFBTSxFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQUUsR0FBRyxDQUFDLENBQUMsSUFBSSxJQUFJLEVBQUUsQ0FBQztZQUM3QyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7Z0JBQ2pCLE1BQU0sQ0FBQyxDQUFDO1lBQ1YsQ0FBQztZQUNELElBQUksR0FBRyxDQUFDLFVBQVUsRUFBRSxDQUFDO2dCQUNuQixHQUFHLENBQUMsSUFBSSxHQUFHO29CQUNULE1BQU0sRUFBRSxXQUFXO29CQUNuQixJQUFJLEVBQUUsTUFBTTtpQkFDYixDQUFDO2dCQUNGLE9BQU87WUFDVCxDQUFDO1lBQ0QsSUFBSSxNQUFNLEVBQUUsQ0FBQztnQkFDWCxHQUFHLENBQUMsVUFBVSxHQUFHLE1BQU0sQ0FBQztZQUMxQixDQUFDO1lBQ0QsR0FBRyxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsQ0FBQztZQUMxQixPQUFPO1FBRVQsQ0FBQztRQUNELE9BQU8sSUFBSSxFQUFFLENBQUM7SUFDaEIsQ0FBQyxDQUFDO0FBQ0osQ0FBQyJ9
@@ -1,9 +1,9 @@
1
1
  import { Application, Router } from 'egg';
2
- import { ControllerMetadata } from '@eggjs/tegg';
3
- import { EggPrototype } from '@eggjs/tegg-metadata';
4
- import { ControllerRegister } from '../../ControllerRegister';
2
+ import { type ControllerMetadata } from '@eggjs/tegg';
3
+ import { type EggPrototype } from '@eggjs/tegg-metadata';
5
4
  import { EggContainerFactory } from '@eggjs/tegg-runtime';
6
- import { RootProtoManager } from '../../RootProtoManager';
5
+ import { type ControllerRegister } from '../../ControllerRegister.ts';
6
+ import { RootProtoManager } from '../../RootProtoManager.ts';
7
7
  export declare class HTTPControllerRegister implements ControllerRegister {
8
8
  static instance?: HTTPControllerRegister;
9
9
  private readonly router;
@@ -0,0 +1,64 @@
1
+ import assert from 'node:assert/strict';
2
+ import { Application, Router } from 'egg';
3
+ import { CONTROLLER_META_DATA, ControllerType, HTTPControllerMeta, HTTPMethodMeta, } from '@eggjs/tegg';
4
+ import {} from '@eggjs/tegg-metadata';
5
+ import { EggContainerFactory } from '@eggjs/tegg-runtime';
6
+ import {} from "../../ControllerRegister.js";
7
+ import { HTTPMethodRegister } from "./HTTPMethodRegister.js";
8
+ import { RootProtoManager } from "../../RootProtoManager.js";
9
+ export class HTTPControllerRegister {
10
+ static instance;
11
+ router;
12
+ checkRouters;
13
+ eggContainerFactory;
14
+ controllerProtos = [];
15
+ static create(proto, controllerMeta, app) {
16
+ assert(controllerMeta.type === ControllerType.HTTP, 'controller meta type is not HTTP');
17
+ if (!HTTPControllerRegister.instance) {
18
+ HTTPControllerRegister.instance = new HTTPControllerRegister(app.router, app.eggContainerFactory);
19
+ }
20
+ HTTPControllerRegister.instance.controllerProtos.push(proto);
21
+ return HTTPControllerRegister.instance;
22
+ }
23
+ constructor(router, eggContainerFactory) {
24
+ this.router = router;
25
+ this.checkRouters = new Map();
26
+ this.checkRouters.set('default', router);
27
+ this.eggContainerFactory = eggContainerFactory;
28
+ }
29
+ register() {
30
+ // do noting
31
+ return Promise.resolve();
32
+ }
33
+ static clean() {
34
+ if (this.instance) {
35
+ this.instance.controllerProtos = [];
36
+ this.instance.checkRouters.clear();
37
+ }
38
+ this.instance = undefined;
39
+ }
40
+ doRegister(rootProtoManager) {
41
+ const methodMap = new Map();
42
+ for (const proto of this.controllerProtos) {
43
+ const metadata = proto.getMetaData(CONTROLLER_META_DATA);
44
+ for (const method of metadata.methods) {
45
+ methodMap.set(method, proto);
46
+ }
47
+ }
48
+ const allMethods = Array.from(methodMap.keys())
49
+ .sort((a, b) => b.priority - a.priority);
50
+ for (const method of allMethods) {
51
+ const controllerProto = methodMap.get(method);
52
+ const controllerMeta = controllerProto.getMetaData(CONTROLLER_META_DATA);
53
+ const methodRegister = new HTTPMethodRegister(controllerProto, controllerMeta, method, this.router, this.checkRouters, this.eggContainerFactory);
54
+ methodRegister.checkDuplicate();
55
+ }
56
+ for (const method of allMethods) {
57
+ const controllerProto = methodMap.get(method);
58
+ const controllerMeta = controllerProto.getMetaData(CONTROLLER_META_DATA);
59
+ const methodRegister = new HTTPMethodRegister(controllerProto, controllerMeta, method, this.router, this.checkRouters, this.eggContainerFactory);
60
+ methodRegister.register(rootProtoManager);
61
+ }
62
+ }
63
+ }
64
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSFRUUENvbnRyb2xsZXJSZWdpc3Rlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvaW1wbC9odHRwL0hUVFBDb250cm9sbGVyUmVnaXN0ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxNQUFNLE1BQU0sb0JBQW9CLENBQUM7QUFFeEMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQUUsTUFBTSxLQUFLLENBQUM7QUFDMUMsT0FBTyxFQUNMLG9CQUFvQixFQUVwQixjQUFjLEVBQ2Qsa0JBQWtCLEVBQ2xCLGNBQWMsR0FDZixNQUFNLGFBQWEsQ0FBQztBQUNyQixPQUFPLEVBQXFCLE1BQU0sc0JBQXNCLENBQUM7QUFDekQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFMUQsT0FBTyxFQUEyQixNQUFNLDZCQUE2QixDQUFDO0FBQ3RFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzdELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBRTdELE1BQU0sT0FBTyxzQkFBc0I7SUFDakMsTUFBTSxDQUFDLFFBQVEsQ0FBMEI7SUFFeEIsTUFBTSxDQUFTO0lBQ2YsWUFBWSxDQUFzQjtJQUNsQyxtQkFBbUIsQ0FBNkI7SUFDekQsZ0JBQWdCLEdBQW1CLEVBQUUsQ0FBQztJQUU5QyxNQUFNLENBQUMsTUFBTSxDQUFDLEtBQW1CLEVBQUUsY0FBa0MsRUFBRSxHQUFnQjtRQUNyRixNQUFNLENBQUMsY0FBYyxDQUFDLElBQUksS0FBSyxjQUFjLENBQUMsSUFBSSxFQUFFLGtDQUFrQyxDQUFDLENBQUM7UUFDeEYsSUFBSSxDQUFDLHNCQUFzQixDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ3JDLHNCQUFzQixDQUFDLFFBQVEsR0FBRyxJQUFJLHNCQUFzQixDQUFDLEdBQUcsQ0FBQyxNQUFNLEVBQUUsR0FBRyxDQUFDLG1CQUFt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
@@ -1,8 +1,8 @@
1
1
  import { Router } from 'egg';
2
2
  import { HTTPControllerMeta, HTTPMethodMeta } from '@eggjs/tegg';
3
3
  import { EggContainerFactory } from '@eggjs/tegg-runtime';
4
- import { EggPrototype } from '@eggjs/tegg-metadata';
5
- import { RootProtoManager } from '../../RootProtoManager';
4
+ import { type EggPrototype } from '@eggjs/tegg-metadata';
5
+ import { RootProtoManager } from '../../RootProtoManager.ts';
6
6
  export declare class HTTPMethodRegister {
7
7
  private readonly router;
8
8
  private readonly checkRouters;
@@ -0,0 +1,165 @@
1
+ import assert from 'node:assert';
2
+ import { Context, Router } from 'egg';
3
+ import { HTTPControllerMeta, HTTPMethodMeta, HTTPParamType, PathParamMeta, QueriesParamMeta, QueryParamMeta, HTTPCookies, } from '@eggjs/tegg';
4
+ import { EggContainerFactory } from '@eggjs/tegg-runtime';
5
+ import {} from '@eggjs/tegg-metadata';
6
+ import pathToRegexp from 'path-to-regexp';
7
+ import { EggRouter } from '@eggjs/router';
8
+ import { FrameworkErrorFormater } from 'egg-errors';
9
+ import { RootProtoManager } from "../../RootProtoManager.js";
10
+ import { aclMiddlewareFactory } from "./Acl.js";
11
+ import { HTTPRequest } from "./Req.js";
12
+ import { RouterConflictError } from "../../errors.js";
13
+ const noop = () => {
14
+ // ...
15
+ };
16
+ export class HTTPMethodRegister {
17
+ router;
18
+ checkRouters;
19
+ controllerMeta;
20
+ methodMeta;
21
+ proto;
22
+ eggContainerFactory;
23
+ constructor(proto, controllerMeta, methodMeta, router, checkRouters, eggContainerFactory) {
24
+ this.proto = proto;
25
+ this.controllerMeta = controllerMeta;
26
+ this.router = router;
27
+ this.methodMeta = methodMeta;
28
+ this.checkRouters = checkRouters;
29
+ this.eggContainerFactory = eggContainerFactory;
30
+ }
31
+ createHandler(methodMeta, host) {
32
+ const argsLength = methodMeta.paramMap.size;
33
+ const hasContext = methodMeta.contextParamIndex !== undefined;
34
+ const contextIndex = methodMeta.contextParamIndex;
35
+ const methodArgsLength = argsLength + (hasContext ? 1 : 0);
36
+ // eslint-disable-next-line
37
+ const self = this;
38
+ return async function (ctx, next) {
39
+ // if hosts is not empty and host is not matched, not execute
40
+ if (host && host !== ctx.host) {
41
+ return await next();
42
+ }
43
+ // HTTP decorator core implement
44
+ // use controller metadata map http request to function arguments
45
+ const eggObj = await self.eggContainerFactory.getOrCreateEggObject(self.proto, self.proto.name);
46
+ const realObj = eggObj.obj;
47
+ const realMethod = realObj[methodMeta.name];
48
+ const args = Array.from({ length: methodArgsLength });
49
+ if (hasContext) {
50
+ args[contextIndex] = ctx;
51
+ }
52
+ for (const [index, param] of methodMeta.paramMap) {
53
+ switch (param.type) {
54
+ case HTTPParamType.BODY: {
55
+ args[index] = ctx.request.body;
56
+ break;
57
+ }
58
+ case HTTPParamType.PARAM: {
59
+ const pathParam = param;
60
+ args[index] = ctx.params[pathParam.name];
61
+ break;
62
+ }
63
+ case HTTPParamType.QUERY: {
64
+ const queryParam = param;
65
+ args[index] = ctx.query[queryParam.name];
66
+ break;
67
+ }
68
+ case HTTPParamType.QUERIES: {
69
+ const queryParam = param;
70
+ args[index] = ctx.queries[queryParam.name];
71
+ break;
72
+ }
73
+ case HTTPParamType.HEADERS: {
74
+ args[index] = ctx.request.headers;
75
+ break;
76
+ }
77
+ case HTTPParamType.REQUEST: {
78
+ args[index] = new HTTPRequest(ctx);
79
+ break;
80
+ }
81
+ case HTTPParamType.COOKIES: {
82
+ args[index] = new HTTPCookies(ctx, []);
83
+ break;
84
+ }
85
+ default:
86
+ assert.fail('never arrive');
87
+ }
88
+ }
89
+ const body = await Reflect.apply(realMethod, realObj, args);
90
+ // https://github.com/koajs/koa/blob/master/lib/response.js#L88
91
+ // ctx.status is set
92
+ const explicitStatus = ctx.response._explicitStatus;
93
+ if (
94
+ // has body
95
+ (body !== null && body !== undefined) ||
96
+ // status is not set and has no body
97
+ // code should by 204
98
+ // https://github.com/koajs/koa/blob/master/lib/response.js#L140
99
+ !explicitStatus) {
100
+ ctx.body = body;
101
+ }
102
+ };
103
+ }
104
+ checkDuplicate() {
105
+ // 1. check duplicate with egg controller
106
+ this.checkDuplicateInRouter(this.router);
107
+ // 2. check duplicate with host tegg controller
108
+ let hostRouter;
109
+ const hosts = this.controllerMeta.getMethodHosts(this.methodMeta) || [];
110
+ hosts.forEach(h => {
111
+ if (h) {
112
+ hostRouter = this.checkRouters.get(h);
113
+ if (!hostRouter) {
114
+ hostRouter = new EggRouter({ sensitive: true }, this.router.app);
115
+ this.checkRouters.set(h, hostRouter);
116
+ }
117
+ }
118
+ if (hostRouter) {
119
+ this.checkDuplicateInRouter(hostRouter);
120
+ this.registerToRouter(hostRouter);
121
+ }
122
+ });
123
+ }
124
+ registerToRouter(router) {
125
+ const routerFunc = router[this.methodMeta.method.toLowerCase()];
126
+ const methodRealPath = this.controllerMeta.getMethodRealPath(this.methodMeta);
127
+ const methodName = this.controllerMeta.getMethodName(this.methodMeta);
128
+ Reflect.apply(routerFunc, router, [methodName, methodRealPath, noop]);
129
+ }
130
+ checkDuplicateInRouter(router) {
131
+ const methodRealPath = this.controllerMeta.getMethodRealPath(this.methodMeta);
132
+ const matched = router.match(methodRealPath, this.methodMeta.method);
133
+ const methodName = this.controllerMeta.getMethodName(this.methodMeta);
134
+ if (matched.route) {
135
+ const [layer] = matched.path;
136
+ const err = new RouterConflictError(`register http controller ${methodName} failed, ${this.methodMeta.method} ${methodRealPath} is conflict with exists rule ${layer.path}`);
137
+ throw FrameworkErrorFormater.format(err);
138
+ }
139
+ }
140
+ register(rootProtoManager) {
141
+ const methodRealPath = this.controllerMeta.getMethodRealPath(this.methodMeta);
142
+ const methodName = this.controllerMeta.getMethodName(this.methodMeta);
143
+ const routerFunc = this.router[this.methodMeta.method.toLowerCase()];
144
+ const methodMiddlewares = this.controllerMeta.getMethodMiddlewares(this.methodMeta);
145
+ const aclMiddleware = aclMiddlewareFactory(this.controllerMeta, this.methodMeta);
146
+ if (aclMiddleware) {
147
+ methodMiddlewares.push(aclMiddleware);
148
+ }
149
+ const hosts = this.controllerMeta.getMethodHosts(this.methodMeta) || [undefined];
150
+ hosts.forEach(h => {
151
+ const handler = this.createHandler(this.methodMeta, h);
152
+ Reflect.apply(routerFunc, this.router, [methodName, methodRealPath, ...methodMiddlewares, handler]);
153
+ // https://github.com/eggjs/egg-core/blob/0af6178022e7734c4a8b17bb56d592b315207883/lib/egg.js#L279
154
+ const regExp = pathToRegexp(methodRealPath, {
155
+ sensitive: true,
156
+ });
157
+ rootProtoManager.registerRootProto(this.methodMeta.method, (ctx) => {
158
+ if (regExp.test(ctx.path)) {
159
+ return this.proto;
160
+ }
161
+ }, h || '');
162
+ });
163
+ }
164
+ }
165
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSFRUUE1ldGhvZFJlZ2lzdGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2xpYi9pbXBsL2h0dHAvSFRUUE1ldGhvZFJlZ2lzdGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sTUFBTSxNQUFNLGFBQWEsQ0FBQztBQUVqQyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLEtBQUssQ0FBQztBQUN0QyxPQUFPLEVBRUwsa0JBQWtCLEVBQ2xCLGNBQWMsRUFDZCxhQUFhLEVBRWIsYUFBYSxFQUNiLGdCQUFnQixFQUNoQixjQUFjLEVBQ2QsV0FBVyxHQUNaLE1BQU0sYUFBYSxDQUFDO0FBQ3JCLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQzFELE9BQU8sRUFBcUIsTUFBTSxzQkFBc0IsQ0FBQztBQUN6RCxPQUFPLFlBQVksTUFBTSxnQkFBZ0IsQ0FBQztBQUMxQyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFDLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUVwRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDaEQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUN2QyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUV0RCxNQUFNLElBQUksR0FBRyxHQUFHLEVBQUU7SUFDaEIsTUFBTTtBQUNSLENBQUMsQ0FBQztBQUVGLE1BQU0sT0FBTyxrQkFBa0I7SUFDWixNQUFNLENBQVM7SUFDZixZQUFZLENBQXNCO0lBQ2xDLGNBQWMsQ0FBcUI7SUFDbkMsVUFBVSxDQUFpQjtJQUMzQixLQUFLLENBQWU7SUFDcEIsbUJBQW1CLENBQTZCO0lBRWpFLFlBQ0UsS0FB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
@@ -0,0 +1,13 @@
1
+ import { HTTPRequest as BaseHTTPRequest } from '@eggjs/tegg';
2
+ export class HTTPRequest extends BaseHTTPRequest {
3
+ constructor(ctx) {
4
+ const request = ctx.request;
5
+ // href: https://github.com/eggjs/koa/blob/master/src/request.ts#L90C1-L98C4
6
+ super(request.href, {
7
+ method: request.method,
8
+ headers: request.headers,
9
+ body: ctx.request.rawBody,
10
+ });
11
+ }
12
+ }
13
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUmVxLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2xpYi9pbXBsL2h0dHAvUmVxLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxXQUFXLElBQUksZUFBZSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRTdELE1BQU0sT0FBTyxXQUFZLFNBQVEsZUFBZTtJQUM5QyxZQUFZLEdBQVk7UUFDdEIsTUFBTSxPQUFPLEdBQUcsR0FBRyxDQUFDLE9BQU8sQ0FBQztRQUM1Qiw0RUFBNEU7UUFDNUUsS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUU7WUFDbEIsTUFBTSxFQUFFLE9BQU8sQ0FBQyxNQUFNO1lBQ3RCLE9BQU8sRUFBRSxPQUFPLENBQUMsT0FBaUM7WUFDbEQsSUFBSSxFQUFHLEdBQUcsQ0FBQyxPQUFlLENBQUMsT0FBTztTQUNuQyxDQUFDLENBQUM7SUFDTCxDQUFDO0NBQ0YifQ==
@@ -0,0 +1,2 @@
1
+ import '@eggjs/tegg-plugin/types';
2
+ import './app.ts';
package/dist/types.js ADDED
@@ -0,0 +1,3 @@
1
+ import '@eggjs/tegg-plugin/types';
2
+ import "./app.js";
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTywwQkFBMEIsQ0FBQztBQUNsQyxPQUFPLFVBQVUsQ0FBQyJ9
package/package.json CHANGED
@@ -7,7 +7,7 @@
7
7
  "tegg"
8
8
  ]
9
9
  },
10
- "version": "3.62.0",
10
+ "version": "4.0.0-beta.10",
11
11
  "description": "controller decorator for egg",
12
12
  "keywords": [
13
13
  "egg",
@@ -17,25 +17,32 @@
17
17
  "tegg"
18
18
  ],
19
19
  "files": [
20
- "app.js",
21
- "app.d.ts",
22
- "config/**/*.js",
23
- "config/**/*.d.ts",
24
- "lib/**/*.js",
25
- "lib/**/*.d.ts",
26
- "app/**/*.js",
27
- "app/**/*.d.ts",
28
- "typings/*.d.ts"
20
+ "dist"
29
21
  ],
30
- "types": "typings/index.d.ts",
31
- "scripts": {
32
- "test": "cross-env NODE_ENV=test mocha",
33
- "clean": "tsc -b --clean",
34
- "tsc": "npm run clean && tsc -p ./tsconfig.json",
35
- "tsc:pub": "npm run clean && tsc -p ./tsconfig.pub.json",
36
- "prepublishOnly": "npm run tsc:pub"
22
+ "type": "module",
23
+ "exports": {
24
+ ".": "./dist/index.js",
25
+ "./app": "./dist/app.js",
26
+ "./app/middleware/tegg_root_proto": "./dist/app/middleware/tegg_root_proto.js",
27
+ "./lib/AppLoadUnitControllerHook": "./dist/lib/AppLoadUnitControllerHook.js",
28
+ "./lib/ControllerLoadUnit": "./dist/lib/ControllerLoadUnit.js",
29
+ "./lib/ControllerLoadUnitHandler": "./dist/lib/ControllerLoadUnitHandler.js",
30
+ "./lib/ControllerLoadUnitInstance": "./dist/lib/ControllerLoadUnitInstance.js",
31
+ "./lib/ControllerMetadataManager": "./dist/lib/ControllerMetadataManager.js",
32
+ "./lib/ControllerRegister": "./dist/lib/ControllerRegister.js",
33
+ "./lib/ControllerRegisterFactory": "./dist/lib/ControllerRegisterFactory.js",
34
+ "./lib/EggControllerLoader": "./dist/lib/EggControllerLoader.js",
35
+ "./lib/EggControllerPrototypeHook": "./dist/lib/EggControllerPrototypeHook.js",
36
+ "./lib/errors": "./dist/lib/errors.js",
37
+ "./lib/impl/http/Acl": "./dist/lib/impl/http/Acl.js",
38
+ "./lib/impl/http/HTTPControllerRegister": "./dist/lib/impl/http/HTTPControllerRegister.js",
39
+ "./lib/impl/http/HTTPMethodRegister": "./dist/lib/impl/http/HTTPMethodRegister.js",
40
+ "./lib/impl/http/Req": "./dist/lib/impl/http/Req.js",
41
+ "./lib/RootProtoManager": "./dist/lib/RootProtoManager.js",
42
+ "./types": "./dist/types.js",
43
+ "./package.json": "./package.json"
37
44
  },
38
- "homepage": "https://github.com/eggjs/tegg",
45
+ "homepage": "https://github.com/eggjs/tegg/tree/next/plugin/controller",
39
46
  "bugs": {
40
47
  "url": "https://github.com/eggjs/tegg/issues"
41
48
  },
@@ -45,44 +52,47 @@
45
52
  "directory": "plugin/controller"
46
53
  },
47
54
  "engines": {
48
- "node": ">=14.0.0"
55
+ "node": ">=22.18.0"
49
56
  },
50
57
  "dependencies": {
51
- "@eggjs/egg-module-common": "^3.62.0",
52
- "@eggjs/mcp-proxy": "^3.62.0",
53
- "@eggjs/router": "^2.0.1",
54
- "@eggjs/tegg": "^3.62.0",
55
- "@eggjs/tegg-common-util": "^3.62.0",
56
- "@eggjs/tegg-loader": "^3.62.0",
57
- "@eggjs/tegg-metadata": "^3.62.0",
58
- "@eggjs/tegg-runtime": "^3.62.0",
59
- "@modelcontextprotocol/sdk": "^1.10.0",
60
- "await-event": "^2.1.0",
61
- "content-type": "^1.0.5",
58
+ "@eggjs/router": "beta",
62
59
  "egg-errors": "^2.3.0",
63
- "globby": "^10.0.2",
64
- "koa-compose": "^3.2.1",
65
- "path-to-regexp": "^1.8.0",
66
- "raw-body": "^2.5.2",
67
- "sdk-base": "^4.2.0",
68
- "zod": "^3.24.4"
60
+ "globby": "^14.1.0",
61
+ "path-to-regexp": "^1.9.0",
62
+ "sdk-base": "^5.0.1",
63
+ "@eggjs/egg-module-common": "4.0.0-beta.10",
64
+ "@eggjs/tegg": "4.0.0-beta.10",
65
+ "@eggjs/tegg-loader": "4.0.0-beta.10",
66
+ "@eggjs/tegg-common-util": "4.0.0-beta.10",
67
+ "@eggjs/tegg-metadata": "4.0.0-beta.10",
68
+ "@eggjs/tegg-runtime": "4.0.0-beta.10",
69
+ "@eggjs/tegg-types": "4.0.0-beta.10"
70
+ },
71
+ "peerDependencies": {
72
+ "egg": "beta",
73
+ "@eggjs/tegg-plugin": "4.0.0-beta.10"
69
74
  },
70
75
  "devDependencies": {
71
- "@eggjs/module-test-util": "^3.62.0",
72
- "@eggjs/tegg-config": "^3.62.0",
73
- "@eggjs/tegg-plugin": "^3.62.0",
74
- "@types/mocha": "^10.0.1",
75
- "@types/node": "^20.2.4",
76
- "cross-env": "^7.0.3",
77
- "egg": "^3.9.1",
78
- "egg-mock": "^5.5.0",
79
- "egg-tracer": "^2.0.0",
80
- "mocha": "^10.2.0",
81
- "ts-node": "^10.9.1",
82
- "typescript": "^5.0.4"
76
+ "@eggjs/mock": "beta",
77
+ "@eggjs/tracer": "beta",
78
+ "@types/node": "^22.10.5",
79
+ "egg": "beta",
80
+ "typescript": "^5.9.3",
81
+ "tsdown": "^0.15.6",
82
+ "unplugin-unused": "^0.5.3",
83
+ "@eggjs/module-test-util": "4.0.0-beta.4",
84
+ "@eggjs/tegg-config": "4.0.0-beta.10",
85
+ "@eggjs/tegg-plugin": "4.0.0-beta.10"
83
86
  },
84
87
  "publishConfig": {
85
88
  "access": "public"
86
89
  },
87
- "gitHead": "b0c5d2dbae617d227909f338013b1e6310054270"
88
- }
90
+ "main": "./dist/index.js",
91
+ "module": "./dist/index.js",
92
+ "types": "./dist/index.d.ts",
93
+ "scripts": {
94
+ "clean": "rimraf dist",
95
+ "build": "tsdown && rimraf dist && tsc -b --clean && tsc",
96
+ "typecheck": "tsc --noEmit"
97
+ }
98
+ }
@@ -1,3 +0,0 @@
1
- import { EggContext, Next } from '@eggjs/tegg';
2
- declare const _default: () => (ctx: EggContext, next: Next) => Promise<void>;
3
- export default _default;