@adyen/bento-mcp 0.1.0 → 0.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (58) hide show
  1. package/CHANGELOG.md +20 -0
  2. package/README.md +11 -66
  3. package/dist/assets/components/action-bar/action-bar.stories.ts +1 -1
  4. package/dist/assets/components/action-bar/action-bar.vue +1 -1
  5. package/dist/assets/components/ai-tag/ai-tag.docs.mdx +75 -0
  6. package/dist/assets/components/ai-tag/ai-tag.stories.ts +1 -0
  7. package/dist/assets/components/ai-tag/ai-tag.vue +1 -0
  8. package/dist/assets/components/anchor-scroller/anchor-scroller.docs.mdx +55 -0
  9. package/dist/assets/components/anchor-scroller/anchor-scroller.stories.ts +1 -0
  10. package/dist/assets/components/anchor-scroller/anchor-scroller.vue +1 -0
  11. package/dist/assets/components/anchor-scroller/components/anchor-scroller-list/anchor-scroller-list.vue +1 -0
  12. package/dist/assets/components/card/card.docs.mdx +3 -3
  13. package/dist/assets/components/data-grid/components/data-grid-cell-actions/data-grid-cell-actions.vue +1 -1
  14. package/dist/assets/components/data-grid/components/data-grid-tag-with-text-cell/data-grid-tag-with-text-cell.docs.mdx +35 -0
  15. package/dist/assets/components/data-grid/components/data-grid-tag-with-text-cell/data-grid-tag-with-text-cell.stories.ts +1 -0
  16. package/dist/assets/components/data-grid/components/data-grid-tag-with-text-cell/data-grid-tag-with-text-cell.vue +1 -0
  17. package/dist/assets/components/data-grid/data-grid.docs.mdx +29 -9
  18. package/dist/assets/components/data-grid/data-grid.stories.ts +1 -1
  19. package/dist/assets/components/data-grid/data-grid.vue +1 -1
  20. package/dist/assets/components/date-picker/date-picker.vue +1 -1
  21. package/dist/assets/components/date-range-picker/components/date-range-picker-calendar/date-range-picker-calendar.vue +1 -1
  22. package/dist/assets/components/date-range-picker/date-range-picker.vue +1 -1
  23. package/dist/assets/components/draggable-handle/draggable-handle.docs.mdx +61 -0
  24. package/dist/assets/components/draggable-handle/draggable-handle.stories.ts +1 -0
  25. package/dist/assets/components/draggable-handle/draggable-handle.vue +1 -0
  26. package/dist/assets/components/dropdown/components/dropdown-base-textbox/dropdown-base-textbox.vue +1 -1
  27. package/dist/assets/components/dropdown/components/dropdown-default-textbox/dropdown-default-textbox.vue +1 -1
  28. package/dist/assets/components/dropdown/components/dropdown-small-textbox/dropdown-small-textbox.vue +1 -1
  29. package/dist/assets/components/dropdown/dropdown.docs.mdx +3 -3
  30. package/dist/assets/components/dropdown/dropdown.vue +1 -1
  31. package/dist/assets/components/file-uploader/components/file-uploader-file-card/file-uploader-file-card.vue +1 -1
  32. package/dist/assets/components/file-uploader/file-uploader.vue +1 -1
  33. package/dist/assets/components/filter-bar/components/date-range-filter/date-range-filter.vue +1 -1
  34. package/dist/assets/components/filter-bar/filter-bar.docs.mdx +1 -1
  35. package/dist/assets/components/form-layout/components/form-layout-title/form-layout-title.vue +1 -1
  36. package/dist/assets/components/form-layout/form-layout.docs.mdx +2 -2
  37. package/dist/assets/components/inspector/inspector.docs.mdx +2 -2
  38. package/dist/assets/components/internal/copy/copy.docs.mdx +2 -2
  39. package/dist/assets/components/internal/dialog-page/dialog-page.vue +1 -1
  40. package/dist/assets/components/internal/fixed-scroller/fixed-scroller.vue +1 -1
  41. package/dist/assets/components/internal/listbox/components/listbox-multi-select/components/listbox-multi-select-options/listbox-multi-select-options.vue +1 -1
  42. package/dist/assets/components/layout/layout.docs.mdx +8 -8
  43. package/dist/assets/components/layout/layout.vue +1 -1
  44. package/dist/assets/components/modal/components/base-modal/base-modal.vue +1 -1
  45. package/dist/assets/components/modal/modal.docs.mdx +4 -4
  46. package/dist/assets/components/modal-fullscreen/modal-fullscreen.docs.mdx +5 -5
  47. package/dist/assets/components/modal-fullscreen/modal-fullscreen.vue +1 -1
  48. package/dist/assets/components/secondary-nav/components/secondary-nav-item/secondary-nav-item.vue +1 -1
  49. package/dist/assets/components/sidepanel/sidepanel.docs.mdx +27 -27
  50. package/dist/assets/components/sidepanel/sidepanel.vue +1 -1
  51. package/dist/assets/components/stepper/stepper.docs.mdx +8 -1
  52. package/dist/assets/components/stepper/stepper.stories.ts +1 -1
  53. package/dist/assets/components/summary-grid/summary-grid.docs.mdx +1 -1
  54. package/dist/assets/components/tabs/tabs.docs.mdx +1 -1
  55. package/dist/assets/components/toast/toast.docs.mdx +10 -10
  56. package/dist/assets/index.ts +1 -1
  57. package/dist/main.js +501 -427
  58. package/package.json +5 -4
package/dist/main.js CHANGED
@@ -3099,92 +3099,62 @@ var require_data = __commonJS({
3099
3099
  }
3100
3100
  });
3101
3101
 
