xypriss 1.1.3 → 1.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 (125) hide show
  1. package/README.md +13 -13
  2. package/dist/cjs/mods/security/src/index.js +35 -12
  3. package/dist/cjs/mods/security/src/index.js.map +1 -1
  4. package/dist/cjs/src/index.js +56 -0
  5. package/dist/cjs/src/index.js.map +1 -1
  6. package/dist/cjs/src/plugins/modules/PluginEngine.js +378 -0
  7. package/dist/cjs/src/plugins/modules/PluginEngine.js.map +1 -0
  8. package/dist/cjs/src/plugins/modules/PluginRegistry.js +339 -0
  9. package/dist/cjs/src/plugins/modules/PluginRegistry.js.map +1 -0
  10. package/dist/cjs/src/plugins/modules/builtin/JWTAuthPlugin.js +591 -0
  11. package/dist/cjs/src/plugins/modules/builtin/JWTAuthPlugin.js.map +1 -0
  12. package/dist/cjs/src/plugins/modules/builtin/ResponseTimePlugin.js +413 -0
  13. package/dist/cjs/src/plugins/modules/builtin/ResponseTimePlugin.js.map +1 -0
  14. package/dist/cjs/src/plugins/modules/builtin/SmartCachePlugin.js +843 -0
  15. package/dist/cjs/src/plugins/modules/builtin/SmartCachePlugin.js.map +1 -0
  16. package/dist/cjs/src/plugins/modules/core/CachePlugin.js +1975 -0
  17. package/dist/cjs/src/plugins/modules/core/CachePlugin.js.map +1 -0
  18. package/dist/cjs/src/plugins/modules/core/PerformancePlugin.js +894 -0
  19. package/dist/cjs/src/plugins/modules/core/PerformancePlugin.js.map +1 -0
  20. package/dist/cjs/src/plugins/modules/core/SecurityPlugin.js +799 -0
  21. package/dist/cjs/src/plugins/modules/core/SecurityPlugin.js.map +1 -0
  22. package/dist/cjs/src/plugins/modules/index.js +304 -0
  23. package/dist/cjs/src/plugins/modules/index.js.map +1 -0
  24. package/dist/cjs/src/plugins/modules/network/builtin/CompressionPlugin.js +410 -0
  25. package/dist/cjs/src/plugins/modules/network/builtin/CompressionPlugin.js.map +1 -0
  26. package/dist/cjs/src/plugins/modules/network/builtin/ConnectionPlugin.js +797 -0
  27. package/dist/cjs/src/plugins/modules/network/builtin/ConnectionPlugin.js.map +1 -0
  28. package/dist/cjs/src/plugins/modules/network/builtin/ProxyPlugin.js +409 -0
  29. package/dist/cjs/src/plugins/modules/network/builtin/ProxyPlugin.js.map +1 -0
  30. package/dist/cjs/src/plugins/modules/network/builtin/RateLimitPlugin.js +606 -0
  31. package/dist/cjs/src/plugins/modules/network/builtin/RateLimitPlugin.js.map +1 -0
  32. package/dist/cjs/src/plugins/modules/network/core/NetworkPlugin.js +225 -0
  33. package/dist/cjs/src/plugins/modules/network/core/NetworkPlugin.js.map +1 -0
  34. package/dist/cjs/src/plugins/modules/network/core/NetworkPluginFactory.js +40 -0
  35. package/dist/cjs/src/plugins/modules/network/core/NetworkPluginFactory.js.map +1 -0
  36. package/dist/cjs/src/plugins/modules/network/index.js +120 -0
  37. package/dist/cjs/src/plugins/modules/network/index.js.map +1 -0
  38. package/dist/cjs/src/plugins/modules/network/types/NetworkTypes.js +24 -0
  39. package/dist/cjs/src/plugins/modules/network/types/NetworkTypes.js.map +1 -0
  40. package/dist/cjs/src/plugins/modules/network/utils/NetworkPluginUtils.js +63 -0
  41. package/dist/cjs/src/plugins/modules/network/utils/NetworkPluginUtils.js.map +1 -0
  42. package/dist/cjs/src/plugins/modules/types/PluginTypes.js +48 -0
  43. package/dist/cjs/src/plugins/modules/types/PluginTypes.js.map +1 -0
  44. package/dist/cjs/src/server/FastServer.js +133 -5
  45. package/dist/cjs/src/server/FastServer.js.map +1 -1
  46. package/dist/cjs/src/server/components/fastapi/PluginManager.js +5 -5
  47. package/dist/cjs/src/server/components/fastapi/PluginManager.js.map +1 -1
  48. package/dist/cjs/src/server/components/fastapi/RequestProcessor.js +1 -1
  49. package/dist/cjs/src/server/conf/networkConnectionConf.js +25 -0
  50. package/dist/cjs/src/server/conf/networkConnectionConf.js.map +1 -0
  51. package/dist/cjs/src/server/conf/proxyConfig.js +23 -0
  52. package/dist/cjs/src/server/conf/proxyConfig.js.map +1 -0
  53. package/dist/cjs/src/server/conf/rateLimitConfig.js +35 -0
  54. package/dist/cjs/src/server/conf/rateLimitConfig.js.map +1 -0
  55. package/dist/cjs/src/server/const/default.js +6 -0
  56. package/dist/cjs/src/server/const/default.js.map +1 -1
  57. package/dist/cjs/src/server/handlers/NotFoundHandler.js +217 -0
  58. package/dist/cjs/src/server/handlers/NotFoundHandler.js.map +1 -0
  59. package/dist/cjs/src/server/handlers/templates/notFoundTemp.js +163 -0
  60. package/dist/cjs/src/server/handlers/templates/notFoundTemp.js.map +1 -0
  61. package/dist/esm/mods/security/src/components/cache/UFSIMC.js +5 -5
  62. package/dist/esm/mods/security/src/components/cache/UFSIMC.js.map +1 -1
  63. package/dist/esm/mods/security/src/components/cache/cacheSys.utils.js +3 -3
  64. package/dist/esm/mods/security/src/components/cache/cacheSys.utils.js.map +1 -1
  65. package/dist/esm/mods/security/src/index.js +14 -10
  66. package/dist/esm/mods/security/src/index.js.map +1 -1
  67. package/dist/esm/src/index.js +18 -0
  68. package/dist/esm/src/index.js.map +1 -1
  69. package/dist/esm/src/plugins/modules/PluginEngine.js +376 -0
  70. package/dist/esm/src/plugins/modules/PluginEngine.js.map +1 -0
  71. package/dist/esm/src/plugins/modules/PluginRegistry.js +337 -0
  72. package/dist/esm/src/plugins/modules/PluginRegistry.js.map +1 -0
  73. package/dist/esm/src/plugins/modules/builtin/JWTAuthPlugin.js +589 -0
  74. package/dist/esm/src/plugins/modules/builtin/JWTAuthPlugin.js.map +1 -0
  75. package/dist/esm/src/plugins/modules/builtin/ResponseTimePlugin.js +411 -0
  76. package/dist/esm/src/plugins/modules/builtin/ResponseTimePlugin.js.map +1 -0
  77. package/dist/esm/src/plugins/modules/builtin/SmartCachePlugin.js +841 -0
  78. package/dist/esm/src/plugins/modules/builtin/SmartCachePlugin.js.map +1 -0
  79. package/dist/esm/src/plugins/modules/core/CachePlugin.js +1973 -0
  80. package/dist/esm/src/plugins/modules/core/CachePlugin.js.map +1 -0
  81. package/dist/esm/src/plugins/modules/core/PerformancePlugin.js +872 -0
  82. package/dist/esm/src/plugins/modules/core/PerformancePlugin.js.map +1 -0
  83. package/dist/esm/src/plugins/modules/core/SecurityPlugin.js +797 -0
  84. package/dist/esm/src/plugins/modules/core/SecurityPlugin.js.map +1 -0
  85. package/dist/esm/src/plugins/modules/index.js +275 -0
  86. package/dist/esm/src/plugins/modules/index.js.map +1 -0
  87. package/dist/esm/src/plugins/modules/network/builtin/CompressionPlugin.js +389 -0
  88. package/dist/esm/src/plugins/modules/network/builtin/CompressionPlugin.js.map +1 -0
  89. package/dist/esm/src/plugins/modules/network/builtin/ConnectionPlugin.js +776 -0
  90. package/dist/esm/src/plugins/modules/network/builtin/ConnectionPlugin.js.map +1 -0
  91. package/dist/esm/src/plugins/modules/network/builtin/ProxyPlugin.js +407 -0
  92. package/dist/esm/src/plugins/modules/network/builtin/ProxyPlugin.js.map +1 -0
  93. package/dist/esm/src/plugins/modules/network/builtin/RateLimitPlugin.js +585 -0
  94. package/dist/esm/src/plugins/modules/network/builtin/RateLimitPlugin.js.map +1 -0
  95. package/dist/esm/src/plugins/modules/network/core/NetworkPlugin.js +223 -0
  96. package/dist/esm/src/plugins/modules/network/core/NetworkPlugin.js.map +1 -0
  97. package/dist/esm/src/plugins/modules/network/core/NetworkPluginFactory.js +38 -0
  98. package/dist/esm/src/plugins/modules/network/core/NetworkPluginFactory.js.map +1 -0
  99. package/dist/esm/src/plugins/modules/network/index.js +109 -0
  100. package/dist/esm/src/plugins/modules/network/index.js.map +1 -0
  101. package/dist/esm/src/plugins/modules/network/types/NetworkTypes.js +24 -0
  102. package/dist/esm/src/plugins/modules/network/types/NetworkTypes.js.map +1 -0
  103. package/dist/esm/src/plugins/modules/network/utils/NetworkPluginUtils.js +61 -0
  104. package/dist/esm/src/plugins/modules/network/utils/NetworkPluginUtils.js.map +1 -0
  105. package/dist/esm/src/plugins/modules/types/PluginTypes.js +48 -0
  106. package/dist/esm/src/plugins/modules/types/PluginTypes.js.map +1 -0
  107. package/dist/esm/src/server/FastServer.js +133 -5
  108. package/dist/esm/src/server/FastServer.js.map +1 -1
  109. package/dist/esm/src/server/components/fastapi/PluginManager.js +5 -5
  110. package/dist/esm/src/server/components/fastapi/PluginManager.js.map +1 -1
  111. package/dist/esm/src/server/components/fastapi/RequestProcessor.js +1 -1
  112. package/dist/esm/src/server/conf/networkConnectionConf.js +23 -0
  113. package/dist/esm/src/server/conf/networkConnectionConf.js.map +1 -0
  114. package/dist/esm/src/server/conf/proxyConfig.js +21 -0
  115. package/dist/esm/src/server/conf/proxyConfig.js.map +1 -0
  116. package/dist/esm/src/server/conf/rateLimitConfig.js +33 -0
  117. package/dist/esm/src/server/conf/rateLimitConfig.js.map +1 -0
  118. package/dist/esm/src/server/const/default.js +6 -0
  119. package/dist/esm/src/server/const/default.js.map +1 -1
  120. package/dist/esm/src/server/handlers/NotFoundHandler.js +194 -0
  121. package/dist/esm/src/server/handlers/NotFoundHandler.js.map +1 -0
  122. package/dist/esm/src/server/handlers/templates/notFoundTemp.js +161 -0
  123. package/dist/esm/src/server/handlers/templates/notFoundTemp.js.map +1 -0
  124. package/dist/index.d.ts +5104 -14
  125. package/package.json +8 -7
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PluginEngine.js","sources":["../../../../../src/plugins/modules/PluginEngine.ts"],"sourcesContent":[null],"names":["EventEmitter","NehoID","PluginEventType","PluginType"],"mappings":"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"}
@@ -0,0 +1,339 @@
1
+ 'use strict';
2
+
3
+ var events = require('events');
4
+ var index = require('../../../mods/security/src/components/fortified-function/index.js');
5
+ var PluginTypes = require('./types/PluginTypes.js');
6
+
7
+ /**
8
+ * Ultra-Fast Plugin Registry
9
+ *
10
+ * Central registry for managing plugins with <0.1ms registration overhead
11
+ * and intelligent lifecycle management for optimal performance.
12
+ */
13
+ /**
14
+ * Ultra-fast plugin registry with intelligent management
15
+ */
16
+ class PluginRegistry extends events.EventEmitter {
17
+ constructor(cache, cluster, config) {
18
+ super();
19
+ this.plugins = new Map();
20
+ this.pluginsByType = new Map();
21
+ this.pluginStats = new Map();
22
+ this.isInitialized = false;
23
+ // Performance optimization: Pre-sorted plugin arrays by priority
24
+ this.sortedPluginCache = new Map();
25
+ this.lastCacheUpdate = 0;
26
+ this.CACHE_TTL = 5000; // 5 seconds
27
+ this.cache = cache;
28
+ this.cluster = cluster;
29
+ this.config = {
30
+ maxPlugins: 100,
31
+ enableHotReload: true,
32
+ enableProfiling: true,
33
+ performanceThresholds: {
34
+ maxExecutionTime: 10, // 10ms max
35
+ maxMemoryUsage: 50 * 1024 * 1024, // 50MB
36
+ maxCpuUsage: 80, // 80%
37
+ },
38
+ ...config,
39
+ };
40
+ this.logger = this.createLogger();
41
+ this.initializePluginTypes();
42
+ }
43
+ /**
44
+ * Initialize plugin type maps for ultra-fast lookups
45
+ */
46
+ initializePluginTypes() {
47
+ Object.values(PluginTypes.PluginType).forEach((type) => {
48
+ this.pluginsByType.set(type, []);
49
+ this.sortedPluginCache.set(type, []);
50
+ });
51
+ }
52
+ /**
53
+ * Create optimized logger for plugin operations
54
+ */
55
+ createLogger() {
56
+ const fortifiedLogger = index.func((level, message, data) => {
57
+ new Date().toISOString();
58
+ if (level === "error") {
59
+ console.error(`[PluginRegistry] ${message}`, data);
60
+ }
61
+ else if (level === "warn") {
62
+ console.warn(`[PluginRegistry] ${message}`, data);
63
+ }
64
+ else if (level === "debug" &&
65
+ process.env.NODE_ENV === "development") {
66
+ console.debug(`[PluginRegistry] ${message}`, data);
67
+ }
68
+ else {
69
+ console.log(`[PluginRegistry] ${message}`, data);
70
+ }
71
+ }, { ultraFast: "maximum", auditLog: false });
72
+ return {
73
+ debug: (message, data) => fortifiedLogger("debug", message, data),
74
+ info: (message, data) => fortifiedLogger("info", message, data),
75
+ warn: (message, data) => fortifiedLogger("warn", message, data),
76
+ error: (message, error) => fortifiedLogger("error", message, error),
77
+ performance: (pluginId, executionTime) => {
78
+ if (this.config.enableProfiling) {
79
+ fortifiedLogger("performance", `Plugin ${pluginId} executed in ${executionTime}ms`);
80
+ }
81
+ },
82
+ };
83
+ }
84
+ /**
85
+ * Register a plugin with ultra-fast registration (<0.1ms)
86
+ */
87
+ async register(plugin) {
88
+ const startTime = performance.now();
89
+ try {
90
+ // Validate plugin
91
+ this.validatePlugin(plugin);
92
+ // Check if plugin already exists
93
+ if (this.plugins.has(plugin.id)) {
94
+ throw new Error(`Plugin ${plugin.id} is already registered`);
95
+ }
96
+ // Check plugin limit
97
+ if (this.plugins.size >= this.config.maxPlugins) {
98
+ throw new Error(`Maximum plugin limit (${this.config.maxPlugins}) reached`);
99
+ }
100
+ // Initialize plugin if needed
101
+ if (plugin.initialize) {
102
+ const initContext = {
103
+ cache: this.cache,
104
+ cluster: this.cluster,
105
+ config: {
106
+ maxExecutionTime: plugin.maxExecutionTime,
107
+ enableProfiling: this.config.enableProfiling,
108
+ enableCaching: plugin.isCacheable,
109
+ enableEncryption: false,
110
+ enableAuditLogging: false,
111
+ securityLevel: "basic",
112
+ customSettings: {},
113
+ },
114
+ logger: this.logger,
115
+ };
116
+ await plugin.initialize(initContext);
117
+ }
118
+ // Precompile plugin if supported
119
+ if (plugin.precompile) {
120
+ await plugin.precompile();
121
+ }
122
+ // Register plugin
123
+ this.plugins.set(plugin.id, plugin);
124
+ // Add to type-specific collection
125
+ const typePlugins = this.pluginsByType.get(plugin.type) || [];
126
+ typePlugins.push(plugin);
127
+ this.pluginsByType.set(plugin.type, typePlugins);
128
+ // Initialize stats
129
+ this.pluginStats.set(plugin.id, {
130
+ pluginId: plugin.id,
131
+ executionCount: 0,
132
+ totalExecutionTime: 0,
133
+ averageExecutionTime: 0,
134
+ errorCount: 0,
135
+ lastExecuted: new Date(),
136
+ performanceScore: 100,
137
+ });
138
+ // Invalidate sorted cache
139
+ this.invalidateSortedCache();
140
+ const registrationTime = performance.now() - startTime;
141
+ this.logger.info(`Plugin ${plugin.id} registered in ${registrationTime.toFixed(3)}ms`);
142
+ // Emit event
143
+ this.emitPluginEvent(PluginTypes.PluginEventType.PLUGIN_REGISTERED, plugin.id, {
144
+ type: plugin.type,
145
+ priority: plugin.priority,
146
+ registrationTime,
147
+ });
148
+ }
149
+ catch (error) {
150
+ this.logger.error(`Failed to register plugin ${plugin.id}`, error);
151
+ throw error;
152
+ }
153
+ }
154
+ /**
155
+ * Unregister a plugin
156
+ */
157
+ async unregister(pluginId) {
158
+ const plugin = this.plugins.get(pluginId);
159
+ if (!plugin) {
160
+ throw new Error(`Plugin ${pluginId} not found`);
161
+ }
162
+ try {
163
+ // Cleanup plugin if supported
164
+ if (plugin.cleanup) {
165
+ // Create minimal context for cleanup
166
+ const cleanupContext = {
167
+ pluginData: new Map(),
168
+ security: {
169
+ isAuthenticated: false,
170
+ roles: [],
171
+ permissions: [],
172
+ },
173
+ metrics: {
174
+ requestStartTime: Date.now(),
175
+ pluginExecutionTimes: new Map(),
176
+ cacheHits: 0,
177
+ cacheMisses: 0,
178
+ },
179
+ };
180
+ await plugin.cleanup(cleanupContext);
181
+ }
182
+ // Remove from collections
183
+ this.plugins.delete(pluginId);
184
+ this.pluginStats.delete(pluginId);
185
+ // Remove from type-specific collection
186
+ const typePlugins = this.pluginsByType.get(plugin.type) || [];
187
+ const filteredPlugins = typePlugins.filter((p) => p.id !== pluginId);
188
+ this.pluginsByType.set(plugin.type, filteredPlugins);
189
+ // Invalidate sorted cache
190
+ this.invalidateSortedCache();
191
+ this.logger.info(`Plugin ${pluginId} unregistered`);
192
+ // Emit event
193
+ this.emitPluginEvent(PluginTypes.PluginEventType.PLUGIN_UNREGISTERED, pluginId);
194
+ }
195
+ catch (error) {
196
+ this.logger.error(`Failed to unregister plugin ${pluginId}`, error);
197
+ throw error;
198
+ }
199
+ }
200
+ /**
201
+ * Get plugins by type with ultra-fast sorted lookup
202
+ */
203
+ getPluginsByType(type) {
204
+ const now = Date.now();
205
+ // Check if cache is valid
206
+ if (now - this.lastCacheUpdate < this.CACHE_TTL) {
207
+ return this.sortedPluginCache.get(type) || [];
208
+ }
209
+ // Rebuild sorted cache
210
+ const plugins = this.pluginsByType.get(type) || [];
211
+ const sortedPlugins = plugins.sort((a, b) => a.priority - b.priority);
212
+ this.sortedPluginCache.set(type, sortedPlugins);
213
+ this.lastCacheUpdate = now;
214
+ return sortedPlugins;
215
+ }
216
+ /**
217
+ * Get plugin by ID
218
+ */
219
+ getPlugin(pluginId) {
220
+ return this.plugins.get(pluginId);
221
+ }
222
+ /**
223
+ * Get all registered plugins
224
+ */
225
+ getAllPlugins() {
226
+ return Array.from(this.plugins.values());
227
+ }
228
+ /**
229
+ * Get plugin execution statistics
230
+ */
231
+ getPluginStats(pluginId) {
232
+ return this.pluginStats.get(pluginId);
233
+ }
234
+ /**
235
+ * Get all plugin statistics
236
+ */
237
+ getAllStats() {
238
+ return Array.from(this.pluginStats.values());
239
+ }
240
+ /**
241
+ * Update plugin execution statistics
242
+ */
243
+ updateStats(pluginId, executionTime, success) {
244
+ const stats = this.pluginStats.get(pluginId);
245
+ if (!stats)
246
+ return;
247
+ stats.executionCount++;
248
+ stats.totalExecutionTime += executionTime;
249
+ stats.averageExecutionTime =
250
+ stats.totalExecutionTime / stats.executionCount;
251
+ stats.lastExecuted = new Date();
252
+ if (!success) {
253
+ stats.errorCount++;
254
+ }
255
+ // Calculate performance score (0-100)
256
+ const errorRate = stats.errorCount / stats.executionCount;
257
+ const timeScore = Math.max(0, 100 - (stats.averageExecutionTime / 10) * 100);
258
+ const errorScore = Math.max(0, 100 - errorRate * 100);
259
+ stats.performanceScore = (timeScore + errorScore) / 2;
260
+ // Check performance thresholds
261
+ if (executionTime > this.config.performanceThresholds.maxExecutionTime) {
262
+ this.emitPluginEvent(PluginTypes.PluginEventType.PERFORMANCE_THRESHOLD_EXCEEDED, pluginId, {
263
+ executionTime,
264
+ threshold: this.config.performanceThresholds.maxExecutionTime,
265
+ });
266
+ }
267
+ }
268
+ /**
269
+ * Validate plugin before registration
270
+ */
271
+ validatePlugin(plugin) {
272
+ if (!plugin.id || typeof plugin.id !== "string") {
273
+ throw new Error("Plugin must have a valid string ID");
274
+ }
275
+ if (!plugin.name || typeof plugin.name !== "string") {
276
+ throw new Error("Plugin must have a valid string name");
277
+ }
278
+ if (!plugin.version || typeof plugin.version !== "string") {
279
+ throw new Error("Plugin must have a valid string version");
280
+ }
281
+ if (!Object.values(PluginTypes.PluginType).includes(plugin.type)) {
282
+ throw new Error(`Invalid plugin type: ${plugin.type}`);
283
+ }
284
+ if (!Object.values(PluginTypes.PluginPriority).includes(plugin.priority)) {
285
+ throw new Error(`Invalid plugin priority: ${plugin.priority}`);
286
+ }
287
+ if (typeof plugin.execute !== "function") {
288
+ throw new Error("Plugin must have an execute method");
289
+ }
290
+ if (plugin.maxExecutionTime <= 0) {
291
+ throw new Error("Plugin maxExecutionTime must be positive");
292
+ }
293
+ }
294
+ /**
295
+ * Invalidate sorted plugin cache
296
+ */
297
+ invalidateSortedCache() {
298
+ this.lastCacheUpdate = 0;
299
+ }
300
+ /**
301
+ * Emit plugin event
302
+ */
303
+ emitPluginEvent(type, pluginId, data) {
304
+ const event = {
305
+ type,
306
+ pluginId,
307
+ timestamp: new Date(),
308
+ data,
309
+ };
310
+ this.emit(type, event);
311
+ }
312
+ /**
313
+ * Get registry statistics (ultra-fast optimized)
314
+ */
315
+ getRegistryStats() {
316
+ const totalPlugins = this.plugins.size;
317
+ const pluginsByType = {};
318
+ let totalExecutions = 0;
319
+ let totalExecutionTime = 0;
320
+ // Ultra-fast: Only count plugins that actually exist (avoid iterating all enum values)
321
+ this.pluginsByType.forEach((plugins, type) => {
322
+ pluginsByType[type] = plugins.length;
323
+ });
324
+ // Ultra-fast: Single iteration through stats
325
+ this.pluginStats.forEach((stats) => {
326
+ totalExecutions += stats.executionCount;
327
+ totalExecutionTime += stats.totalExecutionTime;
328
+ });
329
+ return {
330
+ totalPlugins,
331
+ pluginsByType,
332
+ averageExecutionTime: totalExecutions > 0 ? totalExecutionTime / totalExecutions : 0,
333
+ totalExecutions,
334
+ };
335
+ }
336
+ }
337
+
338
+ exports.PluginRegistry = PluginRegistry;
339
+ //# sourceMappingURL=PluginRegistry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PluginRegistry.js","sources":["../../../../../src/plugins/modules/PluginRegistry.ts"],"sourcesContent":[null],"names":["EventEmitter","PluginType","func","PluginEventType","PluginPriority"],"mappings":";;;;;;AAAA;;;;;AAKG;AAkBH;;AAEG;AACG,MAAO,cAAe,SAAQA,mBAAY,CAAA;AAe5C,IAAA,WAAA,CACI,KAAyB,EACzB,OAAwB,EACxB,MAAsC,EAAA;AAEtC,QAAA,KAAK,EAAE,CAAC;AAnBJ,QAAA,IAAA,CAAA,OAAO,GAA4B,IAAI,GAAG,EAAE,CAAC;AAC7C,QAAA,IAAA,CAAA,aAAa,GAAkC,IAAI,GAAG,EAAE,CAAC;AACzD,QAAA,IAAA,CAAA,WAAW,GAAsC,IAAI,GAAG,EAAE,CAAC;QAK3D,IAAa,CAAA,aAAA,GAAG,KAAK,CAAC;;AAGtB,QAAA,IAAA,CAAA,iBAAiB,GAAkC,IAAI,GAAG,EAAE,CAAC;QAC7D,IAAe,CAAA,eAAA,GAAG,CAAC,CAAC;AACX,QAAA,IAAA,CAAA,SAAS,GAAG,IAAI,CAAC;AAS9B,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;AACnB,QAAA,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,MAAM,GAAG;AACV,YAAA,UAAU,EAAE,GAAG;AACf,YAAA,eAAe,EAAE,IAAI;AACrB,YAAA,eAAe,EAAE,IAAI;AACrB,YAAA,qBAAqB,EAAE;gBACnB,gBAAgB,EAAE,EAAE;AACpB,gBAAA,cAAc,EAAE,EAAE,GAAG,IAAI,GAAG,IAAI;gBAChC,WAAW,EAAE,EAAE;AAClB,aAAA;AACD,YAAA,GAAG,MAAM;SACZ,CAAC;AAEF,QAAA,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;QAClC,IAAI,CAAC,qBAAqB,EAAE,CAAC;KAChC;AAED;;AAEG;IACK,qBAAqB,GAAA;QACzB,MAAM,CAAC,MAAM,CAACC,sBAAU,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,KAAI;YACvC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;YACjC,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;AACzC,SAAC,CAAC,CAAC;KACN;AAED;;AAEG;IACK,YAAY,GAAA;QAChB,MAAM,eAAe,GAAGC,UAAI,CACxB,CAAC,KAAa,EAAE,OAAe,EAAE,IAAU,KAAI;YACzB,IAAI,IAAI,EAAE,CAAC,WAAW,GAAG;AAG3C,YAAA,IAAI,KAAK,KAAK,OAAO,EAAE;gBACnB,OAAO,CAAC,KAAK,CAAC,CAAA,iBAAA,EAAoB,OAAO,CAAE,CAAA,EAAE,IAAI,CAAC,CAAC;aACtD;AAAM,iBAAA,IAAI,KAAK,KAAK,MAAM,EAAE;gBACzB,OAAO,CAAC,IAAI,CAAC,CAAA,iBAAA,EAAoB,OAAO,CAAE,CAAA,EAAE,IAAI,CAAC,CAAC;aACrD;iBAAM,IACH,KAAK,KAAK,OAAO;AACjB,gBAAA,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,aAAa,EACxC;gBACE,OAAO,CAAC,KAAK,CAAC,CAAA,iBAAA,EAAoB,OAAO,CAAE,CAAA,EAAE,IAAI,CAAC,CAAC;aACtD;iBAAM;gBACH,OAAO,CAAC,GAAG,CAAC,CAAA,iBAAA,EAAoB,OAAO,CAAE,CAAA,EAAE,IAAI,CAAC,CAAC;aACpD;SACJ,EACD,EAAE,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAE,CAC5C,CAAC;QAEF,OAAO;AACH,YAAA,KAAK,EAAE,CAAC,OAAO,EAAE,IAAI,KAAK,eAAe,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC;AACjE,YAAA,IAAI,EAAE,CAAC,OAAO,EAAE,IAAI,KAAK,eAAe,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC;AAC/D,YAAA,IAAI,EAAE,CAAC,OAAO,EAAE,IAAI,KAAK,eAAe,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC;AAC/D,YAAA,KAAK,EAAE,CAAC,OAAO,EAAE,KAAK,KAAK,eAAe,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,CAAC;AACnE,YAAA,WAAW,EAAE,CAAC,QAAQ,EAAE,aAAa,KAAI;AACrC,gBAAA,IAAI,IAAI,CAAC,MAAM,CAAC,eAAe,EAAE;oBAC7B,eAAe,CACX,aAAa,EACb,CAAA,OAAA,EAAU,QAAQ,CAAgB,aAAA,EAAA,aAAa,CAAI,EAAA,CAAA,CACtD,CAAC;iBACL;aACJ;SACJ,CAAC;KACL;AAED;;AAEG;IACI,MAAM,QAAQ,CAAC,MAAkB,EAAA;AACpC,QAAA,MAAM,SAAS,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;AAEpC,QAAA,IAAI;;AAEA,YAAA,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;;YAG5B,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE;gBAC7B,MAAM,IAAI,KAAK,CAAC,CAAA,OAAA,EAAU,MAAM,CAAC,EAAE,CAAwB,sBAAA,CAAA,CAAC,CAAC;aAChE;;AAGD,YAAA,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE;gBAC7C,MAAM,IAAI,KAAK,CACX,CAAyB,sBAAA,EAAA,IAAI,CAAC,MAAM,CAAC,UAAU,CAAW,SAAA,CAAA,CAC7D,CAAC;aACL;;AAGD,YAAA,IAAI,MAAM,CAAC,UAAU,EAAE;AACnB,gBAAA,MAAM,WAAW,GAAgC;oBAC7C,KAAK,EAAE,IAAI,CAAC,KAAK;oBACjB,OAAO,EAAE,IAAI,CAAC,OAAO;AACrB,oBAAA,MAAM,EAAE;wBACJ,gBAAgB,EAAE,MAAM,CAAC,gBAAgB;AACzC,wBAAA,eAAe,EAAE,IAAI,CAAC,MAAM,CAAC,eAAe;wBAC5C,aAAa,EAAE,MAAM,CAAC,WAAW;AACjC,wBAAA,gBAAgB,EAAE,KAAK;AACvB,wBAAA,kBAAkB,EAAE,KAAK;AACzB,wBAAA,aAAa,EAAE,OAAO;AACtB,wBAAA,cAAc,EAAE,EAAE;AACrB,qBAAA;oBACD,MAAM,EAAE,IAAI,CAAC,MAAM;iBACtB,CAAC;AAEF,gBAAA,MAAM,MAAM,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;aACxC;;AAGD,YAAA,IAAI,MAAM,CAAC,UAAU,EAAE;AACnB,gBAAA,MAAM,MAAM,CAAC,UAAU,EAAE,CAAC;aAC7B;;YAGD,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;;AAGpC,YAAA,MAAM,WAAW,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;AAC9D,YAAA,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACzB,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;;YAGjD,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,EAAE;gBAC5B,QAAQ,EAAE,MAAM,CAAC,EAAE;AACnB,gBAAA,cAAc,EAAE,CAAC;AACjB,gBAAA,kBAAkB,EAAE,CAAC;AACrB,gBAAA,oBAAoB,EAAE,CAAC;AACvB,gBAAA,UAAU,EAAE,CAAC;gBACb,YAAY,EAAE,IAAI,IAAI,EAAE;AACxB,gBAAA,gBAAgB,EAAE,GAAG;AACxB,aAAA,CAAC,CAAC;;YAGH,IAAI,CAAC,qBAAqB,EAAE,CAAC;YAE7B,MAAM,gBAAgB,GAAG,WAAW,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;AACvD,YAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CACZ,CAAA,OAAA,EAAU,MAAM,CAAC,EAAE,CAAkB,eAAA,EAAA,gBAAgB,CAAC,OAAO,CACzD,CAAC,CACJ,CAAA,EAAA,CAAI,CACR,CAAC;;YAGF,IAAI,CAAC,eAAe,CAACC,2BAAe,CAAC,iBAAiB,EAAE,MAAM,CAAC,EAAE,EAAE;gBAC/D,IAAI,EAAE,MAAM,CAAC,IAAI;gBACjB,QAAQ,EAAE,MAAM,CAAC,QAAQ;gBACzB,gBAAgB;AACnB,aAAA,CAAC,CAAC;SACN;QAAC,OAAO,KAAU,EAAE;AACjB,YAAA,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA,0BAAA,EAA6B,MAAM,CAAC,EAAE,CAAA,CAAE,EAAE,KAAK,CAAC,CAAC;AACnE,YAAA,MAAM,KAAK,CAAC;SACf;KACJ;AAED;;AAEG;IACI,MAAM,UAAU,CAAC,QAAgB,EAAA;QACpC,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC1C,IAAI,CAAC,MAAM,EAAE;AACT,YAAA,MAAM,IAAI,KAAK,CAAC,UAAU,QAAQ,CAAA,UAAA,CAAY,CAAC,CAAC;SACnD;AAED,QAAA,IAAI;;AAEA,YAAA,IAAI,MAAM,CAAC,OAAO,EAAE;;AAEhB,gBAAA,MAAM,cAAc,GAAG;oBACnB,UAAU,EAAE,IAAI,GAAG,EAAE;AACrB,oBAAA,QAAQ,EAAE;AACN,wBAAA,eAAe,EAAE,KAAK;AACtB,wBAAA,KAAK,EAAE,EAAE;AACT,wBAAA,WAAW,EAAE,EAAE;AAClB,qBAAA;AACD,oBAAA,OAAO,EAAE;AACL,wBAAA,gBAAgB,EAAE,IAAI,CAAC,GAAG,EAAE;wBAC5B,oBAAoB,EAAE,IAAI,GAAG,EAAE;AAC/B,wBAAA,SAAS,EAAE,CAAC;AACZ,wBAAA,WAAW,EAAE,CAAC;AACjB,qBAAA;iBACG,CAAC;AAET,gBAAA,MAAM,MAAM,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;aACxC;;AAGD,YAAA,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;AAC9B,YAAA,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;;AAGlC,YAAA,MAAM,WAAW,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;AAC9D,YAAA,MAAM,eAAe,GAAG,WAAW,CAAC,MAAM,CACtC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,QAAQ,CAC3B,CAAC;YACF,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,eAAe,CAAC,CAAC;;YAGrD,IAAI,CAAC,qBAAqB,EAAE,CAAC;YAE7B,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAU,OAAA,EAAA,QAAQ,CAAe,aAAA,CAAA,CAAC,CAAC;;YAGpD,IAAI,CAAC,eAAe,CAACA,2BAAe,CAAC,mBAAmB,EAAE,QAAQ,CAAC,CAAC;SACvE;QAAC,OAAO,KAAU,EAAE;YACjB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAA+B,4BAAA,EAAA,QAAQ,CAAE,CAAA,EAAE,KAAK,CAAC,CAAC;AACpE,YAAA,MAAM,KAAK,CAAC;SACf;KACJ;AAED;;AAEG;AACI,IAAA,gBAAgB,CAAC,IAAgB,EAAA;AACpC,QAAA,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;;QAGvB,IAAI,GAAG,GAAG,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,SAAS,EAAE;YAC7C,OAAO,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;SACjD;;AAGD,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;QACnD,MAAM,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC;QAEtE,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;AAChD,QAAA,IAAI,CAAC,eAAe,GAAG,GAAG,CAAC;AAE3B,QAAA,OAAO,aAAa,CAAC;KACxB;AAED;;AAEG;AACI,IAAA,SAAS,CAAC,QAAgB,EAAA;QAC7B,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;KACrC;AAED;;AAEG;IACI,aAAa,GAAA;QAChB,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;KAC5C;AAED;;AAEG;AACI,IAAA,cAAc,CAAC,QAAgB,EAAA;QAClC,OAAO,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;KACzC;AAED;;AAEG;IACI,WAAW,GAAA;QACd,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC,CAAC;KAChD;AAED;;AAEG;AACI,IAAA,WAAW,CACd,QAAgB,EAChB,aAAqB,EACrB,OAAgB,EAAA;QAEhB,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;AAC7C,QAAA,IAAI,CAAC,KAAK;YAAE,OAAO;QAEnB,KAAK,CAAC,cAAc,EAAE,CAAC;AACvB,QAAA,KAAK,CAAC,kBAAkB,IAAI,aAAa,CAAC;AAC1C,QAAA,KAAK,CAAC,oBAAoB;AACtB,YAAA,KAAK,CAAC,kBAAkB,GAAG,KAAK,CAAC,cAAc,CAAC;AACpD,QAAA,KAAK,CAAC,YAAY,GAAG,IAAI,IAAI,EAAE,CAAC;QAEhC,IAAI,CAAC,OAAO,EAAE;YACV,KAAK,CAAC,UAAU,EAAE,CAAC;SACtB;;QAGD,MAAM,SAAS,GAAG,KAAK,CAAC,UAAU,GAAG,KAAK,CAAC,cAAc,CAAC;QAC1D,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CACtB,CAAC,EACD,GAAG,GAAG,CAAC,KAAK,CAAC,oBAAoB,GAAG,EAAE,IAAI,GAAG,CAChD,CAAC;AACF,QAAA,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,GAAG,SAAS,GAAG,GAAG,CAAC,CAAC;QACtD,KAAK,CAAC,gBAAgB,GAAG,CAAC,SAAS,GAAG,UAAU,IAAI,CAAC,CAAC;;QAGtD,IACI,aAAa,GAAG,IAAI,CAAC,MAAM,CAAC,qBAAqB,CAAC,gBAAgB,EACpE;YACE,IAAI,CAAC,eAAe,CAChBA,2BAAe,CAAC,8BAA8B,EAC9C,QAAQ,EACR;gBACI,aAAa;AACb,gBAAA,SAAS,EACL,IAAI,CAAC,MAAM,CAAC,qBAAqB,CAAC,gBAAgB;AACzD,aAAA,CACJ,CAAC;SACL;KACJ;AAED;;AAEG;AACK,IAAA,cAAc,CAAC,MAAkB,EAAA;AACrC,QAAA,IAAI,CAAC,MAAM,CAAC,EAAE,IAAI,OAAO,MAAM,CAAC,EAAE,KAAK,QAAQ,EAAE;AAC7C,YAAA,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC;SACzD;AAED,QAAA,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,OAAO,MAAM,CAAC,IAAI,KAAK,QAAQ,EAAE;AACjD,YAAA,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;SAC3D;AAED,QAAA,IAAI,CAAC,MAAM,CAAC,OAAO,IAAI,OAAO,MAAM,CAAC,OAAO,KAAK,QAAQ,EAAE;AACvD,YAAA,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC;SAC9D;AAED,QAAA,IAAI,CAAC,MAAM,CAAC,MAAM,CAACF,sBAAU,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE;YAClD,MAAM,IAAI,KAAK,CAAC,CAAA,qBAAA,EAAwB,MAAM,CAAC,IAAI,CAAE,CAAA,CAAC,CAAC;SAC1D;AAED,QAAA,IAAI,CAAC,MAAM,CAAC,MAAM,CAACG,0BAAc,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE;YAC1D,MAAM,IAAI,KAAK,CAAC,CAAA,yBAAA,EAA4B,MAAM,CAAC,QAAQ,CAAE,CAAA,CAAC,CAAC;SAClE;AAED,QAAA,IAAI,OAAO,MAAM,CAAC,OAAO,KAAK,UAAU,EAAE;AACtC,YAAA,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC;SACzD;AAED,QAAA,IAAI,MAAM,CAAC,gBAAgB,IAAI,CAAC,EAAE;AAC9B,YAAA,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAC;SAC/D;KACJ;AAED;;AAEG;IACK,qBAAqB,GAAA;AACzB,QAAA,IAAI,CAAC,eAAe,GAAG,CAAC,CAAC;KAC5B;AAED;;AAEG;AACK,IAAA,eAAe,CACnB,IAAqB,EACrB,QAAgB,EAChB,IAAU,EAAA;AAEV,QAAA,MAAM,KAAK,GAAgB;YACvB,IAAI;YACJ,QAAQ;YACR,SAAS,EAAE,IAAI,IAAI,EAAE;YACrB,IAAI;SACP,CAAC;AAEF,QAAA,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;KAC1B;AAED;;AAEG;IACI,gBAAgB,GAAA;AAMnB,QAAA,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;QACvC,MAAM,aAAa,GAA2B,EAAE,CAAC;QACjD,IAAI,eAAe,GAAG,CAAC,CAAC;QACxB,IAAI,kBAAkB,GAAG,CAAC,CAAC;;QAG3B,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,IAAI,KAAI;AACzC,YAAA,aAAa,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC;AACzC,SAAC,CAAC,CAAC;;QAGH,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,KAAK,KAAI;AAC/B,YAAA,eAAe,IAAI,KAAK,CAAC,cAAc,CAAC;AACxC,YAAA,kBAAkB,IAAI,KAAK,CAAC,kBAAkB,CAAC;AACnD,SAAC,CAAC,CAAC;QAEH,OAAO;YACH,YAAY;YACZ,aAAa;AACb,YAAA,oBAAoB,EAChB,eAAe,GAAG,CAAC,GAAG,kBAAkB,GAAG,eAAe,GAAG,CAAC;YAClE,eAAe;SAClB,CAAC;KACL;AACJ;;;;"}