@j0hanz/fetch-url-mcp 1.4.0 → 1.5.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/cli.d.ts +2 -3
- package/dist/cli.js +1 -2
- package/dist/http/auth.d.ts +5 -3
- package/dist/http/auth.js +64 -15
- package/dist/http/health.d.ts +1 -2
- package/dist/http/health.js +7 -18
- package/dist/http/helpers.d.ts +3 -4
- package/dist/http/helpers.js +21 -21
- package/dist/http/native.d.ts +0 -1
- package/dist/http/native.js +34 -26
- package/dist/http/rate-limit.d.ts +0 -1
- package/dist/http/rate-limit.js +3 -4
- package/dist/index.d.ts +0 -1
- package/dist/index.js +17 -18
- package/dist/lib/{markdown-cleanup.d.ts → content.d.ts} +4 -2
- package/dist/lib/content.js +1356 -0
- package/dist/lib/core.d.ts +253 -0
- package/dist/lib/core.js +1228 -0
- package/dist/lib/{tool-pipeline.d.ts → fetch-pipeline.d.ts} +1 -2
- package/dist/lib/{tool-pipeline.js → fetch-pipeline.js} +10 -19
- package/dist/lib/{fetch.d.ts → http.d.ts} +7 -9
- package/dist/lib/{fetch.js → http.js} +706 -944
- package/dist/lib/mcp-tools.d.ts +28 -0
- package/dist/lib/mcp-tools.js +107 -0
- package/dist/lib/{tool-progress.d.ts → progress.d.ts} +0 -1
- package/dist/lib/{tool-progress.js → progress.js} +8 -13
- package/dist/lib/task-handlers.d.ts +5 -0
- package/dist/lib/{mcp.js → task-handlers.js} +56 -12
- package/dist/lib/url.d.ts +70 -0
- package/dist/lib/url.js +686 -0
- package/dist/lib/utils.d.ts +58 -0
- package/dist/lib/utils.js +304 -0
- package/dist/prompts/index.d.ts +0 -1
- package/dist/prompts/index.js +0 -1
- package/dist/resources/index.d.ts +0 -1
- package/dist/resources/index.js +74 -33
- package/dist/resources/instructions.d.ts +0 -1
- package/dist/resources/instructions.js +2 -2
- package/dist/schemas/inputs.d.ts +0 -1
- package/dist/schemas/inputs.js +2 -3
- package/dist/schemas/outputs.d.ts +0 -1
- package/dist/schemas/outputs.js +1 -2
- package/dist/server.d.ts +0 -1
- package/dist/server.js +16 -26
- package/dist/tasks/execution.d.ts +0 -1
- package/dist/tasks/execution.js +27 -24
- package/dist/tasks/manager.d.ts +7 -3
- package/dist/tasks/manager.js +53 -34
- package/dist/tasks/owner.d.ts +1 -2
- package/dist/tasks/owner.js +1 -2
- package/dist/tasks/tool-registry.d.ts +1 -2
- package/dist/tasks/tool-registry.js +0 -1
- package/dist/tools/fetch-url.d.ts +1 -2
- package/dist/tools/fetch-url.js +39 -31
- package/dist/tools/index.d.ts +0 -1
- package/dist/tools/index.js +0 -1
- package/dist/transform/html-translators.d.ts +1 -0
- package/dist/transform/html-translators.js +454 -0
- package/dist/transform/metadata.d.ts +4 -0
- package/dist/transform/metadata.js +183 -0
- package/dist/transform/transform.d.ts +0 -1
- package/dist/transform/transform.js +24 -641
- package/dist/transform/types.d.ts +9 -11
- package/dist/transform/types.js +0 -1
- package/dist/transform/worker-pool.d.ts +0 -1
- package/dist/transform/worker-pool.js +7 -16
- package/dist/transform/workers/shared.d.ts +0 -1
- package/dist/transform/workers/shared.js +1 -2
- package/dist/transform/workers/transform-child.d.ts +0 -1
- package/dist/transform/workers/transform-child.js +0 -1
- package/dist/transform/workers/transform-worker.d.ts +0 -1
- package/dist/transform/workers/transform-worker.js +0 -1
- package/package.json +6 -3
- package/dist/cli.d.ts.map +0 -1
- package/dist/cli.js.map +0 -1
- package/dist/http/auth.d.ts.map +0 -1
- package/dist/http/auth.js.map +0 -1
- package/dist/http/health.d.ts.map +0 -1
- package/dist/http/health.js.map +0 -1
- package/dist/http/helpers.d.ts.map +0 -1
- package/dist/http/helpers.js.map +0 -1
- package/dist/http/native.d.ts.map +0 -1
- package/dist/http/native.js.map +0 -1
- package/dist/http/rate-limit.d.ts.map +0 -1
- package/dist/http/rate-limit.js.map +0 -1
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/lib/cache.d.ts +0 -54
- package/dist/lib/cache.d.ts.map +0 -1
- package/dist/lib/cache.js +0 -264
- package/dist/lib/cache.js.map +0 -1
- package/dist/lib/config.d.ts +0 -143
- package/dist/lib/config.d.ts.map +0 -1
- package/dist/lib/config.js +0 -476
- package/dist/lib/config.js.map +0 -1
- package/dist/lib/crypto.d.ts +0 -4
- package/dist/lib/crypto.d.ts.map +0 -1
- package/dist/lib/crypto.js +0 -56
- package/dist/lib/crypto.js.map +0 -1
- package/dist/lib/dom-noise-removal.d.ts +0 -2
- package/dist/lib/dom-noise-removal.d.ts.map +0 -1
- package/dist/lib/dom-noise-removal.js +0 -494
- package/dist/lib/dom-noise-removal.js.map +0 -1
- package/dist/lib/download.d.ts +0 -4
- package/dist/lib/download.d.ts.map +0 -1
- package/dist/lib/download.js +0 -106
- package/dist/lib/download.js.map +0 -1
- package/dist/lib/errors.d.ts +0 -14
- package/dist/lib/errors.d.ts.map +0 -1
- package/dist/lib/errors.js +0 -72
- package/dist/lib/errors.js.map +0 -1
- package/dist/lib/fetch-content.d.ts +0 -5
- package/dist/lib/fetch-content.d.ts.map +0 -1
- package/dist/lib/fetch-content.js +0 -164
- package/dist/lib/fetch-content.js.map +0 -1
- package/dist/lib/fetch-stream.d.ts +0 -5
- package/dist/lib/fetch-stream.d.ts.map +0 -1
- package/dist/lib/fetch-stream.js +0 -29
- package/dist/lib/fetch-stream.js.map +0 -1
- package/dist/lib/fetch.d.ts.map +0 -1
- package/dist/lib/fetch.js.map +0 -1
- package/dist/lib/host-normalization.d.ts +0 -2
- package/dist/lib/host-normalization.d.ts.map +0 -1
- package/dist/lib/host-normalization.js +0 -91
- package/dist/lib/host-normalization.js.map +0 -1
- package/dist/lib/ip-blocklist.d.ts +0 -9
- package/dist/lib/ip-blocklist.d.ts.map +0 -1
- package/dist/lib/ip-blocklist.js +0 -79
- package/dist/lib/ip-blocklist.js.map +0 -1
- package/dist/lib/json.d.ts +0 -2
- package/dist/lib/json.d.ts.map +0 -1
- package/dist/lib/json.js +0 -45
- package/dist/lib/json.js.map +0 -1
- package/dist/lib/language-detection.d.ts +0 -3
- package/dist/lib/language-detection.d.ts.map +0 -1
- package/dist/lib/language-detection.js +0 -355
- package/dist/lib/language-detection.js.map +0 -1
- package/dist/lib/markdown-cleanup.d.ts.map +0 -1
- package/dist/lib/markdown-cleanup.js +0 -532
- package/dist/lib/markdown-cleanup.js.map +0 -1
- package/dist/lib/mcp-lifecycle.d.ts +0 -5
- package/dist/lib/mcp-lifecycle.d.ts.map +0 -1
- package/dist/lib/mcp-lifecycle.js +0 -51
- package/dist/lib/mcp-lifecycle.js.map +0 -1
- package/dist/lib/mcp-validator.d.ts +0 -17
- package/dist/lib/mcp-validator.d.ts.map +0 -1
- package/dist/lib/mcp-validator.js +0 -45
- package/dist/lib/mcp-validator.js.map +0 -1
- package/dist/lib/mcp.d.ts +0 -4
- package/dist/lib/mcp.d.ts.map +0 -1
- package/dist/lib/mcp.js.map +0 -1
- package/dist/lib/observability.d.ts +0 -23
- package/dist/lib/observability.d.ts.map +0 -1
- package/dist/lib/observability.js +0 -238
- package/dist/lib/observability.js.map +0 -1
- package/dist/lib/server-tuning.d.ts +0 -15
- package/dist/lib/server-tuning.d.ts.map +0 -1
- package/dist/lib/server-tuning.js +0 -49
- package/dist/lib/server-tuning.js.map +0 -1
- package/dist/lib/session.d.ts +0 -45
- package/dist/lib/session.d.ts.map +0 -1
- package/dist/lib/session.js +0 -263
- package/dist/lib/session.js.map +0 -1
- package/dist/lib/timer-utils.d.ts +0 -13
- package/dist/lib/timer-utils.d.ts.map +0 -1
- package/dist/lib/timer-utils.js +0 -44
- package/dist/lib/timer-utils.js.map +0 -1
- package/dist/lib/tool-errors.d.ts +0 -12
- package/dist/lib/tool-errors.d.ts.map +0 -1
- package/dist/lib/tool-errors.js +0 -55
- package/dist/lib/tool-errors.js.map +0 -1
- package/dist/lib/tool-pipeline.d.ts.map +0 -1
- package/dist/lib/tool-pipeline.js.map +0 -1
- package/dist/lib/tool-progress.d.ts.map +0 -1
- package/dist/lib/tool-progress.js.map +0 -1
- package/dist/lib/type-guards.d.ts +0 -16
- package/dist/lib/type-guards.d.ts.map +0 -1
- package/dist/lib/type-guards.js +0 -13
- package/dist/lib/type-guards.js.map +0 -1
- package/dist/prompts/index.d.ts.map +0 -1
- package/dist/prompts/index.js.map +0 -1
- package/dist/resources/index.d.ts.map +0 -1
- package/dist/resources/index.js.map +0 -1
- package/dist/resources/instructions.d.ts.map +0 -1
- package/dist/resources/instructions.js.map +0 -1
- package/dist/schemas/inputs.d.ts.map +0 -1
- package/dist/schemas/inputs.js.map +0 -1
- package/dist/schemas/outputs.d.ts.map +0 -1
- package/dist/schemas/outputs.js.map +0 -1
- package/dist/server.d.ts.map +0 -1
- package/dist/server.js.map +0 -1
- package/dist/tasks/execution.d.ts.map +0 -1
- package/dist/tasks/execution.js.map +0 -1
- package/dist/tasks/manager.d.ts.map +0 -1
- package/dist/tasks/manager.js.map +0 -1
- package/dist/tasks/owner.d.ts.map +0 -1
- package/dist/tasks/owner.js.map +0 -1
- package/dist/tasks/tool-registry.d.ts.map +0 -1
- package/dist/tasks/tool-registry.js.map +0 -1
- package/dist/tools/fetch-url.d.ts.map +0 -1
- package/dist/tools/fetch-url.js.map +0 -1
- package/dist/tools/index.d.ts.map +0 -1
- package/dist/tools/index.js.map +0 -1
- package/dist/transform/transform.d.ts.map +0 -1
- package/dist/transform/transform.js.map +0 -1
- package/dist/transform/types.d.ts.map +0 -1
- package/dist/transform/types.js.map +0 -1
- package/dist/transform/worker-pool.d.ts.map +0 -1
- package/dist/transform/worker-pool.js.map +0 -1
- package/dist/transform/workers/shared.d.ts.map +0 -1
- package/dist/transform/workers/shared.js.map +0 -1
- package/dist/transform/workers/transform-child.d.ts.map +0 -1
- package/dist/transform/workers/transform-child.js.map +0 -1
- package/dist/transform/workers/transform-worker.d.ts.map +0 -1
- package/dist/transform/workers/transform-worker.js.map +0 -1
package/dist/lib/errors.js
DELETED
|
@@ -1,72 +0,0 @@
|
|
|
1
|
-
import { inspect } from 'node:util';
|
|
2
|
-
import { isError, isObject } from './type-guards.js';
|
|
3
|
-
const DEFAULT_HTTP_STATUS = 502;
|
|
4
|
-
export class FetchError extends Error {
|
|
5
|
-
url;
|
|
6
|
-
statusCode;
|
|
7
|
-
code;
|
|
8
|
-
details;
|
|
9
|
-
constructor(message, url, httpStatus, details = {}, options) {
|
|
10
|
-
super(message, options);
|
|
11
|
-
this.url = url;
|
|
12
|
-
this.name = 'FetchError';
|
|
13
|
-
this.statusCode = httpStatus ?? DEFAULT_HTTP_STATUS;
|
|
14
|
-
this.code = httpStatus ? `HTTP_${httpStatus}` : 'FETCH_ERROR';
|
|
15
|
-
this.details = Object.freeze({ url, httpStatus, ...details });
|
|
16
|
-
Error.captureStackTrace(this, this.constructor);
|
|
17
|
-
}
|
|
18
|
-
}
|
|
19
|
-
export function getErrorMessage(error) {
|
|
20
|
-
if (isError(error))
|
|
21
|
-
return error.message;
|
|
22
|
-
if (isNonEmptyString(error))
|
|
23
|
-
return error;
|
|
24
|
-
if (isErrorWithMessage(error))
|
|
25
|
-
return error.message;
|
|
26
|
-
return formatUnknownError(error);
|
|
27
|
-
}
|
|
28
|
-
export function toError(error) {
|
|
29
|
-
return isError(error) ? error : new Error(getErrorMessage(error));
|
|
30
|
-
}
|
|
31
|
-
export function isAbortError(error) {
|
|
32
|
-
return isError(error) && error.name === 'AbortError';
|
|
33
|
-
}
|
|
34
|
-
function isNonEmptyString(value) {
|
|
35
|
-
return typeof value === 'string' && value.length > 0;
|
|
36
|
-
}
|
|
37
|
-
function isErrorWithMessage(error) {
|
|
38
|
-
if (!isObject(error))
|
|
39
|
-
return false;
|
|
40
|
-
const { message } = error;
|
|
41
|
-
return typeof message === 'string' && message.length > 0;
|
|
42
|
-
}
|
|
43
|
-
function formatUnknownError(error) {
|
|
44
|
-
if (error === null || error === undefined)
|
|
45
|
-
return 'Unknown error';
|
|
46
|
-
try {
|
|
47
|
-
return inspect(error, {
|
|
48
|
-
depth: 2,
|
|
49
|
-
maxStringLength: 200,
|
|
50
|
-
breakLength: Infinity,
|
|
51
|
-
compact: true,
|
|
52
|
-
colors: false,
|
|
53
|
-
});
|
|
54
|
-
}
|
|
55
|
-
catch {
|
|
56
|
-
return 'Unknown error';
|
|
57
|
-
}
|
|
58
|
-
}
|
|
59
|
-
export function createErrorWithCode(message, code, options) {
|
|
60
|
-
const error = new Error(message, options);
|
|
61
|
-
return Object.assign(error, { code });
|
|
62
|
-
}
|
|
63
|
-
export function isSystemError(error) {
|
|
64
|
-
if (!isError(error))
|
|
65
|
-
return false;
|
|
66
|
-
if (!('code' in error))
|
|
67
|
-
return false;
|
|
68
|
-
const { code } = error;
|
|
69
|
-
return typeof code === 'string';
|
|
70
|
-
}
|
|
71
|
-
export const RESOURCE_NOT_FOUND_ERROR_CODE = -32002;
|
|
72
|
-
//# sourceMappingURL=errors.js.map
|
package/dist/lib/errors.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/lib/errors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAErD,MAAM,mBAAmB,GAAG,GAAG,CAAC;AAEhC,MAAM,OAAO,UAAW,SAAQ,KAAK;IAOxB;IANF,UAAU,CAAS;IACnB,IAAI,CAAS;IACb,OAAO,CAAoC;IAEpD,YACE,OAAe,EACN,GAAW,EACpB,UAAmB,EACnB,UAAmC,EAAE,EACrC,OAAsB;QAEtB,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QALf,QAAG,GAAH,GAAG,CAAQ;QAMpB,IAAI,CAAC,IAAI,GAAG,YAAY,CAAC;QACzB,IAAI,CAAC,UAAU,GAAG,UAAU,IAAI,mBAAmB,CAAC;QACpD,IAAI,CAAC,IAAI,GAAG,UAAU,CAAC,CAAC,CAAC,QAAQ,UAAU,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC;QAC9D,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,UAAU,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC;QAC9D,KAAK,CAAC,iBAAiB,CAAC,IAAI,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;IAClD,CAAC;CACF;AAED,MAAM,UAAU,eAAe,CAAC,KAAc;IAC5C,IAAI,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC,OAAO,CAAC;IACzC,IAAI,gBAAgB,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IAC1C,IAAI,kBAAkB,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC,OAAO,CAAC;IACpD,OAAO,kBAAkB,CAAC,KAAK,CAAC,CAAC;AACnC,CAAC;AAED,MAAM,UAAU,OAAO,CAAC,KAAc;IACpC,OAAO,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC;AACpE,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,KAAc;IACzC,OAAO,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,YAAY,CAAC;AACvD,CAAC;AAED,SAAS,gBAAgB,CAAC,KAAc;IACtC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;AACvD,CAAC;AAED,SAAS,kBAAkB,CAAC,KAAc;IACxC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IACnC,MAAM,EAAE,OAAO,EAAE,GAAG,KAAK,CAAC;IAC1B,OAAO,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC;AAC3D,CAAC;AAED,SAAS,kBAAkB,CAAC,KAAc;IACxC,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,eAAe,CAAC;IAClE,IAAI,CAAC;QACH,OAAO,OAAO,CAAC,KAAK,EAAE;YACpB,KAAK,EAAE,CAAC;YACR,eAAe,EAAE,GAAG;YACpB,WAAW,EAAE,QAAQ;YACrB,OAAO,EAAE,IAAI;YACb,MAAM,EAAE,KAAK;SACd,CAAC,CAAC;IACL,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,eAAe,CAAC;IACzB,CAAC;AACH,CAAC;AAED,MAAM,UAAU,mBAAmB,CACjC,OAAe,EACf,IAAY,EACZ,OAAsB;IAEtB,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAC1C,OAAO,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;AACxC,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,KAAc;IAC1C,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IAClC,IAAI,CAAC,CAAC,MAAM,IAAI,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IACrC,MAAM,EAAE,IAAI,EAAE,GAAG,KAA2B,CAAC;IAC7C,OAAO,OAAO,IAAI,KAAK,QAAQ,CAAC;AAClC,CAAC;AAED,MAAM,CAAC,MAAM,6BAA6B,GAAG,CAAC,KAAK,CAAC"}
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
export declare function getCharsetFromContentType(contentType: string | null): string | undefined;
|
|
2
|
-
export declare function decodeBuffer(buffer: Uint8Array, encoding: string): string;
|
|
3
|
-
export declare function resolveEncoding(declaredEncoding: string | undefined, sample: Uint8Array): string | undefined;
|
|
4
|
-
export declare function isBinaryContent(buffer: Uint8Array, encoding?: string): boolean;
|
|
5
|
-
//# sourceMappingURL=fetch-content.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"fetch-content.d.ts","sourceRoot":"","sources":["../../src/lib/fetch-content.ts"],"names":[],"mappings":"AAIA,wBAAgB,yBAAyB,CACvC,WAAW,EAAE,MAAM,GAAG,IAAI,GACzB,MAAM,GAAG,SAAS,CAWpB;AAaD,wBAAgB,YAAY,CAAC,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAEzE;AAiHD,wBAAgB,eAAe,CAC7B,gBAAgB,EAAE,MAAM,GAAG,SAAS,EACpC,MAAM,EAAE,UAAU,GACjB,MAAM,GAAG,SAAS,CAOpB;AAyCD,wBAAgB,eAAe,CAC7B,MAAM,EAAE,UAAU,EAClB,QAAQ,CAAC,EAAE,MAAM,GAChB,OAAO,CAMT"}
|
|
@@ -1,164 +0,0 @@
|
|
|
1
|
-
import { Buffer } from 'node:buffer';
|
|
2
|
-
const UTF8_ENCODING = 'utf-8';
|
|
3
|
-
export function getCharsetFromContentType(contentType) {
|
|
4
|
-
if (!contentType)
|
|
5
|
-
return undefined;
|
|
6
|
-
const match = /charset=([^;]+)/i.exec(contentType);
|
|
7
|
-
const charsetGroup = match?.[1];
|
|
8
|
-
if (!charsetGroup)
|
|
9
|
-
return undefined;
|
|
10
|
-
let charset = charsetGroup.trim();
|
|
11
|
-
if (charset.startsWith('"') && charset.endsWith('"')) {
|
|
12
|
-
charset = charset.slice(1, -1);
|
|
13
|
-
}
|
|
14
|
-
return charset.trim();
|
|
15
|
-
}
|
|
16
|
-
function createDecoder(encoding) {
|
|
17
|
-
const fallback = () => new TextDecoder(UTF8_ENCODING);
|
|
18
|
-
if (!encoding)
|
|
19
|
-
return fallback();
|
|
20
|
-
try {
|
|
21
|
-
return new TextDecoder(encoding);
|
|
22
|
-
}
|
|
23
|
-
catch {
|
|
24
|
-
return fallback();
|
|
25
|
-
}
|
|
26
|
-
}
|
|
27
|
-
export function decodeBuffer(buffer, encoding) {
|
|
28
|
-
return createDecoder(encoding).decode(buffer);
|
|
29
|
-
}
|
|
30
|
-
function normalizeEncodingLabel(encoding) {
|
|
31
|
-
return encoding?.trim().toLowerCase() ?? '';
|
|
32
|
-
}
|
|
33
|
-
function isUnicodeWideEncoding(encoding) {
|
|
34
|
-
const normalized = normalizeEncodingLabel(encoding);
|
|
35
|
-
return (normalized.startsWith('utf-16') ||
|
|
36
|
-
normalized.startsWith('utf-32') ||
|
|
37
|
-
normalized === 'ucs-2' ||
|
|
38
|
-
normalized === 'unicodefffe' ||
|
|
39
|
-
normalized === 'unicodefeff');
|
|
40
|
-
}
|
|
41
|
-
const BOM_SIGNATURES = [
|
|
42
|
-
// 4-byte BOMs must come first to avoid false matches with 2-byte prefixes
|
|
43
|
-
{ bytes: [0xff, 0xfe, 0x00, 0x00], encoding: 'utf-32le' },
|
|
44
|
-
{ bytes: [0x00, 0x00, 0xfe, 0xff], encoding: 'utf-32be' },
|
|
45
|
-
{ bytes: [0xef, 0xbb, 0xbf], encoding: 'utf-8' },
|
|
46
|
-
{ bytes: [0xff, 0xfe], encoding: 'utf-16le' },
|
|
47
|
-
{ bytes: [0xfe, 0xff], encoding: 'utf-16be' },
|
|
48
|
-
];
|
|
49
|
-
function startsWithBytes(buffer, signature) {
|
|
50
|
-
const sigLen = signature.length;
|
|
51
|
-
if (buffer.length < sigLen)
|
|
52
|
-
return false;
|
|
53
|
-
for (let i = 0; i < sigLen; i += 1) {
|
|
54
|
-
if (buffer[i] !== signature[i])
|
|
55
|
-
return false;
|
|
56
|
-
}
|
|
57
|
-
return true;
|
|
58
|
-
}
|
|
59
|
-
function detectBomEncoding(buffer) {
|
|
60
|
-
for (const { bytes, encoding } of BOM_SIGNATURES) {
|
|
61
|
-
if (startsWithBytes(buffer, bytes))
|
|
62
|
-
return encoding;
|
|
63
|
-
}
|
|
64
|
-
return undefined;
|
|
65
|
-
}
|
|
66
|
-
function readQuotedValue(input, startIndex) {
|
|
67
|
-
const first = input[startIndex];
|
|
68
|
-
if (!first)
|
|
69
|
-
return '';
|
|
70
|
-
const quoted = first === '"' || first === "'";
|
|
71
|
-
if (quoted) {
|
|
72
|
-
const end = input.indexOf(first, startIndex + 1);
|
|
73
|
-
return end === -1 ? '' : input.slice(startIndex + 1, end).trim();
|
|
74
|
-
}
|
|
75
|
-
const tail = input.slice(startIndex);
|
|
76
|
-
const stop = tail.search(/[\s/>]/);
|
|
77
|
-
return (stop === -1 ? tail : tail.slice(0, stop)).trim();
|
|
78
|
-
}
|
|
79
|
-
function findTokenValue(original, lower, token, fromIndex = 0) {
|
|
80
|
-
const tokenIndex = lower.indexOf(token, fromIndex);
|
|
81
|
-
if (tokenIndex === -1)
|
|
82
|
-
return undefined;
|
|
83
|
-
const valueStart = tokenIndex + token.length;
|
|
84
|
-
const value = readQuotedValue(original, valueStart);
|
|
85
|
-
return value || undefined;
|
|
86
|
-
}
|
|
87
|
-
function extractHtmlCharset(headSnippet) {
|
|
88
|
-
const lower = headSnippet.toLowerCase();
|
|
89
|
-
const charset = findTokenValue(headSnippet, lower, 'charset=');
|
|
90
|
-
return charset ? charset.toLowerCase() : undefined;
|
|
91
|
-
}
|
|
92
|
-
function extractXmlEncoding(headSnippet) {
|
|
93
|
-
const lower = headSnippet.toLowerCase();
|
|
94
|
-
const xmlStart = lower.indexOf('<?xml');
|
|
95
|
-
if (xmlStart === -1)
|
|
96
|
-
return undefined;
|
|
97
|
-
const xmlEnd = lower.indexOf('?>', xmlStart);
|
|
98
|
-
const declaration = xmlEnd === -1
|
|
99
|
-
? headSnippet.slice(xmlStart)
|
|
100
|
-
: headSnippet.slice(xmlStart, xmlEnd + 2);
|
|
101
|
-
const declarationLower = declaration.toLowerCase();
|
|
102
|
-
const encoding = findTokenValue(declaration, declarationLower, 'encoding=');
|
|
103
|
-
return encoding ? encoding.toLowerCase() : undefined;
|
|
104
|
-
}
|
|
105
|
-
function detectHtmlDeclaredEncoding(buffer) {
|
|
106
|
-
const scanSize = Math.min(buffer.length, 8_192);
|
|
107
|
-
if (scanSize === 0)
|
|
108
|
-
return undefined;
|
|
109
|
-
const headSnippet = Buffer.from(buffer.buffer, buffer.byteOffset, scanSize).toString('latin1');
|
|
110
|
-
return extractHtmlCharset(headSnippet) ?? extractXmlEncoding(headSnippet);
|
|
111
|
-
}
|
|
112
|
-
export function resolveEncoding(declaredEncoding, sample) {
|
|
113
|
-
const bomEncoding = detectBomEncoding(sample);
|
|
114
|
-
if (bomEncoding)
|
|
115
|
-
return bomEncoding;
|
|
116
|
-
if (declaredEncoding)
|
|
117
|
-
return declaredEncoding;
|
|
118
|
-
return detectHtmlDeclaredEncoding(sample);
|
|
119
|
-
}
|
|
120
|
-
const BINARY_SIGNATURES = [
|
|
121
|
-
[0x25, 0x50, 0x44, 0x46],
|
|
122
|
-
[0x89, 0x50, 0x4e, 0x47],
|
|
123
|
-
[0x47, 0x49, 0x46, 0x38],
|
|
124
|
-
[0xff, 0xd8, 0xff],
|
|
125
|
-
[0x52, 0x49, 0x46, 0x46],
|
|
126
|
-
[0x42, 0x4d],
|
|
127
|
-
[0x49, 0x49, 0x2a, 0x00],
|
|
128
|
-
[0x4d, 0x4d, 0x00, 0x2a],
|
|
129
|
-
[0x00, 0x00, 0x01, 0x00],
|
|
130
|
-
[0x50, 0x4b, 0x03, 0x04],
|
|
131
|
-
[0x1f, 0x8b],
|
|
132
|
-
[0x42, 0x5a, 0x68],
|
|
133
|
-
[0x52, 0x61, 0x72, 0x21],
|
|
134
|
-
[0x37, 0x7a, 0xbc, 0xaf],
|
|
135
|
-
[0x7f, 0x45, 0x4c, 0x46],
|
|
136
|
-
[0x4d, 0x5a],
|
|
137
|
-
[0xcf, 0xfa, 0xed, 0xfe],
|
|
138
|
-
[0x00, 0x61, 0x73, 0x6d],
|
|
139
|
-
[0x1a, 0x45, 0xdf, 0xa3],
|
|
140
|
-
[0x66, 0x74, 0x79, 0x70],
|
|
141
|
-
[0x46, 0x4c, 0x56],
|
|
142
|
-
[0x49, 0x44, 0x33],
|
|
143
|
-
[0xff, 0xfb],
|
|
144
|
-
[0xff, 0xfa],
|
|
145
|
-
[0x4f, 0x67, 0x67, 0x53],
|
|
146
|
-
[0x66, 0x4c, 0x61, 0x43],
|
|
147
|
-
[0x4d, 0x54, 0x68, 0x64],
|
|
148
|
-
[0x77, 0x4f, 0x46, 0x46],
|
|
149
|
-
[0x00, 0x01, 0x00, 0x00],
|
|
150
|
-
[0x4f, 0x54, 0x54, 0x4f],
|
|
151
|
-
[0x53, 0x51, 0x4c, 0x69],
|
|
152
|
-
];
|
|
153
|
-
function hasNullByte(buffer, limit) {
|
|
154
|
-
const checkLen = Math.min(buffer.length, limit);
|
|
155
|
-
return buffer.subarray(0, checkLen).includes(0x00);
|
|
156
|
-
}
|
|
157
|
-
export function isBinaryContent(buffer, encoding) {
|
|
158
|
-
for (const signature of BINARY_SIGNATURES) {
|
|
159
|
-
if (startsWithBytes(buffer, signature))
|
|
160
|
-
return true;
|
|
161
|
-
}
|
|
162
|
-
return !isUnicodeWideEncoding(encoding) && hasNullByte(buffer, 1000);
|
|
163
|
-
}
|
|
164
|
-
//# sourceMappingURL=fetch-content.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"fetch-content.js","sourceRoot":"","sources":["../../src/lib/fetch-content.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
import { Readable } from 'node:stream';
|
|
2
|
-
import type { ReadableStream as NodeReadableStream } from 'node:stream/web';
|
|
3
|
-
export declare function toNodeReadableStream(stream: ReadableStream<Uint8Array>, url: string, stage: string): NodeReadableStream<Uint8Array>;
|
|
4
|
-
export declare function toWebReadableStream(stream: Readable, url: string, stage: string): ReadableStream<Uint8Array>;
|
|
5
|
-
//# sourceMappingURL=fetch-stream.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"fetch-stream.d.ts","sourceRoot":"","sources":["../../src/lib/fetch-stream.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,KAAK,EAAE,cAAc,IAAI,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAiC5E,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,cAAc,CAAC,UAAU,CAAC,EAClC,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,MAAM,GACZ,kBAAkB,CAAC,UAAU,CAAC,CAGhC;AAED,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,QAAQ,EAChB,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,MAAM,GACZ,cAAc,CAAC,UAAU,CAAC,CAI5B"}
|
package/dist/lib/fetch-stream.js
DELETED
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
import { Readable } from 'node:stream';
|
|
2
|
-
import { FetchError } from './errors.js';
|
|
3
|
-
import { isObject } from './type-guards.js';
|
|
4
|
-
function isReadableStreamLike(value) {
|
|
5
|
-
if (!isObject(value))
|
|
6
|
-
return false;
|
|
7
|
-
return (typeof value['getReader'] === 'function' &&
|
|
8
|
-
typeof value['cancel'] === 'function' &&
|
|
9
|
-
typeof value['tee'] === 'function' &&
|
|
10
|
-
typeof value['locked'] === 'boolean');
|
|
11
|
-
}
|
|
12
|
-
function assertReadableStreamLike(stream, url, stage) {
|
|
13
|
-
if (isReadableStreamLike(stream))
|
|
14
|
-
return;
|
|
15
|
-
throw new FetchError('Invalid response stream', url, 500, {
|
|
16
|
-
reason: 'invalid_stream',
|
|
17
|
-
stage,
|
|
18
|
-
});
|
|
19
|
-
}
|
|
20
|
-
export function toNodeReadableStream(stream, url, stage) {
|
|
21
|
-
assertReadableStreamLike(stream, url, stage);
|
|
22
|
-
return stream;
|
|
23
|
-
}
|
|
24
|
-
export function toWebReadableStream(stream, url, stage) {
|
|
25
|
-
const converted = Readable.toWeb(stream);
|
|
26
|
-
assertReadableStreamLike(converted, url, stage);
|
|
27
|
-
return converted;
|
|
28
|
-
}
|
|
29
|
-
//# sourceMappingURL=fetch-stream.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"fetch-stream.js","sourceRoot":"","sources":["../../src/lib/fetch-stream.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAGvC,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAK5C,SAAS,oBAAoB,CAC3B,KAAc;IAEd,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IAEnC,OAAO,CACL,OAAO,KAAK,CAAC,WAAW,CAAC,KAAK,UAAU;QACxC,OAAO,KAAK,CAAC,QAAQ,CAAC,KAAK,UAAU;QACrC,OAAO,KAAK,CAAC,KAAK,CAAC,KAAK,UAAU;QAClC,OAAO,KAAK,CAAC,QAAQ,CAAC,KAAK,SAAS,CACrC,CAAC;AACJ,CAAC;AAED,SAAS,wBAAwB,CAC/B,MAAe,EACf,GAAW,EACX,KAAa;IAEb,IAAI,oBAAoB,CAAC,MAAM,CAAC;QAAE,OAAO;IACzC,MAAM,IAAI,UAAU,CAAC,yBAAyB,EAAE,GAAG,EAAE,GAAG,EAAE;QACxD,MAAM,EAAE,gBAAgB;QACxB,KAAK;KACN,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,oBAAoB,CAClC,MAAkC,EAClC,GAAW,EACX,KAAa;IAEb,wBAAwB,CAAC,MAAM,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;IAC7C,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,mBAAmB,CACjC,MAAgB,EAChB,GAAW,EACX,KAAa;IAEb,MAAM,SAAS,GAAY,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAClD,wBAAwB,CAAC,SAAS,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;IAChD,OAAO,SAAS,CAAC;AACnB,CAAC"}
|
package/dist/lib/fetch.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"fetch.d.ts","sourceRoot":"","sources":["../../src/lib/fetch.ts"],"names":[],"mappings":"AA0CA,UAAU,YAAY;IACpB,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB;AAED,UAAU,eAAe;IACvB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC;IAC9B,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;CAC5B;AAs3BD,UAAU,qBAAqB;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AA8lCD,wBAAgB,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAE/C;AAED,wBAAgB,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG;IAC/C,aAAa,EAAE,MAAM,CAAC;IACtB,QAAQ,EAAE,MAAM,CAAC;CAClB,CAEA;AAED,wBAAgB,uBAAuB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAEjE;AAED,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,eAAe,CAE9D;AAED,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAExD;AAED,wBAAgB,mBAAmB,CACjC,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,MAAM,GACb,qBAAqB,CAEvB;AAED,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,qBAAqB,EAC9B,QAAQ,EAAE,QAAQ,EAClB,WAAW,CAAC,EAAE,MAAM,GACnB,IAAI,CAEN;AAED,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,qBAAqB,EAC9B,KAAK,EAAE,OAAO,EACd,MAAM,CAAC,EAAE,MAAM,GACd,IAAI,CAEN;AAED,wBAAsB,kBAAkB,CACtC,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,WAAW,EACjB,YAAY,EAAE,MAAM,GACnB,OAAO,CAAC;IAAE,QAAQ,EAAE,QAAQ,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,CAAC,CAE9C;AAED,wBAAsB,gBAAgB,CACpC,QAAQ,EAAE,QAAQ,EAClB,GAAG,EAAE,MAAM,EACX,QAAQ,EAAE,MAAM,EAChB,MAAM,CAAC,EAAE,WAAW,EACpB,QAAQ,CAAC,EAAE,MAAM,GAChB,OAAO,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC,CAUzC;AAED,wBAAsB,kBAAkB,CACtC,aAAa,EAAE,MAAM,EACrB,OAAO,CAAC,EAAE,YAAY,GACrB,OAAO,CAAC,MAAM,CAAC,CAEjB;AAED,wBAAsB,wBAAwB,CAC5C,aAAa,EAAE,MAAM,EACrB,OAAO,CAAC,EAAE,YAAY,GACrB,OAAO,CAAC;IACT,MAAM,EAAE,UAAU,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,OAAO,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC,CAED"}
|
package/dist/lib/fetch.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"fetch.js","sourceRoot":"","sources":["../../src/lib/fetch.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
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"}
|
|
@@ -1,91 +0,0 @@
|
|
|
1
|
-
import { isIP, SocketAddress } from 'node:net';
|
|
2
|
-
import { domainToASCII } from 'node:url';
|
|
3
|
-
export function normalizeHost(value) {
|
|
4
|
-
const trimmedLower = trimToNull(value)?.toLowerCase();
|
|
5
|
-
if (!trimmedLower)
|
|
6
|
-
return null;
|
|
7
|
-
const first = takeFirstHostValue(trimmedLower);
|
|
8
|
-
if (!first)
|
|
9
|
-
return null;
|
|
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
|
-
if (isIpV6Literal(first)) {
|
|
20
|
-
return normalizeHostname(first);
|
|
21
|
-
}
|
|
22
|
-
return normalizeHostname(stripPortIfPresent(first));
|
|
23
|
-
}
|
|
24
|
-
function takeFirstHostValue(value) {
|
|
25
|
-
// Faster than split(',') for large forwarded headers; preserves behavior.
|
|
26
|
-
const commaIndex = value.indexOf(',');
|
|
27
|
-
const first = commaIndex === -1 ? value : value.slice(0, commaIndex);
|
|
28
|
-
return first ? trimToNull(first) : null;
|
|
29
|
-
}
|
|
30
|
-
function stripIpv6Brackets(value) {
|
|
31
|
-
if (!value.startsWith('['))
|
|
32
|
-
return null;
|
|
33
|
-
const end = value.indexOf(']');
|
|
34
|
-
if (end === -1)
|
|
35
|
-
return null;
|
|
36
|
-
return value.slice(1, end);
|
|
37
|
-
}
|
|
38
|
-
function stripPortIfPresent(value) {
|
|
39
|
-
const colonIndex = value.indexOf(':');
|
|
40
|
-
if (colonIndex === -1)
|
|
41
|
-
return value;
|
|
42
|
-
return value.slice(0, colonIndex);
|
|
43
|
-
}
|
|
44
|
-
function isIpV6Literal(value) {
|
|
45
|
-
return isIP(value) === 6;
|
|
46
|
-
}
|
|
47
|
-
function normalizeSocketAddress(value) {
|
|
48
|
-
const socketAddress = SocketAddress.parse(value);
|
|
49
|
-
if (!socketAddress)
|
|
50
|
-
return null;
|
|
51
|
-
return normalizeHostname(socketAddress.address);
|
|
52
|
-
}
|
|
53
|
-
function normalizeBracketedIpv6(value) {
|
|
54
|
-
const ipv6 = stripIpv6Brackets(value);
|
|
55
|
-
if (!ipv6)
|
|
56
|
-
return null;
|
|
57
|
-
return normalizeHostname(ipv6);
|
|
58
|
-
}
|
|
59
|
-
function normalizeHostname(value) {
|
|
60
|
-
const trimmed = trimToNull(value)?.toLowerCase();
|
|
61
|
-
if (!trimmed)
|
|
62
|
-
return null;
|
|
63
|
-
if (isIP(trimmed))
|
|
64
|
-
return stripTrailingDots(trimmed);
|
|
65
|
-
const ascii = domainToASCII(trimmed);
|
|
66
|
-
return ascii ? stripTrailingDots(ascii) : null;
|
|
67
|
-
}
|
|
68
|
-
function parseHostWithUrl(value) {
|
|
69
|
-
const candidateUrl = `http://${value}`;
|
|
70
|
-
if (!URL.canParse(candidateUrl))
|
|
71
|
-
return null;
|
|
72
|
-
try {
|
|
73
|
-
const parsed = new URL(candidateUrl);
|
|
74
|
-
return normalizeHostname(parsed.hostname);
|
|
75
|
-
}
|
|
76
|
-
catch {
|
|
77
|
-
return null;
|
|
78
|
-
}
|
|
79
|
-
}
|
|
80
|
-
function trimToNull(value) {
|
|
81
|
-
const trimmed = value.trim();
|
|
82
|
-
return trimmed ? trimmed : null;
|
|
83
|
-
}
|
|
84
|
-
function stripTrailingDots(value) {
|
|
85
|
-
// Keep loop (rather than regex) to preserve exact behavior and avoid hidden allocations.
|
|
86
|
-
let result = value;
|
|
87
|
-
while (result.endsWith('.'))
|
|
88
|
-
result = result.slice(0, -1);
|
|
89
|
-
return result;
|
|
90
|
-
}
|
|
91
|
-
//# sourceMappingURL=host-normalization.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"host-normalization.js","sourceRoot":"","sources":["../../src/lib/host-normalization.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import { BlockList } from 'node:net';
|
|
2
|
-
type IpFamily = 'ipv4' | 'ipv6';
|
|
3
|
-
export declare function createDefaultBlockList(): BlockList;
|
|
4
|
-
export declare function normalizeIpForBlockList(input: string): {
|
|
5
|
-
ip: string;
|
|
6
|
-
family: IpFamily;
|
|
7
|
-
} | null;
|
|
8
|
-
export {};
|
|
9
|
-
//# sourceMappingURL=ip-blocklist.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
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"}
|
package/dist/lib/ip-blocklist.js
DELETED
|
@@ -1,79 +0,0 @@
|
|
|
1
|
-
import { BlockList, isIP } from 'node:net';
|
|
2
|
-
function buildIpv4(parts) {
|
|
3
|
-
return parts.join('.');
|
|
4
|
-
}
|
|
5
|
-
function buildIpv6(parts) {
|
|
6
|
-
return parts.map(String).join(':');
|
|
7
|
-
}
|
|
8
|
-
const IPV6_ZERO = buildIpv6([0, 0, 0, 0, 0, 0, 0, 0]);
|
|
9
|
-
const IPV6_LOOPBACK = buildIpv6([0, 0, 0, 0, 0, 0, 0, 1]);
|
|
10
|
-
const IPV6_64_FF9B = buildIpv6(['64', 'ff9b', 0, 0, 0, 0, 0, 0]);
|
|
11
|
-
const IPV6_64_FF9B_1 = buildIpv6(['64', 'ff9b', 1, 0, 0, 0, 0, 0]);
|
|
12
|
-
const IPV6_2001 = buildIpv6(['2001', 0, 0, 0, 0, 0, 0, 0]);
|
|
13
|
-
const IPV6_2002 = buildIpv6(['2002', 0, 0, 0, 0, 0, 0, 0]);
|
|
14
|
-
const IPV6_FC00 = buildIpv6(['fc00', 0, 0, 0, 0, 0, 0, 0]);
|
|
15
|
-
const IPV6_FE80 = buildIpv6(['fe80', 0, 0, 0, 0, 0, 0, 0]);
|
|
16
|
-
const IPV6_FF00 = buildIpv6(['ff00', 0, 0, 0, 0, 0, 0, 0]);
|
|
17
|
-
const IPV6_MAPPED_PREFIX = '::ffff:';
|
|
18
|
-
const BLOCKED_SUBNETS = [
|
|
19
|
-
{ subnet: buildIpv4([0, 0, 0, 0]), prefix: 8, family: 'ipv4' },
|
|
20
|
-
{ subnet: buildIpv4([10, 0, 0, 0]), prefix: 8, family: 'ipv4' },
|
|
21
|
-
{ subnet: buildIpv4([100, 64, 0, 0]), prefix: 10, family: 'ipv4' },
|
|
22
|
-
{ subnet: buildIpv4([127, 0, 0, 0]), prefix: 8, family: 'ipv4' },
|
|
23
|
-
{ subnet: buildIpv4([169, 254, 0, 0]), prefix: 16, family: 'ipv4' },
|
|
24
|
-
{ subnet: buildIpv4([172, 16, 0, 0]), prefix: 12, family: 'ipv4' },
|
|
25
|
-
{ subnet: buildIpv4([192, 168, 0, 0]), prefix: 16, family: 'ipv4' },
|
|
26
|
-
{ subnet: buildIpv4([224, 0, 0, 0]), prefix: 4, family: 'ipv4' },
|
|
27
|
-
{ subnet: buildIpv4([240, 0, 0, 0]), prefix: 4, family: 'ipv4' },
|
|
28
|
-
{ subnet: IPV6_ZERO, prefix: 128, family: 'ipv6' },
|
|
29
|
-
{ subnet: IPV6_LOOPBACK, prefix: 128, family: 'ipv6' },
|
|
30
|
-
{ subnet: IPV6_64_FF9B, prefix: 96, family: 'ipv6' },
|
|
31
|
-
{ subnet: IPV6_64_FF9B_1, prefix: 48, family: 'ipv6' },
|
|
32
|
-
{ subnet: IPV6_2001, prefix: 32, family: 'ipv6' },
|
|
33
|
-
{ subnet: IPV6_2002, prefix: 16, family: 'ipv6' },
|
|
34
|
-
{ subnet: IPV6_FC00, prefix: 7, family: 'ipv6' },
|
|
35
|
-
{ subnet: IPV6_FE80, prefix: 10, family: 'ipv6' },
|
|
36
|
-
{ subnet: IPV6_FF00, prefix: 8, family: 'ipv6' },
|
|
37
|
-
{ subnet: '::', prefix: 96, family: 'ipv6' },
|
|
38
|
-
];
|
|
39
|
-
export function createDefaultBlockList() {
|
|
40
|
-
const list = new BlockList();
|
|
41
|
-
for (const entry of BLOCKED_SUBNETS) {
|
|
42
|
-
list.addSubnet(entry.subnet, entry.prefix, entry.family);
|
|
43
|
-
}
|
|
44
|
-
return list;
|
|
45
|
-
}
|
|
46
|
-
function extractMappedIpv4(ip) {
|
|
47
|
-
if (!ip.startsWith(IPV6_MAPPED_PREFIX))
|
|
48
|
-
return null;
|
|
49
|
-
const mapped = ip.slice(IPV6_MAPPED_PREFIX.length);
|
|
50
|
-
return isIP(mapped) === 4 ? mapped : null;
|
|
51
|
-
}
|
|
52
|
-
function stripIpv6ZoneId(ip) {
|
|
53
|
-
const zoneIndex = ip.indexOf('%');
|
|
54
|
-
if (zoneIndex <= 0)
|
|
55
|
-
return ip;
|
|
56
|
-
return ip.slice(0, zoneIndex);
|
|
57
|
-
}
|
|
58
|
-
export function normalizeIpForBlockList(input) {
|
|
59
|
-
const lowered = input.trim().toLowerCase();
|
|
60
|
-
if (!lowered)
|
|
61
|
-
return null;
|
|
62
|
-
const normalizedInput = stripIpv6ZoneId(lowered);
|
|
63
|
-
if (!normalizedInput)
|
|
64
|
-
return null;
|
|
65
|
-
const ipType = isIP(normalizedInput);
|
|
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;
|
|
77
|
-
}
|
|
78
|
-
}
|
|
79
|
-
//# sourceMappingURL=ip-blocklist.js.map
|