@dangao/bun-server 0.1.2 → 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.
- package/dist/auth/controller.d.ts +35 -0
- package/dist/auth/controller.d.ts.map +1 -0
- package/dist/auth/decorators.d.ts +38 -0
- package/dist/auth/decorators.d.ts.map +1 -0
- package/dist/auth/index.d.ts +6 -0
- package/dist/auth/index.d.ts.map +1 -0
- package/dist/auth/jwt.d.ts +43 -0
- package/dist/auth/jwt.d.ts.map +1 -0
- package/dist/auth/oauth2.d.ts +45 -0
- package/dist/auth/oauth2.d.ts.map +1 -0
- package/dist/auth/types.d.ts +238 -0
- package/dist/auth/types.d.ts.map +1 -0
- package/dist/controller/controller.d.ts +5 -0
- package/dist/controller/controller.d.ts.map +1 -1
- package/dist/core/application.d.ts.map +1 -1
- package/dist/core/context.d.ts.map +1 -1
- package/dist/di/module-registry.d.ts +14 -2
- package/dist/di/module-registry.d.ts.map +1 -1
- package/dist/di/module.d.ts +12 -1
- package/dist/di/module.d.ts.map +1 -1
- package/dist/extensions/index.d.ts +1 -0
- package/dist/extensions/index.d.ts.map +1 -1
- package/dist/extensions/logger-module.d.ts +30 -0
- package/dist/extensions/logger-module.d.ts.map +1 -0
- package/dist/index.d.ts +4 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1154 -12
- package/dist/router/registry.d.ts +4 -1
- package/dist/router/registry.d.ts.map +1 -1
- package/dist/router/route.d.ts +9 -1
- package/dist/router/route.d.ts.map +1 -1
- package/dist/router/router.d.ts +8 -1
- package/dist/router/router.d.ts.map +1 -1
- package/dist/security/access-decision-manager.d.ts +14 -0
- package/dist/security/access-decision-manager.d.ts.map +1 -0
- package/dist/security/authentication-manager.d.ts +22 -0
- package/dist/security/authentication-manager.d.ts.map +1 -0
- package/dist/security/context.d.ts +46 -0
- package/dist/security/context.d.ts.map +1 -0
- package/dist/security/filter.d.ts +27 -0
- package/dist/security/filter.d.ts.map +1 -0
- package/dist/security/index.d.ts +8 -0
- package/dist/security/index.d.ts.map +1 -0
- package/dist/security/providers/index.d.ts +3 -0
- package/dist/security/providers/index.d.ts.map +1 -0
- package/dist/security/providers/jwt-provider.d.ts +19 -0
- package/dist/security/providers/jwt-provider.d.ts.map +1 -0
- package/dist/security/providers/oauth2-provider.d.ts +19 -0
- package/dist/security/providers/oauth2-provider.d.ts.map +1 -0
- package/dist/security/security-module.d.ts +50 -0
- package/dist/security/security-module.d.ts.map +1 -0
- package/dist/security/types.d.ts +152 -0
- package/dist/security/types.d.ts.map +1 -0
- package/dist/swagger/decorators.d.ts +56 -0
- package/dist/swagger/decorators.d.ts.map +1 -0
- package/dist/swagger/generator.d.ts +17 -0
- package/dist/swagger/generator.d.ts.map +1 -0
- package/dist/swagger/index.d.ts +7 -0
- package/dist/swagger/index.d.ts.map +1 -0
- package/dist/swagger/swagger-extension.d.ts +25 -0
- package/dist/swagger/swagger-extension.d.ts.map +1 -0
- package/dist/swagger/swagger-module.d.ts +37 -0
- package/dist/swagger/swagger-module.d.ts.map +1 -0
- package/dist/swagger/types.d.ts +176 -0
- package/dist/swagger/types.d.ts.map +1 -0
- package/dist/swagger/ui.d.ts +13 -0
- package/dist/swagger/ui.d.ts.map +1 -0
- package/package.json +1 -1
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { OAuth2Service } from './oauth2';
|
|
2
|
+
import type { OAuth2TokenResponse } from './types';
|
|
3
|
+
/**
|
|
4
|
+
* OAuth2 令牌 Token
|
|
5
|
+
*/
|
|
6
|
+
export declare const OAUTH2_SERVICE_TOKEN: unique symbol;
|
|
7
|
+
export declare const JWT_UTIL_TOKEN: unique symbol;
|
|
8
|
+
/**
|
|
9
|
+
* OAuth2 控制器
|
|
10
|
+
*/
|
|
11
|
+
export declare class OAuth2Controller {
|
|
12
|
+
private readonly oauth2Service;
|
|
13
|
+
constructor(oauth2Service: OAuth2Service);
|
|
14
|
+
/**
|
|
15
|
+
* 授权端点
|
|
16
|
+
* GET /oauth2/authorize?client_id=...&redirect_uri=...&response_type=code&state=...
|
|
17
|
+
*/
|
|
18
|
+
authorize(clientId: string, redirectUri: string, state?: string, scope?: string): Response;
|
|
19
|
+
/**
|
|
20
|
+
* 令牌端点
|
|
21
|
+
* POST /oauth2/token
|
|
22
|
+
*/
|
|
23
|
+
token(body: Record<string, string>): Promise<OAuth2TokenResponse | any>;
|
|
24
|
+
/**
|
|
25
|
+
* 用户信息端点
|
|
26
|
+
* GET /oauth2/userinfo
|
|
27
|
+
* 注意:此端点需要认证,应该通过认证中间件保护
|
|
28
|
+
*/
|
|
29
|
+
userinfo(): {
|
|
30
|
+
sub: string;
|
|
31
|
+
username: string;
|
|
32
|
+
roles: string[];
|
|
33
|
+
};
|
|
34
|
+
}
|
|
35
|
+
//# sourceMappingURL=controller.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"controller.d.ts","sourceRoot":"","sources":["../../src/auth/controller.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,OAAO,KAAK,EAGV,mBAAmB,EACpB,MAAM,SAAS,CAAC;AAEjB;;GAEG;AACH,eAAO,MAAM,oBAAoB,eAA2B,CAAC;AAC7D,eAAO,MAAM,cAAc,eAAqB,CAAC;AAEjD;;GAEG;AACH,qBAEa,gBAAgB;IAEK,OAAO,CAAC,QAAQ,CAAC,aAAa;gBAAb,aAAa,EAAE,aAAa;IAG7E;;;OAGG;IAEI,SAAS,CAAqB,QAAQ,EAAE,MAAM,EAAyB,WAAW,EAAE,MAAM,EAAkB,KAAK,CAAC,EAAE,MAAM,EAAkB,KAAK,CAAC,EAAE,MAAM;IA6CjK;;;OAGG;IAEU,KAAK,CAAS,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,mBAAmB,GAAG,GAAG,CAAC;IAsC5F;;;;OAIG;IAGI,QAAQ;;;;;CAShB"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import 'reflect-metadata';
|
|
2
|
+
/**
|
|
3
|
+
* 认证配置
|
|
4
|
+
*/
|
|
5
|
+
export interface AuthConfig {
|
|
6
|
+
/**
|
|
7
|
+
* 是否需要认证
|
|
8
|
+
* @default true
|
|
9
|
+
*/
|
|
10
|
+
required?: boolean;
|
|
11
|
+
/**
|
|
12
|
+
* 允许的角色列表
|
|
13
|
+
*/
|
|
14
|
+
roles?: string[];
|
|
15
|
+
/**
|
|
16
|
+
* 是否允许匿名访问
|
|
17
|
+
* @default false
|
|
18
|
+
*/
|
|
19
|
+
allowAnonymous?: boolean;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* 认证装饰器
|
|
23
|
+
* 用于标记需要认证的路由
|
|
24
|
+
*/
|
|
25
|
+
export declare function Auth(config?: AuthConfig): MethodDecorator;
|
|
26
|
+
/**
|
|
27
|
+
* 获取认证元数据
|
|
28
|
+
*/
|
|
29
|
+
export declare function getAuthMetadata(target: Object, propertyKey: string | symbol): AuthConfig | undefined;
|
|
30
|
+
/**
|
|
31
|
+
* 检查是否需要认证
|
|
32
|
+
*/
|
|
33
|
+
export declare function requiresAuth(target: Object, propertyKey: string | symbol): boolean;
|
|
34
|
+
/**
|
|
35
|
+
* 检查角色权限
|
|
36
|
+
*/
|
|
37
|
+
export declare function checkRoles(target: Object, propertyKey: string | symbol, userRoles?: string[]): boolean;
|
|
38
|
+
//# sourceMappingURL=decorators.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"decorators.d.ts","sourceRoot":"","sources":["../../src/auth/decorators.ts"],"names":[],"mappings":"AAAA,OAAO,kBAAkB,CAAC;AAO1B;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB;;;OAGG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB;;;OAGG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED;;;GAGG;AACH,wBAAgB,IAAI,CAAC,MAAM,GAAE,UAAe,GAAG,eAAe,CAU7D;AAED;;GAEG;AACH,wBAAgB,eAAe,CAC7B,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,MAAM,GAAG,MAAM,GAC3B,UAAU,GAAG,SAAS,CAGxB;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAGlF;AAED;;GAEG;AACH,wBAAgB,UAAU,CACxB,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,MAAM,GAAG,MAAM,EAC5B,SAAS,GAAE,MAAM,EAAO,GACvB,OAAO,CAMT"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/auth/index.ts"],"names":[],"mappings":"AACA,cAAc,SAAS,CAAC;AACxB,cAAc,OAAO,CAAC;AACtB,cAAc,UAAU,CAAC;AACzB,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import type { JWTConfig, JWTPayload } from './types';
|
|
2
|
+
/**
|
|
3
|
+
* JWT 工具类
|
|
4
|
+
*/
|
|
5
|
+
export declare class JWTUtil {
|
|
6
|
+
private readonly config;
|
|
7
|
+
constructor(config: JWTConfig);
|
|
8
|
+
/**
|
|
9
|
+
* 生成访问令牌
|
|
10
|
+
* @param payload - JWT 载荷
|
|
11
|
+
* @returns 访问令牌
|
|
12
|
+
*/
|
|
13
|
+
generateAccessToken(payload: Omit<JWTPayload, 'exp' | 'iat'>): string;
|
|
14
|
+
/**
|
|
15
|
+
* 生成刷新令牌
|
|
16
|
+
* @param payload - JWT 载荷
|
|
17
|
+
* @returns 刷新令牌
|
|
18
|
+
*/
|
|
19
|
+
generateRefreshToken(payload: Omit<JWTPayload, 'exp' | 'iat'>): string;
|
|
20
|
+
/**
|
|
21
|
+
* 验证令牌
|
|
22
|
+
* @param token - JWT 令牌
|
|
23
|
+
* @returns 载荷或 null(如果无效)
|
|
24
|
+
*/
|
|
25
|
+
verify(token: string): JWTPayload | null;
|
|
26
|
+
/**
|
|
27
|
+
* 签名 JWT
|
|
28
|
+
*/
|
|
29
|
+
private sign;
|
|
30
|
+
/**
|
|
31
|
+
* 生成签名
|
|
32
|
+
*/
|
|
33
|
+
private signature;
|
|
34
|
+
/**
|
|
35
|
+
* HMAC-SHA256 实现
|
|
36
|
+
*/
|
|
37
|
+
private hmacSha256;
|
|
38
|
+
/**
|
|
39
|
+
* Base64URL 编码
|
|
40
|
+
*/
|
|
41
|
+
private base64UrlEncode;
|
|
42
|
+
}
|
|
43
|
+
//# sourceMappingURL=jwt.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"jwt.d.ts","sourceRoot":"","sources":["../../src/auth/jwt.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAErD;;GAEG;AACH,qBAAa,OAAO;IAClB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAsB;gBAE1B,MAAM,EAAE,SAAS;IASpC;;;;OAIG;IACI,mBAAmB,CAAC,OAAO,EAAE,IAAI,CAAC,UAAU,EAAE,KAAK,GAAG,KAAK,CAAC,GAAG,MAAM;IAW5E;;;;OAIG;IACI,oBAAoB,CAAC,OAAO,EAAE,IAAI,CAAC,UAAU,EAAE,KAAK,GAAG,KAAK,CAAC,GAAG,MAAM;IAW7E;;;;OAIG;IACI,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,UAAU,GAAG,IAAI;IA6B/C;;OAEG;IACH,OAAO,CAAC,IAAI;IAaZ;;OAEG;IACH,OAAO,CAAC,SAAS;IAWjB;;OAEG;IACH,OAAO,CAAC,UAAU;IAyClB;;OAEG;IACH,OAAO,CAAC,eAAe;CAOxB"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { JWTUtil } from './jwt';
|
|
2
|
+
import type { OAuth2Client, OAuth2AuthorizationRequest, OAuth2TokenRequest, OAuth2TokenResponse, OAuth2CodeConfig, UserInfo } from './types';
|
|
3
|
+
/**
|
|
4
|
+
* OAuth2 服务
|
|
5
|
+
*/
|
|
6
|
+
export declare class OAuth2Service {
|
|
7
|
+
private readonly jwtUtil;
|
|
8
|
+
private readonly clients;
|
|
9
|
+
private readonly codes;
|
|
10
|
+
private readonly codeConfig;
|
|
11
|
+
private readonly userProvider?;
|
|
12
|
+
constructor(jwtUtil: JWTUtil, clients?: OAuth2Client[], codeConfig?: OAuth2CodeConfig, userProvider?: (userId: string) => Promise<UserInfo | null>);
|
|
13
|
+
/**
|
|
14
|
+
* 注册客户端
|
|
15
|
+
*/
|
|
16
|
+
registerClient(client: OAuth2Client): void;
|
|
17
|
+
/**
|
|
18
|
+
* 验证授权请求
|
|
19
|
+
*/
|
|
20
|
+
validateAuthorizationRequest(request: OAuth2AuthorizationRequest): {
|
|
21
|
+
valid: boolean;
|
|
22
|
+
error?: string;
|
|
23
|
+
};
|
|
24
|
+
/**
|
|
25
|
+
* 生成授权码
|
|
26
|
+
*/
|
|
27
|
+
generateAuthorizationCode(clientId: string, redirectUri: string, userId: string, scope?: string): string;
|
|
28
|
+
/**
|
|
29
|
+
* 交换授权码获取令牌
|
|
30
|
+
*/
|
|
31
|
+
exchangeCodeForToken(request: OAuth2TokenRequest): Promise<OAuth2TokenResponse | null>;
|
|
32
|
+
/**
|
|
33
|
+
* 刷新令牌
|
|
34
|
+
*/
|
|
35
|
+
refreshToken(refreshToken: string): Promise<OAuth2TokenResponse | null>;
|
|
36
|
+
/**
|
|
37
|
+
* 生成随机字符串
|
|
38
|
+
*/
|
|
39
|
+
private generateRandomString;
|
|
40
|
+
/**
|
|
41
|
+
* 清理过期的授权码
|
|
42
|
+
*/
|
|
43
|
+
private cleanupExpiredCodes;
|
|
44
|
+
}
|
|
45
|
+
//# sourceMappingURL=oauth2.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"oauth2.d.ts","sourceRoot":"","sources":["../../src/auth/oauth2.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAChC,OAAO,KAAK,EACV,YAAY,EACZ,0BAA0B,EAC1B,kBAAkB,EAClB,mBAAmB,EACnB,gBAAgB,EAEhB,QAAQ,EACT,MAAM,SAAS,CAAC;AAcjB;;GAEG;AACH,qBAAa,aAAa;IACxB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAU;IAClC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA4B;IACpD,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAiC;IACvD,OAAO,CAAC,QAAQ,CAAC,UAAU,CAA6B;IACxD,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC,CAA+C;gBAG3E,OAAO,EAAE,OAAO,EAChB,OAAO,GAAE,YAAY,EAAO,EAC5B,UAAU,GAAE,gBAAqB,EACjC,YAAY,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC;IAqB7D;;OAEG;IACI,cAAc,CAAC,MAAM,EAAE,YAAY,GAAG,IAAI;IAIjD;;OAEG;IACI,4BAA4B,CACjC,OAAO,EAAE,0BAA0B,GAClC;QAAE,KAAK,EAAE,OAAO,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE;IAiBrC;;OAEG;IACI,yBAAyB,CAC9B,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,MAAM,EACd,KAAK,CAAC,EAAE,MAAM,GACb,MAAM;IAgBT;;OAEG;IACU,oBAAoB,CAC/B,OAAO,EAAE,kBAAkB,GAC1B,OAAO,CAAC,mBAAmB,GAAG,IAAI,CAAC;IA8DtC;;OAEG;IACU,YAAY,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,GAAG,IAAI,CAAC;IAsCpF;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAS5B;;OAEG;IACH,OAAO,CAAC,mBAAmB;CAQ5B"}
|
|
@@ -0,0 +1,238 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 认证相关类型定义
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* JWT 载荷
|
|
6
|
+
*/
|
|
7
|
+
export interface JWTPayload {
|
|
8
|
+
/**
|
|
9
|
+
* 用户 ID
|
|
10
|
+
*/
|
|
11
|
+
sub: string;
|
|
12
|
+
/**
|
|
13
|
+
* 用户名
|
|
14
|
+
*/
|
|
15
|
+
username?: string;
|
|
16
|
+
/**
|
|
17
|
+
* 角色列表
|
|
18
|
+
*/
|
|
19
|
+
roles?: string[];
|
|
20
|
+
/**
|
|
21
|
+
* 过期时间(Unix 时间戳)
|
|
22
|
+
*/
|
|
23
|
+
exp?: number;
|
|
24
|
+
/**
|
|
25
|
+
* 签发时间(Unix 时间戳)
|
|
26
|
+
*/
|
|
27
|
+
iat?: number;
|
|
28
|
+
/**
|
|
29
|
+
* 其他自定义字段
|
|
30
|
+
*/
|
|
31
|
+
[key: string]: unknown;
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* JWT 配置
|
|
35
|
+
*/
|
|
36
|
+
export interface JWTConfig {
|
|
37
|
+
/**
|
|
38
|
+
* 密钥(用于签名和验证)
|
|
39
|
+
*/
|
|
40
|
+
secret: string;
|
|
41
|
+
/**
|
|
42
|
+
* 访问令牌过期时间(秒)
|
|
43
|
+
* @default 3600 (1 hour)
|
|
44
|
+
*/
|
|
45
|
+
accessTokenExpiresIn?: number;
|
|
46
|
+
/**
|
|
47
|
+
* 刷新令牌过期时间(秒)
|
|
48
|
+
* @default 86400 * 7 (7 days)
|
|
49
|
+
*/
|
|
50
|
+
refreshTokenExpiresIn?: number;
|
|
51
|
+
/**
|
|
52
|
+
* 算法
|
|
53
|
+
* @default 'HS256'
|
|
54
|
+
*/
|
|
55
|
+
algorithm?: 'HS256' | 'HS384' | 'HS512';
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* OAuth2 授权码配置
|
|
59
|
+
*/
|
|
60
|
+
export interface OAuth2CodeConfig {
|
|
61
|
+
/**
|
|
62
|
+
* 授权码过期时间(秒)
|
|
63
|
+
* @default 600 (10 minutes)
|
|
64
|
+
*/
|
|
65
|
+
expiresIn?: number;
|
|
66
|
+
/**
|
|
67
|
+
* 授权码长度
|
|
68
|
+
* @default 32
|
|
69
|
+
*/
|
|
70
|
+
length?: number;
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* OAuth2 客户端配置
|
|
74
|
+
*/
|
|
75
|
+
export interface OAuth2Client {
|
|
76
|
+
/**
|
|
77
|
+
* 客户端 ID
|
|
78
|
+
*/
|
|
79
|
+
clientId: string;
|
|
80
|
+
/**
|
|
81
|
+
* 客户端密钥
|
|
82
|
+
*/
|
|
83
|
+
clientSecret: string;
|
|
84
|
+
/**
|
|
85
|
+
* 重定向 URI 列表
|
|
86
|
+
*/
|
|
87
|
+
redirectUris: string[];
|
|
88
|
+
/**
|
|
89
|
+
* 允许的授权类型
|
|
90
|
+
*/
|
|
91
|
+
grantTypes: ('authorization_code' | 'refresh_token')[];
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* OAuth2 授权请求
|
|
95
|
+
*/
|
|
96
|
+
export interface OAuth2AuthorizationRequest {
|
|
97
|
+
/**
|
|
98
|
+
* 客户端 ID
|
|
99
|
+
*/
|
|
100
|
+
clientId: string;
|
|
101
|
+
/**
|
|
102
|
+
* 重定向 URI
|
|
103
|
+
*/
|
|
104
|
+
redirectUri: string;
|
|
105
|
+
/**
|
|
106
|
+
* 响应类型
|
|
107
|
+
*/
|
|
108
|
+
responseType: 'code';
|
|
109
|
+
/**
|
|
110
|
+
* 作用域(可选)
|
|
111
|
+
*/
|
|
112
|
+
scope?: string;
|
|
113
|
+
/**
|
|
114
|
+
* 状态(用于 CSRF 防护)
|
|
115
|
+
*/
|
|
116
|
+
state?: string;
|
|
117
|
+
}
|
|
118
|
+
/**
|
|
119
|
+
* OAuth2 令牌请求
|
|
120
|
+
*/
|
|
121
|
+
export interface OAuth2TokenRequest {
|
|
122
|
+
/**
|
|
123
|
+
* 授权码
|
|
124
|
+
*/
|
|
125
|
+
code: string;
|
|
126
|
+
/**
|
|
127
|
+
* 客户端 ID
|
|
128
|
+
*/
|
|
129
|
+
clientId: string;
|
|
130
|
+
/**
|
|
131
|
+
* 客户端密钥
|
|
132
|
+
*/
|
|
133
|
+
clientSecret: string;
|
|
134
|
+
/**
|
|
135
|
+
* 重定向 URI
|
|
136
|
+
*/
|
|
137
|
+
redirectUri: string;
|
|
138
|
+
/**
|
|
139
|
+
* 授权类型
|
|
140
|
+
*/
|
|
141
|
+
grantType: 'authorization_code' | 'refresh_token';
|
|
142
|
+
/**
|
|
143
|
+
* 刷新令牌(用于 refresh_token 授权类型)
|
|
144
|
+
*/
|
|
145
|
+
refreshToken?: string;
|
|
146
|
+
}
|
|
147
|
+
/**
|
|
148
|
+
* OAuth2 令牌响应
|
|
149
|
+
*/
|
|
150
|
+
export interface OAuth2TokenResponse {
|
|
151
|
+
/**
|
|
152
|
+
* 访问令牌
|
|
153
|
+
*/
|
|
154
|
+
accessToken: string;
|
|
155
|
+
/**
|
|
156
|
+
* 令牌类型
|
|
157
|
+
*/
|
|
158
|
+
tokenType: 'Bearer';
|
|
159
|
+
/**
|
|
160
|
+
* 过期时间(秒)
|
|
161
|
+
*/
|
|
162
|
+
expiresIn: number;
|
|
163
|
+
/**
|
|
164
|
+
* 刷新令牌
|
|
165
|
+
*/
|
|
166
|
+
refreshToken?: string;
|
|
167
|
+
/**
|
|
168
|
+
* 作用域
|
|
169
|
+
*/
|
|
170
|
+
scope?: string;
|
|
171
|
+
}
|
|
172
|
+
/**
|
|
173
|
+
* 认证模块配置(已废弃,请使用 SecurityModuleConfig)
|
|
174
|
+
* @deprecated 使用 SecurityModule.forRoot() 替代
|
|
175
|
+
*/
|
|
176
|
+
export interface AuthModuleOptions {
|
|
177
|
+
/**
|
|
178
|
+
* JWT 配置
|
|
179
|
+
*/
|
|
180
|
+
jwt: JWTConfig;
|
|
181
|
+
/**
|
|
182
|
+
* OAuth2 客户端列表
|
|
183
|
+
*/
|
|
184
|
+
clients?: OAuth2Client[];
|
|
185
|
+
/**
|
|
186
|
+
* 授权码配置
|
|
187
|
+
*/
|
|
188
|
+
codeConfig?: OAuth2CodeConfig;
|
|
189
|
+
/**
|
|
190
|
+
* 是否启用 OAuth2 端点
|
|
191
|
+
* @default true
|
|
192
|
+
*/
|
|
193
|
+
enableOAuth2Endpoints?: boolean;
|
|
194
|
+
/**
|
|
195
|
+
* OAuth2 端点前缀
|
|
196
|
+
* @default '/oauth2'
|
|
197
|
+
*/
|
|
198
|
+
oauth2Prefix?: string;
|
|
199
|
+
}
|
|
200
|
+
/**
|
|
201
|
+
* 用户信息
|
|
202
|
+
*/
|
|
203
|
+
export interface UserInfo {
|
|
204
|
+
/**
|
|
205
|
+
* 用户 ID
|
|
206
|
+
*/
|
|
207
|
+
id: string;
|
|
208
|
+
/**
|
|
209
|
+
* 用户名
|
|
210
|
+
*/
|
|
211
|
+
username: string;
|
|
212
|
+
/**
|
|
213
|
+
* 角色列表
|
|
214
|
+
*/
|
|
215
|
+
roles?: string[];
|
|
216
|
+
/**
|
|
217
|
+
* 其他属性
|
|
218
|
+
*/
|
|
219
|
+
[key: string]: unknown;
|
|
220
|
+
}
|
|
221
|
+
/**
|
|
222
|
+
* 认证上下文(附加到 Context)
|
|
223
|
+
*/
|
|
224
|
+
export interface AuthContext {
|
|
225
|
+
/**
|
|
226
|
+
* 用户信息
|
|
227
|
+
*/
|
|
228
|
+
user?: UserInfo;
|
|
229
|
+
/**
|
|
230
|
+
* JWT 载荷
|
|
231
|
+
*/
|
|
232
|
+
payload?: JWTPayload;
|
|
233
|
+
/**
|
|
234
|
+
* 是否已认证
|
|
235
|
+
*/
|
|
236
|
+
isAuthenticated: boolean;
|
|
237
|
+
}
|
|
238
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/auth/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"controller.d.ts","sourceRoot":"","sources":["../../src/controller/controller.ts"],"names":[],"mappings":"AAAA,OAAO,kBAAkB,CAAC;AAC1B,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAS5C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAE/C;;GAEG;AACH,eAAO,MAAM,uBAAuB,eAAuB,CAAC;AAE5D;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IAEb;;OAEG;IACH,MAAM,EAAE,KAAK,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,OAAO,CAAC;CAC7C;AAED;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,IAAI,GAAE,MAAW,IACzB,QAAQ,WAAW,CAAC,OAAO,CAAC,UAI9C;AAED;;;GAGG;AACH,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAqB;IAC5C,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAY;IACtC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAA2D;IACvF,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAA8C;IAEnF,OAAO;IAIP;;OAEG;WACW,WAAW,IAAI,kBAAkB;IAO/C;;;OAGG;IACI,QAAQ,CAAC,eAAe,EAAE,WAAW,CAAC,OAAO,CAAC,EAAE,SAAS,CAAC,EAAE,SAAS,GAAG,IAAI;
|
|
1
|
+
{"version":3,"file":"controller.d.ts","sourceRoot":"","sources":["../../src/controller/controller.ts"],"names":[],"mappings":"AAAA,OAAO,kBAAkB,CAAC;AAC1B,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAS5C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAE/C;;GAEG;AACH,eAAO,MAAM,uBAAuB,eAAuB,CAAC;AAE5D;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IAEb;;OAEG;IACH,MAAM,EAAE,KAAK,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,OAAO,CAAC;CAC7C;AAED;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,IAAI,GAAE,MAAW,IACzB,QAAQ,WAAW,CAAC,OAAO,CAAC,UAI9C;AAED;;;GAGG;AACH,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAqB;IAC5C,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAY;IACtC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAA2D;IACvF,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAA8C;IAEnF,OAAO;IAIP;;OAEG;WACW,WAAW,IAAI,kBAAkB;IAO/C;;;OAGG;IACI,QAAQ,CAAC,eAAe,EAAE,WAAW,CAAC,OAAO,CAAC,EAAE,SAAS,CAAC,EAAE,SAAS,GAAG,IAAI;IAiInF;;;;;OAKG;IACH,OAAO,CAAC,YAAY;IAepB;;;OAGG;IACI,YAAY,IAAI,SAAS;IAIhC;;;OAGG;IACI,wBAAwB,IAAI,WAAW,CAAC,OAAO,CAAC,EAAE;IAIzD;;OAEG;IACI,KAAK,IAAI,IAAI;CAKrB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"application.d.ts","sourceRoot":"","sources":["../../src/core/application.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAsB,MAAM,UAAU,CAAC;AAKzD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAGhD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAGhE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;AAE1C;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;;GAGG;AACH,qBAAa,WAAW;IACtB,OAAO,CAAC,MAAM,CAAC,CAAY;IAC3B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAqB;IAC7C,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAqB;IACxD,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAA2B;IAC7D,OAAO,CAAC,QAAQ,CAAC,UAAU,CAA8B;gBAEtC,OAAO,GAAE,kBAAuB;
|
|
1
|
+
{"version":3,"file":"application.d.ts","sourceRoot":"","sources":["../../src/core/application.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAsB,MAAM,UAAU,CAAC;AAKzD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAGhD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAGhE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;AAE1C;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;;GAGG;AACH,qBAAa,WAAW;IACtB,OAAO,CAAC,MAAM,CAAC,CAAY;IAC3B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAqB;IAC7C,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAqB;IACxD,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAA2B;IAC7D,OAAO,CAAC,QAAQ,CAAC,UAAU,CAA8B;gBAEtC,OAAO,GAAE,kBAAuB;IAcnD;;;OAGG;IACI,GAAG,CAAC,UAAU,EAAE,UAAU,GAAG,IAAI;IAIxC;;OAEG;IACI,MAAM,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI;IAgBrD;;OAEG;IACI,IAAI,IAAI,IAAI;IAInB;;;;OAIG;YACW,aAAa;IAsB3B;;;OAGG;IACI,kBAAkB,CAAC,eAAe,EAAE,WAAW,CAAC,OAAO,CAAC,GAAG,IAAI;IAKtE;;;OAGG;IACI,cAAc,CAAC,WAAW,EAAE,WAAW,GAAG,IAAI;IAgBrD;;;OAGG;IACI,wBAAwB,CAAC,YAAY,EAAE,WAAW,CAAC,OAAO,CAAC,GAAG,IAAI;IAIzE;;;OAGG;IACI,iBAAiB,CAAC,SAAS,EAAE,oBAAoB,GAAG,IAAI;IAK/D;;;OAGG;IACI,SAAS,IAAI,SAAS,GAAG,SAAS;IAIzC;;;OAGG;IACI,YAAY;CAGpB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../src/core/context.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAGjD;;;GAGG;AACH,qBAAa,OAAO;IAClB;;OAEG;IACH,SAAgB,OAAO,EAAE,OAAO,CAAC;IAEjC;;OAEG;IACI,QAAQ,CAAC,EAAE,QAAQ,CAAC;IAE3B;;OAEG;IACH,SAAgB,GAAG,EAAE,GAAG,CAAC;IAEzB;;OAEG;IACH,SAAgB,MAAM,EAAE,MAAM,CAAC;IAE/B;;OAEG;IACH,SAAgB,IAAI,EAAE,MAAM,CAAC;IAE7B;;OAEG;IACH,SAAgB,KAAK,EAAE,eAAe,CAAC;IAEvC;;OAEG;IACI,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAM;IAE3C;;OAEG;IACH,SAAgB,OAAO,EAAE,OAAO,CAAC;IAEjC;;OAEG;IACI,eAAe,EAAE,OAAO,CAAC;IAEhC;;OAEG;IACI,UAAU,EAAE,MAAM,CAAO;IAEhC;;OAEG;IACI,KAAK,EAAE,gBAAgB,EAAE,CAAM;IAEtC;;OAEG;IACH,OAAO,CAAC,KAAK,CAAC,CAAU;IAExB;;OAEG;IACH,OAAO,CAAC,WAAW,CAAkB;gBAElB,OAAO,EAAE,OAAO;IAUnC;;;OAGG;IACU,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC;IAQxC;;;OAGG;IACH,IAAW,IAAI,IAAI,OAAO,CAEzB;IAED;;;OAGG;IACH,IAAW,IAAI,CAAC,IAAI,EAAE,OAAO,EAG5B;IAED;;;;OAIG;IACI,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAI3C;;;OAGG;IACI,WAAW,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAQ5C;;;;OAIG;IACI,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAIhD;;;;OAIG;IACI,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAI5C;;;;OAIG;IACI,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAIlD;;;OAGG;IACI,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAIpC;;;;;OAKG;IACI,cAAc,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,YAAY,GAAG,QAAQ;
|
|
1
|
+
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../src/core/context.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAGjD;;;GAGG;AACH,qBAAa,OAAO;IAClB;;OAEG;IACH,SAAgB,OAAO,EAAE,OAAO,CAAC;IAEjC;;OAEG;IACI,QAAQ,CAAC,EAAE,QAAQ,CAAC;IAE3B;;OAEG;IACH,SAAgB,GAAG,EAAE,GAAG,CAAC;IAEzB;;OAEG;IACH,SAAgB,MAAM,EAAE,MAAM,CAAC;IAE/B;;OAEG;IACH,SAAgB,IAAI,EAAE,MAAM,CAAC;IAE7B;;OAEG;IACH,SAAgB,KAAK,EAAE,eAAe,CAAC;IAEvC;;OAEG;IACI,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAM;IAE3C;;OAEG;IACH,SAAgB,OAAO,EAAE,OAAO,CAAC;IAEjC;;OAEG;IACI,eAAe,EAAE,OAAO,CAAC;IAEhC;;OAEG;IACI,UAAU,EAAE,MAAM,CAAO;IAEhC;;OAEG;IACI,KAAK,EAAE,gBAAgB,EAAE,CAAM;IAEtC;;OAEG;IACH,OAAO,CAAC,KAAK,CAAC,CAAU;IAExB;;OAEG;IACH,OAAO,CAAC,WAAW,CAAkB;gBAElB,OAAO,EAAE,OAAO;IAUnC;;;OAGG;IACU,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC;IAQxC;;;OAGG;IACH,IAAW,IAAI,IAAI,OAAO,CAEzB;IAED;;;OAGG;IACH,IAAW,IAAI,CAAC,IAAI,EAAE,OAAO,EAG5B;IAED;;;;OAIG;IACI,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAI3C;;;OAGG;IACI,WAAW,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAQ5C;;;;OAIG;IACI,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAIhD;;;;OAIG;IACI,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAI5C;;;;OAIG;IACI,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAIlD;;;OAGG;IACI,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAIpC;;;;;OAKG;IACI,cAAc,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,YAAY,GAAG,QAAQ;CA2BrE"}
|
|
@@ -1,11 +1,15 @@
|
|
|
1
1
|
import { Container } from './container';
|
|
2
|
-
import {
|
|
2
|
+
import { getModuleMetadata, type ModuleClass } from './module';
|
|
3
|
+
import type { ApplicationExtension } from '../extensions/types';
|
|
4
|
+
import type { Middleware } from '../middleware';
|
|
3
5
|
interface ModuleRef {
|
|
4
6
|
moduleClass: ModuleClass;
|
|
5
|
-
metadata:
|
|
7
|
+
metadata: ReturnType<typeof getModuleMetadata>;
|
|
6
8
|
container: Container;
|
|
7
9
|
controllersRegistered: boolean;
|
|
8
10
|
attachedParents: Set<Container>;
|
|
11
|
+
extensions: ApplicationExtension[];
|
|
12
|
+
middlewares: Middleware[];
|
|
9
13
|
}
|
|
10
14
|
export declare class ModuleRegistry {
|
|
11
15
|
private static instance;
|
|
@@ -21,6 +25,14 @@ export declare class ModuleRegistry {
|
|
|
21
25
|
private registerProviders;
|
|
22
26
|
private registerControllers;
|
|
23
27
|
private attachModuleToParent;
|
|
28
|
+
/**
|
|
29
|
+
* 获取模块的所有扩展(包括导入模块的扩展)
|
|
30
|
+
*/
|
|
31
|
+
getModuleExtensions(moduleClass: ModuleClass): ApplicationExtension[];
|
|
32
|
+
/**
|
|
33
|
+
* 获取模块的所有中间件(包括导入模块的中间件)
|
|
34
|
+
*/
|
|
35
|
+
getModuleMiddlewares(moduleClass: ModuleClass): Middleware[];
|
|
24
36
|
private registerExport;
|
|
25
37
|
}
|
|
26
38
|
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"module-registry.d.ts","sourceRoot":"","sources":["../../src/di/module-registry.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAExC,OAAO,
|
|
1
|
+
{"version":3,"file":"module-registry.d.ts","sourceRoot":"","sources":["../../src/di/module-registry.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAExC,OAAO,EAAE,iBAAiB,EAAE,KAAK,WAAW,EAA2C,MAAM,UAAU,CAAC;AAExG,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAChE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAEhD,UAAU,SAAS;IACjB,WAAW,EAAE,WAAW,CAAC;IACzB,QAAQ,EAAE,UAAU,CAAC,OAAO,iBAAiB,CAAC,CAAC;IAC/C,SAAS,EAAE,SAAS,CAAC;IACrB,qBAAqB,EAAE,OAAO,CAAC;IAC/B,eAAe,EAAE,GAAG,CAAC,SAAS,CAAC,CAAC;IAChC,UAAU,EAAE,oBAAoB,EAAE,CAAC;IACnC,WAAW,EAAE,UAAU,EAAE,CAAC;CAC3B;AAED,qBAAa,cAAc;IACzB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAiB;IACxC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAqC;IAChE,OAAO,CAAC,QAAQ,CAAC,UAAU,CAA0B;IACrD,OAAO,CAAC,aAAa,CAAC,CAAY;WAEpB,WAAW,IAAI,cAAc;IAOpC,QAAQ,CAAC,WAAW,EAAE,WAAW,EAAE,eAAe,EAAE,SAAS,GAAG,SAAS;IAOzE,YAAY,CAAC,WAAW,EAAE,WAAW,GAAG,SAAS,GAAG,SAAS;IAI7D,KAAK,IAAI,IAAI;IAMpB,OAAO,CAAC,aAAa;IAcrB,OAAO,CAAC,oBAAoB;IAyB5B,OAAO,CAAC,iBAAiB;IAgCzB,OAAO,CAAC,mBAAmB;IAW3B,OAAO,CAAC,oBAAoB;IAkB5B;;OAEG;IACI,mBAAmB,CAAC,WAAW,EAAE,WAAW,GAAG,oBAAoB,EAAE;IAQ5E;;OAEG;IACI,oBAAoB,CAAC,WAAW,EAAE,WAAW,GAAG,UAAU,EAAE;IAQnE,OAAO,CAAC,cAAc;CAgBvB"}
|
package/dist/di/module.d.ts
CHANGED
|
@@ -2,6 +2,8 @@ import 'reflect-metadata';
|
|
|
2
2
|
import type { Constructor } from '@/core/types';
|
|
3
3
|
import type { Container } from './container';
|
|
4
4
|
import type { Lifecycle } from './types';
|
|
5
|
+
import type { ApplicationExtension } from '../extensions/types';
|
|
6
|
+
import type { Middleware } from '../middleware';
|
|
5
7
|
export type ModuleClass<T = unknown> = Constructor<T>;
|
|
6
8
|
export type ProviderToken = Constructor<unknown> | string | symbol;
|
|
7
9
|
export interface ClassProvider {
|
|
@@ -24,7 +26,16 @@ export interface ModuleMetadata {
|
|
|
24
26
|
controllers?: Constructor<unknown>[];
|
|
25
27
|
providers?: ModuleProvider[];
|
|
26
28
|
exports?: ProviderToken[];
|
|
29
|
+
/**
|
|
30
|
+
* 应用扩展列表
|
|
31
|
+
*/
|
|
32
|
+
extensions?: ApplicationExtension[];
|
|
33
|
+
/**
|
|
34
|
+
* 中间件列表
|
|
35
|
+
*/
|
|
36
|
+
middlewares?: Middleware[];
|
|
27
37
|
}
|
|
38
|
+
export declare const MODULE_METADATA_KEY: unique symbol;
|
|
28
39
|
export declare function Module(metadata: ModuleMetadata): ClassDecorator;
|
|
29
|
-
export declare function getModuleMetadata(moduleClass: ModuleClass): Required<ModuleMetadata>;
|
|
40
|
+
export declare function getModuleMetadata(moduleClass: ModuleClass): Required<Omit<ModuleMetadata, 'extensions' | 'middlewares'>> & Pick<ModuleMetadata, 'extensions' | 'middlewares'>;
|
|
30
41
|
//# sourceMappingURL=module.d.ts.map
|
package/dist/di/module.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"module.d.ts","sourceRoot":"","sources":["../../src/di/module.ts"],"names":[],"mappings":"AAAA,OAAO,kBAAkB,CAAC;AAE1B,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"module.d.ts","sourceRoot":"","sources":["../../src/di/module.ts"],"names":[],"mappings":"AAAA,OAAO,kBAAkB,CAAC;AAE1B,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACzC,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAChE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAEhD,MAAM,MAAM,WAAW,CAAC,CAAC,GAAG,OAAO,IAAI,WAAW,CAAC,CAAC,CAAC,CAAC;AACtD,MAAM,MAAM,aAAa,GAAG,WAAW,CAAC,OAAO,CAAC,GAAG,MAAM,GAAG,MAAM,CAAC;AAEnE,MAAM,WAAW,aAAa;IAC5B,OAAO,CAAC,EAAE,aAAa,CAAC;IACxB,QAAQ,EAAE,WAAW,CAAC,OAAO,CAAC,CAAC;IAC/B,SAAS,CAAC,EAAE,SAAS,CAAC;CACvB;AAED,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,aAAa,CAAC;IACvB,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,aAAa,CAAC;IACvB,UAAU,EAAE,CAAC,SAAS,EAAE,SAAS,KAAK,OAAO,CAAC;IAC9C,SAAS,CAAC,EAAE,SAAS,CAAC;CACvB;AAED,MAAM,MAAM,cAAc,GAAG,WAAW,CAAC,OAAO,CAAC,GAAG,aAAa,GAAG,aAAa,GAAG,eAAe,CAAC;AAEpG,MAAM,WAAW,cAAc;IAC7B,OAAO,CAAC,EAAE,WAAW,EAAE,CAAC;IACxB,WAAW,CAAC,EAAE,WAAW,CAAC,OAAO,CAAC,EAAE,CAAC;IACrC,SAAS,CAAC,EAAE,cAAc,EAAE,CAAC;IAC7B,OAAO,CAAC,EAAE,aAAa,EAAE,CAAC;IAC1B;;OAEG;IACH,UAAU,CAAC,EAAE,oBAAoB,EAAE,CAAC;IACpC;;OAEG;IACH,WAAW,CAAC,EAAE,UAAU,EAAE,CAAC;CAC5B;AAED,eAAO,MAAM,mBAAmB,eAAsC,CAAC;AAEvE,wBAAgB,MAAM,CAAC,QAAQ,EAAE,cAAc,GAAG,cAAc,CAI/D;AAED,wBAAgB,iBAAiB,CAAC,WAAW,EAAE,WAAW,GAAG,QAAQ,CAAC,IAAI,CAAC,cAAc,EAAE,YAAY,GAAG,aAAa,CAAC,CAAC,GAAG,IAAI,CAAC,cAAc,EAAE,YAAY,GAAG,aAAa,CAAC,CAU7K"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
export type { ApplicationExtension } from "./types";
|
|
2
2
|
export { LOGGER_TOKEN, LoggerExtension } from "./logger-extension";
|
|
3
|
+
export { LoggerModule, type LoggerModuleOptions } from "./logger-module";
|
|
3
4
|
export { LoggerManager, LogLevel, SimpleLogger } from "@dangao/logsmith";
|
|
4
5
|
export type { LogEntry, Logger, LoggerOptions } from "@dangao/logsmith";
|
|
5
6
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/extensions/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACnE,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AACzE,YAAY,EAAE,QAAQ,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/extensions/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACnE,OAAO,EAAE,YAAY,EAAE,KAAK,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AACzE,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AACzE,YAAY,EAAE,QAAQ,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import type { LoggerOptions } from '@dangao/logsmith';
|
|
2
|
+
/**
|
|
3
|
+
* Logger 模块配置
|
|
4
|
+
*/
|
|
5
|
+
export interface LoggerModuleOptions {
|
|
6
|
+
/**
|
|
7
|
+
* Logger 选项
|
|
8
|
+
*/
|
|
9
|
+
logger?: LoggerOptions;
|
|
10
|
+
/**
|
|
11
|
+
* 是否启用请求日志中间件
|
|
12
|
+
*/
|
|
13
|
+
enableRequestLogging?: boolean;
|
|
14
|
+
/**
|
|
15
|
+
* 请求日志中间件前缀
|
|
16
|
+
*/
|
|
17
|
+
requestLoggingPrefix?: string;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Logger 模块
|
|
21
|
+
* 提供日志功能和请求日志中间件
|
|
22
|
+
*/
|
|
23
|
+
export declare class LoggerModule {
|
|
24
|
+
/**
|
|
25
|
+
* 创建 Logger 模块
|
|
26
|
+
* @param options - 模块配置
|
|
27
|
+
*/
|
|
28
|
+
static forRoot(options?: LoggerModuleOptions): typeof LoggerModule;
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=logger-module.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logger-module.d.ts","sourceRoot":"","sources":["../../src/extensions/logger-module.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEtD;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC;;OAEG;IACH,MAAM,CAAC,EAAE,aAAa,CAAC;IACvB;;OAEG;IACH,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B;;OAEG;IACH,oBAAoB,CAAC,EAAE,MAAM,CAAC;CAC/B;AAED;;;GAGG;AACH,qBAQa,YAAY;IACvB;;;OAGG;WACW,OAAO,CAAC,OAAO,GAAE,mBAAwB,GAAG,OAAO,YAAY;CA2B9E"}
|
package/dist/index.d.ts
CHANGED
|
@@ -18,6 +18,9 @@ export { createLoggerMiddleware, createRequestLoggingMiddleware, createErrorHand
|
|
|
18
18
|
export { Validate, IsString, IsNumber, IsEmail, IsOptional, MinLength, ValidationError, type ValidationIssue, } from './validation';
|
|
19
19
|
export { HttpException, BadRequestException, UnauthorizedException, ForbiddenException, NotFoundException, InternalServerErrorException, ExceptionFilterRegistry, type ExceptionFilter, } from './error';
|
|
20
20
|
export { WebSocketGateway, OnOpen, OnMessage, OnClose, WebSocketGatewayRegistry, type WebSocketConnectionData, } from './websocket';
|
|
21
|
-
export { LoggerExtension, LogLevel, LOGGER_TOKEN, type Logger, type LoggerOptions, type LogEntry, } from './extensions';
|
|
21
|
+
export { LoggerExtension, LoggerModule, LogLevel, LOGGER_TOKEN, type Logger, type LoggerOptions, type LoggerModuleOptions, type LogEntry, } from './extensions';
|
|
22
|
+
export { SwaggerExtension, SwaggerModule, SwaggerGenerator, createSwaggerUIMiddleware, ApiTags, ApiOperation, ApiParam, ApiBody, ApiResponse, type SwaggerOptions, type SwaggerModuleOptions, type SwaggerDocument, type ApiOperationMetadata, type ApiParamMetadata, type ApiBodyMetadata, type ApiResponseMetadata, } from './swagger';
|
|
23
|
+
export { SecurityModule, SecurityContextHolder, AuthenticationManager, RoleBasedAccessDecisionManager, JwtAuthenticationProvider, OAuth2AuthenticationProvider, createSecurityFilter, type SecurityModuleConfig, type SecurityConfig, type SecurityContext, type Authentication, type AuthenticationProvider, type AuthenticationRequest, type Principal, type Credentials, type AccessDecisionManager, } from './security';
|
|
24
|
+
export { JWTUtil, OAuth2Service, OAuth2Controller, Auth, getAuthMetadata, requiresAuth, checkRoles, OAUTH2_SERVICE_TOKEN, JWT_UTIL_TOKEN, type JWTConfig, type JWTPayload, type OAuth2Client, type OAuth2AuthorizationRequest, type OAuth2TokenRequest, type OAuth2TokenResponse, type UserInfo, type AuthContext, type AuthConfig, } from './auth';
|
|
22
25
|
export { PerformanceHarness, StressTester, type BenchmarkResult, type StressResult, } from './testing/harness';
|
|
23
26
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,KAAK,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAC1E,OAAO,EAAE,SAAS,EAAE,KAAK,aAAa,EAAE,MAAM,eAAe,CAAC;AAC9D,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AACzC,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACxD,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AACpE,YAAY,EAAE,UAAU,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC3E,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AACxE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,UAAU,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AACvG,YAAY,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AACtE,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACrD,OAAO,EAAE,SAAS,EAAE,KAAK,cAAc,EAAE,KAAK,kBAAkB,EAAE,MAAM,YAAY,CAAC;AACrF,OAAO,EACL,MAAM,EACN,KAAK,cAAc,EACnB,KAAK,cAAc,EACnB,KAAK,WAAW,GACjB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AACjE,YAAY,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC7D,OAAO,EACL,sBAAsB,EACtB,8BAA8B,EAC9B,6BAA6B,EAC7B,oBAAoB,EACpB,0BAA0B,EAC1B,0BAA0B,GAC3B,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,OAAO,EACP,UAAU,EACV,SAAS,EACT,eAAe,EACf,KAAK,eAAe,GACrB,MAAM,cAAc,CAAC;AACtB,OAAO,EACL,aAAa,EACb,mBAAmB,EACnB,qBAAqB,EACrB,kBAAkB,EAClB,iBAAiB,EACjB,4BAA4B,EAC5B,uBAAuB,EACvB,KAAK,eAAe,GACrB,MAAM,SAAS,CAAC;AACjB,OAAO,EACL,gBAAgB,EAChB,MAAM,EACN,SAAS,EACT,OAAO,EACP,wBAAwB,EACxB,KAAK,uBAAuB,GAC7B,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,eAAe,EACf,QAAQ,EACR,YAAY,EACZ,KAAK,MAAM,EACX,KAAK,aAAa,EAClB,KAAK,QAAQ,GACd,MAAM,cAAc,CAAC;AACtB,OAAO,EACL,kBAAkB,EAClB,YAAY,EACZ,KAAK,eAAe,EACpB,KAAK,YAAY,GAClB,MAAM,mBAAmB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|