@monoes/mcp 1.0.6 → 1.0.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (53) hide show
  1. package/dist/protocol-types.d.ts +182 -0
  2. package/dist/protocol-types.d.ts.map +1 -0
  3. package/dist/protocol-types.js +8 -0
  4. package/dist/protocol-types.js.map +1 -0
  5. package/dist/resource-helpers.d.ts +32 -0
  6. package/dist/resource-helpers.d.ts.map +1 -0
  7. package/dist/resource-helpers.js +77 -0
  8. package/dist/resource-helpers.js.map +1 -0
  9. package/dist/resource-registry.d.ts +2 -24
  10. package/dist/resource-registry.d.ts.map +1 -1
  11. package/dist/resource-registry.js +1 -70
  12. package/dist/resource-registry.js.map +1 -1
  13. package/dist/server-builtins.d.ts +12 -0
  14. package/dist/server-builtins.d.ts.map +1 -0
  15. package/dist/server-builtins.js +165 -0
  16. package/dist/server-builtins.js.map +1 -0
  17. package/dist/server-core.d.ts +118 -0
  18. package/dist/server-core.d.ts.map +1 -0
  19. package/dist/server-core.js +343 -0
  20. package/dist/server-core.js.map +1 -0
  21. package/dist/server-handlers.d.ts +17 -0
  22. package/dist/server-handlers.d.ts.map +1 -0
  23. package/dist/server-handlers.js +173 -0
  24. package/dist/server-handlers.js.map +1 -0
  25. package/dist/server-routing.d.ts +16 -0
  26. package/dist/server-routing.d.ts.map +1 -0
  27. package/dist/server-routing.js +194 -0
  28. package/dist/server-routing.js.map +1 -0
  29. package/dist/server.d.ts +2 -115
  30. package/dist/server.d.ts.map +1 -1
  31. package/dist/server.js +2 -839
  32. package/dist/server.js.map +1 -1
  33. package/dist/transport/http-base.d.ts +84 -0
  34. package/dist/transport/http-base.d.ts.map +1 -0
  35. package/dist/transport/http-base.js +238 -0
  36. package/dist/transport/http-base.js.map +1 -0
  37. package/dist/transport/http.d.ts +5 -69
  38. package/dist/transport/http.d.ts.map +1 -1
  39. package/dist/transport/http.js +3 -228
  40. package/dist/transport/http.js.map +1 -1
  41. package/dist/transport/websocket-base.d.ts +71 -0
  42. package/dist/transport/websocket-base.d.ts.map +1 -0
  43. package/dist/transport/websocket-base.js +199 -0
  44. package/dist/transport/websocket-base.js.map +1 -0
  45. package/dist/transport/websocket.d.ts +4 -63
  46. package/dist/transport/websocket.d.ts.map +1 -1
  47. package/dist/transport/websocket.js +3 -191
  48. package/dist/transport/websocket.js.map +1 -1
  49. package/dist/types.d.ts +1 -174
  50. package/dist/types.d.ts.map +1 -1
  51. package/dist/types.js +5 -0
  52. package/dist/types.js.map +1 -1
  53. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,84 @@
