xypriss 9.10.14 → 9.10.16
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 +5 -8
- package/dist/cjs/src/middleware/security-middleware.js +23 -78
- package/dist/cjs/src/middleware/security-middleware.js.map +1 -1
- package/dist/esm/src/middleware/security-middleware.js +23 -78
- package/dist/esm/src/middleware/security-middleware.js.map +1 -1
- package/dist/index.d.ts +0 -130
- package/package.json +1 -1
- package/scripts/postinstall.js +49 -2
- package/scripts/install-memory-cli.js +0 -191
package/README.md
CHANGED
|
@@ -8,20 +8,17 @@ _Stop Coding Backends. Start Deploying Fortresses._
|
|
|
8
8
|
[](https://xypriss.nehonix.com)
|
|
9
9
|
[](https://www.typescriptlang.org/)
|
|
10
10
|
[](https://dll.nehonix.com/licenses/NOSL/v2)
|
|
11
|
+
[](https://dll.nehonix.com/licenses/NOSL/v2)
|
|
11
12
|
[](https://nehonix.com)
|
|
12
13
|
|
|
13
14
|
[Quick Start](https://xypriss.nehonix.com/docs/QUICK_START) • [Documentation](https://xypriss.nehonix.com/docs/) • [Examples](https://xypriss.nehonix.com/docs/EXAMPLES) • [API Reference](https://xypriss.nehonix.com/docs/api-reference)
|
|
14
15
|
|
|
15
16
|
</div>
|
|
16
17
|
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
> [!WARNING]
|
|
20
|
-
> **Beta Software** — This project is in active development. APIs, configurations, and behaviors may change at any time without notice. Use in production at your own risk.
|
|
21
|
-
|
|
22
|
-
## Overview
|
|
18
|
+
> [!IMPORTANT]
|
|
19
|
+
> **Official Stable Release** — XyPriss has graduated from Beta. The current stable version is **v9.10.16++**.
|
|
23
20
|
|
|
24
|
-
XyPriss is an **Enterprise-Grade Hybrid Web Framework** that combines the raw performance of compiled native binaries with the productivity and flexibility of **TypeScript**. It is designed for teams that require both operational speed and developer velocity, without compromise.
|
|
21
|
+
[**XyPriss**](https://xypriss.nehonix.com) is an **Enterprise-Grade Hybrid Web Framework** that combines the raw performance of compiled native binaries with the productivity and flexibility of **TypeScript**. It is designed for teams that require both operational speed and developer velocity, without compromise.
|
|
25
22
|
|
|
26
23
|
> [!NOTE]
|
|
27
24
|
> **Security Briefing:** XyPriss enforces a "Secure by Default" architecture. Core variables are protected by a native **[Environment Security Shield](./docs/ENVIRONMENT_SHIELD.md)** that blocks direct `process.env` access to prevent leakage. This is complemented by a built-in, zero-dependency storage system (**XEMS**), high-speed Go-powered networking (**XHSC**), and a **Zero-Trust Plugin Security** layer.
|
|
@@ -387,7 +384,7 @@ XyPriss is an open-source project that welcomes contributions from the community
|
|
|
387
384
|
1. **Star the Repository** - Show your support and help others discover XyPriss
|
|
388
385
|
2. **Report Issues** - [Submit bug reports](https://github.com/Nehonix-Team/XyPriss/issues) with detailed reproduction steps
|
|
389
386
|
3. **Suggest Features** - [Open discussions](https://github.com/Nehonix-Team/XyPriss/discussions) for feature proposals
|
|
390
|
-
4. **Submit Pull Requests** - Review our [Contributing Guide](
|
|
387
|
+
4. **Submit Pull Requests** - Review our [Contributing Guide](https://xypriss.nehonix.com/docs/contributing) before submitting code
|
|
391
388
|
5. **Improve Documentation** - Help us maintain clear and accurate documentation
|
|
392
389
|
|
|
393
390
|
### Contribution Guidelines
|
|
@@ -7,7 +7,6 @@ var CommandInjectionDetector = require('./built-in/security/CommandInjectionDete
|
|
|
7
7
|
var XXEProtector = require('./built-in/security/XXEProtector.js');
|
|
8
8
|
var LDAPInjectionDetector = require('./built-in/security/LDAPInjectionDetector.js');
|
|
9
9
|
var Logger = require('../shared/logger/Logger.js');
|
|
10
|
-
var MobileOnlyProtector = require('./built-in/security/MobileOnlyProtector.js');
|
|
11
10
|
var BuiltInMiddleware = require('./built-in/BuiltInMiddleware.js');
|
|
12
11
|
var xss = require('xss');
|
|
13
12
|
|
|
@@ -81,17 +80,6 @@ class SecurityMiddleware {
|
|
|
81
80
|
config.requestSignature !== false
|
|
82
81
|
? config.requestSignature || false
|
|
83
82
|
: false;
|
|
84
|
-
this.mobileOnly =
|
|
85
|
-
config.mobileOnly !== false ? config.mobileOnly || false : false;
|
|
86
|
-
this.deviceAccess = config.deviceAccess;
|
|
87
|
-
// If deviceAccess is provided, override individual settings
|
|
88
|
-
if (this.deviceAccess) {
|
|
89
|
-
this.browserOnly = this.deviceAccess.browserOnly || false;
|
|
90
|
-
this.terminalOnly = this.deviceAccess.terminalOnly || false;
|
|
91
|
-
this.mobileOnly = this.deviceAccess.mobileOnly || false;
|
|
92
|
-
}
|
|
93
|
-
// Validate device access configuration
|
|
94
|
-
this.validateDeviceAccessConfig();
|
|
95
83
|
this.encryption = {
|
|
96
84
|
algorithm: "AES-256-GCM",
|
|
97
85
|
keySize: 32,
|
|
@@ -324,14 +312,6 @@ class SecurityMiddleware {
|
|
|
324
312
|
this.terminalOnlyMiddleware =
|
|
325
313
|
BuiltInMiddleware.BuiltInMiddleware.terminalOnly(terminalOnlyConfig);
|
|
326
314
|
}
|
|
327
|
-
// Mobile-only protection
|
|
328
|
-
if (this.isMobileOnlyEnabled()) {
|
|
329
|
-
const mobileOnlyConfig = typeof this.mobileOnly === "object" ? this.mobileOnly : {};
|
|
330
|
-
this.mobileOnlyMiddleware =
|
|
331
|
-
BuiltInMiddleware.BuiltInMiddleware.mobileOnly(mobileOnlyConfig);
|
|
332
|
-
// Also create the protector instance for mobile detection
|
|
333
|
-
this.mobileOnlyProtector = new MobileOnlyProtector.MobileOnlyProtector(mobileOnlyConfig, this.logger);
|
|
334
|
-
}
|
|
335
315
|
// Request signature protection (API authentication)
|
|
336
316
|
if (this.requestSignature) {
|
|
337
317
|
const requestSignatureConfig = typeof this.requestSignature === "object" &&
|
|
@@ -377,26 +357,19 @@ class SecurityMiddleware {
|
|
|
377
357
|
const middlewareStack = [];
|
|
378
358
|
// 🚨 CRITICAL: Access control middlewares FIRST (before any other processing)
|
|
379
359
|
// These must run before route resolution to block unwanted requests
|
|
380
|
-
// Handle device access controls
|
|
381
360
|
const browserEnabled = this.isBrowserOnlyEnabled();
|
|
382
361
|
const terminalEnabled = this.isTerminalOnlyEnabled();
|
|
383
|
-
const mobileEnabled = this.isMobileOnlyEnabled();
|
|
384
|
-
// 1. Terminal-only protection (blocks browser requests) - cannot be combined with others
|
|
385
362
|
if (terminalEnabled &&
|
|
386
363
|
this.terminalOnlyMiddleware &&
|
|
387
364
|
this.shouldApplySecurityModule(req, undefined, true)) {
|
|
388
|
-
this.logger.debug("security", "Adding terminal-only middleware
|
|
365
|
+
this.logger.debug("security", "Adding terminal-only middleware");
|
|
389
366
|
middlewareStack.push(this.terminalOnlyMiddleware);
|
|
390
367
|
}
|
|
391
|
-
|
|
392
|
-
|
|
368
|
+
else if (browserEnabled &&
|
|
369
|
+
this.browserOnlyMiddleware &&
|
|
393
370
|
this.shouldApplySecurityModule(req, undefined, true)) {
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
if (combinedDeviceMiddleware) {
|
|
397
|
-
this.logger.debug("security", `Adding combined device middleware (browser: ${browserEnabled}, mobile: ${mobileEnabled})`);
|
|
398
|
-
middlewareStack.push(combinedDeviceMiddleware);
|
|
399
|
-
}
|
|
371
|
+
this.logger.debug("security", "Adding browser-only middleware");
|
|
372
|
+
middlewareStack.push(this.browserOnlyMiddleware);
|
|
400
373
|
}
|
|
401
374
|
// 3. Request signature protection (API authentication)
|
|
402
375
|
if (this.requestSignature &&
|
|
@@ -828,50 +801,6 @@ class SecurityMiddleware {
|
|
|
828
801
|
// Browser-only and mobile-only can be enabled together (they will be applied based on request characteristics)
|
|
829
802
|
// No other restrictions needed
|
|
830
803
|
}
|
|
831
|
-
/**
|
|
832
|
-
* Create combined middleware for browser and mobile access control
|
|
833
|
-
*/
|
|
834
|
-
createCombinedDeviceMiddleware(browserEnabled, mobileEnabled) {
|
|
835
|
-
// If neither is enabled, return null
|
|
836
|
-
if (!browserEnabled && !mobileEnabled) {
|
|
837
|
-
return null;
|
|
838
|
-
}
|
|
839
|
-
// If only one is enabled, return that middleware directly
|
|
840
|
-
if (browserEnabled && !mobileEnabled && this.browserOnlyMiddleware) {
|
|
841
|
-
return this.browserOnlyMiddleware;
|
|
842
|
-
}
|
|
843
|
-
if (mobileEnabled && !browserEnabled && this.mobileOnlyMiddleware) {
|
|
844
|
-
return this.mobileOnlyMiddleware;
|
|
845
|
-
}
|
|
846
|
-
// Both are enabled - create combined logic
|
|
847
|
-
if (!this.browserOnlyMiddleware || !this.mobileOnlyMiddleware) {
|
|
848
|
-
return null; // Should not happen if validation passed
|
|
849
|
-
}
|
|
850
|
-
return (req, res, next) => {
|
|
851
|
-
// First check if it's a mobile request
|
|
852
|
-
const isMobileRequest = this.isMobileRequest(req);
|
|
853
|
-
if (isMobileRequest) {
|
|
854
|
-
// Apply mobile-only rules
|
|
855
|
-
this.logger.debug("security", "Applying mobile-only rules for mobile request");
|
|
856
|
-
return this.mobileOnlyMiddleware(req, res, next);
|
|
857
|
-
}
|
|
858
|
-
else {
|
|
859
|
-
// Apply browser-only rules
|
|
860
|
-
this.logger.debug("security", "Applying browser-only rules for non-mobile request");
|
|
861
|
-
return this.browserOnlyMiddleware(req, res, next);
|
|
862
|
-
}
|
|
863
|
-
};
|
|
864
|
-
}
|
|
865
|
-
/**
|
|
866
|
-
* Check if request is from a mobile device (using MobileOnlyProtector logic)
|
|
867
|
-
*/
|
|
868
|
-
isMobileRequest(req) {
|
|
869
|
-
if (!this.mobileOnlyProtector) {
|
|
870
|
-
// If no mobile protector, assume not mobile
|
|
871
|
-
return false;
|
|
872
|
-
}
|
|
873
|
-
return this.mobileOnlyProtector.isMobileRequest(req);
|
|
874
|
-
}
|
|
875
804
|
/**
|
|
876
805
|
* Get security configuration
|
|
877
806
|
*/
|
|
@@ -882,8 +811,6 @@ class SecurityMiddleware {
|
|
|
882
811
|
helmet: this.helmet,
|
|
883
812
|
browserOnly: this.browserOnly,
|
|
884
813
|
terminalOnly: this.terminalOnly,
|
|
885
|
-
mobileOnly: this.mobileOnly,
|
|
886
|
-
deviceAccess: this.deviceAccess,
|
|
887
814
|
requestSignature: this.requestSignature,
|
|
888
815
|
xss: this.xss,
|
|
889
816
|
sqlInjection: this.sqlInjection,
|
|
@@ -905,6 +832,24 @@ class SecurityMiddleware {
|
|
|
905
832
|
_ignoreAll: this._ignoreAll,
|
|
906
833
|
};
|
|
907
834
|
}
|
|
835
|
+
/**
|
|
836
|
+
* Check if browser-only protection is enabled
|
|
837
|
+
*/
|
|
838
|
+
isBrowserOnlyEnabled() {
|
|
839
|
+
if (this.level === "maximum") {
|
|
840
|
+
return true;
|
|
841
|
+
}
|
|
842
|
+
return !!this.browserOnly;
|
|
843
|
+
}
|
|
844
|
+
/**
|
|
845
|
+
* Check if terminal-only protection is enabled
|
|
846
|
+
*/
|
|
847
|
+
isTerminalOnlyEnabled() {
|
|
848
|
+
if (this.level === "maximum") {
|
|
849
|
+
return false;
|
|
850
|
+
}
|
|
851
|
+
return !!this.terminalOnly;
|
|
852
|
+
}
|
|
908
853
|
/**
|
|
909
854
|
* Check if a route matches a pattern
|
|
910
855
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"security-middleware.js","sources":["../../../../src/middleware/security-middleware.ts"],"sourcesContent":[null],"names":["Logger","Random","BuiltInMiddleware","MobileOnlyProtector"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"security-middleware.js","sources":["../../../../src/middleware/security-middleware.ts"],"sourcesContent":[null],"names":["Logger","Random","BuiltInMiddleware"],"mappings":"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"}
|
|
@@ -5,7 +5,6 @@ import CommandInjectionDetector from './built-in/security/CommandInjectionDetect
|
|
|
5
5
|
import XXEProtector from './built-in/security/XXEProtector.js';
|
|
6
6
|
import LDAPInjectionDetector from './built-in/security/LDAPInjectionDetector.js';
|
|
7
7
|
import { Logger } from '../shared/logger/Logger.js';
|
|
8
|
-
import { MobileOnlyProtector } from './built-in/security/MobileOnlyProtector.js';
|
|
9
8
|
import { BuiltInMiddleware } from './built-in/BuiltInMiddleware.js';
|
|
10
9
|
import xss from 'xss';
|
|
11
10
|
|
|
@@ -79,17 +78,6 @@ class SecurityMiddleware {
|
|
|
79
78
|
config.requestSignature !== false
|
|
80
79
|
? config.requestSignature || false
|
|
81
80
|
: false;
|
|
82
|
-
this.mobileOnly =
|
|
83
|
-
config.mobileOnly !== false ? config.mobileOnly || false : false;
|
|
84
|
-
this.deviceAccess = config.deviceAccess;
|
|
85
|
-
// If deviceAccess is provided, override individual settings
|
|
86
|
-
if (this.deviceAccess) {
|
|
87
|
-
this.browserOnly = this.deviceAccess.browserOnly || false;
|
|
88
|
-
this.terminalOnly = this.deviceAccess.terminalOnly || false;
|
|
89
|
-
this.mobileOnly = this.deviceAccess.mobileOnly || false;
|
|
90
|
-
}
|
|
91
|
-
// Validate device access configuration
|
|
92
|
-
this.validateDeviceAccessConfig();
|
|
93
81
|
this.encryption = {
|
|
94
82
|
algorithm: "AES-256-GCM",
|
|
95
83
|
keySize: 32,
|
|
@@ -322,14 +310,6 @@ class SecurityMiddleware {
|
|
|
322
310
|
this.terminalOnlyMiddleware =
|
|
323
311
|
BuiltInMiddleware.terminalOnly(terminalOnlyConfig);
|
|
324
312
|
}
|
|
325
|
-
// Mobile-only protection
|
|
326
|
-
if (this.isMobileOnlyEnabled()) {
|
|
327
|
-
const mobileOnlyConfig = typeof this.mobileOnly === "object" ? this.mobileOnly : {};
|
|
328
|
-
this.mobileOnlyMiddleware =
|
|
329
|
-
BuiltInMiddleware.mobileOnly(mobileOnlyConfig);
|
|
330
|
-
// Also create the protector instance for mobile detection
|
|
331
|
-
this.mobileOnlyProtector = new MobileOnlyProtector(mobileOnlyConfig, this.logger);
|
|
332
|
-
}
|
|
333
313
|
// Request signature protection (API authentication)
|
|
334
314
|
if (this.requestSignature) {
|
|
335
315
|
const requestSignatureConfig = typeof this.requestSignature === "object" &&
|
|
@@ -375,26 +355,19 @@ class SecurityMiddleware {
|
|
|
375
355
|
const middlewareStack = [];
|
|
376
356
|
// 🚨 CRITICAL: Access control middlewares FIRST (before any other processing)
|
|
377
357
|
// These must run before route resolution to block unwanted requests
|
|
378
|
-
// Handle device access controls
|
|
379
358
|
const browserEnabled = this.isBrowserOnlyEnabled();
|
|
380
359
|
const terminalEnabled = this.isTerminalOnlyEnabled();
|
|
381
|
-
const mobileEnabled = this.isMobileOnlyEnabled();
|
|
382
|
-
// 1. Terminal-only protection (blocks browser requests) - cannot be combined with others
|
|
383
360
|
if (terminalEnabled &&
|
|
384
361
|
this.terminalOnlyMiddleware &&
|
|
385
362
|
this.shouldApplySecurityModule(req, undefined, true)) {
|
|
386
|
-
this.logger.debug("security", "Adding terminal-only middleware
|
|
363
|
+
this.logger.debug("security", "Adding terminal-only middleware");
|
|
387
364
|
middlewareStack.push(this.terminalOnlyMiddleware);
|
|
388
365
|
}
|
|
389
|
-
|
|
390
|
-
|
|
366
|
+
else if (browserEnabled &&
|
|
367
|
+
this.browserOnlyMiddleware &&
|
|
391
368
|
this.shouldApplySecurityModule(req, undefined, true)) {
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
if (combinedDeviceMiddleware) {
|
|
395
|
-
this.logger.debug("security", `Adding combined device middleware (browser: ${browserEnabled}, mobile: ${mobileEnabled})`);
|
|
396
|
-
middlewareStack.push(combinedDeviceMiddleware);
|
|
397
|
-
}
|
|
369
|
+
this.logger.debug("security", "Adding browser-only middleware");
|
|
370
|
+
middlewareStack.push(this.browserOnlyMiddleware);
|
|
398
371
|
}
|
|
399
372
|
// 3. Request signature protection (API authentication)
|
|
400
373
|
if (this.requestSignature &&
|
|
@@ -826,50 +799,6 @@ class SecurityMiddleware {
|
|
|
826
799
|
// Browser-only and mobile-only can be enabled together (they will be applied based on request characteristics)
|
|
827
800
|
// No other restrictions needed
|
|
828
801
|
}
|
|
829
|
-
/**
|
|
830
|
-
* Create combined middleware for browser and mobile access control
|
|
831
|
-
*/
|
|
832
|
-
createCombinedDeviceMiddleware(browserEnabled, mobileEnabled) {
|
|
833
|
-
// If neither is enabled, return null
|
|
834
|
-
if (!browserEnabled && !mobileEnabled) {
|
|
835
|
-
return null;
|
|
836
|
-
}
|
|
837
|
-
// If only one is enabled, return that middleware directly
|
|
838
|
-
if (browserEnabled && !mobileEnabled && this.browserOnlyMiddleware) {
|
|
839
|
-
return this.browserOnlyMiddleware;
|
|
840
|
-
}
|
|
841
|
-
if (mobileEnabled && !browserEnabled && this.mobileOnlyMiddleware) {
|
|
842
|
-
return this.mobileOnlyMiddleware;
|
|
843
|
-
}
|
|
844
|
-
// Both are enabled - create combined logic
|
|
845
|
-
if (!this.browserOnlyMiddleware || !this.mobileOnlyMiddleware) {
|
|
846
|
-
return null; // Should not happen if validation passed
|
|
847
|
-
}
|
|
848
|
-
return (req, res, next) => {
|
|
849
|
-
// First check if it's a mobile request
|
|
850
|
-
const isMobileRequest = this.isMobileRequest(req);
|
|
851
|
-
if (isMobileRequest) {
|
|
852
|
-
// Apply mobile-only rules
|
|
853
|
-
this.logger.debug("security", "Applying mobile-only rules for mobile request");
|
|
854
|
-
return this.mobileOnlyMiddleware(req, res, next);
|
|
855
|
-
}
|
|
856
|
-
else {
|
|
857
|
-
// Apply browser-only rules
|
|
858
|
-
this.logger.debug("security", "Applying browser-only rules for non-mobile request");
|
|
859
|
-
return this.browserOnlyMiddleware(req, res, next);
|
|
860
|
-
}
|
|
861
|
-
};
|
|
862
|
-
}
|
|
863
|
-
/**
|
|
864
|
-
* Check if request is from a mobile device (using MobileOnlyProtector logic)
|
|
865
|
-
*/
|
|
866
|
-
isMobileRequest(req) {
|
|
867
|
-
if (!this.mobileOnlyProtector) {
|
|
868
|
-
// If no mobile protector, assume not mobile
|
|
869
|
-
return false;
|
|
870
|
-
}
|
|
871
|
-
return this.mobileOnlyProtector.isMobileRequest(req);
|
|
872
|
-
}
|
|
873
802
|
/**
|
|
874
803
|
* Get security configuration
|
|
875
804
|
*/
|
|
@@ -880,8 +809,6 @@ class SecurityMiddleware {
|
|
|
880
809
|
helmet: this.helmet,
|
|
881
810
|
browserOnly: this.browserOnly,
|
|
882
811
|
terminalOnly: this.terminalOnly,
|
|
883
|
-
mobileOnly: this.mobileOnly,
|
|
884
|
-
deviceAccess: this.deviceAccess,
|
|
885
812
|
requestSignature: this.requestSignature,
|
|
886
813
|
xss: this.xss,
|
|
887
814
|
sqlInjection: this.sqlInjection,
|
|
@@ -903,6 +830,24 @@ class SecurityMiddleware {
|
|
|
903
830
|
_ignoreAll: this._ignoreAll,
|
|
904
831
|
};
|
|
905
832
|
}
|
|
833
|
+
/**
|
|
834
|
+
* Check if browser-only protection is enabled
|
|
835
|
+
*/
|
|
836
|
+
isBrowserOnlyEnabled() {
|
|
837
|
+
if (this.level === "maximum") {
|
|
838
|
+
return true;
|
|
839
|
+
}
|
|
840
|
+
return !!this.browserOnly;
|
|
841
|
+
}
|
|
842
|
+
/**
|
|
843
|
+
* Check if terminal-only protection is enabled
|
|
844
|
+
*/
|
|
845
|
+
isTerminalOnlyEnabled() {
|
|
846
|
+
if (this.level === "maximum") {
|
|
847
|
+
return false;
|
|
848
|
+
}
|
|
849
|
+
return !!this.terminalOnly;
|
|
850
|
+
}
|
|
906
851
|
/**
|
|
907
852
|
* Check if a route matches a pattern
|
|
908
853
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"security-middleware.js","sources":["../../../../src/middleware/security-middleware.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"security-middleware.js","sources":["../../../../src/middleware/security-middleware.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -888,51 +888,6 @@ interface CacheStrategy {
|
|
|
888
888
|
tags?: string[];
|
|
889
889
|
}
|
|
890
890
|
|
|
891
|
-
/**
|
|
892
|
-
* Mobile-Only Access Protector
|
|
893
|
-
* Blocks browser requests and allows only mobile app access.
|
|
894
|
-
* Multi-layered detection with strict validation to avoid false positives.
|
|
895
|
-
*
|
|
896
|
-
* @example Enable with defaults:
|
|
897
|
-
* ```typescript
|
|
898
|
-
* mobileOnly: true
|
|
899
|
-
* ```
|
|
900
|
-
*
|
|
901
|
-
* @example Custom configuration:
|
|
902
|
-
* ```typescript
|
|
903
|
-
* mobileOnly: {
|
|
904
|
-
* blockBrowserIndicators: true,
|
|
905
|
-
* allowedPlatforms: ['ios', 'android'],
|
|
906
|
-
* requireMobileHeaders: true,
|
|
907
|
-
* customUserAgentPatterns: [/MyApp/i],
|
|
908
|
-
* errorMessage: "Mobile app access required"
|
|
909
|
-
* }
|
|
910
|
-
* ```
|
|
911
|
-
*/
|
|
912
|
-
|
|
913
|
-
interface MobileOnlyConfig {
|
|
914
|
-
/** Enable/disable mobile-only protection */
|
|
915
|
-
enable?: boolean;
|
|
916
|
-
/** Block requests with browser indicators */
|
|
917
|
-
blockBrowserIndicators?: boolean;
|
|
918
|
-
/** Allowed mobile platforms */
|
|
919
|
-
allowedPlatforms?: ("ios" | "android" | "react-native" | "expo" | "flutter")[];
|
|
920
|
-
/** Require mobile-specific headers */
|
|
921
|
-
requireMobileHeaders?: boolean;
|
|
922
|
-
/** Custom User-Agent patterns to allow */
|
|
923
|
-
customUserAgentPatterns?: RegExp[];
|
|
924
|
-
/** Debug logging */
|
|
925
|
-
debug?: boolean;
|
|
926
|
-
/** Custom error message */
|
|
927
|
-
errorMessage?: string;
|
|
928
|
-
/** HTTP status code for blocked requests */
|
|
929
|
-
statusCode?: number;
|
|
930
|
-
/** Case-sensitive User-Agent matching */
|
|
931
|
-
caseSensitive?: boolean;
|
|
932
|
-
/** Trim whitespace from User-Agent */
|
|
933
|
-
trimUserAgent?: boolean;
|
|
934
|
-
}
|
|
935
|
-
|
|
936
891
|
/**
|
|
937
892
|
* Browser-Only Protection Configuration
|
|
938
893
|
*
|
|
@@ -2075,67 +2030,6 @@ interface SecurityConfig {
|
|
|
2075
2030
|
* ```
|
|
2076
2031
|
*/
|
|
2077
2032
|
terminalOnly?: boolean | TerminalOnlyConfig;
|
|
2078
|
-
/**
|
|
2079
|
-
* Mobile-Only Protection Configuration
|
|
2080
|
-
*
|
|
2081
|
-
* Blocks browser requests while allowing mobile app access.
|
|
2082
|
-
* Perfect for APIs that should only be accessed through mobile applications.
|
|
2083
|
-
*
|
|
2084
|
-
* @example Enable with defaults:
|
|
2085
|
-
* ```typescript
|
|
2086
|
-
* mobileOnly: true
|
|
2087
|
-
* ```
|
|
2088
|
-
*
|
|
2089
|
-
* @example Custom configuration:
|
|
2090
|
-
* ```typescript
|
|
2091
|
-
* mobileOnly: {
|
|
2092
|
-
* blockBrowserIndicators: true,
|
|
2093
|
-
* allowedPlatforms: ['ios', 'android'],
|
|
2094
|
-
* requireMobileHeaders: true,
|
|
2095
|
-
* customUserAgentPatterns: [/MyApp/i],
|
|
2096
|
-
* errorMessage: "Mobile app access required"
|
|
2097
|
-
* }
|
|
2098
|
-
* ```
|
|
2099
|
-
*/
|
|
2100
|
-
mobileOnly?: boolean | MobileOnlyConfig;
|
|
2101
|
-
/**
|
|
2102
|
-
* Device Access Control Configuration
|
|
2103
|
-
*
|
|
2104
|
-
* Comprehensive device-based access control allowing multiple device types.
|
|
2105
|
-
* Enables fine-grained control over which devices can access your API.
|
|
2106
|
-
*
|
|
2107
|
-
* @example Allow only mobile apps:
|
|
2108
|
-
* ```typescript
|
|
2109
|
-
* deviceAccess: {
|
|
2110
|
-
* mobileOnly: true
|
|
2111
|
-
* }
|
|
2112
|
-
* ```
|
|
2113
|
-
*
|
|
2114
|
-
* @example Allow mobile apps and browsers:
|
|
2115
|
-
* ```typescript
|
|
2116
|
-
* deviceAccess: {
|
|
2117
|
-
* mobileOnly: true,
|
|
2118
|
-
* browserOnly: true
|
|
2119
|
-
* }
|
|
2120
|
-
* ```
|
|
2121
|
-
*
|
|
2122
|
-
* @example Allow all except browsers:
|
|
2123
|
-
* ```typescript
|
|
2124
|
-
* deviceAccess: {
|
|
2125
|
-
* mobileOnly: true,
|
|
2126
|
-
* terminalOnly: true,
|
|
2127
|
-
* browserOnly: false
|
|
2128
|
-
* }
|
|
2129
|
-
* ```
|
|
2130
|
-
*/
|
|
2131
|
-
deviceAccess?: {
|
|
2132
|
-
/** Allow only browser requests */
|
|
2133
|
-
browserOnly?: boolean | BrowserOnlyConfig;
|
|
2134
|
-
/** Allow only terminal/API tool requests */
|
|
2135
|
-
terminalOnly?: boolean | TerminalOnlyConfig;
|
|
2136
|
-
/** Allow only mobile app requests */
|
|
2137
|
-
mobileOnly?: boolean | MobileOnlyConfig;
|
|
2138
|
-
};
|
|
2139
2033
|
/**
|
|
2140
2034
|
* XyRS - XyPriss Request Signature Configuration
|
|
2141
2035
|
*
|
|
@@ -10780,12 +10674,6 @@ declare class SecurityMiddleware {
|
|
|
10780
10674
|
slowDown: boolean | SlowDownConfig;
|
|
10781
10675
|
browserOnly: boolean | BrowserOnlyConfig;
|
|
10782
10676
|
terminalOnly: boolean | TerminalOnlyConfig;
|
|
10783
|
-
mobileOnly: boolean | MobileOnlyConfig;
|
|
10784
|
-
deviceAccess?: {
|
|
10785
|
-
browserOnly?: boolean | BrowserOnlyConfig;
|
|
10786
|
-
terminalOnly?: boolean | TerminalOnlyConfig;
|
|
10787
|
-
mobileOnly?: boolean | MobileOnlyConfig;
|
|
10788
|
-
};
|
|
10789
10677
|
requestSignature: boolean | RequestSignatureConfig;
|
|
10790
10678
|
encryption: Required<SecurityConfig>["encryption"];
|
|
10791
10679
|
authentication: Required<SecurityConfig>["authentication"];
|
|
@@ -10799,7 +10687,6 @@ declare class SecurityMiddleware {
|
|
|
10799
10687
|
private csrfMiddleware;
|
|
10800
10688
|
private browserOnlyMiddleware;
|
|
10801
10689
|
private terminalOnlyMiddleware;
|
|
10802
|
-
private mobileOnlyMiddleware;
|
|
10803
10690
|
private requestSignatureMiddleware;
|
|
10804
10691
|
private mongoSanitizeMiddleware;
|
|
10805
10692
|
private hppMiddleware;
|
|
@@ -10812,7 +10699,6 @@ declare class SecurityMiddleware {
|
|
|
10812
10699
|
private ldapInjectionDetector;
|
|
10813
10700
|
private browserOnlyProtector?;
|
|
10814
10701
|
private terminalOnlyProtector?;
|
|
10815
|
-
private mobileOnlyProtector?;
|
|
10816
10702
|
private logger;
|
|
10817
10703
|
constructor(config?: SecurityConfig, logger?: Logger);
|
|
10818
10704
|
/**
|
|
@@ -10849,14 +10735,6 @@ declare class SecurityMiddleware {
|
|
|
10849
10735
|
* Get CSRF token for client-side usage
|
|
10850
10736
|
*/
|
|
10851
10737
|
generateCsrfToken(req: XyPrisRequest): string | null;
|
|
10852
|
-
/**
|
|
10853
|
-
* Check if browser-only protection is enabled
|
|
10854
|
-
*/
|
|
10855
|
-
private isBrowserOnlyEnabled;
|
|
10856
|
-
/**
|
|
10857
|
-
* Check if terminal-only protection is enabled
|
|
10858
|
-
*/
|
|
10859
|
-
private isTerminalOnlyEnabled;
|
|
10860
10738
|
/**
|
|
10861
10739
|
* Check if mobile-only protection is enabled
|
|
10862
10740
|
*/
|
|
@@ -10865,14 +10743,6 @@ declare class SecurityMiddleware {
|
|
|
10865
10743
|
* Validate device access configuration
|
|
10866
10744
|
*/
|
|
10867
10745
|
private validateDeviceAccessConfig;
|
|
10868
|
-
/**
|
|
10869
|
-
* Create combined middleware for browser and mobile access control
|
|
10870
|
-
*/
|
|
10871
|
-
private createCombinedDeviceMiddleware;
|
|
10872
|
-
/**
|
|
10873
|
-
* Check if request is from a mobile device (using MobileOnlyProtector logic)
|
|
10874
|
-
*/
|
|
10875
|
-
private isMobileRequest;
|
|
10876
10746
|
/**
|
|
10877
10747
|
* Get security configuration
|
|
10878
10748
|
*/
|
package/package.json
CHANGED
package/scripts/postinstall.js
CHANGED
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
|
|
8
8
|
import { fileURLToPath } from "url";
|
|
9
9
|
import path from "path";
|
|
10
|
-
import
|
|
10
|
+
import fs from "fs";
|
|
11
11
|
import { installXems } from "./install-xems.js";
|
|
12
12
|
import { installXHSC } from "./postinstall-xhsc.js";
|
|
13
13
|
|
|
@@ -66,7 +66,6 @@ const log = {
|
|
|
66
66
|
// Steps Definition
|
|
67
67
|
// ─────────────────────────────────────────────
|
|
68
68
|
const STEPS = [
|
|
69
|
-
{ label: "Memory CLI", fn: installMemoryCLI },
|
|
70
69
|
{ label: "XEMS — XyPriss Entry Management System", fn: installXems },
|
|
71
70
|
{ label: "XHSC — XyPriss Hyper-System Core", fn: installXHSC },
|
|
72
71
|
];
|
|
@@ -75,6 +74,54 @@ const STEPS = [
|
|
|
75
74
|
// Post-Install Orchestrator
|
|
76
75
|
// ─────────────────────────────────────────────
|
|
77
76
|
async function postInstall() {
|
|
77
|
+
// ─────────────────────────────────────────────
|
|
78
|
+
// Caller Verification (Hardened)
|
|
79
|
+
// ─────────────────────────────────────────────
|
|
80
|
+
const isXfpm = (() => {
|
|
81
|
+
try {
|
|
82
|
+
// 1. Initial gate: Check environment variable
|
|
83
|
+
if (process.env.XFPM !== "true") return false;
|
|
84
|
+
|
|
85
|
+
// 2. Robust verification: Check process tree (Linux/macOS)
|
|
86
|
+
// We look at the parent or grandparent to find 'xfpm' binary
|
|
87
|
+
let currentPid = process.pid;
|
|
88
|
+
for (let i = 0; i < 3; i++) {
|
|
89
|
+
const statusPath = `/proc/${currentPid}/status`;
|
|
90
|
+
if (!fs.existsSync(statusPath)) break;
|
|
91
|
+
|
|
92
|
+
const status = fs.readFileSync(statusPath, "utf8");
|
|
93
|
+
const ppidMatch = status.match(/PPid:\s+(\d+)/);
|
|
94
|
+
if (!ppidMatch) break;
|
|
95
|
+
|
|
96
|
+
currentPid = parseInt(ppidMatch[1], 10);
|
|
97
|
+
|
|
98
|
+
// Check executable name in /proc/[pid]/comm
|
|
99
|
+
const commPath = `/proc/${currentPid}/comm`;
|
|
100
|
+
if (fs.existsSync(commPath)) {
|
|
101
|
+
const comm = fs.readFileSync(commPath, "utf8").trim();
|
|
102
|
+
if (comm === "xfpm" || comm.includes("xfpm")) return true;
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
} catch (e) {
|
|
106
|
+
// Fallback for non-Linux systems or permission issues
|
|
107
|
+
return process.env.XFPM === "true";
|
|
108
|
+
}
|
|
109
|
+
return false;
|
|
110
|
+
})();
|
|
111
|
+
|
|
112
|
+
if (!isXfpm) {
|
|
113
|
+
log.blank();
|
|
114
|
+
log.divider();
|
|
115
|
+
log.error("Installation Blocked: Unsupported Package Manager Detected");
|
|
116
|
+
log.info("XyPriss MUST be installed and managed via XFPM (XyPriss Fast Package Manager).");
|
|
117
|
+
log.info("Usage of npm, yarn, or pnpm is strictly forbidden to ensure framework integrity.");
|
|
118
|
+
log.blank();
|
|
119
|
+
log.info("Installation Guide: https://xypriss.nehonix.com/docs/xfpm#installation");
|
|
120
|
+
log.divider();
|
|
121
|
+
log.blank();
|
|
122
|
+
process.exit(1);
|
|
123
|
+
}
|
|
124
|
+
|
|
78
125
|
log.blank();
|
|
79
126
|
log.divider();
|
|
80
127
|
console.log(`${c.cyan}${c.bold} XyPriss — Post-Install Setup${c.reset}`);
|
|
@@ -1,191 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
|
|
3
|
-
/**
|
|
4
|
-
* XyPriss Memory CLI Installer
|
|
5
|
-
* Downloads platform-specific memory CLI binary during npm install
|
|
6
|
-
*/
|
|
7
|
-
|
|
8
|
-
import https from "https";
|
|
9
|
-
import fs from "fs";
|
|
10
|
-
import path from "path";
|
|
11
|
-
import { execSync, spawn } from "child_process";
|
|
12
|
-
import { fileURLToPath } from "url";
|
|
13
|
-
|
|
14
|
-
const __filename = fileURLToPath(import.meta.url);
|
|
15
|
-
const __dirname = path.dirname(__filename);
|
|
16
|
-
|
|
17
|
-
const CDN_BASE_URL = "https://dll.nehonix.com/dl/mds/xypriss/bin";
|
|
18
|
-
const BIN_DIR = path.join(__dirname, "..", "bin");
|
|
19
|
-
const TIMEOUT = 40000;
|
|
20
|
-
|
|
21
|
-
/**
|
|
22
|
-
* Get platform-specific binary information
|
|
23
|
-
*/
|
|
24
|
-
function getPlatformBinary() {
|
|
25
|
-
const platform = process.platform;
|
|
26
|
-
const arch = process.arch;
|
|
27
|
-
|
|
28
|
-
let binaryTarget;
|
|
29
|
-
if (platform === "win32") {
|
|
30
|
-
binaryTarget = arch === "arm64" ? "windows-arm64" : "windows-x64";
|
|
31
|
-
} else if (platform === "darwin") {
|
|
32
|
-
binaryTarget = arch === "arm64" ? "darwin-arm64" : "darwin-x64";
|
|
33
|
-
} else if (platform === "linux") {
|
|
34
|
-
binaryTarget = arch === "arm64" ? "linux-arm64" : "linux-x64";
|
|
35
|
-
} else {
|
|
36
|
-
return null;
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
const binaryName = `memory-cli-${binaryTarget}${platform === "win32" ? ".exe" : ""}`;
|
|
40
|
-
|
|
41
|
-
return {
|
|
42
|
-
binaryName,
|
|
43
|
-
url: `${CDN_BASE_URL}/${binaryName}`,
|
|
44
|
-
localPath: path.join(BIN_DIR, binaryName),
|
|
45
|
-
genericPath: path.join(
|
|
46
|
-
BIN_DIR,
|
|
47
|
-
"memory-cli" + (platform === "win32" ? ".exe" : ""),
|
|
48
|
-
),
|
|
49
|
-
};
|
|
50
|
-
}
|
|
51
|
-
|
|
52
|
-
/**
|
|
53
|
-
* Download file from URL with Redirect support
|
|
54
|
-
*/
|
|
55
|
-
function downloadFile(url, destination) {
|
|
56
|
-
return new Promise((resolve, reject) => {
|
|
57
|
-
const file = fs.createWriteStream(destination);
|
|
58
|
-
const request = https.get(url, { timeout: TIMEOUT }, (response) => {
|
|
59
|
-
if (
|
|
60
|
-
response.statusCode >= 300 &&
|
|
61
|
-
response.statusCode < 400 &&
|
|
62
|
-
response.headers.location
|
|
63
|
-
) {
|
|
64
|
-
file.close();
|
|
65
|
-
fs.unlinkSync(destination);
|
|
66
|
-
return downloadFile(response.headers.location, destination)
|
|
67
|
-
.then(resolve)
|
|
68
|
-
.catch(reject);
|
|
69
|
-
}
|
|
70
|
-
|
|
71
|
-
if (response.statusCode === 200) {
|
|
72
|
-
response.pipe(file);
|
|
73
|
-
file.on("finish", () => {
|
|
74
|
-
file.close();
|
|
75
|
-
resolve();
|
|
76
|
-
});
|
|
77
|
-
} else {
|
|
78
|
-
file.close();
|
|
79
|
-
fs.unlinkSync(destination);
|
|
80
|
-
reject(new Error(`HTTP ${response.statusCode}`));
|
|
81
|
-
}
|
|
82
|
-
});
|
|
83
|
-
|
|
84
|
-
request.on("error", (error) => {
|
|
85
|
-
file.close();
|
|
86
|
-
if (fs.existsSync(destination)) fs.unlinkSync(destination);
|
|
87
|
-
reject(error);
|
|
88
|
-
});
|
|
89
|
-
});
|
|
90
|
-
}
|
|
91
|
-
|
|
92
|
-
/**
|
|
93
|
-
* Verify downloaded binary works
|
|
94
|
-
*/
|
|
95
|
-
function verifyBinary(filePath) {
|
|
96
|
-
return new Promise((resolve) => {
|
|
97
|
-
try {
|
|
98
|
-
const child = spawn(filePath, ["--help"], {
|
|
99
|
-
stdio: "pipe",
|
|
100
|
-
timeout: 5000,
|
|
101
|
-
});
|
|
102
|
-
|
|
103
|
-
let output = "";
|
|
104
|
-
child.stdout.on("data", (data) => {
|
|
105
|
-
output += data.toString();
|
|
106
|
-
});
|
|
107
|
-
|
|
108
|
-
child.on("close", (code) => {
|
|
109
|
-
if (code === 0 && output.includes("XyPriss Memory Info CLI")) {
|
|
110
|
-
resolve(true);
|
|
111
|
-
} else {
|
|
112
|
-
resolve(false);
|
|
113
|
-
}
|
|
114
|
-
});
|
|
115
|
-
|
|
116
|
-
child.on("error", () => resolve(false));
|
|
117
|
-
} catch (error) {
|
|
118
|
-
resolve(false);
|
|
119
|
-
}
|
|
120
|
-
});
|
|
121
|
-
}
|
|
122
|
-
|
|
123
|
-
async function installMemoryCLI() {
|
|
124
|
-
if (!fs.existsSync(BIN_DIR)) {
|
|
125
|
-
fs.mkdirSync(BIN_DIR, { recursive: true });
|
|
126
|
-
}
|
|
127
|
-
|
|
128
|
-
const info = getPlatformBinary();
|
|
129
|
-
if (!info) return;
|
|
130
|
-
|
|
131
|
-
console.log(`📂 Target directory: ${BIN_DIR}`);
|
|
132
|
-
console.log(`📦 Binary: ${info.binaryName}`);
|
|
133
|
-
|
|
134
|
-
if (fs.existsSync(info.genericPath)) {
|
|
135
|
-
console.log(
|
|
136
|
-
`✨ Memory CLI already present at ${info.genericPath}, skipping.`,
|
|
137
|
-
);
|
|
138
|
-
return;
|
|
139
|
-
}
|
|
140
|
-
|
|
141
|
-
try {
|
|
142
|
-
console.log(`📥 Fetching Memory CLI from:`);
|
|
143
|
-
console.log(` 🔗 URL: ${info.url}`);
|
|
144
|
-
await downloadFile(info.url, info.localPath);
|
|
145
|
-
console.log("✅ Downloaded successfully.");
|
|
146
|
-
|
|
147
|
-
if (process.platform !== "win32") {
|
|
148
|
-
fs.chmodSync(info.localPath, 0o755);
|
|
149
|
-
}
|
|
150
|
-
|
|
151
|
-
if (process.platform === "win32") {
|
|
152
|
-
fs.copyFileSync(info.localPath, info.genericPath);
|
|
153
|
-
} else {
|
|
154
|
-
if (fs.existsSync(info.genericPath))
|
|
155
|
-
fs.unlinkSync(info.genericPath);
|
|
156
|
-
fs.symlinkSync(path.basename(info.localPath), info.genericPath);
|
|
157
|
-
}
|
|
158
|
-
|
|
159
|
-
const isValid = await verifyBinary(info.localPath);
|
|
160
|
-
if (isValid) {
|
|
161
|
-
console.log(
|
|
162
|
-
`🎉 XyPriss MCLI installed successfully at: ${info.genericPath}`,
|
|
163
|
-
);
|
|
164
|
-
} else {
|
|
165
|
-
console.warn(
|
|
166
|
-
"⚠️ MCLI verification failed, it might not work as expected.",
|
|
167
|
-
);
|
|
168
|
-
}
|
|
169
|
-
} catch (error) {
|
|
170
|
-
console.error("❌ Failed to install Memory CLI:", error.message);
|
|
171
|
-
}
|
|
172
|
-
}
|
|
173
|
-
|
|
174
|
-
// Only run if this is the main module (not being imported)
|
|
175
|
-
const isMain =
|
|
176
|
-
process.argv[1] &&
|
|
177
|
-
(fileURLToPath(import.meta.url) === path.resolve(process.argv[1]) ||
|
|
178
|
-
import.meta.url === `file://${process.argv[1]}` ||
|
|
179
|
-
fileURLToPath(import.meta.url).endsWith(
|
|
180
|
-
process.argv[1].replace(/^\.\//, ""),
|
|
181
|
-
));
|
|
182
|
-
|
|
183
|
-
if (isMain) {
|
|
184
|
-
installMemoryCLI().catch((error) => {
|
|
185
|
-
console.error("💥 Installation failed:", error);
|
|
186
|
-
process.exit(0);
|
|
187
|
-
});
|
|
188
|
-
}
|
|
189
|
-
|
|
190
|
-
export { installMemoryCLI, getPlatformBinary, downloadFile, verifyBinary };
|
|
191
|
-
|