xypriss 1.3.8 → 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +219 -31
- package/dist/cjs/mods/security/src/components/cache/index.js +0 -72
- package/dist/cjs/mods/security/src/components/cache/index.js.map +1 -1
- package/dist/cjs/mods/security/src/index.js +0 -3
- package/dist/cjs/mods/security/src/index.js.map +1 -1
- package/dist/cjs/shared/logger/Logger.js +2 -0
- package/dist/cjs/shared/logger/Logger.js.map +1 -1
- package/dist/cjs/src/index.js +55 -61
- package/dist/cjs/src/index.js.map +1 -1
- package/dist/cjs/src/middleware/XyPrissMiddlewareAPI.js +281 -0
- package/dist/cjs/src/middleware/XyPrissMiddlewareAPI.js.map +1 -0
- package/dist/cjs/src/middleware/built-in/index.js +325 -0
- package/dist/cjs/src/middleware/built-in/index.js.map +1 -0
- package/dist/cjs/src/plugins/modules/builtin/ResponseTimePlugin.js +1 -1
- package/dist/cjs/src/plugins/modules/builtin/ResponseTimePlugin.js.map +1 -1
- package/dist/cjs/src/quick-start.js +0 -4
- package/dist/cjs/src/quick-start.js.map +1 -1
- package/dist/cjs/src/server/FastServer.js +53 -411
- package/dist/cjs/src/server/FastServer.js.map +1 -1
- package/dist/cjs/src/server/ServerFactory.js +7 -62
- package/dist/cjs/src/server/ServerFactory.js.map +1 -1
- package/dist/cjs/src/server/components/fastapi/ClusterManagerComponent.js +1 -1
- package/dist/cjs/src/server/components/fastapi/PerformanceManager.js +1 -1
- package/dist/cjs/src/server/components/fastapi/PerformanceManager.js.map +1 -1
- package/dist/cjs/src/server/components/fastapi/RouteManager.js +0 -82
- package/dist/cjs/src/server/components/fastapi/RouteManager.js.map +1 -1
- package/dist/cjs/src/server/components/lifecycle/ServerLifecycleManager.js +384 -0
- package/dist/cjs/src/server/components/lifecycle/ServerLifecycleManager.js.map +1 -0
- package/dist/cjs/src/server/const/default.js +0 -8
- package/dist/cjs/src/server/const/default.js.map +1 -1
- package/dist/cjs/src/server/core/HttpServer.js +500 -0
- package/dist/cjs/src/server/core/HttpServer.js.map +1 -0
- package/dist/cjs/src/server/core/XyprissApp.js +412 -0
- package/dist/cjs/src/server/core/XyprissApp.js.map +1 -0
- package/dist/cjs/src/server/middleware/MiddlewareManager.js +146 -0
- package/dist/cjs/src/server/middleware/MiddlewareManager.js.map +1 -0
- package/dist/cjs/src/server/routing/Router.js +341 -0
- package/dist/cjs/src/server/routing/Router.js.map +1 -0
- package/dist/cjs/src/server/utils/PortManager.js +1 -0
- package/dist/cjs/src/server/utils/PortManager.js.map +1 -1
- package/dist/cjs/src/server/utils/forceClosePort.js +294 -88
- package/dist/cjs/src/server/utils/forceClosePort.js.map +1 -1
- package/dist/esm/mods/security/src/components/cache/index.js +1 -70
- package/dist/esm/mods/security/src/components/cache/index.js.map +1 -1
- package/dist/esm/mods/security/src/index.js +1 -1
- package/dist/esm/shared/logger/Logger.js +2 -0
- package/dist/esm/shared/logger/Logger.js.map +1 -1
- package/dist/esm/src/index.js +41 -11
- package/dist/esm/src/index.js.map +1 -1
- package/dist/esm/src/middleware/XyPrissMiddlewareAPI.js +279 -0
- package/dist/esm/src/middleware/XyPrissMiddlewareAPI.js.map +1 -0
- package/dist/esm/src/middleware/built-in/index.js +323 -0
- package/dist/esm/src/middleware/built-in/index.js.map +1 -0
- package/dist/esm/src/plugins/modules/builtin/ResponseTimePlugin.js +1 -1
- package/dist/esm/src/plugins/modules/builtin/ResponseTimePlugin.js.map +1 -1
- package/dist/esm/src/quick-start.js +0 -4
- package/dist/esm/src/quick-start.js.map +1 -1
- package/dist/esm/src/server/FastServer.js +53 -411
- package/dist/esm/src/server/FastServer.js.map +1 -1
- package/dist/esm/src/server/ServerFactory.js +8 -59
- package/dist/esm/src/server/ServerFactory.js.map +1 -1
- package/dist/esm/src/server/components/fastapi/ClusterManagerComponent.js +1 -1
- package/dist/esm/src/server/components/fastapi/PerformanceManager.js +1 -1
- package/dist/esm/src/server/components/fastapi/PerformanceManager.js.map +1 -1
- package/dist/esm/src/server/components/fastapi/RouteManager.js +0 -82
- package/dist/esm/src/server/components/fastapi/RouteManager.js.map +1 -1
- package/dist/esm/src/server/components/lifecycle/ServerLifecycleManager.js +382 -0
- package/dist/esm/src/server/components/lifecycle/ServerLifecycleManager.js.map +1 -0
- package/dist/esm/src/server/const/default.js +0 -8
- package/dist/esm/src/server/const/default.js.map +1 -1
- package/dist/esm/src/server/core/HttpServer.js +498 -0
- package/dist/esm/src/server/core/HttpServer.js.map +1 -0
- package/dist/esm/src/server/core/XyprissApp.js +410 -0
- package/dist/esm/src/server/core/XyprissApp.js.map +1 -0
- package/dist/esm/src/server/middleware/MiddlewareManager.js +144 -0
- package/dist/esm/src/server/middleware/MiddlewareManager.js.map +1 -0
- package/dist/esm/src/server/routing/Router.js +339 -0
- package/dist/esm/src/server/routing/Router.js.map +1 -0
- package/dist/esm/src/server/utils/PortManager.js +1 -0
- package/dist/esm/src/server/utils/PortManager.js.map +1 -1
- package/dist/esm/src/server/utils/forceClosePort.js +294 -88
- package/dist/esm/src/server/utils/forceClosePort.js.map +1 -1
- package/dist/index.d.ts +2166 -4273
- package/package.json +31 -19
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
|
|
6
|
+
A Node.js web framework with Express-like API, built-in security middleware, and routing system
|
|
7
7
|
|
|
8
8
|
[](https://badge.fury.io/js/xypriss)
|
|
9
9
|
[](https://www.typescriptlang.org/)
|
|
@@ -16,14 +16,14 @@ A Node.js framework extending Express.js with performance, security, and scalabi
|
|
|
16
16
|
|
|
17
17
|
## About XyPriss
|
|
18
18
|
|
|
19
|
-
XyPriss is a Node.js framework
|
|
19
|
+
XyPriss is a Node.js web framework with an Express-like API, built from the ground up with TypeScript. It provides built-in security middleware, a flexible routing system, and performance optimizations without depending on Express.
|
|
20
20
|
|
|
21
21
|
### Key Benefits
|
|
22
22
|
|
|
23
|
-
-
|
|
24
|
-
- Built-in security
|
|
25
|
-
-
|
|
26
|
-
-
|
|
23
|
+
- Independent web framework with Express-like API
|
|
24
|
+
- Built-in security middleware (12 security modules)
|
|
25
|
+
- Flexible routing system with wildcard and parameter support
|
|
26
|
+
- TypeScript support with full type definitions
|
|
27
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
29
|
|
|
@@ -42,14 +42,14 @@ yarn add xypriss
|
|
|
42
42
|
```typescript
|
|
43
43
|
import { createServer } from "xypriss";
|
|
44
44
|
|
|
45
|
-
// Create a server
|
|
45
|
+
// Create a XyPriss server
|
|
46
46
|
const server = createServer({
|
|
47
47
|
server: { port: 3000 },
|
|
48
48
|
security: { enabled: true },
|
|
49
49
|
performance: { clustering: true },
|
|
50
50
|
});
|
|
51
51
|
|
|
52
|
-
// Use
|
|
52
|
+
// Use Express-like API
|
|
53
53
|
server.get("/", (req, res) => {
|
|
54
54
|
res.json({
|
|
55
55
|
message: "Hello from XyPriss!",
|
|
@@ -61,7 +61,7 @@ server.get("/", (req, res) => {
|
|
|
61
61
|
server.start();
|
|
62
62
|
```
|
|
63
63
|
|
|
64
|
-
Your server is now running with
|
|
64
|
+
Your server is now running with built-in security middleware and routing capabilities.
|
|
65
65
|
|
|
66
66
|
---
|
|
67
67
|
|
|
@@ -70,14 +70,14 @@ Your server is now running with enhanced performance and security features.
|
|
|
70
70
|
- [About XyPriss](#about-xypriss)
|
|
71
71
|
- [Quick Start](#quick-start)
|
|
72
72
|
- [Key Features](#key-features)
|
|
73
|
-
- [
|
|
73
|
+
- [Routing System](#routing-system)
|
|
74
74
|
- [Security and Reliability](#security-and-reliability)
|
|
75
|
+
- [Performance and Scalability](#performance-and-scalability)
|
|
75
76
|
- [Developer Experience](#developer-experience)
|
|
76
|
-
|
|
77
|
+
- [Routing Documentation](#routing-documentation)
|
|
77
78
|
- [Installation](#installation)
|
|
78
79
|
- [Basic Usage](#basic-usage)
|
|
79
80
|
- [Configuration](#configuration)
|
|
80
|
-
- [Plugins](#plugins)
|
|
81
81
|
- [Documentation](#documentation)
|
|
82
82
|
- [Contributing](#contributing)
|
|
83
83
|
- [License](#license)
|
|
@@ -87,40 +87,227 @@ Your server is now running with enhanced performance and security features.
|
|
|
87
87
|
|
|
88
88
|
## Key Features
|
|
89
89
|
|
|
90
|
+
### Routing System
|
|
91
|
+
|
|
92
|
+
- Express-like API for familiar development experience
|
|
93
|
+
- Advanced route patterns with parameter support (`:id`, `:name`)
|
|
94
|
+
- Wildcard routing with single (`*`) and multi-segment (`**`) support
|
|
95
|
+
- Router mounting and middleware support
|
|
96
|
+
- Route-specific middleware and parameter extraction
|
|
97
|
+
|
|
98
|
+
### Security and Reliability
|
|
99
|
+
|
|
100
|
+
- 12 built-in security middleware modules
|
|
101
|
+
- CSRF protection with csrf-csrf library
|
|
102
|
+
- Security headers (Helmet), CORS, rate limiting
|
|
103
|
+
- Input validation and sanitization (XSS, MongoDB injection protection)
|
|
104
|
+
- Request logging and monitoring
|
|
105
|
+
|
|
90
106
|
### Performance and Scalability
|
|
91
107
|
|
|
108
|
+
- Independent HTTP server implementation
|
|
92
109
|
- Fast server initialization with minimal overhead
|
|
93
110
|
- Multi-tier caching system supporting memory, Redis, and hybrid strategies
|
|
94
111
|
- Automatic port detection and switching with configurable port ranges
|
|
95
112
|
- Built-in clustering with automatic scaling based on system load
|
|
96
|
-
- Advanced request management including timeouts and concurrency controls
|
|
97
|
-
|
|
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
|
|
104
113
|
|
|
105
114
|
### Developer Experience
|
|
106
|
-
|
|
107
|
-
- Full compatibility with existing Express.js applications
|
|
108
115
|
- Complete TypeScript support with type definitions
|
|
109
116
|
- Extensible plugin system for custom functionality
|
|
110
117
|
- Comprehensive documentation and examples
|
|
111
118
|
|
|
119
|
+
## Routing Documentation
|
|
120
|
+
|
|
121
|
+
XyPriss provides a flexible routing system with Express-like API but without Express dependency.
|
|
122
|
+
|
|
123
|
+
### Basic Routing
|
|
124
|
+
|
|
125
|
+
```typescript
|
|
126
|
+
import { createServer } from "xypriss";
|
|
127
|
+
|
|
128
|
+
const app = createServer();
|
|
129
|
+
|
|
130
|
+
// Basic routes
|
|
131
|
+
app.get("/", (req, res) => {
|
|
132
|
+
res.json({ message: "Hello World" });
|
|
133
|
+
});
|
|
134
|
+
|
|
135
|
+
app.post("/users", (req, res) => {
|
|
136
|
+
res.json({ message: "User created", data: req.body });
|
|
137
|
+
});
|
|
138
|
+
|
|
139
|
+
app.put("/users/:id", (req, res) => {
|
|
140
|
+
res.json({ message: "User updated", id: req.params.id });
|
|
141
|
+
});
|
|
142
|
+
|
|
143
|
+
app.delete("/users/:id", (req, res) => {
|
|
144
|
+
res.json({ message: "User deleted", id: req.params.id });
|
|
145
|
+
});
|
|
146
|
+
```
|
|
147
|
+
|
|
148
|
+
### Route Parameters
|
|
149
|
+
|
|
150
|
+
```typescript
|
|
151
|
+
// Single parameter
|
|
152
|
+
app.get("/users/:id", (req, res) => {
|
|
153
|
+
const userId = req.params.id;
|
|
154
|
+
res.json({ userId });
|
|
155
|
+
});
|
|
156
|
+
|
|
157
|
+
// Multiple parameters
|
|
158
|
+
app.get("/users/:userId/posts/:postId", (req, res) => {
|
|
159
|
+
const { userId, postId } = req.params;
|
|
160
|
+
res.json({ userId, postId });
|
|
161
|
+
});
|
|
162
|
+
```
|
|
163
|
+
|
|
164
|
+
### Wildcard Routes
|
|
165
|
+
|
|
166
|
+
XyPriss supports two types of wildcards:
|
|
167
|
+
|
|
168
|
+
#### Single Wildcard (`*`) - Matches one path segment
|
|
169
|
+
|
|
170
|
+
```typescript
|
|
171
|
+
// Matches: /files/document.pdf, /files/image.jpg
|
|
172
|
+
// Does NOT match: /files/folder/document.pdf
|
|
173
|
+
app.get("/files/*", (req, res) => {
|
|
174
|
+
const filename = req.params["*"];
|
|
175
|
+
res.json({ filename });
|
|
176
|
+
});
|
|
177
|
+
```
|
|
178
|
+
|
|
179
|
+
#### Double Wildcard (`**`) - Matches multiple path segments
|
|
180
|
+
|
|
181
|
+
```typescript
|
|
182
|
+
// Matches: /api/v1/users, /api/v1/users/123/posts
|
|
183
|
+
app.get("/api/**", (req, res) => {
|
|
184
|
+
const path = req.params["**"];
|
|
185
|
+
res.json({ capturedPath: path });
|
|
186
|
+
});
|
|
187
|
+
```
|
|
188
|
+
|
|
189
|
+
### Router System
|
|
190
|
+
|
|
191
|
+
Create modular routes using the Router system:
|
|
192
|
+
|
|
193
|
+
```typescript
|
|
194
|
+
import { createServer, Router } from "xypriss"; // import XyPrissRouter for full control
|
|
195
|
+
|
|
196
|
+
const app = createServer();
|
|
197
|
+
|
|
198
|
+
// Create a router
|
|
199
|
+
const userRouter = Router();
|
|
200
|
+
|
|
201
|
+
// Add routes to router
|
|
202
|
+
userRouter.get("/", (req, res) => {
|
|
203
|
+
res.json({ message: "Get all users" });
|
|
204
|
+
});
|
|
205
|
+
|
|
206
|
+
userRouter.get("/:id", (req, res) => {
|
|
207
|
+
res.json({ message: "Get user", id: req.params.id });
|
|
208
|
+
});
|
|
209
|
+
|
|
210
|
+
userRouter.post("/", (req, res) => {
|
|
211
|
+
res.json({ message: "Create user", data: req.body });
|
|
212
|
+
});
|
|
213
|
+
|
|
214
|
+
// Mount router at /api/users
|
|
215
|
+
app.use("/api/users", userRouter);
|
|
216
|
+
|
|
217
|
+
// Router with middleware
|
|
218
|
+
const adminRouter = Router();
|
|
219
|
+
|
|
220
|
+
adminRouter.use((req, res, next) => {
|
|
221
|
+
// Admin authentication middleware
|
|
222
|
+
console.log("Admin route accessed");
|
|
223
|
+
next();
|
|
224
|
+
});
|
|
225
|
+
|
|
226
|
+
adminRouter.get("/dashboard", (req, res) => {
|
|
227
|
+
res.json({ message: "Admin dashboard" });
|
|
228
|
+
});
|
|
229
|
+
|
|
230
|
+
app.use("/admin", adminRouter);
|
|
231
|
+
```
|
|
232
|
+
|
|
233
|
+
### Middleware
|
|
234
|
+
|
|
235
|
+
Add middleware to routes or routers:
|
|
236
|
+
|
|
237
|
+
```typescript
|
|
238
|
+
// Global middleware
|
|
239
|
+
app.use((req, res, next) => {
|
|
240
|
+
console.log(`${req.method} ${req.path}`);
|
|
241
|
+
next();
|
|
242
|
+
});
|
|
243
|
+
|
|
244
|
+
// Route-specific middleware
|
|
245
|
+
app.get(
|
|
246
|
+
"/protected",
|
|
247
|
+
(req, res, next) => {
|
|
248
|
+
// Authentication middleware
|
|
249
|
+
if (!req.headers.authorization) {
|
|
250
|
+
return res.status(401).json({ error: "Unauthorized" });
|
|
251
|
+
}
|
|
252
|
+
next();
|
|
253
|
+
},
|
|
254
|
+
(req, res) => {
|
|
255
|
+
res.json({ message: "Protected resource" });
|
|
256
|
+
}
|
|
257
|
+
);
|
|
258
|
+
|
|
259
|
+
// Router middleware
|
|
260
|
+
const apiRouter = Router();
|
|
261
|
+
|
|
262
|
+
apiRouter.use((req, res, next) => {
|
|
263
|
+
// API-specific middleware
|
|
264
|
+
res.setHeader("X-API-Version", "1.0");
|
|
265
|
+
next();
|
|
266
|
+
});
|
|
267
|
+
```
|
|
268
|
+
|
|
269
|
+
### Route Examples
|
|
270
|
+
|
|
271
|
+
```typescript
|
|
272
|
+
// Combined parameters and wildcards
|
|
273
|
+
app.get("/users/:id/files/*", (req, res) => {
|
|
274
|
+
const { id } = req.params;
|
|
275
|
+
const filename = req.params["*"];
|
|
276
|
+
res.json({ userId: id, filename });
|
|
277
|
+
});
|
|
278
|
+
|
|
279
|
+
// Deep wildcard routing
|
|
280
|
+
app.get("/docs/**", (req, res) => {
|
|
281
|
+
const docPath = req.params["**"];
|
|
282
|
+
res.json({ documentPath: docPath });
|
|
283
|
+
});
|
|
284
|
+
|
|
285
|
+
// API versioning with routers
|
|
286
|
+
const v1Router = Router();
|
|
287
|
+
const v2Router = Router();
|
|
288
|
+
|
|
289
|
+
v1Router.get("/users", (req, res) => {
|
|
290
|
+
res.json({ version: "v1", users: [] });
|
|
291
|
+
});
|
|
292
|
+
|
|
293
|
+
v2Router.get("/users", (req, res) => {
|
|
294
|
+
res.json({ version: "v2", users: [], pagination: {} });
|
|
295
|
+
});
|
|
296
|
+
|
|
297
|
+
app.use("/api/v1", v1Router);
|
|
298
|
+
app.use("/api/v2", v2Router);
|
|
299
|
+
```
|
|
300
|
+
|
|
112
301
|
## Installation
|
|
113
302
|
|
|
114
303
|
```bash
|
|
115
304
|
npm install xypriss
|
|
116
|
-
npm i --save-dev @types/express
|
|
117
305
|
```
|
|
118
306
|
|
|
119
307
|
For security features:
|
|
120
308
|
|
|
121
309
|
```bash
|
|
122
310
|
npm install xypriss xypriss-security
|
|
123
|
-
npm i --save-dev @types/express
|
|
124
311
|
```
|
|
125
312
|
|
|
126
313
|
## Quick Start
|
|
@@ -147,7 +334,7 @@ const app = createServer({
|
|
|
147
334
|
},
|
|
148
335
|
});
|
|
149
336
|
|
|
150
|
-
// Define routes using
|
|
337
|
+
// Define routes using Express-like syntax
|
|
151
338
|
app.get("/", (req, res) => {
|
|
152
339
|
res.json({ message: "Hello from XyPriss!" });
|
|
153
340
|
});
|
|
@@ -277,11 +464,11 @@ server.start(undefined, () => {
|
|
|
277
464
|
|
|
278
465
|
### Core Framework (`xypriss`)
|
|
279
466
|
|
|
280
|
-
- Server Factory:
|
|
467
|
+
- Server Factory: Independent HTTP server creation with `createServer()`
|
|
468
|
+
- Routing System: Express-like API with advanced pattern matching
|
|
469
|
+
- Security Middleware: 12 built-in security modules
|
|
281
470
|
- Cache Engine: Multi-tier caching system with intelligent invalidation
|
|
282
|
-
- Cluster Manager: Process management and auto-scaling
|
|
283
471
|
- Plugin System: Extensible plugin architecture
|
|
284
|
-
- Request Management: Advanced timeout and concurrency controls
|
|
285
472
|
|
|
286
473
|
### Security Module (`xypriss-security`)
|
|
287
474
|
|
|
@@ -311,8 +498,9 @@ const server = createServer({
|
|
|
311
498
|
## Documentation
|
|
312
499
|
|
|
313
500
|
- [Getting Started Guide](./docs/getting-started.md)
|
|
314
|
-
- [
|
|
501
|
+
- [Routing System](./docs/routing.md)
|
|
315
502
|
- [Security Guide](./docs/security.md)
|
|
503
|
+
- [API Reference](./docs/api-reference.md)
|
|
316
504
|
- [Configuration Options](./docs/configuration.md)
|
|
317
505
|
- [Plugin Development](./docs/plugins.md)
|
|
318
506
|
|
|
@@ -378,7 +566,7 @@ A secure, cross-platform storage solution that works seamlessly across Web, Mobi
|
|
|
378
566
|
|
|
379
567
|
```typescript
|
|
380
568
|
import { Storage, STORAGE_KEYS } from "xypriss-acpes";
|
|
381
|
-
|
|
569
|
+
|
|
382
570
|
// Store sensitive data
|
|
383
571
|
await Storage.setItem(STORAGE_KEYS.SESSION_TOKEN, "your-token");
|
|
384
572
|
|
|
@@ -286,75 +286,6 @@ new Proxy({}, {
|
|
|
286
286
|
},
|
|
287
287
|
});
|
|
288
288
|
// ========================================
|
|
289
|
-
// MEMORY CACHE API
|
|
290
|
-
// ========================================
|
|
291
|
-
/**
|
|
292
|
-
* Read data from memory cache with fallback
|
|
293
|
-
*
|
|
294
|
-
* Retrieves data from the default memory cache instance.
|
|
295
|
-
* Returns empty object if key is not found (legacy behavior).
|
|
296
|
-
*
|
|
297
|
-
* @param args - Arguments passed to Cache.get()
|
|
298
|
-
* @returns Promise resolving to cached data or empty object
|
|
299
|
-
*
|
|
300
|
-
* @example
|
|
301
|
-
* ```typescript
|
|
302
|
-
* import { readCache } from "xypriss-security";
|
|
303
|
-
*
|
|
304
|
-
* const sessionData = await readCache('session:user123');
|
|
305
|
-
* console.log('User ID:', sessionData.userId || 'Not found');
|
|
306
|
-
* ```
|
|
307
|
-
*
|
|
308
|
-
* @since 4.2.2
|
|
309
|
-
*/
|
|
310
|
-
const readCache = async (...args) => {
|
|
311
|
-
const result = await Cache.get(...args);
|
|
312
|
-
return result || {};
|
|
313
|
-
};
|
|
314
|
-
/**
|
|
315
|
-
* Write data to memory cache
|
|
316
|
-
*
|
|
317
|
-
* Stores data in the default memory cache instance with encryption
|
|
318
|
-
* and automatic compression for large values.
|
|
319
|
-
*
|
|
320
|
-
* @param args - Arguments passed to Cache.set()
|
|
321
|
-
* @returns Promise resolving to true if successful
|
|
322
|
-
*
|
|
323
|
-
* @example
|
|
324
|
-
* ```typescript
|
|
325
|
-
* import { writeCache } from "xypriss-security";
|
|
326
|
-
*
|
|
327
|
-
* await writeCache('user:profile', userData, { ttl: 1800000 }); // 30 min
|
|
328
|
-
* ```
|
|
329
|
-
*
|
|
330
|
-
* @since 4.2.2
|
|
331
|
-
*/
|
|
332
|
-
const writeCache = async (...args) => {
|
|
333
|
-
return Cache.set(...args);
|
|
334
|
-
};
|
|
335
|
-
/**
|
|
336
|
-
* Get memory cache performance statistics
|
|
337
|
-
*
|
|
338
|
-
* Returns comprehensive statistics including hit rates, memory usage,
|
|
339
|
-
* and performance metrics for the default cache instance.
|
|
340
|
-
*
|
|
341
|
-
* @returns Current cache statistics
|
|
342
|
-
*
|
|
343
|
-
* @example
|
|
344
|
-
* ```typescript
|
|
345
|
-
* import { getCacheStats } from "xypriss-security";
|
|
346
|
-
*
|
|
347
|
-
* const stats = getCacheStats();
|
|
348
|
-
* console.log(`Hit rate: ${stats.hitRate}%`);
|
|
349
|
-
* console.log(`Memory usage: ${stats.memoryUsage} bytes`);
|
|
350
|
-
* ```
|
|
351
|
-
*
|
|
352
|
-
* @since 4.2.2
|
|
353
|
-
*/
|
|
354
|
-
const getCacheStats = () => {
|
|
355
|
-
return Cache.getStats;
|
|
356
|
-
};
|
|
357
|
-
// ========================================
|
|
358
289
|
// UTILITY FUNCTIONS
|
|
359
290
|
// ========================================
|
|
360
291
|
/**
|
|
@@ -464,7 +395,4 @@ exports.FileCache = cacheSys.FileCache;
|
|
|
464
395
|
exports.Cache = Cache;
|
|
465
396
|
exports.createOptimalCache = createOptimalCache;
|
|
466
397
|
exports.generateFilePath = generateFilePath;
|
|
467
|
-
exports.getCacheStats = getCacheStats;
|
|
468
|
-
exports.readCache = readCache;
|
|
469
|
-
exports.writeCache = writeCache;
|
|
470
398
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../../../../../mods/security/src/components/cache/index.ts"],"sourcesContent":[null],"names":["SecureInMemoryCache","DEFAULT_FILE_CACHE_CONFIG","Hash","FileCache"],"mappings":"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
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../../../../../mods/security/src/components/cache/index.ts"],"sourcesContent":[null],"names":["SecureInMemoryCache","DEFAULT_FILE_CACHE_CONFIG","Hash","FileCache"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;AA2BiF;AAwCjF;AAEA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAoEG;AAEH;AACA;AACA;AAEA;;;;;;;;;;;;;;;;;;;;;;;;;;AA0BG;AACU,MAAA,KAAK,GAAG,IAAIA,4BAAmB,GAAG;AA+F/C;AACA;AACA;AAEA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAsCG;AACU,MAAA,gBAAgB,GAAG,CAC5B,GAAW,EACX,OAAA,GAAqC,EAAE,KAC/B;IACR,MAAM,MAAM,GAAG,EAAE,GAAGC,sCAAyB,EAAE,GAAG,OAAO,EAAE,CAAC;AAC5D,IAAA,MAAM,SAAS,GAAGC,aAAI,CAAC,MAAM,CAAC,GAAG,EAAE,EAAE,YAAY,EAAE,KAAK,EAAE,CAAW,CAAC;AAEtE,IAAA,IAAI,QAAgB,CAAC;AAErB,IAAA,QAAQ,MAAM,CAAC,cAAc;AACzB,QAAA,KAAK,cAAc;YACf,MAAM,GAAG,GAAG,SAAS,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YACtC,MAAM,MAAM,GAAG,SAAS,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YACzC,QAAQ,GAAG,IAAI,CAAC,OAAO,CACnB,MAAM,CAAC,SAAS,EAChB,GAAG,EACH,MAAM,EACN,GAAG,SAAS,CAAA,EAAG,MAAM,CAAC,SAAS,CAAE,CAAA,CACpC,CAAC;YACF,MAAM;AAEV,QAAA,KAAK,OAAO;AACR,YAAA,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC;AACvB,YAAA,MAAM,IAAI,GAAG,GAAG,CAAC,WAAW,EAAE,CAAC;AAC/B,YAAA,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;AAC1D,YAAA,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;YACnD,QAAQ,GAAG,IAAI,CAAC,OAAO,CACnB,MAAM,CAAC,SAAS,EAChB,MAAM,CAAC,IAAI,CAAC,EACZ,KAAK,EACL,GAAG,EACH,CAAG,EAAA,SAAS,CAAG,EAAA,MAAM,CAAC,SAAS,CAAE,CAAA,CACpC,CAAC;YACF,MAAM;AAEV,QAAA,KAAK,QAAQ;YACT,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC,iBAAiB,EAAE,GAAG,CAAC,CAAC;AACpD,YAAA,QAAQ,GAAG,IAAI,CAAC,OAAO,CACnB,MAAM,CAAC,SAAS,EAChB,CAAA,EAAG,OAAO,CAAG,EAAA,MAAM,CAAC,SAAS,CAAA,CAAE,CAClC,CAAC;YACF,MAAM;AAEV,QAAA,KAAK,MAAM,CAAC;AACZ,QAAA;AACI,YAAA,QAAQ,GAAG,IAAI,CAAC,OAAO,CACnB,MAAM,CAAC,SAAS,EAChB,CAAA,EAAG,SAAS,CAAG,EAAA,MAAM,CAAC,SAAS,CAAA,CAAE,CACpC,CAAC;YACF,MAAM;KACb;AAED,IAAA,OAAO,QAAQ,CAAC;AACpB,EAAE;AAEF;AACA;AACA;AAEA;;;;;;;;;;;;;;;;;;;;;;;;;AAyBG;AACH,IAAI,iBAAiB,GAAqB,IAAI,CAAC;AACf,IAAI,KAAK,CAAC,EAAe,EAAE;IACvD,GAAG,CAAC,MAAM,EAAE,IAAI,EAAA;QACZ,IAAI,CAAC,iBAAiB,EAAE;AACpB,YAAA,iBAAiB,GAAG,IAAIC,kBAAS,EAAE,CAAC;SACvC;AACD,QAAA,MAAM,KAAK,GAAI,iBAAyB,CAAC,IAAI,CAAC,CAAC;QAC/C,OAAO,OAAO,KAAK,KAAK,UAAU;AAC9B,cAAE,KAAK,CAAC,IAAI,CAAC,iBAAiB,CAAC;cAC7B,KAAK,CAAC;KACf;AACJ,CAAA,EAAE;AA0TH;AACA;AACA;AAEA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAwCG;AACU,MAAA,kBAAkB,GAAG,CAAC,OAGlC,KAAI;AACD,IAAA,QAAQ,OAAO,CAAC,IAAI;AAChB,QAAA,KAAK,QAAQ;YACT,OAAO,IAAIH,4BAAmB,EAAE,CAAC;AACrC,QAAA,KAAK,MAAM;AACP,YAAA,OAAO,IAAIG,kBAAS,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;AACzC,QAAA,KAAK,QAAQ;;YAET,OAAO;gBACH,MAAM,EAAE,IAAIH,4BAAmB,EAAE;AACjC,gBAAA,IAAI,EAAE,IAAIG,kBAAS,CAAC,OAAO,CAAC,MAAM,CAAC;gBACnC,MAAM,GAAG,CAAC,GAAW,EAAA;;oBAEjB,IAAI,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;oBACxC,IAAI,CAAC,MAAM,EAAE;wBACT,MAAM,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;wBAClC,IAAI,MAAM,EAAE;;4BAER,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;yBACtC;qBACJ;AACD,oBAAA,OAAO,MAAM,CAAC;iBACjB;AACD,gBAAA,MAAM,GAAG,CAAC,GAAW,EAAE,KAAiB,EAAE,OAAa,EAAA;;AAEnD,oBAAA,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CACtC,GAAG,EACH,KAAK,EACL,OAAO,CACV,CAAC;AACF,oBAAA,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;oBAC5D,OAAO,YAAY,IAAI,UAAU,CAAC;iBACrC;aACJ,CAAC;AACN,QAAA;YACI,OAAO,IAAIH,4BAAmB,EAAE,CAAC;KACxC;AACL,EAAE;AAYF;AACA;AACA;AAEA;;;;;;;;AAQG;AACH,MAAM,sBAAsB,GAAG,MAAK;AAChC,IAAA,OAAO,CAAC,GAAG,CAAC,gDAAgD,CAAC,CAAC;AAC9D,IAAA,IAAI;QACA,KAAK,CAAC,QAAQ,EAAE,CAAC;KACpB;IAAC,OAAO,KAAK,EAAE;AACZ,QAAA,OAAO,CAAC,KAAK,CAAC,8BAA8B,EAAE,KAAK,CAAC,CAAC;KACxD;AACL,CAAC,CAAC;AAEF;AACA,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,sBAAsB,CAAC,CAAC;AAC9C,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,sBAAsB,CAAC;;;;;;;;;;"}
|
|
@@ -440,9 +440,6 @@ exports.getRecommendedConfig = index$1.getRecommendedConfig;
|
|
|
440
440
|
exports.Cache = index$3.Cache;
|
|
441
441
|
exports.createOptimalCache = index$3.createOptimalCache;
|
|
442
442
|
exports.generateFilePath = index$3.generateFilePath;
|
|
443
|
-
exports.getCacheStats = index$3.getCacheStats;
|
|
444
|
-
exports.readCache = index$3.readCache;
|
|
445
|
-
exports.writeCache = index$3.writeCache;
|
|
446
443
|
exports.PasswordManager = passwordCore.PasswordManager;
|
|
447
444
|
exports.fObject = fObject;
|
|
448
445
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../../../mods/security/src/index.ts"],"sourcesContent":[null],"names":["SecureRandom","Hash","PasswordManager","fObjectUtils.createSecureObject"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;AA2BiF;AAEjF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAgKG;AAogBH;;;;;;;;;;;;;;;AAeG;AAEH;AAC8BA,uBAAY,CAAC,eAAe;AAE1D;AACkCA,uBAAY,CAAC,mBAAmB;AAmBlE;;;;;;;;;;;;;;;;;;;;;;;;AAwBG;AAEH;AACgCC,aAAI,CAAC,iBAAiB;AAEtD;AACgCA,aAAI,CAAC,iBAAiB;AAEtD;AAC0BA,aAAI,CAAC,WAAW;AAyL1C;;;;;;;;;;;;;;;;;;;;AAoBG;AACeC,4BAAe,CAAC,WAAW,GAAG;AA0EhD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAsEG;AACa,SAAA,OAAO,CACnB,GAAG,IAA2D,EAAA;AAE9D,IAAA,OAAOC,0BAA+B,CAAI,GAAG,IAAI,CAAC,CAAC;AACvD
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../../../mods/security/src/index.ts"],"sourcesContent":[null],"names":["SecureRandom","Hash","PasswordManager","fObjectUtils.createSecureObject"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;AA2BiF;AAEjF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAgKG;AAogBH;;;;;;;;;;;;;;;AAeG;AAEH;AAC8BA,uBAAY,CAAC,eAAe;AAE1D;AACkCA,uBAAY,CAAC,mBAAmB;AAmBlE;;;;;;;;;;;;;;;;;;;;;;;;AAwBG;AAEH;AACgCC,aAAI,CAAC,iBAAiB;AAEtD;AACgCA,aAAI,CAAC,iBAAiB;AAEtD;AAC0BA,aAAI,CAAC,WAAW;AAyL1C;;;;;;;;;;;;;;;;;;;;AAoBG;AACeC,4BAAe,CAAC,WAAW,GAAG;AA0EhD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAsEG;AACa,SAAA,OAAO,CACnB,GAAG,IAA2D,EAAA;AAE9D,IAAA,OAAOC,0BAA+B,CAAI,GAAG,IAAI,CAAC,CAAC;AACvD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -19,6 +19,8 @@ class Logger {
|
|
|
19
19
|
console: false, // Console interception system logs (can be verbose)
|
|
20
20
|
ipc: true, // Inter-process communication logs
|
|
21
21
|
memory: true, // Memory monitoring and detection logs
|
|
22
|
+
lifecycle: true, // Server lifecycle management logs
|
|
23
|
+
routing: true, // Fast routing system logs
|
|
22
24
|
},
|
|
23
25
|
types: {
|
|
24
26
|
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;gBACd,GAAG,EAAE,IAAI;gBACT,MAAM,EAAE,IAAI;
|
|
1
|
+
{"version":3,"file":"Logger.js","sources":["../../../../shared/logger/Logger.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
|