plugin-tls 2.0.0 → 3.0.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/dist/extend/extend.d.ts +11 -19
- package/dist/extend/extend.d.ts.map +1 -1
- package/dist/extend/index.d.ts +3 -0
- package/dist/extend/index.d.ts.map +1 -0
- package/dist/extend/mixin.d.ts.map +1 -1
- package/dist/index.d.ts +6 -12
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +586 -263
- package/dist/index.umd.cjs +1 -1
- package/dist/options-manager/defaultOptions.d.ts +2 -2
- package/dist/options-manager/defaultOptions.d.ts.map +1 -1
- package/dist/options-manager/index.d.ts +6 -0
- package/dist/options-manager/index.d.ts.map +1 -0
- package/dist/options-plugin-host/index.d.ts +3 -0
- package/dist/options-plugin-host/index.d.ts.map +1 -0
- package/dist/options-plugin-host/tier-mode-options/TierModeOptionsPluginHost.d.ts +28 -0
- package/dist/options-plugin-host/tier-mode-options/TierModeOptionsPluginHost.d.ts.map +1 -0
- package/dist/options-plugin-host/tier-mode-options/TierModeOptionsPluginHostEventEmitter.d.ts +29 -0
- package/dist/options-plugin-host/tier-mode-options/TierModeOptionsPluginHostEventEmitter.d.ts.map +1 -0
- package/dist/options-plugin-host/tier-mode-options/TierModeOptionsPluginHostEventTarget.d.ts +28 -0
- package/dist/options-plugin-host/tier-mode-options/TierModeOptionsPluginHostEventTarget.d.ts.map +1 -0
- package/dist/options-plugin-host/tier-mode-options/createTierModeOptionsPluginHost.d.ts +58 -0
- package/dist/options-plugin-host/tier-mode-options/createTierModeOptionsPluginHost.d.ts.map +1 -0
- package/dist/options-plugin-host/tier-mode-options/index.d.ts +6 -0
- package/dist/options-plugin-host/tier-mode-options/index.d.ts.map +1 -0
- package/dist/options-plugin-host/tier-mode-options/type.d.ts +7 -0
- package/dist/options-plugin-host/tier-mode-options/type.d.ts.map +1 -0
- package/dist/options-plugin-host/tier-options/TierOptionsPluginHost.d.ts +25 -0
- package/dist/options-plugin-host/tier-options/TierOptionsPluginHost.d.ts.map +1 -0
- package/dist/options-plugin-host/tier-options/TierOptionsPluginHostEventEmitter.d.ts +26 -0
- package/dist/options-plugin-host/tier-options/TierOptionsPluginHostEventEmitter.d.ts.map +1 -0
- package/dist/options-plugin-host/tier-options/TierOptionsPluginHostEventTarget.d.ts +25 -0
- package/dist/options-plugin-host/tier-options/TierOptionsPluginHostEventTarget.d.ts.map +1 -0
- package/dist/options-plugin-host/tier-options/createTierOptionsPluginHost.d.ts +55 -0
- package/dist/options-plugin-host/tier-options/createTierOptionsPluginHost.d.ts.map +1 -0
- package/dist/options-plugin-host/tier-options/index.d.ts +5 -0
- package/dist/options-plugin-host/tier-options/index.d.ts.map +1 -0
- package/dist/plugin-host/PluginHost.d.ts +41 -187
- package/dist/plugin-host/PluginHost.d.ts.map +1 -1
- package/dist/plugin-host/PluginHostEventEmitter.d.ts +64 -0
- package/dist/plugin-host/PluginHostEventEmitter.d.ts.map +1 -0
- package/dist/plugin-host/PluginHostEventTarget.d.ts +62 -0
- package/dist/plugin-host/PluginHostEventTarget.d.ts.map +1 -0
- package/dist/plugin-host/createPluginHost.d.ts +87 -0
- package/dist/plugin-host/createPluginHost.d.ts.map +1 -0
- package/dist/plugin-host/decorator.d.ts +177 -0
- package/dist/plugin-host/decorator.d.ts.map +1 -0
- package/dist/plugin-host/index.d.ts +7 -0
- package/dist/plugin-host/index.d.ts.map +1 -0
- package/dist/plugin-host/type.d.ts +52 -0
- package/dist/plugin-host/type.d.ts.map +1 -0
- package/dist/plugin-manager/IPlugin.d.ts +47 -0
- package/dist/plugin-manager/IPlugin.d.ts.map +1 -0
- package/dist/plugin-manager/PluginManager.d.ts +27 -80
- package/dist/plugin-manager/PluginManager.d.ts.map +1 -1
- package/dist/plugin-manager/index.d.ts +3 -0
- package/dist/plugin-manager/index.d.ts.map +1 -0
- package/dist/plugins/index.d.ts +3 -0
- package/dist/plugins/index.d.ts.map +1 -0
- package/dist/plugins/tier-mode-options/decorator.d.ts +14 -0
- package/dist/plugins/tier-mode-options/decorator.d.ts.map +1 -0
- package/dist/plugins/tier-mode-options/plugin.d.ts +3 -0
- package/dist/plugins/tier-mode-options/plugin.d.ts.map +1 -0
- package/dist/plugins/tier-mode-options/type.d.ts +35 -0
- package/dist/plugins/tier-mode-options/type.d.ts.map +1 -0
- package/dist/plugins/tier-mode-options-plugin.d.ts +4 -0
- package/dist/plugins/tier-mode-options-plugin.d.ts.map +1 -0
- package/dist/plugins/tier-options/decorator.d.ts +14 -0
- package/dist/plugins/tier-options/decorator.d.ts.map +1 -0
- package/dist/plugins/tier-options/plugin.d.ts +11 -0
- package/dist/plugins/tier-options/plugin.d.ts.map +1 -0
- package/dist/plugins/tier-options/type.d.ts +36 -0
- package/dist/plugins/tier-options/type.d.ts.map +1 -0
- package/dist/plugins/tier-options-plugin.d.ts +4 -0
- package/dist/plugins/tier-options-plugin.d.ts.map +1 -0
- package/doc/api/plugin-tls.adddefaultoptions.md +2 -2
- package/doc/api/plugin-tls.addinstoptions.md +1 -1
- package/doc/api/plugin-tls.becomepluginhost.md +1 -1
- package/doc/api/plugin-tls.becomepluginhost_extends.md +9 -3
- package/doc/api/plugin-tls.becomepluginhost_proxy.md +1 -1
- package/doc/api/plugin-tls.becometiermodeoptionshost.md +1 -1
- package/doc/api/plugin-tls.becometieroptionshost.md +1 -1
- package/doc/api/plugin-tls.classextender.md +1 -1
- package/doc/api/plugin-tls.classextenderprivatemember.md +1 -1
- package/doc/api/plugin-tls.classextenderprivatememberwithinit.md +1 -1
- package/doc/api/plugin-tls.classextenderwithinit.md +1 -1
- package/doc/api/plugin-tls.createpluginhost.md +39 -6
- package/doc/api/plugin-tls.createtiermodeoptionspluginhost.md +41 -5
- package/doc/api/plugin-tls.createtieroptionspluginhost.md +41 -5
- package/doc/api/plugin-tls.hostinst.md +1 -1
- package/doc/api/plugin-tls.privatememberofextend.md +1 -1
- package/doc/api/plugin-tls.privatememberofextendwithinit.md +1 -1
- package/package.json +3 -3
- package/dist/plugin-host/TierModeOptionsPluginHost.d.ts +0 -131
- package/dist/plugin-host/TierModeOptionsPluginHost.d.ts.map +0 -1
- package/dist/plugin-host/TierOptionsPluginHost.d.ts +0 -117
- package/dist/plugin-host/TierOptionsPluginHost.d.ts.map +0 -1
- package/dist/plugin-manager/PluginManagerWithInit.d.ts +0 -36
- package/dist/plugin-manager/PluginManagerWithInit.d.ts.map +0 -1
|
@@ -1,222 +1,76 @@
|
|
|
1
1
|
import { PluginManager } from "../plugin-manager/PluginManager";
|
|
2
|
-
import type { IPlugin,
|
|
3
|
-
import
|
|
4
|
-
import {
|
|
5
|
-
|
|
6
|
-
* 插件宿主的接口
|
|
7
|
-
*
|
|
8
|
-
* @typeParam HostClassType 插件宿主类的类型
|
|
9
|
-
*/
|
|
10
|
-
export interface IPluginHost<HostClassType extends IPluginHostConstructor<any, Plugin>, Plugin extends IPlugin<HostClassType, any> = IPlugin<HostClassType, any>> {
|
|
11
|
-
/**
|
|
12
|
-
* PluginHost 的插件管理器
|
|
13
|
-
*/
|
|
14
|
-
get pluginManager(): HostClassType["pluginManager"];
|
|
15
|
-
/**
|
|
16
|
-
* 实例的注册插件的方法
|
|
17
|
-
* @param plugin
|
|
18
|
-
* @param options
|
|
19
|
-
* @returns
|
|
20
|
-
*/
|
|
21
|
-
use<P extends Plugin>(plugin: P, options: GetNormalizePluginOptions<P>): PluginCreatedReturnType<P> | void;
|
|
22
|
-
}
|
|
23
|
-
/**
|
|
24
|
-
* 插件宿主构造函数的接口
|
|
25
|
-
* @typeParam HostClassType 插件宿主类的类型
|
|
26
|
-
*/
|
|
27
|
-
export interface IPluginHostConstructor<HostClassType, Plugin extends IPlugin<HostClassType, any> = IPlugin<HostClassType, any>> {
|
|
28
|
-
/**
|
|
29
|
-
* PluginHost 的插件管理器
|
|
30
|
-
*/
|
|
31
|
-
get pluginManager(): PluginManager<HostClassType, Plugin>;
|
|
32
|
-
/**
|
|
33
|
-
* {@inheritDoc PluginManager.use}
|
|
34
|
-
*/
|
|
35
|
-
use<P extends Plugin>(plugin: P, options: GetNormalizePluginOptions<P>): PluginUseReturnType<P> | void;
|
|
36
|
-
}
|
|
2
|
+
import type { IPlugin, PluginUseArgs, PluginUseReturn } from "../plugin-manager/index";
|
|
3
|
+
import { Destroyable } from "@gby/destroyable";
|
|
4
|
+
import type { IPluginHost } from "./type";
|
|
5
|
+
import type { ClassType } from "type-tls";
|
|
37
6
|
/**
|
|
38
7
|
* 插件的宿主
|
|
39
8
|
*
|
|
40
9
|
* @remarks
|
|
41
|
-
* 插件宿主 就是 拥有插件机制的宿主
|
|
42
10
|
*
|
|
43
11
|
* 子类需要在构建函数中调用 `this.pluginManager.created(this);`
|
|
44
12
|
*
|
|
45
13
|
* 之所以没写在该类中的函数中,是因为 `this.pluginManager.created(this)` 通常会在构建函数执行的最后时才调用;
|
|
46
14
|
* 如果像下面写在该类的构建函数中,然后子类通过 `super()` 来调用,这样就会导致 `this.pluginManager.created(this)` 不是在最后的执行;
|
|
15
|
+
*
|
|
16
|
+
*
|
|
17
|
+
* 将泛型设计成 <Host,HostClass = ClassType<Host>> 而不是 <HostClass> 的原因是:
|
|
18
|
+
* 如果设计为 <HostClass> ,则在子类中需要
|
|
19
|
+
* ```ts
|
|
20
|
+
* class SubPluginHost extends PluginHost<typeof SubPluginHost> {}
|
|
21
|
+
* ```
|
|
22
|
+
* 而这种写法 ts 会报循环引用自身的错误;
|
|
23
|
+
* 改成 <Host,HostClass = ClassType<Host>> 后,子类中只需像下面这样写,就不会报错了;
|
|
24
|
+
* ```ts
|
|
25
|
+
* class SubPluginHost extends PluginHost<SubPluginHost> {}
|
|
26
|
+
* ```
|
|
27
|
+
* 而且这样
|
|
28
|
+
* 1. 子类可以通过继承来实现自定义的 Host
|
|
29
|
+
* 2. 子类可以通过继承来实现自定义的 HostClass
|
|
47
30
|
*/
|
|
48
|
-
export declare class PluginHost<
|
|
31
|
+
export declare class PluginHost<Host, HostClass = ClassType<Host>> extends Destroyable implements IPluginHost<Host, HostClass> {
|
|
32
|
+
/**
|
|
33
|
+
* 是否使用独立的插件管理器
|
|
34
|
+
* @defaultValue false
|
|
35
|
+
*/
|
|
36
|
+
static isolatedPluginManager: boolean;
|
|
49
37
|
/**
|
|
50
38
|
* 插件管理器
|
|
51
39
|
*/
|
|
52
|
-
static get pluginManager(): PluginManager<any,
|
|
53
|
-
|
|
40
|
+
static get pluginManager(): PluginManager<any, any>;
|
|
41
|
+
static _pluginManager: PluginManager<any, any>;
|
|
54
42
|
/**
|
|
55
43
|
* 插件管理器 {@link PluginHost.pluginManager}
|
|
56
44
|
*/
|
|
57
|
-
get pluginManager(): PluginManager<
|
|
45
|
+
get pluginManager(): PluginManager<Host, HostClass>;
|
|
58
46
|
/**
|
|
59
47
|
* {@inheritDoc PluginManager.use}
|
|
60
48
|
*/
|
|
61
|
-
static use<Plugin extends IPlugin<
|
|
49
|
+
static use<Plugin extends IPlugin<any, any>>(plugin: Plugin, ...args: PluginUseArgs<Plugin>): ReturnType<Plugin["onUse"]>;
|
|
62
50
|
/**
|
|
63
51
|
* 需要在子类中调用
|
|
64
52
|
*
|
|
65
|
-
* 之所以没写在该类中的函数中,是因为 `this.pluginManager.
|
|
66
|
-
* 如果像下面写在该类的构建函数中,然后子类通过 `super()` 来调用,这样就会导致 `this.pluginManager.
|
|
53
|
+
* 之所以没写在该类中的函数中,是因为 `this.pluginManager.onCreate(this,...args)` 通常会在构建函数执行的最后时才调用;
|
|
54
|
+
* 如果像下面写在该类的构建函数中,然后子类通过 `super()` 来调用,这样就会导致 `this.pluginManager.onCreate(this,...args)` 不是在最后的执行;
|
|
67
55
|
*/
|
|
68
56
|
/**
|
|
69
57
|
* 实例的注册插件的方法
|
|
70
58
|
* @param plugin
|
|
71
|
-
* @param
|
|
59
|
+
* @param args
|
|
72
60
|
* @returns
|
|
73
61
|
*/
|
|
74
|
-
use<P extends
|
|
62
|
+
use<P extends IPlugin<Host, HostClass>>(plugin: P, ...args: PluginUseArgs<P>): PluginUseReturn<P>;
|
|
63
|
+
/**
|
|
64
|
+
* 初始化实例
|
|
65
|
+
* @remarks
|
|
66
|
+
* 会调用 {@link PluginManager.onInit}
|
|
67
|
+
* @param args
|
|
68
|
+
*/
|
|
69
|
+
init(...args: any): Promise<void>;
|
|
75
70
|
/**
|
|
76
71
|
* 销毁实例
|
|
77
72
|
* @returns
|
|
78
73
|
*/
|
|
79
|
-
destroyThis(): void
|
|
74
|
+
destroyThis(): Promise<void>;
|
|
80
75
|
}
|
|
81
|
-
/**
|
|
82
|
-
* 创建插件的缩主类
|
|
83
|
-
*
|
|
84
|
-
* @remarks
|
|
85
|
-
* 比 直接使用 PluginHost 提供了完善的类型推导
|
|
86
|
-
*
|
|
87
|
-
* 子类需要在构建函数中调用 `this.pluginManager.created(this);`
|
|
88
|
-
*
|
|
89
|
-
* 之所以没写在该类中的函数中,是因为 `this.pluginManager.created(this)` 通常会在构建函数执行的最后时才调用;
|
|
90
|
-
* 如果像下面写在该类的构建函数中,然后子类通过 `super()` 来调用,这样就会导致 `this.pluginManager.created(this)` 不是在最后的执行;
|
|
91
|
-
* @returns
|
|
92
|
-
*/
|
|
93
|
-
export declare function createPluginHost<HOST, P extends new (...args: any) => any, Plugin extends IPlugin<HOST, any> = IPlugin<HOST, any>>(ParentClass: P): {
|
|
94
|
-
new (...args: any): {
|
|
95
|
-
[x: string]: any;
|
|
96
|
-
/**
|
|
97
|
-
* 插件管理器 {@link CEarth.pluginManager}
|
|
98
|
-
*/
|
|
99
|
-
get pluginManager(): PluginManager<any, IPlugin<any, any>>;
|
|
100
|
-
/**
|
|
101
|
-
/**
|
|
102
|
-
* 实例的注册插件的方法
|
|
103
|
-
* @param plugin
|
|
104
|
-
* @param options
|
|
105
|
-
* @returns
|
|
106
|
-
*/
|
|
107
|
-
use<P_1 extends Plugin>(plugin: P_1, ...options: FormatUsePluginParameters<P_1>): PluginCreatedReturnType<P_1> | void;
|
|
108
|
-
/**
|
|
109
|
-
* 销毁实例
|
|
110
|
-
* @returns
|
|
111
|
-
*/
|
|
112
|
-
destroyThis(): any;
|
|
113
|
-
};
|
|
114
|
-
/**
|
|
115
|
-
* PluginHost 的插件管理器
|
|
116
|
-
*/
|
|
117
|
-
get pluginManager(): PluginManager<typeof PluginHost & HOST & (new (...args: any) => {
|
|
118
|
-
[x: string]: any;
|
|
119
|
-
readonly isDestroyed: boolean;
|
|
120
|
-
_isDestroyed: boolean;
|
|
121
|
-
_destroyers: import("@gby/destroyable").FunDestroyer[];
|
|
122
|
-
disposeFun<T extends import("@gby/destroyable").FunDestroyer>(fun: T): T;
|
|
123
|
-
cancelDisposeFun<T extends import("@gby/destroyable").FunDestroyer>(fun: T): T;
|
|
124
|
-
disposeObj<T extends any>(obj: T, sync?: boolean): T;
|
|
125
|
-
cancelDisposeObj<T extends any>(obj: T): T;
|
|
126
|
-
dispose<T extends import("@gby/destroyable").FunDestroyer>(fun: T): T;
|
|
127
|
-
dispose<T extends any>(obj: T, asyncDestroy?: boolean): T;
|
|
128
|
-
dispose<T extends any | import("@gby/destroyable").FunDestroyer>(objOrFun: T, asyncDestroy?: boolean): T;
|
|
129
|
-
cancelDispose<T extends import("@gby/destroyable").FunDestroyer>(fun: T): T;
|
|
130
|
-
cancelDispose<T extends any>(obj: T): T;
|
|
131
|
-
cancelDispose<T extends any | import("@gby/destroyable").FunDestroyer>(objOrFun: T): T;
|
|
132
|
-
destroyThis(): void;
|
|
133
|
-
destroy(): true | undefined;
|
|
134
|
-
destroyAsync(): Promise<true | undefined>;
|
|
135
|
-
}) & P, Plugin>;
|
|
136
|
-
_pluginManager: PluginManager<typeof PluginHost & HOST & (new (...args: any) => {
|
|
137
|
-
[x: string]: any;
|
|
138
|
-
readonly isDestroyed: boolean;
|
|
139
|
-
_isDestroyed: boolean;
|
|
140
|
-
_destroyers: import("@gby/destroyable").FunDestroyer[];
|
|
141
|
-
disposeFun<T extends import("@gby/destroyable").FunDestroyer>(fun: T): T;
|
|
142
|
-
cancelDisposeFun<T extends import("@gby/destroyable").FunDestroyer>(fun: T): T;
|
|
143
|
-
disposeObj<T extends any>(obj: T, sync?: boolean): T;
|
|
144
|
-
cancelDisposeObj<T extends any>(obj: T): T;
|
|
145
|
-
dispose<T extends import("@gby/destroyable").FunDestroyer>(fun: T): T;
|
|
146
|
-
dispose<T extends any>(obj: T, asyncDestroy?: boolean): T;
|
|
147
|
-
dispose<T extends any | import("@gby/destroyable").FunDestroyer>(objOrFun: T, asyncDestroy?: boolean): T;
|
|
148
|
-
cancelDispose<T extends import("@gby/destroyable").FunDestroyer>(fun: T): T;
|
|
149
|
-
cancelDispose<T extends any>(obj: T): T;
|
|
150
|
-
cancelDispose<T extends any | import("@gby/destroyable").FunDestroyer>(objOrFun: T): T;
|
|
151
|
-
destroyThis(): void;
|
|
152
|
-
destroy(): true | undefined;
|
|
153
|
-
destroyAsync(): Promise<true | undefined>;
|
|
154
|
-
}) & P, Plugin>;
|
|
155
|
-
/**
|
|
156
|
-
* {@inheritDoc PluginManager.use}
|
|
157
|
-
*/
|
|
158
|
-
use<P_1 extends Plugin>(plugin: P_1, ...options: FormatUsePluginParameters<P_1>): void | ReturnType<P_1["used"]>;
|
|
159
|
-
} & P;
|
|
160
|
-
/**
|
|
161
|
-
* 将 HOST 变成插件宿主类型
|
|
162
|
-
*/
|
|
163
|
-
export type BecomePluginHost<HOST extends new (...args: any) => any, Plugin extends IPlugin<HOST, any> = IPlugin<HOST, any>> = HOST & IPluginHostConstructor<HOST & IPluginHostConstructor<HOST, Plugin>, Plugin> & ReplaceConstructorReturn<HOST, InstanceType<HOST> & IPluginHost<HOST & IPluginHostConstructor<HOST & IPluginHostConstructor<HOST, Plugin>, Plugin>>>;
|
|
164
|
-
/**
|
|
165
|
-
* 变成插件宿主
|
|
166
|
-
* @remarks
|
|
167
|
-
* 也可作为装饰器
|
|
168
|
-
*
|
|
169
|
-
* 子类需要在构建函数中调用 `this.pluginManager.created(this);`
|
|
170
|
-
*
|
|
171
|
-
* 之所以没写在该类中的函数中,是因为 `this.pluginManager.created(this)` 通常会在构建函数执行的最后时才调用;
|
|
172
|
-
* 如果像下面写在该类的构建函数中,然后子类通过 `super()` 来调用,这样就会导致 `this.pluginManager.created(this)` 不是在最后的执行;
|
|
173
|
-
* @param target
|
|
174
|
-
* @param context
|
|
175
|
-
* @returns
|
|
176
|
-
*/
|
|
177
|
-
export declare function becomePluginHost<HOST extends new (...args: any) => any, Plugin extends IPlugin<HOST, any> = IPlugin<HOST, any>>(target: HOST): BecomePluginHost<HOST, Plugin>;
|
|
178
|
-
/**
|
|
179
|
-
* 变成插件宿主
|
|
180
|
-
* @remarks
|
|
181
|
-
* 也可作为装饰器
|
|
182
|
-
* @param target
|
|
183
|
-
* @param context
|
|
184
|
-
* @returns
|
|
185
|
-
*/
|
|
186
|
-
export declare function becomePluginHost_Proxy<HOST extends new (...args: any) => any, Plugin extends IPlugin<HOST, any> = IPlugin<HOST, any>>(target: HOST): HOST;
|
|
187
|
-
/**
|
|
188
|
-
* 插件缩主类的装饰器(继承版)
|
|
189
|
-
* @remarks
|
|
190
|
-
* 通过继承实现
|
|
191
|
-
*/
|
|
192
|
-
export declare function becomePluginHost_Extends<HOST extends new (...args: any) => any>(target: HOST): {
|
|
193
|
-
new (...args: any): {
|
|
194
|
-
[x: string]: any;
|
|
195
|
-
/**
|
|
196
|
-
* 插件管理器 {@link PluginHost.pluginManager}
|
|
197
|
-
*/
|
|
198
|
-
get pluginManager(): PluginManager</*elided*/ any & HOST, IPlugin</*elided*/ any & HOST, any>>;
|
|
199
|
-
/**
|
|
200
|
-
* 实例的注册插件的方法
|
|
201
|
-
* @param plugin
|
|
202
|
-
* @param options
|
|
203
|
-
* @returns
|
|
204
|
-
*/
|
|
205
|
-
use<Plugin extends IPlugin</*elided*/ any & HOST, any>>(plugin: Plugin, ...options: FormatUsePluginParameters<Plugin>): void | PluginCreatedReturnType<Plugin>;
|
|
206
|
-
/**
|
|
207
|
-
* 销毁实例
|
|
208
|
-
* @returns
|
|
209
|
-
*/
|
|
210
|
-
destroy(): void;
|
|
211
|
-
};
|
|
212
|
-
/**
|
|
213
|
-
* 插件管理器
|
|
214
|
-
*/
|
|
215
|
-
get pluginManager(): PluginManager</*elided*/ any & HOST, IPlugin</*elided*/ any & HOST, any>>;
|
|
216
|
-
_pluginManager: PluginManager</*elided*/ any & HOST>;
|
|
217
|
-
/**
|
|
218
|
-
* {@inheritDoc PluginManager.use}
|
|
219
|
-
*/
|
|
220
|
-
use<Plugin extends IPlugin</*elided*/ any & HOST, any>>(plugin: Plugin, ...options: FormatUsePluginParameters<Plugin>): void | ReturnType<Plugin["used"]>;
|
|
221
|
-
} & HOST;
|
|
222
76
|
//# sourceMappingURL=PluginHost.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PluginHost.d.ts","sourceRoot":"","sources":["../../src/plugin-host/PluginHost.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"PluginHost.d.ts","sourceRoot":"","sources":["../../src/plugin-host/PluginHost.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAChE,OAAO,KAAK,EAAE,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAEvF,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AAC1C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAG1C;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,qBAAa,UAAU,CAAC,IAAI,EAAC,SAAS,GAAG,SAAS,CAAC,IAAI,CAAC,CAAE,SAAQ,WAAY,YAAW,WAAW,CAAC,IAAI,EAAC,SAAS,CAAC;IAClH;;;OAGG;IACH,MAAM,CAAC,qBAAqB,UAAS;IAErC;;OAEG;IACH,MAAM,KAAK,aAAa,4BAKvB;IACD,MAAM,CAAC,cAAc,0BAAoC;IAEzD;;OAEG;IACH,IAAI,aAAa,IAAI,aAAa,CAAC,IAAI,EAAC,SAAS,CAAC,CAEjD;IAED;;OAEG;IACH,MAAM,CAAC,GAAG,CAAC,MAAM,SAAS,OAAO,CAAC,GAAG,EAAC,GAAG,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,aAAa,CAAC,MAAM,CAAC;IAI1F;;;;;OAKG;IAOH;;;;;OAKG;IACH,GAAG,CAAC,CAAC,SAAS,OAAO,CAAC,IAAI,EAAC,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,GAAG,IAAI,EAAE,aAAa,CAAC,CAAC,CAAC,GAAG,eAAe,CAAC,CAAC,CAAC;IAKhG;;;;;OAKG;IACH,IAAI,CAAC,GAAG,IAAI,EAAC,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC;IAIhC;;;OAGG;IACY,WAAW;CAK3B"}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import { PluginManager } from "../plugin-manager/PluginManager";
|
|
2
|
+
import type { IPlugin, PluginUseArgs, PluginUseReturn } from "../plugin-manager/index";
|
|
3
|
+
import { DestroyableEventEmitter } from "@gby/destroyable";
|
|
4
|
+
import type { DefaultEventMap, EventMap } from "@gby/destroyable";
|
|
5
|
+
import type { IPluginHost } from "./type";
|
|
6
|
+
import type { ClassType } from "type-tls";
|
|
7
|
+
export type { DefaultEventMap, EventMap };
|
|
8
|
+
/**
|
|
9
|
+
* 插件的宿主
|
|
10
|
+
*
|
|
11
|
+
* @remarks
|
|
12
|
+
* 插件宿主 就是 拥有插件机制的宿主
|
|
13
|
+
*
|
|
14
|
+
* 子类需要在构建函数中调用 `this.pluginManager.created(this);`
|
|
15
|
+
*
|
|
16
|
+
* 之所以没写在该类中的函数中,是因为 `this.pluginManager.created(this)` 通常会在构建函数执行的最后时才调用;
|
|
17
|
+
* 如果像下面写在该类的构建函数中,然后子类通过 `super()` 来调用,这样就会导致 `this.pluginManager.created(this)` 不是在最后的执行;
|
|
18
|
+
*/
|
|
19
|
+
export declare class PluginHostEventEmitter<Host, HostClass = ClassType<Host>, EM extends EventMap<EM> = DefaultEventMap> extends DestroyableEventEmitter<EM> implements IPluginHost<Host, HostClass> {
|
|
20
|
+
/**
|
|
21
|
+
* 是否使用独立的插件管理器
|
|
22
|
+
* @defaultValue false
|
|
23
|
+
*/
|
|
24
|
+
static isolatedPluginManager: boolean;
|
|
25
|
+
/**
|
|
26
|
+
* 插件管理器
|
|
27
|
+
*/
|
|
28
|
+
static get pluginManager(): PluginManager<any, any>;
|
|
29
|
+
static _pluginManager: PluginManager<any, any>;
|
|
30
|
+
/**
|
|
31
|
+
* 插件管理器 {@link PluginHost.pluginManager}
|
|
32
|
+
*/
|
|
33
|
+
get pluginManager(): PluginManager<Host, HostClass>;
|
|
34
|
+
/**
|
|
35
|
+
* {@inheritDoc PluginManager.use}
|
|
36
|
+
*/
|
|
37
|
+
static use<Plugin extends IPlugin<any, any>>(plugin: Plugin, ...args: PluginUseArgs<Plugin>): ReturnType<Plugin["onUse"]>;
|
|
38
|
+
/**
|
|
39
|
+
* 需要在子类中调用
|
|
40
|
+
*
|
|
41
|
+
* 之所以没写在该类中的函数中,是因为 `this.pluginManager.onCreate(this,...args)` 通常会在构建函数执行的最后时才调用;
|
|
42
|
+
* 如果像下面写在该类的构建函数中,然后子类通过 `super()` 来调用,这样就会导致 `this.pluginManager.onCreate(this,...args)` 不是在最后的执行;
|
|
43
|
+
*/
|
|
44
|
+
/**
|
|
45
|
+
* 实例的注册插件的方法
|
|
46
|
+
* @param plugin
|
|
47
|
+
* @param args
|
|
48
|
+
* @returns
|
|
49
|
+
*/
|
|
50
|
+
use<P extends IPlugin<Host, HostClass>>(plugin: P, ...args: PluginUseArgs<P>): PluginUseReturn<P>;
|
|
51
|
+
/**
|
|
52
|
+
* 初始化实例
|
|
53
|
+
* @remarks
|
|
54
|
+
* 会调用 {@link PluginManager.onInit}
|
|
55
|
+
* @param args
|
|
56
|
+
*/
|
|
57
|
+
init(...args: any): Promise<void>;
|
|
58
|
+
/**
|
|
59
|
+
* 销毁实例
|
|
60
|
+
* @returns
|
|
61
|
+
*/
|
|
62
|
+
destroyThis(): Promise<void>;
|
|
63
|
+
}
|
|
64
|
+
//# sourceMappingURL=PluginHostEventEmitter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PluginHostEventEmitter.d.ts","sourceRoot":"","sources":["../../src/plugin-host/PluginHostEventEmitter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAChE,OAAO,KAAK,EAAE,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAEvF,OAAO,EAAE,uBAAuB,EAAE,MAAM,kBAAkB,CAAC;AAC3D,OAAO,KAAK,EAAE,eAAe,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAClE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AAC1C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAE1C,YAAY,EAAE,eAAe,EAAC,QAAQ,EAAC,CAAA;AAGvC;;;;;;;;;;GAUG;AACH,qBAAa,sBAAsB,CAAC,IAAI,EAAE,SAAS,GAAG,SAAS,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,QAAQ,CAAC,EAAE,CAAC,GAAG,eAAe,CAAE,SAAQ,uBAAuB,CAAC,EAAE,CAAE,YAAW,WAAW,CAAC,IAAI,EAAE,SAAS,CAAC;IAC3L;;;OAGG;IACH,MAAM,CAAC,qBAAqB,UAAS;IAErC;;OAEG;IACH,MAAM,KAAK,aAAa,4BAKvB;IACD,MAAM,CAAC,cAAc,0BAAoC;IAEzD;;OAEG;IACH,IAAI,aAAa,IAAI,aAAa,CAAC,IAAI,EAAE,SAAS,CAAC,CAElD;IAED;;OAEG;IACH,MAAM,CAAC,GAAG,CAAC,MAAM,SAAS,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,aAAa,CAAC,MAAM,CAAC;IAI3F;;;;;OAKG;IAOH;;;;;OAKG;IACH,GAAG,CAAC,CAAC,SAAS,OAAO,CAAC,IAAI,EAAE,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,GAAG,IAAI,EAAE,aAAa,CAAC,CAAC,CAAC,GAAG,eAAe,CAAC,CAAC,CAAC;IAKjG;;;;;OAKG;IACH,IAAI,CAAC,GAAG,IAAI,EAAC,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC;IAIhC;;;OAGG;IACY,WAAW;CAK3B"}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import { PluginManager } from "../plugin-manager/PluginManager";
|
|
2
|
+
import type { IPlugin, PluginUseArgs, PluginUseReturn } from "../plugin-manager/index";
|
|
3
|
+
import { DestroyableEventTarget } from "@gby/destroyable";
|
|
4
|
+
import type { IPluginHost } from "./type";
|
|
5
|
+
import type { ClassType } from "type-tls";
|
|
6
|
+
/**
|
|
7
|
+
* 插件的宿主
|
|
8
|
+
*
|
|
9
|
+
* @remarks
|
|
10
|
+
* 插件宿主 就是 拥有插件机制的宿主
|
|
11
|
+
*
|
|
12
|
+
* 子类需要在构建函数中调用 `this.pluginManager.created(this);`
|
|
13
|
+
*
|
|
14
|
+
* 之所以没写在该类中的函数中,是因为 `this.pluginManager.created(this)` 通常会在构建函数执行的最后时才调用;
|
|
15
|
+
* 如果像下面写在该类的构建函数中,然后子类通过 `super()` 来调用,这样就会导致 `this.pluginManager.created(this)` 不是在最后的执行;
|
|
16
|
+
*/
|
|
17
|
+
export declare class PluginHostEventTarget<Host, HostClass = ClassType<Host>, EM extends Record<string, any> = Record<string, any>> extends DestroyableEventTarget<EM> implements IPluginHost<Host, HostClass> {
|
|
18
|
+
/**
|
|
19
|
+
* 是否使用独立的插件管理器
|
|
20
|
+
* @defaultValue false
|
|
21
|
+
*/
|
|
22
|
+
static isolatedPluginManager: boolean;
|
|
23
|
+
/**
|
|
24
|
+
* 插件管理器
|
|
25
|
+
*/
|
|
26
|
+
static get pluginManager(): PluginManager<any, any>;
|
|
27
|
+
static _pluginManager: PluginManager<any, any>;
|
|
28
|
+
/**
|
|
29
|
+
* 插件管理器 {@link PluginHost.pluginManager}
|
|
30
|
+
*/
|
|
31
|
+
get pluginManager(): PluginManager<Host, HostClass>;
|
|
32
|
+
/**
|
|
33
|
+
* {@inheritDoc PluginManager.use}
|
|
34
|
+
*/
|
|
35
|
+
static use<Plugin extends IPlugin<any, any>>(plugin: Plugin, ...args: PluginUseArgs<Plugin>): ReturnType<Plugin["onUse"]>;
|
|
36
|
+
/**
|
|
37
|
+
* 需要在子类中调用
|
|
38
|
+
*
|
|
39
|
+
* 之所以没写在该类中的函数中,是因为 `this.pluginManager.onCreate(this,...args)` 通常会在构建函数执行的最后时才调用;
|
|
40
|
+
* 如果像下面写在该类的构建函数中,然后子类通过 `super()` 来调用,这样就会导致 `this.pluginManager.onCreate(this,...args)` 不是在最后的执行;
|
|
41
|
+
*/
|
|
42
|
+
/**
|
|
43
|
+
* 实例的注册插件的方法
|
|
44
|
+
* @param plugin
|
|
45
|
+
* @param args
|
|
46
|
+
* @returns
|
|
47
|
+
*/
|
|
48
|
+
use<P extends IPlugin<Host, HostClass>>(plugin: P, ...args: PluginUseArgs<P>): PluginUseReturn<P>;
|
|
49
|
+
/**
|
|
50
|
+
* 初始化实例
|
|
51
|
+
* @remarks
|
|
52
|
+
* 会调用 {@link PluginManager.onInit}
|
|
53
|
+
* @param args
|
|
54
|
+
*/
|
|
55
|
+
init(...args: any): Promise<void>;
|
|
56
|
+
/**
|
|
57
|
+
* 销毁实例
|
|
58
|
+
* @returns
|
|
59
|
+
*/
|
|
60
|
+
destroyThis(): Promise<void>;
|
|
61
|
+
}
|
|
62
|
+
//# sourceMappingURL=PluginHostEventTarget.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PluginHostEventTarget.d.ts","sourceRoot":"","sources":["../../src/plugin-host/PluginHostEventTarget.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAChE,OAAO,KAAK,EAAE,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAEvF,OAAO,EAAE,sBAAsB,EAAC,MAAM,kBAAkB,CAAC;AACzD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AAC1C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAK1C;;;;;;;;;;GAUG;AACH,qBAAa,qBAAqB,CAAC,IAAI,EAAE,SAAS,GAAG,SAAS,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAE,SAAQ,sBAAsB,CAAC,EAAE,CAAE,YAAW,WAAW,CAAC,IAAI,EAAE,SAAS,CAAC;IACpM;;;OAGG;IACH,MAAM,CAAC,qBAAqB,UAAS;IAErC;;OAEG;IACH,MAAM,KAAK,aAAa,4BAKvB;IACD,MAAM,CAAC,cAAc,0BAAoC;IAEzD;;OAEG;IACH,IAAI,aAAa,IAAI,aAAa,CAAC,IAAI,EAAE,SAAS,CAAC,CAElD;IAED;;OAEG;IACH,MAAM,CAAC,GAAG,CAAC,MAAM,SAAS,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,aAAa,CAAC,MAAM,CAAC;IAI3F;;;;;OAKG;IAOH;;;;;OAKG;IACH,GAAG,CAAC,CAAC,SAAS,OAAO,CAAC,IAAI,EAAE,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,GAAG,IAAI,EAAE,aAAa,CAAC,CAAC,CAAC,GAAG,eAAe,CAAC,CAAC,CAAC;IAKjG;;;;;OAKG;IACH,IAAI,CAAC,GAAG,IAAI,EAAC,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC;IAIhC;;;OAGG;IACY,WAAW;CAK3B"}
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
import { PluginManager } from "../plugin-manager/PluginManager";
|
|
2
|
+
import type { IPlugin, PluginUseArgs, PluginUseReturn } from "../plugin-manager/index";
|
|
3
|
+
import type { ClassType } from "type-tls";
|
|
4
|
+
/**
|
|
5
|
+
* 创建插件的缩主类
|
|
6
|
+
*
|
|
7
|
+
* @remarks
|
|
8
|
+
* 比 直接使用 PluginHost 提供了完善的类型推导
|
|
9
|
+
*
|
|
10
|
+
* 子类需要在构建函数中调用 `this.pluginManager.created(this);`
|
|
11
|
+
*
|
|
12
|
+
* 之所以没写在该类中的函数中,是因为 `this.pluginManager.created(this)` 通常会在构建函数执行的最后时才调用;
|
|
13
|
+
* 如果像下面写在该类的构建函数中,然后子类通过 `super()` 来调用,这样就会导致 `this.pluginManager.created(this)` 不是在最后的执行;
|
|
14
|
+
* @returns
|
|
15
|
+
*/
|
|
16
|
+
export declare function createPluginHost<P extends new (...args: any) => Object>(ParentClass: P): {
|
|
17
|
+
new <Host, HostClass = ClassType<Host, any>>(...args: any): {
|
|
18
|
+
/**
|
|
19
|
+
* 插件管理器 {@link PluginHostSub.pluginManager}
|
|
20
|
+
*/
|
|
21
|
+
get pluginManager(): PluginManager<Host, HostClass>;
|
|
22
|
+
/**
|
|
23
|
+
* 需要在子类中调用
|
|
24
|
+
*
|
|
25
|
+
* 之所以没写在该类中的函数中,是因为 `this.pluginManager.onCreate(this)` 通常会在构建函数执行的最后时才调用;
|
|
26
|
+
* 如果像下面写在该类的构建函数中,然后子类通过 `super()` 来调用,这样就会导致 `this.pluginManager.onCreate(this)` 不是在最后的执行;
|
|
27
|
+
*/
|
|
28
|
+
/**
|
|
29
|
+
* 实例的注册插件的方法
|
|
30
|
+
* @param plugin
|
|
31
|
+
* @param args
|
|
32
|
+
* @returns
|
|
33
|
+
*/
|
|
34
|
+
use<P_1 extends IPlugin<Host, HostClass>>(plugin: P_1, ...args: PluginUseArgs<P_1>): PluginUseReturn<P_1>;
|
|
35
|
+
/**
|
|
36
|
+
* 初始化实例
|
|
37
|
+
* @remarks
|
|
38
|
+
* 会调用 {@link PluginManager.onInit}
|
|
39
|
+
* @param args
|
|
40
|
+
*/
|
|
41
|
+
init(...args: any): Promise<void>;
|
|
42
|
+
/**
|
|
43
|
+
* 销毁实例
|
|
44
|
+
* @returns
|
|
45
|
+
*/
|
|
46
|
+
destroyThis(): Promise<void>;
|
|
47
|
+
refCount: number;
|
|
48
|
+
readonly isDestroyed: boolean;
|
|
49
|
+
_isDestroyed: boolean;
|
|
50
|
+
readonly canDestroy: boolean;
|
|
51
|
+
_destroyers: import("@gby/destroyable").FunDestroyer[];
|
|
52
|
+
disposeFun<T extends import("@gby/destroyable").FunDestroyer>(fun: T): T;
|
|
53
|
+
cancelDisposeFun<T extends import("@gby/destroyable").FunDestroyer>(fun: T): T;
|
|
54
|
+
disposeObj<T extends import("@gby/destroyable").IDestroyable>(obj: T, sync?: boolean): T;
|
|
55
|
+
cancelDisposeObj<T extends import("@gby/destroyable").IDestroyable>(obj: T): T;
|
|
56
|
+
dispose<T extends import("@gby/destroyable").FunDestroyer>(fun: T): T;
|
|
57
|
+
dispose<T extends import("@gby/destroyable").IDestroyable>(obj: T, asyncDestroy?: boolean): T;
|
|
58
|
+
dispose<T extends import("@gby/destroyable").IDestroyable | import("@gby/destroyable").FunDestroyer>(objOrFun: T, asyncDestroy?: boolean): T;
|
|
59
|
+
cancelDispose<T extends import("@gby/destroyable").FunDestroyer>(fun: T): T;
|
|
60
|
+
cancelDispose<T extends import("@gby/destroyable").IDestroyable>(obj: T): T;
|
|
61
|
+
cancelDispose<T extends import("@gby/destroyable").IDestroyable | import("@gby/destroyable").FunDestroyer>(objOrFun: T): T;
|
|
62
|
+
destroy(): Promise<boolean>;
|
|
63
|
+
destroySync(): boolean;
|
|
64
|
+
constructor: Function;
|
|
65
|
+
toString: (() => string) & (() => string);
|
|
66
|
+
toLocaleString: (() => string) & (() => string);
|
|
67
|
+
valueOf: (() => Object) & (() => Object);
|
|
68
|
+
hasOwnProperty: ((v: PropertyKey) => boolean) & ((v: PropertyKey) => boolean);
|
|
69
|
+
isPrototypeOf: ((v: Object) => boolean) & ((v: Object) => boolean);
|
|
70
|
+
propertyIsEnumerable: ((v: PropertyKey) => boolean) & ((v: PropertyKey) => boolean);
|
|
71
|
+
};
|
|
72
|
+
/**
|
|
73
|
+
* 是否使用独立的插件管理器
|
|
74
|
+
* @defaultValue false
|
|
75
|
+
*/
|
|
76
|
+
isolatedPluginManager: boolean;
|
|
77
|
+
/**
|
|
78
|
+
* 插件管理器
|
|
79
|
+
*/
|
|
80
|
+
get pluginManager(): PluginManager<any, any>;
|
|
81
|
+
_pluginManager: PluginManager<any, any>;
|
|
82
|
+
/**
|
|
83
|
+
* {@inheritDoc PluginManager.use}
|
|
84
|
+
*/
|
|
85
|
+
use<Plugin extends IPlugin<any, any>>(plugin: Plugin, ...args: PluginUseArgs<Plugin>): ReturnType<Plugin["onUse"]>;
|
|
86
|
+
} & P;
|
|
87
|
+
//# sourceMappingURL=createPluginHost.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"createPluginHost.d.ts","sourceRoot":"","sources":["../../src/plugin-host/createPluginHost.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAChE,OAAO,KAAK,EAAE,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAGvF,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAG1C;;;;;;;;;;;GAWG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,SAAS,KAAK,GAAG,IAAI,EAAE,GAAG,KAAK,MAAM,EAAE,WAAW,EAAE,CAAC;SAS1D,IAAI,EAAE,SAAS;QAkBxC;;WAEG;6BACkB,aAAa,CAAC,IAAI,EAAE,SAAS,CAAC;QAWnD;;;;;WAKG;QAMH;;;;;WAKG;wBACW,OAAO,CAAC,IAAI,EAAE,SAAS,CAAC,UAAU,GAAC,WAAW,aAAa,CAAC,GAAC,CAAC,GAAG,eAAe,CAAC,GAAC,CAAC;QAMjG;;;;;WAKG;sBACW,GAAG;QAIjB;;;WAGG;;;;;;;;;;;;;;;;;;;;;;;;;;;IAnEH;;;OAGG;;IAGH;;OAEG;;;IAgBH;;OAEG;QACQ,MAAM,SAAS,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,UAAU,MAAM,WAAW,aAAa,CAAC,MAAM,CAAC;MA+C9F"}
|