@dangao/bun-server 0.1.3 → 0.1.4

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 (68) hide show
  1. package/dist/auth/controller.d.ts +35 -0
  2. package/dist/auth/controller.d.ts.map +1 -0
  3. package/dist/auth/decorators.d.ts +38 -0
  4. package/dist/auth/decorators.d.ts.map +1 -0
  5. package/dist/auth/index.d.ts +6 -0
  6. package/dist/auth/index.d.ts.map +1 -0
  7. package/dist/auth/jwt.d.ts +43 -0
  8. package/dist/auth/jwt.d.ts.map +1 -0
  9. package/dist/auth/oauth2.d.ts +45 -0
  10. package/dist/auth/oauth2.d.ts.map +1 -0
  11. package/dist/auth/types.d.ts +238 -0
  12. package/dist/auth/types.d.ts.map +1 -0
  13. package/dist/controller/controller.d.ts +5 -0
  14. package/dist/controller/controller.d.ts.map +1 -1
  15. package/dist/core/application.d.ts.map +1 -1
  16. package/dist/core/context.d.ts.map +1 -1
  17. package/dist/di/module-registry.d.ts +14 -2
  18. package/dist/di/module-registry.d.ts.map +1 -1
  19. package/dist/di/module.d.ts +12 -1
  20. package/dist/di/module.d.ts.map +1 -1
  21. package/dist/extensions/index.d.ts +1 -0
  22. package/dist/extensions/index.d.ts.map +1 -1
  23. package/dist/extensions/logger-module.d.ts +30 -0
  24. package/dist/extensions/logger-module.d.ts.map +1 -0
  25. package/dist/index.d.ts +4 -1
  26. package/dist/index.d.ts.map +1 -1
  27. package/dist/index.js +1154 -12
  28. package/dist/router/registry.d.ts +4 -1
  29. package/dist/router/registry.d.ts.map +1 -1
  30. package/dist/router/route.d.ts +9 -1
  31. package/dist/router/route.d.ts.map +1 -1
  32. package/dist/router/router.d.ts +8 -1
  33. package/dist/router/router.d.ts.map +1 -1
  34. package/dist/security/access-decision-manager.d.ts +14 -0
  35. package/dist/security/access-decision-manager.d.ts.map +1 -0
  36. package/dist/security/authentication-manager.d.ts +22 -0
  37. package/dist/security/authentication-manager.d.ts.map +1 -0
  38. package/dist/security/context.d.ts +46 -0
  39. package/dist/security/context.d.ts.map +1 -0
  40. package/dist/security/filter.d.ts +27 -0
  41. package/dist/security/filter.d.ts.map +1 -0
  42. package/dist/security/index.d.ts +8 -0
  43. package/dist/security/index.d.ts.map +1 -0
  44. package/dist/security/providers/index.d.ts +3 -0
  45. package/dist/security/providers/index.d.ts.map +1 -0
  46. package/dist/security/providers/jwt-provider.d.ts +19 -0
  47. package/dist/security/providers/jwt-provider.d.ts.map +1 -0
  48. package/dist/security/providers/oauth2-provider.d.ts +19 -0
  49. package/dist/security/providers/oauth2-provider.d.ts.map +1 -0
  50. package/dist/security/security-module.d.ts +50 -0
  51. package/dist/security/security-module.d.ts.map +1 -0
  52. package/dist/security/types.d.ts +152 -0
  53. package/dist/security/types.d.ts.map +1 -0
  54. package/dist/swagger/decorators.d.ts +56 -0
  55. package/dist/swagger/decorators.d.ts.map +1 -0
  56. package/dist/swagger/generator.d.ts +17 -0
  57. package/dist/swagger/generator.d.ts.map +1 -0
  58. package/dist/swagger/index.d.ts +7 -0
  59. package/dist/swagger/index.d.ts.map +1 -0
  60. package/dist/swagger/swagger-extension.d.ts +25 -0
  61. package/dist/swagger/swagger-extension.d.ts.map +1 -0
  62. package/dist/swagger/swagger-module.d.ts +37 -0
  63. package/dist/swagger/swagger-module.d.ts.map +1 -0
  64. package/dist/swagger/types.d.ts +176 -0
  65. package/dist/swagger/types.d.ts.map +1 -0
  66. package/dist/swagger/ui.d.ts +13 -0
  67. package/dist/swagger/ui.d.ts.map +1 -0
  68. package/package.json +1 -1
