@j0hanz/fetch-url-mcp 1.12.7 → 1.12.9

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.
Files changed (147) hide show
  1. package/dist/http/auth.d.ts +9 -4
  2. package/dist/http/auth.d.ts.map +1 -1
  3. package/dist/http/auth.js +30 -5
  4. package/dist/http/index.d.ts +4 -0
  5. package/dist/http/index.d.ts.map +1 -0
  6. package/dist/http/index.js +5 -0
  7. package/dist/http/native.d.ts +73 -0
  8. package/dist/http/native.d.ts.map +1 -1
  9. package/dist/http/native.js +597 -10
  10. package/dist/http/rate-limit.d.ts +7 -2
  11. package/dist/http/rate-limit.d.ts.map +1 -1
  12. package/dist/http/rate-limit.js +9 -4
  13. package/dist/index.d.ts +17 -0
  14. package/dist/index.d.ts.map +1 -1
  15. package/dist/index.js +68 -6
  16. package/dist/lib/config.d.ts.map +1 -1
  17. package/dist/lib/config.js +22 -2
  18. package/dist/lib/core.d.ts +57 -5
  19. package/dist/lib/core.d.ts.map +1 -1
  20. package/dist/lib/core.js +155 -5
  21. package/dist/lib/error/classes.d.ts +19 -0
  22. package/dist/lib/error/classes.d.ts.map +1 -0
  23. package/dist/lib/error/classes.js +107 -0
  24. package/dist/lib/error/classify.d.ts +4 -0
  25. package/dist/lib/error/classify.d.ts.map +1 -0
  26. package/dist/lib/error/classify.js +154 -0
  27. package/dist/lib/error/codes.d.ts +23 -0
  28. package/dist/lib/error/codes.d.ts.map +1 -0
  29. package/dist/lib/error/codes.js +22 -0
  30. package/dist/lib/error/index.d.ts +6 -0
  31. package/dist/lib/error/index.d.ts.map +1 -0
  32. package/dist/lib/error/index.js +7 -0
  33. package/dist/lib/{error-messages.d.ts → error/messages.d.ts} +2 -2
  34. package/dist/lib/error/messages.d.ts.map +1 -0
  35. package/dist/lib/{error-messages.js → error/messages.js} +2 -2
  36. package/dist/lib/{tool-errors.d.ts → error/payload.d.ts} +7 -13
  37. package/dist/lib/error/payload.d.ts.map +1 -0
  38. package/dist/lib/error/payload.js +108 -0
  39. package/dist/lib/mcp-interop.d.ts.map +1 -1
  40. package/dist/lib/mcp-interop.js +4 -6
  41. package/dist/lib/net/http.d.ts.map +1 -0
  42. package/dist/lib/{http.js → net/http.js} +5 -7
  43. package/dist/lib/net/index.d.ts +4 -0
  44. package/dist/lib/net/index.d.ts.map +1 -0
  45. package/dist/lib/net/index.js +5 -0
  46. package/dist/lib/{fetch-pipeline.d.ts → net/pipeline.d.ts} +3 -3
  47. package/dist/lib/net/pipeline.d.ts.map +1 -0
  48. package/dist/lib/{fetch-pipeline.js → net/pipeline.js} +4 -5
  49. package/dist/lib/{url.d.ts → net/url.d.ts} +1 -1
  50. package/dist/lib/net/url.d.ts.map +1 -0
  51. package/dist/lib/{url.js → net/url.js} +4 -5
  52. package/dist/lib/utils.d.ts +2 -32
  53. package/dist/lib/utils.d.ts.map +1 -1
  54. package/dist/lib/utils.js +28 -146
  55. package/dist/resources/index.d.ts.map +1 -1
  56. package/dist/resources/index.js +11 -6
  57. package/dist/schemas.d.ts +1 -1
  58. package/dist/schemas.js +1 -1
  59. package/dist/server.d.ts.map +1 -1
  60. package/dist/server.js +8 -9
  61. package/dist/tasks/index.d.ts +2 -0
  62. package/dist/tasks/index.d.ts.map +1 -0
  63. package/dist/tasks/index.js +3 -0
  64. package/dist/tasks/manager.d.ts +123 -1
  65. package/dist/tasks/manager.d.ts.map +1 -1
  66. package/dist/tasks/manager.js +756 -10
  67. package/dist/tools/{fetch-url.d.ts → index.d.ts} +4 -5
  68. package/dist/tools/index.d.ts.map +1 -0
  69. package/dist/tools/{fetch-url.js → index.js} +7 -8
  70. package/dist/transform/index.d.ts +279 -0
  71. package/dist/transform/index.d.ts.map +1 -0
  72. package/dist/transform/index.js +5235 -0
  73. package/package.json +2 -2
  74. package/dist/cli.d.ts +0 -19
  75. package/dist/cli.d.ts.map +0 -1
  76. package/dist/cli.js +0 -65
  77. package/dist/http/health.d.ts +0 -8
  78. package/dist/http/health.d.ts.map +0 -1
  79. package/dist/http/health.js +0 -152
  80. package/dist/http/helpers.d.ts +0 -68
  81. package/dist/http/helpers.d.ts.map +0 -1
  82. package/dist/http/helpers.js +0 -402
  83. package/dist/lib/error-codes.d.ts +0 -13
  84. package/dist/lib/error-codes.d.ts.map +0 -1
  85. package/dist/lib/error-codes.js +0 -12
  86. package/dist/lib/error-messages.d.ts.map +0 -1
  87. package/dist/lib/fetch-pipeline.d.ts.map +0 -1
  88. package/dist/lib/http.d.ts.map +0 -1
  89. package/dist/lib/logger-names.d.ts +0 -16
  90. package/dist/lib/logger-names.d.ts.map +0 -1
  91. package/dist/lib/logger-names.js +0 -15
  92. package/dist/lib/session.d.ts +0 -44
  93. package/dist/lib/session.d.ts.map +0 -1
  94. package/dist/lib/session.js +0 -137
  95. package/dist/lib/tool-errors.d.ts.map +0 -1
  96. package/dist/lib/tool-errors.js +0 -253
  97. package/dist/lib/url.d.ts.map +0 -1
  98. package/dist/lib/zod.d.ts +0 -3
  99. package/dist/lib/zod.d.ts.map +0 -1
  100. package/dist/lib/zod.js +0 -27
  101. package/dist/tasks/call-contract.d.ts +0 -25
  102. package/dist/tasks/call-contract.d.ts.map +0 -1
  103. package/dist/tasks/call-contract.js +0 -59
  104. package/dist/tasks/execution.d.ts +0 -16
  105. package/dist/tasks/execution.d.ts.map +0 -1
  106. package/dist/tasks/execution.js +0 -241
  107. package/dist/tasks/handlers.d.ts +0 -11
  108. package/dist/tasks/handlers.d.ts.map +0 -1
  109. package/dist/tasks/handlers.js +0 -157
  110. package/dist/tasks/owner.d.ts +0 -43
  111. package/dist/tasks/owner.d.ts.map +0 -1
  112. package/dist/tasks/owner.js +0 -144
  113. package/dist/tasks/registry.d.ts +0 -20
  114. package/dist/tasks/registry.d.ts.map +0 -1
  115. package/dist/tasks/registry.js +0 -40
  116. package/dist/tasks/waiters.d.ts +0 -27
  117. package/dist/tasks/waiters.d.ts.map +0 -1
  118. package/dist/tasks/waiters.js +0 -114
  119. package/dist/tools/fetch-url.d.ts.map +0 -1
  120. package/dist/transform/dom-prep.d.ts +0 -16
  121. package/dist/transform/dom-prep.d.ts.map +0 -1
  122. package/dist/transform/dom-prep.js +0 -1287
  123. package/dist/transform/html-translators.d.ts +0 -5
  124. package/dist/transform/html-translators.d.ts.map +0 -1
  125. package/dist/transform/html-translators.js +0 -697
  126. package/dist/transform/markdown-cleanup.d.ts +0 -10
  127. package/dist/transform/markdown-cleanup.d.ts.map +0 -1
  128. package/dist/transform/markdown-cleanup.js +0 -542
  129. package/dist/transform/metadata.d.ts +0 -18
  130. package/dist/transform/metadata.d.ts.map +0 -1
  131. package/dist/transform/metadata.js +0 -462
  132. package/dist/transform/next-flight.d.ts +0 -2
  133. package/dist/transform/next-flight.d.ts.map +0 -1
  134. package/dist/transform/next-flight.js +0 -374
  135. package/dist/transform/shared.d.ts +0 -8
  136. package/dist/transform/shared.d.ts.map +0 -1
  137. package/dist/transform/shared.js +0 -137
  138. package/dist/transform/transform.d.ts +0 -38
  139. package/dist/transform/transform.d.ts.map +0 -1
  140. package/dist/transform/transform.js +0 -1042
  141. package/dist/transform/types.d.ts +0 -124
  142. package/dist/transform/types.d.ts.map +0 -1
  143. package/dist/transform/types.js +0 -5
  144. package/dist/transform/worker-pool.d.ts +0 -76
  145. package/dist/transform/worker-pool.d.ts.map +0 -1
  146. package/dist/transform/worker-pool.js +0 -725
  147. /package/dist/lib/{http.d.ts → net/http.d.ts} +0 -0
