xypriss 9.3.71 → 9.4.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/dist/cjs/src/file-upload.js +43 -45
- package/dist/cjs/src/file-upload.js.map +1 -1
- package/dist/cjs/src/index.js +2 -0
- package/dist/cjs/src/index.js.map +1 -1
- package/dist/cjs/src/middleware/XyPrissMiddlewareAPI.js +0 -51
- package/dist/cjs/src/middleware/XyPrissMiddlewareAPI.js.map +1 -1
- package/dist/cjs/src/middleware/built-in/BuiltInMiddleware.js +1 -45
- package/dist/cjs/src/middleware/built-in/BuiltInMiddleware.js.map +1 -1
- package/dist/cjs/src/middleware/built-in/security/RequestSignatureProtector.js +1 -1
- package/dist/cjs/src/middleware/built-in/security/RequestSignatureProtector.js.map +1 -1
- package/dist/cjs/src/middleware/security-middleware.js +0 -52
- package/dist/cjs/src/middleware/security-middleware.js.map +1 -1
- package/dist/cjs/src/plugins/PluginManager.js +1 -1
- package/dist/cjs/src/quick-start.js +1 -1
- package/dist/cjs/src/server/FastServer.js +5 -5
- package/dist/cjs/src/server/components/fastapi/FileUploadManager.js +113 -85
- package/dist/cjs/src/server/components/fastapi/FileUploadManager.js.map +1 -1
- package/dist/cjs/src/server/const/XHSC_SIGNATURE.js +7 -0
- package/dist/cjs/src/server/const/XHSC_SIGNATURE.js.map +1 -0
- package/dist/cjs/src/server/core/XHSCBridge.js +66 -6
- package/dist/cjs/src/server/core/XHSCBridge.js.map +1 -1
- package/dist/cjs/src/server/core/XHSCProtocol.js +44 -7
- package/dist/cjs/src/server/core/XHSCProtocol.js.map +1 -1
- package/dist/cjs/src/server/core/XyprissApp.js +2 -2
- package/dist/cjs/src/sys/FSApi.js +232 -36
- package/dist/cjs/src/sys/FSApi.js.map +1 -1
- package/dist/cjs/src/sys/PathApi.js +63 -0
- package/dist/cjs/src/sys/PathApi.js.map +1 -1
- package/dist/cjs/src/sys/SysApi.js +26 -43
- package/dist/cjs/src/sys/SysApi.js.map +1 -1
- package/dist/cjs/src/sys/XyPrissRunner.js +40 -65
- package/dist/cjs/src/sys/XyPrissRunner.js.map +1 -1
- package/dist/cjs/src/sys.js +0 -15
- package/dist/cjs/src/sys.js.map +1 -1
- package/dist/cjs/src/utils/getIp.js +164 -0
- package/dist/cjs/src/utils/getIp.js.map +1 -0
- package/dist/esm/src/file-upload.js +43 -45
- package/dist/esm/src/file-upload.js.map +1 -1
- package/dist/esm/src/index.js +1 -0
- package/dist/esm/src/index.js.map +1 -1
- package/dist/esm/src/middleware/XyPrissMiddlewareAPI.js +0 -51
- package/dist/esm/src/middleware/XyPrissMiddlewareAPI.js.map +1 -1
- package/dist/esm/src/middleware/built-in/BuiltInMiddleware.js +1 -45
- package/dist/esm/src/middleware/built-in/BuiltInMiddleware.js.map +1 -1
- package/dist/esm/src/middleware/built-in/security/RequestSignatureProtector.js +1 -1
- package/dist/esm/src/middleware/built-in/security/RequestSignatureProtector.js.map +1 -1
- package/dist/esm/src/middleware/security-middleware.js +0 -52
- package/dist/esm/src/middleware/security-middleware.js.map +1 -1
- package/dist/esm/src/plugins/PluginManager.js +1 -1
- package/dist/esm/src/quick-start.js +1 -1
- package/dist/esm/src/server/FastServer.js +5 -5
- package/dist/esm/src/server/components/fastapi/FileUploadManager.js +113 -85
- package/dist/esm/src/server/components/fastapi/FileUploadManager.js.map +1 -1
- package/dist/esm/src/server/const/XHSC_SIGNATURE.js +5 -0
- package/dist/esm/src/server/const/XHSC_SIGNATURE.js.map +1 -0
- package/dist/esm/src/server/core/XHSCBridge.js +66 -6
- package/dist/esm/src/server/core/XHSCBridge.js.map +1 -1
- package/dist/esm/src/server/core/XHSCProtocol.js +44 -7
- package/dist/esm/src/server/core/XHSCProtocol.js.map +1 -1
- package/dist/esm/src/server/core/XyprissApp.js +2 -2
- package/dist/esm/src/sys/FSApi.js +232 -36
- package/dist/esm/src/sys/FSApi.js.map +1 -1
- package/dist/esm/src/sys/PathApi.js +63 -0
- package/dist/esm/src/sys/PathApi.js.map +1 -1
- package/dist/esm/src/sys/SysApi.js +26 -43
- package/dist/esm/src/sys/SysApi.js.map +1 -1
- package/dist/esm/src/sys/XyPrissRunner.js +40 -65
- package/dist/esm/src/sys/XyPrissRunner.js.map +1 -1
- package/dist/esm/src/sys.js +0 -15
- package/dist/esm/src/sys.js.map +1 -1
- package/dist/esm/src/utils/getIp.js +162 -0
- package/dist/esm/src/utils/getIp.js.map +1 -0
- package/dist/index.d.ts +345 -104
- package/package.json +34 -39
|
@@ -70,30 +70,6 @@ class SysApi extends FSApi {
|
|
|
70
70
|
const cacheKey = `sys:info:${extended}`;
|
|
71
71
|
return this.cache.get(cacheKey, () => this.runner.runSync("sys", "info", [], { extended }), 300000);
|
|
72
72
|
};
|
|
73
|
-
/**
|
|
74
|
-
* **Get CPU Statistics**
|
|
75
|
-
*
|
|
76
|
-
* Retrieves detailed CPU information. Returns an array of core stats if `cores`
|
|
77
|
-
* is true, or a global usage summary object if `cores` is false.
|
|
78
|
-
*
|
|
79
|
-
* @param {boolean} [cores=false] - If true, returns detailed per-core info.
|
|
80
|
-
* @returns {CpuUsage | CpuInfo[]} Global usage stats or array of core details.
|
|
81
|
-
*
|
|
82
|
-
* @example
|
|
83
|
-
* // Simple usage check
|
|
84
|
-
* const cpu = __sys__.$cpu() as CpuUsage;
|
|
85
|
-
* console.log(`Load: ${cpu.overall}%`);
|
|
86
|
-
*
|
|
87
|
-
* @example
|
|
88
|
-
* // Detailed Core Info
|
|
89
|
-
* const cores = __sys__.$cpu(true) as CpuInfo[];
|
|
90
|
-
* console.log(`Core 0 Speed: ${cores[0].frequency} MHz`);
|
|
91
|
-
*/
|
|
92
|
-
this.$cpu = (cores = false) => {
|
|
93
|
-
const cacheKey = `sys:cpu:${cores}`;
|
|
94
|
-
// TODO: Future integration with XHSC core metrics
|
|
95
|
-
return this.cache.get(cacheKey, () => this.runner.runSync("sys", "cpu", [], { cores }), 100);
|
|
96
|
-
};
|
|
97
73
|
/**
|
|
98
74
|
* **Get Memory Usage**
|
|
99
75
|
*
|
|
@@ -118,25 +94,6 @@ class SysApi extends FSApi {
|
|
|
118
94
|
const cacheKey = "sys:memory";
|
|
119
95
|
return this.cache.get(cacheKey, () => this.runner.runSync("sys", "memory", [], { watch }), 100);
|
|
120
96
|
};
|
|
121
|
-
/**
|
|
122
|
-
* **Get Mounted Disks**
|
|
123
|
-
*
|
|
124
|
-
* Lists all mounted filesystems across the host.
|
|
125
|
-
* Returns capacity, used space, mount point, and filesystem type for each disk.
|
|
126
|
-
*
|
|
127
|
-
* @param {string} [mount] - Optional filter to get stats for a specific mount point (e.g., "/").
|
|
128
|
-
* @returns {DiskInfo[]} An array of disk objects.
|
|
129
|
-
*
|
|
130
|
-
* @example
|
|
131
|
-
* // finding low disk space
|
|
132
|
-
* const disks = __sys__.$disks();
|
|
133
|
-
* disks.forEach(d => {
|
|
134
|
-
* if (d.available_space < 1024 * 1024 * 1024) { // < 1GB
|
|
135
|
-
* console.warn(`Low space on ${d.mount_point}`);
|
|
136
|
-
* }
|
|
137
|
-
* });
|
|
138
|
-
*/
|
|
139
|
-
this.$disks = (mount) => this.runner.runSync("sys", "disks", [], { mount });
|
|
140
97
|
/**
|
|
141
98
|
* **Get Network Interfaces**
|
|
142
99
|
*
|
|
@@ -375,6 +332,25 @@ class SysApi extends FSApi {
|
|
|
375
332
|
*/
|
|
376
333
|
this.$battery = () => this.runner.runSync("sys", "battery");
|
|
377
334
|
}
|
|
335
|
+
$cpu(cores = false) {
|
|
336
|
+
const cacheKey = `sys:cpu:${cores}`;
|
|
337
|
+
// TODO: Future integration with XHSC core metrics
|
|
338
|
+
return this.cache.get(cacheKey, () => {
|
|
339
|
+
const results = this.runner.runSync("sys", "cpu", []);
|
|
340
|
+
if (cores)
|
|
341
|
+
return results;
|
|
342
|
+
let totalUsage = 0;
|
|
343
|
+
const per_core = results.map((c) => {
|
|
344
|
+
totalUsage += c.usage;
|
|
345
|
+
return c.usage;
|
|
346
|
+
});
|
|
347
|
+
return {
|
|
348
|
+
overall: results.length ? totalUsage / results.length : 0,
|
|
349
|
+
per_core,
|
|
350
|
+
timestamp: Date.now(),
|
|
351
|
+
};
|
|
352
|
+
}, 100);
|
|
353
|
+
}
|
|
378
354
|
/**
|
|
379
355
|
* **Get Hardware Telemetry**
|
|
380
356
|
*
|
|
@@ -415,6 +391,13 @@ class SysApi extends FSApi {
|
|
|
415
391
|
get hdw() {
|
|
416
392
|
return this.$hardware;
|
|
417
393
|
}
|
|
394
|
+
$disks(mount) {
|
|
395
|
+
const disks = this.runner.runSync("sys", "disks", []);
|
|
396
|
+
if (mount) {
|
|
397
|
+
return disks.find((d) => d.mount_point === mount);
|
|
398
|
+
}
|
|
399
|
+
return disks;
|
|
400
|
+
}
|
|
418
401
|
}
|
|
419
402
|
|
|
420
403
|
export { SysApi };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SysApi.js","sources":["../../../../src/sys/SysApi.ts"],"sourcesContent":[null],"names":[],"mappings":";;;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;AA2BiF;AAsBjF;;;;;;;;;;;;;;;;;;AAkBG;AACG,MAAO,MAAO,SAAQ,KAAK,CAAA;AAAjC,IAAA,WAAA,GAAA;;AACY,QAAA,IAAA,CAAA,KAAK,GAAiB,IAAI,YAAY,EAAE;AAChD;;;;;;;;;;;;;AAaG;AACI,QAAA,IAAA,CAAA,KAAK,GAAG,CAAC,QAAQ,GAAG,KAAK,KAAgB;AAC5C,YAAA,MAAM,QAAQ,GAAG,CAAA,SAAA,EAAY,QAAQ,EAAE;AACvC,YAAA,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CACjB,QAAQ,EACR,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC,EAC1D,MAAM,CACT;AACL,QAAA,CAAC;
|
|
1
|
+
{"version":3,"file":"SysApi.js","sources":["../../../../src/sys/SysApi.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
|
|
@@ -2,6 +2,7 @@ import path__default from 'node:path';
|
|
|
2
2
|
import fs__default from 'node:fs';
|
|
3
3
|
import { execFileSync } from 'node:child_process';
|
|
4
4
|
import { fileURLToPath } from 'node:url';
|
|
5
|
+
import { XHSC_SIGNATURE } from '../server/const/XHSC_SIGNATURE.js';
|
|
5
6
|
|
|
6
7
|
/**
|
|
7
8
|
* Custom error class for XyPriss system operations.
|
|
@@ -54,86 +55,60 @@ class XyPrissRunner {
|
|
|
54
55
|
const osPart = getOsPart();
|
|
55
56
|
const archPart = getArchPart();
|
|
56
57
|
const suffix = osPart === "windows" ? ".exe" : "";
|
|
57
|
-
//
|
|
58
|
+
// Candidate names in order of preference
|
|
58
59
|
const goBinName = `xsys-${osPart}-${archPart}${suffix}`;
|
|
59
|
-
|
|
60
|
-
const
|
|
60
|
+
const genericBinName = osPart === "windows" ? "xsys.exe" : "xsys";
|
|
61
|
+
const candidates = [goBinName, genericBinName];
|
|
61
62
|
try {
|
|
63
|
+
// Get location of *this* file (compiled JS)
|
|
62
64
|
const __filename = fileURLToPath(import.meta.url);
|
|
63
|
-
const
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
// Fallback to what we have
|
|
96
|
-
}
|
|
97
|
-
for (let currentDir of searchBases) {
|
|
98
|
-
let walkDir = currentDir;
|
|
99
|
-
while (walkDir !== path__default.parse(walkDir).root) {
|
|
100
|
-
const nodeModulesBin = path__default.join(walkDir, "node_modules", ".bin");
|
|
101
|
-
const potentialRust = path__default.join(nodeModulesBin, rustBinName);
|
|
102
|
-
const potentialGo = path__default.join(nodeModulesBin, goBinName);
|
|
103
|
-
if (fs__default.existsSync(potentialGo))
|
|
104
|
-
return potentialGo;
|
|
105
|
-
if (fs__default.existsSync(potentialRust))
|
|
106
|
-
return potentialRust;
|
|
107
|
-
// Also check a local "bin" folder at each level
|
|
108
|
-
const localBin = path__default.join(walkDir, "bin");
|
|
109
|
-
const localRust = path__default.join(localBin, rustBinName);
|
|
110
|
-
const localGo = path__default.join(localBin, goBinName);
|
|
111
|
-
if (fs__default.existsSync(localGo))
|
|
112
|
-
return localGo;
|
|
113
|
-
if (fs__default.existsSync(localRust))
|
|
114
|
-
return localRust;
|
|
115
|
-
walkDir = path__default.dirname(walkDir);
|
|
116
|
-
}
|
|
117
|
-
}
|
|
118
|
-
for (const loc of locations) {
|
|
119
|
-
if (fs__default.existsSync(loc)) {
|
|
120
|
-
// console.log(`[SYSTEM] Discovered binary: ${loc}`);
|
|
121
|
-
return loc;
|
|
65
|
+
const scriptDir = path__default.dirname(__filename);
|
|
66
|
+
// Bases for recursive search: script location and current working directory
|
|
67
|
+
const searchBases = [scriptDir, process.cwd()];
|
|
68
|
+
for (const base of searchBases) {
|
|
69
|
+
let current = base;
|
|
70
|
+
// Go up up to 8 levels to handle deeply nested node_modules / virtual_store
|
|
71
|
+
for (let depth = 0; depth < 8; depth++) {
|
|
72
|
+
// Check 1: Standard bin/ at this level
|
|
73
|
+
const binDir = path__default.join(current, "bin");
|
|
74
|
+
for (const name of candidates) {
|
|
75
|
+
const fullPath = path__default.join(binDir, name);
|
|
76
|
+
if (fs__default.existsSync(fullPath))
|
|
77
|
+
return fullPath;
|
|
78
|
+
}
|
|
79
|
+
// Check 2: node_modules/.bin (if we are at project/env root)
|
|
80
|
+
const nodeModulesBin = path__default.join(current, "node_modules", ".bin");
|
|
81
|
+
for (const name of candidates) {
|
|
82
|
+
const fullPath = path__default.join(nodeModulesBin, name);
|
|
83
|
+
if (fs__default.existsSync(fullPath))
|
|
84
|
+
return fullPath;
|
|
85
|
+
}
|
|
86
|
+
// Check 3: Local dev folders
|
|
87
|
+
const devPath = path__default.join(current, "tools", "xypriss-sys-go", "dist");
|
|
88
|
+
for (const name of candidates) {
|
|
89
|
+
const fullPath = path__default.join(devPath, name);
|
|
90
|
+
if (fs__default.existsSync(fullPath))
|
|
91
|
+
return fullPath;
|
|
92
|
+
}
|
|
93
|
+
const parent = path__default.dirname(current);
|
|
94
|
+
if (parent === current)
|
|
95
|
+
break;
|
|
96
|
+
current = parent;
|
|
122
97
|
}
|
|
123
98
|
}
|
|
124
99
|
}
|
|
125
100
|
catch (e) {
|
|
126
|
-
// Silently
|
|
101
|
+
// Silently fall through to generic name
|
|
127
102
|
}
|
|
128
103
|
// Final fallback (generic name which might be in PATH)
|
|
129
|
-
return
|
|
104
|
+
return genericBinName;
|
|
130
105
|
}
|
|
131
106
|
/**
|
|
132
107
|
* Executes a command synchronously and returns the parsed JSON result.
|
|
133
108
|
* Standardizes all responses into a Promise-like data structure.
|
|
134
109
|
*/
|
|
135
110
|
runSync(module, action, args = [], options = {}) {
|
|
136
|
-
const INTERNAL_SIGNATURE =
|
|
111
|
+
const INTERNAL_SIGNATURE = XHSC_SIGNATURE;
|
|
137
112
|
const cmdArgs = [
|
|
138
113
|
"--root",
|
|
139
114
|
this.root,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"XyPrissRunner.js","sources":["../../../../src/sys/XyPrissRunner.ts"],"sourcesContent":[null],"names":["path","fs"],"mappings":"
|
|
1
|
+
{"version":3,"file":"XyPrissRunner.js","sources":["../../../../src/sys/XyPrissRunner.ts"],"sourcesContent":[null],"names":["path","fs"],"mappings":"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"}
|
package/dist/esm/src/sys.js
CHANGED
|
@@ -216,21 +216,6 @@ class XyPrissSys extends XyPrissFS {
|
|
|
216
216
|
// =========================================================================
|
|
217
217
|
// MODULAR CAPABILITIES
|
|
218
218
|
// =========================================================================
|
|
219
|
-
// /**
|
|
220
|
-
// * **Remove Variable ($remove)**
|
|
221
|
-
// *
|
|
222
|
-
// * Removes a property from the system object.
|
|
223
|
-
// *
|
|
224
|
-
// * @param {string} key - Property name.
|
|
225
|
-
// * @returns {boolean} True if the property existed and was removed.
|
|
226
|
-
// */
|
|
227
|
-
// public $remove(key: string): boolean {
|
|
228
|
-
// if (this.$has(key)) {
|
|
229
|
-
// delete this[key];
|
|
230
|
-
// return true;
|
|
231
|
-
// }
|
|
232
|
-
// return false;
|
|
233
|
-
// }
|
|
234
219
|
/**
|
|
235
220
|
* **Serialize to JSON ($toJSON)**
|
|
236
221
|
*
|
package/dist/esm/src/sys.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sys.js","sources":["../../../src/sys.ts"],"sourcesContent":[null],"names":["path"],"mappings":"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
|
|
1
|
+
{"version":3,"file":"sys.js","sources":["../../../src/sys.ts"],"sourcesContent":[null],"names":["path"],"mappings":"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"}
|
|
@@ -0,0 +1,162 @@
|
|
|
1
|
+
/***************************************************************************
|
|
2
|
+
* XyPrissJS - Fast And Secure
|
|
3
|
+
*
|
|
4
|
+
* @author Nehonix
|
|
5
|
+
* @license Nehonix OSL (NOSL)
|
|
6
|
+
*
|
|
7
|
+
* Copyright (c) 2025 Nehonix. All rights reserved.
|
|
8
|
+
*
|
|
9
|
+
* This License governs the use, modification, and distribution of software
|
|
10
|
+
* provided by NEHONIX under its open source projects.
|
|
11
|
+
* NEHONIX is committed to fostering collaborative innovation while strictly
|
|
12
|
+
* protecting its intellectual property rights.
|
|
13
|
+
* Violation of any term of this License will result in immediate termination of all granted rights
|
|
14
|
+
* and may subject the violator to legal action.
|
|
15
|
+
*
|
|
16
|
+
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
|
|
17
|
+
* INCLUDING BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE,
|
|
18
|
+
* AND NON-INFRINGEMENT.
|
|
19
|
+
* IN NO EVENT SHALL NEHONIX BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY,
|
|
20
|
+
* OR CONSEQUENTIAL DAMAGES ARISING FROM THE USE OR INABILITY TO USE THE SOFTWARE,
|
|
21
|
+
* EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
|
|
22
|
+
*
|
|
23
|
+
***************************************************************************** */
|
|
24
|
+
// ─── Constants ────────────────────────────────────────────────────────────────
|
|
25
|
+
/** Regex that validates a raw IPv4 or IPv6 string (no port, no brackets). */
|
|
26
|
+
const IPV4_RE = /^(25[0-5]|2[0-4]\d|1\d{2}|[1-9]\d|\d)\.(25[0-5]|2[0-4]\d|1\d{2}|[1-9]\d|\d)\.(25[0-5]|2[0-4]\d|1\d{2}|[1-9]\d|\d)\.(25[0-5]|2[0-4]\d|1\d{2}|[1-9]\d|\d)$/;
|
|
27
|
+
const IPV6_RE = /^[\da-f:]+$/i;
|
|
28
|
+
/** Private / loopback ranges we never want to return as the *real* client IP. */
|
|
29
|
+
const PRIVATE_RANGES = [
|
|
30
|
+
/^127\./, // 127.0.0.0/8 – loopback
|
|
31
|
+
/^10\./, // 10.0.0.0/8 – RFC 1918
|
|
32
|
+
/^172\.(1[6-9]|2\d|3[01])\./, // 172.16.0.0/12 – RFC 1918
|
|
33
|
+
/^192\.168\./, // 192.168.0.0/16 – RFC 1918
|
|
34
|
+
/^169\.254\./, // 169.254.0.0/16 – link-local
|
|
35
|
+
/^::1$/, // IPv6 loopback
|
|
36
|
+
/^fe80:/i, // IPv6 link-local
|
|
37
|
+
/^fc|^fd/i, // IPv6 unique local
|
|
38
|
+
];
|
|
39
|
+
const FALLBACK_IP = "127.0.0.1";
|
|
40
|
+
// ─── Helpers ──────────────────────────────────────────────────────────────────
|
|
41
|
+
/**
|
|
42
|
+
* Strips an IPv6-mapped IPv4 prefix ("::ffff:") and surrounding brackets.
|
|
43
|
+
* "::ffff:1.2.3.4" → "1.2.3.4"
|
|
44
|
+
* "[::1]" → "::1"
|
|
45
|
+
*/
|
|
46
|
+
function normaliseIp(raw) {
|
|
47
|
+
let ip = raw.trim();
|
|
48
|
+
// Strip brackets used in URLs: [::1]:3000 → ::1
|
|
49
|
+
if (ip.startsWith("[")) {
|
|
50
|
+
ip = ip.replace(/^\[([^\]]+)\].*$/, "$1");
|
|
51
|
+
}
|
|
52
|
+
// Strip port from IPv4: 1.2.3.4:3000 → 1.2.3.4
|
|
53
|
+
const v4WithPort = ip.match(/^(\d{1,3}(?:\.\d{1,3}){3}):\d+$/);
|
|
54
|
+
if (v4WithPort)
|
|
55
|
+
ip = v4WithPort[1];
|
|
56
|
+
// Strip IPv6-mapped IPv4 prefix
|
|
57
|
+
if (/^::ffff:/i.test(ip))
|
|
58
|
+
ip = ip.slice(7);
|
|
59
|
+
return ip;
|
|
60
|
+
}
|
|
61
|
+
/** Returns true only for syntactically valid, non-private IPv4 / IPv6. */
|
|
62
|
+
function isValidPublicIp(raw) {
|
|
63
|
+
const ip = normaliseIp(raw);
|
|
64
|
+
if (!ip)
|
|
65
|
+
return false;
|
|
66
|
+
const isIpv4 = IPV4_RE.test(ip);
|
|
67
|
+
const isIpv6 = !isIpv4 && IPV6_RE.test(ip);
|
|
68
|
+
if (!isIpv4 && !isIpv6)
|
|
69
|
+
return false;
|
|
70
|
+
return !PRIVATE_RANGES.some((re) => re.test(ip));
|
|
71
|
+
}
|
|
72
|
+
/** Safely reads a header value – returns undefined for missing / empty. */
|
|
73
|
+
function header(headers, name) {
|
|
74
|
+
const val = headers[name.toLowerCase()];
|
|
75
|
+
if (!val)
|
|
76
|
+
return undefined;
|
|
77
|
+
const str = Array.isArray(val) ? val[0] : val;
|
|
78
|
+
return str?.trim() || undefined;
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* Parses the RFC 7239 `Forwarded` header.
|
|
82
|
+
* `Forwarded: for=1.2.3.4;proto=https, for=5.6.7.8`
|
|
83
|
+
* → ["1.2.3.4", "5.6.7.8"]
|
|
84
|
+
*/
|
|
85
|
+
function parseForwardedHeader(value) {
|
|
86
|
+
return value
|
|
87
|
+
.split(",")
|
|
88
|
+
.map((part) => {
|
|
89
|
+
const match = part.match(/for=["[]?([^\]",;]+)/i);
|
|
90
|
+
return match ? normaliseIp(match[1]) : "";
|
|
91
|
+
})
|
|
92
|
+
.filter(Boolean);
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* Given a comma-separated (or array) `X-Forwarded-For` header,
|
|
96
|
+
* returns the first *valid public* IP, or the first entry as fallback.
|
|
97
|
+
*/
|
|
98
|
+
function pickFromXff(raw) {
|
|
99
|
+
const entries = (Array.isArray(raw) ? raw.flatMap((v) => v.split(",")) : raw.split(",")).map((s) => normaliseIp(s));
|
|
100
|
+
// Prefer first valid public IP (leftmost = original client in standard chains)
|
|
101
|
+
const pub = entries.find(isValidPublicIp);
|
|
102
|
+
if (pub)
|
|
103
|
+
return pub;
|
|
104
|
+
// Accept first private IP rather than nothing (intranet / dev env)
|
|
105
|
+
const first = entries[0];
|
|
106
|
+
return first && (IPV4_RE.test(first) || IPV6_RE.test(first))
|
|
107
|
+
? first
|
|
108
|
+
: undefined;
|
|
109
|
+
}
|
|
110
|
+
function getIp(req, enriched) {
|
|
111
|
+
const headers = (req.headers ?? {});
|
|
112
|
+
const resolve = (ip, source) => {
|
|
113
|
+
const normalised = normaliseIp(ip);
|
|
114
|
+
return enriched ? { ip: normalised, source } : normalised;
|
|
115
|
+
};
|
|
116
|
+
// 1. CF-Connecting-IP
|
|
117
|
+
const cfIp = header(headers, "cf-connecting-ip");
|
|
118
|
+
if (cfIp)
|
|
119
|
+
return resolve(cfIp, "cf-connecting-ip");
|
|
120
|
+
// 2. True-Client-IP
|
|
121
|
+
const trueClientIp = header(headers, "true-client-ip");
|
|
122
|
+
if (trueClientIp)
|
|
123
|
+
return resolve(trueClientIp, "true-client-ip");
|
|
124
|
+
// 3. X-Real-IP
|
|
125
|
+
const xRealIp = header(headers, "x-real-ip");
|
|
126
|
+
if (xRealIp)
|
|
127
|
+
return resolve(xRealIp, "x-real-ip");
|
|
128
|
+
// 4. X-Client-IP
|
|
129
|
+
const xClientIp = header(headers, "x-client-ip");
|
|
130
|
+
if (xClientIp)
|
|
131
|
+
return resolve(xClientIp, "x-client-ip");
|
|
132
|
+
// 5. X-Cluster-Client-IP
|
|
133
|
+
const xClusterIp = header(headers, "x-cluster-client-ip");
|
|
134
|
+
if (xClusterIp)
|
|
135
|
+
return resolve(xClusterIp, "x-cluster-client-ip");
|
|
136
|
+
// 6. Forwarded (RFC 7239)
|
|
137
|
+
const forwarded = header(headers, "forwarded");
|
|
138
|
+
if (forwarded) {
|
|
139
|
+
const [first] = parseForwardedHeader(forwarded);
|
|
140
|
+
if (first)
|
|
141
|
+
return resolve(first, "forwarded");
|
|
142
|
+
}
|
|
143
|
+
// 7. X-Forwarded-For
|
|
144
|
+
const xForwardedFor = headers["x-forwarded-for"];
|
|
145
|
+
if (xForwardedFor) {
|
|
146
|
+
const picked = pickFromXff(xForwardedFor);
|
|
147
|
+
if (picked)
|
|
148
|
+
return resolve(picked, "x-forwarded-for");
|
|
149
|
+
}
|
|
150
|
+
// 8. req.ip (framework-level, e.g. XyPrisRequest with trust proxy)
|
|
151
|
+
if (req.ip)
|
|
152
|
+
return resolve(req.ip, "req.ip");
|
|
153
|
+
// 9. Raw socket
|
|
154
|
+
const socketAddr = req.socket?.remoteAddress;
|
|
155
|
+
if (socketAddr)
|
|
156
|
+
return resolve(socketAddr, "socket");
|
|
157
|
+
// 10. Last-resort fallback
|
|
158
|
+
return resolve(FALLBACK_IP, "fallback");
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
export { getIp };
|
|
162
|
+
//# sourceMappingURL=getIp.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getIp.js","sources":["../../../../src/utils/getIp.ts"],"sourcesContent":[null],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;AAsBiF;AA4BjF;AAEA;AACA,MAAM,OAAO,GACT,0JAA0J;AAE9J,MAAM,OAAO,GAAG,cAAc;AAE9B;AACA,MAAM,cAAc,GAAa;AAC7B,IAAA,QAAQ;AACR,IAAA,OAAO;AACP,IAAA,4BAA4B;AAC5B,IAAA,aAAa;AACb,IAAA,aAAa;AACb,IAAA,OAAO;AACP,IAAA,SAAS;AACT,IAAA,UAAU;CACb;AAED,MAAM,WAAW,GAAG,WAAW;AAE/B;AAEA;;;;AAIG;AACH,SAAS,WAAW,CAAC,GAAW,EAAA;AAC5B,IAAA,IAAI,EAAE,GAAG,GAAG,CAAC,IAAI,EAAE;;AAEnB,IAAA,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE;QACpB,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,kBAAkB,EAAE,IAAI,CAAC;IAC7C;;IAEA,MAAM,UAAU,GAAG,EAAE,CAAC,KAAK,CAAC,iCAAiC,CAAC;AAC9D,IAAA,IAAI,UAAU;AAAE,QAAA,EAAE,GAAG,UAAU,CAAC,CAAC,CAAC;;AAElC,IAAA,IAAI,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC;AAAE,QAAA,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;AAC1C,IAAA,OAAO,EAAE;AACb;AAEA;AACA,SAAS,eAAe,CAAC,GAAW,EAAA;AAChC,IAAA,MAAM,EAAE,GAAG,WAAW,CAAC,GAAG,CAAC;AAC3B,IAAA,IAAI,CAAC,EAAE;AAAE,QAAA,OAAO,KAAK;IACrB,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;IAC/B,MAAM,MAAM,GAAG,CAAC,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;AAC1C,IAAA,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM;AAAE,QAAA,OAAO,KAAK;AACpC,IAAA,OAAO,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACpD;AAEA;AACA,SAAS,MAAM,CACX,OAAsD,EACtD,IAAY,EAAA;IAEZ,MAAM,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;AACvC,IAAA,IAAI,CAAC,GAAG;AAAE,QAAA,OAAO,SAAS;AAC1B,IAAA,MAAM,GAAG,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG;AAC7C,IAAA,OAAO,GAAG,EAAE,IAAI,EAAE,IAAI,SAAS;AACnC;AAEA;;;;AAIG;AACH,SAAS,oBAAoB,CAAC,KAAa,EAAA;AACvC,IAAA,OAAO;SACF,KAAK,CAAC,GAAG;AACT,SAAA,GAAG,CAAC,CAAC,IAAI,KAAI;QACV,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,uBAAuB,CAAC;AACjD,QAAA,OAAO,KAAK,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE;AAC7C,IAAA,CAAC;SACA,MAAM,CAAC,OAAO,CAAC;AACxB;AAEA;;;AAGG;AACH,SAAS,WAAW,CAAC,GAAsB,EAAA;IACvC,MAAM,OAAO,GAAa,CACtB,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,EACxE,GAAG,CAAC,CAAC,CAAC,KAAK,WAAW,CAAC,CAAC,CAAC,CAAC;;IAG5B,MAAM,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,eAAe,CAAC;AACzC,IAAA,IAAI,GAAG;AAAE,QAAA,OAAO,GAAG;;AAGnB,IAAA,MAAM,KAAK,GAAG,OAAO,CAAC,CAAC,CAAC;AACxB,IAAA,OAAO,KAAK,KAAK,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC;AACvD,UAAE;UACA,SAAS;AACnB;AAwBM,SAAU,KAAK,CACjB,GAAkB,EAClB,QAAe,EAAA;IAEf,MAAM,OAAO,IAAI,GAAG,CAAC,OAAO,IAAI,EAAE,CAGjC;AAED,IAAA,MAAM,OAAO,GAAG,CAAC,EAAU,EAAE,MAAgB,KAA0B;AACnE,QAAA,MAAM,UAAU,GAAG,WAAW,CAAC,EAAE,CAAC;AAClC,QAAA,OAAO,QAAQ,GAAG,EAAE,EAAE,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,UAAU;AAC7D,IAAA,CAAC;;IAGD,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,EAAE,kBAAkB,CAAC;AAChD,IAAA,IAAI,IAAI;AAAE,QAAA,OAAO,OAAO,CAAC,IAAI,EAAE,kBAAkB,CAAC;;IAGlD,MAAM,YAAY,GAAG,MAAM,CAAC,OAAO,EAAE,gBAAgB,CAAC;AACtD,IAAA,IAAI,YAAY;AAAE,QAAA,OAAO,OAAO,CAAC,YAAY,EAAE,gBAAgB,CAAC;;IAGhE,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,EAAE,WAAW,CAAC;AAC5C,IAAA,IAAI,OAAO;AAAE,QAAA,OAAO,OAAO,CAAC,OAAO,EAAE,WAAW,CAAC;;IAGjD,MAAM,SAAS,GAAG,MAAM,CAAC,OAAO,EAAE,aAAa,CAAC;AAChD,IAAA,IAAI,SAAS;AAAE,QAAA,OAAO,OAAO,CAAC,SAAS,EAAE,aAAa,CAAC;;IAGvD,MAAM,UAAU,GAAG,MAAM,CAAC,OAAO,EAAE,qBAAqB,CAAC;AACzD,IAAA,IAAI,UAAU;AAAE,QAAA,OAAO,OAAO,CAAC,UAAU,EAAE,qBAAqB,CAAC;;IAGjE,MAAM,SAAS,GAAG,MAAM,CAAC,OAAO,EAAE,WAAW,CAAC;IAC9C,IAAI,SAAS,EAAE;QACX,MAAM,CAAC,KAAK,CAAC,GAAG,oBAAoB,CAAC,SAAS,CAAC;AAC/C,QAAA,IAAI,KAAK;AAAE,YAAA,OAAO,OAAO,CAAC,KAAK,EAAE,WAAW,CAAC;IACjD;;AAGA,IAAA,MAAM,aAAa,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAChD,IAAI,aAAa,EAAE;AACf,QAAA,MAAM,MAAM,GAAG,WAAW,CAAC,aAAa,CAAC;AACzC,QAAA,IAAI,MAAM;AAAE,YAAA,OAAO,OAAO,CAAC,MAAM,EAAE,iBAAiB,CAAC;IACzD;;IAGA,IAAI,GAAG,CAAC,EAAE;QAAE,OAAO,OAAO,CAAC,GAAG,CAAC,EAAE,EAAE,QAAQ,CAAC;;AAG5C,IAAA,MAAM,UAAU,GAAI,GAAG,CAAC,MAAc,EAAE,aAAa;AACrD,IAAA,IAAI,UAAU;AAAE,QAAA,OAAO,OAAO,CAAC,UAAoB,EAAE,QAAQ,CAAC;;AAG9D,IAAA,OAAO,OAAO,CAAC,WAAW,EAAE,UAAU,CAAC;AAC3C;;;;"}
|