@crypto512/jicon-mcp 2.2.0 → 2.3.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/.env.example +2 -2
- package/README.md +16 -138
- package/TOOL_LIST.md +361 -296
- package/dist/config/constants.d.ts +15 -0
- package/dist/config/constants.d.ts.map +1 -1
- package/dist/config/constants.js +19 -0
- package/dist/config/constants.js.map +1 -1
- package/dist/config/loader.d.ts.map +1 -1
- package/dist/config/loader.js +7 -1
- package/dist/config/loader.js.map +1 -1
- package/dist/config/types.d.ts +38 -6
- package/dist/config/types.d.ts.map +1 -1
- package/dist/config/types.js +16 -0
- package/dist/config/types.js.map +1 -1
- package/dist/confluence/formatters.d.ts +20 -0
- package/dist/confluence/formatters.d.ts.map +1 -1
- package/dist/confluence/formatters.js +74 -8
- package/dist/confluence/formatters.js.map +1 -1
- package/dist/confluence/tools.d.ts +8 -7
- package/dist/confluence/tools.d.ts.map +1 -1
- package/dist/confluence/tools.js +52 -31
- package/dist/confluence/tools.js.map +1 -1
- package/dist/credentials/extractor.d.ts +1 -2
- package/dist/credentials/extractor.d.ts.map +1 -1
- package/dist/credentials/extractor.js +21 -4
- package/dist/credentials/extractor.js.map +1 -1
- package/dist/credentials/index.d.ts +3 -2
- package/dist/credentials/index.d.ts.map +1 -1
- package/dist/credentials/index.js +3 -2
- package/dist/credentials/index.js.map +1 -1
- package/dist/index.js +43 -20
- package/dist/index.js.map +1 -1
- package/dist/jira/activity-tools.d.ts +8 -11
- package/dist/jira/activity-tools.d.ts.map +1 -1
- package/dist/jira/activity-tools.js +91 -27
- package/dist/jira/activity-tools.js.map +1 -1
- package/dist/jira/client.d.ts +12 -0
- package/dist/jira/client.d.ts.map +1 -1
- package/dist/jira/client.js +35 -0
- package/dist/jira/client.js.map +1 -1
- package/dist/jira/formatters.d.ts +58 -0
- package/dist/jira/formatters.d.ts.map +1 -1
- package/dist/jira/formatters.js +80 -11
- package/dist/jira/formatters.js.map +1 -1
- package/dist/jira/tools.d.ts +30 -12
- package/dist/jira/tools.d.ts.map +1 -1
- package/dist/jira/tools.js +127 -37
- package/dist/jira/tools.js.map +1 -1
- package/dist/permissions/tool-registry.d.ts +6 -6
- package/dist/permissions/tool-registry.d.ts.map +1 -1
- package/dist/permissions/tool-registry.js +4 -3
- package/dist/permissions/tool-registry.js.map +1 -1
- package/dist/session/context.d.ts +81 -0
- package/dist/session/context.d.ts.map +1 -0
- package/dist/session/context.js +107 -0
- package/dist/session/context.js.map +1 -0
- package/dist/session/index.d.ts +12 -0
- package/dist/session/index.d.ts.map +1 -0
- package/dist/session/index.js +22 -0
- package/dist/session/index.js.map +1 -0
- package/dist/session/manager.d.ts +155 -0
- package/dist/session/manager.d.ts.map +1 -0
- package/dist/session/manager.js +285 -0
- package/dist/session/manager.js.map +1 -0
- package/dist/tempo/client.d.ts +14 -0
- package/dist/tempo/client.d.ts.map +1 -1
- package/dist/tempo/client.js +55 -0
- package/dist/tempo/client.js.map +1 -1
- package/dist/tempo/formatters.d.ts +13 -0
- package/dist/tempo/formatters.d.ts.map +1 -1
- package/dist/tempo/formatters.js +106 -20
- package/dist/tempo/formatters.js.map +1 -1
- package/dist/tempo/tools.d.ts +10 -9
- package/dist/tempo/tools.d.ts.map +1 -1
- package/dist/tempo/tools.js +188 -33
- package/dist/tempo/tools.js.map +1 -1
- package/dist/tempo/types.d.ts +20 -6
- package/dist/tempo/types.d.ts.map +1 -1
- package/dist/transport/http.d.ts +20 -3
- package/dist/transport/http.d.ts.map +1 -1
- package/dist/transport/http.js +171 -15
- package/dist/transport/http.js.map +1 -1
- package/dist/transport/types.d.ts +2 -0
- package/dist/transport/types.d.ts.map +1 -1
- package/dist/transport/types.js.map +1 -1
- package/dist/utils/buffer-tools.d.ts +46 -722
- package/dist/utils/buffer-tools.d.ts.map +1 -1
- package/dist/utils/buffer-tools.js +303 -158
- package/dist/utils/buffer-tools.js.map +1 -1
- package/dist/utils/content-buffer.d.ts +10 -31
- package/dist/utils/content-buffer.d.ts.map +1 -1
- package/dist/utils/content-buffer.js +12 -86
- package/dist/utils/content-buffer.js.map +1 -1
- package/dist/utils/jicon-help.d.ts +3 -3
- package/dist/utils/jicon-help.d.ts.map +1 -1
- package/dist/utils/jicon-help.js +163 -101
- package/dist/utils/jicon-help.js.map +1 -1
- package/dist/utils/plantuml/tools.d.ts.map +1 -1
- package/dist/utils/plantuml/tools.js +8 -7
- package/dist/utils/plantuml/tools.js.map +1 -1
- package/dist/utils/response-formatter.d.ts +12 -2
- package/dist/utils/response-formatter.d.ts.map +1 -1
- package/dist/utils/response-formatter.js +85 -13
- package/dist/utils/response-formatter.js.map +1 -1
- package/dist/utils/sandbox/formatters.d.ts +25 -0
- package/dist/utils/sandbox/formatters.d.ts.map +1 -0
- package/dist/utils/sandbox/formatters.js +690 -0
- package/dist/utils/sandbox/formatters.js.map +1 -0
- package/dist/utils/sandbox/helpers.d.ts +16 -0
- package/dist/utils/sandbox/helpers.d.ts.map +1 -0
- package/dist/utils/sandbox/helpers.js +252 -0
- package/dist/utils/sandbox/helpers.js.map +1 -0
- package/dist/utils/sandbox/index.d.ts +19 -0
- package/dist/utils/sandbox/index.d.ts.map +1 -0
- package/dist/utils/sandbox/index.js +269 -0
- package/dist/utils/sandbox/index.js.map +1 -0
- package/dist/utils/sandbox/schema.d.ts +55 -0
- package/dist/utils/sandbox/schema.d.ts.map +1 -0
- package/dist/utils/sandbox/schema.js +39 -0
- package/dist/utils/sandbox/schema.js.map +1 -0
- package/dist/utils/sandbox/types.d.ts +179 -0
- package/dist/utils/sandbox/types.d.ts.map +1 -0
- package/dist/utils/sandbox/types.js +8 -0
- package/dist/utils/sandbox/types.js.map +1 -0
- package/dist/utils/schemas/confluence.d.ts +41 -0
- package/dist/utils/schemas/confluence.d.ts.map +1 -0
- package/dist/utils/schemas/confluence.js +105 -0
- package/dist/utils/schemas/confluence.js.map +1 -0
- package/dist/utils/schemas/index.d.ts +66 -0
- package/dist/utils/schemas/index.d.ts.map +1 -0
- package/dist/utils/schemas/index.js +107 -0
- package/dist/utils/schemas/index.js.map +1 -0
- package/dist/utils/schemas/jira.d.ts +49 -0
- package/dist/utils/schemas/jira.d.ts.map +1 -0
- package/dist/utils/schemas/jira.js +151 -0
- package/dist/utils/schemas/jira.js.map +1 -0
- package/dist/utils/schemas/tempo.d.ts +29 -0
- package/dist/utils/schemas/tempo.d.ts.map +1 -0
- package/dist/utils/schemas/tempo.js +72 -0
- package/dist/utils/schemas/tempo.js.map +1 -0
- package/dist/utils/xhtml/error-locator.js +5 -5
- package/dist/utils/xhtml/error-locator.js.map +1 -1
- package/package.json +10 -9
package/dist/transport/http.js
CHANGED
|
@@ -1,13 +1,55 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* HTTP transport using StreamableHTTPServerTransport
|
|
2
|
+
* HTTP transport using StreamableHTTPServerTransport with per-session transport instances
|
|
3
|
+
*
|
|
4
|
+
* Key insight: Each MCP session requires its own transport instance. The SDK's transport
|
|
5
|
+
* maintains an _initialized flag that prevents re-initialization. When a client reconnects,
|
|
6
|
+
* it needs to initialize a new session, which requires a fresh transport.
|
|
7
|
+
*
|
|
8
|
+
* Pattern:
|
|
9
|
+
* - Store transports in a Map by session ID
|
|
10
|
+
* - For initialization requests (no session ID), create a new transport
|
|
11
|
+
* - For requests with a session ID, look up the existing transport
|
|
12
|
+
* - Clean up transports when sessions are destroyed
|
|
3
13
|
*/
|
|
14
|
+
import { randomUUID } from "crypto";
|
|
4
15
|
import { createMcpExpressApp } from "@modelcontextprotocol/sdk/server/express.js";
|
|
5
16
|
import { StreamableHTTPServerTransport } from "@modelcontextprotocol/sdk/server/streamableHttp.js";
|
|
17
|
+
import { getSessionManager, runWithSession } from "../session/index.js";
|
|
18
|
+
import { DEFAULT_SESSION_TIMEOUT_MS } from "../config/constants.js";
|
|
19
|
+
import { extractCredentials } from "../credentials/extractor.js";
|
|
6
20
|
/**
|
|
7
|
-
* Creates an HTTP server with StreamableHTTPServerTransport
|
|
21
|
+
* Creates an HTTP server with per-session StreamableHTTPServerTransport instances
|
|
22
|
+
*
|
|
23
|
+
* Session management:
|
|
24
|
+
* - Each MCP session gets its own transport instance (required by MCP SDK)
|
|
25
|
+
* - Sessions are created on first request with a given session ID
|
|
26
|
+
* - Each session has its own ContentBuffer, API clients, and caches
|
|
27
|
+
* - Sessions are automatically cleaned up after 30 minutes of inactivity
|
|
28
|
+
* - Buffers are isolated between sessions (no cross-session data access)
|
|
8
29
|
*/
|
|
9
30
|
export function createHttpServer(server, config) {
|
|
10
31
|
const { port, host, basePath } = config;
|
|
32
|
+
// Store transports by session ID - each session needs its own transport instance
|
|
33
|
+
const transports = new Map();
|
|
34
|
+
// Get session manager to register cleanup callback
|
|
35
|
+
const sessionManager = getSessionManager();
|
|
36
|
+
/**
|
|
37
|
+
* Removes a transport when a session is destroyed (coordinated cleanup)
|
|
38
|
+
* Called by SessionManager when session times out or is explicitly destroyed
|
|
39
|
+
*/
|
|
40
|
+
function destroySessionTransport(sessionId) {
|
|
41
|
+
const transport = transports.get(sessionId);
|
|
42
|
+
if (transport) {
|
|
43
|
+
transport.close().catch((err) => {
|
|
44
|
+
console.error(`Error closing transport for session ${sessionId}:`, err);
|
|
45
|
+
});
|
|
46
|
+
transports.delete(sessionId);
|
|
47
|
+
console.error(`MCP transport destroyed for session: ${sessionId} (remaining: ${transports.size})`);
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
// Register transport cleanup callback with session manager (fix: issue #7)
|
|
51
|
+
// This ensures transport is cleaned up when session times out
|
|
52
|
+
sessionManager.setSessionDestroyedCallback(destroySessionTransport);
|
|
11
53
|
// Create Express app with MCP defaults
|
|
12
54
|
const app = createMcpExpressApp({
|
|
13
55
|
host,
|
|
@@ -16,40 +58,154 @@ export function createHttpServer(server, config) {
|
|
|
16
58
|
});
|
|
17
59
|
// Health check endpoint
|
|
18
60
|
app.get("/health", (_req, res) => {
|
|
19
|
-
|
|
61
|
+
const sessionManager = getSessionManager();
|
|
62
|
+
res.json({
|
|
63
|
+
status: "ok",
|
|
64
|
+
sessions: sessionManager.getSessionCount(),
|
|
65
|
+
transports: transports.size,
|
|
66
|
+
});
|
|
20
67
|
});
|
|
21
68
|
// Readiness endpoint (can be extended to check dependencies)
|
|
22
69
|
app.get("/ready", (_req, res) => {
|
|
23
70
|
res.json({ status: "ready" });
|
|
24
71
|
});
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
72
|
+
/**
|
|
73
|
+
* Creates a new transport for a session and connects it to the MCP server
|
|
74
|
+
* @throws Error if transport limit reached (coordinated with session limit)
|
|
75
|
+
*/
|
|
76
|
+
async function createSessionTransport() {
|
|
77
|
+
// Transport limit coordinated with session limit (fix: issue #5)
|
|
78
|
+
const maxTransports = sessionManager.getMaxSessions();
|
|
79
|
+
if (transports.size >= maxTransports) {
|
|
80
|
+
throw new Error(`Maximum transports limit reached (${maxTransports}). ` +
|
|
81
|
+
"Try again later or contact administrator.");
|
|
82
|
+
}
|
|
83
|
+
const transport = new StreamableHTTPServerTransport({
|
|
84
|
+
// Generate unique session IDs for each MCP session
|
|
85
|
+
sessionIdGenerator: () => randomUUID(),
|
|
86
|
+
onsessioninitialized: (sessionId) => {
|
|
87
|
+
// Store the transport by session ID once initialized
|
|
88
|
+
transports.set(sessionId, transport);
|
|
89
|
+
console.error(`MCP transport created for session: ${sessionId} (total: ${transports.size})`);
|
|
90
|
+
},
|
|
91
|
+
enableJsonResponse: true,
|
|
92
|
+
});
|
|
93
|
+
// Connect this transport to the server
|
|
94
|
+
await server.connect(transport);
|
|
95
|
+
return transport;
|
|
96
|
+
}
|
|
97
|
+
// Mount MCP endpoint with session context wrapping
|
|
31
98
|
app.all(basePath, async (req, res) => {
|
|
32
|
-
|
|
99
|
+
// Extract credentials from HTTP headers
|
|
100
|
+
const credentials = extractCredentials(req.headers);
|
|
101
|
+
// Get session ID from MCP session header
|
|
102
|
+
const sessionId = req.headers["mcp-session-id"];
|
|
103
|
+
if (sessionId) {
|
|
104
|
+
// Stateful request - use existing transport for this session
|
|
105
|
+
const transport = transports.get(sessionId);
|
|
106
|
+
if (!transport) {
|
|
107
|
+
// Session not found - client should re-initialize
|
|
108
|
+
res.status(404).json({
|
|
109
|
+
jsonrpc: "2.0",
|
|
110
|
+
error: {
|
|
111
|
+
code: -32001,
|
|
112
|
+
message: "Session not found. Please re-initialize.",
|
|
113
|
+
},
|
|
114
|
+
id: null,
|
|
115
|
+
});
|
|
116
|
+
return;
|
|
117
|
+
}
|
|
118
|
+
// Get or create our session data
|
|
119
|
+
const sessionManager = getSessionManager();
|
|
120
|
+
const session = sessionManager.getOrCreateSession(sessionId, credentials);
|
|
121
|
+
// Run request within session context
|
|
122
|
+
await runWithSession({
|
|
123
|
+
sessionId,
|
|
124
|
+
credentials: session.credentials,
|
|
125
|
+
buffer: session.buffer,
|
|
126
|
+
jiraClient: session.clients.jira,
|
|
127
|
+
confluenceClient: session.clients.confluence,
|
|
128
|
+
tempoClient: session.clients.tempo,
|
|
129
|
+
writeHomeValidator: session.writeHomeValidator,
|
|
130
|
+
}, async () => {
|
|
131
|
+
await transport.handleRequest(req, res, req.body);
|
|
132
|
+
});
|
|
133
|
+
}
|
|
134
|
+
else {
|
|
135
|
+
// Initialization request - create a new transport for this session
|
|
136
|
+
try {
|
|
137
|
+
const transport = await createSessionTransport();
|
|
138
|
+
await transport.handleRequest(req, res, req.body);
|
|
139
|
+
}
|
|
140
|
+
catch (error) {
|
|
141
|
+
console.error("Error creating session transport:", error);
|
|
142
|
+
res.status(500).json({
|
|
143
|
+
jsonrpc: "2.0",
|
|
144
|
+
error: {
|
|
145
|
+
code: -32603,
|
|
146
|
+
message: "Internal error creating session",
|
|
147
|
+
},
|
|
148
|
+
id: null,
|
|
149
|
+
});
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
});
|
|
153
|
+
// Handle DELETE requests for session termination
|
|
154
|
+
app.delete(basePath, async (req, res) => {
|
|
155
|
+
const sessionId = req.headers["mcp-session-id"];
|
|
156
|
+
if (!sessionId) {
|
|
157
|
+
res.status(400).json({
|
|
158
|
+
jsonrpc: "2.0",
|
|
159
|
+
error: {
|
|
160
|
+
code: -32600,
|
|
161
|
+
message: "Session ID required for DELETE",
|
|
162
|
+
},
|
|
163
|
+
id: null,
|
|
164
|
+
});
|
|
165
|
+
return;
|
|
166
|
+
}
|
|
167
|
+
// Destroy both our session data and the transport
|
|
168
|
+
const sessionManager = getSessionManager();
|
|
169
|
+
sessionManager.destroySession(sessionId);
|
|
170
|
+
destroySessionTransport(sessionId);
|
|
171
|
+
res.status(200).send();
|
|
33
172
|
});
|
|
34
173
|
let httpServer = null;
|
|
35
174
|
return {
|
|
36
175
|
app,
|
|
37
|
-
|
|
176
|
+
transports,
|
|
38
177
|
start: async () => {
|
|
39
|
-
//
|
|
40
|
-
await server.connect(transport);
|
|
41
|
-
// Start HTTP server
|
|
178
|
+
// Start HTTP server (transports are created per-session)
|
|
42
179
|
return new Promise((resolve) => {
|
|
43
180
|
httpServer = app.listen(port, host, () => {
|
|
181
|
+
// Set HTTP server timeouts to match session timeout for SSE connections
|
|
182
|
+
// Default Node.js timeout (120s) would close idle SSE streams prematurely
|
|
183
|
+
const sessionTimeout = config.sessionTimeoutMs ?? DEFAULT_SESSION_TIMEOUT_MS;
|
|
184
|
+
httpServer.setTimeout(sessionTimeout);
|
|
185
|
+
httpServer.keepAliveTimeout = sessionTimeout;
|
|
186
|
+
httpServer.headersTimeout = sessionTimeout;
|
|
187
|
+
httpServer.requestTimeout = sessionTimeout;
|
|
44
188
|
console.error(`HTTP server listening on http://${host}:${port}`);
|
|
45
189
|
console.error(`MCP endpoint: http://${host}:${port}${basePath}`);
|
|
46
190
|
console.error(`Health check: http://${host}:${port}/health`);
|
|
191
|
+
console.error("Session management: enabled (per-session transports, 30-min timeout)");
|
|
192
|
+
console.error("SSE connections: timeout disabled for long-lived streams");
|
|
47
193
|
resolve();
|
|
48
194
|
});
|
|
49
195
|
});
|
|
50
196
|
},
|
|
51
197
|
close: async () => {
|
|
52
|
-
|
|
198
|
+
// Close all transports
|
|
199
|
+
for (const [sessionId, transport] of transports) {
|
|
200
|
+
try {
|
|
201
|
+
await transport.close();
|
|
202
|
+
console.error(`Closed transport for session: ${sessionId}`);
|
|
203
|
+
}
|
|
204
|
+
catch (err) {
|
|
205
|
+
console.error(`Error closing transport for session ${sessionId}:`, err);
|
|
206
|
+
}
|
|
207
|
+
}
|
|
208
|
+
transports.clear();
|
|
53
209
|
if (httpServer) {
|
|
54
210
|
return new Promise((resolve, reject) => {
|
|
55
211
|
httpServer.close((err) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"http.js","sourceRoot":"","sources":["../../src/transport/http.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"http.js","sourceRoot":"","sources":["../../src/transport/http.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AACpC,OAAO,EAAE,mBAAmB,EAAE,MAAM,6CAA6C,CAAC;AAClF,OAAO,EAAE,6BAA6B,EAAE,MAAM,oDAAoD,CAAC;AAInG,OAAO,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACxE,OAAO,EAAE,0BAA0B,EAAE,MAAM,wBAAwB,CAAC;AACpE,OAAO,EAAE,kBAAkB,EAA0B,MAAM,6BAA6B,CAAC;AASzF;;;;;;;;;GASG;AACH,MAAM,UAAU,gBAAgB,CAC9B,MAAc,EACd,MAA2B;IAE3B,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,MAAM,CAAC;IAExC,iFAAiF;IACjF,MAAM,UAAU,GAAG,IAAI,GAAG,EAAyC,CAAC;IAEpE,mDAAmD;IACnD,MAAM,cAAc,GAAG,iBAAiB,EAAE,CAAC;IAE3C;;;OAGG;IACH,SAAS,uBAAuB,CAAC,SAAiB;QAChD,MAAM,SAAS,GAAG,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAC5C,IAAI,SAAS,EAAE,CAAC;YACd,SAAS,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;gBAC9B,OAAO,CAAC,KAAK,CAAC,uCAAuC,SAAS,GAAG,EAAE,GAAG,CAAC,CAAC;YAC1E,CAAC,CAAC,CAAC;YACH,UAAU,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;YAC7B,OAAO,CAAC,KAAK,CAAC,wCAAwC,SAAS,gBAAgB,UAAU,CAAC,IAAI,GAAG,CAAC,CAAC;QACrG,CAAC;IACH,CAAC;IAED,2EAA2E;IAC3E,8DAA8D;IAC9D,cAAc,CAAC,2BAA2B,CAAC,uBAAuB,CAAC,CAAC;IAEpE,uCAAuC;IACvC,MAAM,GAAG,GAAG,mBAAmB,CAAC;QAC9B,IAAI;QACJ,2EAA2E;QAC3E,YAAY,EAAE,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,WAAW,CAAC;KACnE,CAAC,CAAC;IAEH,wBAAwB;IACxB,GAAG,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC,IAAa,EAAE,GAAa,EAAE,EAAE;QAClD,MAAM,cAAc,GAAG,iBAAiB,EAAE,CAAC;QAC3C,GAAG,CAAC,IAAI,CAAC;YACP,MAAM,EAAE,IAAI;YACZ,QAAQ,EAAE,cAAc,CAAC,eAAe,EAAE;YAC1C,UAAU,EAAE,UAAU,CAAC,IAAI;SAC5B,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,6DAA6D;IAC7D,GAAG,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,IAAa,EAAE,GAAa,EAAE,EAAE;QACjD,GAAG,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC;IAChC,CAAC,CAAC,CAAC;IAEH;;;OAGG;IACH,KAAK,UAAU,sBAAsB;QACnC,iEAAiE;QACjE,MAAM,aAAa,GAAG,cAAc,CAAC,cAAc,EAAE,CAAC;QACtD,IAAI,UAAU,CAAC,IAAI,IAAI,aAAa,EAAE,CAAC;YACrC,MAAM,IAAI,KAAK,CACb,qCAAqC,aAAa,KAAK;gBACrD,2CAA2C,CAC9C,CAAC;QACJ,CAAC;QAED,MAAM,SAAS,GAAG,IAAI,6BAA6B,CAAC;YAClD,mDAAmD;YACnD,kBAAkB,EAAE,GAAG,EAAE,CAAC,UAAU,EAAE;YACtC,oBAAoB,EAAE,CAAC,SAAS,EAAE,EAAE;gBAClC,qDAAqD;gBACrD,UAAU,CAAC,GAAG,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;gBACrC,OAAO,CAAC,KAAK,CAAC,sCAAsC,SAAS,YAAY,UAAU,CAAC,IAAI,GAAG,CAAC,CAAC;YAC/F,CAAC;YACD,kBAAkB,EAAE,IAAI;SACzB,CAAC,CAAC;QAEH,uCAAuC;QACvC,MAAM,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QAEhC,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,mDAAmD;IACnD,GAAG,CAAC,GAAG,CAAC,QAAQ,EAAE,KAAK,EAAE,GAAY,EAAE,GAAa,EAAE,EAAE;QACtD,wCAAwC;QACxC,MAAM,WAAW,GAAG,kBAAkB,CAAC,GAAG,CAAC,OAA4B,CAAC,CAAC;QAEzE,yCAAyC;QACzC,MAAM,SAAS,GAAG,GAAG,CAAC,OAAO,CAAC,gBAAgB,CAAuB,CAAC;QAEtE,IAAI,SAAS,EAAE,CAAC;YACd,6DAA6D;YAC7D,MAAM,SAAS,GAAG,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;YAE5C,IAAI,CAAC,SAAS,EAAE,CAAC;gBACf,kDAAkD;gBAClD,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;oBACnB,OAAO,EAAE,KAAK;oBACd,KAAK,EAAE;wBACL,IAAI,EAAE,CAAC,KAAK;wBACZ,OAAO,EAAE,0CAA0C;qBACpD;oBACD,EAAE,EAAE,IAAI;iBACT,CAAC,CAAC;gBACH,OAAO;YACT,CAAC;YAED,iCAAiC;YACjC,MAAM,cAAc,GAAG,iBAAiB,EAAE,CAAC;YAC3C,MAAM,OAAO,GAAG,cAAc,CAAC,kBAAkB,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;YAE1E,qCAAqC;YACrC,MAAM,cAAc,CAClB;gBACE,SAAS;gBACT,WAAW,EAAE,OAAO,CAAC,WAAW;gBAChC,MAAM,EAAE,OAAO,CAAC,MAAM;gBACtB,UAAU,EAAE,OAAO,CAAC,OAAO,CAAC,IAAI;gBAChC,gBAAgB,EAAE,OAAO,CAAC,OAAO,CAAC,UAAU;gBAC5C,WAAW,EAAE,OAAO,CAAC,OAAO,CAAC,KAAK;gBAClC,kBAAkB,EAAE,OAAO,CAAC,kBAAkB;aAC/C,EACD,KAAK,IAAI,EAAE;gBACT,MAAM,SAAS,CAAC,aAAa,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;YACpD,CAAC,CACF,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,mEAAmE;YACnE,IAAI,CAAC;gBACH,MAAM,SAAS,GAAG,MAAM,sBAAsB,EAAE,CAAC;gBACjD,MAAM,SAAS,CAAC,aAAa,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;YACpD,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO,CAAC,KAAK,CAAC,mCAAmC,EAAE,KAAK,CAAC,CAAC;gBAC1D,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;oBACnB,OAAO,EAAE,KAAK;oBACd,KAAK,EAAE;wBACL,IAAI,EAAE,CAAC,KAAK;wBACZ,OAAO,EAAE,iCAAiC;qBAC3C;oBACD,EAAE,EAAE,IAAI;iBACT,CAAC,CAAC;YACL,CAAC;QACH,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,iDAAiD;IACjD,GAAG,CAAC,MAAM,CAAC,QAAQ,EAAE,KAAK,EAAE,GAAY,EAAE,GAAa,EAAE,EAAE;QACzD,MAAM,SAAS,GAAG,GAAG,CAAC,OAAO,CAAC,gBAAgB,CAAuB,CAAC;QAEtE,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;gBACnB,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE;oBACL,IAAI,EAAE,CAAC,KAAK;oBACZ,OAAO,EAAE,gCAAgC;iBAC1C;gBACD,EAAE,EAAE,IAAI;aACT,CAAC,CAAC;YACH,OAAO;QACT,CAAC;QAED,kDAAkD;QAClD,MAAM,cAAc,GAAG,iBAAiB,EAAE,CAAC;QAC3C,cAAc,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;QACzC,uBAAuB,CAAC,SAAS,CAAC,CAAC;QAEnC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;IACzB,CAAC,CAAC,CAAC;IAEH,IAAI,UAAU,GAAyC,IAAI,CAAC;IAE5D,OAAO;QACL,GAAG;QACH,UAAU;QACV,KAAK,EAAE,KAAK,IAAI,EAAE;YAChB,yDAAyD;YACzD,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;gBAC7B,UAAU,GAAG,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE;oBACvC,wEAAwE;oBACxE,0EAA0E;oBAC1E,MAAM,cAAc,GAAG,MAAM,CAAC,gBAAgB,IAAI,0BAA0B,CAAC;oBAC7E,UAAW,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC;oBACvC,UAAW,CAAC,gBAAgB,GAAG,cAAc,CAAC;oBAC9C,UAAW,CAAC,cAAc,GAAG,cAAc,CAAC;oBAC5C,UAAW,CAAC,cAAc,GAAG,cAAc,CAAC;oBAE5C,OAAO,CAAC,KAAK,CAAC,mCAAmC,IAAI,IAAI,IAAI,EAAE,CAAC,CAAC;oBACjE,OAAO,CAAC,KAAK,CAAC,wBAAwB,IAAI,IAAI,IAAI,GAAG,QAAQ,EAAE,CAAC,CAAC;oBACjE,OAAO,CAAC,KAAK,CAAC,wBAAwB,IAAI,IAAI,IAAI,SAAS,CAAC,CAAC;oBAC7D,OAAO,CAAC,KAAK,CAAC,sEAAsE,CAAC,CAAC;oBACtF,OAAO,CAAC,KAAK,CAAC,0DAA0D,CAAC,CAAC;oBAC1E,OAAO,EAAE,CAAC;gBACZ,CAAC,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;QACL,CAAC;QACD,KAAK,EAAE,KAAK,IAAI,EAAE;YAChB,uBAAuB;YACvB,KAAK,MAAM,CAAC,SAAS,EAAE,SAAS,CAAC,IAAI,UAAU,EAAE,CAAC;gBAChD,IAAI,CAAC;oBACH,MAAM,SAAS,CAAC,KAAK,EAAE,CAAC;oBACxB,OAAO,CAAC,KAAK,CAAC,iCAAiC,SAAS,EAAE,CAAC,CAAC;gBAC9D,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACb,OAAO,CAAC,KAAK,CAAC,uCAAuC,SAAS,GAAG,EAAE,GAAG,CAAC,CAAC;gBAC1E,CAAC;YACH,CAAC;YACD,UAAU,CAAC,KAAK,EAAE,CAAC;YAEnB,IAAI,UAAU,EAAE,CAAC;gBACf,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;oBACrC,UAAW,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;wBACxB,IAAI,GAAG;4BAAE,MAAM,CAAC,GAAG,CAAC,CAAC;;4BAChB,OAAO,EAAE,CAAC;oBACjB,CAAC,CAAC,CAAC;gBACL,CAAC,CAAC,CAAC;YACL,CAAC;QACH,CAAC;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/transport/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,MAAM,aAAa,GAAG,OAAO,GAAG,MAAM,CAAC;AAE7C,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/transport/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,MAAM,aAAa,GAAG,OAAO,GAAG,MAAM,CAAC;AAE7C,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,sEAAsE;IACtE,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,aAAa,CAAC;IACpB,IAAI,EAAE,mBAAmB,CAAC;CAC3B;AAED,eAAO,MAAM,wBAAwB,EAAE,eAOtC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/transport/types.ts"],"names":[],"mappings":"AAAA;;GAEG;
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/transport/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAiBH,MAAM,CAAC,MAAM,wBAAwB,GAAoB;IACvD,IAAI,EAAE,OAAO;IACb,IAAI,EAAE;QACJ,IAAI,EAAE,IAAI;QACV,IAAI,EAAE,SAAS;QACf,QAAQ,EAAE,MAAM;KACjB;CACF,CAAC"}
|