xypriss 1.3.8 → 2.1.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 (221) hide show
  1. package/README.md +232 -254
  2. package/dist/cjs/mods/security/src/algorithms/hash-algorithms.js +10 -0
  3. package/dist/cjs/mods/security/src/algorithms/hash-algorithms.js.map +1 -1
  4. package/dist/cjs/mods/security/src/components/cache/cacheSys.utils.js +10 -0
  5. package/dist/cjs/mods/security/src/components/cache/cacheSys.utils.js.map +1 -1
  6. package/dist/cjs/mods/security/src/components/cache/index.js +10 -74
  7. package/dist/cjs/mods/security/src/components/cache/index.js.map +1 -1
  8. package/dist/cjs/mods/security/src/components/fortified-function/index.js +9 -0
  9. package/dist/cjs/mods/security/src/components/fortified-function/index.js.map +1 -1
  10. package/dist/cjs/mods/security/src/components/fortified-function/security/security-handler.js +10 -0
  11. package/dist/cjs/mods/security/src/components/fortified-function/security/security-handler.js.map +1 -1
  12. package/dist/cjs/mods/security/src/core/crypto.js +14 -0
  13. package/dist/cjs/mods/security/src/core/crypto.js.map +1 -1
  14. package/dist/cjs/mods/security/src/index.js +10 -4
  15. package/dist/cjs/mods/security/src/index.js.map +1 -1
  16. package/dist/cjs/shared/logger/Logger.js +374 -29
  17. package/dist/cjs/shared/logger/Logger.js.map +1 -1
  18. package/dist/cjs/src/cluster/bun-cluster-manager.js +91 -1
  19. package/dist/cjs/src/cluster/bun-cluster-manager.js.map +1 -1
  20. package/dist/cjs/src/cluster/cluster-manager.js +15 -3
  21. package/dist/cjs/src/cluster/cluster-manager.js.map +1 -1
  22. package/dist/cjs/src/cluster/modules/AutoScaler.js +4 -4
  23. package/dist/cjs/src/cluster/modules/AutoScaler.js.map +1 -1
  24. package/dist/cjs/src/cluster/modules/CrossPlatformMemory.js +2 -2
  25. package/dist/cjs/src/cluster/modules/CrossPlatformMemory.js.map +1 -1
  26. package/dist/cjs/src/cluster/modules/EventLoopMonitor.js +270 -0
  27. package/dist/cjs/src/cluster/modules/EventLoopMonitor.js.map +1 -0
  28. package/dist/cjs/src/cluster/modules/GCStatsTracker.js +200 -0
  29. package/dist/cjs/src/cluster/modules/GCStatsTracker.js.map +1 -0
  30. package/dist/cjs/src/cluster/modules/HeapStatsCollector.js +111 -0
  31. package/dist/cjs/src/cluster/modules/HeapStatsCollector.js.map +1 -0
  32. package/dist/cjs/src/cluster/modules/NetworkTracker.js +162 -0
  33. package/dist/cjs/src/cluster/modules/NetworkTracker.js.map +1 -0
  34. package/dist/cjs/src/cluster/modules/ThroughputCalculator.js +186 -0
  35. package/dist/cjs/src/cluster/modules/ThroughputCalculator.js.map +1 -0
  36. package/dist/cjs/src/cluster/modules/WorkerManager.js +14 -15
  37. package/dist/cjs/src/cluster/modules/WorkerManager.js.map +1 -1
  38. package/dist/cjs/src/cluster/modules/{LoadBalancer.js → strategy/LoadBalancer.js} +1 -1
  39. package/dist/cjs/src/cluster/modules/strategy/LoadBalancer.js.map +1 -0
  40. package/dist/cjs/src/index.js +55 -61
  41. package/dist/cjs/src/index.js.map +1 -1
  42. package/dist/cjs/src/middleware/XyPrissMiddlewareAPI.js +281 -0
  43. package/dist/cjs/src/middleware/XyPrissMiddlewareAPI.js.map +1 -0
  44. package/dist/cjs/src/middleware/built-in/index.js +325 -0
  45. package/dist/cjs/src/middleware/built-in/index.js.map +1 -0
  46. package/dist/cjs/src/middleware/built-in/sqlInjection.js +335 -0
  47. package/dist/cjs/src/middleware/built-in/sqlInjection.js.map +1 -0
  48. package/dist/cjs/src/middleware/safe-json-middleware.js +1 -1
  49. package/dist/cjs/src/middleware/safe-json-middleware.js.map +1 -1
  50. package/dist/cjs/src/middleware/security-middleware.js +447 -332
  51. package/dist/cjs/src/middleware/security-middleware.js.map +1 -1
  52. package/dist/cjs/src/plugins/modules/builtin/ResponseTimePlugin.js +1 -1
  53. package/dist/cjs/src/plugins/modules/builtin/ResponseTimePlugin.js.map +1 -1
  54. package/dist/cjs/src/plugins/modules/index.js +9 -3
  55. package/dist/cjs/src/plugins/modules/index.js.map +1 -1
  56. package/dist/cjs/src/quick-start.js +0 -4
  57. package/dist/cjs/src/quick-start.js.map +1 -1
  58. package/dist/cjs/src/server/FastServer.js +94 -412
  59. package/dist/cjs/src/server/FastServer.js.map +1 -1
  60. package/dist/cjs/src/server/ServerFactory.js +69 -64
  61. package/dist/cjs/src/server/ServerFactory.js.map +1 -1
  62. package/dist/cjs/src/server/components/fastapi/ClusterManagerComponent.js +31 -5
  63. package/dist/cjs/src/server/components/fastapi/ClusterManagerComponent.js.map +1 -1
  64. package/dist/cjs/src/server/components/fastapi/PerformanceManager.js +1 -1
  65. package/dist/cjs/src/server/components/fastapi/PerformanceManager.js.map +1 -1
  66. package/dist/cjs/src/server/components/fastapi/RouteManager.js +0 -82
  67. package/dist/cjs/src/server/components/fastapi/RouteManager.js.map +1 -1
  68. package/dist/cjs/src/server/components/fastapi/WorkerPoolComponent.js +206 -0
  69. package/dist/cjs/src/server/components/fastapi/WorkerPoolComponent.js.map +1 -0
  70. package/dist/cjs/src/server/components/fastapi/console/ConsoleInterceptor.js +3 -28
  71. package/dist/cjs/src/server/components/fastapi/console/ConsoleInterceptor.js.map +1 -1
  72. package/dist/cjs/src/server/components/fastapi/modules/UFRP/WorkerPoolManager.js +265 -0
  73. package/dist/cjs/src/server/components/fastapi/modules/UFRP/WorkerPoolManager.js.map +1 -0
  74. package/dist/cjs/src/server/components/fastapi/modules/UFRP/workers/Logger.js +236 -0
  75. package/dist/cjs/src/server/components/fastapi/modules/UFRP/workers/cpu-tasks.js +294 -0
  76. package/dist/cjs/src/server/components/fastapi/modules/UFRP/workers/enhanced-cpu-worker.js +433 -0
  77. package/dist/cjs/src/server/components/fastapi/modules/UFRP/workers/io-worker.js +1615 -0
  78. package/dist/cjs/src/server/components/lifecycle/ServerLifecycleManager.js +503 -0
  79. package/dist/cjs/src/server/components/lifecycle/ServerLifecycleManager.js.map +1 -0
  80. package/dist/cjs/src/server/const/default.js +23 -17
  81. package/dist/cjs/src/server/const/default.js.map +1 -1
  82. package/dist/cjs/src/server/core/HttpServer.js +500 -0
  83. package/dist/cjs/src/server/core/HttpServer.js.map +1 -0
  84. package/dist/cjs/src/server/core/XyprissApp.js +679 -0
  85. package/dist/cjs/src/server/core/XyprissApp.js.map +1 -0
  86. package/dist/cjs/src/server/handlers/NotFoundHandler.js +1 -1
  87. package/dist/cjs/src/server/handlers/NotFoundHandler.js.map +1 -1
  88. package/dist/cjs/src/server/middleware/MiddlewareManager.js +191 -0
  89. package/dist/cjs/src/server/middleware/MiddlewareManager.js.map +1 -0
  90. package/dist/cjs/src/server/routing/Router.js +341 -0
  91. package/dist/cjs/src/server/routing/Router.js.map +1 -0
  92. package/dist/cjs/src/server/utils/PortManager.js +1 -0
  93. package/dist/cjs/src/server/utils/PortManager.js.map +1 -1
  94. package/dist/cjs/src/server/utils/forceClosePort.js +294 -88
  95. package/dist/cjs/src/server/utils/forceClosePort.js.map +1 -1
  96. package/dist/esm/mods/security/src/algorithms/hash-algorithms.js +10 -0
  97. package/dist/esm/mods/security/src/algorithms/hash-algorithms.js.map +1 -1
  98. package/dist/esm/mods/security/src/components/cache/cacheSys.utils.js +10 -0
  99. package/dist/esm/mods/security/src/components/cache/cacheSys.utils.js.map +1 -1
  100. package/dist/esm/mods/security/src/components/cache/index.js +11 -72
  101. package/dist/esm/mods/security/src/components/cache/index.js.map +1 -1
  102. package/dist/esm/mods/security/src/components/fortified-function/index.js +9 -0
  103. package/dist/esm/mods/security/src/components/fortified-function/index.js.map +1 -1
  104. package/dist/esm/mods/security/src/components/fortified-function/security/security-handler.js +10 -0
  105. package/dist/esm/mods/security/src/components/fortified-function/security/security-handler.js.map +1 -1
  106. package/dist/esm/mods/security/src/core/crypto.js +14 -0
  107. package/dist/esm/mods/security/src/core/crypto.js.map +1 -1
  108. package/dist/esm/mods/security/src/index.js +11 -2
  109. package/dist/esm/mods/security/src/index.js.map +1 -1
  110. package/dist/esm/shared/logger/Logger.js +374 -29
  111. package/dist/esm/shared/logger/Logger.js.map +1 -1
  112. package/dist/esm/src/cluster/bun-cluster-manager.js +91 -1
  113. package/dist/esm/src/cluster/bun-cluster-manager.js.map +1 -1
  114. package/dist/esm/src/cluster/cluster-manager.js +15 -3
  115. package/dist/esm/src/cluster/cluster-manager.js.map +1 -1
  116. package/dist/esm/src/cluster/modules/AutoScaler.js +4 -4
  117. package/dist/esm/src/cluster/modules/AutoScaler.js.map +1 -1
  118. package/dist/esm/src/cluster/modules/CrossPlatformMemory.js +2 -2
  119. package/dist/esm/src/cluster/modules/CrossPlatformMemory.js.map +1 -1
  120. package/dist/esm/src/cluster/modules/EventLoopMonitor.js +268 -0
  121. package/dist/esm/src/cluster/modules/EventLoopMonitor.js.map +1 -0
  122. package/dist/esm/src/cluster/modules/GCStatsTracker.js +198 -0
  123. package/dist/esm/src/cluster/modules/GCStatsTracker.js.map +1 -0
  124. package/dist/esm/src/cluster/modules/HeapStatsCollector.js +109 -0
  125. package/dist/esm/src/cluster/modules/HeapStatsCollector.js.map +1 -0
  126. package/dist/esm/src/cluster/modules/NetworkTracker.js +160 -0
  127. package/dist/esm/src/cluster/modules/NetworkTracker.js.map +1 -0
  128. package/dist/esm/src/cluster/modules/ThroughputCalculator.js +184 -0
  129. package/dist/esm/src/cluster/modules/ThroughputCalculator.js.map +1 -0
  130. package/dist/esm/src/cluster/modules/WorkerManager.js +14 -14
  131. package/dist/esm/src/cluster/modules/WorkerManager.js.map +1 -1
  132. package/dist/esm/src/cluster/modules/{LoadBalancer.js → strategy/LoadBalancer.js} +1 -1
  133. package/dist/esm/src/cluster/modules/strategy/LoadBalancer.js.map +1 -0
  134. package/dist/esm/src/index.js +41 -11
  135. package/dist/esm/src/index.js.map +1 -1
  136. package/dist/esm/src/middleware/XyPrissMiddlewareAPI.js +279 -0
  137. package/dist/esm/src/middleware/XyPrissMiddlewareAPI.js.map +1 -0
  138. package/dist/esm/src/middleware/built-in/index.js +323 -0
  139. package/dist/esm/src/middleware/built-in/index.js.map +1 -0
  140. package/dist/esm/src/middleware/built-in/sqlInjection.js +333 -0
  141. package/dist/esm/src/middleware/built-in/sqlInjection.js.map +1 -0
  142. package/dist/esm/src/middleware/safe-json-middleware.js +1 -1
  143. package/dist/esm/src/middleware/safe-json-middleware.js.map +1 -1
  144. package/dist/esm/src/middleware/security-middleware.js +447 -332
  145. package/dist/esm/src/middleware/security-middleware.js.map +1 -1
  146. package/dist/esm/src/plugins/modules/builtin/ResponseTimePlugin.js +1 -1
  147. package/dist/esm/src/plugins/modules/builtin/ResponseTimePlugin.js.map +1 -1
  148. package/dist/esm/src/plugins/modules/index.js +9 -3
  149. package/dist/esm/src/plugins/modules/index.js.map +1 -1
  150. package/dist/esm/src/quick-start.js +0 -4
  151. package/dist/esm/src/quick-start.js.map +1 -1
  152. package/dist/esm/src/server/FastServer.js +94 -412
  153. package/dist/esm/src/server/FastServer.js.map +1 -1
  154. package/dist/esm/src/server/ServerFactory.js +70 -61
  155. package/dist/esm/src/server/ServerFactory.js.map +1 -1
  156. package/dist/esm/src/server/components/fastapi/ClusterManagerComponent.js +31 -5
  157. package/dist/esm/src/server/components/fastapi/ClusterManagerComponent.js.map +1 -1
  158. package/dist/esm/src/server/components/fastapi/PerformanceManager.js +1 -1
  159. package/dist/esm/src/server/components/fastapi/PerformanceManager.js.map +1 -1
  160. package/dist/esm/src/server/components/fastapi/RouteManager.js +0 -82
  161. package/dist/esm/src/server/components/fastapi/RouteManager.js.map +1 -1
  162. package/dist/esm/src/server/components/fastapi/WorkerPoolComponent.js +204 -0
  163. package/dist/esm/src/server/components/fastapi/WorkerPoolComponent.js.map +1 -0
  164. package/dist/esm/src/server/components/fastapi/console/ConsoleInterceptor.js +2 -27
  165. package/dist/esm/src/server/components/fastapi/console/ConsoleInterceptor.js.map +1 -1
  166. package/dist/esm/src/server/components/fastapi/modules/UFRP/WorkerPoolManager.js +263 -0
  167. package/dist/esm/src/server/components/fastapi/modules/UFRP/WorkerPoolManager.js.map +1 -0
  168. package/dist/esm/src/server/components/fastapi/modules/UFRP/workers/Logger.js +236 -0
  169. package/dist/esm/src/server/components/fastapi/modules/UFRP/workers/cpu-tasks.js +294 -0
  170. package/dist/esm/src/server/components/fastapi/modules/UFRP/workers/enhanced-cpu-worker.js +433 -0
  171. package/dist/esm/src/server/components/fastapi/modules/UFRP/workers/io-worker.js +1615 -0
  172. package/dist/esm/src/server/components/lifecycle/ServerLifecycleManager.js +501 -0
  173. package/dist/esm/src/server/components/lifecycle/ServerLifecycleManager.js.map +1 -0
  174. package/dist/esm/src/server/const/default.js +23 -17
  175. package/dist/esm/src/server/const/default.js.map +1 -1
  176. package/dist/esm/src/server/core/HttpServer.js +498 -0
  177. package/dist/esm/src/server/core/HttpServer.js.map +1 -0
  178. package/dist/esm/src/server/core/XyprissApp.js +677 -0
  179. package/dist/esm/src/server/core/XyprissApp.js.map +1 -0
  180. package/dist/esm/src/server/handlers/NotFoundHandler.js +1 -1
  181. package/dist/esm/src/server/handlers/NotFoundHandler.js.map +1 -1
  182. package/dist/esm/src/server/middleware/MiddlewareManager.js +189 -0
  183. package/dist/esm/src/server/middleware/MiddlewareManager.js.map +1 -0
  184. package/dist/esm/src/server/routing/Router.js +339 -0
  185. package/dist/esm/src/server/routing/Router.js.map +1 -0
  186. package/dist/esm/src/server/utils/PortManager.js +1 -0
  187. package/dist/esm/src/server/utils/PortManager.js.map +1 -1
  188. package/dist/esm/src/server/utils/forceClosePort.js +294 -88
  189. package/dist/esm/src/server/utils/forceClosePort.js.map +1 -1
  190. package/dist/index.d.ts +3363 -5311
  191. package/package.json +39 -28
  192. package/dist/cjs/src/cluster/index.js +0 -361
  193. package/dist/cjs/src/cluster/index.js.map +0 -1
  194. package/dist/cjs/src/cluster/modules/ClusterFactory.js +0 -539
  195. package/dist/cjs/src/cluster/modules/ClusterFactory.js.map +0 -1
  196. package/dist/cjs/src/cluster/modules/LoadBalancer.js.map +0 -1
  197. package/dist/cjs/src/server/components/fastapi/UltraFastRequestProcessor.js +0 -668
  198. package/dist/cjs/src/server/components/fastapi/UltraFastRequestProcessor.js.map +0 -1
  199. package/dist/cjs/src/server/components/fastapi/middlewares/MiddlewareAPI.js +0 -347
  200. package/dist/cjs/src/server/components/fastapi/middlewares/MiddlewareAPI.js.map +0 -1
  201. package/dist/cjs/src/server/components/fastapi/middlewares/MiddlewareMethodsManager.js +0 -204
  202. package/dist/cjs/src/server/components/fastapi/middlewares/MiddlewareMethodsManager.js.map +0 -1
  203. package/dist/cjs/src/server/components/fastapi/middlewares/middlewareManager.js +0 -953
  204. package/dist/cjs/src/server/components/fastapi/middlewares/middlewareManager.js.map +0 -1
  205. package/dist/cjs/src/server/components/fastapi/modules/UFRP/WorkerPool.js +0 -56
  206. package/dist/cjs/src/server/components/fastapi/modules/UFRP/WorkerPool.js.map +0 -1
  207. package/dist/esm/src/cluster/index.js +0 -339
  208. package/dist/esm/src/cluster/index.js.map +0 -1
  209. package/dist/esm/src/cluster/modules/ClusterFactory.js +0 -511
  210. package/dist/esm/src/cluster/modules/ClusterFactory.js.map +0 -1
  211. package/dist/esm/src/cluster/modules/LoadBalancer.js.map +0 -1
  212. package/dist/esm/src/server/components/fastapi/UltraFastRequestProcessor.js +0 -647
  213. package/dist/esm/src/server/components/fastapi/UltraFastRequestProcessor.js.map +0 -1
  214. package/dist/esm/src/server/components/fastapi/middlewares/MiddlewareAPI.js +0 -345
  215. package/dist/esm/src/server/components/fastapi/middlewares/MiddlewareAPI.js.map +0 -1
  216. package/dist/esm/src/server/components/fastapi/middlewares/MiddlewareMethodsManager.js +0 -202
  217. package/dist/esm/src/server/components/fastapi/middlewares/MiddlewareMethodsManager.js.map +0 -1
  218. package/dist/esm/src/server/components/fastapi/middlewares/middlewareManager.js +0 -951
  219. package/dist/esm/src/server/components/fastapi/middlewares/middlewareManager.js.map +0 -1
  220. package/dist/esm/src/server/components/fastapi/modules/UFRP/WorkerPool.js +0 -54
  221. package/dist/esm/src/server/components/fastapi/modules/UFRP/WorkerPool.js.map +0 -1
