@j0hanz/fetch-url-mcp 1.10.17 → 1.10.18
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/http/helpers.d.ts +14 -0
- package/dist/http/helpers.d.ts.map +1 -1
- package/dist/http/helpers.js +39 -0
- package/dist/http/native.js +1 -1
- package/dist/lib/core.d.ts.map +1 -1
- package/dist/lib/core.js +1 -1
- package/dist/lib/dom-prep.d.ts +1 -0
- package/dist/lib/dom-prep.d.ts.map +1 -1
- package/dist/lib/dom-prep.js +10 -3
- package/dist/lib/http.js +1 -1
- package/dist/lib/task-handlers.js +1 -1
- package/dist/lib/url.d.ts +5 -2
- package/dist/lib/url.d.ts.map +1 -1
- package/dist/lib/url.js +22 -2
- package/dist/lib/utils.d.ts +7 -0
- package/dist/lib/utils.d.ts.map +1 -1
- package/dist/lib/utils.js +12 -0
- package/dist/resources/index.d.ts +3 -1
- package/dist/resources/index.d.ts.map +1 -1
- package/dist/resources/index.js +58 -1
- package/dist/server.js +1 -3
- package/dist/tasks/execution.d.ts.map +1 -1
- package/dist/tasks/execution.js +1 -1
- package/dist/tasks/manager.d.ts +21 -0
- package/dist/tasks/manager.d.ts.map +1 -1
- package/dist/tasks/manager.js +63 -1
- package/dist/tools/fetch-url.d.ts +16 -1
- package/dist/tools/fetch-url.d.ts.map +1 -1
- package/dist/tools/fetch-url.js +95 -2
- package/dist/transform/html-translators.d.ts +3 -0
- package/dist/transform/html-translators.d.ts.map +1 -1
- package/dist/transform/html-translators.js +249 -2
- package/dist/{lib/md-cleanup.d.ts → transform/markdown-cleanup.d.ts} +1 -1
- package/dist/transform/markdown-cleanup.d.ts.map +1 -0
- package/dist/{lib/md-cleanup.js → transform/markdown-cleanup.js} +2 -2
- package/dist/transform/metadata.d.ts +5 -1
- package/dist/transform/metadata.d.ts.map +1 -1
- package/dist/transform/metadata.js +186 -0
- package/dist/transform/next-flight.js +1 -1
- package/dist/transform/transform.d.ts +2 -1
- package/dist/transform/transform.d.ts.map +1 -1
- package/dist/transform/transform.js +4 -3
- package/package.json +1 -1
- package/dist/http/session-teardown.d.ts +0 -18
- package/dist/http/session-teardown.d.ts.map +0 -1
- package/dist/http/session-teardown.js +0 -40
- package/dist/lib/code-lang.d.ts +0 -4
- package/dist/lib/code-lang.d.ts.map +0 -1
- package/dist/lib/code-lang.js +0 -248
- package/dist/lib/md-cleanup.d.ts.map +0 -1
- package/dist/lib/md-metadata.d.ts +0 -6
- package/dist/lib/md-metadata.d.ts.map +0 -1
- package/dist/lib/md-metadata.js +0 -186
- package/dist/lib/net-utils.d.ts +0 -6
- package/dist/lib/net-utils.d.ts.map +0 -1
- package/dist/lib/net-utils.js +0 -22
- package/dist/lib/types.d.ts +0 -8
- package/dist/lib/types.d.ts.map +0 -1
- package/dist/lib/types.js +0 -12
- package/dist/prompts/index.d.ts +0 -4
- package/dist/prompts/index.d.ts.map +0 -1
- package/dist/prompts/index.js +0 -20
- package/dist/resources/instructions.d.ts +0 -2
- package/dist/resources/instructions.d.ts.map +0 -1
- package/dist/resources/instructions.js +0 -38
- package/dist/tasks/cursor-codec.d.ts +0 -5
- package/dist/tasks/cursor-codec.d.ts.map +0 -1
- package/dist/tasks/cursor-codec.js +0 -35
- package/dist/tasks/tool-registry.d.ts +0 -18
- package/dist/tasks/tool-registry.d.ts.map +0 -1
- package/dist/tasks/tool-registry.js +0 -28
- package/dist/tools/fetch-url-progress.d.ts +0 -16
- package/dist/tools/fetch-url-progress.d.ts.map +0 -1
- package/dist/tools/fetch-url-progress.js +0 -94
package/dist/http/helpers.d.ts
CHANGED
|
@@ -50,5 +50,19 @@ declare class JsonBodyReader {
|
|
|
50
50
|
private normalizeChunk;
|
|
51
51
|
}
|
|
52
52
|
export declare const jsonBodyReader: JsonBodyReader;
|
|
53
|
+
interface SessionRecordLike {
|
|
54
|
+
server: McpServer;
|
|
55
|
+
transport: StreamableHTTPServerTransport;
|
|
56
|
+
}
|
|
57
|
+
interface SessionTeardownOptions {
|
|
58
|
+
cancelMessage: string;
|
|
59
|
+
closeServerReason?: string;
|
|
60
|
+
closeTransportReason?: string;
|
|
61
|
+
unregisterByServer?: boolean;
|
|
62
|
+
awaitClose?: boolean;
|
|
63
|
+
}
|
|
64
|
+
export declare function teardownSessionResources(session: SessionRecordLike, options: SessionTeardownOptions): Promise<void>;
|
|
65
|
+
export declare function teardownUnregisteredSessionResources(session: SessionRecordLike, context: string): Promise<void>;
|
|
66
|
+
export declare function teardownSessionRegistration(server: McpServer, cancelMessage: string): void;
|
|
53
67
|
export {};
|
|
54
68
|
//# sourceMappingURL=helpers.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../src/http/helpers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AACzE,OAAO,KAAK,EAAE,MAAM,IAAI,WAAW,EAAE,MAAM,YAAY,CAAC;AAKxD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gDAAgD,CAAC;AAC/E,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,oDAAoD,CAAC;AACxG,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,+CAA+C,CAAC;
|
|
1
|
+
{"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../src/http/helpers.ts"],"names":[],"mappings":"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"}
|
package/dist/http/helpers.js
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import { Writable } from 'node:stream';
|
|
2
2
|
import { pipeline } from 'node:stream/promises';
|
|
3
3
|
import { composeCloseHandlers, config, logWarn } from '../lib/core.js';
|
|
4
|
+
import { resolveMcpSessionIdByServer, unregisterMcpSessionServer, unregisterMcpSessionServerByServer, } from '../lib/core.js';
|
|
5
|
+
import { cancelTasksForOwner } from '../lib/task-handlers.js';
|
|
4
6
|
import { createDefaultBlockList, normalizeIpForBlockList } from '../lib/url.js';
|
|
5
7
|
import { getErrorMessage, toError } from '../lib/utils.js';
|
|
6
8
|
function abortControllerBestEffort(controller) {
|
|
@@ -355,3 +357,40 @@ class JsonBodyReader {
|
|
|
355
357
|
}
|
|
356
358
|
}
|
|
357
359
|
export const jsonBodyReader = new JsonBodyReader();
|
|
360
|
+
function cancelSessionTasks(server, message) {
|
|
361
|
+
const sessionId = resolveMcpSessionIdByServer(server);
|
|
362
|
+
if (!sessionId)
|
|
363
|
+
return null;
|
|
364
|
+
cancelTasksForOwner(`session:${sessionId}`, message);
|
|
365
|
+
unregisterMcpSessionServer(sessionId);
|
|
366
|
+
return sessionId;
|
|
367
|
+
}
|
|
368
|
+
async function closeSessionResources(session, options) {
|
|
369
|
+
const closeTasks = [];
|
|
370
|
+
if (options.closeTransportReason) {
|
|
371
|
+
closeTasks.push(closeTransportBestEffort(session.transport, options.closeTransportReason));
|
|
372
|
+
}
|
|
373
|
+
if (options.closeServerReason) {
|
|
374
|
+
closeTasks.push(closeMcpServerBestEffort(session.server, options.closeServerReason));
|
|
375
|
+
}
|
|
376
|
+
if (options.awaitClose && closeTasks.length > 0) {
|
|
377
|
+
await Promise.all(closeTasks);
|
|
378
|
+
}
|
|
379
|
+
}
|
|
380
|
+
export async function teardownSessionResources(session, options) {
|
|
381
|
+
cancelSessionTasks(session.server, options.cancelMessage);
|
|
382
|
+
if (options.unregisterByServer) {
|
|
383
|
+
unregisterMcpSessionServerByServer(session.server);
|
|
384
|
+
}
|
|
385
|
+
await closeSessionResources(session, options);
|
|
386
|
+
}
|
|
387
|
+
export async function teardownUnregisteredSessionResources(session, context) {
|
|
388
|
+
await closeSessionResources(session, {
|
|
389
|
+
closeTransportReason: context,
|
|
390
|
+
closeServerReason: context,
|
|
391
|
+
awaitClose: true,
|
|
392
|
+
});
|
|
393
|
+
}
|
|
394
|
+
export function teardownSessionRegistration(server, cancelMessage) {
|
|
395
|
+
cancelSessionTasks(server, cancelMessage);
|
|
396
|
+
}
|
package/dist/http/native.js
CHANGED
|
@@ -19,8 +19,8 @@ import { createMcpServerForHttpSession } from '../server.js';
|
|
|
19
19
|
import { applyInsufficientScopeAuthHeaders, applyUnauthorizedAuthHeaders, assertHttpModeConfiguration, authService, buildAuthFingerprint, buildProtectedResourceMetadataDocument, corsPolicy, DEFAULT_MCP_PROTOCOL_VERSION, ensureMcpProtocolVersion, hostOriginPolicy, isInsufficientScopeError, isOAuthMetadataEnabled, isProtectedResourceMetadataPath, SUPPORTED_MCP_PROTOCOL_VERSIONS, } from './auth.js';
|
|
20
20
|
import { disableEventLoopMonitoring, isVerboseHealthRequest, resetEventLoopMonitoring, sendHealthRouteResponse, shouldHandleHealthRoute, } from './health.js';
|
|
21
21
|
import { buildRequestContext, createRequestAbortSignal, createTransportAdapter, DEFAULT_BODY_LIMIT_BYTES, drainRequest, findDuplicateSingleValueHeader, getHeaderValue, getMcpSessionId, isJsonBodyError, jsonBodyReader, registerInboundBlockList, sendEmpty, sendError, sendJson, } from './helpers.js';
|
|
22
|
+
import { teardownSessionRegistration, teardownSessionResources, teardownUnregisteredSessionResources, } from './helpers.js';
|
|
22
23
|
import { createRateLimitManagerImpl, } from './rate-limit.js';
|
|
23
|
-
import { teardownSessionRegistration, teardownSessionResources, teardownUnregisteredSessionResources, } from './session-teardown.js';
|
|
24
24
|
function resolveRequestedProtocolVersion(body) {
|
|
25
25
|
if (!isObject(body))
|
|
26
26
|
return DEFAULT_MCP_PROTOCOL_VERSION;
|
package/dist/lib/core.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"core.d.ts","sourceRoot":"","sources":["../../src/lib/core.ts"],"names":[],"mappings":"AAWA,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,yCAAyC,CAAC;
|
|
1
|
+
{"version":3,"file":"core.d.ts","sourceRoot":"","sources":["../../src/lib/core.ts"],"names":[],"mappings":"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"}
|
package/dist/lib/core.js
CHANGED
|
@@ -6,7 +6,7 @@ import process from 'node:process';
|
|
|
6
6
|
import { getSystemErrorMessage, inspect, stripVTControlCharacters, } from 'node:util';
|
|
7
7
|
import {} from '@modelcontextprotocol/sdk/server/mcp.js';
|
|
8
8
|
import { z } from 'zod';
|
|
9
|
-
import { buildIpv4, isIP, normalizeHostname, stripTrailingDots, } from './
|
|
9
|
+
import { buildIpv4, isIP, normalizeHostname, stripTrailingDots, } from './url.js';
|
|
10
10
|
import { getErrorMessage, isAbortError, sha256Hex, stableStringify as stableJsonStringify, startAbortableIntervalLoop, } from './utils.js';
|
|
11
11
|
export const serverVersion = readServerVersion(import.meta.url);
|
|
12
12
|
const LOG_LEVELS = ['debug', 'info', 'warn', 'error'];
|
package/dist/lib/dom-prep.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { ExtractedArticle } from '../transform/types.js';
|
|
2
|
+
export declare const WP_PHOTON_HOST_PATTERN: RegExp;
|
|
2
3
|
export declare function extractNoscriptImages(document: Document): void;
|
|
3
4
|
export declare function resolveDocumentBody(document: Document): Element;
|
|
4
5
|
export declare function serializeDocumentForMarkdown(document: Document, fallback: string): string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dom-prep.d.ts","sourceRoot":"","sources":["../../src/lib/dom-prep.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"dom-prep.d.ts","sourceRoot":"","sources":["../../src/lib/dom-prep.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AA8mB9D,eAAO,MAAM,sBAAsB,QAAmB,CAAC;AAyCvD,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,QAAQ,GAAG,IAAI,CA6B9D;AAuBD,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAY/D;AAED,wBAAgB,4BAA4B,CAC1C,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EAAE,MAAM,GACf,MAAM,CASR;AA0CD,qEAAqE;AACrE,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,QAAQ,GAAG,IAAI,CAG5D;AAmUD,wBAAgB,0BAA0B,CACxC,QAAQ,EAAE,QAAQ,EAClB,OAAO,CAAC,EAAE,MAAM,EAChB,MAAM,CAAC,EAAE,WAAW,GACnB,IAAI,CAON;AA4BD,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,MAAM,EACZ,QAAQ,CAAC,EAAE,QAAQ,EACnB,OAAO,CAAC,EAAE,MAAM,EAChB,MAAM,CAAC,EAAE,WAAW,GACnB,MAAM,CAcR;AA0ED,wBAAgB,oBAAoB,CAClC,cAAc,EAAE,MAAM,GAAG,QAAQ,GAChC,MAAM,CAaR;AA6ID,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,gBAAgB,EACzB,QAAQ,EAAE,QAAQ,GACjB,QAAQ,GAAG,IAAI,CAsBjB"}
|
package/dist/lib/dom-prep.js
CHANGED
|
@@ -94,8 +94,6 @@ const PROMO_TOKENS_ALWAYS = [
|
|
|
94
94
|
'recommend',
|
|
95
95
|
'breadcrumb',
|
|
96
96
|
'breadcrumbs',
|
|
97
|
-
'pagination',
|
|
98
|
-
'pager',
|
|
99
97
|
'taglist',
|
|
100
98
|
'twitter-tweet',
|
|
101
99
|
'fb-post',
|
|
@@ -523,7 +521,7 @@ function processUrlElement(el, attr, base, isSrcset) {
|
|
|
523
521
|
}
|
|
524
522
|
// Rewrite WordPress Photon CDN image URLs to point to the original host, since srcset URLs are often preserved with the updated domain while src is not.
|
|
525
523
|
// This ensures images are correctly resolved when the page is migrated to a new domain but still references the old domain in img src attributes.
|
|
526
|
-
const WP_PHOTON_HOST_PATTERN = /^i\d\.wp\.com$/;
|
|
524
|
+
export const WP_PHOTON_HOST_PATTERN = /^i\d\.wp\.com$/;
|
|
527
525
|
function rewritePhotonSrc(document, pageHost) {
|
|
528
526
|
for (const img of document.querySelectorAll('img[src]')) {
|
|
529
527
|
const src = img.getAttribute('src');
|
|
@@ -890,10 +888,19 @@ function separateAdjacentInlineElements(document) {
|
|
|
890
888
|
function stripDocsControls(document) {
|
|
891
889
|
removeNodes(document.querySelectorAll(DOCS_CONTROL_SELECTORS.join(',')));
|
|
892
890
|
}
|
|
891
|
+
function stripAriaLiveInstructions(document) {
|
|
892
|
+
for (const el of document.querySelectorAll('[aria-live]')) {
|
|
893
|
+
const text = (el.textContent || '').trim();
|
|
894
|
+
if (text.length > 0 && text.length <= INLINE_DEMO_INSTRUCTION_MAX_CHARS) {
|
|
895
|
+
el.remove();
|
|
896
|
+
}
|
|
897
|
+
}
|
|
898
|
+
}
|
|
893
899
|
function runDocsControlPass(document) {
|
|
894
900
|
normalizeTabContent(document);
|
|
895
901
|
cleanHeadings(document);
|
|
896
902
|
stripDocsControls(document);
|
|
903
|
+
stripAriaLiveInstructions(document);
|
|
897
904
|
stripPromoLinks(document);
|
|
898
905
|
separateAdjacentInlineElements(document);
|
|
899
906
|
}
|
package/dist/lib/http.js
CHANGED
|
@@ -13,7 +13,7 @@ import { Agent } from 'undici';
|
|
|
13
13
|
import { z } from 'zod';
|
|
14
14
|
import { parseCachedPayload, resolveCachedPayloadContent } from '../schemas.js';
|
|
15
15
|
import { get as cacheGet, config, getOperationId, getRequestId, logDebug, logError, logWarn, redactUrl, } from './core.js';
|
|
16
|
-
import { isIP } from './
|
|
16
|
+
import { isIP } from './url.js';
|
|
17
17
|
import { BLOCKED_HOST_SUFFIXES, createDnsPreflight, IpBlocker, RawUrlTransformer, SafeDnsResolver, UrlNormalizer, VALIDATION_ERROR_CODE, } from './url.js';
|
|
18
18
|
import { composeAbortSignal, createErrorWithCode, FetchError, isAbortError, isError, isObject, isSystemError, toError, } from './utils.js';
|
|
19
19
|
import { formatZodError } from './zod.js';
|
|
@@ -5,8 +5,8 @@ import { z } from 'zod';
|
|
|
5
5
|
import { parseExtendedCallToolRequest, withRelatedTaskMeta, } from '../tasks/call-contract.js';
|
|
6
6
|
import { abortTaskExecution, emitTaskStatusNotification, handleToolCallRequest, throwTaskNotFound, toTaskSummary, } from '../tasks/execution.js';
|
|
7
7
|
import { taskManager } from '../tasks/manager.js';
|
|
8
|
+
import { hasRegisteredTaskCapableTools, hasTaskCapableTool, } from '../tasks/manager.js';
|
|
8
9
|
import { isServerResult, parseHandlerExtra, resolveTaskOwnerKey, resolveToolCallContext, } from '../tasks/owner.js';
|
|
9
|
-
import { hasRegisteredTaskCapableTools, hasTaskCapableTool, } from '../tasks/tool-registry.js';
|
|
10
10
|
import { logWarn, runWithRequestContext } from './core.js';
|
|
11
11
|
import { getSdkCallToolHandler } from './sdk-interop.js';
|
|
12
12
|
export { cancelTasksForOwner, abortAllTaskExecutions, } from '../tasks/execution.js';
|
package/dist/lib/url.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { BlockList } from 'node:net';
|
|
1
|
+
import { BlockList, isIP } from 'node:net';
|
|
2
2
|
import { config } from './core.js';
|
|
3
3
|
export declare class SafeDnsResolver {
|
|
4
4
|
private readonly ipBlocker;
|
|
@@ -77,5 +77,8 @@ export declare class UrlNormalizer {
|
|
|
77
77
|
private normalizeHostname;
|
|
78
78
|
private assertHostnameAllowed;
|
|
79
79
|
}
|
|
80
|
-
export {};
|
|
80
|
+
export { isIP };
|
|
81
|
+
export declare function buildIpv4(parts: readonly [number, number, number, number]): string;
|
|
82
|
+
export declare function stripTrailingDots(value: string): string;
|
|
83
|
+
export declare function normalizeHostname(value: string): string | null;
|
|
81
84
|
//# sourceMappingURL=url.d.ts.map
|
package/dist/lib/url.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"url.d.ts","sourceRoot":"","sources":["../../src/lib/url.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAiB,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"url.d.ts","sourceRoot":"","sources":["../../src/lib/url.ts"],"names":[],"mappings":"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"}
|
package/dist/lib/url.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import dns from 'node:dns';
|
|
2
|
-
import { BlockList, SocketAddress } from 'node:net';
|
|
2
|
+
import { BlockList, isIP, SocketAddress } from 'node:net';
|
|
3
|
+
import { domainToASCII } from 'node:url';
|
|
3
4
|
import { config, logDebug } from './core.js';
|
|
4
|
-
import { buildIpv4, isIP, normalizeHostname, stripTrailingDots, } from './net-utils.js';
|
|
5
5
|
import { composeAbortSignal, createErrorWithCode, isError, isSystemError, } from './utils.js';
|
|
6
6
|
const DNS_LOOKUP_TIMEOUT_MS = 5000;
|
|
7
7
|
const CNAME_LOOKUP_MAX_DEPTH = 5;
|
|
@@ -581,3 +581,23 @@ export class UrlNormalizer {
|
|
|
581
581
|
throw createValidationError(messages[result.reason]);
|
|
582
582
|
}
|
|
583
583
|
}
|
|
584
|
+
export { isIP };
|
|
585
|
+
export function buildIpv4(parts) {
|
|
586
|
+
return parts.join('.');
|
|
587
|
+
}
|
|
588
|
+
export function stripTrailingDots(value) {
|
|
589
|
+
let result = value;
|
|
590
|
+
while (result.endsWith('.'))
|
|
591
|
+
result = result.slice(0, -1);
|
|
592
|
+
return result;
|
|
593
|
+
}
|
|
594
|
+
export function normalizeHostname(value) {
|
|
595
|
+
const trimmed = value.trim();
|
|
596
|
+
if (!trimmed)
|
|
597
|
+
return null;
|
|
598
|
+
const lowered = trimmed.toLowerCase();
|
|
599
|
+
if (isIP(lowered))
|
|
600
|
+
return stripTrailingDots(lowered);
|
|
601
|
+
const ascii = domainToASCII(lowered);
|
|
602
|
+
return ascii ? stripTrailingDots(ascii) : null;
|
|
603
|
+
}
|
package/dist/lib/utils.d.ts
CHANGED
|
@@ -83,5 +83,12 @@ export declare function trimUtf8Buffer(buffer: Uint8Array, maxBytes: number): Ui
|
|
|
83
83
|
export declare function trimDanglingTagFragment(content: string): string;
|
|
84
84
|
export declare function isAsciiOnly(s: string, sampleSize?: number): boolean;
|
|
85
85
|
export declare function truncateToUtf8Boundary(html: string, maxBytes: number): string;
|
|
86
|
+
export interface IconInfo {
|
|
87
|
+
src: string;
|
|
88
|
+
mimeType: string;
|
|
89
|
+
}
|
|
90
|
+
export declare function buildOptionalIcons(iconInfo?: IconInfo): {
|
|
91
|
+
icons: IconInfo[];
|
|
92
|
+
} | Record<string, never>;
|
|
86
93
|
export {};
|
|
87
94
|
//# sourceMappingURL=utils.d.ts.map
|
package/dist/lib/utils.d.ts.map
CHANGED
|
@@ -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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"}
|
package/dist/lib/utils.js
CHANGED
|
@@ -336,3 +336,15 @@ export function truncateToUtf8Boundary(html, maxBytes) {
|
|
|
336
336
|
const htmlBuffer = new TextEncoder().encode(html.slice(0, maxBytes));
|
|
337
337
|
return trimDanglingTagFragment(new TextDecoder('utf-8').decode(trimUtf8Buffer(htmlBuffer, maxBytes)));
|
|
338
338
|
}
|
|
339
|
+
export function buildOptionalIcons(iconInfo) {
|
|
340
|
+
if (!iconInfo)
|
|
341
|
+
return {};
|
|
342
|
+
return {
|
|
343
|
+
icons: [
|
|
344
|
+
{
|
|
345
|
+
src: iconInfo.src,
|
|
346
|
+
mimeType: iconInfo.mimeType,
|
|
347
|
+
},
|
|
348
|
+
],
|
|
349
|
+
};
|
|
350
|
+
}
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import { type McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
|
|
2
|
-
import { type IconInfo } from '../lib/
|
|
2
|
+
import { type IconInfo } from '../lib/utils.js';
|
|
3
3
|
export declare function registerInstructionResource(server: McpServer, instructions: string, iconInfo?: IconInfo): void;
|
|
4
4
|
export declare function registerCacheResourceTemplate(server: McpServer, iconInfo?: IconInfo): void;
|
|
5
|
+
export declare function buildServerInstructions(): string;
|
|
6
|
+
export declare function registerGetHelpPrompt(server: McpServer, instructions: string, iconInfo?: IconInfo): void;
|
|
5
7
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/resources/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,SAAS,EAEf,MAAM,yCAAyC,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/resources/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,SAAS,EAEf,MAAM,yCAAyC,CAAC;AAsBjD,OAAO,EAAsB,KAAK,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAkXpE,wBAAgB,2BAA2B,CACzC,MAAM,EAAE,SAAS,EACjB,YAAY,EAAE,MAAM,EACpB,QAAQ,CAAC,EAAE,QAAQ,GAClB,IAAI,CAwBN;AAED,wBAAgB,6BAA6B,CAC3C,MAAM,EAAE,SAAS,EACjB,QAAQ,CAAC,EAAE,QAAQ,GAClB,IAAI,CA4BN;AAED,wBAAgB,uBAAuB,IAAI,MAAM,CAoChD;AAED,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,SAAS,EACjB,YAAY,EAAE,MAAM,EACpB,QAAQ,CAAC,EAAE,QAAQ,GAClB,IAAI,CAwBN"}
|
package/dist/resources/index.js
CHANGED
|
@@ -2,10 +2,12 @@ import { ResourceTemplate, } from '@modelcontextprotocol/sdk/server/mcp.js';
|
|
|
2
2
|
import { ErrorCode, McpError, SubscribeRequestSchema, UnsubscribeRequestSchema, } from '@modelcontextprotocol/sdk/types.js';
|
|
3
3
|
import { get as getCacheEntry, getEntryMeta, keys as listCacheKeys, onCacheUpdate, parseCacheKey, } from '../lib/core.js';
|
|
4
4
|
import { logWarn } from '../lib/core.js';
|
|
5
|
+
import { config } from '../lib/core.js';
|
|
5
6
|
import { registerServerLifecycleCleanup } from '../lib/sdk-interop.js';
|
|
6
|
-
import { buildOptionalIcons } from '../lib/
|
|
7
|
+
import { buildOptionalIcons } from '../lib/utils.js';
|
|
7
8
|
import { isObject } from '../lib/utils.js';
|
|
8
9
|
import { parseCachedPayload, resolveCachedPayloadContent } from '../schemas.js';
|
|
10
|
+
import { FETCH_URL_TOOL_NAME } from '../tools/fetch-url.js';
|
|
9
11
|
const RESOURCE_NOT_FOUND_ERROR_CODE = -32002;
|
|
10
12
|
const CACHE_RESOURCE_TEMPLATE_URI = 'internal://cache/{namespace}/{hash}';
|
|
11
13
|
const CACHE_RESOURCE_PREFIX = 'internal://cache/';
|
|
@@ -329,3 +331,58 @@ export function registerCacheResourceTemplate(server, iconInfo) {
|
|
|
329
331
|
}, (uri, variables) => readCacheResource(uri, normalizeTemplateVariables(variables)));
|
|
330
332
|
registerCacheResourceNotifications(server);
|
|
331
333
|
}
|
|
334
|
+
export function buildServerInstructions() {
|
|
335
|
+
const maxHtmlSizeMb = config.constants.maxHtmlSize / 1024 / 1024;
|
|
336
|
+
const cacheSizeMb = config.cache.maxSizeBytes / 1024 / 1024;
|
|
337
|
+
const cacheTtlHours = config.cache.ttl / 3600;
|
|
338
|
+
return `# Fetch public webpages and return clean, readable Markdown.
|
|
339
|
+
|
|
340
|
+
# Capabilities
|
|
341
|
+
- Tool: \`${FETCH_URL_TOOL_NAME}\` (fetch URL, return Markdown)
|
|
342
|
+
- Resource: \`internal://instructions\` (this document)
|
|
343
|
+
- Resource template: \`internal://cache/{namespace}/{hash}\` (cached Markdown)
|
|
344
|
+
- Prompt: \`get-help\` (returns these instructions)
|
|
345
|
+
- Completions: resource-template argument completion for cache entries
|
|
346
|
+
|
|
347
|
+
# Workflows
|
|
348
|
+
1. Standard: Call \`${FETCH_URL_TOOL_NAME}\` → read \`markdown\`. \`truncated: true\` means content was cut at server size limit.
|
|
349
|
+
2. Fresh: \`forceRefresh: true\` bypasses cache (does not fix truncation).
|
|
350
|
+
3. Async: \`task: { ttl: <ms> }\` in \`tools/call\` → poll \`tasks/get\` → \`tasks/result\`.
|
|
351
|
+
|
|
352
|
+
# Constraints
|
|
353
|
+
- Blocked URLs: localhost, private IPs (10.x, 172.16-31.x, 192.168.x), metadata (169.254.169.254), .local/.internal.
|
|
354
|
+
- Max HTML: ${maxHtmlSizeMb}MB. Max redirects: ${config.fetcher.maxRedirects}.
|
|
355
|
+
- Cache: ${config.cache.maxKeys} entries, ${cacheSizeMb}MB, ${cacheTtlHours}h TTL. Process-local, ephemeral.
|
|
356
|
+
- No JS rendering — client-side pages may be incomplete.
|
|
357
|
+
- Binary: not supported.
|
|
358
|
+
- Batch JSON-RPC (\`[{...}]\`): rejected with HTTP 400.
|
|
359
|
+
- \`internal://\` URIs are server-scoped, valid only within current session.
|
|
360
|
+
- Tasks API (SDK v1.26): experimental. \`tasks/get\`, \`tasks/result\`, \`tasks/list\`, \`tasks/cancel\` may change.
|
|
361
|
+
- Notifications: opt-in. Set \`TASKS_STATUS_NOTIFICATIONS=true\`.
|
|
362
|
+
|
|
363
|
+
# Errors
|
|
364
|
+
- VALIDATION_ERROR: invalid/blocked URL. Do not retry.
|
|
365
|
+
- FETCH_ERROR: network failure. Retry once with backoff.
|
|
366
|
+
- HTTP_xxx: upstream error. Retry only for 5xx.
|
|
367
|
+
- ABORTED: cancelled. Retry if needed.
|
|
368
|
+
- queue_full: worker pool busy. Wait and retry, or use task mode.`;
|
|
369
|
+
}
|
|
370
|
+
export function registerGetHelpPrompt(server, instructions, iconInfo) {
|
|
371
|
+
const description = 'Return Fetch URL server instructions: workflows, cache usage, task mode, and error handling.';
|
|
372
|
+
server.registerPrompt('get-help', {
|
|
373
|
+
title: 'Get Help',
|
|
374
|
+
description,
|
|
375
|
+
...buildOptionalIcons(iconInfo),
|
|
376
|
+
}, () => ({
|
|
377
|
+
description,
|
|
378
|
+
messages: [
|
|
379
|
+
{
|
|
380
|
+
role: 'assistant',
|
|
381
|
+
content: {
|
|
382
|
+
type: 'text',
|
|
383
|
+
text: instructions,
|
|
384
|
+
},
|
|
385
|
+
},
|
|
386
|
+
],
|
|
387
|
+
}));
|
|
388
|
+
}
|
package/dist/server.js
CHANGED
|
@@ -8,9 +8,7 @@ import { getSessionId, logError, logInfo, setLogLevel, setMcpServer, } from './l
|
|
|
8
8
|
import { setTaskToolCallCapability } from './lib/sdk-interop.js';
|
|
9
9
|
import { abortAllTaskExecutions, registerTaskHandlers, } from './lib/task-handlers.js';
|
|
10
10
|
import { toError } from './lib/utils.js';
|
|
11
|
-
import { registerGetHelpPrompt } from './
|
|
12
|
-
import { registerCacheResourceTemplate, registerInstructionResource, } from './resources/index.js';
|
|
13
|
-
import { buildServerInstructions } from './resources/instructions.js';
|
|
11
|
+
import { buildServerInstructions, registerCacheResourceTemplate, registerGetHelpPrompt, registerInstructionResource, } from './resources/index.js';
|
|
14
12
|
import { registerTools as registerFetchUrlTool } from './tools/fetch-url.js';
|
|
15
13
|
import { shutdownTransformWorkerPool } from './transform/transform.js';
|
|
16
14
|
/* -------------------------------------------------------------------------------------------------
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"execution.d.ts","sourceRoot":"","sources":["../../src/tasks/execution.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,EAGL,KAAK,YAAY,EAClB,MAAM,oCAAoC,CAAC;AAQ5C,OAAO,EAEL,KAAK,uBAAuB,EAC7B,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,KAAK,gBAAgB,EAErB,KAAK,SAAS,EACf,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"execution.d.ts","sourceRoot":"","sources":["../../src/tasks/execution.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,EAGL,KAAK,YAAY,EAClB,MAAM,oCAAoC,CAAC;AAQ5C,OAAO,EAEL,KAAK,uBAAuB,EAC7B,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,KAAK,gBAAgB,EAErB,KAAK,SAAS,EACf,MAAM,cAAc,CAAC;AAMtB,OAAO,EAGL,KAAK,eAAe,EAErB,MAAM,YAAY,CAAC;AA2BpB,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAGvD;AAED,wBAAgB,mBAAmB,CACjC,QAAQ,EAAE,MAAM,EAChB,aAAa,SAA4D,GACxE,MAAM,CAOR;AAED,wBAAgB,sBAAsB,IAAI,IAAI,CAE7C;AAMD,KAAK,WAAW,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC;AAC5C,KAAK,uBAAuB,GAAG,IAAI,CACjC,SAAS,EACP,QAAQ,GACR,QAAQ,GACR,eAAe,GACf,WAAW,GACX,eAAe,GACf,KAAK,GACL,cAAc,CACjB,CAAC;AAEF,wBAAgB,aAAa,CAAC,IAAI,EAAE,uBAAuB,GAAG,WAAW,CAUxE;AAED,wBAAgB,0BAA0B,CACxC,MAAM,EAAE,SAAS,EACjB,IAAI,EAAE,SAAS,GACd,IAAI,CAeN;AAED,wBAAgB,iBAAiB,IAAI,KAAK,CAEzC;AA+GD,wBAAsB,qBAAqB,CACzC,MAAM,EAAE,SAAS,EACjB,OAAO,EAAE,uBAAuB,EAChC,OAAO,EAAE,eAAe,GACvB,OAAO,CAAC,YAAY,CAAC,CA4CvB"}
|
package/dist/tasks/execution.js
CHANGED
|
@@ -5,8 +5,8 @@ import { getErrorMessage } from '../lib/utils.js';
|
|
|
5
5
|
import { isObject } from '../lib/utils.js';
|
|
6
6
|
import { buildRelatedTaskMeta, } from './call-contract.js';
|
|
7
7
|
import { taskManager, } from './manager.js';
|
|
8
|
+
import { getTaskCapableTool, getTaskCapableToolSupport, } from './manager.js';
|
|
8
9
|
import { buildToolHandlerExtra, compact, tryReadToolStructuredError, } from './owner.js';
|
|
9
|
-
import { getTaskCapableTool, getTaskCapableToolSupport, } from './tool-registry.js';
|
|
10
10
|
const TASK_NOT_FOUND_ERROR_CODE = -32002;
|
|
11
11
|
/* -------------------------------------------------------------------------------------------------
|
|
12
12
|
* Abort-controller management for in-flight task executions
|
package/dist/tasks/manager.d.ts
CHANGED
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import type { ServerResult } from '@modelcontextprotocol/sdk/types.js';
|
|
2
|
+
import type { ToolHandlerExtra } from '../lib/progress.js';
|
|
1
3
|
export type TaskStatus = 'working' | 'completed' | 'failed' | 'cancelled';
|
|
2
4
|
export interface TaskError {
|
|
3
5
|
code: number;
|
|
@@ -65,5 +67,24 @@ declare class TaskManager {
|
|
|
65
67
|
shrinkTtlAfterDelivery(taskId: string): void;
|
|
66
68
|
}
|
|
67
69
|
export declare const taskManager: TaskManager;
|
|
70
|
+
export declare function encodeTaskCursor(anchorTaskId: string): string;
|
|
71
|
+
export declare function decodeTaskCursor(cursor: string): {
|
|
72
|
+
anchorTaskId: string;
|
|
73
|
+
} | null;
|
|
74
|
+
export type TaskCapableToolSupport = 'optional' | 'forbidden';
|
|
75
|
+
export interface TaskCapableToolDescriptor<TArgs = unknown> {
|
|
76
|
+
name: string;
|
|
77
|
+
parseArguments: (args: unknown) => TArgs;
|
|
78
|
+
execute: (args: TArgs, extra?: ToolHandlerExtra) => Promise<ServerResult>;
|
|
79
|
+
getCompletionStatusMessage?: (result: ServerResult) => string | undefined;
|
|
80
|
+
taskSupport?: TaskCapableToolSupport;
|
|
81
|
+
}
|
|
82
|
+
export declare function registerTaskCapableTool<TArgs>(descriptor: TaskCapableToolDescriptor<TArgs>): void;
|
|
83
|
+
export declare function unregisterTaskCapableTool(name: string): void;
|
|
84
|
+
export declare function getTaskCapableTool(name: string): TaskCapableToolDescriptor | undefined;
|
|
85
|
+
export declare function getTaskCapableToolSupport(name: string): TaskCapableToolSupport | undefined;
|
|
86
|
+
export declare function hasTaskCapableTool(name: string): boolean;
|
|
87
|
+
export declare function hasRegisteredTaskCapableTools(): boolean;
|
|
88
|
+
export declare function setTaskCapableToolSupport(name: string, support: TaskCapableToolSupport): void;
|
|
68
89
|
export {};
|
|
69
90
|
//# sourceMappingURL=manager.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../../src/tasks/manager.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../../src/tasks/manager.ts"],"names":[],"mappings":"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"}
|
package/dist/tasks/manager.js
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import { randomUUID } from 'node:crypto';
|
|
2
|
+
import { createHmac, randomBytes } from 'node:crypto';
|
|
2
3
|
import { setInterval } from 'node:timers';
|
|
3
4
|
import { ErrorCode, McpError } from '@modelcontextprotocol/sdk/types.js';
|
|
4
5
|
import { config, logWarn } from '../lib/core.js';
|
|
5
|
-
import {
|
|
6
|
+
import { timingSafeEqualUtf8 } from '../lib/utils.js';
|
|
6
7
|
import { TaskWaiterRegistry, waitForTerminalTask as waitForTerminalTaskWithDeadline, } from './waiters.js';
|
|
7
8
|
const DEFAULT_TTL_MS = 60_000;
|
|
8
9
|
const MIN_TTL_MS = 1_000;
|
|
@@ -259,3 +260,64 @@ class TaskManager {
|
|
|
259
260
|
}
|
|
260
261
|
}
|
|
261
262
|
export const taskManager = new TaskManager();
|
|
263
|
+
const MAX_CURSOR_LENGTH = 256;
|
|
264
|
+
const CURSOR_SECRET = randomBytes(32);
|
|
265
|
+
function signPayload(payload) {
|
|
266
|
+
return createHmac('sha256', CURSOR_SECRET)
|
|
267
|
+
.update(payload)
|
|
268
|
+
.digest('base64url');
|
|
269
|
+
}
|
|
270
|
+
export function encodeTaskCursor(anchorTaskId) {
|
|
271
|
+
const payload = Buffer.from(JSON.stringify({ anchorTaskId }), 'utf8').toString('base64url');
|
|
272
|
+
const signature = signPayload(payload);
|
|
273
|
+
return `${payload}.${signature}`;
|
|
274
|
+
}
|
|
275
|
+
export function decodeTaskCursor(cursor) {
|
|
276
|
+
if (!cursor || cursor.length > MAX_CURSOR_LENGTH)
|
|
277
|
+
return null;
|
|
278
|
+
const [payload, signature, ...rest] = cursor.split('.');
|
|
279
|
+
if (!payload || !signature || rest.length > 0)
|
|
280
|
+
return null;
|
|
281
|
+
if (!timingSafeEqualUtf8(signPayload(payload), signature))
|
|
282
|
+
return null;
|
|
283
|
+
try {
|
|
284
|
+
const decoded = JSON.parse(Buffer.from(payload, 'base64url').toString('utf8'));
|
|
285
|
+
if (typeof decoded.anchorTaskId !== 'string' ||
|
|
286
|
+
decoded.anchorTaskId.length === 0 ||
|
|
287
|
+
decoded.anchorTaskId.length > 128) {
|
|
288
|
+
return null;
|
|
289
|
+
}
|
|
290
|
+
return { anchorTaskId: decoded.anchorTaskId };
|
|
291
|
+
}
|
|
292
|
+
catch {
|
|
293
|
+
return null;
|
|
294
|
+
}
|
|
295
|
+
}
|
|
296
|
+
const taskCapableTools = new Map();
|
|
297
|
+
export function registerTaskCapableTool(descriptor) {
|
|
298
|
+
taskCapableTools.set(descriptor.name, {
|
|
299
|
+
...descriptor,
|
|
300
|
+
taskSupport: descriptor.taskSupport ?? 'optional',
|
|
301
|
+
});
|
|
302
|
+
}
|
|
303
|
+
export function unregisterTaskCapableTool(name) {
|
|
304
|
+
taskCapableTools.delete(name);
|
|
305
|
+
}
|
|
306
|
+
export function getTaskCapableTool(name) {
|
|
307
|
+
return taskCapableTools.get(name);
|
|
308
|
+
}
|
|
309
|
+
export function getTaskCapableToolSupport(name) {
|
|
310
|
+
return taskCapableTools.get(name)?.taskSupport;
|
|
311
|
+
}
|
|
312
|
+
export function hasTaskCapableTool(name) {
|
|
313
|
+
return taskCapableTools.has(name);
|
|
314
|
+
}
|
|
315
|
+
export function hasRegisteredTaskCapableTools() {
|
|
316
|
+
return taskCapableTools.size > 0;
|
|
317
|
+
}
|
|
318
|
+
export function setTaskCapableToolSupport(name, support) {
|
|
319
|
+
const descriptor = taskCapableTools.get(name);
|
|
320
|
+
if (!descriptor)
|
|
321
|
+
return;
|
|
322
|
+
descriptor.taskSupport = support;
|
|
323
|
+
}
|
|
@@ -1,9 +1,12 @@
|
|
|
1
1
|
import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
|
|
2
2
|
import type { ContentBlock } from '@modelcontextprotocol/sdk/types.js';
|
|
3
|
+
import type { ServerResult } from '@modelcontextprotocol/sdk/types.js';
|
|
3
4
|
import { z } from 'zod';
|
|
5
|
+
import type { SharedFetchStage } from '../lib/fetch-pipeline.js';
|
|
4
6
|
import { type ToolHandlerExtra } from '../lib/progress.js';
|
|
7
|
+
import type { ProgressReporter } from '../lib/progress.js';
|
|
5
8
|
import { fetchUrlInputSchema } from '../schemas.js';
|
|
6
|
-
import { type TaskCapableToolSupport } from '../tasks/
|
|
9
|
+
import { type TaskCapableToolSupport } from '../tasks/manager.js';
|
|
7
10
|
type FetchUrlInput = z.infer<typeof fetchUrlInputSchema>;
|
|
8
11
|
interface ToolResponseBase {
|
|
9
12
|
[key: string]: unknown;
|
|
@@ -17,5 +20,17 @@ export interface ToolRegistrationControls {
|
|
|
17
20
|
setTaskSupport: (support: TaskCapableToolSupport) => void;
|
|
18
21
|
}
|
|
19
22
|
export declare function registerTools(server: McpServer): ToolRegistrationControls;
|
|
23
|
+
export declare function getFetchCompletionStatusMessage(result: ServerResult): string | undefined;
|
|
24
|
+
export declare class FetchUrlProgressPlan {
|
|
25
|
+
private readonly reporter;
|
|
26
|
+
private readonly context;
|
|
27
|
+
private cacheStatus;
|
|
28
|
+
constructor(reporter: ProgressReporter, context: string);
|
|
29
|
+
reportStart(): void;
|
|
30
|
+
reportStage(stage: SharedFetchStage): void;
|
|
31
|
+
reportSuccess(contentSize: number): void;
|
|
32
|
+
reportFailure(cancelled: boolean): void;
|
|
33
|
+
private mapStage;
|
|
34
|
+
}
|
|
20
35
|
export {};
|
|
21
36
|
//# sourceMappingURL=fetch-url.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fetch-url.d.ts","sourceRoot":"","sources":["../../src/tools/fetch-url.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,KAAK,EACV,YAAY,EAEb,MAAM,oCAAoC,CAAC;AAE5C,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"fetch-url.d.ts","sourceRoot":"","sources":["../../src/tools/fetch-url.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,KAAK,EACV,YAAY,EAEb,MAAM,oCAAoC,CAAC;AAE5C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oCAAoC,CAAC;AACvE,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAcxB,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAEjE,OAAO,EAEL,KAAK,gBAAgB,EACtB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAU3D,OAAO,EACL,mBAAmB,EAIpB,MAAM,eAAe,CAAC;AACvB,OAAO,EAIL,KAAK,sBAAsB,EAE5B,MAAM,qBAAqB,CAAC;AAG7B,KAAK,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAEzD,UAAU,gBAAgB;IACxB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;IACvB,OAAO,EAAE,YAAY,EAAE,CAAC;IACxB,iBAAiB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAAC;IACxD,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,eAAO,MAAM,mBAAmB,cAAc,CAAC;AAmL/C,wBAAsB,mBAAmB,CACvC,KAAK,EAAE,aAAa,EACpB,KAAK,CAAC,EAAE,gBAAgB,GACvB,OAAO,CAAC,gBAAgB,CAAC,CAQ3B;AAqBD,MAAM,WAAW,wBAAwB;IACvC,cAAc,EAAE,CAAC,OAAO,EAAE,sBAAsB,KAAK,IAAI,CAAC;CAC3D;AA4BD,wBAAgB,aAAa,CAAC,MAAM,EAAE,SAAS,GAAG,wBAAwB,CAkCzE;AAyBD,wBAAgB,+BAA+B,CAC7C,MAAM,EAAE,YAAY,GACnB,MAAM,GAAG,SAAS,CAUpB;AAED,qBAAa,oBAAoB;IAI7B,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,OAAO;IAJ1B,OAAO,CAAC,WAAW,CAA0B;gBAG1B,QAAQ,EAAE,gBAAgB,EAC1B,OAAO,EAAE,MAAM;IAGlC,WAAW,IAAI,IAAI;IAInB,WAAW,CAAC,KAAK,EAAE,gBAAgB,GAAG,IAAI;IAM1C,aAAa,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI;IAIxC,aAAa,CAAC,SAAS,EAAE,OAAO,GAAG,IAAI;IAIvC,OAAO,CAAC,QAAQ;CAwCjB"}
|