@dalmia/calibrate-mcp 0.0.41 → 0.0.42

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (35) hide show
  1. package/bin/mcp-server.js +592 -138
  2. package/bin/mcp-server.js.map +14 -14
  3. package/esm/landing-page.js +1 -1
  4. package/esm/lib/config.d.ts +2 -2
  5. package/esm/lib/config.js +2 -2
  6. package/esm/mcp-server/mcp-server.js +1 -1
  7. package/esm/mcp-server/server.js +1 -1
  8. package/esm/models/annotationtaskresponse.js +1 -1
  9. package/esm/models/annotationtaskresponse.js.map +1 -1
  10. package/esm/models/evaluatorcreate.d.ts +4 -0
  11. package/esm/models/evaluatorcreate.d.ts.map +1 -1
  12. package/esm/models/evaluatorcreate.js +5 -2
  13. package/esm/models/evaluatorcreate.js.map +1 -1
  14. package/esm/models/evaluatordetailresponsecompact.d.ts +5 -0
  15. package/esm/models/evaluatordetailresponsecompact.d.ts.map +1 -1
  16. package/esm/models/evaluatordetailresponsecompact.js +6 -2
  17. package/esm/models/evaluatordetailresponsecompact.js.map +1 -1
  18. package/esm/models/listevaluatorsevaluatorsgetop.d.ts +2 -0
  19. package/esm/models/listevaluatorsevaluatorsgetop.d.ts.map +1 -1
  20. package/esm/models/listevaluatorsevaluatorsgetop.js +2 -0
  21. package/esm/models/listevaluatorsevaluatorsgetop.js.map +1 -1
  22. package/esm/models/routersevaluatorsevaluatorresponse.d.ts +5 -0
  23. package/esm/models/routersevaluatorsevaluatorresponse.d.ts.map +1 -1
  24. package/esm/models/routersevaluatorsevaluatorresponse.js +6 -2
  25. package/esm/models/routersevaluatorsevaluatorresponse.js.map +1 -1
  26. package/package.json +1 -1
  27. package/src/landing-page.ts +1 -1
  28. package/src/lib/config.ts +2 -2
  29. package/src/mcp-server/mcp-server.ts +1 -1
  30. package/src/mcp-server/server.ts +1 -1
  31. package/src/models/annotationtaskresponse.ts +1 -1
  32. package/src/models/evaluatorcreate.ts +6 -2
  33. package/src/models/evaluatordetailresponsecompact.ts +10 -2
  34. package/src/models/listevaluatorsevaluatorsgetop.ts +2 -0
  35. package/src/models/routersevaluatorsevaluatorresponse.ts +10 -2