package/README.md CHANGED
@@ -1,9 +1,9 @@
1
1
  <div align="center">
2
2
  <img src="https://sdk.nehonix.space/assets/xypriss/mode/transparent/logo.png" alt="XyPriss Logo" width="200" height="200">
3
3
 
4
- # XyPriss
4
+ # XyPriss (Beta)
5
5
 
6
- A Node.js framework extending Express.js with performance, security, and scalability features
6
+ A powerful Node.js web framework with built-in security, clustering, and performance optimizations for modern web applications.
7
7
 
8
8
  [![npm version](https://badge.fury.io/js/xypriss.svg)](https://badge.fury.io/js/xypriss)
9
9
  [![TypeScript](https://img.shields.io/badge/TypeScript-007ACC?style=flat&logo=typescript&logoColor=white)](https://www.typescriptlang.org/)
@@ -14,311 +14,285 @@ A Node.js framework extending Express.js with performance, security, and scalabi
14
14
 
15
15
  ---
16
16
 
17
- ## About XyPriss
17
+ ## Overview
18
18
 
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.
19
+ XyPriss is a powerful, TypeScript-first, open-source Node.js web framework that enhances your development experience with built-in security middleware, clustering, and performance optimizations. Whether you're building new applications or enhancing existing ones, XyPriss provides the tools you need for scalable, secure web development. Join our community and contribute on GitHub!
20
20
 
21
- ### Key Benefits
21
+ ### Key Features
22
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
23
+ - **Familiar API**: Intuitive syntax for defining routes and middleware that feels natural to Node.js developers.
24
+ - **Built-in Security**: Includes 12+ security middleware modules for common protections like CSRF, XSS, and rate limiting.
25
+ - **Flexible Routing**: Supports parameters, wildcards, and modular routers.
26
+ - **TypeScript Support**: Full type definitions for a better developer experience.
27
+ - **Performance**: Advanced clustering, caching, and performance optimizations built-in.
27
28
 
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
+ > **Note**: XyPriss is the successor to FortifyJS, which will be deprecated. Migrate to XyPriss for continued support and new features. [Migration Guide](https://github.com/nehonix/FortifyJS).
29
30
 
30
31
  ---
31
32
 
32
- ## Quick Start
33
+ ## Installation
34
+
35
+ Install XyPriss via npm or yarn:
33
36
 
34
37
  ```bash
35
- # Install XyPriss
36
38
  npm install xypriss
37
-
38
- # Or with yarn
39
+ # or
39
40
  yarn add xypriss
40
41
  ```
41
42
 
43
+ For additional security features, install the security module:
44
+
45
+ ```bash
46
+ npm install xypriss-security
47
+ ```
48
+
49
+ ---
50
+
51
+ ## Quick Start
52
+
53
+ Create a basic server with XyPriss:
54
+
42
55
  ```typescript
43
56
  import { createServer } from "xypriss";
44
57
 
45
- // Create a server with enhanced features
46
58
  const server = createServer({
47
59
  server: { port: 3000 },
48
60
  security: { enabled: true },
49
61
  performance: { clustering: true },
50
62
  });
51
63
 
52
- // Use it like Express.js
53
64
  server.get("/", (req, res) => {
54
- res.json({
55
- message: "Hello from XyPriss!",
56
- powered: "Nehonix",
57
- });
65
+ res.json({ message: "Hello from XyPriss!", powered: "Nehonix" });
58
66
  });
59
67
 
60
- // Start the server
61
- server.start();
68
+ server.start(() => {
69
+ console.log(`Server running at http://localhost:${server.getPort()}`);
70
+ });
62
71
  ```
63
72
 
64
- Your server is now running with enhanced performance and security features.
73
+ This sets up a server with security middleware and clustering enabled, listening on port 3000.
74
+
75
+ ### Works Great With Express
76
+
77
+ XyPriss is designed to complement the Node.js ecosystem, not replace it. You can:
78
+
79
+ - **Use XyPriss standalone** for new projects that need built-in security and clustering
80
+ - **Enhance existing Express apps** by integrating XyPriss security modules
81
+ - **Run both frameworks** side by side for different services
82
+ - **Migrate gradually** by moving specific routes or services to XyPriss
83
+
84
+ ```typescript
85
+ // Example: Using XyPriss security with Express
86
+ import express from "express";
87
+ import { XyPrissSecurity } from "xypriss-security";
88
+
89
+ const app = express();
90
+
91
+ // Add XyPriss security to your Express app
92
+ app.use(
93
+ XyPrissSecurity.middleware({
94
+ csrf: true,
95
+ xss: true,
96
+ rateLimit: { windowMs: 15 * 60 * 1000, max: 100 },
97
+ })
98
+ );
99
+
100
+ app.listen(3000);
101
+ ```
65
102
 
66
103
  ---
67
104
 
68
105
  ## Table of Contents
69
106
 
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)
107
+ - [Overview](#overview)
77
108
  - [Installation](#installation)
78
- - [Basic Usage](#basic-usage)
109
+ - [Quick Start](#quick-start)
110
+ - [Routing](#routing)
111
+ - [Security](#security)
112
+ - [Performance](#performance)
79
113
  - [Configuration](#configuration)
80
- - [Plugins](#plugins)
81
- - [Documentation](#documentation)
114
+ - [Modules](#modules)
82
115
  - [Contributing](#contributing)
83
116
  - [License](#license)
84
117
  - [Support](#support)
85
118
 
86
119
  ---
87
120
 
88
- ## Key Features
121
+ ## Routing
89
122
 
90
- ### Performance and Scalability
123
+ XyPriss provides a flexible routing system with support for parameters, wildcards, and modular routers.
91
124
 
92
- - Fast server initialization with minimal overhead
93
- - Multi-tier caching system supporting memory, Redis, and hybrid strategies
94
- - Automatic port detection and switching with configurable port ranges
95
- - Built-in clustering with automatic scaling based on system load
96
- - Advanced request management including timeouts and concurrency controls
125
+ ### Basic Routes
97
126
 
98
- ### Security and Reliability
99
-
100
- - Integration with XyPriss Security module for cryptographic operations
101
- - Built-in security middleware including Helmet, CORS, rate limiting, and CSRF protection
102
- - Tamper-evident logging with cryptographic verification
103
- - Input validation and sanitization utilities
127
+ ```typescript
128
+ import { createServer } from "xypriss";
104
129
 
105
- ### Developer Experience
130
+ const app = createServer();
106
131
 
107
- - Full compatibility with existing Express.js applications
108
- - Complete TypeScript support with type definitions
109
- - Extensible plugin system for custom functionality
110
- - Comprehensive documentation and examples
132
+ app.get("/", (req, res) => {
133
+ res.json({ message: "Welcome to XyPriss" });
134
+ });
111
135
 
112
- ## Installation
136
+ app.post("/users", (req, res) => {
137
+ res.json({ message: "User created", data: req.body });
138
+ });
113
139
 
114
- ```bash
115
- npm install xypriss
116
- npm i --save-dev @types/express
140
+ app.put("/users/:id", (req, res) => {
141
+ res.json({ message: "User updated", id: req.params.id });
142
+ });
117
143
  ```
118
144
 
119
- For security features:
145
+ ### Route Parameters
120
146
 
121
- ```bash
122
- npm install xypriss xypriss-security
123
- npm i --save-dev @types/express
147
+ Extract dynamic segments from URLs:
148
+
149
+ ```typescript
150
+ app.get("/users/:id", (req, res) => {
151
+ res.json({ userId: req.params.id });
152
+ });
153
+
154
+ app.get("/users/:userId/posts/:postId", (req, res) => {
155
+ res.json({ userId: req.params.userId, postId: req.params.postId });
156
+ });
124
157
  ```
125
158
 
126
- ## Quick Start
159
+ ### Wildcard Routes
127
160
 
128
- ### Basic Server Setup
161
+ - **Single Wildcard (`*`)**: Matches one path segment.
162
+ - **Multi-segment Wildcard (`**`)\*\*: Matches multiple path segments.
129
163
 
130
164
  ```typescript
131
- import { createServer } from "xypriss";
132
-
133
- // Create a new XyPriss server
134
- const app = createServer({
135
- server: {
136
- port: 3000,
137
- host: "localhost",
138
- autoPortSwitch: {
139
- enabled: true,
140
- portRange: [8086, 3010],
141
- },
142
- },
143
- cache: {
144
- strategy: "memory",
145
- maxSize: 100 * 1024 * 1024, // 100MB
146
- ttl: 3600, // 1 hour
147
- },
165
+ app.get("/files/*", (req, res) => {
166
+ res.json({ filename: req.params["*"] }); // e.g., "document.pdf"
148
167
  });
149
168
 
150
- // Define routes using standard Express.js syntax
151
- app.get("/", (req, res) => {
152
- res.json({ message: "Hello from XyPriss!" });
169
+ app.get("/api/**", (req, res) => {
170
+ res.json({ path: req.params["**"] }); // e.g., "v1/users/123"
153
171
  });
172
+ ```
154
173
 
155
- app.get("/api/users/:id", (req, res) => {
156
- const userId = req.params.id;
157
- res.json({ userId, data: "User data" });
174
+ ### Modular Routers
175
+
176
+ Organize routes with routers:
177
+
178
+ ```typescript
179
+ import { createServer, Router } from "xypriss";
180
+
181
+ const app = createServer();
182
+ const userRouter = Router();
183
+
184
+ userRouter.get("/", (req, res) => {
185
+ res.json({ message: "List users" });
158
186
  });
159
187
 
160
- // Start the server
161
- app.start(undefined, () => {
162
- console.log(
163
- "Secure XyPriss server running at http://localhost:" + app.getPort()
164
- );
188
+ userRouter.get("/:id", (req, res) => {
189
+ res.json({ message: "Get user", id: req.params.id });
165
190
  });
191
+
192
+ app.use("/api/users", userRouter);
166
193
  ```
167
194
 
168
- ### Advanced Configuration
195
+ ### Middleware
169
196
 
170
- ```typescript
171
- import { createServer } from "xypriss";
197
+ Apply middleware globally, per route, or per router:
172
198
 
173
- const server = createServer({
174
- env: "production",
199
+ ```typescript
200
+ // Global middleware
201
+ app.use((req, res, next) => {
202
+ console.log(`${req.method} ${req.path}`);
203
+ next();
204
+ });
175
205
 
176
- server: {
177
- port: 8080,
178
- host: "0.0.0.0",
179
- autoPortSwitch: {
180
- enabled: true,
181
- maxAttempts: 5,
182
- portRange: [8080, 8090],
183
- strategy: "increment",
184
- },
206
+ // Route-specific middleware
207
+ app.get(
208
+ "/protected",
209
+ (req, res, next) => {
210
+ if (!req.headers.authorization) {
211
+ return res.status(401).json({ error: "Unauthorized" });
212
+ }
213
+ next();
185
214
  },
215
+ (req, res) => {
216
+ res.json({ message: "Protected resource" });
217
+ }
218
+ );
219
+ ```
186
220
 
187
- cache: {
188
- strategy: "hybrid", // Memory + Redis
189
- maxSize: 500 * 1024 * 1024, // 500MB
190
- ttl: 7200, // 2 hours
191
- redis: {
192
- host: "localhost",
193
- port: 6379,
194
- cluster: true,
195
- nodes: [
196
- { host: "redis-1", port: 6379 },
197
- { host: "redis-2", port: 6379 },
198
- ],
199
- },
200
- },
221
+ ---
201
222
 
202
- requestManagement: {
203
- timeout: {
204
- enabled: true,
205
- defaultTimeout: 30000, // 30 seconds
206
- routes: {
207
- "/api/upload": 300000, // 5 minutes for uploads
208
- "/api/quick": 5000, // 5 seconds for quick endpoints
209
- },
210
- },
211
- concurrency: {
212
- maxConcurrentRequests: 1000,
213
- maxPerIP: 50,
214
- },
215
- },
223
+ ## Security
216
224
 
217
- cluster: {
218
- enabled: true,
219
- workers: "auto", // Auto-detect CPU cores
220
- autoScale: {
221
- enabled: true,
222
- minWorkers: 2,
223
- maxWorkers: 8,
224
- cpuThreshold: 80,
225
- },
226
- },
227
- });
228
- ```
225
+ XyPriss includes 12 built-in security middleware modules to protect your application:
226
+
227
+ - **CSRF Protection**: Via the `csrf-csrf` library.
228
+ - **Security Headers**: Powered by Helmet for secure HTTP headers.
229
+ - **CORS**: Configurable cross-origin resource sharing.
230
+ - **Rate Limiting**: Prevents abuse by limiting requests per IP.
231
+ - **Input Validation**: Sanitizes inputs to prevent XSS and injection attacks.
232
+ - **Request Logging**: Monitors and logs incoming requests.
229
233
 
230
- ### With XyPriss Security Integration
234
+ Enable security features:
231
235
 
232
236
  ```typescript
233
237
  import { createServer } from "xypriss";
234
- import { XyPrissSecurity as security, fString, fArray } from "xypriss-security";
235
238
 
236
239
  const server = createServer({
237
- server: {
238
- port: 3000,
239
- host: "localhost",
240
+ security: {
241
+ enabled: true,
242
+ csrf: { enabled: true },
243
+ rateLimit: { max: 100, windowMs: 15 * 60 * 1000 }, // 100 requests per 15 minutes
240
244
  },
241
245
  });
246
+ ```
242
247
 
243
- // Secure route with encryption
244
- server.post("/api/secure-data", async (req, res) => {
245
- try {
246
- // Use secure data structures
247
- const secureData = fArray(req.body.sensitiveArray);
248
- const securePassword = fString(req.body.password, {
249
- protectionLevel: "maximum",
250
- enableEncryption: true,
251
- });
252
-
253
- // Generate secure token
254
- const token = security.generateSecureToken({
255
- length: 32,
256
- entropy: "maximum",
257
- });
258
-
259
- res.json({
260
- success: true,
261
- token,
262
- dataLength: secureData.length,
263
- });
264
- } catch (error) {
265
- res.status(500).json({ error: "Security operation failed" });
266
- }
267
- });
248
+ For advanced security, use the `xypriss-security` module:
249
+
250
+ ```typescript
251
+ import { createServer } from "xypriss";
252
+ import { fString, generateSecureToken } from "xypriss-security";
268
253
 
269
- server.start(undefined, () => {
270
- console.log(
271
- "Secure XyPriss server running at http://localhost:" + server.getPort()
272
- );
254
+ const server = createServer();
255
+
256
+ server.post("/api/secure", async (req, res) => {
257
+ const secureData = fString(req.body.data, { enableEncryption: true });
258
+ const token = generateSecureToken({ length: 32 });
259
+ res.json({ token, data: secureData });
273
260
  });
274
261
  ```
275
262
 
276
- ## Architecture
277
-
278
- ### Core Framework (`xypriss`)
263
+ ---
279
264
 
280
- - Server Factory: Enhanced Express.js server creation with `createServer()`
281
- - Cache Engine: Multi-tier caching system with intelligent invalidation
282
- - Cluster Manager: Process management and auto-scaling
283
- - Plugin System: Extensible plugin architecture
284
- - Request Management: Advanced timeout and concurrency controls
265
+ ## Performance
285
266
 
286
- ### Security Module (`xypriss-security`)
267
+ XyPriss is designed for efficiency and scalability:
287
268
 
288
- XyPriss integrates with the XyPriss Security toolkit, providing:
269
+ - **Independent HTTP Server**: No Express dependency, reducing overhead.
270
+ - **Clustering**: Automatic scaling based on CPU cores.
271
+ - **Caching**: Supports memory, Redis, or hybrid caching strategies.
272
+ - **Auto Port Switching**: Detects and switches ports if conflicts arise.
289
273
 
290
- - Secure Data Structures: `fArray`, `fString`, `fObject` with encryption
291
- - Cryptographic Functions: Token generation, hashing, key derivation
292
- - Advanced Security: Post-quantum cryptography, tamper-evident logging
293
- - Performance: Fortified functions with security monitoring
274
+ Example configuration:
294
275
 
295
276
  ```typescript
296
- import { createServer } from "xypriss";
297
- import {
298
- XyPrissSecurity as security, // or just import XyPriss
299
- fArray,
300
- fString,
301
- fObject,
302
- generateSecureToken,
303
- } from "xypriss-security";
304
-
305
- // Use both together
306
277
  const server = createServer({
307
- /* config */
278
+ server: {
279
+ port: 3000,
280
+ autoPortSwitch: { enabled: true, portRange: [3000, 3100] },
281
+ },
282
+ cache: {
283
+ strategy: "memory",
284
+ maxSize: 100 * 1024 * 1024, // 100MB
285
+ ttl: 3600, // 1 hour
286
+ },
287
+ cluster: { enabled: true, workers: "auto" },
308
288
  });
309
289
  ```
310
290
 
311
- ## Documentation
312
-
313
- - [Getting Started Guide](./docs/getting-started.md)
314
- - [API Reference](./docs/api-reference.md)
315
- - [Security Guide](./docs/security.md)
316
- - [Configuration Options](./docs/configuration.md)
317
- - [Plugin Development](./docs/plugins.md)
291
+ ---
318
292
 
319
293
  ## Configuration
320
294
 
321
- XyPriss supports extensive configuration through the `ServerOptions` interface:
295
+ Customize XyPriss with the `ServerOptions` interface:
322
296
 
323
297
  ```typescript
324
298
  interface ServerOptions {
@@ -327,90 +301,94 @@ interface ServerOptions {
327
301
  port?: number;
328
302
  host?: string;
329
303
  autoPortSwitch?: {
330
- enabled?: boolean;
304
+ enabled: boolean;
331
305
  portRange?: [number, number];
332
- strategy?: "increment" | "random" | "predefined";
306
+ strategy?: "increment" | "random";
333
307
  };
334
308
  };
335
309
  cache?: {
336
- strategy?: "auto" | "memory" | "redis" | "hybrid";
310
+ strategy?: "memory" | "redis" | "hybrid";
337
311
  maxSize?: number;
338
312
  ttl?: number;
339
- redis?: RedisConfig;
313
+ redis?: { host: string; port: number; cluster?: boolean };
314
+ };
315
+ security?: {
316
+ enabled?: boolean;
317
+ csrf?: { enabled: boolean };
318
+ rateLimit?: { max: number; windowMs: number };
319
+ };
320
+ cluster?: {
321
+ enabled: boolean;
322
+ workers?: number | "auto";
340
323
  };
341
- requestManagement?: RequestManagementConfig;
342
- cluster?: ClusterConfig;
343
- // ... and many more options
344
324
  }
345
325
  ```
346
326
 
347
- ## Performance
348
-
349
- XyPriss is optimized for production use:
327
+ Example:
350
328
 
351
- - Fast server initialization with minimal overhead
352
- - High-throughput request handling
353
- - Efficient memory usage with automatic cleanup
354
- - Low-latency cache access
355
- - Horizontal scaling through clustering
329
+ ```typescript
330
+ const server = createServer({
331
+ env: "production",
332
+ server: { port: 8080, host: "0.0.0.0" },
333
+ cache: { strategy: "redis", redis: { host: "localhost", port: 6379 } },
334
+ });
335
+ ```
356
336
 
357
- ## Available Modules
337
+ ---
358
338
 
359
- XyPriss includes several specialized modules for enhanced functionality:
339
+ ## Modules
360
340
 
361
- ### ACPES - Advanced Cross-Platform Encrypted Storage
341
+ ### ACPES (Advanced Cross-Platform Encrypted Storage)
362
342
 
363
343
  **Location**: `mods/ACPES/`
364
344
 
365
- A secure, cross-platform storage solution that works seamlessly across Web, Mobile (React Native), and Node.js environments.
345
+ A secure storage solution for web, mobile, and Node.js environments.
366
346
 
367
- **Features:**
347
+ **Features**:
368
348
 
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
349
+ - AES-256 encryption with PBKDF2 key derivation.
350
+ - HMAC-SHA256 for integrity verification.
351
+ - TTL for automatic data expiration.
352
+ - LZ-string compression for large data.
376
353
 
377
- **Quick Usage:**
354
+ **Usage**:
378
355
 
379
356
  ```typescript
380
357
  import { Storage, STORAGE_KEYS } from "xypriss-acpes";
381
-
382
- // Store sensitive data
383
- await Storage.setItem(STORAGE_KEYS.SESSION_TOKEN, "your-token");
384
358
 
385
- // Retrieve data
359
+ await Storage.setItem(STORAGE_KEYS.SESSION_TOKEN, "secure-token");
386
360
  const token = await Storage.getItem(STORAGE_KEYS.SESSION_TOKEN);
387
361
  ```
388
362
 
389
- **Documentation**: [ACPES Documentation](./mods/ACPES/docs/)
363
+ **Docs**: [ACPES Documentation](./mods/ACPES/docs/)
390
364
 
391
365
  ### Security Module
392
366
 
393
367
  **Location**: `mods/security/`
394
368
 
395
- Comprehensive security utilities and middleware for XyPriss applications.
369
+ Provides utilities for secure data handling and request protection.
370
+
371
+ **Features**:
396
372
 
397
- **Features:**
373
+ - Input sanitization and validation.
374
+ - Cryptographic functions (e.g., secure token generation).
375
+ - Rate limiting and DDoS protection.
398
376
 
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
377
+ **Docs**: [Security Documentation](./mods/security/docs/)
404
378
 
405
- **Documentation**: [Security Module Documentation](./mods/security/docs/)
379
+ ---
406
380
 
407
381
  ## Contributing
408
382
 
409
- Contributions are welcome. Please see our [Contributing Guide](./CONTRIBUTING.md).
383
+ We welcome contributions! See the [Contributing Guide](./CONTRIBUTING.md) for details on how to get started.
384
+
385
+ ---
410
386
 
411
387
  ## License
412
388
 
413
- MIT License - see [LICENSE](./LICENSE) file for details.
389
+ XyPriss is licensed under the [MIT License](./LICENSE).
390
+
391
+ ---
414
392
 
415
393
  ## Support
416
394
 
@@ -422,7 +400,7 @@ MIT License - see [LICENSE](./LICENSE) file for details.
422
400
 
423
401
  ### Powered by Nehonix
424
402
 
425
- XyPriss is developed and maintained by the Nehonix Team.
403
+ Developed and maintained by the Nehonix Team.
426
404
 
427
405
  [![Website](https://img.shields.io/badge/Website-nehonix.space-blue?style=for-the-badge&logo=globe)](https://nehonix.space)
428
406
  [![GitHub](https://img.shields.io/badge/GitHub-Nehonix--Team-black?style=for-the-badge&logo=github)](https://github.com/Nehonix-Team)
@@ -16,6 +16,16 @@ require('../core/random/random-types.js');
16
16
  require('../core/random/random-sources.js');
17
17
  require('nehonix-uri-processor');
18
18
  require('../utils/memory/index.js');
19
+ require('helmet');
20
+ require('cors');
21
+ require('express-rate-limit');
22
+ require('csrf-csrf');
23
+ require('express-mongo-sanitize');
24
+ require('xss');
25
+ require('hpp');
26
+ require('compression');
27
+ require('xypriss-security');
28
+ require('../../../../shared/logger/Logger.js');
19
29
  require('argon2');
20
30
  require('child_process');
21
31
  require('../types/secure-memory.js');