xypriss 3.2.3 → 3.3.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.
- package/dist/cjs/mods/security/src/utils/memory/config-manager.js +53 -45
- package/dist/cjs/mods/security/src/utils/memory/config-manager.js.map +1 -1
- package/dist/cjs/src/FiUp.js +5 -2
- package/dist/cjs/src/FiUp.js.map +1 -1
- package/dist/cjs/src/config.js +169 -0
- package/dist/cjs/src/config.js.map +1 -0
- package/dist/cjs/src/file-upload.js +25 -5
- package/dist/cjs/src/file-upload.js.map +1 -1
- package/dist/cjs/src/index.js +3 -2
- package/dist/cjs/src/index.js.map +1 -1
- package/dist/cjs/src/server/FastServer.js +2 -1
- package/dist/cjs/src/server/FastServer.js.map +1 -1
- package/dist/cjs/src/server/ServerFactory.js +67 -32
- package/dist/cjs/src/server/ServerFactory.js.map +1 -1
- package/dist/cjs/src/server/components/fastapi/FileUploadManager.js +1 -1
- package/dist/cjs/src/server/components/fastapi/FileUploadManager.js.map +1 -1
- package/dist/cjs/src/server/components/fastapi/console/ConsoleInterceptor.js +9 -0
- package/dist/cjs/src/server/components/fastapi/console/ConsoleInterceptor.js.map +1 -1
- package/dist/esm/mods/security/src/utils/memory/config-manager.js +53 -45
- package/dist/esm/mods/security/src/utils/memory/config-manager.js.map +1 -1
- package/dist/esm/src/FiUp.js +5 -2
- package/dist/esm/src/FiUp.js.map +1 -1
- package/dist/esm/src/config.js +167 -0
- package/dist/esm/src/config.js.map +1 -0
- package/dist/esm/src/file-upload.js +25 -5
- package/dist/esm/src/file-upload.js.map +1 -1
- package/dist/esm/src/index.js +2 -2
- package/dist/esm/src/index.js.map +1 -1
- package/dist/esm/src/server/FastServer.js +2 -1
- package/dist/esm/src/server/FastServer.js.map +1 -1
- package/dist/esm/src/server/ServerFactory.js +67 -32
- package/dist/esm/src/server/ServerFactory.js.map +1 -1
- package/dist/esm/src/server/components/fastapi/FileUploadManager.js +1 -1
- package/dist/esm/src/server/components/fastapi/FileUploadManager.js.map +1 -1
- package/dist/esm/src/server/components/fastapi/console/ConsoleInterceptor.js +9 -0
- package/dist/esm/src/server/components/fastapi/console/ConsoleInterceptor.js.map +1 -1
- package/dist/index.d.ts +104 -33
- package/package.json +3 -2
|
@@ -28,7 +28,7 @@ class ConfigurationManager {
|
|
|
28
28
|
autoCleanupInterval: 60000, // 1 minute
|
|
29
29
|
maxPoolAge: 300000, // 5 minutes
|
|
30
30
|
leakDetectionThreshold: 300000, // 5 minutes
|
|
31
|
-
maxEventHistory: 1000
|
|
31
|
+
maxEventHistory: 1000,
|
|
32
32
|
};
|
|
33
33
|
}
|
|
34
34
|
/**
|
|
@@ -40,73 +40,78 @@ class ConfigurationManager {
|
|
|
40
40
|
// Validate maxMemory
|
|
41
41
|
if (config.maxMemory !== undefined) {
|
|
42
42
|
if (config.maxMemory <= 0) {
|
|
43
|
-
errors.push(
|
|
43
|
+
errors.push("maxMemory must be greater than 0");
|
|
44
44
|
}
|
|
45
|
-
else if (config.maxMemory < 10 * 1024 * 1024) {
|
|
46
|
-
|
|
45
|
+
else if (config.maxMemory < 10 * 1024 * 1024) {
|
|
46
|
+
// 10MB
|
|
47
|
+
warnings.push("maxMemory is very low (< 10MB), this may cause frequent GC");
|
|
47
48
|
}
|
|
48
|
-
else if (config.maxMemory > 1024 * 1024 * 1024) {
|
|
49
|
-
|
|
49
|
+
else if (config.maxMemory > 1024 * 1024 * 1024) {
|
|
50
|
+
// 1GB
|
|
51
|
+
warnings.push("maxMemory is very high (> 1GB), consider if this is necessary");
|
|
50
52
|
}
|
|
51
53
|
}
|
|
52
54
|
// Validate gcThreshold
|
|
53
55
|
if (config.gcThreshold !== undefined) {
|
|
54
56
|
if (config.gcThreshold < 0.1 || config.gcThreshold > 1.0) {
|
|
55
|
-
errors.push(
|
|
57
|
+
errors.push("gcThreshold must be between 0.1 and 1.0");
|
|
56
58
|
}
|
|
57
59
|
else if (config.gcThreshold < 0.3) {
|
|
58
|
-
warnings.push(
|
|
60
|
+
warnings.push("gcThreshold is very low (< 30%), this may cause frequent GC");
|
|
59
61
|
}
|
|
60
62
|
else if (config.gcThreshold > 0.95) {
|
|
61
|
-
warnings.push(
|
|
63
|
+
warnings.push("gcThreshold is very high (> 95%), this may cause memory pressure");
|
|
62
64
|
}
|
|
63
65
|
}
|
|
64
66
|
// Validate gcInterval
|
|
65
67
|
if (config.gcInterval !== undefined) {
|
|
66
68
|
if (config.gcInterval < 1000) {
|
|
67
|
-
errors.push(
|
|
69
|
+
errors.push("gcInterval must be at least 1000ms");
|
|
68
70
|
}
|
|
69
71
|
else if (config.gcInterval < 5000) {
|
|
70
|
-
warnings.push(
|
|
72
|
+
warnings.push("gcInterval is very short (< 5s), this may impact performance");
|
|
71
73
|
}
|
|
72
|
-
else if (config.gcInterval > 300000) {
|
|
73
|
-
|
|
74
|
+
else if (config.gcInterval > 300000) {
|
|
75
|
+
// 5 minutes
|
|
76
|
+
warnings.push("gcInterval is very long (> 5min), this may cause memory buildup");
|
|
74
77
|
}
|
|
75
78
|
}
|
|
76
79
|
// Validate autoCleanupInterval
|
|
77
80
|
if (config.autoCleanupInterval !== undefined) {
|
|
78
81
|
if (config.autoCleanupInterval < 1000) {
|
|
79
|
-
errors.push(
|
|
82
|
+
errors.push("autoCleanupInterval must be at least 1000ms");
|
|
80
83
|
}
|
|
81
84
|
else if (config.autoCleanupInterval < config.gcInterval) {
|
|
82
|
-
warnings.push(
|
|
85
|
+
warnings.push("autoCleanupInterval is shorter than gcInterval");
|
|
83
86
|
}
|
|
84
87
|
}
|
|
85
88
|
// Validate maxPoolAge
|
|
86
89
|
if (config.maxPoolAge !== undefined) {
|
|
87
|
-
if (config.maxPoolAge < 10000) {
|
|
88
|
-
|
|
90
|
+
if (config.maxPoolAge < 10000) {
|
|
91
|
+
// 10 seconds
|
|
92
|
+
warnings.push("maxPoolAge is very short (< 10s), pools may not be effective");
|
|
89
93
|
}
|
|
90
94
|
}
|
|
91
95
|
// Validate leakDetectionThreshold
|
|
92
96
|
if (config.leakDetectionThreshold !== undefined) {
|
|
93
|
-
if (config.leakDetectionThreshold < 60000) {
|
|
94
|
-
|
|
97
|
+
if (config.leakDetectionThreshold < 60000) {
|
|
98
|
+
// 1 minute
|
|
99
|
+
warnings.push("leakDetectionThreshold is very short (< 1min), may cause false positives");
|
|
95
100
|
}
|
|
96
101
|
}
|
|
97
102
|
// Validate maxEventHistory
|
|
98
103
|
if (config.maxEventHistory !== undefined) {
|
|
99
104
|
if (config.maxEventHistory < 10) {
|
|
100
|
-
warnings.push(
|
|
105
|
+
warnings.push("maxEventHistory is very low (< 10), may lose important events");
|
|
101
106
|
}
|
|
102
107
|
else if (config.maxEventHistory > 10000) {
|
|
103
|
-
warnings.push(
|
|
108
|
+
warnings.push("maxEventHistory is very high (> 10000), may consume significant memory");
|
|
104
109
|
}
|
|
105
110
|
}
|
|
106
111
|
return {
|
|
107
112
|
isValid: errors.length === 0,
|
|
108
113
|
errors,
|
|
109
|
-
warnings
|
|
114
|
+
warnings,
|
|
110
115
|
};
|
|
111
116
|
}
|
|
112
117
|
/**
|
|
@@ -115,38 +120,38 @@ class ConfigurationManager {
|
|
|
115
120
|
validateAndMergeConfig(config) {
|
|
116
121
|
const validation = this.validateConfig(config);
|
|
117
122
|
if (!validation.isValid) {
|
|
118
|
-
const errorMessage = `Invalid memory manager configuration: ${validation.errors.join(
|
|
123
|
+
const errorMessage = `Invalid memory manager configuration: ${validation.errors.join(", ")}`;
|
|
119
124
|
this.eventManager?.emit(MemoryEventType.ERROR_OCCURRED, {
|
|
120
125
|
error: errorMessage,
|
|
121
|
-
configErrors: validation.errors
|
|
126
|
+
configErrors: validation.errors,
|
|
122
127
|
});
|
|
123
128
|
throw new Error(errorMessage);
|
|
124
129
|
}
|
|
125
130
|
// Log warnings
|
|
126
131
|
if (validation.warnings.length > 0 && this.eventManager) {
|
|
127
132
|
this.eventManager.emit(MemoryEventType.CONFIG_UPDATED, {
|
|
128
|
-
warnings: validation.warnings
|
|
133
|
+
warnings: validation.warnings,
|
|
129
134
|
});
|
|
130
135
|
}
|
|
131
136
|
const merged = { ...this.defaultConfig, ...config };
|
|
132
137
|
// Emit config update event
|
|
133
138
|
this.eventManager?.emit(MemoryEventType.CONFIG_UPDATED, {
|
|
134
139
|
newConfig: merged,
|
|
135
|
-
changes: this.
|
|
140
|
+
changes: this.UploadChanges(this.config || this.defaultConfig, merged),
|
|
136
141
|
});
|
|
137
142
|
return merged;
|
|
138
143
|
}
|
|
139
144
|
/**
|
|
140
145
|
* Get differences between two configurations
|
|
141
146
|
*/
|
|
142
|
-
|
|
147
|
+
UploadChanges(oldConfig, newConfig) {
|
|
143
148
|
const changes = {};
|
|
144
149
|
for (const key in newConfig) {
|
|
145
150
|
const typedKey = key;
|
|
146
151
|
if (oldConfig[typedKey] !== newConfig[typedKey]) {
|
|
147
152
|
changes[key] = {
|
|
148
153
|
from: oldConfig[typedKey],
|
|
149
|
-
to: newConfig[typedKey]
|
|
154
|
+
to: newConfig[typedKey],
|
|
150
155
|
};
|
|
151
156
|
}
|
|
152
157
|
}
|
|
@@ -155,14 +160,17 @@ class ConfigurationManager {
|
|
|
155
160
|
/**
|
|
156
161
|
* Get current configuration (read-only)
|
|
157
162
|
*/
|
|
158
|
-
|
|
163
|
+
Upload() {
|
|
159
164
|
return { ...this.config };
|
|
160
165
|
}
|
|
161
166
|
/**
|
|
162
167
|
* Update configuration with validation
|
|
163
168
|
*/
|
|
164
169
|
updateConfig(updates) {
|
|
165
|
-
const newConfig = this.validateAndMergeConfig({
|
|
170
|
+
const newConfig = this.validateAndMergeConfig({
|
|
171
|
+
...this.config,
|
|
172
|
+
...updates,
|
|
173
|
+
});
|
|
166
174
|
this.config = newConfig;
|
|
167
175
|
}
|
|
168
176
|
/**
|
|
@@ -173,8 +181,8 @@ class ConfigurationManager {
|
|
|
173
181
|
this.config = { ...this.defaultConfig };
|
|
174
182
|
this.eventManager?.emit(MemoryEventType.CONFIG_UPDATED, {
|
|
175
183
|
newConfig: this.config,
|
|
176
|
-
changes: this.
|
|
177
|
-
resetToDefaults: true
|
|
184
|
+
changes: this.UploadChanges(oldConfig, this.config),
|
|
185
|
+
resetToDefaults: true,
|
|
178
186
|
});
|
|
179
187
|
}
|
|
180
188
|
/**
|
|
@@ -195,11 +203,11 @@ class ConfigurationManager {
|
|
|
195
203
|
*/
|
|
196
204
|
isFeatureEnabled(feature) {
|
|
197
205
|
switch (feature) {
|
|
198
|
-
case
|
|
206
|
+
case "leakDetection":
|
|
199
207
|
return this.config.enableLeakDetection;
|
|
200
|
-
case
|
|
208
|
+
case "performanceMonitoring":
|
|
201
209
|
return this.config.enablePerformanceMonitoring;
|
|
202
|
-
case
|
|
210
|
+
case "eventLogging":
|
|
203
211
|
return this.config.enableEventLogging;
|
|
204
212
|
default:
|
|
205
213
|
return false;
|
|
@@ -211,12 +219,12 @@ class ConfigurationManager {
|
|
|
211
219
|
getMemoryPressureLevel(currentUsage) {
|
|
212
220
|
const pressure = currentUsage / this.config.maxMemory;
|
|
213
221
|
if (pressure < 0.5)
|
|
214
|
-
return
|
|
222
|
+
return "low";
|
|
215
223
|
if (pressure < this.config.gcThreshold)
|
|
216
|
-
return
|
|
224
|
+
return "medium";
|
|
217
225
|
if (pressure < 0.95)
|
|
218
|
-
return
|
|
219
|
-
return
|
|
226
|
+
return "high";
|
|
227
|
+
return "critical";
|
|
220
228
|
}
|
|
221
229
|
/**
|
|
222
230
|
* Check if garbage collection should be triggered
|
|
@@ -224,13 +232,13 @@ class ConfigurationManager {
|
|
|
224
232
|
shouldTriggerGC(currentUsage, lastGC) {
|
|
225
233
|
const pressure = currentUsage / this.config.maxMemory;
|
|
226
234
|
const timeSinceLastGC = Date.now() - lastGC;
|
|
227
|
-
return pressure >= this.config.gcThreshold ||
|
|
228
|
-
timeSinceLastGC >= this.config.gcInterval;
|
|
235
|
+
return (pressure >= this.config.gcThreshold ||
|
|
236
|
+
timeSinceLastGC >= this.config.gcInterval);
|
|
229
237
|
}
|
|
230
238
|
/**
|
|
231
239
|
* Get configuration summary for debugging
|
|
232
240
|
*/
|
|
233
|
-
|
|
241
|
+
UploadSummary() {
|
|
234
242
|
return {
|
|
235
243
|
maxMemoryMB: Math.round(this.config.maxMemory / (1024 * 1024)),
|
|
236
244
|
gcThresholdPercent: Math.round(this.config.gcThreshold * 100),
|
|
@@ -241,8 +249,8 @@ class ConfigurationManager {
|
|
|
241
249
|
featuresEnabled: {
|
|
242
250
|
leakDetection: this.config.enableLeakDetection,
|
|
243
251
|
performanceMonitoring: this.config.enablePerformanceMonitoring,
|
|
244
|
-
eventLogging: this.config.enableEventLogging
|
|
245
|
-
}
|
|
252
|
+
eventLogging: this.config.enableEventLogging,
|
|
253
|
+
},
|
|
246
254
|
};
|
|
247
255
|
}
|
|
248
256
|
/**
|
|
@@ -269,7 +277,7 @@ class ConfigurationManager {
|
|
|
269
277
|
const errorMessage = `Failed to import configuration: ${error instanceof Error ? error.message : String(error)}`;
|
|
270
278
|
this.eventManager?.emit(MemoryEventType.ERROR_OCCURRED, {
|
|
271
279
|
error: errorMessage,
|
|
272
|
-
importError: true
|
|
280
|
+
importError: true,
|
|
273
281
|
});
|
|
274
282
|
throw new Error(errorMessage);
|
|
275
283
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config-manager.js","sources":["../../../../../../../mods/security/src/utils/memory/config-manager.ts"],"sourcesContent":[null],"names":[],"mappings":";;AAAA;;;;AAIG;AAcH;;AAEG;MACU,oBAAoB,CAAA;IAK7B,
|
|
1
|
+
{"version":3,"file":"config-manager.js","sources":["../../../../../../../mods/security/src/utils/memory/config-manager.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
|
package/dist/esm/src/FiUp.js
CHANGED
|
@@ -7,12 +7,15 @@ let globalFileUploadAPI = null;
|
|
|
7
7
|
/**
|
|
8
8
|
* Initialize the global file upload manager (legacy)
|
|
9
9
|
* This is called automatically when the server starts with file upload enabled
|
|
10
|
+
*
|
|
11
|
+
* @param configManager - The Configs class for accessing configuration
|
|
12
|
+
* @param logger - Logger instance
|
|
10
13
|
*/
|
|
11
|
-
function initializeFileUpload(
|
|
14
|
+
function initializeFileUpload(configManager, logger) {
|
|
12
15
|
if (!globalFileUploadAPI) {
|
|
13
16
|
globalFileUploadAPI = new FileUploadAPI(logger);
|
|
14
17
|
}
|
|
15
|
-
globalFileUploadAPI.initialize(
|
|
18
|
+
globalFileUploadAPI.initialize(configManager);
|
|
16
19
|
}
|
|
17
20
|
/**
|
|
18
21
|
* Create a middleware for uploading a single file (legacy)
|
package/dist/esm/src/FiUp.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FiUp.js","sources":["../../../src/FiUp.ts"],"sourcesContent":[null],"names":[],"mappings":";;AAAA;AACA;
|
|
1
|
+
{"version":3,"file":"FiUp.js","sources":["../../../src/FiUp.ts"],"sourcesContent":[null],"names":[],"mappings":";;AAAA;AACA;AAMA;AACA,IAAI,mBAAmB,GAAyB,IAAI,CAAC;AAErD;;;;;;AAMG;AACa,SAAA,oBAAoB,CAChC,aAA6B,EAC7B,MAAc,EAAA;IAEd,IAAI,CAAC,mBAAmB,EAAE;AACtB,QAAA,mBAAmB,GAAG,IAAI,aAAa,CAAC,MAAM,CAAC,CAAC;KACnD;AACD,IAAA,mBAAmB,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;AAClD,CAAC;AAED;;AAEG;AACG,SAAU,YAAY,CAAC,SAAiB,EAAA;AAC1C,IAAA,OAAO,CAAC,GAAQ,EAAE,GAAQ,EAAE,IAAS,KAAI;QACrC,IAAI,CAAC,mBAAmB,EAAE;YACtB,OAAO,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;AACxB,gBAAA,OAAO,EAAE,KAAK;AACd,gBAAA,KAAK,EAAE,qBAAqB;AAC5B,gBAAA,OAAO,EACH,sFAAsF;AAC7F,aAAA,CAAC,CAAC;SACN;AACD,QAAA,OAAO,mBAAmB,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;AACjE,KAAC,CAAC;AACN,CAAC;AAED;;AAEG;AACa,SAAA,WAAW,CAAC,SAAiB,EAAE,QAAiB,EAAA;AAC5D,IAAA,OAAO,CAAC,GAAQ,EAAE,GAAQ,EAAE,IAAS,KAAI;QACrC,IAAI,CAAC,mBAAmB,EAAE;YACtB,OAAO,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;AACxB,gBAAA,OAAO,EAAE,KAAK;AACd,gBAAA,KAAK,EAAE,qBAAqB;AAC5B,gBAAA,OAAO,EACH,sFAAsF;AAC7F,aAAA,CAAC,CAAC;SACN;AACD,QAAA,OAAO,mBAAmB,CAAC,KAAK,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;AAC1E,KAAC,CAAC;AACN,CAAC;AAED;;AAEG;AACG,SAAU,YAAY,CACxB,MAAkD,EAAA;AAElD,IAAA,OAAO,CAAC,GAAQ,EAAE,GAAQ,EAAE,IAAS,KAAI;QACrC,IAAI,CAAC,mBAAmB,EAAE;YACtB,OAAO,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;AACxB,gBAAA,OAAO,EAAE,KAAK;AACd,gBAAA,KAAK,EAAE,qBAAqB;AAC5B,gBAAA,OAAO,EACH,sFAAsF;AAC7F,aAAA,CAAC,CAAC;SACN;AACD,QAAA,OAAO,mBAAmB,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;AAC9D,KAAC,CAAC;AACN,CAAC;AAED;;AAEG;SACa,SAAS,GAAA;AACrB,IAAA,OAAO,CAAC,GAAQ,EAAE,GAAQ,EAAE,IAAS,KAAI;QACrC,IAAI,CAAC,mBAAmB,EAAE;YACtB,OAAO,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;AACxB,gBAAA,OAAO,EAAE,KAAK;AACd,gBAAA,KAAK,EAAE,qBAAqB;AAC5B,gBAAA,OAAO,EACH,sFAAsF;AAC7F,aAAA,CAAC,CAAC;SACN;QACD,OAAO,mBAAmB,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;AACrD,KAAC,CAAC;AACN;;;;"}
|
|
@@ -0,0 +1,167 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* XyPriss Configuration Manager
|
|
3
|
+
*
|
|
4
|
+
* Provides a safe way to access and update XyPriss configurations
|
|
5
|
+
* without encountering "cannot access before initialization" errors.
|
|
6
|
+
*
|
|
7
|
+
* This class acts as a singleton configuration store that can be used
|
|
8
|
+
* in modular structures where accessing `app.configs` directly might
|
|
9
|
+
* cause initialization timing issues.
|
|
10
|
+
*
|
|
11
|
+
* @example
|
|
12
|
+
* ```typescript
|
|
13
|
+
* import { Configs } from 'xypriss';
|
|
14
|
+
*
|
|
15
|
+
* // Set configuration
|
|
16
|
+
* Configs.set({
|
|
17
|
+
* fileUpload: {
|
|
18
|
+
* enabled: true,
|
|
19
|
+
* maxFileSize: 5 * 1024 * 1024
|
|
20
|
+
* }
|
|
21
|
+
* });
|
|
22
|
+
*
|
|
23
|
+
* // Get configuration
|
|
24
|
+
* const fileUploadConfig = Configs.get('fileUpload');
|
|
25
|
+
*
|
|
26
|
+
* // Get entire config
|
|
27
|
+
* const allConfigs = Configs.getAll();
|
|
28
|
+
*
|
|
29
|
+
* // Update specific config
|
|
30
|
+
* Configs.update('fileUpload', { maxFileSize: 10 * 1024 * 1024 });
|
|
31
|
+
* ```
|
|
32
|
+
*/
|
|
33
|
+
/**
|
|
34
|
+
* Configuration Manager Class
|
|
35
|
+
* Singleton pattern for managing XyPriss configurations
|
|
36
|
+
*/
|
|
37
|
+
class ConfigurationManager {
|
|
38
|
+
/**
|
|
39
|
+
* Private constructor to enforce singleton pattern
|
|
40
|
+
*/
|
|
41
|
+
constructor() {
|
|
42
|
+
this.config = {};
|
|
43
|
+
this.initialized = false;
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Get the singleton instance
|
|
47
|
+
*/
|
|
48
|
+
static getInstance() {
|
|
49
|
+
if (!ConfigurationManager.instance) {
|
|
50
|
+
ConfigurationManager.instance = new ConfigurationManager();
|
|
51
|
+
}
|
|
52
|
+
return ConfigurationManager.instance;
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Set the entire configuration
|
|
56
|
+
* @param config - Server configuration options
|
|
57
|
+
*/
|
|
58
|
+
static set(config) {
|
|
59
|
+
const instance = ConfigurationManager.getInstance();
|
|
60
|
+
instance.config = { ...instance.config, ...config };
|
|
61
|
+
instance.initialized = true;
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Get a specific configuration section
|
|
65
|
+
* @param key - Configuration key (e.g., 'fileUpload', 'security', 'cache')
|
|
66
|
+
* @returns The configuration value for the specified key
|
|
67
|
+
*/
|
|
68
|
+
static get(key) {
|
|
69
|
+
const instance = ConfigurationManager.getInstance();
|
|
70
|
+
return instance.config[key];
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Get the entire configuration object
|
|
74
|
+
* @returns Complete server configuration
|
|
75
|
+
*/
|
|
76
|
+
static getAll() {
|
|
77
|
+
const instance = ConfigurationManager.getInstance();
|
|
78
|
+
return { ...instance.config };
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* Update a specific configuration section
|
|
82
|
+
* @param key - Configuration key to update
|
|
83
|
+
* @param value - New value for the configuration section
|
|
84
|
+
*/
|
|
85
|
+
static update(key, value) {
|
|
86
|
+
const instance = ConfigurationManager.getInstance();
|
|
87
|
+
instance.config[key] = value;
|
|
88
|
+
}
|
|
89
|
+
/**
|
|
90
|
+
* Merge configuration with existing config
|
|
91
|
+
* @param config - Partial configuration to merge
|
|
92
|
+
*/
|
|
93
|
+
static merge(config) {
|
|
94
|
+
const instance = ConfigurationManager.getInstance();
|
|
95
|
+
instance.config = {
|
|
96
|
+
...instance.config,
|
|
97
|
+
...config,
|
|
98
|
+
// Deep merge for nested objects
|
|
99
|
+
server: { ...instance.config.server, ...config.server },
|
|
100
|
+
cache: { ...instance.config.cache, ...config.cache },
|
|
101
|
+
security: { ...instance.config.security, ...config.security },
|
|
102
|
+
performance: {
|
|
103
|
+
...instance.config.performance,
|
|
104
|
+
...config.performance,
|
|
105
|
+
},
|
|
106
|
+
fileUpload: { ...instance.config.fileUpload, ...config.fileUpload },
|
|
107
|
+
monitoring: { ...instance.config.monitoring, ...config.monitoring },
|
|
108
|
+
cluster: { ...instance.config.cluster, ...config.cluster },
|
|
109
|
+
multiServer: {
|
|
110
|
+
...instance.config.multiServer,
|
|
111
|
+
...config.multiServer,
|
|
112
|
+
},
|
|
113
|
+
requestManagement: {
|
|
114
|
+
...instance.config.requestManagement,
|
|
115
|
+
...config.requestManagement,
|
|
116
|
+
},
|
|
117
|
+
};
|
|
118
|
+
instance.initialized = true;
|
|
119
|
+
}
|
|
120
|
+
/**
|
|
121
|
+
* Check if configuration has been initialized
|
|
122
|
+
* @returns true if configuration has been set, false otherwise
|
|
123
|
+
*/
|
|
124
|
+
static isInitialized() {
|
|
125
|
+
const instance = ConfigurationManager.getInstance();
|
|
126
|
+
return instance.initialized;
|
|
127
|
+
}
|
|
128
|
+
/**
|
|
129
|
+
* Reset configuration to empty state
|
|
130
|
+
* Useful for testing or reinitializing
|
|
131
|
+
*/
|
|
132
|
+
static reset() {
|
|
133
|
+
const instance = ConfigurationManager.getInstance();
|
|
134
|
+
instance.config = {};
|
|
135
|
+
instance.initialized = false;
|
|
136
|
+
}
|
|
137
|
+
/**
|
|
138
|
+
* Check if a specific configuration section exists
|
|
139
|
+
* @param key - Configuration key to check
|
|
140
|
+
* @returns true if the configuration section exists
|
|
141
|
+
*/
|
|
142
|
+
static has(key) {
|
|
143
|
+
const instance = ConfigurationManager.getInstance();
|
|
144
|
+
return key in instance.config && instance.config[key] !== undefined;
|
|
145
|
+
}
|
|
146
|
+
/**
|
|
147
|
+
* Get configuration with a default value if not set
|
|
148
|
+
* @param key - Configuration key
|
|
149
|
+
* @param defaultValue - Default value to return if key doesn't exist
|
|
150
|
+
* @returns Configuration value or default value
|
|
151
|
+
*/
|
|
152
|
+
static getOrDefault(key, defaultValue) {
|
|
153
|
+
const instance = ConfigurationManager.getInstance();
|
|
154
|
+
return instance.config[key] ?? defaultValue;
|
|
155
|
+
}
|
|
156
|
+
/**
|
|
157
|
+
* Delete a specific configuration section
|
|
158
|
+
* @param key - Configuration key to delete
|
|
159
|
+
*/
|
|
160
|
+
static delete(key) {
|
|
161
|
+
const instance = ConfigurationManager.getInstance();
|
|
162
|
+
delete instance.config[key];
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
|
|
166
|
+
export { ConfigurationManager as Configs };
|
|
167
|
+
//# sourceMappingURL=config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.js","sources":["../../../src/config.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
|
|
@@ -38,15 +38,33 @@ class FileUploadAPI {
|
|
|
38
38
|
});
|
|
39
39
|
}
|
|
40
40
|
/**
|
|
41
|
-
* Initialize the file upload API with configuration
|
|
41
|
+
* Initialize the file upload API with configuration from Configs
|
|
42
|
+
*
|
|
43
|
+
* This method requires the Configs class to enforce a single source of truth.
|
|
44
|
+
* Configuration is accessed internally from Configs.get('fileUpload').
|
|
45
|
+
*
|
|
46
|
+
* @param configManager - The Configs class (not an instance, the class itself)
|
|
47
|
+
*
|
|
48
|
+
* @example
|
|
49
|
+
* ```typescript
|
|
50
|
+
* import { Configs } from 'xypriss';
|
|
51
|
+
*
|
|
52
|
+
* const upload = new FileUploadAPI();
|
|
53
|
+
* await upload.initialize(Configs);
|
|
54
|
+
* ```
|
|
42
55
|
*/
|
|
43
|
-
async initialize(
|
|
56
|
+
async initialize(configManager) {
|
|
44
57
|
if (this.initialized) {
|
|
45
58
|
return; // Already initialized
|
|
46
59
|
}
|
|
60
|
+
// Access config internally from the Configs singleton
|
|
61
|
+
const config = configManager.get("fileUpload");
|
|
62
|
+
if (!config) {
|
|
63
|
+
throw new Error("FileUpload configuration not found. Please set fileUpload config in createServer() options or use Configs.set()");
|
|
64
|
+
}
|
|
47
65
|
try {
|
|
48
66
|
this.logger.debug("server", "Initializing FileUploadAPI...");
|
|
49
|
-
this.manager = new FileUploadManager(
|
|
67
|
+
this.manager = new FileUploadManager(config, this.logger);
|
|
50
68
|
await this.manager.initialize();
|
|
51
69
|
this.initialized = true;
|
|
52
70
|
this.logger.debug("server", `FileUploadAPI initialized, enabled: ${this.manager.isEnabled()}`);
|
|
@@ -67,7 +85,7 @@ class FileUploadAPI {
|
|
|
67
85
|
*/
|
|
68
86
|
handleMulterError(err, req, res) {
|
|
69
87
|
if (err.code === "LIMIT_FILE_SIZE") {
|
|
70
|
-
const maxSize = this.manager?.
|
|
88
|
+
const maxSize = this.manager?.Upload()?.maxFileSize || 1024 * 1024;
|
|
71
89
|
const maxSizeMB = (maxSize / (1024 * 1024)).toFixed(2);
|
|
72
90
|
res.status(400).json({
|
|
73
91
|
success: false,
|
|
@@ -225,6 +243,8 @@ class FileUploadAPI {
|
|
|
225
243
|
};
|
|
226
244
|
}
|
|
227
245
|
}
|
|
246
|
+
// alias
|
|
247
|
+
const Upload = new FileUploadAPI();
|
|
228
248
|
|
|
229
|
-
export {
|
|
249
|
+
export { FileUploadAPI, Upload };
|
|
230
250
|
//# sourceMappingURL=file-upload.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"file-upload.js","sources":["../../../src/file-upload.ts"],"sourcesContent":[null],"names":[],"mappings":";;;;AAAA;;;;;;;;;;;;;;;;AAgBG;
|
|
1
|
+
{"version":3,"file":"file-upload.js","sources":["../../../src/file-upload.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
|
package/dist/esm/src/index.js
CHANGED
|
@@ -1,17 +1,17 @@
|
|
|
1
|
-
export { FileUploadAPI as FLA, FileUploadAPI } from './file-upload.js';
|
|
1
|
+
export { FileUploadAPI as FLA, FileUploadAPI, Upload } from './file-upload.js';
|
|
2
2
|
import { XyPrissRouter } from './server/routing/Router.js';
|
|
3
3
|
export { createCacheMiddleware, createServer, createServerInstance } from './server/ServerFactory.js';
|
|
4
4
|
export { Route } from './server/components/fastapi/smart-routes.js';
|
|
5
5
|
export { createOptimalCache } from './cache/CacheFactory.js';
|
|
6
6
|
export { SecurityMiddleware } from './middleware/security-middleware.js';
|
|
7
7
|
export { PerformanceMonitor } from './server/optimization/performance-monitor.js';
|
|
8
|
+
export { Configs } from './config.js';
|
|
8
9
|
export { DEFAULT_PLUGIN_CONFIG, PERFORMANCE_TARGETS, PLUGIN_SYSTEM_NAME, PLUGIN_SYSTEM_VERSION, PluginDevelopmentHelpers, PluginSystemFactory, PluginSystemUtils } from './plugins/modules/index.js';
|
|
9
10
|
export { quickServer } from './quick-start.js';
|
|
10
11
|
export { TrustProxy } from './server/utils/trustProxy.js';
|
|
11
12
|
export { createCircularRefDebugger, createSafeJsonMiddleware, safeJsonStringify, sendSafeJson, setupSafeJson } from './middleware/safe-json-middleware.js';
|
|
12
13
|
export { expressStringify, fastStringify, safeStringify } from '../mods/security/src/components/fortified-function/serializer/safe-serializer.js';
|
|
13
14
|
export { initializeFileUpload, uploadAny, uploadArray, uploadFields, uploadSingle } from './FiUp.js';
|
|
14
|
-
export { FileUploadManager as FiUp } from './server/components/fastapi/FileUploadManager.js';
|
|
15
15
|
export { PluginRegistry } from './plugins/modules/PluginRegistry.js';
|
|
16
16
|
export { PluginEngine } from './plugins/modules/PluginEngine.js';
|
|
17
17
|
export { PluginEventType, PluginPriority, PluginType } from './plugins/modules/types/PluginTypes.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../src/index.ts"],"sourcesContent":[null],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;AAyBiF;
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../src/index.ts"],"sourcesContent":[null],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;AAyBiF;AAuCjF;;AAEG;SACa,MAAM,GAAA;IAClB,OAAO,IAAI,aAAa,CAAC;AACrB,QAAA,aAAa,EAAE,KAAK;AACpB,QAAA,WAAW,EAAE,KAAK;AAClB,QAAA,MAAM,EAAE,KAAK;AAChB,KAAA,CAAC,CAAC;AACP;;;;"}
|
|
@@ -317,7 +317,8 @@ class XyPrissServer {
|
|
|
317
317
|
// Initialize the global file upload API
|
|
318
318
|
if (this.fileUploadManager.isEnabled()) {
|
|
319
319
|
const { initializeFileUpload } = await import('../file-upload.js');
|
|
320
|
-
|
|
320
|
+
const { Configs } = await import('../config.js');
|
|
321
|
+
initializeFileUpload(Configs, this.logger);
|
|
321
322
|
this.logger.debug("server", "✅ Global file upload API initialized");
|
|
322
323
|
}
|
|
323
324
|
else {
|