@@ -19,8 +19,11 @@ export declare class RouteRegistry {
19
19
  * @param method - HTTP 方法
20
20
  * @param path - 路由路径
21
21
  * @param handler - 路由处理器
22
+ * @param middlewares - 中间件列表
23
+ * @param controllerClass - 控制器类(可选)
24
+ * @param methodName - 方法名(可选)
22
25
  */
23
- register(method: HttpMethod, path: string, handler: RouteHandler, middlewares?: Middleware[]): void;
26
+ register(method: HttpMethod, path: string, handler: RouteHandler, middlewares?: Middleware[], controllerClass?: new (...args: unknown[]) => unknown, methodName?: string): void;
24
27
  /**
25
28
  * 注册 GET 路由
26
29
  */
@@ -1 +1 @@
1
- {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/router/registry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACxD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAEhD;;;GAGG;AACH,qBAAa,aAAa;IACxB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAgB;IACvC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAEhC,OAAO;IAIP;;;OAGG;WACW,WAAW,IAAI,aAAa;IAO1C;;;;;OAKG;IACI,QAAQ,CACb,MAAM,EAAE,UAAU,EAClB,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,YAAY,EACrB,WAAW,GAAE,UAAU,EAAO,GAC7B,IAAI;IAIP;;OAEG;IACI,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,EAAE,WAAW,GAAE,UAAU,EAAO,GAAG,IAAI;IAIrF;;OAEG;IACI,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,EAAE,WAAW,GAAE,UAAU,EAAO,GAAG,IAAI;IAItF;;OAEG;IACI,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,EAAE,WAAW,GAAE,UAAU,EAAO,GAAG,IAAI;IAIrF;;OAEG;IACI,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,EAAE,WAAW,GAAE,UAAU,EAAO,GAAG,IAAI;IAIxF;;OAEG;IACI,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,EAAE,WAAW,GAAE,UAAU,EAAO,GAAG,IAAI;IAIvF;;;OAGG;IACI,SAAS,IAAI,MAAM;IAI1B;;OAEG;IACI,KAAK,IAAI,IAAI;CAGrB"}
1
+ {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/router/registry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACxD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAEhD;;;GAGG;AACH,qBAAa,aAAa;IACxB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAgB;IACvC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAEhC,OAAO;IAIP;;;OAGG;WACW,WAAW,IAAI,aAAa;IAO1C;;;;;;;;OAQG;IACI,QAAQ,CACb,MAAM,EAAE,UAAU,EAClB,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,YAAY,EACrB,WAAW,GAAE,UAAU,EAAO,EAC9B,eAAe,CAAC,EAAE,KAAK,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,OAAO,EACrD,UAAU,CAAC,EAAE,MAAM,GAClB,IAAI;IAIP;;OAEG;IACI,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,EAAE,WAAW,GAAE,UAAU,EAAO,GAAG,IAAI;IAIrF;;OAEG;IACI,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,EAAE,WAAW,GAAE,UAAU,EAAO,GAAG,IAAI;IAItF;;OAEG;IACI,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,EAAE,WAAW,GAAE,UAAU,EAAO,GAAG,IAAI;IAIrF;;OAEG;IACI,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,EAAE,WAAW,GAAE,UAAU,EAAO,GAAG,IAAI;IAIxF;;OAEG;IACI,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,EAAE,WAAW,GAAE,UAAU,EAAO,GAAG,IAAI;IAIvF;;;OAGG;IACI,SAAS,IAAI,MAAM;IAI1B;;OAEG;IACI,KAAK,IAAI,IAAI;CAGrB"}
@@ -18,6 +18,14 @@ export declare class Route {
18
18
  * 路由处理器
19
19
  */
20
20
  readonly handler: RouteHandler;
21
+ /**
22
+ * 控制器类(可选,用于控制器路由)
23
+ */
24
+ readonly controllerClass?: new (...args: unknown[]) => unknown;
25
+ /**
26
+ * 方法名(可选,用于控制器路由)
27
+ */
28
+ readonly methodName?: string;
21
29
  /**
22
30
  * 路径模式(用于匹配)
23
31
  */
@@ -29,7 +37,7 @@ export declare class Route {
29
37
  private readonly middlewarePipeline;
30
38
  private readonly staticKey?;
31
39
  readonly isStatic: boolean;
32
- constructor(method: HttpMethod, path: string, handler: RouteHandler, middlewares?: Middleware[]);
40
+ constructor(method: HttpMethod, path: string, handler: RouteHandler, middlewares?: Middleware[], controllerClass?: new (...args: unknown[]) => unknown, methodName?: string);
33
41
  /**
34
42
  * 解析路径,生成匹配模式和参数名列表
35
43
  * @param path - 路由路径
@@ -1 +1 @@
1
- {"version":3,"file":"route.d.ts","sourceRoot":"","sources":["../../src/router/route.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAEpE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAEhD;;;GAGG;AACH,qBAAa,KAAK;IAChB;;OAEG;IACH,SAAgB,MAAM,EAAE,UAAU,CAAC;IAEnC;;OAEG;IACH,SAAgB,IAAI,EAAE,MAAM,CAAC;IAE7B;;OAEG;IACH,SAAgB,OAAO,EAAE,YAAY,CAAC;IAEtC;;OAEG;IACH,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IAEjC;;OAEG;IACH,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAW;IAEtC,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAA4B;IAC/D,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAS;IACpC,SAAgB,QAAQ,EAAE,OAAO,CAAC;gBAGhC,MAAM,EAAE,UAAU,EAClB,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,YAAY,EACrB,WAAW,GAAE,UAAU,EAAO;IAiBhC;;;;OAIG;IACH,OAAO,CAAC,SAAS;IAajB;;;;;OAKG;IACI,KAAK,CAAC,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,GAAG,UAAU;IAqB1D;;;;OAIG;IACU,OAAO,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC;IAQzD;;OAEG;IACI,YAAY,IAAI,MAAM,GAAG,SAAS;CAG1C"}
1
+ {"version":3,"file":"route.d.ts","sourceRoot":"","sources":["../../src/router/route.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAEpE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAEhD;;;GAGG;AACH,qBAAa,KAAK;IAChB;;OAEG;IACH,SAAgB,MAAM,EAAE,UAAU,CAAC;IAEnC;;OAEG;IACH,SAAgB,IAAI,EAAE,MAAM,CAAC;IAE7B;;OAEG;IACH,SAAgB,OAAO,EAAE,YAAY,CAAC;IAEtC;;OAEG;IACH,SAAgB,eAAe,CAAC,EAAE,KAAK,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,OAAO,CAAC;IAEtE;;OAEG;IACH,SAAgB,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpC;;OAEG;IACH,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IAEjC;;OAEG;IACH,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAW;IAEtC,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAA4B;IAC/D,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAS;IACpC,SAAgB,QAAQ,EAAE,OAAO,CAAC;gBAGhC,MAAM,EAAE,UAAU,EAClB,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,YAAY,EACrB,WAAW,GAAE,UAAU,EAAO,EAC9B,eAAe,CAAC,EAAE,KAAK,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,OAAO,EACrD,UAAU,CAAC,EAAE,MAAM;IAmBrB;;;;OAIG;IACH,OAAO,CAAC,SAAS;IAajB;;;;;OAKG;IACI,KAAK,CAAC,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,GAAG,UAAU;IAqB1D;;;;OAIG;IACU,OAAO,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC;IAQzD;;OAEG;IACI,YAAY,IAAI,MAAM,GAAG,SAAS;CAG1C"}
@@ -13,13 +13,20 @@ export declare class Router {
13
13
  private readonly routes;
14
14
  private readonly staticRoutes;
15
15
  private readonly dynamicRoutes;
16
+ /**
17
+ * 规范化路径(移除尾部斜杠,除非是根路径)
18
+ */
19
+ private normalizePath;
16
20
  /**
17
21
  * 注册路由
18
22
  * @param method - HTTP 方法
19
23
  * @param path - 路由路径
20
24
  * @param handler - 路由处理器
25
+ * @param middlewares - 中间件列表
26
+ * @param controllerClass - 控制器类(可选)
27
+ * @param methodName - 方法名(可选)
21
28
  */
22
- register(method: HttpMethod, path: string, handler: RouteHandler, middlewares?: Middleware[]): void;
29
+ register(method: HttpMethod, path: string, handler: RouteHandler, middlewares?: Middleware[], controllerClass?: new (...args: unknown[]) => unknown, methodName?: string): void;
23
30
  /**
24
31
  * 注册 GET 路由
25
32
  * @param path - 路由路径
@@ -1 +1 @@
1
- {"version":3,"file":"router.d.ts","sourceRoot":"","sources":["../../src/router/router.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACxD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAEhD;;;GAGG;AACH,qBAAa,MAAM;IACjB;;OAEG;IACH,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAe;IACtC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAA4B;IACzD,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAe;IAE7C;;;;;OAKG;IACI,QAAQ,CACb,MAAM,EAAE,UAAU,EAClB,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,YAAY,EACrB,WAAW,GAAE,UAAU,EAAO,GAC7B,IAAI;IAWP;;;;OAIG;IACI,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,EAAE,WAAW,GAAE,UAAU,EAAO,GAAG,IAAI;IAIrF;;;;OAIG;IACI,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,EAAE,WAAW,GAAE,UAAU,EAAO,GAAG,IAAI;IAItF;;;;OAIG;IACI,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,EAAE,WAAW,GAAE,UAAU,EAAO,GAAG,IAAI;IAIrF;;;;OAIG;IACI,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,EAAE,WAAW,GAAE,UAAU,EAAO,GAAG,IAAI;IAIxF;;;;OAIG;IACI,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,EAAE,WAAW,GAAE,UAAU,EAAO,GAAG,IAAI;IAIvF;;;;;OAKG;IACI,SAAS,CAAC,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,GAAG,KAAK,GAAG,SAAS;IAerE;;;;OAIG;IACU,MAAM,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,QAAQ,GAAG,SAAS,CAAC;IAiBpE;;;OAGG;IACI,SAAS,IAAI,SAAS,KAAK,EAAE;IAIpC;;OAEG;IACI,KAAK,IAAI,IAAI;CAKrB"}
1
+ {"version":3,"file":"router.d.ts","sourceRoot":"","sources":["../../src/router/router.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACxD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAEhD;;;GAGG;AACH,qBAAa,MAAM;IACjB;;OAEG;IACH,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAe;IACtC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAA4B;IACzD,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAe;IAE7C;;OAEG;IACH,OAAO,CAAC,aAAa;IAOrB;;;;;;;;OAQG;IACI,QAAQ,CACb,MAAM,EAAE,UAAU,EAClB,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,YAAY,EACrB,WAAW,GAAE,UAAU,EAAO,EAC9B,eAAe,CAAC,EAAE,KAAK,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,OAAO,EACrD,UAAU,CAAC,EAAE,MAAM,GAClB,IAAI;IAaP;;;;OAIG;IACI,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,EAAE,WAAW,GAAE,UAAU,EAAO,GAAG,IAAI;IAIrF;;;;OAIG;IACI,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,EAAE,WAAW,GAAE,UAAU,EAAO,GAAG,IAAI;IAItF;;;;OAIG;IACI,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,EAAE,WAAW,GAAE,UAAU,EAAO,GAAG,IAAI;IAIrF;;;;OAIG;IACI,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,EAAE,WAAW,GAAE,UAAU,EAAO,GAAG,IAAI;IAIxF;;;;OAIG;IACI,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,EAAE,WAAW,GAAE,UAAU,EAAO,GAAG,IAAI;IAIvF;;;;;OAKG;IACI,SAAS,CAAC,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,GAAG,KAAK,GAAG,SAAS;IAerE;;;;OAIG;IACU,MAAM,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,QAAQ,GAAG,SAAS,CAAC;IA4BpE;;;OAGG;IACI,SAAS,IAAI,SAAS,KAAK,EAAE;IAIpC;;OAEG;IACI,KAAK,IAAI,IAAI;CAKrB"}
@@ -0,0 +1,14 @@
1
+ import type { Authentication, AccessDecisionManager } from './types';
2
+ /**
3
+ * 基于角色的访问决策器
4
+ */
5
+ export declare class RoleBasedAccessDecisionManager implements AccessDecisionManager {
6
+ /**
7
+ * 决定是否授权
8
+ * @param authentication - 认证信息
9
+ * @param requiredAuthorities - 需要的权限(角色)
10
+ * @returns 是否授权
11
+ */
12
+ decide(authentication: Authentication, requiredAuthorities: string[]): boolean;
13
+ }
14
+ //# sourceMappingURL=access-decision-manager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"access-decision-manager.d.ts","sourceRoot":"","sources":["../../src/security/access-decision-manager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAC;AAErE;;GAEG;AACH,qBAAa,8BAA+B,YAAW,qBAAqB;IAC1E;;;;;OAKG;IACI,MAAM,CACX,cAAc,EAAE,cAAc,EAC9B,mBAAmB,EAAE,MAAM,EAAE,GAC5B,OAAO;CAiBX"}
@@ -0,0 +1,22 @@
1
+ import type { Authentication, AuthenticationProvider, AuthenticationRequest } from './types';
2
+ /**
3
+ * 认证管理器
4
+ */
5
+ export declare class AuthenticationManager {
6
+ private readonly providers;
7
+ /**
8
+ * 注册认证提供者
9
+ */
10
+ registerProvider(provider: AuthenticationProvider): void;
11
+ /**
12
+ * 认证
13
+ * @param request - 认证请求
14
+ * @returns 认证信息
15
+ */
16
+ authenticate(request: AuthenticationRequest): Promise<Authentication | null>;
17
+ /**
18
+ * 获取所有提供者
19
+ */
20
+ getProviders(): AuthenticationProvider[];
21
+ }
22
+ //# sourceMappingURL=authentication-manager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"authentication-manager.d.ts","sourceRoot":"","sources":["../../src/security/authentication-manager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,cAAc,EACd,sBAAsB,EACtB,qBAAqB,EACtB,MAAM,SAAS,CAAC;AAEjB;;GAEG;AACH,qBAAa,qBAAqB;IAChC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAgC;IAE1D;;OAEG;IACI,gBAAgB,CAAC,QAAQ,EAAE,sBAAsB,GAAG,IAAI;IAI/D;;;;OAIG;IACU,YAAY,CACvB,OAAO,EAAE,qBAAqB,GAC7B,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC;IAajC;;OAEG;IACI,YAAY,IAAI,sBAAsB,EAAE;CAGhD"}
@@ -0,0 +1,46 @@
1
+ import type { Authentication, Principal, SecurityContext } from './types';
2
+ /**
3
+ * 安全上下文实现
4
+ */
5
+ export declare class SecurityContextImpl implements SecurityContext {
6
+ private _authentication;
7
+ /**
8
+ * 当前认证信息
9
+ */
10
+ get authentication(): Authentication | null;
11
+ /**
12
+ * 设置认证信息
13
+ */
14
+ setAuthentication(authentication: Authentication | null): void;
15
+ /**
16
+ * 是否已认证
17
+ */
18
+ isAuthenticated(): boolean;
19
+ /**
20
+ * 获取主体
21
+ */
22
+ getPrincipal(): Principal | null;
23
+ /**
24
+ * 获取权限
25
+ */
26
+ getAuthorities(): string[];
27
+ /**
28
+ * 清除认证信息
29
+ */
30
+ clear(): void;
31
+ }
32
+ /**
33
+ * 安全上下文持有者(ThreadLocal 模式)
34
+ */
35
+ export declare class SecurityContextHolder {
36
+ private static readonly contexts;
37
+ /**
38
+ * 获取当前上下文
39
+ */
40
+ static getContext(): SecurityContextImpl;
41
+ /**
42
+ * 清除上下文
43
+ */
44
+ static clearContext(): void;
45
+ }
46
+ //# sourceMappingURL=context.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../src/security/context.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAE1E;;GAEG;AACH,qBAAa,mBAAoB,YAAW,eAAe;IACzD,OAAO,CAAC,eAAe,CAA+B;IAEtD;;OAEG;IACH,IAAW,cAAc,IAAI,cAAc,GAAG,IAAI,CAEjD;IAED;;OAEG;IACI,iBAAiB,CAAC,cAAc,EAAE,cAAc,GAAG,IAAI,GAAG,IAAI;IAIrE;;OAEG;IACI,eAAe,IAAI,OAAO;IAIjC;;OAEG;IACI,YAAY,IAAI,SAAS,GAAG,IAAI;IAIvC;;OAEG;IACI,cAAc,IAAI,MAAM,EAAE;IAIjC;;OAEG;IACI,KAAK,IAAI,IAAI;CAGrB;AAED;;GAEG;AACH,qBAAa,qBAAqB;IAChC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAA0C;IAE1E;;OAEG;WACW,UAAU,IAAI,mBAAmB;IAQ/C;;OAEG;WACW,YAAY,IAAI,IAAI;CAInC"}
@@ -0,0 +1,27 @@
1
+ import type { Context } from '../core/context';
2
+ import type { Middleware } from '../middleware';
3
+ import { AuthenticationManager } from './authentication-manager';
4
+ import { RoleBasedAccessDecisionManager } from './access-decision-manager';
5
+ import type { SecurityConfig } from './types';
6
+ /**
7
+ * 安全过滤器配置
8
+ */
9
+ export interface SecurityFilterConfig extends SecurityConfig {
10
+ /**
11
+ * 认证管理器
12
+ */
13
+ authenticationManager: AuthenticationManager;
14
+ /**
15
+ * 访问决策器
16
+ */
17
+ accessDecisionManager?: RoleBasedAccessDecisionManager;
18
+ /**
19
+ * 令牌提取函数
20
+ */
21
+ extractToken?: (ctx: Context) => string | null;
22
+ }
23
+ /**
24
+ * 创建安全过滤器
25
+ */
26
+ export declare function createSecurityFilter(config: SecurityFilterConfig): Middleware;
27
+ //# sourceMappingURL=filter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"filter.d.ts","sourceRoot":"","sources":["../../src/security/filter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAEhD,OAAO,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AACjE,OAAO,EAAE,8BAA8B,EAAE,MAAM,2BAA2B,CAAC;AAC3E,OAAO,KAAK,EAAE,cAAc,EAAyB,MAAM,SAAS,CAAC;AAIrE;;GAEG;AACH,MAAM,WAAW,oBAAqB,SAAQ,cAAc;IAC1D;;OAEG;IACH,qBAAqB,EAAE,qBAAqB,CAAC;IAC7C;;OAEG;IACH,qBAAqB,CAAC,EAAE,8BAA8B,CAAC;IACvD;;OAEG;IACH,YAAY,CAAC,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,MAAM,GAAG,IAAI,CAAC;CAChD;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,oBAAoB,GAAG,UAAU,CAqF7E"}
@@ -0,0 +1,8 @@
1
+ export * from './types';
2
+ export * from './context';
3
+ export * from './authentication-manager';
4
+ export * from './access-decision-manager';
5
+ export * from './filter';
6
+ export * from './providers';
7
+ export * from './security-module';
8
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/security/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,cAAc,WAAW,CAAC;AAC1B,cAAc,0BAA0B,CAAC;AACzC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,UAAU,CAAC;AACzB,cAAc,aAAa,CAAC;AAC5B,cAAc,mBAAmB,CAAC"}
@@ -0,0 +1,3 @@
1
+ export * from './jwt-provider';
2
+ export * from './oauth2-provider';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/security/providers/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,mBAAmB,CAAC"}
@@ -0,0 +1,19 @@
1
+ import type { Authentication, AuthenticationProvider, AuthenticationRequest } from '../types';
2
+ import { JWTUtil } from '../../auth/jwt';
3
+ /**
4
+ * JWT 认证提供者
5
+ */
6
+ export declare class JwtAuthenticationProvider implements AuthenticationProvider {
7
+ private readonly jwtUtil;
8
+ readonly supportedTypes: string[];
9
+ constructor(jwtUtil: JWTUtil);
10
+ /**
11
+ * 是否支持该认证类型
12
+ */
13
+ supports(type: string): boolean;
14
+ /**
15
+ * 认证
16
+ */
17
+ authenticate(request: AuthenticationRequest): Promise<Authentication | null>;
18
+ }
19
+ //# sourceMappingURL=jwt-provider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"jwt-provider.d.ts","sourceRoot":"","sources":["../../../src/security/providers/jwt-provider.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,cAAc,EACd,sBAAsB,EACtB,qBAAqB,EAEtB,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAEzC;;GAEG;AACH,qBAAa,yBAA0B,YAAW,sBAAsB;IAGnD,OAAO,CAAC,QAAQ,CAAC,OAAO;IAF3C,SAAgB,cAAc,WAAqB;gBAEf,OAAO,EAAE,OAAO;IAEpD;;OAEG;IACI,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAItC;;OAEG;IACU,YAAY,CACvB,OAAO,EAAE,qBAAqB,GAC7B,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC;CA8BlC"}
@@ -0,0 +1,19 @@
1
+ import type { Authentication, AuthenticationProvider, AuthenticationRequest } from '../types';
2
+ import { OAuth2Service } from '../../auth/oauth2';
3
+ /**
4
+ * OAuth2 认证提供者
5
+ */
6
+ export declare class OAuth2AuthenticationProvider implements AuthenticationProvider {
7
+ private readonly oauth2Service;
8
+ readonly supportedTypes: string[];
9
+ constructor(oauth2Service: OAuth2Service);
10
+ /**
11
+ * 是否支持该认证类型
12
+ */
13
+ supports(type: string): boolean;
14
+ /**
15
+ * 认证(通过授权码交换令牌)
16
+ */
17
+ authenticate(request: AuthenticationRequest): Promise<Authentication | null>;
18
+ }
19
+ //# sourceMappingURL=oauth2-provider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"oauth2-provider.d.ts","sourceRoot":"","sources":["../../../src/security/providers/oauth2-provider.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,cAAc,EACd,sBAAsB,EACtB,qBAAqB,EAEtB,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAGlD;;GAEG;AACH,qBAAa,4BAA6B,YAAW,sBAAsB;IAGtD,OAAO,CAAC,QAAQ,CAAC,aAAa;IAFjD,SAAgB,cAAc,WAAoC;gBAE9B,aAAa,EAAE,aAAa;IAEhE;;OAEG;IACI,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAItC;;OAEG;IACU,YAAY,CACvB,OAAO,EAAE,qBAAqB,GAC7B,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC;CAqClC"}
@@ -0,0 +1,50 @@
1
+ import type { JWTConfig, OAuth2Client, UserInfo } from '../auth/types';
2
+ /**
3
+ * 安全模块配置
4
+ */
5
+ export interface SecurityModuleConfig {
6
+ /**
7
+ * JWT 配置
8
+ */
9
+ jwt: JWTConfig;
10
+ /**
11
+ * OAuth2 客户端列表
12
+ */
13
+ oauth2Clients?: OAuth2Client[];
14
+ /**
15
+ * 用户提供者(可选)
16
+ */
17
+ userProvider?: {
18
+ findById(userId: string): Promise<UserInfo | null>;
19
+ };
20
+ /**
21
+ * 是否启用 OAuth2 端点
22
+ * @default true
23
+ */
24
+ enableOAuth2Endpoints?: boolean;
25
+ /**
26
+ * OAuth2 端点前缀
27
+ * @default '/oauth2'
28
+ */
29
+ oauth2Prefix?: string;
30
+ /**
31
+ * 排除的路径列表(不需要认证)
32
+ */
33
+ excludePaths?: string[];
34
+ /**
35
+ * 默认认证要求
36
+ * @default false
37
+ */
38
+ defaultAuthRequired?: boolean;
39
+ }
40
+ /**
41
+ * 安全模块
42
+ */
43
+ export declare class SecurityModule {
44
+ /**
45
+ * 创建安全模块
46
+ * @param config - 模块配置
47
+ */
48
+ static forRoot(config: SecurityModuleConfig): typeof SecurityModule;
49
+ }
50
+ //# sourceMappingURL=security-module.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"security-module.d.ts","sourceRoot":"","sources":["../../src/security/security-module.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,SAAS,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEvE;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC;;OAEG;IACH,GAAG,EAAE,SAAS,CAAC;IACf;;OAEG;IACH,aAAa,CAAC,EAAE,YAAY,EAAE,CAAC;IAC/B;;OAEG;IACH,YAAY,CAAC,EAAE;QACb,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,CAAC;KACpD,CAAC;IACF;;;OAGG;IACH,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;;OAEG;IACH,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB;;;OAGG;IACH,mBAAmB,CAAC,EAAE,OAAO,CAAC;CAC/B;AAED;;GAEG;AACH,qBAKa,cAAc;IACzB;;;OAGG;WACW,OAAO,CAAC,MAAM,EAAE,oBAAoB,GAAG,OAAO,cAAc;CA+E3E"}
@@ -0,0 +1,152 @@
1
+ /**
2
+ * Security 核心类型定义
3
+ */
4
+ /**
5
+ * 认证主体(Principal)
6
+ */
7
+ export interface Principal {
8
+ /**
9
+ * 用户 ID
10
+ */
11
+ id: string;
12
+ /**
13
+ * 用户名
14
+ */
15
+ username?: string;
16
+ /**
17
+ * 角色列表
18
+ */
19
+ roles?: string[];
20
+ /**
21
+ * 其他属性
22
+ */
23
+ [key: string]: unknown;
24
+ }
25
+ /**
26
+ * 认证凭据(Credentials)
27
+ */
28
+ export interface Credentials {
29
+ /**
30
+ * 凭据类型
31
+ */
32
+ type: string;
33
+ /**
34
+ * 凭据数据
35
+ */
36
+ data: unknown;
37
+ }
38
+ /**
39
+ * 认证信息
40
+ */
41
+ export interface Authentication {
42
+ /**
43
+ * 是否已认证
44
+ */
45
+ authenticated: boolean;
46
+ /**
47
+ * 主体
48
+ */
49
+ principal: Principal | null;
50
+ /**
51
+ * 凭据
52
+ */
53
+ credentials: Credentials | null;
54
+ /**
55
+ * 权限列表
56
+ */
57
+ authorities: string[];
58
+ /**
59
+ * 详细信息
60
+ */
61
+ details?: unknown;
62
+ }
63
+ /**
64
+ * 认证请求
65
+ */
66
+ export interface AuthenticationRequest {
67
+ /**
68
+ * 主体标识(如用户名)
69
+ */
70
+ principal: string;
71
+ /**
72
+ * 凭据(如密码)
73
+ */
74
+ credentials: unknown;
75
+ /**
76
+ * 认证类型
77
+ */
78
+ type?: string;
79
+ }
80
+ /**
81
+ * 认证提供者接口
82
+ */
83
+ export interface AuthenticationProvider {
84
+ /**
85
+ * 支持的认证类型
86
+ */
87
+ readonly supportedTypes: string[];
88
+ /**
89
+ * 认证
90
+ * @param request - 认证请求
91
+ * @returns 认证信息
92
+ */
93
+ authenticate(request: AuthenticationRequest): Promise<Authentication | null>;
94
+ /**
95
+ * 是否支持该认证类型
96
+ * @param type - 认证类型
97
+ */
98
+ supports(type: string): boolean;
99
+ }
100
+ /**
101
+ * 授权决策器接口
102
+ */
103
+ export interface AccessDecisionManager {
104
+ /**
105
+ * 决定是否授权
106
+ * @param authentication - 认证信息
107
+ * @param requiredAuthorities - 需要的权限
108
+ * @returns 是否授权
109
+ */
110
+ decide(authentication: Authentication, requiredAuthorities: string[]): boolean;
111
+ }
112
+ /**
113
+ * 安全配置
114
+ */
115
+ export interface SecurityConfig {
116
+ /**
117
+ * 是否启用安全
118
+ * @default true
119
+ */
120
+ enabled?: boolean;
121
+ /**
122
+ * 排除的路径列表
123
+ */
124
+ excludePaths?: string[];
125
+ /**
126
+ * 默认认证要求
127
+ * @default true
128
+ */
129
+ defaultAuthRequired?: boolean;
130
+ }
131
+ /**
132
+ * 安全上下文
133
+ */
134
+ export interface SecurityContext {
135
+ /**
136
+ * 当前认证信息
137
+ */
138
+ authentication: Authentication | null;
139
+ /**
140
+ * 是否已认证
141
+ */
142
+ isAuthenticated(): boolean;
143
+ /**
144
+ * 获取主体
145
+ */
146
+ getPrincipal(): Principal | null;
147
+ /**
148
+ * 获取权限
149
+ */
150
+ getAuthorities(): string[];
151
+ }
152
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/security/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB;;OAEG;IACH,EAAE,EAAE,MAAM,CAAC;IACX;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB;;OAEG;IACH,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IACb;;OAEG;IACH,IAAI,EAAE,OAAO,CAAC;CACf;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B;;OAEG;IACH,aAAa,EAAE,OAAO,CAAC;IACvB;;OAEG;IACH,SAAS,EAAE,SAAS,GAAG,IAAI,CAAC;IAC5B;;OAEG;IACH,WAAW,EAAE,WAAW,GAAG,IAAI,CAAC;IAChC;;OAEG;IACH,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB;;OAEG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC;;OAEG;IACH,SAAS,EAAE,MAAM,CAAC;IAClB;;OAEG;IACH,WAAW,EAAE,OAAO,CAAC;IACrB;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC;;OAEG;IACH,QAAQ,CAAC,cAAc,EAAE,MAAM,EAAE,CAAC;IAElC;;;;OAIG;IACH,YAAY,CAAC,OAAO,EAAE,qBAAqB,GAAG,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC,CAAC;IAE7E;;;OAGG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;CACjC;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC;;;;;OAKG;IACH,MAAM,CACJ,cAAc,EAAE,cAAc,EAC9B,mBAAmB,EAAE,MAAM,EAAE,GAC5B,OAAO,CAAC;CACZ;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B;;;OAGG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;OAEG;IACH,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB;;;OAGG;IACH,mBAAmB,CAAC,EAAE,OAAO,CAAC;CAC/B;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B;;OAEG;IACH,cAAc,EAAE,cAAc,GAAG,IAAI,CAAC;IACtC;;OAEG;IACH,eAAe,IAAI,OAAO,CAAC;IAC3B;;OAEG;IACH,YAAY,IAAI,SAAS,GAAG,IAAI,CAAC;IACjC;;OAEG;IACH,cAAc,IAAI,MAAM,EAAE,CAAC;CAC5B"}
@@ -0,0 +1,56 @@
1
+ import 'reflect-metadata';
2
+ import type { ApiBodyMetadata, ApiOperationMetadata, ApiParamMetadata, ApiResponseMetadata } from './types';
3
+ /**
4
+ * API 标签装饰器
5
+ * 用于标记控制器或操作的标签
6
+ * @param metadata - 标签元数据
7
+ */
8
+ export declare function ApiTags(...tags: string[]): ClassDecorator & MethodDecorator;
9
+ /**
10
+ * API 操作装饰器
11
+ * 用于描述 API 操作
12
+ * @param metadata - 操作元数据
13
+ */
14
+ export declare function ApiOperation(metadata: ApiOperationMetadata): MethodDecorator;
15
+ /**
16
+ * API 参数装饰器
17
+ * 用于描述 API 参数
18
+ * @param metadata - 参数元数据
19
+ */
20
+ export declare function ApiParam(metadata: ApiParamMetadata): ParameterDecorator;
21
+ /**
22
+ * API 请求体装饰器
23
+ * 用于描述请求体
24
+ * @param metadata - 请求体元数据
25
+ */
26
+ export declare function ApiBody(metadata: ApiBodyMetadata): MethodDecorator;
27
+ /**
28
+ * API 响应装饰器
29
+ * 用于描述 API 响应
30
+ * @param metadata - 响应元数据
31
+ */
32
+ export declare function ApiResponse(metadata: ApiResponseMetadata): MethodDecorator;
33
+ /**
34
+ * 获取 API 标签
35
+ */
36
+ export declare function getApiTags(target: unknown, propertyKey?: string | symbol): string[];
37
+ /**
38
+ * 获取 API 操作元数据
39
+ */
40
+ export declare function getApiOperation(target: unknown, propertyKey: string | symbol): ApiOperationMetadata | undefined;
41
+ /**
42
+ * 获取 API 参数元数据
43
+ */
44
+ export declare function getApiParams(target: unknown, propertyKey: string | symbol): Array<{
45
+ index: number;
46
+ metadata: ApiParamMetadata;
47
+ }>;
48
+ /**
49
+ * 获取 API 请求体元数据
50
+ */
51
+ export declare function getApiBody(target: unknown, propertyKey: string | symbol): ApiBodyMetadata | undefined;
52
+ /**
53
+ * 获取 API 响应元数据
54
+ */
55
+ export declare function getApiResponses(target: unknown, propertyKey: string | symbol): ApiResponseMetadata[];
56
+ //# sourceMappingURL=decorators.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"decorators.d.ts","sourceRoot":"","sources":["../../src/swagger/decorators.ts"],"names":[],"mappings":"AAAA,OAAO,kBAAkB,CAAC;AAC1B,OAAO,KAAK,EACV,eAAe,EACf,oBAAoB,EACpB,gBAAgB,EAChB,mBAAmB,EACpB,MAAM,SAAS,CAAC;AAWjB;;;;GAIG;AACH,wBAAgB,OAAO,CAAC,GAAG,IAAI,EAAE,MAAM,EAAE,GAAG,cAAc,GAAG,eAAe,CAY3E;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,QAAQ,EAAE,oBAAoB,GAAG,eAAe,CAI5E;AAED;;;;GAIG;AACH,wBAAgB,QAAQ,CAAC,QAAQ,EAAE,gBAAgB,GAAG,kBAAkB,CAOvE;AAED;;;;GAIG;AACH,wBAAgB,OAAO,CAAC,QAAQ,EAAE,eAAe,GAAG,eAAe,CAIlE;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,QAAQ,EAAE,mBAAmB,GAAG,eAAe,CAO1E;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,MAAM,EAAE,OAAO,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,EAAE,CAKnF;AAED;;GAEG;AACH,wBAAgB,eAAe,CAC7B,MAAM,EAAE,OAAO,EACf,WAAW,EAAE,MAAM,GAAG,MAAM,GAC3B,oBAAoB,GAAG,SAAS,CAElC;AAED;;GAEG;AACH,wBAAgB,YAAY,CAC1B,MAAM,EAAE,OAAO,EACf,WAAW,EAAE,MAAM,GAAG,MAAM,GAC3B,KAAK,CAAC;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,gBAAgB,CAAA;CAAE,CAAC,CAEtD;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM,GAAG,eAAe,GAAG,SAAS,CAErG;AAED;;GAEG;AACH,wBAAgB,eAAe,CAC7B,MAAM,EAAE,OAAO,EACf,WAAW,EAAE,MAAM,GAAG,MAAM,GAC3B,mBAAmB,EAAE,CAEvB"}
@@ -0,0 +1,17 @@
1
+ import type { SwaggerDocument, SwaggerOptions } from './types';
2
+ /**
3
+ * Swagger 文档生成器
4
+ */
5
+ export declare class SwaggerGenerator {
6
+ private readonly options;
7
+ constructor(options: SwaggerOptions);
8
+ /**
9
+ * 生成 Swagger 文档
10
+ */
11
+ generate(): SwaggerDocument;
12
+ /**
13
+ * 规范化路径
14
+ */
15
+ private normalizePath;
16
+ }
17
+ //# sourceMappingURL=generator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generator.d.ts","sourceRoot":"","sources":["../../src/swagger/generator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAmB,MAAM,SAAS,CAAC;AAWhF;;GAEG;AACH,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAiB;gBAEtB,OAAO,EAAE,cAAc;IAI1C;;OAEG;IACI,QAAQ,IAAI,eAAe;IAgMlC;;OAEG;IACH,OAAO,CAAC,aAAa;CAatB"}
@@ -0,0 +1,7 @@
1
+ export * from './types';
2
+ export * from './decorators';
3
+ export * from './generator';
4
+ export * from './swagger-extension';
5
+ export * from './swagger-module';
6
+ export * from './ui';
7
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/swagger/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,qBAAqB,CAAC;AACpC,cAAc,kBAAkB,CAAC;AACjC,cAAc,MAAM,CAAC"}
@@ -0,0 +1,25 @@
1
+ import type { Container } from '../di/container';
2
+ import type { ApplicationExtension } from '../extensions/types';
3
+ import { SwaggerGenerator } from './generator';
4
+ import type { SwaggerOptions } from './types';
5
+ /**
6
+ * Swagger 扩展
7
+ */
8
+ export declare class SwaggerExtension implements ApplicationExtension {
9
+ private readonly options;
10
+ private generator?;
11
+ constructor(options: SwaggerOptions);
12
+ /**
13
+ * 注册扩展
14
+ */
15
+ register(_container: Container): void;
16
+ /**
17
+ * 获取 Swagger 文档生成器
18
+ */
19
+ getGenerator(): SwaggerGenerator;
20
+ /**
21
+ * 生成 Swagger JSON
22
+ */
23
+ generateJSON(): string;
24
+ }
25
+ //# sourceMappingURL=swagger-extension.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"swagger-extension.d.ts","sourceRoot":"","sources":["../../src/swagger/swagger-extension.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAChE,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAE9C;;GAEG;AACH,qBAAa,gBAAiB,YAAW,oBAAoB;IAC3D,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAiB;IACzC,OAAO,CAAC,SAAS,CAAC,CAAmB;gBAElB,OAAO,EAAE,cAAc;IAI1C;;OAEG;IACI,QAAQ,CAAC,UAAU,EAAE,SAAS,GAAG,IAAI;IAI5C;;OAEG;IACI,YAAY,IAAI,gBAAgB;IAOvC;;OAEG;IACI,YAAY,IAAI,MAAM;CAG9B"}