xypriss 1.1.4 → 1.2.1

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 (106) hide show
  1. package/dist/cjs/src/index.js +56 -0
  2. package/dist/cjs/src/index.js.map +1 -1
  3. package/dist/cjs/src/plugins/modules/PluginRegistry.js +6 -38
  4. package/dist/cjs/src/plugins/modules/PluginRegistry.js.map +1 -1
  5. package/dist/cjs/src/plugins/modules/builtin/JWTAuthPlugin.js +1 -1
  6. package/dist/cjs/src/plugins/modules/builtin/JWTAuthPlugin.js.map +1 -1
  7. package/dist/cjs/src/plugins/modules/builtin/SmartCachePlugin.js +1 -1
  8. package/dist/cjs/src/plugins/modules/builtin/SmartCachePlugin.js.map +1 -1
  9. package/dist/cjs/src/plugins/modules/core/CachePlugin.js +4 -4
  10. package/dist/cjs/src/plugins/modules/core/CachePlugin.js.map +1 -1
  11. package/dist/cjs/src/plugins/modules/core/PerformancePlugin.js +2 -2
  12. package/dist/cjs/src/plugins/modules/core/PerformancePlugin.js.map +1 -1
  13. package/dist/cjs/src/plugins/modules/core/SecurityPlugin.js +2 -2
  14. package/dist/cjs/src/plugins/modules/core/SecurityPlugin.js.map +1 -1
  15. package/dist/cjs/src/plugins/modules/index.js +304 -0
  16. package/dist/cjs/src/plugins/modules/index.js.map +1 -0
  17. package/dist/cjs/src/plugins/modules/network/builtin/CompressionPlugin.js +410 -0
  18. package/dist/cjs/src/plugins/modules/network/builtin/CompressionPlugin.js.map +1 -0
  19. package/dist/cjs/src/plugins/modules/network/builtin/ConnectionPlugin.js +797 -0
  20. package/dist/cjs/src/plugins/modules/network/builtin/ConnectionPlugin.js.map +1 -0
  21. package/dist/cjs/src/plugins/modules/network/builtin/ProxyPlugin.js +409 -0
  22. package/dist/cjs/src/plugins/modules/network/builtin/ProxyPlugin.js.map +1 -0
  23. package/dist/cjs/src/plugins/modules/network/builtin/RateLimitPlugin.js +606 -0
  24. package/dist/cjs/src/plugins/modules/network/builtin/RateLimitPlugin.js.map +1 -0
  25. package/dist/cjs/src/plugins/modules/network/core/NetworkPlugin.js +225 -0
  26. package/dist/cjs/src/plugins/modules/network/core/NetworkPlugin.js.map +1 -0
  27. package/dist/cjs/src/plugins/modules/network/core/NetworkPluginFactory.js +40 -0
  28. package/dist/cjs/src/plugins/modules/network/core/NetworkPluginFactory.js.map +1 -0
  29. package/dist/cjs/src/plugins/modules/network/index.js +120 -0
  30. package/dist/cjs/src/plugins/modules/network/index.js.map +1 -0
  31. package/dist/cjs/src/plugins/modules/network/types/NetworkTypes.js +24 -0
  32. package/dist/cjs/src/plugins/modules/network/types/NetworkTypes.js.map +1 -0
  33. package/dist/cjs/src/plugins/modules/network/utils/NetworkPluginUtils.js +63 -0
  34. package/dist/cjs/src/plugins/modules/network/utils/NetworkPluginUtils.js.map +1 -0
  35. package/dist/cjs/src/plugins/modules/types/PluginTypes.js +1 -0
  36. package/dist/cjs/src/plugins/modules/types/PluginTypes.js.map +1 -1
  37. package/dist/cjs/src/server/FastServer.js +111 -2
  38. package/dist/cjs/src/server/FastServer.js.map +1 -1
  39. package/dist/cjs/src/server/conf/networkConnectionConf.js +25 -0
  40. package/dist/cjs/src/server/conf/networkConnectionConf.js.map +1 -0
  41. package/dist/cjs/src/server/conf/proxyConfig.js +23 -0
  42. package/dist/cjs/src/server/conf/proxyConfig.js.map +1 -0
  43. package/dist/cjs/src/server/conf/rateLimitConfig.js +35 -0
  44. package/dist/cjs/src/server/conf/rateLimitConfig.js.map +1 -0
  45. package/dist/cjs/src/server/const/default.js +6 -0
  46. package/dist/cjs/src/server/const/default.js.map +1 -1
  47. package/dist/cjs/src/server/handlers/NotFoundHandler.js +217 -0
  48. package/dist/cjs/src/server/handlers/NotFoundHandler.js.map +1 -0
  49. package/dist/cjs/src/server/handlers/templates/notFoundTemp.js +163 -0
  50. package/dist/cjs/src/server/handlers/templates/notFoundTemp.js.map +1 -0
  51. package/dist/esm/mods/security/src/components/cache/UFSIMC.js +5 -5
  52. package/dist/esm/mods/security/src/components/cache/UFSIMC.js.map +1 -1
  53. package/dist/esm/mods/security/src/components/cache/cacheSys.utils.js +3 -3
  54. package/dist/esm/mods/security/src/components/cache/cacheSys.utils.js.map +1 -1
  55. package/dist/esm/src/index.js +18 -0
  56. package/dist/esm/src/index.js.map +1 -1
  57. package/dist/esm/src/plugins/modules/PluginRegistry.js +6 -38
  58. package/dist/esm/src/plugins/modules/PluginRegistry.js.map +1 -1
  59. package/dist/esm/src/plugins/modules/builtin/JWTAuthPlugin.js +1 -1
  60. package/dist/esm/src/plugins/modules/builtin/JWTAuthPlugin.js.map +1 -1
  61. package/dist/esm/src/plugins/modules/builtin/SmartCachePlugin.js +1 -1
  62. package/dist/esm/src/plugins/modules/builtin/SmartCachePlugin.js.map +1 -1
  63. package/dist/esm/src/plugins/modules/core/CachePlugin.js +4 -4
  64. package/dist/esm/src/plugins/modules/core/CachePlugin.js.map +1 -1
  65. package/dist/esm/src/plugins/modules/core/PerformancePlugin.js +2 -2
  66. package/dist/esm/src/plugins/modules/core/PerformancePlugin.js.map +1 -1
  67. package/dist/esm/src/plugins/modules/core/SecurityPlugin.js +2 -2
  68. package/dist/esm/src/plugins/modules/core/SecurityPlugin.js.map +1 -1
  69. package/dist/esm/src/plugins/modules/index.js +275 -0
  70. package/dist/esm/src/plugins/modules/index.js.map +1 -0
  71. package/dist/esm/src/plugins/modules/network/builtin/CompressionPlugin.js +389 -0
  72. package/dist/esm/src/plugins/modules/network/builtin/CompressionPlugin.js.map +1 -0
  73. package/dist/esm/src/plugins/modules/network/builtin/ConnectionPlugin.js +776 -0
  74. package/dist/esm/src/plugins/modules/network/builtin/ConnectionPlugin.js.map +1 -0
  75. package/dist/esm/src/plugins/modules/network/builtin/ProxyPlugin.js +407 -0
  76. package/dist/esm/src/plugins/modules/network/builtin/ProxyPlugin.js.map +1 -0
  77. package/dist/esm/src/plugins/modules/network/builtin/RateLimitPlugin.js +585 -0
  78. package/dist/esm/src/plugins/modules/network/builtin/RateLimitPlugin.js.map +1 -0
  79. package/dist/esm/src/plugins/modules/network/core/NetworkPlugin.js +223 -0
  80. package/dist/esm/src/plugins/modules/network/core/NetworkPlugin.js.map +1 -0
  81. package/dist/esm/src/plugins/modules/network/core/NetworkPluginFactory.js +38 -0
  82. package/dist/esm/src/plugins/modules/network/core/NetworkPluginFactory.js.map +1 -0
  83. package/dist/esm/src/plugins/modules/network/index.js +109 -0
  84. package/dist/esm/src/plugins/modules/network/index.js.map +1 -0
  85. package/dist/esm/src/plugins/modules/network/types/NetworkTypes.js +24 -0
  86. package/dist/esm/src/plugins/modules/network/types/NetworkTypes.js.map +1 -0
  87. package/dist/esm/src/plugins/modules/network/utils/NetworkPluginUtils.js +61 -0
  88. package/dist/esm/src/plugins/modules/network/utils/NetworkPluginUtils.js.map +1 -0
  89. package/dist/esm/src/plugins/modules/types/PluginTypes.js +1 -0
  90. package/dist/esm/src/plugins/modules/types/PluginTypes.js.map +1 -1
  91. package/dist/esm/src/server/FastServer.js +111 -2
  92. package/dist/esm/src/server/FastServer.js.map +1 -1
  93. package/dist/esm/src/server/conf/networkConnectionConf.js +23 -0
  94. package/dist/esm/src/server/conf/networkConnectionConf.js.map +1 -0
  95. package/dist/esm/src/server/conf/proxyConfig.js +21 -0
  96. package/dist/esm/src/server/conf/proxyConfig.js.map +1 -0
  97. package/dist/esm/src/server/conf/rateLimitConfig.js +33 -0
  98. package/dist/esm/src/server/conf/rateLimitConfig.js.map +1 -0
  99. package/dist/esm/src/server/const/default.js +6 -0
  100. package/dist/esm/src/server/const/default.js.map +1 -1
  101. package/dist/esm/src/server/handlers/NotFoundHandler.js +194 -0
  102. package/dist/esm/src/server/handlers/NotFoundHandler.js.map +1 -0
  103. package/dist/esm/src/server/handlers/templates/notFoundTemp.js +161 -0
  104. package/dist/esm/src/server/handlers/templates/notFoundTemp.js.map +1 -0
  105. package/dist/index.d.ts +5085 -14
  106. package/package.json +8 -7