package/bin/mcp-server.js CHANGED
@@ -40926,8 +40926,9 @@ var require_utils4 = __commonJS(function(exports, module) {
40926
40926
  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);
40927
40927
  var isHexPair = RegExp.prototype.test.bind(/^[\da-f]{2}$/iu);
40928
40928
  var isUnreserved = RegExp.prototype.test.bind(/^[\da-z\-._~]$/iu);
40929
- var isPathCharacter = RegExp.prototype.test.bind(/^[\da-z\-._~!$&'()*+,;=:@/]$/iu);
40930
- var isQueryFragmentCharacter = RegExp.prototype.test.bind(/^[\da-z\-._~!$&'()*+,;=:@/?]$/iu);
40929
+ var isPathCharacter = RegExp.prototype.test.bind(/^[A-Za-z0-9\-._~!$&'()*+,;=:@/]$/u);
40930
+ var isQueryFragmentCharacter = RegExp.prototype.test.bind(/^[A-Za-z0-9\-._~!$&'()*+,;=:@/?]$/u);
40931
+ var isUserinfoCharacter = RegExp.prototype.test.bind(/^[A-Za-z0-9\-._~!$&'()*+,;=:]$/u);
40931
40932
  function stringArrayToHexStripped(input) {
40932
40933
  let acc = "";
40933
40934
  let code = 0;
@@ -40952,91 +40953,127 @@ var require_utils4 = __commonJS(function(exports, module) {
40952
40953
  }
40953
40954
  return acc;
40954
40955
  }
40956
+ var isHextet = RegExp.prototype.test.bind(/^[\dA-Fa-f]{1,4}$/);
40957
+ var isIPvFuture = RegExp.prototype.test.bind(/^[vV][\dA-Fa-f]+\.[A-Za-z\d\-._~!$&'()*+,;=:]+$/);
40958
+ var isZoneCharacter = RegExp.prototype.test.bind(/^[A-Za-z\d\-._~]$/);
40955
40959
  var nonSimpleDomain = RegExp.prototype.test.bind(/[^!"$&'()*+,\-.;=_`a-z{}~]/u);
40956
- function consumeIsZone(buffer) {
40957
- buffer.length = 0;
40958
- return true;
40960
+ var nonSimpleDomainChars = RegExp.prototype.test.bind(/[^\d!"$&'()*+,\-.;=_`a-z{}~]/u);
40961
+ var numericLastLabel = RegExp.prototype.test.bind(/(?:^|\.)\d+$/u);
40962
+ function nonSimpleMailtoDomain(domain) {
40963
+ return nonSimpleDomainChars(domain) || numericLastLabel(domain);
40959
40964
  }
40960
- function consumeHextets(buffer, address, output) {
40961
- if (buffer.length) {
40962
- const hex = stringArrayToHexStripped(buffer);
40963
- if (hex !== "") {
40964
- address.push(hex);
40965
- } else {
40966
- output.error = true;
40967
- return false;
40965
+ function isZoneIdentifier(zone) {
40966
+ if (zone.length === 0)
40967
+ return false;
40968
+ for (let i = 0;i < zone.length; i++) {
40969
+ if (isZoneCharacter(zone[i]))
40970
+ continue;
40971
+ if (zone[i] === "%" && i + 2 < zone.length && isHexPair(zone.slice(i + 1, i + 3))) {
40972
+ i += 2;
40973
+ continue;
40968
40974
  }
40969
- buffer.length = 0;
40975
+ return false;
40970
40976
  }
40971
40977
  return true;
40972
40978
  }
40973
- function getIPV6(input) {
40974
- let tokenCount = 0;
40975
- const output = { error: false, address: "", zone: "" };
40976
- const address = [];
40977
- const buffer = [];
40978
- let endipv6Encountered = false;
40979
- let endIpv6 = false;
40980
- let consume = consumeHextets;
40981
- for (let i = 0;i < input.length; i++) {
40982
- const cursor = input[i];
40983
- if (cursor === "[" || cursor === "]") {
40984
- continue;
40985
- }
40986
- if (cursor === ":") {
40987
- if (endipv6Encountered === true) {
40988
- endIpv6 = true;
40989
- }
40990
- if (!consume(buffer, address, output)) {
40991
- break;
40992
- }
40993
- if (++tokenCount > 7) {
40994
- output.error = true;
40995
- break;
40979
+ function compressIPv6ZeroRun(hextets) {
40980
+ let bestStart = -1;
40981
+ let bestLength = 0;
40982
+ let runStart = -1;
40983
+ let runLength = 0;
40984
+ for (let i = 0;i < hextets.length; i++) {
40985
+ if (hextets[i] === "0") {
40986
+ if (runStart === -1)
40987
+ runStart = i;
40988
+ runLength++;
40989
+ if (runLength > bestLength) {
40990
+ bestLength = runLength;
40991
+ bestStart = runStart;
40996
40992
  }
40997
- if (i > 0 && input[i - 1] === ":") {
40998
- endipv6Encountered = true;
40999
- }
41000
- address.push(":");
41001
- continue;
41002
- } else if (cursor === "%") {
41003
- if (!consume(buffer, address, output)) {
41004
- break;
41005
- }
41006
- consume = consumeIsZone;
41007
40993
  } else {
41008
- buffer.push(cursor);
41009
- continue;
40994
+ runStart = -1;
40995
+ runLength = 0;
41010
40996
  }
41011
40997
  }
41012
- if (buffer.length) {
41013
- if (consume === consumeIsZone) {
41014
- output.zone = buffer.join("");
41015
- } else if (endIpv6) {
41016
- address.push(buffer.join(""));
41017
- } else {
41018
- address.push(stringArrayToHexStripped(buffer));
40998
+ if (bestLength < 2)
40999
+ return hextets.join(":");
41000
+ const head = hextets.slice(0, bestStart).join(":");
41001
+ const tail = hextets.slice(bestStart + bestLength).join(":");
41002
+ return head + "::" + tail;
41003
+ }
41004
+ function normalizeIPv6Address(input) {
41005
+ const compression = input.indexOf("::");
41006
+ if (compression !== -1 && input.indexOf("::", compression + 1) !== -1)
41007
+ return;
41008
+ const left = compression === -1 ? input.split(":") : input.slice(0, compression).split(":");
41009
+ const right = compression === -1 ? [] : input.slice(compression + 2).split(":");
41010
+ if (compression !== -1) {
41011
+ if (left.length === 1 && left[0] === "")
41012
+ left.length = 0;
41013
+ if (right.length === 1 && right[0] === "")
41014
+ right.length = 0;
41015
+ }
41016
+ const parts = left.concat(right);
41017
+ let hextetCount = 0;
41018
+ for (let i = 0;i < parts.length; i++) {
41019
+ const part = parts[i];
41020
+ if (part === "")
41021
+ return;
41022
+ if (part.indexOf(".") !== -1) {
41023
+ if (i !== parts.length - 1 || compression !== -1 && right.length === 0 || !isIPv4(part))
41024
+ return;
41025
+ hextetCount += 2;
41026
+ continue;
41019
41027
  }
41028
+ if (!isHextet(part))
41029
+ return;
41030
+ parts[i] = parseInt(part, 16).toString(16);
41031
+ hextetCount++;
41020
41032
  }
41021
- output.address = address.join("");
41022
- return output;
41033
+ if (compression === -1) {
41034
+ if (hextetCount !== 8)
41035
+ return;
41036
+ return compressIPv6ZeroRun(parts);
41037
+ }
41038
+ if (hextetCount >= 8)
41039
+ return;
41040
+ const expanded = parts.slice(0, left.length);
41041
+ for (let i = hextetCount;i < 8; i++)
41042
+ expanded.push("0");
41043
+ for (let i = left.length;i < parts.length; i++)
41044
+ expanded.push(parts[i]);
41045
+ return compressIPv6ZeroRun(expanded);
41023
41046
  }
41024
41047
  function normalizeIPv6(host) {
41025
- if (findToken(host, ":") < 2) {
41026
- return { host, isIPV6: false };
41027
- }
41028
- const ipv62 = getIPV6(host);
41029
- if (!ipv62.error) {
41030
- let newHost = ipv62.address;
41031
- let escapedHost = ipv62.address;
41032
- if (ipv62.zone) {
41033
- newHost += "%" + ipv62.zone;
41034
- escapedHost += "%25" + ipv62.zone;
41035
- }
41036
- return { host: newHost, isIPV6: true, escapedHost };
41037
- } else {
41038
- return { host, isIPV6: false };
41039
- }
41048
+ const bracketed = host[0] === "[" && host[host.length - 1] === "]";
41049
+ const hasBracket = host[0] === "[" || host[host.length - 1] === "]";
41050
+ if (hasBracket && !bracketed)
41051
+ return { host, isIPV6: false, error: true };
41052
+ let input = bracketed ? host.slice(1, -1) : host;
41053
+ if (bracketed && isIPvFuture(input)) {
41054
+ input = input.toLowerCase();
41055
+ return { host: `[${input}]`, escapedHost: input, isIPV6: false, isIPVFuture: true };
41056
+ }
41057
+ if (findToken(input, ":") < 2) {
41058
+ return { host, isIPV6: false, error: bracketed };
41059
+ }
41060
+ let zoneIdentifier = "";
41061
+ const zoneSeparator = input.indexOf("%");
41062
+ if (zoneSeparator !== -1) {
41063
+ const separatorLength = input.slice(zoneSeparator, zoneSeparator + 3).toLowerCase() === "%25" ? 3 : 1;
41064
+ zoneIdentifier = input.slice(zoneSeparator + separatorLength);
41065
+ if (!isZoneIdentifier(zoneIdentifier))
41066
+ return { host, isIPV6: false, error: true };
41067
+ input = input.slice(0, zoneSeparator);
41068
+ }
41069
+ const address = normalizeIPv6Address(input);
41070
+ if (address === undefined)
41071
+ return { host, isIPV6: false, error: true };
41072
+ return {
41073
+ host: address + (zoneIdentifier ? "%" + zoneIdentifier : ""),
41074
+ escapedHost: address + (zoneIdentifier ? "%25" + zoneIdentifier : ""),
41075
+ isIPV6: true
41076
+ };
41040
41077
  }
41041
41078
  function findToken(str, token) {
41042
41079
  let ind = 0;
@@ -41213,6 +41250,45 @@ var require_utils4 = __commonJS(function(exports, module) {
41213
41250
  }
41214
41251
  return output;
41215
41252
  }
41253
+ function serializePathEncoding(input, pathNoScheme = false) {
41254
+ let output = "";
41255
+ let firstSegment = pathNoScheme && input[0] !== "/";
41256
+ for (let i = 0;i < input.length; i++) {
41257
+ const ch = input[i];
41258
+ if (ch === "%" && i + 2 < input.length) {
41259
+ const hex = input.slice(i + 1, i + 3);
41260
+ if (isHexPair(hex)) {
41261
+ output += "%" + hex.toUpperCase();
41262
+ i += 2;
41263
+ continue;
41264
+ }
41265
+ }
41266
+ if (ch === "/") {
41267
+ firstSegment = false;
41268
+ }
41269
+ if (isPathCharacter(ch) && (ch !== ":" || !firstSegment)) {
41270
+ output += ch;
41271
+ } else {
41272
+ const code = input.charCodeAt(i);
41273
+ if (code < 128) {
41274
+ output += BYTE_HEX[code];
41275
+ } else if (code < 55296 || code > 57343) {
41276
+ output += percentEncodeNonAscii(code);
41277
+ } else if (code <= 56319 && i + 1 < input.length) {
41278
+ const low = input.charCodeAt(i + 1);
41279
+ if (low >= 56320 && low <= 57343) {
41280
+ output += percentEncodeNonAscii(65536 + (code - 55296 << 10) + (low - 56320));
41281
+ i++;
41282
+ } else {
41283
+ output += percentEncodeNonAscii(65533);
41284
+ }
41285
+ } else {
41286
+ output += percentEncodeNonAscii(65533);
41287
+ }
41288
+ }
41289
+ }
41290
+ return output;
41291
+ }
41216
41292
  function normalizeQueryFragmentEncoding(input) {
41217
41293
  let output = "";
41218
41294
  for (let i = 0;i < input.length; i++) {
@@ -41254,6 +41330,50 @@ var require_utils4 = __commonJS(function(exports, module) {
41254
41330
  }
41255
41331
  return output;
41256
41332
  }
41333
+ function encodeComponent(input, isAllowed) {
41334
+ let output = "";
41335
+ for (let i = 0;i < input.length; i++) {
41336
+ const ch = input[i];
41337
+ if (ch === "%" && i + 2 < input.length) {
41338
+ const hex = input.slice(i + 1, i + 3);
41339
+ if (isHexPair(hex)) {
41340
+ output += "%" + hex.toUpperCase();
41341
+ i += 2;
41342
+ continue;
41343
+ }
41344
+ }
41345
+ if (isAllowed(ch)) {
41346
+ output += ch;
41347
+ } else {
41348
+ const code = input.charCodeAt(i);
41349
+ if (code < 128) {
41350
+ output += BYTE_HEX[code];
41351
+ } else if (code < 55296 || code > 57343) {
41352
+ output += percentEncodeNonAscii(code);
41353
+ } else if (code <= 56319 && i + 1 < input.length) {
41354
+ const low = input.charCodeAt(i + 1);
41355
+ if (low >= 56320 && low <= 57343) {
41356
+ output += percentEncodeNonAscii(65536 + (code - 55296 << 10) + (low - 56320));
41357
+ i++;
41358
+ } else {
41359
+ output += percentEncodeNonAscii(65533);
41360
+ }
41361
+ } else {
41362
+ output += percentEncodeNonAscii(65533);
41363
+ }
41364
+ }
41365
+ }
41366
+ return output;
41367
+ }
41368
+ function encodeUserinfo(input) {
41369
+ return encodeComponent(input, isUserinfoCharacter);
41370
+ }
41371
+ function encodeQuery(input) {
41372
+ return encodeComponent(input, isQueryFragmentCharacter);
41373
+ }
41374
+ function encodeFragment(input) {
41375
+ return encodeComponent(input, isQueryFragmentCharacter);
41376
+ }
41257
41377
  function escapePreservingEscapes(input) {
41258
41378
  let output = "";
41259
41379
  for (let i = 0;i < input.length; i++) {
@@ -41288,14 +41408,18 @@ var require_utils4 = __commonJS(function(exports, module) {
41288
41408
  function recomposeAuthority(component) {
41289
41409
  const uriTokens = [];
41290
41410
  if (component.userinfo !== undefined) {
41291
- uriTokens.push(component.userinfo);
41411
+ uriTokens.push(encodeUserinfo(component.userinfo));
41292
41412
  uriTokens.push("@");
41293
41413
  }
41294
41414
  if (component.host !== undefined) {
41295
- let host = unescape(component.host);
41415
+ let host = component.host;
41296
41416
  if (!isIPv4(host)) {
41297
- const ipV6res = normalizeIPv6(host);
41298
- if (ipV6res.isIPV6 === true) {
41417
+ let ipV6res = normalizeIPv6(host);
41418
+ if (ipV6res.isIPV6 !== true && ipV6res.isIPVFuture !== true) {
41419
+ host = normalizePercentEncoding(host, true);
41420
+ ipV6res = normalizeIPv6(host);
41421
+ }
41422
+ if (ipV6res.isIPV6 === true || ipV6res.isIPVFuture === true) {
41299
41423
  host = `[${ipV6res.escapedHost}]`;
41300
41424
  } else {
41301
41425
  host = reescapeHostDelimiters(host, false);
@@ -41310,12 +41434,19 @@ var require_utils4 = __commonJS(function(exports, module) {
41310
41434
  return uriTokens.length ? uriTokens.join("") : undefined;
41311
41435
  }
41312
41436
  module.exports = {
41437
+ BYTE_HEX,
41438
+ percentEncodeNonAscii,
41313
41439
  nonSimpleDomain,
41440
+ nonSimpleMailtoDomain,
41314
41441
  recomposeAuthority,
41315
41442
  reescapeHostDelimiters,
41316
41443
  normalizePercentEncoding,
41317
41444
  normalizePathEncoding,
41445
+ serializePathEncoding,
41318
41446
  normalizeQueryFragmentEncoding,
41447
+ encodeUserinfo,
41448
+ encodeQuery,
41449
+ encodeFragment,
41319
41450
  escapePreservingEscapes,
41320
41451
  removeDotSegments,
41321
41452
  isIPv4,
@@ -41327,15 +41458,16 @@ var require_utils4 = __commonJS(function(exports, module) {
41327
41458
 
41328
41459
  // node_modules/fast-uri/lib/schemes.js
41329
41460
  var require_schemes = __commonJS(function(exports, module) {
41330
- var { isUUID } = require_utils4();
41331
- var URN_REG = /([\da-z][\d\-a-z]{0,31}):((?:[\w!$'()*+,\-.:;=@]|%[\da-f]{2})+)/iu;
41461
+ var { isUUID, BYTE_HEX, percentEncodeNonAscii, nonSimpleMailtoDomain } = require_utils4();
41462
+ var URN_REG = /^([\da-z][\d\-a-z]{0,31}):((?:[\w!$'()*+,\-./:;=@]|%[\da-f]{2})+)$/iu;
41332
41463
  var supportedSchemeNames = [
41333
41464
  "http",
41334
41465
  "https",
41335
41466
  "ws",
41336
41467
  "wss",
41337
41468
  "urn",
41338
- "urn:uuid"
41469
+ "urn:uuid",
41470
+ "mailto"
41339
41471
  ];
41340
41472
  function isValidSchemeName(name) {
41341
41473
  return supportedSchemeNames.indexOf(name) !== -1;
@@ -41383,9 +41515,10 @@ var require_schemes = __commonJS(function(exports, module) {
41383
41515
  wsComponent.secure = undefined;
41384
41516
  }
41385
41517
  if (wsComponent.resourceName) {
41386
- const [path, query] = wsComponent.resourceName.split("?");
41518
+ const queryIndex = wsComponent.resourceName.indexOf("?");
41519
+ const path = queryIndex === -1 ? wsComponent.resourceName : wsComponent.resourceName.slice(0, queryIndex);
41387
41520
  wsComponent.path = path && path !== "/" ? path : undefined;
41388
- wsComponent.query = query;
41521
+ wsComponent.query = queryIndex === -1 ? undefined : wsComponent.resourceName.slice(queryIndex + 1);
41389
41522
  wsComponent.resourceName = undefined;
41390
41523
  }
41391
41524
  wsComponent.fragment = undefined;
@@ -41397,7 +41530,7 @@ var require_schemes = __commonJS(function(exports, module) {
41397
41530
  return urnComponent;
41398
41531
  }
41399
41532
  const matches = urnComponent.path.match(URN_REG);
41400
- if (matches) {
41533
+ if (matches && matches[0] === urnComponent.path) {
41401
41534
  const scheme = options.scheme || urnComponent.scheme || "urn";
41402
41535
  urnComponent.nid = matches[1].toLowerCase();
41403
41536
  urnComponent.nss = matches[2];
@@ -41479,13 +41612,235 @@ var require_schemes = __commonJS(function(exports, module) {
41479
41612
  serialize: urnuuidSerialize,
41480
41613
  skipNormalize: true
41481
41614
  };
41615
+ var LOCAL_PART_ALLOWED = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-._~!$'()*+=";
41616
+ var HFNAME_ALLOWED = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-._~!$'()*+,;:@";
41617
+ var DTEXT_ALLOWED = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-._~!$'()*+;:";
41618
+ function allowSet(chars, allowNonAscii = false) {
41619
+ const table = new Uint8Array(128);
41620
+ for (let i = 0;i < chars.length; i++) {
41621
+ table[chars.charCodeAt(i)] = 1;
41622
+ }
41623
+ const escaped = chars.replace(/[\\\]^-]/gu, "\\$&");
41624
+ const cls = allowNonAscii ? `[${escaped}]|[^\\0-\\x7F\\uD800-\\uDFFF]` : `[${escaped}]`;
41625
+ return { all: new RegExp(`^(?:${cls})*$`, "u"), table, allowNonAscii };
41626
+ }
41627
+ var LOCAL_PART = allowSet(LOCAL_PART_ALLOWED);
41628
+ var HFNAME = allowSet(HFNAME_ALLOWED);
41629
+ var DTEXT = allowSet(DTEXT_ALLOWED);
41630
+ var DTEXT_IRI = allowSet(DTEXT_ALLOWED, true);
41631
+ var HEX_PAIR = /^[\da-f]{2}$/iu;
41632
+ var MAILTO_DOMAIN_LITERAL = /^\[[\x21-\x5A\x5E-\x7E]*\]$/u;
41633
+ var MAILTO_DOMAIN_ERROR = "URI mailto has an invalid recipient domain.";
41634
+ var HAS_SURROGATE = /[\uD800-\uDFFF]/u;
41635
+ function decodeHex(str) {
41636
+ if (typeof str !== "string" || str.indexOf("%") === -1) {
41637
+ return str;
41638
+ }
41639
+ try {
41640
+ return decodeURIComponent(str);
41641
+ } catch {
41642
+ return str;
41643
+ }
41644
+ }
41645
+ function replaceLoneSurrogates(input) {
41646
+ let result = "";
41647
+ for (let i = 0;i < input.length; i++) {
41648
+ const code = input.charCodeAt(i);
41649
+ if (code >= 55296 && code <= 56319 && i + 1 < input.length) {
41650
+ const low = input.charCodeAt(i + 1);
41651
+ if (low >= 56320 && low <= 57343) {
41652
+ result += input[i] + input[i + 1];
41653
+ i++;
41654
+ continue;
41655
+ }
41656
+ }
41657
+ result += code >= 55296 && code <= 57343 ? "�" : input[i];
41658
+ }
41659
+ return result;
41660
+ }
41661
+ function encodeWithAllow(input, set2) {
41662
+ if (set2.all.test(input)) {
41663
+ return input;
41664
+ }
41665
+ const table = set2.table;
41666
+ let result = "";
41667
+ for (let i = 0;i < input.length; i++) {
41668
+ const code = input.charCodeAt(i);
41669
+ if (code < 128) {
41670
+ if (table[code] === 1) {
41671
+ result += input[i];
41672
+ } else if (code === 37 && i + 2 < input.length && HEX_PAIR.test(input.slice(i + 1, i + 3))) {
41673
+ result += "%" + input.slice(i + 1, i + 3).toUpperCase();
41674
+ i += 2;
41675
+ } else {
41676
+ result += BYTE_HEX[code];
41677
+ }
41678
+ continue;
41679
+ }
41680
+ if (code < 55296 || code > 57343) {
41681
+ result += set2.allowNonAscii ? input[i] : percentEncodeNonAscii(code);
41682
+ continue;
41683
+ }
41684
+ if (code <= 56319 && i + 1 < input.length) {
41685
+ const low = input.charCodeAt(i + 1);
41686
+ if (low >= 56320 && low <= 57343) {
41687
+ result += set2.allowNonAscii ? input[i] + input[i + 1] : percentEncodeNonAscii(65536 + (code - 55296 << 10) + (low - 56320));
41688
+ i++;
41689
+ continue;
41690
+ }
41691
+ }
41692
+ result += set2.allowNonAscii ? "�" : percentEncodeNonAscii(65533);
41693
+ }
41694
+ return result;
41695
+ }
41696
+ function mailtoNormalizeDomain(domain, options, component) {
41697
+ const normalizedDomain = String(domain).toLowerCase();
41698
+ if (MAILTO_DOMAIN_LITERAL.test(normalizedDomain)) {
41699
+ return normalizedDomain;
41700
+ }
41701
+ if (normalizedDomain !== "" && !nonSimpleMailtoDomain(normalizedDomain)) {
41702
+ return normalizedDomain;
41703
+ }
41704
+ try {
41705
+ const parsedDomain = new URL("http://" + normalizedDomain);
41706
+ if (parsedDomain.username || parsedDomain.password || parsedDomain.port || parsedDomain.pathname !== "/" || parsedDomain.search || parsedDomain.hash || !parsedDomain.hostname) {
41707
+ throw new Error(MAILTO_DOMAIN_ERROR);
41708
+ }
41709
+ return options && options.unicodeSupport ? normalizedDomain : parsedDomain.hostname;
41710
+ } catch {
41711
+ if (component) {
41712
+ component.error = component.error || MAILTO_DOMAIN_ERROR;
41713
+ }
41714
+ return normalizedDomain;
41715
+ }
41716
+ }
41717
+ function mailtoEncodeDomain(domain, options) {
41718
+ const set2 = options && options.unicodeSupport ? DTEXT_IRI : DTEXT;
41719
+ if (domain.length > 1 && domain[0] === "[" && domain[domain.length - 1] === "]") {
41720
+ return "[" + encodeWithAllow(domain.slice(1, -1), set2) + "]";
41721
+ }
41722
+ return encodeWithAllow(domain, set2);
41723
+ }
41724
+ function mailtoParse(component, options) {
41725
+ const mailtoComponent = component;
41726
+ let rawPath = mailtoComponent.path;
41727
+ let rawQuery = mailtoComponent.query;
41728
+ if (rawPath && HAS_SURROGATE.test(rawPath))
41729
+ rawPath = replaceLoneSurrogates(rawPath);
41730
+ if (rawQuery && HAS_SURROGATE.test(rawQuery))
41731
+ rawQuery = replaceLoneSurrogates(rawQuery);
41732
+ const to = rawPath ? rawPath.indexOf(",") === -1 ? [rawPath] : rawPath.split(",") : [];
41733
+ mailtoComponent.path = undefined;
41734
+ if (rawQuery) {
41735
+ let headers = null;
41736
+ let start = 0;
41737
+ while (start <= rawQuery.length) {
41738
+ let end = rawQuery.indexOf("&", start);
41739
+ if (end === -1)
41740
+ end = rawQuery.length;
41741
+ const token = rawQuery.slice(start, end);
41742
+ start = end + 1;
41743
+ const eqIdx = token.indexOf("=");
41744
+ if (eqIdx !== token.lastIndexOf("=")) {
41745
+ mailtoComponent.error = mailtoComponent.error || "URI mailto has malformed header fields.";
41746
+ continue;
41747
+ }
41748
+ const name = eqIdx === -1 ? token : token.slice(0, eqIdx);
41749
+ const value = eqIdx === -1 ? "" : token.slice(eqIdx + 1);
41750
+ if (name === "to") {
41751
+ const addrs = value.split(",");
41752
+ for (let j = 0;j < addrs.length; j++)
41753
+ to.push(addrs[j]);
41754
+ continue;
41755
+ }
41756
+ if (name === "subject") {
41757
+ mailtoComponent.subject = decodeHex(value);
41758
+ continue;
41759
+ }
41760
+ if (name === "body") {
41761
+ mailtoComponent.body = decodeHex(value);
41762
+ continue;
41763
+ }
41764
+ if (headers === null)
41765
+ headers = Object.create(null);
41766
+ headers[decodeHex(name)] = decodeHex(value);
41767
+ }
41768
+ if (headers !== null)
41769
+ mailtoComponent.headers = headers;
41770
+ }
41771
+ mailtoComponent.query = undefined;
41772
+ for (let i = 0;i < to.length; i++) {
41773
+ const rawAddr = to[i];
41774
+ const atIdx = rawAddr.lastIndexOf("@");
41775
+ if (atIdx < 0) {
41776
+ mailtoComponent.error = mailtoComponent.error || MAILTO_DOMAIN_ERROR;
41777
+ to[i] = decodeHex(rawAddr);
41778
+ continue;
41779
+ }
41780
+ const local = decodeHex(rawAddr.slice(0, atIdx));
41781
+ const domain = mailtoNormalizeDomain(decodeHex(rawAddr.slice(atIdx + 1)), options, mailtoComponent);
41782
+ to[i] = local + "@" + domain;
41783
+ }
41784
+ if (to.length)
41785
+ mailtoComponent.to = to;
41786
+ return mailtoComponent;
41787
+ }
41788
+ function mailtoSerialize(component, options) {
41789
+ const mailtoComponent = component;
41790
+ const to = Array.isArray(mailtoComponent.to) ? mailtoComponent.to.slice() : [];
41791
+ if (to.length) {
41792
+ for (let i = 0;i < to.length; i++) {
41793
+ const addr = String(to[i]);
41794
+ const atIdx = addr.lastIndexOf("@");
41795
+ const rawLocal = atIdx >= 0 ? addr.slice(0, atIdx) : addr;
41796
+ const rawDomain = atIdx >= 0 ? addr.slice(atIdx + 1) : "";
41797
+ const local = encodeWithAllow(rawLocal, LOCAL_PART);
41798
+ const decodedDomain = decodeHex(rawDomain);
41799
+ const normalizedDomain = mailtoNormalizeDomain(decodedDomain, options);
41800
+ to[i] = local + "@" + mailtoEncodeDomain(normalizedDomain, options);
41801
+ }
41802
+ mailtoComponent.path = to.join(",");
41803
+ options.skipEscape = true;
41804
+ } else {
41805
+ mailtoComponent.path = undefined;
41806
+ }
41807
+ const headers = mailtoComponent.headers && typeof mailtoComponent.headers === "object" ? Object.assign(Object.create(null), mailtoComponent.headers) : Object.create(null);
41808
+ if (mailtoComponent.subject)
41809
+ headers.subject = mailtoComponent.subject;
41810
+ if (mailtoComponent.body)
41811
+ headers.body = mailtoComponent.body;
41812
+ mailtoComponent.headers = headers;
41813
+ let query = "";
41814
+ let count = 0;
41815
+ for (const name in headers) {
41816
+ if (count++ !== 0)
41817
+ query += "&";
41818
+ query += encodeWithAllow(name, HFNAME) + "=" + encodeWithAllow(String(headers[name]), HFNAME);
41819
+ }
41820
+ if (count !== 0) {
41821
+ mailtoComponent.query = query;
41822
+ } else {
41823
+ mailtoComponent.headers = undefined;
41824
+ }
41825
+ return mailtoComponent;
41826
+ }
41827
+ var mailto = {
41828
+ scheme: "mailto",
41829
+ parse: mailtoParse,
41830
+ serialize: mailtoSerialize,
41831
+ domainHost: false,
41832
+ unicodeSupport: true,
41833
+ skipNormalize: true,
41834
+ absolutePath: true
41835
+ };
41482
41836
  var SCHEMES = {
41483
41837
  http,
41484
41838
  https,
41485
41839
  ws,
41486
41840
  wss,
41487
41841
  urn,
41488
- "urn:uuid": urnuuid
41842
+ "urn:uuid": urnuuid,
41843
+ mailto
41489
41844
  };
41490
41845
  Object.setPrototypeOf(SCHEMES, null);
41491
41846
  function getSchemeHandler(scheme) {
@@ -41501,8 +41856,17 @@ var require_schemes = __commonJS(function(exports, module) {
41501
41856
 
41502
41857
  // node_modules/fast-uri/index.js
41503
41858
  var require_fast_uri = __commonJS(function(exports, module) {
41504
- var { normalizeIPv6, removeDotSegments, recomposeAuthority, normalizePercentEncoding, normalizePathEncoding, normalizeQueryFragmentEncoding, escapePreservingEscapes, reescapeHostDelimiters, isIPv4, nonSimpleDomain } = require_utils4();
41859
+ var { normalizeIPv6, removeDotSegments, recomposeAuthority, normalizePercentEncoding, normalizePathEncoding, serializePathEncoding, normalizeQueryFragmentEncoding, encodeQuery, encodeFragment, reescapeHostDelimiters, isIPv4, nonSimpleDomain } = require_utils4();
41505
41860
  var { SCHEMES, getSchemeHandler } = require_schemes();
41861
+ var VALID_SCHEME = /^[A-Za-z][A-Za-z0-9+.-]*$/u;
41862
+ var MALFORMED_SCHEME_ERROR = "URI scheme is malformed.";
41863
+ function decodeValidScheme(scheme) {
41864
+ const decodedScheme = unescape(String(scheme));
41865
+ if (!VALID_SCHEME.test(decodedScheme)) {
41866
+ throw new TypeError(MALFORMED_SCHEME_ERROR);
41867
+ }
41868
+ return decodedScheme;
41869
+ }
41506
41870
  function normalize(uri, options) {
41507
41871
  if (typeof uri === "string") {
41508
41872
  uri = normalizeString(uri, options);
@@ -41513,12 +41877,34 @@ var require_fast_uri = __commonJS(function(exports, module) {
41513
41877
  }
41514
41878
  function resolve(baseURI, relativeURI, options) {
41515
41879
  const schemelessOptions = options ? Object.assign({ scheme: "null" }, options) : { scheme: "null" };
41516
- const { parsed: baseParsed, malformedAuthorityOrPort: baseMalformed } = parseWithStatus(baseURI, schemelessOptions);
41517
- const { parsed: relativeParsed, malformedAuthorityOrPort: relativeMalformed } = parseWithStatus(relativeURI, schemelessOptions);
41518
- if (baseMalformed || relativeMalformed) {
41880
+ const {
41881
+ parsed: baseParsed,
41882
+ malformedAuthorityOrPort: baseMalformed,
41883
+ malformedPercentEncoding: baseMalformedPercentEncoding,
41884
+ malformedSchemeSpecific: baseMalformedSchemeSpecific,
41885
+ malformedHost: baseMalformedHost,
41886
+ malformedScheme: baseMalformedScheme
41887
+ } = parseWithStatus(baseURI, schemelessOptions);
41888
+ const {
41889
+ parsed: relativeParsed,
41890
+ malformedAuthorityOrPort: relativeMalformed,
41891
+ malformedPercentEncoding: relativeMalformedPercentEncoding,
41892
+ malformedSchemeSpecific: relativeMalformedSchemeSpecific,
41893
+ malformedHost: relativeMalformedHost,
41894
+ malformedScheme: relativeMalformedScheme
41895
+ } = parseWithStatus(relativeURI, schemelessOptions);
41896
+ if (baseMalformed || relativeMalformed || baseMalformedPercentEncoding || relativeMalformedPercentEncoding || baseMalformedSchemeSpecific || relativeMalformedSchemeSpecific || baseMalformedHost || relativeMalformedHost || baseMalformedScheme || relativeMalformedScheme) {
41519
41897
  throw new Error(baseParsed.error || relativeParsed.error || "URI is malformed.");
41520
41898
  }
41521
41899
  const resolved = resolveComponent(baseParsed, relativeParsed, schemelessOptions, true);
41900
+ const resolvedSchemeHandler = getSchemeHandler(options && options.scheme || resolved.scheme);
41901
+ const resolvedHost = resolved.host;
41902
+ const resolvedHostIsIP = resolvedHost !== undefined && resolvedHost !== "" && (isIPv4(resolvedHost) || normalizeIPv6(resolvedHost).isIPV6);
41903
+ canonicalizeHost(resolved, options || {}, resolvedSchemeHandler, resolvedHostIsIP);
41904
+ const encodedASCIIHost = resolvedHost && resolvedHost.indexOf("%") !== -1 && !/\P{ASCII}/u.test(resolvedHost);
41905
+ if (resolved.error && !encodedASCIIHost) {
41906
+ throw new Error(resolved.error);
41907
+ }
41522
41908
  schemelessOptions.skipEscape = true;
41523
41909
  return serialize(resolved, schemelessOptions);
41524
41910
  }
@@ -41578,7 +41964,7 @@ var require_fast_uri = __commonJS(function(exports, module) {
41578
41964
  function equal(uriA, uriB, options) {
41579
41965
  const normalizedA = normalizeComparableURI(uriA, options);
41580
41966
  const normalizedB = normalizeComparableURI(uriB, options);
41581
- return normalizedA !== undefined && normalizedB !== undefined && normalizedA.toLowerCase() === normalizedB.toLowerCase();
41967
+ return normalizedA !== undefined && normalizedB !== undefined && normalizedA === normalizedB;
41582
41968
  }
41583
41969
  function serialize(cmpts, opts) {
41584
41970
  const component = {
@@ -41595,24 +41981,31 @@ var require_fast_uri = __commonJS(function(exports, module) {
41595
41981
  reference: cmpts.reference,
41596
41982
  resourceName: cmpts.resourceName,
41597
41983
  secure: cmpts.secure,
41984
+ to: cmpts.to,
41985
+ subject: cmpts.subject,
41986
+ body: cmpts.body,
41987
+ headers: cmpts.headers,
41598
41988
  error: ""
41599
41989
  };
41600
41990
  const options = Object.assign({}, opts);
41601
41991
  const uriTokens = [];
41992
+ if (component.scheme) {
41993
+ component.scheme = decodeValidScheme(component.scheme);
41994
+ }
41602
41995
  const schemeHandler = getSchemeHandler(options.scheme || component.scheme);
41603
41996
  if (schemeHandler && schemeHandler.serialize)
41604
41997
  schemeHandler.serialize(component, options);
41998
+ const hasAuthority = component.userinfo !== undefined || component.host !== undefined || component.port !== undefined;
41999
+ const pathNoScheme = !options.skipEscape && component.scheme === undefined && !hasAuthority;
41605
42000
  if (component.path !== undefined) {
41606
42001
  if (!options.skipEscape) {
41607
- component.path = escapePreservingEscapes(component.path);
41608
- if (component.scheme !== undefined) {
41609
- component.path = component.path.split("%3A").join(":");
41610
- }
42002
+ component.path = serializePathEncoding(component.path, pathNoScheme);
41611
42003
  } else {
41612
42004
  component.path = normalizePercentEncoding(component.path);
41613
42005
  }
41614
42006
  }
41615
42007
  if (options.reference !== "suffix" && component.scheme) {
42008
+ component.scheme = decodeValidScheme(component.scheme);
41616
42009
  uriTokens.push(component.scheme, ":");
41617
42010
  }
41618
42011
  const authority = recomposeAuthority(component);
@@ -41630,16 +42023,19 @@ var require_fast_uri = __commonJS(function(exports, module) {
41630
42023
  if (!options.absolutePath && (!schemeHandler || !schemeHandler.absolutePath)) {
41631
42024
  s = removeDotSegments(s);
41632
42025
  }
42026
+ if (pathNoScheme) {
42027
+ s = serializePathEncoding(s, true);
42028
+ }
41633
42029
  if (authority === undefined && s[0] === "/" && s[1] === "/") {
41634
42030
  s = "/%2F" + s.slice(2);
41635
42031
  }
41636
42032
  uriTokens.push(s);
41637
42033
  }
41638
42034
  if (component.query !== undefined) {
41639
- uriTokens.push("?", component.query);
42035
+ uriTokens.push("?", encodeQuery(component.query));
41640
42036
  }
41641
42037
  if (component.fragment !== undefined) {
41642
- uriTokens.push("#", component.fragment);
42038
+ uriTokens.push("#", encodeFragment(component.fragment));
41643
42039
  }
41644
42040
  return uriTokens.join("");
41645
42041
  }
@@ -41655,6 +42051,33 @@ var require_fast_uri = __commonJS(function(exports, module) {
41655
42051
  }
41656
42052
  return;
41657
42053
  }
42054
+ function hasMalformedPercentEncoding(component) {
42055
+ if (component === undefined)
42056
+ return false;
42057
+ let percent = component.indexOf("%");
42058
+ while (percent !== -1) {
42059
+ if (percent + 2 >= component.length || !/^[\da-f]{2}$/iu.test(component.slice(percent + 1, percent + 3))) {
42060
+ return true;
42061
+ }
42062
+ percent = component.indexOf("%", percent + 3);
42063
+ }
42064
+ return false;
42065
+ }
42066
+ function hasMalformedComponentPercentEncoding(matches) {
42067
+ const host = matches[4];
42068
+ return hasMalformedPercentEncoding(matches[3]) || host !== undefined && !(host[0] === "[" && host[host.length - 1] === "]") && hasMalformedPercentEncoding(host) || hasMalformedPercentEncoding(matches[6]) || hasMalformedPercentEncoding(matches[7]) || hasMalformedPercentEncoding(matches[8]);
42069
+ }
42070
+ function canonicalizeHost(parsed, options, schemeHandler, isIP) {
42071
+ if (!options.unicodeSupport && (!schemeHandler || !schemeHandler.unicodeSupport) && parsed.host && parsed.host[0] !== "[" && (options.domainHost || schemeHandler && schemeHandler.domainHost) && isIP === false && nonSimpleDomain(parsed.host)) {
42072
+ try {
42073
+ parsed.host = new URL("http://" + parsed.host).hostname;
42074
+ } catch (e) {
42075
+ parsed.error = parsed.error || "Host's domain name can not be converted to ASCII: " + e;
42076
+ return true;
42077
+ }
42078
+ }
42079
+ return false;
42080
+ }
41658
42081
  function parseWithStatus(uri, opts) {
41659
42082
  const options = Object.assign({}, opts);
41660
42083
  const parsed = {
@@ -41667,6 +42090,11 @@ var require_fast_uri = __commonJS(function(exports, module) {
41667
42090
  fragment: undefined
41668
42091
  };
41669
42092
  let malformedAuthorityOrPort = false;
42093
+ let malformedPercentEncoding = false;
42094
+ let malformedSchemeSpecific = false;
42095
+ let malformedHost = false;
42096
+ let malformedIPLiteral = false;
42097
+ let malformedScheme = false;
41670
42098
  let isIP = false;
41671
42099
  if (options.reference === "suffix") {
41672
42100
  if (options.scheme) {
@@ -41696,13 +42124,26 @@ var require_fast_uri = __commonJS(function(exports, module) {
41696
42124
  }
41697
42125
  const matches = uri.match(URI_PARSE);
41698
42126
  if (matches) {
41699
- parsed.scheme = matches[1] === undefined ? undefined : matches[1].toLowerCase();
42127
+ parsed.scheme = matches[1];
41700
42128
  parsed.userinfo = matches[3];
41701
42129
  parsed.host = matches[4];
41702
42130
  parsed.port = parseInt(matches[5], 10);
41703
42131
  parsed.path = matches[6] || "";
41704
42132
  parsed.query = matches[7];
41705
42133
  parsed.fragment = matches[8];
42134
+ if (parsed.scheme !== undefined) {
42135
+ const decodedScheme = unescape(parsed.scheme);
42136
+ if (VALID_SCHEME.test(decodedScheme)) {
42137
+ parsed.scheme = decodedScheme.toLowerCase();
42138
+ } else {
42139
+ parsed.error = parsed.error || MALFORMED_SCHEME_ERROR;
42140
+ malformedScheme = true;
42141
+ }
42142
+ }
42143
+ malformedPercentEncoding = hasMalformedComponentPercentEncoding(matches);
42144
+ if (malformedPercentEncoding) {
42145
+ parsed.error = parsed.error || "URI contains malformed percent-encoding.";
42146
+ }
41706
42147
  if (isNaN(parsed.port)) {
41707
42148
  parsed.port = matches[5];
41708
42149
  }
@@ -41714,9 +42155,15 @@ var require_fast_uri = __commonJS(function(exports, module) {
41714
42155
  if (parsed.host) {
41715
42156
  const ipv4result = isIPv4(parsed.host);
41716
42157
  if (ipv4result === false) {
42158
+ const bracketedIPLiteral = parsed.host[0] === "[" && parsed.host[parsed.host.length - 1] === "]";
41717
42159
  const ipv6result = normalizeIPv6(parsed.host);
41718
- parsed.host = ipv6result.host.toLowerCase();
41719
- isIP = ipv6result.isIPV6;
42160
+ isIP = ipv6result.isIPV6 || ipv6result.isIPVFuture === true;
42161
+ malformedIPLiteral = bracketedIPLiteral && ipv6result.error === true;
42162
+ parsed.host = isIP ? ipv6result.host : ipv6result.host.toLowerCase();
42163
+ if (malformedIPLiteral) {
42164
+ parsed.error = parsed.error || "URI host is malformed.";
42165
+ malformedAuthorityOrPort = true;
42166
+ }
41720
42167
  } else {
41721
42168
  isIP = true;
41722
42169
  }
@@ -41734,22 +42181,12 @@ var require_fast_uri = __commonJS(function(exports, module) {
41734
42181
  parsed.error = parsed.error || "URI is not a " + options.reference + " reference.";
41735
42182
  }
41736
42183
  const schemeHandler = getSchemeHandler(options.scheme || parsed.scheme);
41737
- if (!options.unicodeSupport && (!schemeHandler || !schemeHandler.unicodeSupport)) {
41738
- if (parsed.host && (options.domainHost || schemeHandler && schemeHandler.domainHost) && isIP === false && nonSimpleDomain(parsed.host)) {
41739
- try {
41740
- parsed.host = new URL("http://" + parsed.host).hostname;
41741
- } catch (e) {
41742
- parsed.error = parsed.error || "Host's domain name can not be converted to ASCII: " + e;
41743
- }
41744
- }
41745
- }
42184
+ malformedHost = canonicalizeHost(parsed, options, schemeHandler, isIP);
41746
42185
  if (!schemeHandler || schemeHandler && !schemeHandler.skipNormalize) {
41747
42186
  if (uri.indexOf("%") !== -1) {
41748
- if (parsed.scheme !== undefined) {
41749
- parsed.scheme = unescape(parsed.scheme);
41750
- }
41751
- if (parsed.host !== undefined) {
41752
- parsed.host = reescapeHostDelimiters(unescape(parsed.host), isIP);
42187
+ if (parsed.host !== undefined && !malformedIPLiteral) {
42188
+ const host = isIP ? parsed.host : normalizePercentEncoding(parsed.host, true);
42189
+ parsed.host = reescapeHostDelimiters(host, isIP);
41753
42190
  }
41754
42191
  }
41755
42192
  if (parsed.path) {
@@ -41764,11 +42201,14 @@ var require_fast_uri = __commonJS(function(exports, module) {
41764
42201
  }
41765
42202
  if (schemeHandler && schemeHandler.parse) {
41766
42203
  schemeHandler.parse(parsed, options);
42204
+ if (schemeHandler === SCHEMES.urn && parsed.nid === undefined) {
42205
+ malformedSchemeSpecific = true;
42206
+ }
41767
42207
  }
41768
42208
  } else {
41769
42209
  parsed.error = parsed.error || "URI can not be parsed.";
41770
42210
  }
41771
- return { parsed, malformedAuthorityOrPort };
42211
+ return { parsed, malformedAuthorityOrPort, malformedPercentEncoding, malformedSchemeSpecific, malformedHost, malformedScheme };
41772
42212
  }
41773
42213
  function parse6(uri, opts) {
41774
42214
  return parseWithStatus(uri, opts).parsed;
@@ -41777,20 +42217,28 @@ var require_fast_uri = __commonJS(function(exports, module) {
41777
42217
  return normalizeStringWithStatus(uri, opts).normalized;
41778
42218
  }
41779
42219
  function normalizeStringWithStatus(uri, opts) {
41780
- const { parsed, malformedAuthorityOrPort } = parseWithStatus(uri, opts);
42220
+ const { parsed, malformedAuthorityOrPort, malformedPercentEncoding, malformedSchemeSpecific, malformedHost, malformedScheme } = parseWithStatus(uri, opts);
41781
42221
  return {
41782
- normalized: malformedAuthorityOrPort ? uri : serialize(parsed, opts),
41783
- malformedAuthorityOrPort
42222
+ normalized: malformedAuthorityOrPort || malformedPercentEncoding || malformedSchemeSpecific || malformedHost || malformedScheme ? uri : serialize(parsed, opts),
42223
+ malformedAuthorityOrPort,
42224
+ malformedPercentEncoding,
42225
+ malformedSchemeSpecific,
42226
+ malformedHost,
42227
+ malformedScheme
41784
42228
  };
41785
42229
  }
41786
42230
  function normalizeComparableURI(uri, opts) {
41787
- if (typeof uri === "string") {
41788
- const { normalized, malformedAuthorityOrPort } = normalizeStringWithStatus(uri, opts);
41789
- return malformedAuthorityOrPort ? undefined : normalized;
42231
+ if (typeof uri !== "string" && typeof uri !== "object") {
42232
+ return;
41790
42233
  }
41791
- if (typeof uri === "object") {
41792
- return serialize(uri, opts);
42234
+ let value;
42235
+ try {
42236
+ value = typeof uri === "string" ? uri : serialize(uri, opts);
42237
+ } catch {
42238
+ return;
41793
42239
  }
42240
+ const { normalized, malformedAuthorityOrPort, malformedPercentEncoding, malformedSchemeSpecific, malformedHost, malformedScheme } = normalizeStringWithStatus(value, opts);
42241
+ return malformedAuthorityOrPort || malformedPercentEncoding || malformedSchemeSpecific || malformedHost || malformedScheme ? undefined : normalized;
41794
42242
  }
41795
42243
  var fastUri = {
41796
42244
  SCHEMES,
@@ -51498,9 +51946,9 @@ var init_config = __esm(() => {
51498
51946
  SDK_METADATA = {
51499
51947
  language: "typescript",
51500
51948
  openapiDocVersion: "0.1.0",
51501
- sdkVersion: "0.0.41",
51949
+ sdkVersion: "0.0.42",
51502
51950
  genVersion: "2.915.1",
51503
- userAgent: "speakeasy-sdk/mcp-typescript 0.0.41 2.915.1 0.1.0 @dalmia/calibrate-mcp"
51951
+ userAgent: "speakeasy-sdk/mcp-typescript 0.0.42 2.915.1 0.1.0 @dalmia/calibrate-mcp"
51504
51952
  };
51505
51953
  });
51506
51954
 
@@ -53689,8 +54137,9 @@ var init_routersevaluatorsevaluatorresponse = __esm(() => {
53689
54137
  "stt",
53690
54138
  "llm",
53691
54139
  "llm-general",
53692
- "conversation"
53693
- ]).describe("What the evaluator judges:\n\n- `tts`: TTS audio\n- `stt`: one transcript\n- `llm`: a reply with its conversation history\n- `llm-general`: a standalone input and output pair\n- `conversation`: a full conversation\n");
54140
+ "conversation",
54141
+ "tool-call"
54142
+ ]).describe("What the evaluator judges:\n\n- `tts`: TTS audio\n- `stt`: one transcript\n- `llm`: a reply with its conversation history\n- `llm-general`: a standalone input and output pair\n- `conversation`: a full conversation\n- `tool-call`: whether the agent called the right tool, labelled by a person\n");
53694
54143
  RoutersEvaluatorsEvaluatorResponseDataType$zodSchema = _enum([
53695
54144
  "text",
53696
54145
  "audio"
@@ -53703,8 +54152,9 @@ var init_routersevaluatorsevaluatorresponse = __esm(() => {
53703
54152
  created_at: string2().describe("When the evaluator was created (ISO 8601 UTC)"),
53704
54153
  data_type: RoutersEvaluatorsEvaluatorResponseDataType$zodSchema.describe("The modality the judge reads:\n\n- `text`\n- `audio`\n"),
53705
54154
  description: string2().nullable().optional().describe("What the evaluator checks"),
53706
- evaluator_type: RoutersEvaluatorsEvaluatorResponseEvaluatorType$zodSchema.describe("What the evaluator judges:\n\n- `tts`: TTS audio\n- `stt`: one transcript\n- `llm`: a reply with its conversation history\n- `llm-general`: a standalone input and output pair\n- `conversation`: a full conversation\n"),
54155
+ evaluator_type: RoutersEvaluatorsEvaluatorResponseEvaluatorType$zodSchema.describe("What the evaluator judges:\n\n- `tts`: TTS audio\n- `stt`: one transcript\n- `llm`: a reply with its conversation history\n- `llm-general`: a standalone input and output pair\n- `conversation`: a full conversation\n- `tool-call`: whether the agent called the right tool, labelled by a person\n"),
53707
54156
  is_default: boolean2().describe("True when the evaluator is a built-in default or your workspace's editable copy of one. False for an evaluator you created yourself"),
54157
+ is_protected: boolean2().describe("True when the evaluator is locked. A locked evaluator cannot be deleted, and only its name, description and rubric can change"),
53708
54158
  live_version: EvaluatorLiveVersionSummary$zodSchema.nullable().optional().describe("The version that is currently live"),
53709
54159
  live_version_id: string2().nullable().optional().describe("ID of the version that is currently live"),
53710
54160
  name: string2().describe("Evaluator name"),
@@ -56523,7 +56973,7 @@ var init_annotationtaskresponse = __esm(() => {
56523
56973
  evaluators: array(record(string2(), any())).optional().describe("The evaluators linked to this task, in display order. Fetching one task by ID enriches each with its live version's rubric. Listing tasks returns lightweight metadata (uuid, name, type, position) only"),
56524
56974
  has_agreement: boolean2().default(false).describe("Whether the task has at least one comparable human-vs-human or human-vs-evaluator pair, computed over all time"),
56525
56975
  item_count: int().nullable().optional().describe("Number of items in the task"),
56526
- items: array(record(string2(), any())).optional().describe("The task's items, each with its agreement stats. You get these when you fetch one task by ID, not when you list tasks"),
56976
+ items: array(record(string2(), any())).optional().describe("The task's items, each with its agreement stats and an `is_tool_call` flag marking the rows a person labels on the tool call rather than a text reply. You get these when you fetch one task by ID, not when you list tasks"),
56527
56977
  jobs: array(record(string2(), any())).optional().describe("The task's labelling jobs. You get these when you fetch one task by ID, not when you list tasks"),
56528
56978
  name: string2().describe("Name of the task"),
56529
56979
  type: AnnotationTaskResponseType$zodSchema.describe("Task type. Determines the shape of each item's payload.\n- `stt`: judge a transcript on its own\n- `llm`: judge one response with its conversation history\n- `llm-general`: judge a standalone `input -> output` pair\n- `conversation`: judge a full conversation"),
@@ -58211,8 +58661,9 @@ var init_evaluatorcreate = __esm(() => {
58211
58661
  "stt",
58212
58662
  "llm",
58213
58663
  "llm-general",
58214
- "conversation"
58215
- ]).describe("What the evaluator judges:\n\n- `tts`: TTS audio\n- `stt`: one transcript\n- `llm`: a reply with its conversation history\n- `llm-general`: a standalone input and output pair\n- `conversation`: a full conversation\n");
58664
+ "conversation",
58665
+ "tool-call"
58666
+ ]).describe("What the evaluator judges:\n\n- `tts`: TTS audio\n- `stt`: one transcript\n- `llm`: a reply with its conversation history\n- `llm-general`: a standalone input and output pair\n- `conversation`: a full conversation\n- `tool-call`: whether the agent called the right tool, labelled by a person\n");
58216
58667
  EvaluatorCreateDataType$zodSchema = _enum([
58217
58668
  "text",
58218
58669
  "audio"
@@ -58224,7 +58675,7 @@ var init_evaluatorcreate = __esm(() => {
58224
58675
  EvaluatorCreate$zodSchema = object({
58225
58676
  data_type: EvaluatorCreateDataType$zodSchema.default("text").describe("The modality the judge reads:\n\n- `text`\n- `audio`\n"),
58226
58677
  description: string2().nullable().optional().describe("Description. Omit to leave blank"),
58227
- evaluator_type: EvaluatorCreateEvaluatorType$zodSchema.default("llm").describe("What the evaluator judges:\n\n- `tts`: TTS audio\n- `stt`: one transcript\n- `llm`: a reply with its conversation history\n- `llm-general`: a standalone input and output pair\n- `conversation`: a full conversation\n"),
58678
+ evaluator_type: EvaluatorCreateEvaluatorType$zodSchema.default("llm").describe("What the evaluator judges:\n\n- `tts`: TTS audio\n- `stt`: one transcript\n- `llm`: a reply with its conversation history\n- `llm-general`: a standalone input and output pair\n- `conversation`: a full conversation\n- `tool-call`: whether the agent called the right tool, labelled by a person\n"),
58228
58679
  name: string2().describe("Evaluator name, unique within your workspace"),
58229
58680
  output_type: EvaluatorCreateOutputType$zodSchema.default("binary").describe("How the evaluator scores:\n\n- `binary`: pass or fail\n- `rating`: a numeric score, using the scale in `output_config`\n"),
58230
58681
  version: EvaluatorVersionCreate$zodSchema.describe("One version of an evaluator: its judge prompt, model, variables, and rubric.")
@@ -58558,8 +59009,9 @@ var init_evaluatordetailresponsecompact = __esm(() => {
58558
59009
  "stt",
58559
59010
  "llm",
58560
59011
  "llm-general",
58561
- "conversation"
58562
- ]).describe("What the evaluator judges:\n\n- `tts`: TTS audio\n- `stt`: one transcript\n- `llm`: a reply with its conversation history\n- `llm-general`: a standalone input and output pair\n- `conversation`: a full conversation\n");
59012
+ "conversation",
59013
+ "tool-call"
59014
+ ]).describe("What the evaluator judges:\n\n- `tts`: TTS audio\n- `stt`: one transcript\n- `llm`: a reply with its conversation history\n- `llm-general`: a standalone input and output pair\n- `conversation`: a full conversation\n- `tool-call`: whether the agent called the right tool, labelled by a person\n");
58563
59015
  EvaluatorDetailResponseCompactDataType$zodSchema = _enum([
58564
59016
  "text",
58565
59017
  "audio"
@@ -58572,8 +59024,9 @@ var init_evaluatordetailresponsecompact = __esm(() => {
58572
59024
  created_at: string2().describe("When the evaluator was created (ISO 8601 UTC)"),
58573
59025
  data_type: EvaluatorDetailResponseCompactDataType$zodSchema.describe("The modality the judge reads:\n\n- `text`\n- `audio`\n"),
58574
59026
  description: string2().nullable().optional().describe("What the evaluator checks"),
58575
- evaluator_type: EvaluatorDetailResponseCompactEvaluatorType$zodSchema.describe("What the evaluator judges:\n\n- `tts`: TTS audio\n- `stt`: one transcript\n- `llm`: a reply with its conversation history\n- `llm-general`: a standalone input and output pair\n- `conversation`: a full conversation\n"),
59027
+ evaluator_type: EvaluatorDetailResponseCompactEvaluatorType$zodSchema.describe("What the evaluator judges:\n\n- `tts`: TTS audio\n- `stt`: one transcript\n- `llm`: a reply with its conversation history\n- `llm-general`: a standalone input and output pair\n- `conversation`: a full conversation\n- `tool-call`: whether the agent called the right tool, labelled by a person\n"),
58576
59028
  is_default: boolean2().describe("True when the evaluator is a built-in default or your workspace's editable copy of one. False for an evaluator you created yourself"),
59029
+ is_protected: boolean2().describe("True when the evaluator is locked. A locked evaluator cannot be deleted, and only its name, description and rubric can change"),
58577
59030
  live_version_id: string2().nullable().optional().describe("ID of the version that is currently live"),
58578
59031
  name: string2().describe("Evaluator name"),
58579
59032
  output_type: EvaluatorDetailResponseCompactOutputType$zodSchema.describe("How the evaluator scores:\n\n- `binary`: pass or fail\n- `rating`: a numeric score, using the scale in `output_config`\n"),
@@ -58734,7 +59187,8 @@ var init_listevaluatorsevaluatorsgetop = __esm(() => {
58734
59187
  "stt",
58735
59188
  "llm",
58736
59189
  "llm-general",
58737
- "conversation"
59190
+ "conversation",
59191
+ "tool-call"
58738
59192
  ]).describe("Filter by what the evaluator judges. Omit for all types");
58739
59193
  ListEvaluatorsEvaluatorsGetDataType$zodSchema = _enum([
58740
59194
  "text",
@@ -59930,7 +60384,7 @@ hits its trace limit.
59930
60384
  function createMCPServer(deps) {
59931
60385
  const server = new McpServer({
59932
60386
  name: "CalibrateMcp",
59933
- version: "0.0.41"
60387
+ version: "0.0.42"
59934
60388
  });
59935
60389
  const getClient = deps.getSDK || (() => new CalibrateMcpCore({
59936
60390
  security: deps.security,
@@ -61196,7 +61650,7 @@ http_headers = { "api-key-auth" = "YOUR_API_KEY_AUTH" }`;
61196
61650
  <h1>Instructions</h1>
61197
61651
  <p>One-click installation for Claude Desktop users</p>
61198
61652
  <div class="instruction-item">
61199
- <a href="https://github.com/dalmia/calibrate-mcp/releases/download/v0.0.41/mcp-server.mcpb" download="mcp-server.mcpb" class="action-button header-action" style="display: inline-flex; margin-bottom: 16px;">
61653
+ <a href="https://github.com/dalmia/calibrate-mcp/releases/download/v0.0.42/mcp-server.mcpb" download="mcp-server.mcpb" class="action-button header-action" style="display: inline-flex; margin-bottom: 16px;">
61200
61654
  \uD83D\uDCE5 Download MCP Bundle
61201
61655
  </a>
61202
61656
  </div>
@@ -64083,7 +64537,7 @@ var routes = buildRouteMap({
64083
64537
  var app = buildApplication(routes, {
64084
64538
  name: "mcp",
64085
64539
  versionInfo: {
64086
- currentVersion: "0.0.41"
64540
+ currentVersion: "0.0.42"
64087
64541
  }
64088
64542
  });
64089
64543
  run(app, process4.argv.slice(2), buildContext(process4));
@@ -64091,5 +64545,5 @@ export {
64091
64545
  app
64092
64546
  };
64093
64547
 
64094
- //# debugId=D022F7D0B95E1DD664756E2164756E21
64548
+ //# debugId=56C961041DDF068A64756E2164756E21
64095
64549
  //# sourceMappingURL=mcp-server.js.map