xypriss 1.2.3 → 1.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 (103) hide show
  1. package/README.md +138 -3
  2. package/dist/cjs/mods/security/src/components/cache/index.js +1 -1
  3. package/dist/cjs/shared/logger/Logger.js +1 -0
  4. package/dist/cjs/shared/logger/Logger.js.map +1 -1
  5. package/dist/cjs/src/cluster/bun-cluster-manager.js +1567 -0
  6. package/dist/cjs/src/cluster/bun-cluster-manager.js.map +1 -0
  7. package/dist/cjs/src/cluster/cluster-manager.js +1 -1
  8. package/dist/cjs/src/cluster/cluster-manager.js.map +1 -1
  9. package/dist/cjs/src/cluster/index.js +25 -6
  10. package/dist/cjs/src/cluster/index.js.map +1 -1
  11. package/dist/cjs/src/cluster/memory-manager.js +463 -0
  12. package/dist/cjs/src/cluster/memory-manager.js.map +1 -0
  13. package/dist/cjs/src/cluster/modules/BunIPCManager.js +603 -0
  14. package/dist/cjs/src/cluster/modules/BunIPCManager.js.map +1 -0
  15. package/dist/cjs/src/cluster/modules/ClusterFactory.js +22 -1
  16. package/dist/cjs/src/cluster/modules/ClusterFactory.js.map +1 -1
  17. package/dist/cjs/src/cluster/modules/CpuMonitor.js +658 -0
  18. package/dist/cjs/src/cluster/modules/CpuMonitor.js.map +1 -0
  19. package/dist/cjs/src/cluster/modules/ProcessMonitor.js +513 -0
  20. package/dist/cjs/src/cluster/modules/ProcessMonitor.js.map +1 -0
  21. package/dist/cjs/src/plugins/server-maintenance-plugin.js +1 -1
  22. package/dist/cjs/src/server/FastServer.js +64 -43
  23. package/dist/cjs/src/server/FastServer.js.map +1 -1
  24. package/dist/cjs/src/server/components/fastapi/ClusterManagerComponent.js +226 -10
  25. package/dist/cjs/src/server/components/fastapi/ClusterManagerComponent.js.map +1 -1
  26. package/dist/cjs/src/server/const/Cluster.config.js +174 -31
  27. package/dist/cjs/src/server/const/Cluster.config.js.map +1 -1
  28. package/dist/cjs/src/server/const/default.js +11 -2
  29. package/dist/cjs/src/server/const/default.js.map +1 -1
  30. package/dist/cjs/src/server/utils/PortManager.js +26 -15
  31. package/dist/cjs/src/server/utils/PortManager.js.map +1 -1
  32. package/dist/esm/mods/security/src/components/cache/index.js +1 -1
  33. package/dist/esm/shared/logger/Logger.js +1 -0
  34. package/dist/esm/shared/logger/Logger.js.map +1 -1
  35. package/dist/esm/src/cluster/bun-cluster-manager.js +1565 -0
  36. package/dist/esm/src/cluster/bun-cluster-manager.js.map +1 -0
  37. package/dist/esm/src/cluster/cluster-manager.js +1 -1
  38. package/dist/esm/src/cluster/cluster-manager.js.map +1 -1
  39. package/dist/esm/src/cluster/index.js +25 -6
  40. package/dist/esm/src/cluster/index.js.map +1 -1
  41. package/dist/esm/src/cluster/memory-manager.js +461 -0
  42. package/dist/esm/src/cluster/memory-manager.js.map +1 -0
  43. package/dist/esm/src/cluster/modules/BunIPCManager.js +601 -0
  44. package/dist/esm/src/cluster/modules/BunIPCManager.js.map +1 -0
  45. package/dist/esm/src/cluster/modules/ClusterFactory.js +22 -1
  46. package/dist/esm/src/cluster/modules/ClusterFactory.js.map +1 -1
  47. package/dist/esm/src/cluster/modules/CpuMonitor.js +656 -0
  48. package/dist/esm/src/cluster/modules/CpuMonitor.js.map +1 -0
  49. package/dist/esm/src/cluster/modules/ProcessMonitor.js +511 -0
  50. package/dist/esm/src/cluster/modules/ProcessMonitor.js.map +1 -0
  51. package/dist/esm/src/plugins/server-maintenance-plugin.js +1 -1
  52. package/dist/esm/src/server/FastServer.js +64 -43
  53. package/dist/esm/src/server/FastServer.js.map +1 -1
  54. package/dist/esm/src/server/components/fastapi/ClusterManagerComponent.js +226 -10
  55. package/dist/esm/src/server/components/fastapi/ClusterManagerComponent.js.map +1 -1
  56. package/dist/esm/src/server/const/Cluster.config.js +174 -31
  57. package/dist/esm/src/server/const/Cluster.config.js.map +1 -1
  58. package/dist/esm/src/server/const/default.js +11 -2
  59. package/dist/esm/src/server/const/default.js.map +1 -1
  60. package/dist/esm/src/server/utils/PortManager.js +26 -15
  61. package/dist/esm/src/server/utils/PortManager.js.map +1 -1
  62. package/dist/index.d.ts +78 -1
  63. package/package.json +3 -1
  64. package/dist/cjs/src/plugins/modules/network/index.js +0 -120
  65. package/dist/cjs/src/plugins/modules/network/index.js.map +0 -1
  66. package/dist/cjs/src/server/plugins/PluginEngine.js +0 -378
  67. package/dist/cjs/src/server/plugins/PluginEngine.js.map +0 -1
  68. package/dist/cjs/src/server/plugins/PluginRegistry.js +0 -339
  69. package/dist/cjs/src/server/plugins/PluginRegistry.js.map +0 -1
  70. package/dist/cjs/src/server/plugins/builtin/JWTAuthPlugin.js +0 -591
  71. package/dist/cjs/src/server/plugins/builtin/JWTAuthPlugin.js.map +0 -1
  72. package/dist/cjs/src/server/plugins/builtin/ResponseTimePlugin.js +0 -413
  73. package/dist/cjs/src/server/plugins/builtin/ResponseTimePlugin.js.map +0 -1
  74. package/dist/cjs/src/server/plugins/builtin/SmartCachePlugin.js +0 -843
  75. package/dist/cjs/src/server/plugins/builtin/SmartCachePlugin.js.map +0 -1
  76. package/dist/cjs/src/server/plugins/core/CachePlugin.js +0 -1975
  77. package/dist/cjs/src/server/plugins/core/CachePlugin.js.map +0 -1
  78. package/dist/cjs/src/server/plugins/core/PerformancePlugin.js +0 -894
  79. package/dist/cjs/src/server/plugins/core/PerformancePlugin.js.map +0 -1
  80. package/dist/cjs/src/server/plugins/core/SecurityPlugin.js +0 -799
  81. package/dist/cjs/src/server/plugins/core/SecurityPlugin.js.map +0 -1
  82. package/dist/cjs/src/server/plugins/types/PluginTypes.js +0 -47
  83. package/dist/cjs/src/server/plugins/types/PluginTypes.js.map +0 -1
  84. package/dist/esm/src/plugins/modules/network/index.js +0 -109
  85. package/dist/esm/src/plugins/modules/network/index.js.map +0 -1
  86. package/dist/esm/src/server/plugins/PluginEngine.js +0 -376
  87. package/dist/esm/src/server/plugins/PluginEngine.js.map +0 -1
  88. package/dist/esm/src/server/plugins/PluginRegistry.js +0 -337
  89. package/dist/esm/src/server/plugins/PluginRegistry.js.map +0 -1
  90. package/dist/esm/src/server/plugins/builtin/JWTAuthPlugin.js +0 -589
  91. package/dist/esm/src/server/plugins/builtin/JWTAuthPlugin.js.map +0 -1
  92. package/dist/esm/src/server/plugins/builtin/ResponseTimePlugin.js +0 -411
  93. package/dist/esm/src/server/plugins/builtin/ResponseTimePlugin.js.map +0 -1
  94. package/dist/esm/src/server/plugins/builtin/SmartCachePlugin.js +0 -841
  95. package/dist/esm/src/server/plugins/builtin/SmartCachePlugin.js.map +0 -1
  96. package/dist/esm/src/server/plugins/core/CachePlugin.js +0 -1973
  97. package/dist/esm/src/server/plugins/core/CachePlugin.js.map +0 -1
  98. package/dist/esm/src/server/plugins/core/PerformancePlugin.js +0 -872
  99. package/dist/esm/src/server/plugins/core/PerformancePlugin.js.map +0 -1
  100. package/dist/esm/src/server/plugins/core/SecurityPlugin.js +0 -797
  101. package/dist/esm/src/server/plugins/core/SecurityPlugin.js.map +0 -1
  102. package/dist/esm/src/server/plugins/types/PluginTypes.js +0 -47
  103. package/dist/esm/src/server/plugins/types/PluginTypes.js.map +0 -1
