mcp-proxy 5.12.0 → 5.12.2
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/README.md +71 -49
- package/dist/bin/{mcp-proxy.js → mcp-proxy.mjs} +44 -40
- package/dist/bin/mcp-proxy.mjs.map +1 -0
- package/dist/{index.d.ts → index.d.mts} +1 -1
- package/dist/{index.js → index.mjs} +517 -296
- package/dist/index.mjs.map +1 -0
- package/dist/{stdio-CfAxSAGj.js → stdio-DBuYn6eo.mjs} +11591 -9307
- package/dist/stdio-DBuYn6eo.mjs.map +1 -0
- package/jsr.json +1 -1
- package/package.json +20 -20
- package/src/InMemoryEventStore.test.ts +58 -50
- package/src/InMemoryEventStore.ts +2 -3
- package/src/authentication.test.ts +91 -29
- package/src/authentication.ts +12 -5
- package/src/bin/mcp-proxy.ts +2 -1
- package/src/proxyServer.test.ts +40 -22
- package/src/startHTTPServer.test.ts +41 -23
- package/src/startHTTPServer.ts +93 -52
- package/src/startStdioServer.test.ts +8 -5
- package/dist/bin/mcp-proxy.js.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/stdio-CfAxSAGj.js.map +0 -1
- /package/dist/bin/{mcp-proxy.d.ts → mcp-proxy.d.mts} +0 -0
package/README.md
CHANGED
|
@@ -56,7 +56,7 @@ npx mcp-proxy --port 8080 -- my-command -v
|
|
|
56
56
|
|
|
57
57
|
### Stateless Mode
|
|
58
58
|
|
|
59
|
-
By default, MCP Proxy maintains persistent sessions for HTTP streamable transport, where each client connection is associated with a server instance that stays alive for the duration of the session.
|
|
59
|
+
By default, MCP Proxy maintains persistent sessions for HTTP streamable transport, where each client connection is associated with a server instance that stays alive for the duration of the session.
|
|
60
60
|
|
|
61
61
|
Stateless mode (`--stateless`) changes this behavior:
|
|
62
62
|
|
|
@@ -94,11 +94,13 @@ MCP Proxy supports optional API key authentication to secure your endpoints. Whe
|
|
|
94
94
|
Authentication is disabled by default for backward compatibility. To enable it, provide an API key via:
|
|
95
95
|
|
|
96
96
|
**Command-line:**
|
|
97
|
+
|
|
97
98
|
```bash
|
|
98
99
|
npx mcp-proxy --port 8080 --apiKey "your-secret-key" tsx server.js
|
|
99
100
|
```
|
|
100
101
|
|
|
101
102
|
**Environment variable:**
|
|
103
|
+
|
|
102
104
|
```bash
|
|
103
105
|
export MCP_PROXY_API_KEY="your-secret-key"
|
|
104
106
|
npx mcp-proxy --port 8080 tsx server.js
|
|
@@ -111,28 +113,26 @@ Clients must include the API key in the `X-API-Key` header:
|
|
|
111
113
|
```typescript
|
|
112
114
|
// For streamable HTTP transport
|
|
113
115
|
const transport = new StreamableHTTPClientTransport(
|
|
114
|
-
new URL(
|
|
116
|
+
new URL("http://localhost:8080/mcp"),
|
|
115
117
|
{
|
|
116
118
|
headers: {
|
|
117
|
-
|
|
118
|
-
}
|
|
119
|
-
}
|
|
119
|
+
"X-API-Key": "your-secret-key",
|
|
120
|
+
},
|
|
121
|
+
},
|
|
120
122
|
);
|
|
121
123
|
|
|
122
124
|
// For SSE transport
|
|
123
|
-
const transport = new SSEClientTransport(
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
}
|
|
129
|
-
}
|
|
130
|
-
);
|
|
125
|
+
const transport = new SSEClientTransport(new URL("http://localhost:8080/sse"), {
|
|
126
|
+
headers: {
|
|
127
|
+
"X-API-Key": "your-secret-key",
|
|
128
|
+
},
|
|
129
|
+
});
|
|
131
130
|
```
|
|
132
131
|
|
|
133
132
|
#### Exempt Endpoints
|
|
134
133
|
|
|
135
134
|
The following endpoints do not require authentication:
|
|
135
|
+
|
|
136
136
|
- `/ping` - Health check endpoint
|
|
137
137
|
- `OPTIONS` requests - CORS preflight requests
|
|
138
138
|
|
|
@@ -150,6 +150,7 @@ MCP Proxy provides flexible CORS (Cross-Origin Resource Sharing) configuration t
|
|
|
150
150
|
#### Default Behavior
|
|
151
151
|
|
|
152
152
|
By default, CORS is enabled with the following settings:
|
|
153
|
+
|
|
153
154
|
- **Origin**: `*` (allow all origins)
|
|
154
155
|
- **Methods**: `GET, POST, OPTIONS`
|
|
155
156
|
- **Headers**: `Content-Type, Authorization, Accept, Mcp-Session-Id, Last-Event-Id`
|
|
@@ -159,24 +160,30 @@ By default, CORS is enabled with the following settings:
|
|
|
159
160
|
#### Basic Configuration
|
|
160
161
|
|
|
161
162
|
```typescript
|
|
162
|
-
import { startHTTPServer } from
|
|
163
|
+
import { startHTTPServer } from "mcp-proxy";
|
|
163
164
|
|
|
164
165
|
// Use default CORS settings (backward compatible)
|
|
165
166
|
await startHTTPServer({
|
|
166
|
-
createServer: async () => {
|
|
167
|
+
createServer: async () => {
|
|
168
|
+
/* ... */
|
|
169
|
+
},
|
|
167
170
|
port: 3000,
|
|
168
171
|
});
|
|
169
172
|
|
|
170
173
|
// Explicitly enable default CORS
|
|
171
174
|
await startHTTPServer({
|
|
172
|
-
createServer: async () => {
|
|
175
|
+
createServer: async () => {
|
|
176
|
+
/* ... */
|
|
177
|
+
},
|
|
173
178
|
port: 3000,
|
|
174
179
|
cors: true,
|
|
175
180
|
});
|
|
176
181
|
|
|
177
182
|
// Disable CORS completely
|
|
178
183
|
await startHTTPServer({
|
|
179
|
-
createServer: async () => {
|
|
184
|
+
createServer: async () => {
|
|
185
|
+
/* ... */
|
|
186
|
+
},
|
|
180
187
|
port: 3000,
|
|
181
188
|
cors: false,
|
|
182
189
|
});
|
|
@@ -187,44 +194,46 @@ await startHTTPServer({
|
|
|
187
194
|
For more control over CORS behavior, you can provide a detailed configuration:
|
|
188
195
|
|
|
189
196
|
```typescript
|
|
190
|
-
import { startHTTPServer, CorsOptions } from
|
|
197
|
+
import { startHTTPServer, CorsOptions } from "mcp-proxy";
|
|
191
198
|
|
|
192
199
|
const corsOptions: CorsOptions = {
|
|
193
200
|
// Allow specific origins
|
|
194
|
-
origin: [
|
|
195
|
-
|
|
201
|
+
origin: ["https://app.example.com", "https://admin.example.com"],
|
|
202
|
+
|
|
196
203
|
// Or use a function for dynamic origin validation
|
|
197
|
-
origin: (origin: string) => origin.endsWith(
|
|
198
|
-
|
|
204
|
+
origin: (origin: string) => origin.endsWith(".example.com"),
|
|
205
|
+
|
|
199
206
|
// Specify allowed methods
|
|
200
|
-
methods: [
|
|
201
|
-
|
|
207
|
+
methods: ["GET", "POST", "PUT", "DELETE", "OPTIONS"],
|
|
208
|
+
|
|
202
209
|
// Allow any headers (useful for browser clients with custom headers)
|
|
203
|
-
allowedHeaders:
|
|
204
|
-
|
|
210
|
+
allowedHeaders: "*",
|
|
211
|
+
|
|
205
212
|
// Or specify exact headers
|
|
206
213
|
allowedHeaders: [
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
+
"Content-Type",
|
|
215
|
+
"Authorization",
|
|
216
|
+
"Accept",
|
|
217
|
+
"Mcp-Session-Id",
|
|
218
|
+
"Last-Event-Id",
|
|
219
|
+
"X-Custom-Header",
|
|
220
|
+
"X-API-Key",
|
|
214
221
|
],
|
|
215
|
-
|
|
222
|
+
|
|
216
223
|
// Headers to expose to the client
|
|
217
|
-
exposedHeaders: [
|
|
218
|
-
|
|
224
|
+
exposedHeaders: ["Mcp-Session-Id", "X-Total-Count"],
|
|
225
|
+
|
|
219
226
|
// Allow credentials
|
|
220
227
|
credentials: true,
|
|
221
|
-
|
|
228
|
+
|
|
222
229
|
// Cache preflight requests for 24 hours
|
|
223
230
|
maxAge: 86400,
|
|
224
231
|
};
|
|
225
232
|
|
|
226
233
|
await startHTTPServer({
|
|
227
|
-
createServer: async () => {
|
|
234
|
+
createServer: async () => {
|
|
235
|
+
/* ... */
|
|
236
|
+
},
|
|
228
237
|
port: 3000,
|
|
229
238
|
cors: corsOptions,
|
|
230
239
|
});
|
|
@@ -233,36 +242,45 @@ await startHTTPServer({
|
|
|
233
242
|
#### Common Use Cases
|
|
234
243
|
|
|
235
244
|
**Allow any custom headers (solves browser CORS issues):**
|
|
245
|
+
|
|
236
246
|
```typescript
|
|
237
247
|
await startHTTPServer({
|
|
238
|
-
createServer: async () => {
|
|
248
|
+
createServer: async () => {
|
|
249
|
+
/* ... */
|
|
250
|
+
},
|
|
239
251
|
port: 3000,
|
|
240
252
|
cors: {
|
|
241
|
-
allowedHeaders:
|
|
253
|
+
allowedHeaders: "*", // Allows X-Custom-Header, X-API-Key, etc.
|
|
242
254
|
},
|
|
243
255
|
});
|
|
244
256
|
```
|
|
245
257
|
|
|
246
258
|
**Restrict to specific domains:**
|
|
259
|
+
|
|
247
260
|
```typescript
|
|
248
261
|
await startHTTPServer({
|
|
249
|
-
createServer: async () => {
|
|
262
|
+
createServer: async () => {
|
|
263
|
+
/* ... */
|
|
264
|
+
},
|
|
250
265
|
port: 3000,
|
|
251
266
|
cors: {
|
|
252
|
-
origin: [
|
|
253
|
-
allowedHeaders:
|
|
267
|
+
origin: ["https://myapp.com", "https://admin.myapp.com"],
|
|
268
|
+
allowedHeaders: "*",
|
|
254
269
|
},
|
|
255
270
|
});
|
|
256
271
|
```
|
|
257
272
|
|
|
258
273
|
**Development-friendly settings:**
|
|
274
|
+
|
|
259
275
|
```typescript
|
|
260
276
|
await startHTTPServer({
|
|
261
|
-
createServer: async () => {
|
|
277
|
+
createServer: async () => {
|
|
278
|
+
/* ... */
|
|
279
|
+
},
|
|
262
280
|
port: 3000,
|
|
263
281
|
cors: {
|
|
264
|
-
origin: [
|
|
265
|
-
allowedHeaders:
|
|
282
|
+
origin: ["http://localhost:3000", "http://localhost:5173"], // Common dev ports
|
|
283
|
+
allowedHeaders: "*",
|
|
266
284
|
credentials: true,
|
|
267
285
|
},
|
|
268
286
|
});
|
|
@@ -275,16 +293,20 @@ If you were using mcp-proxy 5.5.6 and want the same permissive behavior in 5.9.0
|
|
|
275
293
|
```typescript
|
|
276
294
|
// Old behavior (5.5.6) - automatic wildcard headers
|
|
277
295
|
await startHTTPServer({
|
|
278
|
-
createServer: async () => {
|
|
296
|
+
createServer: async () => {
|
|
297
|
+
/* ... */
|
|
298
|
+
},
|
|
279
299
|
port: 3000,
|
|
280
300
|
});
|
|
281
301
|
|
|
282
302
|
// New equivalent (5.9.0+) - explicit wildcard headers
|
|
283
303
|
await startHTTPServer({
|
|
284
|
-
createServer: async () => {
|
|
304
|
+
createServer: async () => {
|
|
305
|
+
/* ... */
|
|
306
|
+
},
|
|
285
307
|
port: 3000,
|
|
286
308
|
cors: {
|
|
287
|
-
allowedHeaders:
|
|
309
|
+
allowedHeaders: "*",
|
|
288
310
|
},
|
|
289
311
|
});
|
|
290
312
|
```
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import {
|
|
2
|
+
import { D as __toESM, E as __commonJSMin, a as startHTTPServer, i as Client, n as serializeMessage, o as proxyServer, r as Server, t as ReadBuffer, w as InMemoryEventStore } from "../stdio-DBuYn6eo.mjs";
|
|
3
3
|
import { createRequire } from "node:module";
|
|
4
4
|
import { basename, dirname, extname, join, normalize, relative, resolve } from "path";
|
|
5
5
|
import { format, inspect } from "util";
|
|
6
|
-
import { fileURLToPath } from "url";
|
|
7
6
|
import { setTimeout as setTimeout$1 } from "node:timers";
|
|
8
7
|
import util from "node:util";
|
|
9
8
|
import { notStrictEqual, strictEqual } from "assert";
|
|
10
9
|
import { readFileSync, readdirSync, statSync, writeFile } from "fs";
|
|
10
|
+
import { fileURLToPath } from "url";
|
|
11
11
|
import { readFileSync as readFileSync$1, readdirSync as readdirSync$1 } from "node:fs";
|
|
12
12
|
import { spawn } from "node:child_process";
|
|
13
13
|
import { PassThrough, Transform } from "node:stream";
|
|
@@ -39,8 +39,8 @@ function createParser(callbacks) {
|
|
|
39
39
|
}
|
|
40
40
|
const fieldSeparatorIndex = line.indexOf(":");
|
|
41
41
|
if (fieldSeparatorIndex !== -1) {
|
|
42
|
-
const field = line.slice(0, fieldSeparatorIndex), offset = line[fieldSeparatorIndex + 1] === " " ? 2 : 1
|
|
43
|
-
processField(field,
|
|
42
|
+
const field = line.slice(0, fieldSeparatorIndex), offset = line[fieldSeparatorIndex + 1] === " " ? 2 : 1;
|
|
43
|
+
processField(field, line.slice(fieldSeparatorIndex + offset), line);
|
|
44
44
|
return;
|
|
45
45
|
}
|
|
46
46
|
processField(line, "", line);
|
|
@@ -110,7 +110,7 @@ function splitLines(chunk) {
|
|
|
110
110
|
}
|
|
111
111
|
|
|
112
112
|
//#endregion
|
|
113
|
-
//#region node_modules/.pnpm/eventsource@4.
|
|
113
|
+
//#region node_modules/.pnpm/eventsource@4.1.0/node_modules/eventsource/dist/index.js
|
|
114
114
|
var ErrorEvent = class extends Event {
|
|
115
115
|
/**
|
|
116
116
|
* Constructs a new `ErrorEvent` instance. This is typically not called directly,
|
|
@@ -336,6 +336,12 @@ _readyState = /* @__PURE__ */ new WeakMap(), _url = /* @__PURE__ */ new WeakMap(
|
|
|
336
336
|
});
|
|
337
337
|
(_a$1 = __privateGet(this, _onError)) == null || _a$1.call(this, errorEvent), this.dispatchEvent(errorEvent), __privateSet(this, _reconnectTimer, setTimeout(__privateGet(this, _reconnect), __privateGet(this, _reconnectInterval)));
|
|
338
338
|
}, _reconnect = /* @__PURE__ */ new WeakMap(), EventSource.CONNECTING = 0, EventSource.OPEN = 1, EventSource.CLOSED = 2;
|
|
339
|
+
Object.defineProperty(EventSource, Symbol.for("eventsource.supports-fetch-override"), {
|
|
340
|
+
value: !0,
|
|
341
|
+
writable: !1,
|
|
342
|
+
configurable: !1,
|
|
343
|
+
enumerable: !1
|
|
344
|
+
});
|
|
339
345
|
function getBaseURL() {
|
|
340
346
|
const doc = "document" in globalThis ? globalThis.document : void 0;
|
|
341
347
|
return doc && typeof doc == "object" && "baseURI" in doc && typeof doc.baseURI == "string" ? doc.baseURI : void 0;
|
|
@@ -596,11 +602,11 @@ function eastAsianWidth(codePoint, { ambiguousAsWide = false } = {}) {
|
|
|
596
602
|
|
|
597
603
|
//#endregion
|
|
598
604
|
//#region node_modules/.pnpm/emoji-regex@10.4.0/node_modules/emoji-regex/index.js
|
|
599
|
-
var require_emoji_regex = /* @__PURE__ */
|
|
605
|
+
var require_emoji_regex = /* @__PURE__ */ __commonJSMin(((exports, module) => {
|
|
600
606
|
module.exports = () => {
|
|
601
607
|
return /[#*0-9]\uFE0F?\u20E3|[\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u231A\u231B\u2328\u23CF\u23ED-\u23EF\u23F1\u23F2\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB\u25FC\u25FE\u2600-\u2604\u260E\u2611\u2614\u2615\u2618\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u2648-\u2653\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u267F\u2692\u2694-\u2697\u2699\u269B\u269C\u26A0\u26A7\u26AA\u26B0\u26B1\u26BD\u26BE\u26C4\u26C8\u26CF\u26D1\u26E9\u26F0-\u26F5\u26F7\u26F8\u26FA\u2702\u2708\u2709\u270F\u2712\u2714\u2716\u271D\u2721\u2733\u2734\u2744\u2747\u2757\u2763\u27A1\u2934\u2935\u2B05-\u2B07\u2B1B\u2B1C\u2B55\u3030\u303D\u3297\u3299]\uFE0F?|[\u261D\u270C\u270D](?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?|[\u270A\u270B](?:\uD83C[\uDFFB-\uDFFF])?|[\u23E9-\u23EC\u23F0\u23F3\u25FD\u2693\u26A1\u26AB\u26C5\u26CE\u26D4\u26EA\u26FD\u2705\u2728\u274C\u274E\u2753-\u2755\u2795-\u2797\u27B0\u27BF\u2B50]|\u26D3\uFE0F?(?:\u200D\uD83D\uDCA5)?|\u26F9(?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?(?:\u200D[\u2640\u2642]\uFE0F?)?|\u2764\uFE0F?(?:\u200D(?:\uD83D\uDD25|\uD83E\uDE79))?|\uD83C(?:[\uDC04\uDD70\uDD71\uDD7E\uDD7F\uDE02\uDE37\uDF21\uDF24-\uDF2C\uDF36\uDF7D\uDF96\uDF97\uDF99-\uDF9B\uDF9E\uDF9F\uDFCD\uDFCE\uDFD4-\uDFDF\uDFF5\uDFF7]\uFE0F?|[\uDF85\uDFC2\uDFC7](?:\uD83C[\uDFFB-\uDFFF])?|[\uDFC4\uDFCA](?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDFCB\uDFCC](?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDCCF\uDD8E\uDD91-\uDD9A\uDE01\uDE1A\uDE2F\uDE32-\uDE36\uDE38-\uDE3A\uDE50\uDE51\uDF00-\uDF20\uDF2D-\uDF35\uDF37-\uDF43\uDF45-\uDF4A\uDF4C-\uDF7C\uDF7E-\uDF84\uDF86-\uDF93\uDFA0-\uDFC1\uDFC5\uDFC6\uDFC8\uDFC9\uDFCF-\uDFD3\uDFE0-\uDFF0\uDFF8-\uDFFF]|\uDDE6\uD83C[\uDDE8-\uDDEC\uDDEE\uDDF1\uDDF2\uDDF4\uDDF6-\uDDFA\uDDFC\uDDFD\uDDFF]|\uDDE7\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEF\uDDF1-\uDDF4\uDDF6-\uDDF9\uDDFB\uDDFC\uDDFE\uDDFF]|\uDDE8\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDEE\uDDF0-\uDDF7\uDDFA-\uDDFF]|\uDDE9\uD83C[\uDDEA\uDDEC\uDDEF\uDDF0\uDDF2\uDDF4\uDDFF]|\uDDEA\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDED\uDDF7-\uDDFA]|\uDDEB\uD83C[\uDDEE-\uDDF0\uDDF2\uDDF4\uDDF7]|\uDDEC\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEE\uDDF1-\uDDF3\uDDF5-\uDDFA\uDDFC\uDDFE]|\uDDED\uD83C[\uDDF0\uDDF2\uDDF3\uDDF7\uDDF9\uDDFA]|\uDDEE\uD83C[\uDDE8-\uDDEA\uDDF1-\uDDF4\uDDF6-\uDDF9]|\uDDEF\uD83C[\uDDEA\uDDF2\uDDF4\uDDF5]|\uDDF0\uD83C[\uDDEA\uDDEC-\uDDEE\uDDF2\uDDF3\uDDF5\uDDF7\uDDFC\uDDFE\uDDFF]|\uDDF1\uD83C[\uDDE6-\uDDE8\uDDEE\uDDF0\uDDF7-\uDDFB\uDDFE]|\uDDF2\uD83C[\uDDE6\uDDE8-\uDDED\uDDF0-\uDDFF]|\uDDF3\uD83C[\uDDE6\uDDE8\uDDEA-\uDDEC\uDDEE\uDDF1\uDDF4\uDDF5\uDDF7\uDDFA\uDDFF]|\uDDF4\uD83C\uDDF2|\uDDF5\uD83C[\uDDE6\uDDEA-\uDDED\uDDF0-\uDDF3\uDDF7-\uDDF9\uDDFC\uDDFE]|\uDDF6\uD83C\uDDE6|\uDDF7\uD83C[\uDDEA\uDDF4\uDDF8\uDDFA\uDDFC]|\uDDF8\uD83C[\uDDE6-\uDDEA\uDDEC-\uDDF4\uDDF7-\uDDF9\uDDFB\uDDFD-\uDDFF]|\uDDF9\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDED\uDDEF-\uDDF4\uDDF7\uDDF9\uDDFB\uDDFC\uDDFF]|\uDDFA\uD83C[\uDDE6\uDDEC\uDDF2\uDDF3\uDDF8\uDDFE\uDDFF]|\uDDFB\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDEE\uDDF3\uDDFA]|\uDDFC\uD83C[\uDDEB\uDDF8]|\uDDFD\uD83C\uDDF0|\uDDFE\uD83C[\uDDEA\uDDF9]|\uDDFF\uD83C[\uDDE6\uDDF2\uDDFC]|\uDF44(?:\u200D\uD83D\uDFEB)?|\uDF4B(?:\u200D\uD83D\uDFE9)?|\uDFC3(?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D(?:[\u2640\u2642]\uFE0F?(?:\u200D\u27A1\uFE0F?)?|\u27A1\uFE0F?))?|\uDFF3\uFE0F?(?:\u200D(?:\u26A7\uFE0F?|\uD83C\uDF08))?|\uDFF4(?:\u200D\u2620\uFE0F?|\uDB40\uDC67\uDB40\uDC62\uDB40(?:\uDC65\uDB40\uDC6E\uDB40\uDC67|\uDC73\uDB40\uDC63\uDB40\uDC74|\uDC77\uDB40\uDC6C\uDB40\uDC73)\uDB40\uDC7F)?)|\uD83D(?:[\uDC3F\uDCFD\uDD49\uDD4A\uDD6F\uDD70\uDD73\uDD76-\uDD79\uDD87\uDD8A-\uDD8D\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDE8\uDDEF\uDDF3\uDDFA\uDECB\uDECD-\uDECF\uDEE0-\uDEE5\uDEE9\uDEF0\uDEF3]\uFE0F?|[\uDC42\uDC43\uDC46-\uDC50\uDC66\uDC67\uDC6B-\uDC6D\uDC72\uDC74-\uDC76\uDC78\uDC7C\uDC83\uDC85\uDC8F\uDC91\uDCAA\uDD7A\uDD95\uDD96\uDE4C\uDE4F\uDEC0\uDECC](?:\uD83C[\uDFFB-\uDFFF])?|[\uDC6E\uDC70\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4\uDEB5](?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDD74\uDD90](?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?|[\uDC00-\uDC07\uDC09-\uDC14\uDC16-\uDC25\uDC27-\uDC3A\uDC3C-\uDC3E\uDC40\uDC44\uDC45\uDC51-\uDC65\uDC6A\uDC79-\uDC7B\uDC7D-\uDC80\uDC84\uDC88-\uDC8E\uDC90\uDC92-\uDCA9\uDCAB-\uDCFC\uDCFF-\uDD3D\uDD4B-\uDD4E\uDD50-\uDD67\uDDA4\uDDFB-\uDE2D\uDE2F-\uDE34\uDE37-\uDE41\uDE43\uDE44\uDE48-\uDE4A\uDE80-\uDEA2\uDEA4-\uDEB3\uDEB7-\uDEBF\uDEC1-\uDEC5\uDED0-\uDED2\uDED5-\uDED7\uDEDC-\uDEDF\uDEEB\uDEEC\uDEF4-\uDEFC\uDFE0-\uDFEB\uDFF0]|\uDC08(?:\u200D\u2B1B)?|\uDC15(?:\u200D\uD83E\uDDBA)?|\uDC26(?:\u200D(?:\u2B1B|\uD83D\uDD25))?|\uDC3B(?:\u200D\u2744\uFE0F?)?|\uDC41\uFE0F?(?:\u200D\uD83D\uDDE8\uFE0F?)?|\uDC68(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDC68\uDC69]\u200D\uD83D(?:\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?)|[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?)|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]))|\uD83C(?:\uDFFB(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFC-\uDFFF])))?|\uDFFC(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFB\uDFFD-\uDFFF])))?|\uDFFD(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])))?|\uDFFE(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFB-\uDFFD\uDFFF])))?|\uDFFF(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFB-\uDFFE])))?))?|\uDC69(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?[\uDC68\uDC69]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?|\uDC69\u200D\uD83D(?:\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?))|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]))|\uD83C(?:\uDFFB(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFC-\uDFFF])))?|\uDFFC(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB\uDFFD-\uDFFF])))?|\uDFFD(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])))?|\uDFFE(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB-\uDFFD\uDFFF])))?|\uDFFF(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB-\uDFFE])))?))?|\uDC6F(?:\u200D[\u2640\u2642]\uFE0F?)?|\uDD75(?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?(?:\u200D[\u2640\u2642]\uFE0F?)?|\uDE2E(?:\u200D\uD83D\uDCA8)?|\uDE35(?:\u200D\uD83D\uDCAB)?|\uDE36(?:\u200D\uD83C\uDF2B\uFE0F?)?|\uDE42(?:\u200D[\u2194\u2195]\uFE0F?)?|\uDEB6(?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D(?:[\u2640\u2642]\uFE0F?(?:\u200D\u27A1\uFE0F?)?|\u27A1\uFE0F?))?)|\uD83E(?:[\uDD0C\uDD0F\uDD18-\uDD1F\uDD30-\uDD34\uDD36\uDD77\uDDB5\uDDB6\uDDBB\uDDD2\uDDD3\uDDD5\uDEC3-\uDEC5\uDEF0\uDEF2-\uDEF8](?:\uD83C[\uDFFB-\uDFFF])?|[\uDD26\uDD35\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD\uDDCF\uDDD4\uDDD6-\uDDDD](?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDDDE\uDDDF](?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDD0D\uDD0E\uDD10-\uDD17\uDD20-\uDD25\uDD27-\uDD2F\uDD3A\uDD3F-\uDD45\uDD47-\uDD76\uDD78-\uDDB4\uDDB7\uDDBA\uDDBC-\uDDCC\uDDD0\uDDE0-\uDDFF\uDE70-\uDE7C\uDE80-\uDE89\uDE8F-\uDEC2\uDEC6\uDECE-\uDEDC\uDEDF-\uDEE9]|\uDD3C(?:\u200D[\u2640\u2642]\uFE0F?|\uD83C[\uDFFB-\uDFFF])?|\uDDCE(?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D(?:[\u2640\u2642]\uFE0F?(?:\u200D\u27A1\uFE0F?)?|\u27A1\uFE0F?))?|\uDDD1(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83E\uDDD1|\uDDD1\u200D\uD83E\uDDD2(?:\u200D\uD83E\uDDD2)?|\uDDD2(?:\u200D\uD83E\uDDD2)?))|\uD83C(?:\uDFFB(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFC-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF])))?|\uDFFC(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB\uDFFD-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF])))?|\uDFFD(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF])))?|\uDFFE(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB-\uDFFD\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF])))?|\uDFFF(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB-\uDFFE]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF])))?))?|\uDEF1(?:\uD83C(?:\uDFFB(?:\u200D\uD83E\uDEF2\uD83C[\uDFFC-\uDFFF])?|\uDFFC(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB\uDFFD-\uDFFF])?|\uDFFD(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])?|\uDFFE(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB-\uDFFD\uDFFF])?|\uDFFF(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB-\uDFFE])?))?)/g;
|
|
602
608
|
};
|
|
603
|
-
})
|
|
609
|
+
}));
|
|
604
610
|
|
|
605
611
|
//#endregion
|
|
606
612
|
//#region node_modules/.pnpm/string-width@7.2.0/node_modules/string-width/index.js
|
|
@@ -1038,6 +1044,11 @@ var DefaultValuesForTypeKey;
|
|
|
1038
1044
|
|
|
1039
1045
|
//#endregion
|
|
1040
1046
|
//#region node_modules/.pnpm/yargs-parser@22.0.0/node_modules/yargs-parser/build/lib/yargs-parser.js
|
|
1047
|
+
/**
|
|
1048
|
+
* @license
|
|
1049
|
+
* Copyright (c) 2016, Contributors
|
|
1050
|
+
* SPDX-License-Identifier: ISC
|
|
1051
|
+
*/
|
|
1041
1052
|
let mixin;
|
|
1042
1053
|
var YargsParser = class {
|
|
1043
1054
|
constructor(_mixin) {
|
|
@@ -1355,18 +1366,14 @@ var YargsParser = class {
|
|
|
1355
1366
|
return i;
|
|
1356
1367
|
}
|
|
1357
1368
|
function setArg(key, val, shouldStripQuotes = inputIsString) {
|
|
1358
|
-
if (/-/.test(key) && configuration["camel-case-expansion"]) {
|
|
1359
|
-
|
|
1360
|
-
|
|
1361
|
-
}).join(".");
|
|
1362
|
-
addNewAlias(key, alias);
|
|
1363
|
-
}
|
|
1369
|
+
if (/-/.test(key) && configuration["camel-case-expansion"]) addNewAlias(key, key.split(".").map(function(prop) {
|
|
1370
|
+
return camelCase(prop);
|
|
1371
|
+
}).join("."));
|
|
1364
1372
|
const value = processValue(key, val, shouldStripQuotes);
|
|
1365
1373
|
const splitKey = key.split(".");
|
|
1366
1374
|
setKey(argv$1, splitKey, value);
|
|
1367
1375
|
if (flags.aliases[key]) flags.aliases[key].forEach(function(x) {
|
|
1368
|
-
|
|
1369
|
-
setKey(argv$1, keyProperties, value);
|
|
1376
|
+
setKey(argv$1, x.split("."), value);
|
|
1370
1377
|
});
|
|
1371
1378
|
if (splitKey.length > 1 && configuration["dot-notation"]) (flags.aliases[splitKey[0]] || []).forEach(function(x) {
|
|
1372
1379
|
let keyProperties = x.split(".");
|
|
@@ -1918,7 +1925,7 @@ var y18n_default = y18n$1;
|
|
|
1918
1925
|
|
|
1919
1926
|
//#endregion
|
|
1920
1927
|
//#region node_modules/.pnpm/get-caller-file@2.0.5/node_modules/get-caller-file/index.js
|
|
1921
|
-
var require_get_caller_file = /* @__PURE__ */
|
|
1928
|
+
var require_get_caller_file = /* @__PURE__ */ __commonJSMin(((exports, module) => {
|
|
1922
1929
|
module.exports = function getCallerFile$1(position) {
|
|
1923
1930
|
if (position === void 0) position = 2;
|
|
1924
1931
|
if (position >= Error.stackTraceLimit) throw new TypeError("getCallerFile(position) requires position be less then Error.stackTraceLimit but position was: `" + position + "` and Error.stackTraceLimit was: `" + Error.stackTraceLimit + "`");
|
|
@@ -1930,7 +1937,7 @@ var require_get_caller_file = /* @__PURE__ */ __commonJS({ "node_modules/.pnpm/g
|
|
|
1930
1937
|
Error.prepareStackTrace = oldPrepareStackTrace;
|
|
1931
1938
|
if (stack !== null && typeof stack === "object") return stack[position] ? stack[position].getFileName() : void 0;
|
|
1932
1939
|
};
|
|
1933
|
-
})
|
|
1940
|
+
}));
|
|
1934
1941
|
|
|
1935
1942
|
//#endregion
|
|
1936
1943
|
//#region node_modules/.pnpm/yargs@18.0.0/node_modules/yargs/lib/platform-shims/esm.mjs
|
|
@@ -2076,15 +2083,13 @@ function argsert(arg1, arg2, arg3) {
|
|
|
2076
2083
|
const totalCommands = parsed.demanded.length + parsed.optional.length;
|
|
2077
2084
|
if (length > totalCommands) throw new YError(`Too many arguments provided. Expected max ${totalCommands} but received ${length}.`);
|
|
2078
2085
|
parsed.demanded.forEach((demanded) => {
|
|
2079
|
-
const
|
|
2080
|
-
const observedType = guessType(arg);
|
|
2086
|
+
const observedType = guessType(args.shift());
|
|
2081
2087
|
if (demanded.cmd.filter((type) => type === observedType || type === "*").length === 0) argumentTypeError(observedType, demanded.cmd, position);
|
|
2082
2088
|
position += 1;
|
|
2083
2089
|
});
|
|
2084
2090
|
parsed.optional.forEach((optional) => {
|
|
2085
2091
|
if (args.length === 0) return;
|
|
2086
|
-
const
|
|
2087
|
-
const observedType = guessType(arg);
|
|
2092
|
+
const observedType = guessType(args.shift());
|
|
2088
2093
|
if (optional.cmd.filter((type) => type === observedType || type === "*").length === 0) argumentTypeError(observedType, optional.cmd, position);
|
|
2089
2094
|
position += 1;
|
|
2090
2095
|
});
|
|
@@ -2781,27 +2786,25 @@ function usage(yargs, shim$2) {
|
|
|
2781
2786
|
addUngroupedKeys(keys, options.alias, groups, defaultGroup);
|
|
2782
2787
|
const isLongSwitch = (sw) => /^--/.test(getText(sw));
|
|
2783
2788
|
const displayedGroups = Object.keys(groups).filter((groupName) => groups[groupName].length > 0).map((groupName) => {
|
|
2784
|
-
const normalizedKeys = groups[groupName].filter(filterHiddenOptions).map((key) => {
|
|
2785
|
-
if (aliasKeys.includes(key)) return key;
|
|
2786
|
-
for (let i = 0, aliasKey; (aliasKey = aliasKeys[i]) !== void 0; i++) if ((options.alias[aliasKey] || []).includes(key)) return aliasKey;
|
|
2787
|
-
return key;
|
|
2788
|
-
});
|
|
2789
2789
|
return {
|
|
2790
2790
|
groupName,
|
|
2791
|
-
normalizedKeys
|
|
2791
|
+
normalizedKeys: groups[groupName].filter(filterHiddenOptions).map((key) => {
|
|
2792
|
+
if (aliasKeys.includes(key)) return key;
|
|
2793
|
+
for (let i = 0, aliasKey; (aliasKey = aliasKeys[i]) !== void 0; i++) if ((options.alias[aliasKey] || []).includes(key)) return aliasKey;
|
|
2794
|
+
return key;
|
|
2795
|
+
})
|
|
2792
2796
|
};
|
|
2793
2797
|
}).filter(({ normalizedKeys }) => normalizedKeys.length > 0).map(({ groupName, normalizedKeys }) => {
|
|
2794
|
-
const switches = normalizedKeys.reduce((acc, key) => {
|
|
2795
|
-
acc[key] = [key].concat(options.alias[key] || []).map((sw) => {
|
|
2796
|
-
if (groupName === self.getPositionalGroupName()) return sw;
|
|
2797
|
-
else return (/^[0-9]$/.test(sw) ? options.boolean.includes(key) ? "-" : "--" : sw.length > 1 ? "--" : "-") + sw;
|
|
2798
|
-
}).sort((sw1, sw2) => isLongSwitch(sw1) === isLongSwitch(sw2) ? 0 : isLongSwitch(sw1) ? 1 : -1).join(", ");
|
|
2799
|
-
return acc;
|
|
2800
|
-
}, {});
|
|
2801
2798
|
return {
|
|
2802
2799
|
groupName,
|
|
2803
2800
|
normalizedKeys,
|
|
2804
|
-
switches
|
|
2801
|
+
switches: normalizedKeys.reduce((acc, key) => {
|
|
2802
|
+
acc[key] = [key].concat(options.alias[key] || []).map((sw) => {
|
|
2803
|
+
if (groupName === self.getPositionalGroupName()) return sw;
|
|
2804
|
+
else return (/^[0-9]$/.test(sw) ? options.boolean.includes(key) ? "-" : "--" : sw.length > 1 ? "--" : "-") + sw;
|
|
2805
|
+
}).sort((sw1, sw2) => isLongSwitch(sw1) === isLongSwitch(sw2) ? 0 : isLongSwitch(sw1) ? 1 : -1).join(", ");
|
|
2806
|
+
return acc;
|
|
2807
|
+
}, {})
|
|
2805
2808
|
};
|
|
2806
2809
|
});
|
|
2807
2810
|
if (displayedGroups.filter(({ groupName }) => groupName !== self.getPositionalGroupName()).some(({ normalizedKeys, switches }) => !normalizedKeys.every((key) => isLongSwitch(switches[key])))) displayedGroups.filter(({ groupName }) => groupName !== self.getPositionalGroupName()).forEach(({ normalizedKeys, switches }) => {
|
|
@@ -3748,8 +3751,7 @@ var YargsInstance = class {
|
|
|
3748
3751
|
__classPrivateFieldGet(this, _YargsInstance_options, "f").key[coerceKey] = true;
|
|
3749
3752
|
__classPrivateFieldGet(this, _YargsInstance_globalMiddleware, "f").addCoerceMiddleware((argv$1, yargs) => {
|
|
3750
3753
|
var _a$1;
|
|
3751
|
-
const
|
|
3752
|
-
const argvKeys = [coerceKey, ...coerceKeyAliases].filter((key) => Object.prototype.hasOwnProperty.call(argv$1, key));
|
|
3754
|
+
const argvKeys = [coerceKey, ...(_a$1 = yargs.getAliases()[coerceKey]) !== null && _a$1 !== void 0 ? _a$1 : []].filter((key) => Object.prototype.hasOwnProperty.call(argv$1, key));
|
|
3753
3755
|
if (argvKeys.length === 0) return argv$1;
|
|
3754
3756
|
return maybeAsyncResult(() => {
|
|
3755
3757
|
return value(argv$1[argvKeys[0]]);
|
|
@@ -4872,6 +4874,9 @@ var JSONFilterTransform = class extends Transform {
|
|
|
4872
4874
|
//#endregion
|
|
4873
4875
|
//#region src/StdioClientTransport.ts
|
|
4874
4876
|
/**
|
|
4877
|
+
* Forked from https://github.com/modelcontextprotocol/typescript-sdk/blob/a1608a6513d18eb965266286904760f830de96fe/src/client/stdio.ts
|
|
4878
|
+
*/
|
|
4879
|
+
/**
|
|
4875
4880
|
* Client transport for stdio: this will connect to a server by spawning a process and communicating with it over stdin/stdout.
|
|
4876
4881
|
*
|
|
4877
4882
|
* This transport is only available in Node.js environments.
|
|
@@ -5140,9 +5145,8 @@ const createGracefulShutdown = ({ server, timeout }) => {
|
|
|
5140
5145
|
};
|
|
5141
5146
|
const main = async () => {
|
|
5142
5147
|
try {
|
|
5143
|
-
const server = await proxy();
|
|
5144
5148
|
createGracefulShutdown({
|
|
5145
|
-
server,
|
|
5149
|
+
server: await proxy(),
|
|
5146
5150
|
timeout: argv.gracefulShutdownTimeout
|
|
5147
5151
|
});
|
|
5148
5152
|
} catch (error) {
|
|
@@ -5156,4 +5160,4 @@ await main();
|
|
|
5156
5160
|
|
|
5157
5161
|
//#endregion
|
|
5158
5162
|
export { };
|
|
5159
|
-
//# sourceMappingURL=mcp-proxy.
|
|
5163
|
+
//# sourceMappingURL=mcp-proxy.mjs.map
|