@topolo/mcp 0.11.3 → 0.11.5
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/http.js +667 -220
- package/dist/index.js +33 -11
- package/package.json +3 -3
package/dist/http.js
CHANGED
|
@@ -28,9 +28,113 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
|
|
|
28
28
|
mod
|
|
29
29
|
));
|
|
30
30
|
|
|
31
|
-
//
|
|
31
|
+
// node_modules/content-type/index.js
|
|
32
|
+
var require_content_type = __commonJS({
|
|
33
|
+
"node_modules/content-type/index.js"(exports) {
|
|
34
|
+
"use strict";
|
|
35
|
+
var PARAM_REGEXP = /; *([!#$%&'*+.^_`|~0-9A-Za-z-]+) *= *("(?:[\u000b\u0020\u0021\u0023-\u005b\u005d-\u007e\u0080-\u00ff]|\\[\u000b\u0020-\u00ff])*"|[!#$%&'*+.^_`|~0-9A-Za-z-]+) */g;
|
|
36
|
+
var TEXT_REGEXP = /^[\u000b\u0020-\u007e\u0080-\u00ff]+$/;
|
|
37
|
+
var TOKEN_REGEXP = /^[!#$%&'*+.^_`|~0-9A-Za-z-]+$/;
|
|
38
|
+
var QESC_REGEXP = /\\([\u000b\u0020-\u00ff])/g;
|
|
39
|
+
var QUOTE_REGEXP = /([\\"])/g;
|
|
40
|
+
var TYPE_REGEXP = /^[!#$%&'*+.^_`|~0-9A-Za-z-]+\/[!#$%&'*+.^_`|~0-9A-Za-z-]+$/;
|
|
41
|
+
exports.format = format;
|
|
42
|
+
exports.parse = parse3;
|
|
43
|
+
function format(obj) {
|
|
44
|
+
if (!obj || typeof obj !== "object") {
|
|
45
|
+
throw new TypeError("argument obj is required");
|
|
46
|
+
}
|
|
47
|
+
var parameters = obj.parameters;
|
|
48
|
+
var type = obj.type;
|
|
49
|
+
if (!type || !TYPE_REGEXP.test(type)) {
|
|
50
|
+
throw new TypeError("invalid type");
|
|
51
|
+
}
|
|
52
|
+
var string3 = type;
|
|
53
|
+
if (parameters && typeof parameters === "object") {
|
|
54
|
+
var param;
|
|
55
|
+
var params = Object.keys(parameters).sort();
|
|
56
|
+
for (var i = 0; i < params.length; i++) {
|
|
57
|
+
param = params[i];
|
|
58
|
+
if (!TOKEN_REGEXP.test(param)) {
|
|
59
|
+
throw new TypeError("invalid parameter name");
|
|
60
|
+
}
|
|
61
|
+
string3 += "; " + param + "=" + qstring(parameters[param]);
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
return string3;
|
|
65
|
+
}
|
|
66
|
+
function parse3(string3) {
|
|
67
|
+
if (!string3) {
|
|
68
|
+
throw new TypeError("argument string is required");
|
|
69
|
+
}
|
|
70
|
+
var header = typeof string3 === "object" ? getcontenttype(string3) : string3;
|
|
71
|
+
if (typeof header !== "string") {
|
|
72
|
+
throw new TypeError("argument string is required to be a string");
|
|
73
|
+
}
|
|
74
|
+
var index = header.indexOf(";");
|
|
75
|
+
var type = index !== -1 ? header.slice(0, index).trim() : header.trim();
|
|
76
|
+
if (!TYPE_REGEXP.test(type)) {
|
|
77
|
+
throw new TypeError("invalid media type");
|
|
78
|
+
}
|
|
79
|
+
var obj = new ContentType(type.toLowerCase());
|
|
80
|
+
if (index !== -1) {
|
|
81
|
+
var key;
|
|
82
|
+
var match;
|
|
83
|
+
var value;
|
|
84
|
+
PARAM_REGEXP.lastIndex = index;
|
|
85
|
+
while (match = PARAM_REGEXP.exec(header)) {
|
|
86
|
+
if (match.index !== index) {
|
|
87
|
+
throw new TypeError("invalid parameter format");
|
|
88
|
+
}
|
|
89
|
+
index += match[0].length;
|
|
90
|
+
key = match[1].toLowerCase();
|
|
91
|
+
value = match[2];
|
|
92
|
+
if (value.charCodeAt(0) === 34) {
|
|
93
|
+
value = value.slice(1, -1);
|
|
94
|
+
if (value.indexOf("\\") !== -1) {
|
|
95
|
+
value = value.replace(QESC_REGEXP, "$1");
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
obj.parameters[key] = value;
|
|
99
|
+
}
|
|
100
|
+
if (index !== header.length) {
|
|
101
|
+
throw new TypeError("invalid parameter format");
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
return obj;
|
|
105
|
+
}
|
|
106
|
+
function getcontenttype(obj) {
|
|
107
|
+
var header;
|
|
108
|
+
if (typeof obj.getHeader === "function") {
|
|
109
|
+
header = obj.getHeader("content-type");
|
|
110
|
+
} else if (typeof obj.headers === "object") {
|
|
111
|
+
header = obj.headers && obj.headers["content-type"];
|
|
112
|
+
}
|
|
113
|
+
if (typeof header !== "string") {
|
|
114
|
+
throw new TypeError("content-type header is missing from object");
|
|
115
|
+
}
|
|
116
|
+
return header;
|
|
117
|
+
}
|
|
118
|
+
function qstring(val) {
|
|
119
|
+
var str = String(val);
|
|
120
|
+
if (TOKEN_REGEXP.test(str)) {
|
|
121
|
+
return str;
|
|
122
|
+
}
|
|
123
|
+
if (str.length > 0 && !TEXT_REGEXP.test(str)) {
|
|
124
|
+
throw new TypeError("invalid parameter value");
|
|
125
|
+
}
|
|
126
|
+
return '"' + str.replace(QUOTE_REGEXP, "\\$1") + '"';
|
|
127
|
+
}
|
|
128
|
+
function ContentType(type) {
|
|
129
|
+
this.parameters = /* @__PURE__ */ Object.create(null);
|
|
130
|
+
this.type = type;
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
});
|
|
134
|
+
|
|
135
|
+
// node_modules/ajv/dist/compile/codegen/code.js
|
|
32
136
|
var require_code = __commonJS({
|
|
33
|
-
"
|
|
137
|
+
"node_modules/ajv/dist/compile/codegen/code.js"(exports) {
|
|
34
138
|
"use strict";
|
|
35
139
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
140
|
exports.regexpCode = exports.getEsmExportName = exports.getProperty = exports.safeStringify = exports.stringify = exports.strConcat = exports.addCodeArg = exports.str = exports._ = exports.nil = exports._Code = exports.Name = exports.IDENTIFIER = exports._CodeOrName = void 0;
|
|
@@ -182,9 +286,9 @@ var require_code = __commonJS({
|
|
|
182
286
|
}
|
|
183
287
|
});
|
|
184
288
|
|
|
185
|
-
//
|
|
289
|
+
// node_modules/ajv/dist/compile/codegen/scope.js
|
|
186
290
|
var require_scope = __commonJS({
|
|
187
|
-
"
|
|
291
|
+
"node_modules/ajv/dist/compile/codegen/scope.js"(exports) {
|
|
188
292
|
"use strict";
|
|
189
293
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
190
294
|
exports.ValueScope = exports.ValueScopeName = exports.Scope = exports.varKinds = exports.UsedValueState = void 0;
|
|
@@ -327,9 +431,9 @@ var require_scope = __commonJS({
|
|
|
327
431
|
}
|
|
328
432
|
});
|
|
329
433
|
|
|
330
|
-
//
|
|
434
|
+
// node_modules/ajv/dist/compile/codegen/index.js
|
|
331
435
|
var require_codegen = __commonJS({
|
|
332
|
-
"
|
|
436
|
+
"node_modules/ajv/dist/compile/codegen/index.js"(exports) {
|
|
333
437
|
"use strict";
|
|
334
438
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
335
439
|
exports.or = exports.and = exports.not = exports.CodeGen = exports.operators = exports.varKinds = exports.ValueScopeName = exports.ValueScope = exports.Scope = exports.Name = exports.regexpCode = exports.stringify = exports.getProperty = exports.nil = exports.strConcat = exports.str = exports._ = void 0;
|
|
@@ -1047,9 +1151,9 @@ var require_codegen = __commonJS({
|
|
|
1047
1151
|
}
|
|
1048
1152
|
});
|
|
1049
1153
|
|
|
1050
|
-
//
|
|
1154
|
+
// node_modules/ajv/dist/compile/util.js
|
|
1051
1155
|
var require_util = __commonJS({
|
|
1052
|
-
"
|
|
1156
|
+
"node_modules/ajv/dist/compile/util.js"(exports) {
|
|
1053
1157
|
"use strict";
|
|
1054
1158
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
1055
1159
|
exports.checkStrictMode = exports.getErrorPath = exports.Type = exports.useFunc = exports.setEvaluated = exports.evaluatedPropsToName = exports.mergeEvaluated = exports.eachItem = exports.unescapeJsonPointer = exports.escapeJsonPointer = exports.escapeFragment = exports.unescapeFragment = exports.schemaRefOrVal = exports.schemaHasRulesButRef = exports.schemaHasRules = exports.checkUnknownRules = exports.alwaysValidSchema = exports.toHash = void 0;
|
|
@@ -1214,9 +1318,9 @@ var require_util = __commonJS({
|
|
|
1214
1318
|
}
|
|
1215
1319
|
});
|
|
1216
1320
|
|
|
1217
|
-
//
|
|
1321
|
+
// node_modules/ajv/dist/compile/names.js
|
|
1218
1322
|
var require_names = __commonJS({
|
|
1219
|
-
"
|
|
1323
|
+
"node_modules/ajv/dist/compile/names.js"(exports) {
|
|
1220
1324
|
"use strict";
|
|
1221
1325
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
1222
1326
|
var codegen_1 = require_codegen();
|
|
@@ -1253,9 +1357,9 @@ var require_names = __commonJS({
|
|
|
1253
1357
|
}
|
|
1254
1358
|
});
|
|
1255
1359
|
|
|
1256
|
-
//
|
|
1360
|
+
// node_modules/ajv/dist/compile/errors.js
|
|
1257
1361
|
var require_errors = __commonJS({
|
|
1258
|
-
"
|
|
1362
|
+
"node_modules/ajv/dist/compile/errors.js"(exports) {
|
|
1259
1363
|
"use strict";
|
|
1260
1364
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
1261
1365
|
exports.extendErrors = exports.resetErrorsCount = exports.reportExtraError = exports.reportError = exports.keyword$DataError = exports.keywordError = void 0;
|
|
@@ -1375,9 +1479,9 @@ var require_errors = __commonJS({
|
|
|
1375
1479
|
}
|
|
1376
1480
|
});
|
|
1377
1481
|
|
|
1378
|
-
//
|
|
1482
|
+
// node_modules/ajv/dist/compile/validate/boolSchema.js
|
|
1379
1483
|
var require_boolSchema = __commonJS({
|
|
1380
|
-
"
|
|
1484
|
+
"node_modules/ajv/dist/compile/validate/boolSchema.js"(exports) {
|
|
1381
1485
|
"use strict";
|
|
1382
1486
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
1383
1487
|
exports.boolOrEmptySchema = exports.topBoolOrEmptySchema = void 0;
|
|
@@ -1426,9 +1530,9 @@ var require_boolSchema = __commonJS({
|
|
|
1426
1530
|
}
|
|
1427
1531
|
});
|
|
1428
1532
|
|
|
1429
|
-
//
|
|
1533
|
+
// node_modules/ajv/dist/compile/rules.js
|
|
1430
1534
|
var require_rules = __commonJS({
|
|
1431
|
-
"
|
|
1535
|
+
"node_modules/ajv/dist/compile/rules.js"(exports) {
|
|
1432
1536
|
"use strict";
|
|
1433
1537
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
1434
1538
|
exports.getRules = exports.isJSONType = void 0;
|
|
@@ -1457,9 +1561,9 @@ var require_rules = __commonJS({
|
|
|
1457
1561
|
}
|
|
1458
1562
|
});
|
|
1459
1563
|
|
|
1460
|
-
//
|
|
1564
|
+
// node_modules/ajv/dist/compile/validate/applicability.js
|
|
1461
1565
|
var require_applicability = __commonJS({
|
|
1462
|
-
"
|
|
1566
|
+
"node_modules/ajv/dist/compile/validate/applicability.js"(exports) {
|
|
1463
1567
|
"use strict";
|
|
1464
1568
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
1465
1569
|
exports.shouldUseRule = exports.shouldUseGroup = exports.schemaHasRulesForType = void 0;
|
|
@@ -1480,9 +1584,9 @@ var require_applicability = __commonJS({
|
|
|
1480
1584
|
}
|
|
1481
1585
|
});
|
|
1482
1586
|
|
|
1483
|
-
//
|
|
1587
|
+
// node_modules/ajv/dist/compile/validate/dataType.js
|
|
1484
1588
|
var require_dataType = __commonJS({
|
|
1485
|
-
"
|
|
1589
|
+
"node_modules/ajv/dist/compile/validate/dataType.js"(exports) {
|
|
1486
1590
|
"use strict";
|
|
1487
1591
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
1488
1592
|
exports.reportTypeError = exports.checkDataTypes = exports.checkDataType = exports.coerceAndCheckDataType = exports.getJSONTypes = exports.getSchemaTypes = exports.DataType = void 0;
|
|
@@ -1664,9 +1768,9 @@ var require_dataType = __commonJS({
|
|
|
1664
1768
|
}
|
|
1665
1769
|
});
|
|
1666
1770
|
|
|
1667
|
-
//
|
|
1771
|
+
// node_modules/ajv/dist/compile/validate/defaults.js
|
|
1668
1772
|
var require_defaults = __commonJS({
|
|
1669
|
-
"
|
|
1773
|
+
"node_modules/ajv/dist/compile/validate/defaults.js"(exports) {
|
|
1670
1774
|
"use strict";
|
|
1671
1775
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
1672
1776
|
exports.assignDefaults = void 0;
|
|
@@ -1701,9 +1805,9 @@ var require_defaults = __commonJS({
|
|
|
1701
1805
|
}
|
|
1702
1806
|
});
|
|
1703
1807
|
|
|
1704
|
-
//
|
|
1808
|
+
// node_modules/ajv/dist/vocabularies/code.js
|
|
1705
1809
|
var require_code2 = __commonJS({
|
|
1706
|
-
"
|
|
1810
|
+
"node_modules/ajv/dist/vocabularies/code.js"(exports) {
|
|
1707
1811
|
"use strict";
|
|
1708
1812
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
1709
1813
|
exports.validateUnion = exports.validateArray = exports.usePattern = exports.callValidateCode = exports.schemaProperties = exports.allSchemaProperties = exports.noPropertyInData = exports.propertyInData = exports.isOwnProperty = exports.hasPropFunc = exports.reportMissingProp = exports.checkMissingProp = exports.checkReportMissingProp = void 0;
|
|
@@ -1834,9 +1938,9 @@ var require_code2 = __commonJS({
|
|
|
1834
1938
|
}
|
|
1835
1939
|
});
|
|
1836
1940
|
|
|
1837
|
-
//
|
|
1941
|
+
// node_modules/ajv/dist/compile/validate/keyword.js
|
|
1838
1942
|
var require_keyword = __commonJS({
|
|
1839
|
-
"
|
|
1943
|
+
"node_modules/ajv/dist/compile/validate/keyword.js"(exports) {
|
|
1840
1944
|
"use strict";
|
|
1841
1945
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
1842
1946
|
exports.validateKeywordUsage = exports.validSchemaType = exports.funcKeywordCode = exports.macroKeywordCode = void 0;
|
|
@@ -1952,9 +2056,9 @@ var require_keyword = __commonJS({
|
|
|
1952
2056
|
}
|
|
1953
2057
|
});
|
|
1954
2058
|
|
|
1955
|
-
//
|
|
2059
|
+
// node_modules/ajv/dist/compile/validate/subschema.js
|
|
1956
2060
|
var require_subschema = __commonJS({
|
|
1957
|
-
"
|
|
2061
|
+
"node_modules/ajv/dist/compile/validate/subschema.js"(exports) {
|
|
1958
2062
|
"use strict";
|
|
1959
2063
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
1960
2064
|
exports.extendSubschemaMode = exports.extendSubschemaData = exports.getSubschema = void 0;
|
|
@@ -2035,9 +2139,9 @@ var require_subschema = __commonJS({
|
|
|
2035
2139
|
}
|
|
2036
2140
|
});
|
|
2037
2141
|
|
|
2038
|
-
//
|
|
2142
|
+
// node_modules/fast-deep-equal/index.js
|
|
2039
2143
|
var require_fast_deep_equal = __commonJS({
|
|
2040
|
-
"
|
|
2144
|
+
"node_modules/fast-deep-equal/index.js"(exports, module) {
|
|
2041
2145
|
"use strict";
|
|
2042
2146
|
module.exports = function equal(a, b) {
|
|
2043
2147
|
if (a === b) return true;
|
|
@@ -2070,9 +2174,9 @@ var require_fast_deep_equal = __commonJS({
|
|
|
2070
2174
|
}
|
|
2071
2175
|
});
|
|
2072
2176
|
|
|
2073
|
-
//
|
|
2177
|
+
// node_modules/json-schema-traverse/index.js
|
|
2074
2178
|
var require_json_schema_traverse = __commonJS({
|
|
2075
|
-
"
|
|
2179
|
+
"node_modules/json-schema-traverse/index.js"(exports, module) {
|
|
2076
2180
|
"use strict";
|
|
2077
2181
|
var traverse = module.exports = function(schema, opts, cb) {
|
|
2078
2182
|
if (typeof opts == "function") {
|
|
@@ -2158,9 +2262,9 @@ var require_json_schema_traverse = __commonJS({
|
|
|
2158
2262
|
}
|
|
2159
2263
|
});
|
|
2160
2264
|
|
|
2161
|
-
//
|
|
2265
|
+
// node_modules/ajv/dist/compile/resolve.js
|
|
2162
2266
|
var require_resolve = __commonJS({
|
|
2163
|
-
"
|
|
2267
|
+
"node_modules/ajv/dist/compile/resolve.js"(exports) {
|
|
2164
2268
|
"use strict";
|
|
2165
2269
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
2166
2270
|
exports.getSchemaRefs = exports.resolveUrl = exports.normalizeId = exports._getFullPath = exports.getFullPath = exports.inlineRef = void 0;
|
|
@@ -2314,9 +2418,9 @@ var require_resolve = __commonJS({
|
|
|
2314
2418
|
}
|
|
2315
2419
|
});
|
|
2316
2420
|
|
|
2317
|
-
//
|
|
2421
|
+
// node_modules/ajv/dist/compile/validate/index.js
|
|
2318
2422
|
var require_validate = __commonJS({
|
|
2319
|
-
"
|
|
2423
|
+
"node_modules/ajv/dist/compile/validate/index.js"(exports) {
|
|
2320
2424
|
"use strict";
|
|
2321
2425
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
2322
2426
|
exports.getData = exports.KeywordCxt = exports.validateFunctionCode = void 0;
|
|
@@ -2822,9 +2926,9 @@ var require_validate = __commonJS({
|
|
|
2822
2926
|
}
|
|
2823
2927
|
});
|
|
2824
2928
|
|
|
2825
|
-
//
|
|
2929
|
+
// node_modules/ajv/dist/runtime/validation_error.js
|
|
2826
2930
|
var require_validation_error = __commonJS({
|
|
2827
|
-
"
|
|
2931
|
+
"node_modules/ajv/dist/runtime/validation_error.js"(exports) {
|
|
2828
2932
|
"use strict";
|
|
2829
2933
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
2830
2934
|
var ValidationError = class extends Error {
|
|
@@ -2838,9 +2942,9 @@ var require_validation_error = __commonJS({
|
|
|
2838
2942
|
}
|
|
2839
2943
|
});
|
|
2840
2944
|
|
|
2841
|
-
//
|
|
2945
|
+
// node_modules/ajv/dist/compile/ref_error.js
|
|
2842
2946
|
var require_ref_error = __commonJS({
|
|
2843
|
-
"
|
|
2947
|
+
"node_modules/ajv/dist/compile/ref_error.js"(exports) {
|
|
2844
2948
|
"use strict";
|
|
2845
2949
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
2846
2950
|
var resolve_1 = require_resolve();
|
|
@@ -2855,9 +2959,9 @@ var require_ref_error = __commonJS({
|
|
|
2855
2959
|
}
|
|
2856
2960
|
});
|
|
2857
2961
|
|
|
2858
|
-
//
|
|
2962
|
+
// node_modules/ajv/dist/compile/index.js
|
|
2859
2963
|
var require_compile = __commonJS({
|
|
2860
|
-
"
|
|
2964
|
+
"node_modules/ajv/dist/compile/index.js"(exports) {
|
|
2861
2965
|
"use strict";
|
|
2862
2966
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
2863
2967
|
exports.resolveSchema = exports.getCompilingSchema = exports.resolveRef = exports.compileSchema = exports.SchemaEnv = void 0;
|
|
@@ -3079,9 +3183,9 @@ var require_compile = __commonJS({
|
|
|
3079
3183
|
}
|
|
3080
3184
|
});
|
|
3081
3185
|
|
|
3082
|
-
//
|
|
3186
|
+
// node_modules/ajv/dist/refs/data.json
|
|
3083
3187
|
var require_data = __commonJS({
|
|
3084
|
-
"
|
|
3188
|
+
"node_modules/ajv/dist/refs/data.json"(exports, module) {
|
|
3085
3189
|
module.exports = {
|
|
3086
3190
|
$id: "https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#",
|
|
3087
3191
|
description: "Meta-schema for $data reference (JSON AnySchema extension proposal)",
|
|
@@ -3098,9 +3202,9 @@ var require_data = __commonJS({
|
|
|
3098
3202
|
}
|
|
3099
3203
|
});
|
|
3100
3204
|
|
|
3101
|
-
//
|
|
3205
|
+
// node_modules/fast-uri/lib/utils.js
|
|
3102
3206
|
var require_utils = __commonJS({
|
|
3103
|
-
"
|
|
3207
|
+
"node_modules/fast-uri/lib/utils.js"(exports, module) {
|
|
3104
3208
|
"use strict";
|
|
3105
3209
|
var isUUID = RegExp.prototype.test.bind(/^[\da-f]{8}-[\da-f]{4}-[\da-f]{4}-[\da-f]{4}-[\da-f]{12}$/iu);
|
|
3106
3210
|
var isIPv4 = RegExp.prototype.test.bind(/^(?:(?:25[0-5]|2[0-4]\d|1\d{2}|[1-9]\d|\d)\.){3}(?:25[0-5]|2[0-4]\d|1\d{2}|[1-9]\d|\d)$/u);
|
|
@@ -3411,9 +3515,9 @@ var require_utils = __commonJS({
|
|
|
3411
3515
|
}
|
|
3412
3516
|
});
|
|
3413
3517
|
|
|
3414
|
-
//
|
|
3518
|
+
// node_modules/fast-uri/lib/schemes.js
|
|
3415
3519
|
var require_schemes = __commonJS({
|
|
3416
|
-
"
|
|
3520
|
+
"node_modules/fast-uri/lib/schemes.js"(exports, module) {
|
|
3417
3521
|
"use strict";
|
|
3418
3522
|
var { isUUID } = require_utils();
|
|
3419
3523
|
var URN_REG = /([\da-z][\d\-a-z]{0,31}):((?:[\w!$'()*+,\-.:;=@]|%[\da-f]{2})+)/iu;
|
|
@@ -3621,9 +3725,9 @@ var require_schemes = __commonJS({
|
|
|
3621
3725
|
}
|
|
3622
3726
|
});
|
|
3623
3727
|
|
|
3624
|
-
//
|
|
3728
|
+
// node_modules/fast-uri/index.js
|
|
3625
3729
|
var require_fast_uri = __commonJS({
|
|
3626
|
-
"
|
|
3730
|
+
"node_modules/fast-uri/index.js"(exports, module) {
|
|
3627
3731
|
"use strict";
|
|
3628
3732
|
var { normalizeIPv6, removeDotSegments, recomposeAuthority, normalizePercentEncoding, normalizePathEncoding, escapePreservingEscapes, reescapeHostDelimiters, isIPv4, nonSimpleDomain } = require_utils();
|
|
3629
3733
|
var { SCHEMES, getSchemeHandler } = require_schemes();
|
|
@@ -3933,9 +4037,9 @@ var require_fast_uri = __commonJS({
|
|
|
3933
4037
|
}
|
|
3934
4038
|
});
|
|
3935
4039
|
|
|
3936
|
-
//
|
|
4040
|
+
// node_modules/ajv/dist/runtime/uri.js
|
|
3937
4041
|
var require_uri = __commonJS({
|
|
3938
|
-
"
|
|
4042
|
+
"node_modules/ajv/dist/runtime/uri.js"(exports) {
|
|
3939
4043
|
"use strict";
|
|
3940
4044
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3941
4045
|
var uri = require_fast_uri();
|
|
@@ -3944,9 +4048,9 @@ var require_uri = __commonJS({
|
|
|
3944
4048
|
}
|
|
3945
4049
|
});
|
|
3946
4050
|
|
|
3947
|
-
//
|
|
4051
|
+
// node_modules/ajv/dist/core.js
|
|
3948
4052
|
var require_core = __commonJS({
|
|
3949
|
-
"
|
|
4053
|
+
"node_modules/ajv/dist/core.js"(exports) {
|
|
3950
4054
|
"use strict";
|
|
3951
4055
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3952
4056
|
exports.CodeGen = exports.Name = exports.nil = exports.stringify = exports.str = exports._ = exports.KeywordCxt = void 0;
|
|
@@ -4555,9 +4659,9 @@ var require_core = __commonJS({
|
|
|
4555
4659
|
}
|
|
4556
4660
|
});
|
|
4557
4661
|
|
|
4558
|
-
//
|
|
4662
|
+
// node_modules/ajv/dist/vocabularies/core/id.js
|
|
4559
4663
|
var require_id = __commonJS({
|
|
4560
|
-
"
|
|
4664
|
+
"node_modules/ajv/dist/vocabularies/core/id.js"(exports) {
|
|
4561
4665
|
"use strict";
|
|
4562
4666
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4563
4667
|
var def = {
|
|
@@ -4570,9 +4674,9 @@ var require_id = __commonJS({
|
|
|
4570
4674
|
}
|
|
4571
4675
|
});
|
|
4572
4676
|
|
|
4573
|
-
//
|
|
4677
|
+
// node_modules/ajv/dist/vocabularies/core/ref.js
|
|
4574
4678
|
var require_ref = __commonJS({
|
|
4575
|
-
"
|
|
4679
|
+
"node_modules/ajv/dist/vocabularies/core/ref.js"(exports) {
|
|
4576
4680
|
"use strict";
|
|
4577
4681
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4578
4682
|
exports.callRef = exports.getValidate = void 0;
|
|
@@ -4692,9 +4796,9 @@ var require_ref = __commonJS({
|
|
|
4692
4796
|
}
|
|
4693
4797
|
});
|
|
4694
4798
|
|
|
4695
|
-
//
|
|
4799
|
+
// node_modules/ajv/dist/vocabularies/core/index.js
|
|
4696
4800
|
var require_core2 = __commonJS({
|
|
4697
|
-
"
|
|
4801
|
+
"node_modules/ajv/dist/vocabularies/core/index.js"(exports) {
|
|
4698
4802
|
"use strict";
|
|
4699
4803
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4700
4804
|
var id_1 = require_id();
|
|
@@ -4713,9 +4817,9 @@ var require_core2 = __commonJS({
|
|
|
4713
4817
|
}
|
|
4714
4818
|
});
|
|
4715
4819
|
|
|
4716
|
-
//
|
|
4820
|
+
// node_modules/ajv/dist/vocabularies/validation/limitNumber.js
|
|
4717
4821
|
var require_limitNumber = __commonJS({
|
|
4718
|
-
"
|
|
4822
|
+
"node_modules/ajv/dist/vocabularies/validation/limitNumber.js"(exports) {
|
|
4719
4823
|
"use strict";
|
|
4720
4824
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4721
4825
|
var codegen_1 = require_codegen();
|
|
@@ -4745,9 +4849,9 @@ var require_limitNumber = __commonJS({
|
|
|
4745
4849
|
}
|
|
4746
4850
|
});
|
|
4747
4851
|
|
|
4748
|
-
//
|
|
4852
|
+
// node_modules/ajv/dist/vocabularies/validation/multipleOf.js
|
|
4749
4853
|
var require_multipleOf = __commonJS({
|
|
4750
|
-
"
|
|
4854
|
+
"node_modules/ajv/dist/vocabularies/validation/multipleOf.js"(exports) {
|
|
4751
4855
|
"use strict";
|
|
4752
4856
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4753
4857
|
var codegen_1 = require_codegen();
|
|
@@ -4773,9 +4877,9 @@ var require_multipleOf = __commonJS({
|
|
|
4773
4877
|
}
|
|
4774
4878
|
});
|
|
4775
4879
|
|
|
4776
|
-
//
|
|
4880
|
+
// node_modules/ajv/dist/runtime/ucs2length.js
|
|
4777
4881
|
var require_ucs2length = __commonJS({
|
|
4778
|
-
"
|
|
4882
|
+
"node_modules/ajv/dist/runtime/ucs2length.js"(exports) {
|
|
4779
4883
|
"use strict";
|
|
4780
4884
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4781
4885
|
function ucs2length(str) {
|
|
@@ -4799,9 +4903,9 @@ var require_ucs2length = __commonJS({
|
|
|
4799
4903
|
}
|
|
4800
4904
|
});
|
|
4801
4905
|
|
|
4802
|
-
//
|
|
4906
|
+
// node_modules/ajv/dist/vocabularies/validation/limitLength.js
|
|
4803
4907
|
var require_limitLength = __commonJS({
|
|
4804
|
-
"
|
|
4908
|
+
"node_modules/ajv/dist/vocabularies/validation/limitLength.js"(exports) {
|
|
4805
4909
|
"use strict";
|
|
4806
4910
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4807
4911
|
var codegen_1 = require_codegen();
|
|
@@ -4831,9 +4935,9 @@ var require_limitLength = __commonJS({
|
|
|
4831
4935
|
}
|
|
4832
4936
|
});
|
|
4833
4937
|
|
|
4834
|
-
//
|
|
4938
|
+
// node_modules/ajv/dist/vocabularies/validation/pattern.js
|
|
4835
4939
|
var require_pattern = __commonJS({
|
|
4836
|
-
"
|
|
4940
|
+
"node_modules/ajv/dist/vocabularies/validation/pattern.js"(exports) {
|
|
4837
4941
|
"use strict";
|
|
4838
4942
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4839
4943
|
var code_1 = require_code2();
|
|
@@ -4868,9 +4972,9 @@ var require_pattern = __commonJS({
|
|
|
4868
4972
|
}
|
|
4869
4973
|
});
|
|
4870
4974
|
|
|
4871
|
-
//
|
|
4975
|
+
// node_modules/ajv/dist/vocabularies/validation/limitProperties.js
|
|
4872
4976
|
var require_limitProperties = __commonJS({
|
|
4873
|
-
"
|
|
4977
|
+
"node_modules/ajv/dist/vocabularies/validation/limitProperties.js"(exports) {
|
|
4874
4978
|
"use strict";
|
|
4875
4979
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4876
4980
|
var codegen_1 = require_codegen();
|
|
@@ -4897,9 +5001,9 @@ var require_limitProperties = __commonJS({
|
|
|
4897
5001
|
}
|
|
4898
5002
|
});
|
|
4899
5003
|
|
|
4900
|
-
//
|
|
5004
|
+
// node_modules/ajv/dist/vocabularies/validation/required.js
|
|
4901
5005
|
var require_required = __commonJS({
|
|
4902
|
-
"
|
|
5006
|
+
"node_modules/ajv/dist/vocabularies/validation/required.js"(exports) {
|
|
4903
5007
|
"use strict";
|
|
4904
5008
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4905
5009
|
var code_1 = require_code2();
|
|
@@ -4979,9 +5083,9 @@ var require_required = __commonJS({
|
|
|
4979
5083
|
}
|
|
4980
5084
|
});
|
|
4981
5085
|
|
|
4982
|
-
//
|
|
5086
|
+
// node_modules/ajv/dist/vocabularies/validation/limitItems.js
|
|
4983
5087
|
var require_limitItems = __commonJS({
|
|
4984
|
-
"
|
|
5088
|
+
"node_modules/ajv/dist/vocabularies/validation/limitItems.js"(exports) {
|
|
4985
5089
|
"use strict";
|
|
4986
5090
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4987
5091
|
var codegen_1 = require_codegen();
|
|
@@ -5008,9 +5112,9 @@ var require_limitItems = __commonJS({
|
|
|
5008
5112
|
}
|
|
5009
5113
|
});
|
|
5010
5114
|
|
|
5011
|
-
//
|
|
5115
|
+
// node_modules/ajv/dist/runtime/equal.js
|
|
5012
5116
|
var require_equal = __commonJS({
|
|
5013
|
-
"
|
|
5117
|
+
"node_modules/ajv/dist/runtime/equal.js"(exports) {
|
|
5014
5118
|
"use strict";
|
|
5015
5119
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
5016
5120
|
var equal = require_fast_deep_equal();
|
|
@@ -5019,9 +5123,9 @@ var require_equal = __commonJS({
|
|
|
5019
5123
|
}
|
|
5020
5124
|
});
|
|
5021
5125
|
|
|
5022
|
-
//
|
|
5126
|
+
// node_modules/ajv/dist/vocabularies/validation/uniqueItems.js
|
|
5023
5127
|
var require_uniqueItems = __commonJS({
|
|
5024
|
-
"
|
|
5128
|
+
"node_modules/ajv/dist/vocabularies/validation/uniqueItems.js"(exports) {
|
|
5025
5129
|
"use strict";
|
|
5026
5130
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
5027
5131
|
var dataType_1 = require_dataType();
|
|
@@ -5086,9 +5190,9 @@ var require_uniqueItems = __commonJS({
|
|
|
5086
5190
|
}
|
|
5087
5191
|
});
|
|
5088
5192
|
|
|
5089
|
-
//
|
|
5193
|
+
// node_modules/ajv/dist/vocabularies/validation/const.js
|
|
5090
5194
|
var require_const = __commonJS({
|
|
5091
|
-
"
|
|
5195
|
+
"node_modules/ajv/dist/vocabularies/validation/const.js"(exports) {
|
|
5092
5196
|
"use strict";
|
|
5093
5197
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
5094
5198
|
var codegen_1 = require_codegen();
|
|
@@ -5115,9 +5219,9 @@ var require_const = __commonJS({
|
|
|
5115
5219
|
}
|
|
5116
5220
|
});
|
|
5117
5221
|
|
|
5118
|
-
//
|
|
5222
|
+
// node_modules/ajv/dist/vocabularies/validation/enum.js
|
|
5119
5223
|
var require_enum = __commonJS({
|
|
5120
|
-
"
|
|
5224
|
+
"node_modules/ajv/dist/vocabularies/validation/enum.js"(exports) {
|
|
5121
5225
|
"use strict";
|
|
5122
5226
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
5123
5227
|
var codegen_1 = require_codegen();
|
|
@@ -5164,9 +5268,9 @@ var require_enum = __commonJS({
|
|
|
5164
5268
|
}
|
|
5165
5269
|
});
|
|
5166
5270
|
|
|
5167
|
-
//
|
|
5271
|
+
// node_modules/ajv/dist/vocabularies/validation/index.js
|
|
5168
5272
|
var require_validation = __commonJS({
|
|
5169
|
-
"
|
|
5273
|
+
"node_modules/ajv/dist/vocabularies/validation/index.js"(exports) {
|
|
5170
5274
|
"use strict";
|
|
5171
5275
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
5172
5276
|
var limitNumber_1 = require_limitNumber();
|
|
@@ -5202,9 +5306,9 @@ var require_validation = __commonJS({
|
|
|
5202
5306
|
}
|
|
5203
5307
|
});
|
|
5204
5308
|
|
|
5205
|
-
//
|
|
5309
|
+
// node_modules/ajv/dist/vocabularies/applicator/additionalItems.js
|
|
5206
5310
|
var require_additionalItems = __commonJS({
|
|
5207
|
-
"
|
|
5311
|
+
"node_modules/ajv/dist/vocabularies/applicator/additionalItems.js"(exports) {
|
|
5208
5312
|
"use strict";
|
|
5209
5313
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
5210
5314
|
exports.validateAdditionalItems = void 0;
|
|
@@ -5255,9 +5359,9 @@ var require_additionalItems = __commonJS({
|
|
|
5255
5359
|
}
|
|
5256
5360
|
});
|
|
5257
5361
|
|
|
5258
|
-
//
|
|
5362
|
+
// node_modules/ajv/dist/vocabularies/applicator/items.js
|
|
5259
5363
|
var require_items = __commonJS({
|
|
5260
|
-
"
|
|
5364
|
+
"node_modules/ajv/dist/vocabularies/applicator/items.js"(exports) {
|
|
5261
5365
|
"use strict";
|
|
5262
5366
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
5263
5367
|
exports.validateTuple = void 0;
|
|
@@ -5312,9 +5416,9 @@ var require_items = __commonJS({
|
|
|
5312
5416
|
}
|
|
5313
5417
|
});
|
|
5314
5418
|
|
|
5315
|
-
//
|
|
5419
|
+
// node_modules/ajv/dist/vocabularies/applicator/prefixItems.js
|
|
5316
5420
|
var require_prefixItems = __commonJS({
|
|
5317
|
-
"
|
|
5421
|
+
"node_modules/ajv/dist/vocabularies/applicator/prefixItems.js"(exports) {
|
|
5318
5422
|
"use strict";
|
|
5319
5423
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
5320
5424
|
var items_1 = require_items();
|
|
@@ -5329,9 +5433,9 @@ var require_prefixItems = __commonJS({
|
|
|
5329
5433
|
}
|
|
5330
5434
|
});
|
|
5331
5435
|
|
|
5332
|
-
//
|
|
5436
|
+
// node_modules/ajv/dist/vocabularies/applicator/items2020.js
|
|
5333
5437
|
var require_items2020 = __commonJS({
|
|
5334
|
-
"
|
|
5438
|
+
"node_modules/ajv/dist/vocabularies/applicator/items2020.js"(exports) {
|
|
5335
5439
|
"use strict";
|
|
5336
5440
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
5337
5441
|
var codegen_1 = require_codegen();
|
|
@@ -5364,9 +5468,9 @@ var require_items2020 = __commonJS({
|
|
|
5364
5468
|
}
|
|
5365
5469
|
});
|
|
5366
5470
|
|
|
5367
|
-
//
|
|
5471
|
+
// node_modules/ajv/dist/vocabularies/applicator/contains.js
|
|
5368
5472
|
var require_contains = __commonJS({
|
|
5369
|
-
"
|
|
5473
|
+
"node_modules/ajv/dist/vocabularies/applicator/contains.js"(exports) {
|
|
5370
5474
|
"use strict";
|
|
5371
5475
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
5372
5476
|
var codegen_1 = require_codegen();
|
|
@@ -5458,9 +5562,9 @@ var require_contains = __commonJS({
|
|
|
5458
5562
|
}
|
|
5459
5563
|
});
|
|
5460
5564
|
|
|
5461
|
-
//
|
|
5565
|
+
// node_modules/ajv/dist/vocabularies/applicator/dependencies.js
|
|
5462
5566
|
var require_dependencies = __commonJS({
|
|
5463
|
-
"
|
|
5567
|
+
"node_modules/ajv/dist/vocabularies/applicator/dependencies.js"(exports) {
|
|
5464
5568
|
"use strict";
|
|
5465
5569
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
5466
5570
|
exports.validateSchemaDeps = exports.validatePropertyDeps = exports.error = void 0;
|
|
@@ -5552,9 +5656,9 @@ var require_dependencies = __commonJS({
|
|
|
5552
5656
|
}
|
|
5553
5657
|
});
|
|
5554
5658
|
|
|
5555
|
-
//
|
|
5659
|
+
// node_modules/ajv/dist/vocabularies/applicator/propertyNames.js
|
|
5556
5660
|
var require_propertyNames = __commonJS({
|
|
5557
|
-
"
|
|
5661
|
+
"node_modules/ajv/dist/vocabularies/applicator/propertyNames.js"(exports) {
|
|
5558
5662
|
"use strict";
|
|
5559
5663
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
5560
5664
|
var codegen_1 = require_codegen();
|
|
@@ -5595,9 +5699,9 @@ var require_propertyNames = __commonJS({
|
|
|
5595
5699
|
}
|
|
5596
5700
|
});
|
|
5597
5701
|
|
|
5598
|
-
//
|
|
5702
|
+
// node_modules/ajv/dist/vocabularies/applicator/additionalProperties.js
|
|
5599
5703
|
var require_additionalProperties = __commonJS({
|
|
5600
|
-
"
|
|
5704
|
+
"node_modules/ajv/dist/vocabularies/applicator/additionalProperties.js"(exports) {
|
|
5601
5705
|
"use strict";
|
|
5602
5706
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
5603
5707
|
var code_1 = require_code2();
|
|
@@ -5701,9 +5805,9 @@ var require_additionalProperties = __commonJS({
|
|
|
5701
5805
|
}
|
|
5702
5806
|
});
|
|
5703
5807
|
|
|
5704
|
-
//
|
|
5808
|
+
// node_modules/ajv/dist/vocabularies/applicator/properties.js
|
|
5705
5809
|
var require_properties = __commonJS({
|
|
5706
|
-
"
|
|
5810
|
+
"node_modules/ajv/dist/vocabularies/applicator/properties.js"(exports) {
|
|
5707
5811
|
"use strict";
|
|
5708
5812
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
5709
5813
|
var validate_1 = require_validate();
|
|
@@ -5759,9 +5863,9 @@ var require_properties = __commonJS({
|
|
|
5759
5863
|
}
|
|
5760
5864
|
});
|
|
5761
5865
|
|
|
5762
|
-
//
|
|
5866
|
+
// node_modules/ajv/dist/vocabularies/applicator/patternProperties.js
|
|
5763
5867
|
var require_patternProperties = __commonJS({
|
|
5764
|
-
"
|
|
5868
|
+
"node_modules/ajv/dist/vocabularies/applicator/patternProperties.js"(exports) {
|
|
5765
5869
|
"use strict";
|
|
5766
5870
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
5767
5871
|
var code_1 = require_code2();
|
|
@@ -5833,9 +5937,9 @@ var require_patternProperties = __commonJS({
|
|
|
5833
5937
|
}
|
|
5834
5938
|
});
|
|
5835
5939
|
|
|
5836
|
-
//
|
|
5940
|
+
// node_modules/ajv/dist/vocabularies/applicator/not.js
|
|
5837
5941
|
var require_not = __commonJS({
|
|
5838
|
-
"
|
|
5942
|
+
"node_modules/ajv/dist/vocabularies/applicator/not.js"(exports) {
|
|
5839
5943
|
"use strict";
|
|
5840
5944
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
5841
5945
|
var util_1 = require_util();
|
|
@@ -5864,9 +5968,9 @@ var require_not = __commonJS({
|
|
|
5864
5968
|
}
|
|
5865
5969
|
});
|
|
5866
5970
|
|
|
5867
|
-
//
|
|
5971
|
+
// node_modules/ajv/dist/vocabularies/applicator/anyOf.js
|
|
5868
5972
|
var require_anyOf = __commonJS({
|
|
5869
|
-
"
|
|
5973
|
+
"node_modules/ajv/dist/vocabularies/applicator/anyOf.js"(exports) {
|
|
5870
5974
|
"use strict";
|
|
5871
5975
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
5872
5976
|
var code_1 = require_code2();
|
|
@@ -5881,9 +5985,9 @@ var require_anyOf = __commonJS({
|
|
|
5881
5985
|
}
|
|
5882
5986
|
});
|
|
5883
5987
|
|
|
5884
|
-
//
|
|
5988
|
+
// node_modules/ajv/dist/vocabularies/applicator/oneOf.js
|
|
5885
5989
|
var require_oneOf = __commonJS({
|
|
5886
|
-
"
|
|
5990
|
+
"node_modules/ajv/dist/vocabularies/applicator/oneOf.js"(exports) {
|
|
5887
5991
|
"use strict";
|
|
5888
5992
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
5889
5993
|
var codegen_1 = require_codegen();
|
|
@@ -5939,9 +6043,9 @@ var require_oneOf = __commonJS({
|
|
|
5939
6043
|
}
|
|
5940
6044
|
});
|
|
5941
6045
|
|
|
5942
|
-
//
|
|
6046
|
+
// node_modules/ajv/dist/vocabularies/applicator/allOf.js
|
|
5943
6047
|
var require_allOf = __commonJS({
|
|
5944
|
-
"
|
|
6048
|
+
"node_modules/ajv/dist/vocabularies/applicator/allOf.js"(exports) {
|
|
5945
6049
|
"use strict";
|
|
5946
6050
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
5947
6051
|
var util_1 = require_util();
|
|
@@ -5966,9 +6070,9 @@ var require_allOf = __commonJS({
|
|
|
5966
6070
|
}
|
|
5967
6071
|
});
|
|
5968
6072
|
|
|
5969
|
-
//
|
|
6073
|
+
// node_modules/ajv/dist/vocabularies/applicator/if.js
|
|
5970
6074
|
var require_if = __commonJS({
|
|
5971
|
-
"
|
|
6075
|
+
"node_modules/ajv/dist/vocabularies/applicator/if.js"(exports) {
|
|
5972
6076
|
"use strict";
|
|
5973
6077
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
5974
6078
|
var codegen_1 = require_codegen();
|
|
@@ -6035,9 +6139,9 @@ var require_if = __commonJS({
|
|
|
6035
6139
|
}
|
|
6036
6140
|
});
|
|
6037
6141
|
|
|
6038
|
-
//
|
|
6142
|
+
// node_modules/ajv/dist/vocabularies/applicator/thenElse.js
|
|
6039
6143
|
var require_thenElse = __commonJS({
|
|
6040
|
-
"
|
|
6144
|
+
"node_modules/ajv/dist/vocabularies/applicator/thenElse.js"(exports) {
|
|
6041
6145
|
"use strict";
|
|
6042
6146
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6043
6147
|
var util_1 = require_util();
|
|
@@ -6053,9 +6157,9 @@ var require_thenElse = __commonJS({
|
|
|
6053
6157
|
}
|
|
6054
6158
|
});
|
|
6055
6159
|
|
|
6056
|
-
//
|
|
6160
|
+
// node_modules/ajv/dist/vocabularies/applicator/index.js
|
|
6057
6161
|
var require_applicator = __commonJS({
|
|
6058
|
-
"
|
|
6162
|
+
"node_modules/ajv/dist/vocabularies/applicator/index.js"(exports) {
|
|
6059
6163
|
"use strict";
|
|
6060
6164
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6061
6165
|
var additionalItems_1 = require_additionalItems();
|
|
@@ -6101,9 +6205,9 @@ var require_applicator = __commonJS({
|
|
|
6101
6205
|
}
|
|
6102
6206
|
});
|
|
6103
6207
|
|
|
6104
|
-
//
|
|
6208
|
+
// node_modules/ajv/dist/vocabularies/format/format.js
|
|
6105
6209
|
var require_format = __commonJS({
|
|
6106
|
-
"
|
|
6210
|
+
"node_modules/ajv/dist/vocabularies/format/format.js"(exports) {
|
|
6107
6211
|
"use strict";
|
|
6108
6212
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6109
6213
|
var codegen_1 = require_codegen();
|
|
@@ -6191,9 +6295,9 @@ var require_format = __commonJS({
|
|
|
6191
6295
|
}
|
|
6192
6296
|
});
|
|
6193
6297
|
|
|
6194
|
-
//
|
|
6298
|
+
// node_modules/ajv/dist/vocabularies/format/index.js
|
|
6195
6299
|
var require_format2 = __commonJS({
|
|
6196
|
-
"
|
|
6300
|
+
"node_modules/ajv/dist/vocabularies/format/index.js"(exports) {
|
|
6197
6301
|
"use strict";
|
|
6198
6302
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6199
6303
|
var format_1 = require_format();
|
|
@@ -6202,9 +6306,9 @@ var require_format2 = __commonJS({
|
|
|
6202
6306
|
}
|
|
6203
6307
|
});
|
|
6204
6308
|
|
|
6205
|
-
//
|
|
6309
|
+
// node_modules/ajv/dist/vocabularies/metadata.js
|
|
6206
6310
|
var require_metadata = __commonJS({
|
|
6207
|
-
"
|
|
6311
|
+
"node_modules/ajv/dist/vocabularies/metadata.js"(exports) {
|
|
6208
6312
|
"use strict";
|
|
6209
6313
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6210
6314
|
exports.contentVocabulary = exports.metadataVocabulary = void 0;
|
|
@@ -6225,9 +6329,9 @@ var require_metadata = __commonJS({
|
|
|
6225
6329
|
}
|
|
6226
6330
|
});
|
|
6227
6331
|
|
|
6228
|
-
//
|
|
6332
|
+
// node_modules/ajv/dist/vocabularies/draft7.js
|
|
6229
6333
|
var require_draft7 = __commonJS({
|
|
6230
|
-
"
|
|
6334
|
+
"node_modules/ajv/dist/vocabularies/draft7.js"(exports) {
|
|
6231
6335
|
"use strict";
|
|
6232
6336
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6233
6337
|
var core_1 = require_core2();
|
|
@@ -6247,9 +6351,9 @@ var require_draft7 = __commonJS({
|
|
|
6247
6351
|
}
|
|
6248
6352
|
});
|
|
6249
6353
|
|
|
6250
|
-
//
|
|
6354
|
+
// node_modules/ajv/dist/vocabularies/discriminator/types.js
|
|
6251
6355
|
var require_types = __commonJS({
|
|
6252
|
-
"
|
|
6356
|
+
"node_modules/ajv/dist/vocabularies/discriminator/types.js"(exports) {
|
|
6253
6357
|
"use strict";
|
|
6254
6358
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6255
6359
|
exports.DiscrError = void 0;
|
|
@@ -6261,9 +6365,9 @@ var require_types = __commonJS({
|
|
|
6261
6365
|
}
|
|
6262
6366
|
});
|
|
6263
6367
|
|
|
6264
|
-
//
|
|
6368
|
+
// node_modules/ajv/dist/vocabularies/discriminator/index.js
|
|
6265
6369
|
var require_discriminator = __commonJS({
|
|
6266
|
-
"
|
|
6370
|
+
"node_modules/ajv/dist/vocabularies/discriminator/index.js"(exports) {
|
|
6267
6371
|
"use strict";
|
|
6268
6372
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6269
6373
|
var codegen_1 = require_codegen();
|
|
@@ -6366,9 +6470,9 @@ var require_discriminator = __commonJS({
|
|
|
6366
6470
|
}
|
|
6367
6471
|
});
|
|
6368
6472
|
|
|
6369
|
-
//
|
|
6473
|
+
// node_modules/ajv/dist/refs/json-schema-draft-07.json
|
|
6370
6474
|
var require_json_schema_draft_07 = __commonJS({
|
|
6371
|
-
"
|
|
6475
|
+
"node_modules/ajv/dist/refs/json-schema-draft-07.json"(exports, module) {
|
|
6372
6476
|
module.exports = {
|
|
6373
6477
|
$schema: "http://json-schema.org/draft-07/schema#",
|
|
6374
6478
|
$id: "http://json-schema.org/draft-07/schema#",
|
|
@@ -6523,9 +6627,9 @@ var require_json_schema_draft_07 = __commonJS({
|
|
|
6523
6627
|
}
|
|
6524
6628
|
});
|
|
6525
6629
|
|
|
6526
|
-
//
|
|
6630
|
+
// node_modules/ajv/dist/ajv.js
|
|
6527
6631
|
var require_ajv = __commonJS({
|
|
6528
|
-
"
|
|
6632
|
+
"node_modules/ajv/dist/ajv.js"(exports, module) {
|
|
6529
6633
|
"use strict";
|
|
6530
6634
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6531
6635
|
exports.MissingRefError = exports.ValidationError = exports.CodeGen = exports.Name = exports.nil = exports.stringify = exports.str = exports._ = exports.KeywordCxt = exports.Ajv = void 0;
|
|
@@ -6593,9 +6697,9 @@ var require_ajv = __commonJS({
|
|
|
6593
6697
|
}
|
|
6594
6698
|
});
|
|
6595
6699
|
|
|
6596
|
-
//
|
|
6700
|
+
// node_modules/ajv-formats/dist/formats.js
|
|
6597
6701
|
var require_formats = __commonJS({
|
|
6598
|
-
"
|
|
6702
|
+
"node_modules/ajv-formats/dist/formats.js"(exports) {
|
|
6599
6703
|
"use strict";
|
|
6600
6704
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6601
6705
|
exports.formatNames = exports.fastFormats = exports.fullFormats = void 0;
|
|
@@ -6796,9 +6900,9 @@ var require_formats = __commonJS({
|
|
|
6796
6900
|
}
|
|
6797
6901
|
});
|
|
6798
6902
|
|
|
6799
|
-
//
|
|
6903
|
+
// node_modules/ajv-formats/dist/limit.js
|
|
6800
6904
|
var require_limit = __commonJS({
|
|
6801
|
-
"
|
|
6905
|
+
"node_modules/ajv-formats/dist/limit.js"(exports) {
|
|
6802
6906
|
"use strict";
|
|
6803
6907
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6804
6908
|
exports.formatLimitDefinition = void 0;
|
|
@@ -6868,9 +6972,9 @@ var require_limit = __commonJS({
|
|
|
6868
6972
|
}
|
|
6869
6973
|
});
|
|
6870
6974
|
|
|
6871
|
-
//
|
|
6975
|
+
// node_modules/ajv-formats/dist/index.js
|
|
6872
6976
|
var require_dist = __commonJS({
|
|
6873
|
-
"
|
|
6977
|
+
"node_modules/ajv-formats/dist/index.js"(exports, module) {
|
|
6874
6978
|
"use strict";
|
|
6875
6979
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6876
6980
|
var formats_1 = require_formats();
|
|
@@ -6910,7 +7014,42 @@ var require_dist = __commonJS({
|
|
|
6910
7014
|
}
|
|
6911
7015
|
});
|
|
6912
7016
|
|
|
6913
|
-
//
|
|
7017
|
+
// node_modules/@modelcontextprotocol/sdk/dist/esm/shared/mediaType.js
|
|
7018
|
+
var import_content_type = __toESM(require_content_type(), 1);
|
|
7019
|
+
function mediaTypeEssence(header) {
|
|
7020
|
+
if (!header) {
|
|
7021
|
+
return void 0;
|
|
7022
|
+
}
|
|
7023
|
+
try {
|
|
7024
|
+
return import_content_type.default.parse(header).type;
|
|
7025
|
+
} catch {
|
|
7026
|
+
const essence = (header.split(";", 1)[0] ?? "").trim().toLowerCase();
|
|
7027
|
+
if (essence === "" || header.slice(essence.length).includes(",")) {
|
|
7028
|
+
return void 0;
|
|
7029
|
+
}
|
|
7030
|
+
return essence;
|
|
7031
|
+
}
|
|
7032
|
+
}
|
|
7033
|
+
function isJsonContentType(header) {
|
|
7034
|
+
if (header === "application/json") {
|
|
7035
|
+
return true;
|
|
7036
|
+
}
|
|
7037
|
+
return mediaTypeEssence(header) === "application/json";
|
|
7038
|
+
}
|
|
7039
|
+
|
|
7040
|
+
// node_modules/@modelcontextprotocol/sdk/dist/esm/server/sseKeepAlive.js
|
|
7041
|
+
var DEFAULT_SSE_KEEP_ALIVE_MS = 15e3;
|
|
7042
|
+
var MAX_TIMER_DELAY_MS = 2 ** 31 - 1;
|
|
7043
|
+
function armSseKeepAlive(intervalMs, onTick) {
|
|
7044
|
+
if (!Number.isFinite(intervalMs) || intervalMs < 1) {
|
|
7045
|
+
return void 0;
|
|
7046
|
+
}
|
|
7047
|
+
const timer = setInterval(onTick, Math.min(intervalMs, MAX_TIMER_DELAY_MS));
|
|
7048
|
+
timer.unref?.();
|
|
7049
|
+
return timer;
|
|
7050
|
+
}
|
|
7051
|
+
|
|
7052
|
+
// node_modules/zod/v4/core/core.js
|
|
6914
7053
|
var _a;
|
|
6915
7054
|
// @__NO_SIDE_EFFECTS__
|
|
6916
7055
|
function $constructor(name, initializer3, params) {
|
|
@@ -6983,7 +7122,7 @@ function config(newConfig) {
|
|
|
6983
7122
|
return globalConfig;
|
|
6984
7123
|
}
|
|
6985
7124
|
|
|
6986
|
-
//
|
|
7125
|
+
// node_modules/zod/v4/core/util.js
|
|
6987
7126
|
var util_exports = {};
|
|
6988
7127
|
__export(util_exports, {
|
|
6989
7128
|
BIGINT_FORMAT_RANGES: () => BIGINT_FORMAT_RANGES,
|
|
@@ -7679,7 +7818,7 @@ var Class = class {
|
|
|
7679
7818
|
}
|
|
7680
7819
|
};
|
|
7681
7820
|
|
|
7682
|
-
//
|
|
7821
|
+
// node_modules/zod/v4/core/errors.js
|
|
7683
7822
|
var initializer = (inst, def) => {
|
|
7684
7823
|
inst.name = "$ZodError";
|
|
7685
7824
|
Object.defineProperty(inst, "_zod", {
|
|
@@ -7748,7 +7887,7 @@ function formatError(error2, mapper = (issue2) => issue2.message) {
|
|
|
7748
7887
|
return fieldErrors;
|
|
7749
7888
|
}
|
|
7750
7889
|
|
|
7751
|
-
//
|
|
7890
|
+
// node_modules/zod/v4/core/parse.js
|
|
7752
7891
|
var _parse = (_Err) => (schema, value, _ctx, _params) => {
|
|
7753
7892
|
const ctx = _ctx ? { ..._ctx, async: false } : { async: false };
|
|
7754
7893
|
const result = schema._zod.run({ value, issues: [] }, ctx);
|
|
@@ -7826,7 +7965,7 @@ var _safeDecodeAsync = (_Err) => async (schema, value, _ctx) => {
|
|
|
7826
7965
|
return _safeParseAsync(_Err)(schema, value, _ctx);
|
|
7827
7966
|
};
|
|
7828
7967
|
|
|
7829
|
-
//
|
|
7968
|
+
// node_modules/zod/v4/core/regexes.js
|
|
7830
7969
|
var cuid = /^[cC][0-9a-z]{6,}$/;
|
|
7831
7970
|
var cuid2 = /^[0-9a-z]+$/;
|
|
7832
7971
|
var ulid = /^[0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{26}$/;
|
|
@@ -7884,7 +8023,7 @@ var _null = /^null$/i;
|
|
|
7884
8023
|
var lowercase = /^[^A-Z]*$/;
|
|
7885
8024
|
var uppercase = /^[^a-z]*$/;
|
|
7886
8025
|
|
|
7887
|
-
//
|
|
8026
|
+
// node_modules/zod/v4/core/checks.js
|
|
7888
8027
|
var $ZodCheck = /* @__PURE__ */ $constructor("$ZodCheck", (inst, def) => {
|
|
7889
8028
|
var _a3;
|
|
7890
8029
|
inst._zod ?? (inst._zod = {});
|
|
@@ -8274,7 +8413,7 @@ var $ZodCheckOverwrite = /* @__PURE__ */ $constructor("$ZodCheckOverwrite", (ins
|
|
|
8274
8413
|
};
|
|
8275
8414
|
});
|
|
8276
8415
|
|
|
8277
|
-
//
|
|
8416
|
+
// node_modules/zod/v4/core/doc.js
|
|
8278
8417
|
var Doc = class {
|
|
8279
8418
|
constructor(args = []) {
|
|
8280
8419
|
this.content = [];
|
|
@@ -8310,14 +8449,14 @@ var Doc = class {
|
|
|
8310
8449
|
}
|
|
8311
8450
|
};
|
|
8312
8451
|
|
|
8313
|
-
//
|
|
8452
|
+
// node_modules/zod/v4/core/versions.js
|
|
8314
8453
|
var version = {
|
|
8315
8454
|
major: 4,
|
|
8316
8455
|
minor: 4,
|
|
8317
8456
|
patch: 3
|
|
8318
8457
|
};
|
|
8319
8458
|
|
|
8320
|
-
//
|
|
8459
|
+
// node_modules/zod/v4/core/schemas.js
|
|
8321
8460
|
var $ZodType = /* @__PURE__ */ $constructor("$ZodType", (inst, def) => {
|
|
8322
8461
|
var _a3;
|
|
8323
8462
|
inst ?? (inst = {});
|
|
@@ -9797,7 +9936,7 @@ function handleRefineResult(result, payload, input, inst) {
|
|
|
9797
9936
|
}
|
|
9798
9937
|
}
|
|
9799
9938
|
|
|
9800
|
-
//
|
|
9939
|
+
// node_modules/zod/v4/locales/en.js
|
|
9801
9940
|
var error = () => {
|
|
9802
9941
|
const Sizable = {
|
|
9803
9942
|
string: { unit: "characters", verb: "to have" },
|
|
@@ -9910,7 +10049,7 @@ function en_default() {
|
|
|
9910
10049
|
};
|
|
9911
10050
|
}
|
|
9912
10051
|
|
|
9913
|
-
//
|
|
10052
|
+
// node_modules/zod/v4/core/registries.js
|
|
9914
10053
|
var _a2;
|
|
9915
10054
|
var $ZodRegistry = class {
|
|
9916
10055
|
constructor() {
|
|
@@ -9958,7 +10097,7 @@ function registry() {
|
|
|
9958
10097
|
(_a2 = globalThis).__zod_globalRegistry ?? (_a2.__zod_globalRegistry = registry());
|
|
9959
10098
|
var globalRegistry = globalThis.__zod_globalRegistry;
|
|
9960
10099
|
|
|
9961
|
-
//
|
|
10100
|
+
// node_modules/zod/v4/core/api.js
|
|
9962
10101
|
// @__NO_SIDE_EFFECTS__
|
|
9963
10102
|
function _string(Class2, params) {
|
|
9964
10103
|
return new Class2({
|
|
@@ -10486,7 +10625,7 @@ function _check(fn, params) {
|
|
|
10486
10625
|
return ch;
|
|
10487
10626
|
}
|
|
10488
10627
|
|
|
10489
|
-
//
|
|
10628
|
+
// node_modules/zod/v4/core/to-json-schema.js
|
|
10490
10629
|
function initializeContext(params) {
|
|
10491
10630
|
let target = params?.target ?? "draft-2020-12";
|
|
10492
10631
|
if (target === "draft-4")
|
|
@@ -10845,7 +10984,7 @@ var createStandardJSONSchemaMethod = (schema, io, processors = {}) => (params) =
|
|
|
10845
10984
|
return finalize(ctx, schema);
|
|
10846
10985
|
};
|
|
10847
10986
|
|
|
10848
|
-
//
|
|
10987
|
+
// node_modules/zod/v4/core/json-schema-processors.js
|
|
10849
10988
|
var formatMap = {
|
|
10850
10989
|
guid: "uuid",
|
|
10851
10990
|
url: "uri",
|
|
@@ -11178,7 +11317,7 @@ var optionalProcessor = (schema, ctx, _json, params) => {
|
|
|
11178
11317
|
seen.ref = def.innerType;
|
|
11179
11318
|
};
|
|
11180
11319
|
|
|
11181
|
-
//
|
|
11320
|
+
// node_modules/zod/v4/classic/iso.js
|
|
11182
11321
|
var iso_exports = {};
|
|
11183
11322
|
__export(iso_exports, {
|
|
11184
11323
|
ZodISODate: () => ZodISODate,
|
|
@@ -11219,7 +11358,7 @@ function duration2(params) {
|
|
|
11219
11358
|
return _isoDuration(ZodISODuration, params);
|
|
11220
11359
|
}
|
|
11221
11360
|
|
|
11222
|
-
//
|
|
11361
|
+
// node_modules/zod/v4/classic/errors.js
|
|
11223
11362
|
var initializer2 = (inst, issues) => {
|
|
11224
11363
|
$ZodError.init(inst, issues);
|
|
11225
11364
|
inst.name = "ZodError";
|
|
@@ -11258,7 +11397,7 @@ var ZodRealError = /* @__PURE__ */ $constructor("ZodError", initializer2, {
|
|
|
11258
11397
|
Parent: Error
|
|
11259
11398
|
});
|
|
11260
11399
|
|
|
11261
|
-
//
|
|
11400
|
+
// node_modules/zod/v4/classic/parse.js
|
|
11262
11401
|
var parse2 = /* @__PURE__ */ _parse(ZodRealError);
|
|
11263
11402
|
var parseAsync2 = /* @__PURE__ */ _parseAsync(ZodRealError);
|
|
11264
11403
|
var safeParse2 = /* @__PURE__ */ _safeParse(ZodRealError);
|
|
@@ -11272,7 +11411,7 @@ var safeDecode = /* @__PURE__ */ _safeDecode(ZodRealError);
|
|
|
11272
11411
|
var safeEncodeAsync = /* @__PURE__ */ _safeEncodeAsync(ZodRealError);
|
|
11273
11412
|
var safeDecodeAsync = /* @__PURE__ */ _safeDecodeAsync(ZodRealError);
|
|
11274
11413
|
|
|
11275
|
-
//
|
|
11414
|
+
// node_modules/zod/v4/classic/schemas.js
|
|
11276
11415
|
var _installedGroups = /* @__PURE__ */ new WeakMap();
|
|
11277
11416
|
function _installLazyMethods(inst, group, methods) {
|
|
11278
11417
|
const proto = Object.getPrototypeOf(inst);
|
|
@@ -12114,10 +12253,10 @@ function preprocess(fn, schema) {
|
|
|
12114
12253
|
});
|
|
12115
12254
|
}
|
|
12116
12255
|
|
|
12117
|
-
//
|
|
12256
|
+
// node_modules/zod/v4/classic/external.js
|
|
12118
12257
|
config(en_default());
|
|
12119
12258
|
|
|
12120
|
-
//
|
|
12259
|
+
// node_modules/@modelcontextprotocol/sdk/dist/esm/types.js
|
|
12121
12260
|
var LATEST_PROTOCOL_VERSION = "2025-11-25";
|
|
12122
12261
|
var DEFAULT_NEGOTIATED_PROTOCOL_VERSION = "2025-03-26";
|
|
12123
12262
|
var SUPPORTED_PROTOCOL_VERSIONS = [LATEST_PROTOCOL_VERSION, "2025-06-18", "2025-03-26", "2024-11-05", "2024-10-07"];
|
|
@@ -12128,10 +12267,9 @@ var ProgressTokenSchema = union([string2(), number2().int()]);
|
|
|
12128
12267
|
var CursorSchema = string2();
|
|
12129
12268
|
var TaskCreationParamsSchema = looseObject({
|
|
12130
12269
|
/**
|
|
12131
|
-
*
|
|
12132
|
-
* If null, the task has unlimited lifetime until manually cleaned up.
|
|
12270
|
+
* Requested duration in milliseconds to retain task from creation.
|
|
12133
12271
|
*/
|
|
12134
|
-
ttl:
|
|
12272
|
+
ttl: number2().optional(),
|
|
12135
12273
|
/**
|
|
12136
12274
|
* Time in milliseconds to wait between task status requests.
|
|
12137
12275
|
*/
|
|
@@ -12431,7 +12569,11 @@ var ClientCapabilitiesSchema = object({
|
|
|
12431
12569
|
/**
|
|
12432
12570
|
* Present if the client supports task creation.
|
|
12433
12571
|
*/
|
|
12434
|
-
tasks: ClientTasksCapabilitySchema.optional()
|
|
12572
|
+
tasks: ClientTasksCapabilitySchema.optional(),
|
|
12573
|
+
/**
|
|
12574
|
+
* Extensions that the client supports. Keys are extension identifiers (vendor-prefix/extension-name).
|
|
12575
|
+
*/
|
|
12576
|
+
extensions: record(string2(), AssertObjectSchema).optional()
|
|
12435
12577
|
});
|
|
12436
12578
|
var InitializeRequestParamsSchema = BaseRequestParamsSchema.extend({
|
|
12437
12579
|
/**
|
|
@@ -12493,7 +12635,11 @@ var ServerCapabilitiesSchema = object({
|
|
|
12493
12635
|
/**
|
|
12494
12636
|
* Present if the server supports task creation.
|
|
12495
12637
|
*/
|
|
12496
|
-
tasks: ServerTasksCapabilitySchema.optional()
|
|
12638
|
+
tasks: ServerTasksCapabilitySchema.optional(),
|
|
12639
|
+
/**
|
|
12640
|
+
* Extensions that the server supports. Keys are extension identifiers (vendor-prefix/extension-name).
|
|
12641
|
+
*/
|
|
12642
|
+
extensions: record(string2(), AssertObjectSchema).optional()
|
|
12497
12643
|
});
|
|
12498
12644
|
var InitializeResultSchema = ResultSchema.extend({
|
|
12499
12645
|
/**
|
|
@@ -12685,6 +12831,12 @@ var ResourceSchema = object({
|
|
|
12685
12831
|
* The MIME type of this resource, if known.
|
|
12686
12832
|
*/
|
|
12687
12833
|
mimeType: optional(string2()),
|
|
12834
|
+
/**
|
|
12835
|
+
* The size of the raw resource content, in bytes (i.e., before base64 encoding or any tokenization), if known.
|
|
12836
|
+
*
|
|
12837
|
+
* This can be used by Hosts to display file sizes and estimate context window usage.
|
|
12838
|
+
*/
|
|
12839
|
+
size: optional(number2()),
|
|
12688
12840
|
/**
|
|
12689
12841
|
* Optional annotations for the client.
|
|
12690
12842
|
*/
|
|
@@ -13625,17 +13777,19 @@ var UrlElicitationRequiredError = class extends McpError {
|
|
|
13625
13777
|
}
|
|
13626
13778
|
};
|
|
13627
13779
|
|
|
13628
|
-
//
|
|
13780
|
+
// node_modules/@modelcontextprotocol/sdk/dist/esm/server/webStandardStreamableHttp.js
|
|
13629
13781
|
var WebStandardStreamableHTTPServerTransport = class {
|
|
13630
13782
|
constructor(options = {}) {
|
|
13631
13783
|
this._started = false;
|
|
13632
13784
|
this._hasHandledRequest = false;
|
|
13633
13785
|
this._streamMapping = /* @__PURE__ */ new Map();
|
|
13634
13786
|
this._requestToStreamMapping = /* @__PURE__ */ new Map();
|
|
13787
|
+
this._resumableStreams = /* @__PURE__ */ new Set();
|
|
13635
13788
|
this._requestResponseMap = /* @__PURE__ */ new Map();
|
|
13636
13789
|
this._initialized = false;
|
|
13637
13790
|
this._enableJsonResponse = false;
|
|
13638
13791
|
this._standaloneSseStreamId = "_GET_stream";
|
|
13792
|
+
this._closed = false;
|
|
13639
13793
|
this.sessionIdGenerator = options.sessionIdGenerator;
|
|
13640
13794
|
this._enableJsonResponse = options.enableJsonResponse ?? false;
|
|
13641
13795
|
this._eventStore = options.eventStore;
|
|
@@ -13645,6 +13799,27 @@ var WebStandardStreamableHTTPServerTransport = class {
|
|
|
13645
13799
|
this._allowedOrigins = options.allowedOrigins;
|
|
13646
13800
|
this._enableDnsRebindingProtection = options.enableDnsRebindingProtection ?? false;
|
|
13647
13801
|
this._retryInterval = options.retryInterval;
|
|
13802
|
+
this._keepAliveMs = options.keepAliveMs ?? DEFAULT_SSE_KEEP_ALIVE_MS;
|
|
13803
|
+
}
|
|
13804
|
+
/**
|
|
13805
|
+
* Arms a keep-alive interval for an SSE stream that periodically writes an SSE
|
|
13806
|
+
* comment frame so intermediaries and idle timeouts don't kill the connection.
|
|
13807
|
+
* The returned timer is owned by the stream it was armed for: the stream's
|
|
13808
|
+
* cancel/cleanup callbacks must clear it. The interval clears itself if a
|
|
13809
|
+
* write fails (stream already closed/cancelled).
|
|
13810
|
+
*/
|
|
13811
|
+
startKeepAlive(controller, encoder) {
|
|
13812
|
+
if (this._closed)
|
|
13813
|
+
return void 0;
|
|
13814
|
+
const timer = armSseKeepAlive(this._keepAliveMs, () => {
|
|
13815
|
+
try {
|
|
13816
|
+
controller.enqueue(encoder.encode(": keepalive\n\n"));
|
|
13817
|
+
} catch {
|
|
13818
|
+
if (timer !== void 0)
|
|
13819
|
+
clearInterval(timer);
|
|
13820
|
+
}
|
|
13821
|
+
});
|
|
13822
|
+
return timer;
|
|
13648
13823
|
}
|
|
13649
13824
|
/**
|
|
13650
13825
|
* Starts the transport. This is required by the Transport interface but is a no-op
|
|
@@ -13707,6 +13882,9 @@ var WebStandardStreamableHTTPServerTransport = class {
|
|
|
13707
13882
|
* Returns a Response object (Web Standard)
|
|
13708
13883
|
*/
|
|
13709
13884
|
async handleRequest(req, options) {
|
|
13885
|
+
if (this._closed) {
|
|
13886
|
+
return this.createJsonErrorResponse(404, -32001, "Session not found");
|
|
13887
|
+
}
|
|
13710
13888
|
if (!this.sessionIdGenerator && this._hasHandledRequest) {
|
|
13711
13889
|
throw new Error("Stateless transport cannot be reused across requests. Create a new transport per request.");
|
|
13712
13890
|
}
|
|
@@ -13751,6 +13929,7 @@ data:
|
|
|
13751
13929
|
`;
|
|
13752
13930
|
}
|
|
13753
13931
|
controller.enqueue(encoder.encode(primingEvent));
|
|
13932
|
+
this._resumableStreams.add(streamId);
|
|
13754
13933
|
}
|
|
13755
13934
|
/**
|
|
13756
13935
|
* Handles GET requests for SSE stream
|
|
@@ -13758,6 +13937,7 @@ data:
|
|
|
13758
13937
|
async handleGetRequest(req) {
|
|
13759
13938
|
const acceptHeader = req.headers.get("accept");
|
|
13760
13939
|
if (!acceptHeader?.includes("text/event-stream")) {
|
|
13940
|
+
this.onerror?.(new Error("Not Acceptable: Client must accept text/event-stream"));
|
|
13761
13941
|
return this.createJsonErrorResponse(406, -32e3, "Not Acceptable: Client must accept text/event-stream");
|
|
13762
13942
|
}
|
|
13763
13943
|
const sessionError = this.validateSession(req);
|
|
@@ -13775,22 +13955,30 @@ data:
|
|
|
13775
13955
|
}
|
|
13776
13956
|
}
|
|
13777
13957
|
if (this._streamMapping.get(this._standaloneSseStreamId) !== void 0) {
|
|
13958
|
+
this.onerror?.(new Error("Conflict: Only one SSE stream is allowed per session"));
|
|
13778
13959
|
return this.createJsonErrorResponse(409, -32e3, "Conflict: Only one SSE stream is allowed per session");
|
|
13779
13960
|
}
|
|
13780
13961
|
const encoder = new TextEncoder();
|
|
13781
13962
|
let streamController;
|
|
13963
|
+
let keepAliveTimer = void 0;
|
|
13782
13964
|
const readable = new ReadableStream({
|
|
13783
13965
|
start: (controller) => {
|
|
13784
13966
|
streamController = controller;
|
|
13785
13967
|
},
|
|
13786
13968
|
cancel: () => {
|
|
13787
|
-
|
|
13969
|
+
if (keepAliveTimer !== void 0) {
|
|
13970
|
+
clearInterval(keepAliveTimer);
|
|
13971
|
+
}
|
|
13972
|
+
if (this._streamMapping.get(this._standaloneSseStreamId)?.controller === streamController) {
|
|
13973
|
+
this._streamMapping.delete(this._standaloneSseStreamId);
|
|
13974
|
+
}
|
|
13788
13975
|
}
|
|
13789
13976
|
});
|
|
13790
13977
|
const headers = {
|
|
13791
13978
|
"Content-Type": "text/event-stream",
|
|
13792
13979
|
"Cache-Control": "no-cache, no-transform",
|
|
13793
|
-
Connection: "keep-alive"
|
|
13980
|
+
Connection: "keep-alive",
|
|
13981
|
+
"X-Accel-Buffering": "no"
|
|
13794
13982
|
};
|
|
13795
13983
|
if (this.sessionId !== void 0) {
|
|
13796
13984
|
headers["mcp-session-id"] = this.sessionId;
|
|
@@ -13799,6 +13987,9 @@ data:
|
|
|
13799
13987
|
controller: streamController,
|
|
13800
13988
|
encoder,
|
|
13801
13989
|
cleanup: () => {
|
|
13990
|
+
if (keepAliveTimer !== void 0) {
|
|
13991
|
+
clearInterval(keepAliveTimer);
|
|
13992
|
+
}
|
|
13802
13993
|
this._streamMapping.delete(this._standaloneSseStreamId);
|
|
13803
13994
|
try {
|
|
13804
13995
|
streamController.close();
|
|
@@ -13806,6 +13997,7 @@ data:
|
|
|
13806
13997
|
}
|
|
13807
13998
|
}
|
|
13808
13999
|
});
|
|
14000
|
+
keepAliveTimer = this.startKeepAlive(streamController, encoder);
|
|
13809
14001
|
return new Response(readable, { headers });
|
|
13810
14002
|
}
|
|
13811
14003
|
/**
|
|
@@ -13814,6 +14006,7 @@ data:
|
|
|
13814
14006
|
*/
|
|
13815
14007
|
async replayEvents(lastEventId) {
|
|
13816
14008
|
if (!this._eventStore) {
|
|
14009
|
+
this.onerror?.(new Error("Event store not configured"));
|
|
13817
14010
|
return this.createJsonErrorResponse(400, -32e3, "Event store not configured");
|
|
13818
14011
|
}
|
|
13819
14012
|
try {
|
|
@@ -13821,30 +14014,44 @@ data:
|
|
|
13821
14014
|
if (this._eventStore.getStreamIdForEventId) {
|
|
13822
14015
|
streamId = await this._eventStore.getStreamIdForEventId(lastEventId);
|
|
13823
14016
|
if (!streamId) {
|
|
14017
|
+
this.onerror?.(new Error("Invalid event ID format"));
|
|
13824
14018
|
return this.createJsonErrorResponse(400, -32e3, "Invalid event ID format");
|
|
13825
14019
|
}
|
|
13826
14020
|
if (this._streamMapping.get(streamId) !== void 0) {
|
|
14021
|
+
this.onerror?.(new Error("Conflict: Stream already has an active connection"));
|
|
13827
14022
|
return this.createJsonErrorResponse(409, -32e3, "Conflict: Stream already has an active connection");
|
|
13828
14023
|
}
|
|
13829
14024
|
}
|
|
13830
14025
|
const headers = {
|
|
13831
14026
|
"Content-Type": "text/event-stream",
|
|
13832
14027
|
"Cache-Control": "no-cache, no-transform",
|
|
13833
|
-
Connection: "keep-alive"
|
|
14028
|
+
Connection: "keep-alive",
|
|
14029
|
+
"X-Accel-Buffering": "no"
|
|
13834
14030
|
};
|
|
13835
14031
|
if (this.sessionId !== void 0) {
|
|
13836
14032
|
headers["mcp-session-id"] = this.sessionId;
|
|
13837
14033
|
}
|
|
13838
14034
|
const encoder = new TextEncoder();
|
|
13839
14035
|
let streamController;
|
|
14036
|
+
let keepAliveTimer = void 0;
|
|
14037
|
+
let replayedStreamId = void 0;
|
|
14038
|
+
let cancelled = false;
|
|
13840
14039
|
const readable = new ReadableStream({
|
|
13841
14040
|
start: (controller) => {
|
|
13842
14041
|
streamController = controller;
|
|
13843
14042
|
},
|
|
13844
14043
|
cancel: () => {
|
|
14044
|
+
cancelled = true;
|
|
14045
|
+
if (keepAliveTimer !== void 0) {
|
|
14046
|
+
clearInterval(keepAliveTimer);
|
|
14047
|
+
}
|
|
14048
|
+
if (replayedStreamId !== void 0 && this._streamMapping.get(replayedStreamId)?.controller === streamController) {
|
|
14049
|
+
this._streamMapping.delete(replayedStreamId);
|
|
14050
|
+
}
|
|
13845
14051
|
}
|
|
13846
14052
|
});
|
|
13847
|
-
const
|
|
14053
|
+
const replayedEventIds = /* @__PURE__ */ new Set();
|
|
14054
|
+
replayedStreamId = await this._eventStore.replayEventsAfter(lastEventId, {
|
|
13848
14055
|
send: async (eventId, message) => {
|
|
13849
14056
|
const success = this.writeSSEEvent(streamController, encoder, message, eventId);
|
|
13850
14057
|
if (!success) {
|
|
@@ -13853,13 +14060,27 @@ data:
|
|
|
13853
14060
|
streamController.close();
|
|
13854
14061
|
} catch {
|
|
13855
14062
|
}
|
|
14063
|
+
} else {
|
|
14064
|
+
replayedEventIds.add(eventId);
|
|
13856
14065
|
}
|
|
13857
14066
|
}
|
|
13858
14067
|
});
|
|
14068
|
+
if (this._closed || cancelled) {
|
|
14069
|
+
try {
|
|
14070
|
+
streamController.close();
|
|
14071
|
+
} catch {
|
|
14072
|
+
}
|
|
14073
|
+
return this.createJsonErrorResponse(404, -32001, "Session not found");
|
|
14074
|
+
}
|
|
14075
|
+
this._streamMapping.get(replayedStreamId)?.cleanup();
|
|
13859
14076
|
this._streamMapping.set(replayedStreamId, {
|
|
13860
14077
|
controller: streamController,
|
|
13861
14078
|
encoder,
|
|
14079
|
+
replayedEventIds,
|
|
13862
14080
|
cleanup: () => {
|
|
14081
|
+
if (keepAliveTimer !== void 0) {
|
|
14082
|
+
clearInterval(keepAliveTimer);
|
|
14083
|
+
}
|
|
13863
14084
|
this._streamMapping.delete(replayedStreamId);
|
|
13864
14085
|
try {
|
|
13865
14086
|
streamController.close();
|
|
@@ -13867,6 +14088,8 @@ data:
|
|
|
13867
14088
|
}
|
|
13868
14089
|
}
|
|
13869
14090
|
});
|
|
14091
|
+
this._resumableStreams.add(replayedStreamId);
|
|
14092
|
+
keepAliveTimer = this.startKeepAlive(streamController, encoder);
|
|
13870
14093
|
return new Response(readable, { headers });
|
|
13871
14094
|
} catch (error2) {
|
|
13872
14095
|
this.onerror?.(error2);
|
|
@@ -13889,7 +14112,8 @@ data:
|
|
|
13889
14112
|
`;
|
|
13890
14113
|
controller.enqueue(encoder.encode(eventData));
|
|
13891
14114
|
return true;
|
|
13892
|
-
} catch {
|
|
14115
|
+
} catch (error2) {
|
|
14116
|
+
this.onerror?.(error2);
|
|
13893
14117
|
return false;
|
|
13894
14118
|
}
|
|
13895
14119
|
}
|
|
@@ -13897,6 +14121,7 @@ data:
|
|
|
13897
14121
|
* Handles unsupported requests (PUT, PATCH, etc.)
|
|
13898
14122
|
*/
|
|
13899
14123
|
handleUnsupportedRequest() {
|
|
14124
|
+
this.onerror?.(new Error("Method not allowed."));
|
|
13900
14125
|
return new Response(JSON.stringify({
|
|
13901
14126
|
jsonrpc: "2.0",
|
|
13902
14127
|
error: {
|
|
@@ -13919,14 +14144,17 @@ data:
|
|
|
13919
14144
|
try {
|
|
13920
14145
|
const acceptHeader = req.headers.get("accept");
|
|
13921
14146
|
if (!acceptHeader?.includes("application/json") || !acceptHeader.includes("text/event-stream")) {
|
|
14147
|
+
this.onerror?.(new Error("Not Acceptable: Client must accept both application/json and text/event-stream"));
|
|
13922
14148
|
return this.createJsonErrorResponse(406, -32e3, "Not Acceptable: Client must accept both application/json and text/event-stream");
|
|
13923
14149
|
}
|
|
13924
14150
|
const ct = req.headers.get("content-type");
|
|
13925
|
-
if (!ct
|
|
14151
|
+
if (!isJsonContentType(ct)) {
|
|
14152
|
+
this.onerror?.(new Error("Unsupported Media Type: Content-Type must be application/json"));
|
|
13926
14153
|
return this.createJsonErrorResponse(415, -32e3, "Unsupported Media Type: Content-Type must be application/json");
|
|
13927
14154
|
}
|
|
13928
14155
|
const requestInfo = {
|
|
13929
|
-
headers: Object.fromEntries(req.headers.entries())
|
|
14156
|
+
headers: Object.fromEntries(req.headers.entries()),
|
|
14157
|
+
url: new URL(req.url)
|
|
13930
14158
|
};
|
|
13931
14159
|
let rawMessage;
|
|
13932
14160
|
if (options?.parsedBody !== void 0) {
|
|
@@ -13935,6 +14163,7 @@ data:
|
|
|
13935
14163
|
try {
|
|
13936
14164
|
rawMessage = await req.json();
|
|
13937
14165
|
} catch {
|
|
14166
|
+
this.onerror?.(new Error("Parse error: Invalid JSON"));
|
|
13938
14167
|
return this.createJsonErrorResponse(400, -32700, "Parse error: Invalid JSON");
|
|
13939
14168
|
}
|
|
13940
14169
|
}
|
|
@@ -13946,14 +14175,20 @@ data:
|
|
|
13946
14175
|
messages = [JSONRPCMessageSchema.parse(rawMessage)];
|
|
13947
14176
|
}
|
|
13948
14177
|
} catch {
|
|
14178
|
+
this.onerror?.(new Error("Parse error: Invalid JSON-RPC message"));
|
|
13949
14179
|
return this.createJsonErrorResponse(400, -32700, "Parse error: Invalid JSON-RPC message");
|
|
13950
14180
|
}
|
|
14181
|
+
if (this._closed) {
|
|
14182
|
+
return this.createJsonErrorResponse(404, -32001, "Session not found");
|
|
14183
|
+
}
|
|
13951
14184
|
const isInitializationRequest = messages.some(isInitializeRequest);
|
|
13952
14185
|
if (isInitializationRequest) {
|
|
13953
14186
|
if (this._initialized && this.sessionId !== void 0) {
|
|
14187
|
+
this.onerror?.(new Error("Invalid Request: Server already initialized"));
|
|
13954
14188
|
return this.createJsonErrorResponse(400, -32600, "Invalid Request: Server already initialized");
|
|
13955
14189
|
}
|
|
13956
14190
|
if (messages.length > 1) {
|
|
14191
|
+
this.onerror?.(new Error("Invalid Request: Only one initialization request is allowed"));
|
|
13957
14192
|
return this.createJsonErrorResponse(400, -32600, "Invalid Request: Only one initialization request is allowed");
|
|
13958
14193
|
}
|
|
13959
14194
|
this.sessionId = this.sessionIdGenerator?.();
|
|
@@ -13972,6 +14207,9 @@ data:
|
|
|
13972
14207
|
return protocolError;
|
|
13973
14208
|
}
|
|
13974
14209
|
}
|
|
14210
|
+
if (this._closed) {
|
|
14211
|
+
return this.createJsonErrorResponse(404, -32001, "Session not found");
|
|
14212
|
+
}
|
|
13975
14213
|
const hasRequests = messages.some(isJSONRPCRequest);
|
|
13976
14214
|
if (!hasRequests) {
|
|
13977
14215
|
for (const message of messages) {
|
|
@@ -14002,18 +14240,25 @@ data:
|
|
|
14002
14240
|
}
|
|
14003
14241
|
const encoder = new TextEncoder();
|
|
14004
14242
|
let streamController;
|
|
14243
|
+
let keepAliveTimer = void 0;
|
|
14005
14244
|
const readable = new ReadableStream({
|
|
14006
14245
|
start: (controller) => {
|
|
14007
14246
|
streamController = controller;
|
|
14008
14247
|
},
|
|
14009
14248
|
cancel: () => {
|
|
14010
|
-
|
|
14249
|
+
if (keepAliveTimer !== void 0) {
|
|
14250
|
+
clearInterval(keepAliveTimer);
|
|
14251
|
+
}
|
|
14252
|
+
if (this._streamMapping.get(streamId)?.controller === streamController) {
|
|
14253
|
+
this._streamMapping.delete(streamId);
|
|
14254
|
+
}
|
|
14011
14255
|
}
|
|
14012
14256
|
});
|
|
14013
14257
|
const headers = {
|
|
14014
14258
|
"Content-Type": "text/event-stream",
|
|
14015
|
-
"Cache-Control": "no-cache",
|
|
14016
|
-
Connection: "keep-alive"
|
|
14259
|
+
"Cache-Control": "no-cache, no-transform",
|
|
14260
|
+
Connection: "keep-alive",
|
|
14261
|
+
"X-Accel-Buffering": "no"
|
|
14017
14262
|
};
|
|
14018
14263
|
if (this.sessionId !== void 0) {
|
|
14019
14264
|
headers["mcp-session-id"] = this.sessionId;
|
|
@@ -14024,6 +14269,9 @@ data:
|
|
|
14024
14269
|
controller: streamController,
|
|
14025
14270
|
encoder,
|
|
14026
14271
|
cleanup: () => {
|
|
14272
|
+
if (keepAliveTimer !== void 0) {
|
|
14273
|
+
clearInterval(keepAliveTimer);
|
|
14274
|
+
}
|
|
14027
14275
|
this._streamMapping.delete(streamId);
|
|
14028
14276
|
try {
|
|
14029
14277
|
streamController.close();
|
|
@@ -14034,19 +14282,33 @@ data:
|
|
|
14034
14282
|
this._requestToStreamMapping.set(message.id, streamId);
|
|
14035
14283
|
}
|
|
14036
14284
|
}
|
|
14037
|
-
|
|
14038
|
-
|
|
14039
|
-
|
|
14040
|
-
|
|
14041
|
-
|
|
14042
|
-
|
|
14043
|
-
|
|
14044
|
-
|
|
14045
|
-
|
|
14046
|
-
|
|
14047
|
-
|
|
14285
|
+
try {
|
|
14286
|
+
await this.writePrimingEvent(streamController, encoder, streamId, clientProtocolVersion);
|
|
14287
|
+
for (const message of messages) {
|
|
14288
|
+
let closeSSEStream;
|
|
14289
|
+
let closeStandaloneSSEStream;
|
|
14290
|
+
if (isJSONRPCRequest(message) && this._eventStore && clientProtocolVersion >= "2025-11-25") {
|
|
14291
|
+
closeSSEStream = () => {
|
|
14292
|
+
this.closeSSEStream(message.id);
|
|
14293
|
+
};
|
|
14294
|
+
closeStandaloneSSEStream = () => {
|
|
14295
|
+
this.closeStandaloneSSEStream();
|
|
14296
|
+
};
|
|
14297
|
+
}
|
|
14298
|
+
this.onmessage?.(message, { authInfo: options?.authInfo, requestInfo, closeSSEStream, closeStandaloneSSEStream });
|
|
14299
|
+
}
|
|
14300
|
+
} catch (error2) {
|
|
14301
|
+
this._streamMapping.get(streamId)?.cleanup();
|
|
14302
|
+
this._resumableStreams.delete(streamId);
|
|
14303
|
+
for (const message of messages) {
|
|
14304
|
+
if (isJSONRPCRequest(message)) {
|
|
14305
|
+
this._requestToStreamMapping.delete(message.id);
|
|
14306
|
+
}
|
|
14048
14307
|
}
|
|
14049
|
-
|
|
14308
|
+
throw error2;
|
|
14309
|
+
}
|
|
14310
|
+
if (this._streamMapping.get(streamId)?.controller === streamController) {
|
|
14311
|
+
keepAliveTimer = this.startKeepAlive(streamController, encoder);
|
|
14050
14312
|
}
|
|
14051
14313
|
return new Response(readable, { status: 200, headers });
|
|
14052
14314
|
} catch (error2) {
|
|
@@ -14066,9 +14328,12 @@ data:
|
|
|
14066
14328
|
if (protocolError) {
|
|
14067
14329
|
return protocolError;
|
|
14068
14330
|
}
|
|
14069
|
-
|
|
14070
|
-
|
|
14071
|
-
|
|
14331
|
+
try {
|
|
14332
|
+
await Promise.resolve(this._onsessionclosed?.(this.sessionId));
|
|
14333
|
+
return new Response(null, { status: 200 });
|
|
14334
|
+
} finally {
|
|
14335
|
+
await this.close();
|
|
14336
|
+
}
|
|
14072
14337
|
}
|
|
14073
14338
|
/**
|
|
14074
14339
|
* Validates session ID for non-initialization requests.
|
|
@@ -14079,13 +14344,16 @@ data:
|
|
|
14079
14344
|
return void 0;
|
|
14080
14345
|
}
|
|
14081
14346
|
if (!this._initialized) {
|
|
14347
|
+
this.onerror?.(new Error("Bad Request: Server not initialized"));
|
|
14082
14348
|
return this.createJsonErrorResponse(400, -32e3, "Bad Request: Server not initialized");
|
|
14083
14349
|
}
|
|
14084
14350
|
const sessionId = req.headers.get("mcp-session-id");
|
|
14085
14351
|
if (!sessionId) {
|
|
14352
|
+
this.onerror?.(new Error("Bad Request: Mcp-Session-Id header is required"));
|
|
14086
14353
|
return this.createJsonErrorResponse(400, -32e3, "Bad Request: Mcp-Session-Id header is required");
|
|
14087
14354
|
}
|
|
14088
14355
|
if (sessionId !== this.sessionId) {
|
|
14356
|
+
this.onerror?.(new Error("Session not found"));
|
|
14089
14357
|
return this.createJsonErrorResponse(404, -32001, "Session not found");
|
|
14090
14358
|
}
|
|
14091
14359
|
return void 0;
|
|
@@ -14106,16 +14374,22 @@ data:
|
|
|
14106
14374
|
validateProtocolVersion(req) {
|
|
14107
14375
|
const protocolVersion = req.headers.get("mcp-protocol-version");
|
|
14108
14376
|
if (protocolVersion !== null && !SUPPORTED_PROTOCOL_VERSIONS.includes(protocolVersion)) {
|
|
14377
|
+
this.onerror?.(new Error(`Bad Request: Unsupported protocol version: ${protocolVersion} (supported versions: ${SUPPORTED_PROTOCOL_VERSIONS.join(", ")})`));
|
|
14109
14378
|
return this.createJsonErrorResponse(400, -32e3, `Bad Request: Unsupported protocol version: ${protocolVersion} (supported versions: ${SUPPORTED_PROTOCOL_VERSIONS.join(", ")})`);
|
|
14110
14379
|
}
|
|
14111
14380
|
return void 0;
|
|
14112
14381
|
}
|
|
14113
14382
|
async close() {
|
|
14383
|
+
if (this._closed) {
|
|
14384
|
+
return;
|
|
14385
|
+
}
|
|
14386
|
+
this._closed = true;
|
|
14114
14387
|
this._streamMapping.forEach(({ cleanup }) => {
|
|
14115
14388
|
cleanup();
|
|
14116
14389
|
});
|
|
14117
14390
|
this._streamMapping.clear();
|
|
14118
14391
|
this._requestResponseMap.clear();
|
|
14392
|
+
this._resumableStreams.clear();
|
|
14119
14393
|
this.onclose?.();
|
|
14120
14394
|
}
|
|
14121
14395
|
/**
|
|
@@ -14159,7 +14433,7 @@ data:
|
|
|
14159
14433
|
if (standaloneSse === void 0) {
|
|
14160
14434
|
return;
|
|
14161
14435
|
}
|
|
14162
|
-
if (standaloneSse.controller && standaloneSse.encoder) {
|
|
14436
|
+
if (standaloneSse.controller && standaloneSse.encoder && (eventId === void 0 || !standaloneSse.replayedEventIds?.has(eventId))) {
|
|
14163
14437
|
this.writeSSEEvent(standaloneSse.controller, standaloneSse.encoder, message, eventId);
|
|
14164
14438
|
}
|
|
14165
14439
|
return;
|
|
@@ -14168,13 +14442,19 @@ data:
|
|
|
14168
14442
|
if (!streamId) {
|
|
14169
14443
|
throw new Error(`No connection established for request ID: ${String(requestId)}`);
|
|
14170
14444
|
}
|
|
14171
|
-
|
|
14172
|
-
if (!this._enableJsonResponse
|
|
14445
|
+
let stream = this._streamMapping.get(streamId);
|
|
14446
|
+
if (!this._enableJsonResponse) {
|
|
14173
14447
|
let eventId;
|
|
14174
14448
|
if (this._eventStore) {
|
|
14175
14449
|
eventId = await this._eventStore.storeEvent(streamId, message);
|
|
14450
|
+
stream = this._streamMapping.get(streamId);
|
|
14451
|
+
}
|
|
14452
|
+
if (stream?.controller && stream?.encoder && (eventId === void 0 || !stream.replayedEventIds?.has(eventId))) {
|
|
14453
|
+
const written = this.writeSSEEvent(stream.controller, stream.encoder, message, eventId);
|
|
14454
|
+
if (written && eventId !== void 0) {
|
|
14455
|
+
this._resumableStreams.add(streamId);
|
|
14456
|
+
}
|
|
14176
14457
|
}
|
|
14177
|
-
this.writeSSEEvent(stream.controller, stream.encoder, message, eventId);
|
|
14178
14458
|
}
|
|
14179
14459
|
if (isJSONRPCResultResponse(message) || isJSONRPCErrorResponse(message)) {
|
|
14180
14460
|
this._requestResponseMap.set(requestId, message);
|
|
@@ -14182,6 +14462,25 @@ data:
|
|
|
14182
14462
|
const allResponsesReady = relatedIds.every((id) => this._requestResponseMap.has(id));
|
|
14183
14463
|
if (allResponsesReady) {
|
|
14184
14464
|
if (!stream) {
|
|
14465
|
+
if (this._closed) {
|
|
14466
|
+
for (const id of relatedIds) {
|
|
14467
|
+
this._requestResponseMap.delete(id);
|
|
14468
|
+
this._requestToStreamMapping.delete(id);
|
|
14469
|
+
}
|
|
14470
|
+
return;
|
|
14471
|
+
}
|
|
14472
|
+
if (!this._enableJsonResponse && this._eventStore && this._resumableStreams.has(streamId)) {
|
|
14473
|
+
for (const id of relatedIds) {
|
|
14474
|
+
this._requestResponseMap.delete(id);
|
|
14475
|
+
this._requestToStreamMapping.delete(id);
|
|
14476
|
+
}
|
|
14477
|
+
this._resumableStreams.delete(streamId);
|
|
14478
|
+
return;
|
|
14479
|
+
}
|
|
14480
|
+
for (const id of relatedIds) {
|
|
14481
|
+
this._requestResponseMap.delete(id);
|
|
14482
|
+
this._requestToStreamMapping.delete(id);
|
|
14483
|
+
}
|
|
14185
14484
|
throw new Error(`No connection established for request ID: ${String(requestId)}`);
|
|
14186
14485
|
}
|
|
14187
14486
|
if (this._enableJsonResponse && stream.resolveJson) {
|
|
@@ -14204,6 +14503,7 @@ data:
|
|
|
14204
14503
|
this._requestResponseMap.delete(id);
|
|
14205
14504
|
this._requestToStreamMapping.delete(id);
|
|
14206
14505
|
}
|
|
14506
|
+
this._resumableStreams.delete(streamId);
|
|
14207
14507
|
}
|
|
14208
14508
|
}
|
|
14209
14509
|
}
|
|
@@ -14261,7 +14561,7 @@ function publicMcpErrorMessage(error2, fallback) {
|
|
|
14261
14561
|
return error2 instanceof TopoloMcpPublicError ? error2.message : fallback;
|
|
14262
14562
|
}
|
|
14263
14563
|
|
|
14264
|
-
//
|
|
14564
|
+
// node_modules/@modelcontextprotocol/sdk/dist/esm/server/zod-compat.js
|
|
14265
14565
|
function isZ4Schema(s) {
|
|
14266
14566
|
const schema = s;
|
|
14267
14567
|
return !!schema._zod;
|
|
@@ -14324,15 +14624,15 @@ function getLiteralValue(schema) {
|
|
|
14324
14624
|
return void 0;
|
|
14325
14625
|
}
|
|
14326
14626
|
|
|
14327
|
-
//
|
|
14627
|
+
// node_modules/@modelcontextprotocol/sdk/dist/esm/experimental/tasks/interfaces.js
|
|
14328
14628
|
function isTerminal(status) {
|
|
14329
14629
|
return status === "completed" || status === "failed" || status === "cancelled";
|
|
14330
14630
|
}
|
|
14331
14631
|
|
|
14332
|
-
//
|
|
14632
|
+
// node_modules/zod-to-json-schema/dist/esm/parsers/string.js
|
|
14333
14633
|
var ALPHA_NUMERIC = new Set("ABCDEFGHIJKLMNOPQRSTUVXYZabcdefghijklmnopqrstuvxyz0123456789");
|
|
14334
14634
|
|
|
14335
|
-
//
|
|
14635
|
+
// node_modules/@modelcontextprotocol/sdk/dist/esm/server/zod-json-schema-compat.js
|
|
14336
14636
|
function getMethodLiteral(schema) {
|
|
14337
14637
|
const shape = getObjectShape(schema);
|
|
14338
14638
|
const methodSchema = shape?.method;
|
|
@@ -14353,7 +14653,7 @@ function parseWithCompat(schema, data) {
|
|
|
14353
14653
|
return result.data;
|
|
14354
14654
|
}
|
|
14355
14655
|
|
|
14356
|
-
//
|
|
14656
|
+
// node_modules/@modelcontextprotocol/sdk/dist/esm/shared/protocol.js
|
|
14357
14657
|
var DEFAULT_REQUEST_TIMEOUT_MSEC = 6e4;
|
|
14358
14658
|
var Protocol = class {
|
|
14359
14659
|
constructor(_options) {
|
|
@@ -14565,6 +14865,10 @@ var Protocol = class {
|
|
|
14565
14865
|
this._progressHandlers.clear();
|
|
14566
14866
|
this._taskProgressTokens.clear();
|
|
14567
14867
|
this._pendingDebouncedNotifications.clear();
|
|
14868
|
+
for (const info of this._timeoutInfo.values()) {
|
|
14869
|
+
clearTimeout(info.timeoutId);
|
|
14870
|
+
}
|
|
14871
|
+
this._timeoutInfo.clear();
|
|
14568
14872
|
for (const controller of this._requestHandlerAbortControllers.values()) {
|
|
14569
14873
|
controller.abort();
|
|
14570
14874
|
}
|
|
@@ -14695,7 +14999,9 @@ var Protocol = class {
|
|
|
14695
14999
|
await capturedTransport?.send(errorResponse);
|
|
14696
15000
|
}
|
|
14697
15001
|
}).catch((error2) => this._onerror(new Error(`Failed to send response: ${error2}`))).finally(() => {
|
|
14698
|
-
this._requestHandlerAbortControllers.
|
|
15002
|
+
if (this._requestHandlerAbortControllers.get(request.id) === abortController) {
|
|
15003
|
+
this._requestHandlerAbortControllers.delete(request.id);
|
|
15004
|
+
}
|
|
14699
15005
|
});
|
|
14700
15006
|
}
|
|
14701
15007
|
_onprogress(notification) {
|
|
@@ -15301,7 +15607,7 @@ function mergeCapabilities(base, additional) {
|
|
|
15301
15607
|
return result;
|
|
15302
15608
|
}
|
|
15303
15609
|
|
|
15304
|
-
//
|
|
15610
|
+
// node_modules/@modelcontextprotocol/sdk/dist/esm/validation/ajv-provider.js
|
|
15305
15611
|
var import_ajv = __toESM(require_ajv(), 1);
|
|
15306
15612
|
var import_ajv_formats = __toESM(require_dist(), 1);
|
|
15307
15613
|
function createDefaultAjvInstance() {
|
|
@@ -15369,7 +15675,7 @@ var AjvJsonSchemaValidator = class {
|
|
|
15369
15675
|
}
|
|
15370
15676
|
};
|
|
15371
15677
|
|
|
15372
|
-
//
|
|
15678
|
+
// node_modules/@modelcontextprotocol/sdk/dist/esm/experimental/tasks/server.js
|
|
15373
15679
|
var ExperimentalServerTasks = class {
|
|
15374
15680
|
constructor(_server) {
|
|
15375
15681
|
this._server = _server;
|
|
@@ -15391,6 +15697,147 @@ var ExperimentalServerTasks = class {
|
|
|
15391
15697
|
requestStream(request, resultSchema, options) {
|
|
15392
15698
|
return this._server.requestStream(request, resultSchema, options);
|
|
15393
15699
|
}
|
|
15700
|
+
/**
|
|
15701
|
+
* Sends a sampling request and returns an AsyncGenerator that yields response messages.
|
|
15702
|
+
* The generator is guaranteed to end with either a 'result' or 'error' message.
|
|
15703
|
+
*
|
|
15704
|
+
* For task-augmented requests, yields 'taskCreated' and 'taskStatus' messages
|
|
15705
|
+
* before the final result.
|
|
15706
|
+
*
|
|
15707
|
+
* @example
|
|
15708
|
+
* ```typescript
|
|
15709
|
+
* const stream = server.experimental.tasks.createMessageStream({
|
|
15710
|
+
* messages: [{ role: 'user', content: { type: 'text', text: 'Hello' } }],
|
|
15711
|
+
* maxTokens: 100
|
|
15712
|
+
* }, {
|
|
15713
|
+
* onprogress: (progress) => {
|
|
15714
|
+
* // Handle streaming tokens via progress notifications
|
|
15715
|
+
* console.log('Progress:', progress.message);
|
|
15716
|
+
* }
|
|
15717
|
+
* });
|
|
15718
|
+
*
|
|
15719
|
+
* for await (const message of stream) {
|
|
15720
|
+
* switch (message.type) {
|
|
15721
|
+
* case 'taskCreated':
|
|
15722
|
+
* console.log('Task created:', message.task.taskId);
|
|
15723
|
+
* break;
|
|
15724
|
+
* case 'taskStatus':
|
|
15725
|
+
* console.log('Task status:', message.task.status);
|
|
15726
|
+
* break;
|
|
15727
|
+
* case 'result':
|
|
15728
|
+
* console.log('Final result:', message.result);
|
|
15729
|
+
* break;
|
|
15730
|
+
* case 'error':
|
|
15731
|
+
* console.error('Error:', message.error);
|
|
15732
|
+
* break;
|
|
15733
|
+
* }
|
|
15734
|
+
* }
|
|
15735
|
+
* ```
|
|
15736
|
+
*
|
|
15737
|
+
* @param params - The sampling request parameters
|
|
15738
|
+
* @param options - Optional request options (timeout, signal, task creation params, onprogress, etc.)
|
|
15739
|
+
* @returns AsyncGenerator that yields ResponseMessage objects
|
|
15740
|
+
*
|
|
15741
|
+
* @experimental
|
|
15742
|
+
*/
|
|
15743
|
+
createMessageStream(params, options) {
|
|
15744
|
+
const clientCapabilities = this._server.getClientCapabilities();
|
|
15745
|
+
if ((params.tools || params.toolChoice) && !clientCapabilities?.sampling?.tools) {
|
|
15746
|
+
throw new Error("Client does not support sampling tools capability.");
|
|
15747
|
+
}
|
|
15748
|
+
if (params.messages.length > 0) {
|
|
15749
|
+
const lastMessage = params.messages[params.messages.length - 1];
|
|
15750
|
+
const lastContent = Array.isArray(lastMessage.content) ? lastMessage.content : [lastMessage.content];
|
|
15751
|
+
const hasToolResults = lastContent.some((c) => c.type === "tool_result");
|
|
15752
|
+
const previousMessage = params.messages.length > 1 ? params.messages[params.messages.length - 2] : void 0;
|
|
15753
|
+
const previousContent = previousMessage ? Array.isArray(previousMessage.content) ? previousMessage.content : [previousMessage.content] : [];
|
|
15754
|
+
const hasPreviousToolUse = previousContent.some((c) => c.type === "tool_use");
|
|
15755
|
+
if (hasToolResults) {
|
|
15756
|
+
if (lastContent.some((c) => c.type !== "tool_result")) {
|
|
15757
|
+
throw new Error("The last message must contain only tool_result content if any is present");
|
|
15758
|
+
}
|
|
15759
|
+
if (!hasPreviousToolUse) {
|
|
15760
|
+
throw new Error("tool_result blocks are not matching any tool_use from the previous message");
|
|
15761
|
+
}
|
|
15762
|
+
}
|
|
15763
|
+
if (hasPreviousToolUse) {
|
|
15764
|
+
const toolUseIds = new Set(previousContent.filter((c) => c.type === "tool_use").map((c) => c.id));
|
|
15765
|
+
const toolResultIds = new Set(lastContent.filter((c) => c.type === "tool_result").map((c) => c.toolUseId));
|
|
15766
|
+
if (toolUseIds.size !== toolResultIds.size || ![...toolUseIds].every((id) => toolResultIds.has(id))) {
|
|
15767
|
+
throw new Error("ids of tool_result blocks and tool_use blocks from previous message do not match");
|
|
15768
|
+
}
|
|
15769
|
+
}
|
|
15770
|
+
}
|
|
15771
|
+
return this.requestStream({
|
|
15772
|
+
method: "sampling/createMessage",
|
|
15773
|
+
params
|
|
15774
|
+
}, CreateMessageResultSchema, options);
|
|
15775
|
+
}
|
|
15776
|
+
/**
|
|
15777
|
+
* Sends an elicitation request and returns an AsyncGenerator that yields response messages.
|
|
15778
|
+
* The generator is guaranteed to end with either a 'result' or 'error' message.
|
|
15779
|
+
*
|
|
15780
|
+
* For task-augmented requests (especially URL-based elicitation), yields 'taskCreated'
|
|
15781
|
+
* and 'taskStatus' messages before the final result.
|
|
15782
|
+
*
|
|
15783
|
+
* @example
|
|
15784
|
+
* ```typescript
|
|
15785
|
+
* const stream = server.experimental.tasks.elicitInputStream({
|
|
15786
|
+
* mode: 'url',
|
|
15787
|
+
* message: 'Please authenticate',
|
|
15788
|
+
* elicitationId: 'auth-123',
|
|
15789
|
+
* url: 'https://example.com/auth'
|
|
15790
|
+
* }, {
|
|
15791
|
+
* task: { ttl: 300000 } // Task-augmented for long-running auth flow
|
|
15792
|
+
* });
|
|
15793
|
+
*
|
|
15794
|
+
* for await (const message of stream) {
|
|
15795
|
+
* switch (message.type) {
|
|
15796
|
+
* case 'taskCreated':
|
|
15797
|
+
* console.log('Task created:', message.task.taskId);
|
|
15798
|
+
* break;
|
|
15799
|
+
* case 'taskStatus':
|
|
15800
|
+
* console.log('Task status:', message.task.status);
|
|
15801
|
+
* break;
|
|
15802
|
+
* case 'result':
|
|
15803
|
+
* console.log('User action:', message.result.action);
|
|
15804
|
+
* break;
|
|
15805
|
+
* case 'error':
|
|
15806
|
+
* console.error('Error:', message.error);
|
|
15807
|
+
* break;
|
|
15808
|
+
* }
|
|
15809
|
+
* }
|
|
15810
|
+
* ```
|
|
15811
|
+
*
|
|
15812
|
+
* @param params - The elicitation request parameters
|
|
15813
|
+
* @param options - Optional request options (timeout, signal, task creation params, etc.)
|
|
15814
|
+
* @returns AsyncGenerator that yields ResponseMessage objects
|
|
15815
|
+
*
|
|
15816
|
+
* @experimental
|
|
15817
|
+
*/
|
|
15818
|
+
elicitInputStream(params, options) {
|
|
15819
|
+
const clientCapabilities = this._server.getClientCapabilities();
|
|
15820
|
+
const mode = params.mode ?? "form";
|
|
15821
|
+
switch (mode) {
|
|
15822
|
+
case "url": {
|
|
15823
|
+
if (!clientCapabilities?.elicitation?.url) {
|
|
15824
|
+
throw new Error("Client does not support url elicitation.");
|
|
15825
|
+
}
|
|
15826
|
+
break;
|
|
15827
|
+
}
|
|
15828
|
+
case "form": {
|
|
15829
|
+
if (!clientCapabilities?.elicitation?.form) {
|
|
15830
|
+
throw new Error("Client does not support form elicitation.");
|
|
15831
|
+
}
|
|
15832
|
+
break;
|
|
15833
|
+
}
|
|
15834
|
+
}
|
|
15835
|
+
const normalizedParams = mode === "form" && params.mode === void 0 ? { ...params, mode: "form" } : params;
|
|
15836
|
+
return this.requestStream({
|
|
15837
|
+
method: "elicitation/create",
|
|
15838
|
+
params: normalizedParams
|
|
15839
|
+
}, ElicitResultSchema, options);
|
|
15840
|
+
}
|
|
15394
15841
|
/**
|
|
15395
15842
|
* Gets the current status of a task.
|
|
15396
15843
|
*
|
|
@@ -15441,7 +15888,7 @@ var ExperimentalServerTasks = class {
|
|
|
15441
15888
|
}
|
|
15442
15889
|
};
|
|
15443
15890
|
|
|
15444
|
-
//
|
|
15891
|
+
// node_modules/@modelcontextprotocol/sdk/dist/esm/experimental/tasks/helpers.js
|
|
15445
15892
|
function assertToolsCallTaskCapability(requests, method, entityName) {
|
|
15446
15893
|
if (!requests) {
|
|
15447
15894
|
throw new Error(`${entityName} does not support task creation (required for ${method})`);
|
|
@@ -15476,7 +15923,7 @@ function assertClientRequestTaskCapability(requests, method, entityName) {
|
|
|
15476
15923
|
}
|
|
15477
15924
|
}
|
|
15478
15925
|
|
|
15479
|
-
//
|
|
15926
|
+
// node_modules/@modelcontextprotocol/sdk/dist/esm/server/index.js
|
|
15480
15927
|
var Server = class extends Protocol {
|
|
15481
15928
|
/**
|
|
15482
15929
|
* Initializes this server with the given name and version information.
|
|
@@ -15542,16 +15989,7 @@ var Server = class extends Protocol {
|
|
|
15542
15989
|
if (!methodSchema) {
|
|
15543
15990
|
throw new Error("Schema is missing a method literal");
|
|
15544
15991
|
}
|
|
15545
|
-
|
|
15546
|
-
if (isZ4Schema(methodSchema)) {
|
|
15547
|
-
const v4Schema = methodSchema;
|
|
15548
|
-
const v4Def = v4Schema._zod?.def;
|
|
15549
|
-
methodValue = v4Def?.value ?? v4Schema.value;
|
|
15550
|
-
} else {
|
|
15551
|
-
const v3Schema = methodSchema;
|
|
15552
|
-
const legacyDef = v3Schema._def;
|
|
15553
|
-
methodValue = legacyDef?.value ?? v3Schema.value;
|
|
15554
|
-
}
|
|
15992
|
+
const methodValue = getLiteralValue(methodSchema);
|
|
15555
15993
|
if (typeof methodValue !== "string") {
|
|
15556
15994
|
throw new Error("Schema method literal must be a string");
|
|
15557
15995
|
}
|
|
@@ -16175,11 +16613,11 @@ var TOOLS = [
|
|
|
16175
16613
|
handler: async (topolo, args) => {
|
|
16176
16614
|
const actionId = typeof args["actionId"] === "string" ? args["actionId"].trim() : "";
|
|
16177
16615
|
const contentBase64 = typeof args["contentBase64"] === "string" ? args["contentBase64"] : "";
|
|
16178
|
-
const
|
|
16616
|
+
const contentType2 = typeof args["contentType"] === "string" ? args["contentType"].trim() : "";
|
|
16179
16617
|
const fileName = typeof args["fileName"] === "string" ? args["fileName"].trim() : "";
|
|
16180
16618
|
if (!actionId) throw new TopoloMcpPublicError("actionId is required.");
|
|
16181
16619
|
if (!isCanonicalBase64(contentBase64)) throw new TopoloMcpPublicError("contentBase64 must be canonical base64.");
|
|
16182
|
-
if (!
|
|
16620
|
+
if (!contentType2) throw new TopoloMcpPublicError("contentType is required.");
|
|
16183
16621
|
if (!fileName) throw new TopoloMcpPublicError("fileName is required.");
|
|
16184
16622
|
const input = coerceObjectParam(args["input"], "input");
|
|
16185
16623
|
const completionInput = coerceObjectParam(args["completionInput"], "completionInput");
|
|
@@ -16190,7 +16628,7 @@ var TOOLS = [
|
|
|
16190
16628
|
input,
|
|
16191
16629
|
{
|
|
16192
16630
|
fileName,
|
|
16193
|
-
contentType,
|
|
16631
|
+
contentType: contentType2,
|
|
16194
16632
|
completionInput,
|
|
16195
16633
|
confirm: args["confirm"] === true,
|
|
16196
16634
|
...resource ? { resource } : {}
|
|
@@ -16841,3 +17279,12 @@ function createTopoloMcpHttpHandler(options = {}) {
|
|
|
16841
17279
|
export {
|
|
16842
17280
|
createTopoloMcpHttpHandler
|
|
16843
17281
|
};
|
|
17282
|
+
/*! Bundled license information:
|
|
17283
|
+
|
|
17284
|
+
content-type/index.js:
|
|
17285
|
+
(*!
|
|
17286
|
+
* content-type
|
|
17287
|
+
* Copyright(c) 2015 Douglas Christopher Wilson
|
|
17288
|
+
* MIT Licensed
|
|
17289
|
+
*)
|
|
17290
|
+
*/
|