1
+ /**
2
+ * @monoes/mcp - HTTP Transport (base)
3
+ *
4
+ * Connection state, Express middleware, bind-host policy, request-size
5
+ * parsing, connection ids and auth validation shared by HttpTransport
6
+ * (http.ts).
7
+ */
8
+ import { EventEmitter } from 'node:events';
9
+ import type { Server } from 'node:http';
10
+ import type { Socket } from 'node:net';
11
+ import { type Express, type Request } from 'express';
12
+ import { WebSocket, type WebSocketServer } from 'ws';
13
+ import { type AuthValidationResult } from '../auth.js';
14
+ import type { AuthConfig, ConnectionCloseHandler, ILogger, MCPNotification, NotificationHandler, RequestHandler, TransportHealthStatus, TransportType } from '../types.js';
15
+ export interface HttpTransportConfig {
16
+ host: string;
17
+ port: number;
18
+ tlsEnabled?: boolean;
19
+ tlsCert?: string;
20
+ tlsKey?: string;
21
+ corsEnabled?: boolean;
22
+ corsOrigins?: string[];
23
+ auth?: AuthConfig;
24
+ maxRequestSize?: string;
25
+ requestTimeout?: number;
26
+ }
27
+ export declare abstract class HttpTransportBase extends EventEmitter {
28
+ protected readonly logger: ILogger;
29
+ protected readonly config: HttpTransportConfig;
30
+ readonly type: TransportType;
31
+ protected requestHandler?: RequestHandler;
32
+ protected notificationHandler?: NotificationHandler;
33
+ protected connectionCloseHandler?: ConnectionCloseHandler;
34
+ protected app: Express;
35
+ protected server?: Server;
36
+ protected wss?: WebSocketServer;
37
+ protected running: boolean;
38
+ protected activeConnections: Set<WebSocket>;
39
+ protected wsConnectionIds: WeakMap<WebSocket, string>;
40
+ private httpConnectionIds;
41
+ private connectionIdCounter;
42
+ protected messagesReceived: number;
43
+ protected messagesSent: number;
44
+ protected errors: number;
45
+ protected httpRequests: number;
46
+ protected wsMessages: number;
47
+ constructor(logger: ILogger, config: HttpTransportConfig);
48
+ /**
49
+ * SECURITY: Refuse to bind unauthenticated servers to a non-loopback
50
+ * interface. Without `auth` configured, `handleHttpRequest` processes
51
+ * every request without validating credentials — that is only acceptable
52
+ * on loopback. If the operator asked for a non-loopback host with no auth,
53
+ * fall back to 127.0.0.1 unless they explicitly opt in via
54
+ * MONOMIND_MCP_ALLOW_REMOTE=1 (matching the CLI's own remote-bind gate).
55
+ */
56
+ protected resolveBindHost(): string;
57
+ /**
58
+ * SECURITY: Parses the same `maxRequestSize` string used for the HTTP
59
+ * body-size limit (e.g. "10mb") into a byte count for the embedded
60
+ * WebSocketServer's `maxPayload` option, so both sides of this transport
61
+ * enforce the same ceiling.
62
+ */
63
+ protected parseMaxRequestSizeBytes(): number;
64
+ onRequest(handler: RequestHandler): void;
65
+ onNotification(handler: NotificationHandler): void;
66
+ onConnectionClose(handler: ConnectionCloseHandler): void;
67
+ /**
68
+ * Resolve (creating if needed) the stable connectionId for the TCP socket
69
+ * underlying an HTTP request. Node reuses the same `net.Socket` across
70
+ * every keep-alive request on a connection, so this id stays stable for
71
+ * the connection's lifetime and lets per-connection sessions survive
72
+ * multiple `/rpc` calls from the same client without colliding with other
73
+ * clients' sessions. Cleaned up once, on socket close.
74
+ */
75
+ protected getOrCreateHttpConnectionId(socket: Socket): string;
76
+ protected getOrCreateWsConnectionId(ws: WebSocket): string;
77
+ getHealthStatus(): Promise<TransportHealthStatus>;
78
+ sendNotification(notification: MCPNotification): Promise<void>;
79
+ private setupMiddleware;
80
+ /** Registers the Express routes; implemented by HttpTransport (http.ts). */
81
+ protected abstract setupRoutes(): void;
82
+ protected validateAuth(req: Request): AuthValidationResult;
83
+ }
84
+ //# sourceMappingURL=http-base.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"http-base.d.ts","sourceRoot":"","sources":["../../src/transport/http-base.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,238 @@
1
+ /**
2
+ * @monoes/mcp - HTTP Transport (base)
3
+ *
4
+ * Connection state, Express middleware, bind-host policy, request-size
5
+ * parsing, connection ids and auth validation shared by HttpTransport
6
+ * (http.ts).
7
+ */
8
+ import { EventEmitter } from 'node:events';
9
+ import cors from 'cors';
10
+ import express from 'express';
11
+ import helmet from 'helmet';
12
+ import { WebSocket } from 'ws';
13
+ import { validateCredential } from '../auth.js';
14
+ export class HttpTransportBase extends EventEmitter {
15
+ logger;
16
+ config;
17
+ type = 'http';
18
+ requestHandler;
19
+ notificationHandler;
20
+ connectionCloseHandler;
21
+ app;
22
+ server;
23
+ wss;
24
+ running = false;
25
+ activeConnections = new Set();
26
+ // Per-connection identity, so each WebSocket or keep-alive HTTP TCP socket
27
+ // maps to a stable connectionId for the lifetime of that connection —
28
+ // this is what lets MCPServer keep sessions isolated per client instead of
29
+ // sharing one singleton session across every connected client.
30
+ wsConnectionIds = new WeakMap();
31
+ httpConnectionIds = new WeakMap();
32
+ connectionIdCounter = 0;
33
+ messagesReceived = 0;
34
+ messagesSent = 0;
35
+ errors = 0;
36
+ httpRequests = 0;
37
+ wsMessages = 0;
38
+ constructor(logger, config) {
39
+ super();
40
+ this.logger = logger;
41
+ this.config = config;
42
+ this.app = express();
43
+ this.setupMiddleware();
44
+ this.setupRoutes();
45
+ }
46
+ /**
47
+ * SECURITY: Refuse to bind unauthenticated servers to a non-loopback
48
+ * interface. Without `auth` configured, `handleHttpRequest` processes
49
+ * every request without validating credentials — that is only acceptable
50
+ * on loopback. If the operator asked for a non-loopback host with no auth,
51
+ * fall back to 127.0.0.1 unless they explicitly opt in via
52
+ * MONOMIND_MCP_ALLOW_REMOTE=1 (matching the CLI's own remote-bind gate).
53
+ */
54
+ resolveBindHost() {
55
+ const configuredHost = this.config.host;
56
+ if (this.config.auth) {
57
+ // Auth is explicitly configured — respect the requested host. Binding
58
+ // safety in this case is the operator's informed decision.
59
+ return configuredHost;
60
+ }
61
+ const isLoopback = configuredHost === 'localhost' ||
62
+ configuredHost === '127.0.0.1' ||
63
+ configuredHost === '::1' ||
64
+ configuredHost === '::ffff:127.0.0.1';
65
+ if (isLoopback) {
66
+ return configuredHost;
67
+ }
68
+ if (process.env.MONOMIND_MCP_ALLOW_REMOTE === '1') {
69
+ this.logger.warn(`SECURITY WARNING: HTTP transport is binding to non-loopback host "${configuredHost}" ` +
70
+ 'with NO authentication configured. MONOMIND_MCP_ALLOW_REMOTE=1 opt-in detected — ' +
71
+ 'every request will be processed unauthenticated. This exposes every registered tool ' +
72
+ 'to anyone who can reach this host/port.');
73
+ return configuredHost;
74
+ }
75
+ this.logger.warn(`SECURITY: refusing to bind HTTP transport to non-loopback host "${configuredHost}" with ` +
76
+ 'no "auth" configured. Falling back to 127.0.0.1. Set MONOMIND_MCP_ALLOW_REMOTE=1 to ' +
77
+ 'override (unsafe) or configure "auth" with tokens.');
78
+ return '127.0.0.1';
79
+ }
80
+ /**
81
+ * SECURITY: Parses the same `maxRequestSize` string used for the HTTP
82
+ * body-size limit (e.g. "10mb") into a byte count for the embedded
83
+ * WebSocketServer's `maxPayload` option, so both sides of this transport
84
+ * enforce the same ceiling.
85
+ */
86
+ parseMaxRequestSizeBytes() {
87
+ const raw = this.config.maxRequestSize || '10mb';
88
+ if (typeof raw === 'number') {
89
+ return raw;
90
+ }
91
+ const match = /^(\d+(?:\.\d+)?)\s*(b|kb|mb|gb)?$/i.exec(raw.trim());
92
+ if (!match) {
93
+ return 10 * 1024 * 1024;
94
+ }
95
+ const value = parseFloat(match[1]);
96
+ const unit = (match[2] || 'b').toLowerCase();
97
+ const multipliers = {
98
+ b: 1,
99
+ kb: 1024,
100
+ mb: 1024 * 1024,
101
+ gb: 1024 * 1024 * 1024,
102
+ };
103
+ return Math.round(value * (multipliers[unit] ?? 1));
104
+ }
105
+ onRequest(handler) {
106
+ this.requestHandler = handler;
107
+ }
108
+ onNotification(handler) {
109
+ this.notificationHandler = handler;
110
+ }
111
+ onConnectionClose(handler) {
112
+ this.connectionCloseHandler = handler;
113
+ }
114
+ /**
115
+ * Resolve (creating if needed) the stable connectionId for the TCP socket
116
+ * underlying an HTTP request. Node reuses the same `net.Socket` across
117
+ * every keep-alive request on a connection, so this id stays stable for
118
+ * the connection's lifetime and lets per-connection sessions survive
119
+ * multiple `/rpc` calls from the same client without colliding with other
120
+ * clients' sessions. Cleaned up once, on socket close.
121
+ */
122
+ getOrCreateHttpConnectionId(socket) {
123
+ let id = this.httpConnectionIds.get(socket);
124
+ if (id) {
125
+ return id;
126
+ }
127
+ id = `http-conn-${++this.connectionIdCounter}-${Date.now()}`;
128
+ this.httpConnectionIds.set(socket, id);
129
+ const finalize = () => {
130
+ this.httpConnectionIds.delete(socket);
131
+ this.connectionCloseHandler?.(id);
132
+ };
133
+ socket.once('close', finalize);
134
+ return id;
135
+ }
136
+ getOrCreateWsConnectionId(ws) {
137
+ let id = this.wsConnectionIds.get(ws);
138
+ if (!id) {
139
+ id = `http-ws-conn-${++this.connectionIdCounter}-${Date.now()}`;
140
+ this.wsConnectionIds.set(ws, id);
141
+ }
142
+ return id;
143
+ }
144
+ async getHealthStatus() {
145
+ return {
146
+ healthy: this.running,
147
+ metrics: {
148
+ messagesReceived: this.messagesReceived,
149
+ messagesSent: this.messagesSent,
150
+ errors: this.errors,
151
+ httpRequests: this.httpRequests,
152
+ wsMessages: this.wsMessages,
153
+ activeConnections: this.activeConnections.size,
154
+ },
155
+ };
156
+ }
157
+ async sendNotification(notification) {
158
+ const message = JSON.stringify(notification);
159
+ for (const ws of this.activeConnections) {
160
+ try {
161
+ if (ws.readyState === WebSocket.OPEN) {
162
+ ws.send(message);
163
+ this.messagesSent++;
164
+ }
165
+ }
166
+ catch (error) {
167
+ this.logger.error('Failed to send notification', { error });
168
+ this.errors++;
169
+ }
170
+ }
171
+ }
172
+ setupMiddleware() {
173
+ this.app.use(helmet({
174
+ contentSecurityPolicy: false,
175
+ }));
176
+ if (this.config.corsEnabled !== false) {
177
+ const allowedOrigins = this.config.corsOrigins;
178
+ if (!allowedOrigins || allowedOrigins.length === 0) {
179
+ this.logger.warn('CORS: No origins configured, restricting to same-origin only');
180
+ }
181
+ this.app.use(cors({
182
+ origin: (origin, callback) => {
183
+ if (!origin) {
184
+ callback(null, true);
185
+ return;
186
+ }
187
+ if (allowedOrigins && allowedOrigins.length > 0) {
188
+ if (allowedOrigins.includes(origin) || allowedOrigins.includes('*')) {
189
+ callback(null, true);
190
+ }
191
+ else {
192
+ callback(new Error(`CORS: Origin '${origin}' not allowed`));
193
+ }
194
+ }
195
+ else {
196
+ callback(new Error('CORS: Cross-origin requests not allowed'));
197
+ }
198
+ },
199
+ credentials: true,
200
+ maxAge: 86400,
201
+ methods: ['GET', 'POST', 'OPTIONS'],
202
+ allowedHeaders: ['Content-Type', 'Authorization', 'X-Request-ID'],
203
+ }));
204
+ }
205
+ this.app.use(express.json({
206
+ limit: this.config.maxRequestSize || '10mb',
207
+ }));
208
+ if (this.config.requestTimeout) {
209
+ this.app.use((_req, res, next) => {
210
+ res.setTimeout(this.config.requestTimeout, () => {
211
+ res.status(408).json({
212
+ jsonrpc: '2.0',
213
+ id: null,
214
+ error: { code: -32000, message: 'Request timeout' },
215
+ });
216
+ });
217
+ next();
218
+ });
219
+ }
220
+ this.app.use((req, res, next) => {
221
+ const startTime = performance.now();
222
+ res.on('finish', () => {
223
+ const duration = performance.now() - startTime;
224
+ this.logger.debug('HTTP request', {
225
+ method: req.method,
226
+ path: req.path,
227
+ status: res.statusCode,
228
+ duration: `${duration.toFixed(2)}ms`,
229
+ });
230
+ });
231
+ next();
232
+ });
233
+ }
234
+ validateAuth(req) {
235
+ return validateCredential(this.config.auth, req.headers.authorization, req.headers['x-api-key']);
236
+ }
237
+ }
238
+ //# sourceMappingURL=http-base.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"http-base.js","sourceRoot":"","sources":["../../src/transport/http-base.ts"],"names":[],"mappings":"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"}
@@ -3,80 +3,16 @@
3
3
  *
