@j0hanz/fetch-url-mcp 1.4.0 → 1.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cli.d.ts +2 -3
- package/dist/cli.js +1 -2
- package/dist/http/auth.d.ts +5 -3
- package/dist/http/auth.js +64 -15
- package/dist/http/health.d.ts +1 -2
- package/dist/http/health.js +7 -18
- package/dist/http/helpers.d.ts +3 -4
- package/dist/http/helpers.js +21 -21
- package/dist/http/native.d.ts +0 -1
- package/dist/http/native.js +34 -26
- package/dist/http/rate-limit.d.ts +0 -1
- package/dist/http/rate-limit.js +3 -4
- package/dist/index.d.ts +0 -1
- package/dist/index.js +17 -18
- package/dist/lib/{markdown-cleanup.d.ts → content.d.ts} +4 -2
- package/dist/lib/content.js +1356 -0
- package/dist/lib/core.d.ts +253 -0
- package/dist/lib/core.js +1228 -0
- package/dist/lib/{tool-pipeline.d.ts → fetch-pipeline.d.ts} +1 -2
- package/dist/lib/{tool-pipeline.js → fetch-pipeline.js} +10 -19
- package/dist/lib/{fetch.d.ts → http.d.ts} +7 -9
- package/dist/lib/{fetch.js → http.js} +706 -944
- package/dist/lib/mcp-tools.d.ts +28 -0
- package/dist/lib/mcp-tools.js +107 -0
- package/dist/lib/{tool-progress.d.ts → progress.d.ts} +0 -1
- package/dist/lib/{tool-progress.js → progress.js} +8 -13
- package/dist/lib/task-handlers.d.ts +5 -0
- package/dist/lib/{mcp.js → task-handlers.js} +56 -12
- package/dist/lib/url.d.ts +70 -0
- package/dist/lib/url.js +686 -0
- package/dist/lib/utils.d.ts +58 -0
- package/dist/lib/utils.js +304 -0
- package/dist/prompts/index.d.ts +0 -1
- package/dist/prompts/index.js +0 -1
- package/dist/resources/index.d.ts +0 -1
- package/dist/resources/index.js +74 -33
- package/dist/resources/instructions.d.ts +0 -1
- package/dist/resources/instructions.js +2 -2
- package/dist/schemas/inputs.d.ts +0 -1
- package/dist/schemas/inputs.js +2 -3
- package/dist/schemas/outputs.d.ts +0 -1
- package/dist/schemas/outputs.js +1 -2
- package/dist/server.d.ts +0 -1
- package/dist/server.js +16 -26
- package/dist/tasks/execution.d.ts +0 -1
- package/dist/tasks/execution.js +27 -24
- package/dist/tasks/manager.d.ts +7 -3
- package/dist/tasks/manager.js +53 -34
- package/dist/tasks/owner.d.ts +1 -2
- package/dist/tasks/owner.js +1 -2
- package/dist/tasks/tool-registry.d.ts +1 -2
- package/dist/tasks/tool-registry.js +0 -1
- package/dist/tools/fetch-url.d.ts +1 -2
- package/dist/tools/fetch-url.js +39 -31
- package/dist/tools/index.d.ts +0 -1
- package/dist/tools/index.js +0 -1
- package/dist/transform/html-translators.d.ts +1 -0
- package/dist/transform/html-translators.js +454 -0
- package/dist/transform/metadata.d.ts +4 -0
- package/dist/transform/metadata.js +183 -0
- package/dist/transform/transform.d.ts +0 -1
- package/dist/transform/transform.js +24 -641
- package/dist/transform/types.d.ts +9 -11
- package/dist/transform/types.js +0 -1
- package/dist/transform/worker-pool.d.ts +0 -1
- package/dist/transform/worker-pool.js +7 -16
- package/dist/transform/workers/shared.d.ts +0 -1
- package/dist/transform/workers/shared.js +1 -2
- package/dist/transform/workers/transform-child.d.ts +0 -1
- package/dist/transform/workers/transform-child.js +0 -1
- package/dist/transform/workers/transform-worker.d.ts +0 -1
- package/dist/transform/workers/transform-worker.js +0 -1
- package/package.json +6 -3
- package/dist/cli.d.ts.map +0 -1
- package/dist/cli.js.map +0 -1
- package/dist/http/auth.d.ts.map +0 -1
- package/dist/http/auth.js.map +0 -1
- package/dist/http/health.d.ts.map +0 -1
- package/dist/http/health.js.map +0 -1
- package/dist/http/helpers.d.ts.map +0 -1
- package/dist/http/helpers.js.map +0 -1
- package/dist/http/native.d.ts.map +0 -1
- package/dist/http/native.js.map +0 -1
- package/dist/http/rate-limit.d.ts.map +0 -1
- package/dist/http/rate-limit.js.map +0 -1
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/lib/cache.d.ts +0 -54
- package/dist/lib/cache.d.ts.map +0 -1
- package/dist/lib/cache.js +0 -264
- package/dist/lib/cache.js.map +0 -1
- package/dist/lib/config.d.ts +0 -143
- package/dist/lib/config.d.ts.map +0 -1
- package/dist/lib/config.js +0 -476
- package/dist/lib/config.js.map +0 -1
- package/dist/lib/crypto.d.ts +0 -4
- package/dist/lib/crypto.d.ts.map +0 -1
- package/dist/lib/crypto.js +0 -56
- package/dist/lib/crypto.js.map +0 -1
- package/dist/lib/dom-noise-removal.d.ts +0 -2
- package/dist/lib/dom-noise-removal.d.ts.map +0 -1
- package/dist/lib/dom-noise-removal.js +0 -494
- package/dist/lib/dom-noise-removal.js.map +0 -1
- package/dist/lib/download.d.ts +0 -4
- package/dist/lib/download.d.ts.map +0 -1
- package/dist/lib/download.js +0 -106
- package/dist/lib/download.js.map +0 -1
- package/dist/lib/errors.d.ts +0 -14
- package/dist/lib/errors.d.ts.map +0 -1
- package/dist/lib/errors.js +0 -72
- package/dist/lib/errors.js.map +0 -1
- package/dist/lib/fetch-content.d.ts +0 -5
- package/dist/lib/fetch-content.d.ts.map +0 -1
- package/dist/lib/fetch-content.js +0 -164
- package/dist/lib/fetch-content.js.map +0 -1
- package/dist/lib/fetch-stream.d.ts +0 -5
- package/dist/lib/fetch-stream.d.ts.map +0 -1
- package/dist/lib/fetch-stream.js +0 -29
- package/dist/lib/fetch-stream.js.map +0 -1
- package/dist/lib/fetch.d.ts.map +0 -1
- package/dist/lib/fetch.js.map +0 -1
- package/dist/lib/host-normalization.d.ts +0 -2
- package/dist/lib/host-normalization.d.ts.map +0 -1
- package/dist/lib/host-normalization.js +0 -91
- package/dist/lib/host-normalization.js.map +0 -1
- package/dist/lib/ip-blocklist.d.ts +0 -9
- package/dist/lib/ip-blocklist.d.ts.map +0 -1
- package/dist/lib/ip-blocklist.js +0 -79
- package/dist/lib/ip-blocklist.js.map +0 -1
- package/dist/lib/json.d.ts +0 -2
- package/dist/lib/json.d.ts.map +0 -1
- package/dist/lib/json.js +0 -45
- package/dist/lib/json.js.map +0 -1
- package/dist/lib/language-detection.d.ts +0 -3
- package/dist/lib/language-detection.d.ts.map +0 -1
- package/dist/lib/language-detection.js +0 -355
- package/dist/lib/language-detection.js.map +0 -1
- package/dist/lib/markdown-cleanup.d.ts.map +0 -1
- package/dist/lib/markdown-cleanup.js +0 -532
- package/dist/lib/markdown-cleanup.js.map +0 -1
- package/dist/lib/mcp-lifecycle.d.ts +0 -5
- package/dist/lib/mcp-lifecycle.d.ts.map +0 -1
- package/dist/lib/mcp-lifecycle.js +0 -51
- package/dist/lib/mcp-lifecycle.js.map +0 -1
- package/dist/lib/mcp-validator.d.ts +0 -17
- package/dist/lib/mcp-validator.d.ts.map +0 -1
- package/dist/lib/mcp-validator.js +0 -45
- package/dist/lib/mcp-validator.js.map +0 -1
- package/dist/lib/mcp.d.ts +0 -4
- package/dist/lib/mcp.d.ts.map +0 -1
- package/dist/lib/mcp.js.map +0 -1
- package/dist/lib/observability.d.ts +0 -23
- package/dist/lib/observability.d.ts.map +0 -1
- package/dist/lib/observability.js +0 -238
- package/dist/lib/observability.js.map +0 -1
- package/dist/lib/server-tuning.d.ts +0 -15
- package/dist/lib/server-tuning.d.ts.map +0 -1
- package/dist/lib/server-tuning.js +0 -49
- package/dist/lib/server-tuning.js.map +0 -1
- package/dist/lib/session.d.ts +0 -45
- package/dist/lib/session.d.ts.map +0 -1
- package/dist/lib/session.js +0 -263
- package/dist/lib/session.js.map +0 -1
- package/dist/lib/timer-utils.d.ts +0 -13
- package/dist/lib/timer-utils.d.ts.map +0 -1
- package/dist/lib/timer-utils.js +0 -44
- package/dist/lib/timer-utils.js.map +0 -1
- package/dist/lib/tool-errors.d.ts +0 -12
- package/dist/lib/tool-errors.d.ts.map +0 -1
- package/dist/lib/tool-errors.js +0 -55
- package/dist/lib/tool-errors.js.map +0 -1
- package/dist/lib/tool-pipeline.d.ts.map +0 -1
- package/dist/lib/tool-pipeline.js.map +0 -1
- package/dist/lib/tool-progress.d.ts.map +0 -1
- package/dist/lib/tool-progress.js.map +0 -1
- package/dist/lib/type-guards.d.ts +0 -16
- package/dist/lib/type-guards.d.ts.map +0 -1
- package/dist/lib/type-guards.js +0 -13
- package/dist/lib/type-guards.js.map +0 -1
- package/dist/prompts/index.d.ts.map +0 -1
- package/dist/prompts/index.js.map +0 -1
- package/dist/resources/index.d.ts.map +0 -1
- package/dist/resources/index.js.map +0 -1
- package/dist/resources/instructions.d.ts.map +0 -1
- package/dist/resources/instructions.js.map +0 -1
- package/dist/schemas/inputs.d.ts.map +0 -1
- package/dist/schemas/inputs.js.map +0 -1
- package/dist/schemas/outputs.d.ts.map +0 -1
- package/dist/schemas/outputs.js.map +0 -1
- package/dist/server.d.ts.map +0 -1
- package/dist/server.js.map +0 -1
- package/dist/tasks/execution.d.ts.map +0 -1
- package/dist/tasks/execution.js.map +0 -1
- package/dist/tasks/manager.d.ts.map +0 -1
- package/dist/tasks/manager.js.map +0 -1
- package/dist/tasks/owner.d.ts.map +0 -1
- package/dist/tasks/owner.js.map +0 -1
- package/dist/tasks/tool-registry.d.ts.map +0 -1
- package/dist/tasks/tool-registry.js.map +0 -1
- package/dist/tools/fetch-url.d.ts.map +0 -1
- package/dist/tools/fetch-url.js.map +0 -1
- package/dist/tools/index.d.ts.map +0 -1
- package/dist/tools/index.js.map +0 -1
- package/dist/transform/transform.d.ts.map +0 -1
- package/dist/transform/transform.js.map +0 -1
- package/dist/transform/types.d.ts.map +0 -1
- package/dist/transform/types.js.map +0 -1
- package/dist/transform/worker-pool.d.ts.map +0 -1
- package/dist/transform/worker-pool.js.map +0 -1
- package/dist/transform/workers/shared.d.ts.map +0 -1
- package/dist/transform/workers/shared.js.map +0 -1
- package/dist/transform/workers/transform-child.d.ts.map +0 -1
- package/dist/transform/workers/transform-child.js.map +0 -1
- package/dist/transform/workers/transform-worker.d.ts.map +0 -1
- package/dist/transform/workers/transform-worker.js.map +0 -1
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
import { z } from 'zod';
|
|
2
|
-
// --- Validation ---
|
|
3
|
-
const paramsSchema = z.looseObject({});
|
|
4
|
-
const mcpRequestSchema = z.strictObject({
|
|
5
|
-
jsonrpc: z.literal('2.0'),
|
|
6
|
-
method: z.string().min(1),
|
|
7
|
-
id: z.union([z.string(), z.number(), z.null()]).optional(),
|
|
8
|
-
params: paramsSchema.optional(),
|
|
9
|
-
});
|
|
10
|
-
export function isJsonRpcBatchRequest(body) {
|
|
11
|
-
return Array.isArray(body);
|
|
12
|
-
}
|
|
13
|
-
export function isMcpRequestBody(body) {
|
|
14
|
-
return mcpRequestSchema.safeParse(body).success;
|
|
15
|
-
}
|
|
16
|
-
function parseAcceptMediaTypes(header) {
|
|
17
|
-
if (!header)
|
|
18
|
-
return [];
|
|
19
|
-
return header
|
|
20
|
-
.split(',')
|
|
21
|
-
.map((value) => extractAcceptMediaType(value.trim()))
|
|
22
|
-
.filter((value) => value.length > 0);
|
|
23
|
-
}
|
|
24
|
-
function extractAcceptMediaType(value) {
|
|
25
|
-
return value.split(';', 1)[0]?.trim().toLowerCase() ?? '';
|
|
26
|
-
}
|
|
27
|
-
export function acceptsEventStream(header) {
|
|
28
|
-
const mediaTypes = parseAcceptMediaTypes(header);
|
|
29
|
-
return mediaTypes.some((mediaType) => mediaType === 'text/event-stream');
|
|
30
|
-
}
|
|
31
|
-
function hasAcceptedMediaType(mediaTypes, exact, wildcardPrefix) {
|
|
32
|
-
return mediaTypes.some((mediaType) => typeof mediaType === 'string' &&
|
|
33
|
-
mediaType.length > 0 &&
|
|
34
|
-
(mediaType === '*/*' ||
|
|
35
|
-
mediaType === exact ||
|
|
36
|
-
mediaType === wildcardPrefix));
|
|
37
|
-
}
|
|
38
|
-
export function acceptsJsonAndEventStream(header) {
|
|
39
|
-
const mediaTypes = parseAcceptMediaTypes(header);
|
|
40
|
-
const acceptsJson = hasAcceptedMediaType(mediaTypes, 'application/json', 'application/*');
|
|
41
|
-
if (!acceptsJson)
|
|
42
|
-
return false;
|
|
43
|
-
return hasAcceptedMediaType(mediaTypes, 'text/event-stream', 'text/*');
|
|
44
|
-
}
|
|
45
|
-
//# sourceMappingURL=mcp-validator.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"mcp-validator.js","sourceRoot":"","sources":["../../src/lib/mcp-validator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAkBxB,qBAAqB;AAErB,MAAM,YAAY,GAAG,CAAC,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;AACvC,MAAM,gBAAgB,GAAG,CAAC,CAAC,YAAY,CAAC;IACtC,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC;IACzB,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACzB,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,QAAQ,EAAE;IAC1D,MAAM,EAAE,YAAY,CAAC,QAAQ,EAAE;CAChC,CAAC,CAAC;AAEH,MAAM,UAAU,qBAAqB,CAAC,IAAa;IACjD,OAAO,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AAC7B,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,IAAa;IAC5C,OAAO,gBAAgB,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC;AAClD,CAAC;AAED,SAAS,qBAAqB,CAC5B,MAAiC;IAEjC,IAAI,CAAC,MAAM;QAAE,OAAO,EAAE,CAAC;IACvB,OAAO,MAAM;SACV,KAAK,CAAC,GAAG,CAAC;SACV,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,sBAAsB,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;SACpD,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;AACzC,CAAC;AAED,SAAS,sBAAsB,CAAC,KAAa;IAC3C,OAAO,KAAK,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,WAAW,EAAE,IAAI,EAAE,CAAC;AAC5D,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,MAAiC;IAClE,MAAM,UAAU,GAAG,qBAAqB,CAAC,MAAM,CAAC,CAAC;IACjD,OAAO,UAAU,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,KAAK,mBAAmB,CAAC,CAAC;AAC3E,CAAC;AAED,SAAS,oBAAoB,CAC3B,UAA6B,EAC7B,KAAa,EACb,cAAsB;IAEtB,OAAO,UAAU,CAAC,IAAI,CACpB,CAAC,SAAS,EAAE,EAAE,CACZ,OAAO,SAAS,KAAK,QAAQ;QAC7B,SAAS,CAAC,MAAM,GAAG,CAAC;QACpB,CAAC,SAAS,KAAK,KAAK;YAClB,SAAS,KAAK,KAAK;YACnB,SAAS,KAAK,cAAc,CAAC,CAClC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,yBAAyB,CACvC,MAAiC;IAEjC,MAAM,UAAU,GAAG,qBAAqB,CAAC,MAAM,CAAC,CAAC;IACjD,MAAM,WAAW,GAAG,oBAAoB,CACtC,UAAU,EACV,kBAAkB,EAClB,eAAe,CAChB,CAAC;IACF,IAAI,CAAC,WAAW;QAAE,OAAO,KAAK,CAAC;IAE/B,OAAO,oBAAoB,CAAC,UAAU,EAAE,mBAAmB,EAAE,QAAQ,CAAC,CAAC;AACzE,CAAC"}
|
package/dist/lib/mcp.d.ts
DELETED
package/dist/lib/mcp.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"mcp.d.ts","sourceRoot":"","sources":["../../src/lib/mcp.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAgCzE,OAAO,EACL,mBAAmB,EACnB,sBAAsB,GACvB,MAAM,uBAAuB,CAAC;AAgH/B,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CA2I5D"}
|
package/dist/lib/mcp.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"mcp.js","sourceRoot":"","sources":["../../src/lib/mcp.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
|
|
2
|
-
type LogMetadata = Record<string, unknown>;
|
|
3
|
-
interface RequestContext {
|
|
4
|
-
readonly requestId: string;
|
|
5
|
-
readonly sessionId?: string;
|
|
6
|
-
readonly operationId?: string;
|
|
7
|
-
}
|
|
8
|
-
export declare function setMcpServer(server: McpServer): void;
|
|
9
|
-
export declare function registerMcpSessionServer(sessionId: string, server: McpServer): void;
|
|
10
|
-
export declare function unregisterMcpSessionServer(sessionId: string): void;
|
|
11
|
-
export declare function unregisterMcpSessionServerByServer(server: McpServer): void;
|
|
12
|
-
export declare function resolveMcpSessionIdByServer(server: McpServer): string | undefined;
|
|
13
|
-
export declare function runWithRequestContext<T>(context: RequestContext, fn: () => T): T;
|
|
14
|
-
export declare function getRequestId(): string | undefined;
|
|
15
|
-
export declare function getOperationId(): string | undefined;
|
|
16
|
-
export declare function logInfo(message: string, meta?: LogMetadata): void;
|
|
17
|
-
export declare function logDebug(message: string, meta?: LogMetadata): void;
|
|
18
|
-
export declare function logWarn(message: string, meta?: LogMetadata): void;
|
|
19
|
-
export declare function logError(message: string, error?: Error | LogMetadata): void;
|
|
20
|
-
export declare function setLogLevel(level: string): void;
|
|
21
|
-
export declare function redactUrl(rawUrl: string): string;
|
|
22
|
-
export {};
|
|
23
|
-
//# sourceMappingURL=observability.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"observability.d.ts","sourceRoot":"","sources":["../../src/lib/observability.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAQzE,KAAK,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAE3C,UAAU,cAAc;IACtB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;CAC/B;AAaD,wBAAgB,YAAY,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAEpD;AAED,wBAAgB,wBAAwB,CACtC,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,SAAS,GAChB,IAAI,CAGN;AAED,wBAAgB,0BAA0B,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAGlE;AAED,wBAAgB,kCAAkC,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAK1E;AAED,wBAAgB,2BAA2B,CACzC,MAAM,EAAE,SAAS,GAChB,MAAM,GAAG,SAAS,CAKpB;AAED,wBAAgB,qBAAqB,CAAC,CAAC,EACrC,OAAO,EAAE,cAAc,EACvB,EAAE,EAAE,MAAM,CAAC,GACV,CAAC,CAEH;AAMD,wBAAgB,YAAY,IAAI,MAAM,GAAG,SAAS,CAGjD;AAMD,wBAAgB,cAAc,IAAI,MAAM,GAAG,SAAS,CAEnD;AA4JD,wBAAgB,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,WAAW,GAAG,IAAI,CAEjE;AAED,wBAAgB,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,WAAW,GAAG,IAAI,CAElE;AAED,wBAAgB,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,WAAW,GAAG,IAAI,CAEjE;AAED,wBAAgB,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,KAAK,GAAG,WAAW,GAAG,IAAI,CAM3E;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAiB/C;AAED,wBAAgB,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAWhD"}
|
|
@@ -1,238 +0,0 @@
|
|
|
1
|
-
import { AsyncLocalStorage } from 'node:async_hooks';
|
|
2
|
-
import process from 'node:process';
|
|
3
|
-
import { inspect, stripVTControlCharacters } from 'node:util';
|
|
4
|
-
import { config } from './config.js';
|
|
5
|
-
const requestContext = new AsyncLocalStorage({
|
|
6
|
-
name: 'requestContext',
|
|
7
|
-
});
|
|
8
|
-
let mcpServer;
|
|
9
|
-
const sessionServers = new Map();
|
|
10
|
-
let stderrAvailable = true;
|
|
11
|
-
process.stderr.on('error', () => {
|
|
12
|
-
stderrAvailable = false;
|
|
13
|
-
});
|
|
14
|
-
export function setMcpServer(server) {
|
|
15
|
-
mcpServer = server;
|
|
16
|
-
}
|
|
17
|
-
export function registerMcpSessionServer(sessionId, server) {
|
|
18
|
-
if (!sessionId)
|
|
19
|
-
return;
|
|
20
|
-
sessionServers.set(sessionId, server);
|
|
21
|
-
}
|
|
22
|
-
export function unregisterMcpSessionServer(sessionId) {
|
|
23
|
-
if (!sessionId)
|
|
24
|
-
return;
|
|
25
|
-
sessionServers.delete(sessionId);
|
|
26
|
-
}
|
|
27
|
-
export function unregisterMcpSessionServerByServer(server) {
|
|
28
|
-
for (const [sessionId, mappedServer] of sessionServers.entries()) {
|
|
29
|
-
if (mappedServer !== server)
|
|
30
|
-
continue;
|
|
31
|
-
sessionServers.delete(sessionId);
|
|
32
|
-
}
|
|
33
|
-
}
|
|
34
|
-
export function resolveMcpSessionIdByServer(server) {
|
|
35
|
-
for (const [sessionId, mappedServer] of sessionServers.entries()) {
|
|
36
|
-
if (mappedServer === server)
|
|
37
|
-
return sessionId;
|
|
38
|
-
}
|
|
39
|
-
return undefined;
|
|
40
|
-
}
|
|
41
|
-
export function runWithRequestContext(context, fn) {
|
|
42
|
-
return requestContext.run(context, fn);
|
|
43
|
-
}
|
|
44
|
-
function getRequestContext() {
|
|
45
|
-
return requestContext.getStore();
|
|
46
|
-
}
|
|
47
|
-
export function getRequestId() {
|
|
48
|
-
const context = getRequestContext();
|
|
49
|
-
return context?.requestId;
|
|
50
|
-
}
|
|
51
|
-
function getSessionId() {
|
|
52
|
-
return getRequestContext()?.sessionId;
|
|
53
|
-
}
|
|
54
|
-
export function getOperationId() {
|
|
55
|
-
return getRequestContext()?.operationId;
|
|
56
|
-
}
|
|
57
|
-
function isDebugEnabled() {
|
|
58
|
-
return config.logging.level === 'debug';
|
|
59
|
-
}
|
|
60
|
-
function buildContextMetadata() {
|
|
61
|
-
const ctx = requestContext.getStore();
|
|
62
|
-
if (!ctx)
|
|
63
|
-
return undefined;
|
|
64
|
-
const { requestId, operationId, sessionId } = ctx;
|
|
65
|
-
const includeSession = sessionId && isDebugEnabled();
|
|
66
|
-
if (!requestId && !operationId && !includeSession)
|
|
67
|
-
return undefined;
|
|
68
|
-
const meta = {};
|
|
69
|
-
if (requestId)
|
|
70
|
-
meta['requestId'] = requestId;
|
|
71
|
-
if (operationId)
|
|
72
|
-
meta['operationId'] = operationId;
|
|
73
|
-
if (includeSession)
|
|
74
|
-
meta['sessionId'] = sessionId;
|
|
75
|
-
return meta;
|
|
76
|
-
}
|
|
77
|
-
function mergeMetadata(meta) {
|
|
78
|
-
const contextMeta = buildContextMetadata();
|
|
79
|
-
const hasMeta = meta && Object.keys(meta).length > 0;
|
|
80
|
-
if (!contextMeta && !hasMeta)
|
|
81
|
-
return undefined;
|
|
82
|
-
if (!contextMeta)
|
|
83
|
-
return meta;
|
|
84
|
-
if (!hasMeta)
|
|
85
|
-
return contextMeta;
|
|
86
|
-
return { ...contextMeta, ...meta };
|
|
87
|
-
}
|
|
88
|
-
function formatMetadata(meta) {
|
|
89
|
-
const merged = mergeMetadata(meta);
|
|
90
|
-
if (!merged)
|
|
91
|
-
return '';
|
|
92
|
-
return ` ${inspect(merged, { breakLength: Infinity, colors: false, compact: true, sorted: true })}`;
|
|
93
|
-
}
|
|
94
|
-
function createTimestamp() {
|
|
95
|
-
return new Date().toISOString();
|
|
96
|
-
}
|
|
97
|
-
function formatLogEntry(level, message, meta) {
|
|
98
|
-
if (config.logging.format === 'json') {
|
|
99
|
-
const merged = mergeMetadata(meta);
|
|
100
|
-
const entry = {
|
|
101
|
-
timestamp: createTimestamp(),
|
|
102
|
-
level: level.toUpperCase(),
|
|
103
|
-
message,
|
|
104
|
-
};
|
|
105
|
-
if (merged) {
|
|
106
|
-
Object.assign(entry, merged);
|
|
107
|
-
}
|
|
108
|
-
return JSON.stringify(entry);
|
|
109
|
-
}
|
|
110
|
-
return `[${createTimestamp()}] ${level.toUpperCase()}: ${message}${formatMetadata(meta)}`;
|
|
111
|
-
}
|
|
112
|
-
const LEVEL_PRIORITY = {
|
|
113
|
-
debug: 0,
|
|
114
|
-
info: 1,
|
|
115
|
-
warn: 2,
|
|
116
|
-
error: 3,
|
|
117
|
-
};
|
|
118
|
-
function shouldLog(level) {
|
|
119
|
-
return LEVEL_PRIORITY[level] >= LEVEL_PRIORITY[config.logging.level];
|
|
120
|
-
}
|
|
121
|
-
function mapToMcpLevel(level) {
|
|
122
|
-
switch (level) {
|
|
123
|
-
case 'warn':
|
|
124
|
-
return 'warning';
|
|
125
|
-
case 'error':
|
|
126
|
-
return 'error';
|
|
127
|
-
case 'debug':
|
|
128
|
-
return 'debug';
|
|
129
|
-
case 'info':
|
|
130
|
-
default:
|
|
131
|
-
return 'info';
|
|
132
|
-
}
|
|
133
|
-
}
|
|
134
|
-
function resolveErrorText(err) {
|
|
135
|
-
if (err instanceof Error)
|
|
136
|
-
return err.message;
|
|
137
|
-
if (typeof err === 'string')
|
|
138
|
-
return err;
|
|
139
|
-
return 'unknown error';
|
|
140
|
-
}
|
|
141
|
-
function safeWriteStderr(line) {
|
|
142
|
-
if (!stderrAvailable)
|
|
143
|
-
return;
|
|
144
|
-
if (process.stderr.destroyed || process.stderr.writableEnded) {
|
|
145
|
-
stderrAvailable = false;
|
|
146
|
-
return;
|
|
147
|
-
}
|
|
148
|
-
try {
|
|
149
|
-
process.stderr.write(line);
|
|
150
|
-
}
|
|
151
|
-
catch {
|
|
152
|
-
// Logging must never take down the process (e.g. EPIPE).
|
|
153
|
-
stderrAvailable = false;
|
|
154
|
-
}
|
|
155
|
-
}
|
|
156
|
-
function writeLog(level, message, meta) {
|
|
157
|
-
if (!shouldLog(level))
|
|
158
|
-
return;
|
|
159
|
-
const line = formatLogEntry(level, message, meta);
|
|
160
|
-
safeWriteStderr(`${stripVTControlCharacters(line)}\n`);
|
|
161
|
-
const sessionId = getSessionId();
|
|
162
|
-
const server = sessionId
|
|
163
|
-
? (sessionServers.get(sessionId) ?? mcpServer)
|
|
164
|
-
: mcpServer;
|
|
165
|
-
if (!server)
|
|
166
|
-
return;
|
|
167
|
-
if (!server.isConnected())
|
|
168
|
-
return;
|
|
169
|
-
try {
|
|
170
|
-
server.server
|
|
171
|
-
.sendLoggingMessage({
|
|
172
|
-
level: mapToMcpLevel(level),
|
|
173
|
-
logger: 'fetch-url-mcp',
|
|
174
|
-
// Preserve existing behavior: MCP payload includes only message + provided meta (not ALS context meta).
|
|
175
|
-
data: meta ? { message, ...meta } : message,
|
|
176
|
-
}, sessionId)
|
|
177
|
-
.catch((err) => {
|
|
178
|
-
if (!isDebugEnabled())
|
|
179
|
-
return;
|
|
180
|
-
const errorText = resolveErrorText(err);
|
|
181
|
-
safeWriteStderr(`[${createTimestamp()}] WARN: Failed to forward log to MCP${sessionId ? ` (sessionId=${sessionId})` : ''}: ${errorText}\n`);
|
|
182
|
-
});
|
|
183
|
-
}
|
|
184
|
-
catch (err) {
|
|
185
|
-
if (!isDebugEnabled())
|
|
186
|
-
return;
|
|
187
|
-
const errorText = resolveErrorText(err);
|
|
188
|
-
safeWriteStderr(`[${createTimestamp()}] WARN: Failed to forward log to MCP (sync error): ${errorText}\n`);
|
|
189
|
-
}
|
|
190
|
-
}
|
|
191
|
-
export function logInfo(message, meta) {
|
|
192
|
-
writeLog('info', message, meta);
|
|
193
|
-
}
|
|
194
|
-
export function logDebug(message, meta) {
|
|
195
|
-
writeLog('debug', message, meta);
|
|
196
|
-
}
|
|
197
|
-
export function logWarn(message, meta) {
|
|
198
|
-
writeLog('warn', message, meta);
|
|
199
|
-
}
|
|
200
|
-
export function logError(message, error) {
|
|
201
|
-
const errorMeta = error instanceof Error
|
|
202
|
-
? { error: error.message, stack: error.stack }
|
|
203
|
-
: (error ?? {});
|
|
204
|
-
writeLog('error', message, errorMeta);
|
|
205
|
-
}
|
|
206
|
-
export function setLogLevel(level) {
|
|
207
|
-
const normalized = level.toLowerCase();
|
|
208
|
-
// Map MCP logging levels (RFC 5424 subset) to internal levels.
|
|
209
|
-
if (normalized === 'debug') {
|
|
210
|
-
config.logging.level = 'debug';
|
|
211
|
-
}
|
|
212
|
-
else if (normalized === 'info' || normalized === 'notice') {
|
|
213
|
-
config.logging.level = 'info';
|
|
214
|
-
}
|
|
215
|
-
else if (normalized === 'warning' || normalized === 'warn') {
|
|
216
|
-
config.logging.level = 'warn';
|
|
217
|
-
}
|
|
218
|
-
else if (normalized === 'error' ||
|
|
219
|
-
normalized === 'critical' ||
|
|
220
|
-
normalized === 'alert' ||
|
|
221
|
-
normalized === 'emergency') {
|
|
222
|
-
config.logging.level = 'error';
|
|
223
|
-
}
|
|
224
|
-
}
|
|
225
|
-
export function redactUrl(rawUrl) {
|
|
226
|
-
try {
|
|
227
|
-
const url = new URL(rawUrl);
|
|
228
|
-
url.username = '';
|
|
229
|
-
url.password = '';
|
|
230
|
-
url.hash = '';
|
|
231
|
-
url.search = '';
|
|
232
|
-
return url.toString();
|
|
233
|
-
}
|
|
234
|
-
catch {
|
|
235
|
-
return rawUrl;
|
|
236
|
-
}
|
|
237
|
-
}
|
|
238
|
-
//# sourceMappingURL=observability.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"observability.js","sourceRoot":"","sources":["../../src/lib/observability.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
interface HttpServerTuningTarget {
|
|
2
|
-
headersTimeout?: number;
|
|
3
|
-
requestTimeout?: number;
|
|
4
|
-
keepAliveTimeout?: number;
|
|
5
|
-
keepAliveTimeoutBuffer?: number;
|
|
6
|
-
maxHeadersCount?: number | null;
|
|
7
|
-
maxConnections?: number;
|
|
8
|
-
on?: (event: string, listener: (...args: unknown[]) => void) => void;
|
|
9
|
-
closeIdleConnections?: () => void;
|
|
10
|
-
closeAllConnections?: () => void;
|
|
11
|
-
}
|
|
12
|
-
export declare function applyHttpServerTuning(server: HttpServerTuningTarget): void;
|
|
13
|
-
export declare function drainConnectionsOnShutdown(server: HttpServerTuningTarget): void;
|
|
14
|
-
export {};
|
|
15
|
-
//# sourceMappingURL=server-tuning.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"server-tuning.d.ts","sourceRoot":"","sources":["../../src/lib/server-tuning.ts"],"names":[],"mappings":"AAGA,UAAU,sBAAsB;IAC9B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,EAAE,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,KAAK,IAAI,CAAC;IACrE,oBAAoB,CAAC,EAAE,MAAM,IAAI,CAAC;IAClC,mBAAmB,CAAC,EAAE,MAAM,IAAI,CAAC;CAClC;AAsBD,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,sBAAsB,GAAG,IAAI,CAyC1E;AAED,wBAAgB,0BAA0B,CACxC,MAAM,EAAE,sBAAsB,GAC7B,IAAI,CAKN"}
|
|
@@ -1,49 +0,0 @@
|
|
|
1
|
-
import { config } from './config.js';
|
|
2
|
-
import { logDebug, logWarn } from './observability.js';
|
|
3
|
-
const DROP_LOG_INTERVAL_MS = 10_000;
|
|
4
|
-
function setIfDefined(value, setter) {
|
|
5
|
-
if (value === undefined)
|
|
6
|
-
return;
|
|
7
|
-
setter(value);
|
|
8
|
-
}
|
|
9
|
-
function assignServerValue(server, key, value) {
|
|
10
|
-
setIfDefined(value, (resolved) => {
|
|
11
|
-
server[key] = resolved;
|
|
12
|
-
});
|
|
13
|
-
}
|
|
14
|
-
export function applyHttpServerTuning(server) {
|
|
15
|
-
const { headersTimeoutMs, requestTimeoutMs, keepAliveTimeoutMs, keepAliveTimeoutBufferMs, maxHeadersCount, maxConnections, } = config.server.http;
|
|
16
|
-
assignServerValue(server, 'headersTimeout', headersTimeoutMs);
|
|
17
|
-
assignServerValue(server, 'requestTimeout', requestTimeoutMs);
|
|
18
|
-
assignServerValue(server, 'keepAliveTimeout', keepAliveTimeoutMs);
|
|
19
|
-
assignServerValue(server, 'keepAliveTimeoutBuffer', keepAliveTimeoutBufferMs);
|
|
20
|
-
assignServerValue(server, 'maxHeadersCount', maxHeadersCount);
|
|
21
|
-
if (typeof maxConnections === 'number' && maxConnections > 0) {
|
|
22
|
-
server.maxConnections = maxConnections;
|
|
23
|
-
if (typeof server.on === 'function') {
|
|
24
|
-
let lastLoggedAt = 0;
|
|
25
|
-
let droppedSinceLastLog = 0;
|
|
26
|
-
const onDrop = (data) => {
|
|
27
|
-
droppedSinceLastLog += 1;
|
|
28
|
-
const now = Date.now();
|
|
29
|
-
if (now - lastLoggedAt < DROP_LOG_INTERVAL_MS)
|
|
30
|
-
return;
|
|
31
|
-
logWarn('Incoming connection dropped (maxConnections reached)', {
|
|
32
|
-
maxConnections,
|
|
33
|
-
dropped: droppedSinceLastLog,
|
|
34
|
-
data,
|
|
35
|
-
});
|
|
36
|
-
lastLoggedAt = now;
|
|
37
|
-
droppedSinceLastLog = 0;
|
|
38
|
-
};
|
|
39
|
-
server.on('drop', onDrop);
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
|
-
}
|
|
43
|
-
export function drainConnectionsOnShutdown(server) {
|
|
44
|
-
if (typeof server.closeIdleConnections === 'function') {
|
|
45
|
-
server.closeIdleConnections();
|
|
46
|
-
logDebug('Closed idle HTTP connections during shutdown');
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
|
-
//# sourceMappingURL=server-tuning.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"server-tuning.js","sourceRoot":"","sources":["../../src/lib/server-tuning.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAcvD,MAAM,oBAAoB,GAAG,MAAM,CAAC;AAEpC,SAAS,YAAY,CACnB,KAAoB,EACpB,MAA6B;IAE7B,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO;IAChC,MAAM,CAAC,KAAK,CAAC,CAAC;AAChB,CAAC;AAED,SAAS,iBAAiB,CACxB,MAA8B,EAC9B,GAAM,EACN,KAA4C;IAE5C,YAAY,CAAC,KAAK,EAAE,CAAC,QAAQ,EAAE,EAAE;QAC/B,MAAM,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAC;IACzB,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,MAA8B;IAClE,MAAM,EACJ,gBAAgB,EAChB,gBAAgB,EAChB,kBAAkB,EAClB,wBAAwB,EACxB,eAAe,EACf,cAAc,GACf,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC;IAEvB,iBAAiB,CAAC,MAAM,EAAE,gBAAgB,EAAE,gBAAgB,CAAC,CAAC;IAC9D,iBAAiB,CAAC,MAAM,EAAE,gBAAgB,EAAE,gBAAgB,CAAC,CAAC;IAC9D,iBAAiB,CAAC,MAAM,EAAE,kBAAkB,EAAE,kBAAkB,CAAC,CAAC;IAClE,iBAAiB,CAAC,MAAM,EAAE,wBAAwB,EAAE,wBAAwB,CAAC,CAAC;IAC9E,iBAAiB,CAAC,MAAM,EAAE,iBAAiB,EAAE,eAAe,CAAC,CAAC;IAE9D,IAAI,OAAO,cAAc,KAAK,QAAQ,IAAI,cAAc,GAAG,CAAC,EAAE,CAAC;QAC7D,MAAM,CAAC,cAAc,GAAG,cAAc,CAAC;QAEvC,IAAI,OAAO,MAAM,CAAC,EAAE,KAAK,UAAU,EAAE,CAAC;YACpC,IAAI,YAAY,GAAG,CAAC,CAAC;YACrB,IAAI,mBAAmB,GAAG,CAAC,CAAC;YAE5B,MAAM,MAAM,GAAG,CAAC,IAAa,EAAQ,EAAE;gBACrC,mBAAmB,IAAI,CAAC,CAAC;gBACzB,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;gBACvB,IAAI,GAAG,GAAG,YAAY,GAAG,oBAAoB;oBAAE,OAAO;gBAEtD,OAAO,CAAC,sDAAsD,EAAE;oBAC9D,cAAc;oBACd,OAAO,EAAE,mBAAmB;oBAC5B,IAAI;iBACL,CAAC,CAAC;gBAEH,YAAY,GAAG,GAAG,CAAC;gBACnB,mBAAmB,GAAG,CAAC,CAAC;YAC1B,CAAC,CAAC;YAEF,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAC5B,CAAC;IACH,CAAC;AACH,CAAC;AAED,MAAM,UAAU,0BAA0B,CACxC,MAA8B;IAE9B,IAAI,OAAO,MAAM,CAAC,oBAAoB,KAAK,UAAU,EAAE,CAAC;QACtD,MAAM,CAAC,oBAAoB,EAAE,CAAC;QAC9B,QAAQ,CAAC,8CAA8C,CAAC,CAAC;IAC3D,CAAC;AACH,CAAC"}
|
package/dist/lib/session.d.ts
DELETED
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
|
|
2
|
-
import type { StreamableHTTPServerTransport } from '@modelcontextprotocol/sdk/server/streamableHttp.js';
|
|
3
|
-
export interface SessionEntry {
|
|
4
|
-
readonly server: McpServer;
|
|
5
|
-
readonly transport: StreamableHTTPServerTransport;
|
|
6
|
-
createdAt: number;
|
|
7
|
-
lastSeen: number;
|
|
8
|
-
protocolInitialized: boolean;
|
|
9
|
-
negotiatedProtocolVersion: string;
|
|
10
|
-
authFingerprint: string;
|
|
11
|
-
}
|
|
12
|
-
export interface SessionStore {
|
|
13
|
-
get: (sessionId: string) => SessionEntry | undefined;
|
|
14
|
-
touch: (sessionId: string) => void;
|
|
15
|
-
set: (sessionId: string, entry: SessionEntry) => void;
|
|
16
|
-
remove: (sessionId: string) => SessionEntry | undefined;
|
|
17
|
-
size: () => number;
|
|
18
|
-
inFlight: () => number;
|
|
19
|
-
incrementInFlight: () => void;
|
|
20
|
-
decrementInFlight: () => void;
|
|
21
|
-
clear: () => SessionEntry[];
|
|
22
|
-
evictExpired: () => SessionEntry[];
|
|
23
|
-
evictOldest: () => SessionEntry | undefined;
|
|
24
|
-
}
|
|
25
|
-
interface SlotTracker {
|
|
26
|
-
readonly releaseSlot: () => void;
|
|
27
|
-
readonly markInitialized: () => void;
|
|
28
|
-
readonly isInitialized: () => boolean;
|
|
29
|
-
}
|
|
30
|
-
type CloseHandler = (() => void) | undefined;
|
|
31
|
-
export declare function composeCloseHandlers(first: CloseHandler, second: CloseHandler): CloseHandler;
|
|
32
|
-
export declare function startSessionCleanupLoop(store: SessionStore, sessionTtlMs: number, options?: {
|
|
33
|
-
onEvictSession?: (session: SessionEntry) => Promise<void> | void;
|
|
34
|
-
cleanupIntervalMs?: number;
|
|
35
|
-
}): AbortController;
|
|
36
|
-
export declare function createSessionStore(sessionTtlMs: number): SessionStore;
|
|
37
|
-
export declare function createSlotTracker(store: SessionStore): SlotTracker;
|
|
38
|
-
export declare function reserveSessionSlot(store: SessionStore, maxSessions: number): boolean;
|
|
39
|
-
export declare function ensureSessionCapacity({ store, maxSessions, evictOldest, }: {
|
|
40
|
-
store: SessionStore;
|
|
41
|
-
maxSessions: number;
|
|
42
|
-
evictOldest: (store: SessionStore) => boolean;
|
|
43
|
-
}): boolean;
|
|
44
|
-
export {};
|
|
45
|
-
//# sourceMappingURL=session.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../src/lib/session.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,oDAAoD,CAAC;AAUxG,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC;IAC3B,QAAQ,CAAC,SAAS,EAAE,6BAA6B,CAAC;IAClD,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,mBAAmB,EAAE,OAAO,CAAC;IAC7B,yBAAyB,EAAE,MAAM,CAAC;IAClC,eAAe,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,YAAY;IAC3B,GAAG,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,YAAY,GAAG,SAAS,CAAC;IACrD,KAAK,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IACnC,GAAG,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,YAAY,KAAK,IAAI,CAAC;IACtD,MAAM,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,YAAY,GAAG,SAAS,CAAC;IACxD,IAAI,EAAE,MAAM,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,MAAM,CAAC;IACvB,iBAAiB,EAAE,MAAM,IAAI,CAAC;IAC9B,iBAAiB,EAAE,MAAM,IAAI,CAAC;IAC9B,KAAK,EAAE,MAAM,YAAY,EAAE,CAAC;IAC5B,YAAY,EAAE,MAAM,YAAY,EAAE,CAAC;IACnC,WAAW,EAAE,MAAM,YAAY,GAAG,SAAS,CAAC;CAC7C;AAED,UAAU,WAAW;IACnB,QAAQ,CAAC,WAAW,EAAE,MAAM,IAAI,CAAC;IACjC,QAAQ,CAAC,eAAe,EAAE,MAAM,IAAI,CAAC;IACrC,QAAQ,CAAC,aAAa,EAAE,MAAM,OAAO,CAAC;CACvC;AAED,KAAK,YAAY,GAAG,CAAC,MAAM,IAAI,CAAC,GAAG,SAAS,CAAC;AAE7C,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,YAAY,EACnB,MAAM,EAAE,YAAY,GACnB,YAAY,CAWd;AAkJD,wBAAgB,uBAAuB,CACrC,KAAK,EAAE,YAAY,EACnB,YAAY,EAAE,MAAM,EACpB,OAAO,CAAC,EAAE;IACR,cAAc,CAAC,EAAE,CAAC,OAAO,EAAE,YAAY,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IACjE,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B,GACA,eAAe,CAOjB;AAmGD,wBAAgB,kBAAkB,CAAC,YAAY,EAAE,MAAM,GAAG,YAAY,CAErE;AAuBD,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,YAAY,GAAG,WAAW,CAElE;AAMD,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,YAAY,EACnB,WAAW,EAAE,MAAM,GAClB,OAAO,CAMT;AAMD,wBAAgB,qBAAqB,CAAC,EACpC,KAAK,EACL,WAAW,EACX,WAAW,GACZ,EAAE;IACD,KAAK,EAAE,YAAY,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,CAAC,KAAK,EAAE,YAAY,KAAK,OAAO,CAAC;CAC/C,GAAG,OAAO,CAeV"}
|