@@ -0,0 +1,154 @@
1
+ import { ErrorCode, McpError } from '@modelcontextprotocol/sdk/types.js';
2
+ import { logError, logWarn } from '../core.js';
3
+ import { FetchError, isAbortError, isSystemError } from './classes.js';
4
+ import { ErrorCategory, SystemErrors } from './codes.js';
5
+ import { createToolErrorResponse, sanitizeToolErrorDetails, stripMcpErrorPrefix, } from './payload.js';
6
+ function toToolErrorResponse(payload) {
7
+ return createToolErrorResponse(payload.error, payload.url, payload);
8
+ }
9
+ function isValidationError(error) {
10
+ return (error instanceof Error &&
11
+ isSystemError(error) &&
12
+ error.code === SystemErrors.VALIDATION_ERROR);
13
+ }
14
+ function buildUpstreamHttpMessage(error) {
15
+ const { statusCode } = error;
16
+ if (statusCode === 404) {
17
+ return `We couldn't find the resource at the target URL.`;
18
+ }
19
+ return `An error occurred when communicating with the target URL.`;
20
+ }
21
+ function mapFetchToolError(error, fallbackUrl) {
22
+ const { code: detailsCode, reason } = error.details;
23
+ let { code } = error;
24
+ if (typeof detailsCode === 'string') {
25
+ code = detailsCode;
26
+ }
27
+ else if (reason === SystemErrors.QUEUE_FULL) {
28
+ code = SystemErrors.QUEUE_FULL;
29
+ }
30
+ const url = error.url || fallbackUrl;
31
+ const details = sanitizeToolErrorDetails(error.details);
32
+ if (reason === 'timeout') {
33
+ return {
34
+ error: 'The request to the target timed out.',
35
+ url,
36
+ category: ErrorCategory.UPSTREAM_TIMEOUT,
37
+ code,
38
+ statusCode: error.statusCode,
39
+ upstreamMessage: error.message,
40
+ ...(details ? { details } : {}),
41
+ };
42
+ }
43
+ if (reason === 'aborted') {
44
+ return {
45
+ error: 'The request to the target was cancelled.',
46
+ url,
47
+ category: ErrorCategory.UPSTREAM_ABORTED,
48
+ code,
49
+ statusCode: error.statusCode,
50
+ upstreamMessage: error.message,
51
+ ...(details ? { details } : {}),
52
+ };
53
+ }
54
+ if (reason === SystemErrors.QUEUE_FULL) {
55
+ return {
56
+ error: error.message,
57
+ url,
58
+ category: ErrorCategory.QUEUE_FULL,
59
+ code,
60
+ statusCode: error.statusCode,
61
+ ...(details ? { details } : {}),
62
+ };
63
+ }
64
+ const isRealHttpError = typeof error.details['httpStatus'] === 'number';
65
+ if (isRealHttpError && error.statusCode >= 400) {
66
+ return {
67
+ error: buildUpstreamHttpMessage(error),
68
+ url,
69
+ category: error.statusCode === 429
70
+ ? ErrorCategory.UPSTREAM_RATE_LIMITED
71
+ : ErrorCategory.UPSTREAM_HTTP_ERROR,
72
+ code,
73
+ statusCode: error.statusCode,
74
+ upstreamMessage: error.message,
75
+ ...(details ? { details } : {}),
76
+ };
77
+ }
78
+ return {
79
+ error: error.message,
80
+ url,
81
+ category: ErrorCategory.FETCH_ERROR,
82
+ code,
83
+ statusCode: error.statusCode,
84
+ ...(details ? { details } : {}),
85
+ };
86
+ }
87
+ function mapGenericToolError(error, url, fallbackMessage) {
88
+ if (isValidationError(error)) {
89
+ return {
90
+ error: error.message,
91
+ url,
92
+ category: ErrorCategory.VALIDATION_ERROR,
93
+ code: SystemErrors.VALIDATION_ERROR,
94
+ };
95
+ }
96
+ const isAborted = isAbortError(error);
97
+ return {
98
+ error: error instanceof Error
99
+ ? error.message
100
+ : `${fallbackMessage}: unknown error`,
101
+ url,
102
+ category: isAborted
103
+ ? ErrorCategory.UPSTREAM_ABORTED
104
+ : ErrorCategory.FETCH_ERROR,
105
+ code: isAborted ? SystemErrors.ABORTED : SystemErrors.FETCH_ERROR,
106
+ };
107
+ }
108
+ function mapMcpToolError(error, url) {
109
+ return {
110
+ error: stripMcpErrorPrefix(error.message),
111
+ url,
112
+ category: ErrorCategory.MCP_ERROR,
113
+ code: error.code,
114
+ statusCode: error.code,
115
+ ...(error.data !== undefined ? { data: error.data } : {}),
116
+ };
117
+ }
118
+ function resolveToolErrorPayload(error, url, fallbackMessage) {
119
+ if (error instanceof FetchError) {
120
+ return mapFetchToolError(error, url);
121
+ }
122
+ if (error instanceof McpError) {
123
+ return mapMcpToolError(error, url);
124
+ }
125
+ return mapGenericToolError(error, url, fallbackMessage);
126
+ }
127
+ export function handleToolError(error, url, fallbackMessage = 'Operation failed') {
128
+ return toToolErrorResponse(resolveToolErrorPayload(error, url, fallbackMessage));
129
+ }
130
+ export function classifyAndLogToolError(error, meta, loggerName, toolName, fallbackMessage) {
131
+ if (error instanceof McpError) {
132
+ if (error.code === ErrorCode.MethodNotFound) {
133
+ logError(`${toolName} tool protocol error`, { url: meta.url, durationMs: meta.durationMs, error }, loggerName);
134
+ throw error;
135
+ }
136
+ logWarn(`${toolName} tool error`, { url: meta.url, durationMs: meta.durationMs, error }, loggerName);
137
+ return handleToolError(error, meta.url, fallbackMessage);
138
+ }
139
+ if (error instanceof FetchError || isAbortError(error)) {
140
+ logWarn(`${toolName} request failed`, {
141
+ url: meta.url,
142
+ error: error instanceof Error ? error.message : String(error),
143
+ durationMs: meta.durationMs,
144
+ }, loggerName);
145
+ }
146
+ else {
147
+ logError(`${toolName} request failed unexpectedly`, {
148
+ url: meta.url,
149
+ error: error instanceof Error ? error.message : String(error),
150
+ durationMs: meta.durationMs,
151
+ }, loggerName);
152
+ }
153
+ return handleToolError(error, meta.url, fallbackMessage);
154
+ }
@@ -0,0 +1,23 @@
1
+ export declare const SystemErrors: {
2
+ readonly EBLOCKED: "EBLOCKED";
3
+ readonly ETIMEOUT: "ETIMEOUT";
4
+ readonly EINVAL: "EINVAL";
5
+ readonly ENODATA: "ENODATA";
6
+ readonly EBADREDIRECT: "EBADREDIRECT";
7
+ readonly EUNSUPPORTEDPROTOCOL: "EUNSUPPORTEDPROTOCOL";
8
+ readonly FETCH_ERROR: "FETCH_ERROR";
9
+ readonly ABORTED: "ABORTED";
10
+ readonly QUEUE_FULL: "queue_full";
11
+ readonly VALIDATION_ERROR: "VALIDATION_ERROR";
12
+ };
13
+ export declare const ErrorCategory: {
14
+ readonly UPSTREAM_TIMEOUT: "upstream_timeout";
15
+ readonly UPSTREAM_ABORTED: "upstream_aborted";
16
+ readonly UPSTREAM_RATE_LIMITED: "upstream_rate_limited";
17
+ readonly UPSTREAM_HTTP_ERROR: "upstream_http_error";
18
+ readonly QUEUE_FULL: "queue_full";
19
+ readonly FETCH_ERROR: "fetch_error";
20
+ readonly VALIDATION_ERROR: "validation_error";
21
+ readonly MCP_ERROR: "mcp_error";
22
+ };
23
+ //# sourceMappingURL=codes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"codes.d.ts","sourceRoot":"","sources":["../../../src/lib/error/codes.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,YAAY;;;;;;;;;;;CAWf,CAAC;AAEX,eAAO,MAAM,aAAa;;;;;;;;;CAShB,CAAC"}
@@ -0,0 +1,22 @@
1
+ export const SystemErrors = {
2
+ EBLOCKED: 'EBLOCKED',
3
+ ETIMEOUT: 'ETIMEOUT',
4
+ EINVAL: 'EINVAL',
5
+ ENODATA: 'ENODATA',
6
+ EBADREDIRECT: 'EBADREDIRECT',
7
+ EUNSUPPORTEDPROTOCOL: 'EUNSUPPORTEDPROTOCOL',
8
+ FETCH_ERROR: 'FETCH_ERROR',
9
+ ABORTED: 'ABORTED',
10
+ QUEUE_FULL: 'queue_full',
11
+ VALIDATION_ERROR: 'VALIDATION_ERROR',
12
+ };
13
+ export const ErrorCategory = {
14
+ UPSTREAM_TIMEOUT: 'upstream_timeout',
15
+ UPSTREAM_ABORTED: 'upstream_aborted',
16
+ UPSTREAM_RATE_LIMITED: 'upstream_rate_limited',
17
+ UPSTREAM_HTTP_ERROR: 'upstream_http_error',
18
+ QUEUE_FULL: 'queue_full',
19
+ FETCH_ERROR: 'fetch_error',
20
+ VALIDATION_ERROR: 'validation_error',
21
+ MCP_ERROR: 'mcp_error',
22
+ };
@@ -0,0 +1,6 @@
1
+ export * from './codes.js';
2
+ export * from './classes.js';
3
+ export * from './payload.js';
4
+ export * from './messages.js';
5
+ export * from './classify.js';
6
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/lib/error/index.ts"],"names":[],"mappings":"AAGA,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC"}
@@ -0,0 +1,7 @@
1
+ // Area contract: shared error codes, classes, payload helpers, and classification.
2
+ // Export only reusable error primitives; keep logging, transport dispatch, and feature logic out.
3
+ export * from './codes.js';
4
+ export * from './classes.js';
5
+ export * from './payload.js';
6
+ export * from './messages.js';
7
+ export * from './classify.js';
@@ -1,4 +1,4 @@
1
- import { CodedError } from './utils.js';
1
+ import { CodedError } from './classes.js';
2
2
  export declare function blockedIpError(target: string, reason: 'cloud-metadata' | 'private'): CodedError;
