@dangao/bun-server 1.7.0 → 1.8.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +196 -19
- package/dist/cache/cache-module.d.ts +18 -0
- package/dist/cache/cache-module.d.ts.map +1 -1
- package/dist/cache/index.d.ts +3 -1
- package/dist/cache/index.d.ts.map +1 -1
- package/dist/cache/interceptors.d.ts +41 -0
- package/dist/cache/interceptors.d.ts.map +1 -0
- package/dist/cache/service-proxy.d.ts +62 -0
- package/dist/cache/service-proxy.d.ts.map +1 -0
- package/dist/controller/controller.d.ts +8 -0
- package/dist/controller/controller.d.ts.map +1 -1
- package/dist/core/application.d.ts +5 -0
- package/dist/core/application.d.ts.map +1 -1
- package/dist/di/container.d.ts +18 -1
- package/dist/di/container.d.ts.map +1 -1
- package/dist/di/decorators.d.ts +37 -0
- package/dist/di/decorators.d.ts.map +1 -1
- package/dist/di/index.d.ts +2 -2
- package/dist/di/index.d.ts.map +1 -1
- package/dist/di/module-registry.d.ts +17 -0
- package/dist/di/module-registry.d.ts.map +1 -1
- package/dist/di/types.d.ts +22 -0
- package/dist/di/types.d.ts.map +1 -1
- package/dist/events/decorators.d.ts +52 -0
- package/dist/events/decorators.d.ts.map +1 -0
- package/dist/events/event-module.d.ts +97 -0
- package/dist/events/event-module.d.ts.map +1 -0
- package/dist/events/index.d.ts +5 -0
- package/dist/events/index.d.ts.map +1 -0
- package/dist/events/service.d.ts +76 -0
- package/dist/events/service.d.ts.map +1 -0
- package/dist/events/types.d.ts +184 -0
- package/dist/events/types.d.ts.map +1 -0
- package/dist/index.d.ts +6 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4641 -2840
- package/dist/security/filter.d.ts +23 -0
- package/dist/security/filter.d.ts.map +1 -1
- package/dist/security/guards/builtin/auth-guard.d.ts +44 -0
- package/dist/security/guards/builtin/auth-guard.d.ts.map +1 -0
- package/dist/security/guards/builtin/index.d.ts +3 -0
- package/dist/security/guards/builtin/index.d.ts.map +1 -0
- package/dist/security/guards/builtin/roles-guard.d.ts +66 -0
- package/dist/security/guards/builtin/roles-guard.d.ts.map +1 -0
- package/dist/security/guards/decorators.d.ts +50 -0
- package/dist/security/guards/decorators.d.ts.map +1 -0
- package/dist/security/guards/execution-context.d.ts +56 -0
- package/dist/security/guards/execution-context.d.ts.map +1 -0
- package/dist/security/guards/guard-registry.d.ts +67 -0
- package/dist/security/guards/guard-registry.d.ts.map +1 -0
- package/dist/security/guards/index.d.ts +7 -0
- package/dist/security/guards/index.d.ts.map +1 -0
- package/dist/security/guards/reflector.d.ts +57 -0
- package/dist/security/guards/reflector.d.ts.map +1 -0
- package/dist/security/guards/types.d.ts +126 -0
- package/dist/security/guards/types.d.ts.map +1 -0
- package/dist/security/index.d.ts +1 -0
- package/dist/security/index.d.ts.map +1 -1
- package/dist/security/security-module.d.ts +20 -0
- package/dist/security/security-module.d.ts.map +1 -1
- package/dist/validation/class-validator.d.ts +108 -0
- package/dist/validation/class-validator.d.ts.map +1 -0
- package/dist/validation/custom-validator.d.ts +130 -0
- package/dist/validation/custom-validator.d.ts.map +1 -0
- package/dist/validation/errors.d.ts +22 -2
- package/dist/validation/errors.d.ts.map +1 -1
- package/dist/validation/index.d.ts +7 -1
- package/dist/validation/index.d.ts.map +1 -1
- package/dist/validation/rules/array.d.ts +33 -0
- package/dist/validation/rules/array.d.ts.map +1 -0
- package/dist/validation/rules/common.d.ts +90 -0
- package/dist/validation/rules/common.d.ts.map +1 -0
- package/dist/validation/rules/conditional.d.ts +30 -0
- package/dist/validation/rules/conditional.d.ts.map +1 -0
- package/dist/validation/rules/index.d.ts +5 -0
- package/dist/validation/rules/index.d.ts.map +1 -0
- package/dist/validation/rules/object.d.ts +30 -0
- package/dist/validation/rules/object.d.ts.map +1 -0
- package/dist/validation/types.d.ts +52 -1
- package/dist/validation/types.d.ts.map +1 -1
- package/docs/events.md +494 -0
- package/docs/guards.md +376 -0
- package/docs/guide.md +309 -1
- package/docs/request-lifecycle.md +444 -0
- package/docs/symbol-interface-pattern.md +431 -0
- package/docs/validation.md +407 -0
- package/docs/zh/events.md +494 -0
- package/docs/zh/guards.md +376 -0
- package/docs/zh/guide.md +309 -1
- package/docs/zh/request-lifecycle.md +444 -0
- package/docs/zh/symbol-interface-pattern.md +431 -0
- package/docs/zh/validation.md +407 -0
- package/package.json +1 -1
- package/src/cache/cache-module.ts +37 -0
- package/src/cache/index.ts +16 -1
- package/src/cache/interceptors.ts +295 -0
- package/src/cache/service-proxy.ts +219 -0
- package/src/controller/controller.ts +30 -6
- package/src/core/application.ts +25 -1
- package/src/di/container.ts +57 -7
- package/src/di/decorators.ts +46 -0
- package/src/di/index.ts +17 -2
- package/src/di/module-registry.ts +39 -0
- package/src/di/types.ts +29 -0
- package/src/events/decorators.ts +103 -0
- package/src/events/event-module.ts +272 -0
- package/src/events/index.ts +32 -0
- package/src/events/service.ts +352 -0
- package/src/events/types.ts +223 -0
- package/src/index.ts +140 -1
- package/src/security/filter.ts +88 -8
- package/src/security/guards/builtin/auth-guard.ts +68 -0
- package/src/security/guards/builtin/index.ts +3 -0
- package/src/security/guards/builtin/roles-guard.ts +165 -0
- package/src/security/guards/decorators.ts +124 -0
- package/src/security/guards/execution-context.ts +152 -0
- package/src/security/guards/guard-registry.ts +164 -0
- package/src/security/guards/index.ts +7 -0
- package/src/security/guards/reflector.ts +99 -0
- package/src/security/guards/types.ts +144 -0
- package/src/security/index.ts +1 -0
- package/src/security/security-module.ts +72 -2
- package/src/validation/class-validator.ts +322 -0
- package/src/validation/custom-validator.ts +289 -0
- package/src/validation/errors.ts +50 -2
- package/src/validation/index.ts +103 -1
- package/src/validation/rules/array.ts +118 -0
- package/src/validation/rules/common.ts +286 -0
- package/src/validation/rules/conditional.ts +52 -0
- package/src/validation/rules/index.ts +51 -0
- package/src/validation/rules/object.ts +86 -0
- package/src/validation/types.ts +61 -1
- package/tests/cache/cache-decorators.test.ts +284 -0
- package/tests/controller/path-combination.test.ts +353 -0
- package/tests/di/global-module.test.ts +487 -0
- package/tests/events/event-decorators.test.ts +173 -0
- package/tests/events/event-emitter.test.ts +373 -0
- package/tests/events/event-module.test.ts +373 -0
- package/tests/security/guards/guards-integration.test.ts +371 -0
- package/tests/security/guards/guards.test.ts +775 -0
- package/tests/security/security-module.test.ts +2 -2
- package/tests/validation/class-validator.test.ts +349 -0
- package/tests/validation/custom-validator.test.ts +335 -0
- package/tests/validation/rules.test.ts +543 -0
package/dist/di/types.d.ts
CHANGED
|
@@ -1,4 +1,26 @@
|
|
|
1
1
|
import type { Constructor } from '@/core/types';
|
|
2
|
+
/**
|
|
3
|
+
* 实例后处理器接口
|
|
4
|
+
* 用于在 DI 容器创建实例后进行处理(如创建代理、注入额外依赖等)
|
|
5
|
+
*/
|
|
6
|
+
export interface InstancePostProcessor {
|
|
7
|
+
/**
|
|
8
|
+
* 处理新创建的实例
|
|
9
|
+
* @param instance - 原始实例
|
|
10
|
+
* @param constructor - 构造函数
|
|
11
|
+
* @param container - DI 容器引用
|
|
12
|
+
* @returns 处理后的实例(可以是代理)
|
|
13
|
+
*/
|
|
14
|
+
postProcess<T>(instance: T, constructor: Constructor<T>, container: unknown): T;
|
|
15
|
+
/**
|
|
16
|
+
* 优先级(数字越小优先级越高,默认 100)
|
|
17
|
+
*/
|
|
18
|
+
priority?: number;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* 实例后处理器注册表 Token
|
|
22
|
+
*/
|
|
23
|
+
export declare const INSTANCE_POST_PROCESSOR_TOKEN: unique symbol;
|
|
2
24
|
/**
|
|
3
25
|
* 依赖生命周期类型
|
|
4
26
|
*/
|
package/dist/di/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/di/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAE/C;;GAEG;AACH,oBAAY,SAAS;IACnB;;OAEG;IACH,SAAS,cAAc;IAEvB;;OAEG;IACH,SAAS,cAAc;IAEvB;;OAEG;IACH,MAAM,WAAW;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B;;OAEG;IACH,SAAS,CAAC,EAAE,SAAS,CAAC;IAEtB;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,OAAO,CAAC;IAExB;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAExB;;OAEG;IACH,cAAc,CAAC,EAAE,KAAK,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,OAAO,CAAC;CACtD;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IAEd;;OAEG;IACH,IAAI,EAAE,WAAW,CAAC,OAAO,CAAC,GAAG,MAAM,CAAC;IAEpC;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;CACzB"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/di/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAE/C;;;GAGG;AACH,MAAM,WAAW,qBAAqB;IACpC;;;;;;OAMG;IACH,WAAW,CAAC,CAAC,EACX,QAAQ,EAAE,CAAC,EACX,WAAW,EAAE,WAAW,CAAC,CAAC,CAAC,EAC3B,SAAS,EAAE,OAAO,GACjB,CAAC,CAAC;IAEL;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,eAAO,MAAM,6BAA6B,eAAiD,CAAC;AAE5F;;GAEG;AACH,oBAAY,SAAS;IACnB;;OAEG;IACH,SAAS,cAAc;IAEvB;;OAEG;IACH,SAAS,cAAc;IAEvB;;OAEG;IACH,MAAM,WAAW;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B;;OAEG;IACH,SAAS,CAAC,EAAE,SAAS,CAAC;IAEtB;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,OAAO,CAAC;IAExB;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAExB;;OAEG;IACH,cAAc,CAAC,EAAE,KAAK,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,OAAO,CAAC;CACtD;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IAEd;;OAEG;IACH,IAAI,EAAE,WAAW,CAAC,OAAO,CAAC,GAAG,MAAM,CAAC;IAEpC;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;CACzB"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import 'reflect-metadata';
|
|
2
|
+
import { type OnEventMethodMetadata } from './types';
|
|
3
|
+
/**
|
|
4
|
+
* OnEvent 装饰器选项
|
|
5
|
+
*/
|
|
6
|
+
export interface OnEventOptions {
|
|
7
|
+
/**
|
|
8
|
+
* 是否异步处理
|
|
9
|
+
* @default false
|
|
10
|
+
*/
|
|
11
|
+
async?: boolean;
|
|
12
|
+
/**
|
|
13
|
+
* 监听器优先级(数值越大优先级越高)
|
|
14
|
+
* @default 0
|
|
15
|
+
*/
|
|
16
|
+
priority?: number;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* 事件监听器装饰器
|
|
20
|
+
* 用于标记方法为事件监听器
|
|
21
|
+
*
|
|
22
|
+
* @param event - 事件名称或标识符
|
|
23
|
+
* @param options - 监听选项
|
|
24
|
+
*
|
|
25
|
+
* @example
|
|
26
|
+
* ```typescript
|
|
27
|
+
* @Injectable()
|
|
28
|
+
* class NotificationService {
|
|
29
|
+
* @OnEvent('user.created')
|
|
30
|
+
* handleUserCreated(payload: UserCreatedEvent) {
|
|
31
|
+
* console.log('User created:', payload.userId);
|
|
32
|
+
* }
|
|
33
|
+
*
|
|
34
|
+
* @OnEvent(USER_DELETED, { async: true, priority: 10 })
|
|
35
|
+
* async handleUserDeleted(payload: UserDeletedEvent) {
|
|
36
|
+
* await this.cleanup(payload.userId);
|
|
37
|
+
* }
|
|
38
|
+
* }
|
|
39
|
+
* ```
|
|
40
|
+
*/
|
|
41
|
+
export declare function OnEvent(event: string | symbol, options?: OnEventOptions): MethodDecorator;
|
|
42
|
+
/**
|
|
43
|
+
* 获取类的事件监听器元数据
|
|
44
|
+
* @param target - 目标类
|
|
45
|
+
*/
|
|
46
|
+
export declare function getOnEventMetadata(target: Function): OnEventMethodMetadata[] | undefined;
|
|
47
|
+
/**
|
|
48
|
+
* 检查类是否为事件监听器类
|
|
49
|
+
* @param target - 目标类
|
|
50
|
+
*/
|
|
51
|
+
export declare function isEventListenerClass(target: Function): boolean;
|
|
52
|
+
//# sourceMappingURL=decorators.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"decorators.d.ts","sourceRoot":"","sources":["../../src/events/decorators.ts"],"names":[],"mappings":"AAAA,OAAO,kBAAkB,CAAC;AAC1B,OAAO,EAGL,KAAK,qBAAqB,EAC3B,MAAM,SAAS,CAAC;AAEjB;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B;;;OAGG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC;IAEhB;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,OAAO,CACrB,KAAK,EAAE,MAAM,GAAG,MAAM,EACtB,OAAO,GAAE,cAAmB,GAC3B,eAAe,CAgCjB;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,QAAQ,GACf,qBAAqB,EAAE,GAAG,SAAS,CAErC;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,QAAQ,GAAG,OAAO,CAI9D"}
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
import 'reflect-metadata';
|
|
2
|
+
import type { Container } from '../di/container';
|
|
3
|
+
import { type EventModuleOptions, type EventEmitter } from './types';
|
|
4
|
+
/**
|
|
5
|
+
* 事件监听器扫描器
|
|
6
|
+
* 负责扫描和注册带有 @OnEvent() 装饰器的方法
|
|
7
|
+
*/
|
|
8
|
+
export declare class EventListenerScanner {
|
|
9
|
+
private readonly eventEmitter;
|
|
10
|
+
private readonly container;
|
|
11
|
+
/**
|
|
12
|
+
* 构造函数
|
|
13
|
+
* @param eventEmitter - 事件发射器服务
|
|
14
|
+
* @param container - DI 容器
|
|
15
|
+
*/
|
|
16
|
+
constructor(eventEmitter: EventEmitter, container: Container);
|
|
17
|
+
/**
|
|
18
|
+
* 扫描并注册监听器类
|
|
19
|
+
* @param listenerClasses - 监听器类数组
|
|
20
|
+
*/
|
|
21
|
+
scanAndRegister(listenerClasses: Function[]): void;
|
|
22
|
+
/**
|
|
23
|
+
* 注册单个监听器类
|
|
24
|
+
* @param listenerClass - 监听器类
|
|
25
|
+
*/
|
|
26
|
+
registerListenerClass(listenerClass: Function): void;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* 事件监听器扫描器 Token
|
|
30
|
+
*/
|
|
31
|
+
export declare const EVENT_LISTENER_SCANNER_TOKEN: unique symbol;
|
|
32
|
+
export declare class EventModule {
|
|
33
|
+
/**
|
|
34
|
+
* 已注册的监听器类(用于模块初始化后扫描)
|
|
35
|
+
*/
|
|
36
|
+
private static listenerClasses;
|
|
37
|
+
/**
|
|
38
|
+
* 创建事件模块
|
|
39
|
+
* @param options - 模块配置
|
|
40
|
+
*
|
|
41
|
+
* @example
|
|
42
|
+
* ```typescript
|
|
43
|
+
* @Module({
|
|
44
|
+
* imports: [
|
|
45
|
+
* EventModule.forRoot({
|
|
46
|
+
* wildcard: true,
|
|
47
|
+
* maxListeners: 20,
|
|
48
|
+
* }),
|
|
49
|
+
* ],
|
|
50
|
+
* providers: [NotificationService, AnalyticsService],
|
|
51
|
+
* })
|
|
52
|
+
* class AppModule {}
|
|
53
|
+
* ```
|
|
54
|
+
*/
|
|
55
|
+
static forRoot(options?: EventModuleOptions): typeof EventModule;
|
|
56
|
+
/**
|
|
57
|
+
* 注册监听器类
|
|
58
|
+
* 用于在模块配置后手动注册监听器类
|
|
59
|
+
*
|
|
60
|
+
* @param listenerClasses - 监听器类数组
|
|
61
|
+
*
|
|
62
|
+
* @example
|
|
63
|
+
* ```typescript
|
|
64
|
+
* EventModule.registerListeners([NotificationService, AnalyticsService]);
|
|
65
|
+
* ```
|
|
66
|
+
*/
|
|
67
|
+
static registerListeners(listenerClasses: Function[]): void;
|
|
68
|
+
/**
|
|
69
|
+
* 初始化事件监听器扫描
|
|
70
|
+
* 在应用启动时调用,扫描并注册所有监听器
|
|
71
|
+
*
|
|
72
|
+
* @param listenerContainer - 用于解析监听器服务的 DI 容器(通常是应用模块的容器)
|
|
73
|
+
* @param additionalListeners - 额外的监听器类
|
|
74
|
+
*
|
|
75
|
+
* @example
|
|
76
|
+
* ```typescript
|
|
77
|
+
* // 在 registerModule 之后调用
|
|
78
|
+
* app.registerModule(RootModule);
|
|
79
|
+
*
|
|
80
|
+
* // 方式1:传入监听器所在模块的容器(推荐)
|
|
81
|
+
* const moduleRef = ModuleRegistry.getInstance().getModuleRef(RootModule);
|
|
82
|
+
* EventModule.initializeListeners(moduleRef?.container, [NotificationService]);
|
|
83
|
+
*
|
|
84
|
+
* // 方式2:如果监听器在 EventModule 的 providers 中注册,可以不传容器
|
|
85
|
+
* EventModule.initializeListeners(undefined, [NotificationService]);
|
|
86
|
+
* ```
|
|
87
|
+
*/
|
|
88
|
+
static initializeListeners(listenerContainer?: Container, additionalListeners?: Function[]): void;
|
|
89
|
+
/**
|
|
90
|
+
* 获取事件发射器服务(静态方法)
|
|
91
|
+
* 用于在模块配置后获取事件发射器
|
|
92
|
+
*
|
|
93
|
+
* @param container - DI 容器(可选,如果不提供则从 EventModule 自身的容器获取)
|
|
94
|
+
*/
|
|
95
|
+
static getEventEmitter(container?: Container): EventEmitter | undefined;
|
|
96
|
+
}
|
|
97
|
+
//# sourceMappingURL=event-module.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"event-module.d.ts","sourceRoot":"","sources":["../../src/events/event-module.ts"],"names":[],"mappings":"AAAA,OAAO,kBAAkB,CAAC;AAE1B,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAKjD,OAAO,EAGL,KAAK,kBAAkB,EACvB,KAAK,YAAY,EAClB,MAAM,SAAS,CAAC;AAEjB;;;GAGG;AACH,qBAAa,oBAAoB;IAO7B,OAAO,CAAC,QAAQ,CAAC,YAAY;IAC7B,OAAO,CAAC,QAAQ,CAAC,SAAS;IAP5B;;;;OAIG;gBAEgB,YAAY,EAAE,YAAY,EAC1B,SAAS,EAAE,SAAS;IAGvC;;;OAGG;IACI,eAAe,CAAC,eAAe,EAAE,QAAQ,EAAE,GAAG,IAAI;IAMzD;;;OAGG;IACI,qBAAqB,CAAC,aAAa,EAAE,QAAQ,GAAG,IAAI;CA2C5D;AAED;;GAEG;AACH,eAAO,MAAM,4BAA4B,eAExC,CAAC;AAEF,qBAGa,WAAW;IACtB;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,eAAe,CAAkB;IAEhD;;;;;;;;;;;;;;;;;OAiBG;WACW,OAAO,CAAC,OAAO,GAAE,kBAAuB,GAAG,OAAO,WAAW;IAsC3E;;;;;;;;;;OAUG;WACW,iBAAiB,CAAC,eAAe,EAAE,QAAQ,EAAE,GAAG,IAAI;IAIlE;;;;;;;;;;;;;;;;;;;OAmBG;WACW,mBAAmB,CAC/B,iBAAiB,CAAC,EAAE,SAAS,EAC7B,mBAAmB,GAAE,QAAQ,EAAO,GACnC,IAAI;IA2CP;;;;;OAKG;WACW,eAAe,CAAC,SAAS,CAAC,EAAE,SAAS,GAAG,YAAY,GAAG,SAAS;CAwB/E"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export { EVENT_EMITTER_TOKEN, EVENT_OPTIONS_TOKEN, ON_EVENT_METADATA_KEY, EVENT_LISTENER_CLASS_METADATA_KEY, type EventEmitter, type EventListener, type EventMetadata, type EventModuleOptions, type ListenerOptions, type OnEventMethodMetadata, type RegisteredListener, } from './types';
|
|
2
|
+
export { EventEmitterService } from './service';
|
|
3
|
+
export { OnEvent, getOnEventMetadata, isEventListenerClass, type OnEventOptions, } from './decorators';
|
|
4
|
+
export { EventModule, EventListenerScanner, EVENT_LISTENER_SCANNER_TOKEN, } from './event-module';
|
|
5
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/events/index.ts"],"names":[],"mappings":"AACA,OAAO,EACL,mBAAmB,EACnB,mBAAmB,EACnB,qBAAqB,EACrB,iCAAiC,EACjC,KAAK,YAAY,EACjB,KAAK,aAAa,EAClB,KAAK,aAAa,EAClB,KAAK,kBAAkB,EACvB,KAAK,eAAe,EACpB,KAAK,qBAAqB,EAC1B,KAAK,kBAAkB,GACxB,MAAM,SAAS,CAAC;AAGjB,OAAO,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAGhD,OAAO,EACL,OAAO,EACP,kBAAkB,EAClB,oBAAoB,EACpB,KAAK,cAAc,GACpB,MAAM,cAAc,CAAC;AAGtB,OAAO,EACL,WAAW,EACX,oBAAoB,EACpB,4BAA4B,GAC7B,MAAM,gBAAgB,CAAC"}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
import type { EventEmitter, EventListener, EventModuleOptions, ListenerOptions } from './types';
|
|
2
|
+
/**
|
|
3
|
+
* 事件发射器服务实现
|
|
4
|
+
*/
|
|
5
|
+
export declare class EventEmitterService implements EventEmitter {
|
|
6
|
+
/**
|
|
7
|
+
* 事件监听器映射
|
|
8
|
+
*/
|
|
9
|
+
private listeners;
|
|
10
|
+
/**
|
|
11
|
+
* 模块选项
|
|
12
|
+
*/
|
|
13
|
+
private options;
|
|
14
|
+
/**
|
|
15
|
+
* 构造函数
|
|
16
|
+
* @param options - 模块选项
|
|
17
|
+
*/
|
|
18
|
+
constructor(options?: EventModuleOptions);
|
|
19
|
+
/**
|
|
20
|
+
* 发布事件(同步触发所有监听器,不等待异步监听器完成)
|
|
21
|
+
*/
|
|
22
|
+
emit<T>(event: string | symbol, payload: T): void;
|
|
23
|
+
/**
|
|
24
|
+
* 异步发布事件(等待所有监听器完成)
|
|
25
|
+
*/
|
|
26
|
+
emitAsync<T>(event: string | symbol, payload: T): Promise<void>;
|
|
27
|
+
/**
|
|
28
|
+
* 订阅事件
|
|
29
|
+
*/
|
|
30
|
+
on<T>(event: string | symbol, listener: EventListener<T>, options?: ListenerOptions): () => void;
|
|
31
|
+
/**
|
|
32
|
+
* 一次性订阅
|
|
33
|
+
*/
|
|
34
|
+
once<T>(event: string | symbol, listener: EventListener<T>, options?: ListenerOptions): () => void;
|
|
35
|
+
/**
|
|
36
|
+
* 取消订阅
|
|
37
|
+
*/
|
|
38
|
+
off<T>(event: string | symbol, listener: EventListener<T>): void;
|
|
39
|
+
/**
|
|
40
|
+
* 移除所有监听器
|
|
41
|
+
*/
|
|
42
|
+
removeAllListeners(event?: string | symbol): void;
|
|
43
|
+
/**
|
|
44
|
+
* 获取指定事件的监听器数量
|
|
45
|
+
*/
|
|
46
|
+
listenerCount(event: string | symbol): number;
|
|
47
|
+
/**
|
|
48
|
+
* 获取所有已注册的事件名称
|
|
49
|
+
*/
|
|
50
|
+
eventNames(): (string | symbol)[];
|
|
51
|
+
/**
|
|
52
|
+
* 添加监听器
|
|
53
|
+
*/
|
|
54
|
+
private addListener;
|
|
55
|
+
/**
|
|
56
|
+
* 解析事件名称(添加全局前缀)
|
|
57
|
+
*/
|
|
58
|
+
private resolveEventName;
|
|
59
|
+
/**
|
|
60
|
+
* 获取匹配的监听器(支持通配符)
|
|
61
|
+
*/
|
|
62
|
+
private getMatchedListeners;
|
|
63
|
+
/**
|
|
64
|
+
* 匹配通配符模式
|
|
65
|
+
*/
|
|
66
|
+
private matchWildcard;
|
|
67
|
+
/**
|
|
68
|
+
* 按优先级排序监听器
|
|
69
|
+
*/
|
|
70
|
+
private sortListenersByPriority;
|
|
71
|
+
/**
|
|
72
|
+
* 处理错误
|
|
73
|
+
*/
|
|
74
|
+
private handleError;
|
|
75
|
+
}
|
|
76
|
+
//# sourceMappingURL=service.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../../src/events/service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,YAAY,EACZ,aAAa,EACb,kBAAkB,EAClB,eAAe,EAEhB,MAAM,SAAS,CAAC;AAEjB;;GAEG;AACH,qBAAa,mBAAoB,YAAW,YAAY;IACtD;;OAEG;IACH,OAAO,CAAC,SAAS,CAAyD;IAE1E;;OAEG;IACH,OAAO,CAAC,OAAO,CAAqB;IAEpC;;;OAGG;gBACgB,OAAO,GAAE,kBAAuB;IASnD;;OAEG;IACI,IAAI,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,OAAO,EAAE,CAAC,GAAG,IAAI;IA+BxD;;OAEG;IACU,SAAS,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,OAAO,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IA4C5E;;OAEG;IACI,EAAE,CAAC,CAAC,EACT,KAAK,EAAE,MAAM,GAAG,MAAM,EACtB,QAAQ,EAAE,aAAa,CAAC,CAAC,CAAC,EAC1B,OAAO,GAAE,eAAoB,GAC5B,MAAM,IAAI;IAKb;;OAEG;IACI,IAAI,CAAC,CAAC,EACX,KAAK,EAAE,MAAM,GAAG,MAAM,EACtB,QAAQ,EAAE,aAAa,CAAC,CAAC,CAAC,EAC1B,OAAO,GAAE,eAAoB,GAC5B,MAAM,IAAI;IAKb;;OAEG;IACI,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,QAAQ,EAAE,aAAa,CAAC,CAAC,CAAC,GAAG,IAAI;IAmBvE;;OAEG;IACI,kBAAkB,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IASxD;;OAEG;IACI,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM;IAMpD;;OAEG;IACI,UAAU,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE;IAIxC;;OAEG;IACH,OAAO,CAAC,WAAW;IAuCnB;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAYxB;;OAEG;IACH,OAAO,CAAC,mBAAmB;IA4B3B;;OAEG;IACH,OAAO,CAAC,aAAa;IA4CrB;;OAEG;IACH,OAAO,CAAC,uBAAuB;IAM/B;;OAEG;IACH,OAAO,CAAC,WAAW;CAcpB"}
|
|
@@ -0,0 +1,184 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 事件监听器接口
|
|
3
|
+
* @template T - 事件负载类型
|
|
4
|
+
*/
|
|
5
|
+
export interface EventListener<T = unknown> {
|
|
6
|
+
(payload: T): void | Promise<void>;
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* 事件元数据
|
|
10
|
+
*/
|
|
11
|
+
export interface EventMetadata {
|
|
12
|
+
/**
|
|
13
|
+
* 事件名称或标识符
|
|
14
|
+
*/
|
|
15
|
+
event: string | symbol;
|
|
16
|
+
/**
|
|
17
|
+
* 是否异步处理
|
|
18
|
+
* @default false
|
|
19
|
+
*/
|
|
20
|
+
async?: boolean;
|
|
21
|
+
/**
|
|
22
|
+
* 监听器优先级(数值越大优先级越高)
|
|
23
|
+
* @default 0
|
|
24
|
+
*/
|
|
25
|
+
priority?: number;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* 已注册的监听器信息
|
|
29
|
+
*/
|
|
30
|
+
export interface RegisteredListener<T = unknown> {
|
|
31
|
+
/**
|
|
32
|
+
* 监听器函数
|
|
33
|
+
*/
|
|
34
|
+
listener: EventListener<T>;
|
|
35
|
+
/**
|
|
36
|
+
* 是否一次性监听
|
|
37
|
+
*/
|
|
38
|
+
once: boolean;
|
|
39
|
+
/**
|
|
40
|
+
* 优先级
|
|
41
|
+
*/
|
|
42
|
+
priority: number;
|
|
43
|
+
/**
|
|
44
|
+
* 是否异步处理
|
|
45
|
+
*/
|
|
46
|
+
async: boolean;
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* EventEmitter 服务接口
|
|
50
|
+
*/
|
|
51
|
+
export interface EventEmitter {
|
|
52
|
+
/**
|
|
53
|
+
* 发布事件(同步触发所有监听器,不等待异步监听器完成)
|
|
54
|
+
* @param event - 事件名称或标识符
|
|
55
|
+
* @param payload - 事件负载
|
|
56
|
+
*/
|
|
57
|
+
emit<T>(event: string | symbol, payload: T): void;
|
|
58
|
+
/**
|
|
59
|
+
* 异步发布事件(等待所有监听器完成)
|
|
60
|
+
* @param event - 事件名称或标识符
|
|
61
|
+
* @param payload - 事件负载
|
|
62
|
+
*/
|
|
63
|
+
emitAsync<T>(event: string | symbol, payload: T): Promise<void>;
|
|
64
|
+
/**
|
|
65
|
+
* 订阅事件
|
|
66
|
+
* @param event - 事件名称或标识符
|
|
67
|
+
* @param listener - 监听器函数
|
|
68
|
+
* @param options - 监听选项
|
|
69
|
+
* @returns 取消订阅函数
|
|
70
|
+
*/
|
|
71
|
+
on<T>(event: string | symbol, listener: EventListener<T>, options?: ListenerOptions): () => void;
|
|
72
|
+
/**
|
|
73
|
+
* 一次性订阅
|
|
74
|
+
* @param event - 事件名称或标识符
|
|
75
|
+
* @param listener - 监听器函数
|
|
76
|
+
* @param options - 监听选项
|
|
77
|
+
* @returns 取消订阅函数
|
|
78
|
+
*/
|
|
79
|
+
once<T>(event: string | symbol, listener: EventListener<T>, options?: ListenerOptions): () => void;
|
|
80
|
+
/**
|
|
81
|
+
* 取消订阅
|
|
82
|
+
* @param event - 事件名称或标识符
|
|
83
|
+
* @param listener - 监听器函数
|
|
84
|
+
*/
|
|
85
|
+
off<T>(event: string | symbol, listener: EventListener<T>): void;
|
|
86
|
+
/**
|
|
87
|
+
* 移除指定事件的所有监听器,或移除所有事件的所有监听器
|
|
88
|
+
* @param event - 事件名称或标识符(可选)
|
|
89
|
+
*/
|
|
90
|
+
removeAllListeners(event?: string | symbol): void;
|
|
91
|
+
/**
|
|
92
|
+
* 获取指定事件的监听器数量
|
|
93
|
+
* @param event - 事件名称或标识符
|
|
94
|
+
*/
|
|
95
|
+
listenerCount(event: string | symbol): number;
|
|
96
|
+
/**
|
|
97
|
+
* 获取所有已注册的事件名称
|
|
98
|
+
*/
|
|
99
|
+
eventNames(): (string | symbol)[];
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* 监听器选项
|
|
103
|
+
*/
|
|
104
|
+
export interface ListenerOptions {
|
|
105
|
+
/**
|
|
106
|
+
* 优先级(数值越大优先级越高)
|
|
107
|
+
* @default 0
|
|
108
|
+
*/
|
|
109
|
+
priority?: number;
|
|
110
|
+
/**
|
|
111
|
+
* 是否异步处理
|
|
112
|
+
* @default false
|
|
113
|
+
*/
|
|
114
|
+
async?: boolean;
|
|
115
|
+
}
|
|
116
|
+
/**
|
|
117
|
+
* EventModule 配置选项
|
|
118
|
+
*/
|
|
119
|
+
export interface EventModuleOptions {
|
|
120
|
+
/**
|
|
121
|
+
* 是否启用通配符事件(如 'user.*')
|
|
122
|
+
* @default false
|
|
123
|
+
*/
|
|
124
|
+
wildcard?: boolean;
|
|
125
|
+
/**
|
|
126
|
+
* 通配符分隔符
|
|
127
|
+
* @default '.'
|
|
128
|
+
*/
|
|
129
|
+
delimiter?: string;
|
|
130
|
+
/**
|
|
131
|
+
* 全局事件前缀
|
|
132
|
+
*/
|
|
133
|
+
globalPrefix?: string;
|
|
134
|
+
/**
|
|
135
|
+
* 最大监听器数量(防止内存泄漏)
|
|
136
|
+
* @default 10
|
|
137
|
+
*/
|
|
138
|
+
maxListeners?: number;
|
|
139
|
+
/**
|
|
140
|
+
* 错误处理函数
|
|
141
|
+
* @param error - 错误对象
|
|
142
|
+
* @param event - 事件名称
|
|
143
|
+
* @param payload - 事件负载
|
|
144
|
+
*/
|
|
145
|
+
onError?: (error: Error, event: string | symbol, payload: unknown) => void;
|
|
146
|
+
}
|
|
147
|
+
/**
|
|
148
|
+
* 装饰器方法元数据
|
|
149
|
+
*/
|
|
150
|
+
export interface OnEventMethodMetadata {
|
|
151
|
+
/**
|
|
152
|
+
* 方法名
|
|
153
|
+
*/
|
|
154
|
+
methodName: string;
|
|
155
|
+
/**
|
|
156
|
+
* 事件名称或标识符
|
|
157
|
+
*/
|
|
158
|
+
event: string | symbol;
|
|
159
|
+
/**
|
|
160
|
+
* 是否异步处理
|
|
161
|
+
*/
|
|
162
|
+
async: boolean;
|
|
163
|
+
/**
|
|
164
|
+
* 优先级
|
|
165
|
+
*/
|
|
166
|
+
priority: number;
|
|
167
|
+
}
|
|
168
|
+
/**
|
|
169
|
+
* 事件服务 Token
|
|
170
|
+
*/
|
|
171
|
+
export declare const EVENT_EMITTER_TOKEN: unique symbol;
|
|
172
|
+
/**
|
|
173
|
+
* 事件模块选项 Token
|
|
174
|
+
*/
|
|
175
|
+
export declare const EVENT_OPTIONS_TOKEN: unique symbol;
|
|
176
|
+
/**
|
|
177
|
+
* OnEvent 装饰器元数据 Key
|
|
178
|
+
*/
|
|
179
|
+
export declare const ON_EVENT_METADATA_KEY: unique symbol;
|
|
180
|
+
/**
|
|
181
|
+
* 事件监听器类元数据 Key
|
|
182
|
+
*/
|
|
183
|
+
export declare const EVENT_LISTENER_CLASS_METADATA_KEY: unique symbol;
|
|
184
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/events/types.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -10,7 +10,7 @@ export { Body, Query, QueryMap, Param, Header, HeaderMap, ParamBinder, Controlle
|
|
|
10
10
|
export { Context as ContextParam } from './controller';
|
|
11
11
|
export type { ParamMetadata, QueryMapOptions, HeaderMapOptions, ControllerMetadata, } from './controller';
|
|
12
12
|
export { Container } from './di/container';
|
|
13
|
-
export { Injectable, Inject } from './di/decorators';
|
|
13
|
+
export { Injectable, Inject, Global, isGlobalModule, GLOBAL_MODULE_METADATA_KEY } from './di/decorators';
|
|
14
14
|
export { Lifecycle, type ProviderConfig, type DependencyMetadata } from './di/types';
|
|
15
15
|
export { Module, type ModuleMetadata, type ModuleProvider, type ModuleClass, } from './di/module';
|
|
16
16
|
export { ModuleRegistry } from './di/module-registry';
|
|
@@ -18,19 +18,20 @@ export { InterceptorRegistry, InterceptorChain, scanInterceptorMetadata, BaseInt
|
|
|
18
18
|
export { UseMiddleware, RateLimit, MiddlewarePipeline } from './middleware';
|
|
19
19
|
export type { Middleware, NextFunction } from './middleware';
|
|
20
20
|
export { createLoggerMiddleware, createRequestLoggingMiddleware, createErrorHandlingMiddleware, createCorsMiddleware, createFileUploadMiddleware, createStaticFileMiddleware, createRateLimitMiddleware, createTokenKeyGenerator, createUserKeyGenerator, type RateLimitOptions, type RateLimitStore, } from './middleware/builtin';
|
|
21
|
-
export { Validate, IsString, IsNumber, IsEmail, IsOptional, MinLength, ValidationError, type ValidationIssue, } from './validation';
|
|
21
|
+
export { Validate, IsString, IsNumber, IsEmail, IsOptional, MinLength, getValidationMetadata, type ValidationRuleDefinition, type ValidationMetadata, type ClassValidationMetadata, type ValidationOptions, validateParameters, ValidationError, type ValidationIssue, IsObject, IsNotEmpty, IsNotEmptyObject, ValidateNested, type ObjectRuleOptions, type ValidateNestedOptions, IsArray, ArrayMinSize, ArrayMaxSize, ArrayUnique, ArrayContains, ArrayNotContains, ArrayNotEmpty, type ArrayRuleOptions, IsBoolean, IsInt, IsPositive, IsNegative, Min, Max, IsDate, IsUUID, Length, MaxLength, Matches, IsIn, IsNotIn, IsUrl, IsJSON, Equals, NotEquals, IsDefined, IsAlphanumeric, IsAlpha, IsNumberString, type RuleOptions, type UUIDVersion, ValidateIf, Transform, type ConditionalRuleOptions, createCustomValidator, createSimpleValidator, createRegexValidator, IsPhoneNumber, IsIdCard, IsIPv4, IsPort, IsPostalCode, IsCreditCard, IsHexColor, IsMacAddress, IsSemVer, IsDivisibleBy, IsBetween, Contains, NotContains, type CustomValidatorOptions, ValidateClass, Property, NestedProperty, ArrayNestedProperty, validateObject, validateObjectSync, getClassValidationMetadata, isValidateClass, } from './validation';
|
|
22
22
|
export { HttpException, BadRequestException, UnauthorizedException, ForbiddenException, NotFoundException, InternalServerErrorException, ExceptionFilterRegistry, type ExceptionFilter, } from './error';
|
|
23
23
|
export { WebSocketGateway, OnOpen, OnMessage, OnClose, WebSocketGatewayRegistry, type WebSocketConnectionData, } from './websocket';
|
|
24
24
|
export { LoggerExtension, LoggerModule, LogLevel, LOGGER_TOKEN, type Logger, type LoggerOptions, type LoggerModuleOptions, type LogEntry, } from './extensions';
|
|
25
25
|
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';
|
|
26
|
-
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';
|
|
26
|
+
export { SecurityModule, SecurityContextHolder, AuthenticationManager, RoleBasedAccessDecisionManager, JwtAuthenticationProvider, OAuth2AuthenticationProvider, createSecurityFilter, getGuardRegistry, registerReflector, type SecurityModuleConfig, type SecurityConfig, type SecurityContext, type Authentication, type AuthenticationProvider, type AuthenticationRequest, type Principal, type Credentials, type AccessDecisionManager, } from './security';
|
|
27
|
+
export { UseGuards, Roles, getGuardsMetadata, getRolesMetadata, AuthGuard, OptionalAuthGuard, RolesGuard, createRolesGuard, GuardRegistry, ExecutionContextImpl, Reflector, GUARDS_METADATA_KEY, GUARD_REGISTRY_TOKEN, ROLES_METADATA_KEY, REFLECTOR_TOKEN, type CanActivate, type ExecutionContext, type HttpArgumentsHost, type WsArgumentsHost, type GuardType, type GuardMetadata, type GuardOptions, type RolesGuardOptions, } from './security/guards';
|
|
27
28
|
export { ConfigModule, ConfigService, CONFIG_SERVICE_TOKEN, type ConfigModuleOptions, } from './config';
|
|
28
29
|
export { HealthModule, type HealthIndicator, type HealthIndicatorResult, type HealthStatus, type HealthModuleOptions, HEALTH_INDICATORS_TOKEN, HEALTH_OPTIONS_TOKEN, } from './health';
|
|
29
30
|
export { MetricsModule, MetricsCollector, PrometheusFormatter, createHttpMetricsMiddleware, METRICS_SERVICE_TOKEN, METRICS_OPTIONS_TOKEN, type MetricsModuleOptions, type MetricType, type MetricLabels, type MetricValue, type MetricDataPoint, type CustomMetric, } from './metrics';
|
|
30
31
|
export { DatabaseModule, DatabaseService, DatabaseConnectionManager, ConnectionPool, DatabaseHealthIndicator, DatabaseExtension, DATABASE_SERVICE_TOKEN, DATABASE_OPTIONS_TOKEN, type DatabaseModuleOptions, type DatabaseConfig, type DatabaseType, type ConnectionInfo, type ConnectionPoolOptions, type SqliteConfig, type PostgresConfig, type MysqlConfig, Entity, Column, PrimaryKey, Repository, BaseRepository, DrizzleBaseRepository, OrmService, ORM_SERVICE_TOKEN, getEntityMetadata, getColumnMetadata, getRepositoryMetadata, type OrmModuleOptions, type BaseRepository as BaseRepositoryInterface, type EntityMetadata, type ColumnMetadata, Transactional, TransactionManager, TransactionInterceptor, Propagation, IsolationLevel, TransactionStatus, TRANSACTION_SERVICE_TOKEN, getTransactionMetadata, type TransactionOptions, type TransactionContext, } from './database';
|
|
31
32
|
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';
|
|
32
33
|
export { PerformanceHarness, StressTester, type BenchmarkResult, type StressResult, } from './testing/harness';
|
|
33
|
-
export { CacheModule, CacheService, Cacheable, CacheEvict, CachePut, MemoryCacheStore, RedisCacheStore, CACHE_SERVICE_TOKEN, CACHE_OPTIONS_TOKEN, } from './cache';
|
|
34
|
+
export { CacheModule, CacheService, Cacheable, CacheEvict, CachePut, EnableCacheProxy, CacheServiceProxy, CachePostProcessor, CacheableInterceptor, CacheEvictInterceptor, CachePutInterceptor, MemoryCacheStore, RedisCacheStore, CACHE_SERVICE_TOKEN, CACHE_OPTIONS_TOKEN, CACHE_POST_PROCESSOR_TOKEN, } from './cache';
|
|
34
35
|
export type { CacheModuleOptions, CacheStore, RedisCacheStoreOptions, CacheableOptions, CacheEvictOptions, CachePutOptions, } from './cache';
|
|
35
36
|
export { QueueModule, QueueService, Queue, Cron, MemoryQueueStore, QUEUE_SERVICE_TOKEN, QUEUE_OPTIONS_TOKEN, } from './queue';
|
|
36
37
|
export type { QueueModuleOptions, QueueStore, Job, JobData, JobHandler, JobOptions, CronOptions, QueueOptions, CronDecoratorOptions, } from './queue';
|
|
@@ -42,4 +43,5 @@ export { ServiceClient, LoadBalancerFactory, RandomLoadBalancer, RoundRobinLoadB
|
|
|
42
43
|
export { CircuitBreaker, CircuitBreakerState, RateLimiter, RetryStrategyImpl, type CircuitBreakerOptions, type CircuitBreakerStats, type RateLimiterOptions, type RetryStrategy, } from './microservice';
|
|
43
44
|
export { Tracer, ConsoleTraceCollector, MemoryTraceCollector, SpanStatus, SpanKind, type TraceId, type SpanId, type SpanContext, type Span, type SpanTags, type SpanEvent, type TracingOptions, type TraceCollector, } from './microservice';
|
|
44
45
|
export { ServiceMetricsCollector, type ServiceCallMetrics, type ServiceInstanceHealth, type MonitoringOptions, } from './microservice';
|
|
46
|
+
export { EventModule, EventEmitterService, EventListenerScanner, OnEvent, getOnEventMetadata, isEventListenerClass, EVENT_EMITTER_TOKEN, EVENT_OPTIONS_TOKEN, EVENT_LISTENER_SCANNER_TOKEN, ON_EVENT_METADATA_KEY, EVENT_LISTENER_CLASS_METADATA_KEY, type EventEmitter, type EventListener, type EventMetadata, type EventModuleOptions, type ListenerOptions, type OnEventMethodMetadata, type OnEventOptions, type RegisteredListener, } from './events';
|
|
45
47
|
//# 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,cAAc,EAAE,qBAAqB,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAC7F,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,EACL,IAAI,EACJ,KAAK,EACL,QAAQ,EACR,KAAK,EACL,MAAM,EACN,SAAS,EACT,WAAW,EACX,UAAU,EACV,kBAAkB,GACnB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,cAAc,CAAC;AACvD,YAAY,EACV,aAAa,EACb,eAAe,EACf,gBAAgB,EAChB,kBAAkB,GACnB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|