xypriss 2.1.1 → 2.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 +140 -1
- package/dist/cjs/src/index.js +1 -1
- package/dist/cjs/src/index.js.map +1 -1
- package/dist/cjs/src/server/FastServer.js +70 -1
- package/dist/cjs/src/server/FastServer.js.map +1 -1
- package/dist/cjs/src/server/ServerFactory.js +218 -1
- package/dist/cjs/src/server/ServerFactory.js.map +1 -1
- package/dist/cjs/src/server/components/fastapi/FileUploadManager.js +175 -0
- package/dist/cjs/src/server/components/fastapi/FileUploadManager.js.map +1 -0
- package/dist/cjs/src/server/components/fastapi/FileWatcherManager.js +183 -135
- package/dist/cjs/src/server/components/fastapi/FileWatcherManager.js.map +1 -1
- package/dist/cjs/src/server/components/lifecycle/ServerLifecycleManager.js +4 -3
- package/dist/cjs/src/server/components/lifecycle/ServerLifecycleManager.js.map +1 -1
- package/dist/cjs/src/server/components/multi-server/MultiServerManager.js +200 -0
- package/dist/cjs/src/server/components/multi-server/MultiServerManager.js.map +1 -0
- package/dist/cjs/src/server/const/default.js +41 -1
- package/dist/cjs/src/server/const/default.js.map +1 -1
- package/dist/cjs/src/server/core/HttpServer.js +6 -1
- package/dist/cjs/src/server/core/HttpServer.js.map +1 -1
- package/dist/cjs/src/server/core/XyprissApp.js +72 -10
- package/dist/cjs/src/server/core/XyprissApp.js.map +1 -1
- package/dist/esm/src/index.js +1 -1
- package/dist/esm/src/index.js.map +1 -1
- package/dist/esm/src/server/FastServer.js +71 -2
- package/dist/esm/src/server/FastServer.js.map +1 -1
- package/dist/esm/src/server/ServerFactory.js +218 -1
- package/dist/esm/src/server/ServerFactory.js.map +1 -1
- package/dist/esm/src/server/components/fastapi/FileUploadManager.js +154 -0
- package/dist/esm/src/server/components/fastapi/FileUploadManager.js.map +1 -0
- package/dist/esm/src/server/components/fastapi/FileWatcherManager.js +183 -135
- package/dist/esm/src/server/components/fastapi/FileWatcherManager.js.map +1 -1
- package/dist/esm/src/server/components/lifecycle/ServerLifecycleManager.js +4 -3
- package/dist/esm/src/server/components/lifecycle/ServerLifecycleManager.js.map +1 -1
- package/dist/esm/src/server/components/multi-server/MultiServerManager.js +198 -0
- package/dist/esm/src/server/components/multi-server/MultiServerManager.js.map +1 -0
- package/dist/esm/src/server/const/default.js +40 -2
- package/dist/esm/src/server/const/default.js.map +1 -1
- package/dist/esm/src/server/core/HttpServer.js +6 -1
- package/dist/esm/src/server/core/HttpServer.js.map +1 -1
- package/dist/esm/src/server/core/XyprissApp.js +72 -10
- package/dist/esm/src/server/core/XyprissApp.js.map +1 -1
- package/dist/index.d.ts +814 -492
- package/package.json +4 -4
- package/dist/cjs/src/server/components/fastapi/typescript/TypeScriptChecker.js +0 -373
- package/dist/cjs/src/server/components/fastapi/typescript/TypeScriptChecker.js.map +0 -1
- package/dist/esm/src/server/components/fastapi/typescript/TypeScriptChecker.js +0 -351
- package/dist/esm/src/server/components/fastapi/typescript/TypeScriptChecker.js.map +0 -1
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { XyPrissServer } from './FastServer.js';
|
|
2
|
+
import { MultiServerManager } from './components/multi-server/MultiServerManager.js';
|
|
3
|
+
import { initializeLogger } from '../../shared/logger/Logger.js';
|
|
2
4
|
export { expressStringify, fastStringify, safeStringify } from '../../mods/security/src/components/fortified-function/serializer/safe-serializer.js';
|
|
3
|
-
import '../../shared/logger/Logger.js';
|
|
4
5
|
|
|
5
6
|
/***************************************************************************
|
|
6
7
|
* XyPrissJS - Advanced JavaScript Security Library
|
|
@@ -31,11 +32,22 @@ import '../../shared/logger/Logger.js';
|
|
|
31
32
|
/**
|
|
32
33
|
* Create ultra-fast Express server (zero-async)
|
|
33
34
|
* Returns app instance ready to use immediately
|
|
35
|
+
* If multi-server mode is enabled, returns a MultiServerApp interface
|
|
34
36
|
*/
|
|
35
37
|
function createServer(options = {}) {
|
|
36
38
|
if (options.env) {
|
|
37
39
|
process.env["NODE_ENV"] = options.env;
|
|
38
40
|
}
|
|
41
|
+
// Check if multi-server mode is enabled
|
|
42
|
+
if (options.multiServer?.enabled && options.multiServer.servers) {
|
|
43
|
+
// Handle worker mode automatically and transparently
|
|
44
|
+
const finalOptions = handleWorkerMode(options);
|
|
45
|
+
// Create multi-server manager
|
|
46
|
+
const logger = initializeLogger(finalOptions.logging);
|
|
47
|
+
const multiServerManager = new MultiServerManager(finalOptions, logger);
|
|
48
|
+
// Create and return multi-server app interface
|
|
49
|
+
return createMultiServerApp(multiServerManager, options.multiServer.servers, logger);
|
|
50
|
+
}
|
|
39
51
|
// Handle worker mode automatically and transparently
|
|
40
52
|
const finalOptions = handleWorkerMode(options);
|
|
41
53
|
// The XyPrissServer already creates a XyprissApp with router support
|
|
@@ -188,6 +200,211 @@ function createCacheMiddleware(cache, options = {}) {
|
|
|
188
200
|
}
|
|
189
201
|
};
|
|
190
202
|
}
|
|
203
|
+
/**
|
|
204
|
+
* Create a MultiServerApp instance
|
|
205
|
+
*/
|
|
206
|
+
function createMultiServerApp(manager, serverConfigs, logger) {
|
|
207
|
+
// Store routes registered before servers start
|
|
208
|
+
const globalRoutes = [];
|
|
209
|
+
// Route registration methods
|
|
210
|
+
const routeMethods = {
|
|
211
|
+
get(path, ...handlers) {
|
|
212
|
+
globalRoutes.push({ method: 'GET', path, handlers });
|
|
213
|
+
},
|
|
214
|
+
post(path, ...handlers) {
|
|
215
|
+
globalRoutes.push({ method: 'POST', path, handlers });
|
|
216
|
+
},
|
|
217
|
+
put(path, ...handlers) {
|
|
218
|
+
globalRoutes.push({ method: 'PUT', path, handlers });
|
|
219
|
+
},
|
|
220
|
+
delete(path, ...handlers) {
|
|
221
|
+
globalRoutes.push({ method: 'DELETE', path, handlers });
|
|
222
|
+
},
|
|
223
|
+
patch(path, ...handlers) {
|
|
224
|
+
globalRoutes.push({ method: 'PATCH', path, handlers });
|
|
225
|
+
},
|
|
226
|
+
options(path, ...handlers) {
|
|
227
|
+
globalRoutes.push({ method: 'OPTIONS', path, handlers });
|
|
228
|
+
},
|
|
229
|
+
head(path, ...handlers) {
|
|
230
|
+
globalRoutes.push({ method: 'HEAD', path, handlers });
|
|
231
|
+
},
|
|
232
|
+
all(path, ...handlers) {
|
|
233
|
+
globalRoutes.push({ method: 'ALL', path, handlers });
|
|
234
|
+
},
|
|
235
|
+
use(...args) {
|
|
236
|
+
// Middleware registration - for now, just log
|
|
237
|
+
logger.debug("server", "Middleware registered (not yet distributed to servers)");
|
|
238
|
+
},
|
|
239
|
+
// UltraFastApp compatibility methods
|
|
240
|
+
set(setting, val) { },
|
|
241
|
+
getSetting(setting) { return undefined; },
|
|
242
|
+
enabled(setting) { return false; },
|
|
243
|
+
disabled(setting) { return true; },
|
|
244
|
+
enable(setting) { },
|
|
245
|
+
disable(setting) { },
|
|
246
|
+
engine(ext, fn) { return undefined; },
|
|
247
|
+
param(name, handler) { },
|
|
248
|
+
path() { return ''; },
|
|
249
|
+
render(view, options, callback) { },
|
|
250
|
+
route(path) { return {}; },
|
|
251
|
+
locals: {},
|
|
252
|
+
mountpath: '',
|
|
253
|
+
settings: {},
|
|
254
|
+
cache: undefined,
|
|
255
|
+
invalidateCache: () => Promise.resolve(),
|
|
256
|
+
getCacheStats: () => Promise.resolve({}),
|
|
257
|
+
warmUpCache: () => Promise.resolve(),
|
|
258
|
+
waitForReady: () => Promise.resolve(),
|
|
259
|
+
getPort: () => 0,
|
|
260
|
+
forceClosePort: () => Promise.resolve(false),
|
|
261
|
+
redirectFromPort: () => Promise.resolve(false),
|
|
262
|
+
getRedirectInstance: () => null,
|
|
263
|
+
getAllRedirectInstances: () => [],
|
|
264
|
+
disconnectRedirect: () => Promise.resolve(false),
|
|
265
|
+
disconnectAllRedirects: () => Promise.resolve(false),
|
|
266
|
+
getRedirectStats: () => null,
|
|
267
|
+
getRequestPreCompiler: () => ({}),
|
|
268
|
+
getConsoleInterceptor: () => ({}),
|
|
269
|
+
enableConsoleInterception: () => { },
|
|
270
|
+
disableConsoleInterception: () => { },
|
|
271
|
+
getConsoleStats: () => ({}),
|
|
272
|
+
resetConsoleStats: () => { },
|
|
273
|
+
getFileWatcherStatus: () => ({}),
|
|
274
|
+
getFileWatcherStats: () => ({}),
|
|
275
|
+
stopFileWatcher: () => Promise.resolve(),
|
|
276
|
+
getFileWatcherManager: () => ({}),
|
|
277
|
+
checkTypeScript: () => Promise.resolve([]),
|
|
278
|
+
getTypeScriptStatus: () => ({}),
|
|
279
|
+
enableTypeScriptChecking: () => { },
|
|
280
|
+
disableTypeScriptChecking: () => { },
|
|
281
|
+
enableConsoleEncryption: () => { },
|
|
282
|
+
disableConsoleEncryption: () => { },
|
|
283
|
+
encrypt: () => { },
|
|
284
|
+
setConsoleEncryptionKey: () => { },
|
|
285
|
+
setConsoleEncryptionDisplayMode: () => { },
|
|
286
|
+
getEncryptedLogs: () => [],
|
|
287
|
+
restoreConsoleFromEncrypted: () => Promise.resolve([]),
|
|
288
|
+
isConsoleEncryptionEnabled: () => false,
|
|
289
|
+
getConsoleEncryptionStatus: () => ({ enabled: false, hasKey: false }),
|
|
290
|
+
getRouterStats: () => ({}),
|
|
291
|
+
getRouterInfo: () => ({}),
|
|
292
|
+
warmUpRoutes: () => Promise.resolve(),
|
|
293
|
+
resetRouterStats: () => { },
|
|
294
|
+
middleware: () => ({}),
|
|
295
|
+
upload: undefined,
|
|
296
|
+
uploadSingle: () => ({}),
|
|
297
|
+
uploadArray: () => ({}),
|
|
298
|
+
uploadFields: () => ({}),
|
|
299
|
+
uploadAny: () => ({}),
|
|
300
|
+
scaleUp: () => Promise.resolve(),
|
|
301
|
+
scaleDown: () => Promise.resolve(),
|
|
302
|
+
autoScale: () => Promise.resolve(),
|
|
303
|
+
getClusterMetrics: () => Promise.resolve({}),
|
|
304
|
+
getClusterHealth: () => Promise.resolve({}),
|
|
305
|
+
getAllWorkers: () => [],
|
|
306
|
+
getOptimalWorkerCount: () => Promise.resolve(1),
|
|
307
|
+
restartCluster: () => Promise.resolve(),
|
|
308
|
+
stopCluster: () => Promise.resolve(),
|
|
309
|
+
broadcastToWorkers: () => Promise.resolve(),
|
|
310
|
+
sendToRandomWorker: () => Promise.resolve(),
|
|
311
|
+
registerPlugin: () => Promise.resolve(),
|
|
312
|
+
unregisterPlugin: () => Promise.resolve(),
|
|
313
|
+
getPlugin: () => ({}),
|
|
314
|
+
getAllPlugins: () => [],
|
|
315
|
+
getPluginsByType: () => [],
|
|
316
|
+
getPluginStats: () => ({}),
|
|
317
|
+
getPluginRegistryStats: () => ({}),
|
|
318
|
+
getPluginEngineStats: () => ({}),
|
|
319
|
+
initializeBuiltinPlugins: () => Promise.resolve(),
|
|
320
|
+
getServerPluginManager: () => ({}),
|
|
321
|
+
serverPluginManager: undefined,
|
|
322
|
+
registerRouteTemplate: () => { },
|
|
323
|
+
unregisterRouteTemplate: () => { },
|
|
324
|
+
registerOptimizationPattern: () => { },
|
|
325
|
+
getOptimizerStats: () => ({}),
|
|
326
|
+
};
|
|
327
|
+
return {
|
|
328
|
+
...routeMethods,
|
|
329
|
+
async start() {
|
|
330
|
+
return this.startAllServers();
|
|
331
|
+
},
|
|
332
|
+
async startAllServers() {
|
|
333
|
+
logger.info("server", "Starting multi-server configuration...");
|
|
334
|
+
// Create server instances
|
|
335
|
+
const instances = await manager.createServers(serverConfigs);
|
|
336
|
+
// Distribute routes to appropriate servers
|
|
337
|
+
for (const route of globalRoutes) {
|
|
338
|
+
for (const instance of instances) {
|
|
339
|
+
const serverApp = instance.server.getApp();
|
|
340
|
+
// Check if this route should be registered on this server
|
|
341
|
+
if (shouldRegisterRouteOnServer(route.path, instance.config)) {
|
|
342
|
+
try {
|
|
343
|
+
const method = route.method.toLowerCase();
|
|
344
|
+
if (method === 'all') {
|
|
345
|
+
serverApp.all(route.path, ...route.handlers);
|
|
346
|
+
}
|
|
347
|
+
else if (typeof serverApp[method] === 'function') {
|
|
348
|
+
serverApp[method](route.path, ...route.handlers);
|
|
349
|
+
}
|
|
350
|
+
}
|
|
351
|
+
catch (error) {
|
|
352
|
+
logger.error("server", `Failed to register route ${route.method} ${route.path} on server ${instance.id}:`, error);
|
|
353
|
+
}
|
|
354
|
+
}
|
|
355
|
+
}
|
|
356
|
+
}
|
|
357
|
+
// Start all servers
|
|
358
|
+
await manager.startAllServers();
|
|
359
|
+
logger.info("server", `Multi-server configuration started with ${instances.length} servers`);
|
|
360
|
+
},
|
|
361
|
+
async stop() {
|
|
362
|
+
return this.stopAllServers();
|
|
363
|
+
},
|
|
364
|
+
async stopAllServers() {
|
|
365
|
+
logger.info("server", "Stopping multi-server configuration...");
|
|
366
|
+
await manager.stopAllServers();
|
|
367
|
+
logger.info("server", "Multi-server configuration stopped");
|
|
368
|
+
},
|
|
369
|
+
getServers() {
|
|
370
|
+
return manager.getAllServers();
|
|
371
|
+
},
|
|
372
|
+
getServer(id) {
|
|
373
|
+
return manager.getServer(id);
|
|
374
|
+
},
|
|
375
|
+
getStats() {
|
|
376
|
+
return manager.getStats();
|
|
377
|
+
}
|
|
378
|
+
};
|
|
379
|
+
}
|
|
380
|
+
/**
|
|
381
|
+
* Check if a route should be registered on a specific server
|
|
382
|
+
*/
|
|
383
|
+
function shouldRegisterRouteOnServer(routePath, serverConfig) {
|
|
384
|
+
// If no route filtering is configured, allow all routes
|
|
385
|
+
if (!serverConfig.allowedRoutes && !serverConfig.routePrefix) {
|
|
386
|
+
return true;
|
|
387
|
+
}
|
|
388
|
+
// Check route prefix
|
|
389
|
+
if (serverConfig.routePrefix && routePath.startsWith(serverConfig.routePrefix)) {
|
|
390
|
+
return true;
|
|
391
|
+
}
|
|
392
|
+
// Check allowed routes patterns
|
|
393
|
+
if (serverConfig.allowedRoutes) {
|
|
394
|
+
return serverConfig.allowedRoutes.some(pattern => {
|
|
395
|
+
if (pattern.endsWith('/*')) {
|
|
396
|
+
// Wildcard pattern
|
|
397
|
+
const prefix = pattern.slice(0, -2);
|
|
398
|
+
return routePath.startsWith(prefix);
|
|
399
|
+
}
|
|
400
|
+
else {
|
|
401
|
+
// Exact match
|
|
402
|
+
return routePath === pattern;
|
|
403
|
+
}
|
|
404
|
+
});
|
|
405
|
+
}
|
|
406
|
+
return false;
|
|
407
|
+
}
|
|
191
408
|
|
|
192
409
|
export { createCacheMiddleware, createServer, createServerInstance };
|
|
193
410
|
//# sourceMappingURL=ServerFactory.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ServerFactory.js","sources":["../../../../src/server/ServerFactory.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ServerFactory.js","sources":["../../../../src/server/ServerFactory.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,154 @@
|
|
|
1
|
+
import * as path from 'path';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* File Upload Manager for XyPriss Server
|
|
5
|
+
* Handles multer configuration and file upload middleware setup
|
|
6
|
+
*/
|
|
7
|
+
class FileUploadManager {
|
|
8
|
+
constructor(config, logger) {
|
|
9
|
+
this.multer = null;
|
|
10
|
+
this.upload = null;
|
|
11
|
+
this.config = config;
|
|
12
|
+
this.logger = logger;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Initialize the file upload manager
|
|
16
|
+
*/
|
|
17
|
+
async initialize() {
|
|
18
|
+
if (!this.config.enabled) {
|
|
19
|
+
this.logger.debug("server", "File upload configuration disabled or not configured");
|
|
20
|
+
return;
|
|
21
|
+
}
|
|
22
|
+
try {
|
|
23
|
+
// Dynamic import of multer to avoid issues if not installed
|
|
24
|
+
this.multer = await import('multer');
|
|
25
|
+
// Build multer configuration from options
|
|
26
|
+
const multerConfig = {
|
|
27
|
+
storage: this.config.storage === 'memory'
|
|
28
|
+
? this.multer.memoryStorage()
|
|
29
|
+
: this.multer.diskStorage({
|
|
30
|
+
destination: this.config.destination || './uploads',
|
|
31
|
+
filename: this.config.filename || ((req, file, cb) => {
|
|
32
|
+
const uniqueSuffix = Date.now() + '-' + Math.round(Math.random() * 1E9);
|
|
33
|
+
cb(null, file.fieldname + '-' + uniqueSuffix + path.extname(file.originalname));
|
|
34
|
+
})
|
|
35
|
+
}),
|
|
36
|
+
limits: {
|
|
37
|
+
fileSize: this.config.maxFileSize || 1024 * 1024, // 1MB default
|
|
38
|
+
files: this.config.maxFiles || 1,
|
|
39
|
+
...this.config.limits
|
|
40
|
+
},
|
|
41
|
+
fileFilter: this.config.fileFilter || this.createDefaultFileFilter(),
|
|
42
|
+
preservePath: this.config.preservePath || false
|
|
43
|
+
};
|
|
44
|
+
// Apply custom multer options if provided
|
|
45
|
+
if (this.config.multerOptions) {
|
|
46
|
+
Object.assign(multerConfig, this.config.multerOptions);
|
|
47
|
+
}
|
|
48
|
+
// Debug log the configuration
|
|
49
|
+
this.logger.debug("server", `Multer config:`, {
|
|
50
|
+
storage: multerConfig.storage ? 'custom' : 'default',
|
|
51
|
+
limits: multerConfig.limits,
|
|
52
|
+
hasFileFilter: !!multerConfig.fileFilter
|
|
53
|
+
});
|
|
54
|
+
// Create multer instance with configuration
|
|
55
|
+
this.upload = this.multer.default(multerConfig);
|
|
56
|
+
// Create destination directory if using disk storage and createParentPath is enabled
|
|
57
|
+
if (this.config.storage !== 'memory' &&
|
|
58
|
+
this.config.createParentPath !== false &&
|
|
59
|
+
this.config.destination) {
|
|
60
|
+
const fs = await import('fs');
|
|
61
|
+
const destPath = path.resolve(this.config.destination);
|
|
62
|
+
if (!fs.existsSync(destPath)) {
|
|
63
|
+
fs.mkdirSync(destPath, { recursive: true });
|
|
64
|
+
this.logger.debug("server", `Created upload directory: ${destPath}`);
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
this.logger.debug("server", "File upload configuration initialized successfully");
|
|
68
|
+
this.logger.debug("server", `Upload storage: ${this.config.storage || 'disk'}`);
|
|
69
|
+
this.logger.debug("server", `Max file size: ${multerConfig.limits.fileSize} bytes`);
|
|
70
|
+
this.logger.debug("server", `Max files: ${multerConfig.limits.files}`);
|
|
71
|
+
}
|
|
72
|
+
catch (error) {
|
|
73
|
+
this.logger.error("server", "Failed to initialize file upload configuration:", error.message);
|
|
74
|
+
throw error;
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* Create default file filter based on configuration
|
|
79
|
+
*/
|
|
80
|
+
createDefaultFileFilter() {
|
|
81
|
+
return (req, file, cb) => {
|
|
82
|
+
this.logger.debug("server", `Filtering file: ${file.originalname}, type: ${file.mimetype}`);
|
|
83
|
+
// Default file filter - check allowed types if specified
|
|
84
|
+
if (this.config?.allowedMimeTypes) {
|
|
85
|
+
this.logger.debug("server", `Checking MIME types: ${this.config.allowedMimeTypes.join(', ')}`);
|
|
86
|
+
if (!this.config.allowedMimeTypes.includes(file.mimetype)) {
|
|
87
|
+
this.logger.debug("server", `MIME type ${file.mimetype} not allowed`);
|
|
88
|
+
return cb(new Error(`File type ${file.mimetype} not allowed`), false);
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
if (this.config?.allowedExtensions) {
|
|
92
|
+
const ext = path.extname(file.originalname).toLowerCase();
|
|
93
|
+
this.logger.debug("server", `Checking extensions: ${this.config.allowedExtensions.join(', ')}, file ext: ${ext}`);
|
|
94
|
+
if (!this.config.allowedExtensions.includes(ext)) {
|
|
95
|
+
this.logger.debug("server", `File extension ${ext} not allowed`);
|
|
96
|
+
return cb(new Error(`File extension ${ext} not allowed`), false);
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
this.logger.debug("server", "File passed filter");
|
|
100
|
+
cb(null, true);
|
|
101
|
+
};
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* Get the multer upload instance
|
|
105
|
+
*/
|
|
106
|
+
getUpload() {
|
|
107
|
+
return this.upload;
|
|
108
|
+
}
|
|
109
|
+
/**
|
|
110
|
+
* Get single file upload middleware
|
|
111
|
+
*/
|
|
112
|
+
single(fieldname) {
|
|
113
|
+
return this.upload?.single(fieldname);
|
|
114
|
+
}
|
|
115
|
+
/**
|
|
116
|
+
* Get array file upload middleware
|
|
117
|
+
*/
|
|
118
|
+
array(fieldname, maxCount) {
|
|
119
|
+
return this.upload?.array(fieldname, maxCount);
|
|
120
|
+
}
|
|
121
|
+
/**
|
|
122
|
+
* Get fields file upload middleware
|
|
123
|
+
*/
|
|
124
|
+
fields(fields) {
|
|
125
|
+
return this.upload?.fields(fields);
|
|
126
|
+
}
|
|
127
|
+
/**
|
|
128
|
+
* Get any file upload middleware
|
|
129
|
+
*/
|
|
130
|
+
any() {
|
|
131
|
+
return this.upload?.any();
|
|
132
|
+
}
|
|
133
|
+
/**
|
|
134
|
+
* Get none file upload middleware (for form data without files)
|
|
135
|
+
*/
|
|
136
|
+
none() {
|
|
137
|
+
return this.upload?.none();
|
|
138
|
+
}
|
|
139
|
+
/**
|
|
140
|
+
* Check if file upload is enabled
|
|
141
|
+
*/
|
|
142
|
+
isEnabled() {
|
|
143
|
+
return this.config.enabled === true && this.upload !== null;
|
|
144
|
+
}
|
|
145
|
+
/**
|
|
146
|
+
* Get current configuration
|
|
147
|
+
*/
|
|
148
|
+
getConfig() {
|
|
149
|
+
return this.config;
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
|
|
153
|
+
export { FileUploadManager };
|
|
154
|
+
//# sourceMappingURL=FileUploadManager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FileUploadManager.js","sources":["../../../../../../src/server/components/fastapi/FileUploadManager.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
|