@_davideast/stitch-mcp 0.5.3 → 0.5.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (78) hide show
  1. package/dist/chunk-18nfnnkg.js +947 -0
  2. package/dist/chunk-18nfnnkg.js.map +28 -0
  3. package/dist/chunk-1sgyj1qf.js +256 -0
  4. package/dist/chunk-1sgyj1qf.js.map +11 -0
  5. package/dist/chunk-1tzaa3zn.js +370 -0
  6. package/dist/chunk-1tzaa3zn.js.map +16 -0
  7. package/dist/chunk-2efzz3tw.js +10 -0
  8. package/dist/chunk-2efzz3tw.js.map +9 -0
  9. package/dist/chunk-2eq8thmz.js +31529 -0
  10. package/dist/chunk-2eq8thmz.js.map +245 -0
  11. package/dist/chunk-4xa2a5hb.js +19 -0
  12. package/dist/chunk-4xa2a5hb.js.map +9 -0
  13. package/dist/chunk-7vdj1qwb.js +2121 -0
  14. package/dist/chunk-7vdj1qwb.js.map +44 -0
  15. package/dist/chunk-7zyv8g2t.js +5216 -0
  16. package/dist/chunk-7zyv8g2t.js.map +67 -0
  17. package/dist/chunk-94xqpnv4.js +7 -0
  18. package/dist/chunk-94xqpnv4.js.map +9 -0
  19. package/dist/chunk-b43pzs3z.js +839 -0
  20. package/dist/chunk-b43pzs3z.js.map +11 -0
  21. package/dist/chunk-byzfppa1.js +759 -0
  22. package/dist/chunk-byzfppa1.js.map +19 -0
  23. package/dist/chunk-cjkw69md.js +94 -0
  24. package/dist/chunk-cjkw69md.js.map +10 -0
  25. package/dist/chunk-d92ngrr6.js +680 -0
  26. package/dist/chunk-d92ngrr6.js.map +17 -0
  27. package/dist/chunk-de74byjc.js +19 -0
  28. package/dist/chunk-de74byjc.js.map +9 -0
  29. package/dist/chunk-ewab4gg0.js +17 -0
  30. package/dist/chunk-ewab4gg0.js.map +9 -0
  31. package/dist/chunk-f0phn3y1.js +1495 -0
  32. package/dist/chunk-f0phn3y1.js.map +23 -0
  33. package/dist/chunk-f398cwqb.js +24 -0
  34. package/dist/chunk-f398cwqb.js.map +9 -0
  35. package/dist/chunk-fkzq5m59.js +111 -0
  36. package/dist/chunk-fkzq5m59.js.map +10 -0
  37. package/dist/chunk-gzk8pt16.js +44184 -0
  38. package/dist/chunk-gzk8pt16.js.map +237 -0
  39. package/dist/chunk-kme6y874.js +125 -0
  40. package/dist/chunk-kme6y874.js.map +12 -0
  41. package/dist/chunk-mw5wn97e.js +109 -0
  42. package/dist/chunk-mw5wn97e.js.map +10 -0
  43. package/dist/chunk-mxcybqhd.js +412 -0
  44. package/dist/chunk-mxcybqhd.js.map +20 -0
  45. package/dist/chunk-nep9nerg.js +137 -0
  46. package/dist/chunk-nep9nerg.js.map +10 -0
  47. package/dist/chunk-nrcb494d.js +50 -0
  48. package/dist/chunk-nrcb494d.js.map +9 -0
  49. package/dist/chunk-p9vvygz4.js +736 -0
  50. package/dist/chunk-p9vvygz4.js.map +16 -0
  51. package/dist/chunk-rd2ye9s7.js +17 -0
  52. package/dist/chunk-rd2ye9s7.js.map +9 -0
  53. package/dist/chunk-svk5y62j.js +164 -0
  54. package/dist/chunk-svk5y62j.js.map +10 -0
  55. package/dist/chunk-w3wh3zkf.js +269 -0
  56. package/dist/chunk-w3wh3zkf.js.map +10 -0
  57. package/dist/chunk-x1tt02n9.js +264 -0
  58. package/dist/chunk-x1tt02n9.js.map +12 -0
  59. package/dist/chunk-x7g5p1gv.js +66 -0
  60. package/dist/chunk-x7g5p1gv.js.map +10 -0
  61. package/dist/chunk-z7b1n864.js +246 -0
  62. package/dist/chunk-z7b1n864.js.map +14 -0
  63. package/dist/chunk-zcc6seqb.js +19132 -0
  64. package/dist/chunk-zcc6seqb.js.map +115 -0
  65. package/dist/commands/doctor/command.js +1 -1
  66. package/dist/commands/init/command.js +1 -1
  67. package/dist/commands/logout/command.js +1 -1
  68. package/dist/commands/proxy/command.js +1 -1
  69. package/dist/commands/screens/command.js +4 -4
  70. package/dist/commands/serve/command.js +5 -5
  71. package/dist/commands/site/command.js +1 -1
  72. package/dist/commands/snapshot/command.js +1 -1
  73. package/dist/commands/tool/command.js +1 -1
  74. package/dist/commands/view/command.js +1 -1
  75. package/dist/index.js +5 -7
  76. package/dist/index.js.map +1 -1
  77. package/dist/ui/copy-behaviors/clipboard.d.ts +0 -7
  78. package/package.json +1 -3
