xypriss 4.0.0 → 4.1.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 (54) hide show
  1. package/dist/cjs/src/config.js +57 -31
  2. package/dist/cjs/src/config.js.map +1 -1
  3. package/dist/cjs/src/file-upload.js +5 -4
  4. package/dist/cjs/src/file-upload.js.map +1 -1
  5. package/dist/cjs/src/index.js +1 -1
  6. package/dist/cjs/src/plugins/api/PluginAPI.js +135 -0
  7. package/dist/cjs/src/plugins/api/PluginAPI.js.map +1 -0
  8. package/dist/cjs/src/plugins/core/PluginManager.js +266 -0
  9. package/dist/cjs/src/plugins/core/PluginManager.js.map +1 -0
  10. package/dist/cjs/src/server/FastServer.js +28 -15
  11. package/dist/cjs/src/server/FastServer.js.map +1 -1
  12. package/dist/cjs/src/server/ServerFactory.js +29 -24
  13. package/dist/cjs/src/server/ServerFactory.js.map +1 -1
  14. package/dist/cjs/src/server/components/fastapi/FileUploadManager.js +3 -2
  15. package/dist/cjs/src/server/components/fastapi/FileUploadManager.js.map +1 -1
  16. package/dist/cjs/src/server/components/fastapi/console/ConsoleInterceptor.js +74 -22
  17. package/dist/cjs/src/server/components/fastapi/console/ConsoleInterceptor.js.map +1 -1
  18. package/dist/cjs/src/server/components/fastapi/console/types.js +0 -1
  19. package/dist/cjs/src/server/components/fastapi/console/types.js.map +1 -1
  20. package/dist/cjs/src/server/const/default.js +75 -0
  21. package/dist/cjs/src/server/const/default.js.map +1 -1
  22. package/dist/cjs/src/server/handlers/NotFoundHandler.js +1 -1
  23. package/dist/esm/src/config.js +57 -31
  24. package/dist/esm/src/config.js.map +1 -1
  25. package/dist/esm/src/file-upload.js +3 -2
  26. package/dist/esm/src/file-upload.js.map +1 -1
  27. package/dist/esm/src/index.js +1 -1
  28. package/dist/esm/src/plugins/api/PluginAPI.js +131 -0
  29. package/dist/esm/src/plugins/api/PluginAPI.js.map +1 -0
  30. package/dist/esm/src/plugins/core/PluginManager.js +264 -0
  31. package/dist/esm/src/plugins/core/PluginManager.js.map +1 -0
  32. package/dist/esm/src/server/FastServer.js +28 -15
  33. package/dist/esm/src/server/FastServer.js.map +1 -1
  34. package/dist/esm/src/server/ServerFactory.js +28 -23
  35. package/dist/esm/src/server/ServerFactory.js.map +1 -1
  36. package/dist/esm/src/server/components/fastapi/FileUploadManager.js +3 -2
  37. package/dist/esm/src/server/components/fastapi/FileUploadManager.js.map +1 -1
  38. package/dist/esm/src/server/components/fastapi/console/ConsoleInterceptor.js +74 -22
  39. package/dist/esm/src/server/components/fastapi/console/ConsoleInterceptor.js.map +1 -1
  40. package/dist/esm/src/server/components/fastapi/console/types.js +0 -1
  41. package/dist/esm/src/server/components/fastapi/console/types.js.map +1 -1
  42. package/dist/esm/src/server/const/default.js +75 -0
  43. package/dist/esm/src/server/const/default.js.map +1 -1
  44. package/dist/esm/src/server/handlers/NotFoundHandler.js +1 -1
  45. package/dist/index.d.ts +112 -109
  46. package/package.json +2 -1
  47. package/dist/cjs/src/plugins/core/PluginAPI.js +0 -80
  48. package/dist/cjs/src/plugins/core/PluginAPI.js.map +0 -1
  49. package/dist/cjs/src/server/utils/ConfigLoader.js +0 -306
  50. package/dist/cjs/src/server/utils/ConfigLoader.js.map +0 -1
  51. package/dist/esm/src/plugins/core/PluginAPI.js +0 -78
  52. package/dist/esm/src/plugins/core/PluginAPI.js.map +0 -1
  53. package/dist/esm/src/server/utils/ConfigLoader.js +0 -283
  54. package/dist/esm/src/server/utils/ConfigLoader.js.map +0 -1
