xypriss 3.2.2 → 3.3.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 +98 -447
  2. package/dist/cjs/src/FiUp.js +88 -0
  3. package/dist/cjs/src/FiUp.js.map +1 -0
  4. package/dist/cjs/src/config.js +169 -0
  5. package/dist/cjs/src/config.js.map +1 -0
  6. package/dist/cjs/src/file-upload.js +37 -90
  7. package/dist/cjs/src/file-upload.js.map +1 -1
  8. package/dist/cjs/src/index.js +9 -5
  9. package/dist/cjs/src/index.js.map +1 -1
  10. package/dist/cjs/src/server/FastServer.js +11 -6
  11. package/dist/cjs/src/server/FastServer.js.map +1 -1
  12. package/dist/cjs/src/server/ServerFactory.js +67 -32
  13. package/dist/cjs/src/server/ServerFactory.js.map +1 -1
  14. package/dist/cjs/src/server/components/fastapi/FileUploadManager.js +31 -19
  15. package/dist/cjs/src/server/components/fastapi/FileUploadManager.js.map +1 -1
  16. package/dist/cjs/src/server/components/fastapi/console/ConsoleInterceptor.js +9 -0
  17. package/dist/cjs/src/server/components/fastapi/console/ConsoleInterceptor.js.map +1 -1
  18. package/dist/cjs/src/server/const/default.js +10 -6
  19. package/dist/cjs/src/server/const/default.js.map +1 -1
  20. package/dist/cjs/src/server/core/HttpServer.js +16 -7
  21. package/dist/cjs/src/server/core/HttpServer.js.map +1 -1
  22. package/dist/cjs/src/server/core/XyprissApp.js +2 -1
  23. package/dist/cjs/src/server/core/XyprissApp.js.map +1 -1
  24. package/dist/esm/src/FiUp.js +82 -0
  25. package/dist/esm/src/FiUp.js.map +1 -0
  26. package/dist/esm/src/config.js +167 -0
  27. package/dist/esm/src/config.js.map +1 -0
  28. package/dist/esm/src/file-upload.js +32 -86
  29. package/dist/esm/src/file-upload.js.map +1 -1
  30. package/dist/esm/src/index.js +3 -1
  31. package/dist/esm/src/index.js.map +1 -1
  32. package/dist/esm/src/server/FastServer.js +11 -6
  33. package/dist/esm/src/server/FastServer.js.map +1 -1
  34. package/dist/esm/src/server/ServerFactory.js +67 -32
  35. package/dist/esm/src/server/ServerFactory.js.map +1 -1
  36. package/dist/esm/src/server/components/fastapi/FileUploadManager.js +31 -19
  37. package/dist/esm/src/server/components/fastapi/FileUploadManager.js.map +1 -1
  38. package/dist/esm/src/server/components/fastapi/console/ConsoleInterceptor.js +9 -0
  39. package/dist/esm/src/server/components/fastapi/console/ConsoleInterceptor.js.map +1 -1
  40. package/dist/esm/src/server/const/default.js +10 -6
  41. package/dist/esm/src/server/const/default.js.map +1 -1
  42. package/dist/esm/src/server/core/HttpServer.js +16 -7
  43. package/dist/esm/src/server/core/HttpServer.js.map +1 -1
  44. package/dist/esm/src/server/core/XyprissApp.js +2 -1
  45. package/dist/esm/src/server/core/XyprissApp.js.map +1 -1
  46. package/dist/index.d.ts +228 -102
  47. package/package.json +3 -2