4
4
  * HTTP/REST transport with WebSocket support
5
5
  */
6
- import { EventEmitter } from 'node:events';
7
- import type { AuthConfig, ConnectionCloseHandler, ILogger, ITransport, MCPNotification, NotificationHandler, RequestHandler, TransportHealthStatus, TransportType } from '../types.js';
8
- export interface HttpTransportConfig {
9
- host: string;
10
- port: number;
11
- tlsEnabled?: boolean;
12
- tlsCert?: string;
13
- tlsKey?: string;
14
- corsEnabled?: boolean;
15
- corsOrigins?: string[];
16
- auth?: AuthConfig;
17
- maxRequestSize?: string;
18
- requestTimeout?: number;
19
- }
20
- export declare class HttpTransport extends EventEmitter implements ITransport {
21
- private readonly logger;
22
- private readonly config;
23
- readonly type: TransportType;
24
- private requestHandler?;
25
- private notificationHandler?;
26
- private connectionCloseHandler?;
27
- private app;
28
- private server?;
29
- private wss?;
30
- private running;
31
- private activeConnections;
32
- private wsConnectionIds;
33
- private httpConnectionIds;
34
- private connectionIdCounter;
35
- private messagesReceived;
36
- private messagesSent;
37
- private errors;
38
- private httpRequests;
39
- private wsMessages;
40
- constructor(logger: ILogger, config: HttpTransportConfig);
6
+ import type { ILogger, ITransport } from '../types.js';
7
+ import { HttpTransportBase, type HttpTransportConfig } from './http-base.js';
8
+ export type { HttpTransportConfig } from './http-base.js';
9
+ export declare class HttpTransport extends HttpTransportBase implements ITransport {
41
10
  start(): Promise<void>;
42
- /**
43
- * SECURITY: Refuse to bind unauthenticated servers to a non-loopback
44
- * interface. Without `auth` configured, `handleHttpRequest` processes
45
- * every request without validating credentials — that is only acceptable
46
- * on loopback. If the operator asked for a non-loopback host with no auth,
47
- * fall back to 127.0.0.1 unless they explicitly opt in via
48
- * MONOMIND_MCP_ALLOW_REMOTE=1 (matching the CLI's own remote-bind gate).
49
- */
50
- private resolveBindHost;
51
- /**
52
- * SECURITY: Parses the same `maxRequestSize` string used for the HTTP
53
- * body-size limit (e.g. "10mb") into a byte count for the embedded
54
- * WebSocketServer's `maxPayload` option, so both sides of this transport
55
- * enforce the same ceiling.
56
- */
57
- private parseMaxRequestSizeBytes;
58
11
  stop(): Promise<void>;
59
- onRequest(handler: RequestHandler): void;
60
- onNotification(handler: NotificationHandler): void;
61
- onConnectionClose(handler: ConnectionCloseHandler): void;
62
- /**
63
- * Resolve (creating if needed) the stable connectionId for the TCP socket
64
- * underlying an HTTP request. Node reuses the same `net.Socket` across
65
- * every keep-alive request on a connection, so this id stays stable for
66
- * the connection's lifetime and lets per-connection sessions survive
67
- * multiple `/rpc` calls from the same client without colliding with other
68
- * clients' sessions. Cleaned up once, on socket close.
69
- */
70
- private getOrCreateHttpConnectionId;
71
- private getOrCreateWsConnectionId;
72
- getHealthStatus(): Promise<TransportHealthStatus>;
73
- sendNotification(notification: MCPNotification): Promise<void>;
74
- private setupMiddleware;
75
- private setupRoutes;
12
+ protected setupRoutes(): void;
76
13
  private setupWebSocketHandlers;
77
14
  private handleHttpRequest;
78
15
  private handleWebSocketMessage;
79
- private validateAuth;
80
16
  }
81
17
  export declare function createHttpTransport(logger: ILogger, config: HttpTransportConfig): HttpTransport;
82
18
  //# sourceMappingURL=http.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"http.d.ts","sourceRoot":"","sources":["../../src/transport/http.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAQ3C,OAAO,KAAK,EACV,UAAU,EACV,sBAAsB,EACtB,OAAO,EACP,UAAU,EACV,eAAe,EAEf,mBAAmB,EACnB,cAAc,EACd,qBAAqB,EACrB,aAAa,EACd,MAAM,aAAa,CAAC;AAErB,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,IAAI,CAAC,EAAE,UAAU,CAAC;IAClB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,qBAAa,aAAc,SAAQ,YAAa,YAAW,UAAU;IA0BjE,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,MAAM;IA1BzB,SAAgB,IAAI,EAAE,aAAa,CAAU;IAE7C,OAAO,CAAC,cAAc,CAAC,CAAiB;IACxC,OAAO,CAAC,mBAAmB,CAAC,CAAsB;IAClD,OAAO,CAAC,sBAAsB,CAAC,CAAyB;IACxD,OAAO,CAAC,GAAG,CAAU;IACrB,OAAO,CAAC,MAAM,CAAC,CAAS;IACxB,OAAO,CAAC,GAAG,CAAC,CAAkB;IAC9B,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,iBAAiB,CAAwB;IAKjD,OAAO,CAAC,eAAe,CAAoC;IAC3D,OAAO,CAAC,iBAAiB,CAAiC;IAC1D,OAAO,CAAC,mBAAmB,CAAK;IAEhC,OAAO,CAAC,gBAAgB,CAAK;IAC7B,OAAO,CAAC,YAAY,CAAK;IACzB,OAAO,CAAC,MAAM,CAAK;IACnB,OAAO,CAAC,YAAY,CAAK;IACzB,OAAO,CAAC,UAAU,CAAK;IAEvB,YACmB,MAAM,EAAE,OAAO,EACf,MAAM,EAAE,mBAAmB,EAM7C;IAEK,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAqC3B;IAED;;;;;;;OAOG;IACH,OAAO,CAAC,eAAe;IAqCvB;;;;;OAKG;IACH,OAAO,CAAC,wBAAwB;IAoB1B,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CA8B1B;IAED,SAAS,CAAC,OAAO,EAAE,cAAc,GAAG,IAAI,CAEvC;IAED,cAAc,CAAC,OAAO,EAAE,mBAAmB,GAAG,IAAI,CAEjD;IAED,iBAAiB,CAAC,OAAO,EAAE,sBAAsB,GAAG,IAAI,CAEvD;IAED;;;;;;;OAOG;IACH,OAAO,CAAC,2BAA2B;IAkBnC,OAAO,CAAC,yBAAyB;IAS3B,eAAe,IAAI,OAAO,CAAC,qBAAqB,CAAC,CAYtD;IAEK,gBAAgB,CAAC,YAAY,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC,CAcnE;IAED,OAAO,CAAC,eAAe;IA0EvB,OAAO,CAAC,WAAW;IA+CnB,OAAO,CAAC,sBAAsB;YA+EhB,iBAAiB;YA8HjB,sBAAsB;IAiEpC,OAAO,CAAC,YAAY;CAOrB;AAED,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,mBAAmB,GAAG,aAAa,CAE/F"}
1
+ {"version":3,"file":"http.d.ts","sourceRoot":"","sources":["../../src/transport/http.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAMH,OAAO,KAAK,EAAE,OAAO,EAAE,UAAU,EAA+B,MAAM,aAAa,CAAC;AACpF,OAAO,EAAE,iBAAiB,EAAE,KAAK,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAE7E,YAAY,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAE1D,qBAAa,aAAc,SAAQ,iBAAkB,YAAW,UAAU;IAClE,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAqC3B;IAEK,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CA8B1B;IAED,SAAS,CAAC,WAAW,IAAI,IAAI,CA6C5B;IAED,OAAO,CAAC,sBAAsB;YA+EhB,iBAAiB;YA8HjB,sBAAsB;CAgErC;AAED,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,mBAAmB,GAAG,aAAa,CAE/F"}