@@ -1,5 +1,7 @@
1
1
  'use strict';
2
2
 
3
+ var _default = require('./server/const/default.js');
4
+
3
5
  /**
4
6
  * XyPriss Configuration Manager
5
7
  *
@@ -10,6 +12,10 @@
10
12
  * in modular structures where accessing `app.configs` directly might
11
13
  * cause initialization timing issues.
12
14
  *
15
+ * **IMPORTANT**: This is the SINGLE SOURCE OF TRUTH for all XyPriss configurations.
16
+ * All components should use `Configs.get()` to access configuration values
17
+ * instead of copying values during initialization.
18
+ *
13
19
  * @example
14
20
  * ```typescript
15
21
  * import { Configs } from 'xypriss';
@@ -28,7 +34,7 @@
28
34
  * // Get entire config
29
35
  * const allConfigs = Configs.getAll();
30
36
  *
31
- * // Update specific config
37
+ * // Update specific config (updates the source of truth)
32
38
  * Configs.update('fileUpload', { maxFileSize: 10 * 1024 * 1024 });
33
39
  * ```
34
40
  */
@@ -39,10 +45,12 @@
39
45
  class ConfigurationManager {
40
46
  /**
41
47
  * Private constructor to enforce singleton pattern
48
+ * Initializes with default configuration
42
49
  */
43
50
  constructor() {
44
- this.config = {};
45
51
  this.initialized = false;
52
+ // Initialize with default configuration
53
+ this.config = { ..._default.DEFAULT_OPTIONS };
46
54
  }
47
55
  /**
48
56
  * Get the singleton instance
@@ -55,7 +63,7 @@ class ConfigurationManager {
55
63
  }
56
64
  /**
57
65
  * Set the entire configuration
58
- * @param config - Server configuration options
66
+ * @param config - XP Server configuration options
59
67
  */
60
68
  static set(config) {
61
69
  const instance = ConfigurationManager.getInstance();
@@ -73,50 +81,68 @@ class ConfigurationManager {
73
81
  }
74
82
  /**
75
83
  * Get the entire configuration object
76
- * @returns Complete server configuration
84
+ * @returns Complete XyPriss Server Configuration (XPSC)
77
85
  */
78
86
  static getAll() {
79
87
  const instance = ConfigurationManager.getInstance();
80
88
  return { ...instance.config };
81
89
  }
82
90
  /**
83
- * Update a specific configuration section
91
+ * Update a specific XyPriss configuration section (deep merge)
84
92
  * @param key - Configuration key to update
85
- * @param value - New value for the configuration section
93
+ * @param value - Partial value to merge with existing configuration
86
94
  */
87
95
  static update(key, value) {
88
96
  const instance = ConfigurationManager.getInstance();
89
- instance.config[key] = value;
97
+ const currentValue = instance.config[key];
98
+ // Deep merge the new value with the existing value
99
+ if (typeof currentValue === "object" &&
100
+ currentValue !== null &&
101
+ !Array.isArray(currentValue)) {
102
+ instance.config[key] = {
103
+ ...currentValue,
104
+ ...value,
105
+ };
106
+ }
107
+ else {
108
+ // For non-object values, just replace
109
+ instance.config[key] = value;
110
+ }
111
+ }
112
+ /**
113
+ * Deep merge helper function
114
+ * @param target - Target object
115
+ * @param source - Source object to merge
116
+ * @returns Merged object
117
+ */
118
+ static deepMerge(target, source) {
119
+ const result = { ...target };
120
+ for (const key in source) {
121
+ const sourceValue = source[key];
122
+ const targetValue = result[key];
123
+ if (sourceValue &&
124
+ typeof sourceValue === "object" &&
125
+ !Array.isArray(sourceValue) &&
126
+ targetValue &&
127
+ typeof targetValue === "object" &&
128
+ !Array.isArray(targetValue)) {
129
+ // Recursively merge nested objects
130
+ result[key] = ConfigurationManager.deepMerge(targetValue, sourceValue);
131
+ }
132
+ else if (sourceValue !== undefined) {
133
+ // Replace value (including arrays and primitives)
134
+ result[key] = sourceValue;
135
+ }
136
+ }
137
+ return result;
90
138
  }
91
139
  /**
92
- * Merge configuration with existing config
140
+ * Merge configuration with existing config (deep merge)
93
141
  * @param config - Partial configuration to merge
94
142
  */
95
143
  static merge(config) {
96
144
  const instance = ConfigurationManager.getInstance();
97
- instance.config = {
98
- ...instance.config,
99
- ...config,
100
- // Deep merge for nested objects
101
- server: { ...instance.config.server, ...config.server },
102
- cache: { ...instance.config.cache, ...config.cache },
103
- security: { ...instance.config.security, ...config.security },
104
- performance: {
105
- ...instance.config.performance,
106
- ...config.performance,
107
- },
108
- fileUpload: { ...instance.config.fileUpload, ...config.fileUpload },
109
- monitoring: { ...instance.config.monitoring, ...config.monitoring },
110
- cluster: { ...instance.config.cluster, ...config.cluster },
111
- multiServer: {
112
- ...instance.config.multiServer,
113
- ...config.multiServer,
114
- },
115
- requestManagement: {
116
- ...instance.config.requestManagement,
117
- ...config.requestManagement,
118
- },
119
- };
145
+ instance.config = ConfigurationManager.deepMerge(instance.config, config);
120
146
  instance.initialized = true;
121
147
  }
122
148
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sources":["../../../src/config.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.js","sources":["../../../src/config.ts"],"sourcesContent":[null],"names":["DEFAULT_OPTIONS"],"mappings":"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"}
@@ -2,6 +2,7 @@
2
2
 
3
3
  var FileUploadManager = require('./server/components/fastapi/FileUploadManager.js');
4
4
  var Logger = require('../shared/logger/Logger.js');
5
+ var config = require('./config.js');
5
6
  var FiUp = require('./FiUp.js');
6
7
 
7
8
  /**
@@ -56,17 +57,17 @@ class FileUploadAPI {
56
57
  * ```
57
58
  */
58
59
  async initialize(configManager) {
59
- if (this.initialized) {
60
+ if (this.initialized || config.Configs.get("fileUpload")?.enabled === false) {
60
61
  return; // Already initialized
61
62
  }
62
63
  // Access config internally from the Configs singleton
63
- const config = configManager.get("fileUpload");
64
- if (!config) {
64
+ const config$1 = configManager.get("fileUpload");
65
+ if (!config$1) {
65
66
  throw new Error("FileUpload configuration not found. Please set fileUpload config in createServer() options or use Configs.set()");
66
67
  }
67
68
  try {
68
69
  this.logger.debug("server", "Initializing FileUploadAPI...");
69
- this.manager = new FileUploadManager.FileUploadManager(config, this.logger);
70
+ this.manager = new FileUploadManager.FileUploadManager(this.logger);
70
71
  await this.manager.initialize();
71
72
  this.initialized = true;
72
73
  this.logger.debug("server", `FileUploadAPI initialized, enabled: ${this.manager.isEnabled()}`);
@@ -1 +1 @@
1
- {"version":3,"file":"file-upload.js","sources":["../../../src/file-upload.ts"],"sourcesContent":[null],"names":["Logger","FileUploadManager"],"mappings":"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"}
1
+ {"version":3,"file":"file-upload.js","sources":["../../../src/file-upload.ts"],"sourcesContent":[null],"names":["Logger","Configs","config","FileUploadManager"],"mappings":"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"}
@@ -9,7 +9,7 @@ var securityMiddleware = require('./middleware/security-middleware.js');
9
9
  var performanceMonitor = require('./server/optimization/performance-monitor.js');
10
10
  var config = require('./config.js');
11
11
  var index = require('./plugins/modules/index.js');
12
- var PluginAPI = require('./plugins/core/PluginAPI.js');
12
+ var PluginAPI = require('./plugins/api/PluginAPI.js');
13
13
  var quickStart = require('./quick-start.js');
14
14
  var trustProxy = require('./server/utils/trustProxy.js');
15
15
  var safeJsonMiddleware = require('./middleware/safe-json-middleware.js');
@@ -0,0 +1,135 @@
1
+ 'use strict';
2
+
3
+ /**
4
+ * Plugin API
5
+ * Public API for plugin management as documented in PLUGIN_SYSTEM_GUIDE.md
6
+ */
7
+ /**
8
+ * Global plugin manager instance
9
+ * This will be set by the server when it's created
10
+ */
11
+ let globalPluginManager = null;
12
+ /**
13
+ * Pending plugins registered before server creation
14
+ */
15
+ const pendingPlugins = [];
16
+ /**
17
+ * Set the global plugin manager
18
+ * @internal - Used by the server factory
19
+ */
20
+ function setGlobalPluginManager(manager) {
21
+ globalPluginManager = manager;
22
+ // Register all pending plugins
23
+ for (const { plugin, config } of pendingPlugins) {
24
+ manager.register(plugin, config);
25
+ }
26
+ // Clear pending queue
27
+ pendingPlugins.length = 0;
28
+ }
29
+ /**
30
+ * Get the global plugin manager
31
+ * @internal
32
+ */
33
+ function getGlobalPluginManager() {
34
+ return globalPluginManager;
35
+ }
36
+ /**
37
+ * Plugin API
38
+ * Provides imperative methods for plugin management
39
+ */
40
+ const Plugin = {
41
+ /**
42
+ * Register a plugin imperatively
43
+ * @param plugin - Plugin instance or creator function
44
+ * @param config - Optional configuration
45
+ *
46
+ * @example
47
+ * ```typescript
48
+ * Plugin.register({
49
+ * name: "my-plugin",
50
+ * version: "1.0.0",
51
+ * onServerStart: () => console.log("Started!")
52
+ * });
53
+ * ```
54
+ */
55
+ register(plugin, config) {
56
+ const manager = getGlobalPluginManager();
57
+ if (manager) {
58
+ // Server is already created, register immediately
59
+ manager.register(plugin, config);
60
+ }
61
+ else {
62
+ // Server not created yet, add to pending queue
63
+ pendingPlugins.push({ plugin, config });
64
+ }
65
+ },
66
+ /**
67
+ * Get a registered plugin by name
68
+ * @param name - Plugin name
69
+ * @returns Plugin instance or undefined if not found
70
+ *
71
+ * @example
72
+ * ```typescript
73
+ * const plugin = Plugin.get("my-plugin");
74
+ * if (plugin) {
75
+ * console.log(`Found plugin: ${plugin.name}@${plugin.version}`);
76
+ * }
77
+ * ```
78
+ */
79
+ get(name) {
80
+ const manager = getGlobalPluginManager();
81
+ if (!manager) {
82
+ throw new Error("Plugin system not initialized. Create a server instance first.");
83
+ }
84
+ return manager.getPlugin(name);
85
+ },
86
+ /**
87
+ * Create a plugin (helper method)
88
+ * This is just a type-safe identity function that helps with TypeScript inference
89
+ * @param plugin - Plugin definition
90
+ * @returns The same plugin instance
91
+ *
92
+ * @example
93
+ * ```typescript
94
+ * const myPlugin = Plugin.create({
95
+ * name: "my-plugin",
96
+ * version: "1.0.0",
97
+ * onServerStart: (server) => {
98
+ * console.log("Plugin started!");
99
+ * }
100
+ * });
101
+ * ```
102
+ */
103
+ create(plugin) {
104
+ return plugin;
105
+ },
106
+ /**
107
+ * Create a plugin factory function
108
+ * Useful for creating reusable plugins with configuration
109
+ * @param creator - Function that creates a plugin from config
110
+ * @returns Plugin creator function
111
+ *
112
+ * @example
113
+ * ```typescript
114
+ * const createMyPlugin = Plugin.factory((config: { apiKey: string }) => ({
115
+ * name: "my-plugin",
116
+ * version: "1.0.0",
117
+ * onServerStart: (server) => {
118
+ * server.apiKey = config.apiKey;
119
+ * }
120
+ * }));
121
+ *
122
+ * // Use it
123
+ * const plugin = createMyPlugin({ apiKey: "secret" });
124
+ * Plugin.register(plugin);
125
+ * ```
126
+ */
127
+ factory(creator) {
128
+ return creator;
129
+ },
130
+ };
131
+
132
+ exports.Plugin = Plugin;
133
+ exports.getGlobalPluginManager = getGlobalPluginManager;
134
+ exports.setGlobalPluginManager = setGlobalPluginManager;
135
+ //# sourceMappingURL=PluginAPI.js.map
@@ -0,0 +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;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;;;;;;;"}
@@ -0,0 +1,266 @@
1
+ 'use strict';
2
+
3
+ var Logger = require('../../../shared/logger/Logger.js');
4
+
5
+ /**
6
+ * Plugin Manager
7
+ * Manages plugin registration, lifecycle, and execution
8
+ */
9
+ class PluginManager {
10
+ constructor(server) {
11
+ this.plugins = new Map();
12
+ this.pluginOrder = [];
13
+ this.initialized = false;
14
+ this.server = server;
15
+ this.logger = new Logger.Logger();
16
+ }
17
+ /**
18
+ * Register a plugin
19
+ */
20
+ register(plugin, config) {
21
+ // If it's a function, call it to get the plugin
22
+ const pluginInstance = typeof plugin === "function" ? plugin(config) : plugin;
23
+ // Validate plugin
24
+ if (!pluginInstance.name || !pluginInstance.version) {
25
+ throw new Error("Plugin must have name and version");
26
+ }
27
+ // Check for duplicates
28
+ if (this.plugins.has(pluginInstance.name)) {
29
+ this.logger.warn("plugins", `Plugin '${pluginInstance.name}' already registered, skipping`);
30
+ return;
31
+ }
32
+ // Store plugin
33
+ this.plugins.set(pluginInstance.name, pluginInstance);
34
+ // Call onRegister hook
35
+ if (pluginInstance.onRegister) {
36
+ pluginInstance.onRegister(this.server, config);
37
+ }
38
+ this.logger.info("plugins", `Registered plugin: xypriss::ext/${pluginInstance.name}@${pluginInstance.version}`);
39
+ // If already initialized, fully initialize this plugin immediately
40
+ if (this.initialized) {
41
+ // Resolve dependencies for this plugin
42
+ this.resolveDependencies();
43
+ // Register routes for this plugin
44
+ if (pluginInstance.registerRoutes) {
45
+ try {
46
+ pluginInstance.registerRoutes(this.server.app);
47
+ this.logger.debug("plugins", `Registered routes for late plugin: ${pluginInstance.name}`);
48
+ }
49
+ catch (error) {
50
+ this.logger.error("plugins", `Error registering routes for ${pluginInstance.name}:`, error);
51
+ }
52
+ }
53
+ // Apply middleware for this plugin
54
+ if (pluginInstance.middleware || pluginInstance.onRequest) {
55
+ pluginInstance.middlewarePriority || "normal";
56
+ const middleware = [];
57
+ if (pluginInstance.middleware) {
58
+ const mw = Array.isArray(pluginInstance.middleware)
59
+ ? pluginInstance.middleware
60
+ : [pluginInstance.middleware];
61
+ middleware.push(...mw);
62
+ }
63
+ if (pluginInstance.onRequest) {
64
+ middleware.push(pluginInstance.onRequest.bind(pluginInstance));
65
+ }
66
+ // Apply middleware based on priority
67
+ middleware.forEach((mw) => this.server.app.use(mw));
68
+ this.logger.debug("plugins", `Applied middleware for late plugin: ${pluginInstance.name}`);
69
+ }
70
+ // Call onServerStart hook
71
+ if (pluginInstance.onServerStart) {
72
+ Promise.resolve(pluginInstance.onServerStart(this.server)).catch((error) => {
73
+ this.logger.error("plugins", `Error in ${pluginInstance.name}.onServerStart:`, error);
74
+ });
75
+ }
76
+ // Call onServerReady hook if server is ready
77
+ if (pluginInstance.onServerReady) {
78
+ Promise.resolve(pluginInstance.onServerReady(this.server)).catch((error) => {
79
+ this.logger.error("plugins", `Error in ${pluginInstance.name}.onServerReady:`, error);
80
+ });
81
+ }
82
+ }
83
+ }
84
+ /**
85
+ * Initialize all plugins (resolve dependencies and set execution order)
86
+ */
87
+ async initialize() {
88
+ this.resolveDependencies();
89
+ this.initialized = true; // Set before calling hooks so late-registered plugins are detected
90
+ await this.executeHook("onServerStart");
91
+ }
92
+ /**
93
+ * Execute a lifecycle hook on all plugins
94
+ */
95
+ async executeHook(hookName, ...args) {
96
+ for (const pluginName of this.pluginOrder) {
97
+ const plugin = this.plugins.get(pluginName);
98
+ if (plugin && typeof plugin[hookName] === "function") {
99
+ try {
100
+ await plugin[hookName](...args);
101
+ }
102
+ catch (error) {
103
+ this.logger.error("plugins", `Error in ${pluginName}.${hookName}:`, error);
104
+ }
105
+ }
106
+ }
107
+ }
108
+ /**
109
+ * Register routes from all plugins
110
+ */
111
+ registerRoutes(app) {
112
+ for (const pluginName of this.pluginOrder) {
113
+ const plugin = this.plugins.get(pluginName);
114
+ if (plugin?.registerRoutes) {
115
+ try {
116
+ plugin.registerRoutes(app);
117
+ this.logger.debug("plugins", `Registered routes for: ${pluginName}`);
118
+ }
119
+ catch (error) {
120
+ this.logger.error("plugins", `Error registering routes for ${pluginName}:`, error);
121
+ }
122
+ }
123
+ }
124
+ }
125
+ /**
126
+ * Apply middleware from all plugins
127
+ */
128
+ applyMiddleware(app) {
129
+ const priorities = { first: [], normal: [], last: [] };
130
+ for (const pluginName of this.pluginOrder) {
131
+ const plugin = this.plugins.get(pluginName);
132
+ if (plugin?.middleware) {
133
+ const priority = plugin.middlewarePriority || "normal";
134
+ const middleware = Array.isArray(plugin.middleware)
135
+ ? plugin.middleware
136
+ : [plugin.middleware];
137
+ priorities[priority].push(...middleware);
138
+ }
139
+ // Add onRequest as middleware
140
+ if (plugin?.onRequest) {
141
+ priorities.normal.push(plugin.onRequest.bind(plugin));
142
+ }
143
+ }
144
+ // Apply in order: first, normal, last
145
+ [...priorities.first, ...priorities.normal, ...priorities.last].forEach((mw) => app.use(mw));
146
+ }
147
+ /**
148
+ * Apply error handlers from all plugins
149
+ * Wraps route methods to catch errors and call plugin error handlers
150
+ */
151
+ applyErrorHandlers(app) {
152
+ const errorPlugins = Array.from(this.plugins.values()).filter((p) => p.onError);
153
+ if (errorPlugins.length === 0) {
154
+ return;
155
+ }
156
+ // Store original route methods
157
+ const originalGet = app.get?.bind(app);
158
+ const originalPost = app.post?.bind(app);
159
+ const originalPut = app.put?.bind(app);
160
+ const originalDelete = app.delete?.bind(app);
161
+ const originalPatch = app.patch?.bind(app);
162
+ // Helper to wrap handlers with error catching
163
+ const wrapHandler = (handler) => {
164
+ return async (req, res, next) => {
165
+ try {
166
+ const result = handler(req, res, next);
167
+ if (result && typeof result.catch === "function") {
168
+ await result;
169
+ }
170
+ }
171
+ catch (error) {
172
+ for (const plugin of errorPlugins) {
173
+ try {
174
+ await plugin.onError(error, req, res, next);
175
+ }
176
+ catch (handlerError) {
177
+ this.logger.error("plugins", `Error in ${plugin.name}.onError:`, handlerError);
178
+ }
179
+ }
180
+ if (!res.headersSent) {
181
+ res.status(500).json({
182
+ error: "Internal Server Error",
183
+ });
184
+ }
185
+ }
186
+ };
187
+ };
188
+ // Wrap route methods
189
+ if (originalGet) {
190
+ app.get = function (path, ...handlers) {
191
+ return originalGet(path, ...handlers.map(wrapHandler));
192
+ };
193
+ }
194
+ if (originalPost) {
195
+ app.post = function (path, ...handlers) {
196
+ return originalPost(path, ...handlers.map(wrapHandler));
197
+ };
198
+ }
199
+ if (originalPut) {
200
+ app.put = function (path, ...handlers) {
201
+ return originalPut(path, ...handlers.map(wrapHandler));
202
+ };
203
+ }
204
+ if (originalDelete) {
205
+ app.delete = function (path, ...handlers) {
206
+ return originalDelete(path, ...handlers.map(wrapHandler));
207
+ };
208
+ }
209
+ if (originalPatch) {
210
+ app.patch = function (path, ...handlers) {
211
+ return originalPatch(path, ...handlers.map(wrapHandler));
212
+ };
213
+ }
214
+ this.logger.info("plugins", `Error handlers applied for ${errorPlugins.length} plugin(s)`);
215
+ }
216
+ /**
217
+ * Get a plugin by name
218
+ */
219
+ getPlugin(name) {
220
+ return this.plugins.get(name);
221
+ }
222
+ /**
223
+ * Resolve dependencies and determine execution order
224
+ */
225
+ resolveDependencies() {
226
+ const visited = new Set();
227
+ const temp = new Set();
228
+ const order = [];
229
+ const visit = (name) => {
230
+ if (temp.has(name)) {
231
+ throw new Error(`Circular dependency detected: ${name}`);
232
+ }
233
+ if (visited.has(name)) {
234
+ return;
235
+ }
236
+ temp.add(name);
237
+ const plugin = this.plugins.get(name);
238
+ if (plugin?.dependencies) {
239
+ for (const dep of plugin.dependencies) {
240
+ if (!this.plugins.has(dep)) {
241
+ throw new Error(`Plugin '${name}' depends on '${dep}' which is not registered`);
242
+ }
243
+ visit(dep);
244
+ }
245
+ }
246
+ temp.delete(name);
247
+ visited.add(name);
248
+ order.push(name);
249
+ };
250
+ // Visit all plugins
251
+ for (const name of this.plugins.keys()) {
252
+ visit(name);
253
+ }
254
+ this.pluginOrder = order;
255
+ this.logger.debug("plugins", "Plugin execution order:", order);
256
+ }
257
+ /**
258
+ * Shutdown all plugins
259
+ */
260
+ async shutdown() {
261
+ await this.executeHook("onServerStop");
262
+ }
263
+ }
264
+
265
+ exports.PluginManager = PluginManager;
266
+ //# sourceMappingURL=PluginManager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PluginManager.js","sources":["../../../../../src/plugins/core/PluginManager.ts"],"sourcesContent":[null],"names":["Logger"],"mappings":"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"}