@j0hanz/fetch-url-mcp 1.3.0 → 1.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/README.md +24 -21
- package/dist/cli.d.ts +1 -0
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +18 -12
- package/dist/cli.js.map +1 -1
- package/dist/http/auth.d.ts +15 -1
- package/dist/http/auth.d.ts.map +1 -1
- package/dist/http/auth.js +84 -17
- package/dist/http/auth.js.map +1 -1
- package/dist/http/health.d.ts +1 -1
- package/dist/http/health.d.ts.map +1 -1
- package/dist/http/health.js +5 -15
- package/dist/http/health.js.map +1 -1
- package/dist/http/helpers.d.ts +1 -8
- package/dist/http/helpers.d.ts.map +1 -1
- package/dist/http/helpers.js +13 -13
- package/dist/http/helpers.js.map +1 -1
- package/dist/http/native.d.ts.map +1 -1
- package/dist/http/native.js +126 -23
- package/dist/http/native.js.map +1 -1
- package/dist/http/rate-limit.d.ts +2 -1
- package/dist/http/rate-limit.d.ts.map +1 -1
- package/dist/http/rate-limit.js +33 -26
- package/dist/http/rate-limit.js.map +1 -1
- package/dist/index.js +22 -19
- package/dist/index.js.map +1 -1
- package/dist/lib/cache.d.ts.map +1 -0
- package/dist/{cache.js → lib/cache.js} +15 -11
- package/dist/lib/cache.js.map +1 -0
- package/dist/{config.d.ts → lib/config.d.ts} +2 -0
- package/dist/lib/config.d.ts.map +1 -0
- package/dist/{config.js → lib/config.js} +4 -2
- package/dist/lib/config.js.map +1 -0
- package/dist/lib/crypto.d.ts.map +1 -0
- package/dist/{crypto.js → lib/crypto.js} +6 -3
- package/dist/lib/crypto.js.map +1 -0
- package/dist/lib/dom-noise-removal.d.ts.map +1 -0
- package/dist/{dom-noise-removal.js → lib/dom-noise-removal.js} +1 -2
- package/dist/lib/dom-noise-removal.js.map +1 -0
- package/dist/lib/download.d.ts.map +1 -0
- package/dist/{download.js → lib/download.js} +7 -7
- package/dist/lib/download.js.map +1 -0
- package/dist/{errors.d.ts → lib/errors.d.ts} +3 -0
- package/dist/lib/errors.d.ts.map +1 -0
- package/dist/{errors.js → lib/errors.js} +8 -1
- package/dist/lib/errors.js.map +1 -0
- package/dist/lib/fetch-content.d.ts.map +1 -0
- package/dist/{fetch-content.js → lib/fetch-content.js} +3 -2
- package/dist/lib/fetch-content.js.map +1 -0
- package/dist/lib/fetch-stream.d.ts.map +1 -0
- package/dist/{fetch-stream.js → lib/fetch-stream.js} +3 -5
- package/dist/lib/fetch-stream.js.map +1 -0
- package/dist/lib/fetch.d.ts.map +1 -0
- package/dist/{fetch.js → lib/fetch.js} +100 -145
- package/dist/lib/fetch.js.map +1 -0
- package/dist/lib/host-normalization.d.ts.map +1 -0
- package/dist/{host-normalization.js → lib/host-normalization.js} +9 -9
- package/dist/lib/host-normalization.js.map +1 -0
- package/dist/lib/ip-blocklist.d.ts.map +1 -0
- package/dist/{ip-blocklist.js → lib/ip-blocklist.js} +11 -8
- package/dist/lib/ip-blocklist.js.map +1 -0
- package/dist/lib/json.d.ts.map +1 -0
- package/dist/{json.js → lib/json.js} +2 -5
- package/dist/lib/json.js.map +1 -0
- package/dist/lib/language-detection.d.ts.map +1 -0
- package/dist/{language-detection.js → lib/language-detection.js} +1 -7
- package/dist/lib/language-detection.js.map +1 -0
- package/dist/{markdown-cleanup.d.ts → lib/markdown-cleanup.d.ts} +1 -1
- package/dist/lib/markdown-cleanup.d.ts.map +1 -0
- package/dist/{markdown-cleanup.js → lib/markdown-cleanup.js} +2 -5
- package/dist/lib/markdown-cleanup.js.map +1 -0
- package/dist/lib/mcp-lifecycle.d.ts +5 -0
- package/dist/lib/mcp-lifecycle.d.ts.map +1 -0
- package/dist/lib/mcp-lifecycle.js +51 -0
- package/dist/lib/mcp-lifecycle.js.map +1 -0
- package/dist/lib/mcp-validator.d.ts.map +1 -0
- package/dist/{mcp-validator.js → lib/mcp-validator.js} +6 -12
- package/dist/lib/mcp-validator.js.map +1 -0
- package/dist/{mcp.d.ts → lib/mcp.d.ts} +1 -1
- package/dist/lib/mcp.d.ts.map +1 -0
- package/dist/{mcp.js → lib/mcp.js} +64 -37
- package/dist/lib/mcp.js.map +1 -0
- package/dist/lib/observability.d.ts.map +1 -0
- package/dist/{observability.js → lib/observability.js} +2 -1
- package/dist/lib/observability.js.map +1 -0
- package/dist/lib/server-tuning.d.ts.map +1 -0
- package/dist/{server-tuning.js → lib/server-tuning.js} +3 -2
- package/dist/lib/server-tuning.js.map +1 -0
- package/dist/{session.d.ts → lib/session.d.ts} +5 -1
- package/dist/lib/session.d.ts.map +1 -0
- package/dist/{session.js → lib/session.js} +46 -36
- package/dist/lib/session.js.map +1 -0
- package/dist/lib/timer-utils.d.ts +13 -0
- package/dist/lib/timer-utils.d.ts.map +1 -0
- package/dist/lib/timer-utils.js +44 -0
- package/dist/lib/timer-utils.js.map +1 -0
- package/dist/lib/tool-errors.d.ts.map +1 -0
- package/dist/{tool-errors.js → lib/tool-errors.js} +8 -5
- package/dist/lib/tool-errors.js.map +1 -0
- package/dist/{tool-pipeline.d.ts → lib/tool-pipeline.d.ts} +1 -2
- package/dist/lib/tool-pipeline.d.ts.map +1 -0
- package/dist/{tool-pipeline.js → lib/tool-pipeline.js} +11 -27
- package/dist/lib/tool-pipeline.js.map +1 -0
- package/dist/{tool-progress.d.ts → lib/tool-progress.d.ts} +1 -2
- package/dist/lib/tool-progress.d.ts.map +1 -0
- package/dist/{tool-progress.js → lib/tool-progress.js} +27 -21
- package/dist/lib/tool-progress.js.map +1 -0
- package/dist/lib/type-guards.d.ts.map +1 -0
- package/dist/{type-guards.js → lib/type-guards.js} +3 -4
- package/dist/lib/type-guards.js.map +1 -0
- package/dist/{prompts.d.ts → prompts/index.d.ts} +1 -1
- package/dist/prompts/index.d.ts.map +1 -0
- package/dist/{prompts.js → prompts/index.js} +13 -13
- package/dist/prompts/index.js.map +1 -0
- package/dist/{resources.d.ts → resources/index.d.ts} +1 -1
- package/dist/resources/index.d.ts.map +1 -0
- package/dist/{resources.js → resources/index.js} +30 -34
- package/dist/resources/index.js.map +1 -0
- package/dist/resources/instructions.d.ts.map +1 -0
- package/dist/resources/instructions.js +43 -0
- package/dist/resources/instructions.js.map +1 -0
- package/dist/schemas/inputs.d.ts +8 -0
- package/dist/schemas/inputs.d.ts.map +1 -0
- package/dist/schemas/inputs.js +25 -0
- package/dist/schemas/inputs.js.map +1 -0
- package/dist/schemas/outputs.d.ts +24 -0
- package/dist/schemas/outputs.d.ts.map +1 -0
- package/dist/schemas/outputs.js +78 -0
- package/dist/schemas/outputs.js.map +1 -0
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +31 -26
- package/dist/server.js.map +1 -1
- package/dist/tasks/execution.d.ts.map +1 -1
- package/dist/tasks/execution.js +105 -63
- package/dist/tasks/execution.js.map +1 -1
- package/dist/tasks/manager.d.ts +10 -0
- package/dist/tasks/manager.d.ts.map +1 -1
- package/dist/tasks/manager.js +62 -54
- package/dist/tasks/manager.js.map +1 -1
- package/dist/tasks/owner.d.ts +4 -4
- package/dist/tasks/owner.d.ts.map +1 -1
- package/dist/tasks/owner.js +9 -15
- package/dist/tasks/owner.js.map +1 -1
- package/dist/tasks/tool-registry.d.ts +12 -0
- package/dist/tasks/tool-registry.d.ts.map +1 -0
- package/dist/tasks/tool-registry.js +14 -0
- package/dist/tasks/tool-registry.js.map +1 -0
- package/dist/tools/fetch-url.d.ts +29 -0
- package/dist/tools/fetch-url.d.ts.map +1 -0
- package/dist/{tools.js → tools/fetch-url.js} +120 -167
- package/dist/tools/fetch-url.js.map +1 -0
- package/dist/tools/index.d.ts +3 -0
- package/dist/tools/index.d.ts.map +1 -0
- package/dist/tools/index.js +5 -0
- package/dist/tools/index.js.map +1 -0
- package/dist/transform/transform.d.ts.map +1 -1
- package/dist/transform/transform.js +164 -176
- package/dist/transform/transform.js.map +1 -1
- package/dist/transform/worker-pool.d.ts.map +1 -1
- package/dist/transform/worker-pool.js +9 -11
- package/dist/transform/worker-pool.js.map +1 -1
- package/dist/transform/workers/shared.d.ts +8 -0
- package/dist/transform/workers/shared.d.ts.map +1 -0
- package/dist/transform/workers/shared.js +131 -0
- package/dist/transform/workers/shared.js.map +1 -0
- package/dist/transform/workers/transform-child.js +5 -132
- package/dist/transform/workers/transform-child.js.map +1 -1
- package/dist/transform/workers/transform-worker.js +7 -125
- package/dist/transform/workers/transform-worker.js.map +1 -1
- package/package.json +8 -7
- package/dist/cache.d.ts.map +0 -1
- package/dist/cache.js.map +0 -1
- package/dist/config.d.ts.map +0 -1
- package/dist/config.js.map +0 -1
- package/dist/crypto.d.ts.map +0 -1
- package/dist/crypto.js.map +0 -1
- package/dist/dom-noise-removal.d.ts.map +0 -1
- package/dist/dom-noise-removal.js.map +0 -1
- package/dist/download.d.ts.map +0 -1
- package/dist/download.js.map +0 -1
- package/dist/errors.d.ts.map +0 -1
- package/dist/errors.js.map +0 -1
- package/dist/examples/mcp-fetch-url-client.js +0 -329
- package/dist/examples/mcp-fetch-url-client.js.map +0 -1
- package/dist/fetch-content.d.ts.map +0 -1
- package/dist/fetch-content.js.map +0 -1
- package/dist/fetch-stream.d.ts.map +0 -1
- package/dist/fetch-stream.js.map +0 -1
- package/dist/fetch.d.ts.map +0 -1
- package/dist/fetch.js.map +0 -1
- package/dist/host-normalization.d.ts.map +0 -1
- package/dist/host-normalization.js.map +0 -1
- package/dist/instructions.d.ts.map +0 -1
- package/dist/instructions.js +0 -108
- package/dist/instructions.js.map +0 -1
- package/dist/ip-blocklist.d.ts.map +0 -1
- package/dist/ip-blocklist.js.map +0 -1
- package/dist/json.d.ts.map +0 -1
- package/dist/json.js.map +0 -1
- package/dist/language-detection.d.ts.map +0 -1
- package/dist/language-detection.js.map +0 -1
- package/dist/markdown-cleanup.d.ts.map +0 -1
- package/dist/markdown-cleanup.js.map +0 -1
- package/dist/mcp-validator.d.ts.map +0 -1
- package/dist/mcp-validator.js.map +0 -1
- package/dist/mcp.d.ts.map +0 -1
- package/dist/mcp.js.map +0 -1
- package/dist/observability.d.ts.map +0 -1
- package/dist/observability.js.map +0 -1
- package/dist/prompts.d.ts.map +0 -1
- package/dist/prompts.js.map +0 -1
- package/dist/resources.d.ts.map +0 -1
- package/dist/resources.js.map +0 -1
- package/dist/server-tuning.d.ts.map +0 -1
- package/dist/server-tuning.js.map +0 -1
- package/dist/session.d.ts.map +0 -1
- package/dist/session.js.map +0 -1
- package/dist/timer-utils.d.ts +0 -6
- package/dist/timer-utils.d.ts.map +0 -1
- package/dist/timer-utils.js +0 -30
- package/dist/timer-utils.js.map +0 -1
- package/dist/tool-errors.d.ts.map +0 -1
- package/dist/tool-errors.js.map +0 -1
- package/dist/tool-pipeline.d.ts.map +0 -1
- package/dist/tool-pipeline.js.map +0 -1
- package/dist/tool-progress.d.ts.map +0 -1
- package/dist/tool-progress.js.map +0 -1
- package/dist/tools.d.ts +0 -54
- package/dist/tools.d.ts.map +0 -1
- package/dist/tools.js.map +0 -1
- package/dist/type-guards.d.ts.map +0 -1
- package/dist/type-guards.js.map +0 -1
- /package/dist/{cache.d.ts → lib/cache.d.ts} +0 -0
- /package/dist/{crypto.d.ts → lib/crypto.d.ts} +0 -0
- /package/dist/{dom-noise-removal.d.ts → lib/dom-noise-removal.d.ts} +0 -0
- /package/dist/{download.d.ts → lib/download.d.ts} +0 -0
- /package/dist/{fetch-content.d.ts → lib/fetch-content.d.ts} +0 -0
- /package/dist/{fetch-stream.d.ts → lib/fetch-stream.d.ts} +0 -0
- /package/dist/{fetch.d.ts → lib/fetch.d.ts} +0 -0
- /package/dist/{host-normalization.d.ts → lib/host-normalization.d.ts} +0 -0
- /package/dist/{ip-blocklist.d.ts → lib/ip-blocklist.d.ts} +0 -0
- /package/dist/{json.d.ts → lib/json.d.ts} +0 -0
- /package/dist/{language-detection.d.ts → lib/language-detection.d.ts} +0 -0
- /package/dist/{mcp-validator.d.ts → lib/mcp-validator.d.ts} +0 -0
- /package/dist/{observability.d.ts → lib/observability.d.ts} +0 -0
- /package/dist/{server-tuning.d.ts → lib/server-tuning.d.ts} +0 -0
- /package/dist/{tool-errors.d.ts → lib/tool-errors.d.ts} +0 -0
- /package/dist/{type-guards.d.ts → lib/type-guards.d.ts} +0 -0
- /package/dist/{instructions.d.ts → resources/instructions.d.ts} +0 -0
|
@@ -7,10 +7,11 @@ import { performance } from 'node:perf_hooks';
|
|
|
7
7
|
import { PassThrough, Readable, Transform } from 'node:stream';
|
|
8
8
|
import { buffer as consumeBuffer } from 'node:stream/consumers';
|
|
9
9
|
import { finished, pipeline } from 'node:stream/promises';
|
|
10
|
+
import tls from 'node:tls';
|
|
10
11
|
import { createBrotliDecompress, createGunzip, createInflate } from 'node:zlib';
|
|
11
12
|
import { Agent } from 'undici';
|
|
12
13
|
import { config } from './config.js';
|
|
13
|
-
import { createErrorWithCode, FetchError, isSystemError } from './errors.js';
|
|
14
|
+
import { createErrorWithCode, FetchError, isSystemError, toError, } from './errors.js';
|
|
14
15
|
import { decodeBuffer, getCharsetFromContentType, isBinaryContent, resolveEncoding, } from './fetch-content.js';
|
|
15
16
|
import { toNodeReadableStream, toWebReadableStream } from './fetch-stream.js';
|
|
16
17
|
import { createDefaultBlockList, normalizeIpForBlockList, } from './ip-blocklist.js';
|
|
@@ -49,9 +50,9 @@ class IpBlocker {
|
|
|
49
50
|
if (this.security.blockedHosts.has(normalized))
|
|
50
51
|
return true;
|
|
51
52
|
const normalizedIp = normalizeIpForBlockList(normalized);
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
53
|
+
return normalizedIp
|
|
54
|
+
? this.blockList.check(normalizedIp.ip, normalizedIp.family)
|
|
55
|
+
: false;
|
|
55
56
|
}
|
|
56
57
|
}
|
|
57
58
|
const VALIDATION_ERROR_CODE = 'VALIDATION_ERROR';
|
|
@@ -127,35 +128,20 @@ class UrlNormalizer {
|
|
|
127
128
|
return hostname;
|
|
128
129
|
}
|
|
129
130
|
assertHostnameAllowed(hostname) {
|
|
130
|
-
this.assertNotBlockedHost(hostname);
|
|
131
|
-
this.assertNotBlockedIp(hostname);
|
|
132
|
-
this.assertNotBlockedHostnameSuffix(hostname);
|
|
133
|
-
}
|
|
134
|
-
assertNotBlockedHost(hostname) {
|
|
135
131
|
if (isCloudMetadataHost(hostname)) {
|
|
136
132
|
throw createValidationError(`Blocked host: ${hostname}. Cloud metadata endpoints are not allowed`);
|
|
137
133
|
}
|
|
138
|
-
if (isLocalFetchAllowed())
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
134
|
+
if (!isLocalFetchAllowed()) {
|
|
135
|
+
if (this.security.blockedHosts.has(hostname)) {
|
|
136
|
+
throw createValidationError(`Blocked host: ${hostname}. Internal hosts are not allowed`);
|
|
137
|
+
}
|
|
138
|
+
if (this.ipBlocker.isBlockedIp(hostname)) {
|
|
139
|
+
throw createValidationError(`Blocked IP range: ${hostname}. Private IPs are not allowed`);
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
if (this.blockedHostSuffixes.some((suffix) => hostname.endsWith(suffix))) {
|
|
143
|
+
throw createValidationError(`Blocked hostname pattern: ${hostname}. Internal domain suffixes are not allowed`);
|
|
147
144
|
}
|
|
148
|
-
if (isLocalFetchAllowed())
|
|
149
|
-
return;
|
|
150
|
-
if (!this.ipBlocker.isBlockedIp(hostname))
|
|
151
|
-
return;
|
|
152
|
-
throw createValidationError(`Blocked IP range: ${hostname}. Private IPs are not allowed`);
|
|
153
|
-
}
|
|
154
|
-
assertNotBlockedHostnameSuffix(hostname) {
|
|
155
|
-
const blocked = this.blockedHostSuffixes.some((suffix) => hostname.endsWith(suffix));
|
|
156
|
-
if (!blocked)
|
|
157
|
-
return;
|
|
158
|
-
throw createValidationError(`Blocked hostname pattern: ${hostname}. Internal domain suffixes are not allowed`);
|
|
159
145
|
}
|
|
160
146
|
}
|
|
161
147
|
function getPatternGroup(groups, key) {
|
|
@@ -563,43 +549,31 @@ function parseRetryAfter(header) {
|
|
|
563
549
|
return 0;
|
|
564
550
|
return Math.ceil(deltaMs / 1000);
|
|
565
551
|
}
|
|
566
|
-
function
|
|
567
|
-
|
|
568
|
-
|
|
569
|
-
|
|
570
|
-
|
|
571
|
-
|
|
572
|
-
|
|
573
|
-
|
|
574
|
-
|
|
575
|
-
}
|
|
576
|
-
|
|
577
|
-
|
|
578
|
-
|
|
579
|
-
|
|
580
|
-
|
|
581
|
-
|
|
582
|
-
|
|
583
|
-
|
|
584
|
-
|
|
585
|
-
|
|
586
|
-
|
|
587
|
-
|
|
588
|
-
|
|
589
|
-
|
|
590
|
-
|
|
591
|
-
return `Network error: Could not reach ${url}`;
|
|
592
|
-
}
|
|
593
|
-
function createNetworkFetchError(url, message) {
|
|
594
|
-
return new FetchError(buildNetworkErrorMessage(url), url, undefined, message ? { message } : {});
|
|
595
|
-
}
|
|
596
|
-
function createUnknownFetchError(url, message) {
|
|
597
|
-
return new FetchError(message, url);
|
|
598
|
-
}
|
|
599
|
-
function createAbortedFetchError(url) {
|
|
600
|
-
return new FetchError('Request was aborted during response read', url, 499, {
|
|
601
|
-
reason: 'aborted',
|
|
602
|
-
});
|
|
552
|
+
function createFetchError(input, url) {
|
|
553
|
+
switch (input.kind) {
|
|
554
|
+
case 'canceled':
|
|
555
|
+
return new FetchError('Request was canceled', url, 499, {
|
|
556
|
+
reason: 'aborted',
|
|
557
|
+
});
|
|
558
|
+
case 'aborted':
|
|
559
|
+
return new FetchError('Request was aborted during response read', url, 499, { reason: 'aborted' });
|
|
560
|
+
case 'timeout':
|
|
561
|
+
return new FetchError(`Request timeout after ${input.timeout}ms`, url, 504, { timeout: input.timeout });
|
|
562
|
+
case 'rate-limited':
|
|
563
|
+
return new FetchError('Too many requests', url, 429, {
|
|
564
|
+
retryAfter: parseRetryAfter(input.retryAfter),
|
|
565
|
+
});
|
|
566
|
+
case 'http':
|
|
567
|
+
return new FetchError(`HTTP ${input.status}: ${input.statusText}`, url, input.status);
|
|
568
|
+
case 'too-many-redirects':
|
|
569
|
+
return new FetchError('Too many redirects', url);
|
|
570
|
+
case 'missing-redirect-location':
|
|
571
|
+
return new FetchError('Redirect response missing Location header', url);
|
|
572
|
+
case 'network':
|
|
573
|
+
return new FetchError(`Network error: Could not reach ${url}`, url, undefined, { message: input.message });
|
|
574
|
+
case 'unknown':
|
|
575
|
+
return new FetchError(input.message ?? 'Unexpected error', url);
|
|
576
|
+
}
|
|
603
577
|
}
|
|
604
578
|
function isAbortError(error) {
|
|
605
579
|
return (isError(error) &&
|
|
@@ -622,15 +596,15 @@ function mapFetchError(error, fallbackUrl, timeoutMs) {
|
|
|
622
596
|
const url = resolveErrorUrl(error, fallbackUrl);
|
|
623
597
|
if (isAbortError(error)) {
|
|
624
598
|
return isTimeoutError(error)
|
|
625
|
-
?
|
|
626
|
-
:
|
|
599
|
+
? createFetchError({ kind: 'timeout', timeout: timeoutMs }, url)
|
|
600
|
+
: createFetchError({ kind: 'canceled' }, url);
|
|
627
601
|
}
|
|
628
602
|
if (!isError(error))
|
|
629
|
-
return
|
|
603
|
+
return createFetchError({ kind: 'unknown', message: 'Unexpected error' }, url);
|
|
630
604
|
if (!isSystemError(error)) {
|
|
631
605
|
const err = error;
|
|
632
606
|
const causeStr = err.cause instanceof Error ? err.cause.message : String(err.cause);
|
|
633
|
-
return
|
|
607
|
+
return createFetchError({ kind: 'network', message: `${err.message}. Cause: ${causeStr}` }, url);
|
|
634
608
|
}
|
|
635
609
|
const { code } = error;
|
|
636
610
|
if (code === 'ETIMEOUT') {
|
|
@@ -643,10 +617,7 @@ function mapFetchError(error, fallbackUrl, timeoutMs) {
|
|
|
643
617
|
code === 'EINVAL') {
|
|
644
618
|
return new FetchError(error.message, url, 400, { code });
|
|
645
619
|
}
|
|
646
|
-
return
|
|
647
|
-
code,
|
|
648
|
-
message: error.message,
|
|
649
|
-
});
|
|
620
|
+
return createFetchError({ kind: 'network', message: error.message }, url);
|
|
650
621
|
}
|
|
651
622
|
const fetchChannel = diagnosticsChannel.channel('fetch-url-mcp.fetch');
|
|
652
623
|
const SLOW_REQUEST_THRESHOLD_MS = 5000;
|
|
@@ -662,6 +633,14 @@ class FetchTelemetry {
|
|
|
662
633
|
redact(url) {
|
|
663
634
|
return this.redactor.redact(url);
|
|
664
635
|
}
|
|
636
|
+
contextFields(ctx) {
|
|
637
|
+
return {
|
|
638
|
+
...(ctx.contextRequestId
|
|
639
|
+
? { contextRequestId: ctx.contextRequestId }
|
|
640
|
+
: {}),
|
|
641
|
+
...(ctx.operationId ? { operationId: ctx.operationId } : {}),
|
|
642
|
+
};
|
|
643
|
+
}
|
|
665
644
|
start(url, method) {
|
|
666
645
|
const safeUrl = this.redactor.redact(url);
|
|
667
646
|
const contextRequestId = this.context.getRequestId();
|
|
@@ -676,109 +655,81 @@ class FetchTelemetry {
|
|
|
676
655
|
ctx.contextRequestId = contextRequestId;
|
|
677
656
|
if (operationId)
|
|
678
657
|
ctx.operationId = operationId;
|
|
679
|
-
const
|
|
658
|
+
const ctxFields = this.contextFields(ctx);
|
|
659
|
+
this.publish({
|
|
680
660
|
v: 1,
|
|
681
661
|
type: 'start',
|
|
682
662
|
requestId: ctx.requestId,
|
|
683
663
|
method: ctx.method,
|
|
684
664
|
url: ctx.url,
|
|
685
|
-
|
|
686
|
-
|
|
687
|
-
|
|
688
|
-
if (ctx.operationId)
|
|
689
|
-
event.operationId = ctx.operationId;
|
|
690
|
-
this.publish(event);
|
|
691
|
-
const logData = {
|
|
665
|
+
...ctxFields,
|
|
666
|
+
});
|
|
667
|
+
this.logger.debug('HTTP Request', {
|
|
692
668
|
requestId: ctx.requestId,
|
|
693
669
|
method: ctx.method,
|
|
694
670
|
url: ctx.url,
|
|
695
|
-
|
|
696
|
-
|
|
697
|
-
logData['contextRequestId'] = ctx.contextRequestId;
|
|
698
|
-
if (ctx.operationId)
|
|
699
|
-
logData['operationId'] = ctx.operationId;
|
|
700
|
-
this.logger.debug('HTTP Request', logData);
|
|
671
|
+
...ctxFields,
|
|
672
|
+
});
|
|
701
673
|
return ctx;
|
|
702
674
|
}
|
|
703
675
|
recordResponse(context, response, contentSize) {
|
|
704
676
|
const duration = performance.now() - context.startTime;
|
|
705
677
|
const durationLabel = `${Math.round(duration)}ms`;
|
|
706
|
-
const
|
|
678
|
+
const ctxFields = this.contextFields(context);
|
|
679
|
+
this.publish({
|
|
707
680
|
v: 1,
|
|
708
681
|
type: 'end',
|
|
709
682
|
requestId: context.requestId,
|
|
710
683
|
status: response.status,
|
|
711
684
|
duration,
|
|
712
|
-
|
|
713
|
-
|
|
714
|
-
event.contextRequestId = context.contextRequestId;
|
|
715
|
-
if (context.operationId)
|
|
716
|
-
event.operationId = context.operationId;
|
|
717
|
-
this.publish(event);
|
|
685
|
+
...ctxFields,
|
|
686
|
+
});
|
|
718
687
|
const contentType = response.headers.get('content-type') ?? undefined;
|
|
719
688
|
const contentLengthHeader = response.headers.get('content-length');
|
|
720
689
|
const size = contentLengthHeader ??
|
|
721
690
|
(contentSize === undefined ? undefined : String(contentSize));
|
|
722
|
-
|
|
691
|
+
this.logger.debug('HTTP Response', {
|
|
723
692
|
requestId: context.requestId,
|
|
724
693
|
status: response.status,
|
|
725
694
|
url: context.url,
|
|
726
695
|
duration: durationLabel,
|
|
727
|
-
|
|
728
|
-
|
|
729
|
-
|
|
730
|
-
|
|
731
|
-
logData['operationId'] = context.operationId;
|
|
732
|
-
if (contentType)
|
|
733
|
-
logData['contentType'] = contentType;
|
|
734
|
-
if (size)
|
|
735
|
-
logData['size'] = size;
|
|
736
|
-
this.logger.debug('HTTP Response', logData);
|
|
696
|
+
...ctxFields,
|
|
697
|
+
...(contentType ? { contentType } : {}),
|
|
698
|
+
...(size ? { size } : {}),
|
|
699
|
+
});
|
|
737
700
|
if (duration > SLOW_REQUEST_THRESHOLD_MS) {
|
|
738
|
-
|
|
701
|
+
this.logger.warn('Slow HTTP request detected', {
|
|
739
702
|
requestId: context.requestId,
|
|
740
703
|
url: context.url,
|
|
741
704
|
duration: durationLabel,
|
|
742
|
-
|
|
743
|
-
|
|
744
|
-
warnData['contextRequestId'] = context.contextRequestId;
|
|
745
|
-
if (context.operationId)
|
|
746
|
-
warnData['operationId'] = context.operationId;
|
|
747
|
-
this.logger.warn('Slow HTTP request detected', warnData);
|
|
705
|
+
...ctxFields,
|
|
706
|
+
});
|
|
748
707
|
}
|
|
749
708
|
}
|
|
750
709
|
recordError(context, error, status) {
|
|
751
710
|
const duration = performance.now() - context.startTime;
|
|
752
|
-
const err =
|
|
711
|
+
const err = toError(error);
|
|
753
712
|
const code = isSystemError(err) ? err.code : undefined;
|
|
754
|
-
const
|
|
713
|
+
const ctxFields = this.contextFields(context);
|
|
714
|
+
this.publish({
|
|
755
715
|
v: 1,
|
|
756
716
|
type: 'error',
|
|
757
717
|
requestId: context.requestId,
|
|
758
718
|
url: context.url,
|
|
759
719
|
error: err.message,
|
|
760
720
|
duration,
|
|
761
|
-
|
|
762
|
-
|
|
763
|
-
|
|
764
|
-
|
|
765
|
-
event.status = status;
|
|
766
|
-
if (context.contextRequestId)
|
|
767
|
-
event.contextRequestId = context.contextRequestId;
|
|
768
|
-
if (context.operationId)
|
|
769
|
-
event.operationId = context.operationId;
|
|
770
|
-
this.publish(event);
|
|
721
|
+
...(code !== undefined ? { code } : {}),
|
|
722
|
+
...(status !== undefined ? { status } : {}),
|
|
723
|
+
...ctxFields,
|
|
724
|
+
});
|
|
771
725
|
const logData = {
|
|
772
726
|
requestId: context.requestId,
|
|
773
727
|
url: context.url,
|
|
774
728
|
status,
|
|
775
729
|
code,
|
|
776
730
|
error: err.message,
|
|
731
|
+
...ctxFields,
|
|
777
732
|
};
|
|
778
|
-
if (context.contextRequestId)
|
|
779
|
-
logData['contextRequestId'] = context.contextRequestId;
|
|
780
|
-
if (context.operationId)
|
|
781
|
-
logData['operationId'] = context.operationId;
|
|
782
733
|
if (status === 429) {
|
|
783
734
|
this.logger.warn('HTTP Request Error', logData);
|
|
784
735
|
return;
|
|
@@ -835,7 +786,7 @@ class RedirectFollower {
|
|
|
835
786
|
return { response, url: currentUrl };
|
|
836
787
|
currentUrl = nextUrl;
|
|
837
788
|
}
|
|
838
|
-
throw
|
|
789
|
+
throw createFetchError({ kind: 'too-many-redirects' }, currentUrl);
|
|
839
790
|
}
|
|
840
791
|
async performFetchCycle(currentUrl, init, redirectLimit, redirectCount, ipAddress) {
|
|
841
792
|
const fetchInit = {
|
|
@@ -843,6 +794,7 @@ class RedirectFollower {
|
|
|
843
794
|
redirect: 'manual',
|
|
844
795
|
};
|
|
845
796
|
if (ipAddress) {
|
|
797
|
+
const ca = tls.rootCertificates.length > 0 ? tls.rootCertificates : undefined;
|
|
846
798
|
const agent = new Agent({
|
|
847
799
|
connect: {
|
|
848
800
|
lookup: (hostname, options, callback) => {
|
|
@@ -854,6 +806,8 @@ class RedirectFollower {
|
|
|
854
806
|
callback(null, ipAddress, family);
|
|
855
807
|
}
|
|
856
808
|
},
|
|
809
|
+
timeout: config.fetcher.timeout,
|
|
810
|
+
...(ca ? { ca } : {}),
|
|
857
811
|
},
|
|
858
812
|
pipelining: 1,
|
|
859
813
|
connections: 1,
|
|
@@ -865,7 +819,10 @@ class RedirectFollower {
|
|
|
865
819
|
const response = await this.fetchFn(currentUrl, fetchInit);
|
|
866
820
|
if (!isRedirectStatus(response.status))
|
|
867
821
|
return { response };
|
|
868
|
-
|
|
822
|
+
if (redirectCount >= redirectLimit) {
|
|
823
|
+
cancelResponseBody(response);
|
|
824
|
+
throw createFetchError({ kind: 'too-many-redirects' }, currentUrl);
|
|
825
|
+
}
|
|
869
826
|
const location = this.getRedirectLocation(response, currentUrl);
|
|
870
827
|
cancelResponseBody(response);
|
|
871
828
|
const nextUrl = this.resolveRedirectTarget(currentUrl, location);
|
|
@@ -879,18 +836,12 @@ class RedirectFollower {
|
|
|
879
836
|
nextUrl,
|
|
880
837
|
};
|
|
881
838
|
}
|
|
882
|
-
assertRedirectWithinLimit(response, currentUrl, redirectLimit, redirectCount) {
|
|
883
|
-
if (redirectCount < redirectLimit)
|
|
884
|
-
return;
|
|
885
|
-
cancelResponseBody(response);
|
|
886
|
-
throw createTooManyRedirectsFetchError(currentUrl);
|
|
887
|
-
}
|
|
888
839
|
getRedirectLocation(response, currentUrl) {
|
|
889
840
|
const location = response.headers.get('location');
|
|
890
841
|
if (location)
|
|
891
842
|
return location;
|
|
892
843
|
cancelResponseBody(response);
|
|
893
|
-
throw
|
|
844
|
+
throw createFetchError({ kind: 'missing-redirect-location' }, currentUrl);
|
|
894
845
|
}
|
|
895
846
|
resolveRedirectTarget(baseUrl, location) {
|
|
896
847
|
let resolved;
|
|
@@ -929,7 +880,7 @@ class ResponseTextReader {
|
|
|
929
880
|
async readBuffer(response, url, maxBytes, signal, encoding) {
|
|
930
881
|
if (signal?.aborted) {
|
|
931
882
|
cancelResponseBody(response);
|
|
932
|
-
throw
|
|
883
|
+
throw createFetchError({ kind: 'aborted' }, url);
|
|
933
884
|
}
|
|
934
885
|
if (!response.body) {
|
|
935
886
|
return this.readNonStreamBuffer(response, url, maxBytes, signal, encoding);
|
|
@@ -938,7 +889,7 @@ class ResponseTextReader {
|
|
|
938
889
|
}
|
|
939
890
|
async readNonStreamBuffer(response, url, maxBytes, signal, encoding) {
|
|
940
891
|
if (signal?.aborted)
|
|
941
|
-
throw
|
|
892
|
+
throw createFetchError({ kind: 'canceled' }, url);
|
|
942
893
|
const limit = maxBytes <= 0 ? Number.POSITIVE_INFINITY : maxBytes;
|
|
943
894
|
let buffer;
|
|
944
895
|
let truncated = false;
|
|
@@ -1014,7 +965,7 @@ class ResponseTextReader {
|
|
|
1014
965
|
callback(null, buf);
|
|
1015
966
|
}
|
|
1016
967
|
catch (error) {
|
|
1017
|
-
callback(
|
|
968
|
+
callback(toError(error));
|
|
1018
969
|
}
|
|
1019
970
|
},
|
|
1020
971
|
});
|
|
@@ -1037,7 +988,7 @@ class ResponseTextReader {
|
|
|
1037
988
|
}
|
|
1038
989
|
catch (error) {
|
|
1039
990
|
if (signal?.aborted)
|
|
1040
|
-
throw
|
|
991
|
+
throw createFetchError({ kind: 'aborted' }, url);
|
|
1041
992
|
if (error instanceof FetchError)
|
|
1042
993
|
throw error;
|
|
1043
994
|
if (error instanceof MaxBytesError) {
|
|
@@ -1084,11 +1035,15 @@ function buildRequestInit(headers, signal) {
|
|
|
1084
1035
|
}
|
|
1085
1036
|
function resolveResponseError(response, finalUrl) {
|
|
1086
1037
|
if (response.status === 429) {
|
|
1087
|
-
return
|
|
1038
|
+
return createFetchError({ kind: 'rate-limited', retryAfter: response.headers.get('retry-after') }, finalUrl);
|
|
1088
1039
|
}
|
|
1089
1040
|
return response.ok
|
|
1090
1041
|
? null
|
|
1091
|
-
:
|
|
1042
|
+
: createFetchError({
|
|
1043
|
+
kind: 'http',
|
|
1044
|
+
status: response.status,
|
|
1045
|
+
statusText: response.statusText,
|
|
1046
|
+
}, finalUrl);
|
|
1092
1047
|
}
|
|
1093
1048
|
function resolveMediaType(contentType) {
|
|
1094
1049
|
if (!contentType)
|
|
@@ -1250,7 +1205,7 @@ async function decodeResponseIfNeeded(response, url, signal) {
|
|
|
1250
1205
|
signal.addEventListener('abort', abortDecodePipeline, { once: true });
|
|
1251
1206
|
}
|
|
1252
1207
|
void decodedPipeline.catch((error) => {
|
|
1253
|
-
decodedNodeStream.destroy(
|
|
1208
|
+
decodedNodeStream.destroy(toError(error));
|
|
1254
1209
|
});
|
|
1255
1210
|
const decodedBodyStream = toWebReadableStream(decodedNodeStream, url, 'response:decode-content-encoding');
|
|
1256
1211
|
const decodedReader = decodedBodyStream.getReader();
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fetch.js","sourceRoot":"","sources":["../../src/lib/fetch.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"host-normalization.d.ts","sourceRoot":"","sources":["../../src/lib/host-normalization.ts"],"names":[],"mappings":"AAGA,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAqB1D"}
|
|
@@ -7,15 +7,15 @@ export function normalizeHost(value) {
|
|
|
7
7
|
const first = takeFirstHostValue(trimmedLower);
|
|
8
8
|
if (!first)
|
|
9
9
|
return null;
|
|
10
|
-
const
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
10
|
+
for (const resolveCandidate of [
|
|
11
|
+
() => normalizeSocketAddress(first),
|
|
12
|
+
() => parseHostWithUrl(first),
|
|
13
|
+
() => normalizeBracketedIpv6(first),
|
|
14
|
+
]) {
|
|
15
|
+
const candidate = resolveCandidate();
|
|
16
|
+
if (candidate !== null)
|
|
17
|
+
return candidate;
|
|
18
|
+
}
|
|
19
19
|
if (isIpV6Literal(first)) {
|
|
20
20
|
return normalizeHostname(first);
|
|
21
21
|
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"host-normalization.js","sourceRoot":"","sources":["../../src/lib/host-normalization.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ip-blocklist.d.ts","sourceRoot":"","sources":["../../src/lib/ip-blocklist.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAQ,MAAM,UAAU,CAAC;AAE3C,KAAK,QAAQ,GAAG,MAAM,GAAG,MAAM,CAAC;AAkDhC,wBAAgB,sBAAsB,IAAI,SAAS,CAMlD;AAcD,wBAAgB,uBAAuB,CACrC,KAAK,EAAE,MAAM,GACZ;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,QAAQ,CAAA;CAAE,GAAG,IAAI,CAmBzC"}
|
|
@@ -63,14 +63,17 @@ export function normalizeIpForBlockList(input) {
|
|
|
63
63
|
if (!normalizedInput)
|
|
64
64
|
return null;
|
|
65
65
|
const ipType = isIP(normalizedInput);
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
return
|
|
72
|
-
|
|
66
|
+
switch (ipType) {
|
|
67
|
+
case 4:
|
|
68
|
+
return { ip: normalizedInput, family: 'ipv4' };
|
|
69
|
+
case 6: {
|
|
70
|
+
const mapped = extractMappedIpv4(normalizedInput);
|
|
71
|
+
return mapped
|
|
72
|
+
? { ip: mapped, family: 'ipv4' }
|
|
73
|
+
: { ip: normalizedInput, family: 'ipv6' };
|
|
74
|
+
}
|
|
75
|
+
default:
|
|
76
|
+
return null;
|
|
73
77
|
}
|
|
74
|
-
return null;
|
|
75
78
|
}
|
|
76
79
|
//# sourceMappingURL=ip-blocklist.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ip-blocklist.js","sourceRoot":"","sources":["../../src/lib/ip-blocklist.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"json.d.ts","sourceRoot":"","sources":["../../src/lib/json.ts"],"names":[],"mappings":"AAoDA,wBAAgB,eAAe,CAC7B,GAAG,EAAE,OAAO,EACZ,KAAK,SAAI,EACT,IAAI,mBAAgB,GACnB,MAAM,CAGR"}
|