3
3
  export declare function blockedHostError(hostname: string): CodedError;
4
4
  export declare function blockedCnameError(hostname: string, cname: string): CodedError;
@@ -10,4 +10,4 @@ export declare function invalidUrlError(): CodedError;
10
10
  export declare function invalidRedirectError(): CodedError;
11
11
  export declare function redirectCredentialsError(): CodedError;
12
12
  export declare function unsupportedProtocolError(protocol: string): CodedError;
13
- //# sourceMappingURL=error-messages.d.ts.map
13
+ //# sourceMappingURL=messages.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"messages.d.ts","sourceRoot":"","sources":["../../../src/lib/error/messages.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAK1C,wBAAgB,cAAc,CAC5B,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,gBAAgB,GAAG,SAAS,GACnC,UAAU,CAUZ;AAED,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,UAAU,CAM7D;AAED,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,UAAU,CAM7E;AAED,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,UAAU,CAM5D;AAED,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,UAAU,CAM9D;AAED,wBAAgB,yBAAyB,CAAC,QAAQ,EAAE,MAAM,GAAG,UAAU,CAMtE;AAED,wBAAgB,oBAAoB,IAAI,UAAU,CAMjD;AAED,wBAAgB,eAAe,IAAI,UAAU,CAG5C;AAID,wBAAgB,oBAAoB,IAAI,UAAU,CAMjD;AAED,wBAAgB,wBAAwB,IAAI,UAAU,CAMrD;AAED,wBAAgB,wBAAwB,CAAC,QAAQ,EAAE,MAAM,GAAG,UAAU,CAMrE"}
@@ -1,5 +1,5 @@
1
- import { SystemErrors } from './error-codes.js';
2
- import { CodedError } from './utils.js';
1
+ import { CodedError } from './classes.js';
2
+ import { SystemErrors } from './codes.js';
3
3
  // ── DNS / Network ──────────────────────────────────────────────────