@@ -0,0 +1,88 @@
1
+ 'use strict';
2
+
3
+ var fileUpload = require('./file-upload.js');
4
+
5
+ // Legacy function exports for backward compatibility
6
+ // These will be deprecated in favor of the class-based API
7
+ // Global instance for backward compatibility
8
+ let globalFileUploadAPI = null;
9
+ /**
10
+ * Initialize the global file upload manager (legacy)
11
+ * This is called automatically when the server starts with file upload enabled
12
+ *
13
+ * @param configManager - The Configs class for accessing configuration
14
+ * @param logger - Logger instance
15
+ */
16
+ function initializeFileUpload(configManager, logger) {
17
+ if (!globalFileUploadAPI) {
18
+ globalFileUploadAPI = new fileUpload.FileUploadAPI(logger);
19
+ }
20
+ globalFileUploadAPI.initialize(configManager);
21
+ }
22
+ /**
23
+ * Create a middleware for uploading a single file (legacy)
24
+ */
25
+ function uploadSingle(fieldname) {
26
+ return (req, res, next) => {
27
+ if (!globalFileUploadAPI) {
28
+ return res.status(500).json({
29
+ success: false,
30
+ error: "Configuration Error",
31
+ message: "File upload not initialized. Make sure fileUpload.enabled is true in server options.",
32
+ });
33
+ }
34
+ return globalFileUploadAPI.single(fieldname)(req, res, next);
35
+ };
36
+ }
37
+ /**
38
+ * Create a middleware for uploading multiple files with the same field name (legacy)
39
+ */
40
+ function uploadArray(fieldname, maxCount) {
41
+ return (req, res, next) => {
42
+ if (!globalFileUploadAPI) {
43
+ return res.status(500).json({
44
+ success: false,
45
+ error: "Configuration Error",
46
+ message: "File upload not initialized. Make sure fileUpload.enabled is true in server options.",
47
+ });
48
+ }
49
+ return globalFileUploadAPI.array(fieldname, maxCount)(req, res, next);
50
+ };
51
+ }
52
+ /**
53
+ * Create a middleware for uploading multiple files with different field names (legacy)
54
+ */
55
+ function uploadFields(fields) {
56
+ return (req, res, next) => {
57
+ if (!globalFileUploadAPI) {
58
+ return res.status(500).json({
59
+ success: false,
60
+ error: "Configuration Error",
61
+ message: "File upload not initialized. Make sure fileUpload.enabled is true in server options.",
62
+ });
63
+ }
64
+ return globalFileUploadAPI.fields(fields)(req, res, next);
65
+ };
66
+ }
67
+ /**
68
+ * Create a middleware for uploading any files (legacy)
69
+ */
70
+ function uploadAny() {
71
+ return (req, res, next) => {
72
+ if (!globalFileUploadAPI) {
73
+ return res.status(500).json({
74
+ success: false,
75
+ error: "Configuration Error",
76
+ message: "File upload not initialized. Make sure fileUpload.enabled is true in server options.",
77
+ });
78
+ }
79
+ return globalFileUploadAPI.any()(req, res, next);
80
+ };
81
+ }
82
+
83
+ exports.initializeFileUpload = initializeFileUpload;
84
+ exports.uploadAny = uploadAny;
85
+ exports.uploadArray = uploadArray;
86
+ exports.uploadFields = uploadFields;
87
+ exports.uploadSingle = uploadSingle;
88
+ //# sourceMappingURL=FiUp.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FiUp.js","sources":["../../../src/FiUp.ts"],"sourcesContent":[null],"names":["FileUploadAPI"],"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,IAAIA,wBAAa,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,169 @@
1
+ 'use strict';
2
+
3
+ /**
4
+ * XyPriss Configuration Manager
5
+ *
6
+ * Provides a safe way to access and update XyPriss configurations
7
+ * without encountering "cannot access before initialization" errors.
8
+ *
9
+ * This class acts as a singleton configuration store that can be used
10
+ * in modular structures where accessing `app.configs` directly might
11
+ * cause initialization timing issues.
12
+ *
13
+ * @example
14
+ * ```typescript
15
+ * import { Configs } from 'xypriss';
16
+ *
17
+ * // Set configuration
18
+ * Configs.set({
19
+ * fileUpload: {
20
+ * enabled: true,
21
+ * maxFileSize: 5 * 1024 * 1024
22
+ * }
23
+ * });
24
+ *
25
+ * // Get configuration
26
+ * const fileUploadConfig = Configs.get('fileUpload');
27
+ *
28
+ * // Get entire config
29
+ * const allConfigs = Configs.getAll();
30
+ *
31
+ * // Update specific config
32
+ * Configs.update('fileUpload', { maxFileSize: 10 * 1024 * 1024 });
33
+ * ```
34
+ */
35
+ /**
36
+ * Configuration Manager Class
37
+ * Singleton pattern for managing XyPriss configurations
38
+ */
39
+ class ConfigurationManager {
40
+ /**
41
+ * Private constructor to enforce singleton pattern
42
+ */
43
+ constructor() {
44
+ this.config = {};
45
+ this.initialized = false;
46
+ }
47
+ /**
48
+ * Get the singleton instance
49
+ */
50
+ static getInstance() {
51
+ if (!ConfigurationManager.instance) {
52
+ ConfigurationManager.instance = new ConfigurationManager();
53
+ }
54
+ return ConfigurationManager.instance;
55
+ }
56
+ /**
57
+ * Set the entire configuration
58
+ * @param config - Server configuration options
59
+ */
60
+ static set(config) {
61
+ const instance = ConfigurationManager.getInstance();
62
+ instance.config = { ...instance.config, ...config };
63
+ instance.initialized = true;
64
+ }
65
+ /**
66
+ * Get a specific configuration section
67
+ * @param key - Configuration key (e.g., 'fileUpload', 'security', 'cache')
68
+ * @returns The configuration value for the specified key
69
+ */
70
+ static get(key) {
71
+ const instance = ConfigurationManager.getInstance();
72
+ return instance.config[key];
73
+ }
74
+ /**
75
+ * Get the entire configuration object
76
+ * @returns Complete server configuration
77
+ */
78
+ static getAll() {
79
+ const instance = ConfigurationManager.getInstance();
80
+ return { ...instance.config };
81
+ }
82
+ /**
83
+ * Update a specific configuration section
84
+ * @param key - Configuration key to update
85
+ * @param value - New value for the configuration section
86
+ */
87
+ static update(key, value) {
88
+ const instance = ConfigurationManager.getInstance();
89
+ instance.config[key] = value;
90
+ }
91
+ /**
92
+ * Merge configuration with existing config
93
+ * @param config - Partial configuration to merge
94
+ */
95
+ static merge(config) {
96
+ const instance = ConfigurationManager.getInstance();
97
+ instance.config = {
98
+ ...instance.config,
99
+ ...config,
100
+ // Deep merge for nested objects
101
+ server: { ...instance.config.server, ...config.server },
102
+ cache: { ...instance.config.cache, ...config.cache },
103
+ security: { ...instance.config.security, ...config.security },
104
+ performance: {
105
+ ...instance.config.performance,
106
+ ...config.performance,
107
+ },
108
+ fileUpload: { ...instance.config.fileUpload, ...config.fileUpload },
109
+ monitoring: { ...instance.config.monitoring, ...config.monitoring },
110
+ cluster: { ...instance.config.cluster, ...config.cluster },
111
+ multiServer: {
112
+ ...instance.config.multiServer,
113
+ ...config.multiServer,
114
+ },
115
+ requestManagement: {
116
+ ...instance.config.requestManagement,
117
+ ...config.requestManagement,
118
+ },
119
+ };
120
+ instance.initialized = true;
121
+ }
122
+ /**
123
+ * Check if configuration has been initialized
124
+ * @returns true if configuration has been set, false otherwise
125
+ */
126
+ static isInitialized() {
127
+ const instance = ConfigurationManager.getInstance();
128
+ return instance.initialized;
129
+ }
130
+ /**
131
+ * Reset configuration to empty state
132
+ * Useful for testing or reinitializing
133
+ */
134
+ static reset() {
135
+ const instance = ConfigurationManager.getInstance();
136
+ instance.config = {};
137
+ instance.initialized = false;
138
+ }
139
+ /**
140
+ * Check if a specific configuration section exists
141
+ * @param key - Configuration key to check
142
+ * @returns true if the configuration section exists
143
+ */
144
+ static has(key) {
145
+ const instance = ConfigurationManager.getInstance();
146
+ return key in instance.config && instance.config[key] !== undefined;
147
+ }
148
+ /**
149
+ * Get configuration with a default value if not set
150
+ * @param key - Configuration key
151
+ * @param defaultValue - Default value to return if key doesn't exist
152
+ * @returns Configuration value or default value
153
+ */
154
+ static getOrDefault(key, defaultValue) {
155
+ const instance = ConfigurationManager.getInstance();
156
+ return instance.config[key] ?? defaultValue;
157
+ }
158
+ /**
159
+ * Delete a specific configuration section
160
+ * @param key - Configuration key to delete
161
+ */
162
+ static delete(key) {
163
+ const instance = ConfigurationManager.getInstance();
164
+ delete instance.config[key];
165
+ }
166
+ }
167
+
168
+ exports.Configs = ConfigurationManager;
169
+ //# 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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"}
@@ -1,6 +1,8 @@
1
1
  'use strict';
