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