4
4
  export function blockedIpError(target, reason) {
5
5
  const detail = reason === 'cloud-metadata'
@@ -16,24 +16,18 @@ export interface ToolErrorPayload extends Record<string, unknown> {
16
16
  details?: Record<string, unknown>;
17
17
  data?: unknown;
18
18
  }
19
- export declare function createToolErrorResponse(message: string, url: string, extra?: {
19
+ export interface ToolErrorExtra {
20
20
  category?: string;
21
21
  code?: string | number;
22
22
  statusCode?: number;
23
23
  upstreamMessage?: string;
24
24
  details?: Record<string, unknown>;
25
25
  data?: unknown;
26
- }): ToolErrorResponse;
27
- export declare function createToolErrorPayload(message: string, url: string, extra?: {
28
- category?: string;
29
- code?: string | number;
30
- statusCode?: number;
31
- upstreamMessage?: string;
32
- details?: Record<string, unknown>;
33
- data?: unknown;
34
- }): ToolErrorPayload;
26
+ }
27
+ export declare function sanitizeToolErrorDetails(details: Readonly<Record<string, unknown>>): Record<string, unknown> | undefined;
28
+ export declare function createToolErrorResponse(message: string, url: string, extra?: ToolErrorExtra): ToolErrorResponse;
29
+ export declare function createToolErrorPayload(message: string, url: string, extra?: ToolErrorExtra): ToolErrorPayload;
35
30
  export declare function tryReadToolErrorPayload(value: unknown): ToolErrorPayload | undefined;
36
31
  export declare function tryReadToolErrorMessage(value: unknown): string | undefined;
37
- export declare function handleToolError(error: unknown, url: string, fallbackMessage?: string): ToolErrorResponse;
38
- export declare function classifyAndLogToolError(error: unknown, meta: ToolErrorLogMeta, loggerName: string, toolName: string, fallbackMessage: string): ToolErrorResponse;
39
- //# sourceMappingURL=tool-errors.d.ts.map
32
+ export declare function stripMcpErrorPrefix(message: string): string;
33
+ //# sourceMappingURL=payload.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"payload.d.ts","sourceRoot":"","sources":["../../../src/lib/error/payload.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,oCAAoC,CAAC;AAOzE,MAAM,MAAM,iBAAiB,GAAG,cAAc,GAAG;IAC/C,OAAO,EAAE,IAAI,CAAC;CACf,CAAC;AAEF,MAAM,WAAW,gBAAgB;IAC/B,GAAG,EAAE,MAAM,CAAC;IACZ,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,gBAAiB,SAAQ,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAC/D,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACvB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClC,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACvB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClC,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAmBD,wBAAgB,wBAAwB,CACtC,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,GACzC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAqBrC;AAED,wBAAgB,uBAAuB,CACrC,OAAO,EAAE,MAAM,EACf,GAAG,EAAE,MAAM,EACX,KAAK,CAAC,EAAE,cAAc,GACrB,iBAAiB,CAOnB;AAED,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,MAAM,EACf,GAAG,EAAE,MAAM,EACX,KAAK,CAAC,EAAE,cAAc,GACrB,gBAAgB,CAgBlB;AAiBD,wBAAgB,uBAAuB,CACrC,KAAK,EAAE,OAAO,GACb,gBAAgB,GAAG,SAAS,CA2B9B;AAED,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAE1E;AAID,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAE3D"}
@@ -0,0 +1,108 @@
1
+ import {} from '@modelcontextprotocol/sdk/types.js';
2
+ import { z } from 'zod';
3
+ import { isObject } from '../utils.js';
4
+ import { SystemErrors } from './codes.js';
5
+ const toolErrorPayloadSchema = z.strictObject({
6
+ error: z.string(),
7
+ url: z.string(),
8
+ category: z.string().optional(),
9
+ code: z.union([z.string(), z.number()]).optional(),
10
+ statusCode: z.number().int().optional(),
11
+ upstreamMessage: z.string().optional(),
12
+ details: z.record(z.string(), z.unknown()).optional(),
13
+ data: z.unknown().optional(),
14
+ });
15
+ const PUBLIC_ERROR_REASONS = new Set([
16
+ 'aborted',
17
+ SystemErrors.QUEUE_FULL,
18
+ 'timeout',
19
+ ]);
20
+ export function sanitizeToolErrorDetails(details) {
21
+ const sanitized = {};
22
+ const { retryAfter, timeout, reason } = details;
23
+ if (typeof retryAfter === 'number' ||
24
+ typeof retryAfter === 'string' ||
25
+ retryAfter === null) {
26
+ sanitized['retryAfter'] = retryAfter;
27
+ }
28
+ if (typeof timeout === 'number' && Number.isFinite(timeout) && timeout >= 0) {
29
+ sanitized['timeout'] = timeout;
30
+ }
31
+ if (typeof reason === 'string' && PUBLIC_ERROR_REASONS.has(reason)) {
32
+ sanitized['reason'] = reason;
33
+ }
34
+ return Object.keys(sanitized).length > 0 ? sanitized : undefined;
35
+ }
36
+ export function createToolErrorResponse(message, url, extra) {
37
+ const errorContent = createToolErrorPayload(message, url, extra);
38
+ return {
39
+ content: [{ type: 'text', text: JSON.stringify(errorContent) }],
40
+ isError: true,
41
+ };
42
+ }
43
+ export function createToolErrorPayload(message, url, extra) {
44
+ const payload = {
45
+ error: message,
46
+ url,
47
+ };
48
+ if (extra?.category !== undefined)
49
+ payload.category = extra.category;
50
+ if (extra?.code !== undefined)
51
+ payload.code = extra.code;
52
+ if (extra?.statusCode !== undefined)
53
+ payload.statusCode = extra.statusCode;
54
+ if (extra?.upstreamMessage !== undefined) {
55
+ payload.upstreamMessage = extra.upstreamMessage;
56
+ }
57
+ if (extra?.details)
58
+ payload.details = extra.details;
59
+ if (extra?.data !== undefined)
60
+ payload.data = extra.data;
61
+ return payload;
62
+ }
63
+ function normalizeToolErrorPayload(value) {
64
+ return createToolErrorPayload(value.error, value.url, {
65
+ ...(value.category !== undefined ? { category: value.category } : {}),
66
+ ...(value.code !== undefined ? { code: value.code } : {}),
67
+ ...(value.statusCode !== undefined ? { statusCode: value.statusCode } : {}),
68
+ ...(value.upstreamMessage !== undefined
69
+ ? { upstreamMessage: value.upstreamMessage }
70
+ : {}),
71
+ ...(value.details ? { details: value.details } : {}),
72
+ ...(value.data !== undefined ? { data: value.data } : {}),
73
+ });
74
+ }
75
+ export function tryReadToolErrorPayload(value) {
76
+ if (!isObject(value))
77
+ return undefined;
78
+ const structuredContent = toolErrorPayloadSchema.safeParse(value['structuredContent']);
79
+ if (structuredContent.success) {
80
+ return normalizeToolErrorPayload(structuredContent.data);
81
+ }
82
+ const { content } = value;
83
+ if (!Array.isArray(content) || content.length === 0)
84
+ return undefined;
85
+ const firstBlock = content[0];
86
+ if (!isObject(firstBlock))
87
+ return undefined;
88
+ if (firstBlock['type'] !== 'text')
89
+ return undefined;
90
+ if (typeof firstBlock['text'] !== 'string')
91
+ return undefined;
92
+ try {
93
+ const payload = toolErrorPayloadSchema.safeParse(JSON.parse(firstBlock['text']));
94
+ return payload.success
95
+ ? normalizeToolErrorPayload(payload.data)
96
+ : undefined;
97
+ }
98
+ catch {
99
+ return undefined;
100
+ }
101
+ }
102
+ export function tryReadToolErrorMessage(value) {
103
+ return tryReadToolErrorPayload(value)?.error;
104
+ }
105
+ const mcpErrorPrefixPattern = /^MCP error -?\d+:\s*/;
106
+ export function stripMcpErrorPrefix(message) {
107
+ return message.replace(mcpErrorPrefixPattern, '');
108
+ }
@@ -1 +1 @@
1
- {"version":3,"file":"mcp-interop.d.ts","sourceRoot":"","sources":["../../src/lib/mcp-interop.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAKzE,OAAO,EAAE,QAAQ,EAAE,MAAM,oCAAoC,CAAC;AAC9D,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAOxB,wBAAgB,cAAc,CAC5B,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,EACf,IAAI,CAAC,EAAE,OAAO,GACb,QAAQ,CAIV;AAMD,MAAM,MAAM,SAAS,GAAG,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;AAK/C,QAAA,MAAM,oBAAoB;;;;;;;kBAKxB,CAAC;AAeH,QAAA,MAAM,qBAAqB;;;;;;;;;;;;oBAGzB,CAAC;AACH,QAAA,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;sBAGxB,CAAC;AACH,KAAK,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAC3D,KAAK,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AACjE,KAAK,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAC/D,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,OAAO,GAAG,OAAO,CAE5D;AACD,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI,IAAI,cAAc,CAEtE;AACD,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,OAAO,GACZ,IAAI,IAAI,mBAAmB,CAE7B;AACD,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI,IAAI,kBAAkB,CAE1E;AAUD,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,OAAO,CAG7E;AACD,wBAAgB,yBAAyB,CACvC,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAChC,OAAO,CAUT;AAMD,KAAK,eAAe,GAAG,MAAM,IAAI,CAAC;AAClC,KAAK,gBAAgB,GAAG,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,CAAC,EAAE,OAAO,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;AAChF,UAAU,gBAAgB;IACxB,KAAK,CAAC,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,EAAE,CAAA;KAAE,EAAE,CAAC;CAChE;AAsDD,wBAAgB,8BAA8B,CAC5C,MAAM,EAAE,SAAS,EACjB,QAAQ,EAAE,eAAe,GACxB,IAAI,CAGN;AAED;;;;;GAKG;AACH,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,SAAS,GAChB,gBAAgB,GAAG,IAAI,CAMzB;AAUD;;;;;GAKG;AACH,wBAAgB,yBAAyB,CACvC,MAAM,EAAE,SAAS,EACjB,OAAO,EAAE,OAAO,GACf,IAAI,CAgBN;AAyDD,wBAAgB,wBAAwB,CACtC,MAAM,EAAE,SAAS,EACjB,IAAI,EAAE,MAAM,EACZ,YAAY,EAAE,gBAAgB,GAC7B,IAAI,CAGN;AAMD,KAAK,aAAa,GAAG,MAAM,GAAG,MAAM,CAAC;AAErC,UAAU,WAAW;IACnB,aAAa,CAAC,EAAE,aAAa,GAAG,SAAS,CAAC;IAC1C,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,0BAA0B;IACzC,aAAa,EAAE,aAAa,CAAC;IAC7B,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACjC;AAED,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,wBAAwB,CAAC;IACjC,MAAM,EAAE,0BAA0B,CAAC;CACpC;AAED,MAAM,WAAW,gBAAgB;IAC/B,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC5B,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB,aAAa,CAAC,EAAE;QAAE,MAAM,EAAE,OAAO,CAAA;KAAE,CAAC;IACpC,gBAAgB,CAAC,EAAE,CAAC,YAAY,EAAE,oBAAoB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACzE,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IACzE,iBAAiB,CAAC,EAAE,MAAM,OAAO,CAAC;CACnC;AAED,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;CACrE;AAiND,eAAO,MAAM,sBAAsB,GACjC,QAAQ,gBAAgB,KACvB,gBAAsD,CAAC;AAE1D,wBAAgB,eAAe,CAAC,CAAC,EAC/B,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EACpB,IAAI,EAAE,OAAO,EACb,SAAS,EAAE,MAAM,EACjB,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,MAAM,GACb,CAAC,CAQH"}
1
+ {"version":3,"file":"mcp-interop.d.ts","sourceRoot":"","sources":["../../src/lib/mcp-interop.ts"],"names":[],"mappings":"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"}
@@ -1,11 +1,9 @@
1
+ import { ListToolsRequestSchema, ListToolsResultSchema, McpError, } from '@modelcontextprotocol/sdk/types.js';
1
2
  import { setTimeout as setTimeoutPromise } from 'node:timers/promises';
2
- import { ListToolsRequestSchema, ListToolsResultSchema, } from '@modelcontextprotocol/sdk/types.js';
3
- import { McpError } from '@modelcontextprotocol/sdk/types.js';
4
3
  import { z } from 'zod';
5
- import { logError, logWarn } from './core.js';
6
- import { Loggers } from './logger-names.js';
7
- import { getErrorMessage, isObject } from './utils.js';
8
- import { formatZodError } from './zod.js';
4
+ import { logError, Loggers, logWarn } from './core.js';
5
+ import { getErrorMessage } from './error/index.js';
6
+ import { formatZodError, isObject } from './utils.js';
9
7
  export function createMcpError(code, message, data) {
10
8
  const error = new McpError(code, message, data);
11
9
  error.message = message;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"http.d.ts","sourceRoot":"","sources":["../../../src/lib/net/http.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,KAAK,EAAmB,MAAM,QAAQ,CAAC;AAwBhD,OAAO,EAQL,KAAK,eAAe,EAErB,MAAM,UAAU,CAAC;AAywClB,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;AAoKD,UAAU,YAAY;IACpB,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB;AA6ND,wBAAgB,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAE/C;AACD,wBAAgB,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG;IAC/C,aAAa,EAAE,MAAM,CAAC;IACtB,QAAQ,EAAE,MAAM,CAAC;CAClB,CAEA;AACD,wBAAgB,uBAAuB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAEjE;AACD,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,eAAe,CAE9D;AACD,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAExD;AACD,wBAAgB,mBAAmB,CACjC,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,MAAM,GACb,qBAAqB,CAEvB;AACD,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,qBAAqB,EAC9B,QAAQ,EAAE,QAAQ,EAClB,WAAW,CAAC,EAAE,MAAM,GACnB,IAAI,CAEN;AACD,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,qBAAqB,EAC9B,KAAK,EAAE,OAAO,EACd,MAAM,CAAC,EAAE,MAAM,GACd,IAAI,CAEN;AACD,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,CAAC;IAAC,KAAK,CAAC,EAAE,KAAK,CAAA;CAAE,CAAC,CAE7D;AACD,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,CASzC;AACD,wBAAsB,kBAAkB,CACtC,aAAa,EAAE,MAAM,EACrB,OAAO,CAAC,EAAE,YAAY,GACrB,OAAO,CAAC,MAAM,CAAC,CAEjB;AACD,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"}
@@ -7,13 +7,11 @@ import {} from 'node:stream/web';
7
7
  import tls from 'node:tls';
8
8
  import { createBrotliDecompress, createGunzip, createInflate } from 'node:zlib';
9
9
  import { Agent } from 'undici';
10
- import { config, getOperationId, getRequestId, logDebug, logError, logWarn, redactUrl, } from './core.js';
11
- import { SystemErrors } from './error-codes.js';
12
- import { invalidRedirectError, redirectCredentialsError, unsupportedProtocolError, } from './error-messages.js';
13
- import { Loggers } from './logger-names.js';
14
- import { isIP } from './url.js';
15
- import { BLOCKED_HOST_SUFFIXES, createDnsPreflight, IpBlocker, RawUrlTransformer, SafeDnsResolver, UrlNormalizer, } from './url.js';
16
- import { composeAbortSignal, FetchError, isAbortError, isError, isObject, isSystemError, toError, } from './utils.js';
10
+ import { config } from '../config.js';
11
+ import { getOperationId, getRequestId, logDebug, logError, Loggers, logWarn, redactUrl, } from '../core.js';
12
+ import { FetchError, invalidRedirectError, isAbortError, isError, isSystemError, redirectCredentialsError, SystemErrors, toError, unsupportedProtocolError, } from '../error/index.js';
13
+ import { composeAbortSignal, isObject } from '../utils.js';
14
+ import { BLOCKED_HOST_SUFFIXES, createDnsPreflight, IpBlocker, isIP, RawUrlTransformer, SafeDnsResolver, UrlNormalizer, } from './url.js';
17
15
  // ═══════════════════════════════════════════════════════════════════
18
16
  // ENCODING DETECTION
19
17
  // ═══════════════════════════════════════════════════════════════════
@@ -0,0 +1,4 @@
1
+ export * from './http.js';
2
+ export * from './url.js';
3
+ export * from './pipeline.js';
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/lib/net/index.ts"],"names":[],"mappings":"AAGA,cAAc,WAAW,CAAC;AAC1B,cAAc,UAAU,CAAC;AACzB,cAAc,eAAe,CAAC"}
@@ -0,0 +1,5 @@
1
+ // Area contract: shared network helpers for URL validation, HTTP fetch, and pipeline composition.
2
+ // Export only reusable network primitives; keep MCP transport and application orchestration out.
3
+ export * from './http.js';
4
+ export * from './url.js';
5
+ export * from './pipeline.js';
@@ -1,5 +1,5 @@
1
- import { type MarkdownTransformResult } from '../transform/types.js';
2
- import { withSignal } from './utils.js';
1
+ import { type MarkdownTransformResult } from '../../transform/index.js';
2
+ import { withSignal } from '../utils.js';
3
3
  export { withSignal };
4
4
  export interface InlineContentResult {
5
5
  content?: string;
@@ -46,4 +46,4 @@ export declare function performSharedFetch(options: MarkdownFetchOptions, deps?:
46
46
  pipeline: PipelineResult<MarkdownPipelineResult>;
47
47
  inlineResult: InlineContentResult;
48
48
  }>;
49
- //# sourceMappingURL=fetch-pipeline.d.ts.map
49
+ //# sourceMappingURL=pipeline.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pipeline.d.ts","sourceRoot":"","sources":["../../../src/lib/net/pipeline.ts"],"names":[],"mappings":"AACA,OAAO,EACL,KAAK,uBAAuB,EAE7B,MAAM,0BAA0B,CAAC;AAGlC,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAOzC,OAAO,EAAE,UAAU,EAAE,CAAC;AAGtB,MAAM,WAAW,mBAAmB;IAClC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AACD,UAAU,mBAAmB;IAC3B,MAAM,EAAE,UAAU,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAmGD,wBAAgB,sBAAsB,CACpC,QAAQ,EAAE,MAAM,GAAG,SAAS,EAC5B,OAAO,GAAE;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAO,GAClC,MAAM,GAAG,SAAS,CAQpB;AAyBD,UAAU,oBAAoB,CAAC,CAAC;IAC9B,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,gBAAgB,KAAK,IAAI,CAAC;IAC5C,SAAS,EAAE,CAAC,KAAK,EAAE,mBAAmB,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;CACxE;AACD,MAAM,WAAW,cAAc,CAAC,CAAC;IAC/B,IAAI,EAAE,CAAC,CAAC;IACR,GAAG,EAAE,MAAM,CAAC;IACZ,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB;AACD,MAAM,MAAM,gBAAgB,GACxB,aAAa,GACb,cAAc,GACd,gBAAgB,GAChB,iBAAiB,GACjB,gBAAgB,GAChB,iBAAiB,CAAC;AAmBtB,wBAAsB,oBAAoB,CAAC,CAAC,EAC1C,OAAO,EAAE,oBAAoB,CAAC,CAAC,CAAC,GAC/B,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAqD5B;AAED,MAAM,MAAM,sBAAsB,GAAG,uBAAuB,GAAG;IAC7D,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B,CAAC;AAwBF,eAAO,MAAM,iBAAiB,GAC5B,OAAO,mBAAmB,EAC1B,KAAK,MAAM,EACX,SAAS,WAAW,KACnB,OAAO,CAAC,sBAAsB,CAchC,CAAC;AAEF,UAAU,oBAAoB;IAC5B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,MAAM,CAAC,EAAE,WAAW,CAAC;IAC9B,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,gBAAgB,KAAK,IAAI,CAAC;IACrD,QAAQ,CAAC,SAAS,EAAE,CAClB,KAAK,EAAE,mBAAmB,EAC1B,aAAa,EAAE,MAAM,KAClB,sBAAsB,GAAG,OAAO,CAAC,sBAAsB,CAAC,CAAC;CAC/D;AACD,UAAU,eAAe;IACvB,QAAQ,CAAC,oBAAoB,CAAC,EAAE,OAAO,oBAAoB,CAAC;CAC7D;AAMD,wBAAsB,kBAAkB,CACtC,OAAO,EAAE,oBAAoB,EAC7B,IAAI,GAAE,eAAoB,GACzB,OAAO,CAAC;IACT,QAAQ,EAAE,cAAc,CAAC,sBAAsB,CAAC,CAAC;IACjD,YAAY,EAAE,mBAAmB,CAAC;CACnC,CAAC,CAyBD"}
@@ -1,9 +1,8 @@
1
- import { transformBufferToMarkdown } from '../transform/transform.js';
2
- import {} from '../transform/types.js';
3
- import { config, logDebug } from './core.js';
1
+ import { transformBufferToMarkdown, } from '../../transform/index.js';
2
+ import { config } from '../config.js';
3
+ import { logDebug, Loggers } from '../core.js';
4
+ import { withSignal } from '../utils.js';
4
5
  import { fetchNormalizedUrlBuffer, normalizeUrl, transformToRawUrl, } from './http.js';
5
- import { Loggers } from './logger-names.js';
6
- import { withSignal } from './utils.js';
7
6
  export { withSignal };
8
7
  const TRUNCATION_MARKER = '...[truncated]';
9
8
  function getOpenCodeFence(content) {
@@ -1,5 +1,5 @@
1
1
  import { BlockList, isIP } from 'node:net';
2
- import { config } from './core.js';
2
+ import { config } from '../config.js';
3
3
  export declare class SafeDnsResolver {
4
4
  private readonly ipBlocker;
5
5
  private readonly security;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"url.d.ts","sourceRoot":"","sources":["../../../src/lib/net/url.ts"],"names":[],"mappings":"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"}
@@ -1,11 +1,10 @@
1
1
  import dns from 'node:dns';
2
2
  import { BlockList, isIP, SocketAddress } from 'node:net';
3
3
  import { domainToASCII } from 'node:url';
4
- import { config, logDebug } from './core.js';
5
- import { SystemErrors } from './error-codes.js';
6
- import { blockedCnameError, blockedHostError, blockedIpError, dnsNoResultsError, dnsTimeoutError, invalidAddressFamilyError, invalidHostnameError, invalidUrlError, } from './error-messages.js';
7
- import { Loggers } from './logger-names.js';
8
- import { CodedError, composeAbortSignal, isError, isSystemError, } from './utils.js';
4
+ import { config } from '../config.js';
5
+ import { logDebug, Loggers } from '../core.js';
6
+ import { blockedCnameError, blockedHostError, blockedIpError, CodedError, dnsNoResultsError, dnsTimeoutError, invalidAddressFamilyError, invalidHostnameError, invalidUrlError, isError, isSystemError, SystemErrors, } from '../error/index.js';
7
+ import { composeAbortSignal } from '../utils.js';
9
8
  const DNS_LOOKUP_TIMEOUT_MS = 5000;
10
9
  const CNAME_LOOKUP_MAX_DEPTH = 5;
11
10
  async function withTimeout(promise, timeoutMs, onTimeout, signal, onAbort) {
@@ -1,38 +1,8 @@
1
+ import { z } from 'zod';
1
2
  export declare function composeAbortSignal(signal?: AbortSignal, timeoutMs?: number): AbortSignal | undefined;
2
3
  export declare function parseUrlOrNull(input: string, base?: string): URL | null;
3
- export declare function throwIfAborted(signal: AbortSignal | undefined, url: string, stage: string): void;
4
- export declare function createAbortError(url: string, stage: string): FetchError;
5
4
  export declare function timingSafeEqualUtf8(a: string, b: string): boolean;
6
5
  export declare function hmacSha256Hex(key: string | Uint8Array, input: string | Uint8Array): string;
7
- export declare class FetchError extends Error {
8
- readonly url: string;
9
- readonly statusCode: number;
10
- readonly code: string;
11
- readonly details: Readonly<Record<string, unknown>>;
12
- constructor(message: string, url: string, httpStatus?: number, details?: Record<string, unknown>, options?: ErrorOptions);
13
- }
14
- export declare function getErrorMessage(error: unknown): string;
15
- export declare function toError(error: unknown): Error;
16
- export declare function isAbortError(error: unknown): boolean;
17
- export declare class CodedError extends Error {
18
- readonly code: string;
19
- constructor(message: string, code: string, options?: ErrorOptions);
20
- }
21
- export declare function isSystemError(error: unknown): error is NodeJS.ErrnoException;
22
- interface TunableHttpServer {
23
- headersTimeout?: number;
24
- requestTimeout?: number;
25
- keepAliveTimeout?: number;
26
- keepAliveTimeoutBuffer?: number;
27
- maxHeadersCount?: number | null;
28
- maxConnections?: number;
29
- dropMaxConnection?: boolean;
30
- on?: (event: string, listener: (...args: unknown[]) => void) => void;
31
- closeIdleConnections?: () => void;
32
- closeAllConnections?: () => void;
33
- }
34
- export declare function applyHttpServerTuning(server: TunableHttpServer): void;
35
- export declare function drainConnectionsOnShutdown(server: TunableHttpServer): void;
36
6
  export interface CancellableTimeout<T> {
37
7
  promise: Promise<T>;
38
8
  cancel: () => void;
@@ -46,7 +16,6 @@ export declare function createUnrefTimeout<T>(timeoutMs: number, value: T): Canc
46
16
  export declare function startAbortableIntervalLoop<T>(intervalMs: number, value: T, options: IntervalLoopOptions<T>): void;
47
17
  export declare function isObject(value: unknown): value is Record<PropertyKey, unknown>;
48
18
  export declare function compactContext<T extends object>(obj: T): Partial<T>;
49
- export declare function isError(value: unknown): value is Error;
50
19
  interface HtmlNode {
51
20
  readonly tagName?: string | undefined;
52
21
  readonly nodeName?: string | undefined;
@@ -97,5 +66,6 @@ export interface IconInfo {
97
66
  export declare function buildOptionalIcons(iconInfo?: IconInfo): {
98
67
  icons: IconInfo[];
99
68
  } | Record<string, never>;
69
+ export declare function formatZodError(error: z.ZodError): string;
100
70
  export {};
101
71
  //# sourceMappingURL=utils.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/lib/utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/lib/utils.ts"],"names":[],"mappings":"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"}