3102
- // node_modules/.pnpm/fast-uri@3.0.6/node_modules/fast-uri/lib/scopedChars.js
3103
- var require_scopedChars = __commonJS({
3104
- "node_modules/.pnpm/fast-uri@3.0.6/node_modules/fast-uri/lib/scopedChars.js"(exports, module) {
3105
- "use strict";
3106
- var HEX = {
3107
- 0: 0,
3108
- 1: 1,
3109
- 2: 2,
3110
- 3: 3,
3111
- 4: 4,
3112
- 5: 5,
3113
- 6: 6,
3114
- 7: 7,
3115
- 8: 8,
3116
- 9: 9,
3117
- a: 10,
3118
- A: 10,
3119
- b: 11,
3120
- B: 11,
3121
- c: 12,
3122
- C: 12,
3123
- d: 13,
3124
- D: 13,
3125
- e: 14,
3126
- E: 14,
3127
- f: 15,
3128
- F: 15
3129
- };
3130
- module.exports = {
3131
- HEX
3132
- };
3133
- }
3134
- });
3135
-
3136
- // node_modules/.pnpm/fast-uri@3.0.6/node_modules/fast-uri/lib/utils.js
3102
+ // node_modules/.pnpm/fast-uri@3.1.0/node_modules/fast-uri/lib/utils.js
3137
3103
  var require_utils = __commonJS({
3138
- "node_modules/.pnpm/fast-uri@3.0.6/node_modules/fast-uri/lib/utils.js"(exports, module) {
3104
+ "node_modules/.pnpm/fast-uri@3.1.0/node_modules/fast-uri/lib/utils.js"(exports, module) {
3139
3105
  "use strict";
3140
- var { HEX } = require_scopedChars();
3141
- var IPV4_REG = /^(?:(?: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;
3142
- function normalizeIPv4(host) {
3143
- if (findToken(host, ".") < 3) {
3144
- return { host, isIPV4: false };
3145
- }
3146
- const matches = host.match(IPV4_REG) || [];
3147
- const [address] = matches;
3148
- if (address) {
3149
- return { host: stripLeadingZeros(address, "."), isIPV4: true };
3150
- } else {
3151
- return { host, isIPV4: false };
3152
- }
3153
- }
3154
- function stringArrayToHexStripped(input, keepZero = false) {
3106
+ var isUUID = RegExp.prototype.test.bind(/^[\da-f]{8}-[\da-f]{4}-[\da-f]{4}-[\da-f]{4}-[\da-f]{12}$/iu);
3107
+ 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);
3108
+ function stringArrayToHexStripped(input) {
3155
3109
  let acc = "";
3156
- let strip = true;
3157
- for (const c of input) {
3158
- if (HEX[c] === void 0) return void 0;
3159
- if (c !== "0" && strip === true) strip = false;
3160
- if (!strip) acc += c;
3110
+ let code = 0;
3111
+ let i = 0;
3112
+ for (i = 0; i < input.length; i++) {
3113
+ code = input[i].charCodeAt(0);
3114
+ if (code === 48) {
3115
+ continue;
3116
+ }
3117
+ if (!(code >= 48 && code <= 57 || code >= 65 && code <= 70 || code >= 97 && code <= 102)) {
3118
+ return "";
3119
+ }
3120
+ acc += input[i];
3121
+ break;
3122
+ }
3123
+ for (i += 1; i < input.length; i++) {
3124
+ code = input[i].charCodeAt(0);
3125
+ if (!(code >= 48 && code <= 57 || code >= 65 && code <= 70 || code >= 97 && code <= 102)) {
3126
+ return "";
3127
+ }
3128
+ acc += input[i];
3161
3129
  }
3162
- if (keepZero && acc.length === 0) acc = "0";
3163
3130
  return acc;
3164
3131
  }
3132
+ var nonSimpleDomain = RegExp.prototype.test.bind(/[^!"$&'()*+,\-.;=_`a-z{}~]/u);
3133
+ function consumeIsZone(buffer) {
3134
+ buffer.length = 0;
3135
+ return true;
3136
+ }
3137
+ function consumeHextets(buffer, address, output) {
3138
+ if (buffer.length) {
3139
+ const hex3 = stringArrayToHexStripped(buffer);
3140
+ if (hex3 !== "") {
3141
+ address.push(hex3);
3142
+ } else {
3143
+ output.error = true;
3144
+ return false;
3145
+ }
3146
+ buffer.length = 0;
3147
+ }
3148
+ return true;
3149
+ }
3165
3150
  function getIPV6(input) {
3166
3151
  let tokenCount = 0;
3167
3152
  const output = { error: false, address: "", zone: "" };
3168
3153
  const address = [];
3169
3154
  const buffer = [];
3170
- let isZone = false;
3171
3155
  let endipv6Encountered = false;
3172
3156
  let endIpv6 = false;
3173
- function consume() {
3174
- if (buffer.length) {
3175
- if (isZone === false) {
3176
- const hex3 = stringArrayToHexStripped(buffer);
3177
- if (hex3 !== void 0) {
3178
- address.push(hex3);
3179
- } else {
3180
- output.error = true;
3181
- return false;
3182
- }
3183
- }
3184
- buffer.length = 0;
3185
- }
3186
- return true;
3187
- }
3157
+ let consume = consumeHextets;
3188
3158
  for (let i = 0; i < input.length; i++) {
3189
3159
  const cursor = input[i];
3190
3160
  if (cursor === "[" || cursor === "]") {
@@ -3194,31 +3164,30 @@ var require_utils = __commonJS({
3194
3164
  if (endipv6Encountered === true) {
3195
3165
  endIpv6 = true;
3196
3166
  }
3197
- if (!consume()) {
3167
+ if (!consume(buffer, address, output)) {
3198
3168
  break;
3199
3169
  }
3200
- tokenCount++;
3201
- address.push(":");
3202
- if (tokenCount > 7) {
3170
+ if (++tokenCount > 7) {
3203
3171
  output.error = true;
3204
3172
  break;
3205
3173
  }
3206
- if (i - 1 >= 0 && input[i - 1] === ":") {
3174
+ if (i > 0 && input[i - 1] === ":") {
3207
3175
  endipv6Encountered = true;
3208
3176
  }
3177
+ address.push(":");
3209
3178
  continue;
3210
3179
  } else if (cursor === "%") {
3211
- if (!consume()) {
3180
+ if (!consume(buffer, address, output)) {
3212
3181
  break;
3213
3182
  }
3214
- isZone = true;
3183
+ consume = consumeIsZone;
3215
3184
  } else {
3216
3185
  buffer.push(cursor);
3217
3186
  continue;
3218
3187
  }
3219
3188
  }
3220
3189
  if (buffer.length) {
3221
- if (isZone) {
3190
+ if (consume === consumeIsZone) {
3222
3191
  output.zone = buffer.join("");
3223
3192
  } else if (endIpv6) {
3224
3193
  address.push(buffer.join(""));
@@ -3241,33 +3210,11 @@ var require_utils = __commonJS({
3241
3210
  newHost += "%" + ipv63.zone;
3242
3211
  escapedHost += "%25" + ipv63.zone;
3243
3212
  }
3244
- return { host: newHost, escapedHost, isIPV6: true };
3213
+ return { host: newHost, isIPV6: true, escapedHost };
3245
3214
  } else {
3246
3215
  return { host, isIPV6: false };
3247
3216
  }
3248
3217
  }
3249
- function stripLeadingZeros(str, token) {
3250
- let out = "";
3251
- let skip = true;
3252
- const l = str.length;
3253
- for (let i = 0; i < l; i++) {
3254
- const c = str[i];
3255
- if (c === "0" && skip) {
3256
- if (i + 1 <= l && str[i + 1] === token || i + 1 === l) {
3257
- out += c;
3258
- skip = false;
3259
- }
3260
- } else {
3261
- if (c === token) {
3262
- skip = true;
3263
- } else {
3264
- skip = false;
3265
- }
3266
- out += c;
3267
- }
3268
- }
3269
- return out;
3270
- }
3271
3218
  function findToken(str, token) {
3272
3219
  let ind = 0;
3273
3220
  for (let i = 0; i < str.length; i++) {
@@ -3275,261 +3222,373 @@ var require_utils = __commonJS({
3275
3222
  }
3276
3223
  return ind;
3277
3224
  }
3278
- var RDS1 = /^\.\.?\//u;
3279
- var RDS2 = /^\/\.(?:\/|$)/u;
3280
- var RDS3 = /^\/\.\.(?:\/|$)/u;
3281
- var RDS5 = /^\/?(?:.|\n)*?(?=\/|$)/u;
3282
- function removeDotSegments(input) {
3225
+ function removeDotSegments(path) {
3226
+ let input = path;
3283
3227
  const output = [];
3284
- while (input.length) {
3285
- if (input.match(RDS1)) {
3286
- input = input.replace(RDS1, "");
3287
- } else if (input.match(RDS2)) {
3288
- input = input.replace(RDS2, "/");
3289
- } else if (input.match(RDS3)) {
3290
- input = input.replace(RDS3, "/");
3291
- output.pop();
3292
- } else if (input === "." || input === "..") {
3293
- input = "";
3294
- } else {
3295
- const im = input.match(RDS5);
3296
- if (im) {
3297
- const s = im[0];
3298
- input = input.slice(s.length);
3299
- output.push(s);
3228
+ let nextSlash = -1;
3229
+ let len = 0;
3230
+ while (len = input.length) {
3231
+ if (len === 1) {
3232
+ if (input === ".") {
3233
+ break;
3234
+ } else if (input === "/") {
3235
+ output.push("/");
3236
+ break;
3300
3237
  } else {
3301
- throw new Error("Unexpected dot segment condition");
3238
+ output.push(input);
3239
+ break;
3240
+ }
3241
+ } else if (len === 2) {
3242
+ if (input[0] === ".") {
3243
+ if (input[1] === ".") {
3244
+ break;
3245
+ } else if (input[1] === "/") {
3246
+ input = input.slice(2);
3247
+ continue;
3248
+ }
3249
+ } else if (input[0] === "/") {
3250
+ if (input[1] === "." || input[1] === "/") {
3251
+ output.push("/");
3252
+ break;
3253
+ }
3254
+ }
3255
+ } else if (len === 3) {
3256
+ if (input === "/..") {
3257
+ if (output.length !== 0) {
3258
+ output.pop();
3259
+ }
3260
+ output.push("/");
3261
+ break;
3262
+ }
3263
+ }
3264
+ if (input[0] === ".") {
3265
+ if (input[1] === ".") {
3266
+ if (input[2] === "/") {
3267
+ input = input.slice(3);
3268
+ continue;
3269
+ }
3270
+ } else if (input[1] === "/") {
3271
+ input = input.slice(2);
3272
+ continue;
3273
+ }
3274
+ } else if (input[0] === "/") {
3275
+ if (input[1] === ".") {
3276
+ if (input[2] === "/") {
3277
+ input = input.slice(2);
3278
+ continue;
3279
+ } else if (input[2] === ".") {
3280
+ if (input[3] === "/") {
3281
+ input = input.slice(3);
3282
+ if (output.length !== 0) {
3283
+ output.pop();
3284
+ }
3285
+ continue;
3286
+ }
3287
+ }
3302
3288
  }
3303
3289
  }
3290
+ if ((nextSlash = input.indexOf("/", 1)) === -1) {
3291
+ output.push(input);
3292
+ break;
3293
+ } else {
3294
+ output.push(input.slice(0, nextSlash));
3295
+ input = input.slice(nextSlash);
3296
+ }
3304
3297
  }
3305
3298
  return output.join("");
3306
3299
  }
3307
- function normalizeComponentEncoding(components, esc2) {
3300
+ function normalizeComponentEncoding(component, esc2) {
3308
3301
  const func = esc2 !== true ? escape : unescape;
3309
- if (components.scheme !== void 0) {
3310
- components.scheme = func(components.scheme);
3302
+ if (component.scheme !== void 0) {
3303
+ component.scheme = func(component.scheme);
3311
3304
  }
3312
- if (components.userinfo !== void 0) {
3313
- components.userinfo = func(components.userinfo);
3305
+ if (component.userinfo !== void 0) {
3306
+ component.userinfo = func(component.userinfo);
3314
3307
  }
3315
- if (components.host !== void 0) {
3316
- components.host = func(components.host);
3308
+ if (component.host !== void 0) {
3309
+ component.host = func(component.host);
3317
3310
  }
3318
- if (components.path !== void 0) {
3319
- components.path = func(components.path);
3311
+ if (component.path !== void 0) {
3312
+ component.path = func(component.path);
3320
3313
  }
3321
- if (components.query !== void 0) {
3322
- components.query = func(components.query);
3314
+ if (component.query !== void 0) {
3315
+ component.query = func(component.query);
3323
3316
  }
3324
- if (components.fragment !== void 0) {
3325
- components.fragment = func(components.fragment);
3317
+ if (component.fragment !== void 0) {
3318
+ component.fragment = func(component.fragment);
3326
3319
  }
3327
- return components;
3320
+ return component;
3328
3321
  }
3329
- function recomposeAuthority(components) {
3322
+ function recomposeAuthority(component) {
3330
3323
  const uriTokens = [];
3331
- if (components.userinfo !== void 0) {
3332
- uriTokens.push(components.userinfo);
3324
+ if (component.userinfo !== void 0) {
3325
+ uriTokens.push(component.userinfo);
3333
3326
  uriTokens.push("@");
3334
3327
  }
3335
- if (components.host !== void 0) {
3336
- let host = unescape(components.host);
3337
- const ipV4res = normalizeIPv4(host);
3338
- if (ipV4res.isIPV4) {
3339
- host = ipV4res.host;
3340
- } else {
3341
- const ipV6res = normalizeIPv6(ipV4res.host);
3328
+ if (component.host !== void 0) {
3329
+ let host = unescape(component.host);
3330
+ if (!isIPv4(host)) {
3331
+ const ipV6res = normalizeIPv6(host);
3342
3332
  if (ipV6res.isIPV6 === true) {
3343
3333
  host = `[${ipV6res.escapedHost}]`;
3344
3334
  } else {
3345
- host = components.host;
3335
+ host = component.host;
3346
3336
  }
3347
3337
  }
3348
3338
  uriTokens.push(host);
3349
3339
  }
3350
- if (typeof components.port === "number" || typeof components.port === "string") {
3340
+ if (typeof component.port === "number" || typeof component.port === "string") {
3351
3341
  uriTokens.push(":");
3352
- uriTokens.push(String(components.port));
3342
+ uriTokens.push(String(component.port));
3353
3343
  }
3354
3344
  return uriTokens.length ? uriTokens.join("") : void 0;
3355
3345
  }
3356
3346
  module.exports = {
3347
+ nonSimpleDomain,
3357
3348
  recomposeAuthority,
3358
3349
  normalizeComponentEncoding,
3359
3350
  removeDotSegments,
3360
- normalizeIPv4,
3351
+ isIPv4,
3352
+ isUUID,
3361
3353
  normalizeIPv6,
3362
3354
  stringArrayToHexStripped
3363
3355
  };
3364
3356
  }
3365
3357
  });
3366
3358
 
3367
- // node_modules/.pnpm/fast-uri@3.0.6/node_modules/fast-uri/lib/schemes.js
3359
+ // node_modules/.pnpm/fast-uri@3.1.0/node_modules/fast-uri/lib/schemes.js
3368
3360
  var require_schemes = __commonJS({
3369
- "node_modules/.pnpm/fast-uri@3.0.6/node_modules/fast-uri/lib/schemes.js"(exports, module) {
3361
+ "node_modules/.pnpm/fast-uri@3.1.0/node_modules/fast-uri/lib/schemes.js"(exports, module) {
3370
3362
  "use strict";
3371
- var UUID_REG = /^[\da-f]{8}-[\da-f]{4}-[\da-f]{4}-[\da-f]{4}-[\da-f]{12}$/iu;
3363
+ var { isUUID } = require_utils();
3372
3364
  var URN_REG = /([\da-z][\d\-a-z]{0,31}):((?:[\w!$'()*+,\-.:;=@]|%[\da-f]{2})+)/iu;
3373
- function isSecure(wsComponents) {
3374
- return typeof wsComponents.secure === "boolean" ? wsComponents.secure : String(wsComponents.scheme).toLowerCase() === "wss";
3365
+ var supportedSchemeNames = (
3366
+ /** @type {const} */
3367
+ [
3368
+ "http",
3369
+ "https",
3370
+ "ws",
3371
+ "wss",
3372
+ "urn",
3373
+ "urn:uuid"
3374
+ ]
3375
+ );
3376
+ function isValidSchemeName(name) {
3377
+ return supportedSchemeNames.indexOf(
3378
+ /** @type {*} */
3379
+ name
3380
+ ) !== -1;
3381
+ }
3382
+ function wsIsSecure(wsComponent) {
3383
+ if (wsComponent.secure === true) {
3384
+ return true;
3385
+ } else if (wsComponent.secure === false) {
3386
+ return false;
3387
+ } else if (wsComponent.scheme) {
3388
+ return wsComponent.scheme.length === 3 && (wsComponent.scheme[0] === "w" || wsComponent.scheme[0] === "W") && (wsComponent.scheme[1] === "s" || wsComponent.scheme[1] === "S") && (wsComponent.scheme[2] === "s" || wsComponent.scheme[2] === "S");
3389
+ } else {
3390
+ return false;
3391
+ }
3375
3392
  }
3376
- function httpParse(components) {
3377
- if (!components.host) {
3378
- components.error = components.error || "HTTP URIs must have a host.";
3393
+ function httpParse(component) {
3394
+ if (!component.host) {
3395
+ component.error = component.error || "HTTP URIs must have a host.";
3379
3396
  }
3380
- return components;
3397
+ return component;
3381
3398
  }
3382
- function httpSerialize(components) {
3383
- const secure = String(components.scheme).toLowerCase() === "https";
3384
- if (components.port === (secure ? 443 : 80) || components.port === "") {
3385
- components.port = void 0;
3399
+ function httpSerialize(component) {
3400
+ const secure = String(component.scheme).toLowerCase() === "https";
3401
+ if (component.port === (secure ? 443 : 80) || component.port === "") {
3402
+ component.port = void 0;
3386
3403
  }
3387
- if (!components.path) {
3388
- components.path = "/";
3404
+ if (!component.path) {
3405
+ component.path = "/";
3389
3406
  }
3390
- return components;
3407
+ return component;
3391
3408
  }
3392
- function wsParse(wsComponents) {
3393
- wsComponents.secure = isSecure(wsComponents);
3394
- wsComponents.resourceName = (wsComponents.path || "/") + (wsComponents.query ? "?" + wsComponents.query : "");
3395
- wsComponents.path = void 0;
3396
- wsComponents.query = void 0;
3397
- return wsComponents;
3409
+ function wsParse(wsComponent) {
3410
+ wsComponent.secure = wsIsSecure(wsComponent);
3411
+ wsComponent.resourceName = (wsComponent.path || "/") + (wsComponent.query ? "?" + wsComponent.query : "");
3412
+ wsComponent.path = void 0;
3413
+ wsComponent.query = void 0;
3414
+ return wsComponent;
3398
3415
  }
3399
- function wsSerialize(wsComponents) {
3400
- if (wsComponents.port === (isSecure(wsComponents) ? 443 : 80) || wsComponents.port === "") {
3401
- wsComponents.port = void 0;
3416
+ function wsSerialize(wsComponent) {
3417
+ if (wsComponent.port === (wsIsSecure(wsComponent) ? 443 : 80) || wsComponent.port === "") {
3418
+ wsComponent.port = void 0;
3402
3419
  }
3403
- if (typeof wsComponents.secure === "boolean") {
3404
- wsComponents.scheme = wsComponents.secure ? "wss" : "ws";
3405
- wsComponents.secure = void 0;
3420
+ if (typeof wsComponent.secure === "boolean") {
3421
+ wsComponent.scheme = wsComponent.secure ? "wss" : "ws";
3422
+ wsComponent.secure = void 0;
3406
3423
  }
3407
- if (wsComponents.resourceName) {
3408
- const [path, query] = wsComponents.resourceName.split("?");
3409
- wsComponents.path = path && path !== "/" ? path : void 0;
3410
- wsComponents.query = query;
3411
- wsComponents.resourceName = void 0;
3424
+ if (wsComponent.resourceName) {
3425
+ const [path, query] = wsComponent.resourceName.split("?");
3426
+ wsComponent.path = path && path !== "/" ? path : void 0;
3427
+ wsComponent.query = query;
3428
+ wsComponent.resourceName = void 0;
3412
3429
  }
3413
- wsComponents.fragment = void 0;
3414
- return wsComponents;
3430
+ wsComponent.fragment = void 0;
3431
+ return wsComponent;
3415
3432
  }
3416
- function urnParse(urnComponents, options) {
3417
- if (!urnComponents.path) {
3418
- urnComponents.error = "URN can not be parsed";
3419
- return urnComponents;
3433
+ function urnParse(urnComponent, options) {
3434
+ if (!urnComponent.path) {
3435
+ urnComponent.error = "URN can not be parsed";
3436
+ return urnComponent;
3420
3437
  }
3421
- const matches = urnComponents.path.match(URN_REG);
3438
+ const matches = urnComponent.path.match(URN_REG);
3422
3439
  if (matches) {
3423
- const scheme = options.scheme || urnComponents.scheme || "urn";
3424
- urnComponents.nid = matches[1].toLowerCase();
3425
- urnComponents.nss = matches[2];
3426
- const urnScheme = `${scheme}:${options.nid || urnComponents.nid}`;
3427
- const schemeHandler = SCHEMES[urnScheme];
3428
- urnComponents.path = void 0;
3440
+ const scheme = options.scheme || urnComponent.scheme || "urn";
3441
+ urnComponent.nid = matches[1].toLowerCase();
3442
+ urnComponent.nss = matches[2];
3443
+ const urnScheme = `${scheme}:${options.nid || urnComponent.nid}`;
3444
+ const schemeHandler = getSchemeHandler(urnScheme);
3445
+ urnComponent.path = void 0;
3429
3446
  if (schemeHandler) {
3430
- urnComponents = schemeHandler.parse(urnComponents, options);
3447
+ urnComponent = schemeHandler.parse(urnComponent, options);
3431
3448
  }
3432
3449
  } else {
3433
- urnComponents.error = urnComponents.error || "URN can not be parsed.";
3450
+ urnComponent.error = urnComponent.error || "URN can not be parsed.";
3434
3451
  }
3435
- return urnComponents;
3452
+ return urnComponent;
3436
3453
  }
3437
- function urnSerialize(urnComponents, options) {
3438
- const scheme = options.scheme || urnComponents.scheme || "urn";
3439
- const nid = urnComponents.nid.toLowerCase();
3454
+ function urnSerialize(urnComponent, options) {
3455
+ if (urnComponent.nid === void 0) {
3456
+ throw new Error("URN without nid cannot be serialized");
3457
+ }
3458
+ const scheme = options.scheme || urnComponent.scheme || "urn";
3459
+ const nid = urnComponent.nid.toLowerCase();
3440
3460
  const urnScheme = `${scheme}:${options.nid || nid}`;
3441
- const schemeHandler = SCHEMES[urnScheme];
3461
+ const schemeHandler = getSchemeHandler(urnScheme);
3442
3462
  if (schemeHandler) {
3443
- urnComponents = schemeHandler.serialize(urnComponents, options);
3463
+ urnComponent = schemeHandler.serialize(urnComponent, options);
3444
3464
  }
3445
- const uriComponents = urnComponents;
3446
- const nss = urnComponents.nss;
3447
- uriComponents.path = `${nid || options.nid}:${nss}`;
3465
+ const uriComponent = urnComponent;
3466
+ const nss = urnComponent.nss;
3467
+ uriComponent.path = `${nid || options.nid}:${nss}`;
3448
3468
  options.skipEscape = true;
3449
- return uriComponents;
3450
- }
3451
- function urnuuidParse(urnComponents, options) {
3452
- const uuidComponents = urnComponents;
3453
- uuidComponents.uuid = uuidComponents.nss;
3454
- uuidComponents.nss = void 0;
3455
- if (!options.tolerant && (!uuidComponents.uuid || !UUID_REG.test(uuidComponents.uuid))) {
3456
- uuidComponents.error = uuidComponents.error || "UUID is not valid.";
3457
- }
3458
- return uuidComponents;
3459
- }
3460
- function urnuuidSerialize(uuidComponents) {
3461
- const urnComponents = uuidComponents;
3462
- urnComponents.nss = (uuidComponents.uuid || "").toLowerCase();
3463
- return urnComponents;
3464
- }
3465
- var http = {
3466
- scheme: "http",
3467
- domainHost: true,
3468
- parse: httpParse,
3469
- serialize: httpSerialize
3470
- };
3471
- var https = {
3472
- scheme: "https",
3473
- domainHost: http.domainHost,
3474
- parse: httpParse,
3475
- serialize: httpSerialize
3476
- };
3477
- var ws = {
3478
- scheme: "ws",
3479
- domainHost: true,
3480
- parse: wsParse,
3481
- serialize: wsSerialize
3482
- };
3483
- var wss = {
3484
- scheme: "wss",
3485
- domainHost: ws.domainHost,
3486
- parse: ws.parse,
3487
- serialize: ws.serialize
3488
- };
3489
- var urn = {
3490
- scheme: "urn",
3491
- parse: urnParse,
3492
- serialize: urnSerialize,
3493
- skipNormalize: true
3494
- };
3495
- var urnuuid = {
3496
- scheme: "urn:uuid",
3497
- parse: urnuuidParse,
3498
- serialize: urnuuidSerialize,
3499
- skipNormalize: true
3500
- };
3501
- var SCHEMES = {
3502
- http,
3503
- https,
3504
- ws,
3505
- wss,
3506
- urn,
3507
- "urn:uuid": urnuuid
3469
+ return uriComponent;
3470
+ }
3471
+ function urnuuidParse(urnComponent, options) {
3472
+ const uuidComponent = urnComponent;
3473
+ uuidComponent.uuid = uuidComponent.nss;
3474
+ uuidComponent.nss = void 0;
3475
+ if (!options.tolerant && (!uuidComponent.uuid || !isUUID(uuidComponent.uuid))) {
3476
+ uuidComponent.error = uuidComponent.error || "UUID is not valid.";
3477
+ }
3478
+ return uuidComponent;
3479
+ }
3480
+ function urnuuidSerialize(uuidComponent) {
3481
+ const urnComponent = uuidComponent;
3482
+ urnComponent.nss = (uuidComponent.uuid || "").toLowerCase();
3483
+ return urnComponent;
3484
+ }
3485
+ var http = (
3486
+ /** @type {SchemeHandler} */
3487
+ {
3488
+ scheme: "http",
3489
+ domainHost: true,
3490
+ parse: httpParse,
3491
+ serialize: httpSerialize
3492
+ }
3493
+ );
3494
+ var https = (
3495
+ /** @type {SchemeHandler} */
3496
+ {
3497
+ scheme: "https",
3498
+ domainHost: http.domainHost,
3499
+ parse: httpParse,
3500
+ serialize: httpSerialize
3501
+ }
3502
+ );
3503
+ var ws = (
3504
+ /** @type {SchemeHandler} */
3505
+ {
3506
+ scheme: "ws",
3507
+ domainHost: true,
3508
+ parse: wsParse,
3509
+ serialize: wsSerialize
3510
+ }
3511
+ );
3512
+ var wss = (
3513
+ /** @type {SchemeHandler} */
3514
+ {
3515
+ scheme: "wss",
3516
+ domainHost: ws.domainHost,
3517
+ parse: ws.parse,
3518
+ serialize: ws.serialize
3519
+ }
3520
+ );
3521
+ var urn = (
3522
+ /** @type {SchemeHandler} */
3523
+ {
3524
+ scheme: "urn",
3525
+ parse: urnParse,
3526
+ serialize: urnSerialize,
3527
+ skipNormalize: true
3528
+ }
3529
+ );
3530
+ var urnuuid = (
3531
+ /** @type {SchemeHandler} */
3532
+ {
3533
+ scheme: "urn:uuid",
3534
+ parse: urnuuidParse,
3535
+ serialize: urnuuidSerialize,
3536
+ skipNormalize: true
3537
+ }
3538
+ );
3539
+ var SCHEMES = (
3540
+ /** @type {Record<SchemeName, SchemeHandler>} */
3541
+ {
3542
+ http,
3543
+ https,
3544
+ ws,
3545
+ wss,
3546
+ urn,
3547
+ "urn:uuid": urnuuid
3548
+ }
3549
+ );
3550
+ Object.setPrototypeOf(SCHEMES, null);
3551
+ function getSchemeHandler(scheme) {
3552
+ return scheme && (SCHEMES[
3553
+ /** @type {SchemeName} */
3554
+ scheme
3555
+ ] || SCHEMES[
3556
+ /** @type {SchemeName} */
3557
+ scheme.toLowerCase()
3558
+ ]) || void 0;
3559
+ }
3560
+ module.exports = {
3561
+ wsIsSecure,
3562
+ SCHEMES,
3563
+ isValidSchemeName,
3564
+ getSchemeHandler
3508
3565
  };
3509
- module.exports = SCHEMES;
3510
3566
  }
3511
3567
  });
3512
3568
 
3513
- // node_modules/.pnpm/fast-uri@3.0.6/node_modules/fast-uri/index.js
3569
+ // node_modules/.pnpm/fast-uri@3.1.0/node_modules/fast-uri/index.js
3514
3570
  var require_fast_uri = __commonJS({
3515
- "node_modules/.pnpm/fast-uri@3.0.6/node_modules/fast-uri/index.js"(exports, module) {
3571
+ "node_modules/.pnpm/fast-uri@3.1.0/node_modules/fast-uri/index.js"(exports, module) {
3516
3572
  "use strict";
3517
- var { normalizeIPv6, normalizeIPv4, removeDotSegments, recomposeAuthority, normalizeComponentEncoding } = require_utils();
3518
- var SCHEMES = require_schemes();
3573
+ var { normalizeIPv6, removeDotSegments, recomposeAuthority, normalizeComponentEncoding, isIPv4, nonSimpleDomain } = require_utils();
3574
+ var { SCHEMES, getSchemeHandler } = require_schemes();
3519
3575
  function normalize(uri, options) {
3520
3576
  if (typeof uri === "string") {
3521
- uri = serialize(parse3(uri, options), options);
3577
+ uri = /** @type {T} */
3578
+ serialize(parse3(uri, options), options);
3522
3579
  } else if (typeof uri === "object") {
3523
- uri = parse3(serialize(uri, options), options);
3580
+ uri = /** @type {T} */
3581
+ parse3(serialize(uri, options), options);
3524
3582
  }
3525
3583
  return uri;
3526
3584
  }
3527
3585
  function resolve2(baseURI, relativeURI, options) {
3528
- const schemelessOptions = Object.assign({ scheme: "null" }, options);
3529
- const resolved = resolveComponents(parse3(baseURI, schemelessOptions), parse3(relativeURI, schemelessOptions), schemelessOptions, true);
3530
- return serialize(resolved, { ...schemelessOptions, skipEscape: true });
3586
+ const schemelessOptions = options ? Object.assign({ scheme: "null" }, options) : { scheme: "null" };
3587
+ const resolved = resolveComponent(parse3(baseURI, schemelessOptions), parse3(relativeURI, schemelessOptions), schemelessOptions, true);
3588
+ schemelessOptions.skipEscape = true;
3589
+ return serialize(resolved, schemelessOptions);
3531
3590
  }
3532
- function resolveComponents(base, relative, options, skipNormalization) {
3591
+ function resolveComponent(base, relative, options, skipNormalization) {
3533
3592
  const target = {};
3534
3593
  if (!skipNormalization) {
3535
3594
  base = parse3(serialize(base, options), options);
@@ -3559,7 +3618,7 @@ var require_fast_uri = __commonJS({
3559
3618
  target.query = base.query;
3560
3619
  }
3561
3620
  } else {
3562
- if (relative.path.charAt(0) === "/") {
3621
+ if (relative.path[0] === "/") {
3563
3622
  target.path = removeDotSegments(relative.path);
3564
3623
  } else {
3565
3624
  if ((base.userinfo !== void 0 || base.host !== void 0 || base.port !== void 0) && !base.path) {
@@ -3598,7 +3657,7 @@ var require_fast_uri = __commonJS({
3598
3657
  return uriA.toLowerCase() === uriB.toLowerCase();
3599
3658
  }
3600
3659
  function serialize(cmpts, opts) {
3601
- const components = {
3660
+ const component = {
3602
3661
  host: cmpts.host,
3603
3662
  scheme: cmpts.scheme,
3604
3663
  userinfo: cmpts.userinfo,
@@ -3616,60 +3675,49 @@ var require_fast_uri = __commonJS({
3616
3675
  };
3617
3676
  const options = Object.assign({}, opts);
3618
3677
  const uriTokens = [];
3619
- const schemeHandler = SCHEMES[(options.scheme || components.scheme || "").toLowerCase()];
3620
- if (schemeHandler && schemeHandler.serialize) schemeHandler.serialize(components, options);
3621
- if (components.path !== void 0) {
3678
+ const schemeHandler = getSchemeHandler(options.scheme || component.scheme);
3679
+ if (schemeHandler && schemeHandler.serialize) schemeHandler.serialize(component, options);
3680
+ if (component.path !== void 0) {
3622
3681
  if (!options.skipEscape) {
3623
- components.path = escape(components.path);
3624
- if (components.scheme !== void 0) {
3625
- components.path = components.path.split("%3A").join(":");
3682
+ component.path = escape(component.path);
3683
+ if (component.scheme !== void 0) {
3684
+ component.path = component.path.split("%3A").join(":");
3626
3685
  }
3627
3686
  } else {
3628
- components.path = unescape(components.path);
3687
+ component.path = unescape(component.path);
3629
3688
  }
3630
3689
  }
3631
- if (options.reference !== "suffix" && components.scheme) {
3632
- uriTokens.push(components.scheme, ":");
3690
+ if (options.reference !== "suffix" && component.scheme) {
3691
+ uriTokens.push(component.scheme, ":");
3633
3692
  }
3634
- const authority = recomposeAuthority(components);
3693
+ const authority = recomposeAuthority(component);
3635
3694
  if (authority !== void 0) {
3636
3695
  if (options.reference !== "suffix") {
3637
3696
  uriTokens.push("//");
3638
3697
  }
3639
3698
  uriTokens.push(authority);
3640
- if (components.path && components.path.charAt(0) !== "/") {
3699
+ if (component.path && component.path[0] !== "/") {
3641
3700
  uriTokens.push("/");
3642
3701
  }
3643
3702
  }
3644
- if (components.path !== void 0) {
3645
- let s = components.path;
3703
+ if (component.path !== void 0) {
3704
+ let s = component.path;
3646
3705
  if (!options.absolutePath && (!schemeHandler || !schemeHandler.absolutePath)) {
3647
3706
  s = removeDotSegments(s);
3648
3707
  }
3649
- if (authority === void 0) {
3650
- s = s.replace(/^\/\//u, "/%2F");
3708
+ if (authority === void 0 && s[0] === "/" && s[1] === "/") {
3709
+ s = "/%2F" + s.slice(2);
3651
3710
  }
3652
3711
  uriTokens.push(s);
3653
3712
  }
3654
- if (components.query !== void 0) {
3655
- uriTokens.push("?", components.query);
3713
+ if (component.query !== void 0) {
3714
+ uriTokens.push("?", component.query);
3656
3715
  }
3657
- if (components.fragment !== void 0) {
3658
- uriTokens.push("#", components.fragment);
3716
+ if (component.fragment !== void 0) {
3717
+ uriTokens.push("#", component.fragment);
3659
3718
  }
3660
3719
  return uriTokens.join("");
3661
3720
  }
3662
- var hexLookUp = Array.from({ length: 127 }, (_v, k) => /[^!"$&'()*+,\-.;=_`a-z{}~]/u.test(String.fromCharCode(k)));
3663
- function nonSimpleDomain(value) {
3664
- let code = 0;
3665
- for (let i = 0, len = value.length; i < len; ++i) {
3666
- code = value.charCodeAt(i);
3667
- if (code > 126 || hexLookUp[code]) {
3668
- return true;
3669
- }
3670
- }
3671
- return false;
3672
- }
3673
3721
  var URI_PARSE = /^(?:([^#/:?]+):)?(?:\/\/((?:([^#/?@]*)@)?(\[[^#/?\]]+\]|[^#/:?]*)(?::(\d*))?))?([^#?]*)(?:\?([^#]*))?(?:#((?:.|[\n\r])*))?/u;
3674
3722
  function parse3(uri, opts) {
3675
3723
  const options = Object.assign({}, opts);
@@ -3682,9 +3730,14 @@ var require_fast_uri = __commonJS({
3682
3730
  query: void 0,
3683
3731
  fragment: void 0
3684
3732
  };
3685
- const gotEncoding = uri.indexOf("%") !== -1;
3686
3733
  let isIP = false;
3687
- if (options.reference === "suffix") uri = (options.scheme ? options.scheme + ":" : "") + "//" + uri;
3734
+ if (options.reference === "suffix") {
3735
+ if (options.scheme) {
3736
+ uri = options.scheme + ":" + uri;
3737
+ } else {
3738
+ uri = "//" + uri;
3739
+ }
3740
+ }
3688
3741
  const matches = uri.match(URI_PARSE);
3689
3742
  if (matches) {
3690
3743
  parsed.scheme = matches[1];
@@ -3698,13 +3751,12 @@ var require_fast_uri = __commonJS({
3698
3751
  parsed.port = matches[5];
3699
3752
  }
3700
3753
  if (parsed.host) {
3701
- const ipv4result = normalizeIPv4(parsed.host);
3702
- if (ipv4result.isIPV4 === false) {
3703
- const ipv6result = normalizeIPv6(ipv4result.host);
3754
+ const ipv4result = isIPv4(parsed.host);
3755
+ if (ipv4result === false) {
3756
+ const ipv6result = normalizeIPv6(parsed.host);
3704
3757
  parsed.host = ipv6result.host.toLowerCase();
3705
3758
  isIP = ipv6result.isIPV6;
3706
3759
  } else {
3707
- parsed.host = ipv4result.host;
3708
3760
  isIP = true;
3709
3761
  }
3710
3762
  }
@@ -3720,7 +3772,7 @@ var require_fast_uri = __commonJS({
3720
3772
  if (options.reference && options.reference !== "suffix" && options.reference !== parsed.reference) {
3721
3773
  parsed.error = parsed.error || "URI is not a " + options.reference + " reference.";
3722
3774
  }
3723
- const schemeHandler = SCHEMES[(options.scheme || parsed.scheme || "").toLowerCase()];
3775
+ const schemeHandler = getSchemeHandler(options.scheme || parsed.scheme);
3724
3776
  if (!options.unicodeSupport && (!schemeHandler || !schemeHandler.unicodeSupport)) {
3725
3777
  if (parsed.host && (options.domainHost || schemeHandler && schemeHandler.domainHost) && isIP === false && nonSimpleDomain(parsed.host)) {
3726
3778
  try {
@@ -3731,11 +3783,13 @@ var require_fast_uri = __commonJS({
3731
3783
  }
3732
3784
  }
3733
3785
  if (!schemeHandler || schemeHandler && !schemeHandler.skipNormalize) {
3734
- if (gotEncoding && parsed.scheme !== void 0) {
3735
- parsed.scheme = unescape(parsed.scheme);
3736
- }
3737
- if (gotEncoding && parsed.host !== void 0) {
3738
- parsed.host = unescape(parsed.host);
3786
+ if (uri.indexOf("%") !== -1) {
3787
+ if (parsed.scheme !== void 0) {
3788
+ parsed.scheme = unescape(parsed.scheme);
3789
+ }
3790
+ if (parsed.host !== void 0) {
3791
+ parsed.host = unescape(parsed.host);
3792
+ }
3739
3793
  }
3740
3794
  if (parsed.path) {
3741
3795
  parsed.path = escape(unescape(parsed.path));
@@ -3756,7 +3810,7 @@ var require_fast_uri = __commonJS({
3756
3810
  SCHEMES,
3757
3811
  normalize,
3758
3812
  resolve: resolve2,
3759
- resolveComponents,
3813
+ resolveComponent,
3760
3814
  equal,
3761
3815
  serialize,
3762
3816
  parse: parse3
@@ -22277,7 +22331,7 @@ function object(shape, params) {
22277
22331
  return new ZodMiniObject(def);
22278
22332
  }
22279
22333
 
22280
- // node_modules/.pnpm/@modelcontextprotocol+sdk@1.25.3_hono@4.11.7_zod@4.3.6/node_modules/@modelcontextprotocol/sdk/dist/esm/server/zod-compat.js
22334
+ // node_modules/.pnpm/@modelcontextprotocol+sdk@1.26.0_zod@4.3.6/node_modules/@modelcontextprotocol/sdk/dist/esm/server/zod-compat.js
22281
22335
  function isZ4Schema(s) {
22282
22336
  const schema = s;
22283
22337
  return !!schema._zod;
@@ -24567,7 +24621,7 @@ function date4(params) {
24567
24621
  // node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/classic/external.js
24568
24622
  config(en_default2());
24569
24623
 
24570
- // node_modules/.pnpm/@modelcontextprotocol+sdk@1.25.3_hono@4.11.7_zod@4.3.6/node_modules/@modelcontextprotocol/sdk/dist/esm/types.js
24624
+ // node_modules/.pnpm/@modelcontextprotocol+sdk@1.26.0_zod@4.3.6/node_modules/@modelcontextprotocol/sdk/dist/esm/types.js
24571
24625
  var LATEST_PROTOCOL_VERSION = "2025-11-25";
24572
24626
  var SUPPORTED_PROTOCOL_VERSIONS = [LATEST_PROTOCOL_VERSION, "2025-06-18", "2025-03-26", "2024-11-05", "2024-10-07"];
24573
24627
  var RELATED_TASK_META_KEY = "io.modelcontextprotocol/related-task";
@@ -26085,7 +26139,7 @@ var UrlElicitationRequiredError = class extends McpError {
26085
26139
  }
26086
26140
  };
26087
26141
 
26088
- // node_modules/.pnpm/@modelcontextprotocol+sdk@1.25.3_hono@4.11.7_zod@4.3.6/node_modules/@modelcontextprotocol/sdk/dist/esm/experimental/tasks/interfaces.js
26142
+ // node_modules/.pnpm/@modelcontextprotocol+sdk@1.26.0_zod@4.3.6/node_modules/@modelcontextprotocol/sdk/dist/esm/experimental/tasks/interfaces.js
26089
26143
  function isTerminal(status) {
26090
26144
  return status === "completed" || status === "failed" || status === "cancelled";
26091
26145
  }
@@ -27374,7 +27428,7 @@ var zodToJsonSchema = (schema, options) => {
27374
27428
  return combined;
27375
27429
  };
27376
27430
 
27377
- // node_modules/.pnpm/@modelcontextprotocol+sdk@1.25.3_hono@4.11.7_zod@4.3.6/node_modules/@modelcontextprotocol/sdk/dist/esm/server/zod-json-schema-compat.js
27431
+ // node_modules/.pnpm/@modelcontextprotocol+sdk@1.26.0_zod@4.3.6/node_modules/@modelcontextprotocol/sdk/dist/esm/server/zod-json-schema-compat.js
27378
27432
  function mapMiniTarget(t) {
27379
27433
  if (!t)
27380
27434
  return "draft-7";
@@ -27416,7 +27470,7 @@ function parseWithCompat(schema, data) {
27416
27470
  return result.data;
27417
27471
  }
27418
27472
 
27419
- // node_modules/.pnpm/@modelcontextprotocol+sdk@1.25.3_hono@4.11.7_zod@4.3.6/node_modules/@modelcontextprotocol/sdk/dist/esm/shared/protocol.js
27473
+ // node_modules/.pnpm/@modelcontextprotocol+sdk@1.26.0_zod@4.3.6/node_modules/@modelcontextprotocol/sdk/dist/esm/shared/protocol.js
27420
27474
  var DEFAULT_REQUEST_TIMEOUT_MSEC = 6e4;
27421
27475
  var Protocol = class {
27422
27476
  constructor(_options) {
@@ -27593,6 +27647,9 @@ var Protocol = class {
27593
27647
  * The Protocol object assumes ownership of the Transport, replacing any callbacks that have already been set, and expects that it is the only user of the Transport instance going forward.
27594
27648
  */
27595
27649
  async connect(transport) {
27650
+ if (this._transport) {
27651
+ throw new Error("Already connected to a transport. Call close() before connecting to a new transport, or use a separate Protocol instance per connection.");
27652
+ }
27596
27653
  this._transport = transport;
27597
27654
  const _onclose = this.transport?.onclose;
27598
27655
  this._transport.onclose = () => {
@@ -27625,6 +27682,10 @@ var Protocol = class {
27625
27682
  this._progressHandlers.clear();
27626
27683
  this._taskProgressTokens.clear();
27627
27684
  this._pendingDebouncedNotifications.clear();
27685
+ for (const controller of this._requestHandlerAbortControllers.values()) {
27686
+ controller.abort();
27687
+ }
27688
+ this._requestHandlerAbortControllers.clear();
27628
27689
  const error48 = McpError.fromError(ErrorCode.ConnectionClosed, "Connection closed");
27629
27690
  this._transport = void 0;
27630
27691
  this.onclose?.();
@@ -27675,6 +27736,8 @@ var Protocol = class {
27675
27736
  sessionId: capturedTransport?.sessionId,
27676
27737
  _meta: request.params?._meta,
27677
27738
  sendNotification: async (notification) => {
27739
+ if (abortController.signal.aborted)
27740
+ return;
27678
27741
  const notificationOptions = { relatedRequestId: request.id };
27679
27742
  if (relatedTaskId) {
27680
27743
  notificationOptions.relatedTask = { taskId: relatedTaskId };
@@ -27682,6 +27745,9 @@ var Protocol = class {
27682
27745
  await this.notification(notification, notificationOptions);
27683
27746
  },
27684
27747
  sendRequest: async (r, resultSchema, options) => {
27748
+ if (abortController.signal.aborted) {
27749
+ throw new McpError(ErrorCode.ConnectionClosed, "Request was cancelled");
27750
+ }
27685
27751
  const requestOptions = { ...options, relatedRequestId: request.id };
27686
27752
  if (relatedTaskId && !requestOptions.relatedTask) {
27687
27753
  requestOptions.relatedTask = { taskId: relatedTaskId };
@@ -28352,7 +28418,7 @@ function mergeCapabilities(base, additional) {
28352
28418
  return result;
28353
28419
  }
28354
28420
 
28355
- // node_modules/.pnpm/@modelcontextprotocol+sdk@1.25.3_hono@4.11.7_zod@4.3.6/node_modules/@modelcontextprotocol/sdk/dist/esm/validation/ajv-provider.js
28421
+ // node_modules/.pnpm/@modelcontextprotocol+sdk@1.26.0_zod@4.3.6/node_modules/@modelcontextprotocol/sdk/dist/esm/validation/ajv-provider.js
28356
28422
  var import_ajv = __toESM(require_ajv(), 1);
28357
28423
  var import_ajv_formats = __toESM(require_dist(), 1);
28358
28424
  function createDefaultAjvInstance() {
@@ -28420,7 +28486,7 @@ var AjvJsonSchemaValidator = class {
28420
28486
  }
28421
28487
  };
28422
28488
 
28423
- // node_modules/.pnpm/@modelcontextprotocol+sdk@1.25.3_hono@4.11.7_zod@4.3.6/node_modules/@modelcontextprotocol/sdk/dist/esm/experimental/tasks/server.js
28489
+ // node_modules/.pnpm/@modelcontextprotocol+sdk@1.26.0_zod@4.3.6/node_modules/@modelcontextprotocol/sdk/dist/esm/experimental/tasks/server.js
28424
28490
  var ExperimentalServerTasks = class {
28425
28491
  constructor(_server) {
28426
28492
  this._server = _server;
@@ -28492,7 +28558,7 @@ var ExperimentalServerTasks = class {
28492
28558
  }
28493
28559
  };
28494
28560
 
28495
- // node_modules/.pnpm/@modelcontextprotocol+sdk@1.25.3_hono@4.11.7_zod@4.3.6/node_modules/@modelcontextprotocol/sdk/dist/esm/experimental/tasks/helpers.js
28561
+ // node_modules/.pnpm/@modelcontextprotocol+sdk@1.26.0_zod@4.3.6/node_modules/@modelcontextprotocol/sdk/dist/esm/experimental/tasks/helpers.js
28496
28562
  function assertToolsCallTaskCapability(requests, method, entityName) {
28497
28563
  if (!requests) {
28498
28564
  throw new Error(`${entityName} does not support task creation (required for ${method})`);
@@ -28527,7 +28593,7 @@ function assertClientRequestTaskCapability(requests, method, entityName) {
28527
28593
  }
28528
28594
  }
28529
28595
 
28530
- // node_modules/.pnpm/@modelcontextprotocol+sdk@1.25.3_hono@4.11.7_zod@4.3.6/node_modules/@modelcontextprotocol/sdk/dist/esm/server/index.js
28596
+ // node_modules/.pnpm/@modelcontextprotocol+sdk@1.26.0_zod@4.3.6/node_modules/@modelcontextprotocol/sdk/dist/esm/server/index.js
28531
28597
  var Server = class extends Protocol {
28532
28598
  /**
28533
28599
  * Initializes this server with the given name and version information.
@@ -28907,7 +28973,7 @@ var Server = class extends Protocol {
28907
28973
  }
28908
28974
  };
28909
28975
 
28910
- // node_modules/.pnpm/@modelcontextprotocol+sdk@1.25.3_hono@4.11.7_zod@4.3.6/node_modules/@modelcontextprotocol/sdk/dist/esm/server/completable.js
28976
+ // node_modules/.pnpm/@modelcontextprotocol+sdk@1.26.0_zod@4.3.6/node_modules/@modelcontextprotocol/sdk/dist/esm/server/completable.js
28911
28977
  var COMPLETABLE_SYMBOL = /* @__PURE__ */ Symbol.for("mcp.completable");
28912
28978
  function isCompletable(schema) {
28913
28979
  return !!schema && typeof schema === "object" && COMPLETABLE_SYMBOL in schema;
@@ -28921,7 +28987,7 @@ var McpZodTypeKind;
28921
28987
  McpZodTypeKind2["Completable"] = "McpCompletable";
28922
28988
  })(McpZodTypeKind || (McpZodTypeKind = {}));
28923
28989
 
28924
- // node_modules/.pnpm/@modelcontextprotocol+sdk@1.25.3_hono@4.11.7_zod@4.3.6/node_modules/@modelcontextprotocol/sdk/dist/esm/shared/toolNameValidation.js
28990
+ // node_modules/.pnpm/@modelcontextprotocol+sdk@1.26.0_zod@4.3.6/node_modules/@modelcontextprotocol/sdk/dist/esm/shared/toolNameValidation.js
28925
28991
  var TOOL_NAME_REGEX = /^[A-Za-z0-9._-]{1,128}$/;
28926
28992
  function validateToolName(name) {
28927
28993
  const warnings = [];
@@ -28979,7 +29045,7 @@ function validateAndWarnToolName(name) {
28979
29045
  return result.isValid;
28980
29046
  }
28981
29047
 
28982
- // node_modules/.pnpm/@modelcontextprotocol+sdk@1.25.3_hono@4.11.7_zod@4.3.6/node_modules/@modelcontextprotocol/sdk/dist/esm/experimental/tasks/mcp-server.js
29048
+ // node_modules/.pnpm/@modelcontextprotocol+sdk@1.26.0_zod@4.3.6/node_modules/@modelcontextprotocol/sdk/dist/esm/experimental/tasks/mcp-server.js
28983
29049
  var ExperimentalMcpServerTasks = class {
28984
29050
  constructor(_mcpServer) {
28985
29051
  this._mcpServer = _mcpServer;
@@ -28997,7 +29063,7 @@ var ExperimentalMcpServerTasks = class {
28997
29063
  // node_modules/.pnpm/zod@4.3.6/node_modules/zod/index.js
28998
29064
  var zod_default = external_exports3;
28999
29065
 
29000
- // node_modules/.pnpm/@modelcontextprotocol+sdk@1.25.3_hono@4.11.7_zod@4.3.6/node_modules/@modelcontextprotocol/sdk/dist/esm/server/mcp.js
29066
+ // node_modules/.pnpm/@modelcontextprotocol+sdk@1.26.0_zod@4.3.6/node_modules/@modelcontextprotocol/sdk/dist/esm/server/mcp.js
29001
29067
  var McpServer = class {
29002
29068
  constructor(serverInfo, options) {
29003
29069
  this._registeredResources = {};
@@ -29783,10 +29849,10 @@ var EMPTY_COMPLETION_RESULT = {
29783
29849
  }
29784
29850
  };
29785
29851
 
29786
- // node_modules/.pnpm/@modelcontextprotocol+sdk@1.25.3_hono@4.11.7_zod@4.3.6/node_modules/@modelcontextprotocol/sdk/dist/esm/server/stdio.js
29852
+ // node_modules/.pnpm/@modelcontextprotocol+sdk@1.26.0_zod@4.3.6/node_modules/@modelcontextprotocol/sdk/dist/esm/server/stdio.js
29787
29853
  import process3 from "node:process";
29788
29854
 
29789
- // node_modules/.pnpm/@modelcontextprotocol+sdk@1.25.3_hono@4.11.7_zod@4.3.6/node_modules/@modelcontextprotocol/sdk/dist/esm/shared/stdio.js
29855
+ // node_modules/.pnpm/@modelcontextprotocol+sdk@1.26.0_zod@4.3.6/node_modules/@modelcontextprotocol/sdk/dist/esm/shared/stdio.js
29790
29856
  var ReadBuffer = class {
29791
29857
  append(chunk) {
29792
29858
  this._buffer = this._buffer ? Buffer.concat([this._buffer, chunk]) : chunk;
@@ -29814,7 +29880,7 @@ function serializeMessage(message) {
29814
29880
  return JSON.stringify(message) + "\n";
29815
29881
  }
29816
29882
 
29817
- // node_modules/.pnpm/@modelcontextprotocol+sdk@1.25.3_hono@4.11.7_zod@4.3.6/node_modules/@modelcontextprotocol/sdk/dist/esm/server/stdio.js
29883
+ // node_modules/.pnpm/@modelcontextprotocol+sdk@1.26.0_zod@4.3.6/node_modules/@modelcontextprotocol/sdk/dist/esm/server/stdio.js
29818
29884
  var StdioServerTransport = class {
29819
29885
  constructor(_stdin = process3.stdin, _stdout = process3.stdout) {
29820
29886
  this._stdin = _stdin;
@@ -29888,11 +29954,92 @@ function getFile(filePath) {
29888
29954
  }
29889
29955
  }
29890
29956
 
29957
+ // packages/mcp/src/tools/get-all-components.ts
29958
+ function addGetAllComponents(server) {
29959
+ server.registerTool(
29960
+ "get_all_components",
29961
+ {
29962
+ description: `
29963
+ Retrieves the main index file that exports all available Bento components.
29964
+ Use this to understand which components are available in the library.
29965
+ Returns:
29966
+ str: The raw content of the packages/vue2/src/index.ts file.
29967
+ `
29968
+ },
29969
+ () => {
29970
+ const filePath = "index.ts";
29971
+ return {
29972
+ content: [{ type: "text", text: getFile(filePath) }]
29973
+ };
29974
+ }
29975
+ );
29976
+ }
29977
+
29978
+ // packages/mcp/src/tools/get-component.ts
29979
+ function addGetComponent(server) {
29980
+ server.registerTool(
29981
+ "get_component",
29982
+ {
29983
+ description: `
29984
+ Retrieves the documentation, stories, and Vue implementation for a list of components from the private repo.
29985
+
29986
+ Args:
29987
+ componentNames (Array<string>): A list of component names (e.g., ["button", "modal"]).
29988
+
29989
+ Returns:
29990
+ str: A Markdown formatted string containing the contents of the .docs.mdx, .stories.ts, and .vue files.
29991
+ `,
29992
+ inputSchema: {
29993
+ componentNames: zod_default.array(zod_default.string()).describe("A list of component names")
29994
+ }
29995
+ },
29996
+ async ({ componentNames }) => {
29997
+ const output = [
29998
+ "I have retrieved the requested component context. For each component, I have provided three sections:",
29999
+ "1. **Documentation (.docs.mdx)**: Explains how to use the component, props, and design guidelines.",
30000
+ "2. **Stories (.stories.ts)**: Shows code examples of how to implement the component (emits, props usage).",
30001
+ "3. **Implementation (.vue)**: The internal logic, properties, emits, and slots of the component.",
30002
+ "---"
30003
+ ];
30004
+ const basePath = "components";
30005
+ for (const component of componentNames) {
30006
+ const docsContent = getFile(`${basePath}/${component}/${component}.docs.mdx`);
30007
+ const storiesContent = getFile(`${basePath}/${component}/${component}.stories.ts`);
30008
+ const vueContent = getFile(`${basePath}/${component}/${component}.vue`);
30009
+ const componentSection = [
30010
+ `# Component: ${component}`,
30011
+ `## 1. Documentation (${component}.docs.mdx)`,
30012
+ "```markdown",
30013
+ docsContent,
30014
+ "```",
30015
+ `## 2. Stories (${component}.stories.ts)`,
30016
+ "```typescript",
30017
+ storiesContent,
30018
+ "```",
30019
+ `## 3. Implementation (${component}.vue)`,
30020
+ "```vue",
30021
+ vueContent,
30022
+ "```"
30023
+ ].join("\n\n");
30024
+ output.push(componentSection);
30025
+ }
30026
+ return {
30027
+ content: [
30028
+ {
30029
+ type: "text",
30030
+ text: output.join("\n")
30031
+ }
30032
+ ]
30033
+ };
30034
+ }
30035
+ );
30036
+ }
30037
+
29891
30038
  // packages/mcp/package.json
29892
30039
  var package_default = {
29893
30040
  name: "@adyen/bento-mcp",
29894
30041
  mcpName: "io.github.adyen/bento-mcp",
29895
- version: "0.1.0",
30042
+ version: "0.1.2",
29896
30043
  type: "module",
29897
30044
  description: "A Model Context Protocol server implementation for Bento",
29898
30045
  license: "MIT",
@@ -29927,100 +30074,27 @@ var package_default = {
29927
30074
  "bento"
29928
30075
  ],
29929
30076
  dependencies: {
29930
- "@modelcontextprotocol/sdk": "1.25.3",
30077
+ "@modelcontextprotocol/sdk": "1.26.0",
29931
30078
  zod: "4.3.6"
29932
30079
  },
29933
30080
  devDependencies: {
29934
30081
  "@modelcontextprotocol/inspector": "0.19.0",
30082
+ "@playwright/test": "catalog:",
30083
+ "@nx/playwright": "catalog:nx",
29935
30084
  "@swc/cli": "0.7.10",
29936
- "@swc/core": "1.15.10",
29937
- "tailwind-merge": "2.6.0"
30085
+ "@swc/core": "1.15.10"
29938
30086
  }
29939
30087
  };
29940
30088
 
29941
30089
  // packages/mcp/src/main.ts
29942
- var server = new McpServer({
29943
- name: "bento-mcp",
29944
- version: package_default.version
29945
- });
29946
- server.registerTool(
29947
- "get_component",
29948
- {
29949
- description: `
29950
- Retrieves the documentation, stories, and Vue implementation for a list of components from the private repo.
29951
-
29952
- Args:
29953
- componentNames (Array<string>): A list of component names (e.g., ["button", "modal"]).
29954
-
29955
- Returns:
29956
- str: A Markdown formatted string containing the contents of the .docs.mdx, .stories.ts, and .vue files.
29957
- `,
29958
- inputSchema: {
29959
- componentNames: zod_default.array(zod_default.string()).describe("A list of component names")
29960
- }
29961
- },
29962
- async ({ componentNames }) => {
29963
- const output = [
29964
- "I have retrieved the requested component context. For each component, I have provided three sections:",
29965
- "1. **Documentation (.docs.mdx)**: Explains how to use the component, props, and design guidelines.",
29966
- "2. **Stories (.stories.ts)**: Shows code examples of how to implement the component (emits, props usage).",
29967
- "3. **Implementation (.vue)**: The internal logic, properties, emits, and slots of the component.",
29968
- "---"
29969
- ];
29970
- const basePath = "components";
29971
- for (const component of componentNames) {
29972
- const docsPath = `${basePath}/${component}/${component}.docs.mdx`;
29973
- const docsContent = getFile(docsPath);
29974
- const storiesPath = `${basePath}/${component}/${component}.stories.ts`;
29975
- const storiesContent = getFile(storiesPath);
29976
- const vuePath = `${basePath}/${component}/${component}.vue`;
29977
- const vueContent = getFile(vuePath);
29978
- const componentSection = `
29979
- # Component: ${component}
29980
-
29981
- ## 1. Documentation (${component}.docs.mdx)
29982
- \`\`\`markdown
29983
- ${docsContent}
29984
- \`\`\`
29985
-
29986
- ## 2. Stories (${component}.stories.ts)
29987
- TypeScript
29988
- ${storiesContent}
29989
-
29990
- ## 3. Implementation (${component}.vue)
29991
- Code snippet
29992
- ${vueContent}
29993
- `;
29994
- output.push(componentSection);
29995
- }
29996
- return {
29997
- content: [
29998
- {
29999
- type: "text",
30000
- text: output.join("\n")
30001
- }
30002
- ]
30003
- };
30004
- }
30005
- );
30006
- server.registerTool(
30007
- "get_all_components",
30008
- {
30009
- description: `
30010
- Retrieves the main index file that exports all available Bento components.
30011
- Use this to understand which components are available in the library.
30012
- Returns:
30013
- str: The raw content of the packages/vue2/src/index.ts file.
30014
- `
30015
- },
30016
- () => {
30017
- const filePath = "index.ts";
30018
- return {
30019
- content: [{ type: "text", text: getFile(filePath) }]
30020
- };
30021
- }
30022
- );
30023
30090
  async function main() {
30091
+ const server = new McpServer({
30092
+ name: "bento-mcp",
30093
+ version: package_default.version,
30094
+ description: package_default.description
30095
+ });
30096
+ addGetAllComponents(server);
30097
+ addGetComponent(server);
30024
30098
  const transport = new StdioServerTransport();
30025
30099
  await server.connect(transport);
30026
30100
  console.error("Bento MCP Server running on stdio");