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,223 @@
1
+ import { performance } from 'perf_hooks';
2
+ import { PluginType, PluginPriority } from '../../types/PluginTypes.js';
3
+
4
+ /**
5
+ * Network Plugin Base Class
6
+ *
7
+ * Abstract base class for all network-related plugins in XyPriss
8
+ * Provides common functionality and interfaces for network operations
9
+ */
10
+ /**
11
+ * Abstract base class for network plugins
12
+ * Provides common functionality and enforces network plugin contracts
13
+ */
14
+ class NetworkPlugin {
15
+ constructor(config = {}) {
16
+ // Base plugin properties
17
+ this.type = PluginType.NETWORK;
18
+ this.priority = PluginPriority.NORMAL;
19
+ this.isAsync = true;
20
+ this.isCacheable = false; // Network operations typically shouldn't be cached
21
+ this.maxExecutionTime = 1000; // 1ms max for network operations
22
+ this.isInitialized = false;
23
+ this.config = config;
24
+ this.healthStatus = {
25
+ healthy: true,
26
+ status: "healthy",
27
+ metrics: {
28
+ responseTime: 0,
29
+ errorRate: 0,
30
+ throughput: 0,
31
+ connections: 0,
32
+ },
33
+ lastCheck: new Date(),
34
+ };
35
+ this.performanceMetrics = {
36
+ totalExecutions: 0,
37
+ totalExecutionTime: 0,
38
+ averageExecutionTime: 0,
39
+ errorCount: 0,
40
+ lastExecution: new Date(),
41
+ };
42
+ }
43
+ /**
44
+ * Initialize the network plugin
45
+ */
46
+ async initialize() {
47
+ if (this.isInitialized) {
48
+ return;
49
+ }
50
+ try {
51
+ // Validate configuration
52
+ if (this.validateNetworkConfig &&
53
+ !this.validateNetworkConfig(this.config)) {
54
+ throw new Error(`Invalid configuration for network plugin ${this.id}`);
55
+ }
56
+ // Perform plugin-specific initialization
57
+ await this.initializeNetwork();
58
+ // Perform initial health check
59
+ await this.updateHealthStatus();
60
+ this.isInitialized = true;
61
+ }
62
+ catch (error) {
63
+ throw new Error(`Failed to initialize network plugin ${this.id}: ${error.message}`);
64
+ }
65
+ }
66
+ /**
67
+ * Execute the plugin (implements BasePlugin interface)
68
+ */
69
+ async execute(context) {
70
+ const startTime = performance.now();
71
+ try {
72
+ // Convert to network execution context
73
+ const networkContext = this.createNetworkContext(context);
74
+ // Execute network-specific logic
75
+ const result = await this.executeNetwork(networkContext);
76
+ // Update performance metrics
77
+ const executionTime = performance.now() - startTime;
78
+ this.updatePerformanceMetrics(executionTime, true);
79
+ return {
80
+ success: result.success,
81
+ executionTime,
82
+ shouldContinue: result.shouldContinue,
83
+ data: result.data,
84
+ error: result.error,
85
+ };
86
+ }
87
+ catch (error) {
88
+ const executionTime = performance.now() - startTime;
89
+ this.updatePerformanceMetrics(executionTime, false);
90
+ return {
91
+ success: false,
92
+ executionTime,
93
+ shouldContinue: true, // Continue with other plugins on network errors
94
+ error,
95
+ };
96
+ }
97
+ }
98
+ /**
99
+ * Plugin-specific initialization (to be overridden by subclasses)
100
+ */
101
+ async initializeNetwork() {
102
+ // Default implementation - can be overridden
103
+ }
104
+ /**
105
+ * Create network execution context from base context
106
+ */
107
+ createNetworkContext(context) {
108
+ const { req } = context;
109
+ return {
110
+ ...context,
111
+ connection: {
112
+ remoteAddress: req.ip || req.socket?.remoteAddress,
113
+ remotePort: req.socket?.remotePort,
114
+ localAddress: req.socket?.localAddress,
115
+ localPort: req.socket?.localPort,
116
+ encrypted: req.secure || false,
117
+ protocol: req.httpVersion
118
+ ? `http/${req.httpVersion}`
119
+ : "http/1.1",
120
+ },
121
+ timing: {
122
+ startTime: Date.now(),
123
+ },
124
+ networkMetrics: {
125
+ bytesReceived: parseInt(req.get("content-length") || "0"),
126
+ bytesSent: 0, // Will be updated after response
127
+ },
128
+ };
129
+ }
130
+ /**
131
+ * Update performance metrics
132
+ */
133
+ updatePerformanceMetrics(executionTime, success) {
134
+ this.performanceMetrics.totalExecutions++;
135
+ this.performanceMetrics.totalExecutionTime += executionTime;
136
+ this.performanceMetrics.averageExecutionTime =
137
+ this.performanceMetrics.totalExecutionTime /
138
+ this.performanceMetrics.totalExecutions;
139
+ if (!success) {
140
+ this.performanceMetrics.errorCount++;
141
+ }
142
+ this.performanceMetrics.lastExecution = new Date();
143
+ }
144
+ /**
145
+ * Update health status
146
+ */
147
+ async updateHealthStatus() {
148
+ try {
149
+ if (this.checkNetworkHealth) {
150
+ this.healthStatus = await this.checkNetworkHealth();
151
+ }
152
+ else {
153
+ // Default health check based on performance metrics
154
+ const errorRate = this.performanceMetrics.errorCount /
155
+ Math.max(this.performanceMetrics.totalExecutions, 1);
156
+ this.healthStatus = {
157
+ healthy: errorRate < 0.1 &&
158
+ this.performanceMetrics.averageExecutionTime <
159
+ this.maxExecutionTime,
160
+ status: errorRate < 0.05
161
+ ? "healthy"
162
+ : errorRate < 0.1
163
+ ? "degraded"
164
+ : "unhealthy",
165
+ metrics: {
166
+ responseTime: this.performanceMetrics.averageExecutionTime,
167
+ errorRate,
168
+ throughput: this.performanceMetrics.totalExecutions,
169
+ connections: 0, // Plugin-specific
170
+ },
171
+ lastCheck: new Date(),
172
+ };
173
+ }
174
+ }
175
+ catch (error) {
176
+ this.healthStatus = {
177
+ healthy: false,
178
+ status: "unhealthy",
179
+ metrics: {
180
+ responseTime: 0,
181
+ errorRate: 1,
182
+ throughput: 0,
183
+ connections: 0,
184
+ },
185
+ issues: [`Health check failed: ${error.message}`],
186
+ lastCheck: new Date(),
187
+ };
188
+ }
189
+ }
190
+ /**
191
+ * Get plugin configuration
192
+ */
193
+ getConfig() {
194
+ return { ...this.config };
195
+ }
196
+ /**
197
+ * Update plugin configuration
198
+ */
199
+ updateConfig(newConfig) {
200
+ this.config = { ...this.config, ...newConfig };
201
+ }
202
+ /**
203
+ * Get health status
204
+ */
205
+ getHealthStatus() {
206
+ return { ...this.healthStatus };
207
+ }
208
+ /**
209
+ * Get performance metrics
210
+ */
211
+ getPerformanceMetrics() {
212
+ return { ...this.performanceMetrics };
213
+ }
214
+ /**
215
+ * Cleanup resources (to be overridden by subclasses if needed)
216
+ */
217
+ async destroy() {
218
+ this.isInitialized = false;
219
+ }
220
+ }
221
+
222
+ export { NetworkPlugin };
223
+ //# sourceMappingURL=NetworkPlugin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NetworkPlugin.js","sources":["../../../../../../../src/plugins/modules/network/core/NetworkPlugin.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
@@ -0,0 +1,38 @@
1
+ import { CompressionPlugin } from '../builtin/CompressionPlugin.js';
2
+ import { ConnectionPlugin } from '../builtin/ConnectionPlugin.js';
3
+ import { NetworkCategory } from '../types/NetworkTypes.js';
4
+
5
+ /**
6
+ * Network plugin factory functions
7
+ */
8
+ const NetworkPluginFactory = {
9
+ /**
10
+ * Create a connection management plugin
11
+ */
12
+ createConnectionPlugin: (config) => new ConnectionPlugin(config),
13
+ /**
14
+ * Create a compression plugin
15
+ */
16
+ createCompressionPlugin: (config) => new CompressionPlugin(config),
17
+ /**
18
+ * Get all available network plugin types
19
+ */
20
+ getAvailablePlugins: () => [
21
+ {
22
+ id: "xypriss.network.connection",
23
+ name: "Connection Management Plugin",
24
+ category: NetworkCategory.CONNECTION,
25
+ description: "HTTP/2, connection pooling, keep-alive management",
26
+ },
27
+ {
28
+ id: "xypriss.network.compression",
29
+ name: "Response Compression Plugin",
30
+ category: NetworkCategory.COMPRESSION,
31
+ description: "Gzip, Brotli, Deflate compression with smart optimization",
32
+ },
33
+ // More plugins will be added here as they're implemented
34
+ ],
35
+ };
36
+
37
+ export { NetworkPluginFactory };
38
+ //# sourceMappingURL=NetworkPluginFactory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NetworkPluginFactory.js","sources":["../../../../../../../src/plugins/modules/network/core/NetworkPluginFactory.ts"],"sourcesContent":[null],"names":[],"mappings":";;;;AAQA;;AAEG;AACU,MAAA,oBAAoB,GAAG;AAChC;;AAEG;IACH,sBAAsB,EAAE,CAAC,MAAyB,KAC9C,IAAI,gBAAgB,CAAC,MAAM,CAAC;AAEhC;;AAEG;IACH,uBAAuB,EAAE,CAAC,MAA0B,KAChD,IAAI,iBAAiB,CAAC,MAAM,CAAC;AAEjC;;AAEG;IACH,mBAAmB,EAAE,MAAM;AACvB,QAAA;AACI,YAAA,EAAE,EAAE,4BAA4B;AAChC,YAAA,IAAI,EAAE,8BAA8B;YACpC,QAAQ,EAAE,eAAe,CAAC,UAAU;AACpC,YAAA,WAAW,EAAE,mDAAmD;AACnE,SAAA;AACD,QAAA;AACI,YAAA,EAAE,EAAE,6BAA6B;AACjC,YAAA,IAAI,EAAE,6BAA6B;YACnC,QAAQ,EAAE,eAAe,CAAC,WAAW;AACrC,YAAA,WAAW,EACP,2DAA2D;AAClE,SAAA;;AAEJ,KAAA;;;;;"}
@@ -0,0 +1,109 @@
1
+ import 'perf_hooks';
2
+ import '../types/PluginTypes.js';
3
+ import { NetworkCategory } from './types/NetworkTypes.js';
4
+ import { ConnectionPlugin } from './builtin/ConnectionPlugin.js';
5
+ import { CompressionPlugin } from './builtin/CompressionPlugin.js';
6
+
7
+ /**
8
+ * XyPriss Network Plugin System
9
+ *
10
+ * Comprehensive network plugin system for advanced networking capabilities
11
+ * including connection management, proxying, compression, rate limiting, and more
12
+ */
13
+ // Core network plugin system
14
+ /**
15
+ * Network plugin system metadata
16
+ */
17
+ const NETWORK_PLUGIN_SYSTEM_VERSION = "1.0.0";
18
+ const NETWORK_PLUGIN_SYSTEM_NAME = "XyPriss Network Plugin System";
19
+ /**
20
+ * Network plugin factory functions
21
+ */
22
+ const NetworkPluginFactory = {
23
+ /**
24
+ * Create a connection management plugin
25
+ */
26
+ createConnectionPlugin: (config) => new ConnectionPlugin(config),
27
+ /**
28
+ * Create a compression plugin
29
+ */
30
+ createCompressionPlugin: (config) => new CompressionPlugin(config),
31
+ /**
32
+ * Get all available network plugin types
33
+ */
34
+ getAvailablePlugins: () => [
35
+ {
36
+ id: "xypriss.network.connection",
37
+ name: "Connection Management Plugin",
38
+ category: NetworkCategory.CONNECTION,
39
+ description: "HTTP/2, connection pooling, keep-alive management",
40
+ },
41
+ {
42
+ id: "xypriss.network.compression",
43
+ name: "Response Compression Plugin",
44
+ category: NetworkCategory.COMPRESSION,
45
+ description: "Gzip, Brotli, Deflate compression with smart optimization",
46
+ },
47
+ // More plugins will be added here as they're implemented
48
+ ],
49
+ };
50
+ /**
51
+ * Network plugin utilities
52
+ */
53
+ const NetworkPluginUtils = {
54
+ /**
55
+ * Validate network plugin configuration
56
+ */
57
+ validateConfig: (pluginType, config) => {
58
+ switch (pluginType) {
59
+ case NetworkCategory.CONNECTION:
60
+ return (new ConnectionPlugin().validateNetworkConfig?.(config) ??
61
+ true);
62
+ case NetworkCategory.COMPRESSION:
63
+ return (new CompressionPlugin().validateNetworkConfig?.(config) ??
64
+ true);
65
+ default:
66
+ return true;
67
+ }
68
+ },
69
+ /**
70
+ * Get default configuration for a plugin type
71
+ */
72
+ getDefaultConfig: (pluginType) => {
73
+ switch (pluginType) {
74
+ case NetworkCategory.CONNECTION:
75
+ return {
76
+ http2: { enabled: false, maxConcurrentStreams: 100 },
77
+ keepAlive: {
78
+ enabled: true,
79
+ timeout: 30000,
80
+ maxRequests: 1000,
81
+ },
82
+ connectionPool: { maxConnections: 1000, timeout: 5000 },
83
+ timeouts: {
84
+ connection: 10000,
85
+ request: 30000,
86
+ response: 30000,
87
+ },
88
+ };
89
+ case NetworkCategory.COMPRESSION:
90
+ return {
91
+ enabled: true,
92
+ algorithms: ["gzip", "deflate"],
93
+ level: 6,
94
+ threshold: 1024,
95
+ contentTypes: [
96
+ "text/*",
97
+ "application/json",
98
+ "application/javascript",
99
+ "application/xml",
100
+ ],
101
+ };
102
+ default:
103
+ return {};
104
+ }
105
+ },
106
+ };
107
+
108
+ export { CompressionPlugin, ConnectionPlugin, NETWORK_PLUGIN_SYSTEM_NAME, NETWORK_PLUGIN_SYSTEM_VERSION, NetworkCategory, NetworkPluginFactory, NetworkPluginUtils };
109
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["../../../../../../src/plugins/modules/network/index.ts"],"sourcesContent":[null],"names":[],"mappings":";;;;;;AAAA;;;;;AAKG;AAEH;AAoBA;;AAEG;AACI,MAAM,6BAA6B,GAAG,QAAQ;AAC9C,MAAM,0BAA0B,GAAG,gCAAgC;AAE1E;;AAEG;AACU,MAAA,oBAAoB,GAAG;AAChC;;AAEG;IACH,sBAAsB,EAAE,CAAC,MAAyB,KAC9C,IAAI,gBAAgB,CAAC,MAAM,CAAC;AAEhC;;AAEG;IACH,uBAAuB,EAAE,CAAC,MAA0B,KAChD,IAAI,iBAAiB,CAAC,MAAM,CAAC;AAEjC;;AAEG;IACH,mBAAmB,EAAE,MAAM;AACvB,QAAA;AACI,YAAA,EAAE,EAAE,4BAA4B;AAChC,YAAA,IAAI,EAAE,8BAA8B;YACpC,QAAQ,EAAE,eAAe,CAAC,UAAU;AACpC,YAAA,WAAW,EAAE,mDAAmD;AACnE,SAAA;AACD,QAAA;AACI,YAAA,EAAE,EAAE,6BAA6B;AACjC,YAAA,IAAI,EAAE,6BAA6B;YACnC,QAAQ,EAAE,eAAe,CAAC,WAAW;AACrC,YAAA,WAAW,EACP,2DAA2D;AAClE,SAAA;;AAEJ,KAAA;EACH;AAEF;;AAEG;AACU,MAAA,kBAAkB,GAAG;AAC9B;;AAEG;AACH,IAAA,cAAc,EAAE,CAAC,UAA2B,EAAE,MAAW,KAAa;QAClE,QAAQ,UAAU;YACd,KAAK,eAAe,CAAC,UAAU;gBAC3B,QACI,IAAI,gBAAgB,EAAE,CAAC,qBAAqB,GAAG,MAAM,CAAC;AACtD,oBAAA,IAAI,EACN;YACN,KAAK,eAAe,CAAC,WAAW;gBAC5B,QACI,IAAI,iBAAiB,EAAE,CAAC,qBAAqB,GAAG,MAAM,CAAC;AACvD,oBAAA,IAAI,EACN;AACN,YAAA;AACI,gBAAA,OAAO,IAAI,CAAC;SACnB;KACJ;AAED;;AAEG;AACH,IAAA,gBAAgB,EAAE,CAAC,UAA2B,KAAyB;QACnE,QAAQ,UAAU;YACd,KAAK,eAAe,CAAC,UAAU;gBAC3B,OAAO;oBACH,KAAK,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,oBAAoB,EAAE,GAAG,EAAE;AACpD,oBAAA,SAAS,EAAE;AACP,wBAAA,OAAO,EAAE,IAAI;AACb,wBAAA,OAAO,EAAE,KAAK;AACd,wBAAA,WAAW,EAAE,IAAI;AACpB,qBAAA;oBACD,cAAc,EAAE,EAAE,cAAc,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE;AACvD,oBAAA,QAAQ,EAAE;AACN,wBAAA,UAAU,EAAE,KAAK;AACjB,wBAAA,OAAO,EAAE,KAAK;AACd,wBAAA,QAAQ,EAAE,KAAK;AAClB,qBAAA;iBACgB,CAAC;YAC1B,KAAK,eAAe,CAAC,WAAW;gBAC5B,OAAO;AACH,oBAAA,OAAO,EAAE,IAAI;AACb,oBAAA,UAAU,EAAE,CAAC,MAAM,EAAE,SAAS,CAAC;AAC/B,oBAAA,KAAK,EAAE,CAAC;AACR,oBAAA,SAAS,EAAE,IAAI;AACf,oBAAA,YAAY,EAAE;wBACV,QAAQ;wBACR,kBAAkB;wBAClB,wBAAwB;wBACxB,iBAAiB;AACpB,qBAAA;iBACiB,CAAC;AAC3B,YAAA;AACI,gBAAA,OAAO,EAAyB,CAAC;SACxC;KACJ;;;;;"}
@@ -0,0 +1,24 @@
1
+ /**
2
+ * Network Plugin Types
3
+ *
4
+ * Type definitions for the XyPriss Network Plugin System
5
+ * Provides interfaces and types for network-related plugins
6
+ */
7
+ /**
8
+ * Network plugin categories for organization
9
+ */
10
+ var NetworkCategory;
11
+ (function (NetworkCategory) {
12
+ NetworkCategory["CONNECTION"] = "connection";
13
+ NetworkCategory["PROXY"] = "proxy";
14
+ NetworkCategory["COMPRESSION"] = "compression";
15
+ NetworkCategory["RATE_LIMIT"] = "rate-limit";
16
+ NetworkCategory["CORS"] = "cors";
17
+ NetworkCategory["SSL"] = "ssl";
18
+ NetworkCategory["WEBSOCKET"] = "websocket";
19
+ NetworkCategory["CACHE"] = "cache";
20
+ NetworkCategory["SECURITY"] = "security";
21
+ })(NetworkCategory || (NetworkCategory = {}));
22
+
23
+ export { NetworkCategory };
24
+ //# sourceMappingURL=NetworkTypes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NetworkTypes.js","sources":["../../../../../../../src/plugins/modules/network/types/NetworkTypes.ts"],"sourcesContent":[null],"names":[],"mappings":"AAAA;;;;;AAKG;AA2FH;;AAEG;IACS,gBAUX;AAVD,CAAA,UAAY,eAAe,EAAA;AACvB,IAAA,eAAA,CAAA,YAAA,CAAA,GAAA,YAAyB,CAAA;AACzB,IAAA,eAAA,CAAA,OAAA,CAAA,GAAA,OAAe,CAAA;AACf,IAAA,eAAA,CAAA,aAAA,CAAA,GAAA,aAA2B,CAAA;AAC3B,IAAA,eAAA,CAAA,YAAA,CAAA,GAAA,YAAyB,CAAA;AACzB,IAAA,eAAA,CAAA,MAAA,CAAA,GAAA,MAAa,CAAA;AACb,IAAA,eAAA,CAAA,KAAA,CAAA,GAAA,KAAW,CAAA;AACX,IAAA,eAAA,CAAA,WAAA,CAAA,GAAA,WAAuB,CAAA;AACvB,IAAA,eAAA,CAAA,OAAA,CAAA,GAAA,OAAe,CAAA;AACf,IAAA,eAAA,CAAA,UAAA,CAAA,GAAA,UAAqB,CAAA;AACzB,CAAC,EAVW,eAAe,KAAf,eAAe,GAU1B,EAAA,CAAA,CAAA;;;;"}
@@ -0,0 +1,61 @@
1
+ import { CompressionPlugin } from '../builtin/CompressionPlugin.js';
2
+ import { ConnectionPlugin } from '../builtin/ConnectionPlugin.js';
3
+ import { NetworkCategory } from '../types/NetworkTypes.js';
4
+
5
+ const NetworkPluginUtils = {
6
+ /**
7
+ * Validate network plugin configuration
8
+ */
9
+ validateConfig: (pluginType, config) => {
10
+ switch (pluginType) {
11
+ case NetworkCategory.CONNECTION:
12
+ return (new ConnectionPlugin().validateNetworkConfig?.(config) ??
13
+ true);
14
+ case NetworkCategory.COMPRESSION:
15
+ return (new CompressionPlugin().validateNetworkConfig?.(config) ??
16
+ true);
17
+ default:
18
+ return true;
19
+ }
20
+ },
21
+ /**
22
+ * Get default configuration for a plugin type
23
+ */
24
+ getDefaultConfig: (pluginType) => {
25
+ switch (pluginType) {
26
+ case NetworkCategory.CONNECTION:
27
+ return {
28
+ http2: { enabled: false, maxConcurrentStreams: 100 },
29
+ keepAlive: {
30
+ enabled: true,
31
+ timeout: 30000,
32
+ maxRequests: 1000,
33
+ },
34
+ connectionPool: { maxConnections: 1000, timeout: 5000 },
35
+ timeouts: {
36
+ connection: 10000,
37
+ request: 30000,
38
+ response: 30000,
39
+ },
40
+ };
41
+ case NetworkCategory.COMPRESSION:
42
+ return {
43
+ enabled: true,
44
+ algorithms: ["gzip", "deflate"],
45
+ level: 6,
46
+ threshold: 1024,
47
+ contentTypes: [
48
+ "text/*",
49
+ "application/json",
50
+ "application/javascript",
51
+ "application/xml",
52
+ ],
53
+ };
54
+ default:
55
+ return {};
56
+ }
57
+ },
58
+ };
59
+
60
+ export { NetworkPluginUtils };
61
+ //# sourceMappingURL=NetworkPluginUtils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NetworkPluginUtils.js","sources":["../../../../../../../src/plugins/modules/network/utils/NetworkPluginUtils.ts"],"sourcesContent":[null],"names":[],"mappings":";;;;AASa,MAAA,kBAAkB,GAAG;AAC9B;;AAEG;AACH,IAAA,cAAc,EAAE,CAAC,UAA2B,EAAE,MAAW,KAAa;QAClE,QAAQ,UAAU;YACd,KAAK,eAAe,CAAC,UAAU;gBAC3B,QACI,IAAI,gBAAgB,EAAE,CAAC,qBAAqB,GAAG,MAAM,CAAC;AACtD,oBAAA,IAAI,EACN;YACN,KAAK,eAAe,CAAC,WAAW;gBAC5B,QACI,IAAI,iBAAiB,EAAE,CAAC,qBAAqB,GAAG,MAAM,CAAC;AACvD,oBAAA,IAAI,EACN;AACN,YAAA;AACI,gBAAA,OAAO,IAAI,CAAC;SACnB;KACJ;AAED;;AAEG;AACH,IAAA,gBAAgB,EAAE,CAAC,UAA2B,KAAyB;QACnE,QAAQ,UAAU;YACd,KAAK,eAAe,CAAC,UAAU;gBAC3B,OAAO;oBACH,KAAK,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,oBAAoB,EAAE,GAAG,EAAE;AACpD,oBAAA,SAAS,EAAE;AACP,wBAAA,OAAO,EAAE,IAAI;AACb,wBAAA,OAAO,EAAE,KAAK;AACd,wBAAA,WAAW,EAAE,IAAI;AACpB,qBAAA;oBACD,cAAc,EAAE,EAAE,cAAc,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE;AACvD,oBAAA,QAAQ,EAAE;AACN,wBAAA,UAAU,EAAE,KAAK;AACjB,wBAAA,OAAO,EAAE,KAAK;AACd,wBAAA,QAAQ,EAAE,KAAK;AAClB,qBAAA;iBACgB,CAAC;YAC1B,KAAK,eAAe,CAAC,WAAW;gBAC5B,OAAO;AACH,oBAAA,OAAO,EAAE,IAAI;AACb,oBAAA,UAAU,EAAE,CAAC,MAAM,EAAE,SAAS,CAAC;AAC/B,oBAAA,KAAK,EAAE,CAAC;AACR,oBAAA,SAAS,EAAE,IAAI;AACf,oBAAA,YAAY,EAAE;wBACV,QAAQ;wBACR,kBAAkB;wBAClB,wBAAwB;wBACxB,iBAAiB;AACpB,qBAAA;iBACiB,CAAC;AAC3B,YAAA;AACI,gBAAA,OAAO,EAAyB,CAAC;SACxC;KACJ;;;;;"}
@@ -12,6 +12,7 @@ var PluginType;
12
12
  (function (PluginType) {
13
13
  PluginType["PRE_REQUEST"] = "pre-request";
14
14
  PluginType["SECURITY"] = "security";
15
+ PluginType["NETWORK"] = "network";
15
16
  PluginType["CACHE"] = "cache";
16
17
  PluginType["PERFORMANCE"] = "performance";
17
18
  PluginType["POST_RESPONSE"] = "post-response";
@@ -1 +1 @@
1
- {"version":3,"file":"PluginTypes.js","sources":["../../../../../../src/plugins/modules/types/PluginTypes.ts"],"sourcesContent":[null],"names":[],"mappings":"AAAA;;;;;AAKG;AAMH;AAEA;;AAEG;IACS,WAQX;AARD,CAAA,UAAY,UAAU,EAAA;AAClB,IAAA,UAAA,CAAA,aAAA,CAAA,GAAA,aAA2B,CAAA;AAC3B,IAAA,UAAA,CAAA,UAAA,CAAA,GAAA,UAAqB,CAAA;AACrB,IAAA,UAAA,CAAA,OAAA,CAAA,GAAA,OAAe,CAAA;AACf,IAAA,UAAA,CAAA,aAAA,CAAA,GAAA,aAA2B,CAAA;AAC3B,IAAA,UAAA,CAAA,eAAA,CAAA,GAAA,eAA+B,CAAA;AAC/B,IAAA,UAAA,CAAA,YAAA,CAAA,GAAA,YAAyB,CAAA;AACzB,IAAA,UAAA,CAAA,QAAA,CAAA,GAAA,QAAiB,CAAA;AACrB,CAAC,EARW,UAAU,KAAV,UAAU,GAQrB,EAAA,CAAA,CAAA,CAAA;AAED;;AAEG;IACS,eAMX;AAND,CAAA,UAAY,cAAc,EAAA;AACtB,IAAA,cAAA,CAAA,cAAA,CAAA,UAAA,CAAA,GAAA,CAAA,CAAA,GAAA,UAAY,CAAA;AACZ,IAAA,cAAA,CAAA,cAAA,CAAA,MAAA,CAAA,GAAA,CAAA,CAAA,GAAA,MAAQ,CAAA;AACR,IAAA,cAAA,CAAA,cAAA,CAAA,QAAA,CAAA,GAAA,CAAA,CAAA,GAAA,QAAU,CAAA;AACV,IAAA,cAAA,CAAA,cAAA,CAAA,KAAA,CAAA,GAAA,CAAA,CAAA,GAAA,KAAO,CAAA;AACP,IAAA,cAAA,CAAA,cAAA,CAAA,YAAA,CAAA,GAAA,CAAA,CAAA,GAAA,YAAc,CAAA;AAClB,CAAC,EANW,cAAc,KAAd,cAAc,GAMzB,EAAA,CAAA,CAAA,CAAA;AAgPD;AAEA;;AAEG;IACS,gBAOX;AAPD,CAAA,UAAY,eAAe,EAAA;AACvB,IAAA,eAAA,CAAA,mBAAA,CAAA,GAAA,mBAAuC,CAAA;AACvC,IAAA,eAAA,CAAA,qBAAA,CAAA,GAAA,qBAA2C,CAAA;AAC3C,IAAA,eAAA,CAAA,iBAAA,CAAA,GAAA,iBAAmC,CAAA;AACnC,IAAA,eAAA,CAAA,cAAA,CAAA,GAAA,cAA6B,CAAA;AAC7B,IAAA,eAAA,CAAA,gBAAA,CAAA,GAAA,gBAAiC,CAAA;AACjC,IAAA,eAAA,CAAA,gCAAA,CAAA,GAAA,gCAAiE,CAAA;AACrE,CAAC,EAPW,eAAe,KAAf,eAAe,GAO1B,EAAA,CAAA,CAAA;;;;"}
1
+ {"version":3,"file":"PluginTypes.js","sources":["../../../../../../src/plugins/modules/types/PluginTypes.ts"],"sourcesContent":[null],"names":[],"mappings":"AAAA;;;;;AAKG;AAOH;AAEA;;AAEG;IACS,WASX;AATD,CAAA,UAAY,UAAU,EAAA;AAClB,IAAA,UAAA,CAAA,aAAA,CAAA,GAAA,aAA2B,CAAA;AAC3B,IAAA,UAAA,CAAA,UAAA,CAAA,GAAA,UAAqB,CAAA;AACrB,IAAA,UAAA,CAAA,SAAA,CAAA,GAAA,SAAmB,CAAA;AACnB,IAAA,UAAA,CAAA,OAAA,CAAA,GAAA,OAAe,CAAA;AACf,IAAA,UAAA,CAAA,aAAA,CAAA,GAAA,aAA2B,CAAA;AAC3B,IAAA,UAAA,CAAA,eAAA,CAAA,GAAA,eAA+B,CAAA;AAC/B,IAAA,UAAA,CAAA,YAAA,CAAA,GAAA,YAAyB,CAAA;AACzB,IAAA,UAAA,CAAA,QAAA,CAAA,GAAA,QAAiB,CAAA;AACrB,CAAC,EATW,UAAU,KAAV,UAAU,GASrB,EAAA,CAAA,CAAA,CAAA;AAED;;AAEG;IACS,eAMX;AAND,CAAA,UAAY,cAAc,EAAA;AACtB,IAAA,cAAA,CAAA,cAAA,CAAA,UAAA,CAAA,GAAA,CAAA,CAAA,GAAA,UAAY,CAAA;AACZ,IAAA,cAAA,CAAA,cAAA,CAAA,MAAA,CAAA,GAAA,CAAA,CAAA,GAAA,MAAQ,CAAA;AACR,IAAA,cAAA,CAAA,cAAA,CAAA,QAAA,CAAA,GAAA,CAAA,CAAA,GAAA,QAAU,CAAA;AACV,IAAA,cAAA,CAAA,cAAA,CAAA,KAAA,CAAA,GAAA,CAAA,CAAA,GAAA,KAAO,CAAA;AACP,IAAA,cAAA,CAAA,cAAA,CAAA,YAAA,CAAA,GAAA,CAAA,CAAA,GAAA,YAAc,CAAA;AAClB,CAAC,EANW,cAAc,KAAd,cAAc,GAMzB,EAAA,CAAA,CAAA,CAAA;AAqOD;AAEA;;AAEG;IACS,gBAOX;AAPD,CAAA,UAAY,eAAe,EAAA;AACvB,IAAA,eAAA,CAAA,mBAAA,CAAA,GAAA,mBAAuC,CAAA;AACvC,IAAA,eAAA,CAAA,qBAAA,CAAA,GAAA,qBAA2C,CAAA;AAC3C,IAAA,eAAA,CAAA,iBAAA,CAAA,GAAA,iBAAmC,CAAA;AACnC,IAAA,eAAA,CAAA,cAAA,CAAA,GAAA,cAA6B,CAAA;AAC7B,IAAA,eAAA,CAAA,gBAAA,CAAA,GAAA,gBAAiC,CAAA;AACjC,IAAA,eAAA,CAAA,gCAAA,CAAA,GAAA,gCAAiE,CAAA;AACrE,CAAC,EAPW,eAAe,KAAf,eAAe,GAO1B,EAAA,CAAA,CAAA;;;;"}
@@ -2,7 +2,53 @@ import express from 'express';
2
2
  import rateLimit from 'express-rate-limit';
3
3
  import { PluginManager } from './components/fastapi/PluginManager.js';
4
4
  import { PluginManager as PluginManager$1 } from '../plugins/plugin-manager.js';
5
+ import '../plugins/modules/core/SecurityPlugin.js';
6
+ import '../plugins/modules/types/PluginTypes.js';
7
+ import 'events';
8
+ import '../../mods/security/src/components/fortified-function/core/fortified-function-core.js';
9
+ import '../../mods/security/src/components/fortified-function/core/fortified-config.js';
10
+ import '../../mods/security/src/components/fortified-function/core/fortified-logger.js';
11
+ import '../../mods/security/src/components/fortified-function/serializer/safe-serializer.js';
12
+ import 'nehoid';
13
+ import '../../mods/security/src/utils/memory/index.js';
14
+ import 'crypto';
15
+ import '../../mods/security/src/types/secure-memory.js';
16
+ import '../../mods/security/src/components/secure-string/advanced/entropy-analyzer.js';
17
+ import '../../mods/security/src/components/secure-string/advanced/quantum-safe.js';
18
+ import '../../mods/security/src/components/secure-string/advanced/performance-monitor.js';
19
+ import '../../mods/security/src/core/hash/hash-core.js';
20
+ import '../../mods/security/src/core/hash/hash-types.js';
21
+ import '../../mods/security/src/core/hash/hash-security.js';
22
+ import '../../mods/security/src/core/hash/hash-advanced.js';
23
+ import '../../mods/security/src/algorithms/hash-algorithms.js';
24
+ import '../../mods/security/src/core/random/random-types.js';
25
+ import '../../mods/security/src/core/random/random-sources.js';
26
+ import 'nehonix-uri-processor';
27
+ import '../../mods/security/src/types.js';
28
+ import '../../mods/security/src/components/secure-array/utils/id-generator.js';
29
+ import '../../mods/security/src/index.js';
5
30
  import { initializeLogger } from '../../shared/logger/Logger.js';
31
+ import '../../mods/security/src/components/fortified-function/UFA/ultra-fast-allocator.js';
32
+ import 'argon2';
33
+ import 'child_process';
34
+ import 'https';
35
+ import '../../mods/security/src/components/runtime-verification.js';
36
+ import '../../mods/security/src/components/tamper-evident-logging.js';
37
+ import '../../mods/security/src/core/keys/keys-types.js';
38
+ import '../../mods/security/src/core/keys/keys-logger.js';
39
+ import '../../mods/security/src/core/keys/keys-utils.js';
40
+ import '../../mods/security/src/core/keys/algorithms/mods/PBKDF2Algo.js';
41
+ import '../../mods/security/src/core/password/index.js';
42
+ import 'systeminformation';
43
+ import 'pidusage';
44
+ import 'node-os-utils';
45
+ import '../../mods/security/src/components/cache/index.js';
46
+ import 'perf_hooks';
47
+ import '../plugins/modules/network/types/NetworkTypes.js';
48
+ import { ConnectionPlugin } from '../plugins/modules/network/builtin/ConnectionPlugin.js';
49
+ import { CompressionPlugin } from '../plugins/modules/network/builtin/CompressionPlugin.js';
50
+ import { ProxyPlugin } from '../plugins/modules/network/builtin/ProxyPlugin.js';
51
+ import { RateLimitPlugin } from '../plugins/modules/network/builtin/RateLimitPlugin.js';
6
52
  import { PortManager } from './utils/PortManager.js';
7
53
  import { Port } from './utils/forceClosePort.js';
8
54
  import { ConfigLoader } from './utils/ConfigLoader.js';
@@ -20,9 +66,13 @@ import { RedirectManager } from './components/fastapi/RedirectManager.js';
20
66
  import { ConsoleInterceptor } from './components/fastapi/console/ConsoleInterceptor.js';
21
67
  import { UltraFastRequestProcessor } from './components/fastapi/UltraFastRequestProcessor.js';
22
68
  import { createSafeJsonMiddleware } from '../middleware/safe-json-middleware.js';
69
+ import { netConfig } from './conf/networkConnectionConf.js';
70
+ import { rateLimitConfig } from './conf/rateLimitConfig.js';
71
+ import { proxyConfig } from './conf/proxyConfig.js';
72
+ import { createNotFoundHandler } from './handlers/NotFoundHandler.js';
23
73
 
24
74
  /**
25
- * XyPrissJS - Ultra-Fast Server
75
+ * XyPrissJS - Fast and Secure Express Server
26
76
  * Main server class for XyPrissJS
27
77
  */
28
78
  /**
@@ -91,6 +141,8 @@ class XyPrissServer {
91
141
  this.routeManager.addMethods();
92
142
  this.monitoringManager.addMonitoringEndpoints();
93
143
  this.addConsoleInterceptionMethods();
144
+ // Add custom 404 handler as the last middleware
145
+ this.app.use(this.notFoundHandler.handler);
94
146
  this.ready = true;
95
147
  }
96
148
  async initializeCache() {
@@ -204,8 +256,12 @@ class XyPrissServer {
204
256
  this.initializeRequestManagement();
205
257
  // Initialize server plugins
206
258
  this.initializeServerPlugins();
259
+ // Initialize network plugins automatically
260
+ await this.initializeNetworkPlugins();
207
261
  this.redirectManager = new RedirectManager(this.logger);
208
262
  this.consoleInterceptor = new ConsoleInterceptor(this.logger, this.options.logging);
263
+ // Initialize custom 404 handler
264
+ this.notFoundHandler = createNotFoundHandler(this.options);
209
265
  if (this.options.logging?.consoleInterception?.enabled) {
210
266
  this.consoleInterceptor.start();
211
267
  this.logger.info("console", "Console interception system activated");
@@ -630,6 +686,59 @@ class XyPrissServer {
630
686
  });
631
687
  this.logger.info("server", "Server plugins initialized");
632
688
  }
689
+ /**
690
+ * Initialize network plugins with user-configurable options
691
+ */
692
+ async initializeNetworkPlugins() {
693
+ try {
694
+ const networkConfig = this.options.network || {};
695
+ // Initialize Connection Plugin
696
+ if (networkConfig.connection?.enabled !== false) {
697
+ await this.registerPlugin(new ConnectionPlugin(netConfig(networkConfig)));
698
+ this.logger.debug("server", "Connection plugin initialized with user configuration");
699
+ }
700
+ // Initialize Compression Plugin
701
+ if (networkConfig.compression?.enabled !== false) {
702
+ const compressionConfig = {
703
+ enabled: networkConfig.compression?.enabled ?? true,
704
+ algorithms: (networkConfig.compression?.algorithms?.filter((alg) => alg !== "br") ?? ["gzip", "deflate"]),
705
+ level: networkConfig.compression?.level ?? 6,
706
+ threshold: networkConfig.compression?.threshold ?? 1024,
707
+ contentTypes: networkConfig.compression?.contentTypes ?? [
708
+ "text/*",
709
+ "application/json",
710
+ "application/javascript",
711
+ ],
712
+ };
713
+ await this.registerPlugin(new CompressionPlugin(compressionConfig));
714
+ this.logger.debug("server", "Compression plugin initialized with user configuration");
715
+ }
716
+ // Initialize Rate Limit Plugin
717
+ if (networkConfig.rateLimit?.enabled !== false) {
718
+ await this.registerPlugin(new RateLimitPlugin(rateLimitConfig(networkConfig)));
719
+ this.logger.debug("server", "Rate limit plugin initialized with user configuration");
720
+ }
721
+ // Initialize Proxy Plugin
722
+ if (networkConfig.proxy?.enabled === true &&
723
+ networkConfig.proxy?.upstreams?.length) {
724
+ await this.registerPlugin(new ProxyPlugin(proxyConfig(networkConfig)));
725
+ this.logger.debug("server", "Proxy plugin initialized with user configuration");
726
+ }
727
+ else if (networkConfig.proxy?.enabled !== false) {
728
+ // Register proxy plugin in disabled state for potential runtime activation
729
+ await this.registerPlugin(new ProxyPlugin({
730
+ enabled: false,
731
+ upstreams: [],
732
+ loadBalancing: "round-robin",
733
+ }));
734
+ this.logger.debug("server", "Proxy plugin initialized in disabled state");
735
+ }
736
+ this.logger.info("server", "Network plugins initialized successfully with user configuration");
737
+ }
738
+ catch (error) {
739
+ this.logger.error("server", "Failed to initialize network plugins:", error.message);
740
+ }
741
+ }
633
742
  /**
634
743
  * Process middleware that was queued during immediate usage
635
744
  */
@@ -845,7 +954,7 @@ class XyPrissServer {
845
954
  return this.pluginManager.getPluginEngineStats();
846
955
  }
847
956
  /**
848
- * Initialize built-in plugins
957
+ * Initialize built-in plugins including network plugins
849
958
  */
850
959
  async initializeBuiltinPlugins() {
851
960
  try {