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.
Files changed (47) hide show
  1. package/README.md +140 -1
  2. package/dist/cjs/src/index.js +1 -1
  3. package/dist/cjs/src/index.js.map +1 -1
  4. package/dist/cjs/src/server/FastServer.js +70 -1
  5. package/dist/cjs/src/server/FastServer.js.map +1 -1
  6. package/dist/cjs/src/server/ServerFactory.js +218 -1
  7. package/dist/cjs/src/server/ServerFactory.js.map +1 -1
  8. package/dist/cjs/src/server/components/fastapi/FileUploadManager.js +175 -0
  9. package/dist/cjs/src/server/components/fastapi/FileUploadManager.js.map +1 -0
  10. package/dist/cjs/src/server/components/fastapi/FileWatcherManager.js +183 -135
  11. package/dist/cjs/src/server/components/fastapi/FileWatcherManager.js.map +1 -1
  12. package/dist/cjs/src/server/components/lifecycle/ServerLifecycleManager.js +4 -3
  13. package/dist/cjs/src/server/components/lifecycle/ServerLifecycleManager.js.map +1 -1
  14. package/dist/cjs/src/server/components/multi-server/MultiServerManager.js +200 -0
  15. package/dist/cjs/src/server/components/multi-server/MultiServerManager.js.map +1 -0
  16. package/dist/cjs/src/server/const/default.js +41 -1
  17. package/dist/cjs/src/server/const/default.js.map +1 -1
  18. package/dist/cjs/src/server/core/HttpServer.js +6 -1
  19. package/dist/cjs/src/server/core/HttpServer.js.map +1 -1
  20. package/dist/cjs/src/server/core/XyprissApp.js +72 -10
  21. package/dist/cjs/src/server/core/XyprissApp.js.map +1 -1
  22. package/dist/esm/src/index.js +1 -1
  23. package/dist/esm/src/index.js.map +1 -1
  24. package/dist/esm/src/server/FastServer.js +71 -2
  25. package/dist/esm/src/server/FastServer.js.map +1 -1
  26. package/dist/esm/src/server/ServerFactory.js +218 -1
  27. package/dist/esm/src/server/ServerFactory.js.map +1 -1
  28. package/dist/esm/src/server/components/fastapi/FileUploadManager.js +154 -0
  29. package/dist/esm/src/server/components/fastapi/FileUploadManager.js.map +1 -0
  30. package/dist/esm/src/server/components/fastapi/FileWatcherManager.js +183 -135
  31. package/dist/esm/src/server/components/fastapi/FileWatcherManager.js.map +1 -1
  32. package/dist/esm/src/server/components/lifecycle/ServerLifecycleManager.js +4 -3
  33. package/dist/esm/src/server/components/lifecycle/ServerLifecycleManager.js.map +1 -1
  34. package/dist/esm/src/server/components/multi-server/MultiServerManager.js +198 -0
  35. package/dist/esm/src/server/components/multi-server/MultiServerManager.js.map +1 -0
  36. package/dist/esm/src/server/const/default.js +40 -2
  37. package/dist/esm/src/server/const/default.js.map +1 -1
  38. package/dist/esm/src/server/core/HttpServer.js +6 -1
  39. package/dist/esm/src/server/core/HttpServer.js.map +1 -1
  40. package/dist/esm/src/server/core/XyprissApp.js +72 -10
  41. package/dist/esm/src/server/core/XyprissApp.js.map +1 -1
  42. package/dist/index.d.ts +814 -492
  43. package/package.json +4 -4
  44. package/dist/cjs/src/server/components/fastapi/typescript/TypeScriptChecker.js +0 -373
  45. package/dist/cjs/src/server/components/fastapi/typescript/TypeScriptChecker.js.map +0 -1
  46. package/dist/esm/src/server/components/fastapi/typescript/TypeScriptChecker.js +0 -351
  47. 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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"}