xypriss 5.0.1 → 5.2.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 +1 -0
- package/dist/cjs/src/plugins/api/PluginAPI.js +34 -0
- package/dist/cjs/src/plugins/api/PluginAPI.js.map +1 -1
- package/dist/cjs/src/plugins/const/PluginHookIds.js +4 -0
- package/dist/cjs/src/plugins/const/PluginHookIds.js.map +1 -1
- package/dist/cjs/src/plugins/core/PluginManager.js +275 -27
- package/dist/cjs/src/plugins/core/PluginManager.js.map +1 -1
- package/dist/cjs/src/schemas/plugingSchema.js +40 -0
- package/dist/cjs/src/schemas/plugingSchema.js.map +1 -0
- package/dist/cjs/src/server/core/HttpServer.js +22 -201
- package/dist/cjs/src/server/core/HttpServer.js.map +1 -1
- package/dist/cjs/src/server/core/RequestApp.js +95 -0
- package/dist/cjs/src/server/core/RequestApp.js.map +1 -0
- package/dist/cjs/src/server/core/RequestEnhancer.js +334 -0
- package/dist/cjs/src/server/core/RequestEnhancer.js.map +1 -0
- package/dist/cjs/src/server/core/ResponseEnhancer.js +518 -0
- package/dist/cjs/src/server/core/ResponseEnhancer.js.map +1 -0
- package/dist/cjs/src/server/utils/ConfigLoader.js +47 -0
- package/dist/cjs/src/server/utils/ConfigLoader.js.map +1 -1
- package/dist/cjs/src/server/utils/trustProxy.js +487 -155
- package/dist/cjs/src/server/utils/trustProxy.js.map +1 -1
- package/dist/esm/src/plugins/api/PluginAPI.js +34 -0
- package/dist/esm/src/plugins/api/PluginAPI.js.map +1 -1
- package/dist/esm/src/plugins/const/PluginHookIds.js +4 -0
- package/dist/esm/src/plugins/const/PluginHookIds.js.map +1 -1
- package/dist/esm/src/plugins/core/PluginManager.js +275 -27
- package/dist/esm/src/plugins/core/PluginManager.js.map +1 -1
- package/dist/esm/src/schemas/plugingSchema.js +38 -0
- package/dist/esm/src/schemas/plugingSchema.js.map +1 -0
- package/dist/esm/src/server/core/HttpServer.js +24 -203
- package/dist/esm/src/server/core/HttpServer.js.map +1 -1
- package/dist/esm/src/server/core/RequestApp.js +93 -0
- package/dist/esm/src/server/core/RequestApp.js.map +1 -0
- package/dist/esm/src/server/core/RequestEnhancer.js +332 -0
- package/dist/esm/src/server/core/RequestEnhancer.js.map +1 -0
- package/dist/esm/src/server/core/ResponseEnhancer.js +516 -0
- package/dist/esm/src/server/core/ResponseEnhancer.js.map +1 -0
- package/dist/esm/src/server/utils/ConfigLoader.js +47 -0
- package/dist/esm/src/server/utils/ConfigLoader.js.map +1 -1
- package/dist/esm/src/server/utils/trustProxy.js +487 -155
- package/dist/esm/src/server/utils/trustProxy.js.map +1 -1
- package/dist/index.d.ts +222 -27
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -110,6 +110,7 @@ server.start(() => {
|
|
|
110
110
|
|
|
111
111
|
### Core Guides
|
|
112
112
|
|
|
113
|
+
- **[Features Overview](./docs/FEATURES_OVERVIEW.md)** - Summary of latest improvements and architectural features
|
|
113
114
|
- **[Routing](./docs/ROUTING.md)** - Routes, parameters, wildcards, and middleware
|
|
114
115
|
- **[XJson API](./docs/XJSON_API.md)** - Advanced JSON serialization for BigInt and large data
|
|
115
116
|
- **[Global APIs](./docs/GLOBAL_APIS.md)** - Runtime globals overview
|
|
@@ -146,6 +146,40 @@ const Plugin = {
|
|
|
146
146
|
factory(creator) {
|
|
147
147
|
return creator;
|
|
148
148
|
},
|
|
149
|
+
// /**
|
|
150
|
+
// * Get statistics for all registered plugins
|
|
151
|
+
// * Requires MANAGE_PLUGINS permission
|
|
152
|
+
// */
|
|
153
|
+
// getStats(): import("../types/PluginTypes").PluginStats[] {
|
|
154
|
+
// const manager = getGlobalPluginManager();
|
|
155
|
+
// if (!manager) return [];
|
|
156
|
+
// return manager.getPluginStats();
|
|
157
|
+
// },
|
|
158
|
+
// /**
|
|
159
|
+
// * Set permission for a plugin hook
|
|
160
|
+
// * Requires MANAGE_PLUGINS permission
|
|
161
|
+
// */
|
|
162
|
+
// setPermission(
|
|
163
|
+
// pluginName: string,
|
|
164
|
+
// hookId: string,
|
|
165
|
+
// allowed: boolean,
|
|
166
|
+
// by?: string
|
|
167
|
+
// ): void {
|
|
168
|
+
// const manager = getGlobalPluginManager();
|
|
169
|
+
// if (manager) {
|
|
170
|
+
// manager.setPluginPermission(pluginName, hookId, allowed, by);
|
|
171
|
+
// }
|
|
172
|
+
// },
|
|
173
|
+
// /**
|
|
174
|
+
// * Toggle plugin enabled/disabled state
|
|
175
|
+
// * Requires MANAGE_PLUGINS permission
|
|
176
|
+
// */
|
|
177
|
+
// toggle(pluginName: string, enabled: boolean, by?: string): void {
|
|
178
|
+
// const manager = getGlobalPluginManager();
|
|
179
|
+
// if (manager) {
|
|
180
|
+
// manager.togglePlugin(pluginName, enabled, by);
|
|
181
|
+
// }
|
|
182
|
+
// },
|
|
149
183
|
};
|
|
150
184
|
|
|
151
185
|
exports.Plugin = Plugin;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PluginAPI.js","sources":["../../../../../src/plugins/api/PluginAPI.ts"],"sourcesContent":[null],"names":[],"mappings":";;AAAA;;;AAGG;AAKH;;;AAGG;AACH,IAAI,mBAAmB,GAAyB,IAAI,CAAC;AAErD;;AAEG;AACH,MAAM,cAAc,GAGf,EAAE,CAAC;AAER;;;AAGG;AACG,SAAU,sBAAsB,CAAC,OAAsB,EAAA;IACzD,mBAAmB,GAAG,OAAO,CAAC;;IAG9B,KAAK,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,cAAc,EAAE;AAC7C,QAAA,OAAO,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;KACpC;;AAGD,IAAA,cAAc,CAAC,MAAM,GAAG,CAAC,CAAC;AAC9B,CAAC;AAED;;;AAGG;SACa,sBAAsB,GAAA;AAClC,IAAA,OAAO,mBAAmB,CAAC;AAC/B,CAAC;AAED;;;AAGG;AACU,MAAA,MAAM,GAAG;AAClB;;;;;;;;;;;;;AAaG;IACH,QAAQ,CAAC,MAAqC,EAAE,MAAY,EAAA;AACxD,QAAA,MAAM,OAAO,GAAG,sBAAsB,EAAE,CAAC;QAEzC,IAAI,OAAO,EAAE;;AAET,YAAA,OAAO,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;SACpC;aAAM;;YAEH,cAAc,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;SAC3C;KACJ;AACD;;;;;;;;;;;;;;;AAeG;IACH,IAAI,CAAC,GAAG,CAAmC,EAAA;AACvC,QAAA,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;KACvB;AAED;;;;;;;;;;;;AAYG;AACH,IAAA,GAAG,CAAC,IAAY,EAAA;AACZ,QAAA,MAAM,OAAO,GAAG,sBAAsB,EAAE,CAAC;QAEzC,IAAI,CAAC,OAAO,EAAE;AACV,YAAA,MAAM,IAAI,KAAK,CACX,gEAAgE,CACnE,CAAC;SACL;AAED,QAAA,OAAO,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;KAClC;AAED;;;;;;;;;;;;;;;;AAgBG;AACH,IAAA,MAAM,CAAC,MAAqB,EAAA;AACxB,QAAA,OAAO,MAAM,CAAC;KACjB;AAED;;;;;;;;;;;;;;;;;;;;AAoBG;AACH,IAAA,OAAO,CACH,OAA2C,EAAA;AAE3C,QAAA,OAAO,OAAwB,CAAC;KACnC
|
|
1
|
+
{"version":3,"file":"PluginAPI.js","sources":["../../../../../src/plugins/api/PluginAPI.ts"],"sourcesContent":[null],"names":[],"mappings":";;AAAA;;;AAGG;AAKH;;;AAGG;AACH,IAAI,mBAAmB,GAAyB,IAAI,CAAC;AAErD;;AAEG;AACH,MAAM,cAAc,GAGf,EAAE,CAAC;AAER;;;AAGG;AACG,SAAU,sBAAsB,CAAC,OAAsB,EAAA;IACzD,mBAAmB,GAAG,OAAO,CAAC;;IAG9B,KAAK,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,cAAc,EAAE;AAC7C,QAAA,OAAO,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;KACpC;;AAGD,IAAA,cAAc,CAAC,MAAM,GAAG,CAAC,CAAC;AAC9B,CAAC;AAED;;;AAGG;SACa,sBAAsB,GAAA;AAClC,IAAA,OAAO,mBAAmB,CAAC;AAC/B,CAAC;AAED;;;AAGG;AACU,MAAA,MAAM,GAAG;AAClB;;;;;;;;;;;;;AAaG;IACH,QAAQ,CAAC,MAAqC,EAAE,MAAY,EAAA;AACxD,QAAA,MAAM,OAAO,GAAG,sBAAsB,EAAE,CAAC;QAEzC,IAAI,OAAO,EAAE;;AAET,YAAA,OAAO,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;SACpC;aAAM;;YAEH,cAAc,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;SAC3C;KACJ;AACD;;;;;;;;;;;;;;;AAeG;IACH,IAAI,CAAC,GAAG,CAAmC,EAAA;AACvC,QAAA,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;KACvB;AAED;;;;;;;;;;;;AAYG;AACH,IAAA,GAAG,CAAC,IAAY,EAAA;AACZ,QAAA,MAAM,OAAO,GAAG,sBAAsB,EAAE,CAAC;QAEzC,IAAI,CAAC,OAAO,EAAE;AACV,YAAA,MAAM,IAAI,KAAK,CACX,gEAAgE,CACnE,CAAC;SACL;AAED,QAAA,OAAO,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;KAClC;AAED;;;;;;;;;;;;;;;;AAgBG;AACH,IAAA,MAAM,CAAC,MAAqB,EAAA;AACxB,QAAA,OAAO,MAAM,CAAC;KACjB;AAED;;;;;;;;;;;;;;;;;;;;AAoBG;AACH,IAAA,OAAO,CACH,OAA2C,EAAA;AAE3C,QAAA,OAAO,OAAwB,CAAC;KACnC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -25,6 +25,8 @@ const PluginHookIds = {
|
|
|
25
25
|
// Routing & Middleware
|
|
26
26
|
REGISTER_ROUTES: "PLG.ROUTING.REGISTER_ROUTES",
|
|
27
27
|
MIDDLEWARE: "PLG.HTTP.MIDDLEWARE",
|
|
28
|
+
// Management Hooks
|
|
29
|
+
MANAGE_PLUGINS: "PLG.MANAGEMENT.MANAGE_PLUGINS",
|
|
28
30
|
};
|
|
29
31
|
/**
|
|
30
32
|
* Mapping from internal hook method names to public PluginHookIds
|
|
@@ -49,6 +51,8 @@ const HOOK_ID_MAP = {
|
|
|
49
51
|
registerRoutes: PluginHookIds.REGISTER_ROUTES,
|
|
50
52
|
// Middleware property (special case)
|
|
51
53
|
middleware: PluginHookIds.MIDDLEWARE,
|
|
54
|
+
// Management
|
|
55
|
+
managePlugins: PluginHookIds.MANAGE_PLUGINS,
|
|
52
56
|
};
|
|
53
57
|
|
|
54
58
|
exports.HOOK_ID_MAP = HOOK_ID_MAP;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PluginHookIds.js","sources":["../../../../../src/plugins/const/PluginHookIds.ts"],"sourcesContent":[null],"names":[],"mappings":";;AAAA;;;;;AAKG;AAEU,MAAA,aAAa,GAAG;;AAEzB,IAAA,WAAW,EAAE,wBAAwB;AACrC,IAAA,eAAe,EAAE,4BAA4B;AAC7C,IAAA,eAAe,EAAE,4BAA4B;AAC7C,IAAA,cAAc,EAAE,2BAA2B;;AAG3C,IAAA,UAAU,EAAE,qBAAqB;AACjC,IAAA,WAAW,EAAE,sBAAsB;AACnC,IAAA,QAAQ,EAAE,mBAAmB;;AAG7B,IAAA,kBAAkB,EAAE,8BAA8B;AAClD,IAAA,aAAa,EAAE,yBAAyB;;AAGxC,IAAA,gBAAgB,EAAE,2BAA2B;AAC7C,IAAA,cAAc,EAAE,yBAAyB;;AAGzC,IAAA,eAAe,EAAE,6BAA6B;AAC9C,IAAA,UAAU,EAAE,qBAAqB;
|
|
1
|
+
{"version":3,"file":"PluginHookIds.js","sources":["../../../../../src/plugins/const/PluginHookIds.ts"],"sourcesContent":[null],"names":[],"mappings":";;AAAA;;;;;AAKG;AAEU,MAAA,aAAa,GAAG;;AAEzB,IAAA,WAAW,EAAE,wBAAwB;AACrC,IAAA,eAAe,EAAE,4BAA4B;AAC7C,IAAA,eAAe,EAAE,4BAA4B;AAC7C,IAAA,cAAc,EAAE,2BAA2B;;AAG3C,IAAA,UAAU,EAAE,qBAAqB;AACjC,IAAA,WAAW,EAAE,sBAAsB;AACnC,IAAA,QAAQ,EAAE,mBAAmB;;AAG7B,IAAA,kBAAkB,EAAE,8BAA8B;AAClD,IAAA,aAAa,EAAE,yBAAyB;;AAGxC,IAAA,gBAAgB,EAAE,2BAA2B;AAC7C,IAAA,cAAc,EAAE,yBAAyB;;AAGzC,IAAA,eAAe,EAAE,6BAA6B;AAC9C,IAAA,UAAU,EAAE,qBAAqB;;AAGjC,IAAA,cAAc,EAAE,+BAA+B;EACxC;AAEX;;AAEG;AACU,MAAA,WAAW,GAA2B;;IAE/C,UAAU,EAAE,aAAa,CAAC,WAAW;IACrC,aAAa,EAAE,aAAa,CAAC,eAAe;IAC5C,aAAa,EAAE,aAAa,CAAC,eAAe;IAC5C,YAAY,EAAE,aAAa,CAAC,cAAc;;IAG1C,SAAS,EAAE,aAAa,CAAC,UAAU;IACnC,UAAU,EAAE,aAAa,CAAC,WAAW;IACrC,OAAO,EAAE,aAAa,CAAC,QAAQ;;IAG/B,gBAAgB,EAAE,aAAa,CAAC,kBAAkB;IAClD,WAAW,EAAE,aAAa,CAAC,aAAa;;IAGxC,cAAc,EAAE,aAAa,CAAC,gBAAgB;IAC9C,YAAY,EAAE,aAAa,CAAC,cAAc;;IAG1C,cAAc,EAAE,aAAa,CAAC,eAAe;;IAG7C,UAAU,EAAE,aAAa,CAAC,UAAU;;IAGpC,aAAa,EAAE,aAAa,CAAC,cAAc;;;;;;"}
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
var Logger = require('../../../shared/logger/Logger.js');
|
|
4
4
|
var PluginHookIds = require('../const/PluginHookIds.js');
|
|
5
|
+
var plugingSchema = require('../../schemas/plugingSchema.js');
|
|
5
6
|
|
|
6
7
|
/**
|
|
7
8
|
* Plugin Manager
|
|
@@ -12,6 +13,7 @@ class PluginManager {
|
|
|
12
13
|
this.plugins = new Map();
|
|
13
14
|
this.pluginOrder = [];
|
|
14
15
|
this.initialized = false;
|
|
16
|
+
this.disabledPlugins = new Set();
|
|
15
17
|
this.server = server;
|
|
16
18
|
this.logger = new Logger.Logger();
|
|
17
19
|
}
|
|
@@ -25,6 +27,15 @@ class PluginManager {
|
|
|
25
27
|
if (!pluginInstance.name || !pluginInstance.version) {
|
|
26
28
|
throw new Error("Plugin must have name and version");
|
|
27
29
|
}
|
|
30
|
+
const vldt = plugingSchema.validatePlgInput({
|
|
31
|
+
name: pluginInstance.name,
|
|
32
|
+
version: pluginInstance.version,
|
|
33
|
+
});
|
|
34
|
+
if (typeof vldt === "string") {
|
|
35
|
+
// this.logger.error("plugins", vldt);
|
|
36
|
+
// return;
|
|
37
|
+
throw new Error(vldt);
|
|
38
|
+
}
|
|
28
39
|
// Check for duplicates
|
|
29
40
|
if (this.plugins.has(pluginInstance.name)) {
|
|
30
41
|
this.logger.warn("plugins", `Plugin '${pluginInstance.name}' already registered, skipping`);
|
|
@@ -101,50 +112,144 @@ class PluginManager {
|
|
|
101
112
|
this.resolveDependencies();
|
|
102
113
|
this.initialized = true; // Set before calling hooks so late-registered plugins are detected
|
|
103
114
|
await this.executeHook("onServerStart");
|
|
115
|
+
// Execute management hook for plugins with permission
|
|
116
|
+
for (const pluginName of this.pluginOrder) {
|
|
117
|
+
const plugin = this.plugins.get(pluginName);
|
|
118
|
+
if (plugin &&
|
|
119
|
+
typeof plugin.managePlugins === "function" &&
|
|
120
|
+
this.checkPermission(pluginName, "managePlugins")) {
|
|
121
|
+
try {
|
|
122
|
+
await plugin.managePlugins({
|
|
123
|
+
getStats: () => this.getPluginStats(),
|
|
124
|
+
setPermission: (p, h, a, by) => this.setPluginPermission(p, h, a, by || pluginName),
|
|
125
|
+
toggle: (p, e, by) => this.togglePlugin(p, e, by || pluginName),
|
|
126
|
+
});
|
|
127
|
+
}
|
|
128
|
+
catch (error) {
|
|
129
|
+
this.logger.error("plugins", `Error in ${pluginName}.managePlugins:`, error);
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
/**
|
|
135
|
+
* Check if a plugin is disabled and log a warning if it is
|
|
136
|
+
*/
|
|
137
|
+
isPluginDisabled(pluginName, internalHookName) {
|
|
138
|
+
if (this.disabledPlugins.has(pluginName)) {
|
|
139
|
+
const hookId = PluginHookIds.HOOK_ID_MAP[internalHookName] || internalHookName;
|
|
140
|
+
this.logger.warn("plugins", `Plugin '${pluginName}' is disabled but tried to execute hook '${hookId}'. ` +
|
|
141
|
+
`Ignoring request. Please enable it if you want to use its features.`);
|
|
142
|
+
return true;
|
|
143
|
+
}
|
|
144
|
+
return false;
|
|
104
145
|
}
|
|
105
146
|
/**
|
|
106
147
|
* Check if a plugin is allowed to execute a specific hook
|
|
107
148
|
*/
|
|
108
149
|
checkPermission(pluginName, internalHookName) {
|
|
150
|
+
if (this.isPluginDisabled(pluginName, internalHookName)) {
|
|
151
|
+
return false;
|
|
152
|
+
}
|
|
153
|
+
const hookId = PluginHookIds.HOOK_ID_MAP[internalHookName] || internalHookName;
|
|
109
154
|
const permissions = this.server.app.configs?.pluginPermissions;
|
|
110
|
-
//
|
|
155
|
+
// Special case: MANAGE_PLUGINS is denied by default unless explicitly allowed
|
|
156
|
+
const isManagementHook = hookId === PluginHookIds.HOOK_ID_MAP.managePlugins;
|
|
157
|
+
// If no permissions configured
|
|
111
158
|
if (!permissions || permissions.length === 0) {
|
|
159
|
+
if (isManagementHook) {
|
|
160
|
+
this.logger.error("plugins", `Plugin '${pluginName}' is denied access to privileged hook '${hookId}'. ` +
|
|
161
|
+
`Explicit permission is required in server configuration.`);
|
|
162
|
+
return false;
|
|
163
|
+
}
|
|
112
164
|
return true;
|
|
113
165
|
}
|
|
114
166
|
const pluginPerm = permissions.find((p) => p.name === pluginName);
|
|
115
167
|
// If plugin not listed in permissions
|
|
116
168
|
if (!pluginPerm) {
|
|
169
|
+
if (isManagementHook) {
|
|
170
|
+
this.logger.error("plugins", `Plugin '${pluginName}' is denied access to privileged hook '${hookId}'. ` +
|
|
171
|
+
`Explicit permission is required in server configuration.`);
|
|
172
|
+
return false;
|
|
173
|
+
}
|
|
117
174
|
return true;
|
|
118
175
|
}
|
|
119
|
-
//
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
176
|
+
// Check explicitly denied hooks first (they override everything)
|
|
177
|
+
if (pluginPerm.deniedHooks?.includes(hookId)) {
|
|
178
|
+
this.logger.error("plugins", `Plugin '${pluginName}' is explicitly denied access to hook '${hookId}'.`);
|
|
179
|
+
return false;
|
|
180
|
+
}
|
|
181
|
+
const policy = pluginPerm.policy || "allow";
|
|
182
|
+
const allowedHooks = pluginPerm.allowedHooks || "*";
|
|
183
|
+
// If policy is "deny", it's a whitelist
|
|
123
184
|
if (policy === "deny") {
|
|
124
|
-
if (
|
|
185
|
+
if (allowedHooks === "*")
|
|
125
186
|
return true;
|
|
126
|
-
if (Array.isArray(
|
|
127
|
-
pluginPerm.allowedHooks.includes(hookId))
|
|
187
|
+
if (Array.isArray(allowedHooks) && allowedHooks.includes(hookId)) {
|
|
128
188
|
return true;
|
|
129
|
-
|
|
130
|
-
|
|
189
|
+
}
|
|
190
|
+
// throw new Error(
|
|
191
|
+
// `Plugin '${pluginName}' is denied access to hook '${hookId}' by 'deny' policy. ` +
|
|
192
|
+
// `Add it to 'allowedHooks' to grant access.`
|
|
193
|
+
// );
|
|
194
|
+
this.logger.error("plugins", `Plugin '${pluginName}' is denied access to hook '${hookId}' by 'deny' policy. ` +
|
|
195
|
+
`Add it to 'allowedHooks' to grant access.`);
|
|
131
196
|
return false;
|
|
132
197
|
}
|
|
133
|
-
// If
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
if (pluginPerm.allowedHooks.includes(hookId)) {
|
|
198
|
+
// If policy is "allow", it's a blacklist (if we had deniedHooks)
|
|
199
|
+
// or just "allow all except management hooks"
|
|
200
|
+
if (isManagementHook) {
|
|
201
|
+
if (allowedHooks === "*")
|
|
202
|
+
return true;
|
|
203
|
+
if (Array.isArray(allowedHooks) && allowedHooks.includes(hookId)) {
|
|
140
204
|
return true;
|
|
141
205
|
}
|
|
142
|
-
this.logger.error("
|
|
143
|
-
`
|
|
206
|
+
this.logger.error("plugins", `Plugin '${pluginName}' is denied access to privileged hook '${hookId}'. ` +
|
|
207
|
+
`Management hooks must be explicitly listed even with 'allow' policy.`);
|
|
144
208
|
return false;
|
|
145
209
|
}
|
|
146
210
|
return true;
|
|
147
211
|
}
|
|
212
|
+
/**
|
|
213
|
+
* Creates a masked version of the request object for security in plugin hooks.
|
|
214
|
+
* Prevents plugins from accessing sensitive data like body, query, and cookies.
|
|
215
|
+
*
|
|
216
|
+
* @param req - The original request object
|
|
217
|
+
* @returns A proxied version of the request with sensitive fields masked
|
|
218
|
+
*/
|
|
219
|
+
maskRequest(req) {
|
|
220
|
+
if (!req)
|
|
221
|
+
return req;
|
|
222
|
+
const maskedMessage = "Access to sensitive request data is restricted in this hook for security reasons.";
|
|
223
|
+
const sensitiveFields = ["body", "query", "cookies", "params"];
|
|
224
|
+
return new Proxy(req, {
|
|
225
|
+
get(target, prop) {
|
|
226
|
+
if (typeof prop === "string" &&
|
|
227
|
+
sensitiveFields.includes(prop)) {
|
|
228
|
+
return maskedMessage;
|
|
229
|
+
}
|
|
230
|
+
const value = target[prop];
|
|
231
|
+
if (typeof value === "function") {
|
|
232
|
+
return value.bind(target);
|
|
233
|
+
}
|
|
234
|
+
return value;
|
|
235
|
+
},
|
|
236
|
+
ownKeys(target) {
|
|
237
|
+
return Reflect.ownKeys(target);
|
|
238
|
+
},
|
|
239
|
+
getOwnPropertyDescriptor(target, prop) {
|
|
240
|
+
if (typeof prop === "string" &&
|
|
241
|
+
sensitiveFields.includes(prop)) {
|
|
242
|
+
return {
|
|
243
|
+
value: maskedMessage,
|
|
244
|
+
enumerable: true,
|
|
245
|
+
configurable: true,
|
|
246
|
+
writable: false,
|
|
247
|
+
};
|
|
248
|
+
}
|
|
249
|
+
return Reflect.getOwnPropertyDescriptor(target, prop);
|
|
250
|
+
},
|
|
251
|
+
});
|
|
252
|
+
}
|
|
148
253
|
/**
|
|
149
254
|
* Execute a lifecycle hook on all plugins
|
|
150
255
|
*/
|
|
@@ -184,25 +289,25 @@ class PluginManager {
|
|
|
184
289
|
* Trigger a security attack hook on all plugins
|
|
185
290
|
*/
|
|
186
291
|
triggerSecurityAttack(attackData, req, res) {
|
|
187
|
-
this.executeHook("onSecurityAttack", attackData, req, res).catch(() => { });
|
|
292
|
+
this.executeHook("onSecurityAttack", attackData, this.maskRequest(req), res).catch(() => { });
|
|
188
293
|
}
|
|
189
294
|
/**
|
|
190
295
|
* Trigger a response time hook on all plugins
|
|
191
296
|
*/
|
|
192
297
|
triggerResponseTime(responseTime, req, res) {
|
|
193
|
-
this.executeHook("onResponseTime", responseTime, req, res).catch(() => { });
|
|
298
|
+
this.executeHook("onResponseTime", responseTime, this.maskRequest(req), res).catch(() => { });
|
|
194
299
|
}
|
|
195
300
|
/**
|
|
196
301
|
* Trigger a route error hook on all plugins
|
|
197
302
|
*/
|
|
198
303
|
triggerRouteError(error, req, res) {
|
|
199
|
-
this.executeHook("onRouteError", error, req, res).catch(() => { });
|
|
304
|
+
this.executeHook("onRouteError", error, this.maskRequest(req), res).catch(() => { });
|
|
200
305
|
}
|
|
201
306
|
/**
|
|
202
307
|
* Trigger a rate limit hook on all plugins
|
|
203
308
|
*/
|
|
204
309
|
triggerRateLimit(limitData, req, res) {
|
|
205
|
-
this.executeHook("onRateLimit", limitData, req, res).catch(() => { });
|
|
310
|
+
this.executeHook("onRateLimit", limitData, this.maskRequest(req), res).catch(() => { });
|
|
206
311
|
}
|
|
207
312
|
/**
|
|
208
313
|
* Register routes from all plugins
|
|
@@ -249,7 +354,33 @@ class PluginManager {
|
|
|
249
354
|
if (plugin?.onRequest) {
|
|
250
355
|
try {
|
|
251
356
|
if (this.checkPermission(pluginName, "onRequest")) {
|
|
252
|
-
priorities.normal.push(
|
|
357
|
+
priorities.normal.push(async (req, res, next) => {
|
|
358
|
+
if (this.isPluginDisabled(pluginName, "onRequest")) {
|
|
359
|
+
return next();
|
|
360
|
+
}
|
|
361
|
+
let nextCalled = false;
|
|
362
|
+
const wrappedNext = (err) => {
|
|
363
|
+
nextCalled = true;
|
|
364
|
+
next(err);
|
|
365
|
+
};
|
|
366
|
+
try {
|
|
367
|
+
const wasEndedBefore = res.writableEnded;
|
|
368
|
+
await plugin.onRequest(this.maskRequest(req), res, wrappedNext);
|
|
369
|
+
if (!wasEndedBefore &&
|
|
370
|
+
res.writableEnded &&
|
|
371
|
+
nextCalled) {
|
|
372
|
+
this.logger.error("plugins", `Logic Error in ${pluginName}.onRequest: Plugin sent a response but also called next(). ` +
|
|
373
|
+
`This is invalid and will cause subsequent route handlers to be skipped.`);
|
|
374
|
+
}
|
|
375
|
+
}
|
|
376
|
+
catch (error) {
|
|
377
|
+
this.logger.error("plugins", `Error in ${pluginName}.onRequest:`, error);
|
|
378
|
+
// Only call next(error) if response hasn't been sent
|
|
379
|
+
if (!res.writableEnded) {
|
|
380
|
+
next(error);
|
|
381
|
+
}
|
|
382
|
+
}
|
|
383
|
+
});
|
|
253
384
|
}
|
|
254
385
|
}
|
|
255
386
|
catch (error) {
|
|
@@ -261,9 +392,12 @@ class PluginManager {
|
|
|
261
392
|
try {
|
|
262
393
|
if (this.checkPermission(pluginName, "onResponse")) {
|
|
263
394
|
priorities.normal.push((req, res, next) => {
|
|
264
|
-
res.on("finish", () => {
|
|
395
|
+
res.on("finish", async () => {
|
|
265
396
|
try {
|
|
266
|
-
|
|
397
|
+
if (this.isPluginDisabled(pluginName, "onResponse")) {
|
|
398
|
+
return;
|
|
399
|
+
}
|
|
400
|
+
await plugin.onResponse(this.maskRequest(req), res);
|
|
267
401
|
}
|
|
268
402
|
catch (error) {
|
|
269
403
|
this.logger.error("plugins", `Error in ${pluginName}.onResponse:`, error);
|
|
@@ -308,7 +442,11 @@ class PluginManager {
|
|
|
308
442
|
catch (error) {
|
|
309
443
|
for (const plugin of errorPlugins) {
|
|
310
444
|
try {
|
|
311
|
-
|
|
445
|
+
// Check if plugin is enabled before calling onError
|
|
446
|
+
if (this.isPluginDisabled(plugin.name, "onError")) {
|
|
447
|
+
continue;
|
|
448
|
+
}
|
|
449
|
+
await plugin.onError(error, this.maskRequest(req), res, next);
|
|
312
450
|
}
|
|
313
451
|
catch (handlerError) {
|
|
314
452
|
this.logger.error("plugins", `Error in ${plugin.name}.onError:`, handlerError);
|
|
@@ -356,6 +494,116 @@ class PluginManager {
|
|
|
356
494
|
getPlugin(name) {
|
|
357
495
|
return this.plugins.get(name);
|
|
358
496
|
}
|
|
497
|
+
/**
|
|
498
|
+
* Get statistics for all registered plugins
|
|
499
|
+
*/
|
|
500
|
+
getPluginStats() {
|
|
501
|
+
const stats = [];
|
|
502
|
+
const permissions = this.server.app.configs?.pluginPermissions || [];
|
|
503
|
+
for (const [name, plugin] of this.plugins.entries()) {
|
|
504
|
+
const pluginPerm = permissions.find((p) => p.name === name);
|
|
505
|
+
// Determine allowed hooks
|
|
506
|
+
let allowedHooks = pluginPerm?.allowedHooks || "*";
|
|
507
|
+
// If allowedHooks is '*', it means all hooks EXCEPT management hooks by default
|
|
508
|
+
// Let's return the list of actual hooks the plugin has that are allowed
|
|
509
|
+
if (allowedHooks === "*") {
|
|
510
|
+
const actualHooks = [];
|
|
511
|
+
const denied = pluginPerm?.deniedHooks || [];
|
|
512
|
+
for (const internalName in PluginHookIds.HOOK_ID_MAP) {
|
|
513
|
+
if (typeof plugin[internalName] === "function") {
|
|
514
|
+
const id = PluginHookIds.HOOK_ID_MAP[internalName];
|
|
515
|
+
// Management hooks are only allowed if explicitly listed
|
|
516
|
+
// And explicitly denied hooks are excluded
|
|
517
|
+
if (id !== PluginHookIds.HOOK_ID_MAP.managePlugins &&
|
|
518
|
+
!denied.includes(id)) {
|
|
519
|
+
actualHooks.push(id);
|
|
520
|
+
}
|
|
521
|
+
}
|
|
522
|
+
}
|
|
523
|
+
allowedHooks = actualHooks.length > 0 ? actualHooks : "*";
|
|
524
|
+
}
|
|
525
|
+
else if (Array.isArray(allowedHooks)) {
|
|
526
|
+
// Also filter denied hooks from the explicit allowed list
|
|
527
|
+
const denied = pluginPerm?.deniedHooks || [];
|
|
528
|
+
allowedHooks = allowedHooks.filter((h) => !denied.includes(h));
|
|
529
|
+
}
|
|
530
|
+
stats.push({
|
|
531
|
+
name: plugin.name,
|
|
532
|
+
version: plugin.version,
|
|
533
|
+
description: plugin.description,
|
|
534
|
+
enabled: !this.disabledPlugins.has(name),
|
|
535
|
+
permissions: {
|
|
536
|
+
allowedHooks,
|
|
537
|
+
deniedHooks: pluginPerm?.deniedHooks || [],
|
|
538
|
+
policy: pluginPerm?.policy || "allow",
|
|
539
|
+
},
|
|
540
|
+
dependencies: plugin.dependencies || [],
|
|
541
|
+
});
|
|
542
|
+
}
|
|
543
|
+
return stats;
|
|
544
|
+
}
|
|
545
|
+
/**
|
|
546
|
+
* Set permission for a plugin hook
|
|
547
|
+
*/
|
|
548
|
+
setPluginPermission(pluginName, hookId, allowed, by = "system") {
|
|
549
|
+
this.logger.warn("plugins", `Permission '${hookId}' for plugin '${pluginName}' ${allowed ? "granted" : "revoked"} by ${by}`);
|
|
550
|
+
if (!this.server.app.configs) {
|
|
551
|
+
this.server.app.configs = {};
|
|
552
|
+
}
|
|
553
|
+
if (!this.server.app.configs.pluginPermissions) {
|
|
554
|
+
this.server.app.configs.pluginPermissions = [];
|
|
555
|
+
}
|
|
556
|
+
let pluginPerm = this.server.app.configs.pluginPermissions.find((p) => p.name === pluginName);
|
|
557
|
+
if (!pluginPerm) {
|
|
558
|
+
pluginPerm = {
|
|
559
|
+
name: pluginName,
|
|
560
|
+
allowedHooks: allowed ? [hookId] : "*",
|
|
561
|
+
deniedHooks: allowed ? [] : [hookId],
|
|
562
|
+
policy: "allow",
|
|
563
|
+
};
|
|
564
|
+
this.server.app.configs.pluginPermissions.push(pluginPerm);
|
|
565
|
+
return;
|
|
566
|
+
}
|
|
567
|
+
// If plugin already has an entry
|
|
568
|
+
if (allowed) {
|
|
569
|
+
// Remove from deniedHooks if it was there
|
|
570
|
+
if (pluginPerm.deniedHooks) {
|
|
571
|
+
pluginPerm.deniedHooks = pluginPerm.deniedHooks.filter((h) => h !== hookId);
|
|
572
|
+
}
|
|
573
|
+
// Add to allowedHooks if it's not "*"
|
|
574
|
+
if (Array.isArray(pluginPerm.allowedHooks)) {
|
|
575
|
+
if (!pluginPerm.allowedHooks.includes(hookId)) {
|
|
576
|
+
pluginPerm.allowedHooks.push(hookId);
|
|
577
|
+
}
|
|
578
|
+
}
|
|
579
|
+
}
|
|
580
|
+
else {
|
|
581
|
+
// Deny hook
|
|
582
|
+
if (!pluginPerm.deniedHooks) {
|
|
583
|
+
pluginPerm.deniedHooks = [];
|
|
584
|
+
}
|
|
585
|
+
if (!pluginPerm.deniedHooks.includes(hookId)) {
|
|
586
|
+
pluginPerm.deniedHooks.push(hookId);
|
|
587
|
+
}
|
|
588
|
+
// Also remove from allowedHooks if it's there
|
|
589
|
+
if (Array.isArray(pluginPerm.allowedHooks)) {
|
|
590
|
+
pluginPerm.allowedHooks = pluginPerm.allowedHooks.filter((h) => h !== hookId);
|
|
591
|
+
}
|
|
592
|
+
}
|
|
593
|
+
}
|
|
594
|
+
/**
|
|
595
|
+
* Toggle plugin enabled/disabled state
|
|
596
|
+
*/
|
|
597
|
+
togglePlugin(pluginName, enabled, by = "system") {
|
|
598
|
+
if (enabled) {
|
|
599
|
+
this.disabledPlugins.delete(pluginName);
|
|
600
|
+
this.logger.warn("plugins", `Plugin '${pluginName}' enabled by ${by}`);
|
|
601
|
+
}
|
|
602
|
+
else {
|
|
603
|
+
this.disabledPlugins.add(pluginName);
|
|
604
|
+
this.logger.warn("plugins", `Plugin '${pluginName}' disabled by ${by}`);
|
|
605
|
+
}
|
|
606
|
+
}
|
|
359
607
|
/**
|
|
360
608
|
* Resolve dependencies and determine execution order
|
|
361
609
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PluginManager.js","sources":["../../../../../src/plugins/core/PluginManager.ts"],"sourcesContent":[null],"names":["Logger","HOOK_ID_MAP"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"PluginManager.js","sources":["../../../../../src/plugins/core/PluginManager.ts"],"sourcesContent":[null],"names":["Logger","validatePlgInput","HOOK_ID_MAP"],"mappings":";;;;;;AAAA;;;AAGG;MAcU,aAAa,CAAA;AAQtB,IAAA,WAAA,CAAY,MAAqB,EAAA;AAPzB,QAAA,IAAA,CAAA,OAAO,GAA+B,IAAI,GAAG,EAAE,CAAC;QAChD,IAAW,CAAA,WAAA,GAAa,EAAE,CAAC;QAG3B,IAAW,CAAA,WAAA,GAAY,KAAK,CAAC;AAC7B,QAAA,IAAA,CAAA,eAAe,GAAgB,IAAI,GAAG,EAAE,CAAC;AAG7C,QAAA,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;AACrB,QAAA,IAAI,CAAC,MAAM,GAAG,IAAIA,aAAM,EAAE,CAAC;KAC9B;AAED;;AAEG;IACH,QAAQ,CAAC,MAAqC,EAAE,MAAY,EAAA;;AAExD,QAAA,MAAM,cAAc,GAChB,OAAO,MAAM,KAAK,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC;;QAG3D,IAAI,CAAC,cAAc,CAAC,IAAI,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE;AACjD,YAAA,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC;SACxD;QAED,MAAM,IAAI,GAAGC,8BAAgB,CAAC;YAC1B,IAAI,EAAE,cAAc,CAAC,IAAI;YACzB,OAAO,EAAE,cAAc,CAAC,OAAO;AAClC,SAAA,CAAC,CAAC;AAEH,QAAA,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;;;AAG1B,YAAA,MAAM,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC;SACzB;;QAGD,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE;AACvC,YAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CACZ,SAAS,EACT,CAAA,QAAA,EAAW,cAAc,CAAC,IAAI,CAAA,8BAAA,CAAgC,CACjE,CAAC;YACF,OAAO;SACV;;AAGD,QAAA,IAAI,cAAc,CAAC,UAAU,EAAE;AAC3B,YAAA,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,cAAc,CAAC,IAAI,EAAE,YAAY,CAAC,EAAE;gBAC1D,OAAO;aACV;SACJ;;QAGD,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC;;AAGtD,QAAA,IAAI,cAAc,CAAC,UAAU,EAAE;AAC3B,YAAA,IAAI;gBACA,cAAc,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;aAClD;YAAC,OAAO,KAAK,EAAE;AACZ,gBAAA,IAAI,CAAC,MAAM,CAAC,KAAK,CACb,SAAS,EACT,CAAY,SAAA,EAAA,cAAc,CAAC,IAAI,CAAA,YAAA,CAAc,EAC7C,KAAK,CACR,CAAC;AACF,gBAAA,MAAM,KAAK,CAAC;aACf;SACJ;AAED,QAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CACZ,SAAS,EACT,CAAA,gCAAA,EAAmC,cAAc,CAAC,IAAI,CAAI,CAAA,EAAA,cAAc,CAAC,OAAO,CAAA,CAAE,CACrF,CAAC;;AAGF,QAAA,IAAI,IAAI,CAAC,WAAW,EAAE;;YAElB,IAAI,CAAC,mBAAmB,EAAE,CAAC;;AAG3B,YAAA,IAAI,cAAc,CAAC,cAAc,EAAE;AAC/B,gBAAA,IAAI;oBACA,cAAc,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;AAC/C,oBAAA,IAAI,CAAC,MAAM,CAAC,KAAK,CACb,SAAS,EACT,CAAA,mCAAA,EAAsC,cAAc,CAAC,IAAI,CAAA,CAAE,CAC9D,CAAC;iBACL;gBAAC,OAAO,KAAK,EAAE;AACZ,oBAAA,IAAI,CAAC,MAAM,CAAC,KAAK,CACb,SAAS,EACT,CAAgC,6BAAA,EAAA,cAAc,CAAC,IAAI,CAAA,CAAA,CAAG,EACtD,KAAK,CACR,CAAC;iBACL;aACJ;;YAGD,IAAI,cAAc,CAAC,UAAU,IAAI,cAAc,CAAC,SAAS,EAAE;AACvD,gBAAiB,cAAc,CAAC,kBAAkB,IAAI,SAAS;gBAC/D,MAAM,UAAU,GAAG,EAAE,CAAC;AAEtB,gBAAA,IAAI,cAAc,CAAC,UAAU,EAAE;oBAC3B,MAAM,EAAE,GAAG,KAAK,CAAC,OAAO,CAAC,cAAc,CAAC,UAAU,CAAC;0BAC7C,cAAc,CAAC,UAAU;AAC3B,0BAAE,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC;AAClC,oBAAA,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;iBAC1B;AAED,gBAAA,IAAI,cAAc,CAAC,SAAS,EAAE;AAC1B,oBAAA,UAAU,CAAC,IAAI,CACX,cAAc,CAAC,SAAS,CAAC,IAAI,CAAC,cAAc,CAAC,CAChD,CAAC;iBACL;;AAGD,gBAAA,UAAU,CAAC,OAAO,CAAC,CAAC,EAAE,KAAK,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;AAEpD,gBAAA,IAAI,CAAC,MAAM,CAAC,KAAK,CACb,SAAS,EACT,CAAA,oCAAA,EAAuC,cAAc,CAAC,IAAI,CAAA,CAAE,CAC/D,CAAC;aACL;;AAGD,YAAA,IAAI,cAAc,CAAC,aAAa,EAAE;AAC9B,gBAAA,OAAO,CAAC,OAAO,CACX,cAAc,CAAC,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,CAC5C,CAAC,KAAK,CAAC,CAAC,KAAK,KAAI;AACd,oBAAA,IAAI,CAAC,MAAM,CAAC,KAAK,CACb,SAAS,EACT,CAAY,SAAA,EAAA,cAAc,CAAC,IAAI,CAAA,eAAA,CAAiB,EAChD,KAAK,CACR,CAAC;AACN,iBAAC,CAAC,CAAC;aACN;;AAGD,YAAA,IAAI,cAAc,CAAC,aAAa,EAAE;AAC9B,gBAAA,OAAO,CAAC,OAAO,CACX,cAAc,CAAC,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,CAC5C,CAAC,KAAK,CAAC,CAAC,KAAK,KAAI;AACd,oBAAA,IAAI,CAAC,MAAM,CAAC,KAAK,CACb,SAAS,EACT,CAAY,SAAA,EAAA,cAAc,CAAC,IAAI,CAAA,eAAA,CAAiB,EAChD,KAAK,CACR,CAAC;AACN,iBAAC,CAAC,CAAC;aACN;SACJ;KACJ;AAED;;AAEG;AACH,IAAA,MAAM,UAAU,GAAA;QACZ,IAAI,CAAC,mBAAmB,EAAE,CAAC;AAC3B,QAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;AACxB,QAAA,MAAM,IAAI,CAAC,WAAW,CAAC,eAAe,CAAC,CAAC;;AAGxC,QAAA,KAAK,MAAM,UAAU,IAAI,IAAI,CAAC,WAAW,EAAE;YACvC,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;AAC5C,YAAA,IACI,MAAM;AACN,gBAAA,OAAO,MAAM,CAAC,aAAa,KAAK,UAAU;gBAC1C,IAAI,CAAC,eAAe,CAAC,UAAU,EAAE,eAAe,CAAC,EACnD;AACE,gBAAA,IAAI;oBACA,MAAM,MAAM,CAAC,aAAa,CAAC;AACvB,wBAAA,QAAQ,EAAE,MAAM,IAAI,CAAC,cAAc,EAAE;wBACrC,aAAa,EAAE,CACX,CAAS,EACT,CAAS,EACT,CAAU,EACV,EAAW,KAEX,IAAI,CAAC,mBAAmB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,UAAU,CAAC;wBACvD,MAAM,EAAE,CAAC,CAAS,EAAE,CAAU,EAAE,EAAW,KACvC,IAAI,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,UAAU,CAAC;AAChD,qBAAA,CAAC,CAAC;iBACN;gBAAC,OAAO,KAAK,EAAE;AACZ,oBAAA,IAAI,CAAC,MAAM,CAAC,KAAK,CACb,SAAS,EACT,CAAA,SAAA,EAAY,UAAU,CAAA,eAAA,CAAiB,EACvC,KAAK,CACR,CAAC;iBACL;aACJ;SACJ;KACJ;AAED;;AAEG;IACK,gBAAgB,CACpB,UAAkB,EAClB,gBAAwB,EAAA;QAExB,IAAI,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE;YACtC,MAAM,MAAM,GAAGC,yBAAW,CAAC,gBAAgB,CAAC,IAAI,gBAAgB,CAAC;YACjE,IAAI,CAAC,MAAM,CAAC,IAAI,CACZ,SAAS,EACT,CAAW,QAAA,EAAA,UAAU,CAA4C,yCAAA,EAAA,MAAM,CAAK,GAAA,CAAA;AACxE,gBAAA,CAAA,mEAAA,CAAqE,CAC5E,CAAC;AACF,YAAA,OAAO,IAAI,CAAC;SACf;AACD,QAAA,OAAO,KAAK,CAAC;KAChB;AAED;;AAEG;IACK,eAAe,CACnB,UAAkB,EAClB,gBAAwB,EAAA;QAExB,IAAI,IAAI,CAAC,gBAAgB,CAAC,UAAU,EAAE,gBAAgB,CAAC,EAAE;AACrD,YAAA,OAAO,KAAK,CAAC;SAChB;QAED,MAAM,MAAM,GAAGA,yBAAW,CAAC,gBAAgB,CAAC,IAAI,gBAAgB,CAAC;QACjE,MAAM,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,iBAAiB,CAAC;;AAG/D,QAAA,MAAM,gBAAgB,GAAG,MAAM,KAAKA,yBAAW,CAAC,aAAa,CAAC;;QAG9D,IAAI,CAAC,WAAW,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE;YAC1C,IAAI,gBAAgB,EAAE;gBAClB,IAAI,CAAC,MAAM,CAAC,KAAK,CACb,SAAS,EACT,CAAW,QAAA,EAAA,UAAU,CAA0C,uCAAA,EAAA,MAAM,CAAK,GAAA,CAAA;AACtE,oBAAA,CAAA,wDAAA,CAA0D,CACjE,CAAC;AACF,gBAAA,OAAO,KAAK,CAAC;aAChB;AACD,YAAA,OAAO,IAAI,CAAC;SACf;AAED,QAAA,MAAM,UAAU,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,KAAK,UAAU,CAAC,CAAC;;QAGlE,IAAI,CAAC,UAAU,EAAE;YACb,IAAI,gBAAgB,EAAE;gBAClB,IAAI,CAAC,MAAM,CAAC,KAAK,CACb,SAAS,EACT,CAAW,QAAA,EAAA,UAAU,CAA0C,uCAAA,EAAA,MAAM,CAAK,GAAA,CAAA;AACtE,oBAAA,CAAA,wDAAA,CAA0D,CACjE,CAAC;AACF,gBAAA,OAAO,KAAK,CAAC;aAChB;AACD,YAAA,OAAO,IAAI,CAAC;SACf;;QAGD,IAAI,UAAU,CAAC,WAAW,EAAE,QAAQ,CAAC,MAAM,CAAC,EAAE;AAC1C,YAAA,IAAI,CAAC,MAAM,CAAC,KAAK,CACb,SAAS,EACT,CAAA,QAAA,EAAW,UAAU,CAAA,uCAAA,EAA0C,MAAM,CAAA,EAAA,CAAI,CAC5E,CAAC;AACF,YAAA,OAAO,KAAK,CAAC;SAChB;AAED,QAAA,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,IAAI,OAAO,CAAC;AAC5C,QAAA,MAAM,YAAY,GAAG,UAAU,CAAC,YAAY,IAAI,GAAG,CAAC;;AAGpD,QAAA,IAAI,MAAM,KAAK,MAAM,EAAE;YACnB,IAAI,YAAY,KAAK,GAAG;AAAE,gBAAA,OAAO,IAAI,CAAC;AACtC,YAAA,IAAI,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,IAAI,YAAY,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE;AAC9D,gBAAA,OAAO,IAAI,CAAC;aACf;;;;;YAOD,IAAI,CAAC,MAAM,CAAC,KAAK,CACb,SAAS,EACT,CAAW,QAAA,EAAA,UAAU,CAA+B,4BAAA,EAAA,MAAM,CAAsB,oBAAA,CAAA;AAC5E,gBAAA,CAAA,yCAAA,CAA2C,CAClD,CAAC;AACF,YAAA,OAAO,KAAK,CAAC;SAChB;;;QAID,IAAI,gBAAgB,EAAE;YAClB,IAAI,YAAY,KAAK,GAAG;AAAE,gBAAA,OAAO,IAAI,CAAC;AACtC,YAAA,IAAI,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,IAAI,YAAY,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE;AAC9D,gBAAA,OAAO,IAAI,CAAC;aACf;YAED,IAAI,CAAC,MAAM,CAAC,KAAK,CACb,SAAS,EACT,CAAW,QAAA,EAAA,UAAU,CAA0C,uCAAA,EAAA,MAAM,CAAK,GAAA,CAAA;AACtE,gBAAA,CAAA,oEAAA,CAAsE,CAC7E,CAAC;AACF,YAAA,OAAO,KAAK,CAAC;SAChB;AAED,QAAA,OAAO,IAAI,CAAC;KACf;AAED;;;;;;AAMG;AACK,IAAA,WAAW,CAAC,GAAQ,EAAA;AACxB,QAAA,IAAI,CAAC,GAAG;AAAE,YAAA,OAAO,GAAG,CAAC;QAErB,MAAM,aAAa,GACf,mFAAmF,CAAC;QACxF,MAAM,eAAe,GAAG,CAAC,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;AAE/D,QAAA,OAAO,IAAI,KAAK,CAAC,GAAG,EAAE;YAClB,GAAG,CAAC,MAAM,EAAE,IAAI,EAAA;gBACZ,IACI,OAAO,IAAI,KAAK,QAAQ;AACxB,oBAAA,eAAe,CAAC,QAAQ,CAAC,IAAI,CAAC,EAChC;AACE,oBAAA,OAAO,aAAa,CAAC;iBACxB;AACD,gBAAA,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;AAC3B,gBAAA,IAAI,OAAO,KAAK,KAAK,UAAU,EAAE;AAC7B,oBAAA,OAAO,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;iBAC7B;AACD,gBAAA,OAAO,KAAK,CAAC;aAChB;AACD,YAAA,OAAO,CAAC,MAAM,EAAA;AACV,gBAAA,OAAO,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;aAClC;YACD,wBAAwB,CAAC,MAAM,EAAE,IAAI,EAAA;gBACjC,IACI,OAAO,IAAI,KAAK,QAAQ;AACxB,oBAAA,eAAe,CAAC,QAAQ,CAAC,IAAI,CAAC,EAChC;oBACE,OAAO;AACH,wBAAA,KAAK,EAAE,aAAa;AACpB,wBAAA,UAAU,EAAE,IAAI;AAChB,wBAAA,YAAY,EAAE,IAAI;AAClB,wBAAA,QAAQ,EAAE,KAAK;qBAClB,CAAC;iBACL;gBACD,OAAO,OAAO,CAAC,wBAAwB,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;aACzD;AACJ,SAAA,CAAC,CAAC;KACN;AAED;;AAEG;AACH,IAAA,MAAM,WAAW,CACb,QAA6B,EAC7B,GAAG,IAAW,EAAA;AAEd,QAAA,IAAI,CAAC,MAAM,CAAC,KAAK,CACb,SAAS,EACT,CAAA,gBAAA,EAAmB,QAAQ,CAAA,IAAA,EAAO,IAAI,CAAC,WAAW,CAAC,MAAM,CAAA,QAAA,CAAU,CACtE,CAAC;AACF,QAAA,KAAK,MAAM,UAAU,IAAI,IAAI,CAAC,WAAW,EAAE;YACvC,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;YAC5C,IAAI,MAAM,IAAI,OAAO,MAAM,CAAC,QAAQ,CAAC,KAAK,UAAU,EAAE;AAClD,gBAAA,IAAI,CAAC,MAAM,CAAC,KAAK,CACb,SAAS,EACT,CAAA,QAAA,EAAW,UAAU,CAAA,CAAA,EAAI,QAAQ,CAAA,CAAE,CACtC,CAAC;AACF,gBAAA,IAAI;;oBAEA,IAAI,IAAI,CAAC,eAAe,CAAC,UAAU,EAAE,QAAkB,CAAC,EAAE;;wBAEtD,IACI;4BACI,eAAe;4BACf,eAAe;4BACf,cAAc;AACjB,yBAAA,CAAC,QAAQ,CAAC,QAAQ,CAAC,EACtB;AACE,4BAAA,MAAO,MAAM,CAAC,QAAQ,CAAS,CAC3B,IAAI,CAAC,MAAM,EACX,GAAG,IAAI,CACV,CAAC;yBACL;6BAAM;4BACH,MAAO,MAAM,CAAC,QAAQ,CAAS,CAAC,GAAG,IAAI,CAAC,CAAC;yBAC5C;qBACJ;iBACJ;gBAAC,OAAO,KAAK,EAAE;AACZ,oBAAA,IAAI,CAAC,MAAM,CAAC,KAAK,CACb,SAAS,EACT,CAAY,SAAA,EAAA,UAAU,IAAI,QAAQ,CAAA,CAAA,CAAG,EACrC,KAAK,CACR,CAAC;;AAEF,oBAAA,IAAI,QAAQ,KAAK,eAAe,EAAE;AAC9B,wBAAA,MAAM,KAAK,CAAC;qBACf;iBACJ;aACJ;SACJ;KACJ;AAED;;AAEG;AACH,IAAA,qBAAqB,CAAC,UAAe,EAAE,GAAQ,EAAE,GAAQ,EAAA;QACrD,IAAI,CAAC,WAAW,CACZ,kBAAkB,EAClB,UAAU,EACV,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,EACrB,GAAG,CACN,CAAC,KAAK,CAAC,MAAK,GAAG,CAAC,CAAC;KACrB;AAED;;AAEG;AACH,IAAA,mBAAmB,CAAC,YAAoB,EAAE,GAAQ,EAAE,GAAQ,EAAA;QACxD,IAAI,CAAC,WAAW,CACZ,gBAAgB,EAChB,YAAY,EACZ,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,EACrB,GAAG,CACN,CAAC,KAAK,CAAC,MAAK,GAAG,CAAC,CAAC;KACrB;AAED;;AAEG;AACH,IAAA,iBAAiB,CAAC,KAAY,EAAE,GAAQ,EAAE,GAAQ,EAAA;QAC9C,IAAI,CAAC,WAAW,CACZ,cAAc,EACd,KAAK,EACL,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,EACrB,GAAG,CACN,CAAC,KAAK,CAAC,MAAK,GAAG,CAAC,CAAC;KACrB;AAED;;AAEG;AACH,IAAA,gBAAgB,CAAC,SAAc,EAAE,GAAQ,EAAE,GAAQ,EAAA;QAC/C,IAAI,CAAC,WAAW,CACZ,aAAa,EACb,SAAS,EACT,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,EACrB,GAAG,CACN,CAAC,KAAK,CAAC,MAAK,GAAG,CAAC,CAAC;KACrB;AAED;;AAEG;AACH,IAAA,cAAc,CAAC,GAAiB,EAAA;AAC5B,QAAA,KAAK,MAAM,UAAU,IAAI,IAAI,CAAC,WAAW,EAAE;YACvC,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;AAC5C,YAAA,IAAI,MAAM,EAAE,cAAc,EAAE;AACxB,gBAAA,IAAI;oBACA,IAAI,IAAI,CAAC,eAAe,CAAC,UAAU,EAAE,gBAAgB,CAAC,EAAE;AACpD,wBAAA,MAAM,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;qBAC9B;oBACD,IAAI,CAAC,MAAM,CAAC,KAAK,CACb,SAAS,EACT,CAA0B,uBAAA,EAAA,UAAU,CAAE,CAAA,CACzC,CAAC;iBACL;gBAAC,OAAO,KAAK,EAAE;AACZ,oBAAA,IAAI,CAAC,MAAM,CAAC,KAAK,CACb,SAAS,EACT,CAAA,6BAAA,EAAgC,UAAU,CAAA,CAAA,CAAG,EAC7C,KAAK,CACR,CAAC;iBACL;aACJ;SACJ;KACJ;AAED;;AAEG;AACH,IAAA,eAAe,CAAC,GAAiB,EAAA;AAC7B,QAAA,MAAM,UAAU,GAAG,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAS,CAAC;AAE9D,QAAA,KAAK,MAAM,UAAU,IAAI,IAAI,CAAC,WAAW,EAAE;YACvC,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;;AAG5C,YAAA,IAAI,MAAM,EAAE,UAAU,EAAE;AACpB,gBAAA,IAAI;oBACA,IAAI,IAAI,CAAC,eAAe,CAAC,UAAU,EAAE,YAAY,CAAC,EAAE;AAChD,wBAAA,MAAM,QAAQ,GAAG,MAAM,CAAC,kBAAkB,IAAI,QAAQ,CAAC;wBACvD,MAAM,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC;8BAC7C,MAAM,CAAC,UAAU;AACnB,8BAAE,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;wBAC1B,UAAU,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC,CAAC;qBAC5C;iBACJ;gBAAC,OAAO,KAAK,EAAE;AACZ,oBAAA,IAAI,CAAC,MAAM,CAAC,KAAK,CACb,SAAS,EACT,CAAA,8BAAA,EAAiC,UAAU,CAAA,CAAA,CAAG,EAC9C,KAAK,CACR,CAAC;iBACL;aACJ;;AAGD,YAAA,IAAI,MAAM,EAAE,SAAS,EAAE;AACnB,gBAAA,IAAI;oBACA,IAAI,IAAI,CAAC,eAAe,CAAC,UAAU,EAAE,WAAW,CAAC,EAAE;AAC/C,wBAAA,UAAU,CAAC,MAAM,CAAC,IAAI,CAClB,OAAO,GAAQ,EAAE,GAAQ,EAAE,IAAS,KAAI;4BACpC,IACI,IAAI,CAAC,gBAAgB,CACjB,UAAU,EACV,WAAW,CACd,EACH;gCACE,OAAO,IAAI,EAAE,CAAC;6BACjB;4BACD,IAAI,UAAU,GAAG,KAAK,CAAC;AACvB,4BAAA,MAAM,WAAW,GAAG,CAAC,GAAS,KAAI;gCAC9B,UAAU,GAAG,IAAI,CAAC;gCAClB,IAAI,CAAC,GAAG,CAAC,CAAC;AACd,6BAAC,CAAC;AAEF,4BAAA,IAAI;AACA,gCAAA,MAAM,cAAc,GAAG,GAAG,CAAC,aAAa,CAAC;AACzC,gCAAA,MAAM,MAAM,CAAC,SAAU,CACnB,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,EACrB,GAAG,EACH,WAAW,CACd,CAAC;AAEF,gCAAA,IACI,CAAC,cAAc;AACf,oCAAA,GAAG,CAAC,aAAa;AACjB,oCAAA,UAAU,EACZ;oCACE,IAAI,CAAC,MAAM,CAAC,KAAK,CACb,SAAS,EACT,CAAkB,eAAA,EAAA,UAAU,CAA6D,2DAAA,CAAA;AACrF,wCAAA,CAAA,uEAAA,CAAyE,CAChF,CAAC;iCACL;6BACJ;4BAAC,OAAO,KAAK,EAAE;AACZ,gCAAA,IAAI,CAAC,MAAM,CAAC,KAAK,CACb,SAAS,EACT,CAAA,SAAA,EAAY,UAAU,CAAA,WAAA,CAAa,EACnC,KAAK,CACR,CAAC;;AAEF,gCAAA,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE;oCACpB,IAAI,CAAC,KAAK,CAAC,CAAC;iCACf;6BACJ;AACL,yBAAC,CACJ,CAAC;qBACL;iBACJ;gBAAC,OAAO,KAAK,EAAE;AACZ,oBAAA,IAAI,CAAC,MAAM,CAAC,KAAK,CACb,SAAS,EACT,CAAA,6BAAA,EAAgC,UAAU,CAAA,CAAA,CAAG,EAC7C,KAAK,CACR,CAAC;iBACL;aACJ;;AAGD,YAAA,IAAI,MAAM,EAAE,UAAU,EAAE;AACpB,gBAAA,IAAI;oBACA,IAAI,IAAI,CAAC,eAAe,CAAC,UAAU,EAAE,YAAY,CAAC,EAAE;AAChD,wBAAA,UAAU,CAAC,MAAM,CAAC,IAAI,CAClB,CAAC,GAAQ,EAAE,GAAQ,EAAE,IAAS,KAAI;AAC9B,4BAAA,GAAG,CAAC,EAAE,CAAC,QAAQ,EAAE,YAAW;AACxB,gCAAA,IAAI;oCACA,IACI,IAAI,CAAC,gBAAgB,CACjB,UAAU,EACV,YAAY,CACf,EACH;wCACE,OAAO;qCACV;AACD,oCAAA,MAAM,MAAM,CAAC,UAAW,CACpB,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,EACrB,GAAG,CACN,CAAC;iCACL;gCAAC,OAAO,KAAK,EAAE;AACZ,oCAAA,IAAI,CAAC,MAAM,CAAC,KAAK,CACb,SAAS,EACT,CAAA,SAAA,EAAY,UAAU,CAAA,YAAA,CAAc,EACpC,KAAK,CACR,CAAC;iCACL;AACL,6BAAC,CAAC,CAAC;AACH,4BAAA,IAAI,EAAE,CAAC;AACX,yBAAC,CACJ,CAAC;qBACL;iBACJ;gBAAC,OAAO,KAAK,EAAE;AACZ,oBAAA,IAAI,CAAC,MAAM,CAAC,KAAK,CACb,SAAS,EACT,CAAA,8BAAA,EAAiC,UAAU,CAAA,CAAA,CAAG,EAC9C,KAAK,CACR,CAAC;iBACL;aACJ;SACJ;;AAGD,QAAA,CAAC,GAAG,UAAU,CAAC,KAAK,EAAE,GAAG,UAAU,CAAC,MAAM,EAAE,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,OAAO,CACnE,CAAC,EAAE,KAAK,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CACtB,CAAC;KACL;AAED;;;AAGG;AACH,IAAA,kBAAkB,CAAC,GAAiB,EAAA;QAChC,MAAM,YAAY,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,CACzD,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,CACnB,CAAC;AAEF,QAAA,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE;YAC3B,OAAO;SACV;;QAGD,MAAM,WAAW,GAAG,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;QACvC,MAAM,YAAY,GAAG,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;QACzC,MAAM,WAAW,GAAG,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;QACvC,MAAM,cAAc,GAAG,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;QAC7C,MAAM,aAAa,GAAG,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;;AAG3C,QAAA,MAAM,WAAW,GAAG,CAAC,OAAY,KAAI;YACjC,OAAO,OAAO,GAAQ,EAAE,GAAQ,EAAE,IAAU,KAAI;AAC5C,gBAAA,IAAI;oBACA,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;oBACvC,IAAI,MAAM,IAAI,OAAO,MAAM,CAAC,KAAK,KAAK,UAAU,EAAE;AAC9C,wBAAA,MAAM,MAAM,CAAC;qBAChB;iBACJ;gBAAC,OAAO,KAAU,EAAE;AACjB,oBAAA,KAAK,MAAM,MAAM,IAAI,YAAY,EAAE;AAC/B,wBAAA,IAAI;;4BAEA,IAAI,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,IAAI,EAAE,SAAS,CAAC,EAAE;gCAC/C,SAAS;6BACZ;AACD,4BAAA,MAAM,MAAM,CAAC,OAAQ,CACjB,KAAK,EACL,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,EACrB,GAAG,EACH,IAAI,CACP,CAAC;yBACL;wBAAC,OAAO,YAAY,EAAE;AACnB,4BAAA,IAAI,CAAC,MAAM,CAAC,KAAK,CACb,SAAS,EACT,CAAY,SAAA,EAAA,MAAM,CAAC,IAAI,CAAA,SAAA,CAAW,EAClC,YAAY,CACf,CAAC;yBACL;qBACJ;AACD,oBAAA,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE;AAClB,wBAAA,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;AACjB,4BAAA,KAAK,EAAE,uBAAuB;AACjC,yBAAA,CAAC,CAAC;qBACN;iBACJ;AACL,aAAC,CAAC;AACN,SAAC,CAAC;;QAGF,IAAI,WAAW,EAAE;AACb,YAAA,GAAG,CAAC,GAAG,GAAG,UAAU,IAAS,EAAE,GAAG,QAAe,EAAA;AAC7C,gBAAA,OAAO,WAAW,CAAC,IAAI,EAAE,GAAG,QAAQ,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC;AAC3D,aAAC,CAAC;SACL;QAED,IAAI,YAAY,EAAE;AACd,YAAA,GAAG,CAAC,IAAI,GAAG,UAAU,IAAS,EAAE,GAAG,QAAe,EAAA;AAC9C,gBAAA,OAAO,YAAY,CAAC,IAAI,EAAE,GAAG,QAAQ,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC;AAC5D,aAAC,CAAC;SACL;QAED,IAAI,WAAW,EAAE;AACb,YAAA,GAAG,CAAC,GAAG,GAAG,UAAU,IAAS,EAAE,GAAG,QAAe,EAAA;AAC7C,gBAAA,OAAO,WAAW,CAAC,IAAI,EAAE,GAAG,QAAQ,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC;AAC3D,aAAC,CAAC;SACL;QAED,IAAI,cAAc,EAAE;AAChB,YAAA,GAAG,CAAC,MAAM,GAAG,UAAU,IAAS,EAAE,GAAG,QAAe,EAAA;AAChD,gBAAA,OAAO,cAAc,CAAC,IAAI,EAAE,GAAG,QAAQ,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC;AAC9D,aAAC,CAAC;SACL;QAED,IAAI,aAAa,EAAE;AACf,YAAA,GAAG,CAAC,KAAK,GAAG,UAAU,IAAS,EAAE,GAAG,QAAe,EAAA;AAC/C,gBAAA,OAAO,aAAa,CAAC,IAAI,EAAE,GAAG,QAAQ,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC;AAC7D,aAAC,CAAC;SACL;AAED,QAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CACZ,SAAS,EACT,CAAA,2BAAA,EAA8B,YAAY,CAAC,MAAM,CAAA,UAAA,CAAY,CAChE,CAAC;KACL;AAED;;AAEG;AACH,IAAA,SAAS,CAAC,IAAY,EAAA;QAClB,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;KACjC;AAED;;AAEG;IACH,cAAc,GAAA;QACV,MAAM,KAAK,GAAkB,EAAE,CAAC;AAChC,QAAA,MAAM,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,iBAAiB,IAAI,EAAE,CAAC;AAErE,QAAA,KAAK,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE;AACjD,YAAA,MAAM,UAAU,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;;AAG5D,YAAA,IAAI,YAAY,GAAmB,UAAU,EAAE,YAAY,IAAI,GAAG,CAAC;;;AAInE,YAAA,IAAI,YAAY,KAAK,GAAG,EAAE;gBACtB,MAAM,WAAW,GAAa,EAAE,CAAC;AACjC,gBAAA,MAAM,MAAM,GAAG,UAAU,EAAE,WAAW,IAAI,EAAE,CAAC;AAC7C,gBAAA,KAAK,MAAM,YAAY,IAAIA,yBAAW,EAAE;oBACpC,IAAI,OAAQ,MAAc,CAAC,YAAY,CAAC,KAAK,UAAU,EAAE;AACrD,wBAAA,MAAM,EAAE,GAAGA,yBAAW,CAAC,YAAY,CAAC,CAAC;;;AAGrC,wBAAA,IACI,EAAE,KAAKA,yBAAW,CAAC,aAAa;AAChC,4BAAA,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,EACtB;AACE,4BAAA,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;yBACxB;qBACJ;iBACJ;AACD,gBAAA,YAAY,GAAG,WAAW,CAAC,MAAM,GAAG,CAAC,GAAG,WAAW,GAAG,GAAG,CAAC;aAC7D;AAAM,iBAAA,IAAI,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE;;AAEpC,gBAAA,MAAM,MAAM,GAAG,UAAU,EAAE,WAAW,IAAI,EAAE,CAAC;AAC7C,gBAAA,YAAY,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;aAClE;YAED,KAAK,CAAC,IAAI,CAAC;gBACP,IAAI,EAAE,MAAM,CAAC,IAAI;gBACjB,OAAO,EAAE,MAAM,CAAC,OAAO;gBACvB,WAAW,EAAE,MAAM,CAAC,WAAW;gBAC/B,OAAO,EAAE,CAAC,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC;AACxC,gBAAA,WAAW,EAAE;oBACT,YAAY;AACZ,oBAAA,WAAW,EAAE,UAAU,EAAE,WAAW,IAAI,EAAE;AAC1C,oBAAA,MAAM,EAAE,UAAU,EAAE,MAAM,IAAI,OAAO;AACxC,iBAAA;AACD,gBAAA,YAAY,EAAE,MAAM,CAAC,YAAY,IAAI,EAAE;AAC1C,aAAA,CAAC,CAAC;SACN;AACD,QAAA,OAAO,KAAK,CAAC;KAChB;AAED;;AAEG;IACH,mBAAmB,CACf,UAAkB,EAClB,MAAc,EACd,OAAgB,EAChB,KAAa,QAAQ,EAAA;QAErB,IAAI,CAAC,MAAM,CAAC,IAAI,CACZ,SAAS,EACT,CAAA,YAAA,EAAe,MAAM,CAAA,cAAA,EAAiB,UAAU,CAAA,EAAA,EAC5C,OAAO,GAAG,SAAS,GAAG,SAC1B,CAAO,IAAA,EAAA,EAAE,CAAE,CAAA,CACd,CAAC;QACF,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE;YAC1B,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,GAAG,EAAE,CAAC;SAChC;QACD,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,iBAAiB,EAAE;YAC5C,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,iBAAiB,GAAG,EAAE,CAAC;SAClD;QAED,IAAI,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,iBAAiB,CAAC,IAAI,CAC3D,CAAC,CAAM,KAAK,CAAC,CAAC,IAAI,KAAK,UAAU,CACpC,CAAC;QAEF,IAAI,CAAC,UAAU,EAAE;AACb,YAAA,UAAU,GAAG;AACT,gBAAA,IAAI,EAAE,UAAU;gBAChB,YAAY,EAAE,OAAO,GAAG,CAAC,MAAM,CAAC,GAAG,GAAG;gBACtC,WAAW,EAAE,OAAO,GAAG,EAAE,GAAG,CAAC,MAAM,CAAC;AACpC,gBAAA,MAAM,EAAE,OAAO;aAClB,CAAC;AACF,YAAA,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,iBAAiB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YAC3D,OAAO;SACV;;QAGD,IAAI,OAAO,EAAE;;AAET,YAAA,IAAI,UAAU,CAAC,WAAW,EAAE;AACxB,gBAAA,UAAU,CAAC,WAAW,GAAG,UAAU,CAAC,WAAW,CAAC,MAAM,CAClD,CAAC,CAAS,KAAK,CAAC,KAAK,MAAM,CAC9B,CAAC;aACL;;YAGD,IAAI,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE;gBACxC,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE;AAC3C,oBAAA,UAAU,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;iBACxC;aACJ;SACJ;aAAM;;AAEH,YAAA,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE;AACzB,gBAAA,UAAU,CAAC,WAAW,GAAG,EAAE,CAAC;aAC/B;YACD,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE;AAC1C,gBAAA,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;aACvC;;YAGD,IAAI,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE;AACxC,gBAAA,UAAU,CAAC,YAAY,GAAG,UAAU,CAAC,YAAY,CAAC,MAAM,CACpD,CAAC,CAAS,KAAK,CAAC,KAAK,MAAM,CAC9B,CAAC;aACL;SACJ;KACJ;AAED;;AAEG;AACH,IAAA,YAAY,CACR,UAAkB,EAClB,OAAgB,EAChB,KAAa,QAAQ,EAAA;QAErB,IAAI,OAAO,EAAE;AACT,YAAA,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;AACxC,YAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CACZ,SAAS,EACT,CAAA,QAAA,EAAW,UAAU,CAAA,aAAA,EAAgB,EAAE,CAAA,CAAE,CAC5C,CAAC;SACL;aAAM;AACH,YAAA,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;AACrC,YAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CACZ,SAAS,EACT,CAAA,QAAA,EAAW,UAAU,CAAA,cAAA,EAAiB,EAAE,CAAA,CAAE,CAC7C,CAAC;SACL;KACJ;AAED;;AAEG;IACK,mBAAmB,GAAA;AACvB,QAAA,MAAM,OAAO,GAAG,IAAI,GAAG,EAAU,CAAC;AAClC,QAAA,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;QAC/B,MAAM,KAAK,GAAa,EAAE,CAAC;AAE3B,QAAA,MAAM,KAAK,GAAG,CAAC,IAAY,KAAI;AAC3B,YAAA,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;AAChB,gBAAA,MAAM,IAAI,KAAK,CAAC,iCAAiC,IAAI,CAAA,CAAE,CAAC,CAAC;aAC5D;AACD,YAAA,IAAI,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;gBACnB,OAAO;aACV;AAED,YAAA,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YACf,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AAEtC,YAAA,IAAI,MAAM,EAAE,YAAY,EAAE;AACtB,gBAAA,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,YAAY,EAAE;oBACnC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;wBACxB,MAAM,IAAI,KAAK,CACX,CAAA,QAAA,EAAW,IAAI,CAAiB,cAAA,EAAA,GAAG,CAA2B,yBAAA,CAAA,CACjE,CAAC;qBACL;oBACD,KAAK,CAAC,GAAG,CAAC,CAAC;iBACd;aACJ;AAED,YAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;AAClB,YAAA,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AAClB,YAAA,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACrB,SAAC,CAAC;;QAGF,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE;YACpC,KAAK,CAAC,IAAI,CAAC,CAAC;SACf;AAED,QAAA,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;QACzB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,EAAE,yBAAyB,EAAE,KAAK,CAAC,CAAC;KAClE;AAED;;AAEG;AACH,IAAA,MAAM,QAAQ,GAAA;AACV,QAAA,MAAM,IAAI,CAAC,WAAW,CAAC,cAAc,CAAC,CAAC;KAC1C;AACJ;;;;"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var reliantType = require('reliant-type');
|
|
4
|
+
|
|
5
|
+
const schm = reliantType.Interface({
|
|
6
|
+
name: "string(/^[a-zA-Z0-9-]+$/)",
|
|
7
|
+
version: "semver",
|
|
8
|
+
});
|
|
9
|
+
function validatePlgInput(d) {
|
|
10
|
+
try {
|
|
11
|
+
const vldt = schm.safeParse(d);
|
|
12
|
+
if (!vldt.success) {
|
|
13
|
+
const firstError = vldt.errors[0];
|
|
14
|
+
const field = firstError.path[0];
|
|
15
|
+
if (field === "name" &&
|
|
16
|
+
firstError.code === "STRING_PATTERN_MISMATCH") {
|
|
17
|
+
return `Invalid plugin name: "${d.name}". Only alphanumeric characters (a-z, A-Z, 0-9) and hyphens (-) are allowed. No spaces or special characters like @ _ . etc.`;
|
|
18
|
+
}
|
|
19
|
+
if (field === "version" && firstError.code === "SEMVER_INVALID") {
|
|
20
|
+
return `Invalid plugin version: "${d.version}". Version must be a valid semver (e.g., 1.0.0).`;
|
|
21
|
+
}
|
|
22
|
+
return firstError.message;
|
|
23
|
+
}
|
|
24
|
+
return vldt.data;
|
|
25
|
+
}
|
|
26
|
+
catch (error) {
|
|
27
|
+
throw error;
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* // const schm = Interface({
|
|
32
|
+
// name: "string(/^[a-zA-Z0-9]+(-[a-zA-Z0-9]+)*$/)",
|
|
33
|
+
// version: "semver",
|
|
34
|
+
// });
|
|
35
|
+
|
|
36
|
+
ça c'est un bug qu'il faudrait réporter au créateur de reliant-type
|
|
37
|
+
*/
|
|
38
|
+
|
|
39
|
+
exports.validatePlgInput = validatePlgInput;
|
|
40
|
+
//# sourceMappingURL=plugingSchema.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"plugingSchema.js","sources":["../../../../src/schemas/plugingSchema.ts"],"sourcesContent":[null],"names":["Interface"],"mappings":";;;;AAEA,MAAM,IAAI,GAAGA,qBAAS,CAAC;AACnB,IAAA,IAAI,EAAE,2BAA2B;AACjC,IAAA,OAAO,EAAE,QAAQ;AACpB,CAAA,CAAC,CAAC;AAEG,SAAU,gBAAgB,CAAC,CAAoB,EAAA;AACjD,IAAA,IAAI;QACA,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;AAC/B,QAAA,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;YACf,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;YAClC,MAAM,KAAK,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAEjC,IACI,KAAK,KAAK,MAAM;AAChB,gBAAA,UAAU,CAAC,IAAI,KAAK,yBAAyB,EAC/C;AACE,gBAAA,OAAO,CAAyB,sBAAA,EAAA,CAAC,CAAC,IAAI,8HAA8H,CAAC;aACxK;YAED,IAAI,KAAK,KAAK,SAAS,IAAI,UAAU,CAAC,IAAI,KAAK,gBAAgB,EAAE;AAC7D,gBAAA,OAAO,CAA4B,yBAAA,EAAA,CAAC,CAAC,OAAO,kDAAkD,CAAC;aAClG;YAED,OAAO,UAAU,CAAC,OAAO,CAAC;SAC7B;QACD,OAAO,IAAI,CAAC,IAAI,CAAC;KACpB;IAAC,OAAO,KAAK,EAAE;AACZ,QAAA,MAAM,KAAK,CAAC;KACf;AACL,CAAC;AAED;;;;;;;AAOG;;;;"}
|