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.
Files changed (43) hide show
  1. package/README.md +1 -0
  2. package/dist/cjs/src/plugins/api/PluginAPI.js +34 -0
  3. package/dist/cjs/src/plugins/api/PluginAPI.js.map +1 -1
  4. package/dist/cjs/src/plugins/const/PluginHookIds.js +4 -0
  5. package/dist/cjs/src/plugins/const/PluginHookIds.js.map +1 -1
  6. package/dist/cjs/src/plugins/core/PluginManager.js +275 -27
  7. package/dist/cjs/src/plugins/core/PluginManager.js.map +1 -1
  8. package/dist/cjs/src/schemas/plugingSchema.js +40 -0
  9. package/dist/cjs/src/schemas/plugingSchema.js.map +1 -0
  10. package/dist/cjs/src/server/core/HttpServer.js +22 -201
  11. package/dist/cjs/src/server/core/HttpServer.js.map +1 -1
  12. package/dist/cjs/src/server/core/RequestApp.js +95 -0
  13. package/dist/cjs/src/server/core/RequestApp.js.map +1 -0
  14. package/dist/cjs/src/server/core/RequestEnhancer.js +334 -0
  15. package/dist/cjs/src/server/core/RequestEnhancer.js.map +1 -0
  16. package/dist/cjs/src/server/core/ResponseEnhancer.js +518 -0
  17. package/dist/cjs/src/server/core/ResponseEnhancer.js.map +1 -0
  18. package/dist/cjs/src/server/utils/ConfigLoader.js +47 -0
  19. package/dist/cjs/src/server/utils/ConfigLoader.js.map +1 -1
  20. package/dist/cjs/src/server/utils/trustProxy.js +487 -155
  21. package/dist/cjs/src/server/utils/trustProxy.js.map +1 -1
  22. package/dist/esm/src/plugins/api/PluginAPI.js +34 -0
  23. package/dist/esm/src/plugins/api/PluginAPI.js.map +1 -1
  24. package/dist/esm/src/plugins/const/PluginHookIds.js +4 -0
  25. package/dist/esm/src/plugins/const/PluginHookIds.js.map +1 -1
  26. package/dist/esm/src/plugins/core/PluginManager.js +275 -27
  27. package/dist/esm/src/plugins/core/PluginManager.js.map +1 -1
  28. package/dist/esm/src/schemas/plugingSchema.js +38 -0
  29. package/dist/esm/src/schemas/plugingSchema.js.map +1 -0
  30. package/dist/esm/src/server/core/HttpServer.js +24 -203
  31. package/dist/esm/src/server/core/HttpServer.js.map +1 -1
  32. package/dist/esm/src/server/core/RequestApp.js +93 -0
  33. package/dist/esm/src/server/core/RequestApp.js.map +1 -0
  34. package/dist/esm/src/server/core/RequestEnhancer.js +332 -0
  35. package/dist/esm/src/server/core/RequestEnhancer.js.map +1 -0
  36. package/dist/esm/src/server/core/ResponseEnhancer.js +516 -0
  37. package/dist/esm/src/server/core/ResponseEnhancer.js.map +1 -0
  38. package/dist/esm/src/server/utils/ConfigLoader.js +47 -0
  39. package/dist/esm/src/server/utils/ConfigLoader.js.map +1 -1
  40. package/dist/esm/src/server/utils/trustProxy.js +487 -155
  41. package/dist/esm/src/server/utils/trustProxy.js.map +1 -1
  42. package/dist/index.d.ts +222 -27
  43. 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;EAC1B;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;;;;;;"}
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
- // If no permissions configured, allow everything (backward compatibility)
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
- // Translate internal hook name to public ID
120
- const hookId = PluginHookIds.HOOK_ID_MAP[internalHookName] || internalHookName;
121
- // If policy is explicitly deny, and allowedHooks doesn't include it
122
- const policy = pluginPerm.policy;
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 (pluginPerm.allowedHooks === "*")
185
+ if (allowedHooks === "*")
125
186
  return true;
126
- if (Array.isArray(pluginPerm.allowedHooks) &&
127
- pluginPerm.allowedHooks.includes(hookId))
187
+ if (Array.isArray(allowedHooks) && allowedHooks.includes(hookId)) {
128
188
  return true;
129
- this.logger.error("server", `Plugin '${pluginName}' requires permission for hook '${hookId}'. ` +
130
- `Enable it in the pluginPermissions configuration.`);
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 allowedHooks is '*', allow all
134
- if (pluginPerm.allowedHooks === "*") {
135
- return true;
136
- }
137
- // If allowedHooks is an array, check if hook ID is in it
138
- if (Array.isArray(pluginPerm.allowedHooks)) {
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("server", `Plugin '${pluginName}' requires permission for hook '${hookId}'. ` +
143
- `Enable it in the pluginPermissions configuration.`);
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(plugin.onRequest.bind(plugin));
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
- plugin.onResponse(req, res);
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
- await plugin.onError(error, req, res, next);
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":"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"}
@@ -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;;;;"}