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.
- package/README.md +138 -3
- package/dist/cjs/mods/security/src/components/cache/index.js +1 -1
- package/dist/cjs/shared/logger/Logger.js +1 -0
- package/dist/cjs/shared/logger/Logger.js.map +1 -1
- package/dist/cjs/src/cluster/bun-cluster-manager.js +1567 -0
- package/dist/cjs/src/cluster/bun-cluster-manager.js.map +1 -0
- package/dist/cjs/src/cluster/cluster-manager.js +1 -1
- package/dist/cjs/src/cluster/cluster-manager.js.map +1 -1
- package/dist/cjs/src/cluster/index.js +25 -6
- package/dist/cjs/src/cluster/index.js.map +1 -1
- package/dist/cjs/src/cluster/memory-manager.js +463 -0
- package/dist/cjs/src/cluster/memory-manager.js.map +1 -0
- package/dist/cjs/src/cluster/modules/BunIPCManager.js +603 -0
- package/dist/cjs/src/cluster/modules/BunIPCManager.js.map +1 -0
- package/dist/cjs/src/cluster/modules/ClusterFactory.js +22 -1
- package/dist/cjs/src/cluster/modules/ClusterFactory.js.map +1 -1
- package/dist/cjs/src/cluster/modules/CpuMonitor.js +658 -0
- package/dist/cjs/src/cluster/modules/CpuMonitor.js.map +1 -0
- package/dist/cjs/src/cluster/modules/ProcessMonitor.js +513 -0
- package/dist/cjs/src/cluster/modules/ProcessMonitor.js.map +1 -0
- package/dist/cjs/src/plugins/server-maintenance-plugin.js +1 -1
- package/dist/cjs/src/server/FastServer.js +64 -43
- package/dist/cjs/src/server/FastServer.js.map +1 -1
- package/dist/cjs/src/server/components/fastapi/ClusterManagerComponent.js +226 -10
- package/dist/cjs/src/server/components/fastapi/ClusterManagerComponent.js.map +1 -1
- package/dist/cjs/src/server/const/Cluster.config.js +174 -31
- package/dist/cjs/src/server/const/Cluster.config.js.map +1 -1
- package/dist/cjs/src/server/const/default.js +11 -2
- package/dist/cjs/src/server/const/default.js.map +1 -1
- package/dist/cjs/src/server/utils/PortManager.js +26 -15
- package/dist/cjs/src/server/utils/PortManager.js.map +1 -1
- package/dist/esm/mods/security/src/components/cache/index.js +1 -1
- package/dist/esm/shared/logger/Logger.js +1 -0
- package/dist/esm/shared/logger/Logger.js.map +1 -1
- package/dist/esm/src/cluster/bun-cluster-manager.js +1565 -0
- package/dist/esm/src/cluster/bun-cluster-manager.js.map +1 -0
- package/dist/esm/src/cluster/cluster-manager.js +1 -1
- package/dist/esm/src/cluster/cluster-manager.js.map +1 -1
- package/dist/esm/src/cluster/index.js +25 -6
- package/dist/esm/src/cluster/index.js.map +1 -1
- package/dist/esm/src/cluster/memory-manager.js +461 -0
- package/dist/esm/src/cluster/memory-manager.js.map +1 -0
- package/dist/esm/src/cluster/modules/BunIPCManager.js +601 -0
- package/dist/esm/src/cluster/modules/BunIPCManager.js.map +1 -0
- package/dist/esm/src/cluster/modules/ClusterFactory.js +22 -1
- package/dist/esm/src/cluster/modules/ClusterFactory.js.map +1 -1
- package/dist/esm/src/cluster/modules/CpuMonitor.js +656 -0
- package/dist/esm/src/cluster/modules/CpuMonitor.js.map +1 -0
- package/dist/esm/src/cluster/modules/ProcessMonitor.js +511 -0
- package/dist/esm/src/cluster/modules/ProcessMonitor.js.map +1 -0
- package/dist/esm/src/plugins/server-maintenance-plugin.js +1 -1
- package/dist/esm/src/server/FastServer.js +64 -43
- package/dist/esm/src/server/FastServer.js.map +1 -1
- package/dist/esm/src/server/components/fastapi/ClusterManagerComponent.js +226 -10
- package/dist/esm/src/server/components/fastapi/ClusterManagerComponent.js.map +1 -1
- package/dist/esm/src/server/const/Cluster.config.js +174 -31
- package/dist/esm/src/server/const/Cluster.config.js.map +1 -1
- package/dist/esm/src/server/const/default.js +11 -2
- package/dist/esm/src/server/const/default.js.map +1 -1
- package/dist/esm/src/server/utils/PortManager.js +26 -15
- package/dist/esm/src/server/utils/PortManager.js.map +1 -1
- package/dist/index.d.ts +78 -1
- package/package.json +3 -1
- package/dist/cjs/src/plugins/modules/network/index.js +0 -120
- package/dist/cjs/src/plugins/modules/network/index.js.map +0 -1
- package/dist/cjs/src/server/plugins/PluginEngine.js +0 -378
- package/dist/cjs/src/server/plugins/PluginEngine.js.map +0 -1
- package/dist/cjs/src/server/plugins/PluginRegistry.js +0 -339
- package/dist/cjs/src/server/plugins/PluginRegistry.js.map +0 -1
- package/dist/cjs/src/server/plugins/builtin/JWTAuthPlugin.js +0 -591
- package/dist/cjs/src/server/plugins/builtin/JWTAuthPlugin.js.map +0 -1
- package/dist/cjs/src/server/plugins/builtin/ResponseTimePlugin.js +0 -413
- package/dist/cjs/src/server/plugins/builtin/ResponseTimePlugin.js.map +0 -1
- package/dist/cjs/src/server/plugins/builtin/SmartCachePlugin.js +0 -843
- package/dist/cjs/src/server/plugins/builtin/SmartCachePlugin.js.map +0 -1
- package/dist/cjs/src/server/plugins/core/CachePlugin.js +0 -1975
- package/dist/cjs/src/server/plugins/core/CachePlugin.js.map +0 -1
- package/dist/cjs/src/server/plugins/core/PerformancePlugin.js +0 -894
- package/dist/cjs/src/server/plugins/core/PerformancePlugin.js.map +0 -1
- package/dist/cjs/src/server/plugins/core/SecurityPlugin.js +0 -799
- package/dist/cjs/src/server/plugins/core/SecurityPlugin.js.map +0 -1
- package/dist/cjs/src/server/plugins/types/PluginTypes.js +0 -47
- package/dist/cjs/src/server/plugins/types/PluginTypes.js.map +0 -1
- package/dist/esm/src/plugins/modules/network/index.js +0 -109
- package/dist/esm/src/plugins/modules/network/index.js.map +0 -1
- package/dist/esm/src/server/plugins/PluginEngine.js +0 -376
- package/dist/esm/src/server/plugins/PluginEngine.js.map +0 -1
- package/dist/esm/src/server/plugins/PluginRegistry.js +0 -337
- package/dist/esm/src/server/plugins/PluginRegistry.js.map +0 -1
- package/dist/esm/src/server/plugins/builtin/JWTAuthPlugin.js +0 -589
- package/dist/esm/src/server/plugins/builtin/JWTAuthPlugin.js.map +0 -1
- package/dist/esm/src/server/plugins/builtin/ResponseTimePlugin.js +0 -411
- package/dist/esm/src/server/plugins/builtin/ResponseTimePlugin.js.map +0 -1
- package/dist/esm/src/server/plugins/builtin/SmartCachePlugin.js +0 -841
- package/dist/esm/src/server/plugins/builtin/SmartCachePlugin.js.map +0 -1
- package/dist/esm/src/server/plugins/core/CachePlugin.js +0 -1973
- package/dist/esm/src/server/plugins/core/CachePlugin.js.map +0 -1
- package/dist/esm/src/server/plugins/core/PerformancePlugin.js +0 -872
- package/dist/esm/src/server/plugins/core/PerformancePlugin.js.map +0 -1
- package/dist/esm/src/server/plugins/core/SecurityPlugin.js +0 -797
- package/dist/esm/src/server/plugins/core/SecurityPlugin.js.map +0 -1
- package/dist/esm/src/server/plugins/types/PluginTypes.js +0 -47
- 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
|
[](https://badge.fury.io/js/xypriss)
|
|
4
9
|
[](https://www.typescriptlang.org/)
|
|
5
10
|
[](https://opensource.org/licenses/MIT)
|
|
11
|
+
[](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
|
-
|
|
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
|
+
[](https://nehonix.space)
|
|
428
|
+
[](https://github.com/Nehonix-Team)
|
|
429
|
+
[](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
|
|
44
|
+
* This file contains type definitions for the SecureArray architecture
|
|
45
45
|
*
|
|
46
46
|
* @author Nehonix
|
|
47
47
|
* @license MIT
|
|
@@ -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;
|
|
1
|
+
{"version":3,"file":"Logger.js","sources":["../../../../shared/logger/Logger.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
|