@@ -0,0 +1,304 @@
1
+ 'use strict';
2
+
3
+ var JWTAuthPlugin = require('./builtin/JWTAuthPlugin.js');
4
+ var ResponseTimePlugin = require('./builtin/ResponseTimePlugin.js');
5
+ var SmartCachePlugin = require('./builtin/SmartCachePlugin.js');
6
+ var PluginEngine = require('./PluginEngine.js');
7
+ var PluginRegistry = require('./PluginRegistry.js');
8
+ var PluginTypes = require('./types/PluginTypes.js');
9
+ var SecurityPlugin = require('./core/SecurityPlugin.js');
10
+ require('../../../mods/security/src/components/fortified-function/core/fortified-function-core.js');
11
+ require('../../../mods/security/src/components/fortified-function/core/fortified-config.js');
12
+ require('../../../mods/security/src/components/fortified-function/core/fortified-logger.js');
13
+ require('events');
14
+ require('../../../mods/security/src/components/fortified-function/serializer/safe-serializer.js');
15
+ require('nehoid');
16
+ require('../../../mods/security/src/utils/memory/index.js');
17
+ require('crypto');
18
+ require('../../../mods/security/src/types/secure-memory.js');
19
+ require('../../../mods/security/src/components/secure-string/advanced/entropy-analyzer.js');
20
+ require('../../../mods/security/src/components/secure-string/advanced/quantum-safe.js');
21
+ require('../../../mods/security/src/components/secure-string/advanced/performance-monitor.js');
22
+ require('../../../mods/security/src/core/hash/hash-core.js');
23
+ require('../../../mods/security/src/core/hash/hash-types.js');
24
+ require('../../../mods/security/src/core/hash/hash-security.js');
25
+ require('../../../mods/security/src/core/hash/hash-advanced.js');
26
+ require('../../../mods/security/src/algorithms/hash-algorithms.js');
27
+ require('../../../mods/security/src/core/random/random-types.js');
28
+ require('../../../mods/security/src/core/random/random-sources.js');
29
+ require('nehonix-uri-processor');
30
+ require('../../../mods/security/src/types.js');
31
+ require('../../../mods/security/src/components/secure-array/utils/id-generator.js');
32
+ require('../../../mods/security/src/index.js');
33
+ require('../../../shared/logger/Logger.js');
34
+ require('../../../mods/security/src/components/fortified-function/UFA/ultra-fast-allocator.js');
35
+ require('argon2');
36
+ require('child_process');
37
+ require('https');
38
+ require('../../../mods/security/src/components/runtime-verification.js');
39
+ require('../../../mods/security/src/components/tamper-evident-logging.js');
40
+ require('../../../mods/security/src/core/keys/keys-types.js');
41
+ require('../../../mods/security/src/core/keys/keys-logger.js');
42
+ require('../../../mods/security/src/core/keys/keys-utils.js');
43
+ require('../../../mods/security/src/core/keys/algorithms/mods/PBKDF2Algo.js');
44
+ require('../../../mods/security/src/core/password/index.js');
45
+ require('systeminformation');
46
+ require('pidusage');
47
+ require('node-os-utils');
48
+ require('../../../mods/security/src/components/cache/index.js');
49
+ require('perf_hooks');
50
+ var NetworkTypes = require('./network/types/NetworkTypes.js');
51
+ require('fs');
52
+ require('path');
53
+ require('xypriss-security');
54
+ require('zlib');
55
+ require('compression');
56
+ require('http-proxy-middleware');
57
+ require('express-rate-limit');
58
+ require('ioredis');
59
+ require('util');
60
+ require('../../encryption/EncryptionService.js');
61
+
62
+ /**
63
+ * XyPrissJS Ultra-Fast Plugin System
64
+ *
65
+ * Comprehensive plugin system exports for ultra-fast performance
66
+ * with <1ms execution overhead and enterprise-grade security.
67
+ */
68
+ /**
69
+ * Plugin system version and metadata
70
+ */
71
+ const PLUGIN_SYSTEM_VERSION = "1.0.0";
72
+ const PLUGIN_SYSTEM_NAME = "XyPrissJS Ultra-Fast Plugin System";
73
+ /**
74
+ * Performance targets achieved by the plugin system
75
+ */
76
+ const PERFORMANCE_TARGETS = {
77
+ PLUGIN_EXECUTION_OVERHEAD: "<1ms",
78
+ SECURITY_PLUGIN_EXECUTION: "<2ms",
79
+ CACHE_PLUGIN_EXECUTION: "<0.5ms",
80
+ PERFORMANCE_PLUGIN_EXECUTION: "<0.3ms",
81
+ PLUGIN_REGISTRATION: "<0.1ms",
82
+ };
83
+ /**
84
+ * Default plugin configurations
85
+ */
86
+ const DEFAULT_PLUGIN_CONFIG = {
87
+ maxExecutionTime: 1000, // 1 second default timeout
88
+ enableProfiling: true,
89
+ enableCaching: true,
90
+ enableEncryption: false,
91
+ enableAuditLogging: false,
92
+ securityLevel: "basic",
93
+ customSettings: {},
94
+ };
95
+ /**
96
+ * Plugin system utilities
97
+ */
98
+ class PluginSystemUtils {
99
+ /**
100
+ * Validate plugin configuration
101
+ */
102
+ static validatePluginConfig(config) {
103
+ if (!config.id || typeof config.id !== "string") {
104
+ return false;
105
+ }
106
+ if (!config.name || typeof config.name !== "string") {
107
+ return false;
108
+ }
109
+ if (!config.version || typeof config.version !== "string") {
110
+ return false;
111
+ }
112
+ if (typeof config.execute !== "function") {
113
+ return false;
114
+ }
115
+ return true;
116
+ }
117
+ /**
118
+ * Create plugin performance summary
119
+ */
120
+ static createPerformanceSummary(stats) {
121
+ if (!stats || stats.length === 0) {
122
+ return {
123
+ totalPlugins: 0,
124
+ averageExecutionTime: 0,
125
+ totalExecutions: 0,
126
+ successRate: 100,
127
+ };
128
+ }
129
+ const totalExecutions = stats.reduce((sum, stat) => sum + stat.executionCount, 0);
130
+ const totalExecutionTime = stats.reduce((sum, stat) => sum + stat.totalExecutionTime, 0);
131
+ const totalErrors = stats.reduce((sum, stat) => sum + stat.errorCount, 0);
132
+ return {
133
+ totalPlugins: stats.length,
134
+ averageExecutionTime: totalExecutions > 0 ? totalExecutionTime / totalExecutions : 0,
135
+ totalExecutions,
136
+ successRate: totalExecutions > 0
137
+ ? ((totalExecutions - totalErrors) / totalExecutions) * 100
138
+ : 100,
139
+ };
140
+ }
141
+ /**
142
+ * Generate plugin health report
143
+ */
144
+ static generateHealthReport(registryStats, engineStats) {
145
+ const isHealthy = registryStats.totalPlugins > 0 &&
146
+ registryStats.averageExecutionTime < 10 && // 10ms threshold
147
+ engineStats.circuitBreakersOpen === 0;
148
+ return {
149
+ status: isHealthy ? "healthy" : "degraded",
150
+ timestamp: new Date().toISOString(),
151
+ metrics: {
152
+ totalPlugins: registryStats.totalPlugins,
153
+ averageExecutionTime: registryStats.averageExecutionTime,
154
+ circuitBreakersOpen: engineStats.circuitBreakersOpen,
155
+ contextPoolSize: engineStats.contextPoolSize,
156
+ warmedUpPlugins: engineStats.warmedUpPlugins,
157
+ },
158
+ recommendations: this.generateRecommendations(registryStats, engineStats),
159
+ };
160
+ }
161
+ /**
162
+ * Generate performance recommendations
163
+ */
164
+ static generateRecommendations(registryStats, engineStats) {
165
+ const recommendations = [];
166
+ if (registryStats.averageExecutionTime > 5) {
167
+ recommendations.push("Consider optimizing slow plugins or increasing timeout values");
168
+ }
169
+ if (engineStats.circuitBreakersOpen > 0) {
170
+ recommendations.push("Review and fix failing plugins to restore full functionality");
171
+ }
172
+ if (engineStats.contextPoolSize < 10) {
173
+ recommendations.push("Consider increasing context pool size for better performance");
174
+ }
175
+ if (registryStats.totalPlugins === 0) {
176
+ recommendations.push("Initialize built-in plugins to enable enhanced functionality");
177
+ }
178
+ if (recommendations.length === 0) {
179
+ recommendations.push("Plugin system is performing optimally");
180
+ }
181
+ return recommendations;
182
+ }
183
+ }
184
+ /**
185
+ * Plugin system factory for easy initialization
186
+ */
187
+ class PluginSystemFactory {
188
+ /**
189
+ * Create a pre-configured plugin registry
190
+ */
191
+ static createRegistry(cache, cluster, config) {
192
+ return new PluginRegistry.PluginRegistry(cache, cluster, config);
193
+ }
194
+ /**
195
+ * Create a pre-configured plugin engine
196
+ */
197
+ static createEngine(registry, cache, cluster) {
198
+ return new PluginEngine.PluginEngine(registry, cache, cluster);
199
+ }
200
+ /**
201
+ * Create all built-in plugins
202
+ */
203
+ static createBuiltinPlugins() {
204
+ return [
205
+ new JWTAuthPlugin.JWTAuthPlugin(),
206
+ new ResponseTimePlugin.ResponseTimePlugin(),
207
+ new SmartCachePlugin.SmartCachePlugin(),
208
+ ];
209
+ }
210
+ /**
211
+ * Initialize complete plugin system
212
+ */
213
+ static async initializeSystem(cache, cluster, config) {
214
+ const registry = this.createRegistry(cache, cluster, config);
215
+ const engine = this.createEngine(registry, cache, cluster);
216
+ const plugins = this.createBuiltinPlugins();
217
+ // Register all built-in plugins
218
+ for (const plugin of plugins) {
219
+ await registry.register(plugin);
220
+ }
221
+ return { registry, engine, plugins };
222
+ }
223
+ }
224
+ /**
225
+ * Plugin development helpers
226
+ */
227
+ class PluginDevelopmentHelpers {
228
+ /**
229
+ * Create a basic plugin template
230
+ */
231
+ static createPluginTemplate(id, name, type, priority = PluginTypes.PluginPriority.NORMAL) {
232
+ return {
233
+ id,
234
+ name,
235
+ version: "1.0.0",
236
+ type,
237
+ priority,
238
+ isAsync: true,
239
+ isCacheable: false,
240
+ maxExecutionTime: 1000,
241
+ execute: async (context) => {
242
+ // Plugin implementation goes here
243
+ return {
244
+ success: true,
245
+ executionTime: 0,
246
+ shouldContinue: true,
247
+ };
248
+ },
249
+ };
250
+ }
251
+ /**
252
+ * Validate plugin implementation
253
+ */
254
+ static validatePlugin(plugin) {
255
+ const errors = [];
256
+ if (!plugin.id)
257
+ errors.push("Plugin must have an id");
258
+ if (!plugin.name)
259
+ errors.push("Plugin must have a name");
260
+ if (!plugin.version)
261
+ errors.push("Plugin must have a version");
262
+ if (!plugin.type)
263
+ errors.push("Plugin must have a type");
264
+ if (!plugin.execute)
265
+ errors.push("Plugin must have an execute method");
266
+ if (typeof plugin.execute !== "function")
267
+ errors.push("Plugin execute must be a function");
268
+ return {
269
+ valid: errors.length === 0,
270
+ errors,
271
+ };
272
+ }
273
+ }
274
+
275
+ exports.JWTAuthPlugin = JWTAuthPlugin.JWTAuthPlugin;
276
+ exports.ResponseTimePlugin = ResponseTimePlugin.ResponseTimePlugin;
277
+ exports.SmartCachePlugin = SmartCachePlugin.SmartCachePlugin;
278
+ exports.PluginEngine = PluginEngine.PluginEngine;
279
+ exports.PluginRegistry = PluginRegistry.PluginRegistry;
280
+ Object.defineProperty(exports, 'PluginEventType', {
281
+ enumerable: true,
282
+ get: function () { return PluginTypes.PluginEventType; }
283
+ });
284
+ Object.defineProperty(exports, 'PluginPriority', {
285
+ enumerable: true,
286
+ get: function () { return PluginTypes.PluginPriority; }
287
+ });
288
+ Object.defineProperty(exports, 'PluginType', {
289
+ enumerable: true,
290
+ get: function () { return PluginTypes.PluginType; }
291
+ });
292
+ exports.SecurityPluginBase = SecurityPlugin.SecurityPlugin;
293
+ Object.defineProperty(exports, 'NetworkCategory', {
294
+ enumerable: true,
295
+ get: function () { return NetworkTypes.NetworkCategory; }
296
+ });
297
+ exports.DEFAULT_PLUGIN_CONFIG = DEFAULT_PLUGIN_CONFIG;
298
+ exports.PERFORMANCE_TARGETS = PERFORMANCE_TARGETS;
299
+ exports.PLUGIN_SYSTEM_NAME = PLUGIN_SYSTEM_NAME;
300
+ exports.PLUGIN_SYSTEM_VERSION = PLUGIN_SYSTEM_VERSION;
301
+ exports.PluginDevelopmentHelpers = PluginDevelopmentHelpers;
302
+ exports.PluginSystemFactory = PluginSystemFactory;
303
+ exports.PluginSystemUtils = PluginSystemUtils;
304
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["../../../../../src/plugins/modules/index.ts"],"sourcesContent":[null],"names":["PluginRegistry","PluginEngine","JWTAuthPlugin","ResponseTimePlugin","SmartCachePlugin","PluginPriority"],"mappings":"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"}