package/README.md CHANGED
@@ -1,12 +1,89 @@
1
+ <div align="center">
2
+ <img src="https://sdk.nehonix.space/assets/xypriss/mode/transparent/logo.png" alt="XyPriss Logo" width="200" height="200">
3
+
1
4
  # XyPriss
2
5
 
6
+ A Node.js framework extending Express.js with performance, security, and scalability features
7
+
3
8
  [![npm version](https://badge.fury.io/js/xypriss.svg)](https://badge.fury.io/js/xypriss)
4
9
  [![TypeScript](https://img.shields.io/badge/TypeScript-007ACC?style=flat&logo=typescript&logoColor=white)](https://www.typescriptlang.org/)
5
10
  [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
11
+ [![Powered by Nehonix](https://img.shields.io/badge/Powered%20by-Nehonix-blue?style=flat&logo=data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTEyIDJMMTMuMDkgOC4yNkwyMCA5TDEzLjA5IDE1Ljc0TDEyIDIyTDEwLjkxIDE1Ljc0TDQgOUwxMC45MSA4LjI2TDEyIDJaIiBmaWxsPSJ3aGl0ZSIvPgo8L3N2Zz4K)](https://nehonix.space)
12
+
13
+ </div>
14
+
15
+ ---
16
+
17
+ ## About XyPriss
6
18
 
7
19
  XyPriss is a Node.js framework that extends Express.js with additional performance, security, and scalability features. Built with TypeScript, it maintains full Express.js compatibility while adding enterprise-level capabilities for production applications.
8
20
 
9
- > **Migration Notice**: This library is the separated version of FortifyJS accessible via [the link](https://github.com/nehonix/FortifyJS) or using `npm install fortify2-js`. The FortifyJS library will be deprecated soon, so start moving from it to XyPriss for future improvements.
21
+ ### Key Benefits
22
+
23
+ - Optimized for high-performance applications
24
+ - Built-in security modules and best practices
25
+ - Intelligent clustering and load balancing
26
+ - Full Express.js compatibility with TypeScript support
27
+
28
+ > **Migration Notice**: This library is the evolved version of FortifyJS. The FortifyJS library will be deprecated soon - migrate to XyPriss for continued support and new features. [Learn more](https://github.com/nehonix/FortifyJS)
29
+
30
+ ---
31
+
32
+ ## Quick Start
33
+
34
+ ```bash
35
+ # Install XyPriss
36
+ npm install xypriss
37
+
38
+ # Or with yarn
39
+ yarn add xypriss
40
+ ```
41
+
42
+ ```typescript
43
+ import { createServer } from "xypriss";
44
+
45
+ // Create a server with enhanced features
46
+ const server = createServer({
47
+ server: { port: 3000 },
48
+ security: { enabled: true },
49
+ performance: { clustering: true },
50
+ });
51
+
52
+ // Use it like Express.js
53
+ server.get("/", (req, res) => {
54
+ res.json({
55
+ message: "Hello from XyPriss!",
56
+ powered: "Nehonix",
57
+ });
58
+ });
59
+
60
+ // Start the server
61
+ server.start();
62
+ ```
63
+
64
+ Your server is now running with enhanced performance and security features.
65
+
66
+ ---
67
+
68
+ ## Table of Contents
69
+
70
+ - [About XyPriss](#about-xypriss)
71
+ - [Quick Start](#quick-start)
72
+ - [Key Features](#key-features)
73
+ - [Performance and Scalability](#performance-and-scalability)
74
+ - [Security and Reliability](#security-and-reliability)
75
+ - [Developer Experience](#developer-experience)
76
+ - [Network Plugins](#network-plugins)
77
+ - [Installation](#installation)
78
+ - [Basic Usage](#basic-usage)
79
+ - [Configuration](#configuration)
80
+ - [Plugins](#plugins)
81
+ - [Documentation](#documentation)
82
+ - [Contributing](#contributing)
83
+ - [License](#license)
84
+ - [Support](#support)
85
+
86
+ ---
10
87
 
11
88
  ## Key Features
12
89
 
@@ -198,8 +275,6 @@ server.start(undefined, () => {
198
275
 
199
276
  ## Architecture
200
277
 
201
- XyPriss uses a modular architecture with the following core components:
202
-
203
278
  ### Core Framework (`xypriss`)
204
279
 
205
280
  - Server Factory: Enhanced Express.js server creation with `createServer()`
@@ -279,6 +354,56 @@ XyPriss is optimized for production use:
279
354
  - Low-latency cache access
280
355
  - Horizontal scaling through clustering
281
356
 
357
+ ## Available Modules
358
+
359
+ XyPriss includes several specialized modules for enhanced functionality:
360
+
361
+ ### ACPES - Advanced Cross-Platform Encrypted Storage
362
+
363
+ **Location**: `mods/ACPES/`
364
+
365
+ A secure, cross-platform storage solution that works seamlessly across Web, Mobile (React Native), and Node.js environments.
366
+
367
+ **Features:**
368
+
369
+ - Cross-platform compatibility (Web, Mobile, Node.js)
370
+ - Double AES-256 encryption with PBKDF2 key derivation
371
+ - Integrity verification with HMAC-SHA256 checksums
372
+ - Device fingerprinting for unique encryption keys
373
+ - Automatic lockout protection against brute force attacks
374
+ - TTL support for automatic data expiration
375
+ - LZ-string compression for large data
376
+
377
+ **Quick Usage:**
378
+
379
+ ```typescript
380
+ import { Storage, STORAGE_KEYS } from "xypriss-acpes";
381
+
382
+ // Store sensitive data
383
+ await Storage.setItem(STORAGE_KEYS.SESSION_TOKEN, "your-token");
384
+
385
+ // Retrieve data
386
+ const token = await Storage.getItem(STORAGE_KEYS.SESSION_TOKEN);
387
+ ```
388
+
389
+ **Documentation**: [ACPES Documentation](./mods/ACPES/docs/)
390
+
391
+ ### Security Module
392
+
393
+ **Location**: `mods/security/`
394
+
395
+ Comprehensive security utilities and middleware for XyPriss applications.
396
+
397
+ **Features:**
398
+
399
+ - Request validation and sanitization
400
+ - Rate limiting and DDoS protection
401
+ - Security headers management
402
+ - Authentication and authorization utilities
403
+ - Cryptographic functions and secure random generation
404
+
405
+ **Documentation**: [Security Module Documentation](./mods/security/docs/)
406
+
282
407
  ## Contributing
283
408
 
284
409
  Contributions are welcome. Please see our [Contributing Guide](./CONTRIBUTING.md).
@@ -293,3 +418,13 @@ MIT License - see [LICENSE](./LICENSE) file for details.
293
418
  - [GitHub Issues](https://github.com/Nehonix-Team/XyPriss/issues)
294
419
  - [Security Advisories](https://github.com/Nehonix-Team/XyPriss/security)
295
420
 
421
+ ---
422
+
423
+ ### Powered by Nehonix
424
+
425
+ XyPriss is developed and maintained by the Nehonix Team.
426
+
427
+ [![Website](https://img.shields.io/badge/Website-nehonix.space-blue?style=for-the-badge&logo=globe)](https://nehonix.space)
428
+ [![GitHub](https://img.shields.io/badge/GitHub-Nehonix--Team-black?style=for-the-badge&logo=github)](https://github.com/Nehonix-Team)
429
+ [![Twitter](https://img.shields.io/badge/Twitter-@nehonix-1DA1F2?style=for-the-badge&logo=twitter)](https://twitter.com/nehonix)
430
+
@@ -41,7 +41,7 @@ require('../../../../../src/encryption/EncryptionService.js');
41
41
  /***************************************************************************
42
42
  * XyPrissSecurity - Secure Array Types
43
43
  *
44
- * This file contains type definitions for the SecureArray modular architecture
44
+ * This file contains type definitions for the SecureArray architecture
45
45
  *
46
46
  * @author Nehonix
47
47
  * @license MIT
@@ -17,6 +17,7 @@ class Logger {
17
17
  routes: true,
18
18
  userApp: true,
19
19
  console: false, // Console interception system logs (can be verbose)
20
+ ipc: true, // Inter-process communication logs
20
21
  },
21
22
  types: {
22
23
  startup: true,
@@ -1 +1 @@
1
- {"version":3,"file":"Logger.js","sources":["../../../../shared/logger/Logger.ts"],"sourcesContent":[null],"names":[],"mappings":";;MAOa,MAAM,CAAA;AAIf,IAAA,WAAA,CAAY,MAAiC,EAAA;AACzC,QAAA,MAAM,aAAa,GAAG;AAClB,YAAA,OAAO,EAAE,IAAI;AACb,YAAA,KAAK,EAAE,MAAe;AACtB,YAAA,UAAU,EAAE;AACR,gBAAA,MAAM,EAAE,IAAI;AACZ,gBAAA,KAAK,EAAE,IAAI;AACX,gBAAA,OAAO,EAAE,IAAI;AACb,gBAAA,WAAW,EAAE,IAAI;AACjB,gBAAA,WAAW,EAAE,IAAI;AACjB,gBAAA,OAAO,EAAE,IAAI;AACb,gBAAA,QAAQ,EAAE,IAAI;AACd,gBAAA,UAAU,EAAE,IAAI;AAChB,gBAAA,MAAM,EAAE,IAAI;AACZ,gBAAA,OAAO,EAAE,IAAI;gBACb,OAAO,EAAE,KAAK;AACjB,aAAA;AACD,YAAA,KAAK,EAAE;AACH,gBAAA,OAAO,EAAE,IAAI;AACb,gBAAA,QAAQ,EAAE,IAAI;AACd,gBAAA,MAAM,EAAE,IAAI;AACZ,gBAAA,WAAW,EAAE,IAAI;AACjB,gBAAA,KAAK,EAAE,KAAK;AACZ,gBAAA,SAAS,EAAE,IAAI;AACf,gBAAA,aAAa,EAAE,IAAI;AACtB,aAAA;AACD,YAAA,MAAM,EAAE;AACJ,gBAAA,UAAU,EAAE,KAAK;AACjB,gBAAA,MAAM,EAAE,IAAI;AACZ,gBAAA,MAAM,EAAE,IAAI;AACZ,gBAAA,OAAO,EAAE,KAAK;AACjB,aAAA;SACJ,CAAC;AAEF,QAAA,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,aAAa,EAAE,MAAM,IAAI,EAAE,CAAC,CAAC;KAC7D;AAED;;AAEG;IACI,OAAO,WAAW,CAAC,MAAiC,EAAA;AACvD,QAAA,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE;YAClB,MAAM,CAAC,QAAQ,GAAG,IAAI,MAAM,CAAC,MAAM,CAAC,CAAC;SACxC;aAAM,IAAI,MAAM,EAAE;AACf,YAAA,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;SACxC;QACD,OAAO,MAAM,CAAC,QAAQ,CAAC;KAC1B;AAED;;AAEG;IACK,SAAS,CAAC,MAAW,EAAE,MAAW,EAAA;AACtC,QAAA,MAAM,MAAM,GAAG,EAAE,GAAG,MAAM,EAAE,CAAC;AAE7B,QAAA,KAAK,MAAM,GAAG,IAAI,MAAM,EAAE;YACtB,IACI,MAAM,CAAC,GAAG,CAAC;AACX,gBAAA,OAAO,MAAM,CAAC,GAAG,CAAC,KAAK,QAAQ;gBAC/B,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,EAC7B;gBACE,MAAM,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;aAChE;iBAAM;gBACH,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;aAC7B;SACJ;AAED,QAAA,OAAO,MAAM,CAAC;KACjB;AAED;;AAEG;AACI,IAAA,YAAY,CAAC,MAAgC,EAAA;AAChD,QAAA,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,IAAI,EAAE,CAAC,CAAC;KAC3D;AAED;;AAEG;IACI,SAAS,GAAA;QACZ,OAAO,IAAI,CAAC,MAAM,CAAC;KACtB;AAED;;AAEG;AACK,IAAA,SAAS,CACb,KAAe,EACf,SAAuB,EACvB,IAAc,EAAA;;AAGd,QAAA,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO;AAAE,YAAA,OAAO,KAAK,CAAC;;;;QAMxC,IACI,KAAK,KAAK,OAAO;YACjB,IAAI,CAAC,MAAM,EAAE,KAAK;AAClB,YAAA,IAAI,CAAC,MAAM,EAAE,KAAK,KAAK,QAAQ;AAE/B,YAAA,OAAO,IAAI,CAAC;;AAGhB,QAAA,MAAM,MAAM,GAAe;YACvB,OAAO;YACP,MAAM;YACN,MAAM;YACN,OAAO;YACP,SAAS;SACZ,CAAC;AACF,QAAA,MAAM,iBAAiB,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,KAAM,CAAC,CAAC;QAC9D,MAAM,iBAAiB,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAEhD,IAAI,iBAAiB,GAAG,iBAAiB;AAAE,YAAA,OAAO,KAAK,CAAC;;AAGxD,QAAA,IACI,IAAI,CAAC,MAAM,EAAE,UAAU;YACvB,IAAI,CAAC,MAAM,EAAE,UAAU,CAAC,SAAS,CAAC,KAAK,KAAK;AAE5C,YAAA,OAAO,KAAK,CAAC;;AAGjB,QAAA,IAAI,IAAI,IAAI,IAAI,CAAC,MAAM,EAAE,KAAK,IAAI,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,IAAI,CAAC,KAAK,KAAK;AAChE,YAAA,OAAO,KAAK,CAAC;AAEjB,QAAA,OAAO,IAAI,CAAC;KACf;AAED;;AAEG;AACK,IAAA,aAAa,CACjB,KAAe,EACf,SAAuB,EACvB,OAAe,EAAA;AAEf,QAAA,MAAM,MAAM,GAAG;YACX,KAAK,EAAE,UAAU;YACjB,IAAI,EAAE,UAAU;YAChB,IAAI,EAAE,UAAU;YAChB,KAAK,EAAE,UAAU;YACjB,OAAO,EAAE,UAAU;YACnB,KAAK,EAAE,SAAS;AAChB,YAAA,GAAG,EAAE,UAAU;SAClB,CAAC;QACF,IAAI,SAAS,GAAG,OAAO,CAAC;AAExB,QAAA,IAAI,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE;AAC9D,YAAA,MAAM,MAAM,GAAG,CACX,CAAA,EAAA,SAAS,KAAK,QAAQ;AAClB,kBAAE,QAAQ,CAAC,WAAW,EAAE;AACxB,kBAAE,SAAS,CAAC,WAAW,EAC/B,GAAG,CAAC;AACJ,YAAA,IAAI,KAAK,KAAK,QAAQ,EAAE;AACpB,gBAAA,SAAS,GAAG,CAAG,EAAA,MAAM,CAAI,CAAA,EAAA,OAAO,EAAE,CAAC;aACtC;iBAAM;AACH,gBAAA,IAAI,SAAS,KAAK,QAAQ,EAAE;oBACxB,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC;oBAC3C,SAAS,GAAG,GAAG,MAAM,CAAC,GAAG,CAAG,EAAA,MAAM,GAAG,MAAM,CAAC,KAAK,CAAI,CAAA,EAAA,KAAK,GAAG,OAAO,CAAA,EAAG,MAAM,CAAC,KAAK,EAAE,CAAC;iBACzF;qBAAM;AACH,oBAAA,SAAS,GAAG,CAAG,EAAA,MAAM,CAAI,CAAA,EAAA,OAAO,EAAE,CAAC;iBACtC;aACJ;SACJ;QAED,IAAI,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE;YACjC,MAAM,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;AAC3C,YAAA,SAAS,GAAG,CAAG,EAAA,SAAS,CAAI,CAAA,EAAA,SAAS,EAAE,CAAC;SAC3C;AAED,QAAA,IACI,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM;AAC3B,YAAA,KAAK,KAAK,QAAQ;YAClB,OAAO,OAAO,KAAK,WAAW;AAC9B,YAAA,OAAO,CAAC,MAAM,EAAE,KAAK,EACvB;YACE,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC;YAC3C,SAAS,GAAG,CAAG,EAAA,KAAK,CAAG,EAAA,SAAS,GAAG,MAAM,CAAC,KAAK,CAAA,CAAE,CAAC;SACrD;AAED,QAAA,OAAO,SAAS,CAAC;KACpB;AAED;;AAEG;IACK,GAAG,CACP,KAAe,EACf,SAAuB,EACvB,IAAyB,EACzB,OAAe,EACf,GAAG,IAAW,EAAA;QAEd,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,SAAS,EAAE,IAAI,CAAC;YAAE,OAAO;AAEpD,QAAA,IAAI,IAAI,CAAC,MAAM,EAAE,YAAY,EAAE;AAC3B,YAAA,IAAI,CAAC,MAAM,EAAE,YAAY,CAAC,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,CAAC;YAC9D,OAAO;SACV;AAED,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;QAEhE,QAAQ,KAAK;AACT,YAAA,KAAK,OAAO;gBACR,OAAO,CAAC,KAAK,CAAC,SAAS,EAAE,GAAG,IAAI,CAAC,CAAC;gBAClC,MAAM;AACV,YAAA,KAAK,MAAM;gBACP,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,IAAI,CAAC,CAAC;gBACjC,MAAM;AACV,YAAA;gBACI,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,GAAG,IAAI,CAAC,CAAC;gBAChC,MAAM;SACb;KACJ;;AAGM,IAAA,KAAK,CACR,SAAuB,EACvB,OAAe,EACf,GAAG,IAAW,EAAA;AAEd,QAAA,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,CAAC;KAC5D;AAEM,IAAA,IAAI,CACP,SAAuB,EACvB,OAAe,EACf,GAAG,IAAW,EAAA;AAEd,QAAA,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,CAAC;KAC7D;AAEM,IAAA,IAAI,CACP,SAAuB,EACvB,OAAe,EACf,GAAG,IAAW,EAAA;AAEd,QAAA,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,CAAC;KAC5D;AAEM,IAAA,KAAK,CACR,SAAuB,EACvB,OAAe,EACf,GAAG,IAAW,EAAA;AAEd,QAAA,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,CAAC;KAC3D;AAEM,IAAA,OAAO,CACV,SAAuB,EACvB,OAAe,EACf,GAAG,IAAW,EAAA;AAEd,QAAA,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,CAAC;KAC5D;AAEM,IAAA,WAAW,CACd,SAAuB,EACvB,OAAe,EACf,GAAG,IAAW,EAAA;AAEd,QAAA,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,SAAS,EAAE,aAAa,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,CAAC;KAChE;AAEM,IAAA,SAAS,CACZ,SAAuB,EACvB,OAAe,EACf,GAAG,IAAW,EAAA;AAEd,QAAA,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,SAAS,EAAE,WAAW,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,CAAC;KAC9D;AAEM,IAAA,aAAa,CAChB,SAAuB,EACvB,OAAe,EACf,GAAG,IAAW,EAAA;AAEd,QAAA,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,SAAS,EAAE,eAAe,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,CAAC;KAClE;AAEM,IAAA,eAAe,CAAC,OAAe,EAAE,GAAG,IAAW,EAAA;AAClD,QAAA,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,CAAC;KAC9D;;IAGM,SAAS,GAAA;AACZ,QAAA,OAAO,IAAI,CAAC,MAAM,EAAE,OAAO,IAAI,KAAK,CAAC;KACxC;IAEM,QAAQ,GAAA;AACX,QAAA,OAAO,IAAI,CAAC,MAAM,EAAE,KAAK,IAAI,MAAM,CAAC;KACvC;AAEM,IAAA,kBAAkB,CAAC,SAAuB,EAAA;QAC7C,OAAO,IAAI,CAAC,MAAM,EAAE,UAAU,GAAG,SAAS,CAAC,KAAK,KAAK,CAAC;KACzD;AAEM,IAAA,aAAa,CAAC,IAAa,EAAA;QAC9B,OAAO,IAAI,CAAC,MAAM,EAAE,KAAK,GAAG,IAAI,CAAC,KAAK,KAAK,CAAC;KAC/C;AACJ,CAAA;AAED;;AAEG;MACU,MAAM,GAAG,MAAM,CAAC,WAAW,GAAG;AAE3C;;AAEG;AACG,SAAU,gBAAgB,CAAC,MAAiC,EAAA;AAC9D,IAAA,OAAO,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;AACtC;;;;;;"}
1
+ {"version":3,"file":"Logger.js","sources":["../../../../shared/logger/Logger.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}