n8n-nodes-dominusnode 1.0.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/CHANGELOG.md +21 -0
- package/LICENSE +21 -0
- package/README.md +99 -0
- package/dist/credentials/DominusNodeApi.credentials.d.ts +7 -0
- package/dist/credentials/DominusNodeApi.credentials.js +42 -0
- package/dist/credentials/DominusNodeApi.credentials.js.map +1 -0
- package/dist/index.d.ts +4 -0
- package/dist/index.js +12 -0
- package/dist/index.js.map +1 -0
- package/dist/nodes/DominusNodeProxy/DominusNodeProxy.node.d.ts +24 -0
- package/dist/nodes/DominusNodeProxy/DominusNodeProxy.node.js +436 -0
- package/dist/nodes/DominusNodeProxy/DominusNodeProxy.node.js.map +1 -0
- package/dist/nodes/DominusNodeUsage/DominusNodeUsage.node.d.ts +13 -0
- package/dist/nodes/DominusNodeUsage/DominusNodeUsage.node.js +105 -0
- package/dist/nodes/DominusNodeUsage/DominusNodeUsage.node.js.map +1 -0
- package/dist/nodes/DominusNodeWallet/DominusNodeWallet.node.d.ts +33 -0
- package/dist/nodes/DominusNodeWallet/DominusNodeWallet.node.js +656 -0
- package/dist/nodes/DominusNodeWallet/DominusNodeWallet.node.js.map +1 -0
- package/dist/shared/auth.d.ts +74 -0
- package/dist/shared/auth.js +264 -0
- package/dist/shared/auth.js.map +1 -0
- package/dist/shared/constants.d.ts +9 -0
- package/dist/shared/constants.js +13 -0
- package/dist/shared/constants.js.map +1 -0
- package/dist/shared/ssrf.d.ts +42 -0
- package/dist/shared/ssrf.js +252 -0
- package/dist/shared/ssrf.js.map +1 -0
- package/package.json +41 -0
- package/src/credentials/DominusNodeApi.credentials.ts +39 -0
- package/src/index.ts +4 -0
- package/src/nodes/DominusNodeProxy/DominusNodeProxy.node.ts +459 -0
- package/src/nodes/DominusNodeUsage/DominusNodeUsage.node.ts +130 -0
- package/src/nodes/DominusNodeWallet/DominusNodeWallet.node.ts +898 -0
- package/src/shared/auth.ts +272 -0
- package/src/shared/constants.ts +11 -0
- package/src/shared/ssrf.ts +257 -0
- package/tests/DominusNodeProxy.test.ts +281 -0
- package/tests/DominusNodeUsage.test.ts +250 -0
- package/tests/DominusNodeWallet.test.ts +591 -0
- package/tests/ssrf.test.ts +238 -0
- package/tsconfig.json +18 -0
- package/vitest.config.ts +8 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DominusNodeWallet.node.js","sourceRoot":"","sources":["../../../src/nodes/DominusNodeWallet/DominusNodeWallet.node.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Authentication and security utilities for the DomiNode n8n integration.
|
|
3
|
+
*
|
|
4
|
+
* Provides:
|
|
5
|
+
* - Credential sanitization (redact dn_live_/dn_test_ keys from errors)
|
|
6
|
+
* - Prototype pollution prevention (strip dangerous keys from parsed JSON)
|
|
7
|
+
* - DNS rebinding protection (resolve hostnames, check all IPs)
|
|
8
|
+
* - Authenticated HTTP client for the DomiNode REST API
|
|
9
|
+
*
|
|
10
|
+
* @module
|
|
11
|
+
*/
|
|
12
|
+
declare const SANCTIONED_COUNTRIES: Set<string>;
|
|
13
|
+
export { SANCTIONED_COUNTRIES };
|
|
14
|
+
/**
|
|
15
|
+
* Redact DomiNode API keys from error messages to prevent credential leakage.
|
|
16
|
+
*/
|
|
17
|
+
export declare function sanitizeError(message: string): string;
|
|
18
|
+
/**
|
|
19
|
+
* Recursively remove __proto__, constructor, and prototype keys from an object.
|
|
20
|
+
* Prevents prototype pollution when parsing untrusted JSON.
|
|
21
|
+
*/
|
|
22
|
+
export declare function stripDangerousKeys(obj: unknown, depth?: number): void;
|
|
23
|
+
/**
|
|
24
|
+
* Parse JSON safely, stripping prototype pollution vectors.
|
|
25
|
+
*/
|
|
26
|
+
export declare function safeJsonParse<T>(text: string): T;
|
|
27
|
+
/**
|
|
28
|
+
* Resolve a hostname and verify none of the resolved IPs are private.
|
|
29
|
+
* Prevents DNS rebinding attacks where a hostname initially resolves to a
|
|
30
|
+
* public IP during validation but later resolves to a private IP.
|
|
31
|
+
*/
|
|
32
|
+
export declare function checkDnsRebinding(hostname: string): Promise<void>;
|
|
33
|
+
/**
|
|
34
|
+
* Convert a human-readable period string to ISO date range.
|
|
35
|
+
* Backend expects since/until ISO dates, NOT a days integer.
|
|
36
|
+
*/
|
|
37
|
+
export declare function periodToDateRange(period: string): {
|
|
38
|
+
since: string;
|
|
39
|
+
until: string;
|
|
40
|
+
};
|
|
41
|
+
/**
|
|
42
|
+
* Authenticated HTTP client for the DomiNode REST API.
|
|
43
|
+
*
|
|
44
|
+
* Lazily authenticates on first request using the API key via the
|
|
45
|
+
* /api/auth/verify-key endpoint. Automatically retries on 401 (token expired).
|
|
46
|
+
*/
|
|
47
|
+
export declare class DominusNodeAuth {
|
|
48
|
+
private apiKey;
|
|
49
|
+
private baseUrl;
|
|
50
|
+
private timeoutMs;
|
|
51
|
+
private token;
|
|
52
|
+
private authPromise;
|
|
53
|
+
constructor(apiKey: string, baseUrl: string, timeoutMs?: number);
|
|
54
|
+
/**
|
|
55
|
+
* Ensure the client is authenticated. Lazily authenticates on first call.
|
|
56
|
+
* Concurrent calls share the same auth promise to avoid duplicate requests.
|
|
57
|
+
*/
|
|
58
|
+
ensureAuth(): Promise<void>;
|
|
59
|
+
/**
|
|
60
|
+
* Make an authenticated API request.
|
|
61
|
+
*
|
|
62
|
+
* @param method - HTTP method (GET, POST, PATCH, DELETE)
|
|
63
|
+
* @param path - API path (e.g., /api/wallet)
|
|
64
|
+
* @param body - Optional request body (will be JSON-serialized)
|
|
65
|
+
* @returns Parsed response body
|
|
66
|
+
* @throws {Error} On HTTP errors or response size violations
|
|
67
|
+
*/
|
|
68
|
+
apiRequest(method: string, path: string, body?: unknown): Promise<unknown>;
|
|
69
|
+
/**
|
|
70
|
+
* Clear auth token, forcing re-authentication on next request.
|
|
71
|
+
*/
|
|
72
|
+
clearToken(): void;
|
|
73
|
+
private authenticate;
|
|
74
|
+
}
|
|
@@ -0,0 +1,264 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Authentication and security utilities for the DomiNode n8n integration.
|
|
4
|
+
*
|
|
5
|
+
* Provides:
|
|
6
|
+
* - Credential sanitization (redact dn_live_/dn_test_ keys from errors)
|
|
7
|
+
* - Prototype pollution prevention (strip dangerous keys from parsed JSON)
|
|
8
|
+
* - DNS rebinding protection (resolve hostnames, check all IPs)
|
|
9
|
+
* - Authenticated HTTP client for the DomiNode REST API
|
|
10
|
+
*
|
|
11
|
+
* @module
|
|
12
|
+
*/
|
|
13
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
14
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
exports.DominusNodeAuth = exports.SANCTIONED_COUNTRIES = void 0;
|
|
18
|
+
exports.sanitizeError = sanitizeError;
|
|
19
|
+
exports.stripDangerousKeys = stripDangerousKeys;
|
|
20
|
+
exports.safeJsonParse = safeJsonParse;
|
|
21
|
+
exports.checkDnsRebinding = checkDnsRebinding;
|
|
22
|
+
exports.periodToDateRange = periodToDateRange;
|
|
23
|
+
const promises_1 = __importDefault(require("dns/promises"));
|
|
24
|
+
const ssrf_1 = require("./ssrf");
|
|
25
|
+
// ---------------------------------------------------------------------------
|
|
26
|
+
// Constants
|
|
27
|
+
// ---------------------------------------------------------------------------
|
|
28
|
+
const CREDENTIAL_RE = /dn_(live|test)_[a-zA-Z0-9]+/g;
|
|
29
|
+
const DANGEROUS_KEYS = new Set(["__proto__", "constructor", "prototype"]);
|
|
30
|
+
const MAX_RESPONSE_BYTES = 10 * 1024 * 1024; // 10 MB
|
|
31
|
+
const SANCTIONED_COUNTRIES = new Set(["CU", "IR", "KP", "RU", "SY"]);
|
|
32
|
+
exports.SANCTIONED_COUNTRIES = SANCTIONED_COUNTRIES;
|
|
33
|
+
// ---------------------------------------------------------------------------
|
|
34
|
+
// Credential sanitization
|
|
35
|
+
// ---------------------------------------------------------------------------
|
|
36
|
+
/**
|
|
37
|
+
* Redact DomiNode API keys from error messages to prevent credential leakage.
|
|
38
|
+
*/
|
|
39
|
+
function sanitizeError(message) {
|
|
40
|
+
return message.replace(CREDENTIAL_RE, "***");
|
|
41
|
+
}
|
|
42
|
+
// ---------------------------------------------------------------------------
|
|
43
|
+
// Prototype pollution prevention
|
|
44
|
+
// ---------------------------------------------------------------------------
|
|
45
|
+
/**
|
|
46
|
+
* Recursively remove __proto__, constructor, and prototype keys from an object.
|
|
47
|
+
* Prevents prototype pollution when parsing untrusted JSON.
|
|
48
|
+
*/
|
|
49
|
+
function stripDangerousKeys(obj, depth = 0) {
|
|
50
|
+
if (depth > 50 || !obj || typeof obj !== "object")
|
|
51
|
+
return;
|
|
52
|
+
if (Array.isArray(obj)) {
|
|
53
|
+
for (const item of obj)
|
|
54
|
+
stripDangerousKeys(item, depth + 1);
|
|
55
|
+
return;
|
|
56
|
+
}
|
|
57
|
+
const record = obj;
|
|
58
|
+
for (const key of Object.keys(record)) {
|
|
59
|
+
if (DANGEROUS_KEYS.has(key)) {
|
|
60
|
+
delete record[key];
|
|
61
|
+
}
|
|
62
|
+
else if (record[key] && typeof record[key] === "object") {
|
|
63
|
+
stripDangerousKeys(record[key], depth + 1);
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Parse JSON safely, stripping prototype pollution vectors.
|
|
69
|
+
*/
|
|
70
|
+
function safeJsonParse(text) {
|
|
71
|
+
const parsed = JSON.parse(text);
|
|
72
|
+
stripDangerousKeys(parsed);
|
|
73
|
+
return parsed;
|
|
74
|
+
}
|
|
75
|
+
// ---------------------------------------------------------------------------
|
|
76
|
+
// DNS rebinding protection
|
|
77
|
+
// ---------------------------------------------------------------------------
|
|
78
|
+
/**
|
|
79
|
+
* Resolve a hostname and verify none of the resolved IPs are private.
|
|
80
|
+
* Prevents DNS rebinding attacks where a hostname initially resolves to a
|
|
81
|
+
* public IP during validation but later resolves to a private IP.
|
|
82
|
+
*/
|
|
83
|
+
async function checkDnsRebinding(hostname) {
|
|
84
|
+
// Skip if hostname is already an IP literal
|
|
85
|
+
if (/^\d+\.\d+\.\d+\.\d+$/.test(hostname) || hostname.startsWith("[")) {
|
|
86
|
+
return;
|
|
87
|
+
}
|
|
88
|
+
// Check IPv4 addresses
|
|
89
|
+
try {
|
|
90
|
+
const addresses = await promises_1.default.resolve4(hostname);
|
|
91
|
+
for (const addr of addresses) {
|
|
92
|
+
if ((0, ssrf_1.isPrivateIp)(addr)) {
|
|
93
|
+
throw new Error(`Hostname resolves to private IP ${addr}`);
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
catch (err) {
|
|
98
|
+
if (err.code === "ENOTFOUND") {
|
|
99
|
+
throw new Error(`Could not resolve hostname: ${hostname}`);
|
|
100
|
+
}
|
|
101
|
+
if (err instanceof Error && err.message.includes("private IP"))
|
|
102
|
+
throw err;
|
|
103
|
+
}
|
|
104
|
+
// Check IPv6 addresses
|
|
105
|
+
try {
|
|
106
|
+
const addresses = await promises_1.default.resolve6(hostname);
|
|
107
|
+
for (const addr of addresses) {
|
|
108
|
+
if ((0, ssrf_1.isPrivateIp)(addr)) {
|
|
109
|
+
throw new Error(`Hostname resolves to private IPv6 ${addr}`);
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
catch (err) {
|
|
114
|
+
// Re-throw if we detected a private IPv6 address
|
|
115
|
+
if (err instanceof Error && err.message.includes("private IPv6"))
|
|
116
|
+
throw err;
|
|
117
|
+
// IPv6 resolution failure is acceptable
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
// ---------------------------------------------------------------------------
|
|
121
|
+
// Period to date range helper
|
|
122
|
+
// ---------------------------------------------------------------------------
|
|
123
|
+
/**
|
|
124
|
+
* Convert a human-readable period string to ISO date range.
|
|
125
|
+
* Backend expects since/until ISO dates, NOT a days integer.
|
|
126
|
+
*/
|
|
127
|
+
function periodToDateRange(period) {
|
|
128
|
+
const now = new Date();
|
|
129
|
+
const until = now.toISOString();
|
|
130
|
+
let since;
|
|
131
|
+
switch (period) {
|
|
132
|
+
case "day":
|
|
133
|
+
since = new Date(now.getTime() - 24 * 60 * 60 * 1000);
|
|
134
|
+
break;
|
|
135
|
+
case "week":
|
|
136
|
+
since = new Date(now.getTime() - 7 * 24 * 60 * 60 * 1000);
|
|
137
|
+
break;
|
|
138
|
+
case "month":
|
|
139
|
+
default:
|
|
140
|
+
since = new Date(now.getTime() - 30 * 24 * 60 * 60 * 1000);
|
|
141
|
+
break;
|
|
142
|
+
}
|
|
143
|
+
return { since: since.toISOString(), until };
|
|
144
|
+
}
|
|
145
|
+
// ---------------------------------------------------------------------------
|
|
146
|
+
// DominusNodeAuth — authenticated HTTP client
|
|
147
|
+
// ---------------------------------------------------------------------------
|
|
148
|
+
/**
|
|
149
|
+
* Authenticated HTTP client for the DomiNode REST API.
|
|
150
|
+
*
|
|
151
|
+
* Lazily authenticates on first request using the API key via the
|
|
152
|
+
* /api/auth/verify-key endpoint. Automatically retries on 401 (token expired).
|
|
153
|
+
*/
|
|
154
|
+
class DominusNodeAuth {
|
|
155
|
+
apiKey;
|
|
156
|
+
baseUrl;
|
|
157
|
+
timeoutMs;
|
|
158
|
+
token = null;
|
|
159
|
+
authPromise = null;
|
|
160
|
+
constructor(apiKey, baseUrl, timeoutMs = 30000) {
|
|
161
|
+
this.apiKey = apiKey;
|
|
162
|
+
this.baseUrl = baseUrl;
|
|
163
|
+
this.timeoutMs = timeoutMs;
|
|
164
|
+
if (!apiKey || typeof apiKey !== "string") {
|
|
165
|
+
throw new Error("apiKey is required and must be a non-empty string");
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
/**
|
|
169
|
+
* Ensure the client is authenticated. Lazily authenticates on first call.
|
|
170
|
+
* Concurrent calls share the same auth promise to avoid duplicate requests.
|
|
171
|
+
*/
|
|
172
|
+
async ensureAuth() {
|
|
173
|
+
if (this.token)
|
|
174
|
+
return;
|
|
175
|
+
if (!this.authPromise) {
|
|
176
|
+
this.authPromise = this.authenticate().finally(() => {
|
|
177
|
+
this.authPromise = null;
|
|
178
|
+
});
|
|
179
|
+
}
|
|
180
|
+
await this.authPromise;
|
|
181
|
+
}
|
|
182
|
+
/**
|
|
183
|
+
* Make an authenticated API request.
|
|
184
|
+
*
|
|
185
|
+
* @param method - HTTP method (GET, POST, PATCH, DELETE)
|
|
186
|
+
* @param path - API path (e.g., /api/wallet)
|
|
187
|
+
* @param body - Optional request body (will be JSON-serialized)
|
|
188
|
+
* @returns Parsed response body
|
|
189
|
+
* @throws {Error} On HTTP errors or response size violations
|
|
190
|
+
*/
|
|
191
|
+
async apiRequest(method, path, body) {
|
|
192
|
+
await this.ensureAuth();
|
|
193
|
+
if (!this.token)
|
|
194
|
+
throw new Error("Not authenticated");
|
|
195
|
+
const url = `${this.baseUrl}${path}`;
|
|
196
|
+
const headers = {
|
|
197
|
+
"User-Agent": "n8n-nodes-dominusnode/1.0.0",
|
|
198
|
+
"Content-Type": "application/json",
|
|
199
|
+
Authorization: `Bearer ${this.token}`,
|
|
200
|
+
};
|
|
201
|
+
const response = await fetch(url, {
|
|
202
|
+
method,
|
|
203
|
+
headers,
|
|
204
|
+
body: body !== undefined ? JSON.stringify(body) : undefined,
|
|
205
|
+
signal: AbortSignal.timeout(this.timeoutMs),
|
|
206
|
+
redirect: "error",
|
|
207
|
+
});
|
|
208
|
+
const contentLength = parseInt(response.headers.get("content-length") ?? "0", 10);
|
|
209
|
+
if (contentLength > MAX_RESPONSE_BYTES) {
|
|
210
|
+
throw new Error("Response body too large");
|
|
211
|
+
}
|
|
212
|
+
const responseText = await response.text();
|
|
213
|
+
if (responseText.length > MAX_RESPONSE_BYTES) {
|
|
214
|
+
throw new Error("Response body exceeds size limit");
|
|
215
|
+
}
|
|
216
|
+
if (!response.ok) {
|
|
217
|
+
// On 401, clear token so ensureAuth will re-authenticate
|
|
218
|
+
if (response.status === 401) {
|
|
219
|
+
this.token = null;
|
|
220
|
+
}
|
|
221
|
+
let message;
|
|
222
|
+
try {
|
|
223
|
+
const parsed = JSON.parse(responseText);
|
|
224
|
+
message = parsed.error ?? parsed.message ?? responseText;
|
|
225
|
+
}
|
|
226
|
+
catch {
|
|
227
|
+
message = responseText;
|
|
228
|
+
}
|
|
229
|
+
if (message.length > 500)
|
|
230
|
+
message = message.slice(0, 500) + "... [truncated]";
|
|
231
|
+
throw new Error(`API error ${response.status}: ${sanitizeError(message)}`);
|
|
232
|
+
}
|
|
233
|
+
return responseText ? safeJsonParse(responseText) : {};
|
|
234
|
+
}
|
|
235
|
+
/**
|
|
236
|
+
* Clear auth token, forcing re-authentication on next request.
|
|
237
|
+
*/
|
|
238
|
+
clearToken() {
|
|
239
|
+
this.token = null;
|
|
240
|
+
}
|
|
241
|
+
async authenticate() {
|
|
242
|
+
const response = await fetch(`${this.baseUrl}/api/auth/verify-key`, {
|
|
243
|
+
method: "POST",
|
|
244
|
+
headers: {
|
|
245
|
+
"User-Agent": "n8n-nodes-dominusnode/1.0.0",
|
|
246
|
+
"Content-Type": "application/json",
|
|
247
|
+
},
|
|
248
|
+
body: JSON.stringify({ apiKey: this.apiKey }),
|
|
249
|
+
signal: AbortSignal.timeout(this.timeoutMs),
|
|
250
|
+
redirect: "error",
|
|
251
|
+
});
|
|
252
|
+
if (!response.ok) {
|
|
253
|
+
const text = await response.text();
|
|
254
|
+
throw new Error(`Authentication failed (${response.status}): ${sanitizeError(text.slice(0, 500))}`);
|
|
255
|
+
}
|
|
256
|
+
const data = safeJsonParse(await response.text());
|
|
257
|
+
if (!data.token) {
|
|
258
|
+
throw new Error("Authentication response missing token");
|
|
259
|
+
}
|
|
260
|
+
this.token = data.token;
|
|
261
|
+
}
|
|
262
|
+
}
|
|
263
|
+
exports.DominusNodeAuth = DominusNodeAuth;
|
|
264
|
+
//# sourceMappingURL=auth.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/shared/auth.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Constants shared across all DomiNode n8n nodes.
|
|
3
|
+
*
|
|
4
|
+
* @module
|
|
5
|
+
*/
|
|
6
|
+
/** HTTP methods allowed for proxied fetch (read-only to prevent abuse). */
|
|
7
|
+
export declare const ALLOWED_METHODS: Set<string>;
|
|
8
|
+
/** Maximum response body length returned to n8n workflows. */
|
|
9
|
+
export declare const MAX_BODY_TRUNCATE = 4000;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Constants shared across all DomiNode n8n nodes.
|
|
4
|
+
*
|
|
5
|
+
* @module
|
|
6
|
+
*/
|
|
7
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8
|
+
exports.MAX_BODY_TRUNCATE = exports.ALLOWED_METHODS = void 0;
|
|
9
|
+
/** HTTP methods allowed for proxied fetch (read-only to prevent abuse). */
|
|
10
|
+
exports.ALLOWED_METHODS = new Set(["GET", "HEAD", "OPTIONS"]);
|
|
11
|
+
/** Maximum response body length returned to n8n workflows. */
|
|
12
|
+
exports.MAX_BODY_TRUNCATE = 4000;
|
|
13
|
+
//# sourceMappingURL=constants.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/shared/constants.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;AAEH,2EAA2E;AAC9D,QAAA,eAAe,GAAG,IAAI,GAAG,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC;AAEnE,8DAA8D;AACjD,QAAA,iBAAiB,GAAG,IAAI,CAAC"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SSRF prevention utilities for the DomiNode n8n integration.
|
|
3
|
+
*
|
|
4
|
+
* Blocks private IPs, localhost, internal hostnames, embedded credentials,
|
|
5
|
+
* hex/octal/decimal-encoded IPs, IPv4-mapped IPv6, IPv4-compatible IPv6,
|
|
6
|
+
* Teredo (2001:0000::/32), 6to4 (2002::/16), CGNAT, multicast, .localhost,
|
|
7
|
+
* .local, .internal, .arpa TLDs, and IPv6 zone IDs.
|
|
8
|
+
*
|
|
9
|
+
* @module
|
|
10
|
+
*/
|
|
11
|
+
/**
|
|
12
|
+
* Normalize non-standard IPv4 representations to standard dotted-decimal.
|
|
13
|
+
* Handles decimal integers (2130706433), hex (0x7f000001), and octal (0177.0.0.1).
|
|
14
|
+
*
|
|
15
|
+
* @returns Normalized dotted-decimal string or null if not a recognizable IP.
|
|
16
|
+
*/
|
|
17
|
+
export declare function normalizeIpv4(hostname: string): string | null;
|
|
18
|
+
/**
|
|
19
|
+
* Check whether a hostname/IP is a private, loopback, link-local, CGNAT,
|
|
20
|
+
* multicast, or other reserved address.
|
|
21
|
+
*
|
|
22
|
+
* Handles:
|
|
23
|
+
* - Standard IPv4 private ranges (10/8, 172.16/12, 192.168/16, 127/8, 0/8)
|
|
24
|
+
* - CGNAT (100.64/10)
|
|
25
|
+
* - Multicast (224/4) and reserved (240+)
|
|
26
|
+
* - Link-local (169.254/16)
|
|
27
|
+
* - IPv6 loopback (::1), unspecified (::), ULA (fc00::/7), link-local (fe80::/10)
|
|
28
|
+
* - IPv4-mapped IPv6 (::ffff:x.x.x.x), IPv4-compatible IPv6 (::x.x.x.x)
|
|
29
|
+
* - Teredo tunneling (2001:0000::/32) — embeds IPv4 in last 32 bits
|
|
30
|
+
* - 6to4 (2002::/16) — embeds IPv4 in bits 16-48
|
|
31
|
+
* - Bracketed IPv6 ([::1])
|
|
32
|
+
* - IPv6 zone IDs (%eth0)
|
|
33
|
+
*/
|
|
34
|
+
export declare function isPrivateIp(hostname: string): boolean;
|
|
35
|
+
/**
|
|
36
|
+
* Validate a URL for safety before sending through the proxy.
|
|
37
|
+
* Blocks private IPs, localhost, internal hostnames, non-HTTP(S) protocols,
|
|
38
|
+
* and embedded credentials.
|
|
39
|
+
*
|
|
40
|
+
* @throws {Error} If the URL is invalid or targets a private/blocked address.
|
|
41
|
+
*/
|
|
42
|
+
export declare function validateUrl(url: string): URL;
|