@@ -0,0 +1,28 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../node_modules/ora/node_modules/emoji-regex/index.js", "../src/services/stitch/iam.ts", "../src/services/stitch/api.ts", "../src/services/stitch/connection.ts", "../src/services/stitch/handler.ts", "../node_modules/ora/index.js", "../node_modules/ora/node_modules/cli-cursor/index.js", "../node_modules/ora/node_modules/restore-cursor/index.js", "../node_modules/mimic-function/index.js", "../node_modules/onetime/index.js", "../node_modules/ora/node_modules/log-symbols/node_modules/is-unicode-supported/index.js", "../node_modules/ora/node_modules/log-symbols/index.js", "../node_modules/ora/node_modules/ansi-regex/index.js", "../node_modules/ora/node_modules/strip-ansi/index.js", "../node_modules/ora/node_modules/string-width/index.js", "../node_modules/is-interactive/index.js", "../node_modules/is-unicode-supported/index.js", "../node_modules/stdin-discarder/index.js", "../src/ui/spinner.ts"],
4
+ "sourcesContent": [
5
+ "module.exports = () => {\n\t// https://mths.be/emoji\n\treturn /[#*0-9]\\uFE0F?\\u20E3|[\\xA9\\xAE\\u203C\\u2049\\u2122\\u2139\\u2194-\\u2199\\u21A9\\u21AA\\u231A\\u231B\\u2328\\u23CF\\u23ED-\\u23EF\\u23F1\\u23F2\\u23F8-\\u23FA\\u24C2\\u25AA\\u25AB\\u25B6\\u25C0\\u25FB\\u25FC\\u25FE\\u2600-\\u2604\\u260E\\u2611\\u2614\\u2615\\u2618\\u2620\\u2622\\u2623\\u2626\\u262A\\u262E\\u262F\\u2638-\\u263A\\u2640\\u2642\\u2648-\\u2653\\u265F\\u2660\\u2663\\u2665\\u2666\\u2668\\u267B\\u267E\\u267F\\u2692\\u2694-\\u2697\\u2699\\u269B\\u269C\\u26A0\\u26A7\\u26AA\\u26B0\\u26B1\\u26BD\\u26BE\\u26C4\\u26C8\\u26CF\\u26D1\\u26E9\\u26F0-\\u26F5\\u26F7\\u26F8\\u26FA\\u2702\\u2708\\u2709\\u270F\\u2712\\u2714\\u2716\\u271D\\u2721\\u2733\\u2734\\u2744\\u2747\\u2757\\u2763\\u27A1\\u2934\\u2935\\u2B05-\\u2B07\\u2B1B\\u2B1C\\u2B55\\u3030\\u303D\\u3297\\u3299]\\uFE0F?|[\\u261D\\u270C\\u270D](?:\\uD83C[\\uDFFB-\\uDFFF]|\\uFE0F)?|[\\u270A\\u270B](?:\\uD83C[\\uDFFB-\\uDFFF])?|[\\u23E9-\\u23EC\\u23F0\\u23F3\\u25FD\\u2693\\u26A1\\u26AB\\u26C5\\u26CE\\u26D4\\u26EA\\u26FD\\u2705\\u2728\\u274C\\u274E\\u2753-\\u2755\\u2795-\\u2797\\u27B0\\u27BF\\u2B50]|\\u26D3\\uFE0F?(?:\\u200D\\uD83D\\uDCA5)?|\\u26F9(?:\\uD83C[\\uDFFB-\\uDFFF]|\\uFE0F)?(?:\\u200D[\\u2640\\u2642]\\uFE0F?)?|\\u2764\\uFE0F?(?:\\u200D(?:\\uD83D\\uDD25|\\uD83E\\uDE79))?|\\uD83C(?:[\\uDC04\\uDD70\\uDD71\\uDD7E\\uDD7F\\uDE02\\uDE37\\uDF21\\uDF24-\\uDF2C\\uDF36\\uDF7D\\uDF96\\uDF97\\uDF99-\\uDF9B\\uDF9E\\uDF9F\\uDFCD\\uDFCE\\uDFD4-\\uDFDF\\uDFF5\\uDFF7]\\uFE0F?|[\\uDF85\\uDFC2\\uDFC7](?:\\uD83C[\\uDFFB-\\uDFFF])?|[\\uDFC4\\uDFCA](?:\\uD83C[\\uDFFB-\\uDFFF])?(?:\\u200D[\\u2640\\u2642]\\uFE0F?)?|[\\uDFCB\\uDFCC](?:\\uD83C[\\uDFFB-\\uDFFF]|\\uFE0F)?(?:\\u200D[\\u2640\\u2642]\\uFE0F?)?|[\\uDCCF\\uDD8E\\uDD91-\\uDD9A\\uDE01\\uDE1A\\uDE2F\\uDE32-\\uDE36\\uDE38-\\uDE3A\\uDE50\\uDE51\\uDF00-\\uDF20\\uDF2D-\\uDF35\\uDF37-\\uDF43\\uDF45-\\uDF4A\\uDF4C-\\uDF7C\\uDF7E-\\uDF84\\uDF86-\\uDF93\\uDFA0-\\uDFC1\\uDFC5\\uDFC6\\uDFC8\\uDFC9\\uDFCF-\\uDFD3\\uDFE0-\\uDFF0\\uDFF8-\\uDFFF]|\\uDDE6\\uD83C[\\uDDE8-\\uDDEC\\uDDEE\\uDDF1\\uDDF2\\uDDF4\\uDDF6-\\uDDFA\\uDDFC\\uDDFD\\uDDFF]|\\uDDE7\\uD83C[\\uDDE6\\uDDE7\\uDDE9-\\uDDEF\\uDDF1-\\uDDF4\\uDDF6-\\uDDF9\\uDDFB\\uDDFC\\uDDFE\\uDDFF]|\\uDDE8\\uD83C[\\uDDE6\\uDDE8\\uDDE9\\uDDEB-\\uDDEE\\uDDF0-\\uDDF7\\uDDFA-\\uDDFF]|\\uDDE9\\uD83C[\\uDDEA\\uDDEC\\uDDEF\\uDDF0\\uDDF2\\uDDF4\\uDDFF]|\\uDDEA\\uD83C[\\uDDE6\\uDDE8\\uDDEA\\uDDEC\\uDDED\\uDDF7-\\uDDFA]|\\uDDEB\\uD83C[\\uDDEE-\\uDDF0\\uDDF2\\uDDF4\\uDDF7]|\\uDDEC\\uD83C[\\uDDE6\\uDDE7\\uDDE9-\\uDDEE\\uDDF1-\\uDDF3\\uDDF5-\\uDDFA\\uDDFC\\uDDFE]|\\uDDED\\uD83C[\\uDDF0\\uDDF2\\uDDF3\\uDDF7\\uDDF9\\uDDFA]|\\uDDEE\\uD83C[\\uDDE8-\\uDDEA\\uDDF1-\\uDDF4\\uDDF6-\\uDDF9]|\\uDDEF\\uD83C[\\uDDEA\\uDDF2\\uDDF4\\uDDF5]|\\uDDF0\\uD83C[\\uDDEA\\uDDEC-\\uDDEE\\uDDF2\\uDDF3\\uDDF5\\uDDF7\\uDDFC\\uDDFE\\uDDFF]|\\uDDF1\\uD83C[\\uDDE6-\\uDDE8\\uDDEE\\uDDF0\\uDDF7-\\uDDFB\\uDDFE]|\\uDDF2\\uD83C[\\uDDE6\\uDDE8-\\uDDED\\uDDF0-\\uDDFF]|\\uDDF3\\uD83C[\\uDDE6\\uDDE8\\uDDEA-\\uDDEC\\uDDEE\\uDDF1\\uDDF4\\uDDF5\\uDDF7\\uDDFA\\uDDFF]|\\uDDF4\\uD83C\\uDDF2|\\uDDF5\\uD83C[\\uDDE6\\uDDEA-\\uDDED\\uDDF0-\\uDDF3\\uDDF7-\\uDDF9\\uDDFC\\uDDFE]|\\uDDF6\\uD83C\\uDDE6|\\uDDF7\\uD83C[\\uDDEA\\uDDF4\\uDDF8\\uDDFA\\uDDFC]|\\uDDF8\\uD83C[\\uDDE6-\\uDDEA\\uDDEC-\\uDDF4\\uDDF7-\\uDDF9\\uDDFB\\uDDFD-\\uDDFF]|\\uDDF9\\uD83C[\\uDDE6\\uDDE8\\uDDE9\\uDDEB-\\uDDED\\uDDEF-\\uDDF4\\uDDF7\\uDDF9\\uDDFB\\uDDFC\\uDDFF]|\\uDDFA\\uD83C[\\uDDE6\\uDDEC\\uDDF2\\uDDF3\\uDDF8\\uDDFE\\uDDFF]|\\uDDFB\\uD83C[\\uDDE6\\uDDE8\\uDDEA\\uDDEC\\uDDEE\\uDDF3\\uDDFA]|\\uDDFC\\uD83C[\\uDDEB\\uDDF8]|\\uDDFD\\uD83C\\uDDF0|\\uDDFE\\uD83C[\\uDDEA\\uDDF9]|\\uDDFF\\uD83C[\\uDDE6\\uDDF2\\uDDFC]|\\uDF44(?:\\u200D\\uD83D\\uDFEB)?|\\uDF4B(?:\\u200D\\uD83D\\uDFE9)?|\\uDFC3(?:\\uD83C[\\uDFFB-\\uDFFF])?(?:\\u200D(?:[\\u2640\\u2642]\\uFE0F?(?:\\u200D\\u27A1\\uFE0F?)?|\\u27A1\\uFE0F?))?|\\uDFF3\\uFE0F?(?:\\u200D(?:\\u26A7\\uFE0F?|\\uD83C\\uDF08))?|\\uDFF4(?:\\u200D\\u2620\\uFE0F?|\\uDB40\\uDC67\\uDB40\\uDC62\\uDB40(?:\\uDC65\\uDB40\\uDC6E\\uDB40\\uDC67|\\uDC73\\uDB40\\uDC63\\uDB40\\uDC74|\\uDC77\\uDB40\\uDC6C\\uDB40\\uDC73)\\uDB40\\uDC7F)?)|\\uD83D(?:[\\uDC3F\\uDCFD\\uDD49\\uDD4A\\uDD6F\\uDD70\\uDD73\\uDD76-\\uDD79\\uDD87\\uDD8A-\\uDD8D\\uDDA5\\uDDA8\\uDDB1\\uDDB2\\uDDBC\\uDDC2-\\uDDC4\\uDDD1-\\uDDD3\\uDDDC-\\uDDDE\\uDDE1\\uDDE3\\uDDE8\\uDDEF\\uDDF3\\uDDFA\\uDECB\\uDECD-\\uDECF\\uDEE0-\\uDEE5\\uDEE9\\uDEF0\\uDEF3]\\uFE0F?|[\\uDC42\\uDC43\\uDC46-\\uDC50\\uDC66\\uDC67\\uDC6B-\\uDC6D\\uDC72\\uDC74-\\uDC76\\uDC78\\uDC7C\\uDC83\\uDC85\\uDC8F\\uDC91\\uDCAA\\uDD7A\\uDD95\\uDD96\\uDE4C\\uDE4F\\uDEC0\\uDECC](?:\\uD83C[\\uDFFB-\\uDFFF])?|[\\uDC6E-\\uDC71\\uDC73\\uDC77\\uDC81\\uDC82\\uDC86\\uDC87\\uDE45-\\uDE47\\uDE4B\\uDE4D\\uDE4E\\uDEA3\\uDEB4\\uDEB5](?:\\uD83C[\\uDFFB-\\uDFFF])?(?:\\u200D[\\u2640\\u2642]\\uFE0F?)?|[\\uDD74\\uDD90](?:\\uD83C[\\uDFFB-\\uDFFF]|\\uFE0F)?|[\\uDC00-\\uDC07\\uDC09-\\uDC14\\uDC16-\\uDC25\\uDC27-\\uDC3A\\uDC3C-\\uDC3E\\uDC40\\uDC44\\uDC45\\uDC51-\\uDC65\\uDC6A\\uDC79-\\uDC7B\\uDC7D-\\uDC80\\uDC84\\uDC88-\\uDC8E\\uDC90\\uDC92-\\uDCA9\\uDCAB-\\uDCFC\\uDCFF-\\uDD3D\\uDD4B-\\uDD4E\\uDD50-\\uDD67\\uDDA4\\uDDFB-\\uDE2D\\uDE2F-\\uDE34\\uDE37-\\uDE41\\uDE43\\uDE44\\uDE48-\\uDE4A\\uDE80-\\uDEA2\\uDEA4-\\uDEB3\\uDEB7-\\uDEBF\\uDEC1-\\uDEC5\\uDED0-\\uDED2\\uDED5-\\uDED8\\uDEDC-\\uDEDF\\uDEEB\\uDEEC\\uDEF4-\\uDEFC\\uDFE0-\\uDFEB\\uDFF0]|\\uDC08(?:\\u200D\\u2B1B)?|\\uDC15(?:\\u200D\\uD83E\\uDDBA)?|\\uDC26(?:\\u200D(?:\\u2B1B|\\uD83D\\uDD25))?|\\uDC3B(?:\\u200D\\u2744\\uFE0F?)?|\\uDC41\\uFE0F?(?:\\u200D\\uD83D\\uDDE8\\uFE0F?)?|\\uDC68(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:\\uDC8B\\u200D\\uD83D)?\\uDC68|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D(?:[\\uDC68\\uDC69]\\u200D\\uD83D(?:\\uDC66(?:\\u200D\\uD83D\\uDC66)?|\\uDC67(?:\\u200D\\uD83D[\\uDC66\\uDC67])?)|[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uDC66(?:\\u200D\\uD83D\\uDC66)?|\\uDC67(?:\\u200D\\uD83D[\\uDC66\\uDC67])?)|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]))|\\uD83C(?:\\uDFFB(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:\\uDC8B\\u200D\\uD83D)?\\uDC68\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D(?:[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uDC30\\u200D\\uD83D\\uDC68\\uD83C[\\uDFFC-\\uDFFF])|\\uD83E(?:[\\uDD1D\\uDEEF]\\u200D\\uD83D\\uDC68\\uD83C[\\uDFFC-\\uDFFF]|[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3])))?|\\uDFFC(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:\\uDC8B\\u200D\\uD83D)?\\uDC68\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D(?:[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uDC30\\u200D\\uD83D\\uDC68\\uD83C[\\uDFFB\\uDFFD-\\uDFFF])|\\uD83E(?:[\\uDD1D\\uDEEF]\\u200D\\uD83D\\uDC68\\uD83C[\\uDFFB\\uDFFD-\\uDFFF]|[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3])))?|\\uDFFD(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:\\uDC8B\\u200D\\uD83D)?\\uDC68\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D(?:[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uDC30\\u200D\\uD83D\\uDC68\\uD83C[\\uDFFB\\uDFFC\\uDFFE\\uDFFF])|\\uD83E(?:[\\uDD1D\\uDEEF]\\u200D\\uD83D\\uDC68\\uD83C[\\uDFFB\\uDFFC\\uDFFE\\uDFFF]|[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3])))?|\\uDFFE(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:\\uDC8B\\u200D\\uD83D)?\\uDC68\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D(?:[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uDC30\\u200D\\uD83D\\uDC68\\uD83C[\\uDFFB-\\uDFFD\\uDFFF])|\\uD83E(?:[\\uDD1D\\uDEEF]\\u200D\\uD83D\\uDC68\\uD83C[\\uDFFB-\\uDFFD\\uDFFF]|[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3])))?|\\uDFFF(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:\\uDC8B\\u200D\\uD83D)?\\uDC68\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D(?:[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uDC30\\u200D\\uD83D\\uDC68\\uD83C[\\uDFFB-\\uDFFE])|\\uD83E(?:[\\uDD1D\\uDEEF]\\u200D\\uD83D\\uDC68\\uD83C[\\uDFFB-\\uDFFE]|[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3])))?))?|\\uDC69(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:\\uDC8B\\u200D\\uD83D)?[\\uDC68\\uDC69]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D(?:[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uDC66(?:\\u200D\\uD83D\\uDC66)?|\\uDC67(?:\\u200D\\uD83D[\\uDC66\\uDC67])?|\\uDC69\\u200D\\uD83D(?:\\uDC66(?:\\u200D\\uD83D\\uDC66)?|\\uDC67(?:\\u200D\\uD83D[\\uDC66\\uDC67])?))|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]))|\\uD83C(?:\\uDFFB(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:[\\uDC68\\uDC69]|\\uDC8B\\u200D\\uD83D[\\uDC68\\uDC69])\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D(?:[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uDC30\\u200D\\uD83D\\uDC69\\uD83C[\\uDFFC-\\uDFFF])|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83D[\\uDC68\\uDC69]\\uD83C[\\uDFFC-\\uDFFF]|\\uDEEF\\u200D\\uD83D\\uDC69\\uD83C[\\uDFFC-\\uDFFF])))?|\\uDFFC(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:[\\uDC68\\uDC69]|\\uDC8B\\u200D\\uD83D[\\uDC68\\uDC69])\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D(?:[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uDC30\\u200D\\uD83D\\uDC69\\uD83C[\\uDFFB\\uDFFD-\\uDFFF])|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83D[\\uDC68\\uDC69]\\uD83C[\\uDFFB\\uDFFD-\\uDFFF]|\\uDEEF\\u200D\\uD83D\\uDC69\\uD83C[\\uDFFB\\uDFFD-\\uDFFF])))?|\\uDFFD(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:[\\uDC68\\uDC69]|\\uDC8B\\u200D\\uD83D[\\uDC68\\uDC69])\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D(?:[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uDC30\\u200D\\uD83D\\uDC69\\uD83C[\\uDFFB\\uDFFC\\uDFFE\\uDFFF])|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83D[\\uDC68\\uDC69]\\uD83C[\\uDFFB\\uDFFC\\uDFFE\\uDFFF]|\\uDEEF\\u200D\\uD83D\\uDC69\\uD83C[\\uDFFB\\uDFFC\\uDFFE\\uDFFF])))?|\\uDFFE(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:[\\uDC68\\uDC69]|\\uDC8B\\u200D\\uD83D[\\uDC68\\uDC69])\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D(?:[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uDC30\\u200D\\uD83D\\uDC69\\uD83C[\\uDFFB-\\uDFFD\\uDFFF])|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83D[\\uDC68\\uDC69]\\uD83C[\\uDFFB-\\uDFFD\\uDFFF]|\\uDEEF\\u200D\\uD83D\\uDC69\\uD83C[\\uDFFB-\\uDFFD\\uDFFF])))?|\\uDFFF(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:[\\uDC68\\uDC69]|\\uDC8B\\u200D\\uD83D[\\uDC68\\uDC69])\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D(?:[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uDC30\\u200D\\uD83D\\uDC69\\uD83C[\\uDFFB-\\uDFFE])|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83D[\\uDC68\\uDC69]\\uD83C[\\uDFFB-\\uDFFE]|\\uDEEF\\u200D\\uD83D\\uDC69\\uD83C[\\uDFFB-\\uDFFE])))?))?|\\uDD75(?:\\uD83C[\\uDFFB-\\uDFFF]|\\uFE0F)?(?:\\u200D[\\u2640\\u2642]\\uFE0F?)?|\\uDE2E(?:\\u200D\\uD83D\\uDCA8)?|\\uDE35(?:\\u200D\\uD83D\\uDCAB)?|\\uDE36(?:\\u200D\\uD83C\\uDF2B\\uFE0F?)?|\\uDE42(?:\\u200D[\\u2194\\u2195]\\uFE0F?)?|\\uDEB6(?:\\uD83C[\\uDFFB-\\uDFFF])?(?:\\u200D(?:[\\u2640\\u2642]\\uFE0F?(?:\\u200D\\u27A1\\uFE0F?)?|\\u27A1\\uFE0F?))?)|\\uD83E(?:[\\uDD0C\\uDD0F\\uDD18-\\uDD1F\\uDD30-\\uDD34\\uDD36\\uDD77\\uDDB5\\uDDB6\\uDDBB\\uDDD2\\uDDD3\\uDDD5\\uDEC3-\\uDEC5\\uDEF0\\uDEF2-\\uDEF8](?:\\uD83C[\\uDFFB-\\uDFFF])?|[\\uDD26\\uDD35\\uDD37-\\uDD39\\uDD3C-\\uDD3E\\uDDB8\\uDDB9\\uDDCD\\uDDCF\\uDDD4\\uDDD6-\\uDDDD](?:\\uD83C[\\uDFFB-\\uDFFF])?(?:\\u200D[\\u2640\\u2642]\\uFE0F?)?|[\\uDDDE\\uDDDF](?:\\u200D[\\u2640\\u2642]\\uFE0F?)?|[\\uDD0D\\uDD0E\\uDD10-\\uDD17\\uDD20-\\uDD25\\uDD27-\\uDD2F\\uDD3A\\uDD3F-\\uDD45\\uDD47-\\uDD76\\uDD78-\\uDDB4\\uDDB7\\uDDBA\\uDDBC-\\uDDCC\\uDDD0\\uDDE0-\\uDDFF\\uDE70-\\uDE7C\\uDE80-\\uDE8A\\uDE8E-\\uDEC2\\uDEC6\\uDEC8\\uDECD-\\uDEDC\\uDEDF-\\uDEEA\\uDEEF]|\\uDDCE(?:\\uD83C[\\uDFFB-\\uDFFF])?(?:\\u200D(?:[\\u2640\\u2642]\\uFE0F?(?:\\u200D\\u27A1\\uFE0F?)?|\\u27A1\\uFE0F?))?|\\uDDD1(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF84\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3\\uDE70]|\\uDD1D\\u200D\\uD83E\\uDDD1|\\uDDD1\\u200D\\uD83E\\uDDD2(?:\\u200D\\uD83E\\uDDD2)?|\\uDDD2(?:\\u200D\\uD83E\\uDDD2)?))|\\uD83C(?:\\uDFFB(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D(?:\\uD83D\\uDC8B\\u200D)?\\uD83E\\uDDD1\\uD83C[\\uDFFC-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF84\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D(?:[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uDC30\\u200D\\uD83E\\uDDD1\\uD83C[\\uDFFC-\\uDFFF])|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3\\uDE70]|\\uDD1D\\u200D\\uD83E\\uDDD1\\uD83C[\\uDFFB-\\uDFFF]|\\uDEEF\\u200D\\uD83E\\uDDD1\\uD83C[\\uDFFC-\\uDFFF])))?|\\uDFFC(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D(?:\\uD83D\\uDC8B\\u200D)?\\uD83E\\uDDD1\\uD83C[\\uDFFB\\uDFFD-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF84\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D(?:[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uDC30\\u200D\\uD83E\\uDDD1\\uD83C[\\uDFFB\\uDFFD-\\uDFFF])|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3\\uDE70]|\\uDD1D\\u200D\\uD83E\\uDDD1\\uD83C[\\uDFFB-\\uDFFF]|\\uDEEF\\u200D\\uD83E\\uDDD1\\uD83C[\\uDFFB\\uDFFD-\\uDFFF])))?|\\uDFFD(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D(?:\\uD83D\\uDC8B\\u200D)?\\uD83E\\uDDD1\\uD83C[\\uDFFB\\uDFFC\\uDFFE\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF84\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D(?:[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uDC30\\u200D\\uD83E\\uDDD1\\uD83C[\\uDFFB\\uDFFC\\uDFFE\\uDFFF])|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3\\uDE70]|\\uDD1D\\u200D\\uD83E\\uDDD1\\uD83C[\\uDFFB-\\uDFFF]|\\uDEEF\\u200D\\uD83E\\uDDD1\\uD83C[\\uDFFB\\uDFFC\\uDFFE\\uDFFF])))?|\\uDFFE(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D(?:\\uD83D\\uDC8B\\u200D)?\\uD83E\\uDDD1\\uD83C[\\uDFFB-\\uDFFD\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF84\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D(?:[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uDC30\\u200D\\uD83E\\uDDD1\\uD83C[\\uDFFB-\\uDFFD\\uDFFF])|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3\\uDE70]|\\uDD1D\\u200D\\uD83E\\uDDD1\\uD83C[\\uDFFB-\\uDFFF]|\\uDEEF\\u200D\\uD83E\\uDDD1\\uD83C[\\uDFFB-\\uDFFD\\uDFFF])))?|\\uDFFF(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D(?:\\uD83D\\uDC8B\\u200D)?\\uD83E\\uDDD1\\uD83C[\\uDFFB-\\uDFFE]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF84\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D(?:[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uDC30\\u200D\\uD83E\\uDDD1\\uD83C[\\uDFFB-\\uDFFE])|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3\\uDE70]|\\uDD1D\\u200D\\uD83E\\uDDD1\\uD83C[\\uDFFB-\\uDFFF]|\\uDEEF\\u200D\\uD83E\\uDDD1\\uD83C[\\uDFFB-\\uDFFE])))?))?|\\uDEF1(?:\\uD83C(?:\\uDFFB(?:\\u200D\\uD83E\\uDEF2\\uD83C[\\uDFFC-\\uDFFF])?|\\uDFFC(?:\\u200D\\uD83E\\uDEF2\\uD83C[\\uDFFB\\uDFFD-\\uDFFF])?|\\uDFFD(?:\\u200D\\uD83E\\uDEF2\\uD83C[\\uDFFB\\uDFFC\\uDFFE\\uDFFF])?|\\uDFFE(?:\\u200D\\uD83E\\uDEF2\\uD83C[\\uDFFB-\\uDFFD\\uDFFF])?|\\uDFFF(?:\\u200D\\uD83E\\uDEF2\\uD83C[\\uDFFB-\\uDFFE])?))?)/g;\n};\n",
6
+ "import {\n type IAMConfigResult,\n type ConfigureIAMInput,\n} from './spec.js';\nimport type { GcloudExecutor } from '../gcloud/core.js';\n\nexport class StitchIamService {\n constructor(private executor: GcloudExecutor) {}\n\n async configureIAM(input: ConfigureIAMInput): Promise<IAMConfigResult> {\n try {\n const role = 'roles/serviceusage.serviceUsageConsumer';\n const member = `user:${input.userEmail}`;\n\n const result = await this.executor.exec(\n [\n 'projects',\n 'add-iam-policy-binding',\n input.projectId,\n `--member=${member}`,\n `--role=${role}`,\n '--condition=None',\n '--quiet',\n ]\n );\n\n if (!result.success) {\n const errorMsg = result.stderr || result.error || result.stdout || 'Unknown error';\n return {\n success: false,\n error: {\n code: 'IAM_CONFIG_FAILED',\n message: `Failed to configure IAM permissions: ${errorMsg}`,\n suggestion: 'Ensure you have Owner or Editor role on the project',\n recoverable: true,\n details: `Exit code: ${result.exitCode}\\nStderr: ${result.stderr}\\nStdout: ${result.stdout}`,\n },\n };\n }\n\n return {\n success: true,\n data: {\n role,\n member,\n },\n };\n } catch (error) {\n return {\n success: false,\n error: {\n code: 'IAM_CONFIG_FAILED',\n message: error instanceof Error ? error.message : String(error),\n recoverable: false,\n },\n };\n }\n }\n\n async checkIAMRole(input: { projectId: string; userEmail: string }): Promise<boolean> {\n try {\n const role = 'roles/serviceusage.serviceUsageConsumer';\n const member = `user:${input.userEmail}`;\n const result = await this.executor.exec(\n [\n 'projects',\n 'get-iam-policy',\n input.projectId,\n `--flatten=bindings[].members`,\n `--filter=bindings.role=${role} AND bindings.members=${member}`,\n '--format=value(bindings.members)',\n ]\n );\n return result.success && result.stdout.trim().includes(member);\n } catch {\n return false;\n }\n }\n}\n",
7
+ "import {\n type APIEnableResult,\n type EnableAPIInput,\n} from './spec.js';\nimport type { GcloudExecutor } from '../gcloud/core.js';\n\nexport class StitchApiService {\n constructor(private executor: GcloudExecutor) {}\n\n async enableAPI(input: EnableAPIInput): Promise<APIEnableResult> {\n try {\n const api = 'stitch.googleapis.com';\n\n const result = await this.executor.exec(\n ['beta', 'services', 'mcp', 'enable', api, `--project=${input.projectId}`, '--quiet']\n );\n\n if (!result.success) {\n const errorMsg = result.stderr || result.error || result.stdout || 'Unknown error';\n return {\n success: false,\n error: {\n code: 'API_ENABLE_FAILED',\n message: `Failed to enable Stitch API: ${errorMsg}`,\n suggestion: 'Ensure the project has billing enabled',\n recoverable: true,\n details: `Exit code: ${result.exitCode}\\nStderr: ${result.stderr}\\nStdout: ${result.stdout}`,\n },\n };\n }\n\n return {\n success: true,\n data: {\n api,\n enabled: true,\n },\n };\n } catch (error) {\n return {\n success: false,\n error: {\n code: 'API_ENABLE_FAILED',\n message: error instanceof Error ? error.message : String(error),\n recoverable: false,\n },\n };\n }\n }\n\n async checkAPIEnabled(input: { projectId: string }): Promise<boolean> {\n try {\n const result = await this.executor.exec(\n [\n 'services',\n 'list',\n `--project=${input.projectId}`,\n '--enabled',\n '--filter=name:stitch.googleapis.com',\n '--format=value(name)',\n ]\n );\n return result.success && result.stdout.trim().includes('stitch.googleapis.com');\n } catch {\n return false;\n }\n }\n}\n",
8
+ "import {\n type ConnectionTestResult,\n type TestConnectionInput,\n type TestConnectionWithApiKeyInput,\n} from './spec.js';\n\nexport class StitchConnectionService {\n async testConnectionWithApiKey(input: TestConnectionWithApiKeyInput): Promise<ConnectionTestResult> {\n try {\n const url = process.env.STITCH_HOST || 'https://stitch.googleapis.com/mcp';\n\n const payload = {\n method: 'tools/call',\n jsonrpc: '2.0',\n params: {\n name: 'list_projects',\n arguments: {},\n },\n id: 1,\n };\n\n const response = await fetch(url, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n Accept: 'application/json, text/event-stream',\n 'X-Goog-Api-Key': input.apiKey,\n },\n body: JSON.stringify(payload),\n });\n\n if (!response.ok) {\n let errorDetails = '';\n let errorMessage = `API request failed with status ${response.status}`;\n\n try {\n const errorBody = await response.json() as any;\n errorDetails = JSON.stringify(errorBody, null, 2);\n\n if (errorBody?.error?.message) {\n errorMessage = errorBody.error.message;\n }\n } catch {\n try {\n errorDetails = await response.text();\n } catch {\n errorDetails = `Status ${response.status}: ${response.statusText}`;\n }\n }\n\n return {\n success: false,\n error: {\n code: response.status === 403 ? 'PERMISSION_DENIED' : 'CONNECTION_TEST_FAILED',\n message: errorMessage,\n suggestion:\n response.status === 403\n ? 'Check that your API key is valid and has access to the Stitch API'\n : 'Verify API key configuration and try again',\n recoverable: true,\n details: errorDetails,\n },\n };\n }\n\n const data = await response.json();\n\n return {\n success: true,\n data: {\n connected: true,\n statusCode: response.status,\n url,\n response: data,\n },\n };\n } catch (error) {\n return {\n success: false,\n error: {\n code: 'CONNECTION_TEST_FAILED',\n message: error instanceof Error ? error.message : String(error),\n recoverable: false,\n },\n };\n }\n }\n\n async testConnection(input: TestConnectionInput): Promise<ConnectionTestResult> {\n try {\n const url = process.env.STITCH_HOST || 'https://stitch.googleapis.com/mcp';\n\n const payload = {\n method: 'tools/call',\n jsonrpc: '2.0',\n params: {\n name: 'list_projects',\n arguments: {},\n },\n id: 1,\n };\n\n const response = await fetch(url, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n Accept: 'application/json, text/event-stream',\n Authorization: `Bearer ${input.accessToken}`,\n 'X-Goog-User-Project': input.projectId,\n },\n body: JSON.stringify(payload),\n });\n\n if (!response.ok) {\n // Capture full error response which may contain helpful URLs\n let errorDetails = '';\n let errorMessage = `API request failed with status ${response.status}`;\n\n try {\n const errorBody = await response.json() as any;\n errorDetails = JSON.stringify(errorBody, null, 2);\n\n // Extract error message if available\n if (errorBody?.error?.message) {\n errorMessage = errorBody.error.message;\n }\n } catch {\n // If response isn't JSON, try to get text\n try {\n errorDetails = await response.text();\n } catch {\n errorDetails = `Status ${response.status}: ${response.statusText}`;\n }\n }\n\n return {\n success: false,\n error: {\n code: response.status === 403 ? 'PERMISSION_DENIED' : 'CONNECTION_TEST_FAILED',\n message: errorMessage,\n suggestion:\n response.status === 403\n ? 'Check IAM permissions and ensure API is enabled'\n : 'Verify project configuration and try again',\n recoverable: true,\n details: errorDetails,\n },\n };\n }\n\n const data = await response.json();\n\n return {\n success: true,\n data: {\n connected: true,\n statusCode: response.status,\n url,\n response: data,\n },\n };\n } catch (error) {\n return {\n success: false,\n error: {\n code: 'CONNECTION_TEST_FAILED',\n message: error instanceof Error ? error.message : String(error),\n recoverable: false,\n },\n };\n }\n }\n}\n",
9
+ "import {\n type StitchService,\n type ConfigureIAMInput,\n type EnableAPIInput,\n type TestConnectionInput,\n type TestConnectionWithApiKeyInput,\n type IAMConfigResult,\n type APIEnableResult,\n type ConnectionTestResult,\n} from './spec.js';\nimport { GcloudExecutor } from '../gcloud/core.js';\nimport { StitchIamService } from './iam.js';\nimport { StitchApiService } from './api.js';\nimport { StitchConnectionService } from './connection.js';\n\nexport class StitchHandler implements StitchService {\n private executor: GcloudExecutor;\n private iamService: StitchIamService;\n private apiService: StitchApiService;\n private connectionService: StitchConnectionService;\n\n constructor() {\n this.executor = new GcloudExecutor();\n this.iamService = new StitchIamService(this.executor);\n this.apiService = new StitchApiService(this.executor);\n this.connectionService = new StitchConnectionService();\n }\n\n async configureIAM(input: ConfigureIAMInput): Promise<IAMConfigResult> {\n return this.iamService.configureIAM(input);\n }\n\n async enableAPI(input: EnableAPIInput): Promise<APIEnableResult> {\n return this.apiService.enableAPI(input);\n }\n\n async checkIAMRole(input: { projectId: string; userEmail: string }): Promise<boolean> {\n return this.iamService.checkIAMRole(input);\n }\n\n async checkAPIEnabled(input: { projectId: string }): Promise<boolean> {\n return this.apiService.checkAPIEnabled(input);\n }\n\n async testConnectionWithApiKey(input: TestConnectionWithApiKeyInput): Promise<ConnectionTestResult> {\n return this.connectionService.testConnectionWithApiKey(input);\n }\n\n async testConnection(input: TestConnectionInput): Promise<ConnectionTestResult> {\n return this.connectionService.testConnection(input);\n }\n}\n",
10
+ "import process from 'node:process';\nimport chalk from 'chalk';\nimport cliCursor from 'cli-cursor';\nimport cliSpinners from 'cli-spinners';\nimport logSymbols from 'log-symbols';\nimport stripAnsi from 'strip-ansi';\nimport stringWidth from 'string-width';\nimport isInteractive from 'is-interactive';\nimport isUnicodeSupported from 'is-unicode-supported';\nimport stdinDiscarder from 'stdin-discarder';\n\nclass Ora {\n\t#linesToClear = 0;\n\t#isDiscardingStdin = false;\n\t#lineCount = 0;\n\t#frameIndex = -1;\n\t#lastSpinnerFrameTime = 0;\n\t#options;\n\t#spinner;\n\t#stream;\n\t#id;\n\t#initialInterval;\n\t#isEnabled;\n\t#isSilent;\n\t#indent;\n\t#text;\n\t#prefixText;\n\t#suffixText;\n\tcolor;\n\n\tconstructor(options) {\n\t\tif (typeof options === 'string') {\n\t\t\toptions = {\n\t\t\t\ttext: options,\n\t\t\t};\n\t\t}\n\n\t\tthis.#options = {\n\t\t\tcolor: 'cyan',\n\t\t\tstream: process.stderr,\n\t\t\tdiscardStdin: true,\n\t\t\thideCursor: true,\n\t\t\t...options,\n\t\t};\n\n\t\t// Public\n\t\tthis.color = this.#options.color;\n\n\t\t// It's important that these use the public setters.\n\t\tthis.spinner = this.#options.spinner;\n\n\t\tthis.#initialInterval = this.#options.interval;\n\t\tthis.#stream = this.#options.stream;\n\t\tthis.#isEnabled = typeof this.#options.isEnabled === 'boolean' ? this.#options.isEnabled : isInteractive({stream: this.#stream});\n\t\tthis.#isSilent = typeof this.#options.isSilent === 'boolean' ? this.#options.isSilent : false;\n\n\t\t// Set *after* `this.#stream`.\n\t\t// It's important that these use the public setters.\n\t\tthis.text = this.#options.text;\n\t\tthis.prefixText = this.#options.prefixText;\n\t\tthis.suffixText = this.#options.suffixText;\n\t\tthis.indent = this.#options.indent;\n\n\t\tif (process.env.NODE_ENV === 'test') {\n\t\t\tthis._stream = this.#stream;\n\t\t\tthis._isEnabled = this.#isEnabled;\n\n\t\t\tObject.defineProperty(this, '_linesToClear', {\n\t\t\t\tget() {\n\t\t\t\t\treturn this.#linesToClear;\n\t\t\t\t},\n\t\t\t\tset(newValue) {\n\t\t\t\t\tthis.#linesToClear = newValue;\n\t\t\t\t},\n\t\t\t});\n\n\t\t\tObject.defineProperty(this, '_frameIndex', {\n\t\t\t\tget() {\n\t\t\t\t\treturn this.#frameIndex;\n\t\t\t\t},\n\t\t\t});\n\n\t\t\tObject.defineProperty(this, '_lineCount', {\n\t\t\t\tget() {\n\t\t\t\t\treturn this.#lineCount;\n\t\t\t\t},\n\t\t\t});\n\t\t}\n\t}\n\n\tget indent() {\n\t\treturn this.#indent;\n\t}\n\n\tset indent(indent = 0) {\n\t\tif (!(indent >= 0 && Number.isInteger(indent))) {\n\t\t\tthrow new Error('The `indent` option must be an integer from 0 and up');\n\t\t}\n\n\t\tthis.#indent = indent;\n\t\tthis.#updateLineCount();\n\t}\n\n\tget interval() {\n\t\treturn this.#initialInterval ?? this.#spinner.interval ?? 100;\n\t}\n\n\tget spinner() {\n\t\treturn this.#spinner;\n\t}\n\n\tset spinner(spinner) {\n\t\tthis.#frameIndex = -1;\n\t\tthis.#initialInterval = undefined;\n\n\t\tif (typeof spinner === 'object') {\n\t\t\tif (spinner.frames === undefined) {\n\t\t\t\tthrow new Error('The given spinner must have a `frames` property');\n\t\t\t}\n\n\t\t\tthis.#spinner = spinner;\n\t\t} else if (!isUnicodeSupported()) {\n\t\t\tthis.#spinner = cliSpinners.line;\n\t\t} else if (spinner === undefined) {\n\t\t\t// Set default spinner\n\t\t\tthis.#spinner = cliSpinners.dots;\n\t\t} else if (spinner !== 'default' && cliSpinners[spinner]) {\n\t\t\tthis.#spinner = cliSpinners[spinner];\n\t\t} else {\n\t\t\tthrow new Error(`There is no built-in spinner named '${spinner}'. See https://github.com/sindresorhus/cli-spinners/blob/main/spinners.json for a full list.`);\n\t\t}\n\t}\n\n\tget text() {\n\t\treturn this.#text;\n\t}\n\n\tset text(value = '') {\n\t\tthis.#text = value;\n\t\tthis.#updateLineCount();\n\t}\n\n\tget prefixText() {\n\t\treturn this.#prefixText;\n\t}\n\n\tset prefixText(value = '') {\n\t\tthis.#prefixText = value;\n\t\tthis.#updateLineCount();\n\t}\n\n\tget suffixText() {\n\t\treturn this.#suffixText;\n\t}\n\n\tset suffixText(value = '') {\n\t\tthis.#suffixText = value;\n\t\tthis.#updateLineCount();\n\t}\n\n\tget isSpinning() {\n\t\treturn this.#id !== undefined;\n\t}\n\n\t#getFullPrefixText(prefixText = this.#prefixText, postfix = ' ') {\n\t\tif (typeof prefixText === 'string' && prefixText !== '') {\n\t\t\treturn prefixText + postfix;\n\t\t}\n\n\t\tif (typeof prefixText === 'function') {\n\t\t\treturn prefixText() + postfix;\n\t\t}\n\n\t\treturn '';\n\t}\n\n\t#getFullSuffixText(suffixText = this.#suffixText, prefix = ' ') {\n\t\tif (typeof suffixText === 'string' && suffixText !== '') {\n\t\t\treturn prefix + suffixText;\n\t\t}\n\n\t\tif (typeof suffixText === 'function') {\n\t\t\treturn prefix + suffixText();\n\t\t}\n\n\t\treturn '';\n\t}\n\n\t#updateLineCount() {\n\t\tconst columns = this.#stream.columns ?? 80;\n\t\tconst fullPrefixText = this.#getFullPrefixText(this.#prefixText, '-');\n\t\tconst fullSuffixText = this.#getFullSuffixText(this.#suffixText, '-');\n\t\tconst fullText = ' '.repeat(this.#indent) + fullPrefixText + '--' + this.#text + '--' + fullSuffixText;\n\n\t\tthis.#lineCount = 0;\n\t\tfor (const line of stripAnsi(fullText).split('\\n')) {\n\t\t\tthis.#lineCount += Math.max(1, Math.ceil(stringWidth(line, {countAnsiEscapeCodes: true}) / columns));\n\t\t}\n\t}\n\n\tget isEnabled() {\n\t\treturn this.#isEnabled && !this.#isSilent;\n\t}\n\n\tset isEnabled(value) {\n\t\tif (typeof value !== 'boolean') {\n\t\t\tthrow new TypeError('The `isEnabled` option must be a boolean');\n\t\t}\n\n\t\tthis.#isEnabled = value;\n\t}\n\n\tget isSilent() {\n\t\treturn this.#isSilent;\n\t}\n\n\tset isSilent(value) {\n\t\tif (typeof value !== 'boolean') {\n\t\t\tthrow new TypeError('The `isSilent` option must be a boolean');\n\t\t}\n\n\t\tthis.#isSilent = value;\n\t}\n\n\tframe() {\n\t\t// Ensure we only update the spinner frame at the wanted interval,\n\t\t// even if the render method is called more often.\n\t\tconst now = Date.now();\n\t\tif (this.#frameIndex === -1 || now - this.#lastSpinnerFrameTime >= this.interval) {\n\t\t\tthis.#frameIndex = ++this.#frameIndex % this.#spinner.frames.length;\n\t\t\tthis.#lastSpinnerFrameTime = now;\n\t\t}\n\n\t\tconst {frames} = this.#spinner;\n\t\tlet frame = frames[this.#frameIndex];\n\n\t\tif (this.color) {\n\t\t\tframe = chalk[this.color](frame);\n\t\t}\n\n\t\tconst fullPrefixText = (typeof this.#prefixText === 'string' && this.#prefixText !== '') ? this.#prefixText + ' ' : '';\n\t\tconst fullText = typeof this.text === 'string' ? ' ' + this.text : '';\n\t\tconst fullSuffixText = (typeof this.#suffixText === 'string' && this.#suffixText !== '') ? ' ' + this.#suffixText : '';\n\n\t\treturn fullPrefixText + frame + fullText + fullSuffixText;\n\t}\n\n\tclear() {\n\t\tif (!this.#isEnabled || !this.#stream.isTTY) {\n\t\t\treturn this;\n\t\t}\n\n\t\tthis.#stream.cursorTo(0);\n\n\t\tfor (let index = 0; index < this.#linesToClear; index++) {\n\t\t\tif (index > 0) {\n\t\t\t\tthis.#stream.moveCursor(0, -1);\n\t\t\t}\n\n\t\t\tthis.#stream.clearLine(1);\n\t\t}\n\n\t\tif (this.#indent || this.lastIndent !== this.#indent) {\n\t\t\tthis.#stream.cursorTo(this.#indent);\n\t\t}\n\n\t\tthis.lastIndent = this.#indent;\n\t\tthis.#linesToClear = 0;\n\n\t\treturn this;\n\t}\n\n\trender() {\n\t\tif (this.#isSilent) {\n\t\t\treturn this;\n\t\t}\n\n\t\tthis.clear();\n\t\tthis.#stream.write(this.frame());\n\t\tthis.#linesToClear = this.#lineCount;\n\n\t\treturn this;\n\t}\n\n\tstart(text) {\n\t\tif (text) {\n\t\t\tthis.text = text;\n\t\t}\n\n\t\tif (this.#isSilent) {\n\t\t\treturn this;\n\t\t}\n\n\t\tif (!this.#isEnabled) {\n\t\t\tif (this.text) {\n\t\t\t\tthis.#stream.write(`- ${this.text}\\n`);\n\t\t\t}\n\n\t\t\treturn this;\n\t\t}\n\n\t\tif (this.isSpinning) {\n\t\t\treturn this;\n\t\t}\n\n\t\tif (this.#options.hideCursor) {\n\t\t\tcliCursor.hide(this.#stream);\n\t\t}\n\n\t\tif (this.#options.discardStdin && process.stdin.isTTY) {\n\t\t\tthis.#isDiscardingStdin = true;\n\t\t\tstdinDiscarder.start();\n\t\t}\n\n\t\tthis.render();\n\t\tthis.#id = setInterval(this.render.bind(this), this.interval);\n\n\t\treturn this;\n\t}\n\n\tstop() {\n\t\tif (!this.#isEnabled) {\n\t\t\treturn this;\n\t\t}\n\n\t\tclearInterval(this.#id);\n\t\tthis.#id = undefined;\n\t\tthis.#frameIndex = 0;\n\t\tthis.clear();\n\t\tif (this.#options.hideCursor) {\n\t\t\tcliCursor.show(this.#stream);\n\t\t}\n\n\t\tif (this.#options.discardStdin && process.stdin.isTTY && this.#isDiscardingStdin) {\n\t\t\tstdinDiscarder.stop();\n\t\t\tthis.#isDiscardingStdin = false;\n\t\t}\n\n\t\treturn this;\n\t}\n\n\tsucceed(text) {\n\t\treturn this.stopAndPersist({symbol: logSymbols.success, text});\n\t}\n\n\tfail(text) {\n\t\treturn this.stopAndPersist({symbol: logSymbols.error, text});\n\t}\n\n\twarn(text) {\n\t\treturn this.stopAndPersist({symbol: logSymbols.warning, text});\n\t}\n\n\tinfo(text) {\n\t\treturn this.stopAndPersist({symbol: logSymbols.info, text});\n\t}\n\n\tstopAndPersist(options = {}) {\n\t\tif (this.#isSilent) {\n\t\t\treturn this;\n\t\t}\n\n\t\tconst prefixText = options.prefixText ?? this.#prefixText;\n\t\tconst fullPrefixText = this.#getFullPrefixText(prefixText, ' ');\n\n\t\tconst symbolText = options.symbol ?? ' ';\n\n\t\tconst text = options.text ?? this.text;\n\t\tconst separatorText = symbolText ? ' ' : '';\n\t\tconst fullText = (typeof text === 'string') ? separatorText + text : '';\n\n\t\tconst suffixText = options.suffixText ?? this.#suffixText;\n\t\tconst fullSuffixText = this.#getFullSuffixText(suffixText, ' ');\n\n\t\tconst textToWrite = fullPrefixText + symbolText + fullText + fullSuffixText + '\\n';\n\n\t\tthis.stop();\n\t\tthis.#stream.write(textToWrite);\n\n\t\treturn this;\n\t}\n}\n\nexport default function ora(options) {\n\treturn new Ora(options);\n}\n\nexport async function oraPromise(action, options) {\n\tconst actionIsFunction = typeof action === 'function';\n\tconst actionIsPromise = typeof action.then === 'function';\n\n\tif (!actionIsFunction && !actionIsPromise) {\n\t\tthrow new TypeError('Parameter `action` must be a Function or a Promise');\n\t}\n\n\tconst {successText, failText} = typeof options === 'object'\n\t\t? options\n\t\t: {successText: undefined, failText: undefined};\n\n\tconst spinner = ora(options).start();\n\n\ttry {\n\t\tconst promise = actionIsFunction ? action(spinner) : action;\n\t\tconst result = await promise;\n\n\t\tspinner.succeed(\n\t\t\tsuccessText === undefined\n\t\t\t\t? undefined\n\t\t\t\t: (typeof successText === 'string' ? successText : successText(result)),\n\t\t);\n\n\t\treturn result;\n\t} catch (error) {\n\t\tspinner.fail(\n\t\t\tfailText === undefined\n\t\t\t\t? undefined\n\t\t\t\t: (typeof failText === 'string' ? failText : failText(error)),\n\t\t);\n\n\t\tthrow error;\n\t}\n}\n\nexport {default as spinners} from 'cli-spinners';\n",
11
+ "import process from 'node:process';\nimport restoreCursor from 'restore-cursor';\n\nlet isHidden = false;\n\nconst cliCursor = {};\n\ncliCursor.show = (writableStream = process.stderr) => {\n\tif (!writableStream.isTTY) {\n\t\treturn;\n\t}\n\n\tisHidden = false;\n\twritableStream.write('\\u001B[?25h');\n};\n\ncliCursor.hide = (writableStream = process.stderr) => {\n\tif (!writableStream.isTTY) {\n\t\treturn;\n\t}\n\n\trestoreCursor();\n\tisHidden = true;\n\twritableStream.write('\\u001B[?25l');\n};\n\ncliCursor.toggle = (force, writableStream) => {\n\tif (force !== undefined) {\n\t\tisHidden = force;\n\t}\n\n\tif (isHidden) {\n\t\tcliCursor.show(writableStream);\n\t} else {\n\t\tcliCursor.hide(writableStream);\n\t}\n};\n\nexport default cliCursor;\n",
12
+ "import process from 'node:process';\nimport onetime from 'onetime';\nimport {onExit} from 'signal-exit';\n\nconst terminal = process.stderr.isTTY\n\t? process.stderr\n\t: (process.stdout.isTTY ? process.stdout : undefined);\n\nconst restoreCursor = terminal ? onetime(() => {\n\tonExit(() => {\n\t\tterminal.write('\\u001B[?25h');\n\t}, {alwaysLast: true});\n}) : () => {};\n\nexport default restoreCursor;\n",
13
+ "const copyProperty = (to, from, property, ignoreNonConfigurable) => {\n\t// `Function#length` should reflect the parameters of `to` not `from` since we keep its body.\n\t// `Function#prototype` is non-writable and non-configurable so can never be modified.\n\tif (property === 'length' || property === 'prototype') {\n\t\treturn;\n\t}\n\n\t// `Function#arguments` and `Function#caller` should not be copied. They were reported to be present in `Reflect.ownKeys` for some devices in React Native (#41), so we explicitly ignore them here.\n\tif (property === 'arguments' || property === 'caller') {\n\t\treturn;\n\t}\n\n\tconst toDescriptor = Object.getOwnPropertyDescriptor(to, property);\n\tconst fromDescriptor = Object.getOwnPropertyDescriptor(from, property);\n\n\tif (!canCopyProperty(toDescriptor, fromDescriptor) && ignoreNonConfigurable) {\n\t\treturn;\n\t}\n\n\tObject.defineProperty(to, property, fromDescriptor);\n};\n\n// `Object.defineProperty()` throws if the property exists, is not configurable and either:\n// - one its descriptors is changed\n// - it is non-writable and its value is changed\nconst canCopyProperty = function (toDescriptor, fromDescriptor) {\n\treturn toDescriptor === undefined || toDescriptor.configurable || (\n\t\ttoDescriptor.writable === fromDescriptor.writable\n\t\t&& toDescriptor.enumerable === fromDescriptor.enumerable\n\t\t&& toDescriptor.configurable === fromDescriptor.configurable\n\t\t&& (toDescriptor.writable || toDescriptor.value === fromDescriptor.value)\n\t);\n};\n\nconst changePrototype = (to, from) => {\n\tconst fromPrototype = Object.getPrototypeOf(from);\n\tif (fromPrototype === Object.getPrototypeOf(to)) {\n\t\treturn;\n\t}\n\n\tObject.setPrototypeOf(to, fromPrototype);\n};\n\nconst wrappedToString = (withName, fromBody) => `/* Wrapped ${withName}*/\\n${fromBody}`;\n\nconst toStringDescriptor = Object.getOwnPropertyDescriptor(Function.prototype, 'toString');\nconst toStringName = Object.getOwnPropertyDescriptor(Function.prototype.toString, 'name');\n\n// We call `from.toString()` early (not lazily) to ensure `from` can be garbage collected.\n// We use `bind()` instead of a closure for the same reason.\n// Calling `from.toString()` early also allows caching it in case `to.toString()` is called several times.\nconst changeToString = (to, from, name) => {\n\tconst withName = name === '' ? '' : `with ${name.trim()}() `;\n\tconst newToString = wrappedToString.bind(null, withName, from.toString());\n\t// Ensure `to.toString.toString` is non-enumerable and has the same `same`\n\tObject.defineProperty(newToString, 'name', toStringName);\n\tconst {writable, enumerable, configurable} = toStringDescriptor; // We destructue to avoid a potential `get` descriptor.\n\tObject.defineProperty(to, 'toString', {value: newToString, writable, enumerable, configurable});\n};\n\nexport default function mimicFunction(to, from, {ignoreNonConfigurable = false} = {}) {\n\tconst {name} = to;\n\n\tfor (const property of Reflect.ownKeys(from)) {\n\t\tcopyProperty(to, from, property, ignoreNonConfigurable);\n\t}\n\n\tchangePrototype(to, from);\n\tchangeToString(to, from, name);\n\n\treturn to;\n}\n",
14
+ "import mimicFunction from 'mimic-function';\n\nconst calledFunctions = new WeakMap();\n\nconst onetime = (function_, options = {}) => {\n\tif (typeof function_ !== 'function') {\n\t\tthrow new TypeError('Expected a function');\n\t}\n\n\tlet returnValue;\n\tlet callCount = 0;\n\tconst functionName = function_.displayName || function_.name || '<anonymous>';\n\n\tconst onetime = function (...arguments_) {\n\t\tcalledFunctions.set(onetime, ++callCount);\n\n\t\tif (callCount === 1) {\n\t\t\treturnValue = function_.apply(this, arguments_);\n\t\t\tfunction_ = undefined;\n\t\t} else if (options.throw === true) {\n\t\t\tthrow new Error(`Function \\`${functionName}\\` can only be called once`);\n\t\t}\n\n\t\treturn returnValue;\n\t};\n\n\tmimicFunction(onetime, function_);\n\tcalledFunctions.set(onetime, callCount);\n\n\treturn onetime;\n};\n\nonetime.callCount = function_ => {\n\tif (!calledFunctions.has(function_)) {\n\t\tthrow new Error(`The given function \\`${function_.name}\\` is not wrapped by the \\`onetime\\` package`);\n\t}\n\n\treturn calledFunctions.get(function_);\n};\n\nexport default onetime;\n",
15
+ "import process from 'node:process';\n\nexport default function isUnicodeSupported() {\n\tif (process.platform !== 'win32') {\n\t\treturn process.env.TERM !== 'linux'; // Linux console (kernel)\n\t}\n\n\treturn Boolean(process.env.CI)\n\t\t|| Boolean(process.env.WT_SESSION) // Windows Terminal\n\t\t|| Boolean(process.env.TERMINUS_SUBLIME) // Terminus (<0.2.27)\n\t\t|| process.env.ConEmuTask === '{cmd::Cmder}' // ConEmu and cmder\n\t\t|| process.env.TERM_PROGRAM === 'Terminus-Sublime'\n\t\t|| process.env.TERM_PROGRAM === 'vscode'\n\t\t|| process.env.TERM === 'xterm-256color'\n\t\t|| process.env.TERM === 'alacritty'\n\t\t|| process.env.TERMINAL_EMULATOR === 'JetBrains-JediTerm';\n}\n",
16
+ "import chalk from 'chalk';\nimport isUnicodeSupported from 'is-unicode-supported';\n\nconst main = {\n\tinfo: chalk.blue('ℹ'),\n\tsuccess: chalk.green('✔'),\n\twarning: chalk.yellow('⚠'),\n\terror: chalk.red('✖'),\n};\n\nconst fallback = {\n\tinfo: chalk.blue('i'),\n\tsuccess: chalk.green('√'),\n\twarning: chalk.yellow('‼'),\n\terror: chalk.red('×'),\n};\n\nconst logSymbols = isUnicodeSupported() ? main : fallback;\n\nexport default logSymbols;\n",
17
+ "export default function ansiRegex({onlyFirst = false} = {}) {\n\t// Valid string terminator sequences are BEL, ESC\\, and 0x9c\n\tconst ST = '(?:\\\\u0007|\\\\u001B\\\\u005C|\\\\u009C)';\n\n\t// OSC sequences only: ESC ] ... ST (non-greedy until the first ST)\n\tconst osc = `(?:\\\\u001B\\\\][\\\\s\\\\S]*?${ST})`;\n\n\t// CSI and related: ESC/C1, optional intermediates, optional params (supports ; and :) then final byte\n\tconst csi = '[\\\\u001B\\\\u009B][[\\\\]()#;?]*(?:\\\\d{1,4}(?:[;:]\\\\d{0,4})*)?[\\\\dA-PR-TZcf-nq-uy=><~]';\n\n\tconst pattern = `${osc}|${csi}`;\n\n\treturn new RegExp(pattern, onlyFirst ? undefined : 'g');\n}\n",
18
+ "import ansiRegex from 'ansi-regex';\n\nconst regex = ansiRegex();\n\nexport default function stripAnsi(string) {\n\tif (typeof string !== 'string') {\n\t\tthrow new TypeError(`Expected a \\`string\\`, got \\`${typeof string}\\``);\n\t}\n\n\t// Fast path: ANSI codes require ESC (7-bit) or CSI (8-bit) introducer\n\tif (!string.includes('\\u001B') && !string.includes('\\u009B')) {\n\t\treturn string;\n\t}\n\n\t// Even though the regex is global, we don't need to reset the `.lastIndex`\n\t// because unlike `.exec()` and `.test()`, `.replace()` does it automatically\n\t// and doing it manually has a performance penalty.\n\treturn string.replace(regex, '');\n}\n",
19
+ "import stripAnsi from 'strip-ansi';\nimport {eastAsianWidth} from 'get-east-asian-width';\nimport emojiRegex from 'emoji-regex';\n\nconst segmenter = new Intl.Segmenter();\n\nconst defaultIgnorableCodePointRegex = /^\\p{Default_Ignorable_Code_Point}$/u;\n\nexport default function stringWidth(string, options = {}) {\n\tif (typeof string !== 'string' || string.length === 0) {\n\t\treturn 0;\n\t}\n\n\tconst {\n\t\tambiguousIsNarrow = true,\n\t\tcountAnsiEscapeCodes = false,\n\t} = options;\n\n\tif (!countAnsiEscapeCodes) {\n\t\tstring = stripAnsi(string);\n\t}\n\n\tif (string.length === 0) {\n\t\treturn 0;\n\t}\n\n\tlet width = 0;\n\tconst eastAsianWidthOptions = {ambiguousAsWide: !ambiguousIsNarrow};\n\n\tfor (const {segment: character} of segmenter.segment(string)) {\n\t\tconst codePoint = character.codePointAt(0);\n\n\t\t// Ignore control characters\n\t\tif (codePoint <= 0x1F || (codePoint >= 0x7F && codePoint <= 0x9F)) {\n\t\t\tcontinue;\n\t\t}\n\n\t\t// Ignore zero-width characters\n\t\tif (\n\t\t\t(codePoint >= 0x20_0B && codePoint <= 0x20_0F) // Zero-width space, non-joiner, joiner, left-to-right mark, right-to-left mark\n\t\t\t|| codePoint === 0xFE_FF // Zero-width no-break space\n\t\t) {\n\t\t\tcontinue;\n\t\t}\n\n\t\t// Ignore combining characters\n\t\tif (\n\t\t\t(codePoint >= 0x3_00 && codePoint <= 0x3_6F) // Combining diacritical marks\n\t\t\t|| (codePoint >= 0x1A_B0 && codePoint <= 0x1A_FF) // Combining diacritical marks extended\n\t\t\t|| (codePoint >= 0x1D_C0 && codePoint <= 0x1D_FF) // Combining diacritical marks supplement\n\t\t\t|| (codePoint >= 0x20_D0 && codePoint <= 0x20_FF) // Combining diacritical marks for symbols\n\t\t\t|| (codePoint >= 0xFE_20 && codePoint <= 0xFE_2F) // Combining half marks\n\t\t) {\n\t\t\tcontinue;\n\t\t}\n\n\t\t// Ignore surrogate pairs\n\t\tif (codePoint >= 0xD8_00 && codePoint <= 0xDF_FF) {\n\t\t\tcontinue;\n\t\t}\n\n\t\t// Ignore variation selectors\n\t\tif (codePoint >= 0xFE_00 && codePoint <= 0xFE_0F) {\n\t\t\tcontinue;\n\t\t}\n\n\t\t// This covers some of the above cases, but we still keep them for performance reasons.\n\t\tif (defaultIgnorableCodePointRegex.test(character)) {\n\t\t\tcontinue;\n\t\t}\n\n\t\t// TODO: Use `/\\p{RGI_Emoji}/v` when targeting Node.js 20.\n\t\tif (emojiRegex().test(character)) {\n\t\t\twidth += 2;\n\t\t\tcontinue;\n\t\t}\n\n\t\twidth += eastAsianWidth(codePoint, eastAsianWidthOptions);\n\t}\n\n\treturn width;\n}\n",
20
+ "export default function isInteractive({stream = process.stdout} = {}) {\n\treturn Boolean(\n\t\tstream && stream.isTTY &&\n\t\tprocess.env.TERM !== 'dumb' &&\n\t\t!('CI' in process.env)\n\t);\n}\n",
21
+ "import process from 'node:process';\n\nexport default function isUnicodeSupported() {\n\tconst {env} = process;\n\tconst {TERM, TERM_PROGRAM} = env;\n\n\tif (process.platform !== 'win32') {\n\t\treturn TERM !== 'linux'; // Linux console (kernel)\n\t}\n\n\treturn Boolean(env.WT_SESSION) // Windows Terminal\n\t\t|| Boolean(env.TERMINUS_SUBLIME) // Terminus (<0.2.27)\n\t\t|| env.ConEmuTask === '{cmd::Cmder}' // ConEmu and cmder\n\t\t|| TERM_PROGRAM === 'Terminus-Sublime'\n\t\t|| TERM_PROGRAM === 'vscode'\n\t\t|| TERM === 'xterm-256color'\n\t\t|| TERM === 'alacritty'\n\t\t|| TERM === 'rxvt-unicode'\n\t\t|| TERM === 'rxvt-unicode-256color'\n\t\t|| env.TERMINAL_EMULATOR === 'JetBrains-JediTerm';\n}\n",
22
+ "import process from 'node:process';\n\nconst ASCII_ETX_CODE = 0x03; // Ctrl+C emits this code\n\nclass StdinDiscarder {\n\t#activeCount = 0;\n\n\tstart() {\n\t\tthis.#activeCount++;\n\n\t\tif (this.#activeCount === 1) {\n\t\t\tthis.#realStart();\n\t\t}\n\t}\n\n\tstop() {\n\t\tif (this.#activeCount <= 0) {\n\t\t\tthrow new Error('`stop` called more times than `start`');\n\t\t}\n\n\t\tthis.#activeCount--;\n\n\t\tif (this.#activeCount === 0) {\n\t\t\tthis.#realStop();\n\t\t}\n\t}\n\n\t#realStart() {\n\t\t// No known way to make it work reliably on Windows.\n\t\tif (process.platform === 'win32' || !process.stdin.isTTY) {\n\t\t\treturn;\n\t\t}\n\n\t\tprocess.stdin.setRawMode(true);\n\t\tprocess.stdin.on('data', this.#handleInput);\n\t\tprocess.stdin.resume();\n\t}\n\n\t#realStop() {\n\t\tif (!process.stdin.isTTY) {\n\t\t\treturn;\n\t\t}\n\n\t\tprocess.stdin.off('data', this.#handleInput);\n\t\tprocess.stdin.pause();\n\t\tprocess.stdin.setRawMode(false);\n\t}\n\n\t#handleInput(chunk) {\n\t\t// Allow Ctrl+C to gracefully exit.\n\t\tif (chunk[0] === ASCII_ETX_CODE) {\n\t\t\tprocess.emit('SIGINT');\n\t\t}\n\t}\n}\n\nconst stdinDiscarder = new StdinDiscarder();\n\nexport default stdinDiscarder;\n",
23
+ "import ora, { type Ora } from 'ora';\nimport { icons } from './theme.js';\n\n/**\n * Wrapper for ora spinner with consistent styling\n */\nexport class Spinner {\n private spinner: Ora | null = null;\n\n start(message: string): void {\n this.spinner = ora({\n text: message,\n color: 'blue',\n spinner: 'dots',\n }).start();\n }\n\n succeed(message: string): void {\n if (this.spinner) {\n this.spinner.succeed(message);\n this.spinner = null;\n }\n }\n\n fail(message: string): void {\n if (this.spinner) {\n this.spinner.fail(message);\n this.spinner = null;\n }\n }\n\n stop(): void {\n if (this.spinner) {\n this.spinner.stop();\n this.spinner = null;\n }\n }\n}\n\nexport function createSpinner(): Spinner {\n return new Spinner();\n}\n"
24
+ ],
25
+ "mappings": "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",
26
+ "debugId": "909DF21B544BDC2A64756E2164756E21",
27
+ "names": []
28
+ }
@@ -0,0 +1,256 @@
1
+ import {
2
+ require_lib
3
+ } from "./chunk-7vdj1qwb.js";
4
+ import {
5
+ theme
6
+ } from "./chunk-kbtqrkwh.js";
7
+ import"./chunk-3sfn889r.js";
8
+ import {
9
+ __require,
10
+ __toESM
11
+ } from "./chunk-9wyra8hs.js";
12
+
13
+ // src/commands/snapshot/handler.ts
14
+ var import_fs_extra = __toESM(require_lib(), 1);
15
+
16
+ // src/framework/MockUI.ts
17
+ class MockUI {
18
+ data;
19
+ constructor(data) {
20
+ this.data = data;
21
+ }
22
+ async promptMcpClient() {
23
+ if (!this.data.mcpClient) {
24
+ throw new Error("MockUI: Missing data for mcpClient");
25
+ }
26
+ return this.data.mcpClient;
27
+ }
28
+ async promptAuthMode() {
29
+ if (!this.data.authMode) {
30
+ throw new Error("MockUI: Missing data for authMode");
31
+ }
32
+ return this.data.authMode;
33
+ }
34
+ async promptTransportType(authMode) {
35
+ if (this.data.transportType) {
36
+ return this.data.transportType;
37
+ }
38
+ throw new Error("MockUI: Missing data for transportType");
39
+ }
40
+ async promptApiKeyStorage() {
41
+ if (!this.data.apiKeyStorage) {
42
+ throw new Error("MockUI: Missing data for apiKeyStorage");
43
+ }
44
+ return this.data.apiKeyStorage;
45
+ }
46
+ async promptApiKey() {
47
+ if (!this.data.apiKey) {
48
+ throw new Error("MockUI: Missing data for apiKey");
49
+ }
50
+ return this.data.apiKey;
51
+ }
52
+ async promptConfirm(message, defaultYes) {
53
+ if (typeof this.data.confirm === "boolean") {
54
+ return this.data.confirm;
55
+ }
56
+ return defaultYes ?? false;
57
+ }
58
+ log(message) {
59
+ console.log(message);
60
+ }
61
+ warn(message) {
62
+ console.log(`WARN: ${message}`);
63
+ }
64
+ error(message) {
65
+ console.error(`ERROR: ${message}`);
66
+ }
67
+ success(message) {
68
+ console.log(`SUCCESS: ${message}`);
69
+ }
70
+ }
71
+
72
+ // src/commands/snapshot/handler.ts
73
+ var SCHEMAS = {
74
+ init: {
75
+ description: "Data schema for 'init' command",
76
+ type: "object",
77
+ properties: {
78
+ mcpClient: { type: "string", enum: ["vscode", "cursor", "claude-code", "gemini-cli", "codex", "opencode"] },
79
+ authMode: { type: "string", enum: ["apiKey", "oauth"] },
80
+ transportType: { type: "string", enum: ["http", "stdio"] },
81
+ apiKeyStorage: { type: "string", enum: ["config", "skip", ".env"] },
82
+ apiKey: { type: "string" },
83
+ confirm: { type: "boolean" },
84
+ inputArgs: {
85
+ type: "object",
86
+ description: "Arguments to pass to the command execution",
87
+ properties: {
88
+ local: { type: "boolean" },
89
+ defaults: { type: "boolean" },
90
+ autoVerify: { type: "boolean" },
91
+ client: { type: "string" },
92
+ transport: { type: "string" }
93
+ }
94
+ }
95
+ },
96
+ required: ["mcpClient", "authMode"]
97
+ },
98
+ doctor: {
99
+ description: "Data schema for 'doctor' command",
100
+ type: "object",
101
+ properties: {
102
+ confirm: { type: "boolean" },
103
+ inputArgs: {
104
+ type: "object",
105
+ description: "Arguments to pass to the command execution",
106
+ properties: {
107
+ verbose: { type: "boolean" }
108
+ }
109
+ }
110
+ }
111
+ },
112
+ site: {
113
+ description: "Data schema for 'site' command",
114
+ type: "object",
115
+ properties: {
116
+ screens: {
117
+ type: "array",
118
+ items: {
119
+ type: "object",
120
+ properties: {
121
+ id: { type: "string" },
122
+ title: { type: "string" },
123
+ description: { type: "string" },
124
+ type: { type: "string" },
125
+ content: { type: "string" }
126
+ }
127
+ }
128
+ },
129
+ inputArgs: {
130
+ type: "object",
131
+ properties: {
132
+ projectId: { type: "string" },
133
+ outputDir: { type: "string" }
134
+ }
135
+ }
136
+ }
137
+ }
138
+ };
139
+
140
+ class SnapshotHandler {
141
+ services;
142
+ constructor(services) {
143
+ this.services = services;
144
+ }
145
+ async execute(input) {
146
+ if (input.schema) {
147
+ if (input.command) {
148
+ const schema = SCHEMAS[input.command];
149
+ if (!schema) {
150
+ return {
151
+ success: false,
152
+ error: { message: `No schema found for command '${input.command}'` }
153
+ };
154
+ }
155
+ console.log(JSON.stringify(schema, null, 2));
156
+ } else {
157
+ console.log(JSON.stringify(Object.keys(SCHEMAS), null, 2));
158
+ }
159
+ return { success: true };
160
+ }
161
+ if (!input.command) {
162
+ return { success: false, error: { message: "Command (-c) is required unless using -s" } };
163
+ }
164
+ if (!input.data) {
165
+ return { success: false, error: { message: "Data file (-d) is required unless using -s" } };
166
+ }
167
+ let data;
168
+ try {
169
+ if (await import_fs_extra.default.pathExists(input.data)) {
170
+ data = await import_fs_extra.default.readJson(input.data);
171
+ } else {
172
+ try {
173
+ data = JSON.parse(input.data);
174
+ } catch {
175
+ return { success: false, error: { message: `Data file not found at '${input.data}' and content is not valid JSON` } };
176
+ }
177
+ }
178
+ } catch (e) {
179
+ return { success: false, error: { message: `Failed to read data: ${e instanceof Error ? e.message : String(e)}` } };
180
+ }
181
+ const mockUI = new MockUI(data);
182
+ try {
183
+ switch (input.command) {
184
+ case "init": {
185
+ const { InitHandler } = await import("./chunk-rd2ye9s7.js");
186
+ const handler = new InitHandler(this.services?.gcloud, this.services?.mcpConfig, this.services?.project, this.services?.stitch, mockUI);
187
+ const initInput = {
188
+ local: false,
189
+ defaults: false,
190
+ autoVerify: true,
191
+ ...data.inputArgs
192
+ };
193
+ const result = await handler.execute(initInput);
194
+ if (!result.success) {
195
+ console.error("Init failed:", result.error);
196
+ }
197
+ break;
198
+ }
199
+ case "doctor": {
200
+ const { DoctorHandler } = await import("./chunk-ewab4gg0.js");
201
+ const handler = new DoctorHandler(this.services?.gcloud, this.services?.stitch, mockUI);
202
+ const doctorInput = {
203
+ verbose: false,
204
+ ...data.inputArgs
205
+ };
206
+ const result = await handler.execute(doctorInput);
207
+ if (!result.success) {
208
+ console.error("Doctor failed:", result.error);
209
+ }
210
+ break;
211
+ }
212
+ case "site": {
213
+ const { SiteBuilder } = await import("./chunk-4xa2a5hb.js");
214
+ const { createMockStitch, createMockProject, createMockScreen } = await import("./chunk-98trrxk2.js");
215
+ const mockScreens = (data.screens || []).map((s) => createMockScreen({
216
+ screenId: s.name,
217
+ title: s.title,
218
+ getHtml: () => Promise.resolve(s.htmlCode?.downloadUrl || null)
219
+ }));
220
+ const mockClient = createMockStitch(createMockProject(data.inputArgs?.projectId || "mock-project", mockScreens));
221
+ try {
222
+ const { render } = await import("./chunk-cjkw69md.js");
223
+ const React = await import("./chunk-94xqpnv4.js");
224
+ const projectId = data.inputArgs?.projectId || "mock-project";
225
+ const { lastFrame, unmount } = render(React.createElement(SiteBuilder, {
226
+ projectId,
227
+ client: mockClient,
228
+ onExit: () => {}
229
+ }));
230
+ await new Promise((resolve) => setTimeout(resolve, 1000));
231
+ console.log(lastFrame());
232
+ unmount();
233
+ } catch (e) {
234
+ if (e.code === "ERR_MODULE_NOT_FOUND") {
235
+ console.warn(theme.yellow("ink-testing-library not found. Install dev dependencies to snapshot site command."));
236
+ } else {
237
+ throw e;
238
+ }
239
+ }
240
+ break;
241
+ }
242
+ default:
243
+ return { success: false, error: { message: `Unsupported command '${input.command}'` } };
244
+ }
245
+ } catch (error) {
246
+ console.error(theme.red("Command execution failed:"), error);
247
+ return { success: true };
248
+ }
249
+ return { success: true };
250
+ }
251
+ }
252
+ export {
253
+ SnapshotHandler
254
+ };
255
+
256
+ //# debugId=F78CBF4C733E0A4464756E2164756E21
@@ -0,0 +1,11 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../src/commands/snapshot/handler.ts", "../src/framework/MockUI.ts"],
4
+ "sourcesContent": [
5
+ "import fs from 'fs-extra';\nimport { type SnapshotCommand, type SnapshotInput, type SnapshotResult } from './spec.js';\nimport { MockUI } from '../../framework/MockUI.js';\nimport { theme } from '../../ui/theme.js';\nimport { type GcloudService } from '../../services/gcloud/spec.js';\nimport { type StitchService } from '../../services/stitch/spec.js';\nimport { type McpConfigService } from '../../services/mcp-config/spec.js';\nimport { type ProjectService } from '../../services/project/spec.js';\n\ninterface SnapshotServices {\n gcloud?: GcloudService;\n stitch?: StitchService;\n mcpConfig?: McpConfigService;\n project?: ProjectService;\n}\n\n// Schemas for the commands to be printed with -s\nconst SCHEMAS: Record<string, any> = {\n init: {\n description: \"Data schema for 'init' command\",\n type: \"object\",\n properties: {\n mcpClient: { type: \"string\", enum: [\"vscode\", \"cursor\", \"claude-code\", \"gemini-cli\", \"codex\", \"opencode\"] },\n authMode: { type: \"string\", enum: [\"apiKey\", \"oauth\"] },\n transportType: { type: \"string\", enum: [\"http\", \"stdio\"] },\n apiKeyStorage: { type: \"string\", enum: [\"config\", \"skip\", \".env\"] },\n apiKey: { type: \"string\" },\n confirm: { type: \"boolean\" },\n inputArgs: {\n type: \"object\",\n description: \"Arguments to pass to the command execution\",\n properties: {\n local: { type: \"boolean\" },\n defaults: { type: \"boolean\" },\n autoVerify: { type: \"boolean\" },\n client: { type: \"string\" },\n transport: { type: \"string\" }\n }\n }\n },\n required: [\"mcpClient\", \"authMode\"]\n },\n doctor: {\n description: \"Data schema for 'doctor' command\",\n type: \"object\",\n properties: {\n confirm: { type: \"boolean\" },\n inputArgs: {\n type: \"object\",\n description: \"Arguments to pass to the command execution\",\n properties: {\n verbose: { type: \"boolean\" }\n }\n }\n }\n },\n site: {\n description: \"Data schema for 'site' command\",\n type: \"object\",\n properties: {\n screens: {\n type: \"array\",\n items: {\n type: \"object\",\n properties: {\n id: { type: \"string\" },\n title: { type: \"string\" },\n description: { type: \"string\" },\n type: { type: \"string\" },\n content: { type: \"string\" }\n }\n }\n },\n inputArgs: {\n type: \"object\",\n properties: {\n projectId: { type: \"string\" },\n outputDir: { type: \"string\" }\n }\n }\n }\n }\n};\n\nexport class SnapshotHandler implements SnapshotCommand {\n constructor(private readonly services?: SnapshotServices) {}\n\n async execute(input: SnapshotInput): Promise<SnapshotResult> {\n if (input.schema) {\n if (input.command) {\n const schema = SCHEMAS[input.command];\n if (!schema) {\n return {\n success: false,\n error: { message: `No schema found for command '${input.command}'` }\n };\n }\n console.log(JSON.stringify(schema, null, 2));\n } else {\n console.log(JSON.stringify(Object.keys(SCHEMAS), null, 2));\n }\n return { success: true };\n }\n\n if (!input.command) {\n return { success: false, error: { message: \"Command (-c) is required unless using -s\" } };\n }\n if (!input.data) {\n return { success: false, error: { message: \"Data file (-d) is required unless using -s\" } };\n }\n\n // Load data\n let data: any;\n try {\n if (await fs.pathExists(input.data)) {\n data = await fs.readJson(input.data);\n } else {\n // Try parsing as JSON string\n try {\n data = JSON.parse(input.data);\n } catch {\n return { success: false, error: { message: `Data file not found at '${input.data}' and content is not valid JSON` } };\n }\n }\n } catch (e) {\n return { success: false, error: { message: `Failed to read data: ${e instanceof Error ? e.message : String(e)}` } };\n }\n\n const mockUI = new MockUI(data);\n\n try {\n switch (input.command) {\n case 'init': {\n const { InitHandler } = await import('../init/handler.js');\n const handler = new InitHandler(\n this.services?.gcloud,\n this.services?.mcpConfig,\n this.services?.project,\n this.services?.stitch,\n mockUI\n );\n const initInput = {\n local: false,\n defaults: false,\n autoVerify: true,\n ...data.inputArgs\n };\n const result = await handler.execute(initInput);\n if (!result.success) {\n console.error('Init failed:', result.error);\n }\n break;\n }\n case 'doctor': {\n const { DoctorHandler } = await import('../doctor/handler.js');\n const handler = new DoctorHandler(\n this.services?.gcloud,\n this.services?.stitch,\n mockUI\n );\n const doctorInput = {\n verbose: false,\n ...data.inputArgs\n };\n const result = await handler.execute(doctorInput);\n if (!result.success) {\n console.error('Doctor failed:', result.error);\n }\n break;\n }\n case 'site': {\n const { SiteBuilder } = await import('../site/ui/SiteBuilder.js');\n const { createMockStitch, createMockProject, createMockScreen } = await import('../../services/stitch-sdk/MockStitchSDK.js');\n\n const mockScreens = (data.screens || []).map((s: any) => createMockScreen({\n screenId: s.name,\n title: s.title,\n getHtml: (() => Promise.resolve(s.htmlCode?.downloadUrl || null)) as any,\n }));\n const mockClient = createMockStitch(createMockProject(data.inputArgs?.projectId || 'mock-project', mockScreens));\n\n // Use ink-testing-library to render and snapshot the UI\n try {\n // We use require to avoid type checking issues if it's not installed in prod build env,\n // although this command is a dev tool.\n const { render } = await import('ink-testing-library');\n const React = await import('react');\n\n const projectId = data.inputArgs?.projectId || 'mock-project';\n\n const { lastFrame, unmount } = render(\n React.createElement(SiteBuilder, {\n projectId,\n client: mockClient,\n onExit: () => {}\n })\n );\n\n // Wait for async operations (loading screens)\n // Simple delay for now, or check frame content until \"Loading\" is gone\n // Since we can't easily wait for a specific state without more complex logic,\n // let's try a short delay to allow useEffect to run.\n await new Promise(resolve => setTimeout(resolve, 1000));\n\n console.log(lastFrame());\n unmount();\n } catch (e) {\n if ((e as any).code === 'ERR_MODULE_NOT_FOUND') {\n console.warn(theme.yellow('ink-testing-library not found. Install dev dependencies to snapshot site command.'));\n } else {\n throw e;\n }\n }\n break;\n }\n default:\n return { success: false, error: { message: `Unsupported command '${input.command}'` } };\n }\n } catch (error) {\n console.error(theme.red('Command execution failed:'), error);\n // Return success: true because the snapshotting process ran, even if the command failed.\n // The error is part of the snapshot.\n return { success: true };\n }\n\n return { success: true };\n }\n}\n",
6
+ "import { type UserInterface } from './UserInterface.js';\nimport type { McpClient } from '../ui/wizard.js';\n\nexport class MockUI implements UserInterface {\n constructor(private readonly data: Record<string, any>) {}\n\n async promptMcpClient(): Promise<McpClient> {\n if (!this.data.mcpClient) {\n throw new Error('MockUI: Missing data for mcpClient');\n }\n return this.data.mcpClient;\n }\n\n async promptAuthMode(): Promise<'apiKey' | 'oauth'> {\n if (!this.data.authMode) {\n throw new Error('MockUI: Missing data for authMode');\n }\n return this.data.authMode;\n }\n\n async promptTransportType(authMode?: 'apiKey' | 'oauth'): Promise<'http' | 'stdio'> {\n if (this.data.transportType) {\n return this.data.transportType;\n }\n throw new Error('MockUI: Missing data for transportType');\n }\n\n async promptApiKeyStorage(): Promise<'config' | 'skip' | '.env'> {\n if (!this.data.apiKeyStorage) {\n throw new Error('MockUI: Missing data for apiKeyStorage');\n }\n return this.data.apiKeyStorage;\n }\n\n async promptApiKey(): Promise<string> {\n if (!this.data.apiKey) {\n throw new Error('MockUI: Missing data for apiKey');\n }\n return this.data.apiKey;\n }\n\n async promptConfirm(message: string, defaultYes?: boolean): Promise<boolean> {\n if (typeof this.data.confirm === 'boolean') {\n return this.data.confirm;\n }\n // If specific confirm keys are provided in data, could use that too.\n // For now, default to defaultYes or false.\n return defaultYes ?? false;\n }\n\n log(message: string): void {\n console.log(message);\n }\n\n warn(message: string): void {\n console.log(`WARN: ${message}`);\n }\n\n error(message: string): void {\n console.error(`ERROR: ${message}`);\n }\n\n success(message: string): void {\n console.log(`SUCCESS: ${message}`);\n }\n}\n"
7
+ ],
8
+ "mappings": "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",
9
+ "debugId": "F78CBF4C733E0A4464756E2164756E21",
10
+ "names": []
11
+ }