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
|
@@ -4,6 +4,7 @@ var path = require('node:path');
|
|
|
4
4
|
var fs = require('node:fs');
|
|
5
5
|
var node_child_process = require('node:child_process');
|
|
6
6
|
var node_url = require('node:url');
|
|
7
|
+
var XHSC_SIGNATURE = require('../server/const/XHSC_SIGNATURE.js');
|
|
7
8
|
|
|
8
9
|
var _documentCurrentScript = typeof document !== 'undefined' ? document.currentScript : null;
|
|
9
10
|
/**
|
|
@@ -57,86 +58,60 @@ class XyPrissRunner {
|
|
|
57
58
|
const osPart = getOsPart();
|
|
58
59
|
const archPart = getArchPart();
|
|
59
60
|
const suffix = osPart === "windows" ? ".exe" : "";
|
|
60
|
-
//
|
|
61
|
+
// Candidate names in order of preference
|
|
61
62
|
const goBinName = `xsys-${osPart}-${archPart}${suffix}`;
|
|
62
|
-
|
|
63
|
-
const
|
|
63
|
+
const genericBinName = osPart === "windows" ? "xsys.exe" : "xsys";
|
|
64
|
+
const candidates = [goBinName, genericBinName];
|
|
64
65
|
try {
|
|
66
|
+
// Get location of *this* file (compiled JS)
|
|
65
67
|
const __filename = node_url.fileURLToPath((typeof document === 'undefined' ? require('u' + 'rl').pathToFileURL(__filename).href : (_documentCurrentScript && _documentCurrentScript.tagName.toUpperCase() === 'SCRIPT' && _documentCurrentScript.src || new URL('src/sys/XyPrissRunner.js', document.baseURI).href)));
|
|
66
|
-
const
|
|
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
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
// Fallback to what we have
|
|
99
|
-
}
|
|
100
|
-
for (let currentDir of searchBases) {
|
|
101
|
-
let walkDir = currentDir;
|
|
102
|
-
while (walkDir !== path.parse(walkDir).root) {
|
|
103
|
-
const nodeModulesBin = path.join(walkDir, "node_modules", ".bin");
|
|
104
|
-
const potentialRust = path.join(nodeModulesBin, rustBinName);
|
|
105
|
-
const potentialGo = path.join(nodeModulesBin, goBinName);
|
|
106
|
-
if (fs.existsSync(potentialGo))
|
|
107
|
-
return potentialGo;
|
|
108
|
-
if (fs.existsSync(potentialRust))
|
|
109
|
-
return potentialRust;
|
|
110
|
-
// Also check a local "bin" folder at each level
|
|
111
|
-
const localBin = path.join(walkDir, "bin");
|
|
112
|
-
const localRust = path.join(localBin, rustBinName);
|
|
113
|
-
const localGo = path.join(localBin, goBinName);
|
|
114
|
-
if (fs.existsSync(localGo))
|
|
115
|
-
return localGo;
|
|
116
|
-
if (fs.existsSync(localRust))
|
|
117
|
-
return localRust;
|
|
118
|
-
walkDir = path.dirname(walkDir);
|
|
119
|
-
}
|
|
120
|
-
}
|
|
121
|
-
for (const loc of locations) {
|
|
122
|
-
if (fs.existsSync(loc)) {
|
|
123
|
-
// console.log(`[SYSTEM] Discovered binary: ${loc}`);
|
|
124
|
-
return loc;
|
|
68
|
+
const scriptDir = path.dirname(__filename);
|
|
69
|
+
// Bases for recursive search: script location and current working directory
|
|
70
|
+
const searchBases = [scriptDir, process.cwd()];
|
|
71
|
+
for (const base of searchBases) {
|
|
72
|
+
let current = base;
|
|
73
|
+
// Go up up to 8 levels to handle deeply nested node_modules / virtual_store
|
|
74
|
+
for (let depth = 0; depth < 8; depth++) {
|
|
75
|
+
// Check 1: Standard bin/ at this level
|
|
76
|
+
const binDir = path.join(current, "bin");
|
|
77
|
+
for (const name of candidates) {
|
|
78
|
+
const fullPath = path.join(binDir, name);
|
|
79
|
+
if (fs.existsSync(fullPath))
|
|
80
|
+
return fullPath;
|
|
81
|
+
}
|
|
82
|
+
// Check 2: node_modules/.bin (if we are at project/env root)
|
|
83
|
+
const nodeModulesBin = path.join(current, "node_modules", ".bin");
|
|
84
|
+
for (const name of candidates) {
|
|
85
|
+
const fullPath = path.join(nodeModulesBin, name);
|
|
86
|
+
if (fs.existsSync(fullPath))
|
|
87
|
+
return fullPath;
|
|
88
|
+
}
|
|
89
|
+
// Check 3: Local dev folders
|
|
90
|
+
const devPath = path.join(current, "tools", "xypriss-sys-go", "dist");
|
|
91
|
+
for (const name of candidates) {
|
|
92
|
+
const fullPath = path.join(devPath, name);
|
|
93
|
+
if (fs.existsSync(fullPath))
|
|
94
|
+
return fullPath;
|
|
95
|
+
}
|
|
96
|
+
const parent = path.dirname(current);
|
|
97
|
+
if (parent === current)
|
|
98
|
+
break;
|
|
99
|
+
current = parent;
|
|
125
100
|
}
|
|
126
101
|
}
|
|
127
102
|
}
|
|
128
103
|
catch (e) {
|
|
129
|
-
// Silently
|
|
104
|
+
// Silently fall through to generic name
|
|
130
105
|
}
|
|
131
106
|
// Final fallback (generic name which might be in PATH)
|
|
132
|
-
return
|
|
107
|
+
return genericBinName;
|
|
133
108
|
}
|
|
134
109
|
/**
|
|
135
110
|
* Executes a command synchronously and returns the parsed JSON result.
|
|
136
111
|
* Standardizes all responses into a Promise-like data structure.
|
|
137
112
|
*/
|
|
138
113
|
runSync(module, action, args = [], options = {}) {
|
|
139
|
-
const INTERNAL_SIGNATURE =
|
|
114
|
+
const INTERNAL_SIGNATURE = XHSC_SIGNATURE.XHSC_SIGNATURE;
|
|
140
115
|
const cmdArgs = [
|
|
141
116
|
"--root",
|
|
142
117
|
this.root,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"XyPrissRunner.js","sources":["../../../../src/sys/XyPrissRunner.ts"],"sourcesContent":[null],"names":["fileURLToPath","execFileSync"],"mappings":"
|
|
1
|
+
{"version":3,"file":"XyPrissRunner.js","sources":["../../../../src/sys/XyPrissRunner.ts"],"sourcesContent":[null],"names":["fileURLToPath","XHSC_SIGNATURE","execFileSync"],"mappings":"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"}
|
package/dist/cjs/src/sys.js
CHANGED
|
@@ -218,21 +218,6 @@ class XyPrissSys extends System.XyPrissFS {
|
|
|
218
218
|
// =========================================================================
|
|
219
219
|
// MODULAR CAPABILITIES
|
|
220
220
|
// =========================================================================
|
|
221
|
-
// /**
|
|
222
|
-
// * **Remove Variable ($remove)**
|
|
223
|
-
// *
|
|
224
|
-
// * Removes a property from the system object.
|
|
225
|
-
// *
|
|
226
|
-
// * @param {string} key - Property name.
|
|
227
|
-
// * @returns {boolean} True if the property existed and was removed.
|
|
228
|
-
// */
|
|
229
|
-
// public $remove(key: string): boolean {
|
|
230
|
-
// if (this.$has(key)) {
|
|
231
|
-
// delete this[key];
|
|
232
|
-
// return true;
|
|
233
|
-
// }
|
|
234
|
-
// return false;
|
|
235
|
-
// }
|
|
236
221
|
/**
|
|
237
222
|
* **Serialize to JSON ($toJSON)**
|
|
238
223
|
*
|
package/dist/cjs/src/sys.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sys.js","sources":["../../../src/sys.ts"],"sourcesContent":[null],"names":["XyPrissFS","DotEnvLoader"],"mappings":"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
|
|
1
|
+
{"version":3,"file":"sys.js","sources":["../../../src/sys.ts"],"sourcesContent":[null],"names":["XyPrissFS","DotEnvLoader"],"mappings":"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"}
|
|
@@ -0,0 +1,164 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
/***************************************************************************
|
|
4
|
+
* XyPrissJS - Fast And Secure
|
|
5
|
+
*
|
|
6
|
+
* @author Nehonix
|
|
7
|
+
* @license Nehonix OSL (NOSL)
|
|
8
|
+
*
|
|
9
|
+
* Copyright (c) 2025 Nehonix. All rights reserved.
|
|
10
|
+
*
|
|
11
|
+
* This License governs the use, modification, and distribution of software
|
|
12
|
+
* provided by NEHONIX under its open source projects.
|
|
13
|
+
* NEHONIX is committed to fostering collaborative innovation while strictly
|
|
14
|
+
* protecting its intellectual property rights.
|
|
15
|
+
* Violation of any term of this License will result in immediate termination of all granted rights
|
|
16
|
+
* and may subject the violator to legal action.
|
|
17
|
+
*
|
|
18
|
+
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
|
|
19
|
+
* INCLUDING BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE,
|
|
20
|
+
* AND NON-INFRINGEMENT.
|
|
21
|
+
* IN NO EVENT SHALL NEHONIX BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY,
|
|
22
|
+
* OR CONSEQUENTIAL DAMAGES ARISING FROM THE USE OR INABILITY TO USE THE SOFTWARE,
|
|
23
|
+
* EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
|
|
24
|
+
*
|
|
25
|
+
***************************************************************************** */
|
|
26
|
+
// ─── Constants ────────────────────────────────────────────────────────────────
|
|
27
|
+
/** Regex that validates a raw IPv4 or IPv6 string (no port, no brackets). */
|
|
28
|
+
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)$/;
|
|
29
|
+
const IPV6_RE = /^[\da-f:]+$/i;
|
|
30
|
+
/** Private / loopback ranges we never want to return as the *real* client IP. */
|
|
31
|
+
const PRIVATE_RANGES = [
|
|
32
|
+
/^127\./, // 127.0.0.0/8 – loopback
|
|
33
|
+
/^10\./, // 10.0.0.0/8 – RFC 1918
|
|
34
|
+
/^172\.(1[6-9]|2\d|3[01])\./, // 172.16.0.0/12 – RFC 1918
|
|
35
|
+
/^192\.168\./, // 192.168.0.0/16 – RFC 1918
|
|
36
|
+
/^169\.254\./, // 169.254.0.0/16 – link-local
|
|
37
|
+
/^::1$/, // IPv6 loopback
|
|
38
|
+
/^fe80:/i, // IPv6 link-local
|
|
39
|
+
/^fc|^fd/i, // IPv6 unique local
|
|
40
|
+
];
|
|
41
|
+
const FALLBACK_IP = "127.0.0.1";
|
|
42
|
+
// ─── Helpers ──────────────────────────────────────────────────────────────────
|
|
43
|
+
/**
|
|
44
|
+
* Strips an IPv6-mapped IPv4 prefix ("::ffff:") and surrounding brackets.
|
|
45
|
+
* "::ffff:1.2.3.4" → "1.2.3.4"
|
|
46
|
+
* "[::1]" → "::1"
|
|
47
|
+
*/
|
|
48
|
+
function normaliseIp(raw) {
|
|
49
|
+
let ip = raw.trim();
|
|
50
|
+
// Strip brackets used in URLs: [::1]:3000 → ::1
|
|
51
|
+
if (ip.startsWith("[")) {
|
|
52
|
+
ip = ip.replace(/^\[([^\]]+)\].*$/, "$1");
|
|
53
|
+
}
|
|
54
|
+
// Strip port from IPv4: 1.2.3.4:3000 → 1.2.3.4
|
|
55
|
+
const v4WithPort = ip.match(/^(\d{1,3}(?:\.\d{1,3}){3}):\d+$/);
|
|
56
|
+
if (v4WithPort)
|
|
57
|
+
ip = v4WithPort[1];
|
|
58
|
+
// Strip IPv6-mapped IPv4 prefix
|
|
59
|
+
if (/^::ffff:/i.test(ip))
|
|
60
|
+
ip = ip.slice(7);
|
|
61
|
+
return ip;
|
|
62
|
+
}
|
|
63
|
+
/** Returns true only for syntactically valid, non-private IPv4 / IPv6. */
|
|
64
|
+
function isValidPublicIp(raw) {
|
|
65
|
+
const ip = normaliseIp(raw);
|
|
66
|
+
if (!ip)
|
|
67
|
+
return false;
|
|
68
|
+
const isIpv4 = IPV4_RE.test(ip);
|
|
69
|
+
const isIpv6 = !isIpv4 && IPV6_RE.test(ip);
|
|
70
|
+
if (!isIpv4 && !isIpv6)
|
|
71
|
+
return false;
|
|
72
|
+
return !PRIVATE_RANGES.some((re) => re.test(ip));
|
|
73
|
+
}
|
|
74
|
+
/** Safely reads a header value – returns undefined for missing / empty. */
|
|
75
|
+
function header(headers, name) {
|
|
76
|
+
const val = headers[name.toLowerCase()];
|
|
77
|
+
if (!val)
|
|
78
|
+
return undefined;
|
|
79
|
+
const str = Array.isArray(val) ? val[0] : val;
|
|
80
|
+
return str?.trim() || undefined;
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* Parses the RFC 7239 `Forwarded` header.
|
|
84
|
+
* `Forwarded: for=1.2.3.4;proto=https, for=5.6.7.8`
|
|
85
|
+
* → ["1.2.3.4", "5.6.7.8"]
|
|
86
|
+
*/
|
|
87
|
+
function parseForwardedHeader(value) {
|
|
88
|
+
return value
|
|
89
|
+
.split(",")
|
|
90
|
+
.map((part) => {
|
|
91
|
+
const match = part.match(/for=["[]?([^\]",;]+)/i);
|
|
92
|
+
return match ? normaliseIp(match[1]) : "";
|
|
93
|
+
})
|
|
94
|
+
.filter(Boolean);
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* Given a comma-separated (or array) `X-Forwarded-For` header,
|
|
98
|
+
* returns the first *valid public* IP, or the first entry as fallback.
|
|
99
|
+
*/
|
|
100
|
+
function pickFromXff(raw) {
|
|
101
|
+
const entries = (Array.isArray(raw) ? raw.flatMap((v) => v.split(",")) : raw.split(",")).map((s) => normaliseIp(s));
|
|
102
|
+
// Prefer first valid public IP (leftmost = original client in standard chains)
|
|
103
|
+
const pub = entries.find(isValidPublicIp);
|
|
104
|
+
if (pub)
|
|
105
|
+
return pub;
|
|
106
|
+
// Accept first private IP rather than nothing (intranet / dev env)
|
|
107
|
+
const first = entries[0];
|
|
108
|
+
return first && (IPV4_RE.test(first) || IPV6_RE.test(first))
|
|
109
|
+
? first
|
|
110
|
+
: undefined;
|
|
111
|
+
}
|
|
112
|
+
function getIp(req, enriched) {
|
|
113
|
+
const headers = (req.headers ?? {});
|
|
114
|
+
const resolve = (ip, source) => {
|
|
115
|
+
const normalised = normaliseIp(ip);
|
|
116
|
+
return enriched ? { ip: normalised, source } : normalised;
|
|
117
|
+
};
|
|
118
|
+
// 1. CF-Connecting-IP
|
|
119
|
+
const cfIp = header(headers, "cf-connecting-ip");
|
|
120
|
+
if (cfIp)
|
|
121
|
+
return resolve(cfIp, "cf-connecting-ip");
|
|
122
|
+
// 2. True-Client-IP
|
|
123
|
+
const trueClientIp = header(headers, "true-client-ip");
|
|
124
|
+
if (trueClientIp)
|
|
125
|
+
return resolve(trueClientIp, "true-client-ip");
|
|
126
|
+
// 3. X-Real-IP
|
|
127
|
+
const xRealIp = header(headers, "x-real-ip");
|
|
128
|
+
if (xRealIp)
|
|
129
|
+
return resolve(xRealIp, "x-real-ip");
|
|
130
|
+
// 4. X-Client-IP
|
|
131
|
+
const xClientIp = header(headers, "x-client-ip");
|
|
132
|
+
if (xClientIp)
|
|
133
|
+
return resolve(xClientIp, "x-client-ip");
|
|
134
|
+
// 5. X-Cluster-Client-IP
|
|
135
|
+
const xClusterIp = header(headers, "x-cluster-client-ip");
|
|
136
|
+
if (xClusterIp)
|
|
137
|
+
return resolve(xClusterIp, "x-cluster-client-ip");
|
|
138
|
+
// 6. Forwarded (RFC 7239)
|
|
139
|
+
const forwarded = header(headers, "forwarded");
|
|
140
|
+
if (forwarded) {
|
|
141
|
+
const [first] = parseForwardedHeader(forwarded);
|
|
142
|
+
if (first)
|
|
143
|
+
return resolve(first, "forwarded");
|
|
144
|
+
}
|
|
145
|
+
// 7. X-Forwarded-For
|
|
146
|
+
const xForwardedFor = headers["x-forwarded-for"];
|
|
147
|
+
if (xForwardedFor) {
|
|
148
|
+
const picked = pickFromXff(xForwardedFor);
|
|
149
|
+
if (picked)
|
|
150
|
+
return resolve(picked, "x-forwarded-for");
|
|
151
|
+
}
|
|
152
|
+
// 8. req.ip (framework-level, e.g. XyPrisRequest with trust proxy)
|
|
153
|
+
if (req.ip)
|
|
154
|
+
return resolve(req.ip, "req.ip");
|
|
155
|
+
// 9. Raw socket
|
|
156
|
+
const socketAddr = req.socket?.remoteAddress;
|
|
157
|
+
if (socketAddr)
|
|
158
|
+
return resolve(socketAddr, "socket");
|
|
159
|
+
// 10. Last-resort fallback
|
|
160
|
+
return resolve(FALLBACK_IP, "fallback");
|
|
161
|
+
}
|
|
162
|
+
|
|
163
|
+
exports.getIp = getIp;
|
|
164
|
+
//# sourceMappingURL=getIp.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getIp.js","sources":["../../../../src/utils/getIp.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
|
|
@@ -26,9 +26,10 @@ export { uploadAny, uploadArray, uploadFields, uploadSingle } from './FiUp.js';
|
|
|
26
26
|
* Provides a clean, class-based interface for file upload middleware
|
|
27
27
|
*/
|
|
28
28
|
class FileUploadAPI {
|
|
29
|
-
constructor() {
|
|
29
|
+
constructor(config) {
|
|
30
30
|
this.manager = null;
|
|
31
31
|
this.initialized = false;
|
|
32
|
+
this.configOverride = config;
|
|
32
33
|
// Use a default logger if none provided
|
|
33
34
|
this.logger = initializeLogger({
|
|
34
35
|
enabled: true,
|
|
@@ -38,42 +39,35 @@ class FileUploadAPI {
|
|
|
38
39
|
});
|
|
39
40
|
}
|
|
40
41
|
/**
|
|
41
|
-
*
|
|
42
|
-
*
|
|
43
|
-
* This method requires the Configs class to enforce a single source of truth.
|
|
44
|
-
* Configuration is accessed internally from Configs.get('fileUpload').
|
|
45
|
-
*
|
|
46
|
-
* @param configManager - The Configs class (not an instance, the class itself)
|
|
47
|
-
*
|
|
48
|
-
* @example
|
|
49
|
-
* ```typescript
|
|
50
|
-
* import { Configs } from 'xypriss';
|
|
51
|
-
*
|
|
52
|
-
* const upload = new FileUploadAPI();
|
|
53
|
-
* await upload.initialize(Configs);
|
|
54
|
-
* ```
|
|
42
|
+
* Internal auto-initialization method.
|
|
43
|
+
* Called lazily by middleware methods if not already initialized.
|
|
55
44
|
*/
|
|
56
|
-
async
|
|
57
|
-
if (this.initialized
|
|
58
|
-
return;
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
45
|
+
async autoInitialize() {
|
|
46
|
+
if (this.initialized)
|
|
47
|
+
return;
|
|
48
|
+
// Try to get config from override or global Configs
|
|
49
|
+
const config = this.configOverride || ConfigurationManager.get("fileUpload");
|
|
50
|
+
if (!config || config.enabled === false) {
|
|
51
|
+
// If explicitly disabled or no config found, we can't initialize
|
|
52
|
+
return;
|
|
64
53
|
}
|
|
65
54
|
try {
|
|
66
|
-
this.logger.debug("server", "
|
|
55
|
+
this.logger.debug("server", "Auto-initializing FileUploadAPI...");
|
|
67
56
|
this.manager = new FileUploadManager(this.logger);
|
|
68
57
|
await this.manager.initialize();
|
|
69
58
|
this.initialized = true;
|
|
70
|
-
this.logger.debug("server",
|
|
59
|
+
this.logger.debug("server", "FileUploadAPI auto-initialized successfully");
|
|
71
60
|
}
|
|
72
61
|
catch (error) {
|
|
73
|
-
this.logger.error("server", "Failed to initialize FileUploadAPI:", error.message);
|
|
74
|
-
throw error;
|
|
62
|
+
this.logger.error("server", "Failed to auto-initialize FileUploadAPI:", error.message);
|
|
75
63
|
}
|
|
76
64
|
}
|
|
65
|
+
/**
|
|
66
|
+
* Manually initialize the file upload API (legacy support)
|
|
67
|
+
*/
|
|
68
|
+
async initialize(configManager) {
|
|
69
|
+
await this.autoInitialize();
|
|
70
|
+
}
|
|
77
71
|
/**
|
|
78
72
|
* Check if the file upload API is enabled
|
|
79
73
|
*/
|
|
@@ -81,11 +75,11 @@ class FileUploadAPI {
|
|
|
81
75
|
return this.manager?.isEnabled() === true;
|
|
82
76
|
}
|
|
83
77
|
/**
|
|
84
|
-
* Handle
|
|
78
|
+
* Handle upload errors and convert them to proper HTTP responses
|
|
85
79
|
*/
|
|
86
|
-
|
|
80
|
+
handleUploadError(err, req, res) {
|
|
87
81
|
if (err.code === "LIMIT_FILE_SIZE") {
|
|
88
|
-
const maxSize = this.manager?.
|
|
82
|
+
const maxSize = this.manager?.getConfig()?.maxFileSize || 1024 * 1024;
|
|
89
83
|
const maxSizeMB = (maxSize / (1024 * 1024)).toFixed(2);
|
|
90
84
|
res.status(400).json({
|
|
91
85
|
success: false,
|
|
@@ -99,7 +93,7 @@ class FileUploadAPI {
|
|
|
99
93
|
});
|
|
100
94
|
return;
|
|
101
95
|
}
|
|
102
|
-
if (err.code === "
|
|
96
|
+
if (err.code === "LIMIT_UNEXPECTED_FIELD") {
|
|
103
97
|
res.status(400).json({
|
|
104
98
|
success: false,
|
|
105
99
|
error: "Unexpected field",
|
|
@@ -134,7 +128,7 @@ class FileUploadAPI {
|
|
|
134
128
|
return;
|
|
135
129
|
}
|
|
136
130
|
}
|
|
137
|
-
// Generic
|
|
131
|
+
// Generic upload error
|
|
138
132
|
res.status(400).json({
|
|
139
133
|
success: false,
|
|
140
134
|
error: "Upload error",
|
|
@@ -145,10 +139,11 @@ class FileUploadAPI {
|
|
|
145
139
|
* Create a middleware for uploading a single file
|
|
146
140
|
*
|
|
147
141
|
* @param fieldname - The name of the form field containing the file
|
|
148
|
-
* @returns
|
|
142
|
+
* @returns Middleware function
|
|
149
143
|
*/
|
|
150
144
|
single(fieldname) {
|
|
151
|
-
return (req, res, next) => {
|
|
145
|
+
return async (req, res, next) => {
|
|
146
|
+
await this.autoInitialize();
|
|
152
147
|
if (!this.isEnabled()) {
|
|
153
148
|
return res.status(500).json({
|
|
154
149
|
success: false,
|
|
@@ -156,10 +151,10 @@ class FileUploadAPI {
|
|
|
156
151
|
message: "File upload not enabled. Set fileUpload.enabled to true in server options.",
|
|
157
152
|
});
|
|
158
153
|
}
|
|
159
|
-
// Use
|
|
154
|
+
// Use upload middleware with built-in error handling
|
|
160
155
|
this.manager.single(fieldname)(req, res, (err) => {
|
|
161
156
|
if (err) {
|
|
162
|
-
this.
|
|
157
|
+
this.handleUploadError(err, req, res);
|
|
163
158
|
}
|
|
164
159
|
else {
|
|
165
160
|
next();
|
|
@@ -172,10 +167,11 @@ class FileUploadAPI {
|
|
|
172
167
|
*
|
|
173
168
|
* @param fieldname - The name of the form field containing the files
|
|
174
169
|
* @param maxCount - Maximum number of files to accept (optional)
|
|
175
|
-
* @returns
|
|
170
|
+
* @returns Middleware function
|
|
176
171
|
*/
|
|
177
172
|
array(fieldname, maxCount) {
|
|
178
|
-
return (req, res, next) => {
|
|
173
|
+
return async (req, res, next) => {
|
|
174
|
+
await this.autoInitialize();
|
|
179
175
|
if (!this.isEnabled()) {
|
|
180
176
|
return res.status(500).json({
|
|
181
177
|
success: false,
|
|
@@ -185,7 +181,7 @@ class FileUploadAPI {
|
|
|
185
181
|
}
|
|
186
182
|
this.manager.array(fieldname, maxCount)(req, res, (err) => {
|
|
187
183
|
if (err) {
|
|
188
|
-
this.
|
|
184
|
+
this.handleUploadError(err, req, res);
|
|
189
185
|
}
|
|
190
186
|
else {
|
|
191
187
|
next();
|
|
@@ -197,10 +193,11 @@ class FileUploadAPI {
|
|
|
197
193
|
* Create a middleware for uploading multiple files with different field names
|
|
198
194
|
*
|
|
199
195
|
* @param fields - Array of field configurations
|
|
200
|
-
* @returns
|
|
196
|
+
* @returns Middleware function
|
|
201
197
|
*/
|
|
202
198
|
fields(fields) {
|
|
203
|
-
return (req, res, next) => {
|
|
199
|
+
return async (req, res, next) => {
|
|
200
|
+
await this.autoInitialize();
|
|
204
201
|
if (!this.isEnabled()) {
|
|
205
202
|
return res.status(500).json({
|
|
206
203
|
success: false,
|
|
@@ -210,7 +207,7 @@ class FileUploadAPI {
|
|
|
210
207
|
}
|
|
211
208
|
this.manager.fields(fields)(req, res, (err) => {
|
|
212
209
|
if (err) {
|
|
213
|
-
this.
|
|
210
|
+
this.handleUploadError(err, req, res);
|
|
214
211
|
}
|
|
215
212
|
else {
|
|
216
213
|
next();
|
|
@@ -221,10 +218,11 @@ class FileUploadAPI {
|
|
|
221
218
|
/**
|
|
222
219
|
* Create a middleware for uploading any files (accepts all files)
|
|
223
220
|
*
|
|
224
|
-
* @returns
|
|
221
|
+
* @returns Middleware function
|
|
225
222
|
*/
|
|
226
223
|
any() {
|
|
227
|
-
return (req, res, next) => {
|
|
224
|
+
return async (req, res, next) => {
|
|
225
|
+
await this.autoInitialize();
|
|
228
226
|
if (!this.isEnabled()) {
|
|
229
227
|
return res.status(500).json({
|
|
230
228
|
success: false,
|
|
@@ -234,7 +232,7 @@ class FileUploadAPI {
|
|
|
234
232
|
}
|
|
235
233
|
this.manager.any()(req, res, (err) => {
|
|
236
234
|
if (err) {
|
|
237
|
-
this.
|
|
235
|
+
this.handleUploadError(err, req, res);
|
|
238
236
|
}
|
|
239
237
|
else {
|
|
240
238
|
next();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"file-upload.js","sources":["../../../src/file-upload.ts"],"sourcesContent":[null],"names":["Configs"],"mappings":";;;;;;AAAA;;;;;;;;;;;;;;;;AAgBG;AASH;;;AAGG;MACU,aAAa,CAAA;
|
|
1
|
+
{"version":3,"file":"file-upload.js","sources":["../../../src/file-upload.ts"],"sourcesContent":[null],"names":["Configs"],"mappings":"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"}
|