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.
- package/README.md +13 -13
- package/dist/cjs/mods/security/src/index.js +35 -12
- package/dist/cjs/mods/security/src/index.js.map +1 -1
- package/dist/cjs/src/index.js +56 -0
- package/dist/cjs/src/index.js.map +1 -1
- package/dist/cjs/src/plugins/modules/PluginEngine.js +378 -0
- package/dist/cjs/src/plugins/modules/PluginEngine.js.map +1 -0
- package/dist/cjs/src/plugins/modules/PluginRegistry.js +339 -0
- package/dist/cjs/src/plugins/modules/PluginRegistry.js.map +1 -0
- package/dist/cjs/src/plugins/modules/builtin/JWTAuthPlugin.js +591 -0
- package/dist/cjs/src/plugins/modules/builtin/JWTAuthPlugin.js.map +1 -0
- package/dist/cjs/src/plugins/modules/builtin/ResponseTimePlugin.js +413 -0
- package/dist/cjs/src/plugins/modules/builtin/ResponseTimePlugin.js.map +1 -0
- package/dist/cjs/src/plugins/modules/builtin/SmartCachePlugin.js +843 -0
- package/dist/cjs/src/plugins/modules/builtin/SmartCachePlugin.js.map +1 -0
- package/dist/cjs/src/plugins/modules/core/CachePlugin.js +1975 -0
- package/dist/cjs/src/plugins/modules/core/CachePlugin.js.map +1 -0
- package/dist/cjs/src/plugins/modules/core/PerformancePlugin.js +894 -0
- package/dist/cjs/src/plugins/modules/core/PerformancePlugin.js.map +1 -0
- package/dist/cjs/src/plugins/modules/core/SecurityPlugin.js +799 -0
- package/dist/cjs/src/plugins/modules/core/SecurityPlugin.js.map +1 -0
- package/dist/cjs/src/plugins/modules/index.js +304 -0
- package/dist/cjs/src/plugins/modules/index.js.map +1 -0
- package/dist/cjs/src/plugins/modules/network/builtin/CompressionPlugin.js +410 -0
- package/dist/cjs/src/plugins/modules/network/builtin/CompressionPlugin.js.map +1 -0
- package/dist/cjs/src/plugins/modules/network/builtin/ConnectionPlugin.js +797 -0
- package/dist/cjs/src/plugins/modules/network/builtin/ConnectionPlugin.js.map +1 -0
- package/dist/cjs/src/plugins/modules/network/builtin/ProxyPlugin.js +409 -0
- package/dist/cjs/src/plugins/modules/network/builtin/ProxyPlugin.js.map +1 -0
- package/dist/cjs/src/plugins/modules/network/builtin/RateLimitPlugin.js +606 -0
- package/dist/cjs/src/plugins/modules/network/builtin/RateLimitPlugin.js.map +1 -0
- package/dist/cjs/src/plugins/modules/network/core/NetworkPlugin.js +225 -0
- package/dist/cjs/src/plugins/modules/network/core/NetworkPlugin.js.map +1 -0
- package/dist/cjs/src/plugins/modules/network/core/NetworkPluginFactory.js +40 -0
- package/dist/cjs/src/plugins/modules/network/core/NetworkPluginFactory.js.map +1 -0
- package/dist/cjs/src/plugins/modules/network/index.js +120 -0
- package/dist/cjs/src/plugins/modules/network/index.js.map +1 -0
- package/dist/cjs/src/plugins/modules/network/types/NetworkTypes.js +24 -0
- package/dist/cjs/src/plugins/modules/network/types/NetworkTypes.js.map +1 -0
- package/dist/cjs/src/plugins/modules/network/utils/NetworkPluginUtils.js +63 -0
- package/dist/cjs/src/plugins/modules/network/utils/NetworkPluginUtils.js.map +1 -0
- package/dist/cjs/src/plugins/modules/types/PluginTypes.js +48 -0
- package/dist/cjs/src/plugins/modules/types/PluginTypes.js.map +1 -0
- package/dist/cjs/src/server/FastServer.js +133 -5
- package/dist/cjs/src/server/FastServer.js.map +1 -1
- package/dist/cjs/src/server/components/fastapi/PluginManager.js +5 -5
- package/dist/cjs/src/server/components/fastapi/PluginManager.js.map +1 -1
- package/dist/cjs/src/server/components/fastapi/RequestProcessor.js +1 -1
- package/dist/cjs/src/server/conf/networkConnectionConf.js +25 -0
- package/dist/cjs/src/server/conf/networkConnectionConf.js.map +1 -0
- package/dist/cjs/src/server/conf/proxyConfig.js +23 -0
- package/dist/cjs/src/server/conf/proxyConfig.js.map +1 -0
- package/dist/cjs/src/server/conf/rateLimitConfig.js +35 -0
- package/dist/cjs/src/server/conf/rateLimitConfig.js.map +1 -0
- package/dist/cjs/src/server/const/default.js +6 -0
- package/dist/cjs/src/server/const/default.js.map +1 -1
- package/dist/cjs/src/server/handlers/NotFoundHandler.js +217 -0
- package/dist/cjs/src/server/handlers/NotFoundHandler.js.map +1 -0
- package/dist/cjs/src/server/handlers/templates/notFoundTemp.js +163 -0
- package/dist/cjs/src/server/handlers/templates/notFoundTemp.js.map +1 -0
- package/dist/esm/mods/security/src/components/cache/UFSIMC.js +5 -5
- package/dist/esm/mods/security/src/components/cache/UFSIMC.js.map +1 -1
- package/dist/esm/mods/security/src/components/cache/cacheSys.utils.js +3 -3
- package/dist/esm/mods/security/src/components/cache/cacheSys.utils.js.map +1 -1
- package/dist/esm/mods/security/src/index.js +14 -10
- package/dist/esm/mods/security/src/index.js.map +1 -1
- package/dist/esm/src/index.js +18 -0
- package/dist/esm/src/index.js.map +1 -1
- package/dist/esm/src/plugins/modules/PluginEngine.js +376 -0
- package/dist/esm/src/plugins/modules/PluginEngine.js.map +1 -0
- package/dist/esm/src/plugins/modules/PluginRegistry.js +337 -0
- package/dist/esm/src/plugins/modules/PluginRegistry.js.map +1 -0
- package/dist/esm/src/plugins/modules/builtin/JWTAuthPlugin.js +589 -0
- package/dist/esm/src/plugins/modules/builtin/JWTAuthPlugin.js.map +1 -0
- package/dist/esm/src/plugins/modules/builtin/ResponseTimePlugin.js +411 -0
- package/dist/esm/src/plugins/modules/builtin/ResponseTimePlugin.js.map +1 -0
- package/dist/esm/src/plugins/modules/builtin/SmartCachePlugin.js +841 -0
- package/dist/esm/src/plugins/modules/builtin/SmartCachePlugin.js.map +1 -0
- package/dist/esm/src/plugins/modules/core/CachePlugin.js +1973 -0
- package/dist/esm/src/plugins/modules/core/CachePlugin.js.map +1 -0
- package/dist/esm/src/plugins/modules/core/PerformancePlugin.js +872 -0
- package/dist/esm/src/plugins/modules/core/PerformancePlugin.js.map +1 -0
- package/dist/esm/src/plugins/modules/core/SecurityPlugin.js +797 -0
- package/dist/esm/src/plugins/modules/core/SecurityPlugin.js.map +1 -0
- package/dist/esm/src/plugins/modules/index.js +275 -0
- package/dist/esm/src/plugins/modules/index.js.map +1 -0
- package/dist/esm/src/plugins/modules/network/builtin/CompressionPlugin.js +389 -0
- package/dist/esm/src/plugins/modules/network/builtin/CompressionPlugin.js.map +1 -0
- package/dist/esm/src/plugins/modules/network/builtin/ConnectionPlugin.js +776 -0
- package/dist/esm/src/plugins/modules/network/builtin/ConnectionPlugin.js.map +1 -0
- package/dist/esm/src/plugins/modules/network/builtin/ProxyPlugin.js +407 -0
- package/dist/esm/src/plugins/modules/network/builtin/ProxyPlugin.js.map +1 -0
- package/dist/esm/src/plugins/modules/network/builtin/RateLimitPlugin.js +585 -0
- package/dist/esm/src/plugins/modules/network/builtin/RateLimitPlugin.js.map +1 -0
- package/dist/esm/src/plugins/modules/network/core/NetworkPlugin.js +223 -0
- package/dist/esm/src/plugins/modules/network/core/NetworkPlugin.js.map +1 -0
- package/dist/esm/src/plugins/modules/network/core/NetworkPluginFactory.js +38 -0
- package/dist/esm/src/plugins/modules/network/core/NetworkPluginFactory.js.map +1 -0
- package/dist/esm/src/plugins/modules/network/index.js +109 -0
- package/dist/esm/src/plugins/modules/network/index.js.map +1 -0
- package/dist/esm/src/plugins/modules/network/types/NetworkTypes.js +24 -0
- package/dist/esm/src/plugins/modules/network/types/NetworkTypes.js.map +1 -0
- package/dist/esm/src/plugins/modules/network/utils/NetworkPluginUtils.js +61 -0
- package/dist/esm/src/plugins/modules/network/utils/NetworkPluginUtils.js.map +1 -0
- package/dist/esm/src/plugins/modules/types/PluginTypes.js +48 -0
- package/dist/esm/src/plugins/modules/types/PluginTypes.js.map +1 -0
- package/dist/esm/src/server/FastServer.js +133 -5
- package/dist/esm/src/server/FastServer.js.map +1 -1
- package/dist/esm/src/server/components/fastapi/PluginManager.js +5 -5
- package/dist/esm/src/server/components/fastapi/PluginManager.js.map +1 -1
- package/dist/esm/src/server/components/fastapi/RequestProcessor.js +1 -1
- package/dist/esm/src/server/conf/networkConnectionConf.js +23 -0
- package/dist/esm/src/server/conf/networkConnectionConf.js.map +1 -0
- package/dist/esm/src/server/conf/proxyConfig.js +21 -0
- package/dist/esm/src/server/conf/proxyConfig.js.map +1 -0
- package/dist/esm/src/server/conf/rateLimitConfig.js +33 -0
- package/dist/esm/src/server/conf/rateLimitConfig.js.map +1 -0
- package/dist/esm/src/server/const/default.js +6 -0
- package/dist/esm/src/server/const/default.js.map +1 -1
- package/dist/esm/src/server/handlers/NotFoundHandler.js +194 -0
- package/dist/esm/src/server/handlers/NotFoundHandler.js.map +1 -0
- package/dist/esm/src/server/handlers/templates/notFoundTemp.js +161 -0
- package/dist/esm/src/server/handlers/templates/notFoundTemp.js.map +1 -0
- package/dist/index.d.ts +5104 -14
- 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":";;;AAAA;;;;;AAKG;AAoBH;;;AAGG;MACmB,aAAa,CAAA;AA0B/B,IAAA,WAAA,CAAY,SAA8B,EAAyB,EAAA;;AAxBnD,QAAA,IAAA,CAAA,IAAI,GAAG,UAAU,CAAC,OAAO,CAAC;AAC1B,QAAA,IAAA,CAAA,QAAQ,GAAG,cAAc,CAAC,MAAM,CAAC;QACjC,IAAO,CAAA,OAAA,GAAG,IAAI,CAAC;AACf,QAAA,IAAA,CAAA,WAAW,GAAG,KAAK,CAAC;AACpB,QAAA,IAAA,CAAA,gBAAgB,GAAG,IAAI,CAAC;QAU9B,IAAa,CAAA,aAAA,GAAG,KAAK,CAAC;AAW5B,QAAA,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,YAAY,GAAG;AAChB,YAAA,OAAO,EAAE,IAAI;AACb,YAAA,MAAM,EAAE,SAAS;AACjB,YAAA,OAAO,EAAE;AACL,gBAAA,YAAY,EAAE,CAAC;AACf,gBAAA,SAAS,EAAE,CAAC;AACZ,gBAAA,UAAU,EAAE,CAAC;AACb,gBAAA,WAAW,EAAE,CAAC;AACjB,aAAA;YACD,SAAS,EAAE,IAAI,IAAI,EAAE;SACxB,CAAC;QACF,IAAI,CAAC,kBAAkB,GAAG;AACtB,YAAA,eAAe,EAAE,CAAC;AAClB,YAAA,kBAAkB,EAAE,CAAC;AACrB,YAAA,oBAAoB,EAAE,CAAC;AACvB,YAAA,UAAU,EAAE,CAAC;YACb,aAAa,EAAE,IAAI,IAAI,EAAE;SAC5B,CAAC;KACL;AAED;;AAEG;AACI,IAAA,MAAM,UAAU,GAAA;AACnB,QAAA,IAAI,IAAI,CAAC,aAAa,EAAE;YACpB,OAAO;SACV;AAED,QAAA,IAAI;;YAEA,IACI,IAAI,CAAC,qBAAqB;gBAC1B,CAAC,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,MAAM,CAAC,EAC1C;gBACE,MAAM,IAAI,KAAK,CACX,CAAA,yCAAA,EAA4C,IAAI,CAAC,EAAE,CAAE,CAAA,CACxD,CAAC;aACL;;AAGD,YAAA,MAAM,IAAI,CAAC,iBAAiB,EAAE,CAAC;;AAG/B,YAAA,MAAM,IAAI,CAAC,kBAAkB,EAAE,CAAC;AAEhC,YAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;SAC7B;QAAC,OAAO,KAAU,EAAE;AACjB,YAAA,MAAM,IAAI,KAAK,CACX,CAAA,oCAAA,EAAuC,IAAI,CAAC,EAAE,CAAA,EAAA,EAAK,KAAK,CAAC,OAAO,CAAA,CAAE,CACrE,CAAC;SACL;KACJ;AAED;;AAEG;IACI,MAAM,OAAO,CAChB,OAA+B,EAAA;AAE/B,QAAA,MAAM,SAAS,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;AAEpC,QAAA,IAAI;;YAEA,MAAM,cAAc,GAAG,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAC;;YAG1D,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC;;YAGzD,MAAM,aAAa,GAAG,WAAW,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;AACpD,YAAA,IAAI,CAAC,wBAAwB,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC;YAEnD,OAAO;gBACH,OAAO,EAAE,MAAM,CAAC,OAAO;gBACvB,aAAa;gBACb,cAAc,EAAE,MAAM,CAAC,cAAc;gBACrC,IAAI,EAAE,MAAM,CAAC,IAAI;gBACjB,KAAK,EAAE,MAAM,CAAC,KAAK;aACtB,CAAC;SACL;QAAC,OAAO,KAAU,EAAE;YACjB,MAAM,aAAa,GAAG,WAAW,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;AACpD,YAAA,IAAI,CAAC,wBAAwB,CAAC,aAAa,EAAE,KAAK,CAAC,CAAC;YAEpD,OAAO;AACH,gBAAA,OAAO,EAAE,KAAK;gBACd,aAAa;gBACb,cAAc,EAAE,IAAI;gBACpB,KAAK;aACR,CAAC;SACL;KACJ;AAUD;;AAEG;AACO,IAAA,MAAM,iBAAiB,GAAA;;KAEhC;AAED;;AAEG;AACO,IAAA,oBAAoB,CAC1B,OAA+B,EAAA;AAE/B,QAAA,MAAM,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC;QAExB,OAAO;AACH,YAAA,GAAG,OAAO;AACV,YAAA,UAAU,EAAE;gBACR,aAAa,EAAE,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,MAAM,EAAE,aAAa;AAClD,gBAAA,UAAU,EAAE,GAAG,CAAC,MAAM,EAAE,UAAU;AAClC,gBAAA,YAAY,EAAE,GAAG,CAAC,MAAM,EAAE,YAAY;AACtC,gBAAA,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,SAAS;AAChC,gBAAA,SAAS,EAAE,GAAG,CAAC,MAAM,IAAI,KAAK;gBAC9B,QAAQ,EAAE,GAAG,CAAC,WAAW;AACrB,sBAAE,CAAA,KAAA,EAAQ,GAAG,CAAC,WAAW,CAAE,CAAA;AAC3B,sBAAE,UAAU;AACnB,aAAA;AACD,YAAA,MAAM,EAAE;AACJ,gBAAA,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;AACxB,aAAA;AACD,YAAA,cAAc,EAAE;gBACZ,aAAa,EAAE,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,gBAAgB,CAAC,IAAI,GAAG,CAAC;gBACzD,SAAS,EAAE,CAAC;AACf,aAAA;SACJ,CAAC;KACL;AAED;;AAEG;IACO,wBAAwB,CAC9B,aAAqB,EACrB,OAAgB,EAAA;AAEhB,QAAA,IAAI,CAAC,kBAAkB,CAAC,eAAe,EAAE,CAAC;AAC1C,QAAA,IAAI,CAAC,kBAAkB,CAAC,kBAAkB,IAAI,aAAa,CAAC;QAC5D,IAAI,CAAC,kBAAkB,CAAC,oBAAoB;YACxC,IAAI,CAAC,kBAAkB,CAAC,kBAAkB;AAC1C,gBAAA,IAAI,CAAC,kBAAkB,CAAC,eAAe,CAAC;QAE5C,IAAI,CAAC,OAAO,EAAE;AACV,YAAA,IAAI,CAAC,kBAAkB,CAAC,UAAU,EAAE,CAAC;SACxC;QAED,IAAI,CAAC,kBAAkB,CAAC,aAAa,GAAG,IAAI,IAAI,EAAE,CAAC;KACtD;AAED;;AAEG;AACO,IAAA,MAAM,kBAAkB,GAAA;AAC9B,QAAA,IAAI;AACA,YAAA,IAAI,IAAI,CAAC,kBAAkB,EAAE;gBACzB,IAAI,CAAC,YAAY,GAAG,MAAM,IAAI,CAAC,kBAAkB,EAAE,CAAC;aACvD;iBAAM;;AAEH,gBAAA,MAAM,SAAS,GACX,IAAI,CAAC,kBAAkB,CAAC,UAAU;oBAClC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,kBAAkB,CAAC,eAAe,EAAE,CAAC,CAAC,CAAC;gBAEzD,IAAI,CAAC,YAAY,GAAG;oBAChB,OAAO,EACH,SAAS,GAAG,GAAG;wBACf,IAAI,CAAC,kBAAkB,CAAC,oBAAoB;AACxC,4BAAA,IAAI,CAAC,gBAAgB;oBAC7B,MAAM,EACF,SAAS,GAAG,IAAI;AACZ,0BAAE,SAAS;0BACT,SAAS,GAAG,GAAG;AACjB,8BAAE,UAAU;AACZ,8BAAE,WAAW;AACrB,oBAAA,OAAO,EAAE;AACL,wBAAA,YAAY,EACR,IAAI,CAAC,kBAAkB,CAAC,oBAAoB;wBAChD,SAAS;AACT,wBAAA,UAAU,EAAE,IAAI,CAAC,kBAAkB,CAAC,eAAe;wBACnD,WAAW,EAAE,CAAC;AACjB,qBAAA;oBACD,SAAS,EAAE,IAAI,IAAI,EAAE;iBACxB,CAAC;aACL;SACJ;QAAC,OAAO,KAAU,EAAE;YACjB,IAAI,CAAC,YAAY,GAAG;AAChB,gBAAA,OAAO,EAAE,KAAK;AACd,gBAAA,MAAM,EAAE,WAAW;AACnB,gBAAA,OAAO,EAAE;AACL,oBAAA,YAAY,EAAE,CAAC;AACf,oBAAA,SAAS,EAAE,CAAC;AACZ,oBAAA,UAAU,EAAE,CAAC;AACb,oBAAA,WAAW,EAAE,CAAC;AACjB,iBAAA;AACD,gBAAA,MAAM,EAAE,CAAC,CAAA,qBAAA,EAAwB,KAAK,CAAC,OAAO,EAAE,CAAC;gBACjD,SAAS,EAAE,IAAI,IAAI,EAAE;aACxB,CAAC;SACL;KACJ;AAED;;AAEG;IACI,SAAS,GAAA;AACZ,QAAA,OAAO,EAAE,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;KAC7B;AAED;;AAEG;AACI,IAAA,YAAY,CAAC,SAAuC,EAAA;AACvD,QAAA,IAAI,CAAC,MAAM,GAAG,EAAE,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,SAAS,EAAE,CAAC;KAClD;AAED;;AAEG;IACI,eAAe,GAAA;AAClB,QAAA,OAAO,EAAE,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;KACnC;AAED;;AAEG;IACI,qBAAqB,GAAA;AACxB,QAAA,OAAO,EAAE,GAAG,IAAI,CAAC,kBAAkB,EAAE,CAAC;KACzC;AAED;;AAEG;AACI,IAAA,MAAM,OAAO,GAAA;AAChB,QAAA,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;KAC9B;AAmBJ;;;;"}
|
|
@@ -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;;;;;"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Ultra-Fast Plugin System Types
|
|
3
|
+
*
|
|
4
|
+
* Comprehensive type definitions for the XyPrissJS plugin architecture
|
|
5
|
+
* designed to achieve <1ms execution overhead while maintaining security.
|
|
6
|
+
*/
|
|
7
|
+
// ===== CORE PLUGIN TYPES =====
|
|
8
|
+
/**
|
|
9
|
+
* Plugin execution phases for optimal performance routing
|
|
10
|
+
*/
|
|
11
|
+
var PluginType;
|
|
12
|
+
(function (PluginType) {
|
|
13
|
+
PluginType["PRE_REQUEST"] = "pre-request";
|
|
14
|
+
PluginType["SECURITY"] = "security";
|
|
15
|
+
PluginType["NETWORK"] = "network";
|
|
16
|
+
PluginType["CACHE"] = "cache";
|
|
17
|
+
PluginType["PERFORMANCE"] = "performance";
|
|
18
|
+
PluginType["POST_RESPONSE"] = "post-response";
|
|
19
|
+
PluginType["MIDDLEWARE"] = "middleware";
|
|
20
|
+
PluginType["NATIVE"] = "native";
|
|
21
|
+
})(PluginType || (PluginType = {}));
|
|
22
|
+
/**
|
|
23
|
+
* Plugin execution priority for performance optimization
|
|
24
|
+
*/
|
|
25
|
+
var PluginPriority;
|
|
26
|
+
(function (PluginPriority) {
|
|
27
|
+
PluginPriority[PluginPriority["CRITICAL"] = 0] = "CRITICAL";
|
|
28
|
+
PluginPriority[PluginPriority["HIGH"] = 1] = "HIGH";
|
|
29
|
+
PluginPriority[PluginPriority["NORMAL"] = 2] = "NORMAL";
|
|
30
|
+
PluginPriority[PluginPriority["LOW"] = 3] = "LOW";
|
|
31
|
+
PluginPriority[PluginPriority["BACKGROUND"] = 4] = "BACKGROUND";
|
|
32
|
+
})(PluginPriority || (PluginPriority = {}));
|
|
33
|
+
// ===== PLUGIN EVENTS =====
|
|
34
|
+
/**
|
|
35
|
+
* Plugin event types for monitoring and debugging
|
|
36
|
+
*/
|
|
37
|
+
var PluginEventType;
|
|
38
|
+
(function (PluginEventType) {
|
|
39
|
+
PluginEventType["PLUGIN_REGISTERED"] = "plugin:registered";
|
|
40
|
+
PluginEventType["PLUGIN_UNREGISTERED"] = "plugin:unregistered";
|
|
41
|
+
PluginEventType["PLUGIN_EXECUTED"] = "plugin:executed";
|
|
42
|
+
PluginEventType["PLUGIN_ERROR"] = "plugin:error";
|
|
43
|
+
PluginEventType["PLUGIN_TIMEOUT"] = "plugin:timeout";
|
|
44
|
+
PluginEventType["PERFORMANCE_THRESHOLD_EXCEEDED"] = "performance:threshold:exceeded";
|
|
45
|
+
})(PluginEventType || (PluginEventType = {}));
|
|
46
|
+
|
|
47
|
+
export { PluginEventType, PluginPriority, PluginType };
|
|
48
|
+
//# sourceMappingURL=PluginTypes.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PluginTypes.js","sources":["../../../../../../src/plugins/modules/types/PluginTypes.ts"],"sourcesContent":[null],"names":[],"mappings":"AAAA;;;;;AAKG;AAMH;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;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;;;;"}
|