@decocms/mesh 2.41.0 → 2.43.0

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 (135) hide show
  1. package/dist/client/assets/{AlertCircle-BOa8vsZh.js → AlertCircle-C1oaexcn.js} +1 -1
  2. package/dist/client/assets/{ArrowLeft-CDMQvsql.js → ArrowLeft-B1SBiQVA.js} +1 -1
  3. package/dist/client/assets/{ArrowUp-DCo2AMki.js → ArrowUp-BvlJhwmz.js} +1 -1
  4. package/dist/client/assets/{Check-q1lpKYa1.js → Check-DImC9hlR.js} +1 -1
  5. package/dist/client/assets/{ChevronDown-Co8pj6pr.js → ChevronDown-CJiuDn-R.js} +1 -1
  6. package/dist/client/assets/{Code01-aDUT075R.js → Code01-C3PLJdIe.js} +1 -1
  7. package/dist/client/assets/{Copy01-BkRH-0BC.js → Copy01-CJVQGg2V.js} +1 -1
  8. package/dist/client/assets/{CpuChip02-DwIcy3NO.js → CpuChip02-CvTMaFgN.js} +1 -1
  9. package/dist/client/assets/{DotsHorizontal-DXKuj9II.js → DotsHorizontal-BQhkzfkG.js} +1 -1
  10. package/dist/client/assets/{DotsVertical-DVPX9sag.js → DotsVertical-RAbtNrG6.js} +1 -1
  11. package/dist/client/assets/{Download01-BanMSF0U.js → Download01-DJRyuQwN.js} +1 -1
  12. package/dist/client/assets/{Edit01-BiPtocOQ.js → Edit01-DsrgmMbR.js} +1 -1
  13. package/dist/client/assets/{File06-Bs1zUbfJ.js → File06-DdyNkMaH.js} +1 -1
  14. package/dist/client/assets/{FilterLines-B2KdFNOg.js → FilterLines-DudXubI6.js} +1 -1
  15. package/dist/client/assets/{FlipBackward-HZAH0Q-_.js → FlipBackward-BT14MhEV.js} +1 -1
  16. package/dist/client/assets/{GitBranch01-yDC_Ho1l.js → GitBranch01-DMdTTGPv.js} +1 -1
  17. package/dist/client/assets/{Grid01-BAocuS88.js → Grid01-F6FBpTXb.js} +1 -1
  18. package/dist/client/assets/{Home02-CBF3-nzf.js → Home02-CXLfj9Lm.js} +1 -1
  19. package/dist/client/assets/{Image01-65pEr48I.js → Image01-CGATMxv1.js} +1 -1
  20. package/dist/client/assets/{Inbox01-BwD7PmH7.js → Inbox01-BExxQniM.js} +1 -1
  21. package/dist/client/assets/{InfoCircle-BDw1rT6g.js → InfoCircle-BwBXEQXi.js} +1 -1
  22. package/dist/client/assets/{Key01-qJ854WwS.js → Key01-BPqaf5vy.js} +1 -1
  23. package/dist/client/assets/{LinkExternal01-dkMElY_E.js → LinkExternal01-CxomLdJd.js} +1 -1
  24. package/dist/client/assets/{List-CCKoNJ66.js → List-taDOKmLS.js} +1 -1
  25. package/dist/client/assets/{Loading01-CKKp6cbv.js → Loading01-C5WNj1RN.js} +1 -1
  26. package/dist/client/assets/{Lock01-XFphy8Df.js → Lock01-Di-2F0aX.js} +1 -1
  27. package/dist/client/assets/{Play-CJ4A3hiv.js → Play-CrFW3Xap.js} +1 -1
  28. package/dist/client/assets/{Plus-LQ4IWuyR.js → Plus-Rzuz08cb.js} +1 -1
  29. package/dist/client/assets/{SearchMd-Bh63di7T.js → SearchMd-CQBqMKg_.js} +1 -1
  30. package/dist/client/assets/{Terminal-N2rxjLda.js → Terminal-kk64xKO9.js} +1 -1
  31. package/dist/client/assets/{Trash01-V-BN70LF.js → Trash01-NIFttcxe.js} +1 -1
  32. package/dist/client/assets/{Upload01-_hIqsrRo.js → Upload01-DN0UV10S.js} +1 -1
  33. package/dist/client/assets/{X-CUmjVenV.js → X-DmFAeozb.js} +1 -1
  34. package/dist/client/assets/{XClose-Be1fwKR-.js → XClose-CbwF-zr_.js} +1 -1
  35. package/dist/client/assets/{agent-detail-DglT7YDp.js → agent-detail-COGqHNUz.js} +1 -1
  36. package/dist/client/assets/{agents-BGWtrCLi.js → agents-B3iPqEqm.js} +1 -1
  37. package/dist/client/assets/{alert-dialog-rbRMb372.js → alert-dialog-nojSsjex.js} +1 -1
  38. package/dist/client/assets/{auth-catchall-Dh6G-wkO.js → auth-catchall-C_OoShX7.js} +1 -1
  39. package/dist/client/assets/{avatar-Di5-qvoB.js → avatar-HSzeBtSD.js} +1 -1
  40. package/dist/client/assets/{badge-DcOlmFf0.js → badge-D7yW7Ams.js} +1 -1
  41. package/dist/client/assets/{binder-DDwc-czk.js → binder-BvGWgf0j.js} +1 -1
  42. package/dist/client/assets/{button-r4jchKkL.js → button-B9UDEwx9.js} +1 -1
  43. package/dist/client/assets/{card-edP2c19Y.js → card-D-ZcDLJM.js} +1 -1
  44. package/dist/client/assets/{checkbox-CQfcMt0D.js → checkbox-DmHZ3Xhg.js} +1 -1
  45. package/dist/client/assets/{circle-alert-XiIjE_Mt.js → circle-alert-CsGRs6FI.js} +1 -1
  46. package/dist/client/assets/{collection-detail-DiqkxzOs.js → collection-detail-Cmda52TC.js} +1 -1
  47. package/dist/client/assets/{collection-display-button-Bm_lpgw0.js → collection-display-button-BAinwubP.js} +1 -1
  48. package/dist/client/assets/{collection-header-Hl9H9WXY.js → collection-header-d_96L4kd.js} +1 -1
  49. package/dist/client/assets/{collection-page-eWL_sPWj.js → collection-page-BuBCnaqK.js} +1 -1
  50. package/dist/client/assets/{collection-search-E-cs4TKG.js → collection-search-Cp9Rg8cG.js} +1 -1
  51. package/dist/client/assets/{collection-tab-CPjPraim.js → collection-tab-DGpjXcu1.js} +1 -1
  52. package/dist/client/assets/{collection-table-wrapper-CTC7SkGl.js → collection-table-wrapper-Cfb-5BQo.js} +1 -1
  53. package/dist/client/assets/{connect-CUH-HVLk.js → connect-ChWwgYE3.js} +1 -1
  54. package/dist/client/assets/{connection-card-BMBB1XB3.js → connection-card-DSC3U6N-.js} +1 -1
  55. package/dist/client/assets/{connection-detail-C1Ujc7h3.js → connection-detail-D9V3bixZ.js} +1 -1
  56. package/dist/client/assets/{connections-DNzCtBst.js → connections-3QeHd0Af.js} +1 -1
  57. package/dist/client/assets/constants-C8DVLjyM.js +1 -0
  58. package/dist/client/assets/constants-CuO4IXOK.js +1 -0
  59. package/dist/client/assets/{create-organization-dialog-CQWXjIjL.js → create-organization-dialog-JxPXU7zP.js} +1 -1
  60. package/dist/client/assets/{dialog-B7wPllZ4.js → dialog-DUXNadw5.js} +1 -1
  61. package/dist/client/assets/{dropdown-menu-B1DppP3v.js → dropdown-menu-5V-XyUMl.js} +1 -1
  62. package/dist/client/assets/{dynamic-plugin-layout-B20nxv9n.js → dynamic-plugin-layout-Ba9BM3q2.js} +1 -1
  63. package/dist/client/assets/{empty-state-CD04Ydwf.js → empty-state-Ba4zQn5e.js} +1 -1
  64. package/dist/client/assets/{empty-state-CvRIcmH6.js → empty-state-D6Pye5dp.js} +1 -1
  65. package/dist/client/assets/{env-vars-editor-BxcXKWOT.js → env-vars-editor-BKG_L2uV.js} +1 -1
  66. package/dist/client/assets/{error-boundary-BVUjGITf.js → error-boundary-BYKWfLka.js} +1 -1
  67. package/dist/client/assets/{extract-connection-data-CW38_qJd.js → extract-connection-data-CDfHtG_N.js} +1 -1
  68. package/dist/client/assets/{file-browser-1hOfBN62.js → file-browser-D32InLNO.js} +2 -2
  69. package/dist/client/assets/{form-CgKLkP_b.js → form-DufpJhV9.js} +1 -1
  70. package/dist/client/assets/{grid-view-MvcSke9A.js → grid-view-CnSMlDZ4.js} +1 -1
  71. package/dist/client/assets/{home-BG57TiPK.js → home-MusYVBVC.js} +1 -1
  72. package/dist/client/assets/{index-uZ-aAbp2.js → index-BJd9JH52.js} +1 -1
  73. package/dist/client/assets/{index-CC-p2JIF.js → index-CNdaxvBl.js} +1 -1
  74. package/dist/client/assets/{index-CadkF3bd.js → index-CVzDWVip.js} +1 -1
  75. package/dist/client/assets/{index-C7XOW6LD.js → index-fVdZwXbQ.js} +1 -1
  76. package/dist/client/assets/{index-BifvkcqC.js → index-g9oC-3mV.js} +74 -74
  77. package/dist/client/assets/{index-CsMcCDhL.js → index-kxFCfKdx.js} +2 -2
  78. package/dist/client/assets/{infiniteQueryObserver-DGa1FeuM.js → infiniteQueryObserver-Q9Ch1SlH.js} +1 -1
  79. package/dist/client/assets/{input-CPirnY8u.js → input-CJuUYj5Y.js} +1 -1
  80. package/dist/client/assets/{layout-3BQ1rqCn.js → layout-BdEZp7Lm.js} +1 -1
  81. package/dist/client/assets/{localstorage-keys-uD_z-tyf.js → localstorage-keys-DuVpM8xt.js} +1 -1
  82. package/dist/client/assets/{login-YicDh7Hd.js → login-Baj4wuxy.js} +1 -1
  83. package/dist/client/assets/mcp-oauth-BCtnFmpv.js +1 -0
  84. package/dist/client/assets/{mcp-server-card-Dy2LgE0B.js → mcp-server-card-DaxbgdWa.js} +1 -1
  85. package/dist/client/assets/{mcp-server-detail-C4tr6Iu3.js → mcp-server-detail-C4n2ElKE.js} +2 -2
  86. package/dist/client/assets/{members-CU5yuzVv.js → members-C-QMSOdo.js} +1 -1
  87. package/dist/client/assets/{monaco-editor-CbBfNMoe.js → monaco-editor-1VMfvFaT.js} +1 -1
  88. package/dist/client/assets/{monitoring-BGZKk_Bb.js → monitoring-CyqwraZN.js} +1 -1
  89. package/dist/client/assets/{oauth-callback-C_dg-yXP.js → oauth-callback-UvAveY4Q.js} +1 -1
  90. package/dist/client/assets/{page-DJmVJ_mt.js → page-IMRDmGp_.js} +1 -1
  91. package/dist/client/assets/{page-DDQDVv0h.js → page-o9rm9dBG.js} +1 -1
  92. package/dist/client/assets/{pin-to-sidebar-button-cc4H1t0T.js → pin-to-sidebar-button-DKtGxFhi.js} +1 -1
  93. package/dist/client/assets/{plugin-empty-state-BdDH8bkm.js → plugin-empty-state-DqfmD7Lv.js} +1 -1
  94. package/dist/client/assets/{plugin-header-CfKIVlkj.js → plugin-header-BfXGZdm2.js} +1 -1
  95. package/dist/client/assets/{plugins-D3aykW-b.js → plugins-B-FlFz3o.js} +1 -1
  96. package/dist/client/assets/{popover-Bf2s3zPo.js → popover-IWCGO-jB.js} +1 -1
  97. package/dist/client/assets/{registry-utils-CfLiO1om.js → registry-utils-9nMczNLD.js} +1 -1
  98. package/dist/client/assets/{resizable-DWdCGNEM.js → resizable-oTpquxsO.js} +1 -1
  99. package/dist/client/assets/{resource-tabs-CNnyCF1i.js → resource-tabs-DNjaGx4N.js} +1 -1
  100. package/dist/client/assets/{select-BtmgNEc1.js → select-6QIp3PPA.js} +1 -1
  101. package/dist/client/assets/{settings-_Ir3oZ6y.js → settings-DmEN7q-R.js} +1 -1
  102. package/dist/client/assets/{shell-layout-edWfQVFN.js → shell-layout-f9QetI-r.js} +2 -2
  103. package/dist/client/assets/{spinner-ByfoT_ki.js → spinner-CHfAw4LE.js} +1 -1
  104. package/dist/client/assets/{switch-CO0WvHUA.js → switch-B8GiDtx0.js} +1 -1
  105. package/dist/client/assets/{textarea-BhdgD_h6.js → textarea-CO4qLNDj.js} +1 -1
  106. package/dist/client/assets/{tool-set-selector-N4rWe4X6.js → tool-set-selector-uL1FTDsj.js} +1 -1
  107. package/dist/client/assets/{tools-list-CdfRWLm5.js → tools-list-BE1mq5Cn.js} +1 -1
  108. package/dist/client/assets/{tooltip-BD-Bmy15.js → tooltip-DPmy6Yc4.js} +1 -1
  109. package/dist/client/assets/{typewriter-title-CAaFSQ5o.js → typewriter-title-D2-DYqDP.js} +1 -1
  110. package/dist/client/assets/{use-binding-CrloTgbm.js → use-binding-Bpukv3gt.js} +1 -1
  111. package/dist/client/assets/{use-collections-4aYW928m.js → use-collections-DWOZCISS.js} +1 -1
  112. package/dist/client/assets/{use-connection-DAEdMWMy.js → use-connection-ASBc3U14.js} +1 -1
  113. package/dist/client/assets/{use-create-virtual-mcp-B6zipxB7.js → use-create-virtual-mcp-DlrAoyaQ.js} +1 -1
  114. package/dist/client/assets/{use-list-state-gcbkerco.js → use-list-state-ZDRP3zFW.js} +1 -1
  115. package/dist/client/assets/{use-mcp-prompts-Cqx5lnP8.js → use-mcp-prompts-DXLHacDq.js} +1 -1
  116. package/dist/client/assets/{use-members-BGLpR7cv.js → use-members-CTEqdwIL.js} +1 -1
  117. package/dist/client/assets/{use-mobile-DxDTfbc3.js → use-mobile-BuEGyUe0.js} +1 -1
  118. package/dist/client/assets/{use-organization-settings-NoQXsvmA.js → use-organization-settings-hA9VwO-v.js} +1 -1
  119. package/dist/client/assets/{use-virtual-mcp-CVeqyMe_.js → use-virtual-mcp-BR9Cj6JE.js} +1 -1
  120. package/dist/client/assets/useInfiniteQuery-CnqRaniP.js +1 -0
  121. package/dist/client/assets/{useMutation-Dut9WhUN.js → useMutation-ClL17OKX.js} +1 -1
  122. package/dist/client/assets/useQuery-CVADJf0h.js +1 -0
  123. package/dist/client/assets/{value-BUZeHQHO.js → value-CzHdinJY.js} +1 -1
  124. package/dist/client/assets/{view-mode-toggle-xY1HL7Ay.js → view-mode-toggle-B5HElat6.js} +1 -1
  125. package/dist/client/assets/{workflow-Dv6VSjwi.js → workflow-Lt3GFUiP.js} +1 -1
  126. package/dist/client/index.html +1 -1
  127. package/dist/server/cli.js +148 -148
  128. package/dist/server/migrate.js +130 -130
  129. package/dist/server/server.js +119 -119
  130. package/package.json +1 -1
  131. package/dist/client/assets/constants-Bte_M-g-.js +0 -1
  132. package/dist/client/assets/constants-qfhQaIJZ.js +0 -1
  133. package/dist/client/assets/mcp-oauth-BxiEaY1l.js +0 -1
  134. package/dist/client/assets/useInfiniteQuery-BY-Kkwk8.js +0 -1
  135. package/dist/client/assets/useQuery-DLdv_D_b.js +0 -1
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@decocms/mesh",
3
- "version": "2.41.0",
3
+ "version": "2.43.0",
4
4
  "description": "MCP Mesh - Self-hostable MCP Gateway for managing AI connections and tools",