2
2
 
3
3
  var FileUploadManager = require('./server/components/fastapi/FileUploadManager.js');
4
+ var Logger = require('../shared/logger/Logger.js');
5
+ var FiUp = require('./FiUp.js');
4
6
 
5
7
  /**
6
8
  * XyPriss File Upload API
@@ -30,23 +32,41 @@ class FileUploadAPI {
30
32
  // Use a default logger if none provided
31
33
  this.logger =
32
34
  logger ||
33
- {
34
- debug: console.debug.bind(console),
35
- info: console.info.bind(console),
36
- warn: console.warn.bind(console),
37
- error: console.error.bind(console),
38
- };
35
+ new Logger.Logger({
36
+ enabled: true,
37
+ level: "info",
38
+ components: { security: true },
39
+ types: { debug: true },
40
+ });
39
41
  }
40
42
  /**
41
- * Initialize the file upload API with configuration
43
+ * Initialize the file upload API with configuration from Configs
44
+ *
45
+ * This method requires the Configs class to enforce a single source of truth.
46
+ * Configuration is accessed internally from Configs.get('fileUpload').
47
+ *
48
+ * @param configManager - The Configs class (not an instance, the class itself)
49
+ *
50
+ * @example
51
+ * ```typescript
52
+ * import { Configs } from 'xypriss';
53
+ *
54
+ * const upload = new FileUploadAPI();
55
+ * await upload.initialize(Configs);
56
+ * ```
42
57
  */
