plugin-tls 4.5.0 → 4.6.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/{createTierModeOptionsPluginHost-CeND_z6P.js → createTierModeOptionsPluginHost-3jPWAW92.js} +184 -106
- package/dist/createTierModeOptionsPluginHost-GosxwlJk.cjs +1 -0
- package/dist/index-node.cjs +1 -1
- package/dist/index-node.js +8 -8
- package/dist/index-web.cjs +1 -1
- package/dist/index-web.js +6 -6
- package/dist/index.cjs +1 -1
- package/dist/index.js +186 -219
- package/dist/plugin-manager/IExtend.d.ts +64 -0
- package/dist/plugin-manager/IExtend.d.ts.map +1 -1
- package/dist/plugin-manager/extend.d.ts +1 -1
- package/dist/plugin-manager/extend.d.ts.map +1 -1
- package/package.json +1 -1
- package/dist/createTierModeOptionsPluginHost-C3kmxB00.cjs +0 -1
|
@@ -84,4 +84,68 @@ export declare function mixinIExtend<T, E>(target: T, ext: E): T & IExtendHostMe
|
|
|
84
84
|
* @param Ext - 扩展的类型
|
|
85
85
|
*/
|
|
86
86
|
export type IExtendClass<HostClass extends AbstractConstructor, Ext> = ExtendClass<HostClass, IExtendHostMembers<Ext>>;
|
|
87
|
+
/**
|
|
88
|
+
* 定义扩展的类型便利函数
|
|
89
|
+
*
|
|
90
|
+
* @remarks
|
|
91
|
+
* 它会更改 ext 中方法的this指向为 cla & ext,不会真的执行扩展操作。
|
|
92
|
+
*
|
|
93
|
+
* @param hostClass - 扩展的目标,用作 this 的类型
|
|
94
|
+
* @param ext - 描述扩展内容的对象,会自动更改其this的类型
|
|
95
|
+
* @returns 返回注入了 this 类型的 ext 对象本身
|
|
96
|
+
*/
|
|
97
|
+
export declare function defineIExtend<HostClass extends AbstractConstructor, Ext>(hostClass: HostClass, ext: IExtendOptions<HostClass, Ext>): Ext;
|
|
98
|
+
/**
|
|
99
|
+
* 创建定义扩展的类型便利函数
|
|
100
|
+
*
|
|
101
|
+
* @remarks
|
|
102
|
+
* 它返回的便利函数的功能与 {@link defineExtend} 的功能一样,唯一区别是不再需要接收 hostClass 参数了
|
|
103
|
+
*
|
|
104
|
+
* @returns 可以用于 定义扩展的 类型便利函数
|
|
105
|
+
*/
|
|
106
|
+
export declare function createDefineIExtend<HostClass extends AbstractConstructor>(hostClass: HostClass): <Ext>(ext: IExtendOptions<HostClass, Ext>) => Ext;
|
|
107
|
+
/**
|
|
108
|
+
* 扩展目标
|
|
109
|
+
*
|
|
110
|
+
* @remarks
|
|
111
|
+
* 与 {@link defineExtend} 的区别是:`targetExtend` 会执行对 cla 的扩展操作,而 {@link defineExtend} 不会
|
|
112
|
+
*
|
|
113
|
+
*
|
|
114
|
+
* @param cla - 扩展的目标,也用作 this 的类型
|
|
115
|
+
* @param ext - 扩展描述对象,会自动更改其this的类型
|
|
116
|
+
* @returns 返回注入了 this 类型的 ext 对象本身
|
|
117
|
+
*/
|
|
118
|
+
export declare function targetIExtend<C extends AbstractConstructor, Ext>(cla: C, ext: IExtendOptions<C, Ext>): Ext;
|
|
119
|
+
/**
|
|
120
|
+
* 创建用于扩展目标的便捷函数
|
|
121
|
+
*
|
|
122
|
+
* @remarks
|
|
123
|
+
* 它返回的便利函数的功能与 {@link targetExtend} 的功能一样,唯一区别是不再需要接收 cla 参数了
|
|
124
|
+
*
|
|
125
|
+
* @param cla - 扩展的目标,也用作 this 的类型
|
|
126
|
+
* @returns 可以用于 扩展目标 的便利函数
|
|
127
|
+
*/
|
|
128
|
+
export declare function createTargetIExtend<C extends AbstractConstructor>(cla: C): <E>(ext: IExtendOptions<C, E>) => E;
|
|
129
|
+
/**
|
|
130
|
+
* 扩展目标
|
|
131
|
+
*
|
|
132
|
+
* @remarks
|
|
133
|
+
* 会执行对 CEarth 类的扩展操作。
|
|
134
|
+
* 与 {@link targetExtend} 的区别仅仅是返回类型不一样。
|
|
135
|
+
*
|
|
136
|
+
* @param cla - 扩展的目标,也用作 this 的类型
|
|
137
|
+
* @param ext - 扩展对象,会自动更改其this的类型
|
|
138
|
+
* @returns 返回扩展后的 cla 对象
|
|
139
|
+
*/
|
|
140
|
+
export declare function iextendTarget<C extends AbstractConstructor, E>(cla: C, ext: IExtendOptions<C, E>): IExtendClass<C, E>;
|
|
141
|
+
/**
|
|
142
|
+
* 创建用于扩展目标工具函数
|
|
143
|
+
*
|
|
144
|
+
* @remarks
|
|
145
|
+
* 它返回的便利函数的功能与 {@link extendTarget} 的功能一样,唯一区别是不再需要接收 cla 参数了
|
|
146
|
+
*
|
|
147
|
+
* @param cla - 扩展的目标,也用作 this 的类型
|
|
148
|
+
* @returns 可以用于 扩展目标 的便利函数
|
|
149
|
+
*/
|
|
150
|
+
export declare function createIExtendTarget<C extends AbstractConstructor>(cla: C): <E>(ext: IExtendOptions<C, E>) => IExtendClass<C, E>;
|
|
87
151
|
//# sourceMappingURL=IExtend.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IExtend.d.ts","sourceRoot":"","sources":["../../src/plugin-manager/IExtend.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AACpD,OAAO,KAAK,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"IExtend.d.ts","sourceRoot":"","sources":["../../src/plugin-manager/IExtend.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AACpD,OAAO,KAAK,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAG3D;;;;;;GAMG;AACH,MAAM,WAAW,OAAO,CAAC,SAAS,SAAS,mBAAmB;IAC5D;;;OAGG;IACH,QAAQ,CAAC,CAAC,IAAI,EAAE,YAAY,CAAC,SAAS,CAAC,EAAE,GAAG,IAAI,EAAE,qBAAqB,CAAC,SAAS,CAAC,GAAG,GAAG,CAAC;IAEzF;;;;OAIG;IACH,MAAM,CAAC,CAAC,IAAI,EAAE,YAAY,CAAC,SAAS,CAAC,EAAE,GAAG,IAAI,EAAE,GAAG,GAAG,GAAG,CAAC;IAE1D;;;OAGG;IACH,SAAS,CAAC,CAAC,IAAI,EAAE,YAAY,CAAC,SAAS,CAAC,GAAG,GAAG,CAAC;CAChD;AAID;;;;GAIG;AACH,MAAM,WAAW,UAAU,CAAC,SAAS,SAAS,mBAAmB,CAAE,SAAQ,OAAO,CAAC,SAAS,CAAC;IAC3F,CAAC,GAAG,EAAE,WAAW,GAAG,GAAG,CAAC;CACzB;AAMD;;;;;;;GAOG;AACH,MAAM,MAAM,cAAc,CAAC,SAAS,SAAS,mBAAmB,EAAE,GAAG,IAAI,aAAa,CAAC,SAAS,EAAE,OAAO,CAAC,SAAS,CAAC,GAAG,GAAG,CAAC,CAAC;AAE5H;;;;;;GAMG;AACH,MAAM,MAAM,iBAAiB,CAAC,SAAS,SAAS,mBAAmB,IAAI,cAAc,CAAC,SAAS,EAAC,MAAM,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC,CAAC;AAS1H;;;;GAIG;AACH,MAAM,MAAM,kBAAkB,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,EAAE,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;AAGhE;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,aAAa,EAAE,GAAG,GAAG,kBAAkB,CAAC,GAAG,CAAC,CAUtF;AAMD;;;;;;;;;;;GAWG;AACH,wBAAgB,YAAY,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,GAAG,kBAAkB,CAAC,CAAC,CAAC,CAW/E;AAUD;;;;;;;GAOG;AACH,MAAM,MAAM,YAAY,CAAC,SAAS,SAAS,mBAAmB,EAAE,GAAG,IAAI,WAAW,CAAC,SAAS,EAAE,kBAAkB,CAAC,GAAG,CAAC,CAAC,CAAC;AAYvH;;;;;;;;;GASG;AACH,wBAAgB,aAAa,CAAC,SAAS,SAAS,mBAAmB,EAAE,GAAG,EAAE,SAAS,EAAE,SAAS,EAAE,GAAG,EAAE,cAAc,CAAC,SAAS,EAAE,GAAG,CAAC,GAAG,GAAG,CAExI;AAID;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CAAC,SAAS,SAAS,mBAAmB,EAAE,SAAS,EAAE,SAAS,IAC7D,GAAG,EAAE,KAAK,cAAc,CAAC,SAAS,EAAE,GAAG,CAAC,KAAG,GAAG,CAG/E;AAOD;;;;;;;;;;GAUG;AACH,wBAAgB,aAAa,CAAC,CAAC,SAAS,mBAAmB,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,cAAc,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,GAAG,CAG1G;AAMD;;;;;;;;GAQG;AACH,wBAAgB,mBAAmB,CAAC,CAAC,SAAS,mBAAmB,EAAE,GAAG,EAAE,CAAC,IACxC,CAAC,EAAE,KAAK,cAAc,CAAC,CAAC,EAAE,CAAC,CAAC,KAAG,CAAC,CAIhE;AAID;;;;;;;;;;GAUG;AACH,wBAAgB,aAAa,CAAC,CAAC,SAAS,mBAAmB,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,cAAc,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,YAAY,CAAC,CAAC,EAAE,CAAC,CAAC,CAGrH;AAED;;;;;;;;GAQG;AACH,wBAAgB,mBAAmB,CAAC,CAAC,SAAS,mBAAmB,EAAE,GAAG,EAAE,CAAC,IACxC,CAAC,EAAG,KAAK,cAAc,CAAC,CAAC,EAAE,CAAC,CAAC,KAAI,YAAY,CAAC,CAAC,EAAE,CAAC,CAAC,CAInF"}
|
|
@@ -88,5 +88,5 @@ export declare function extendTarget<C extends AbstractConstructor, E>(cla: C, e
|
|
|
88
88
|
* @param cla - 扩展的目标,也用作 this 的类型
|
|
89
89
|
* @returns 可以用于 扩展目标 的便利函数
|
|
90
90
|
*/
|
|
91
|
-
export declare function createExtendTarget<C extends
|
|
91
|
+
export declare function createExtendTarget<C extends AbstractConstructor>(cla: C): <E>(ext: ExtendOptions<C, E>) => ExtendClass<C, E>;
|
|
92
92
|
//# sourceMappingURL=extend.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"extend.d.ts","sourceRoot":"","sources":["../../src/plugin-manager/extend.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAM/D;;;;;;;GAOG;AACH,MAAM,MAAM,aAAa,CAAC,SAAS,SAAS,mBAAmB,EAAE,GAAG,IAAI,GAAG,GAAG,QAAQ,CAAC,YAAY,CAAC,SAAS,CAAC,GAAG,GAAG,CAAC,CAAC;AAEtH;;;;;;GAMG;AACH,MAAM,MAAM,gBAAgB,CAAC,SAAS,SAAS,mBAAmB,IAAI,aAAa,CAAC,SAAS,EAAE,MAAM,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC,CAAC;AAKzH;;;;;;;GAOG;AACH,MAAM,MAAM,WAAW,CAAC,SAAS,SAAS,mBAAmB,EAAE,GAAG,IAAI,IAAI,CAAC,SAAS,EAAE,WAAW,CAAC,GAAG,SAAS,CAAC,YAAY,CAAC,SAAS,CAAC,GAAG,GAAG,EAAE,qBAAqB,CAAC,SAAS,CAAC,CAAC,CAAC;AAMhL;;;;;;;;;GASG;AACH,wBAAgB,YAAY,CAAC,SAAS,SAAS,mBAAmB,EAAE,GAAG,EAAE,SAAS,EAAE,SAAS,EAAE,GAAG,EAAE,aAAa,CAAC,SAAS,EAAE,GAAG,CAAC,GAAG,GAAG,CAEtI;AAID;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAAC,SAAS,SAAS,mBAAmB,EAAE,SAAS,EAAE,SAAS,IAC7D,GAAG,EAAE,KAAK,aAAa,CAAC,SAAS,EAAE,GAAG,CAAC,KAAG,GAAG,CAG7E;AAOD;;;;;;;;;;GAUG;AACH,wBAAgB,YAAY,CAAC,CAAC,SAAS,mBAAmB,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,aAAa,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,GAAG,CAGxG;AAMD;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAAC,CAAC,SAAS,mBAAmB,EAAE,GAAG,EAAE,CAAC,IACxC,CAAC,EAAE,KAAK,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,KAAG,CAAC,CAI9D;AAID;;;;;;;;;;GAUG;AACH,wBAAgB,YAAY,CAAC,CAAC,SAAS,mBAAmB,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC,CAGlH;AAED;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAAC,CAAC,SAAS,
|
|
1
|
+
{"version":3,"file":"extend.d.ts","sourceRoot":"","sources":["../../src/plugin-manager/extend.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAM/D;;;;;;;GAOG;AACH,MAAM,MAAM,aAAa,CAAC,SAAS,SAAS,mBAAmB,EAAE,GAAG,IAAI,GAAG,GAAG,QAAQ,CAAC,YAAY,CAAC,SAAS,CAAC,GAAG,GAAG,CAAC,CAAC;AAEtH;;;;;;GAMG;AACH,MAAM,MAAM,gBAAgB,CAAC,SAAS,SAAS,mBAAmB,IAAI,aAAa,CAAC,SAAS,EAAE,MAAM,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC,CAAC;AAKzH;;;;;;;GAOG;AACH,MAAM,MAAM,WAAW,CAAC,SAAS,SAAS,mBAAmB,EAAE,GAAG,IAAI,IAAI,CAAC,SAAS,EAAE,WAAW,CAAC,GAAG,SAAS,CAAC,YAAY,CAAC,SAAS,CAAC,GAAG,GAAG,EAAE,qBAAqB,CAAC,SAAS,CAAC,CAAC,CAAC;AAMhL;;;;;;;;;GASG;AACH,wBAAgB,YAAY,CAAC,SAAS,SAAS,mBAAmB,EAAE,GAAG,EAAE,SAAS,EAAE,SAAS,EAAE,GAAG,EAAE,aAAa,CAAC,SAAS,EAAE,GAAG,CAAC,GAAG,GAAG,CAEtI;AAID;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAAC,SAAS,SAAS,mBAAmB,EAAE,SAAS,EAAE,SAAS,IAC7D,GAAG,EAAE,KAAK,aAAa,CAAC,SAAS,EAAE,GAAG,CAAC,KAAG,GAAG,CAG7E;AAOD;;;;;;;;;;GAUG;AACH,wBAAgB,YAAY,CAAC,CAAC,SAAS,mBAAmB,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,aAAa,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,GAAG,CAGxG;AAMD;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAAC,CAAC,SAAS,mBAAmB,EAAE,GAAG,EAAE,CAAC,IACxC,CAAC,EAAE,KAAK,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,KAAG,CAAC,CAI9D;AAID;;;;;;;;;;GAUG;AACH,wBAAgB,YAAY,CAAC,CAAC,SAAS,mBAAmB,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC,CAGlH;AAED;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAAC,CAAC,SAAS,mBAAmB,EAAE,GAAG,EAAE,CAAC,IACvC,CAAC,EAAG,KAAK,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,KAAI,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC,CAIjF"}
|
package/package.json
CHANGED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";const O=require("@gby/destroyable"),d=require("deepmerge-ts"),g=require("com-tools"),_=["onCreate","onInit","onDestroy"];function w(i){const t={...i};for(const e of _)typeof t[e]=="function"&&delete t[e];return t}function F(i,t){let e=Object.getOwnPropertyDescriptors(t);for(const n of _)typeof t[n]=="function"&&delete e[n];return Object.defineProperties(i,e),i}function b(i){return i&&typeof i.onUse=="function"}const l=Symbol("extend");class p extends O.Destroyable{host;plugins=new Map;constructor(t){super(),t&&(this.host=t)}destroyThis(){return this.plugins.clear(),this.host=null,super.destroyThis()}hasUsed(t){return this.plugins.has(t)}isPlugin(t){const{plugins:e}=this;return e.has(t)?e.get(t)!==l:b(t)}useExtend(t){const{plugins:e}=this;return e.has(t)?e.get(t):(F(this.host.prototype,t),e.set(t,l),t)}instUseExtend(t,e,...n){const{plugins:s}=this;return s.has(e)?s.get(e):(this.useExtend(e),e.onCreate?.call(t,t,...n),e)}usePlugin(t,...e){const{plugins:n}=this;if(n.has(t))return n.get(t);const s=t.onUse(this.host,...e);return n.set(t,s),s}instUsePlugin(t,e,...n){const{plugins:s}=this;if(s.has(e))return s.get(e);const o=this.usePlugin(e,...n);return e.onCreate?.(t),o}onCreate(t,...e){const n=[];for(const[s,o]of this.plugins)if(s.onCreate){const r=o===l?s.onCreate:s.onCreate.bind(s);n.push(r)}return g.serialCallFuns(n,t,[t,...e])}onInit(t,...e){const n=[];for(const[s,o]of this.plugins)if(s.onInit){const r=o===l?s.onInit:s.onInit.bind(s);n.push(r)}return g.serialCallFuns(n,t,[t,...e])}onDestroy(t){const e=[];for(const[n,s]of this.plugins)if(n.onDestroy){const o=s===l?n.onDestroy:n.onDestroy.bind(n);e.push(o)}return e.reverse(),g.serialCallFuns(e,t,[t])}}function m(i){const t=i.split(".");return t[0]===""&&t.shift(),t}function h(i,t){for(const e of t)if(i=i[e],i==null)return;return i}function V(i,t){return h(i,m(t))}function M(i,t,e){const n=t.pop(),s=t.length;let o=0;for(;o<s;){const r=i[t[o]];if(r==null)break;i=r,o++}t=t.slice(o);for(const r of t)i=i[r]={};return i[n]=e,i}function N(i,t,e){return M(i,m(t),e)}const f={UndefinedAndNull:function(t){return t==null},Undefined:function(t){return t===void 0},Null:function(t){return t===null}};class U{freezeMember=!0;fullOption=new Proxy(this,{get:function(t,e,n){const s=t.plainFullOption[e];return t.freezeMember?Object.freeze(s):s},set:function(t,e,n,s){return t.setMember(e,n,!1),!0},has:function(t,e){return e in t.plainFullOption},getOwnPropertyDescriptor:function(t,e){return Object.getOwnPropertyDescriptor(t.plainFullOption,e)},ownKeys:function(t){return Reflect.ownKeys(t.plainFullOption)},deleteProperty:function(t,e){return t.setMember(e,void 0),!0},defineProperty:function(t,e,n){return Object.defineProperty(t.option,e,n),!0}});setOption(t,e){const n=e?d.deepmergeInto(this.option,t):Object.assign(this.option,t);return this.updateFullOption(),n}get undefinedValue(){return this._undefinedValue}set undefinedValue(t){this._undefinedValue=t,this.isUndefined=f[t]||f.UndefinedAndNull}_undefinedValue="UndefinedAndNull";isUndefined=f.UndefinedAndNull;getMember(t){return this.option[t]}setMember(t,e,n){const s=this.option;if(e===void 0)delete s[t];else{const o=s[t];n&&o&&typeof o=="object"?d.deepmergeInto(o,e):s[t]=e}this.updateFullOption()}getValue(t){return h(this.option,t)}setValue(t,e,n){const s=this.option;let o;n&&(o=h(s,t))&&typeof o=="object"?d.deepmergeInto(o,e):M(this.option,t,e),this.updateFullOption()}}class u extends U{constructor(t,e){super(),t&&(this.option=t),e&&(this.extends=e)}get extends(){return this._extends}set extends(t){this._extends=t,this.updateFullOption()}_extends=null;option={};get plainFullOption(){let t=this._plainFullOption;if(t)return t;const{extends:e,option:n}=this;if(t=n,e){const s=e.plainFullOption;t=d.deepmerge(s,n)}return this._plainFullOption=t}_plainFullOption=null;updateFullOption(){this._plainFullOption=null}getMember(t){const e=this.option[t];if(!this.isUndefined(e))return e;const n=this.extends;if(n)return n.getMember(t)}getValue(t){const e=super.getValue(t);if(!this.isUndefined(e))return e;const n=this.extends;if(n)return n.getValue(t)}}function D(i,t){const{name:e}=t,n=`_${e}`;return{get:function(){return this[n]||(this[n]=new u(void 0,this.constructor[e]))}}}class T extends U{constructor(t,e){super(),e&&this.setModeOption(t,e),this.mode=t}modes={};get mode(){return this._mode||(this.mode=this.modeNames[0])}set mode(t){this._mode=t,this.hasMode(t)||this.setModeOption(t,{}),this.updateFullOption()}_mode;get modeNames(){return this._modeNames||(this._modeNames=this.getModeNames())}_modeNames=null;getModeNames(){return Object.keys(this.modes)}hasMode(t){return!!this.modes[t]}get optionManager(){return this.modes[this.mode]}get option(){return this.optionManager.option}get plainFullOption(){return this._plainFullOption??(this._plainFullOption=this.getFullModeOption(this.mode))}_plainFullOption=null;updateFullOption(){this._plainFullOption=null,this._modeNames=null}getModeOption(t){return this.modes[t].option}getFullModeOption(t){return this.modes[t]?.plainFullOption}setModeOption(t,e,n,s){const{modes:o}=this,r=o[t]||(o[t]=new u);if(r.setOption(e,n),s){const y=o[s];y&&(r.extends=y)}return this.updateFullOption(),r}}class a extends T{constructor(t,e,n){super(t,e),n&&(this.extends=n)}get extends(){return this._extends}set extends(t){this._extends=t,this.updateFullOption()}_extends=null;getFullModeOption(t){const{modes:e,extends:n}=this,s=e[t]?.plainFullOption;if(n){const o=n.getFullModeOption(t);return s?d.deepmerge(o,s):o}return s}getModeNames(){const{modes:t,extends:e}=this,n=Object.keys(t);if(!e)return n;const s=e.getModeNames();return[...new Set([...n,...s])]}hasModeOnTier(t){if(this.hasMode(t))return!0;const e=this.extends;return e?e.hasModeOnTier(t):!1}get optionManager(){return this.getModeOptionManager(this.mode)}getModeOptionManager(t){const e=this.modes[t];return e||(this.extends?.getModeOptionManager(t)?this.setModeOption(t,{}):null)}getMember(t){const e=this.optionManager.getMember(t);if(!this.isUndefined(e))return e;const n=this.extends;if(n)return n.getMember(t)}getValue(t){const e=this.optionManager.getValue(t);if(!this.isUndefined(e))return e;const n=this.extends;if(n)return n.getValue(t)}}function H(i,t){const{name:e}=t,n=`_${e}`;return{get:function(){return this[n]||(this[n]=new a(this.constructor[e].mode,void 0,this.constructor[e]))}}}class P extends O.Destroyable{static isolatedPluginManager=!1;static get pluginManager(){return this.isolatedPluginManager&&!this.hasOwnProperty("_pluginManager")&&(this._pluginManager=new p(this)),this._pluginManager}static _pluginManager=new p(this);get pluginManager(){return this.constructor.pluginManager}static usePlugin(t,...e){return this.pluginManager.usePlugin(t,...e)}static useExtend(t){return this.pluginManager.useExtend(t)}static hasUsed(t){return this.pluginManager.hasUsed(t)}usePlugin(t,...e){return this.pluginManager.instUsePlugin(this,t,...e)}useExtend(t,...e){return this.pluginManager.instUseExtend(this,t,...e)}init(...t){return this.pluginManager.onInit(this,...t)}destroyThis(){const t=this.pluginManager.onDestroy(this);return t instanceof Promise?t.finally(()=>super.destroyThis()):super.destroyThis()}}class v extends P{static defaultOptions=new u;get defaultOptions(){return this._defaultOptions||(this._defaultOptions=new u(void 0,this.constructor.defaultOptions))}_defaultOptions;constructor(t){super(),this.defaultOptions.option=t}}function x(i){const t=O.createDestroyableSubClass(i);return class extends t{static isolatedPluginManager=!1;static get pluginManager(){return this.isolatedPluginManager&&!this.hasOwnProperty("_pluginManager")&&(this._pluginManager=new p(this)),this._pluginManager}static _pluginManager=new p(this);get pluginManager(){return this.constructor.pluginManager}static usePlugin(n,...s){return this.pluginManager.usePlugin(n,...s)}static useExtend(n){return this.pluginManager.useExtend(n)}static hasUsed(n){return this.pluginManager.hasUsed(n)}usePlugin(n,...s){return this.pluginManager.instUsePlugin(this,n,...s)}useExtend(n,...s){return this.pluginManager.instUseExtend(this,n,...s)}init(...n){return this.pluginManager.onInit(this,...n)}destroyThis(){const n=this.pluginManager.onDestroy(this);return n instanceof Promise?n.finally(()=>super.destroyThis()):super.destroyThis()}}}function E(i){const t=x(i);return class extends t{static defaultOptions=new u;get defaultOptions(){return this._defaultOptions||(this._defaultOptions=new u(void 0,this.constructor.defaultOptions))}_defaultOptions;constructor(n){super(),this.defaultOptions.option=n}}}const c="common";class k extends P{static modeOptions=new a(c);get modeOptions(){return this._modeOptions||(this._modeOptions=new a(c,void 0,this.constructor.modeOptions))}_modeOptions;get mode(){return this.modeOptions.mode}set mode(t){this.modeOptions.mode=t}get options(){return this.modeOptions.plainFullOption}constructor(t){super(),this.modeOptions.setOption(t)}}function C(i){const t=x(i);return class extends t{static modeOptions=new a(c);get modeOptions(){return this._modeOptions||(this._modeOptions=new a(c,void 0,this.constructor.modeOptions))}_modeOptions;get mode(){return this.modeOptions.mode}set mode(n){this.modeOptions.mode=n}get options(){return this.modeOptions.plainFullOption}constructor(n){super(),this.modeOptions.setOption(n)}}}exports.ModeOptions=T;exports.PluginExtendManager=p;exports.PluginHost=P;exports.TierModeOptions=a;exports.TierModeOptionsPluginHost=k;exports.TierOptions=u;exports.TierOptionsPluginHost=v;exports.commonModeName=c;exports.createPluginHost=x;exports.createTierModeOptionsPluginHost=C;exports.createTierOptionsPluginHost=E;exports.extendMark=l;exports.getPropertyValue=h;exports.getPropertyValueByPath=V;exports.isPlugin=b;exports.mixinIExtend=F;exports.parsePropertyPath=m;exports.pickHostExtendMembers=w;exports.setPropertyValue=M;exports.setPropertyValueByPath=N;exports.tierModeOptionsDecorator=H;exports.tierOptionsDecorator=D;
|