@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
|
@@ -0,0 +1,253 @@
|
|
|
1
|
+
import { type McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
|
|
2
|
+
import { type StreamableHTTPServerTransport } from '@modelcontextprotocol/sdk/server/streamableHttp.js';
|
|
3
|
+
import { z } from 'zod';
|
|
4
|
+
export declare const serverVersion: string;
|
|
5
|
+
type LogLevel = 'debug' | 'info' | 'warn' | 'error';
|
|
6
|
+
type TransformWorkerMode = 'threads' | 'process';
|
|
7
|
+
type AuthMode = 'oauth' | 'static';
|
|
8
|
+
interface WorkerResourceLimits {
|
|
9
|
+
maxOldGenerationSizeMb?: number;
|
|
10
|
+
maxYoungGenerationSizeMb?: number;
|
|
11
|
+
codeRangeSizeMb?: number;
|
|
12
|
+
stackSizeMb?: number;
|
|
13
|
+
}
|
|
14
|
+
interface AuthConfig {
|
|
15
|
+
mode: AuthMode;
|
|
16
|
+
issuerUrl: URL | undefined;
|
|
17
|
+
authorizationUrl: URL | undefined;
|
|
18
|
+
tokenUrl: URL | undefined;
|
|
19
|
+
revocationUrl: URL | undefined;
|
|
20
|
+
registrationUrl: URL | undefined;
|
|
21
|
+
introspectionUrl: URL | undefined;
|
|
22
|
+
resourceUrl: URL;
|
|
23
|
+
requiredScopes: string[];
|
|
24
|
+
clientId: string | undefined;
|
|
25
|
+
clientSecret: string | undefined;
|
|
26
|
+
introspectionTimeoutMs: number;
|
|
27
|
+
staticTokens: string[];
|
|
28
|
+
}
|
|
29
|
+
interface HttpsConfig {
|
|
30
|
+
enabled: boolean;
|
|
31
|
+
keyFile: string | undefined;
|
|
32
|
+
certFile: string | undefined;
|
|
33
|
+
caFile: string | undefined;
|
|
34
|
+
}
|
|
35
|
+
interface RuntimeState {
|
|
36
|
+
httpMode: boolean;
|
|
37
|
+
}
|
|
38
|
+
export declare const config: {
|
|
39
|
+
server: {
|
|
40
|
+
name: string;
|
|
41
|
+
version: string;
|
|
42
|
+
port: number;
|
|
43
|
+
host: string;
|
|
44
|
+
https: HttpsConfig;
|
|
45
|
+
sessionTtlMs: number;
|
|
46
|
+
sessionInitTimeoutMs: number;
|
|
47
|
+
maxSessions: number;
|
|
48
|
+
http: {
|
|
49
|
+
headersTimeoutMs: number | undefined;
|
|
50
|
+
requestTimeoutMs: number | undefined;
|
|
51
|
+
keepAliveTimeoutMs: number | undefined;
|
|
52
|
+
keepAliveTimeoutBufferMs: number | undefined;
|
|
53
|
+
maxHeadersCount: number | undefined;
|
|
54
|
+
maxConnections: number;
|
|
55
|
+
blockPrivateConnections: boolean;
|
|
56
|
+
requireProtocolVersionHeaderOnSessionInit: boolean;
|
|
57
|
+
shutdownCloseIdleConnections: boolean;
|
|
58
|
+
shutdownCloseAllConnections: boolean;
|
|
59
|
+
};
|
|
60
|
+
};
|
|
61
|
+
fetcher: {
|
|
62
|
+
timeout: number;
|
|
63
|
+
maxRedirects: number;
|
|
64
|
+
userAgent: string;
|
|
65
|
+
maxContentLength: number;
|
|
66
|
+
};
|
|
67
|
+
transform: {
|
|
68
|
+
timeoutMs: number;
|
|
69
|
+
stageWarnRatio: number;
|
|
70
|
+
metadataFormat: string;
|
|
71
|
+
maxWorkerScale: number;
|
|
72
|
+
cancelAckTimeoutMs: number;
|
|
73
|
+
workerMode: TransformWorkerMode;
|
|
74
|
+
workerResourceLimits: WorkerResourceLimits | undefined;
|
|
75
|
+
};
|
|
76
|
+
tools: {
|
|
77
|
+
enabled: string[];
|
|
78
|
+
timeoutMs: number;
|
|
79
|
+
};
|
|
80
|
+
tasks: {
|
|
81
|
+
maxTotal: number;
|
|
82
|
+
maxPerOwner: number;
|
|
83
|
+
emitStatusNotifications: boolean;
|
|
84
|
+
};
|
|
85
|
+
cache: {
|
|
86
|
+
enabled: boolean;
|
|
87
|
+
ttl: number;
|
|
88
|
+
maxKeys: number;
|
|
89
|
+
maxSizeBytes: number;
|
|
90
|
+
};
|
|
91
|
+
extraction: {
|
|
92
|
+
maxBlockLength: number;
|
|
93
|
+
minParagraphLength: number;
|
|
94
|
+
};
|
|
95
|
+
noiseRemoval: {
|
|
96
|
+
extraTokens: string[];
|
|
97
|
+
extraSelectors: string[];
|
|
98
|
+
enabledCategories: string[];
|
|
99
|
+
debug: boolean;
|
|
100
|
+
aggressiveMode: boolean;
|
|
101
|
+
preserveSvgCanvas: boolean;
|
|
102
|
+
weights: {
|
|
103
|
+
hidden: number;
|
|
104
|
+
structural: number;
|
|
105
|
+
promo: number;
|
|
106
|
+
stickyFixed: number;
|
|
107
|
+
threshold: number;
|
|
108
|
+
};
|
|
109
|
+
};
|
|
110
|
+
markdownCleanup: {
|
|
111
|
+
promoteOrphanHeadings: boolean;
|
|
112
|
+
removeSkipLinks: boolean;
|
|
113
|
+
removeTocBlocks: boolean;
|
|
114
|
+
removeTypeDocComments: boolean;
|
|
115
|
+
headingKeywords: string[];
|
|
116
|
+
};
|
|
117
|
+
i18n: {
|
|
118
|
+
locale: string | undefined;
|
|
119
|
+
};
|
|
120
|
+
logging: {
|
|
121
|
+
level: LogLevel;
|
|
122
|
+
format: string;
|
|
123
|
+
};
|
|
124
|
+
constants: {
|
|
125
|
+
maxHtmlSize: number;
|
|
126
|
+
maxUrlLength: number;
|
|
127
|
+
maxInlineContentChars: number;
|
|
128
|
+
};
|
|
129
|
+
security: {
|
|
130
|
+
blockedHosts: Set<string>;
|
|
131
|
+
allowedHosts: Set<string>;
|
|
132
|
+
apiKey: string | undefined;
|
|
133
|
+
allowRemote: boolean;
|
|
134
|
+
};
|
|
135
|
+
auth: AuthConfig;
|
|
136
|
+
rateLimit: {
|
|
137
|
+
enabled: boolean;
|
|
138
|
+
maxRequests: number;
|
|
139
|
+
windowMs: number;
|
|
140
|
+
cleanupIntervalMs: number;
|
|
141
|
+
};
|
|
142
|
+
runtime: RuntimeState;
|
|
143
|
+
};
|
|
144
|
+
export declare function enableHttpMode(): void;
|
|
145
|
+
declare const CachedPayloadSchema: z.ZodObject<{
|
|
146
|
+
content: z.ZodOptional<z.ZodString>;
|
|
147
|
+
markdown: z.ZodOptional<z.ZodString>;
|
|
148
|
+
title: z.ZodOptional<z.ZodString>;
|
|
149
|
+
}, z.core.$strict>;
|
|
150
|
+
type CachedPayload = z.infer<typeof CachedPayloadSchema>;
|
|
151
|
+
interface CacheEntry {
|
|
152
|
+
url: string;
|
|
153
|
+
title?: string;
|
|
154
|
+
content: string;
|
|
155
|
+
fetchedAt: string;
|
|
156
|
+
expiresAt: string;
|
|
157
|
+
}
|
|
158
|
+
interface CacheKeyParts {
|
|
159
|
+
namespace: string;
|
|
160
|
+
urlHash: string;
|
|
161
|
+
}
|
|
162
|
+
interface CacheSetOptions {
|
|
163
|
+
force?: boolean;
|
|
164
|
+
}
|
|
165
|
+
interface CacheGetOptions {
|
|
166
|
+
force?: boolean;
|
|
167
|
+
}
|
|
168
|
+
interface CacheEntryMetadata {
|
|
169
|
+
url: string;
|
|
170
|
+
title?: string;
|
|
171
|
+
}
|
|
172
|
+
interface CacheUpdateEvent {
|
|
173
|
+
cacheKey: string;
|
|
174
|
+
namespace: string;
|
|
175
|
+
urlHash: string;
|
|
176
|
+
listChanged: boolean;
|
|
177
|
+
}
|
|
178
|
+
type CacheUpdateListener = (event: CacheUpdateEvent) => unknown;
|
|
179
|
+
export declare function parseCachedPayload(raw: string): CachedPayload | null;
|
|
180
|
+
export declare function resolveCachedPayloadContent(payload: CachedPayload): string | null;
|
|
181
|
+
export declare function createCacheKey(namespace: string, url: string, vary?: Record<string, unknown> | string): string | null;
|
|
182
|
+
export declare function parseCacheKey(cacheKey: string): CacheKeyParts | null;
|
|
183
|
+
export declare function onCacheUpdate(listener: CacheUpdateListener): () => void;
|
|
184
|
+
export declare function get(cacheKey: string | null, options?: CacheGetOptions): CacheEntry | undefined;
|
|
185
|
+
export declare function set(cacheKey: string | null, content: string, metadata: CacheEntryMetadata, options?: CacheSetOptions): void;
|
|
186
|
+
export declare function keys(): readonly string[];
|
|
187
|
+
export declare function getEntryMeta(cacheKey: string): {
|
|
188
|
+
url: string;
|
|
189
|
+
title?: string;
|
|
190
|
+
} | undefined;
|
|
191
|
+
export declare function isEnabled(): boolean;
|
|
192
|
+
type LogMetadata = Record<string, unknown>;
|
|
193
|
+
interface RequestContext {
|
|
194
|
+
readonly requestId: string;
|
|
195
|
+
readonly sessionId?: string;
|
|
196
|
+
readonly operationId?: string;
|
|
197
|
+
}
|
|
198
|
+
export declare function setMcpServer(server: McpServer): void;
|
|
199
|
+
export declare function registerMcpSessionServer(sessionId: string, server: McpServer): void;
|
|
200
|
+
export declare function unregisterMcpSessionServer(sessionId: string): void;
|
|
201
|
+
export declare function unregisterMcpSessionServerByServer(server: McpServer): void;
|
|
202
|
+
export declare function resolveMcpSessionIdByServer(server: McpServer): string | undefined;
|
|
203
|
+
export declare function runWithRequestContext<T>(context: RequestContext, fn: () => T): T;
|
|
204
|
+
export declare function getRequestId(): string | undefined;
|
|
205
|
+
export declare function getOperationId(): string | undefined;
|
|
206
|
+
export declare function logInfo(message: string, meta?: LogMetadata): void;
|
|
207
|
+
export declare function logDebug(message: string, meta?: LogMetadata): void;
|
|
208
|
+
export declare function logWarn(message: string, meta?: LogMetadata): void;
|
|
209
|
+
export declare function logError(message: string, error?: Error | LogMetadata): void;
|
|
210
|
+
export declare function setLogLevel(level: string): void;
|
|
211
|
+
export declare function redactUrl(rawUrl: string): string;
|
|
212
|
+
export interface SessionEntry {
|
|
213
|
+
readonly server: McpServer;
|
|
214
|
+
readonly transport: StreamableHTTPServerTransport;
|
|
215
|
+
createdAt: number;
|
|
216
|
+
lastSeen: number;
|
|
217
|
+
protocolInitialized: boolean;
|
|
218
|
+
negotiatedProtocolVersion: string;
|
|
219
|
+
authFingerprint: string;
|
|
220
|
+
}
|
|
221
|
+
export interface SessionStore {
|
|
222
|
+
get: (sessionId: string) => SessionEntry | undefined;
|
|
223
|
+
touch: (sessionId: string) => void;
|
|
224
|
+
set: (sessionId: string, entry: SessionEntry) => void;
|
|
225
|
+
remove: (sessionId: string) => SessionEntry | undefined;
|
|
226
|
+
size: () => number;
|
|
227
|
+
inFlight: () => number;
|
|
228
|
+
incrementInFlight: () => void;
|
|
229
|
+
decrementInFlight: () => void;
|
|
230
|
+
clear: () => SessionEntry[];
|
|
231
|
+
evictExpired: () => SessionEntry[];
|
|
232
|
+
evictOldest: () => SessionEntry | undefined;
|
|
233
|
+
}
|
|
234
|
+
interface SlotTracker {
|
|
235
|
+
readonly releaseSlot: () => void;
|
|
236
|
+
readonly markInitialized: () => void;
|
|
237
|
+
readonly isInitialized: () => boolean;
|
|
238
|
+
}
|
|
239
|
+
type CloseHandler = (() => void) | undefined;
|
|
240
|
+
export declare function composeCloseHandlers(first: CloseHandler, second: CloseHandler): CloseHandler;
|
|
241
|
+
export declare function startSessionCleanupLoop(store: SessionStore, sessionTtlMs: number, options?: {
|
|
242
|
+
onEvictSession?: (session: SessionEntry) => Promise<void> | void;
|
|
243
|
+
cleanupIntervalMs?: number;
|
|
244
|
+
}): AbortController;
|
|
245
|
+
export declare function createSessionStore(sessionTtlMs: number): SessionStore;
|
|
246
|
+
export declare function createSlotTracker(store: SessionStore): SlotTracker;
|
|
247
|
+
export declare function reserveSessionSlot(store: SessionStore, maxSessions: number): boolean;
|
|
248
|
+
export declare function ensureSessionCapacity({ store, maxSessions, evictOldest, }: {
|
|
249
|
+
store: SessionStore;
|
|
250
|
+
maxSessions: number;
|
|
251
|
+
evictOldest: (store: SessionStore) => boolean;
|
|
252
|
+
}): boolean;
|
|
253
|
+
export {};
|