5
5
  "author": "Deco team",
6
6
  "license": "MIT",
@@ -1 +0,0 @@
1
- import{be as u,c as m,l as d,bf as g}from"./index-CsMcCDhL.js";const l={authConfig:()=>["authConfig"],threads:e=>["threads",e],virtualMcpThreads:(e,t)=>["threads",e,"virtual-mcp",t],thread:(e,t)=>["thread",e,t],threadMessages:(e,t)=>["thread-messages",e,t],messages:e=>["messages",e],organizations:()=>["organizations"],members:e=>[e,"members"],invitations:e=>[e,"invitations"],organizationRoles:e=>[e,"organization-roles"],connections:e=>[e,"connections"],connectionsByBinding:(e,t)=>[e,"connections",`binding:${t}`],connection:(e,t)=>[e,"connection",t],isMCPAuthenticated:(e,t)=>["is-mcp-authenticated",e,t],mcpTools:(e,t)=>["mcp","tools",e,t],mcpClient:(e,t,n)=>["mcp","client",e,t,n],mcpToolsList:e=>["mcp","client",e,"tools"],mcpResourcesList:e=>["mcp","client",e,"resources"],mcpPromptsList:e=>["mcp","client",e,"prompts"],mcpReadResource:(e,t)=>["mcp","client",e,"resource",t],mcpGetPrompt:(e,t,n)=>["mcp","client",e,"prompt",t,n],mcpToolCall:(e,t,n)=>["mcp","client",e,"tool-call",t,n],organizationSettings:e=>["organization-settings",e],activeOrganization:e=>["activeOrganization",e],modelsList:e=>["models-list",e],connectionCollections:e=>[e,"collections","discovery"],toolCall:(e,t,n)=>["tool-call",e,t,n],collectionItems:(e,t)=>["collection",e,t],collection:(e,t,n)=>[e,t,"collection",n],collectionItem:(e,t,n,o,i)=>[e,t,n,"collection",o,i],collectionList:(e,t,n,o,i)=>[e,t,n,"collection",o,"list",i],collectionListInfinite:(e,t,n,o,i)=>[e,t,n,"collection",o,"list-infinite",i],githubReadme:(e,t)=>["github-readme",e,t],monitoringStats:()=>["monitoring","stats"],monitoringLogs:e=>["monitoring","logs",e],monitoringLogsInfinite:(e,t)=>["monitoring","logs-infinite",e,t],virtualMcpPrompts:e=>["virtual-mcp",e,"prompts"],connectionPrompts:e=>["connection",e,"prompts"],connectionResources:e=>["connection",e,"resources"],user:e=>["user",e]};class f extends u{constructor(t,n){super(t,n)}send(t,n){const o=h(t);return o?.type==="emit"?(this.onmessage?.(o.message),Promise.resolve()):o?.type==="suppress"?Promise.resolve():super.send(t,n)}}function h(e){const t=e;if(!t||typeof t!="object"||!("method"in t))return null;switch(t.method){case"initialize":{const n=t?.params?.protocolVersion;return n?{type:"emit",message:{result:{protocolVersion:n,capabilities:{tools:{},resources:{},prompts:{},tasks:{list:{},cancel:{},requests:{tool:{call:{}}}}},serverInfo:{name:"mesh-virtual-mcp",version:"1.0.0"}},jsonrpc:t.jsonrpc??"2.0",id:t.id}}:null}case"notifications/roots/list_changed":case"notifications/initialized":case"notifications/cancelled":case"notifications/progress":return{type:"suppress"};default:return null}}const _={name:"mesh-sdk",version:"1.0.0"};function y(e){if(typeof window>"u")throw new Error("MCP client requires a browser environment.");const t=e?`/mcp/${e}`:"/mcp";return new URL(t,window.location.origin).href}async function C({connectionId:e,orgId:t,token:n}){const o=y(e),i=new g(_,{capabilities:{tasks:{list:{},cancel:{},requests:{tool:{call:{}}}}}}),c=new f(new URL(o),{requestInit:{headers:{"Content-Type":"application/json",Accept:"application/json, text/event-stream","x-org-id":t,...n?{Authorization:`Bearer ${n}`}:{}}}});await i.connect(c);const r=l.mcpClient(t,e??"self",n??"");return i.toJSON=()=>`mcp-client:${r.join(":")}`,i}function P(e){const t=m.c(11),{connectionId:n,orgId:o,token:i}=e;let c;t[0]!==n||t[1]!==o||t[2]!==i?(c=l.mcpClient(o,n??"",i??""),t[0]=n,t[1]=o,t[2]=i,t[3]=c):c=t[3];const r=c;let s;t[4]!==n||t[5]!==o||t[6]!==i?(s=()=>C({connectionId:n,orgId:o,token:i}),t[4]=n,t[5]=o,t[6]=i,t[7]=s):s=t[7];let a;t[8]!==r||t[9]!==s?(a={queryKey:r,queryFn:s,staleTime:1/0,gcTime:0},t[8]=r,t[9]=s,t[10]=a):a=t[10];const{data:p}=d(a);return p}const b={SELF:e=>`${e}_self`,REGISTRY:e=>`${e}_registry`,COMMUNITY_REGISTRY:e=>`${e}_community-registry`},w="self";function M(e){return{id:b.REGISTRY(e),title:"Deco Store",description:"Official deco MCP registry with curated integrations",connection_type:"HTTP",connection_url:"https://api.decocms.com/mcp/registry",icon:"https://assets.decocache.com/decocms/00ccf6c3-9e13-4517-83b0-75ab84554bb9/596364c63320075ca58483660156b6d9de9b526e.png",app_name:"deco-registry",app_id:null,connection_token:null,connection_headers:null,oauth_config:null,configuration_state:null,configuration_scopes:null,metadata:{isDefault:!0,type:"registry"}}}function v(){return{id:"community-registry",title:"MCP Registry",description:"Community MCP registry with thousands of handy MCPs",connection_type:"HTTP",connection_url:"https://sites-registry.decocache.com/mcp",icon:"https://assets.decocache.com/decocms/cd7ca472-0f72-463a-b0de-6e44bdd0f9b4/mcp.png",app_name:"mcp-registry",app_id:null,connection_token:null,connection_headers:null,oauth_config:null,configuration_state:null,configuration_scopes:null,metadata:{isDefault:!0,type:"registry"}}}function R(e={}){return{id:e.id,title:"OpenRouter",description:"Access hundreds of LLM models from a single API",icon:"https://openrouter.ai/favicon.ico",app_name:"openrouter",app_id:"openrouter",connection_type:"HTTP",connection_url:"https://sites-openrouter.decocache.com/mcp",connection_token:null,connection_headers:null,oauth_config:null,configuration_state:null,configuration_scopes:null,metadata:{source:"chat",verified:!1,scopeName:"deco",toolsCount:0,publishedAt:null,repository:null}}}function L(){return{title:"MCP Studio",description:"An app that allows you to create and manage MCPs",icon:"https://assets.decocache.com/mcp/09e44283-f47d-4046-955f-816d227c626f/app.png",app_name:"mcp-studio",app_id:"65a1b407-b6af-41e2-a89f-ce9450c05bbc",connection_type:"HTTP",connection_url:"https://sites-vibemcp.decocache.com/mcp",connection_token:null,connection_headers:null,oauth_config:null,configuration_state:null,configuration_scopes:null,metadata:{isDefault:!1,type:"mcp-studio"}}}export{l as K,f as S,b as W,w as a,L as b,C as c,R as d,M as e,v as g,P as u};
@@ -1 +0,0 @@
1
- import{x as t,B as a}from"./index-CsMcCDhL.js";const e=t(a,{target:"draft-7"});export{e as B};
@@ -1 +0,0 @@
1
- import{a2 as M,a3 as P,a4 as $,a5 as V}from"./index-CsMcCDhL.js";function v(n){let e=0;for(let t=0;t<n.length;t++){const o=n.charCodeAt(t);e=(e<<5)-e+o,e=e&e}return Math.abs(e).toString(16)}const U=new Map,I="mcp:oauth:callback:";class L{serverUrl;_clientMetadata;_redirectUrl;_state=null;_codeVerifier=null;_clientInfo=null;_tokens=null;constructor(e){this.serverUrl=e.serverUrl,this._redirectUrl=e.callbackUrl??`${window.location.origin}/oauth/callback`;const t=e.scope?Array.isArray(e.scope)?e.scope.join(" "):e.scope:void 0;this._clientMetadata={redirect_uris:[this._redirectUrl],token_endpoint_auth_method:"none",grant_types:["authorization_code","refresh_token"],response_types:["code"],client_name:e.clientName??"@decocms/mesh MCP client",...t&&{scope:t}},U.set(v(this.serverUrl),this)}get redirectUrl(){return this._redirectUrl}get clientMetadata(){return this._clientMetadata}state(){return this._state||(this._state=crypto.randomUUID()),this._state}getStoredState(){return this._state}clientInformation(){return this._clientInfo??void 0}saveClientInformation(e){this._clientInfo=e}tokens(){return this._tokens??void 0}saveTokens(e){this._tokens=e}redirectToAuthorization(e){const c=window.screenX+(window.outerWidth-600)/2,s=window.screenY+(window.outerHeight-700)/2;if(!window.open(e.toString(),"mcp-oauth",`width=600,height=700,left=${c},top=${s},popup=yes`))throw new Error("OAuth popup was blocked. Please allow popups for this site and try again.")}saveCodeVerifier(e){this._codeVerifier=e}codeVerifier(){if(!this._codeVerifier)throw new Error("Code verifier not found");return this._codeVerifier}invalidateCredentials(){this._clientInfo=null,this._tokens=null,this._codeVerifier=null,this._state=null}getServerUrl(){return this.serverUrl}cleanup(){U.delete(v(this.serverUrl))}}async function H(n){const e=new URL(`/mcp/${n.connectionId}`,window.location.origin),t=new L({serverUrl:e.href,clientName:n.clientName,clientUri:n.clientUri,callbackUrl:n.callbackUrl,scope:n.scope});try{const o=new Promise((r,a)=>{const O=n.timeout||12e4;let w,d=!1;const T=t.state(),k=`${I}${T}`,u=()=>{window.removeEventListener("message",_),window.removeEventListener("storage",g),clearTimeout(w);try{localStorage.removeItem(k)}catch{}},m=async i=>{if(d)return;if(d=!0,!i.success){u(),a(new Error(i.error||"OAuth authentication failed"));return}const{code:f,state:b}=i;if(!f){u(),a(new Error("Missing authorization code"));return}if(t.getStoredState()!==b){u(),a(new Error("OAuth state mismatch - possible CSRF attack"));return}try{const A=(await M(e))?.authorization_servers?.[0]||e,y=await P(A),h=t.clientInformation();if(!h){u(),a(new Error("Client information not found"));return}const E=t.codeVerifier(),C=await $(A,{metadata:y,clientInformation:h,authorizationCode:f,codeVerifier:E,redirectUri:t.redirectUrl,resource:new URL(e)});u(),r({tokens:C,clientId:h.client_id??null,clientSecret:"client_secret"in h?h.client_secret:null,tokenEndpoint:y?.token_endpoint??null})}catch(S){u(),a(S)}},_=async i=>{i.origin===window.location.origin&&i.data?.type==="mcp:oauth:callback"&&await m(i.data)},g=async i=>{if(!(i.key!==k||!i.newValue))try{const f=JSON.parse(i.newValue);await m(f)}catch{}};window.addEventListener("message",_),window.addEventListener("storage",g),w=setTimeout(()=>{d||(d=!0,u(),a(new Error("OAuth authentication timeout")))},O)});if(await V(t,{serverUrl:e})==="REDIRECT"){const r=await o;return{token:r.tokens.access_token,tokenInfo:{accessToken:r.tokens.access_token,refreshToken:r.tokens.refresh_token??null,expiresIn:r.tokens.expires_in??null,scope:r.tokens.scope??null,clientId:r.clientId,clientSecret:r.clientSecret,tokenEndpoint:r.tokenEndpoint},error:null}}const s=t.tokens(),l=t.clientInformation();return{token:s?.access_token||null,tokenInfo:s?{accessToken:s.access_token,refreshToken:s.refresh_token??null,expiresIn:s.expires_in??null,scope:s.scope??null,clientId:l?.client_id??null,clientSecret:l&&"client_secret"in l?l.client_secret:null,tokenEndpoint:null}:null,error:null}}catch(o){return{token:null,tokenInfo:null,error:o instanceof Error?o.message:String(o)}}finally{t.cleanup()}}function p(n,e){if(window.opener&&!window.opener.closed)return window.opener.postMessage(n,window.location.origin),!0;if(e)try{const t=`${I}${e}`;return localStorage.setItem(t,JSON.stringify(n)),!0}catch{}return!1}async function j(){const n=new URLSearchParams(window.location.search),e=n.get("code");let t=n.get("state");const o=n.get("error"),c=n.get("error_description");let s=t;if(t)try{const r=atob(t),a=JSON.parse(r);a.clientState&&(s=a.clientState)}catch{}if(o){const r=c||o;return p({type:"mcp:oauth:callback",success:!1,error:r},s),{success:!1,error:r}}if(!e||!t){const r="Missing code or state parameter";return p({type:"mcp:oauth:callback",success:!1,error:r},s),{success:!1,error:r}}return t=s||t,p({type:"mcp:oauth:callback",success:!0,code:e,state:t},t)?{success:!0}:{success:!1,error:"Parent window not available"}}function R(n){try{return new URL(n).pathname.match(/^\/mcp\/([^/]+)/)?.[1]??null}catch{return null}}async function x(n){try{const e=await fetch(`/api/connections/${n}/oauth-token/status`,{credentials:"include"});return e.ok?{hasToken:(await e.json()).hasToken===!0}:{hasToken:!1}}catch{return{hasToken:!1}}}async function D({url:n,token:e}){try{const t=new Headers;t.set("Content-Type","application/json"),t.set("Accept","application/json, text/event-stream");const o=await fetch(n,{method:"POST",headers:t,body:JSON.stringify({jsonrpc:"2.0",id:1,method:"initialize",params:{protocolVersion:"2025-06-18",capabilities:{},clientInfo:{name:"@decocms/mesh MCP client",version:"1.0.0"}}})}),c=R(n);if(o.ok)return{isAuthenticated:!0,supportsOAuth:!1,hasOAuthToken:(c?await x(c):{hasToken:!1}).hasToken};let s;try{const a=await o.json();s=a.error||a.message}catch{}return o.status>=500?{isAuthenticated:!1,supportsOAuth:!1,hasOAuthToken:!1,error:s||`HTTP ${o.status}`,isServerError:!0}:{isAuthenticated:!1,supportsOAuth:!!o.headers.get("WWW-Authenticate"),hasOAuthToken:!1,error:s||`HTTP ${o.status}`}}catch(t){return console.error("[isConnectionAuthenticated] Error:",t),{isAuthenticated:!1,supportsOAuth:!1,hasOAuthToken:!1,error:t.message}}}export{H as a,j as h,D as i};
@@ -1 +0,0 @@
1
- import{I as u}from"./infiniteQueryObserver-DGa1FeuM.js";import{W as i}from"./index-CsMcCDhL.js";function t(e,r){return i(e,u,r)}export{t as u};
@@ -1 +0,0 @@
1
- import{W as u,X as s}from"./index-CsMcCDhL.js";function o(e,r){return u(e,s,r)}export{o as u};