xypriss 5.2.2 → 5.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 +90 -250
- package/dist/cjs/src/plugins/const/PluginHookIds.js +4 -0
- package/dist/cjs/src/plugins/const/PluginHookIds.js.map +1 -1
- package/dist/cjs/src/plugins/core/PluginManager.js +34 -8
- package/dist/cjs/src/plugins/core/PluginManager.js.map +1 -1
- package/dist/cjs/src/plugins/modules/PluginEngine.js +119 -1
- package/dist/cjs/src/plugins/modules/PluginEngine.js.map +1 -1
- package/dist/cjs/src/plugins/modules/types/PluginTypes.js.map +1 -1
- package/dist/cjs/src/server/FastServer.js +22 -0
- package/dist/cjs/src/server/FastServer.js.map +1 -1
- package/dist/cjs/src/server/components/fastapi/PluginManager.js +84 -1
- package/dist/cjs/src/server/components/fastapi/PluginManager.js.map +1 -1
- package/dist/cjs/src/server/components/fastapi/console/ConsoleInterceptor.js +134 -2
- package/dist/cjs/src/server/components/fastapi/console/ConsoleInterceptor.js.map +1 -1
- package/dist/cjs/src/server/components/fastapi/console/types.js +6 -5
- package/dist/cjs/src/server/components/fastapi/console/types.js.map +1 -1
- package/dist/esm/src/plugins/const/PluginHookIds.js +4 -0
- package/dist/esm/src/plugins/const/PluginHookIds.js.map +1 -1
- package/dist/esm/src/plugins/core/PluginManager.js +34 -8
- package/dist/esm/src/plugins/core/PluginManager.js.map +1 -1
- package/dist/esm/src/plugins/modules/PluginEngine.js +119 -1
- package/dist/esm/src/plugins/modules/PluginEngine.js.map +1 -1
- package/dist/esm/src/plugins/modules/types/PluginTypes.js.map +1 -1
- package/dist/esm/src/server/FastServer.js +22 -0
- package/dist/esm/src/server/FastServer.js.map +1 -1
- package/dist/esm/src/server/components/fastapi/PluginManager.js +84 -1
- package/dist/esm/src/server/components/fastapi/PluginManager.js.map +1 -1
- package/dist/esm/src/server/components/fastapi/console/ConsoleInterceptor.js +134 -2
- package/dist/esm/src/server/components/fastapi/console/ConsoleInterceptor.js.map +1 -1
- package/dist/esm/src/server/components/fastapi/console/types.js +6 -5
- package/dist/esm/src/server/components/fastapi/console/types.js.map +1 -1
- package/dist/index.d.ts +174 -79
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -1,15 +1,16 @@
|
|
|
1
1
|
<div align="center">
|
|
2
2
|
<img src="https://dll.nehonix.com/assets/xypriss/mode/transparent/logo.png" alt="XyPriss Logo" width="200" height="200">
|
|
3
3
|
|
|
4
|
-
# XyPriss
|
|
4
|
+
# XyPriss
|
|
5
5
|
|
|
6
|
-
|
|
6
|
+
**Enterprise-Grade Node.js Web Framework**
|
|
7
7
|
|
|
8
8
|
[](https://badge.fury.io/js/xypriss)
|
|
9
9
|
[](https://www.typescriptlang.org/)
|
|
10
10
|
[](https://dll.nehonix.com/licenses/NOSL)
|
|
11
11
|
[](https://nehonix.com)
|
|
12
|
-
|
|
12
|
+
|
|
13
|
+
[Quick Start](./docs/QUICK_START.md) • [Documentation](./docs/) • [Examples](./docs/EXAMPLES.md) • [API Reference](./docs/api-reference.md)
|
|
13
14
|
|
|
14
15
|
</div>
|
|
15
16
|
|
|
@@ -17,22 +18,16 @@ A powerful Node.js web framework with built-in security, clustering, and perform
|
|
|
17
18
|
|
|
18
19
|
## Overview
|
|
19
20
|
|
|
20
|
-
XyPriss is a
|
|
21
|
-
|
|
22
|
-
For production deployments, XyPriss integrates seamlessly with **[XyNginC](https://github.com/Nehonix-Team/xynginc)** for automated Nginx configuration and SSL management.
|
|
23
|
-
|
|
24
|
-
### Key Features
|
|
21
|
+
XyPriss is a TypeScript-first Node.js web framework designed for building secure, scalable, and high-performance web applications. Built with enterprise requirements in mind, XyPriss provides comprehensive security features, advanced clustering capabilities, and seamless integration with production infrastructure.
|
|
25
22
|
|
|
26
|
-
|
|
27
|
-
- **Built-in Security**: 12+ security middleware modules (CSRF, XSS, rate limiting)
|
|
28
|
-
- **File Upload Support**: Seamless multipart/form-data handling with automatic error handling
|
|
29
|
-
- **XJson API**: Advanced JSON serialization handling BigInt, circular references, and large data
|
|
30
|
-
- **Multi-Server Mode**: Run multiple server instances with different configurations
|
|
31
|
-
- **Flexible Routing**: Parameters, wildcards, and modular routers
|
|
32
|
-
- **TypeScript Support**: Full type definitions for better DX
|
|
33
|
-
- **Performance**: Advanced clustering, caching, and optimizations
|
|
23
|
+
### Core Features
|
|
34
24
|
|
|
35
|
-
|
|
25
|
+
- **Security-First Architecture** - 12+ built-in security middleware modules including CSRF protection, XSS prevention, and intelligent rate limiting
|
|
26
|
+
- **High Performance** - Independent HTTP server implementation with multi-core clustering support
|
|
27
|
+
- **File Upload Management** - Production-ready multipart/form-data handling with automatic validation and error handling
|
|
28
|
+
- **Extensible Plugin System** - Permission-based plugin architecture with lifecycle hooks and security controls
|
|
29
|
+
- **Multi-Server Support** - Run multiple server instances with isolated configurations and security policies
|
|
30
|
+
- **Production Integration** - Native integration with [XyNginC](https://github.com/Nehonix-Team/xynginc) for automated Nginx configuration and SSL management
|
|
36
31
|
|
|
37
32
|
---
|
|
38
33
|
|
|
@@ -54,308 +49,153 @@ npm install xypriss-security
|
|
|
54
49
|
|
|
55
50
|
## Quick Start
|
|
56
51
|
|
|
57
|
-
###
|
|
52
|
+
### Using CLI
|
|
58
53
|
|
|
59
54
|
```bash
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
# Create a new project
|
|
64
|
-
xypcli init
|
|
65
|
-
|
|
66
|
-
# Start development
|
|
67
|
-
cd your-project-name
|
|
55
|
+
npx xypriss-cli init
|
|
56
|
+
cd my-app
|
|
68
57
|
npm run dev
|
|
69
58
|
```
|
|
70
59
|
|
|
71
|
-
The CLI automatically generates a complete project structure with authentication, file upload support, and multi-server configuration (all optional).
|
|
72
|
-
|
|
73
60
|
### Manual Setup
|
|
74
61
|
|
|
75
62
|
```typescript
|
|
76
63
|
import { createServer } from "xypriss";
|
|
77
64
|
|
|
78
|
-
const
|
|
65
|
+
const app = createServer({
|
|
79
66
|
server: { port: 3000 },
|
|
80
67
|
security: { enabled: true },
|
|
81
|
-
performance: { clustering: true },
|
|
82
68
|
});
|
|
83
69
|
|
|
84
|
-
|
|
85
|
-
res.json({ message: "Hello from XyPriss
|
|
70
|
+
app.get("/", (req, res) => {
|
|
71
|
+
res.json({ message: "Hello from XyPriss" });
|
|
86
72
|
});
|
|
87
73
|
|
|
88
|
-
|
|
89
|
-
server.get("/api/data", (req, res) => {
|
|
90
|
-
const data = {
|
|
91
|
-
id: 123n, // BigInt value
|
|
92
|
-
timestamp: new Date(),
|
|
93
|
-
items: Array.from({ length: 1000 }, (_, i) => ({
|
|
94
|
-
id: i,
|
|
95
|
-
value: BigInt(i * 1000),
|
|
96
|
-
})),
|
|
97
|
-
};
|
|
98
|
-
|
|
99
|
-
res.xJson(data); // Advanced JSON handling
|
|
100
|
-
});
|
|
101
|
-
|
|
102
|
-
server.start(() => {
|
|
103
|
-
console.log(`Server running at http://localhost:${server.getPort()}`);
|
|
104
|
-
});
|
|
74
|
+
app.start();
|
|
105
75
|
```
|
|
106
76
|
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
## Documentation
|
|
110
|
-
|
|
111
|
-
### Core Guides
|
|
112
|
-
|
|
113
|
-
- **[Features Overview](./docs/FEATURES_OVERVIEW.md)** - Summary of latest improvements and architectural features
|
|
114
|
-
- **[Routing](./docs/ROUTING.md)** - Routes, parameters, wildcards, and middleware
|
|
115
|
-
- **[XJson API](./docs/XJSON_API.md)** - Advanced JSON serialization for BigInt and large data
|
|
116
|
-
- **[Global APIs](./docs/GLOBAL_APIS.md)** - Runtime globals overview
|
|
117
|
-
- **[Configuration API (**cfg**)](./docs/CFG_API.md)** - Deep dive into the configuration manager
|
|
118
|
-
- **[Immutability API (**const**)](./docs/CONST_API.md)** - Deep dive into the immutability engine
|
|
119
|
-
- **[File Upload](./docs/FILE_UPLOAD_GUIDE.md)** - Complete file upload guide with runtime compatibility
|
|
120
|
-
- **[Security](./docs/SECURITY.md)** - CORS, CSRF, rate limiting, and security best practices
|
|
121
|
-
- **[Multi-Server](./docs/MULTI_SERVER.md)** - Running multiple server instances
|
|
122
|
-
- **[Configuration](./docs/CONFIGURATION.md)** - Complete configuration reference
|
|
123
|
-
|
|
124
|
-
### Additional Resources
|
|
125
|
-
|
|
126
|
-
- **[Wildcard CORS](./docs/WILDCARD_CORS.md)** - Advanced CORS configuration
|
|
127
|
-
- **[API Reference](./docs/API.md)** - Complete API documentation
|
|
128
|
-
- **[Examples](./examples/)** - Code examples and use cases
|
|
129
|
-
- **[Migration Guide](./docs/MIGRATION.md)** - Migrating from FortifyJS
|
|
77
|
+
**[Complete Quick Start Guide](./docs/QUICK_START.md)**
|
|
130
78
|
|
|
131
79
|
---
|
|
132
80
|
|
|
133
|
-
##
|
|
134
|
-
|
|
135
|
-
### Routing
|
|
136
|
-
|
|
137
|
-
```typescript
|
|
138
|
-
import { createServer, Router } from "xypriss";
|
|
139
|
-
|
|
140
|
-
const app = createServer();
|
|
141
|
-
const userRouter = Router();
|
|
142
|
-
|
|
143
|
-
userRouter.get("/:id", (req, res) => {
|
|
144
|
-
res.json({ userId: req.params.id });
|
|
145
|
-
});
|
|
146
|
-
|
|
147
|
-
app.use("/api/users", userRouter);
|
|
148
|
-
```
|
|
81
|
+
## Documentation
|
|
149
82
|
|
|
150
|
-
|
|
83
|
+
### Getting Started
|
|
151
84
|
|
|
152
|
-
|
|
85
|
+
- [Quick Start Guide](./docs/QUICK_START.md) - Installation and basic setup
|
|
86
|
+
- [Examples](./docs/EXAMPLES.md) - Practical code examples
|
|
87
|
+
- [Features Overview](./docs/FEATURES_OVERVIEW.md) - Comprehensive feature list
|
|
153
88
|
|
|
154
|
-
|
|
155
|
-
import { createServer, FileUploadAPI } from "xypriss";
|
|
89
|
+
### Core Guides
|
|
156
90
|
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
});
|
|
91
|
+
- [Routing](./docs/ROUTING.md) - Route configuration and middleware
|
|
92
|
+
- [Security](./docs/SECURITY.md) - Security features and best practices
|
|
93
|
+
- [File Upload](./docs/FILE_UPLOAD_GUIDE.md) - File upload handling
|
|
94
|
+
- [Configuration](./docs/CONFIGURATION.md) - Complete configuration reference
|
|
95
|
+
- [Multi-Server](./docs/MULTI_SERVER.md) - Multi-server deployment
|
|
163
96
|
|
|
164
|
-
|
|
165
|
-
await upload.initialize(app.configs?.fileUpload);
|
|
97
|
+
### Plugin System
|
|
166
98
|
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
99
|
+
- [Plugin Development](./docs/PLUGIN_DEVELOPMENT_GUIDE.md) - Creating plugins
|
|
100
|
+
- [Plugin Hooks](./docs/PLUGIN_CORE_HOOKS.md) - Available lifecycle hooks
|
|
101
|
+
- [Plugin Permissions](./docs/PLUGIN_PERMISSIONS.md) - Security and permissions
|
|
102
|
+
- [Console Intercept Hook](./docs/CONSOLE_INTERCEPT_HOOK.md) - Console monitoring
|
|
171
103
|
|
|
172
|
-
|
|
104
|
+
### Advanced Topics
|
|
173
105
|
|
|
174
|
-
|
|
106
|
+
- [XJson API](./docs/XJSON_API.md) - Advanced JSON serialization
|
|
107
|
+
- [Clustering](./docs/bun-clustering.md) - Multi-worker scaling
|
|
108
|
+
- [Performance Tuning](./docs/cluster-performance-tuning.md) - Optimization strategies
|
|
175
109
|
|
|
176
|
-
|
|
177
|
-
const server = createServer({
|
|
178
|
-
security: {
|
|
179
|
-
enabled: true,
|
|
180
|
-
level: "enhanced",
|
|
181
|
-
cors: {
|
|
182
|
-
origin: ["localhost:*", "*.myapp.com"],
|
|
183
|
-
credentials: true,
|
|
184
|
-
},
|
|
185
|
-
rateLimit: { max: 100, windowMs: 15 * 60 * 1000 },
|
|
186
|
-
},
|
|
187
|
-
});
|
|
188
|
-
```
|
|
110
|
+
**[View All Documentation](./docs/)**
|
|
189
111
|
|
|
190
|
-
|
|
112
|
+
---
|
|
191
113
|
|
|
192
|
-
|
|
114
|
+
## Security
|
|
193
115
|
|
|
194
|
-
|
|
195
|
-
const app = createServer({
|
|
196
|
-
multiServer: {
|
|
197
|
-
enabled: true,
|
|
198
|
-
servers: [
|
|
199
|
-
{
|
|
200
|
-
id: "api-server",
|
|
201
|
-
port: 3001,
|
|
202
|
-
routePrefix: "/api",
|
|
203
|
-
allowedRoutes: ["/api/*"],
|
|
204
|
-
},
|
|
205
|
-
{
|
|
206
|
-
id: "admin-server",
|
|
207
|
-
port: 3002,
|
|
208
|
-
routePrefix: "/admin",
|
|
209
|
-
security: { level: "maximum" },
|
|
210
|
-
},
|
|
211
|
-
],
|
|
212
|
-
},
|
|
213
|
-
});
|
|
116
|
+
XyPriss is built with security as a fundamental design principle. The framework implements multiple layers of protection and follows industry best practices for secure web application development.
|
|
214
117
|
|
|
215
|
-
|
|
216
|
-
```
|
|
118
|
+
### Security Disclosure Policy
|
|
217
119
|
|
|
218
|
-
|
|
120
|
+
While we maintain rigorous security standards, we acknowledge that vulnerabilities may exist. We encourage responsible disclosure of security issues.
|
|
219
121
|
|
|
220
|
-
|
|
122
|
+
**If you discover a security vulnerability, please report it via email:**
|
|
221
123
|
|
|
222
|
-
|
|
124
|
+
**Email:** [support@team.nehonix.com](mailto:support@team.nehonix.com)
|
|
223
125
|
|
|
224
|
-
|
|
225
|
-
import { createServer } from "xypriss";
|
|
226
|
-
import XNCP from "xynginc";
|
|
126
|
+
**Please do not open public GitHub issues for security vulnerabilities.**
|
|
227
127
|
|
|
228
|
-
|
|
229
|
-
plugins: {
|
|
230
|
-
register: [
|
|
231
|
-
XNCP({
|
|
232
|
-
domains: [
|
|
233
|
-
{
|
|
234
|
-
domain: "api.example.com",
|
|
235
|
-
port: 3000,
|
|
236
|
-
ssl: true,
|
|
237
|
-
email: "admin@example.com",
|
|
238
|
-
},
|
|
239
|
-
],
|
|
240
|
-
}),
|
|
241
|
-
],
|
|
242
|
-
},
|
|
243
|
-
});
|
|
128
|
+
We are committed to:
|
|
244
129
|
|
|
245
|
-
|
|
246
|
-
|
|
130
|
+
- Acknowledging receipt of your report within 48 hours
|
|
131
|
+
- Providing regular updates on our progress
|
|
132
|
+
- Crediting researchers who responsibly disclose vulnerabilities
|
|
247
133
|
|
|
248
|
-
|
|
134
|
+
Your assistance in maintaining the security of XyPriss is greatly appreciated.
|
|
249
135
|
|
|
250
136
|
---
|
|
251
137
|
|
|
252
|
-
##
|
|
253
|
-
|
|
254
|
-
### ACPES (Advanced Cross-Platform Encrypted Storage)
|
|
255
|
-
|
|
256
|
-
Secure storage solution for web, mobile, and Node.js environments.
|
|
257
|
-
|
|
258
|
-
```typescript
|
|
259
|
-
import { Storage, STORAGE_KEYS } from "xypriss-acpes";
|
|
260
|
-
|
|
261
|
-
await Storage.setItem(STORAGE_KEYS.SESSION_TOKEN, "secure-token");
|
|
262
|
-
const token = await Storage.getItem(STORAGE_KEYS.SESSION_TOKEN);
|
|
263
|
-
```
|
|
264
|
-
|
|
265
|
-
[→ ACPES Documentation](./mods/ACPES/docs/)
|
|
266
|
-
|
|
267
|
-
### Security Module
|
|
268
|
-
|
|
269
|
-
Advanced security utilities for data handling and request protection.
|
|
270
|
-
|
|
271
|
-
```typescript
|
|
272
|
-
import { fString, generateSecureToken } from "xypriss-security";
|
|
273
|
-
|
|
274
|
-
const secureData = fString(data, { enableEncryption: true });
|
|
275
|
-
const token = generateSecureToken({ length: 32 });
|
|
276
|
-
```
|
|
138
|
+
## Contributing
|
|
277
139
|
|
|
278
|
-
|
|
140
|
+
XyPriss is an open-source project that welcomes contributions from the community. We value all forms of contribution, from bug reports to documentation improvements.
|
|
279
141
|
|
|
280
|
-
|
|
142
|
+
### How to Contribute
|
|
281
143
|
|
|
282
|
-
|
|
144
|
+
1. **Star the Repository** - Show your support and help others discover XyPriss
|
|
145
|
+
2. **Report Issues** - [Submit bug reports](https://github.com/Nehonix-Team/XyPriss/issues) with detailed reproduction steps
|
|
146
|
+
3. **Suggest Features** - [Open discussions](https://github.com/Nehonix-Team/XyPriss/discussions) for feature proposals
|
|
147
|
+
4. **Submit Pull Requests** - Review our [Contributing Guide](./CONTRIBUTING.md) before submitting code
|
|
148
|
+
5. **Improve Documentation** - Help us maintain clear and accurate documentation
|
|
283
149
|
|
|
284
|
-
|
|
150
|
+
### Contribution Guidelines
|
|
285
151
|
|
|
286
|
-
-
|
|
287
|
-
-
|
|
288
|
-
-
|
|
289
|
-
-
|
|
290
|
-
|
|
291
|
-
```typescript
|
|
292
|
-
const server = createServer({
|
|
293
|
-
server: {
|
|
294
|
-
port: 3000,
|
|
295
|
-
autoPortSwitch: { enabled: true, portRange: [3000, 3100] },
|
|
296
|
-
},
|
|
297
|
-
cache: {
|
|
298
|
-
strategy: "redis",
|
|
299
|
-
maxSize: 100 * 1024 * 1024, // 100MB
|
|
300
|
-
ttl: 3600,
|
|
301
|
-
},
|
|
302
|
-
cluster: { enabled: true, workers: "auto" },
|
|
303
|
-
});
|
|
304
|
-
```
|
|
152
|
+
- Follow the existing code style and conventions
|
|
153
|
+
- Include tests for new features
|
|
154
|
+
- Update documentation as needed
|
|
155
|
+
- Ensure all tests pass before submitting
|
|
156
|
+
- Write clear commit messages
|
|
305
157
|
|
|
306
|
-
[
|
|
158
|
+
**[Read the Complete Contributing Guide](./CONTRIBUTING.md)**
|
|
307
159
|
|
|
308
160
|
---
|
|
309
161
|
|
|
310
|
-
##
|
|
311
|
-
|
|
312
|
-
XyPriss complements the Node.js ecosystem:
|
|
162
|
+
## Community Support
|
|
313
163
|
|
|
314
|
-
|
|
315
|
-
- Enhance existing Express apps with XyPriss security modules
|
|
316
|
-
- Run both frameworks side by side
|
|
317
|
-
- Migrate gradually
|
|
164
|
+
### Resources
|
|
318
165
|
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
app.use(
|
|
326
|
-
XyPrissSecurity.middleware({
|
|
327
|
-
csrf: true,
|
|
328
|
-
xss: true,
|
|
329
|
-
rateLimit: { windowMs: 15 * 60 * 1000, max: 100 },
|
|
330
|
-
})
|
|
331
|
-
);
|
|
332
|
-
```
|
|
166
|
+
- **Documentation** - [Complete guides and API reference](./docs/)
|
|
167
|
+
- **GitHub Discussions** - [Community Q&A and feature discussions](https://github.com/Nehonix-Team/XyPriss/discussions)
|
|
168
|
+
- **Issue Tracker** - [Bug reports and feature requests](https://github.com/Nehonix-Team/XyPriss/issues)
|
|
169
|
+
- **Security** - [Report vulnerabilities](mailto:support@team.nehonix.com)
|
|
170
|
+
- **Website** - [Learn more about Nehonix](https://nehonix.com)
|
|
333
171
|
|
|
334
|
-
|
|
172
|
+
### Support the Project
|
|
335
173
|
|
|
336
|
-
|
|
174
|
+
If XyPriss has been valuable for your projects, consider:
|
|
337
175
|
|
|
338
|
-
|
|
176
|
+
- Starring the repository on GitHub
|
|
177
|
+
- Sharing the project with your network
|
|
178
|
+
- Contributing to the codebase or documentation
|
|
179
|
+
- Providing feedback and suggestions
|
|
339
180
|
|
|
340
181
|
---
|
|
341
182
|
|
|
342
|
-
##
|
|
183
|
+
## License
|
|
343
184
|
|
|
344
|
-
|
|
345
|
-
- **[GitHub Issues](https://github.com/Nehonix-Team/XyPriss/issues)** - Bug reports and feature requests
|
|
346
|
-
- **[Security Advisories](https://github.com/Nehonix-Team/XyPriss/security)** - Report security vulnerabilities
|
|
347
|
-
- **[Discussions](https://github.com/Nehonix-Team/XyPriss/discussions)** - Community support
|
|
185
|
+
XyPriss is licensed under the [NOSL License](./LICENSE).
|
|
348
186
|
|
|
349
187
|
---
|
|
350
188
|
|
|
351
|
-
##
|
|
189
|
+
## Acknowledgments
|
|
352
190
|
|
|
353
|
-
|
|
191
|
+
<div align="center">
|
|
354
192
|
|
|
355
|
-
|
|
193
|
+
### Developed by Nehonix Team
|
|
356
194
|
|
|
357
|
-
|
|
195
|
+
XyPriss is maintained by [Nehonix](https://github.com/Nehonix-Team) and its [contributors](https://github.com/Nehonix-Team/XyPriss/graphs/contributors).
|
|
358
196
|
|
|
359
197
|
[](https://nehonix.com)
|
|
360
198
|
[](https://github.com/Nehonix-Team)
|
|
361
199
|
|
|
200
|
+
</div>
|
|
201
|
+
|
|
@@ -27,6 +27,8 @@ const PluginHookIds = {
|
|
|
27
27
|
MIDDLEWARE: "PLG.HTTP.MIDDLEWARE",
|
|
28
28
|
// Management Hooks
|
|
29
29
|
MANAGE_PLUGINS: "PLG.MANAGEMENT.MANAGE_PLUGINS",
|
|
30
|
+
// Logging Hooks
|
|
31
|
+
ON_CONSOLE_INTERCEPT: "PLG.LOGGING.CONSOLE_INTERCEPT",
|
|
30
32
|
};
|
|
31
33
|
/**
|
|
32
34
|
* Mapping from internal hook method names to public PluginHookIds
|
|
@@ -53,6 +55,8 @@ const HOOK_ID_MAP = {
|
|
|
53
55
|
middleware: PluginHookIds.MIDDLEWARE,
|
|
54
56
|
// Management
|
|
55
57
|
managePlugins: PluginHookIds.MANAGE_PLUGINS,
|
|
58
|
+
// Logging
|
|
59
|
+
onConsoleIntercept: PluginHookIds.ON_CONSOLE_INTERCEPT,
|
|
56
60
|
};
|
|
57
61
|
|
|
58
62
|
exports.HOOK_ID_MAP = HOOK_ID_MAP;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PluginHookIds.js","sources":["../../../../../src/plugins/const/PluginHookIds.ts"],"sourcesContent":[null],"names":[],"mappings":";;AAAA;;;;;AAKG;AAEU,MAAA,aAAa,GAAG;;AAEzB,IAAA,WAAW,EAAE,wBAAwB;AACrC,IAAA,eAAe,EAAE,4BAA4B;AAC7C,IAAA,eAAe,EAAE,4BAA4B;AAC7C,IAAA,cAAc,EAAE,2BAA2B;;AAG3C,IAAA,UAAU,EAAE,qBAAqB;AACjC,IAAA,WAAW,EAAE,sBAAsB;AACnC,IAAA,QAAQ,EAAE,mBAAmB;;AAG7B,IAAA,kBAAkB,EAAE,8BAA8B;AAClD,IAAA,aAAa,EAAE,yBAAyB;;AAGxC,IAAA,gBAAgB,EAAE,2BAA2B;AAC7C,IAAA,cAAc,EAAE,yBAAyB;;AAGzC,IAAA,eAAe,EAAE,6BAA6B;AAC9C,IAAA,UAAU,EAAE,qBAAqB;;AAGjC,IAAA,cAAc,EAAE,+BAA+B;
|
|
1
|
+
{"version":3,"file":"PluginHookIds.js","sources":["../../../../../src/plugins/const/PluginHookIds.ts"],"sourcesContent":[null],"names":[],"mappings":";;AAAA;;;;;AAKG;AAEU,MAAA,aAAa,GAAG;;AAEzB,IAAA,WAAW,EAAE,wBAAwB;AACrC,IAAA,eAAe,EAAE,4BAA4B;AAC7C,IAAA,eAAe,EAAE,4BAA4B;AAC7C,IAAA,cAAc,EAAE,2BAA2B;;AAG3C,IAAA,UAAU,EAAE,qBAAqB;AACjC,IAAA,WAAW,EAAE,sBAAsB;AACnC,IAAA,QAAQ,EAAE,mBAAmB;;AAG7B,IAAA,kBAAkB,EAAE,8BAA8B;AAClD,IAAA,aAAa,EAAE,yBAAyB;;AAGxC,IAAA,gBAAgB,EAAE,2BAA2B;AAC7C,IAAA,cAAc,EAAE,yBAAyB;;AAGzC,IAAA,eAAe,EAAE,6BAA6B;AAC9C,IAAA,UAAU,EAAE,qBAAqB;;AAGjC,IAAA,cAAc,EAAE,+BAA+B;;AAG/C,IAAA,oBAAoB,EAAE,+BAA+B;EAC9C;AAEX;;AAEG;AACU,MAAA,WAAW,GAA2B;;IAE/C,UAAU,EAAE,aAAa,CAAC,WAAW;IACrC,aAAa,EAAE,aAAa,CAAC,eAAe;IAC5C,aAAa,EAAE,aAAa,CAAC,eAAe;IAC5C,YAAY,EAAE,aAAa,CAAC,cAAc;;IAG1C,SAAS,EAAE,aAAa,CAAC,UAAU;IACnC,UAAU,EAAE,aAAa,CAAC,WAAW;IACrC,OAAO,EAAE,aAAa,CAAC,QAAQ;;IAG/B,gBAAgB,EAAE,aAAa,CAAC,kBAAkB;IAClD,WAAW,EAAE,aAAa,CAAC,aAAa;;IAGxC,cAAc,EAAE,aAAa,CAAC,gBAAgB;IAC9C,YAAY,EAAE,aAAa,CAAC,cAAc;;IAG1C,cAAc,EAAE,aAAa,CAAC,eAAe;;IAG7C,UAAU,EAAE,aAAa,CAAC,UAAU;;IAGpC,aAAa,EAAE,aAAa,CAAC,cAAc;;IAG3C,kBAAkB,EAAE,aAAa,CAAC,oBAAoB;;;;;;"}
|
|
@@ -4,6 +4,29 @@ var Logger = require('../../../shared/logger/Logger.js');
|
|
|
4
4
|
var PluginHookIds = require('../const/PluginHookIds.js');
|
|
5
5
|
var plugingSchema = require('../../schemas/plugingSchema.js');
|
|
6
6
|
|
|
7
|
+
/***************************************************************************
|
|
8
|
+
* XyPrissJS - Fast And Secure
|
|
9
|
+
*
|
|
10
|
+
* @author Nehonix
|
|
11
|
+
* @license NOSL
|
|
12
|
+
*
|
|
13
|
+
* Copyright (c) 2025 Nehonix. All rights reserved.
|
|
14
|
+
*
|
|
15
|
+
* This License governs the use, modification, and distribution of software
|
|
16
|
+
* provided by NEHONIX under its open source projects.
|
|
17
|
+
* NEHONIX is committed to fostering collaborative innovation while strictly
|
|
18
|
+
* protecting its intellectual property rights.
|
|
19
|
+
* Violation of any term of this License will result in immediate termination of all granted rights
|
|
20
|
+
* and may subject the violator to legal action.
|
|
21
|
+
*
|
|
22
|
+
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
|
|
23
|
+
* INCLUDING BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE,
|
|
24
|
+
* AND NON-INFRINGEMENT.
|
|
25
|
+
* IN NO EVENT SHALL NEHONIX BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY,
|
|
26
|
+
* OR CONSEQUENTIAL DAMAGES ARISING FROM THE USE OR INABILITY TO USE THE SOFTWARE,
|
|
27
|
+
* EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
|
|
28
|
+
*
|
|
29
|
+
***************************************************************************** */
|
|
7
30
|
/**
|
|
8
31
|
* Plugin Manager
|
|
9
32
|
* Manages plugin registration, lifecycle, and execution
|
|
@@ -137,7 +160,7 @@ class PluginManager {
|
|
|
137
160
|
isPluginDisabled(pluginName, internalHookName) {
|
|
138
161
|
if (this.disabledPlugins.has(pluginName)) {
|
|
139
162
|
const hookId = PluginHookIds.HOOK_ID_MAP[internalHookName] || internalHookName;
|
|
140
|
-
this.logger.
|
|
163
|
+
this.logger.error("plugins", `Plugin '${pluginName}' is disabled but tried to execute hook '${hookId}'. ` +
|
|
141
164
|
`Ignoring request. Please enable it if you want to use its features.`);
|
|
142
165
|
return true;
|
|
143
166
|
}
|
|
@@ -152,11 +175,14 @@ class PluginManager {
|
|
|
152
175
|
}
|
|
153
176
|
const hookId = PluginHookIds.HOOK_ID_MAP[internalHookName] || internalHookName;
|
|
154
177
|
const permissions = this.server.app.configs?.pluginPermissions;
|
|
155
|
-
// Special case:
|
|
156
|
-
const
|
|
178
|
+
// Special case: Privileged hooks are denied by default unless explicitly allowed
|
|
179
|
+
const isPrivilegedHook = [
|
|
180
|
+
PluginHookIds.HOOK_ID_MAP.managePlugins,
|
|
181
|
+
PluginHookIds.HOOK_ID_MAP.onConsoleIntercept,
|
|
182
|
+
].includes(hookId);
|
|
157
183
|
// If no permissions configured
|
|
158
184
|
if (!permissions || permissions.length === 0) {
|
|
159
|
-
if (
|
|
185
|
+
if (isPrivilegedHook) {
|
|
160
186
|
this.logger.error("plugins", `Plugin '${pluginName}' is denied access to privileged hook '${hookId}'. ` +
|
|
161
187
|
`Explicit permission is required in server configuration.`);
|
|
162
188
|
return false;
|
|
@@ -166,7 +192,7 @@ class PluginManager {
|
|
|
166
192
|
const pluginPerm = permissions.find((p) => p.name === pluginName);
|
|
167
193
|
// If plugin not listed in permissions
|
|
168
194
|
if (!pluginPerm) {
|
|
169
|
-
if (
|
|
195
|
+
if (isPrivilegedHook) {
|
|
170
196
|
this.logger.error("plugins", `Plugin '${pluginName}' is denied access to privileged hook '${hookId}'. ` +
|
|
171
197
|
`Explicit permission is required in server configuration.`);
|
|
172
198
|
return false;
|
|
@@ -196,15 +222,15 @@ class PluginManager {
|
|
|
196
222
|
return false;
|
|
197
223
|
}
|
|
198
224
|
// If policy is "allow", it's a blacklist (if we had deniedHooks)
|
|
199
|
-
// or just "allow all except
|
|
200
|
-
if (
|
|
225
|
+
// or just "allow all except privileged hooks"
|
|
226
|
+
if (isPrivilegedHook) {
|
|
201
227
|
if (allowedHooks === "*")
|
|
202
228
|
return true;
|
|
203
229
|
if (Array.isArray(allowedHooks) && allowedHooks.includes(hookId)) {
|
|
204
230
|
return true;
|
|
205
231
|
}
|
|
206
232
|
this.logger.error("plugins", `Plugin '${pluginName}' is denied access to privileged hook '${hookId}'. ` +
|
|
207
|
-
`
|
|
233
|
+
`Privileged hooks must be explicitly listed even with 'allow' policy.`);
|
|
208
234
|
return false;
|
|
209
235
|
}
|
|
210
236
|
return true;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PluginManager.js","sources":["../../../../../src/plugins/core/PluginManager.ts"],"sourcesContent":[null],"names":["Logger","validatePlgInput","HOOK_ID_MAP"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"PluginManager.js","sources":["../../../../../src/plugins/core/PluginManager.ts"],"sourcesContent":[null],"names":["Logger","validatePlgInput","HOOK_ID_MAP"],"mappings":"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"}
|