@j0hanz/superfetch 1.0.5 → 1.1.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 +200 -36
- package/dist/config/index.d.ts +10 -5
- package/dist/config/index.d.ts.map +1 -1
- package/dist/config/index.js +41 -17
- package/dist/config/index.js.map +1 -1
- package/dist/config/types.d.ts +98 -57
- package/dist/config/types.d.ts.map +1 -1
- package/dist/errors/app-error.d.ts +4 -28
- package/dist/errors/app-error.d.ts.map +1 -1
- package/dist/errors/app-error.js +10 -51
- package/dist/errors/app-error.js.map +1 -1
- package/dist/index.js +31 -46
- package/dist/index.js.map +1 -1
- package/dist/middleware/error-handler.d.ts +2 -2
- package/dist/middleware/error-handler.d.ts.map +1 -1
- package/dist/middleware/error-handler.js +12 -14
- package/dist/middleware/error-handler.js.map +1 -1
- package/dist/middleware/rate-limiter.d.ts.map +1 -1
- package/dist/middleware/rate-limiter.js +31 -14
- package/dist/middleware/rate-limiter.js.map +1 -1
- package/dist/parsers/base-html-element-parser.d.ts +43 -0
- package/dist/parsers/base-html-element-parser.d.ts.map +1 -0
- package/dist/parsers/base-html-element-parser.js +59 -0
- package/dist/parsers/base-html-element-parser.js.map +1 -0
- package/dist/parsers/heading-element-parser.d.ts +14 -0
- package/dist/parsers/heading-element-parser.d.ts.map +1 -0
- package/dist/parsers/heading-element-parser.js +26 -0
- package/dist/parsers/heading-element-parser.js.map +1 -0
- package/dist/parsers/image-element-parser.d.ts +16 -0
- package/dist/parsers/image-element-parser.d.ts.map +1 -0
- package/dist/parsers/image-element-parser.js +33 -0
- package/dist/parsers/image-element-parser.js.map +1 -0
- package/dist/parsers/link-element-parser.d.ts +15 -0
- package/dist/parsers/link-element-parser.d.ts.map +1 -0
- package/dist/parsers/link-element-parser.js +28 -0
- package/dist/parsers/link-element-parser.js.map +1 -0
- package/dist/parsers/open-graph-parser.d.ts +17 -0
- package/dist/parsers/open-graph-parser.d.ts.map +1 -0
- package/dist/parsers/open-graph-parser.js +41 -0
- package/dist/parsers/open-graph-parser.js.map +1 -0
- package/dist/parsers/schema-org-parser.d.ts +17 -0
- package/dist/parsers/schema-org-parser.d.ts.map +1 -0
- package/dist/parsers/schema-org-parser.js +32 -0
- package/dist/parsers/schema-org-parser.js.map +1 -0
- package/dist/parsers/standard-meta-parser.d.ts +18 -0
- package/dist/parsers/standard-meta-parser.d.ts.map +1 -0
- package/dist/parsers/standard-meta-parser.js +32 -0
- package/dist/parsers/standard-meta-parser.js.map +1 -0
- package/dist/parsers/twitter-card-parser.d.ts +17 -0
- package/dist/parsers/twitter-card-parser.d.ts.map +1 -0
- package/dist/parsers/twitter-card-parser.js +41 -0
- package/dist/parsers/twitter-card-parser.js.map +1 -0
- package/dist/resources/cached-content.d.ts +0 -2
- package/dist/resources/cached-content.d.ts.map +1 -1
- package/dist/resources/cached-content.js +3 -34
- package/dist/resources/cached-content.js.map +1 -1
- package/dist/resources/index.d.ts.map +1 -1
- package/dist/resources/index.js +8 -8
- package/dist/resources/index.js.map +1 -1
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +12 -11
- package/dist/server.js.map +1 -1
- package/dist/services/cache.d.ts +0 -28
- package/dist/services/cache.d.ts.map +1 -1
- package/dist/services/cache.js +10 -166
- package/dist/services/cache.js.map +1 -1
- package/dist/services/card-extractor.d.ts +0 -4
- package/dist/services/card-extractor.d.ts.map +1 -1
- package/dist/services/card-extractor.js +6 -1
- package/dist/services/card-extractor.js.map +1 -1
- package/dist/services/extractor.d.ts +1 -11
- package/dist/services/extractor.d.ts.map +1 -1
- package/dist/services/extractor.js +86 -84
- package/dist/services/extractor.js.map +1 -1
- package/dist/services/fetcher.d.ts +2 -13
- package/dist/services/fetcher.d.ts.map +1 -1
- package/dist/services/fetcher.js +79 -79
- package/dist/services/fetcher.js.map +1 -1
- package/dist/services/logger.d.ts +5 -4
- package/dist/services/logger.d.ts.map +1 -1
- package/dist/services/logger.js +27 -42
- package/dist/services/logger.js.map +1 -1
- package/dist/services/parser.d.ts.map +1 -1
- package/dist/services/parser.js +35 -27
- package/dist/services/parser.js.map +1 -1
- package/dist/services/session-manager.d.ts +18 -0
- package/dist/services/session-manager.d.ts.map +1 -0
- package/dist/services/session-manager.js +73 -0
- package/dist/services/session-manager.js.map +1 -0
- package/dist/strategies/exponential-backoff-strategy.d.ts +13 -0
- package/dist/strategies/exponential-backoff-strategy.d.ts.map +1 -0
- package/dist/strategies/exponential-backoff-strategy.js +32 -0
- package/dist/strategies/exponential-backoff-strategy.js.map +1 -0
- package/dist/tools/handlers/fetch-links.tool.d.ts +2 -9
- package/dist/tools/handlers/fetch-links.tool.d.ts.map +1 -1
- package/dist/tools/handlers/fetch-links.tool.js +3 -0
- package/dist/tools/handlers/fetch-links.tool.js.map +1 -1
- package/dist/tools/handlers/fetch-markdown.tool.d.ts +5 -2
- package/dist/tools/handlers/fetch-markdown.tool.d.ts.map +1 -1
- package/dist/tools/handlers/fetch-markdown.tool.js +23 -33
- package/dist/tools/handlers/fetch-markdown.tool.js.map +1 -1
- package/dist/tools/handlers/fetch-url.tool.d.ts +2 -9
- package/dist/tools/handlers/fetch-url.tool.d.ts.map +1 -1
- package/dist/tools/handlers/fetch-url.tool.js +15 -20
- package/dist/tools/handlers/fetch-url.tool.js.map +1 -1
- package/dist/tools/handlers/fetch-urls.tool.d.ts +2 -9
- package/dist/tools/handlers/fetch-urls.tool.d.ts.map +1 -1
- package/dist/tools/handlers/fetch-urls.tool.js +141 -108
- package/dist/tools/handlers/fetch-urls.tool.js.map +1 -1
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +0 -4
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/utils/common.d.ts +6 -7
- package/dist/tools/utils/common.d.ts.map +1 -1
- package/dist/tools/utils/common.js +8 -8
- package/dist/tools/utils/common.js.map +1 -1
- package/dist/tools/utils/fetch-pipeline.d.ts +8 -0
- package/dist/tools/utils/fetch-pipeline.d.ts.map +1 -1
- package/dist/tools/utils/fetch-pipeline.js +60 -63
- package/dist/tools/utils/fetch-pipeline.js.map +1 -1
- package/dist/transformers/jsonl.transformer.d.ts +1 -1
- package/dist/transformers/jsonl.transformer.d.ts.map +1 -1
- package/dist/transformers/jsonl.transformer.js +15 -10
- package/dist/transformers/jsonl.transformer.js.map +1 -1
- package/dist/transformers/markdown.transformer.d.ts.map +1 -1
- package/dist/transformers/markdown.transformer.js +58 -62
- package/dist/transformers/markdown.transformer.js.map +1 -1
- package/dist/utils/concurrency.d.ts +2 -5
- package/dist/utils/concurrency.d.ts.map +1 -1
- package/dist/utils/concurrency.js +19 -19
- package/dist/utils/concurrency.js.map +1 -1
- package/dist/utils/content-cleaner.d.ts +0 -25
- package/dist/utils/content-cleaner.d.ts.map +1 -1
- package/dist/utils/content-cleaner.js +14 -171
- package/dist/utils/content-cleaner.js.map +1 -1
- package/dist/utils/html-truncator.d.ts +2 -0
- package/dist/utils/html-truncator.d.ts.map +1 -0
- package/dist/utils/html-truncator.js +14 -0
- package/dist/utils/html-truncator.js.map +1 -0
- package/dist/utils/language-detector.d.ts +0 -3
- package/dist/utils/language-detector.d.ts.map +1 -1
- package/dist/utils/language-detector.js +0 -11
- package/dist/utils/language-detector.js.map +1 -1
- package/dist/utils/sanitizer.d.ts.map +1 -1
- package/dist/utils/sanitizer.js +7 -5
- package/dist/utils/sanitizer.js.map +1 -1
- package/dist/utils/tool-error-handler.d.ts.map +1 -1
- package/dist/utils/tool-error-handler.js +16 -41
- package/dist/utils/tool-error-handler.js.map +1 -1
- package/dist/utils/url-validator.d.ts +1 -0
- package/dist/utils/url-validator.d.ts.map +1 -1
- package/dist/utils/url-validator.js +42 -23
- package/dist/utils/url-validator.js.map +1 -1
- package/package.json +9 -8
package/dist/config/types.d.ts
CHANGED
|
@@ -1,12 +1,13 @@
|
|
|
1
|
+
import type { StreamableHTTPServerTransport } from '@modelcontextprotocol/sdk/server/streamableHttp.js';
|
|
1
2
|
type ContentBlockType = 'metadata' | 'heading' | 'paragraph' | 'list' | 'code' | 'table' | 'image' | 'blockquote';
|
|
2
3
|
interface ContentBlock {
|
|
3
4
|
type: ContentBlockType;
|
|
4
5
|
}
|
|
5
6
|
export interface MetadataBlock extends ContentBlock {
|
|
6
7
|
type: 'metadata';
|
|
7
|
-
title?: string
|
|
8
|
-
description?: string
|
|
9
|
-
author?: string
|
|
8
|
+
title?: string;
|
|
9
|
+
description?: string;
|
|
10
|
+
author?: string;
|
|
10
11
|
url: string;
|
|
11
12
|
fetchedAt: string;
|
|
12
13
|
}
|
|
@@ -26,18 +27,18 @@ export interface ListBlock extends ContentBlock {
|
|
|
26
27
|
}
|
|
27
28
|
export interface CodeBlock extends ContentBlock {
|
|
28
29
|
type: 'code';
|
|
29
|
-
language?: string
|
|
30
|
+
language?: string;
|
|
30
31
|
text: string;
|
|
31
32
|
}
|
|
32
33
|
export interface TableBlock extends ContentBlock {
|
|
33
34
|
type: 'table';
|
|
34
|
-
headers?: string[]
|
|
35
|
+
headers?: string[];
|
|
35
36
|
rows: string[][];
|
|
36
37
|
}
|
|
37
38
|
export interface ImageBlock extends ContentBlock {
|
|
38
39
|
type: 'image';
|
|
39
40
|
src: string;
|
|
40
|
-
alt?: string
|
|
41
|
+
alt?: string;
|
|
41
42
|
}
|
|
42
43
|
export interface BlockquoteBlock extends ContentBlock {
|
|
43
44
|
type: 'blockquote';
|
|
@@ -45,12 +46,12 @@ export interface BlockquoteBlock extends ContentBlock {
|
|
|
45
46
|
}
|
|
46
47
|
export type ContentBlockUnion = MetadataBlock | HeadingBlock | ParagraphBlock | ListBlock | CodeBlock | TableBlock | ImageBlock | BlockquoteBlock;
|
|
47
48
|
export interface ExtractedArticle {
|
|
48
|
-
title?: string
|
|
49
|
-
byline?: string
|
|
49
|
+
title?: string;
|
|
50
|
+
byline?: string;
|
|
50
51
|
content: string;
|
|
51
52
|
textContent: string;
|
|
52
|
-
excerpt?: string
|
|
53
|
-
siteName?: string
|
|
53
|
+
excerpt?: string;
|
|
54
|
+
siteName?: string;
|
|
54
55
|
}
|
|
55
56
|
export interface CacheEntry {
|
|
56
57
|
url: string;
|
|
@@ -65,50 +66,50 @@ export interface ExtractedLink {
|
|
|
65
66
|
}
|
|
66
67
|
interface RequestOptions {
|
|
67
68
|
/** Custom HTTP headers for the request */
|
|
68
|
-
customHeaders?: Record<string, string
|
|
69
|
+
customHeaders?: Record<string, string>;
|
|
69
70
|
/** Request timeout in milliseconds (1000-60000) */
|
|
70
|
-
timeout?: number
|
|
71
|
+
timeout?: number;
|
|
71
72
|
/** Number of retry attempts (1-10) */
|
|
72
|
-
retries?: number
|
|
73
|
+
retries?: number;
|
|
73
74
|
}
|
|
74
75
|
export interface FetchUrlInput extends RequestOptions {
|
|
75
76
|
url: string;
|
|
76
|
-
extractMainContent?: boolean
|
|
77
|
-
includeMetadata?: boolean
|
|
78
|
-
maxContentLength?: number
|
|
79
|
-
format?: 'jsonl' | 'markdown'
|
|
77
|
+
extractMainContent?: boolean;
|
|
78
|
+
includeMetadata?: boolean;
|
|
79
|
+
maxContentLength?: number;
|
|
80
|
+
format?: 'jsonl' | 'markdown';
|
|
80
81
|
}
|
|
81
82
|
export interface FetchLinksInput extends RequestOptions {
|
|
82
83
|
url: string;
|
|
83
|
-
includeExternal?: boolean
|
|
84
|
-
includeInternal?: boolean
|
|
85
|
-
maxLinks?: number
|
|
86
|
-
filterPattern?: string
|
|
87
|
-
includeImages?: boolean
|
|
84
|
+
includeExternal?: boolean;
|
|
85
|
+
includeInternal?: boolean;
|
|
86
|
+
maxLinks?: number;
|
|
87
|
+
filterPattern?: string;
|
|
88
|
+
includeImages?: boolean;
|
|
88
89
|
}
|
|
89
90
|
export interface FetchMarkdownInput extends RequestOptions {
|
|
90
91
|
url: string;
|
|
91
|
-
extractMainContent?: boolean
|
|
92
|
-
includeMetadata?: boolean
|
|
93
|
-
maxContentLength?: number
|
|
94
|
-
generateToc?: boolean
|
|
92
|
+
extractMainContent?: boolean;
|
|
93
|
+
includeMetadata?: boolean;
|
|
94
|
+
maxContentLength?: number;
|
|
95
|
+
generateToc?: boolean;
|
|
95
96
|
}
|
|
96
97
|
export interface FetchUrlsInput extends RequestOptions {
|
|
97
98
|
urls: string[];
|
|
98
|
-
extractMainContent?: boolean
|
|
99
|
-
includeMetadata?: boolean
|
|
100
|
-
maxContentLength?: number
|
|
101
|
-
format?: 'jsonl' | 'markdown'
|
|
102
|
-
concurrency?: number
|
|
103
|
-
continueOnError?: boolean
|
|
99
|
+
extractMainContent?: boolean;
|
|
100
|
+
includeMetadata?: boolean;
|
|
101
|
+
maxContentLength?: number;
|
|
102
|
+
format?: 'jsonl' | 'markdown';
|
|
103
|
+
concurrency?: number;
|
|
104
|
+
continueOnError?: boolean;
|
|
104
105
|
}
|
|
105
106
|
export interface ErrorResponse {
|
|
106
107
|
error: {
|
|
107
108
|
message: string;
|
|
108
109
|
code: string;
|
|
109
110
|
statusCode: number;
|
|
110
|
-
details?: Record<string, unknown
|
|
111
|
-
stack?: string
|
|
111
|
+
details?: Record<string, unknown>;
|
|
112
|
+
stack?: string;
|
|
112
113
|
};
|
|
113
114
|
}
|
|
114
115
|
export interface RateLimitEntry {
|
|
@@ -122,9 +123,9 @@ export interface RateLimiterOptions {
|
|
|
122
123
|
cleanupIntervalMs: number;
|
|
123
124
|
}
|
|
124
125
|
export interface ExtractedMetadata {
|
|
125
|
-
title?: string
|
|
126
|
-
description?: string
|
|
127
|
-
author?: string
|
|
126
|
+
title?: string;
|
|
127
|
+
description?: string;
|
|
128
|
+
author?: string;
|
|
128
129
|
}
|
|
129
130
|
export interface ExtractionResult {
|
|
130
131
|
article: ExtractedArticle | null;
|
|
@@ -141,8 +142,8 @@ export interface ExtractLinksOptions {
|
|
|
141
142
|
includeInternal: boolean;
|
|
142
143
|
includeExternal: boolean;
|
|
143
144
|
includeImages: boolean;
|
|
144
|
-
maxLinks?: number
|
|
145
|
-
filterPattern?: RegExp
|
|
145
|
+
maxLinks?: number;
|
|
146
|
+
filterPattern?: RegExp;
|
|
146
147
|
}
|
|
147
148
|
export interface TocEntry {
|
|
148
149
|
level: number;
|
|
@@ -159,7 +160,7 @@ export interface TransformOptions {
|
|
|
159
160
|
extractMainContent: boolean;
|
|
160
161
|
includeMetadata: boolean;
|
|
161
162
|
generateToc: boolean;
|
|
162
|
-
maxContentLength?: number
|
|
163
|
+
maxContentLength?: number;
|
|
163
164
|
}
|
|
164
165
|
export interface JsonlTransformResult {
|
|
165
166
|
content: string;
|
|
@@ -169,12 +170,12 @@ export interface JsonlTransformResult {
|
|
|
169
170
|
export interface SingleUrlResult {
|
|
170
171
|
url: string;
|
|
171
172
|
success: boolean;
|
|
172
|
-
title?: string
|
|
173
|
-
content?: string
|
|
174
|
-
contentBlocks?: number
|
|
173
|
+
title?: string;
|
|
174
|
+
content?: string;
|
|
175
|
+
contentBlocks?: number;
|
|
175
176
|
cached: boolean;
|
|
176
|
-
error?: string
|
|
177
|
-
errorCode?: string
|
|
177
|
+
error?: string;
|
|
178
|
+
errorCode?: string;
|
|
178
179
|
}
|
|
179
180
|
export interface FetchPipelineOptions<T> {
|
|
180
181
|
/** URL to fetch */
|
|
@@ -182,19 +183,19 @@ export interface FetchPipelineOptions<T> {
|
|
|
182
183
|
/** Cache namespace (e.g., 'url', 'links', 'markdown') */
|
|
183
184
|
cacheNamespace: string;
|
|
184
185
|
/** Optional custom HTTP headers */
|
|
185
|
-
customHeaders?: Record<string, string
|
|
186
|
+
customHeaders?: Record<string, string>;
|
|
186
187
|
/** Optional: number of retry attempts (1-10, defaults to 3) */
|
|
187
|
-
retries?: number
|
|
188
|
+
retries?: number;
|
|
188
189
|
/** Optional: AbortSignal for request cancellation */
|
|
189
|
-
signal?: AbortSignal
|
|
190
|
+
signal?: AbortSignal;
|
|
190
191
|
/** Optional: per-request timeout override in milliseconds */
|
|
191
|
-
timeout?: number
|
|
192
|
+
timeout?: number;
|
|
192
193
|
/** Transform function to process HTML into desired format */
|
|
193
194
|
transform: (html: string, url: string) => T;
|
|
194
195
|
/** Optional: serialize result for caching (defaults to JSON.stringify) */
|
|
195
|
-
serialize?: (
|
|
196
|
+
serialize?: (result: T) => string;
|
|
196
197
|
/** Optional: deserialize cached content */
|
|
197
|
-
deserialize?: (
|
|
198
|
+
deserialize?: (cached: string) => T;
|
|
198
199
|
}
|
|
199
200
|
/** Result from the fetch pipeline */
|
|
200
201
|
export interface PipelineResult<T> {
|
|
@@ -218,12 +219,12 @@ export interface ToolResponse<T = Record<string, unknown>> {
|
|
|
218
219
|
export interface BatchUrlResult {
|
|
219
220
|
url: string;
|
|
220
221
|
success: boolean;
|
|
221
|
-
title?: string
|
|
222
|
-
content?: string
|
|
223
|
-
contentBlocks?: number
|
|
224
|
-
cached?: boolean
|
|
225
|
-
error?: string
|
|
226
|
-
errorCode?: string
|
|
222
|
+
title?: string;
|
|
223
|
+
content?: string;
|
|
224
|
+
contentBlocks?: number;
|
|
225
|
+
cached?: boolean;
|
|
226
|
+
error?: string;
|
|
227
|
+
errorCode?: string;
|
|
227
228
|
}
|
|
228
229
|
export interface BatchSummary {
|
|
229
230
|
total: number;
|
|
@@ -252,5 +253,45 @@ export interface ToolErrorResponse {
|
|
|
252
253
|
};
|
|
253
254
|
isError: true;
|
|
254
255
|
}
|
|
256
|
+
export interface FetchOptions {
|
|
257
|
+
customHeaders?: Record<string, string>;
|
|
258
|
+
signal?: AbortSignal;
|
|
259
|
+
timeout?: number;
|
|
260
|
+
}
|
|
261
|
+
export interface ContentTransformOptions {
|
|
262
|
+
readonly extractMainContent: boolean;
|
|
263
|
+
readonly includeMetadata: boolean;
|
|
264
|
+
}
|
|
265
|
+
export interface TruncationResult {
|
|
266
|
+
readonly content: string;
|
|
267
|
+
readonly truncated: boolean;
|
|
268
|
+
}
|
|
269
|
+
export type ConcurrencyLimitedExecutor = <T>(task: () => Promise<T>) => Promise<T>;
|
|
270
|
+
export type ProgressCallback = (completed: number, total: number) => void;
|
|
271
|
+
export interface ConcurrencyExecutionOptions {
|
|
272
|
+
readonly onProgress?: ProgressCallback;
|
|
273
|
+
}
|
|
274
|
+
export interface SessionEntry {
|
|
275
|
+
readonly transport: StreamableHTTPServerTransport;
|
|
276
|
+
createdAt: number;
|
|
277
|
+
}
|
|
278
|
+
export interface ToolResponseBase {
|
|
279
|
+
[x: string]: unknown;
|
|
280
|
+
content: {
|
|
281
|
+
type: 'text';
|
|
282
|
+
text: string;
|
|
283
|
+
}[];
|
|
284
|
+
structuredContent?: Record<string, unknown>;
|
|
285
|
+
isError?: boolean;
|
|
286
|
+
}
|
|
287
|
+
export type LinkType = 'internal' | 'external' | 'image';
|
|
288
|
+
export type LogLevel = 'debug' | 'info' | 'warn' | 'error';
|
|
289
|
+
export type LogMetadata = Record<string, unknown>;
|
|
290
|
+
export interface McpRequestBody {
|
|
291
|
+
method?: string;
|
|
292
|
+
id?: string | number;
|
|
293
|
+
jsonrpc?: '2.0';
|
|
294
|
+
params?: unknown;
|
|
295
|
+
}
|
|
255
296
|
export {};
|
|
256
297
|
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/config/types.ts"],"names":[],"mappings":"AAAA,KAAK,gBAAgB,GACjB,UAAU,GACV,SAAS,GACT,WAAW,GACX,MAAM,GACN,MAAM,GACN,OAAO,GACP,OAAO,GACP,YAAY,CAAC;AAEjB,UAAU,YAAY;IACpB,IAAI,EAAE,gBAAgB,CAAC;CACxB;AAED,MAAM,WAAW,aAAc,SAAQ,YAAY;IACjD,IAAI,EAAE,UAAU,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/config/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,32 +1,8 @@
|
|
|
1
|
-
export declare class
|
|
1
|
+
export declare class FetchError extends Error {
|
|
2
|
+
readonly url: string;
|
|
2
3
|
readonly statusCode: number;
|
|
3
|
-
readonly isOperational: boolean;
|
|
4
4
|
readonly code: string;
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
export declare class ValidationError extends AppError {
|
|
8
|
-
readonly details: Record<string, unknown> | undefined;
|
|
9
|
-
constructor(message: string, details?: Record<string, unknown>);
|
|
10
|
-
}
|
|
11
|
-
export declare class UrlValidationError extends AppError {
|
|
12
|
-
readonly url: string;
|
|
13
|
-
constructor(message: string, url: string);
|
|
14
|
-
}
|
|
15
|
-
export declare class FetchError extends AppError {
|
|
16
|
-
readonly url: string;
|
|
17
|
-
readonly httpStatus: number | undefined;
|
|
18
|
-
constructor(message: string, url: string, httpStatus?: number);
|
|
19
|
-
}
|
|
20
|
-
export declare class RateLimitError extends AppError {
|
|
21
|
-
readonly retryAfter: number;
|
|
22
|
-
constructor(retryAfter: number);
|
|
23
|
-
}
|
|
24
|
-
export declare class TimeoutError extends AppError {
|
|
25
|
-
readonly timeoutMs: number;
|
|
26
|
-
constructor(timeoutMs: number, isGateway?: boolean);
|
|
27
|
-
}
|
|
28
|
-
export declare class AbortError extends AppError {
|
|
29
|
-
readonly reason: string | undefined;
|
|
30
|
-
constructor(reason?: string);
|
|
5
|
+
readonly details: Readonly<Record<string, unknown>>;
|
|
6
|
+
constructor(message: string, url: string, httpStatus?: number, details?: Record<string, unknown>);
|
|
31
7
|
}
|
|
32
8
|
//# sourceMappingURL=app-error.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"app-error.d.ts","sourceRoot":"","sources":["../../src/errors/app-error.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"app-error.d.ts","sourceRoot":"","sources":["../../src/errors/app-error.ts"],"names":[],"mappings":"AAEA,qBAAa,UAAW,SAAQ,KAAK;IAOjC,QAAQ,CAAC,GAAG,EAAE,MAAM;IANtB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;gBAGlD,OAAO,EAAE,MAAM,EACN,GAAG,EAAE,MAAM,EACpB,UAAU,CAAC,EAAE,MAAM,EACnB,OAAO,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM;CASxC"}
|
package/dist/errors/app-error.js
CHANGED
|
@@ -1,58 +1,17 @@
|
|
|
1
|
-
|
|
1
|
+
const DEFAULT_HTTP_STATUS = 502;
|
|
2
|
+
export class FetchError extends Error {
|
|
3
|
+
url;
|
|
2
4
|
statusCode;
|
|
3
|
-
isOperational;
|
|
4
5
|
code;
|
|
5
|
-
constructor(message, statusCode = 500, code = 'INTERNAL_ERROR', isOperational = true) {
|
|
6
|
-
super(message);
|
|
7
|
-
this.statusCode = statusCode;
|
|
8
|
-
this.code = code;
|
|
9
|
-
this.isOperational = isOperational;
|
|
10
|
-
this.name = this.constructor.name;
|
|
11
|
-
Error.captureStackTrace(this, this.constructor);
|
|
12
|
-
}
|
|
13
|
-
}
|
|
14
|
-
export class ValidationError extends AppError {
|
|
15
6
|
details;
|
|
16
|
-
constructor(message, details) {
|
|
17
|
-
super(message
|
|
18
|
-
this.details = details;
|
|
19
|
-
}
|
|
20
|
-
}
|
|
21
|
-
export class UrlValidationError extends AppError {
|
|
22
|
-
url;
|
|
23
|
-
constructor(message, url) {
|
|
24
|
-
super(message, 400, 'INVALID_URL');
|
|
25
|
-
this.url = url;
|
|
26
|
-
}
|
|
27
|
-
}
|
|
28
|
-
export class FetchError extends AppError {
|
|
29
|
-
url;
|
|
30
|
-
httpStatus;
|
|
31
|
-
constructor(message, url, httpStatus) {
|
|
32
|
-
super(message, httpStatus ?? 502, 'FETCH_ERROR');
|
|
7
|
+
constructor(message, url, httpStatus, details = {}) {
|
|
8
|
+
super(message);
|
|
33
9
|
this.url = url;
|
|
34
|
-
this.
|
|
35
|
-
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
constructor(retryAfter) {
|
|
40
|
-
super('Too many requests', 429, 'RATE_LIMITED');
|
|
41
|
-
this.retryAfter = retryAfter;
|
|
42
|
-
}
|
|
43
|
-
}
|
|
44
|
-
export class TimeoutError extends AppError {
|
|
45
|
-
timeoutMs;
|
|
46
|
-
constructor(timeoutMs, isGateway = false) {
|
|
47
|
-
super(`Request timeout after ${timeoutMs}ms`, isGateway ? 504 : 408, 'TIMEOUT');
|
|
48
|
-
this.timeoutMs = timeoutMs;
|
|
49
|
-
}
|
|
50
|
-
}
|
|
51
|
-
export class AbortError extends AppError {
|
|
52
|
-
reason;
|
|
53
|
-
constructor(reason) {
|
|
54
|
-
super(reason ?? 'Request was aborted', 499, 'ABORTED');
|
|
55
|
-
this.reason = reason;
|
|
10
|
+
this.name = 'FetchError';
|
|
11
|
+
this.statusCode = httpStatus ?? DEFAULT_HTTP_STATUS;
|
|
12
|
+
this.code = httpStatus ? `HTTP_${httpStatus}` : 'FETCH_ERROR';
|
|
13
|
+
this.details = Object.freeze({ url, httpStatus, ...details });
|
|
14
|
+
Error.captureStackTrace(this, this.constructor);
|
|
56
15
|
}
|
|
57
16
|
}
|
|
58
17
|
//# sourceMappingURL=app-error.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"app-error.js","sourceRoot":"","sources":["../../src/errors/app-error.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,
|
|
1
|
+
{"version":3,"file":"app-error.js","sourceRoot":"","sources":["../../src/errors/app-error.ts"],"names":[],"mappings":"AAAA,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;QAErC,KAAK,CAAC,OAAO,CAAC,CAAC;QAJN,QAAG,GAAH,GAAG,CAAQ;QAKpB,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"}
|
package/dist/index.js
CHANGED
|
@@ -6,10 +6,8 @@ import { config } from './config/index.js';
|
|
|
6
6
|
import { destroyAgents } from './services/fetcher.js';
|
|
7
7
|
import { logError, logInfo } from './services/logger.js';
|
|
8
8
|
import { errorHandler } from './middleware/error-handler.js';
|
|
9
|
-
import { rateLimiter } from './middleware/rate-limiter.js';
|
|
10
9
|
import { createMcpServer } from './server.js';
|
|
11
10
|
let isShuttingDown = false;
|
|
12
|
-
// Ref for shutdown handler to be assigned later
|
|
13
11
|
const shutdownHandlerRef = {};
|
|
14
12
|
process.on('uncaughtException', (error) => {
|
|
15
13
|
logError('Uncaught exception', error);
|
|
@@ -38,6 +36,17 @@ function getSessionId(req) {
|
|
|
38
36
|
const header = req.headers['mcp-session-id'];
|
|
39
37
|
return Array.isArray(header) ? header[0] : header;
|
|
40
38
|
}
|
|
39
|
+
function isMcpRequestBody(body) {
|
|
40
|
+
if (!body || typeof body !== 'object')
|
|
41
|
+
return false;
|
|
42
|
+
const obj = body;
|
|
43
|
+
return ((obj.method === undefined || typeof obj.method === 'string') &&
|
|
44
|
+
(obj.id === undefined ||
|
|
45
|
+
typeof obj.id === 'string' ||
|
|
46
|
+
typeof obj.id === 'number') &&
|
|
47
|
+
(obj.jsonrpc === undefined || obj.jsonrpc === '2.0') &&
|
|
48
|
+
(obj.params === undefined || typeof obj.params === 'object'));
|
|
49
|
+
}
|
|
41
50
|
const asyncHandler = (fn) => {
|
|
42
51
|
return (req, res, next) => {
|
|
43
52
|
Promise.resolve(fn(req, res, next)).catch(next);
|
|
@@ -64,7 +73,6 @@ else {
|
|
|
64
73
|
}
|
|
65
74
|
next(err);
|
|
66
75
|
});
|
|
67
|
-
app.use(rateLimiter.middleware());
|
|
68
76
|
app.use((req, res, next) => {
|
|
69
77
|
const { origin } = req.headers;
|
|
70
78
|
if (origin) {
|
|
@@ -103,48 +111,34 @@ else {
|
|
|
103
111
|
uptime: process.uptime(),
|
|
104
112
|
});
|
|
105
113
|
});
|
|
114
|
+
// Simple session storage - Map suffices for debugging HTTP mode
|
|
106
115
|
const sessions = new Map();
|
|
107
|
-
const SESSION_TTL_MS = 30 * 60 * 1000;
|
|
108
|
-
let cleanupTimeout = null;
|
|
109
|
-
async function cleanupStaleSessions() {
|
|
110
|
-
const now = Date.now();
|
|
111
|
-
const closePromises = [];
|
|
112
|
-
for (const [sessionId, entry] of sessions) {
|
|
113
|
-
if (now - entry.createdAt > SESSION_TTL_MS) {
|
|
114
|
-
logInfo('Cleaning up stale session', { sessionId });
|
|
115
|
-
closePromises.push(entry.transport.close());
|
|
116
|
-
sessions.delete(sessionId);
|
|
117
|
-
}
|
|
118
|
-
}
|
|
119
|
-
await Promise.allSettled(closePromises);
|
|
120
|
-
}
|
|
121
|
-
function scheduleCleanup() {
|
|
122
|
-
if (cleanupTimeout)
|
|
123
|
-
return;
|
|
124
|
-
cleanupTimeout = setTimeout(() => {
|
|
125
|
-
void cleanupStaleSessions().then(() => {
|
|
126
|
-
cleanupTimeout = null;
|
|
127
|
-
if (sessions.size > 0)
|
|
128
|
-
scheduleCleanup();
|
|
129
|
-
});
|
|
130
|
-
}, 5 * 60 * 1000);
|
|
131
|
-
cleanupTimeout.unref();
|
|
132
|
-
}
|
|
133
116
|
app.post('/mcp', asyncHandler(async (req, res) => {
|
|
134
117
|
const sessionId = getSessionId(req);
|
|
135
118
|
let transport;
|
|
136
|
-
|
|
119
|
+
// Validate request body structure
|
|
120
|
+
if (!isMcpRequestBody(req.body)) {
|
|
121
|
+
res.status(400).json({
|
|
122
|
+
jsonrpc: '2.0',
|
|
123
|
+
error: {
|
|
124
|
+
code: -32600,
|
|
125
|
+
message: 'Invalid Request: Malformed request body',
|
|
126
|
+
},
|
|
127
|
+
id: null,
|
|
128
|
+
});
|
|
129
|
+
return;
|
|
130
|
+
}
|
|
131
|
+
// Body is validated above as McpRequestBody via type guard
|
|
137
132
|
logInfo('[MCP POST]', {
|
|
138
|
-
method: body
|
|
139
|
-
id: body
|
|
133
|
+
method: req.body.method,
|
|
134
|
+
id: req.body.id,
|
|
140
135
|
sessionId: sessionId ?? 'none',
|
|
141
136
|
isInitialize: isInitializeRequest(req.body),
|
|
142
137
|
sessionCount: sessions.size,
|
|
143
138
|
});
|
|
144
139
|
const existingSession = sessionId ? sessions.get(sessionId) : undefined;
|
|
145
|
-
if (existingSession) {
|
|
140
|
+
if (existingSession && sessionId) {
|
|
146
141
|
({ transport } = existingSession);
|
|
147
|
-
existingSession.createdAt = Date.now();
|
|
148
142
|
}
|
|
149
143
|
else if (!sessionId && isInitializeRequest(req.body)) {
|
|
150
144
|
transport = new StreamableHTTPServerTransport({
|
|
@@ -152,7 +146,6 @@ else {
|
|
|
152
146
|
onsessioninitialized: (id) => {
|
|
153
147
|
sessions.set(id, { transport, createdAt: Date.now() });
|
|
154
148
|
logInfo('Session initialized', { sessionId: id });
|
|
155
|
-
scheduleCleanup();
|
|
156
149
|
},
|
|
157
150
|
onsessionclosed: (id) => {
|
|
158
151
|
sessions.delete(id);
|
|
@@ -186,12 +179,11 @@ else {
|
|
|
186
179
|
res.status(400).json({ error: 'Missing mcp-session-id header' });
|
|
187
180
|
return;
|
|
188
181
|
}
|
|
189
|
-
const session = sessions.get(sessionId);
|
|
182
|
+
const session = sessionId ? sessions.get(sessionId) : undefined;
|
|
190
183
|
if (!session) {
|
|
191
184
|
res.status(404).json({ error: 'Session not found' });
|
|
192
185
|
return;
|
|
193
186
|
}
|
|
194
|
-
session.createdAt = Date.now();
|
|
195
187
|
await session.transport.handleRequest(req, res);
|
|
196
188
|
}));
|
|
197
189
|
app.delete('/mcp', asyncHandler(async (req, res) => {
|
|
@@ -225,14 +217,8 @@ else {
|
|
|
225
217
|
return;
|
|
226
218
|
isShuttingDown = true;
|
|
227
219
|
process.stdout.write(`\n${signal} received, shutting down gracefully...\n`);
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
rateLimiter.destroy();
|
|
231
|
-
// Close all sessions gracefully
|
|
232
|
-
const closePromises = [];
|
|
233
|
-
for (const session of sessions.values()) {
|
|
234
|
-
closePromises.push(session.transport.close());
|
|
235
|
-
}
|
|
220
|
+
// Close all sessions
|
|
221
|
+
const closePromises = Array.from(sessions.values()).map((session) => session.transport.close());
|
|
236
222
|
await Promise.allSettled(closePromises);
|
|
237
223
|
sessions.clear();
|
|
238
224
|
destroyAgents();
|
|
@@ -245,7 +231,6 @@ else {
|
|
|
245
231
|
process.exit(1);
|
|
246
232
|
}, 10000).unref();
|
|
247
233
|
};
|
|
248
|
-
// Assign shutdown function for signal handlers and uncaughtException handler
|
|
249
234
|
shutdownHandlerRef.current = shutdownFn;
|
|
250
235
|
process.on('SIGINT', () => {
|
|
251
236
|
void shutdownFn('SIGINT');
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA,OAAO,OAAO,EAAE,EAIf,MAAM,SAAS,CAAC;AAEjB,OAAO,EAAE,6BAA6B,EAAE,MAAM,oDAAoD,CAAC;AACnG,OAAO,EAAE,mBAAmB,EAAE,MAAM,oCAAoC,CAAC;AAEzE,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
export declare function errorHandler(err: Error,
|
|
1
|
+
import type { Request, Response } from 'express';
|
|
2
|
+
export declare function errorHandler(err: Error, req: Request, res: Response): void;
|
|
3
3
|
//# sourceMappingURL=error-handler.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"error-handler.d.ts","sourceRoot":"","sources":["../../src/middleware/error-handler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"error-handler.d.ts","sourceRoot":"","sources":["../../src/middleware/error-handler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAQjD,wBAAgB,YAAY,CAAC,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,GAAG,IAAI,CA+B1E"}
|