43
- async initialize(options) {
58
+ async initialize(configManager) {
44
59
  if (this.initialized) {
45
60
  return; // Already initialized
46
61
  }
62
+ // Access config internally from the Configs singleton
63
+ const config = configManager.get("fileUpload");
64
+ if (!config) {
65
+ throw new Error("FileUpload configuration not found. Please set fileUpload config in createServer() options or use Configs.set()");
66
+ }
47
67
  try {
48
68
  this.logger.debug("server", "Initializing FileUploadAPI...");
49
- this.manager = new FileUploadManager.FileUploadManager(options, this.logger);
69
+ this.manager = new FileUploadManager.FileUploadManager(config, this.logger);
50
70
  await this.manager.initialize();
51
71
  this.initialized = true;
52
72
  this.logger.debug("server", `FileUploadAPI initialized, enabled: ${this.manager.isEnabled()}`);
@@ -225,87 +245,14 @@ class FileUploadAPI {
225
245
  };
226
246
  }
227
247
  }
228
- // Legacy function exports for backward compatibility
229
- // These will be deprecated in favor of the class-based API
230
- // Global instance for backward compatibility
231
- let globalFileUploadAPI = null;
232
- /**
233
- * Initialize the global file upload manager (legacy)
234
- * This is called automatically when the server starts with file upload enabled
235
- */
236
- function initializeFileUpload(options, logger) {
237
- if (!globalFileUploadAPI) {
238
- globalFileUploadAPI = new FileUploadAPI(logger);
239
- }
240
- globalFileUploadAPI.initialize(options);
241
- }
242
- /**
243
- * Create a middleware for uploading a single file (legacy)
244
- */
245
- function uploadSingle(fieldname) {
246
- return (req, res, next) => {
247
- if (!globalFileUploadAPI) {
248
- return res.status(500).json({
249
- success: false,
250
- error: "Configuration Error",
251
- message: "File upload not initialized. Make sure fileUpload.enabled is true in server options.",
252
- });
253
- }
254
- return globalFileUploadAPI.single(fieldname)(req, res, next);
255
- };
256
- }
257
- /**
258
- * Create a middleware for uploading multiple files with the same field name (legacy)
259
- */
260
- function uploadArray(fieldname, maxCount) {
261
- return (req, res, next) => {
262
- if (!globalFileUploadAPI) {
263
- return res.status(500).json({
264
- success: false,
265
- error: "Configuration Error",
266
- message: "File upload not initialized. Make sure fileUpload.enabled is true in server options.",
267
- });
268
- }
269
- return globalFileUploadAPI.array(fieldname, maxCount)(req, res, next);
270
- };
271
- }
272
- /**
273
- * Create a middleware for uploading multiple files with different field names (legacy)
274
- */
275
- function uploadFields(fields) {
276
- return (req, res, next) => {
277
- if (!globalFileUploadAPI) {
278
- return res.status(500).json({
279
- success: false,
280
- error: "Configuration Error",
281
- message: "File upload not initialized. Make sure fileUpload.enabled is true in server options.",
282
- });
283
- }
284
- return globalFileUploadAPI.fields(fields)(req, res, next);
285
- };
286
- }
287
- /**
288
- * Create a middleware for uploading any files (legacy)
289
- */
290
- function uploadAny() {
291
- return (req, res, next) => {
292
- if (!globalFileUploadAPI) {
293
- return res.status(500).json({
294
- success: false,
295
- error: "Configuration Error",
296
- message: "File upload not initialized. Make sure fileUpload.enabled is true in server options.",
297
- });
298
- }
299
- return globalFileUploadAPI.any()(req, res, next);
300
- };
301
- }
302
- // Export types for TypeScript users
303
- // Types are available through the main types export
248
+ // alias
249
+ const Uploader = new FileUploadAPI();
304
250
 
251
+ exports.initializeFileUpload = FiUp.initializeFileUpload;
252
+ exports.uploadAny = FiUp.uploadAny;
253
+ exports.uploadArray = FiUp.uploadArray;
254
+ exports.uploadFields = FiUp.uploadFields;
255
+ exports.uploadSingle = FiUp.uploadSingle;
305
256
  exports.FileUploadAPI = FileUploadAPI;
306
- exports.initializeFileUpload = initializeFileUpload;
307
- exports.uploadAny = uploadAny;
308
- exports.uploadArray = uploadArray;
309
- exports.uploadFields = uploadFields;
310
- exports.uploadSingle = uploadSingle;
257
+ exports.Uploader = Uploader;
311
258
  //# sourceMappingURL=file-upload.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"file-upload.js","sources":["../../../src/file-upload.ts"],"sourcesContent":[null],"names":["FileUploadManager"],"mappings":";;;;AAAA;;;;;;;;;;;;;;;;AAgBG;AAKH;;;AAGG;MACU,aAAa,CAAA;AAKtB,IAAA,WAAA,CAAY,MAAe,EAAA;QAJnB,IAAO,CAAA,OAAA,GAA6B,IAAI,CAAC;QAEzC,IAAW,CAAA,WAAA,GAAY,KAAK,CAAC;;AAIjC,QAAA,IAAI,CAAC,MAAM;YACP,MAAM;AACL,gBAAA;oBACG,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC;oBAClC,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC;oBAChC,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC;oBAChC,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC;iBAC1B,CAAC;KACpB;AAED;;AAEG;IACH,MAAM,UAAU,CAAC,OAAY,EAAA;AACzB,QAAA,IAAI,IAAI,CAAC,WAAW,EAAE;AAClB,YAAA,OAAO;SACV;AAED,QAAA,IAAI;YACA,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,EAAE,+BAA+B,CAAC,CAAC;AAC7D,YAAA,IAAI,CAAC,OAAO,GAAG,IAAIA,mCAAiB,CAAC,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;AAC3D,YAAA,MAAM,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC;AAChC,YAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;AACxB,YAAA,IAAI,CAAC,MAAM,CAAC,KAAK,CACb,QAAQ,EACR,CAAA,oCAAA,EAAuC,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,CAAA,CAAE,CACpE,CAAC;SACL;QAAC,OAAO,KAAU,EAAE;AACjB,YAAA,IAAI,CAAC,MAAM,CAAC,KAAK,CACb,QAAQ,EACR,qCAAqC,EACrC,KAAK,CAAC,OAAO,CAChB,CAAC;AACF,YAAA,MAAM,KAAK,CAAC;SACf;KACJ;AAED;;AAEG;IACH,SAAS,GAAA;QACL,OAAO,IAAI,CAAC,OAAO,EAAE,SAAS,EAAE,KAAK,IAAI,CAAC;KAC7C;AAED;;AAEG;AACK,IAAA,iBAAiB,CAAC,GAAQ,EAAE,GAAQ,EAAE,GAAQ,EAAA;AAClD,QAAA,IAAI,GAAG,CAAC,IAAI,KAAK,iBAAiB,EAAE;AAChC,YAAA,MAAM,OAAO,GACT,IAAI,CAAC,OAAO,EAAE,SAAS,EAAE,EAAE,WAAW,IAAI,IAAI,GAAG,IAAI,CAAC;AAC1D,YAAA,MAAM,SAAS,GAAG,CAAC,OAAO,IAAI,IAAI,GAAG,IAAI,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;AACvD,YAAA,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;AACjB,gBAAA,OAAO,EAAE,KAAK;AACd,gBAAA,KAAK,EAAE,gBAAgB;gBACvB,OAAO,EAAE,CAA0C,uCAAA,EAAA,SAAS,CAAI,EAAA,CAAA;AAChE,gBAAA,OAAO,EAAE;oBACL,OAAO;oBACP,SAAS;AACT,oBAAA,QAAQ,EAAE,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC,IAAI,GAAG,SAAS;AACjD,iBAAA;AACJ,aAAA,CAAC,CAAC;YACH,OAAO;SACV;AAED,QAAA,IAAI,GAAG,CAAC,IAAI,KAAK,uBAAuB,EAAE;AACtC,YAAA,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;AACjB,gBAAA,OAAO,EAAE,KAAK;AACd,gBAAA,KAAK,EAAE,kBAAkB;AACzB,gBAAA,OAAO,EAAE,4BAA4B;AACxC,aAAA,CAAC,CAAC;YACH,OAAO;SACV;AAED,QAAA,IAAI,GAAG,CAAC,IAAI,KAAK,kBAAkB,EAAE;AACjC,YAAA,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;AACjB,gBAAA,OAAO,EAAE,KAAK;AACd,gBAAA,KAAK,EAAE,gBAAgB;AACvB,gBAAA,OAAO,EAAE,yBAAyB;AACrC,aAAA,CAAC,CAAC;YACH,OAAO;SACV;;AAGD,QAAA,IAAI,GAAG,CAAC,OAAO,EAAE;YACb,IAAI,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAC,EAAE;AACxC,gBAAA,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;AACjB,oBAAA,OAAO,EAAE,KAAK;AACd,oBAAA,KAAK,EAAE,gBAAgB;oBACvB,OAAO,EAAE,GAAG,CAAC,OAAO;AACvB,iBAAA,CAAC,CAAC;gBACH,OAAO;aACV;YAED,IAAI,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE;AACrC,gBAAA,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;AACjB,oBAAA,OAAO,EAAE,KAAK;AACd,oBAAA,KAAK,EAAE,uBAAuB;oBAC9B,OAAO,EAAE,GAAG,CAAC,OAAO;AACvB,iBAAA,CAAC,CAAC;gBACH,OAAO;aACV;SACJ;;AAGD,QAAA,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;AACjB,YAAA,OAAO,EAAE,KAAK;AACd,YAAA,KAAK,EAAE,cAAc;AACrB,YAAA,OAAO,EAAE,GAAG,CAAC,OAAO,IAAI,sCAAsC;AACjE,SAAA,CAAC,CAAC;KACN;AAED;;;;;AAKG;AACH,IAAA,MAAM,CAAC,SAAiB,EAAA;AACpB,QAAA,OAAO,CAAC,GAAQ,EAAE,GAAQ,EAAE,IAAS,KAAI;AACrC,YAAA,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,EAAE;gBACnB,OAAO,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;AACxB,oBAAA,OAAO,EAAE,KAAK;AACd,oBAAA,KAAK,EAAE,qBAAqB;AAC5B,oBAAA,OAAO,EACH,4EAA4E;AACnF,iBAAA,CAAC,CAAC;aACN;;AAGD,YAAA,IAAI,CAAC,OAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,GAAQ,KAAI;gBACnD,IAAI,GAAG,EAAE;oBACL,IAAI,CAAC,iBAAiB,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;iBACzC;qBAAM;AACH,oBAAA,IAAI,EAAE,CAAC;iBACV;AACL,aAAC,CAAC,CAAC;AACP,SAAC,CAAC;KACL;AAED;;;;;;AAMG;IACH,KAAK,CAAC,SAAiB,EAAE,QAAiB,EAAA;AACtC,QAAA,OAAO,CAAC,GAAQ,EAAE,GAAQ,EAAE,IAAS,KAAI;AACrC,YAAA,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,EAAE;gBACnB,OAAO,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;AACxB,oBAAA,OAAO,EAAE,KAAK;AACd,oBAAA,KAAK,EAAE,qBAAqB;AAC5B,oBAAA,OAAO,EACH,4EAA4E;AACnF,iBAAA,CAAC,CAAC;aACN;AAED,YAAA,IAAI,CAAC,OAAQ,CAAC,KAAK,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,GAAQ,KAAI;gBAC5D,IAAI,GAAG,EAAE;oBACL,IAAI,CAAC,iBAAiB,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;iBACzC;qBAAM;AACH,oBAAA,IAAI,EAAE,CAAC;iBACV;AACL,aAAC,CAAC,CAAC;AACP,SAAC,CAAC;KACL;AAED;;;;;AAKG;AACH,IAAA,MAAM,CAAC,MAAkD,EAAA;AACrD,QAAA,OAAO,CAAC,GAAQ,EAAE,GAAQ,EAAE,IAAS,KAAI;AACrC,YAAA,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,EAAE;gBACnB,OAAO,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;AACxB,oBAAA,OAAO,EAAE,KAAK;AACd,oBAAA,KAAK,EAAE,qBAAqB;AAC5B,oBAAA,OAAO,EACH,4EAA4E;AACnF,iBAAA,CAAC,CAAC;aACN;AAED,YAAA,IAAI,CAAC,OAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,GAAQ,KAAI;gBAChD,IAAI,GAAG,EAAE;oBACL,IAAI,CAAC,iBAAiB,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;iBACzC;qBAAM;AACH,oBAAA,IAAI,EAAE,CAAC;iBACV;AACL,aAAC,CAAC,CAAC;AACP,SAAC,CAAC;KACL;AAED;;;;AAIG;IACH,GAAG,GAAA;AACC,QAAA,OAAO,CAAC,GAAQ,EAAE,GAAQ,EAAE,IAAS,KAAI;AACrC,YAAA,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,EAAE;gBACnB,OAAO,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;AACxB,oBAAA,OAAO,EAAE,KAAK;AACd,oBAAA,KAAK,EAAE,qBAAqB;AAC5B,oBAAA,OAAO,EACH,4EAA4E;AACnF,iBAAA,CAAC,CAAC;aACN;AAED,YAAA,IAAI,CAAC,OAAQ,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,GAAQ,KAAI;gBACvC,IAAI,GAAG,EAAE;oBACL,IAAI,CAAC,iBAAiB,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;iBACzC;qBAAM;AACH,oBAAA,IAAI,EAAE,CAAC;iBACV;AACL,aAAC,CAAC,CAAC;AACP,SAAC,CAAC;KACL;AACJ,CAAA;AAED;AACA;AAEA;AACA,IAAI,mBAAmB,GAAyB,IAAI,CAAC;AAErD;;;AAGG;AACa,SAAA,oBAAoB,CAAC,OAAY,EAAE,MAAc,EAAA;IAC7D,IAAI,CAAC,mBAAmB,EAAE;AACtB,QAAA,mBAAmB,GAAG,IAAI,aAAa,CAAC,MAAM,CAAC,CAAC;KACnD;AACD,IAAA,mBAAmB,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;AAC5C,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,CAAC;AAED;AACA;;;;;;;;;"}
1
+ {"version":3,"file":"file-upload.js","sources":["../../../src/file-upload.ts"],"sourcesContent":[null],"names":["Logger","FileUploadManager"],"mappings":"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"}
@@ -7,11 +7,13 @@ var smartRoutes = require('./server/components/fastapi/smart-routes.js');
7
7
  var CacheFactory = require('./cache/CacheFactory.js');
8
8
  var securityMiddleware = require('./middleware/security-middleware.js');
9
9
  var performanceMonitor = require('./server/optimization/performance-monitor.js');
10
+ var config = require('./config.js');
10
11
  var index = require('./plugins/modules/index.js');
11
12
  var quickStart = require('./quick-start.js');
12
13
  var trustProxy = require('./server/utils/trustProxy.js');
13
14
  var safeJsonMiddleware = require('./middleware/safe-json-middleware.js');
14
15
  var safeSerializer = require('../mods/security/src/components/fortified-function/serializer/safe-serializer.js');
16
+ var FiUp = require('./FiUp.js');
15
17
  var PluginRegistry = require('./plugins/modules/PluginRegistry.js');
16
18
  var PluginEngine = require('./plugins/modules/PluginEngine.js');
17
19
  var PluginTypes = require('./plugins/modules/types/PluginTypes.js');
@@ -69,11 +71,7 @@ function Router() {
69
71
 
70
72
  exports.FLA = fileUpload.FileUploadAPI;
71
73
  exports.FileUploadAPI = fileUpload.FileUploadAPI;
72
- exports.initializeFileUpload = fileUpload.initializeFileUpload;
73
- exports.uploadAny = fileUpload.uploadAny;
74
- exports.uploadArray = fileUpload.uploadArray;
75
- exports.uploadFields = fileUpload.uploadFields;
76
- exports.uploadSingle = fileUpload.uploadSingle;
74
+ exports.Uploader = fileUpload.Uploader;
77
75
  exports.XyPrissRouter = Router$1.XyPrissRouter;
78
76
  exports.createCacheMiddleware = ServerFactory.createCacheMiddleware;
79
77
  exports.createServer = ServerFactory.createServer;
@@ -82,6 +80,7 @@ exports.Route = smartRoutes.Route;
82
80
  exports.createOptimalCache = CacheFactory.createOptimalCache;
83
81
  exports.SecurityMiddleware = securityMiddleware.SecurityMiddleware;
84
82
  exports.PerformanceMonitor = performanceMonitor.PerformanceMonitor;
83
+ exports.Configs = config.Configs;
85
84
  exports.DEFAULT_PLUGIN_CONFIG = index.DEFAULT_PLUGIN_CONFIG;
86
85
  exports.PERFORMANCE_TARGETS = index.PERFORMANCE_TARGETS;
87
86
  exports.PLUGIN_SYSTEM_NAME = index.PLUGIN_SYSTEM_NAME;
@@ -99,6 +98,11 @@ exports.setupSafeJson = safeJsonMiddleware.setupSafeJson;
99
98
  exports.expressStringify = safeSerializer.expressStringify;
100
99
  exports.fastStringify = safeSerializer.fastStringify;
101
100
  exports.safeStringify = safeSerializer.safeStringify;
101
+ exports.initializeFileUpload = FiUp.initializeFileUpload;
102
+ exports.uploadAny = FiUp.uploadAny;
103
+ exports.uploadArray = FiUp.uploadArray;
104
+ exports.uploadFields = FiUp.uploadFields;
105
+ exports.uploadSingle = FiUp.uploadSingle;
102
106
  exports.PluginRegistry = PluginRegistry.PluginRegistry;
103
107
  exports.PluginEngine = PluginEngine.PluginEngine;
104
108
  Object.defineProperty(exports, 'PluginEventType', {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../src/index.ts"],"sourcesContent":[null],"names":["XyPrissRouter"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;AAyBiF;AAoCjF;;AAEG;SACa,MAAM,GAAA;IAClB,OAAO,IAAIA,sBAAa,CAAC;AACrB,QAAA,aAAa,EAAE,KAAK;AACpB,QAAA,WAAW,EAAE,KAAK;AAClB,QAAA,MAAM,EAAE,KAAK;AAChB,KAAA,CAAC,CAAC;AACP;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"index.js","sources":["../../../src/index.ts"],"sourcesContent":[null],"names":["XyPrissRouter"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;AAyBiF;AAuCjF;;AAEG;SACa,MAAM,GAAA;IAClB,OAAO,IAAIA,sBAAa,CAAC;AACrB,QAAA,aAAa,EAAE,KAAK;AACpB,QAAA,WAAW,EAAE,KAAK;AAClB,QAAA,MAAM,EAAE,KAAK;AAChB,KAAA,CAAC,CAAC;AACP;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -93,7 +93,7 @@ class XyPrissServer {
93
93
  this.logger = Logger.initializeLogger(this.options.logging);
94
94
  this.logger.startup("server", "Creating server...");
95
95
  // Create custom HTTP server app (Express-free)
96
- this.app = new XyprissApp.XyprissApp(this.logger);
96
+ this.app = new XyprissApp.XyprissApp(this.logger, this.options);
97
97
  // Expose logger on app object for debugging
98
98
  this.app.logger = this.logger;
99
99
  // Initialize file upload methods synchronously (before async initialization)
@@ -319,7 +319,8 @@ class XyPrissServer {
319
319
  // Initialize the global file upload API
320
320
  if (this.fileUploadManager.isEnabled()) {
321
321
  const { initializeFileUpload } = await Promise.resolve().then(function () { return require('../file-upload.js'); });
322
- initializeFileUpload(this.options.fileUpload || {}, this.logger);
322
+ const { Configs } = await Promise.resolve().then(function () { return require('../config.js'); });
323
+ initializeFileUpload(Configs, this.logger);
323
324
  this.logger.debug("server", "✅ Global file upload API initialized");
324
325
  }
325
326
  else {
@@ -439,13 +440,15 @@ class XyPrissServer {
439
440
  const deepMerge = (target, source) => {
440
441
  if (source === null || source === undefined)
441
442
  return target;
442
- if (typeof source !== 'object' || typeof target !== 'object')
443
+ if (typeof source !== "object" || typeof target !== "object")
443
444
  return source;
444
445
  const result = { ...target };
445
446
  for (const key in source) {
446
447
  if (source.hasOwnProperty(key)) {
447
- if (typeof source[key] === 'object' && source[key] !== null &&
448
- typeof target[key] === 'object' && target[key] !== null) {
448
+ if (typeof source[key] === "object" &&
449
+ source[key] !== null &&
450
+ typeof target[key] === "object" &&
451
+ target[key] !== null) {
449
452
  result[key] = deepMerge(target[key], source[key]);
450
453
  }
451
454
  else {
@@ -583,7 +586,9 @@ class XyPrissServer {
583
586
  const trustProxyConfig = this.options.server?.trustProxy;
584
587
  if (trustProxyConfig !== undefined) {
585
588
  this.app.setTrustProxy(trustProxyConfig);
586
- this.logger.debug("server", `Trust proxy configured: ${typeof trustProxyConfig === 'function' ? 'custom function' : JSON.stringify(trustProxyConfig)}`);
589
+ this.logger.debug("server", `Trust proxy configured: ${typeof trustProxyConfig === "function"
590
+ ? "custom function"
591
+ : JSON.stringify(trustProxyConfig)}`);
587
592
  }
588
593
  else {
589
594
  // Use default from configuration