decocms 2.282.1 → 2.282.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (162) hide show
  1. package/dist/client/assets/{AlertCircle-CJ_7BsPP.js → AlertCircle-i753hIUr.js} +1 -1
  2. package/dist/client/assets/{ArrowNarrowLeft-DtS9FYAN.js → ArrowNarrowLeft-DyneV8jh.js} +1 -1
  3. package/dist/client/assets/{CheckCircle-smRbUGaN.js → CheckCircle-BDNIuV_g.js} +1 -1
  4. package/dist/client/assets/{ChevronDown-xWqM1qJV.js → ChevronDown-vRDN8zoj.js} +1 -1
  5. package/dist/client/assets/{ChevronRight-BCgvkwtC.js → ChevronRight-P2x5wJJp.js} +1 -1
  6. package/dist/client/assets/{ChevronUp-CrL9TH1K.js → ChevronUp-Dg737K7F.js} +1 -1
  7. package/dist/client/assets/{Container-B7M87Wz6.js → Container-DsC3rtEa.js} +1 -1
  8. package/dist/client/assets/{LinkExternal01-DLKyZWWz.js → LinkExternal01-Cw9xV77y.js} +1 -1
  9. package/dist/client/assets/{Lock01-bZF1KUvq.js → Lock01-B4C5ICSW.js} +1 -1
  10. package/dist/client/assets/{Palette-Dl7lzquw.js → Palette-CxbsG8jb.js} +1 -1
  11. package/dist/client/assets/{Play-DtJ0cxBf.js → Play-F_qMNNeX.js} +1 -1
  12. package/dist/client/assets/{Plus-IUiAby9e.js → Plus-BM77-3yZ.js} +1 -1
  13. package/dist/client/assets/{SearchMd-A2WzjBhy.js → SearchMd-BQ703EvX.js} +1 -1
  14. package/dist/client/assets/{Settings02-uCCFk89X.js → Settings02-CZ-RzoRL.js} +1 -1
  15. package/dist/client/assets/{Star01-07LmVEi1.js → Star01-D8uixfU7.js} +1 -1
  16. package/dist/client/assets/{Sun-NZLaiUcL.js → Sun-Dzvpwc78.js} +1 -1
  17. package/dist/client/assets/{Tool01-1Tm6sx2D.js → Tool01-DV6LLMyv.js} +1 -1
  18. package/dist/client/assets/{Trash01-2of3D7QX.js → Trash01-DeQUJecj.js} +1 -1
  19. package/dist/client/assets/{Upload01-BPC1olzj.js → Upload01-C7vhn2fS.js} +1 -1
  20. package/dist/client/assets/{User01-Dj2-no-V.js → User01-CFTuPOYw.js} +1 -1
  21. package/dist/client/assets/{Users03-B_ZFhEj7.js → Users03-AWMGi4Xo.js} +1 -1
  22. package/dist/client/assets/{X-BXQFKahF.js → X-B19qdsWt.js} +1 -1
  23. package/dist/client/assets/{XCircle-ByksmUze.js → XCircle-Cu_m9KsD.js} +1 -1
  24. package/dist/client/assets/{Zap-Ct-Bt-7a.js → Zap-kmaaq3eG.js} +1 -1
  25. package/dist/client/assets/{ZapSquare-CLlEU1BK.js → ZapSquare-Bzu6OwXc.js} +1 -1
  26. package/dist/client/assets/{accordion-CBx4kF0A.js → accordion-Bcqp7xWC.js} +1 -1
  27. package/dist/client/assets/{agent-icon-uOxmWZzX.js → agent-icon-FJlZxNBT.js} +1 -1
  28. package/dist/client/assets/{agents-list-c4HvLnHM.js → agents-list-BzpReqDX.js} +1 -1
  29. package/dist/client/assets/ai-providers-BxK1xIaH.js +1 -0
  30. package/dist/client/assets/{alert-dialog-P8pjafE2.js → alert-dialog-BJ0hwa2l.js} +1 -1
  31. package/dist/client/assets/{auth-catchall-8f9iLpUP.js → auth-catchall-CGjZNqai.js} +1 -1
  32. package/dist/client/assets/{automation-list-row-BDBawYyn.js → automation-list-row-GPd6_cjS.js} +1 -1
  33. package/dist/client/assets/{automations-C_zdEQX8.js → automations-CXyF6Wr3.js} +1 -1
  34. package/dist/client/assets/{avatar-F9o71OJ0.js → avatar-BeRTzZHX.js} +1 -1
  35. package/dist/client/assets/{badge-D2Q0fk8p.js → badge-OuHAk68F.js} +1 -1
  36. package/dist/client/assets/{brand-context-CW58R34a.js → brand-context-CAuLcp_u.js} +1 -1
  37. package/dist/client/assets/{card-fcmwdw-g.js → card-64W2yOQo.js} +1 -1
  38. package/dist/client/assets/{chat-context-CXS-qe2G.js → chat-context-BQqGEJhg.js} +1 -1
  39. package/dist/client/assets/{checkbox-CqcJoypg.js → checkbox-Cx3RPx8a.js} +1 -1
  40. package/dist/client/assets/{collection-detail-DhZtELgd.js → collection-detail-ztCad3qg.js} +1 -1
  41. package/dist/client/assets/{collection-display-button-CgNICB5x.js → collection-display-button-CLTxoM3d.js} +1 -1
  42. package/dist/client/assets/{collection-search-BhW0WppR.js → collection-search-CcNzJi6D.js} +1 -1
  43. package/dist/client/assets/{collection-table-wrapper-rCxyye9m.js → collection-table-wrapper-BzqYYOAP.js} +1 -1
  44. package/dist/client/assets/{collection-tabs-CCiykiFm.js → collection-tabs-DD0Qt8TU.js} +1 -1
  45. package/dist/client/assets/{collections-C5k4gitm.js → collections-BpO3SJDN.js} +1 -1
  46. package/dist/client/assets/{command-Bap7RtnO.js → command-rQqgIdbd.js} +1 -1
  47. package/dist/client/assets/{connection-card-CAIl5zuH.js → connection-card-DKlghzN6.js} +1 -1
  48. package/dist/client/assets/{connection-detail-C-murm81.js → connection-detail-nptsFfMw.js} +1 -1
  49. package/dist/client/assets/{connection-form-helpers-Kb2X2zWy.js → connection-form-helpers-ByqGzB7q.js} +1 -1
  50. package/dist/client/assets/{connections-BUYyasfH.js → connections-CAWxy7P8.js} +1 -1
  51. package/dist/client/assets/{constants-Cz3vSCG9.js → constants-CN6Il9QM.js} +1 -1
  52. package/dist/client/assets/{constants-BYqEB04Y.js → constants-DBlKftLg.js} +1 -1
  53. package/dist/client/assets/{dialog-BEtDzaNY.js → dialog-BG20y4ti.js} +1 -1
  54. package/dist/client/assets/{drawer-BXhHhfPv.js → drawer-Gt9dvwHd.js} +1 -1
  55. package/dist/client/assets/{dropdown-menu-CPrJeiSb.js → dropdown-menu-D_gbsFgj.js} +1 -1
  56. package/dist/client/assets/{dynamic-plugin-layout-B3frXkTC.js → dynamic-plugin-layout-DUhVE3zr.js} +1 -1
  57. package/dist/client/assets/{empty-state-D17b8ueP.js → empty-state-B4p5HAyS.js} +1 -1
  58. package/dist/client/assets/{empty-state-QyaCdfZt.js → empty-state-YlXuIlyl.js} +1 -1
  59. package/dist/client/assets/{extract-connection-data-Df_ti4Xy.js → extract-connection-data-BkUkPjk1.js} +1 -1
  60. package/dist/client/assets/{features-DpwKJvfV.js → features-ZB9YPD6T.js} +1 -1
  61. package/dist/client/assets/{form-CyOS6D3q.js → form-DVLM8o8l.js} +1 -1
  62. package/dist/client/assets/{general-BXFZtoDZ.js → general-BSRTvN4z.js} +1 -1
  63. package/dist/client/assets/{index-C6iu8syV.js → index-B3NgIo6R.js} +1 -1
  64. package/dist/client/assets/{index-CpMJ05u5.js → index-B9tg__2J.js} +1 -1
  65. package/dist/client/assets/{index-C27Pbex0.js → index-BR4Tv9I4.js} +2 -2
  66. package/dist/client/assets/{index-DYJpZ_hI.js → index-BZ-_pOxX.js} +1 -1
  67. package/dist/client/assets/{index-FD-g03rr.js → index-B_9MykSP.js} +1 -1
  68. package/dist/client/assets/{index-B6nAXVWE.js → index-BejE17RG.js} +1 -1
  69. package/dist/client/assets/{index-D2u00J0R.js → index-Bpfr1gkL.js} +5 -5
  70. package/dist/client/assets/{index-DsXJm4s8.js → index-BxuUqWWJ.js} +1 -1
  71. package/dist/client/assets/{index-tiUiHjMI.js → index-CvjwIR23.js} +1 -1
  72. package/dist/client/assets/{index-CjRdG1Vp.js → index-DWgdGM2y.js} +1 -1
  73. package/dist/client/assets/{infiniteQueryObserver-Bm_4nXxh.js → infiniteQueryObserver-DjdUCzEf.js} +1 -1
  74. package/dist/client/assets/{input-BMDCCsVs.js → input-C6wlfqbz.js} +1 -1
  75. package/dist/client/assets/{integration-icon-gIhUX9GC.js → integration-icon-EHHTVGeJ.js} +1 -1
  76. package/dist/client/assets/{label-2vBVhIzi.js → label-CMuBjs0l.js} +1 -1
  77. package/dist/client/assets/{layout-BU5OyVXS.js → layout-BvulCiLM.js} +1 -1
  78. package/dist/client/assets/{lean-canvas-recruit-modal-BpJpmMV7.js → lean-canvas-recruit-modal-D54L-ueX.js} +1 -1
  79. package/dist/client/assets/{login-mUATXvn9.js → login-VLvQus3r.js} +1 -1
  80. package/dist/client/assets/{members-CEd1LJk0.js → members-Tmd-6nti.js} +1 -1
  81. package/dist/client/assets/{monaco-editor-BnguFt9B.js → monaco-editor-BIIx6Osu.js} +1 -1
  82. package/dist/client/assets/{monitoring-stats-row-DRhzCagY.js → monitoring-stats-row-DfQoN4dU.js} +1 -1
  83. package/dist/client/assets/{oauth-callback-BeAxhA0O.js → oauth-callback-COaviXzZ.js} +1 -1
  84. package/dist/client/assets/{oauth-callback-ai-provider-BNMpbB2T.js → oauth-callback-ai-provider-CeDoTmGO.js} +1 -1
  85. package/dist/client/assets/{onboarding-DXyWyIV-.js → onboarding-DMIifXKD.js} +1 -1
  86. package/dist/client/assets/{org-layout-DJZ7Z_p1.js → org-layout-CkCSATkV.js} +1 -1
  87. package/dist/client/assets/{org-plugin-layout-nQpaPqCP.js → org-plugin-layout-lYj2r1Ln.js} +1 -1
  88. package/dist/client/assets/{plugin-empty-state-D4pz75Eg.js → plugin-empty-state-BCI2akiJ.js} +1 -1
  89. package/dist/client/assets/{plugin-header-D_Oa6gN8.js → plugin-header--LbVNTsl.js} +1 -1
  90. package/dist/client/assets/{plugin-layout-csD4Blom.js → plugin-layout-Dhbi8qfO.js} +1 -1
  91. package/dist/client/assets/{popover-C6ihUqMx.js → popover-DL7_3A88.js} +1 -1
  92. package/dist/client/assets/{profile-725q4zwE.js → profile-CYehHV8y.js} +1 -1
  93. package/dist/client/assets/{project-app-view-BgI1ObN0.js → project-app-view-B680Vk1Z.js} +1 -1
  94. package/dist/client/assets/registry-D5sX2gio.js +2 -0
  95. package/dist/client/assets/{registry-layout-CZiwWJ4l.js → registry-layout-CEoOd_Wq.js} +1 -1
  96. package/dist/client/assets/{required-auth-layout-DYZPY8fJ.js → required-auth-layout-9J8EILU3.js} +1 -1
  97. package/dist/client/assets/{reset-password-D92BxTuZ.js → reset-password-CzSWUiKA.js} +1 -1
  98. package/dist/client/assets/{scroll-area-BjkPDLjB.js → scroll-area-CrjX3IME.js} +1 -1
  99. package/dist/client/assets/{search-input-BsH-Fhn1.js → search-input-DmblMA4A.js} +1 -1
  100. package/dist/client/assets/{select-ByGBjkSM.js → select-BQ3zutkO.js} +1 -1
  101. package/dist/client/assets/{select-model-ipn8mtVw.js → select-model-Cbrp8hD-.js} +1 -1
  102. package/dist/client/assets/{settings-layout-DaVsMStD.js → settings-layout-BxZT4ePy.js} +1 -1
  103. package/dist/client/assets/{shell-layout-CBHcQlP6.js → shell-layout-DrONQ6vr.js} +1 -1
  104. package/dist/client/assets/{skeleton-CKW2-ArL.js → skeleton-CmnvTWJg.js} +1 -1
  105. package/dist/client/assets/{sso-GNLrvSnU.js → sso-Csn8t5YG.js} +1 -1
  106. package/dist/client/assets/{store-Bv7PRV1N.js → store-B5WMfqFO.js} +1 -1
  107. package/dist/client/assets/store-registry-MW9ZrAsP.js +2 -0
  108. package/dist/client/assets/{switch-D_oyEj-7.js → switch-CM_vPUzz.js} +1 -1
  109. package/dist/client/assets/{table-DmvqYMYA.js → table-S8IBqobR.js} +1 -1
  110. package/dist/client/assets/{tabs-CHeB-_P1.js → tabs-B14EKG0Q.js} +1 -1
  111. package/dist/client/assets/{task-status-CGy28UD5.js → task-status-CoVKDaYE.js} +1 -1
  112. package/dist/client/assets/{textarea-Bo2Nbyc2.js → textarea-Bxm5HSBV.js} +1 -1
  113. package/dist/client/assets/{toggle-group-hicYHCaj.js → toggle-group-xjN2RMip.js} +1 -1
  114. package/dist/client/assets/{tools-list-Bc5L72jI.js → tools-list-DqbhkVqY.js} +1 -1
  115. package/dist/client/assets/{types-Qy_lXSZi.js → types-DA2UHbyR.js} +1 -1
  116. package/dist/client/assets/{use-ai-providers-D5svCGwH.js → use-ai-providers-LqR26vuo.js} +1 -1
  117. package/dist/client/assets/{use-collections-C9mDhhDp.js → use-collections-Bo1B5pfj.js} +1 -1
  118. package/dist/client/assets/{use-connection-labJovV0.js → use-connection-NZXO3HH3.js} +1 -1
  119. package/dist/client/assets/{use-copy-C--xeydh.js → use-copy-BRihc-l2.js} +1 -1
  120. package/dist/client/assets/{use-create-virtual-mcp-Dmy-tzU3.js → use-create-virtual-mcp-DgwS04N8.js} +1 -1
  121. package/dist/client/assets/{use-decopilot-events-BQ6lKiUz.js → use-decopilot-events-cbOJk-u-.js} +1 -1
  122. package/dist/client/assets/{use-delete-connection-Bj5gBc4Q.js → use-delete-connection-_oGK4bpj.js} +1 -1
  123. package/dist/client/assets/{use-infinite-scroll-CSBdO1Tg.js → use-infinite-scroll-BE8Qm8G-.js} +1 -1
  124. package/dist/client/assets/{use-list-state-BjQoZx3U.js → use-list-state-CeUQEO5I.js} +1 -1
  125. package/dist/client/assets/{use-mcp-tools-C0TDyIdf.js → use-mcp-tools-DqNbK4tC.js} +1 -1
  126. package/dist/client/assets/{use-members-BJMZeTol.js → use-members-DH_gyd2k.js} +1 -1
  127. package/dist/client/assets/{use-mobile-49sQdb0b.js → use-mobile-UG3f-VUD.js} +1 -1
  128. package/dist/client/assets/{use-navigate-to-agent-DHv3qU4y.js → use-navigate-to-agent-CDgOtsNz.js} +1 -1
  129. package/dist/client/assets/{use-org-sso-DZn2rTnY.js → use-org-sso-eSfysoE_.js} +1 -1
  130. package/dist/client/assets/{use-organization-settings-BhA6YmfT.js → use-organization-settings-bbuIudaf.js} +1 -1
  131. package/dist/client/assets/{use-registry-connections-Bvn4-1Jy.js → use-registry-connections-DN_uk-6v.js} +1 -1
  132. package/dist/client/assets/{use-status-sounds-hwHn7ByT.js → use-status-sounds-e0qVVZe8.js} +1 -1
  133. package/dist/client/assets/{use-tasks-CEfchIrz.js → use-tasks-DkVJbPPF.js} +1 -1
  134. package/dist/client/assets/{use-view-mode-BZEJDQ3u.js → use-view-mode-BvSJEzBA.js} +1 -1
  135. package/dist/client/assets/{use-virtual-mcp-kjgk684A.js → use-virtual-mcp-Doro-WnT.js} +1 -1
  136. package/dist/client/assets/useInfiniteQuery-C5UYrvtb.js +1 -0
  137. package/dist/client/assets/{user-DxIuCi_O.js → user-DMxAeRCM.js} +1 -1
  138. package/dist/client/assets/{view-mode-toggle-KKeD1zNQ.js → view-mode-toggle-B0na2o09.js} +1 -1
  139. package/dist/client/assets/{workflow-3PvqRa7g.js → workflow-BOEOo5nq.js} +1 -1
  140. package/dist/client/assets/workflow-detail-IfcsUNZf.js +1 -0
  141. package/dist/client/index.html +1 -1
  142. package/dist/server/cli.js +1 -1
  143. package/package.json +1 -1
  144. package/dist/client/assets/ai-providers-DNv3Q1EX.js +0 -1
  145. package/dist/client/assets/registry-DiyPXzzy.js +0 -2
  146. package/dist/client/assets/store-registry-IxsRTF9k.js +0 -2
  147. package/dist/client/assets/useInfiniteQuery-Bices_FL.js +0 -1
  148. package/dist/client/assets/workflow-detail-BLyd9EdB.js +0 -1
  149. package/dist/server/node_modules/ansi-styles/index.d.ts +0 -236
  150. package/dist/server/node_modules/ansi-styles/index.js +0 -223
  151. package/dist/server/node_modules/ansi-styles/license +0 -9
  152. package/dist/server/node_modules/ansi-styles/package.json +0 -54
  153. package/dist/server/node_modules/ansi-styles/readme.md +0 -173
  154. package/dist/server/node_modules/postgres-array/index.d.ts +0 -4
  155. package/dist/server/node_modules/postgres-array/index.js +0 -97
  156. package/dist/server/node_modules/postgres-array/license +0 -21
  157. package/dist/server/node_modules/postgres-array/package.json +0 -35
  158. package/dist/server/node_modules/postgres-array/readme.md +0 -43
  159. package/dist/server/node_modules/postgres-bytea/index.js +0 -33
  160. package/dist/server/node_modules/postgres-bytea/license +0 -21
  161. package/dist/server/node_modules/postgres-bytea/package.json +0 -34
  162. package/dist/server/node_modules/postgres-bytea/readme.md +0 -34
@@ -1636,7 +1636,7 @@ AS SELECT
1636
1636
  FROM monitoring_metrics
1637
1637
  GROUP BY organization_id, name, bucket, connection_id, tool_name, status
1638
1638
  `}),console.log("[clickhouse-schema] monitoring_metrics_rollup_1m_mv view ready")}finally{await G.close()}}catch(X){console.error("[clickhouse-schema] Failed to create rollup DDL (queries will fall back to raw table):",X)}}async function fZ1(Y){let X={...process.env},G=x11(Y,X),J=G.settings.encryptionKey;console.log(`[settings] ENCRYPTION_KEY = ${JSON.stringify(J)} (${J.length} chars)`);let{ensureServices:Q}=await Promise.resolve().then(() => (M11(),A11)),{outputs:Z,services:W}=await Q({home:G.settings.dataDir,externalDatabaseUrl:G.externalDatabaseUrl,externalNatsUrl:G.externalNatsUrl});if(!G.skipMigrations){let{migrateBetterAuth:H}=await Promise.resolve().then(() => (xb1(),OW6));await H(Z.databaseUrl);let{createDatabase:K}=await Promise.resolve().then(() => (fU(),UW6)),{migrateToLatest:V}=await Promise.resolve().then(() => (qL6(),NL6)),U=K(Z.databaseUrl);await V({keepOpen:!0,database:U,skipBetterAuth:!0})}if(G.settings.clickhouseUrl){let{ensureClickHouseRollup:H}=await Promise.resolve().then(() => zw6);await H(G.settings.clickhouseUrl)}let $={...G.settings,databaseUrl:Z.databaseUrl,natsUrls:Z.natsUrls};return UK0($),{settings:$,services:W.map((H)=>({name:H.name==="PostgreSQL"?"Postgres":H.name,port:H.port})),managedServiceNames:W.filter((H)=>H.owner==="managed").map((H)=>H.name)}}var Zp1=w(()=>{ML1();E9()});import{createServer as Lw6}from"net";function mZ5(Y){return new Promise((X)=>{let G=Lw6();G.once("error",()=>X(!1)),G.listen(Y,"0.0.0.0",()=>{G.close(()=>X(!0))})})}async function kZ1(Y){if(await mZ5(Y))return Y;let X=await new Promise((G,J)=>{let Q=Lw6();Q.once("error",J),Q.listen(0,"0.0.0.0",()=>{let Z=Q.address(),W=typeof Z==="object"&&Z?Z.port:0;Q.close(()=>G(W))})});return console.warn(`Port ${Y} is in use, using port ${X} instead.`),X}var $p1=()=>{};var Hp1={};I0(Hp1,{startDevServer:()=>dZ5});import{join as lZ5}from"path";function Dw6(Y){return Y.replace(/\x1b\[[0-9;]*m/g,"")}function ww6(Y){let X=Y.getReader(),G=new TextDecoder,J="";function Q(){let Z=J.split(`
1639
- `);J=Z.pop()??"";for(let W of Z){let $=Dw6(W).replace(/^\[\d+\]\s*/,"").trim();if(!$)continue;E$({method:"",path:"",status:0,duration:0,timestamp:new Date,rawLine:$})}}(async()=>{for(;;){let{done:Z,value:W}=await X.read();if(Z)break;J+=G.decode(W,{stream:!0}),Q()}if(J.trim()){let Z=Dw6(J).replace(/^\[\d+\]\s*/,"").trim();if(Z)E$({method:"",path:"",status:0,duration:0,timestamp:new Date,rawLine:Z})}})()}async function dZ5(Y){let{vitePort:X,baseUrl:G,noTui:J}=Y,Q=await kZ1(Number(Y.port)),{settings:Z,services:W,managedServiceNames:$}=await fZ1({port:String(Q),home:Y.home,baseUrl:Y.baseUrl,localMode:Y.localMode,skipMigrations:Y.skipMigrations,noTui:Y.noTui,vitePort:Y.vitePort});for(let B of W)US({name:B.name,status:"ready",port:B.port});Xx(Z),eb();let H=lZ5(import.meta.dir,"..","..","..","..",".."),K=J===!0,V=Bun.spawn(["bun","run","--cwd=apps/mesh","dev:servers"],{cwd:H,env:{...process.env,PORT:String(Z.port),VITE_PORT:String(X),DATABASE_URL:Z.databaseUrl,NATS_URL:Z.natsUrls.join(","),NODE_ENV:Z.nodeEnv,DECOCMS_LOCAL_MODE:String(Z.localMode),DECOCMS_HOME:Z.dataDir,DATA_DIR:Z.dataDir,DECO_CLI:"1",...Z.baseUrl?{BASE_URL:Z.baseUrl}:{}},stdio:["inherit",K?"inherit":"pipe",K?"inherit":"pipe"]});if(!K)ww6(V.stdout),ww6(V.stderr);let U=G||`http://localhost:${Z.port}`;Yx(U),US({name:"Vite",status:"ready",port:Number(X)});let O=async(B)=>{if(V.kill(B),$.length>0){let{stopServices:N}=await Promise.resolve().then(() => (M11(),A11));await N(Z.dataDir)}};return process.on("SIGINT",()=>O("SIGINT")),process.on("SIGTERM",()=>O("SIGTERM")),{port:Number(Z.port),process:V}}var Kp1=w(()=>{Zp1();$K();$p1()});import{Box as Fp1,Text as Vp1}from"ink";import{jsx as Mw6,jsxs as vZ1}from"react/jsx-runtime";function Aw6(Y){if(!Y)return"not set";try{let X=new URL(Y);if(X.password)X.password="***";if(X.username&&X.username.length>3)X.username=X.username.slice(0,3)+"***";return X.pathname="/",X.search="",X.hash="",X.toString()}catch{if(Y.length<=10)return Y;return Y.slice(0,6)+"***"+Y.slice(-4)}}function nZ5(Y,X){if(cZ5.has(Y))return X?{text:"\u25CF\u25CF\u25CF\u25CF\u25CF\u25CF",dimColor:!0}:{text:"not set",dimColor:!0};if(pZ5.has(Y)){if(Array.isArray(X)){if(X.length===0)return{text:"not set",dimColor:!0};return{text:X.map((Z)=>Aw6(Z)).join(", "),color:"cyan"}}let J=Aw6(X);return J==="not set"?{text:J,dimColor:!0}:{text:J,color:"cyan"}}if(X===void 0||X===null||X==="")return{text:"not set",dimColor:!0};let G=String(X);if(G==="true")return{text:G,color:"green"};if(G==="false")return{text:G,color:"yellow"};try{return new URL(G),{text:G,color:"cyan"}}catch{return{text:G}}}function iZ5(Y){return[{title:"Core",entries:[{key:"NODE_ENV",value:Y.nodeEnv},{key:"PORT",value:Y.port},{key:"BASE_URL",value:Y.baseUrl??`http://localhost:${Y.port}`},{key:"DATA_DIR",value:Y.dataDir}]},{title:"Database",entries:[{key:"DATABASE_URL",value:Y.databaseUrl},{key:"DATABASE_PG_SSL",value:Y.databasePgSsl}]},{title:"Auth & Secrets",entries:[{key:"BETTER_AUTH_SECRET",value:Y.betterAuthSecret},{key:"ENCRYPTION_KEY",value:Y.encryptionKey},{key:"MESH_JWT_SECRET",value:Y.meshJwtSecret},{key:"STUDIO_PROVISION_SECRET_KEY",value:Y.studioProvisionSecretKey},{key:"DISABLE_RATE_LIMIT",value:Y.disableRateLimit}]},{title:"Auth Providers",entries:[{key:"AUTH_EMAIL_PASSWORD_ENABLED",value:process.env.AUTH_EMAIL_PASSWORD_ENABLED??"true"},{key:"AUTH_GOOGLE_CLIENT_ID",value:!!process.env.AUTH_GOOGLE_CLIENT_ID},{key:"AUTH_GITHUB_CLIENT_ID",value:!!process.env.AUTH_GITHUB_CLIENT_ID},{key:"AUTH_RESEND_API_KEY",value:!!process.env.AUTH_RESEND_API_KEY},{key:"AUTH_SENDGRID_API_KEY",value:!!process.env.AUTH_SENDGRID_API_KEY},{key:"AUTH_SSO_MS_CLIENT_ID",value:!!process.env.AUTH_SSO_MS_CLIENT_ID},{key:"AUTH_MAGIC_LINK_ENABLED",value:process.env.AUTH_MAGIC_LINK_ENABLED==="true"},{key:"AUTH_EMAIL_OTP_ENABLED",value:process.env.AUTH_EMAIL_OTP_ENABLED==="true"}]},{title:"Observability",entries:[{key:"CLICKHOUSE_URL",value:Y.clickhouseUrl},{key:"OTEL_SERVICE_NAME",value:Y.otelServiceName}]},{title:"Event Bus & Networking",entries:[{key:"NATS_URL",value:Y.natsUrls}]},{title:"Config Files",entries:[{key:"CONFIG_PATH",value:Y.configPath}]},{title:"Transport",entries:[{key:"UNSAFE_ALLOW_STDIO_TRANSPORT",value:Y.unsafeAllowStdioTransport}]},{title:"AI Gateway",entries:[{key:"DECO_AI_GATEWAY_ENABLED",value:Y.aiGatewayEnabled},{key:"DECO_AI_GATEWAY_URL",value:Y.aiGatewayUrl}]}]}function Ew6({env:Y}){let X=iZ5(Y);return Mw6(Fp1,{flexDirection:"column",children:X.map((G)=>vZ1(Fp1,{flexDirection:"column",marginTop:1,children:[vZ1(Vp1,{dimColor:!0,children:[" ","\u2500\u2500 ",G.title," ","\u2500".repeat(Math.max(0,38-G.title.length))]}),G.entries.map(({key:J,value:Q})=>{let Z=nZ5(J,Q);return vZ1(Fp1,{children:[vZ1(Vp1,{dimColor:!0,children:[" ",J.padEnd(36)]}),Mw6(Vp1,{color:Z.color,dimColor:Z.dimColor,children:Z.text})]},J)})]},G.title))})}var cZ5,pZ5;var Pw6=w(()=>{cZ5=new Set(["BETTER_AUTH_SECRET","ENCRYPTION_KEY","MESH_JWT_SECRET","STUDIO_PROVISION_SECRET_KEY"]),pZ5=new Set(["DATABASE_URL","CLICKHOUSE_URL","NATS_URL"])});var Up1;var Tw6=w(()=>{Up1={name:"decocms",version:"2.282.1",description:"Deco CMS \u2014 Self-hostable MCP Gateway for managing AI connections and tools",author:"Deco team",repository:{type:"git",url:"git+https://github.com/decocms/studio.git",directory:"apps/mesh"},bugs:{url:"https://github.com/decocms/studio/issues"},type:"module",bin:{deco:"./dist/server/cli.js"},files:["dist/**/*"],scripts:{dev:'bun run migrate && concurrently "bun run dev:client" "bun run dev:server"',"dev:servers":'concurrently "bun run dev:client" "bun run dev:server"',"dev:client":"bun --bun vite dev","dev:server":"bun run --cwd=../../packages/sandbox build && NODE_ENV=development bun --env-file=.env --hot run src/index.ts","build:client":"bun --bun vite build","build:server":"bun run scripts/bundle-server-script.ts --dist ./dist/server","db:migrate":"bun run ./dist/server/migrate.js",check:"tsc --noEmit",start:"bun run ./dist/server/server.js",migrate:"bun run src/database/migrate.ts",test:"bun test","test:e2e":"playwright test","test:e2e:ui":"playwright test --ui","better-auth:migrate":"bunx --bun @better-auth/cli migrate -y --config src/auth/index.ts",prepublishOnly:"bun run build:client && bun run build:server"},optionalDependencies:{"@duckdb/node-api":"^1.5.0-r.1","@freestyle-sh/with-bun":"^0.2.12","@freestyle-sh/with-deno":"^0.0.4","@freestyle-sh/with-nodejs":"^0.2.9","freestyle-sandboxes":"^0.1.46"},dependencies:{"@ai-sdk/anthropic":"^3.0.58","@ai-sdk/google":"^3.0.60","@ai-sdk/openai":"^3.0.50","@anthropic-ai/sdk":"^0.79.0","@aws-sdk/client-s3":"^3.1013.0","@aws-sdk/s3-request-presigner":"^3.1013.0","@clickhouse/client":"^1.8.1","@dnd-kit/core":"^6.3.1","@dnd-kit/sortable":"^10.0.0","@dnd-kit/utilities":"^3.2.2","@inkjs/ui":"^2.0.0","@modelcontextprotocol/ext-apps":"^1.2.2","@openrouter/ai-sdk-provider":"^2.2.5","@opentelemetry/core":"^2.6.0","@tanstack/react-virtual":"^3.13.21","@xterm/addon-fit":"^0.11.0","@xterm/xterm":"^6.0.0","ai-sdk-provider-claude-code":"^3.4.4","ai-sdk-provider-codex-cli":"^1.1.0","embedded-postgres":"^18.3.0-beta.16",ink:"^6.8.0",kysely:"^0.28.12",nats:"^2.29.3","posthog-js":"^1.371.1","posthog-node":"^5.0.0",react:"^19.2.0","react-dom":"^19.2.0"},devDependencies:{"@ai-sdk/provider":"^3.0.8","@ai-sdk/react":"^3.0.118","@anthropic-ai/claude-agent-sdk":"^0.2.80","@better-auth/sso":"1.4.1","@daveyplate/better-auth-ui":"^3.2.7","@deco/ui":"workspace:*","@decocms/better-auth":"1.5.17","@decocms/bindings":"workspace:*","@decocms/mcp-utils":"workspace:*","@decocms/mesh-sdk":"workspace:*","@decocms/runtime":"workspace:*","@decocms/vite-plugin":"workspace:*","@electric-sql/pglite":"^0.3.15","@floating-ui/react":"^0.27.16","@hookform/resolvers":"^5.2.2","@jitl/quickjs-wasmfile-release-sync":"0.31.0","@modelcontextprotocol/sdk":"1.27.1","@monaco-editor/react":"^4.7.0","@opentelemetry/api":"^1.9.0","@opentelemetry/api-logs":"^0.211.0","@opentelemetry/exporter-logs-otlp-proto":"^0.211.0","@opentelemetry/exporter-prometheus":"^0.208.0","@opentelemetry/exporter-trace-otlp-proto":"^0.207.0","@opentelemetry/instrumentation-runtime-node":"^0.24.0","@opentelemetry/sdk-logs":"^0.211.0","@opentelemetry/sdk-metrics":"^2.2.0","@opentelemetry/sdk-node":"^0.207.0","@opentelemetry/sdk-trace-base":"^2.5.0","@playwright/test":"^1.58.2","@radix-ui/react-avatar":"^1.1.10","@radix-ui/react-checkbox":"^1.3.3","@radix-ui/react-dialog":"^1.1.15","@radix-ui/react-dropdown-menu":"^2.1.16","@radix-ui/react-label":"^2.1.7","@radix-ui/react-select":"^2.2.6","@radix-ui/react-separator":"^1.1.7","@radix-ui/react-slot":"^1.2.3","@radix-ui/react-tabs":"^1.1.13","@rjsf/core":"^6.1.2","@rjsf/shadcn":"^6.1.2","@rjsf/utils":"^6.1.2","@rjsf/validator-ajv8":"^6.1.2","@tailwindcss/vite":"^4.1.17","@tanstack/react-query":"5.90.11","@tanstack/react-router":"^1.139.7","@tiptap/core":"3.20.2","@tiptap/extension-mention":"3.20.2","@tiptap/extension-placeholder":"3.20.2","@tiptap/pm":"3.20.2","@tiptap/react":"3.20.2","@tiptap/starter-kit":"3.20.2","@tiptap/suggestion":"3.20.2","@types/bun":"^1.3.1","@types/pg":"^8.15.6","@types/react-syntax-highlighter":"^15.5.13","@untitledui/icons":"^0.0.19","@vercel/nft":"^1.1.1","@vitejs/plugin-react":"^5.1.0",ai:"^6.0.116","babel-plugin-react-compiler":"^1.0.0","better-auth":"1.4.5","class-variance-authority":"^0.7.1",clsx:"^2.1.1",concurrently:"^9.2.1",croner:"^9.1.0","date-fns":"^4.1.0",degit:"^2.8.4",hono:"^4.10.7","input-otp":"^1.4.2",jose:"^6.0.11","kysely-pglite":"^0.6.1","lucide-react":"^0.468.0",marked:"^15.0.6","@decocms/sandbox":"workspace:*","mesh-plugin-workflows":"workspace:*",nanoid:"^5.1.6",pg:"^8.16.3",prettier:"^3.4.2","react-hook-form":"^7.66.0","react-markdown":"^10.1.0","react-resizable-panels":"^2.1.7","react-syntax-highlighter":"^15.6.1",recharts:"^3.6.0","rehype-raw":"^7.0.0","remark-gfm":"^4.0.0","sass-embedded":"^1.97.2",sonner:"^2.0.7","tailwind-merge":"^3.3.1",tailwindcss:"^4.1.17",typescript:"^5.9.3",vite:"^7.2.1","vite-tsconfig-paths":"^5.1.4",zod:"^4.0.0",zustand:"^5.0.9"},homepage:"https://github.com/decocms/studio",keywords:["mcp","model-context-protocol","ai","gateway","self-hosted","mesh","tools"],license:"MIT",publishConfig:{access:"public"}}});import{Box as TF,Text as JY}from"ink";import{Spinner as rZ5}from"@inkjs/ui";import{useSyncExternalStore as Rw6}from"react";import{jsx as rY,jsxs as wJ}from"react/jsx-runtime";function Y$5(Y,X){if(!Y||!eZ5.has(Y))return Y;let G=Op1[X]??Op1[Op1.length-1];return Y==="#875f00"?G[0]:G[1]}function Cw6({status:Y}){if(Y==="pending")return rY(rZ5,{label:""});return rY(JY,{color:"green",children:"\u2713"})}function Sw6({services:Y,migrationsStatus:X,home:G,serverUrl:J,vibe:Q}){let Z=Rw6(fH0,_H0),W=Rw6(xH0,bH0);return wJ(TF,{flexDirection:"column",paddingBottom:1,children:[Q?wJ(TF,{flexDirection:"column",children:[Z.map(($,H)=>{let K=W[H],V=$.reduce((O,B)=>O+B.text.length,0),U=Math.max(0,tZ5-V);return wJ(TF,{flexDirection:"row",children:[$.map((O,B)=>{let N=Y$5(O.color,H);return N?rY(JY,{color:N,children:O.text},B):rY(JY,{children:O.text},B)}),rY(JY,{children:" ".repeat(U+2)}),K?.map((O,B)=>O.color?rY(JY,{color:O.color,children:O.char},B):rY(JY,{children:O.char},B))]},H)}),wJ(JY,{dimColor:!0,children:[" v",Up1.version]})]}):wJ(TF,{flexDirection:"column",marginTop:1,children:[oZ5.map(($,H)=>rY(JY,{color:sZ5[H],children:$},H)),wJ(JY,{dimColor:!0,children:[" v",Up1.version]})]}),rY(TF,{marginBottom:1,children:rY(JY,{dimColor:!0,children:"\u2500".repeat(80)})}),rY(TF,{children:wJ(JY,{dimColor:!0,children:["Home: ",G]})}),wJ(TF,{gap:2,children:[Y.map(($)=>wJ(TF,{gap:1,children:[wJ(JY,{children:[$.name," :",$.port||"...."]}),rY(Cw6,{status:$.status})]},$.name)),wJ(TF,{gap:1,children:[rY(JY,{children:"Migrations"}),rY(Cw6,{status:X})]})]}),rY(TF,{children:J?wJ(JY,{children:["Open in browser: ",rY(JY,{color:"cyan",children:J})]}):rY(JY,{dimColor:!0,children:"Starting..."})}),wJ(TF,{gap:2,children:[wJ(JY,{dimColor:!0,children:[rY(JY,{bold:!0,dimColor:!0,children:"K"})," ","toggle config"]}),wJ(JY,{dimColor:!0,children:[rY(JY,{bold:!0,dimColor:!0,children:"L"})," ","toggle log flow"]}),wJ(JY,{dimColor:!0,children:[rY(JY,{bold:!0,dimColor:!0,children:"V"})," ","toggle vibe ",Q?"\u266A Nihilore \xB7 CC BY 4.0":""]}),Q&&wJ(JY,{dimColor:!0,children:[rY(JY,{bold:!0,dimColor:!0,children:"N"})," ","skip song"]})]})]})}var oZ5,sZ5,Op1,tZ5=30,eZ5;var jw6=w(()=>{Tw6();ez1();WL1();oZ5=[" \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 \u2588\u2588\u2588\u2588\u2588\u2588\u2588 ","\u2591\u2591\u2588\u2588\u2588\u2591\u2591\u2591\u2591\u2588\u2588\u2588 \u2591\u2591\u2588\u2588\u2588\u2591\u2591\u2591\u2591\u2591\u2588 \u2588\u2588\u2588\u2591\u2591\u2591\u2591\u2591\u2588\u2588\u2588 \u2588\u2588\u2588\u2591\u2591\u2591\u2591\u2591\u2588\u2588\u2588 "," \u2591\u2588\u2588\u2588 \u2591\u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588 \u2588 \u2591 \u2588\u2588\u2588 \u2591\u2591\u2591 \u2588\u2588\u2588 \u2591\u2591\u2588\u2588\u2588"," \u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588\u2588\u2588\u2588 \u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588"," \u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588\u2591\u2591\u2588 \u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588"," \u2591\u2588\u2588\u2588 \u2588\u2588\u2588 \u2591\u2588\u2588\u2588 \u2591 \u2588\u2591\u2591\u2588\u2588\u2588 \u2588\u2588\u2588\u2591\u2591\u2588\u2588\u2588 \u2588\u2588\u2588 "," \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 \u2591\u2591\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 \u2591\u2591\u2591\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2591 ","\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591 \u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591 \u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591 \u2591\u2591\u2591\u2591\u2591\u2591\u2591 "],sZ5=["#00ff64","#00ee5e","#00dc56","#00c84e","#00b444","#00a03c","#008832","#006e28"],Op1=[["#00ff64","#00cc50"],["#00f060","#00c04c"],["#00e05c","#00b448"],["#00d058","#00a844"],["#00c054","#009c40"],["#00b050","#00903c"],["#00a04c","#008438"],["#009048","#007834"],["#008044","#006c30"],["#007040","#00602c"],["#00603c","#005428"]],eZ5=new Set(["#875f00","#5f3800"])});import{useSyncExternalStore as X$5}from"react";function G$5(){let Y=process.stdout.rows||24,X=process.stdout.columns||80;if(Y!==hZ1.rows||X!==hZ1.columns)hZ1={rows:Y,columns:X};return hZ1}function J$5(Y){return process.stdout.on("resize",Y),()=>{process.stdout.off("resize",Y)}}function Iw6(){return X$5(J$5,G$5)}var hZ1;var _w6=w(()=>{hZ1={rows:process.stdout.rows||24,columns:process.stdout.columns||80}});import{Box as Q$5,Text as Ji}from"ink";import{useSyncExternalStore as W$5}from"react";import{jsx as Bp1,jsxs as Np1}from"react/jsx-runtime";function Z$5(Y){if(Y>=500)return"red";if(Y>=400)return"yellow";if(Y>=300)return"cyan";return"green"}function fw6({logs:Y,headerHeight:X}){let{rows:G}=Iw6(),{logFlow:J}=W$5(tb,sb),Q=Math.max(1,G-X-1),Z=J?Y:Y.slice(-Q);return Bp1(Q$5,{flexDirection:"column",children:Z.map((W,$)=>{if(W.rawLine)return Bp1(Ji,{dimColor:!0,children:W.rawLine},$);let H=W.duration<1000?`${W.duration}ms`:`${(W.duration/1000).toFixed(1)}s`;return Np1(Ji,{children:[Np1(Ji,{dimColor:!0,children:[W.method.padEnd(6)," ",W.path.padEnd(30)," "]}),Bp1(Ji,{color:Z$5(W.status),children:W.status}),Np1(Ji,{dimColor:!0,children:[" ",H.padStart(8)]})]},$)})})}var kw6=w(()=>{$K();_w6()});var qp1={};I0(qp1,{App:()=>O$5});import{Box as $$5,Text as H$5,useInput as K$5}from"ink";import{useSyncExternalStore as F$5}from"react";import{jsx as yZ1,jsxs as B$5}from"react/jsx-runtime";function O$5({home:Y}){let X=F$5(tb,sb);return K$5((G)=>{if(G==="k"||G==="K")VL1();if(G==="l"||G==="L")UL1();if((G==="v"||G==="V")&&X.dataDir)KL1(X.dataDir),OL1();if((G==="n"||G==="N")&&X.vibe)HL1()}),B$5($$5,{flexDirection:"column",children:[yZ1(Sw6,{services:X.services,migrationsStatus:X.migrationsStatus,home:Y,serverUrl:X.serverUrl,vibe:X.vibe}),X.viewMode==="config"?X.env?yZ1(Ew6,{env:X.env}):yZ1(H$5,{dimColor:!0,children:"Loading configuration..."}):yZ1(fw6,{logs:X.logs,headerHeight:X.vibe?U$5:V$5})]})}var V$5=15,U$5=19;var zp1=w(()=>{Pw6();jw6();kw6();$K();VS()});function vw6(Y,X={}){return{PORT:String(Y.port),NODE_ENV:Y.nodeEnv,BASE_URL:Y.baseUrl,DATA_DIR:Y.dataDir,DECOCMS_HOME:Y.dataDir,DATABASE_URL:Y.databaseUrl,DATABASE_PG_SSL:String(Y.databasePgSsl),DATABASE_POOL_MAX:String(Y.databasePoolMax),NATS_URL:Y.natsUrls.join(","),BETTER_AUTH_SECRET:Y.betterAuthSecret,ENCRYPTION_KEY:Y.encryptionKey,MESH_JWT_SECRET:Y.meshJwtSecret,DECOCMS_LOCAL_MODE:String(Y.localMode),DECOCMS_ALLOW_LOCAL_PROD:String(Y.allowLocalProd),DISABLE_RATE_LIMIT:String(Y.disableRateLimit),STUDIO_PROVISION_SECRET_KEY:Y.studioProvisionSecretKey,CONFIG_PATH:Y.configPath,...Object.fromEntries(Object.entries(process.env).filter(([G])=>G.startsWith("AUTH_"))),UNSAFE_ALLOW_STDIO_TRANSPORT:String(Y.unsafeAllowStdioTransport),DECO_AI_GATEWAY_ENABLED:String(Y.aiGatewayEnabled),DECO_AI_GATEWAY_URL:Y.aiGatewayUrl,ENABLE_DECO_IMPORT:String(Y.enableDecoImport),S3_ENDPOINT:Y.s3Endpoint,S3_BUCKET:Y.s3Bucket,S3_REGION:Y.s3Region,S3_ACCESS_KEY_ID:Y.s3AccessKeyId,S3_SECRET_ACCESS_KEY:Y.s3SecretAccessKey,S3_FORCE_PATH_STYLE:String(Y.s3ForcePathStyle),OTEL_SERVICE_NAME:Y.otelServiceName,CLICKHOUSE_URL:Y.clickhouseUrl,DECO_SUPABASE_URL:Y.decoSupabaseUrl,DECO_SUPABASE_SERVICE_KEY:Y.decoSupabaseServiceKey,FIRECRAWL_API_KEY:Y.firecrawlApiKey,MESH_SANDBOX_RUNNER:process.env.MESH_SANDBOX_RUNNER,FREESTYLE_API_KEY:process.env.FREESTYLE_API_KEY,BROWSERLESS_TOKEN:process.env.BROWSERLESS_TOKEN,POSTHOG_KEY:process.env.POSTHOG_KEY,POSTHOG_HOST:process.env.POSTHOG_HOST,NODE_EXTRA_CA_CERTS:process.env.NODE_EXTRA_CA_CERTS,DECO_CLI:"1",DECO_NO_TUI:"true",...X}}function yw6(Y){if(!Y)return!1;try{return new URL(Y).host==="api.decocms.com"&&Y!=="https://studio.decocms.com/org/deco/registry/mcp"}catch{return!1}}var hw6="https://studio.decocms.com/org/deco/registry/mcp";var Lp1=(Y,X,G)=>{return(J,Q)=>{let Z=-1;return W(0);async function W($){if($<=Z)throw Error("next() called multiple times");Z=$;let H,K=!1,V;if(Y[$])V=Y[$][0][0],J.req.routeIndex=$;else V=$===Y.length&&Q||void 0;if(V)try{H=await V(J,()=>W($+1))}catch(U){if(U instanceof Error&&X)J.error=U,H=await X(U,J),K=!0;else throw U}else if(J.finalized===!1&&G)H=await G(J);if(H&&(J.finalized===!1||K))J.res=H;return J}}};var bw6=()=>{};var H9;var $w=w(()=>{H9=class extends Error{res;status;constructor(Y=500,X){super(X?.message,{cause:X?.cause});this.res=X?.res,this.status=Y}getResponse(){if(this.res)return new Response(this.res.body,{status:this.status,headers:this.res.headers});return new Response(this.message,{status:this.status})}}});var xw6;var uw6=w(()=>{xw6=Symbol()});async function N$5(Y,X){let G=await Y.formData();if(G)return q$5(G,X);return{}}function q$5(Y,X){let G=Object.create(null);if(Y.forEach((J,Q)=>{if(!(X.all||Q.endsWith("[]")))G[Q]=J;else z$5(G,Q,J)}),X.dot)Object.entries(G).forEach(([J,Q])=>{if(J.includes("."))L$5(G,J,Q),delete G[J]});return G}var gw6=async(Y,X=Object.create(null))=>{let{all:G=!1,dot:J=!1}=X,Z=(Y instanceof bZ1?Y.raw.headers:Y.headers).get("Content-Type");if(Z?.startsWith("multipart/form-data")||Z?.startsWith("application/x-www-form-urlencoded"))return N$5(Y,{all:G,dot:J});return{}},z$5=(Y,X,G)=>{if(Y[X]!==void 0)if(Array.isArray(Y[X]))Y[X].push(G);else Y[X]=[Y[X],G];else if(!X.endsWith("[]"))Y[X]=G;else Y[X]=[G]},L$5=(Y,X,G)=>{if(/(?:^|\.)__proto__\./.test(X))return;let J=Y,Q=X.split(".");Q.forEach((Z,W)=>{if(W===Q.length-1)J[Z]=G;else{if(!J[Z]||typeof J[Z]!=="object"||Array.isArray(J[Z])||J[Z]instanceof File)J[Z]=Object.create(null);J=J[Z]}})};var mw6=w(()=>{Dp1()});var Ap1=(Y)=>{let X=Y.split("/");if(X[0]==="")X.shift();return X},lw6=(Y)=>{let{groups:X,path:G}=D$5(Y),J=Ap1(G);return w$5(J,X)},D$5=(Y)=>{let X=[];return Y=Y.replace(/\{[^}]+\}/g,(G,J)=>{let Q=`@${J}`;return X.push([Q,G]),Q}),{groups:X,path:Y}},w$5=(Y,X)=>{for(let G=X.length-1;G>=0;G--){let[J]=X[G];for(let Q=Y.length-1;Q>=0;Q--)if(Y[Q].includes(J)){Y[Q]=Y[Q].replace(J,X[G][1]);break}}return Y},xZ1,dw6=(Y,X)=>{if(Y==="*")return"*";let G=Y.match(/^\:([^\{\}]+)(?:\{(.+)\})?$/);if(G){let J=`${Y}#${X}`;if(!xZ1[J])if(G[2])xZ1[J]=X&&X[0]!==":"&&X[0]!=="*"?[J,G[1],new RegExp(`^${G[2]}(?=/${X})`)]:[Y,G[1],new RegExp(`^${G[2]}$`)];else xZ1[J]=[Y,G[1],!0];return xZ1[J]}return null},yk=(Y,X)=>{try{return X(Y)}catch{return Y.replace(/(?:%[0-9A-Fa-f]{2})+/g,(G)=>{try{return X(G)}catch{return G}})}},cw6=(Y)=>yk(Y,decodeURI),Mp1=(Y)=>{let X=Y.url,G=X.indexOf("/",X.indexOf(":")+4),J=G;for(;J<X.length;J++){let Q=X.charCodeAt(J);if(Q===37){let Z=X.indexOf("?",J),W=X.indexOf("#",J),$=Z===-1?W===-1?void 0:W:W===-1?Z:Math.min(Z,W),H=X.slice(G,$);return cw6(H.includes("%25")?H.replace(/%25/g,"%2525"):H)}else if(Q===63||Q===35)break}return X.slice(G,J)},pw6=(Y)=>{let X=Mp1(Y);return X.length>1&&X.at(-1)==="/"?X.slice(0,-1):X},sP=(Y,X,...G)=>{if(G.length)X=sP(X,...G);return`${Y?.[0]==="/"?"":"/"}${Y}${X==="/"?"":`${Y?.at(-1)==="/"?"":"/"}${X?.[0]==="/"?X.slice(1):X}`}`},uZ1=(Y)=>{if(Y.charCodeAt(Y.length-1)!==63||!Y.includes(":"))return null;let X=Y.split("/"),G=[],J="";return X.forEach((Q)=>{if(Q!==""&&!/\:/.test(Q))J+="/"+Q;else if(/\:/.test(Q))if(/\?/.test(Q)){if(G.length===0&&J==="")G.push("/");else G.push(J);let Z=Q.replace("?","");J+="/"+Z,G.push(J)}else J+="/"+Q}),G.filter((Q,Z,W)=>W.indexOf(Q)===Z)},wp1=(Y)=>{if(!/[%+]/.test(Y))return Y;if(Y.indexOf("+")!==-1)Y=Y.replace(/\+/g," ");return Y.indexOf("%")!==-1?yk(Y,Qi):Y},nw6=(Y,X,G)=>{let J;if(!G&&X&&!/[%+]/.test(X)){let W=Y.indexOf("?",8);if(W===-1)return;if(!Y.startsWith(X,W+1))W=Y.indexOf(`&${X}`,W+1);while(W!==-1){let $=Y.charCodeAt(W+X.length+1);if($===61){let H=W+X.length+2,K=Y.indexOf("&",H);return wp1(Y.slice(H,K===-1?void 0:K))}else if($==38||isNaN($))return"";W=Y.indexOf(`&${X}`,W+1)}if(J=/[%+]/.test(Y),!J)return}let Q={};J??=/[%+]/.test(Y);let Z=Y.indexOf("?",8);while(Z!==-1){let W=Y.indexOf("&",Z+1),$=Y.indexOf("=",Z);if($>W&&W!==-1)$=-1;let H=Y.slice(Z+1,$===-1?W===-1?void 0:W:$);if(J)H=wp1(H);if(Z=W,H==="")continue;let K;if($===-1)K="";else if(K=Y.slice($+1,W===-1?void 0:W),J)K=wp1(K);if(G){if(!(Q[H]&&Array.isArray(Q[H])))Q[H]=[];Q[H].push(K)}else Q[H]??=K}return X?Q[X]:Q},iw6,aw6=(Y,X)=>{return nw6(Y,X,!0)},Qi;var Hw=w(()=>{xZ1={},iw6=nw6,Qi=decodeURIComponent});var rw6=(Y)=>yk(Y,Qi),bZ1;var Dp1=w(()=>{$w();uw6();mw6();Hw();bZ1=class{raw;#Y;#X;routeIndex=0;path;bodyCache={};constructor(Y,X="/",G=[[]]){this.raw=Y,this.path=X,this.#X=G,this.#Y={}}param(Y){return Y?this.#G(Y):this.#J()}#G(Y){let X=this.#X[0][this.routeIndex][1][Y],G=this.#Q(X);return G&&/\%/.test(G)?rw6(G):G}#J(){let Y={},X=Object.keys(this.#X[0][this.routeIndex][1]);for(let G of X){let J=this.#Q(this.#X[0][this.routeIndex][1][G]);if(J!==void 0)Y[G]=/\%/.test(J)?rw6(J):J}return Y}#Q(Y){return this.#X[1]?this.#X[1][Y]:Y}query(Y){return iw6(this.url,Y)}queries(Y){return aw6(this.url,Y)}header(Y){if(Y)return this.raw.headers.get(Y)??void 0;let X={};return this.raw.headers.forEach((G,J)=>{X[J]=G}),X}async parseBody(Y){return gw6(this,Y)}#W=(Y)=>{let{bodyCache:X,raw:G}=this,J=X[Y];if(J)return J;let Q=Object.keys(X)[0];if(Q)return X[Q].then((Z)=>{if(Q==="json")Z=JSON.stringify(Z);return new Response(Z)[Y]()});return X[Y]=G[Y]()};json(){return this.#W("text").then((Y)=>JSON.parse(Y))}text(){return this.#W("text")}arrayBuffer(){return this.#W("arrayBuffer")}blob(){return this.#W("blob")}formData(){return this.#W("formData")}addValidatedData(Y,X){this.#Y[Y]=X}valid(Y){return this.#Y[Y]}get url(){return this.raw.url}get method(){return this.raw.method}get[xw6](){return this.#X}get matchedRoutes(){return this.#X[0].map(([[,Y]])=>Y)}get routePath(){return this.#X[0].map(([[,Y]])=>Y)[this.routeIndex].path}}});var gZ1,ow6=(Y,X)=>{let G=new String(Y);return G.isEscaped=!0,G.callbacks=X,G},Wi=async(Y,X,G,J,Q)=>{if(typeof Y==="object"&&!(Y instanceof String)){if(!(Y instanceof Promise))Y=Y.toString();if(Y instanceof Promise)Y=await Y}let Z=Y.callbacks;if(!Z?.length)return Promise.resolve(Y);if(Q)Q[0]+=Y;else Q=[Y];let W=Promise.all(Z.map(($)=>$({phase:X,buffer:Q,context:J}))).then(($)=>Promise.all($.filter(Boolean).map((H)=>Wi(H,X,!1,J,Q))).then(()=>Q[0]));if(G)return ow6(await W,Z);else return W};var mZ1=w(()=>{gZ1={Stringify:1,BeforeStream:2,Stream:3}});var sw6="text/plain; charset=UTF-8",Ep1=(Y,X)=>{return{"Content-Type":Y,...X}},Zi=(Y,X)=>new Response(Y,X),tw6=class{#Y;#X;env={};#G;finalized=!1;error;#J;#Q;#W;#$;#Z;#H;#K;#V;#U;constructor(Y,X){if(this.#Y=Y,X)this.#Q=X.executionCtx,this.env=X.env,this.#H=X.notFoundHandler,this.#U=X.path,this.#V=X.matchResult}get req(){return this.#X??=new bZ1(this.#Y,this.#U,this.#V),this.#X}get event(){if(this.#Q&&"respondWith"in this.#Q)return this.#Q;else throw Error("This context has no FetchEvent")}get executionCtx(){if(this.#Q)return this.#Q;else throw Error("This context has no ExecutionContext")}get res(){return this.#W||=Zi(null,{headers:this.#K??=new Headers})}set res(Y){if(this.#W&&Y){Y=Zi(Y.body,Y);for(let[X,G]of this.#W.headers.entries()){if(X==="content-type")continue;if(X==="set-cookie"){let J=this.#W.headers.getSetCookie();Y.headers.delete("set-cookie");for(let Q of J)Y.headers.append("set-cookie",Q)}else Y.headers.set(X,G)}}this.#W=Y,this.finalized=!0}render=(...Y)=>{return this.#Z??=(X)=>this.html(X),this.#Z(...Y)};setLayout=(Y)=>this.#$=Y;getLayout=()=>this.#$;setRenderer=(Y)=>{this.#Z=Y};header=(Y,X,G)=>{if(this.finalized)this.#W=Zi(this.#W.body,this.#W);let J=this.#W?this.#W.headers:this.#K??=new Headers;if(X===void 0)J.delete(Y);else if(G?.append)J.append(Y,X);else J.set(Y,X)};status=(Y)=>{this.#J=Y};set=(Y,X)=>{this.#G??=new Map,this.#G.set(Y,X)};get=(Y)=>{return this.#G?this.#G.get(Y):void 0};get var(){if(!this.#G)return{};return Object.fromEntries(this.#G)}#F(Y,X,G){let J=this.#W?new Headers(this.#W.headers):this.#K??new Headers;if(typeof X==="object"&&"headers"in X){let Z=X.headers instanceof Headers?X.headers:new Headers(X.headers);for(let[W,$]of Z)if(W.toLowerCase()==="set-cookie")J.append(W,$);else J.set(W,$)}if(G)for(let[Z,W]of Object.entries(G))if(typeof W==="string")J.set(Z,W);else{J.delete(Z);for(let $ of W)J.append(Z,$)}let Q=typeof X==="number"?X:X?.status??this.#J;return Zi(Y,{status:Q,headers:J})}newResponse=(...Y)=>this.#F(...Y);body=(Y,X,G)=>this.#F(Y,X,G);text=(Y,X,G)=>{return!this.#K&&!this.#J&&!X&&!G&&!this.finalized?new Response(Y):this.#F(Y,X,Ep1(sw6,G))};json=(Y,X,G)=>{return this.#F(JSON.stringify(Y),X,Ep1("application/json",G))};html=(Y,X,G)=>{let J=(Q)=>this.#F(Q,X,Ep1("text/html; charset=UTF-8",G));return typeof Y==="object"?Wi(Y,gZ1.Stringify,!1,{}).then(J):J(Y)};redirect=(Y,X)=>{let G=String(Y);return this.header("Location",!/[^\x00-\xFF]/.test(G)?G:encodeURI(G)),this.newResponse(null,X??302)};notFound=()=>{return this.#H??=()=>Zi(),this.#H(this)}};var lZ1=w(()=>{Dp1();mZ1()});var J7="ALL",ew6="all",YA6,dZ1="Can not add a route since the matcher is already built.",cZ1;var Kw=w(()=>{YA6=["get","post","put","delete","options","patch"],cZ1=class extends Error{}});var Pp1="__COMPOSED_HANDLER";var Tp1=()=>{};var A$5=(Y)=>{return Y.text("404 Not Found",404)},XA6=(Y,X)=>{if("getResponse"in Y){let G=Y.getResponse();return X.newResponse(G.body,G)}return console.error(Y),X.text("Internal Server Error",500)},GA6=class Y{get;post;put;delete;options;patch;all;on;use;router;getPath;_basePath="/";#Y="/";routes=[];constructor(X={}){[...YA6,ew6].forEach((Z)=>{this[Z]=(W,...$)=>{if(typeof W==="string")this.#Y=W;else this.#J(Z,this.#Y,W);return $.forEach((H)=>{this.#J(Z,this.#Y,H)}),this}}),this.on=(Z,W,...$)=>{for(let H of[W].flat()){this.#Y=H;for(let K of[Z].flat())$.map((V)=>{this.#J(K.toUpperCase(),this.#Y,V)})}return this},this.use=(Z,...W)=>{if(typeof Z==="string")this.#Y=Z;else this.#Y="*",W.unshift(Z);return W.forEach(($)=>{this.#J(J7,this.#Y,$)}),this};let{strict:J,...Q}=X;Object.assign(this,Q),this.getPath=J??!0?X.getPath??Mp1:pw6}#X(){let X=new Y({router:this.router,getPath:this.getPath});return X.errorHandler=this.errorHandler,X.#G=this.#G,X.routes=this.routes,X}#G=A$5;errorHandler=XA6;route(X,G){let J=this.basePath(X);return G.routes.map((Q)=>{let Z;if(G.errorHandler===XA6)Z=Q.handler;else Z=async(W,$)=>(await Lp1([],G.errorHandler)(W,()=>Q.handler(W,$))).res,Z[Pp1]=Q.handler;J.#J(Q.method,Q.path,Z)}),this}basePath(X){let G=this.#X();return G._basePath=sP(this._basePath,X),G}onError=(X)=>{return this.errorHandler=X,this};notFound=(X)=>{return this.#G=X,this};mount(X,G,J){let Q,Z;if(J)if(typeof J==="function")Z=J;else if(Z=J.optionHandler,J.replaceRequest===!1)Q=(H)=>H;else Q=J.replaceRequest;let W=Z?(H)=>{let K=Z(H);return Array.isArray(K)?K:[K]}:(H)=>{let K=void 0;try{K=H.executionCtx}catch{}return[H.env,K]};Q||=(()=>{let H=sP(this._basePath,X),K=H==="/"?0:H.length;return(V)=>{let U=new URL(V.url);return U.pathname=U.pathname.slice(K)||"/",new Request(U,V)}})();let $=async(H,K)=>{let V=await G(Q(H.req.raw),...W(H));if(V)return V;await K()};return this.#J(J7,sP(X,"*"),$),this}#J(X,G,J){X=X.toUpperCase(),G=sP(this._basePath,G);let Q={basePath:this._basePath,path:G,method:X,handler:J};this.router.add(X,G,[J,Q]),this.routes.push(Q)}#Q(X,G){if(X instanceof Error)return this.errorHandler(X,G);throw X}#W(X,G,J,Q){if(Q==="HEAD")return(async()=>new Response(null,await this.#W(X,G,J,"GET")))();let Z=this.getPath(X,{env:J}),W=this.router.match(Q,Z),$=new tw6(X,{path:Z,matchResult:W,env:J,executionCtx:G,notFoundHandler:this.#G});if(W[0].length===1){let K;try{K=W[0][0][0][0]($,async()=>{$.res=await this.#G($)})}catch(V){return this.#Q(V,$)}return K instanceof Promise?K.then((V)=>V||($.finalized?$.res:this.#G($))).catch((V)=>this.#Q(V,$)):K??this.#G($)}let H=Lp1(W[0],this.errorHandler,this.#G);return(async()=>{try{let K=await H($);if(!K.finalized)throw Error("Context is not finalized. Did you forget to return a Response object or `await next()`?");return K.res}catch(K){return this.#Q(K,$)}})()}fetch=(X,...G)=>{return this.#W(X,G[1],G[0],X.method)};request=(X,G,J,Q)=>{if(X instanceof Request)return this.fetch(G?new Request(X,G):X,J,Q);return X=X.toString(),this.fetch(new Request(/^https?:\/\//.test(X)?X:`http://localhost${sP("/",X)}`,G),J,Q)};fire=()=>{addEventListener("fetch",(X)=>{X.respondWith(this.#W(X.request,X,void 0,X.request.method))})}};var JA6=w(()=>{bw6();lZ1();Kw();Tp1();Hw()});function pZ1(Y,X){let G=this.buildAllMatchers(),J=(Q,Z)=>{let W=G[Q]||G[J7],$=W[2][Z];if($)return $;let H=Z.match(W[0]);if(!H)return[[],$i];let K=H.indexOf("",1);return[W[1][K],H]};return this.match=J,J(Y,X)}var $i;var Rp1=w(()=>{Kw();$i=[]});function E$5(Y,X){if(Y.length===1)return X.length===1?Y<X?-1:1:-1;if(X.length===1)return 1;if(Y===Hi||Y===Ki)return 1;else if(X===Hi||X===Ki)return-1;if(Y===nZ1)return 1;else if(X===nZ1)return-1;return Y.length===X.length?Y<X?-1:1:X.length-Y.length}var nZ1="[^/]+",Hi=".*",Ki="(?:|/.*)",tP,M$5,QA6=class Y{#Y;#X;#G=Object.create(null);insert(X,G,J,Q,Z){if(X.length===0){if(this.#Y!==void 0)throw tP;if(Z)return;this.#Y=G;return}let[W,...$]=X,H=W==="*"?$.length===0?["","",Hi]:["","",nZ1]:W==="/*"?["","",Ki]:W.match(/^\:([^\{\}]+)(?:\{(.+)\})?$/),K;if(H){let V=H[1],U=H[2]||nZ1;if(V&&H[2]){if(U===".*")throw tP;if(U=U.replace(/^\((?!\?:)(?=[^)]+\)$)/,"(?:"),/\((?!\?:)/.test(U))throw tP}if(K=this.#G[U],!K){if(Object.keys(this.#G).some((O)=>O!==Hi&&O!==Ki))throw tP;if(Z)return;if(K=this.#G[U]=new Y,V!=="")K.#X=Q.varIndex++}if(!Z&&V!=="")J.push([V,K.#X])}else if(K=this.#G[W],!K){if(Object.keys(this.#G).some((V)=>V.length>1&&V!==Hi&&V!==Ki))throw tP;if(Z)return;K=this.#G[W]=new Y}K.insert($,G,J,Q,Z)}buildRegExpStr(){let G=Object.keys(this.#G).sort(E$5).map((J)=>{let Q=this.#G[J];return(typeof Q.#X==="number"?`(${J})@${Q.#X}`:M$5.has(J)?`\\${J}`:J)+Q.buildRegExpStr()});if(typeof this.#Y==="number")G.unshift(`#${this.#Y}`);if(G.length===0)return"";if(G.length===1)return G[0];return"(?:"+G.join("|")+")"}};var Cp1=w(()=>{tP=Symbol(),M$5=new Set(".\\+*[^]$()")});var WA6=class{#Y={varIndex:0};#X=new QA6;insert(Y,X,G){let J=[],Q=[];for(let W=0;;){let $=!1;if(Y=Y.replace(/\{[^}]+\}/g,(H)=>{let K=`@\\${W}`;return Q[W]=[K,H],W++,$=!0,K}),!$)break}let Z=Y.match(/(?::[^\/]+)|(?:\/\*$)|./g)||[];for(let W=Q.length-1;W>=0;W--){let[$]=Q[W];for(let H=Z.length-1;H>=0;H--)if(Z[H].indexOf($)!==-1){Z[H]=Z[H].replace($,Q[W][1]);break}}return this.#X.insert(Z,X,J,this.#Y,G),J}buildRegExp(){let Y=this.#X.buildRegExpStr();if(Y==="")return[/^$/,[],[]];let X=0,G=[],J=[];return Y=Y.replace(/#(\d+)|@(\d+)|\.\*\$/g,(Q,Z,W)=>{if(Z!==void 0)return G[++X]=Number(Z),"$()";if(W!==void 0)return J[Number(W)]=++X,"";return""}),[new RegExp(`^${Y}`),G,J]}};var ZA6=w(()=>{Cp1()});function HA6(Y){return $A6[Y]??=new RegExp(Y==="*"?"":`^${Y.replace(/\/\*$|([.\\+*[^\]$()])/g,(X,G)=>G?`\\${G}`:"(?:|/.*)")}$`)}function T$5(){$A6=Object.create(null)}function R$5(Y){let X=new WA6,G=[];if(Y.length===0)return P$5;let J=Y.map((K)=>[!/\*|\/:/.test(K[0]),...K]).sort(([K,V],[U,O])=>K?1:U?-1:V.length-O.length),Q=Object.create(null);for(let K=0,V=-1,U=J.length;K<U;K++){let[O,B,N]=J[K];if(O)Q[B]=[N.map(([L])=>[L,Object.create(null)]),$i];else V++;let q;try{q=X.insert(B,V,O)}catch(L){throw L===tP?new cZ1(B):L}if(O)continue;G[V]=N.map(([L,D])=>{let E=Object.create(null);D-=1;for(;D>=0;D--){let[R,C]=q[D];E[R]=C}return[L,E]})}let[Z,W,$]=X.buildRegExp();for(let K=0,V=G.length;K<V;K++)for(let U=0,O=G[K].length;U<O;U++){let B=G[K][U]?.[1];if(!B)continue;let N=Object.keys(B);for(let q=0,L=N.length;q<L;q++)B[N[q]]=$[B[N[q]]]}let H=[];for(let K in W)H[K]=G[W[K]];return[Z,H,Q]}function bk(Y,X){if(!Y)return;for(let G of Object.keys(Y).sort((J,Q)=>Q.length-J.length))if(HA6(G).test(X))return[...Y[G]];return}var P$5,$A6,iZ1=class{name="RegExpRouter";#Y;#X;constructor(){this.#Y={[J7]:Object.create(null)},this.#X={[J7]:Object.create(null)}}add(Y,X,G){let J=this.#Y,Q=this.#X;if(!J||!Q)throw Error(dZ1);if(!J[Y])[J,Q].forEach(($)=>{$[Y]=Object.create(null),Object.keys($[J7]).forEach((H)=>{$[Y][H]=[...$[J7][H]]})});if(X==="/*")X="*";let Z=(X.match(/\/:/g)||[]).length;if(/\*$/.test(X)){let $=HA6(X);if(Y===J7)Object.keys(J).forEach((H)=>{J[H][X]||=bk(J[H],X)||bk(J[J7],X)||[]});else J[Y][X]||=bk(J[Y],X)||bk(J[J7],X)||[];Object.keys(J).forEach((H)=>{if(Y===J7||Y===H)Object.keys(J[H]).forEach((K)=>{$.test(K)&&J[H][K].push([G,Z])})}),Object.keys(Q).forEach((H)=>{if(Y===J7||Y===H)Object.keys(Q[H]).forEach((K)=>$.test(K)&&Q[H][K].push([G,Z]))});return}let W=uZ1(X)||[X];for(let $=0,H=W.length;$<H;$++){let K=W[$];Object.keys(Q).forEach((V)=>{if(Y===J7||Y===V)Q[V][K]||=[...bk(J[V],K)||bk(J[J7],K)||[]],Q[V][K].push([G,Z-H+$+1])})}}match=pZ1;buildAllMatchers(){let Y=Object.create(null);return Object.keys(this.#X).concat(Object.keys(this.#Y)).forEach((X)=>{Y[X]||=this.#G(X)}),this.#Y=this.#X=void 0,T$5(),Y}#G(Y){let X=[],G=Y===J7;if([this.#Y,this.#X].forEach((J)=>{let Q=J[Y]?Object.keys(J[Y]).map((Z)=>[Z,J[Y][Z]]):[];if(Q.length!==0)G||=!0,X.push(...Q);else if(Y!==J7)X.push(...Object.keys(J[J7]).map((Z)=>[Z,J[J7][Z]]))}),!G)return null;else return R$5(X)}};var Sp1=w(()=>{Kw();Hw();Rp1();Cp1();ZA6();P$5=[/^$/,[],Object.create(null)],$A6=Object.create(null)});var C$5=class{name="PreparedRegExpRouter";#Y;#X;constructor(Y,X){this.#Y=Y,this.#X=X}#G(Y,X){let G=this.#Y[Y];G[1].forEach((J)=>J&&J.push(X)),Object.values(G[2]).forEach((J)=>J[0].push(X))}#J(Y,X,G,J,Q){let Z=this.#Y[Y];if(!Q)Z[2][X][0].push([G,{}]);else J.forEach((W)=>{if(typeof W==="number")Z[1][W].push([G,Q]);else Z[2][W||X][0].push([G,Q])})}add(Y,X,G){if(!this.#Y[Y]){let Q=this.#Y[J7],Z={};for(let W in Q[2])Z[W]=[Q[2][W][0].slice(),$i];this.#Y[Y]=[Q[0],Q[1].map((W)=>Array.isArray(W)?W.slice():0),Z]}if(X==="/*"||X==="*"){let Q=[G,{}];if(Y===J7)for(let Z in this.#Y)this.#G(Z,Q);else this.#G(Y,Q);return}let J=this.#X[X];if(!J)throw Error(`Path ${X} is not registered`);for(let[Q,Z]of J)if(Y===J7)for(let W in this.#Y)this.#J(W,X,G,Q,Z);else this.#J(Y,X,G,Q,Z)}buildAllMatchers(){return this.#Y}match=pZ1};var KA6=w(()=>{Kw();Rp1();Sp1()});var FA6=w(()=>{Sp1();KA6()});var jp1=class{name="SmartRouter";#Y=[];#X=[];constructor(Y){this.#Y=Y.routers}add(Y,X,G){if(!this.#X)throw Error(dZ1);this.#X.push([Y,X,G])}match(Y,X){if(!this.#X)throw Error("Fatal error");let G=this.#Y,J=this.#X,Q=G.length,Z=0,W;for(;Z<Q;Z++){let $=G[Z];try{for(let H=0,K=J.length;H<K;H++)$.add(...J[H]);W=$.match(Y,X)}catch(H){if(H instanceof cZ1)continue;throw H}this.match=$.match.bind($),this.#Y=[$],this.#X=void 0;break}if(Z===Q)throw Error("Fatal error");return this.name=`SmartRouter + ${this.activeRouter.name}`,W}get activeRouter(){if(this.#X||this.#Y.length!==1)throw Error("No active router has been determined yet.");return this.#Y[0]}};var VA6=w(()=>{Kw()});var UA6=w(()=>{VA6()});var Fi,S$5=(Y)=>{for(let X in Y)return!0;return!1},OA6=class Y{#Y;#X;#G;#J=0;#Q=Fi;constructor(X,G,J){if(this.#X=J||Object.create(null),this.#Y=[],X&&G){let Q=Object.create(null);Q[X]={handler:G,possibleKeys:[],score:0},this.#Y=[Q]}this.#G=[]}insert(X,G,J){this.#J=++this.#J;let Q=this,Z=lw6(G),W=[];for(let $=0,H=Z.length;$<H;$++){let K=Z[$],V=Z[$+1],U=dw6(K,V),O=Array.isArray(U)?U[0]:K;if(O in Q.#X){if(Q=Q.#X[O],U)W.push(U[1]);continue}if(Q.#X[O]=new Y,U)Q.#G.push(U),W.push(U[1]);Q=Q.#X[O]}return Q.#Y.push({[X]:{handler:J,possibleKeys:W.filter(($,H,K)=>K.indexOf($)===H),score:this.#J}}),Q}#W(X,G,J,Q,Z){for(let W=0,$=G.#Y.length;W<$;W++){let H=G.#Y[W],K=H[J]||H[J7],V={};if(K!==void 0){if(K.params=Object.create(null),X.push(K),Q!==Fi||Z&&Z!==Fi)for(let U=0,O=K.possibleKeys.length;U<O;U++){let B=K.possibleKeys[U],N=V[K.score];K.params[B]=Z?.[B]&&!N?Z[B]:Q[B]??Z?.[B],V[K.score]=!0}}}}search(X,G){let J=[];this.#Q=Fi;let Z=[this],W=Ap1(G),$=[],H=W.length,K=null;for(let V=0;V<H;V++){let U=W[V],O=V===H-1,B=[];for(let q=0,L=Z.length;q<L;q++){let D=Z[q],E=D.#X[U];if(E)if(E.#Q=D.#Q,O){if(E.#X["*"])this.#W(J,E.#X["*"],X,D.#Q);this.#W(J,E,X,D.#Q)}else B.push(E);for(let R=0,C=D.#G.length;R<C;R++){let T=D.#G[R],j=D.#Q===Fi?{}:{...D.#Q};if(T==="*"){let u=D.#X["*"];if(u)this.#W(J,u,X,D.#Q),u.#Q=j,B.push(u);continue}let[_,k,f]=T;if(!U&&!(f instanceof RegExp))continue;let y=D.#X[_];if(f instanceof RegExp){if(K===null){K=Array(H);let n=G[0]==="/"?1:0;for(let v=0;v<H;v++)K[v]=n,n+=W[v].length+1}let u=G.substring(K[V]),p=f.exec(u);if(p){if(j[k]=p[0],this.#W(J,y,X,D.#Q,j),S$5(y.#X)){y.#Q=j;let n=p[0].match(/\//)?.length??0;($[n]||=[]).push(y)}continue}}if(f===!0||f.test(U))if(j[k]=U,O){if(this.#W(J,y,X,j,D.#Q),y.#X["*"])this.#W(J,y.#X["*"],X,j,D.#Q)}else y.#Q=j,B.push(y)}}let N=$.shift();Z=N?B.concat(N):B}if(J.length>1)J.sort((V,U)=>{return V.score-U.score});return[J.map(({handler:V,params:U})=>[V,U])]}};var BA6=w(()=>{Kw();Hw();Fi=Object.create(null)});var Ip1=class{name="TrieRouter";#Y;constructor(){this.#Y=new OA6}add(Y,X,G){let J=uZ1(X);if(J){for(let Q=0,Z=J.length;Q<Z;Q++)this.#Y.insert(Y,J[Q],G);return}this.#Y.insert(Y,X,G)}match(Y,X){return this.#Y.search(Y,X)}};var NA6=w(()=>{Hw();BA6()});var qA6=w(()=>{NA6()});var V5;var zA6=w(()=>{JA6();FA6();UA6();qA6();V5=class extends GA6{constructor(Y={}){super(Y);this.router=Y.router??new jp1({routers:[new iZ1,new Ip1]})}}});var IG=w(()=>{zA6()});var DA6,j$5,LA6=(Y)=>{let X=0,G=Y.length;while(X<G){let J=Y.charCodeAt(X);if(J!==32&&J!==9)break;X++}while(G>X){let J=Y.charCodeAt(G-1);if(J!==32&&J!==9)break;G--}return X===0&&G===Y.length?Y:Y.slice(X,G)},_p1=(Y,X)=>{if(X&&Y.indexOf(X)===-1)return{};let G=Y.split(";"),J={};for(let Q of G){let Z=Q.indexOf("=");if(Z===-1)continue;let W=LA6(Q.substring(0,Z));if(X&&X!==W||!DA6.test(W))continue;let $=LA6(Q.substring(Z+1));if($.startsWith('"')&&$.endsWith('"'))$=$.slice(1,-1);if(j$5.test($)){if(J[W]=$.indexOf("%")!==-1?yk($,Qi):$,X)break}}return J},I$5=(Y,X,G={})=>{if(!DA6.test(Y))throw Error("Invalid cookie name");let J=`${Y}=${X}`;if(Y.startsWith("__Secure-")&&!G.secure)throw Error("__Secure- Cookie must have Secure attributes");if(Y.startsWith("__Host-")){if(!G.secure)throw Error("__Host- Cookie must have Secure attributes");if(G.path!=="/")throw Error('__Host- Cookie must have Path attributes with "/"');if(G.domain)throw Error("__Host- Cookie must not have Domain attributes")}for(let Q of["domain","path"])if(G[Q]&&/[;\r\n]/.test(G[Q]))throw Error(`${Q} must not contain ";", "\\r", or "\\n"`);if(G&&typeof G.maxAge==="number"&&G.maxAge>=0){if(G.maxAge>34560000)throw Error("Cookies Max-Age SHOULD NOT be greater than 400 days (34560000 seconds) in duration.");J+=`; Max-Age=${G.maxAge|0}`}if(G.domain&&G.prefix!=="host")J+=`; Domain=${G.domain}`;if(G.path)J+=`; Path=${G.path}`;if(G.expires){if(G.expires.getTime()-Date.now()>34560000000)throw Error("Cookies Expires SHOULD NOT be greater than 400 days (34560000 seconds) in the future.");J+=`; Expires=${G.expires.toUTCString()}`}if(G.httpOnly)J+="; HttpOnly";if(G.secure)J+="; Secure";if(G.sameSite)J+=`; SameSite=${G.sameSite.charAt(0).toUpperCase()+G.sameSite.slice(1)}`;if(G.priority)J+=`; Priority=${G.priority.charAt(0).toUpperCase()+G.priority.slice(1)}`;if(G.partitioned){if(!G.secure)throw Error("Partitioned Cookie must have Secure attributes");J+="; Partitioned"}return J},aZ1=(Y,X,G)=>{return X=encodeURIComponent(X),I$5(Y,X,G)};var wA6=w(()=>{Hw();DA6=/^[\w!#$%&'*.^`|~+-]+$/,j$5=/^[ !#-:<-[\]-~]*$/});var rZ1=(Y,X,G)=>{let J=Y.req.raw.headers.get("Cookie");if(typeof X==="string"){if(!J)return;let Z=X;if(G==="secure")Z="__Secure-"+X;else if(G==="host")Z="__Host-"+X;return _p1(J,Z)[Z]}if(!J)return{};return _p1(J)},_$5=(Y,X,G)=>{let J;if(G?.prefix==="secure")J=aZ1("__Secure-"+Y,X,{path:"/",...G,secure:!0});else if(G?.prefix==="host")J=aZ1("__Host-"+Y,X,{...G,path:"/",secure:!0,domain:void 0});else J=aZ1(Y,X,{path:"/",...G});return J},fp1=(Y,X,G,J)=>{let Q=_$5(X,G,J);Y.header("Set-Cookie",Q,{append:!0})};var kp1=w(()=>{wA6()});var AA6=(Y)=>{let G={...{origin:"*",allowMethods:["GET","HEAD","PUT","POST","DELETE","PATCH"],allowHeaders:[],exposeHeaders:[]},...Y},J=((Z)=>{if(typeof Z==="string")if(Z==="*"){if(G.credentials)return(W)=>W||null;return()=>Z}else return(W)=>Z===W?W:null;else if(typeof Z==="function")return Z;else return(W)=>Z.includes(W)?W:null})(G.origin),Q=((Z)=>{if(typeof Z==="function")return Z;else if(Array.isArray(Z))return()=>Z;else return()=>[]})(G.allowMethods);return async function(W,$){function H(V,U){W.res.headers.set(V,U)}let K=await J(W.req.header("origin")||"",W);if(K)H("Access-Control-Allow-Origin",K);if(G.credentials)H("Access-Control-Allow-Credentials","true");if(G.exposeHeaders?.length)H("Access-Control-Expose-Headers",G.exposeHeaders.join(","));if(W.req.method==="OPTIONS"){if(G.origin!=="*"||G.credentials)H("Vary","Origin");if(G.maxAge!=null)H("Access-Control-Max-Age",G.maxAge.toString());let V=await Q(W.req.header("origin")||"",W);if(V.length)H("Access-Control-Allow-Methods",V.join(","));let U=G.allowHeaders;if(!U?.length){let O=W.req.header("Access-Control-Request-Headers");if(O)U=O.split(/\s*,\s*/)}if(U?.length)H("Access-Control-Allow-Headers",U.join(",")),W.res.headers.append("Vary","Access-Control-Request-Headers");return W.res.headers.delete("Content-Length"),W.res.headers.delete("Content-Type"),new Response(null,{headers:W.res.headers,status:204,statusText:"No Content"})}if(await $(),G.origin!=="*"||G.credentials)W.header("Vary","Origin",{append:!0})}};var MA6=()=>{};var EA6=()=>{try{return performance.now()}catch{}return Date.now()},vp1=(Y)=>{let X={total:!0,enabled:!0,totalDescription:"Total Response Time",autoEnd:!0,crossOrigin:!1,...Y};return async function(J,Q){let Z=[],W=new Map;if(J.get("metric"))return await Q();if(J.set("metric",{headers:Z,timers:W}),X.total)wH(J,"total",X.totalDescription);if(await Q(),X.total)nZ(J,"total");if(X.autoEnd)W.forEach((H,K)=>nZ(J,K));if(typeof X.enabled==="function"?X.enabled(J):X.enabled){J.res.headers.append("Server-Timing",Z.join(","));let H=typeof X.crossOrigin==="function"?X.crossOrigin(J):X.crossOrigin;if(H)J.res.headers.append("Timing-Allow-Origin",typeof H==="string"?H:"*")}}},PA6=(Y,X,G,J,Q)=>{let Z=Y.get("metric");if(!Z){console.warn("Metrics not initialized! Please add the `timing()` middleware to this route!");return}if(typeof G==="number"){let W=G.toFixed(Q||1),$=J?`${X};dur=${W};desc="${J}"`:`${X};dur=${W}`;Z.headers.push($)}else{let W=G?`${X};desc="${G}"`:`${X}`;Z.headers.push(W)}},wH=(Y,X,G)=>{let J=Y.get("metric");if(!J){console.warn("Metrics not initialized! Please add the `timing()` middleware to this route!");return}J.timers.set(X,{description:G,start:EA6()})},nZ=(Y,X,G)=>{let J=Y.get("metric");if(!J){console.warn("Metrics not initialized! Please add the `timing()` middleware to this route!");return}let Q=J.timers.get(X);if(!Q){console.warn(`Timer "${X}" does not exist!`);return}let{description:Z,start:W}=Q,$=EA6()-W;PA6(Y,X,$,Z,G),J.timers.delete(X)};var TA6=w(()=>{lZ1()});var hp1=w(()=>{TA6()});function Vi(){let Y={Organizations:[],Connections:[],"Virtual MCPs":[],Threads:[],Monitoring:[],Users:[],"API Keys":[],"Event Bus":[],Tags:[],"AI Providers":[],Automations:[],"Object Storage":[],Registry:[],GitHub:[],VM:[]};for(let X of yp1)Y[X.category]?.push(X);return Y}var yp1;var bp1=w(()=>{yp1=[{name:"ORGANIZATION_CREATE",description:"Create a new organization",category:"Organizations"},{name:"ORGANIZATION_LIST",description:"List organizations",category:"Organizations"},{name:"ORGANIZATION_GET",description:"View organization details",category:"Organizations"},{name:"ORGANIZATION_UPDATE",description:"Update organization",category:"Organizations"},{name:"ORGANIZATION_DELETE",description:"Delete organization",category:"Organizations",dangerous:!0},{name:"ORGANIZATION_SETTINGS_GET",description:"View organization settings",category:"Organizations"},{name:"ORGANIZATION_SETTINGS_UPDATE",description:"Update organization settings",category:"Organizations"},{name:"BRAND_CONTEXT_LIST",description:"List brand contexts",category:"Organizations"},{name:"BRAND_CONTEXT_GET",description:"View brand context",category:"Organizations"},{name:"BRAND_CONTEXT_CREATE",description:"Create brand context",category:"Organizations"},{name:"BRAND_CONTEXT_UPDATE",description:"Update brand context",category:"Organizations"},{name:"BRAND_CONTEXT_DELETE",description:"Delete brand context",category:"Organizations",dangerous:!0},{name:"BRAND_CONTEXT_EXTRACT",description:"Extract brand context from website",category:"Organizations"},{name:"BRAND_GET",description:"Get brand (binding)",category:"Organizations"},{name:"BRAND_LIST",description:"List brands (binding)",category:"Organizations"},{name:"ORGANIZATION_DOMAIN_GET",description:"Get organization domain claim",category:"Organizations"},{name:"ORGANIZATION_DOMAIN_SET",description:"Set organization domain claim",category:"Organizations"},{name:"ORGANIZATION_DOMAIN_UPDATE",description:"Update organization domain settings",category:"Organizations"},{name:"ORGANIZATION_DOMAIN_CLEAR",description:"Clear organization domain claim",category:"Organizations"},{name:"ORGANIZATION_MEMBER_ADD",description:"Add members",category:"Organizations"},{name:"ORGANIZATION_MEMBER_REMOVE",description:"Remove members",category:"Organizations",dangerous:!0},{name:"ORGANIZATION_MEMBER_LIST",description:"List members",category:"Organizations"},{name:"ORGANIZATION_MEMBER_UPDATE_ROLE",description:"Update member roles",category:"Organizations"},{name:"COLLECTION_CONNECTIONS_CREATE",description:"Create connections",category:"Connections"},{name:"COLLECTION_CONNECTIONS_LIST",description:"List connections",category:"Connections"},{name:"COLLECTION_CONNECTIONS_GET",description:"View connection details",category:"Connections"},{name:"COLLECTION_CONNECTIONS_UPDATE",description:"Update connections",category:"Connections"},{name:"COLLECTION_CONNECTIONS_DELETE",description:"Delete connections",category:"Connections",dangerous:!0},{name:"CONNECTION_TEST",description:"Test connections",category:"Connections"},{name:"DATABASES_RUN_SQL",description:"Run SQL queries",category:"Connections",dangerous:!0},{name:"COLLECTION_VIRTUAL_MCP_CREATE",description:"Create virtual MCPs",category:"Virtual MCPs"},{name:"COLLECTION_VIRTUAL_MCP_LIST",description:"List virtual MCPs",category:"Virtual MCPs"},{name:"COLLECTION_VIRTUAL_MCP_GET",description:"View virtual MCP details",category:"Virtual MCPs"},{name:"COLLECTION_VIRTUAL_MCP_UPDATE",description:"Update virtual MCPs",category:"Virtual MCPs"},{name:"COLLECTION_VIRTUAL_MCP_DELETE",description:"Delete virtual MCPs",category:"Virtual MCPs",dangerous:!0},{name:"MONITORING_LOG_GET",description:"View monitoring log details",category:"Monitoring"},{name:"MONITORING_LOGS_LIST",description:"List monitoring logs",category:"Monitoring"},{name:"MONITORING_STATS",description:"View monitoring statistics",category:"Monitoring"},{name:"API_KEY_CREATE",description:"Create API key",category:"API Keys"},{name:"API_KEY_LIST",description:"List API keys",category:"API Keys"},{name:"API_KEY_UPDATE",description:"Update API key",category:"API Keys"},{name:"API_KEY_DELETE",description:"Delete API key",category:"API Keys",dangerous:!0},{name:"EVENT_PUBLISH",description:"Publish events",category:"Event Bus"},{name:"EVENT_SUBSCRIBE",description:"Subscribe to events",category:"Event Bus"},{name:"EVENT_UNSUBSCRIBE",description:"Unsubscribe from events",category:"Event Bus"},{name:"EVENT_CANCEL",description:"Cancel recurring events",category:"Event Bus"},{name:"EVENT_ACK",description:"Acknowledge event delivery",category:"Event Bus"},{name:"EVENT_SUBSCRIPTION_LIST",description:"List event subscriptions",category:"Event Bus"},{name:"EVENT_SYNC_SUBSCRIPTIONS",description:"Sync subscriptions to desired state",category:"Event Bus"},{name:"USER_GET",description:"Get a user by id",category:"Users"},{name:"COLLECTION_THREADS_CREATE",description:"Create threads",category:"Threads"},{name:"COLLECTION_THREADS_LIST",description:"List threads",category:"Threads"},{name:"COLLECTION_THREADS_GET",description:"View thread details",category:"Threads"},{name:"COLLECTION_THREADS_UPDATE",description:"Update threads",category:"Threads"},{name:"COLLECTION_THREADS_DELETE",description:"Delete threads",category:"Threads",dangerous:!0},{name:"COLLECTION_THREAD_MESSAGES_LIST",description:"List thread messages",category:"Threads"},{name:"TAGS_LIST",description:"List organization tags",category:"Tags"},{name:"TAGS_CREATE",description:"Create organization tag",category:"Tags"},{name:"TAGS_DELETE",description:"Delete organization tag",category:"Tags",dangerous:!0},{name:"MEMBER_TAGS_GET",description:"Get member tags",category:"Tags"},{name:"MEMBER_TAGS_SET",description:"Set member tags",category:"Tags"},{name:"AUTOMATION_CREATE",description:"Create automation",category:"Automations"},{name:"AUTOMATION_GET",description:"View automation details",category:"Automations"},{name:"AUTOMATION_LIST",description:"List automations",category:"Automations"},{name:"AUTOMATION_UPDATE",description:"Update automation",category:"Automations"},{name:"AUTOMATION_DELETE",description:"Delete automation",category:"Automations",dangerous:!0},{name:"AUTOMATION_TRIGGER_ADD",description:"Add trigger to automation",category:"Automations"},{name:"AUTOMATION_TRIGGER_REMOVE",description:"Remove trigger from automation",category:"Automations"},{name:"AUTOMATION_RUN",description:"Manually trigger an automation run",category:"Automations"},{name:"VIRTUAL_MCP_PLUGIN_CONFIG_GET",description:"View virtual MCP plugin configuration",category:"Virtual MCPs"},{name:"VIRTUAL_MCP_PLUGIN_CONFIG_UPDATE",description:"Update virtual MCP plugin configuration",category:"Virtual MCPs"},{name:"VIRTUAL_MCP_PINNED_VIEWS_UPDATE",description:"Update virtual MCP pinned sidebar views",category:"Virtual MCPs"},{name:"AI_PROVIDERS_LIST",description:"List available AI providers",category:"AI Providers"},{name:"AI_PROVIDERS_LIST_MODELS",description:"List AI provider models",category:"AI Providers"},{name:"AI_PROVIDERS_ACTIVE",description:"List active AI providers",category:"AI Providers"},{name:"AI_PROVIDER_KEY_CREATE",description:"Store AI provider API key",category:"AI Providers"},{name:"AI_PROVIDER_KEY_LIST",description:"List AI provider API keys",category:"AI Providers"},{name:"AI_PROVIDER_KEY_DELETE",description:"Delete AI provider API key",category:"AI Providers",dangerous:!0},{name:"AI_PROVIDER_OAUTH_URL",description:"Get OAuth URL for provider",category:"AI Providers"},{name:"AI_PROVIDER_OAUTH_EXCHANGE",description:"Exchange OAuth code for API key",category:"AI Providers"},{name:"AI_PROVIDER_PROVISION_KEY",description:"Auto-provision API key for a provider",category:"AI Providers"},{name:"AI_PROVIDER_TOPUP_URL",description:"Get checkout URL to top up provider credits",category:"AI Providers"},{name:"AI_PROVIDER_CREDITS",description:"Get current credit balance for a provider",category:"AI Providers"},{name:"AI_PROVIDER_CLI_ACTIVATE",description:"Activate Claude Code via local CLI",category:"AI Providers"},{name:"LIST_OBJECTS",description:"List objects in storage",category:"Object Storage"},{name:"GET_OBJECT_METADATA",description:"Get object metadata",category:"Object Storage"},{name:"GET_PRESIGNED_URL",description:"Generate download URL",category:"Object Storage"},{name:"PUT_PRESIGNED_URL",description:"Generate upload URL",category:"Object Storage"},{name:"DELETE_OBJECT",description:"Delete object",category:"Object Storage",dangerous:!0},{name:"DELETE_OBJECTS",description:"Delete multiple objects",category:"Object Storage",dangerous:!0},{name:"COLLECTION_REGISTRY_APP_LIST",description:"List registry apps",category:"Registry"},{name:"COLLECTION_REGISTRY_APP_GET",description:"Get registry app details",category:"Registry"},{name:"COLLECTION_REGISTRY_APP_VERSIONS",description:"List registry app versions",category:"Registry"},{name:"COLLECTION_REGISTRY_APP_FILTERS",description:"Get registry app filters",category:"Registry"},{name:"REGISTRY_ITEM_LIST",description:"List private registry items",category:"Registry"},{name:"REGISTRY_ITEM_SEARCH",description:"Search registry items",category:"Registry"},{name:"REGISTRY_ITEM_GET",description:"Get registry item details",category:"Registry"},{name:"REGISTRY_ITEM_VERSIONS",description:"List registry item versions",category:"Registry"},{name:"REGISTRY_ITEM_CREATE",description:"Create registry item",category:"Registry"},{name:"REGISTRY_ITEM_BULK_CREATE",description:"Bulk create registry items",category:"Registry"},{name:"REGISTRY_ITEM_UPDATE",description:"Update registry item",category:"Registry"},{name:"REGISTRY_ITEM_DELETE",description:"Delete registry item",category:"Registry",dangerous:!0},{name:"REGISTRY_ITEM_FILTERS",description:"Get registry item filters",category:"Registry"},{name:"REGISTRY_DISCOVER_TOOLS",description:"Discover tools from MCP server",category:"Registry"},{name:"REGISTRY_AI_GENERATE",description:"AI-generate registry content",category:"Registry"},{name:"REGISTRY_PUBLISH_REQUEST_LIST",description:"List publish requests",category:"Registry"},{name:"REGISTRY_PUBLISH_REQUEST_REVIEW",description:"Review publish request",category:"Registry"},{name:"REGISTRY_PUBLISH_REQUEST_COUNT",description:"Count pending publish requests",category:"Registry"},{name:"REGISTRY_PUBLISH_REQUEST_DELETE",description:"Delete publish request",category:"Registry",dangerous:!0},{name:"REGISTRY_PUBLISH_API_KEY_GENERATE",description:"Generate publish API key",category:"Registry"},{name:"REGISTRY_PUBLISH_API_KEY_LIST",description:"List publish API keys",category:"Registry"},{name:"REGISTRY_PUBLISH_API_KEY_REVOKE",description:"Revoke publish API key",category:"Registry",dangerous:!0},{name:"REGISTRY_MONITOR_RUN_START",description:"Start monitor run",category:"Registry"},{name:"REGISTRY_MONITOR_RUN_LIST",description:"List monitor runs",category:"Registry"},{name:"REGISTRY_MONITOR_RUN_GET",description:"Get monitor run details",category:"Registry"},{name:"REGISTRY_MONITOR_RUN_CANCEL",description:"Cancel monitor run",category:"Registry"},{name:"REGISTRY_MONITOR_RESULT_LIST",description:"List monitor results",category:"Registry"},{name:"REGISTRY_MONITOR_CONNECTION_LIST",description:"List monitor connections",category:"Registry"},{name:"REGISTRY_MONITOR_CONNECTION_SYNC",description:"Sync monitor connections",category:"Registry"},{name:"REGISTRY_MONITOR_CONNECTION_UPDATE_AUTH",description:"Update monitor connection auth",category:"Registry"},{name:"REGISTRY_MONITOR_SCHEDULE_SET",description:"Set monitor schedule",category:"Registry"},{name:"REGISTRY_MONITOR_SCHEDULE_CANCEL",description:"Cancel monitor schedule",category:"Registry"},{name:"VM_START",description:"Start a Freestyle VM with dev server preview",category:"VM"},{name:"VM_DELETE",description:"Stop and delete a Freestyle VM",category:"VM"},{name:"GITHUB_LIST_USER_ORGS",description:"List GitHub user's personal account and organizations",category:"GitHub"}]});var RA6=w(()=>{dI();JY1()});function CA6(){return k$5.parse(process.env)}var xp1=(Y)=>F.enum(["true","false","1","0"]).optional().transform((X)=>X===void 0?Y:X==="true"||X==="1"),f$5=(Y)=>F.string().optional().transform((X)=>X?X.split(",").map((G)=>G.trim()):Y),k$5;var SA6=w(()=>{K0();k$5=F.object({AUTH_EMAIL_PASSWORD_ENABLED:xp1(!0),AUTH_GOOGLE_CLIENT_ID:F.string().optional(),AUTH_GOOGLE_CLIENT_SECRET:F.string().optional(),AUTH_GITHUB_CLIENT_ID:F.string().optional(),AUTH_GITHUB_CLIENT_SECRET:F.string().optional(),AUTH_RESEND_API_KEY:F.string().optional(),AUTH_RESEND_FROM_EMAIL:F.string().optional(),AUTH_SENDGRID_API_KEY:F.string().optional(),AUTH_SENDGRID_FROM_EMAIL:F.string().optional(),AUTH_INVITE_EMAIL_PROVIDER:F.enum(["resend","sendgrid"]).optional(),AUTH_RESET_PASSWORD_EMAIL_PROVIDER:F.enum(["resend","sendgrid"]).optional(),AUTH_MAGIC_LINK_ENABLED:xp1(!1),AUTH_MAGIC_LINK_EMAIL_PROVIDER:F.enum(["resend","sendgrid"]).optional(),AUTH_EMAIL_OTP_ENABLED:xp1(!1),AUTH_EMAIL_OTP_EMAIL_PROVIDER:F.enum(["resend","sendgrid"]).optional(),AUTH_EMAIL_OTP_LENGTH:F.coerce.number().optional(),AUTH_EMAIL_OTP_EXPIRES_IN:F.coerce.number().optional(),AUTH_SSO_DOMAIN:F.string().optional(),AUTH_SSO_MS_TENANT_ID:F.string().optional(),AUTH_SSO_MS_CLIENT_ID:F.string().optional(),AUTH_SSO_MS_CLIENT_SECRET:F.string().optional(),AUTH_SSO_SCOPES:f$5(["openid","email","profile"])}).transform((Y)=>{let X={};if(Y.AUTH_GOOGLE_CLIENT_ID)X.google={clientId:Y.AUTH_GOOGLE_CLIENT_ID,clientSecret:Y.AUTH_GOOGLE_CLIENT_SECRET??""};if(Y.AUTH_GITHUB_CLIENT_ID)X.github={clientId:Y.AUTH_GITHUB_CLIENT_ID,clientSecret:Y.AUTH_GITHUB_CLIENT_SECRET??""};let G=[];if(Y.AUTH_RESEND_API_KEY)G.push({id:"resend",provider:"resend",config:{apiKey:Y.AUTH_RESEND_API_KEY,fromEmail:Y.AUTH_RESEND_FROM_EMAIL??"noreply@example.com"}});if(Y.AUTH_SENDGRID_API_KEY)G.push({id:"sendgrid",provider:"sendgrid",config:{apiKey:Y.AUTH_SENDGRID_API_KEY,fromEmail:Y.AUTH_SENDGRID_FROM_EMAIL??"noreply@example.com"}});let J=G[0]?.id,Q;if(Y.AUTH_SSO_MS_CLIENT_ID&&Y.AUTH_SSO_DOMAIN)Q={providerId:"microsoft",domain:Y.AUTH_SSO_DOMAIN,MS_TENANT_ID:Y.AUTH_SSO_MS_TENANT_ID??"",MS_CLIENT_ID:Y.AUTH_SSO_MS_CLIENT_ID,MS_CLIENT_SECRET:Y.AUTH_SSO_MS_CLIENT_SECRET??"",scopes:Y.AUTH_SSO_SCOPES};let Z;if(Y.AUTH_MAGIC_LINK_ENABLED)Z={enabled:!0,emailProviderId:Y.AUTH_MAGIC_LINK_EMAIL_PROVIDER??J??""};let W;if(Y.AUTH_EMAIL_OTP_ENABLED)W={enabled:!0,emailProviderId:Y.AUTH_EMAIL_OTP_EMAIL_PROVIDER??J??"",...Y.AUTH_EMAIL_OTP_LENGTH!==void 0&&{otpLength:Y.AUTH_EMAIL_OTP_LENGTH},...Y.AUTH_EMAIL_OTP_EXPIRES_IN!==void 0&&{expiresIn:Y.AUTH_EMAIL_OTP_EXPIRES_IN}};return{emailAndPassword:{enabled:Y.AUTH_EMAIL_PASSWORD_ENABLED},socialProviders:Object.keys(X).length>0?X:void 0,emailProviders:G.length>0?G:void 0,inviteEmailProviderId:Y.AUTH_INVITE_EMAIL_PROVIDER,resetPasswordEmailProviderId:Y.AUTH_RESET_PASSWORD_EMAIL_PROVIDER,ssoConfig:Q,magicLinkConfig:Z,emailOtpConfig:W}})});var oZ1;var jA6=w(()=>{oZ1={enabled:!0,batchSize:250,flushIntervalMs:300,maxQueueSize:1e4,redactor:"regex"}});import{existsSync as v$5,readFileSync as h$5}from"fs";function y$5(){let Y=CA6(),X=j6().configPath;if(!v$5(X))return{auth:Y,monitoring:oZ1};try{let G=JSON.parse(h$5(X,"utf-8"));if(G.auth)console.warn("[config] DEPRECATION: 'auth' key found in config.json. Auth is now configured via AUTH_* environment variables. The 'auth' key will be ignored.");return{auth:Y,monitoring:G.monitoring??oZ1,theme:G.theme,logo:G.logo,autoCreateOrganizationOnSignup:G.autoCreateOrganizationOnSignup}}catch{return{auth:Y,monitoring:oZ1}}}function eP(){if(!up1)up1=y$5();return up1}function IA6(){return eP().theme}var up1=null;var gp1=w(()=>{SA6();jA6();E9()});import{dirname as b$5,posix as x$5,sep as u$5}from"path";function fA6(){let Y=g$5();return async(X)=>{for(let G of X)G.module=Y(G.filename);return X}}function g$5(Y=process.argv[1]?b$5(process.argv[1]):process.cwd(),X=u$5==="\\"){let G=X?_A6(Y):Y;return(J)=>{if(!J)return;let Q=X?_A6(J):J,{dir:Z,base:W,ext:$}=x$5.parse(Q);if($===".js"||$===".mjs"||$===".cjs")W=W.slice(0,-1*$.length);let H=decodeURIComponent(W);if(!Z)Z=".";let K=Z.lastIndexOf("/node_modules");if(K>-1)return`${Z.slice(K+14).replace(/\//g,".")}:${H}`;if(Z.startsWith(G)){let V=Z.slice(G.length+1).replace(/\//g,".");return V?`${V}:${H}`:H}return H}}function _A6(Y){return Y.replace(/^[A-Z]:/,"").replace(/\\/g,"/")}var kA6=()=>{};function m$5(Y,X,G){return{key:Y,enabled:typeof X=="string"?!0:X,variant:typeof X=="string"?X:void 0,reason:void 0,metadata:{id:void 0,version:void 0,payload:G?JSON.stringify(G):void 0,description:void 0}}}var mp1=(Y)=>{if("flags"in Y){let X=vA6(Y.flags),G=hA6(Y.flags);return{...Y,featureFlags:X,featureFlagPayloads:G}}{let X=Y.featureFlags??{},G=Object.fromEntries(Object.entries(Y.featureFlagPayloads||{}).map(([Q,Z])=>[Q,lp1(Z)])),J=Object.fromEntries(Object.entries(X).map(([Q,Z])=>[Q,m$5(Q,Z,G[Q])]));return{...Y,featureFlags:X,featureFlagPayloads:G,flags:J}}},vA6=(Y)=>Object.fromEntries(Object.entries(Y??{}).map(([X,G])=>[X,Ui(G)]).filter(([,X])=>X!==void 0)),hA6=(Y)=>{let X=Y??{};return Object.fromEntries(Object.keys(X).filter((G)=>{let J=X[G];return J.enabled&&J.metadata&&J.metadata.payload!==void 0}).map((G)=>{let J=X[G].metadata?.payload;return[G,J?lp1(J):void 0]}))},Ui=(Y)=>Y===void 0?void 0:Y.variant??Y.enabled,lp1=(Y)=>{if(typeof Y!="string")return Y;try{return JSON.parse(Y)}catch{return Y}};var sZ1=()=>{};function yA6(){return"CompressionStream"in globalThis&&"TextEncoder"in globalThis&&"Response"in globalThis&&typeof Response.prototype.blob=="function"}async function tZ1(Y,X=!0,G){try{let J=new CompressionStream("gzip"),Q=J.writable.getWriter(),Z=Q.write(new TextEncoder().encode(Y)).then(()=>Q.close()).catch(async(H)=>{try{await Q.abort(H)}catch{}throw H}),W=new Response(J.readable).blob(),[$]=await Promise.all([W,Z]);return $}catch(J){if(G?.rethrow)throw J;if(X)console.error("Failed to gzip compress data",J);return null}}var dp1=()=>{};var l$5,bA6=function(Y,X=[]){if(!Y)return!1;let G=Y.toLowerCase();return l$5.concat(X).some((J)=>{let Q=J.toLowerCase();return G.indexOf(Q)!==-1})};var xA6=w(()=>{l$5=["amazonbot","amazonproductbot","app.hypefactors.com","applebot","archive.org_bot","awariobot","backlinksextendedbot","baiduspider","bingbot","bingpreview","chrome-lighthouse","dataforseobot","deepscan","duckduckbot","facebookexternal","facebookcatalog","http://yandex.com/bots","hubspot","ia_archiver","leikibot","linkedinbot","meta-externalagent","mj12bot","msnbot","nessus","petalbot","pinterest","prerender","rogerbot","screaming frog","sebot-wa","sitebulb","slackbot","slurp","trendictionbot","turnitin","twitterbot","vercel-screenshot","vercelbot","yahoo! slurp","yandexbot","zoombot","bot.htm","bot.php","(bot;","bot/","crawler","ahrefsbot","ahrefssiteaudit","semrushbot","siteauditbot","splitsignalbot","gptbot","oai-searchbot","chatgpt-user","perplexitybot","better uptime bot","sentryuptimebot","uptimerobot","headlesschrome","cypress","google-hoteladsverifier","adsbot-google","apis-google","duplexweb-google","feedfetcher-google","google favicon","google web preview","google-read-aloud","googlebot","googleother","google-cloudvertexbot","googleweblight","mediapartners-google","storebot-google","google-inspectiontool","bytespider"]});var j3;var xk=w(()=>{j3=function(Y){return Y.AnonymousId="anonymous_id",Y.DistinctId="distinct_id",Y.Props="props",Y.EnablePersonProcessing="enable_person_processing",Y.PersonMode="person_mode",Y.FeatureFlagDetails="feature_flag_details",Y.FeatureFlags="feature_flags",Y.FeatureFlagPayloads="feature_flag_payloads",Y.BootstrapFeatureFlagDetails="bootstrap_feature_flag_details",Y.BootstrapFeatureFlags="bootstrap_feature_flags",Y.BootstrapFeatureFlagPayloads="bootstrap_feature_flag_payloads",Y.OverrideFeatureFlags="override_feature_flags",Y.Queue="queue",Y.OptedOut="opted_out",Y.SessionId="session_id",Y.SessionStartTimestamp="session_start_timestamp",Y.SessionLastTimestamp="session_timestamp",Y.PersonProperties="person_properties",Y.GroupProperties="group_properties",Y.InstalledAppBuild="installed_app_build",Y.InstalledAppVersion="installed_app_version",Y.SessionReplay="session_replay",Y.SurveyLastSeenDate="survey_last_seen_date",Y.SurveysSeen="surveys_seen",Y.Surveys="surveys",Y.RemoteConfig="remote_config",Y.FlagsEndpointWasHit="flags_endpoint_was_hit",Y.DeviceId="device_id",Y}({})});var eZ1=()=>{};function X$1(Y){return Y===null||typeof Y!="object"}function YT(Y,X){return Object.prototype.toString.call(Y)===`[object ${X}]`}function mA6(Y){return YT(Y,"ErrorEvent")}function gk(Y){return typeof Event<"u"&&p$5(Y,Event)}function lA6(Y){return YT(Y,"Object")}function p$5(Y,X){try{return Y instanceof X}catch{return!1}}var c$5,uA6,O6Y,cp1,Y$1,Oi=(Y)=>Y===Object(Y)&&!Y$1(Y),uk=(Y)=>Y===void 0,Fw=(Y)=>cp1.call(Y)=="[object String]",gA6=(Y)=>Fw(Y)&&Y.trim().length===0,Bi=(Y)=>cp1.call(Y)=="[object Number]"&&Y===Y,pp1=(Y)=>Y instanceof Error;var Ni=w(()=>{xk();eZ1();c$5=Array.isArray,uA6=Object.prototype,O6Y=uA6.hasOwnProperty,cp1=uA6.toString,Y$1=c$5||function(Y){return cp1.call(Y)==="[object Array]"}});function qi(Y,X,G,J,Q){if(X>G)J.warn("min cannot be greater than max."),X=G;if(Bi(Y))if(Y>G)return J.warn(" cannot be greater than max: "+G+". Using max value instead."),G;else{if(!(Y<X))return Y;return J.warn(" cannot be less than min: "+X+". Using min value instead."),X}return J.warn(" must be a number. using max or fallback. max: "+G+", fallback: "+Q),qi(Q||G,X,G,J)}var np1=w(()=>{Ni()});class ip1{constructor(Y){this._buckets={},this._onBucketRateLimited=Y._onBucketRateLimited,this._bucketSize=qi(Y.bucketSize,0,100,Y._logger),this._refillRate=qi(Y.refillRate,0,this._bucketSize,Y._logger),this._refillInterval=qi(Y.refillInterval,0,n$5,Y._logger)}_applyRefill(Y,X){let G=X-Y.lastAccess,J=Math.floor(G/this._refillInterval);if(J>0){let Q=J*this._refillRate;Y.tokens=Math.min(Y.tokens+Q,this._bucketSize),Y.lastAccess=Y.lastAccess+J*this._refillInterval}}consumeRateLimit(Y){let X=Date.now(),G=String(Y),J=this._buckets[G];if(J)this._applyRefill(J,X);else J={tokens:this._bucketSize,lastAccess:X},this._buckets[G]=J;if(J.tokens===0)return!0;if(J.tokens--,J.tokens===0)this._onBucketRateLimited?.(Y);return J.tokens===0}stop(){this._buckets={}}}var n$5=86400000;var dA6=w(()=>{np1()});class XT{constructor(Y){this.bytes=Y}static ofInner(Y){if(Y.length===16)return new XT(Y);throw TypeError("not 128-bit length")}static fromFieldsV7(Y,X,G,J){if(!Number.isInteger(Y)||!Number.isInteger(X)||!Number.isInteger(G)||!Number.isInteger(J)||Y<0||X<0||G<0||J<0||Y>281474976710655||X>4095||G>1073741823||J>4294967295)throw RangeError("invalid field value");let Q=new Uint8Array(16);return Q[0]=Y/1099511627776,Q[1]=Y/4294967296,Q[2]=Y/16777216,Q[3]=Y/65536,Q[4]=Y/256,Q[5]=Y,Q[6]=112|X>>>8,Q[7]=X,Q[8]=128|G>>>24,Q[9]=G>>>16,Q[10]=G>>>8,Q[11]=G,Q[12]=J>>>24,Q[13]=J>>>16,Q[14]=J>>>8,Q[15]=J,new XT(Q)}static parse(Y){let X;switch(Y.length){case 32:X=/^[0-9a-f]{32}$/i.exec(Y)?.[0];break;case 36:X=/^([0-9a-f]{8})-([0-9a-f]{4})-([0-9a-f]{4})-([0-9a-f]{4})-([0-9a-f]{12})$/i.exec(Y)?.slice(1,6).join("");break;case 38:X=/^\{([0-9a-f]{8})-([0-9a-f]{4})-([0-9a-f]{4})-([0-9a-f]{4})-([0-9a-f]{12})\}$/i.exec(Y)?.slice(1,6).join("");break;case 45:X=/^urn:uuid:([0-9a-f]{8})-([0-9a-f]{4})-([0-9a-f]{4})-([0-9a-f]{4})-([0-9a-f]{12})$/i.exec(Y)?.slice(1,6).join("");break;default:break}if(X){let G=new Uint8Array(16);for(let J=0;J<16;J+=4){let Q=parseInt(X.substring(2*J,2*J+8),16);G[J+0]=Q>>>24,G[J+1]=Q>>>16,G[J+2]=Q>>>8,G[J+3]=Q}return new XT(G)}throw SyntaxError("could not parse UUID string")}toString(){let Y="";for(let X=0;X<this.bytes.length;X++)if(Y+="0123456789abcdef".charAt(this.bytes[X]>>>4),Y+="0123456789abcdef".charAt(15&this.bytes[X]),X===3||X===5||X===7||X===9)Y+="-";return Y}toHex(){let Y="";for(let X=0;X<this.bytes.length;X++)Y+="0123456789abcdef".charAt(this.bytes[X]>>>4),Y+="0123456789abcdef".charAt(15&this.bytes[X]);return Y}toJSON(){return this.toString()}getVariant(){let Y=this.bytes[8]>>>4;if(Y<0)throw Error("unreachable");if(Y<=7)return this.bytes.every((X)=>X===0)?"NIL":"VAR_0";if(Y<=11)return"VAR_10";if(Y<=13)return"VAR_110";if(Y<=15)return this.bytes.every((X)=>X===255)?"MAX":"VAR_RESERVED";else throw Error("unreachable")}getVersion(){return this.getVariant()==="VAR_10"?this.bytes[6]>>>4:void 0}clone(){return new XT(this.bytes.slice(0))}equals(Y){return this.compareTo(Y)===0}compareTo(Y){for(let X=0;X<16;X++){let G=this.bytes[X]-Y.bytes[X];if(G!==0)return Math.sign(G)}return 0}}class pA6{constructor(Y){this.timestamp=0,this.counter=0,this.random=Y??i$5()}generate(){return this.generateOrResetCore(Date.now(),1e4)}generateOrAbort(){return this.generateOrAbortCore(Date.now(),1e4)}generateOrResetCore(Y,X){let G=this.generateOrAbortCore(Y,X);if(G===void 0)this.timestamp=0,G=this.generateOrAbortCore(Y,X);return G}generateOrAbortCore(Y,X){if(!Number.isInteger(Y)||Y<1||Y>281474976710655)throw RangeError("`unixTsMs` must be a 48-bit positive integer");if(X<0||X>281474976710655)throw RangeError("`rollbackAllowance` out of reasonable range");if(Y>this.timestamp)this.timestamp=Y,this.resetCounter();else{if(!(Y+X>=this.timestamp))return;if(this.counter++,this.counter>4398046511103)this.timestamp++,this.resetCounter()}return XT.fromFieldsV7(this.timestamp,Math.trunc(this.counter/1073741824),this.counter&1073741823,this.random.nextUint32())}resetCounter(){this.counter=1024*this.random.nextUint32()+(1023&this.random.nextUint32())}generateV4(){let Y=new Uint8Array(Uint32Array.of(this.random.nextUint32(),this.random.nextUint32(),this.random.nextUint32(),this.random.nextUint32()).buffer);return Y[6]=64|Y[6]>>>4,Y[8]=128|Y[8]>>>2,XT.ofInner(Y)}}var i$5=()=>({nextUint32:()=>65536*Math.trunc(65536*Math.random())+Math.trunc(65536*Math.random())}),cA6,Vw=()=>a$5().toString(),a$5=()=>(cA6||(cA6=new pA6)).generate();var zi=w(()=>{/*! For license information please see uuidv7.mjs.LICENSE.txt */});class ap1{add(Y){let X=Vw();return this.promiseByIds[X]=Y,Y.catch(()=>{}).finally(()=>{delete this.promiseByIds[X]}),Y}async join(){let Y=Object.values(this.promiseByIds),X=Y.length;while(X>0)await Promise.all(Y),Y=Object.values(this.promiseByIds),X=Y.length}get length(){return Object.keys(this.promiseByIds).length}constructor(){this.promiseByIds={}}}var nA6=w(()=>{zi()});function r$5(Y=console){return{log:Y.log.bind(Y),warn:Y.warn.bind(Y),error:Y.error.bind(Y),debug:Y.debug.bind(Y)}}function aA6(Y,X=o$5){return iA6(Y,X,r$5())}var iA6=(Y,X,G)=>{function J(Z,...W){X(()=>{let $=G[Z];$(Y,...W)})}return{info:(...Z)=>{J("log",...Z)},warn:(...Z)=>{J("warn",...Z)},error:(...Z)=>{J("error",...Z)},critical:(...Z)=>{G.error(Y,...Z)},createLogger:(Z)=>iA6(`${Y} ${Z}`,X,G)}},o$5=(Y)=>Y();var rA6=()=>{};var lk="Mobile",J$1="iOS",mk="Android",oA6="Tablet",T6Y,t$5="Apple",R6Y,sA6="Safari",Q$1="BlackBerry",tA6="Samsung",e$5,YH5,W$1="Chrome",XH5,GH5,eA6="Internet Explorer",JH5,op1="Opera",C6Y,YM6="Edge",QH5,sp1="Firefox",WH5,tp1="Nintendo",ep1="PlayStation",G$1="Xbox",ZH5,$H5,Li="Windows",HH5,XM6="Generic",S6Y,j6Y,KH5="Konqueror",I3="(\\d+(\\.\\d+)?)",rp1,I6Y,_6Y,f6Y,FH5,VH5,k6Y,v6Y;var GM6=w(()=>{eZ1();Ni();T6Y=mk+" "+oA6,R6Y=t$5+" Watch",e$5=tA6+"Browser",YH5=tA6+" Internet",XH5=W$1+" OS",GH5=W$1+" "+J$1,JH5=eA6+" "+lk,C6Y=op1+" Mini",QH5="Microsoft "+YM6,WH5=sp1+" "+J$1,ZH5=mk+" "+lk,$H5=lk+" "+sA6,HH5=Li+" Phone",S6Y=XM6+" "+lk.toLowerCase(),j6Y=XM6+" "+oA6.toLowerCase(),rp1=new RegExp("Version/"+I3),I6Y=new RegExp(G$1,"i"),_6Y=new RegExp(ep1+" \\w+","i"),f6Y=new RegExp(tp1+" \\w+","i"),FH5=new RegExp(Q$1+"|PlayBook|BB10","i"),VH5={"NT3.51":"NT 3.11","NT4.0":"NT 4.0","5.0":"2000","5.1":"XP","5.2":"XP","6.0":"Vista","6.1":"7","6.2":"8","6.3":"8.1","6.4":"10","10.0":"10"},k6Y={[JH5]:[new RegExp("rv:"+I3)],[QH5]:[new RegExp(YM6+"?\\/"+I3)],[W$1]:[new RegExp("("+W$1+"|CrMo)\\/"+I3)],[GH5]:[new RegExp("CriOS\\/"+I3)],"UC Browser":[new RegExp("(UCBrowser|UCWEB)\\/"+I3)],[sA6]:[rp1],[$H5]:[rp1],[op1]:[new RegExp("("+op1+"|OPR)\\/"+I3)],[sp1]:[new RegExp(sp1+"\\/"+I3)],[WH5]:[new RegExp("FxiOS\\/"+I3)],[KH5]:[new RegExp("Konqueror[:/]?"+I3,"i")],[Q$1]:[new RegExp(Q$1+" "+I3),rp1],[ZH5]:[new RegExp("android\\s"+I3,"i")],[YH5]:[new RegExp(e$5+"\\/"+I3)],[eA6]:[new RegExp("(rv:|MSIE )"+I3)],Mozilla:[new RegExp("rv:"+I3)]},v6Y=[[new RegExp(G$1+"; "+G$1+" (.*?)[);]","i"),(Y)=>[G$1,Y&&Y[1]||""]],[new RegExp(tp1,"i"),[tp1,""]],[new RegExp(ep1,"i"),[ep1,""]],[FH5,[Q$1,""]],[new RegExp(Li,"i"),(Y,X)=>{if(/Phone/.test(X)||/WPDesktop/.test(X))return[HH5,""];if(new RegExp(lk).test(X)&&!/IEMobile\b/.test(X))return[Li+" "+lk,""];let G=/Windows NT ([0-9.]+)/i.exec(X);if(G&&G[1]){let J=G[1],Q=VH5[J]||"";if(/arm/i.test(X))Q="RT";return[Li,Q]}return[Li,""]}],[/((iPhone|iPad|iPod).*?OS (\d+)_(\d+)_?(\d+)?|iPhone)/,(Y)=>{if(Y&&Y[3]){let X=[Y[3],Y[4],Y[5]||"0"];return[J$1,X.join(".")]}return[J$1,""]}],[/(watch.*\/(\d+\.\d+\.\d+)|watch os,(\d+\.\d+),)/i,(Y)=>{let X="";if(Y&&Y.length>=3)X=uk(Y[2])?Y[3]:Y[2];return["watchOS",X]}],[new RegExp("("+mk+" (\\d+)\\.(\\d+)\\.?(\\d+)?|"+mk+")","i"),(Y)=>{if(Y&&Y[2]){let X=[Y[2],Y[3],Y[4]||"0"];return[mk,X.join(".")]}return[mk,""]}],[/Mac OS X (\d+)[_.](\d+)[_.]?(\d+)?/i,(Y)=>{let X=["Mac OS X",""];if(Y&&Y[1]){let G=[Y[1],Y[2],Y[3]||"0"];X[1]=G.join(".")}return X}],[/Mac/i,["Mac OS X",""]],[/CrOS/,[XH5,""]],[/Linux|debian/i,["Linux",""]]]});function QM6(Y){return Y?.replace(/\/+$/,"")}async function WM6(Y,X){let G=null;for(let J=0;J<X.retryCount+1;J++){if(J>0)await new Promise((Q)=>setTimeout(Q,X.retryDelay));try{return await Y()}catch(Q){if(G=Q,!X.retryCheck(Q))throw Q}}throw G}function Z$1(){return new Date().toISOString()}function Zq(Y,X){let G=setTimeout(Y,X);return G?.unref&&G?.unref(),G}function Yn1(Y){return Promise.all(Y.map((X)=>(X??Promise.resolve()).then((G)=>({status:"fulfilled",value:G}),(G)=>({status:"rejected",reason:G}))))}var JM6="utf8",ZM6=(Y)=>Y instanceof Error;var _3=w(()=>{xA6();dA6();np1();eZ1();Ni();nA6();rA6();GM6()});var UH5,a6Y;var $M6=w(()=>{_3();UH5={trace:{text:"TRACE",number:1},debug:{text:"DEBUG",number:5},info:{text:"INFO",number:9},warn:{text:"WARN",number:13},error:{text:"ERROR",number:17},fatal:{text:"FATAL",number:21}},a6Y=UH5.info});var HM6=w(()=>{xk()});class Xn1{constructor(){this.events={},this.events={}}on(Y,X){if(!this.events[Y])this.events[Y]=[];return this.events[Y].push(X),()=>{this.events[Y]=this.events[Y].filter((G)=>G!==X)}}emit(Y,X){for(let G of this.events[Y]||[])G(X);for(let G of this.events["*"]||[])G(Y,X)}}var KM6=()=>{};async function FM6(Y){if(Y instanceof dk){let X="";try{X=await Y.text}catch{}console.error(`Error while flushing PostHog: message=${Y.message}, response body=${X}`,Y)}else console.error("Error while flushing PostHog",Y);return Promise.resolve()}function Gn1(Y){return typeof Y=="object"&&(Y instanceof dk||Y instanceof Di)}function VM6(Y){return typeof Y=="object"&&Y instanceof dk&&Y.status===413}class $$1{constructor(Y,X={}){this.flushPromise=null,this.shutdownPromise=null,this.promiseQueue=new ap1,this._events=new Xn1,this._isInitialized=!1;let G=typeof Y=="string"?Y.trim():"",J=typeof X.host=="string"?X.host.trim():"",Q=!G;if(this._logger=aA6("[PostHog]",this.logMsgIfDebug.bind(this)),Q)this._logger.error("You must pass your PostHog project's api key. The client will be disabled.");if(this.apiKey=G,this.host=QM6(J||"https://us.i.posthog.com"),this.flushAt=X.flushAt?Math.max(X.flushAt,1):20,this.maxBatchSize=Math.max(this.flushAt,X.maxBatchSize??100),this.maxQueueSize=Math.max(this.flushAt,X.maxQueueSize??1000),this.flushInterval=X.flushInterval??1e4,this.preloadFeatureFlags=X.preloadFeatureFlags??!0,this.defaultOptIn=X.defaultOptIn??!0,this.disableSurveys=X.disableSurveys??!1,this._retryOptions={retryCount:X.fetchRetryCount??3,retryDelay:X.fetchRetryDelay??3000,retryCheck:Gn1},this.requestTimeout=X.requestTimeout??1e4,this.featureFlagsRequestTimeoutMs=X.featureFlagsRequestTimeoutMs??3000,this.remoteConfigRequestTimeoutMs=X.remoteConfigRequestTimeoutMs??3000,this.disableGeoip=X.disableGeoip??!0,this.disabled=(X.disabled??!1)||Q,this.historicalMigration=X?.historicalMigration??!1,this._initPromise=Promise.resolve(),this._isInitialized=!0,this.evaluationContexts=X?.evaluationContexts??X?.evaluationEnvironments,X?.evaluationEnvironments&&!X?.evaluationContexts)this._logger.warn("evaluationEnvironments is deprecated. Use evaluationContexts instead. This property will be removed in a future version.");this.disableCompression=!yA6()||(X?.disableCompression??!1)}logMsgIfDebug(Y){if(this.isDebug)Y()}wrap(Y){if(this.disabled)return void this._logger.warn("The client is disabled");if(this._isInitialized)return Y();this._initPromise.then(()=>Y())}getCommonEventProperties(){return{$lib:this.getLibraryId(),$lib_version:this.getLibraryVersion()}}get optedOut(){return this.getPersistedProperty(j3.OptedOut)??!this.defaultOptIn}async optIn(){this.wrap(()=>{this.setPersistedProperty(j3.OptedOut,!1)})}async optOut(){this.wrap(()=>{this.setPersistedProperty(j3.OptedOut,!0)})}on(Y,X){return this._events.on(Y,X)}debug(Y=!0){if(this.removeDebugCallback?.(),Y){let X=this.on("*",(G,J)=>this._logger.info(G,J));this.removeDebugCallback=()=>{X(),this.removeDebugCallback=void 0}}}get isDebug(){return!!this.removeDebugCallback}get isDisabled(){return this.disabled}buildPayload(Y){return{distinct_id:Y.distinct_id,event:Y.event,properties:{...Y.properties||{},...this.getCommonEventProperties()}}}addPendingPromise(Y){return this.promiseQueue.add(Y)}identifyStateless(Y,X,G){this.wrap(()=>{let J={...this.buildPayload({distinct_id:Y,event:"$identify",properties:X})};this.enqueue("identify",J,G)})}async identifyStatelessImmediate(Y,X,G){let J={...this.buildPayload({distinct_id:Y,event:"$identify",properties:X})};await this.sendImmediate("identify",J,G)}captureStateless(Y,X,G,J){this.wrap(()=>{let Q=this.buildPayload({distinct_id:Y,event:X,properties:G});this.enqueue("capture",Q,J)})}async captureStatelessImmediate(Y,X,G,J){let Q=this.buildPayload({distinct_id:Y,event:X,properties:G});await this.sendImmediate("capture",Q,J)}aliasStateless(Y,X,G,J){this.wrap(()=>{let Q=this.buildPayload({event:"$create_alias",distinct_id:X,properties:{...G||{},distinct_id:X,alias:Y}});this.enqueue("alias",Q,J)})}async aliasStatelessImmediate(Y,X,G,J){let Q=this.buildPayload({event:"$create_alias",distinct_id:X,properties:{...G||{},distinct_id:X,alias:Y}});await this.sendImmediate("alias",Q,J)}groupIdentifyStateless(Y,X,G,J,Q,Z){this.wrap(()=>{let W=this.buildPayload({distinct_id:Q||`$${Y}_${X}`,event:"$groupidentify",properties:{$group_type:Y,$group_key:X,$group_set:G||{},...Z||{}}});this.enqueue("capture",W,J)})}async getRemoteConfig(){await this._initPromise;let Y=this.host;if(Y==="https://us.i.posthog.com")Y="https://us-assets.i.posthog.com";else if(Y==="https://eu.i.posthog.com")Y="https://eu-assets.i.posthog.com";let X=`${Y}/array/${this.apiKey}/config`,G={method:"GET",headers:{...this.getCustomHeaders(),"Content-Type":"application/json"}};return this.fetchWithRetry(X,G,{retryCount:0},this.remoteConfigRequestTimeoutMs).then((J)=>J.json()).catch((J)=>{this._logger.error("Remote config could not be loaded",J),this._events.emit("error",J)})}async getFlags(Y,X={},G={},J={},Q={},Z=!1){await this._initPromise;let W=Z?"&config=true":"",$=`${this.host}/flags/?v=2${W}`,H={token:this.apiKey,distinct_id:Y,groups:X,person_properties:G,group_properties:J,...Q};if(G.$device_id)H.$device_id=G.$device_id;if(this.evaluationContexts&&this.evaluationContexts.length>0)H.evaluation_contexts=this.evaluationContexts;let K={method:"POST",headers:{...this.getCustomHeaders(),"Content-Type":"application/json"},body:JSON.stringify(H)};return this._logger.info("Flags URL",$),this.fetchWithRetry($,K,{retryCount:0},this.featureFlagsRequestTimeoutMs).then((V)=>V.json()).then((V)=>({success:!0,response:mp1(V)})).catch((V)=>{return this._events.emit("error",V),{success:!1,error:this.categorizeRequestError(V)}})}categorizeRequestError(Y){if(Y instanceof dk)return{type:"api_error",statusCode:Y.status};if(Y instanceof Di){let X=Y.error;if(X instanceof Error&&(X.name==="AbortError"||X.name==="TimeoutError"))return{type:"timeout"};return{type:"connection_error"}}return{type:"unknown_error"}}async getFeatureFlagStateless(Y,X,G={},J={},Q={},Z){await this._initPromise;let W=await this.getFeatureFlagDetailStateless(Y,X,G,J,Q,Z);if(W===void 0)return{response:void 0,requestId:void 0};let $=Ui(W.response);if($===void 0)$=!1;return{response:$,requestId:W.requestId}}async getFeatureFlagDetailStateless(Y,X,G={},J={},Q={},Z){await this._initPromise;let W=await this.getFeatureFlagDetailsStateless(X,G,J,Q,Z,[Y]);if(W===void 0)return;return{response:W.flags[Y],requestId:W.requestId,evaluatedAt:W.evaluatedAt}}async getFeatureFlagPayloadStateless(Y,X,G={},J={},Q={},Z){await this._initPromise;let W=await this.getFeatureFlagPayloadsStateless(X,G,J,Q,Z,[Y]);if(!W)return;let $=W[Y];if($===void 0)return null;return $}async getFeatureFlagPayloadsStateless(Y,X={},G={},J={},Q,Z){return await this._initPromise,(await this.getFeatureFlagsAndPayloadsStateless(Y,X,G,J,Q,Z)).payloads}async getFeatureFlagsStateless(Y,X={},G={},J={},Q,Z){return await this._initPromise,await this.getFeatureFlagsAndPayloadsStateless(Y,X,G,J,Q,Z)}async getFeatureFlagsAndPayloadsStateless(Y,X={},G={},J={},Q,Z){await this._initPromise;let W=await this.getFeatureFlagDetailsStateless(Y,X,G,J,Q,Z);if(!W)return{flags:void 0,payloads:void 0,requestId:void 0};return{flags:W.featureFlags,payloads:W.featureFlagPayloads,requestId:W.requestId}}async getFeatureFlagDetailsStateless(Y,X={},G={},J={},Q,Z){await this._initPromise;let W={};if(Q??this.disableGeoip)W.geoip_disable=!0;if(Z)W.flag_keys_to_evaluate=Z;let $=await this.getFlags(Y,X,G,J,W);if(!$.success)return;let H=$.response;if(H.errorsWhileComputingFlags)console.error("[FEATURE FLAGS] Error while computing feature flags, some flags may be missing or incorrect. Learn more at https://posthog.com/docs/feature-flags/best-practices");if(H.quotaLimited?.includes("feature_flags"))return console.warn("[FEATURE FLAGS] Feature flags quota limit exceeded - feature flags unavailable. Learn more about billing limits at https://posthog.com/docs/billing/limits-alerts"),{flags:{},featureFlags:{},featureFlagPayloads:{},requestId:H?.requestId,quotaLimited:H.quotaLimited};return H}async getSurveysStateless(){if(await this._initPromise,this.disableSurveys===!0)return this._logger.info("Loading surveys is disabled."),[];let Y=`${this.host}/api/surveys/?token=${this.apiKey}`,X={method:"GET",headers:{...this.getCustomHeaders(),"Content-Type":"application/json"}},J=(await this.fetchWithRetry(Y,X).then((Q)=>{if(Q.status!==200||!Q.json){let Z=`Surveys API could not be loaded: ${Q.status}`,W=Error(Z);this._logger.error(W),this._events.emit("error",Error(Z));return}return Q.json()}).catch((Q)=>{this._logger.error("Surveys API could not be loaded",Q),this._events.emit("error",Q)}))?.surveys;if(J)this._logger.info("Surveys fetched from API: ",JSON.stringify(J));return J??[]}get props(){if(!this._props)this._props=this.getPersistedProperty(j3.Props);return this._props||{}}set props(Y){this._props=Y}async register(Y){this.wrap(()=>{this.props={...this.props,...Y},this.setPersistedProperty(j3.Props,this.props)})}async unregister(Y){this.wrap(()=>{delete this.props[Y],this.setPersistedProperty(j3.Props,this.props)})}processBeforeEnqueue(Y){return Y}async flushStorage(){}enqueue(Y,X,G){this.wrap(()=>{if(this.optedOut)return void this._events.emit(Y,"Library is disabled. Not sending event. To re-enable, call posthog.optIn()");let J=this.prepareMessage(Y,X,G);if(J=this.processBeforeEnqueue(J),J===null)return;let Q=this.getPersistedProperty(j3.Queue)||[];if(Q.length>=this.maxQueueSize)Q.shift(),this._logger.info("Queue is full, the oldest event is dropped.");if(Q.push({message:J}),this.setPersistedProperty(j3.Queue,Q),this._events.emit(Y,J),Q.length>=this.flushAt)this.flushBackground();if(this.flushInterval&&!this._flushTimer)this._flushTimer=Zq(()=>this.flushBackground(),this.flushInterval)})}async sendImmediate(Y,X,G){if(this.disabled)return void this._logger.warn("The client is disabled");if(!this._isInitialized)await this._initPromise;if(this.optedOut)return void this._events.emit(Y,"Library is disabled. Not sending event. To re-enable, call posthog.optIn()");let J=this.prepareMessage(Y,X,G);if(J=this.processBeforeEnqueue(J),J===null)return;let Q={api_key:this.apiKey,batch:[J],sent_at:Z$1()};if(this.historicalMigration)Q.historical_migration=!0;let Z=JSON.stringify(Q),W=`${this.host}/batch/`,$=this.disableCompression?null:await tZ1(Z,this.isDebug),H={method:"POST",headers:{...this.getCustomHeaders(),"Content-Type":"application/json",...$!==null&&{"Content-Encoding":"gzip"}},body:$||Z};try{await this.fetchWithRetry(W,H)}catch(K){this._events.emit("error",K)}}prepareMessage(Y,X,G){let J={...X,type:Y,library:this.getLibraryId(),library_version:this.getLibraryVersion(),timestamp:G?.timestamp?G?.timestamp:Z$1(),uuid:G?.uuid?G.uuid:Vw()};if(G?.disableGeoip??this.disableGeoip){if(!J.properties)J.properties={};J.properties.$geoip_disable=!0}if(J.distinctId)J.distinct_id=J.distinctId,delete J.distinctId;return J}clearFlushTimer(){if(this._flushTimer)clearTimeout(this._flushTimer),this._flushTimer=void 0}flushBackground(){this.flush().catch(async(Y)=>{await FM6(Y)})}async flush(){let Y=Yn1([this.flushPromise]).then(()=>this._flush());return this.flushPromise=Y,this.addPendingPromise(Y),Yn1([Y]).then(()=>{if(this.flushPromise===Y)this.flushPromise=null}),Y}getCustomHeaders(){let Y=this.getCustomUserAgent(),X={};if(Y&&Y!=="")X["User-Agent"]=Y;return X}async _flush(){this.clearFlushTimer(),await this._initPromise;let Y=this.getPersistedProperty(j3.Queue)||[];if(!Y.length)return;let X=[],G=Y.length;while(Y.length>0&&X.length<G){let J=Y.slice(0,this.maxBatchSize),Q=J.map((O)=>O.message),Z=async()=>{let B=(this.getPersistedProperty(j3.Queue)||[]).slice(J.length);this.setPersistedProperty(j3.Queue,B),Y=B,await this.flushStorage()},W={api_key:this.apiKey,batch:Q,sent_at:Z$1()};if(this.historicalMigration)W.historical_migration=!0;let $=JSON.stringify(W),H=`${this.host}/batch/`,K=this.disableCompression?null:await tZ1($,this.isDebug),V={method:"POST",headers:{...this.getCustomHeaders(),"Content-Type":"application/json",...K!==null&&{"Content-Encoding":"gzip"}},body:K||$},U={retryCheck:(O)=>{if(VM6(O))return!1;return Gn1(O)}};try{await this.fetchWithRetry(H,V,U)}catch(O){if(VM6(O)&&Q.length>1){this.maxBatchSize=Math.max(1,Math.floor(Q.length/2)),this._logger.warn(`Received 413 when sending batch of size ${Q.length}, reducing batch size to ${this.maxBatchSize}`);continue}if(!(O instanceof Di))await Z();throw this._events.emit("error",O),O}await Z(),X.push(...Q)}this._events.emit("flush",X)}async fetchWithRetry(Y,X,G,J){let Q=X.body?X.body:"",Z=-1;try{Z=Q instanceof Blob?Q.size:Buffer.byteLength(Q,JM6)}catch{if(Q instanceof Blob)Z=Q.size;else Z=new TextEncoder().encode(Q).length}return await WM6(async()=>{let W=new AbortController,$=J??this.requestTimeout,H=Zq(()=>W.abort(),$),K=null;try{K=await this.fetch(Y,{signal:W.signal,...X})}catch(U){throw new Di(U)}finally{clearTimeout(H)}if(X.mode!=="no-cors"&&(K.status<200||K.status>=400))throw new dk(K,Z);return K},{...this._retryOptions,...G})}async _shutdown(Y=30000){await this._initPromise;let X=!1;this.clearFlushTimer();let G=async()=>{try{await this.promiseQueue.join();while(!0){if((this.getPersistedProperty(j3.Queue)||[]).length===0)break;if(await this.flush(),X)break}}catch(Q){if(!Gn1(Q))throw Q;await FM6(Q)}},J;try{return await Promise.race([new Promise((Q,Z)=>{J=Zq(()=>{this._logger.error("Timed out while shutting down PostHog"),X=!0,Z("Timeout while shutting down PostHog. Some events may not have been sent.")},Y)}),G()])}finally{clearTimeout(J)}}async shutdown(Y=30000){if(this.shutdownPromise)this._logger.warn("shutdown() called while already shutting down. shutdown() is meant to be called once before process exit - use flush() for per-request cleanup");else this.shutdownPromise=this._shutdown(Y).finally(()=>{this.shutdownPromise=null});return this.shutdownPromise}}var dk,Di;var Jn1=w(()=>{KM6();sZ1();dp1();xk();_3();zi();dk=class dk extends Error{constructor(Y,X){super("HTTP error while fetching PostHog: status="+Y.status+", reqByteLength="+X),this.response=Y,this.reqByteLength=X,this.name="PostHogFetchHttpError"}get status(){return this.response.status}get text(){return this.response.text()}get json(){return this.response.json()}};Di=class Di extends Error{constructor(Y){super("Network error while fetching PostHog",Y instanceof Error?{cause:Y}:{}),this.error=Y,this.name="PostHogFetchNetworkError"}}});var UM6=w(()=>{sZ1();xk();Jn1();zi();_3()});var OM6=w(()=>{Ni()});function NM6(Y){let X=globalThis._posthogChunkIds;if(!X)return;let G=Object.keys(X);if(K$1&&G.length===BM6)return K$1;return BM6=G.length,K$1=G.reduce((J,Q)=>{if(!H$1)H$1={};let Z=H$1[Q];if(Z)J[Z[0]]=Z[1];else{let W=Y(Q);for(let $=W.length-1;$>=0;$--){let K=W[$]?.filename,V=X[Q];if(K&&V){J[K]=V,H$1[Q]=[K,V];break}}}return J},{}),K$1}var H$1,BM6,K$1;var qM6=()=>{};class zM6{constructor(Y,X,G=[]){this.coercers=Y,this.stackParser=X,this.modifiers=G}buildFromUnknown(Y,X={}){let J=X&&X.mechanism||{handled:!0,type:"generic"},Z=this.buildCoercingContext(J,X,0).apply(Y),W=this.buildParsingContext(X),$=this.parseStacktrace(Z,W);return{$exception_list:this.convertToExceptionList($,J),$exception_level:"error"}}async modifyFrames(Y){for(let X of Y)if(X.stacktrace&&X.stacktrace.frames&&Y$1(X.stacktrace.frames))X.stacktrace.frames=await this.applyModifiers(X.stacktrace.frames);return Y}coerceFallback(Y){return{type:"Error",value:"Unknown error",stack:Y.syntheticException?.stack,synthetic:!0}}parseStacktrace(Y,X){let G;if(Y.cause!=null)G=this.parseStacktrace(Y.cause,X);let J;if(Y.stack!=""&&Y.stack!=null)J=this.applyChunkIds(this.stackParser(Y.stack,Y.synthetic?X.skipFirstLines:0),X.chunkIdMap);return{...Y,cause:G,stack:J}}applyChunkIds(Y,X){return Y.map((G)=>{if(G.filename&&X)G.chunk_id=X[G.filename];return G})}applyCoercers(Y,X){for(let G of this.coercers)if(G.match(Y))return G.coerce(Y,X);return this.coerceFallback(X)}async applyModifiers(Y){let X=Y;for(let G of this.modifiers)X=await G(X);return X}convertToExceptionList(Y,X){let G={type:Y.type,value:Y.value,mechanism:{type:X.type??"generic",handled:X.handled??!0,synthetic:Y.synthetic??!1}};if(Y.stack)G.stacktrace={type:"raw",frames:Y.stack};let J=[G];if(Y.cause!=null)J.push(...this.convertToExceptionList(Y.cause,{...X,handled:!0}));return J}buildParsingContext(Y){return{chunkIdMap:NM6(this.stackParser),skipFirstLines:Y.skipFirstLines??1}}buildCoercingContext(Y,X,G=0){let J=(Z,W)=>{if(!(W<=BH5))return;{let $=this.buildCoercingContext(Y,X,W);return this.applyCoercers(Z,$)}};return{...X,syntheticException:G==0?X.syntheticException:void 0,mechanism:Y,apply:(Z)=>J(Z,G),next:(Z)=>J(Z,G+1)}}}var BH5=4;var LM6=w(()=>{_3();qM6()});function QO(Y,X,G,J,Q){let Z={platform:Y,filename:X,function:G==="<anonymous>"?AJ:G,in_app:!0};if(!uk(J))Z.lineno=J;if(!uk(Q))Z.colno=Q;return Z}var AJ="?";var Uw=w(()=>{_3()});var F$1=(Y,X)=>{let G=Y.indexOf("safari-extension")!==-1,J=Y.indexOf("safari-web-extension")!==-1;return G||J?[Y.indexOf("@")!==-1?Y.split("@")[0]:AJ,G?`safari-extension:${X}`:`safari-web-extension:${X}`]:[Y,X]};var Qn1=w(()=>{Uw()});var NH5,qH5,zH5,Wn1=(Y,X)=>{let G=NH5.exec(Y);if(G){let[,Q,Z,W]=G;return QO(X,Q,AJ,+Z,+W)}let J=qH5.exec(Y);if(J){if(J[2]&&J[2].indexOf("eval")===0){let $=zH5.exec(J[2]);if($)J[2]=$[1],J[3]=$[2],J[4]=$[3]}let[Z,W]=F$1(J[1]||AJ,J[2]);return QO(X,W,Z,J[3]?+J[3]:void 0,J[4]?+J[4]:void 0)}};var DM6=w(()=>{Uw();Qn1();NH5=/^\s*at (\S+?)(?::(\d+))(?::(\d+))\s*$/i,qH5=/^\s*at (?:(.+?\)(?: \[.+\])?|.*?) ?\((?:address at )?)?(?:async )?((?:<anonymous>|[-a-z]+:|.*bundle|\/)?.*?)(?::(\d+))?(?::(\d+))?\)?\s*$/i,zH5=/\((\S*)(?::(\d+))(?::(\d+))\)/});var LH5,DH5,Zn1=(Y,X)=>{let G=LH5.exec(Y);if(G){if(G[3]&&G[3].indexOf(" > eval")>-1){let W=DH5.exec(G[3]);if(W)G[1]=G[1]||"eval",G[3]=W[1],G[4]=W[2],G[5]=""}let Q=G[3],Z=G[1]||AJ;return[Z,Q]=F$1(Z,Q),QO(X,Q,Z,G[4]?+G[4]:void 0,G[5]?+G[5]:void 0)}};var wM6=w(()=>{Uw();Qn1();LH5=/^\s*(.*?)(?:\((.*?)\))?(?:^|@)?((?:[-a-z]+)?:\/.*?|\[native code\]|[^@]*(?:bundle|\d+\.js)|\/[\w\-. /=]+)(?::(\d+))?(?::(\d+))?\s*$/i,DH5=/(\S+) line (\d+)(?: > eval line \d+)* > eval/i});var wH5,AM6=(Y,X)=>{let G=wH5.exec(Y);return G?QO(X,G[2],G[1]||AJ,+G[3],G[4]?+G[4]:void 0):void 0};var MM6=w(()=>{Uw();wH5=/^\s*at (?:((?:\[object object\])?.+) )?\(?((?:[-a-z]+):.*?):(\d+)(?::(\d+))?\)?\s*$/i});var AH5,EM6=(Y,X)=>{let G=AH5.exec(Y);return G?QO(X,G[2],G[3]||AJ,+G[1]):void 0},MH5,PM6=(Y,X)=>{let G=MH5.exec(Y);return G?QO(X,G[5],G[3]||G[4]||AJ,+G[1],+G[2]):void 0};var TM6=w(()=>{Uw();AH5=/ line (\d+).*script (?:in )?(\S+)(?:: in function (\S+))?$/i,MH5=/ line (\d+), column (\d+)\s*(?:in (?:<anonymous function: ([^>]+)>|([^)]+))\(.*\))? in (.*):\s*$/i});function TH5(Y,X=!1){return!(X||Y&&!Y.startsWith("/")&&!Y.match(/^[A-Z]:/)&&!Y.startsWith(".")&&!Y.match(/^[a-zA-Z]([a-zA-Z0-9.\-+])*:\/\//))&&Y!==void 0&&!Y.includes("node_modules/")}function RM6(Y){return parseInt(Y||"",10)||void 0}var EH5,PH5,CM6=(Y,X)=>{let G=Y.match(PH5);if(G){let J,Q,Z,W,$;if(G[1]){Z=G[1];let V=Z.lastIndexOf(".");if(Z[V-1]===".")V--;if(V>0){J=Z.slice(0,V),Q=Z.slice(V+1);let U=J.indexOf(".Module");if(U>0)Z=Z.slice(U+1),J=J.slice(0,U)}W=void 0}if(Q)W=J,$=Q;if(Q==="<anonymous>")$=void 0,Z=void 0;if(Z===void 0)$=$||AJ,Z=W?`${W}.${$}`:$;let H=G[2]?.startsWith("file://")?G[2].slice(7):G[2],K=G[5]==="native";if(H?.match(/\/[A-Z]:/))H=H.slice(1);if(!H&&G[5]&&!K)H=G[5];return{filename:H?decodeURI(H):void 0,module:void 0,function:Z,lineno:RM6(G[3]),colno:RM6(G[4]),in_app:TH5(H||"",K),platform:X}}if(Y.match(EH5))return{filename:Y,platform:X}};var SM6=w(()=>{Uw();EH5=/^\s*[-]{4,}$/,PH5=/at (?:async )?(?:(.+?)\s+\()?(?:(.+):(\d+):(\d+)?|([^)]+))\)?/});function _M6(Y){if(!Y.length)return[];let X=Array.from(Y);return X.reverse(),X.slice(0,IM6).map((G)=>({...G,filename:G.filename||RH5(X).filename,function:G.function||AJ}))}function RH5(Y){return Y[Y.length-1]||{}}function CH5(){return fM6("web:javascript",Wn1,Zn1)}function fM6(Y,...X){return(G,J=0)=>{let Q=[],Z=G.split(`
1639
+ `);J=Z.pop()??"";for(let W of Z){let $=Dw6(W).replace(/^\[\d+\]\s*/,"").trim();if(!$)continue;E$({method:"",path:"",status:0,duration:0,timestamp:new Date,rawLine:$})}}(async()=>{for(;;){let{done:Z,value:W}=await X.read();if(Z)break;J+=G.decode(W,{stream:!0}),Q()}if(J.trim()){let Z=Dw6(J).replace(/^\[\d+\]\s*/,"").trim();if(Z)E$({method:"",path:"",status:0,duration:0,timestamp:new Date,rawLine:Z})}})()}async function dZ5(Y){let{vitePort:X,baseUrl:G,noTui:J}=Y,Q=await kZ1(Number(Y.port)),{settings:Z,services:W,managedServiceNames:$}=await fZ1({port:String(Q),home:Y.home,baseUrl:Y.baseUrl,localMode:Y.localMode,skipMigrations:Y.skipMigrations,noTui:Y.noTui,vitePort:Y.vitePort});for(let B of W)US({name:B.name,status:"ready",port:B.port});Xx(Z),eb();let H=lZ5(import.meta.dir,"..","..","..","..",".."),K=J===!0,V=Bun.spawn(["bun","run","--cwd=apps/mesh","dev:servers"],{cwd:H,env:{...process.env,PORT:String(Z.port),VITE_PORT:String(X),DATABASE_URL:Z.databaseUrl,NATS_URL:Z.natsUrls.join(","),NODE_ENV:Z.nodeEnv,DECOCMS_LOCAL_MODE:String(Z.localMode),DECOCMS_HOME:Z.dataDir,DATA_DIR:Z.dataDir,DECO_CLI:"1",...Z.baseUrl?{BASE_URL:Z.baseUrl}:{}},stdio:["inherit",K?"inherit":"pipe",K?"inherit":"pipe"]});if(!K)ww6(V.stdout),ww6(V.stderr);let U=G||`http://localhost:${Z.port}`;Yx(U),US({name:"Vite",status:"ready",port:Number(X)});let O=async(B)=>{if(V.kill(B),$.length>0){let{stopServices:N}=await Promise.resolve().then(() => (M11(),A11));await N(Z.dataDir)}};return process.on("SIGINT",()=>O("SIGINT")),process.on("SIGTERM",()=>O("SIGTERM")),{port:Number(Z.port),process:V}}var Kp1=w(()=>{Zp1();$K();$p1()});import{Box as Fp1,Text as Vp1}from"ink";import{jsx as Mw6,jsxs as vZ1}from"react/jsx-runtime";function Aw6(Y){if(!Y)return"not set";try{let X=new URL(Y);if(X.password)X.password="***";if(X.username&&X.username.length>3)X.username=X.username.slice(0,3)+"***";return X.pathname="/",X.search="",X.hash="",X.toString()}catch{if(Y.length<=10)return Y;return Y.slice(0,6)+"***"+Y.slice(-4)}}function nZ5(Y,X){if(cZ5.has(Y))return X?{text:"\u25CF\u25CF\u25CF\u25CF\u25CF\u25CF",dimColor:!0}:{text:"not set",dimColor:!0};if(pZ5.has(Y)){if(Array.isArray(X)){if(X.length===0)return{text:"not set",dimColor:!0};return{text:X.map((Z)=>Aw6(Z)).join(", "),color:"cyan"}}let J=Aw6(X);return J==="not set"?{text:J,dimColor:!0}:{text:J,color:"cyan"}}if(X===void 0||X===null||X==="")return{text:"not set",dimColor:!0};let G=String(X);if(G==="true")return{text:G,color:"green"};if(G==="false")return{text:G,color:"yellow"};try{return new URL(G),{text:G,color:"cyan"}}catch{return{text:G}}}function iZ5(Y){return[{title:"Core",entries:[{key:"NODE_ENV",value:Y.nodeEnv},{key:"PORT",value:Y.port},{key:"BASE_URL",value:Y.baseUrl??`http://localhost:${Y.port}`},{key:"DATA_DIR",value:Y.dataDir}]},{title:"Database",entries:[{key:"DATABASE_URL",value:Y.databaseUrl},{key:"DATABASE_PG_SSL",value:Y.databasePgSsl}]},{title:"Auth & Secrets",entries:[{key:"BETTER_AUTH_SECRET",value:Y.betterAuthSecret},{key:"ENCRYPTION_KEY",value:Y.encryptionKey},{key:"MESH_JWT_SECRET",value:Y.meshJwtSecret},{key:"STUDIO_PROVISION_SECRET_KEY",value:Y.studioProvisionSecretKey},{key:"DISABLE_RATE_LIMIT",value:Y.disableRateLimit}]},{title:"Auth Providers",entries:[{key:"AUTH_EMAIL_PASSWORD_ENABLED",value:process.env.AUTH_EMAIL_PASSWORD_ENABLED??"true"},{key:"AUTH_GOOGLE_CLIENT_ID",value:!!process.env.AUTH_GOOGLE_CLIENT_ID},{key:"AUTH_GITHUB_CLIENT_ID",value:!!process.env.AUTH_GITHUB_CLIENT_ID},{key:"AUTH_RESEND_API_KEY",value:!!process.env.AUTH_RESEND_API_KEY},{key:"AUTH_SENDGRID_API_KEY",value:!!process.env.AUTH_SENDGRID_API_KEY},{key:"AUTH_SSO_MS_CLIENT_ID",value:!!process.env.AUTH_SSO_MS_CLIENT_ID},{key:"AUTH_MAGIC_LINK_ENABLED",value:process.env.AUTH_MAGIC_LINK_ENABLED==="true"},{key:"AUTH_EMAIL_OTP_ENABLED",value:process.env.AUTH_EMAIL_OTP_ENABLED==="true"}]},{title:"Observability",entries:[{key:"CLICKHOUSE_URL",value:Y.clickhouseUrl},{key:"OTEL_SERVICE_NAME",value:Y.otelServiceName}]},{title:"Event Bus & Networking",entries:[{key:"NATS_URL",value:Y.natsUrls}]},{title:"Config Files",entries:[{key:"CONFIG_PATH",value:Y.configPath}]},{title:"Transport",entries:[{key:"UNSAFE_ALLOW_STDIO_TRANSPORT",value:Y.unsafeAllowStdioTransport}]},{title:"AI Gateway",entries:[{key:"DECO_AI_GATEWAY_ENABLED",value:Y.aiGatewayEnabled},{key:"DECO_AI_GATEWAY_URL",value:Y.aiGatewayUrl}]}]}function Ew6({env:Y}){let X=iZ5(Y);return Mw6(Fp1,{flexDirection:"column",children:X.map((G)=>vZ1(Fp1,{flexDirection:"column",marginTop:1,children:[vZ1(Vp1,{dimColor:!0,children:[" ","\u2500\u2500 ",G.title," ","\u2500".repeat(Math.max(0,38-G.title.length))]}),G.entries.map(({key:J,value:Q})=>{let Z=nZ5(J,Q);return vZ1(Fp1,{children:[vZ1(Vp1,{dimColor:!0,children:[" ",J.padEnd(36)]}),Mw6(Vp1,{color:Z.color,dimColor:Z.dimColor,children:Z.text})]},J)})]},G.title))})}var cZ5,pZ5;var Pw6=w(()=>{cZ5=new Set(["BETTER_AUTH_SECRET","ENCRYPTION_KEY","MESH_JWT_SECRET","STUDIO_PROVISION_SECRET_KEY"]),pZ5=new Set(["DATABASE_URL","CLICKHOUSE_URL","NATS_URL"])});var Up1;var Tw6=w(()=>{Up1={name:"decocms",version:"2.282.2",description:"Deco CMS \u2014 Self-hostable MCP Gateway for managing AI connections and tools",author:"Deco team",repository:{type:"git",url:"git+https://github.com/decocms/studio.git",directory:"apps/mesh"},bugs:{url:"https://github.com/decocms/studio/issues"},type:"module",bin:{deco:"./dist/server/cli.js"},files:["dist/**/*"],scripts:{dev:'bun run migrate && concurrently "bun run dev:client" "bun run dev:server"',"dev:servers":'concurrently "bun run dev:client" "bun run dev:server"',"dev:client":"bun --bun vite dev","dev:server":"bun run --cwd=../../packages/sandbox build && NODE_ENV=development bun --env-file=.env --hot run src/index.ts","build:client":"bun --bun vite build","build:server":"bun run scripts/bundle-server-script.ts --dist ./dist/server","db:migrate":"bun run ./dist/server/migrate.js",check:"tsc --noEmit",start:"bun run ./dist/server/server.js",migrate:"bun run src/database/migrate.ts",test:"bun test","test:e2e":"playwright test","test:e2e:ui":"playwright test --ui","better-auth:migrate":"bunx --bun @better-auth/cli migrate -y --config src/auth/index.ts",prepublishOnly:"bun run build:client && bun run build:server"},optionalDependencies:{"@duckdb/node-api":"^1.5.0-r.1","@freestyle-sh/with-bun":"^0.2.12","@freestyle-sh/with-deno":"^0.0.4","@freestyle-sh/with-nodejs":"^0.2.9","freestyle-sandboxes":"^0.1.46"},dependencies:{"@ai-sdk/anthropic":"^3.0.58","@ai-sdk/google":"^3.0.60","@ai-sdk/openai":"^3.0.50","@anthropic-ai/sdk":"^0.79.0","@aws-sdk/client-s3":"^3.1013.0","@aws-sdk/s3-request-presigner":"^3.1013.0","@clickhouse/client":"^1.8.1","@dnd-kit/core":"^6.3.1","@dnd-kit/sortable":"^10.0.0","@dnd-kit/utilities":"^3.2.2","@inkjs/ui":"^2.0.0","@modelcontextprotocol/ext-apps":"^1.2.2","@openrouter/ai-sdk-provider":"^2.2.5","@opentelemetry/core":"^2.6.0","@tanstack/react-virtual":"^3.13.21","@xterm/addon-fit":"^0.11.0","@xterm/xterm":"^6.0.0","ai-sdk-provider-claude-code":"^3.4.4","ai-sdk-provider-codex-cli":"^1.1.0","embedded-postgres":"^18.3.0-beta.16",ink:"^6.8.0",kysely:"^0.28.12",nats:"^2.29.3","posthog-js":"^1.371.1","posthog-node":"^5.0.0",react:"^19.2.0","react-dom":"^19.2.0"},devDependencies:{"@ai-sdk/provider":"^3.0.8","@ai-sdk/react":"^3.0.118","@anthropic-ai/claude-agent-sdk":"^0.2.80","@better-auth/sso":"1.4.1","@daveyplate/better-auth-ui":"^3.2.7","@deco/ui":"workspace:*","@decocms/better-auth":"1.5.17","@decocms/bindings":"workspace:*","@decocms/mcp-utils":"workspace:*","@decocms/mesh-sdk":"workspace:*","@decocms/runtime":"workspace:*","@decocms/vite-plugin":"workspace:*","@electric-sql/pglite":"^0.3.15","@floating-ui/react":"^0.27.16","@hookform/resolvers":"^5.2.2","@jitl/quickjs-wasmfile-release-sync":"0.31.0","@modelcontextprotocol/sdk":"1.27.1","@monaco-editor/react":"^4.7.0","@opentelemetry/api":"^1.9.0","@opentelemetry/api-logs":"^0.211.0","@opentelemetry/exporter-logs-otlp-proto":"^0.211.0","@opentelemetry/exporter-prometheus":"^0.208.0","@opentelemetry/exporter-trace-otlp-proto":"^0.207.0","@opentelemetry/instrumentation-runtime-node":"^0.24.0","@opentelemetry/sdk-logs":"^0.211.0","@opentelemetry/sdk-metrics":"^2.2.0","@opentelemetry/sdk-node":"^0.207.0","@opentelemetry/sdk-trace-base":"^2.5.0","@playwright/test":"^1.58.2","@radix-ui/react-avatar":"^1.1.10","@radix-ui/react-checkbox":"^1.3.3","@radix-ui/react-dialog":"^1.1.15","@radix-ui/react-dropdown-menu":"^2.1.16","@radix-ui/react-label":"^2.1.7","@radix-ui/react-select":"^2.2.6","@radix-ui/react-separator":"^1.1.7","@radix-ui/react-slot":"^1.2.3","@radix-ui/react-tabs":"^1.1.13","@rjsf/core":"^6.1.2","@rjsf/shadcn":"^6.1.2","@rjsf/utils":"^6.1.2","@rjsf/validator-ajv8":"^6.1.2","@tailwindcss/vite":"^4.1.17","@tanstack/react-query":"5.90.11","@tanstack/react-router":"^1.139.7","@tiptap/core":"3.20.2","@tiptap/extension-mention":"3.20.2","@tiptap/extension-placeholder":"3.20.2","@tiptap/pm":"3.20.2","@tiptap/react":"3.20.2","@tiptap/starter-kit":"3.20.2","@tiptap/suggestion":"3.20.2","@types/bun":"^1.3.1","@types/pg":"^8.15.6","@types/react-syntax-highlighter":"^15.5.13","@untitledui/icons":"^0.0.19","@vercel/nft":"^1.1.1","@vitejs/plugin-react":"^5.1.0",ai:"^6.0.116","babel-plugin-react-compiler":"^1.0.0","better-auth":"1.4.5","class-variance-authority":"^0.7.1",clsx:"^2.1.1",concurrently:"^9.2.1",croner:"^9.1.0","date-fns":"^4.1.0",degit:"^2.8.4",hono:"^4.10.7","input-otp":"^1.4.2",jose:"^6.0.11","kysely-pglite":"^0.6.1","lucide-react":"^0.468.0",marked:"^15.0.6","@decocms/sandbox":"workspace:*","mesh-plugin-workflows":"workspace:*",nanoid:"^5.1.6",pg:"^8.16.3",prettier:"^3.4.2","react-hook-form":"^7.66.0","react-markdown":"^10.1.0","react-resizable-panels":"^2.1.7","react-syntax-highlighter":"^15.6.1",recharts:"^3.6.0","rehype-raw":"^7.0.0","remark-gfm":"^4.0.0","sass-embedded":"^1.97.2",sonner:"^2.0.7","tailwind-merge":"^3.3.1",tailwindcss:"^4.1.17",typescript:"^5.9.3",vite:"^7.2.1","vite-tsconfig-paths":"^5.1.4",zod:"^4.0.0",zustand:"^5.0.9"},homepage:"https://github.com/decocms/studio",keywords:["mcp","model-context-protocol","ai","gateway","self-hosted","mesh","tools"],license:"MIT",publishConfig:{access:"public"}}});import{Box as TF,Text as JY}from"ink";import{Spinner as rZ5}from"@inkjs/ui";import{useSyncExternalStore as Rw6}from"react";import{jsx as rY,jsxs as wJ}from"react/jsx-runtime";function Y$5(Y,X){if(!Y||!eZ5.has(Y))return Y;let G=Op1[X]??Op1[Op1.length-1];return Y==="#875f00"?G[0]:G[1]}function Cw6({status:Y}){if(Y==="pending")return rY(rZ5,{label:""});return rY(JY,{color:"green",children:"\u2713"})}function Sw6({services:Y,migrationsStatus:X,home:G,serverUrl:J,vibe:Q}){let Z=Rw6(fH0,_H0),W=Rw6(xH0,bH0);return wJ(TF,{flexDirection:"column",paddingBottom:1,children:[Q?wJ(TF,{flexDirection:"column",children:[Z.map(($,H)=>{let K=W[H],V=$.reduce((O,B)=>O+B.text.length,0),U=Math.max(0,tZ5-V);return wJ(TF,{flexDirection:"row",children:[$.map((O,B)=>{let N=Y$5(O.color,H);return N?rY(JY,{color:N,children:O.text},B):rY(JY,{children:O.text},B)}),rY(JY,{children:" ".repeat(U+2)}),K?.map((O,B)=>O.color?rY(JY,{color:O.color,children:O.char},B):rY(JY,{children:O.char},B))]},H)}),wJ(JY,{dimColor:!0,children:[" v",Up1.version]})]}):wJ(TF,{flexDirection:"column",marginTop:1,children:[oZ5.map(($,H)=>rY(JY,{color:sZ5[H],children:$},H)),wJ(JY,{dimColor:!0,children:[" v",Up1.version]})]}),rY(TF,{marginBottom:1,children:rY(JY,{dimColor:!0,children:"\u2500".repeat(80)})}),rY(TF,{children:wJ(JY,{dimColor:!0,children:["Home: ",G]})}),wJ(TF,{gap:2,children:[Y.map(($)=>wJ(TF,{gap:1,children:[wJ(JY,{children:[$.name," :",$.port||"...."]}),rY(Cw6,{status:$.status})]},$.name)),wJ(TF,{gap:1,children:[rY(JY,{children:"Migrations"}),rY(Cw6,{status:X})]})]}),rY(TF,{children:J?wJ(JY,{children:["Open in browser: ",rY(JY,{color:"cyan",children:J})]}):rY(JY,{dimColor:!0,children:"Starting..."})}),wJ(TF,{gap:2,children:[wJ(JY,{dimColor:!0,children:[rY(JY,{bold:!0,dimColor:!0,children:"K"})," ","toggle config"]}),wJ(JY,{dimColor:!0,children:[rY(JY,{bold:!0,dimColor:!0,children:"L"})," ","toggle log flow"]}),wJ(JY,{dimColor:!0,children:[rY(JY,{bold:!0,dimColor:!0,children:"V"})," ","toggle vibe ",Q?"\u266A Nihilore \xB7 CC BY 4.0":""]}),Q&&wJ(JY,{dimColor:!0,children:[rY(JY,{bold:!0,dimColor:!0,children:"N"})," ","skip song"]})]})]})}var oZ5,sZ5,Op1,tZ5=30,eZ5;var jw6=w(()=>{Tw6();ez1();WL1();oZ5=[" \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 \u2588\u2588\u2588\u2588\u2588\u2588\u2588 ","\u2591\u2591\u2588\u2588\u2588\u2591\u2591\u2591\u2591\u2588\u2588\u2588 \u2591\u2591\u2588\u2588\u2588\u2591\u2591\u2591\u2591\u2591\u2588 \u2588\u2588\u2588\u2591\u2591\u2591\u2591\u2591\u2588\u2588\u2588 \u2588\u2588\u2588\u2591\u2591\u2591\u2591\u2591\u2588\u2588\u2588 "," \u2591\u2588\u2588\u2588 \u2591\u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588 \u2588 \u2591 \u2588\u2588\u2588 \u2591\u2591\u2591 \u2588\u2588\u2588 \u2591\u2591\u2588\u2588\u2588"," \u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588\u2588\u2588\u2588 \u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588"," \u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588\u2591\u2591\u2588 \u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588 \u2591\u2588\u2588\u2588"," \u2591\u2588\u2588\u2588 \u2588\u2588\u2588 \u2591\u2588\u2588\u2588 \u2591 \u2588\u2591\u2591\u2588\u2588\u2588 \u2588\u2588\u2588\u2591\u2591\u2588\u2588\u2588 \u2588\u2588\u2588 "," \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 \u2591\u2591\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 \u2591\u2591\u2591\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2591 ","\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591 \u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591 \u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591 \u2591\u2591\u2591\u2591\u2591\u2591\u2591 "],sZ5=["#00ff64","#00ee5e","#00dc56","#00c84e","#00b444","#00a03c","#008832","#006e28"],Op1=[["#00ff64","#00cc50"],["#00f060","#00c04c"],["#00e05c","#00b448"],["#00d058","#00a844"],["#00c054","#009c40"],["#00b050","#00903c"],["#00a04c","#008438"],["#009048","#007834"],["#008044","#006c30"],["#007040","#00602c"],["#00603c","#005428"]],eZ5=new Set(["#875f00","#5f3800"])});import{useSyncExternalStore as X$5}from"react";function G$5(){let Y=process.stdout.rows||24,X=process.stdout.columns||80;if(Y!==hZ1.rows||X!==hZ1.columns)hZ1={rows:Y,columns:X};return hZ1}function J$5(Y){return process.stdout.on("resize",Y),()=>{process.stdout.off("resize",Y)}}function Iw6(){return X$5(J$5,G$5)}var hZ1;var _w6=w(()=>{hZ1={rows:process.stdout.rows||24,columns:process.stdout.columns||80}});import{Box as Q$5,Text as Ji}from"ink";import{useSyncExternalStore as W$5}from"react";import{jsx as Bp1,jsxs as Np1}from"react/jsx-runtime";function Z$5(Y){if(Y>=500)return"red";if(Y>=400)return"yellow";if(Y>=300)return"cyan";return"green"}function fw6({logs:Y,headerHeight:X}){let{rows:G}=Iw6(),{logFlow:J}=W$5(tb,sb),Q=Math.max(1,G-X-1),Z=J?Y:Y.slice(-Q);return Bp1(Q$5,{flexDirection:"column",children:Z.map((W,$)=>{if(W.rawLine)return Bp1(Ji,{dimColor:!0,children:W.rawLine},$);let H=W.duration<1000?`${W.duration}ms`:`${(W.duration/1000).toFixed(1)}s`;return Np1(Ji,{children:[Np1(Ji,{dimColor:!0,children:[W.method.padEnd(6)," ",W.path.padEnd(30)," "]}),Bp1(Ji,{color:Z$5(W.status),children:W.status}),Np1(Ji,{dimColor:!0,children:[" ",H.padStart(8)]})]},$)})})}var kw6=w(()=>{$K();_w6()});var qp1={};I0(qp1,{App:()=>O$5});import{Box as $$5,Text as H$5,useInput as K$5}from"ink";import{useSyncExternalStore as F$5}from"react";import{jsx as yZ1,jsxs as B$5}from"react/jsx-runtime";function O$5({home:Y}){let X=F$5(tb,sb);return K$5((G)=>{if(G==="k"||G==="K")VL1();if(G==="l"||G==="L")UL1();if((G==="v"||G==="V")&&X.dataDir)KL1(X.dataDir),OL1();if((G==="n"||G==="N")&&X.vibe)HL1()}),B$5($$5,{flexDirection:"column",children:[yZ1(Sw6,{services:X.services,migrationsStatus:X.migrationsStatus,home:Y,serverUrl:X.serverUrl,vibe:X.vibe}),X.viewMode==="config"?X.env?yZ1(Ew6,{env:X.env}):yZ1(H$5,{dimColor:!0,children:"Loading configuration..."}):yZ1(fw6,{logs:X.logs,headerHeight:X.vibe?U$5:V$5})]})}var V$5=15,U$5=19;var zp1=w(()=>{Pw6();jw6();kw6();$K();VS()});function vw6(Y,X={}){return{PORT:String(Y.port),NODE_ENV:Y.nodeEnv,BASE_URL:Y.baseUrl,DATA_DIR:Y.dataDir,DECOCMS_HOME:Y.dataDir,DATABASE_URL:Y.databaseUrl,DATABASE_PG_SSL:String(Y.databasePgSsl),DATABASE_POOL_MAX:String(Y.databasePoolMax),NATS_URL:Y.natsUrls.join(","),BETTER_AUTH_SECRET:Y.betterAuthSecret,ENCRYPTION_KEY:Y.encryptionKey,MESH_JWT_SECRET:Y.meshJwtSecret,DECOCMS_LOCAL_MODE:String(Y.localMode),DECOCMS_ALLOW_LOCAL_PROD:String(Y.allowLocalProd),DISABLE_RATE_LIMIT:String(Y.disableRateLimit),STUDIO_PROVISION_SECRET_KEY:Y.studioProvisionSecretKey,CONFIG_PATH:Y.configPath,...Object.fromEntries(Object.entries(process.env).filter(([G])=>G.startsWith("AUTH_"))),UNSAFE_ALLOW_STDIO_TRANSPORT:String(Y.unsafeAllowStdioTransport),DECO_AI_GATEWAY_ENABLED:String(Y.aiGatewayEnabled),DECO_AI_GATEWAY_URL:Y.aiGatewayUrl,ENABLE_DECO_IMPORT:String(Y.enableDecoImport),S3_ENDPOINT:Y.s3Endpoint,S3_BUCKET:Y.s3Bucket,S3_REGION:Y.s3Region,S3_ACCESS_KEY_ID:Y.s3AccessKeyId,S3_SECRET_ACCESS_KEY:Y.s3SecretAccessKey,S3_FORCE_PATH_STYLE:String(Y.s3ForcePathStyle),OTEL_SERVICE_NAME:Y.otelServiceName,CLICKHOUSE_URL:Y.clickhouseUrl,DECO_SUPABASE_URL:Y.decoSupabaseUrl,DECO_SUPABASE_SERVICE_KEY:Y.decoSupabaseServiceKey,FIRECRAWL_API_KEY:Y.firecrawlApiKey,MESH_SANDBOX_RUNNER:process.env.MESH_SANDBOX_RUNNER,FREESTYLE_API_KEY:process.env.FREESTYLE_API_KEY,BROWSERLESS_TOKEN:process.env.BROWSERLESS_TOKEN,POSTHOG_KEY:process.env.POSTHOG_KEY,POSTHOG_HOST:process.env.POSTHOG_HOST,NODE_EXTRA_CA_CERTS:process.env.NODE_EXTRA_CA_CERTS,DECO_CLI:"1",DECO_NO_TUI:"true",...X}}function yw6(Y){if(!Y)return!1;try{return new URL(Y).host==="api.decocms.com"&&Y!=="https://studio.decocms.com/org/deco/registry/mcp"}catch{return!1}}var hw6="https://studio.decocms.com/org/deco/registry/mcp";var Lp1=(Y,X,G)=>{return(J,Q)=>{let Z=-1;return W(0);async function W($){if($<=Z)throw Error("next() called multiple times");Z=$;let H,K=!1,V;if(Y[$])V=Y[$][0][0],J.req.routeIndex=$;else V=$===Y.length&&Q||void 0;if(V)try{H=await V(J,()=>W($+1))}catch(U){if(U instanceof Error&&X)J.error=U,H=await X(U,J),K=!0;else throw U}else if(J.finalized===!1&&G)H=await G(J);if(H&&(J.finalized===!1||K))J.res=H;return J}}};var bw6=()=>{};var H9;var $w=w(()=>{H9=class extends Error{res;status;constructor(Y=500,X){super(X?.message,{cause:X?.cause});this.res=X?.res,this.status=Y}getResponse(){if(this.res)return new Response(this.res.body,{status:this.status,headers:this.res.headers});return new Response(this.message,{status:this.status})}}});var xw6;var uw6=w(()=>{xw6=Symbol()});async function N$5(Y,X){let G=await Y.formData();if(G)return q$5(G,X);return{}}function q$5(Y,X){let G=Object.create(null);if(Y.forEach((J,Q)=>{if(!(X.all||Q.endsWith("[]")))G[Q]=J;else z$5(G,Q,J)}),X.dot)Object.entries(G).forEach(([J,Q])=>{if(J.includes("."))L$5(G,J,Q),delete G[J]});return G}var gw6=async(Y,X=Object.create(null))=>{let{all:G=!1,dot:J=!1}=X,Z=(Y instanceof bZ1?Y.raw.headers:Y.headers).get("Content-Type");if(Z?.startsWith("multipart/form-data")||Z?.startsWith("application/x-www-form-urlencoded"))return N$5(Y,{all:G,dot:J});return{}},z$5=(Y,X,G)=>{if(Y[X]!==void 0)if(Array.isArray(Y[X]))Y[X].push(G);else Y[X]=[Y[X],G];else if(!X.endsWith("[]"))Y[X]=G;else Y[X]=[G]},L$5=(Y,X,G)=>{if(/(?:^|\.)__proto__\./.test(X))return;let J=Y,Q=X.split(".");Q.forEach((Z,W)=>{if(W===Q.length-1)J[Z]=G;else{if(!J[Z]||typeof J[Z]!=="object"||Array.isArray(J[Z])||J[Z]instanceof File)J[Z]=Object.create(null);J=J[Z]}})};var mw6=w(()=>{Dp1()});var Ap1=(Y)=>{let X=Y.split("/");if(X[0]==="")X.shift();return X},lw6=(Y)=>{let{groups:X,path:G}=D$5(Y),J=Ap1(G);return w$5(J,X)},D$5=(Y)=>{let X=[];return Y=Y.replace(/\{[^}]+\}/g,(G,J)=>{let Q=`@${J}`;return X.push([Q,G]),Q}),{groups:X,path:Y}},w$5=(Y,X)=>{for(let G=X.length-1;G>=0;G--){let[J]=X[G];for(let Q=Y.length-1;Q>=0;Q--)if(Y[Q].includes(J)){Y[Q]=Y[Q].replace(J,X[G][1]);break}}return Y},xZ1,dw6=(Y,X)=>{if(Y==="*")return"*";let G=Y.match(/^\:([^\{\}]+)(?:\{(.+)\})?$/);if(G){let J=`${Y}#${X}`;if(!xZ1[J])if(G[2])xZ1[J]=X&&X[0]!==":"&&X[0]!=="*"?[J,G[1],new RegExp(`^${G[2]}(?=/${X})`)]:[Y,G[1],new RegExp(`^${G[2]}$`)];else xZ1[J]=[Y,G[1],!0];return xZ1[J]}return null},yk=(Y,X)=>{try{return X(Y)}catch{return Y.replace(/(?:%[0-9A-Fa-f]{2})+/g,(G)=>{try{return X(G)}catch{return G}})}},cw6=(Y)=>yk(Y,decodeURI),Mp1=(Y)=>{let X=Y.url,G=X.indexOf("/",X.indexOf(":")+4),J=G;for(;J<X.length;J++){let Q=X.charCodeAt(J);if(Q===37){let Z=X.indexOf("?",J),W=X.indexOf("#",J),$=Z===-1?W===-1?void 0:W:W===-1?Z:Math.min(Z,W),H=X.slice(G,$);return cw6(H.includes("%25")?H.replace(/%25/g,"%2525"):H)}else if(Q===63||Q===35)break}return X.slice(G,J)},pw6=(Y)=>{let X=Mp1(Y);return X.length>1&&X.at(-1)==="/"?X.slice(0,-1):X},sP=(Y,X,...G)=>{if(G.length)X=sP(X,...G);return`${Y?.[0]==="/"?"":"/"}${Y}${X==="/"?"":`${Y?.at(-1)==="/"?"":"/"}${X?.[0]==="/"?X.slice(1):X}`}`},uZ1=(Y)=>{if(Y.charCodeAt(Y.length-1)!==63||!Y.includes(":"))return null;let X=Y.split("/"),G=[],J="";return X.forEach((Q)=>{if(Q!==""&&!/\:/.test(Q))J+="/"+Q;else if(/\:/.test(Q))if(/\?/.test(Q)){if(G.length===0&&J==="")G.push("/");else G.push(J);let Z=Q.replace("?","");J+="/"+Z,G.push(J)}else J+="/"+Q}),G.filter((Q,Z,W)=>W.indexOf(Q)===Z)},wp1=(Y)=>{if(!/[%+]/.test(Y))return Y;if(Y.indexOf("+")!==-1)Y=Y.replace(/\+/g," ");return Y.indexOf("%")!==-1?yk(Y,Qi):Y},nw6=(Y,X,G)=>{let J;if(!G&&X&&!/[%+]/.test(X)){let W=Y.indexOf("?",8);if(W===-1)return;if(!Y.startsWith(X,W+1))W=Y.indexOf(`&${X}`,W+1);while(W!==-1){let $=Y.charCodeAt(W+X.length+1);if($===61){let H=W+X.length+2,K=Y.indexOf("&",H);return wp1(Y.slice(H,K===-1?void 0:K))}else if($==38||isNaN($))return"";W=Y.indexOf(`&${X}`,W+1)}if(J=/[%+]/.test(Y),!J)return}let Q={};J??=/[%+]/.test(Y);let Z=Y.indexOf("?",8);while(Z!==-1){let W=Y.indexOf("&",Z+1),$=Y.indexOf("=",Z);if($>W&&W!==-1)$=-1;let H=Y.slice(Z+1,$===-1?W===-1?void 0:W:$);if(J)H=wp1(H);if(Z=W,H==="")continue;let K;if($===-1)K="";else if(K=Y.slice($+1,W===-1?void 0:W),J)K=wp1(K);if(G){if(!(Q[H]&&Array.isArray(Q[H])))Q[H]=[];Q[H].push(K)}else Q[H]??=K}return X?Q[X]:Q},iw6,aw6=(Y,X)=>{return nw6(Y,X,!0)},Qi;var Hw=w(()=>{xZ1={},iw6=nw6,Qi=decodeURIComponent});var rw6=(Y)=>yk(Y,Qi),bZ1;var Dp1=w(()=>{$w();uw6();mw6();Hw();bZ1=class{raw;#Y;#X;routeIndex=0;path;bodyCache={};constructor(Y,X="/",G=[[]]){this.raw=Y,this.path=X,this.#X=G,this.#Y={}}param(Y){return Y?this.#G(Y):this.#J()}#G(Y){let X=this.#X[0][this.routeIndex][1][Y],G=this.#Q(X);return G&&/\%/.test(G)?rw6(G):G}#J(){let Y={},X=Object.keys(this.#X[0][this.routeIndex][1]);for(let G of X){let J=this.#Q(this.#X[0][this.routeIndex][1][G]);if(J!==void 0)Y[G]=/\%/.test(J)?rw6(J):J}return Y}#Q(Y){return this.#X[1]?this.#X[1][Y]:Y}query(Y){return iw6(this.url,Y)}queries(Y){return aw6(this.url,Y)}header(Y){if(Y)return this.raw.headers.get(Y)??void 0;let X={};return this.raw.headers.forEach((G,J)=>{X[J]=G}),X}async parseBody(Y){return gw6(this,Y)}#W=(Y)=>{let{bodyCache:X,raw:G}=this,J=X[Y];if(J)return J;let Q=Object.keys(X)[0];if(Q)return X[Q].then((Z)=>{if(Q==="json")Z=JSON.stringify(Z);return new Response(Z)[Y]()});return X[Y]=G[Y]()};json(){return this.#W("text").then((Y)=>JSON.parse(Y))}text(){return this.#W("text")}arrayBuffer(){return this.#W("arrayBuffer")}blob(){return this.#W("blob")}formData(){return this.#W("formData")}addValidatedData(Y,X){this.#Y[Y]=X}valid(Y){return this.#Y[Y]}get url(){return this.raw.url}get method(){return this.raw.method}get[xw6](){return this.#X}get matchedRoutes(){return this.#X[0].map(([[,Y]])=>Y)}get routePath(){return this.#X[0].map(([[,Y]])=>Y)[this.routeIndex].path}}});var gZ1,ow6=(Y,X)=>{let G=new String(Y);return G.isEscaped=!0,G.callbacks=X,G},Wi=async(Y,X,G,J,Q)=>{if(typeof Y==="object"&&!(Y instanceof String)){if(!(Y instanceof Promise))Y=Y.toString();if(Y instanceof Promise)Y=await Y}let Z=Y.callbacks;if(!Z?.length)return Promise.resolve(Y);if(Q)Q[0]+=Y;else Q=[Y];let W=Promise.all(Z.map(($)=>$({phase:X,buffer:Q,context:J}))).then(($)=>Promise.all($.filter(Boolean).map((H)=>Wi(H,X,!1,J,Q))).then(()=>Q[0]));if(G)return ow6(await W,Z);else return W};var mZ1=w(()=>{gZ1={Stringify:1,BeforeStream:2,Stream:3}});var sw6="text/plain; charset=UTF-8",Ep1=(Y,X)=>{return{"Content-Type":Y,...X}},Zi=(Y,X)=>new Response(Y,X),tw6=class{#Y;#X;env={};#G;finalized=!1;error;#J;#Q;#W;#$;#Z;#H;#K;#V;#U;constructor(Y,X){if(this.#Y=Y,X)this.#Q=X.executionCtx,this.env=X.env,this.#H=X.notFoundHandler,this.#U=X.path,this.#V=X.matchResult}get req(){return this.#X??=new bZ1(this.#Y,this.#U,this.#V),this.#X}get event(){if(this.#Q&&"respondWith"in this.#Q)return this.#Q;else throw Error("This context has no FetchEvent")}get executionCtx(){if(this.#Q)return this.#Q;else throw Error("This context has no ExecutionContext")}get res(){return this.#W||=Zi(null,{headers:this.#K??=new Headers})}set res(Y){if(this.#W&&Y){Y=Zi(Y.body,Y);for(let[X,G]of this.#W.headers.entries()){if(X==="content-type")continue;if(X==="set-cookie"){let J=this.#W.headers.getSetCookie();Y.headers.delete("set-cookie");for(let Q of J)Y.headers.append("set-cookie",Q)}else Y.headers.set(X,G)}}this.#W=Y,this.finalized=!0}render=(...Y)=>{return this.#Z??=(X)=>this.html(X),this.#Z(...Y)};setLayout=(Y)=>this.#$=Y;getLayout=()=>this.#$;setRenderer=(Y)=>{this.#Z=Y};header=(Y,X,G)=>{if(this.finalized)this.#W=Zi(this.#W.body,this.#W);let J=this.#W?this.#W.headers:this.#K??=new Headers;if(X===void 0)J.delete(Y);else if(G?.append)J.append(Y,X);else J.set(Y,X)};status=(Y)=>{this.#J=Y};set=(Y,X)=>{this.#G??=new Map,this.#G.set(Y,X)};get=(Y)=>{return this.#G?this.#G.get(Y):void 0};get var(){if(!this.#G)return{};return Object.fromEntries(this.#G)}#F(Y,X,G){let J=this.#W?new Headers(this.#W.headers):this.#K??new Headers;if(typeof X==="object"&&"headers"in X){let Z=X.headers instanceof Headers?X.headers:new Headers(X.headers);for(let[W,$]of Z)if(W.toLowerCase()==="set-cookie")J.append(W,$);else J.set(W,$)}if(G)for(let[Z,W]of Object.entries(G))if(typeof W==="string")J.set(Z,W);else{J.delete(Z);for(let $ of W)J.append(Z,$)}let Q=typeof X==="number"?X:X?.status??this.#J;return Zi(Y,{status:Q,headers:J})}newResponse=(...Y)=>this.#F(...Y);body=(Y,X,G)=>this.#F(Y,X,G);text=(Y,X,G)=>{return!this.#K&&!this.#J&&!X&&!G&&!this.finalized?new Response(Y):this.#F(Y,X,Ep1(sw6,G))};json=(Y,X,G)=>{return this.#F(JSON.stringify(Y),X,Ep1("application/json",G))};html=(Y,X,G)=>{let J=(Q)=>this.#F(Q,X,Ep1("text/html; charset=UTF-8",G));return typeof Y==="object"?Wi(Y,gZ1.Stringify,!1,{}).then(J):J(Y)};redirect=(Y,X)=>{let G=String(Y);return this.header("Location",!/[^\x00-\xFF]/.test(G)?G:encodeURI(G)),this.newResponse(null,X??302)};notFound=()=>{return this.#H??=()=>Zi(),this.#H(this)}};var lZ1=w(()=>{Dp1();mZ1()});var J7="ALL",ew6="all",YA6,dZ1="Can not add a route since the matcher is already built.",cZ1;var Kw=w(()=>{YA6=["get","post","put","delete","options","patch"],cZ1=class extends Error{}});var Pp1="__COMPOSED_HANDLER";var Tp1=()=>{};var A$5=(Y)=>{return Y.text("404 Not Found",404)},XA6=(Y,X)=>{if("getResponse"in Y){let G=Y.getResponse();return X.newResponse(G.body,G)}return console.error(Y),X.text("Internal Server Error",500)},GA6=class Y{get;post;put;delete;options;patch;all;on;use;router;getPath;_basePath="/";#Y="/";routes=[];constructor(X={}){[...YA6,ew6].forEach((Z)=>{this[Z]=(W,...$)=>{if(typeof W==="string")this.#Y=W;else this.#J(Z,this.#Y,W);return $.forEach((H)=>{this.#J(Z,this.#Y,H)}),this}}),this.on=(Z,W,...$)=>{for(let H of[W].flat()){this.#Y=H;for(let K of[Z].flat())$.map((V)=>{this.#J(K.toUpperCase(),this.#Y,V)})}return this},this.use=(Z,...W)=>{if(typeof Z==="string")this.#Y=Z;else this.#Y="*",W.unshift(Z);return W.forEach(($)=>{this.#J(J7,this.#Y,$)}),this};let{strict:J,...Q}=X;Object.assign(this,Q),this.getPath=J??!0?X.getPath??Mp1:pw6}#X(){let X=new Y({router:this.router,getPath:this.getPath});return X.errorHandler=this.errorHandler,X.#G=this.#G,X.routes=this.routes,X}#G=A$5;errorHandler=XA6;route(X,G){let J=this.basePath(X);return G.routes.map((Q)=>{let Z;if(G.errorHandler===XA6)Z=Q.handler;else Z=async(W,$)=>(await Lp1([],G.errorHandler)(W,()=>Q.handler(W,$))).res,Z[Pp1]=Q.handler;J.#J(Q.method,Q.path,Z)}),this}basePath(X){let G=this.#X();return G._basePath=sP(this._basePath,X),G}onError=(X)=>{return this.errorHandler=X,this};notFound=(X)=>{return this.#G=X,this};mount(X,G,J){let Q,Z;if(J)if(typeof J==="function")Z=J;else if(Z=J.optionHandler,J.replaceRequest===!1)Q=(H)=>H;else Q=J.replaceRequest;let W=Z?(H)=>{let K=Z(H);return Array.isArray(K)?K:[K]}:(H)=>{let K=void 0;try{K=H.executionCtx}catch{}return[H.env,K]};Q||=(()=>{let H=sP(this._basePath,X),K=H==="/"?0:H.length;return(V)=>{let U=new URL(V.url);return U.pathname=U.pathname.slice(K)||"/",new Request(U,V)}})();let $=async(H,K)=>{let V=await G(Q(H.req.raw),...W(H));if(V)return V;await K()};return this.#J(J7,sP(X,"*"),$),this}#J(X,G,J){X=X.toUpperCase(),G=sP(this._basePath,G);let Q={basePath:this._basePath,path:G,method:X,handler:J};this.router.add(X,G,[J,Q]),this.routes.push(Q)}#Q(X,G){if(X instanceof Error)return this.errorHandler(X,G);throw X}#W(X,G,J,Q){if(Q==="HEAD")return(async()=>new Response(null,await this.#W(X,G,J,"GET")))();let Z=this.getPath(X,{env:J}),W=this.router.match(Q,Z),$=new tw6(X,{path:Z,matchResult:W,env:J,executionCtx:G,notFoundHandler:this.#G});if(W[0].length===1){let K;try{K=W[0][0][0][0]($,async()=>{$.res=await this.#G($)})}catch(V){return this.#Q(V,$)}return K instanceof Promise?K.then((V)=>V||($.finalized?$.res:this.#G($))).catch((V)=>this.#Q(V,$)):K??this.#G($)}let H=Lp1(W[0],this.errorHandler,this.#G);return(async()=>{try{let K=await H($);if(!K.finalized)throw Error("Context is not finalized. Did you forget to return a Response object or `await next()`?");return K.res}catch(K){return this.#Q(K,$)}})()}fetch=(X,...G)=>{return this.#W(X,G[1],G[0],X.method)};request=(X,G,J,Q)=>{if(X instanceof Request)return this.fetch(G?new Request(X,G):X,J,Q);return X=X.toString(),this.fetch(new Request(/^https?:\/\//.test(X)?X:`http://localhost${sP("/",X)}`,G),J,Q)};fire=()=>{addEventListener("fetch",(X)=>{X.respondWith(this.#W(X.request,X,void 0,X.request.method))})}};var JA6=w(()=>{bw6();lZ1();Kw();Tp1();Hw()});function pZ1(Y,X){let G=this.buildAllMatchers(),J=(Q,Z)=>{let W=G[Q]||G[J7],$=W[2][Z];if($)return $;let H=Z.match(W[0]);if(!H)return[[],$i];let K=H.indexOf("",1);return[W[1][K],H]};return this.match=J,J(Y,X)}var $i;var Rp1=w(()=>{Kw();$i=[]});function E$5(Y,X){if(Y.length===1)return X.length===1?Y<X?-1:1:-1;if(X.length===1)return 1;if(Y===Hi||Y===Ki)return 1;else if(X===Hi||X===Ki)return-1;if(Y===nZ1)return 1;else if(X===nZ1)return-1;return Y.length===X.length?Y<X?-1:1:X.length-Y.length}var nZ1="[^/]+",Hi=".*",Ki="(?:|/.*)",tP,M$5,QA6=class Y{#Y;#X;#G=Object.create(null);insert(X,G,J,Q,Z){if(X.length===0){if(this.#Y!==void 0)throw tP;if(Z)return;this.#Y=G;return}let[W,...$]=X,H=W==="*"?$.length===0?["","",Hi]:["","",nZ1]:W==="/*"?["","",Ki]:W.match(/^\:([^\{\}]+)(?:\{(.+)\})?$/),K;if(H){let V=H[1],U=H[2]||nZ1;if(V&&H[2]){if(U===".*")throw tP;if(U=U.replace(/^\((?!\?:)(?=[^)]+\)$)/,"(?:"),/\((?!\?:)/.test(U))throw tP}if(K=this.#G[U],!K){if(Object.keys(this.#G).some((O)=>O!==Hi&&O!==Ki))throw tP;if(Z)return;if(K=this.#G[U]=new Y,V!=="")K.#X=Q.varIndex++}if(!Z&&V!=="")J.push([V,K.#X])}else if(K=this.#G[W],!K){if(Object.keys(this.#G).some((V)=>V.length>1&&V!==Hi&&V!==Ki))throw tP;if(Z)return;K=this.#G[W]=new Y}K.insert($,G,J,Q,Z)}buildRegExpStr(){let G=Object.keys(this.#G).sort(E$5).map((J)=>{let Q=this.#G[J];return(typeof Q.#X==="number"?`(${J})@${Q.#X}`:M$5.has(J)?`\\${J}`:J)+Q.buildRegExpStr()});if(typeof this.#Y==="number")G.unshift(`#${this.#Y}`);if(G.length===0)return"";if(G.length===1)return G[0];return"(?:"+G.join("|")+")"}};var Cp1=w(()=>{tP=Symbol(),M$5=new Set(".\\+*[^]$()")});var WA6=class{#Y={varIndex:0};#X=new QA6;insert(Y,X,G){let J=[],Q=[];for(let W=0;;){let $=!1;if(Y=Y.replace(/\{[^}]+\}/g,(H)=>{let K=`@\\${W}`;return Q[W]=[K,H],W++,$=!0,K}),!$)break}let Z=Y.match(/(?::[^\/]+)|(?:\/\*$)|./g)||[];for(let W=Q.length-1;W>=0;W--){let[$]=Q[W];for(let H=Z.length-1;H>=0;H--)if(Z[H].indexOf($)!==-1){Z[H]=Z[H].replace($,Q[W][1]);break}}return this.#X.insert(Z,X,J,this.#Y,G),J}buildRegExp(){let Y=this.#X.buildRegExpStr();if(Y==="")return[/^$/,[],[]];let X=0,G=[],J=[];return Y=Y.replace(/#(\d+)|@(\d+)|\.\*\$/g,(Q,Z,W)=>{if(Z!==void 0)return G[++X]=Number(Z),"$()";if(W!==void 0)return J[Number(W)]=++X,"";return""}),[new RegExp(`^${Y}`),G,J]}};var ZA6=w(()=>{Cp1()});function HA6(Y){return $A6[Y]??=new RegExp(Y==="*"?"":`^${Y.replace(/\/\*$|([.\\+*[^\]$()])/g,(X,G)=>G?`\\${G}`:"(?:|/.*)")}$`)}function T$5(){$A6=Object.create(null)}function R$5(Y){let X=new WA6,G=[];if(Y.length===0)return P$5;let J=Y.map((K)=>[!/\*|\/:/.test(K[0]),...K]).sort(([K,V],[U,O])=>K?1:U?-1:V.length-O.length),Q=Object.create(null);for(let K=0,V=-1,U=J.length;K<U;K++){let[O,B,N]=J[K];if(O)Q[B]=[N.map(([L])=>[L,Object.create(null)]),$i];else V++;let q;try{q=X.insert(B,V,O)}catch(L){throw L===tP?new cZ1(B):L}if(O)continue;G[V]=N.map(([L,D])=>{let E=Object.create(null);D-=1;for(;D>=0;D--){let[R,C]=q[D];E[R]=C}return[L,E]})}let[Z,W,$]=X.buildRegExp();for(let K=0,V=G.length;K<V;K++)for(let U=0,O=G[K].length;U<O;U++){let B=G[K][U]?.[1];if(!B)continue;let N=Object.keys(B);for(let q=0,L=N.length;q<L;q++)B[N[q]]=$[B[N[q]]]}let H=[];for(let K in W)H[K]=G[W[K]];return[Z,H,Q]}function bk(Y,X){if(!Y)return;for(let G of Object.keys(Y).sort((J,Q)=>Q.length-J.length))if(HA6(G).test(X))return[...Y[G]];return}var P$5,$A6,iZ1=class{name="RegExpRouter";#Y;#X;constructor(){this.#Y={[J7]:Object.create(null)},this.#X={[J7]:Object.create(null)}}add(Y,X,G){let J=this.#Y,Q=this.#X;if(!J||!Q)throw Error(dZ1);if(!J[Y])[J,Q].forEach(($)=>{$[Y]=Object.create(null),Object.keys($[J7]).forEach((H)=>{$[Y][H]=[...$[J7][H]]})});if(X==="/*")X="*";let Z=(X.match(/\/:/g)||[]).length;if(/\*$/.test(X)){let $=HA6(X);if(Y===J7)Object.keys(J).forEach((H)=>{J[H][X]||=bk(J[H],X)||bk(J[J7],X)||[]});else J[Y][X]||=bk(J[Y],X)||bk(J[J7],X)||[];Object.keys(J).forEach((H)=>{if(Y===J7||Y===H)Object.keys(J[H]).forEach((K)=>{$.test(K)&&J[H][K].push([G,Z])})}),Object.keys(Q).forEach((H)=>{if(Y===J7||Y===H)Object.keys(Q[H]).forEach((K)=>$.test(K)&&Q[H][K].push([G,Z]))});return}let W=uZ1(X)||[X];for(let $=0,H=W.length;$<H;$++){let K=W[$];Object.keys(Q).forEach((V)=>{if(Y===J7||Y===V)Q[V][K]||=[...bk(J[V],K)||bk(J[J7],K)||[]],Q[V][K].push([G,Z-H+$+1])})}}match=pZ1;buildAllMatchers(){let Y=Object.create(null);return Object.keys(this.#X).concat(Object.keys(this.#Y)).forEach((X)=>{Y[X]||=this.#G(X)}),this.#Y=this.#X=void 0,T$5(),Y}#G(Y){let X=[],G=Y===J7;if([this.#Y,this.#X].forEach((J)=>{let Q=J[Y]?Object.keys(J[Y]).map((Z)=>[Z,J[Y][Z]]):[];if(Q.length!==0)G||=!0,X.push(...Q);else if(Y!==J7)X.push(...Object.keys(J[J7]).map((Z)=>[Z,J[J7][Z]]))}),!G)return null;else return R$5(X)}};var Sp1=w(()=>{Kw();Hw();Rp1();Cp1();ZA6();P$5=[/^$/,[],Object.create(null)],$A6=Object.create(null)});var C$5=class{name="PreparedRegExpRouter";#Y;#X;constructor(Y,X){this.#Y=Y,this.#X=X}#G(Y,X){let G=this.#Y[Y];G[1].forEach((J)=>J&&J.push(X)),Object.values(G[2]).forEach((J)=>J[0].push(X))}#J(Y,X,G,J,Q){let Z=this.#Y[Y];if(!Q)Z[2][X][0].push([G,{}]);else J.forEach((W)=>{if(typeof W==="number")Z[1][W].push([G,Q]);else Z[2][W||X][0].push([G,Q])})}add(Y,X,G){if(!this.#Y[Y]){let Q=this.#Y[J7],Z={};for(let W in Q[2])Z[W]=[Q[2][W][0].slice(),$i];this.#Y[Y]=[Q[0],Q[1].map((W)=>Array.isArray(W)?W.slice():0),Z]}if(X==="/*"||X==="*"){let Q=[G,{}];if(Y===J7)for(let Z in this.#Y)this.#G(Z,Q);else this.#G(Y,Q);return}let J=this.#X[X];if(!J)throw Error(`Path ${X} is not registered`);for(let[Q,Z]of J)if(Y===J7)for(let W in this.#Y)this.#J(W,X,G,Q,Z);else this.#J(Y,X,G,Q,Z)}buildAllMatchers(){return this.#Y}match=pZ1};var KA6=w(()=>{Kw();Rp1();Sp1()});var FA6=w(()=>{Sp1();KA6()});var jp1=class{name="SmartRouter";#Y=[];#X=[];constructor(Y){this.#Y=Y.routers}add(Y,X,G){if(!this.#X)throw Error(dZ1);this.#X.push([Y,X,G])}match(Y,X){if(!this.#X)throw Error("Fatal error");let G=this.#Y,J=this.#X,Q=G.length,Z=0,W;for(;Z<Q;Z++){let $=G[Z];try{for(let H=0,K=J.length;H<K;H++)$.add(...J[H]);W=$.match(Y,X)}catch(H){if(H instanceof cZ1)continue;throw H}this.match=$.match.bind($),this.#Y=[$],this.#X=void 0;break}if(Z===Q)throw Error("Fatal error");return this.name=`SmartRouter + ${this.activeRouter.name}`,W}get activeRouter(){if(this.#X||this.#Y.length!==1)throw Error("No active router has been determined yet.");return this.#Y[0]}};var VA6=w(()=>{Kw()});var UA6=w(()=>{VA6()});var Fi,S$5=(Y)=>{for(let X in Y)return!0;return!1},OA6=class Y{#Y;#X;#G;#J=0;#Q=Fi;constructor(X,G,J){if(this.#X=J||Object.create(null),this.#Y=[],X&&G){let Q=Object.create(null);Q[X]={handler:G,possibleKeys:[],score:0},this.#Y=[Q]}this.#G=[]}insert(X,G,J){this.#J=++this.#J;let Q=this,Z=lw6(G),W=[];for(let $=0,H=Z.length;$<H;$++){let K=Z[$],V=Z[$+1],U=dw6(K,V),O=Array.isArray(U)?U[0]:K;if(O in Q.#X){if(Q=Q.#X[O],U)W.push(U[1]);continue}if(Q.#X[O]=new Y,U)Q.#G.push(U),W.push(U[1]);Q=Q.#X[O]}return Q.#Y.push({[X]:{handler:J,possibleKeys:W.filter(($,H,K)=>K.indexOf($)===H),score:this.#J}}),Q}#W(X,G,J,Q,Z){for(let W=0,$=G.#Y.length;W<$;W++){let H=G.#Y[W],K=H[J]||H[J7],V={};if(K!==void 0){if(K.params=Object.create(null),X.push(K),Q!==Fi||Z&&Z!==Fi)for(let U=0,O=K.possibleKeys.length;U<O;U++){let B=K.possibleKeys[U],N=V[K.score];K.params[B]=Z?.[B]&&!N?Z[B]:Q[B]??Z?.[B],V[K.score]=!0}}}}search(X,G){let J=[];this.#Q=Fi;let Z=[this],W=Ap1(G),$=[],H=W.length,K=null;for(let V=0;V<H;V++){let U=W[V],O=V===H-1,B=[];for(let q=0,L=Z.length;q<L;q++){let D=Z[q],E=D.#X[U];if(E)if(E.#Q=D.#Q,O){if(E.#X["*"])this.#W(J,E.#X["*"],X,D.#Q);this.#W(J,E,X,D.#Q)}else B.push(E);for(let R=0,C=D.#G.length;R<C;R++){let T=D.#G[R],j=D.#Q===Fi?{}:{...D.#Q};if(T==="*"){let u=D.#X["*"];if(u)this.#W(J,u,X,D.#Q),u.#Q=j,B.push(u);continue}let[_,k,f]=T;if(!U&&!(f instanceof RegExp))continue;let y=D.#X[_];if(f instanceof RegExp){if(K===null){K=Array(H);let n=G[0]==="/"?1:0;for(let v=0;v<H;v++)K[v]=n,n+=W[v].length+1}let u=G.substring(K[V]),p=f.exec(u);if(p){if(j[k]=p[0],this.#W(J,y,X,D.#Q,j),S$5(y.#X)){y.#Q=j;let n=p[0].match(/\//)?.length??0;($[n]||=[]).push(y)}continue}}if(f===!0||f.test(U))if(j[k]=U,O){if(this.#W(J,y,X,j,D.#Q),y.#X["*"])this.#W(J,y.#X["*"],X,j,D.#Q)}else y.#Q=j,B.push(y)}}let N=$.shift();Z=N?B.concat(N):B}if(J.length>1)J.sort((V,U)=>{return V.score-U.score});return[J.map(({handler:V,params:U})=>[V,U])]}};var BA6=w(()=>{Kw();Hw();Fi=Object.create(null)});var Ip1=class{name="TrieRouter";#Y;constructor(){this.#Y=new OA6}add(Y,X,G){let J=uZ1(X);if(J){for(let Q=0,Z=J.length;Q<Z;Q++)this.#Y.insert(Y,J[Q],G);return}this.#Y.insert(Y,X,G)}match(Y,X){return this.#Y.search(Y,X)}};var NA6=w(()=>{Hw();BA6()});var qA6=w(()=>{NA6()});var V5;var zA6=w(()=>{JA6();FA6();UA6();qA6();V5=class extends GA6{constructor(Y={}){super(Y);this.router=Y.router??new jp1({routers:[new iZ1,new Ip1]})}}});var IG=w(()=>{zA6()});var DA6,j$5,LA6=(Y)=>{let X=0,G=Y.length;while(X<G){let J=Y.charCodeAt(X);if(J!==32&&J!==9)break;X++}while(G>X){let J=Y.charCodeAt(G-1);if(J!==32&&J!==9)break;G--}return X===0&&G===Y.length?Y:Y.slice(X,G)},_p1=(Y,X)=>{if(X&&Y.indexOf(X)===-1)return{};let G=Y.split(";"),J={};for(let Q of G){let Z=Q.indexOf("=");if(Z===-1)continue;let W=LA6(Q.substring(0,Z));if(X&&X!==W||!DA6.test(W))continue;let $=LA6(Q.substring(Z+1));if($.startsWith('"')&&$.endsWith('"'))$=$.slice(1,-1);if(j$5.test($)){if(J[W]=$.indexOf("%")!==-1?yk($,Qi):$,X)break}}return J},I$5=(Y,X,G={})=>{if(!DA6.test(Y))throw Error("Invalid cookie name");let J=`${Y}=${X}`;if(Y.startsWith("__Secure-")&&!G.secure)throw Error("__Secure- Cookie must have Secure attributes");if(Y.startsWith("__Host-")){if(!G.secure)throw Error("__Host- Cookie must have Secure attributes");if(G.path!=="/")throw Error('__Host- Cookie must have Path attributes with "/"');if(G.domain)throw Error("__Host- Cookie must not have Domain attributes")}for(let Q of["domain","path"])if(G[Q]&&/[;\r\n]/.test(G[Q]))throw Error(`${Q} must not contain ";", "\\r", or "\\n"`);if(G&&typeof G.maxAge==="number"&&G.maxAge>=0){if(G.maxAge>34560000)throw Error("Cookies Max-Age SHOULD NOT be greater than 400 days (34560000 seconds) in duration.");J+=`; Max-Age=${G.maxAge|0}`}if(G.domain&&G.prefix!=="host")J+=`; Domain=${G.domain}`;if(G.path)J+=`; Path=${G.path}`;if(G.expires){if(G.expires.getTime()-Date.now()>34560000000)throw Error("Cookies Expires SHOULD NOT be greater than 400 days (34560000 seconds) in the future.");J+=`; Expires=${G.expires.toUTCString()}`}if(G.httpOnly)J+="; HttpOnly";if(G.secure)J+="; Secure";if(G.sameSite)J+=`; SameSite=${G.sameSite.charAt(0).toUpperCase()+G.sameSite.slice(1)}`;if(G.priority)J+=`; Priority=${G.priority.charAt(0).toUpperCase()+G.priority.slice(1)}`;if(G.partitioned){if(!G.secure)throw Error("Partitioned Cookie must have Secure attributes");J+="; Partitioned"}return J},aZ1=(Y,X,G)=>{return X=encodeURIComponent(X),I$5(Y,X,G)};var wA6=w(()=>{Hw();DA6=/^[\w!#$%&'*.^`|~+-]+$/,j$5=/^[ !#-:<-[\]-~]*$/});var rZ1=(Y,X,G)=>{let J=Y.req.raw.headers.get("Cookie");if(typeof X==="string"){if(!J)return;let Z=X;if(G==="secure")Z="__Secure-"+X;else if(G==="host")Z="__Host-"+X;return _p1(J,Z)[Z]}if(!J)return{};return _p1(J)},_$5=(Y,X,G)=>{let J;if(G?.prefix==="secure")J=aZ1("__Secure-"+Y,X,{path:"/",...G,secure:!0});else if(G?.prefix==="host")J=aZ1("__Host-"+Y,X,{...G,path:"/",secure:!0,domain:void 0});else J=aZ1(Y,X,{path:"/",...G});return J},fp1=(Y,X,G,J)=>{let Q=_$5(X,G,J);Y.header("Set-Cookie",Q,{append:!0})};var kp1=w(()=>{wA6()});var AA6=(Y)=>{let G={...{origin:"*",allowMethods:["GET","HEAD","PUT","POST","DELETE","PATCH"],allowHeaders:[],exposeHeaders:[]},...Y},J=((Z)=>{if(typeof Z==="string")if(Z==="*"){if(G.credentials)return(W)=>W||null;return()=>Z}else return(W)=>Z===W?W:null;else if(typeof Z==="function")return Z;else return(W)=>Z.includes(W)?W:null})(G.origin),Q=((Z)=>{if(typeof Z==="function")return Z;else if(Array.isArray(Z))return()=>Z;else return()=>[]})(G.allowMethods);return async function(W,$){function H(V,U){W.res.headers.set(V,U)}let K=await J(W.req.header("origin")||"",W);if(K)H("Access-Control-Allow-Origin",K);if(G.credentials)H("Access-Control-Allow-Credentials","true");if(G.exposeHeaders?.length)H("Access-Control-Expose-Headers",G.exposeHeaders.join(","));if(W.req.method==="OPTIONS"){if(G.origin!=="*"||G.credentials)H("Vary","Origin");if(G.maxAge!=null)H("Access-Control-Max-Age",G.maxAge.toString());let V=await Q(W.req.header("origin")||"",W);if(V.length)H("Access-Control-Allow-Methods",V.join(","));let U=G.allowHeaders;if(!U?.length){let O=W.req.header("Access-Control-Request-Headers");if(O)U=O.split(/\s*,\s*/)}if(U?.length)H("Access-Control-Allow-Headers",U.join(",")),W.res.headers.append("Vary","Access-Control-Request-Headers");return W.res.headers.delete("Content-Length"),W.res.headers.delete("Content-Type"),new Response(null,{headers:W.res.headers,status:204,statusText:"No Content"})}if(await $(),G.origin!=="*"||G.credentials)W.header("Vary","Origin",{append:!0})}};var MA6=()=>{};var EA6=()=>{try{return performance.now()}catch{}return Date.now()},vp1=(Y)=>{let X={total:!0,enabled:!0,totalDescription:"Total Response Time",autoEnd:!0,crossOrigin:!1,...Y};return async function(J,Q){let Z=[],W=new Map;if(J.get("metric"))return await Q();if(J.set("metric",{headers:Z,timers:W}),X.total)wH(J,"total",X.totalDescription);if(await Q(),X.total)nZ(J,"total");if(X.autoEnd)W.forEach((H,K)=>nZ(J,K));if(typeof X.enabled==="function"?X.enabled(J):X.enabled){J.res.headers.append("Server-Timing",Z.join(","));let H=typeof X.crossOrigin==="function"?X.crossOrigin(J):X.crossOrigin;if(H)J.res.headers.append("Timing-Allow-Origin",typeof H==="string"?H:"*")}}},PA6=(Y,X,G,J,Q)=>{let Z=Y.get("metric");if(!Z){console.warn("Metrics not initialized! Please add the `timing()` middleware to this route!");return}if(typeof G==="number"){let W=G.toFixed(Q||1),$=J?`${X};dur=${W};desc="${J}"`:`${X};dur=${W}`;Z.headers.push($)}else{let W=G?`${X};desc="${G}"`:`${X}`;Z.headers.push(W)}},wH=(Y,X,G)=>{let J=Y.get("metric");if(!J){console.warn("Metrics not initialized! Please add the `timing()` middleware to this route!");return}J.timers.set(X,{description:G,start:EA6()})},nZ=(Y,X,G)=>{let J=Y.get("metric");if(!J){console.warn("Metrics not initialized! Please add the `timing()` middleware to this route!");return}let Q=J.timers.get(X);if(!Q){console.warn(`Timer "${X}" does not exist!`);return}let{description:Z,start:W}=Q,$=EA6()-W;PA6(Y,X,$,Z,G),J.timers.delete(X)};var TA6=w(()=>{lZ1()});var hp1=w(()=>{TA6()});function Vi(){let Y={Organizations:[],Connections:[],"Virtual MCPs":[],Threads:[],Monitoring:[],Users:[],"API Keys":[],"Event Bus":[],Tags:[],"AI Providers":[],Automations:[],"Object Storage":[],Registry:[],GitHub:[],VM:[]};for(let X of yp1)Y[X.category]?.push(X);return Y}var yp1;var bp1=w(()=>{yp1=[{name:"ORGANIZATION_CREATE",description:"Create a new organization",category:"Organizations"},{name:"ORGANIZATION_LIST",description:"List organizations",category:"Organizations"},{name:"ORGANIZATION_GET",description:"View organization details",category:"Organizations"},{name:"ORGANIZATION_UPDATE",description:"Update organization",category:"Organizations"},{name:"ORGANIZATION_DELETE",description:"Delete organization",category:"Organizations",dangerous:!0},{name:"ORGANIZATION_SETTINGS_GET",description:"View organization settings",category:"Organizations"},{name:"ORGANIZATION_SETTINGS_UPDATE",description:"Update organization settings",category:"Organizations"},{name:"BRAND_CONTEXT_LIST",description:"List brand contexts",category:"Organizations"},{name:"BRAND_CONTEXT_GET",description:"View brand context",category:"Organizations"},{name:"BRAND_CONTEXT_CREATE",description:"Create brand context",category:"Organizations"},{name:"BRAND_CONTEXT_UPDATE",description:"Update brand context",category:"Organizations"},{name:"BRAND_CONTEXT_DELETE",description:"Delete brand context",category:"Organizations",dangerous:!0},{name:"BRAND_CONTEXT_EXTRACT",description:"Extract brand context from website",category:"Organizations"},{name:"BRAND_GET",description:"Get brand (binding)",category:"Organizations"},{name:"BRAND_LIST",description:"List brands (binding)",category:"Organizations"},{name:"ORGANIZATION_DOMAIN_GET",description:"Get organization domain claim",category:"Organizations"},{name:"ORGANIZATION_DOMAIN_SET",description:"Set organization domain claim",category:"Organizations"},{name:"ORGANIZATION_DOMAIN_UPDATE",description:"Update organization domain settings",category:"Organizations"},{name:"ORGANIZATION_DOMAIN_CLEAR",description:"Clear organization domain claim",category:"Organizations"},{name:"ORGANIZATION_MEMBER_ADD",description:"Add members",category:"Organizations"},{name:"ORGANIZATION_MEMBER_REMOVE",description:"Remove members",category:"Organizations",dangerous:!0},{name:"ORGANIZATION_MEMBER_LIST",description:"List members",category:"Organizations"},{name:"ORGANIZATION_MEMBER_UPDATE_ROLE",description:"Update member roles",category:"Organizations"},{name:"COLLECTION_CONNECTIONS_CREATE",description:"Create connections",category:"Connections"},{name:"COLLECTION_CONNECTIONS_LIST",description:"List connections",category:"Connections"},{name:"COLLECTION_CONNECTIONS_GET",description:"View connection details",category:"Connections"},{name:"COLLECTION_CONNECTIONS_UPDATE",description:"Update connections",category:"Connections"},{name:"COLLECTION_CONNECTIONS_DELETE",description:"Delete connections",category:"Connections",dangerous:!0},{name:"CONNECTION_TEST",description:"Test connections",category:"Connections"},{name:"DATABASES_RUN_SQL",description:"Run SQL queries",category:"Connections",dangerous:!0},{name:"COLLECTION_VIRTUAL_MCP_CREATE",description:"Create virtual MCPs",category:"Virtual MCPs"},{name:"COLLECTION_VIRTUAL_MCP_LIST",description:"List virtual MCPs",category:"Virtual MCPs"},{name:"COLLECTION_VIRTUAL_MCP_GET",description:"View virtual MCP details",category:"Virtual MCPs"},{name:"COLLECTION_VIRTUAL_MCP_UPDATE",description:"Update virtual MCPs",category:"Virtual MCPs"},{name:"COLLECTION_VIRTUAL_MCP_DELETE",description:"Delete virtual MCPs",category:"Virtual MCPs",dangerous:!0},{name:"MONITORING_LOG_GET",description:"View monitoring log details",category:"Monitoring"},{name:"MONITORING_LOGS_LIST",description:"List monitoring logs",category:"Monitoring"},{name:"MONITORING_STATS",description:"View monitoring statistics",category:"Monitoring"},{name:"API_KEY_CREATE",description:"Create API key",category:"API Keys"},{name:"API_KEY_LIST",description:"List API keys",category:"API Keys"},{name:"API_KEY_UPDATE",description:"Update API key",category:"API Keys"},{name:"API_KEY_DELETE",description:"Delete API key",category:"API Keys",dangerous:!0},{name:"EVENT_PUBLISH",description:"Publish events",category:"Event Bus"},{name:"EVENT_SUBSCRIBE",description:"Subscribe to events",category:"Event Bus"},{name:"EVENT_UNSUBSCRIBE",description:"Unsubscribe from events",category:"Event Bus"},{name:"EVENT_CANCEL",description:"Cancel recurring events",category:"Event Bus"},{name:"EVENT_ACK",description:"Acknowledge event delivery",category:"Event Bus"},{name:"EVENT_SUBSCRIPTION_LIST",description:"List event subscriptions",category:"Event Bus"},{name:"EVENT_SYNC_SUBSCRIPTIONS",description:"Sync subscriptions to desired state",category:"Event Bus"},{name:"USER_GET",description:"Get a user by id",category:"Users"},{name:"COLLECTION_THREADS_CREATE",description:"Create threads",category:"Threads"},{name:"COLLECTION_THREADS_LIST",description:"List threads",category:"Threads"},{name:"COLLECTION_THREADS_GET",description:"View thread details",category:"Threads"},{name:"COLLECTION_THREADS_UPDATE",description:"Update threads",category:"Threads"},{name:"COLLECTION_THREADS_DELETE",description:"Delete threads",category:"Threads",dangerous:!0},{name:"COLLECTION_THREAD_MESSAGES_LIST",description:"List thread messages",category:"Threads"},{name:"TAGS_LIST",description:"List organization tags",category:"Tags"},{name:"TAGS_CREATE",description:"Create organization tag",category:"Tags"},{name:"TAGS_DELETE",description:"Delete organization tag",category:"Tags",dangerous:!0},{name:"MEMBER_TAGS_GET",description:"Get member tags",category:"Tags"},{name:"MEMBER_TAGS_SET",description:"Set member tags",category:"Tags"},{name:"AUTOMATION_CREATE",description:"Create automation",category:"Automations"},{name:"AUTOMATION_GET",description:"View automation details",category:"Automations"},{name:"AUTOMATION_LIST",description:"List automations",category:"Automations"},{name:"AUTOMATION_UPDATE",description:"Update automation",category:"Automations"},{name:"AUTOMATION_DELETE",description:"Delete automation",category:"Automations",dangerous:!0},{name:"AUTOMATION_TRIGGER_ADD",description:"Add trigger to automation",category:"Automations"},{name:"AUTOMATION_TRIGGER_REMOVE",description:"Remove trigger from automation",category:"Automations"},{name:"AUTOMATION_RUN",description:"Manually trigger an automation run",category:"Automations"},{name:"VIRTUAL_MCP_PLUGIN_CONFIG_GET",description:"View virtual MCP plugin configuration",category:"Virtual MCPs"},{name:"VIRTUAL_MCP_PLUGIN_CONFIG_UPDATE",description:"Update virtual MCP plugin configuration",category:"Virtual MCPs"},{name:"VIRTUAL_MCP_PINNED_VIEWS_UPDATE",description:"Update virtual MCP pinned sidebar views",category:"Virtual MCPs"},{name:"AI_PROVIDERS_LIST",description:"List available AI providers",category:"AI Providers"},{name:"AI_PROVIDERS_LIST_MODELS",description:"List AI provider models",category:"AI Providers"},{name:"AI_PROVIDERS_ACTIVE",description:"List active AI providers",category:"AI Providers"},{name:"AI_PROVIDER_KEY_CREATE",description:"Store AI provider API key",category:"AI Providers"},{name:"AI_PROVIDER_KEY_LIST",description:"List AI provider API keys",category:"AI Providers"},{name:"AI_PROVIDER_KEY_DELETE",description:"Delete AI provider API key",category:"AI Providers",dangerous:!0},{name:"AI_PROVIDER_OAUTH_URL",description:"Get OAuth URL for provider",category:"AI Providers"},{name:"AI_PROVIDER_OAUTH_EXCHANGE",description:"Exchange OAuth code for API key",category:"AI Providers"},{name:"AI_PROVIDER_PROVISION_KEY",description:"Auto-provision API key for a provider",category:"AI Providers"},{name:"AI_PROVIDER_TOPUP_URL",description:"Get checkout URL to top up provider credits",category:"AI Providers"},{name:"AI_PROVIDER_CREDITS",description:"Get current credit balance for a provider",category:"AI Providers"},{name:"AI_PROVIDER_CLI_ACTIVATE",description:"Activate Claude Code via local CLI",category:"AI Providers"},{name:"LIST_OBJECTS",description:"List objects in storage",category:"Object Storage"},{name:"GET_OBJECT_METADATA",description:"Get object metadata",category:"Object Storage"},{name:"GET_PRESIGNED_URL",description:"Generate download URL",category:"Object Storage"},{name:"PUT_PRESIGNED_URL",description:"Generate upload URL",category:"Object Storage"},{name:"DELETE_OBJECT",description:"Delete object",category:"Object Storage",dangerous:!0},{name:"DELETE_OBJECTS",description:"Delete multiple objects",category:"Object Storage",dangerous:!0},{name:"COLLECTION_REGISTRY_APP_LIST",description:"List registry apps",category:"Registry"},{name:"COLLECTION_REGISTRY_APP_GET",description:"Get registry app details",category:"Registry"},{name:"COLLECTION_REGISTRY_APP_VERSIONS",description:"List registry app versions",category:"Registry"},{name:"COLLECTION_REGISTRY_APP_FILTERS",description:"Get registry app filters",category:"Registry"},{name:"REGISTRY_ITEM_LIST",description:"List private registry items",category:"Registry"},{name:"REGISTRY_ITEM_SEARCH",description:"Search registry items",category:"Registry"},{name:"REGISTRY_ITEM_GET",description:"Get registry item details",category:"Registry"},{name:"REGISTRY_ITEM_VERSIONS",description:"List registry item versions",category:"Registry"},{name:"REGISTRY_ITEM_CREATE",description:"Create registry item",category:"Registry"},{name:"REGISTRY_ITEM_BULK_CREATE",description:"Bulk create registry items",category:"Registry"},{name:"REGISTRY_ITEM_UPDATE",description:"Update registry item",category:"Registry"},{name:"REGISTRY_ITEM_DELETE",description:"Delete registry item",category:"Registry",dangerous:!0},{name:"REGISTRY_ITEM_FILTERS",description:"Get registry item filters",category:"Registry"},{name:"REGISTRY_DISCOVER_TOOLS",description:"Discover tools from MCP server",category:"Registry"},{name:"REGISTRY_AI_GENERATE",description:"AI-generate registry content",category:"Registry"},{name:"REGISTRY_PUBLISH_REQUEST_LIST",description:"List publish requests",category:"Registry"},{name:"REGISTRY_PUBLISH_REQUEST_REVIEW",description:"Review publish request",category:"Registry"},{name:"REGISTRY_PUBLISH_REQUEST_COUNT",description:"Count pending publish requests",category:"Registry"},{name:"REGISTRY_PUBLISH_REQUEST_DELETE",description:"Delete publish request",category:"Registry",dangerous:!0},{name:"REGISTRY_PUBLISH_API_KEY_GENERATE",description:"Generate publish API key",category:"Registry"},{name:"REGISTRY_PUBLISH_API_KEY_LIST",description:"List publish API keys",category:"Registry"},{name:"REGISTRY_PUBLISH_API_KEY_REVOKE",description:"Revoke publish API key",category:"Registry",dangerous:!0},{name:"REGISTRY_MONITOR_RUN_START",description:"Start monitor run",category:"Registry"},{name:"REGISTRY_MONITOR_RUN_LIST",description:"List monitor runs",category:"Registry"},{name:"REGISTRY_MONITOR_RUN_GET",description:"Get monitor run details",category:"Registry"},{name:"REGISTRY_MONITOR_RUN_CANCEL",description:"Cancel monitor run",category:"Registry"},{name:"REGISTRY_MONITOR_RESULT_LIST",description:"List monitor results",category:"Registry"},{name:"REGISTRY_MONITOR_CONNECTION_LIST",description:"List monitor connections",category:"Registry"},{name:"REGISTRY_MONITOR_CONNECTION_SYNC",description:"Sync monitor connections",category:"Registry"},{name:"REGISTRY_MONITOR_CONNECTION_UPDATE_AUTH",description:"Update monitor connection auth",category:"Registry"},{name:"REGISTRY_MONITOR_SCHEDULE_SET",description:"Set monitor schedule",category:"Registry"},{name:"REGISTRY_MONITOR_SCHEDULE_CANCEL",description:"Cancel monitor schedule",category:"Registry"},{name:"VM_START",description:"Start a Freestyle VM with dev server preview",category:"VM"},{name:"VM_DELETE",description:"Stop and delete a Freestyle VM",category:"VM"},{name:"GITHUB_LIST_USER_ORGS",description:"List GitHub user's personal account and organizations",category:"GitHub"}]});var RA6=w(()=>{dI();JY1()});function CA6(){return k$5.parse(process.env)}var xp1=(Y)=>F.enum(["true","false","1","0"]).optional().transform((X)=>X===void 0?Y:X==="true"||X==="1"),f$5=(Y)=>F.string().optional().transform((X)=>X?X.split(",").map((G)=>G.trim()):Y),k$5;var SA6=w(()=>{K0();k$5=F.object({AUTH_EMAIL_PASSWORD_ENABLED:xp1(!0),AUTH_GOOGLE_CLIENT_ID:F.string().optional(),AUTH_GOOGLE_CLIENT_SECRET:F.string().optional(),AUTH_GITHUB_CLIENT_ID:F.string().optional(),AUTH_GITHUB_CLIENT_SECRET:F.string().optional(),AUTH_RESEND_API_KEY:F.string().optional(),AUTH_RESEND_FROM_EMAIL:F.string().optional(),AUTH_SENDGRID_API_KEY:F.string().optional(),AUTH_SENDGRID_FROM_EMAIL:F.string().optional(),AUTH_INVITE_EMAIL_PROVIDER:F.enum(["resend","sendgrid"]).optional(),AUTH_RESET_PASSWORD_EMAIL_PROVIDER:F.enum(["resend","sendgrid"]).optional(),AUTH_MAGIC_LINK_ENABLED:xp1(!1),AUTH_MAGIC_LINK_EMAIL_PROVIDER:F.enum(["resend","sendgrid"]).optional(),AUTH_EMAIL_OTP_ENABLED:xp1(!1),AUTH_EMAIL_OTP_EMAIL_PROVIDER:F.enum(["resend","sendgrid"]).optional(),AUTH_EMAIL_OTP_LENGTH:F.coerce.number().optional(),AUTH_EMAIL_OTP_EXPIRES_IN:F.coerce.number().optional(),AUTH_SSO_DOMAIN:F.string().optional(),AUTH_SSO_MS_TENANT_ID:F.string().optional(),AUTH_SSO_MS_CLIENT_ID:F.string().optional(),AUTH_SSO_MS_CLIENT_SECRET:F.string().optional(),AUTH_SSO_SCOPES:f$5(["openid","email","profile"])}).transform((Y)=>{let X={};if(Y.AUTH_GOOGLE_CLIENT_ID)X.google={clientId:Y.AUTH_GOOGLE_CLIENT_ID,clientSecret:Y.AUTH_GOOGLE_CLIENT_SECRET??""};if(Y.AUTH_GITHUB_CLIENT_ID)X.github={clientId:Y.AUTH_GITHUB_CLIENT_ID,clientSecret:Y.AUTH_GITHUB_CLIENT_SECRET??""};let G=[];if(Y.AUTH_RESEND_API_KEY)G.push({id:"resend",provider:"resend",config:{apiKey:Y.AUTH_RESEND_API_KEY,fromEmail:Y.AUTH_RESEND_FROM_EMAIL??"noreply@example.com"}});if(Y.AUTH_SENDGRID_API_KEY)G.push({id:"sendgrid",provider:"sendgrid",config:{apiKey:Y.AUTH_SENDGRID_API_KEY,fromEmail:Y.AUTH_SENDGRID_FROM_EMAIL??"noreply@example.com"}});let J=G[0]?.id,Q;if(Y.AUTH_SSO_MS_CLIENT_ID&&Y.AUTH_SSO_DOMAIN)Q={providerId:"microsoft",domain:Y.AUTH_SSO_DOMAIN,MS_TENANT_ID:Y.AUTH_SSO_MS_TENANT_ID??"",MS_CLIENT_ID:Y.AUTH_SSO_MS_CLIENT_ID,MS_CLIENT_SECRET:Y.AUTH_SSO_MS_CLIENT_SECRET??"",scopes:Y.AUTH_SSO_SCOPES};let Z;if(Y.AUTH_MAGIC_LINK_ENABLED)Z={enabled:!0,emailProviderId:Y.AUTH_MAGIC_LINK_EMAIL_PROVIDER??J??""};let W;if(Y.AUTH_EMAIL_OTP_ENABLED)W={enabled:!0,emailProviderId:Y.AUTH_EMAIL_OTP_EMAIL_PROVIDER??J??"",...Y.AUTH_EMAIL_OTP_LENGTH!==void 0&&{otpLength:Y.AUTH_EMAIL_OTP_LENGTH},...Y.AUTH_EMAIL_OTP_EXPIRES_IN!==void 0&&{expiresIn:Y.AUTH_EMAIL_OTP_EXPIRES_IN}};return{emailAndPassword:{enabled:Y.AUTH_EMAIL_PASSWORD_ENABLED},socialProviders:Object.keys(X).length>0?X:void 0,emailProviders:G.length>0?G:void 0,inviteEmailProviderId:Y.AUTH_INVITE_EMAIL_PROVIDER,resetPasswordEmailProviderId:Y.AUTH_RESET_PASSWORD_EMAIL_PROVIDER,ssoConfig:Q,magicLinkConfig:Z,emailOtpConfig:W}})});var oZ1;var jA6=w(()=>{oZ1={enabled:!0,batchSize:250,flushIntervalMs:300,maxQueueSize:1e4,redactor:"regex"}});import{existsSync as v$5,readFileSync as h$5}from"fs";function y$5(){let Y=CA6(),X=j6().configPath;if(!v$5(X))return{auth:Y,monitoring:oZ1};try{let G=JSON.parse(h$5(X,"utf-8"));if(G.auth)console.warn("[config] DEPRECATION: 'auth' key found in config.json. Auth is now configured via AUTH_* environment variables. The 'auth' key will be ignored.");return{auth:Y,monitoring:G.monitoring??oZ1,theme:G.theme,logo:G.logo,autoCreateOrganizationOnSignup:G.autoCreateOrganizationOnSignup}}catch{return{auth:Y,monitoring:oZ1}}}function eP(){if(!up1)up1=y$5();return up1}function IA6(){return eP().theme}var up1=null;var gp1=w(()=>{SA6();jA6();E9()});import{dirname as b$5,posix as x$5,sep as u$5}from"path";function fA6(){let Y=g$5();return async(X)=>{for(let G of X)G.module=Y(G.filename);return X}}function g$5(Y=process.argv[1]?b$5(process.argv[1]):process.cwd(),X=u$5==="\\"){let G=X?_A6(Y):Y;return(J)=>{if(!J)return;let Q=X?_A6(J):J,{dir:Z,base:W,ext:$}=x$5.parse(Q);if($===".js"||$===".mjs"||$===".cjs")W=W.slice(0,-1*$.length);let H=decodeURIComponent(W);if(!Z)Z=".";let K=Z.lastIndexOf("/node_modules");if(K>-1)return`${Z.slice(K+14).replace(/\//g,".")}:${H}`;if(Z.startsWith(G)){let V=Z.slice(G.length+1).replace(/\//g,".");return V?`${V}:${H}`:H}return H}}function _A6(Y){return Y.replace(/^[A-Z]:/,"").replace(/\\/g,"/")}var kA6=()=>{};function m$5(Y,X,G){return{key:Y,enabled:typeof X=="string"?!0:X,variant:typeof X=="string"?X:void 0,reason:void 0,metadata:{id:void 0,version:void 0,payload:G?JSON.stringify(G):void 0,description:void 0}}}var mp1=(Y)=>{if("flags"in Y){let X=vA6(Y.flags),G=hA6(Y.flags);return{...Y,featureFlags:X,featureFlagPayloads:G}}{let X=Y.featureFlags??{},G=Object.fromEntries(Object.entries(Y.featureFlagPayloads||{}).map(([Q,Z])=>[Q,lp1(Z)])),J=Object.fromEntries(Object.entries(X).map(([Q,Z])=>[Q,m$5(Q,Z,G[Q])]));return{...Y,featureFlags:X,featureFlagPayloads:G,flags:J}}},vA6=(Y)=>Object.fromEntries(Object.entries(Y??{}).map(([X,G])=>[X,Ui(G)]).filter(([,X])=>X!==void 0)),hA6=(Y)=>{let X=Y??{};return Object.fromEntries(Object.keys(X).filter((G)=>{let J=X[G];return J.enabled&&J.metadata&&J.metadata.payload!==void 0}).map((G)=>{let J=X[G].metadata?.payload;return[G,J?lp1(J):void 0]}))},Ui=(Y)=>Y===void 0?void 0:Y.variant??Y.enabled,lp1=(Y)=>{if(typeof Y!="string")return Y;try{return JSON.parse(Y)}catch{return Y}};var sZ1=()=>{};function yA6(){return"CompressionStream"in globalThis&&"TextEncoder"in globalThis&&"Response"in globalThis&&typeof Response.prototype.blob=="function"}async function tZ1(Y,X=!0,G){try{let J=new CompressionStream("gzip"),Q=J.writable.getWriter(),Z=Q.write(new TextEncoder().encode(Y)).then(()=>Q.close()).catch(async(H)=>{try{await Q.abort(H)}catch{}throw H}),W=new Response(J.readable).blob(),[$]=await Promise.all([W,Z]);return $}catch(J){if(G?.rethrow)throw J;if(X)console.error("Failed to gzip compress data",J);return null}}var dp1=()=>{};var l$5,bA6=function(Y,X=[]){if(!Y)return!1;let G=Y.toLowerCase();return l$5.concat(X).some((J)=>{let Q=J.toLowerCase();return G.indexOf(Q)!==-1})};var xA6=w(()=>{l$5=["amazonbot","amazonproductbot","app.hypefactors.com","applebot","archive.org_bot","awariobot","backlinksextendedbot","baiduspider","bingbot","bingpreview","chrome-lighthouse","dataforseobot","deepscan","duckduckbot","facebookexternal","facebookcatalog","http://yandex.com/bots","hubspot","ia_archiver","leikibot","linkedinbot","meta-externalagent","mj12bot","msnbot","nessus","petalbot","pinterest","prerender","rogerbot","screaming frog","sebot-wa","sitebulb","slackbot","slurp","trendictionbot","turnitin","twitterbot","vercel-screenshot","vercelbot","yahoo! slurp","yandexbot","zoombot","bot.htm","bot.php","(bot;","bot/","crawler","ahrefsbot","ahrefssiteaudit","semrushbot","siteauditbot","splitsignalbot","gptbot","oai-searchbot","chatgpt-user","perplexitybot","better uptime bot","sentryuptimebot","uptimerobot","headlesschrome","cypress","google-hoteladsverifier","adsbot-google","apis-google","duplexweb-google","feedfetcher-google","google favicon","google web preview","google-read-aloud","googlebot","googleother","google-cloudvertexbot","googleweblight","mediapartners-google","storebot-google","google-inspectiontool","bytespider"]});var j3;var xk=w(()=>{j3=function(Y){return Y.AnonymousId="anonymous_id",Y.DistinctId="distinct_id",Y.Props="props",Y.EnablePersonProcessing="enable_person_processing",Y.PersonMode="person_mode",Y.FeatureFlagDetails="feature_flag_details",Y.FeatureFlags="feature_flags",Y.FeatureFlagPayloads="feature_flag_payloads",Y.BootstrapFeatureFlagDetails="bootstrap_feature_flag_details",Y.BootstrapFeatureFlags="bootstrap_feature_flags",Y.BootstrapFeatureFlagPayloads="bootstrap_feature_flag_payloads",Y.OverrideFeatureFlags="override_feature_flags",Y.Queue="queue",Y.OptedOut="opted_out",Y.SessionId="session_id",Y.SessionStartTimestamp="session_start_timestamp",Y.SessionLastTimestamp="session_timestamp",Y.PersonProperties="person_properties",Y.GroupProperties="group_properties",Y.InstalledAppBuild="installed_app_build",Y.InstalledAppVersion="installed_app_version",Y.SessionReplay="session_replay",Y.SurveyLastSeenDate="survey_last_seen_date",Y.SurveysSeen="surveys_seen",Y.Surveys="surveys",Y.RemoteConfig="remote_config",Y.FlagsEndpointWasHit="flags_endpoint_was_hit",Y.DeviceId="device_id",Y}({})});var eZ1=()=>{};function X$1(Y){return Y===null||typeof Y!="object"}function YT(Y,X){return Object.prototype.toString.call(Y)===`[object ${X}]`}function mA6(Y){return YT(Y,"ErrorEvent")}function gk(Y){return typeof Event<"u"&&p$5(Y,Event)}function lA6(Y){return YT(Y,"Object")}function p$5(Y,X){try{return Y instanceof X}catch{return!1}}var c$5,uA6,O6Y,cp1,Y$1,Oi=(Y)=>Y===Object(Y)&&!Y$1(Y),uk=(Y)=>Y===void 0,Fw=(Y)=>cp1.call(Y)=="[object String]",gA6=(Y)=>Fw(Y)&&Y.trim().length===0,Bi=(Y)=>cp1.call(Y)=="[object Number]"&&Y===Y,pp1=(Y)=>Y instanceof Error;var Ni=w(()=>{xk();eZ1();c$5=Array.isArray,uA6=Object.prototype,O6Y=uA6.hasOwnProperty,cp1=uA6.toString,Y$1=c$5||function(Y){return cp1.call(Y)==="[object Array]"}});function qi(Y,X,G,J,Q){if(X>G)J.warn("min cannot be greater than max."),X=G;if(Bi(Y))if(Y>G)return J.warn(" cannot be greater than max: "+G+". Using max value instead."),G;else{if(!(Y<X))return Y;return J.warn(" cannot be less than min: "+X+". Using min value instead."),X}return J.warn(" must be a number. using max or fallback. max: "+G+", fallback: "+Q),qi(Q||G,X,G,J)}var np1=w(()=>{Ni()});class ip1{constructor(Y){this._buckets={},this._onBucketRateLimited=Y._onBucketRateLimited,this._bucketSize=qi(Y.bucketSize,0,100,Y._logger),this._refillRate=qi(Y.refillRate,0,this._bucketSize,Y._logger),this._refillInterval=qi(Y.refillInterval,0,n$5,Y._logger)}_applyRefill(Y,X){let G=X-Y.lastAccess,J=Math.floor(G/this._refillInterval);if(J>0){let Q=J*this._refillRate;Y.tokens=Math.min(Y.tokens+Q,this._bucketSize),Y.lastAccess=Y.lastAccess+J*this._refillInterval}}consumeRateLimit(Y){let X=Date.now(),G=String(Y),J=this._buckets[G];if(J)this._applyRefill(J,X);else J={tokens:this._bucketSize,lastAccess:X},this._buckets[G]=J;if(J.tokens===0)return!0;if(J.tokens--,J.tokens===0)this._onBucketRateLimited?.(Y);return J.tokens===0}stop(){this._buckets={}}}var n$5=86400000;var dA6=w(()=>{np1()});class XT{constructor(Y){this.bytes=Y}static ofInner(Y){if(Y.length===16)return new XT(Y);throw TypeError("not 128-bit length")}static fromFieldsV7(Y,X,G,J){if(!Number.isInteger(Y)||!Number.isInteger(X)||!Number.isInteger(G)||!Number.isInteger(J)||Y<0||X<0||G<0||J<0||Y>281474976710655||X>4095||G>1073741823||J>4294967295)throw RangeError("invalid field value");let Q=new Uint8Array(16);return Q[0]=Y/1099511627776,Q[1]=Y/4294967296,Q[2]=Y/16777216,Q[3]=Y/65536,Q[4]=Y/256,Q[5]=Y,Q[6]=112|X>>>8,Q[7]=X,Q[8]=128|G>>>24,Q[9]=G>>>16,Q[10]=G>>>8,Q[11]=G,Q[12]=J>>>24,Q[13]=J>>>16,Q[14]=J>>>8,Q[15]=J,new XT(Q)}static parse(Y){let X;switch(Y.length){case 32:X=/^[0-9a-f]{32}$/i.exec(Y)?.[0];break;case 36:X=/^([0-9a-f]{8})-([0-9a-f]{4})-([0-9a-f]{4})-([0-9a-f]{4})-([0-9a-f]{12})$/i.exec(Y)?.slice(1,6).join("");break;case 38:X=/^\{([0-9a-f]{8})-([0-9a-f]{4})-([0-9a-f]{4})-([0-9a-f]{4})-([0-9a-f]{12})\}$/i.exec(Y)?.slice(1,6).join("");break;case 45:X=/^urn:uuid:([0-9a-f]{8})-([0-9a-f]{4})-([0-9a-f]{4})-([0-9a-f]{4})-([0-9a-f]{12})$/i.exec(Y)?.slice(1,6).join("");break;default:break}if(X){let G=new Uint8Array(16);for(let J=0;J<16;J+=4){let Q=parseInt(X.substring(2*J,2*J+8),16);G[J+0]=Q>>>24,G[J+1]=Q>>>16,G[J+2]=Q>>>8,G[J+3]=Q}return new XT(G)}throw SyntaxError("could not parse UUID string")}toString(){let Y="";for(let X=0;X<this.bytes.length;X++)if(Y+="0123456789abcdef".charAt(this.bytes[X]>>>4),Y+="0123456789abcdef".charAt(15&this.bytes[X]),X===3||X===5||X===7||X===9)Y+="-";return Y}toHex(){let Y="";for(let X=0;X<this.bytes.length;X++)Y+="0123456789abcdef".charAt(this.bytes[X]>>>4),Y+="0123456789abcdef".charAt(15&this.bytes[X]);return Y}toJSON(){return this.toString()}getVariant(){let Y=this.bytes[8]>>>4;if(Y<0)throw Error("unreachable");if(Y<=7)return this.bytes.every((X)=>X===0)?"NIL":"VAR_0";if(Y<=11)return"VAR_10";if(Y<=13)return"VAR_110";if(Y<=15)return this.bytes.every((X)=>X===255)?"MAX":"VAR_RESERVED";else throw Error("unreachable")}getVersion(){return this.getVariant()==="VAR_10"?this.bytes[6]>>>4:void 0}clone(){return new XT(this.bytes.slice(0))}equals(Y){return this.compareTo(Y)===0}compareTo(Y){for(let X=0;X<16;X++){let G=this.bytes[X]-Y.bytes[X];if(G!==0)return Math.sign(G)}return 0}}class pA6{constructor(Y){this.timestamp=0,this.counter=0,this.random=Y??i$5()}generate(){return this.generateOrResetCore(Date.now(),1e4)}generateOrAbort(){return this.generateOrAbortCore(Date.now(),1e4)}generateOrResetCore(Y,X){let G=this.generateOrAbortCore(Y,X);if(G===void 0)this.timestamp=0,G=this.generateOrAbortCore(Y,X);return G}generateOrAbortCore(Y,X){if(!Number.isInteger(Y)||Y<1||Y>281474976710655)throw RangeError("`unixTsMs` must be a 48-bit positive integer");if(X<0||X>281474976710655)throw RangeError("`rollbackAllowance` out of reasonable range");if(Y>this.timestamp)this.timestamp=Y,this.resetCounter();else{if(!(Y+X>=this.timestamp))return;if(this.counter++,this.counter>4398046511103)this.timestamp++,this.resetCounter()}return XT.fromFieldsV7(this.timestamp,Math.trunc(this.counter/1073741824),this.counter&1073741823,this.random.nextUint32())}resetCounter(){this.counter=1024*this.random.nextUint32()+(1023&this.random.nextUint32())}generateV4(){let Y=new Uint8Array(Uint32Array.of(this.random.nextUint32(),this.random.nextUint32(),this.random.nextUint32(),this.random.nextUint32()).buffer);return Y[6]=64|Y[6]>>>4,Y[8]=128|Y[8]>>>2,XT.ofInner(Y)}}var i$5=()=>({nextUint32:()=>65536*Math.trunc(65536*Math.random())+Math.trunc(65536*Math.random())}),cA6,Vw=()=>a$5().toString(),a$5=()=>(cA6||(cA6=new pA6)).generate();var zi=w(()=>{/*! For license information please see uuidv7.mjs.LICENSE.txt */});class ap1{add(Y){let X=Vw();return this.promiseByIds[X]=Y,Y.catch(()=>{}).finally(()=>{delete this.promiseByIds[X]}),Y}async join(){let Y=Object.values(this.promiseByIds),X=Y.length;while(X>0)await Promise.all(Y),Y=Object.values(this.promiseByIds),X=Y.length}get length(){return Object.keys(this.promiseByIds).length}constructor(){this.promiseByIds={}}}var nA6=w(()=>{zi()});function r$5(Y=console){return{log:Y.log.bind(Y),warn:Y.warn.bind(Y),error:Y.error.bind(Y),debug:Y.debug.bind(Y)}}function aA6(Y,X=o$5){return iA6(Y,X,r$5())}var iA6=(Y,X,G)=>{function J(Z,...W){X(()=>{let $=G[Z];$(Y,...W)})}return{info:(...Z)=>{J("log",...Z)},warn:(...Z)=>{J("warn",...Z)},error:(...Z)=>{J("error",...Z)},critical:(...Z)=>{G.error(Y,...Z)},createLogger:(Z)=>iA6(`${Y} ${Z}`,X,G)}},o$5=(Y)=>Y();var rA6=()=>{};var lk="Mobile",J$1="iOS",mk="Android",oA6="Tablet",T6Y,t$5="Apple",R6Y,sA6="Safari",Q$1="BlackBerry",tA6="Samsung",e$5,YH5,W$1="Chrome",XH5,GH5,eA6="Internet Explorer",JH5,op1="Opera",C6Y,YM6="Edge",QH5,sp1="Firefox",WH5,tp1="Nintendo",ep1="PlayStation",G$1="Xbox",ZH5,$H5,Li="Windows",HH5,XM6="Generic",S6Y,j6Y,KH5="Konqueror",I3="(\\d+(\\.\\d+)?)",rp1,I6Y,_6Y,f6Y,FH5,VH5,k6Y,v6Y;var GM6=w(()=>{eZ1();Ni();T6Y=mk+" "+oA6,R6Y=t$5+" Watch",e$5=tA6+"Browser",YH5=tA6+" Internet",XH5=W$1+" OS",GH5=W$1+" "+J$1,JH5=eA6+" "+lk,C6Y=op1+" Mini",QH5="Microsoft "+YM6,WH5=sp1+" "+J$1,ZH5=mk+" "+lk,$H5=lk+" "+sA6,HH5=Li+" Phone",S6Y=XM6+" "+lk.toLowerCase(),j6Y=XM6+" "+oA6.toLowerCase(),rp1=new RegExp("Version/"+I3),I6Y=new RegExp(G$1,"i"),_6Y=new RegExp(ep1+" \\w+","i"),f6Y=new RegExp(tp1+" \\w+","i"),FH5=new RegExp(Q$1+"|PlayBook|BB10","i"),VH5={"NT3.51":"NT 3.11","NT4.0":"NT 4.0","5.0":"2000","5.1":"XP","5.2":"XP","6.0":"Vista","6.1":"7","6.2":"8","6.3":"8.1","6.4":"10","10.0":"10"},k6Y={[JH5]:[new RegExp("rv:"+I3)],[QH5]:[new RegExp(YM6+"?\\/"+I3)],[W$1]:[new RegExp("("+W$1+"|CrMo)\\/"+I3)],[GH5]:[new RegExp("CriOS\\/"+I3)],"UC Browser":[new RegExp("(UCBrowser|UCWEB)\\/"+I3)],[sA6]:[rp1],[$H5]:[rp1],[op1]:[new RegExp("("+op1+"|OPR)\\/"+I3)],[sp1]:[new RegExp(sp1+"\\/"+I3)],[WH5]:[new RegExp("FxiOS\\/"+I3)],[KH5]:[new RegExp("Konqueror[:/]?"+I3,"i")],[Q$1]:[new RegExp(Q$1+" "+I3),rp1],[ZH5]:[new RegExp("android\\s"+I3,"i")],[YH5]:[new RegExp(e$5+"\\/"+I3)],[eA6]:[new RegExp("(rv:|MSIE )"+I3)],Mozilla:[new RegExp("rv:"+I3)]},v6Y=[[new RegExp(G$1+"; "+G$1+" (.*?)[);]","i"),(Y)=>[G$1,Y&&Y[1]||""]],[new RegExp(tp1,"i"),[tp1,""]],[new RegExp(ep1,"i"),[ep1,""]],[FH5,[Q$1,""]],[new RegExp(Li,"i"),(Y,X)=>{if(/Phone/.test(X)||/WPDesktop/.test(X))return[HH5,""];if(new RegExp(lk).test(X)&&!/IEMobile\b/.test(X))return[Li+" "+lk,""];let G=/Windows NT ([0-9.]+)/i.exec(X);if(G&&G[1]){let J=G[1],Q=VH5[J]||"";if(/arm/i.test(X))Q="RT";return[Li,Q]}return[Li,""]}],[/((iPhone|iPad|iPod).*?OS (\d+)_(\d+)_?(\d+)?|iPhone)/,(Y)=>{if(Y&&Y[3]){let X=[Y[3],Y[4],Y[5]||"0"];return[J$1,X.join(".")]}return[J$1,""]}],[/(watch.*\/(\d+\.\d+\.\d+)|watch os,(\d+\.\d+),)/i,(Y)=>{let X="";if(Y&&Y.length>=3)X=uk(Y[2])?Y[3]:Y[2];return["watchOS",X]}],[new RegExp("("+mk+" (\\d+)\\.(\\d+)\\.?(\\d+)?|"+mk+")","i"),(Y)=>{if(Y&&Y[2]){let X=[Y[2],Y[3],Y[4]||"0"];return[mk,X.join(".")]}return[mk,""]}],[/Mac OS X (\d+)[_.](\d+)[_.]?(\d+)?/i,(Y)=>{let X=["Mac OS X",""];if(Y&&Y[1]){let G=[Y[1],Y[2],Y[3]||"0"];X[1]=G.join(".")}return X}],[/Mac/i,["Mac OS X",""]],[/CrOS/,[XH5,""]],[/Linux|debian/i,["Linux",""]]]});function QM6(Y){return Y?.replace(/\/+$/,"")}async function WM6(Y,X){let G=null;for(let J=0;J<X.retryCount+1;J++){if(J>0)await new Promise((Q)=>setTimeout(Q,X.retryDelay));try{return await Y()}catch(Q){if(G=Q,!X.retryCheck(Q))throw Q}}throw G}function Z$1(){return new Date().toISOString()}function Zq(Y,X){let G=setTimeout(Y,X);return G?.unref&&G?.unref(),G}function Yn1(Y){return Promise.all(Y.map((X)=>(X??Promise.resolve()).then((G)=>({status:"fulfilled",value:G}),(G)=>({status:"rejected",reason:G}))))}var JM6="utf8",ZM6=(Y)=>Y instanceof Error;var _3=w(()=>{xA6();dA6();np1();eZ1();Ni();nA6();rA6();GM6()});var UH5,a6Y;var $M6=w(()=>{_3();UH5={trace:{text:"TRACE",number:1},debug:{text:"DEBUG",number:5},info:{text:"INFO",number:9},warn:{text:"WARN",number:13},error:{text:"ERROR",number:17},fatal:{text:"FATAL",number:21}},a6Y=UH5.info});var HM6=w(()=>{xk()});class Xn1{constructor(){this.events={},this.events={}}on(Y,X){if(!this.events[Y])this.events[Y]=[];return this.events[Y].push(X),()=>{this.events[Y]=this.events[Y].filter((G)=>G!==X)}}emit(Y,X){for(let G of this.events[Y]||[])G(X);for(let G of this.events["*"]||[])G(Y,X)}}var KM6=()=>{};async function FM6(Y){if(Y instanceof dk){let X="";try{X=await Y.text}catch{}console.error(`Error while flushing PostHog: message=${Y.message}, response body=${X}`,Y)}else console.error("Error while flushing PostHog",Y);return Promise.resolve()}function Gn1(Y){return typeof Y=="object"&&(Y instanceof dk||Y instanceof Di)}function VM6(Y){return typeof Y=="object"&&Y instanceof dk&&Y.status===413}class $$1{constructor(Y,X={}){this.flushPromise=null,this.shutdownPromise=null,this.promiseQueue=new ap1,this._events=new Xn1,this._isInitialized=!1;let G=typeof Y=="string"?Y.trim():"",J=typeof X.host=="string"?X.host.trim():"",Q=!G;if(this._logger=aA6("[PostHog]",this.logMsgIfDebug.bind(this)),Q)this._logger.error("You must pass your PostHog project's api key. The client will be disabled.");if(this.apiKey=G,this.host=QM6(J||"https://us.i.posthog.com"),this.flushAt=X.flushAt?Math.max(X.flushAt,1):20,this.maxBatchSize=Math.max(this.flushAt,X.maxBatchSize??100),this.maxQueueSize=Math.max(this.flushAt,X.maxQueueSize??1000),this.flushInterval=X.flushInterval??1e4,this.preloadFeatureFlags=X.preloadFeatureFlags??!0,this.defaultOptIn=X.defaultOptIn??!0,this.disableSurveys=X.disableSurveys??!1,this._retryOptions={retryCount:X.fetchRetryCount??3,retryDelay:X.fetchRetryDelay??3000,retryCheck:Gn1},this.requestTimeout=X.requestTimeout??1e4,this.featureFlagsRequestTimeoutMs=X.featureFlagsRequestTimeoutMs??3000,this.remoteConfigRequestTimeoutMs=X.remoteConfigRequestTimeoutMs??3000,this.disableGeoip=X.disableGeoip??!0,this.disabled=(X.disabled??!1)||Q,this.historicalMigration=X?.historicalMigration??!1,this._initPromise=Promise.resolve(),this._isInitialized=!0,this.evaluationContexts=X?.evaluationContexts??X?.evaluationEnvironments,X?.evaluationEnvironments&&!X?.evaluationContexts)this._logger.warn("evaluationEnvironments is deprecated. Use evaluationContexts instead. This property will be removed in a future version.");this.disableCompression=!yA6()||(X?.disableCompression??!1)}logMsgIfDebug(Y){if(this.isDebug)Y()}wrap(Y){if(this.disabled)return void this._logger.warn("The client is disabled");if(this._isInitialized)return Y();this._initPromise.then(()=>Y())}getCommonEventProperties(){return{$lib:this.getLibraryId(),$lib_version:this.getLibraryVersion()}}get optedOut(){return this.getPersistedProperty(j3.OptedOut)??!this.defaultOptIn}async optIn(){this.wrap(()=>{this.setPersistedProperty(j3.OptedOut,!1)})}async optOut(){this.wrap(()=>{this.setPersistedProperty(j3.OptedOut,!0)})}on(Y,X){return this._events.on(Y,X)}debug(Y=!0){if(this.removeDebugCallback?.(),Y){let X=this.on("*",(G,J)=>this._logger.info(G,J));this.removeDebugCallback=()=>{X(),this.removeDebugCallback=void 0}}}get isDebug(){return!!this.removeDebugCallback}get isDisabled(){return this.disabled}buildPayload(Y){return{distinct_id:Y.distinct_id,event:Y.event,properties:{...Y.properties||{},...this.getCommonEventProperties()}}}addPendingPromise(Y){return this.promiseQueue.add(Y)}identifyStateless(Y,X,G){this.wrap(()=>{let J={...this.buildPayload({distinct_id:Y,event:"$identify",properties:X})};this.enqueue("identify",J,G)})}async identifyStatelessImmediate(Y,X,G){let J={...this.buildPayload({distinct_id:Y,event:"$identify",properties:X})};await this.sendImmediate("identify",J,G)}captureStateless(Y,X,G,J){this.wrap(()=>{let Q=this.buildPayload({distinct_id:Y,event:X,properties:G});this.enqueue("capture",Q,J)})}async captureStatelessImmediate(Y,X,G,J){let Q=this.buildPayload({distinct_id:Y,event:X,properties:G});await this.sendImmediate("capture",Q,J)}aliasStateless(Y,X,G,J){this.wrap(()=>{let Q=this.buildPayload({event:"$create_alias",distinct_id:X,properties:{...G||{},distinct_id:X,alias:Y}});this.enqueue("alias",Q,J)})}async aliasStatelessImmediate(Y,X,G,J){let Q=this.buildPayload({event:"$create_alias",distinct_id:X,properties:{...G||{},distinct_id:X,alias:Y}});await this.sendImmediate("alias",Q,J)}groupIdentifyStateless(Y,X,G,J,Q,Z){this.wrap(()=>{let W=this.buildPayload({distinct_id:Q||`$${Y}_${X}`,event:"$groupidentify",properties:{$group_type:Y,$group_key:X,$group_set:G||{},...Z||{}}});this.enqueue("capture",W,J)})}async getRemoteConfig(){await this._initPromise;let Y=this.host;if(Y==="https://us.i.posthog.com")Y="https://us-assets.i.posthog.com";else if(Y==="https://eu.i.posthog.com")Y="https://eu-assets.i.posthog.com";let X=`${Y}/array/${this.apiKey}/config`,G={method:"GET",headers:{...this.getCustomHeaders(),"Content-Type":"application/json"}};return this.fetchWithRetry(X,G,{retryCount:0},this.remoteConfigRequestTimeoutMs).then((J)=>J.json()).catch((J)=>{this._logger.error("Remote config could not be loaded",J),this._events.emit("error",J)})}async getFlags(Y,X={},G={},J={},Q={},Z=!1){await this._initPromise;let W=Z?"&config=true":"",$=`${this.host}/flags/?v=2${W}`,H={token:this.apiKey,distinct_id:Y,groups:X,person_properties:G,group_properties:J,...Q};if(G.$device_id)H.$device_id=G.$device_id;if(this.evaluationContexts&&this.evaluationContexts.length>0)H.evaluation_contexts=this.evaluationContexts;let K={method:"POST",headers:{...this.getCustomHeaders(),"Content-Type":"application/json"},body:JSON.stringify(H)};return this._logger.info("Flags URL",$),this.fetchWithRetry($,K,{retryCount:0},this.featureFlagsRequestTimeoutMs).then((V)=>V.json()).then((V)=>({success:!0,response:mp1(V)})).catch((V)=>{return this._events.emit("error",V),{success:!1,error:this.categorizeRequestError(V)}})}categorizeRequestError(Y){if(Y instanceof dk)return{type:"api_error",statusCode:Y.status};if(Y instanceof Di){let X=Y.error;if(X instanceof Error&&(X.name==="AbortError"||X.name==="TimeoutError"))return{type:"timeout"};return{type:"connection_error"}}return{type:"unknown_error"}}async getFeatureFlagStateless(Y,X,G={},J={},Q={},Z){await this._initPromise;let W=await this.getFeatureFlagDetailStateless(Y,X,G,J,Q,Z);if(W===void 0)return{response:void 0,requestId:void 0};let $=Ui(W.response);if($===void 0)$=!1;return{response:$,requestId:W.requestId}}async getFeatureFlagDetailStateless(Y,X,G={},J={},Q={},Z){await this._initPromise;let W=await this.getFeatureFlagDetailsStateless(X,G,J,Q,Z,[Y]);if(W===void 0)return;return{response:W.flags[Y],requestId:W.requestId,evaluatedAt:W.evaluatedAt}}async getFeatureFlagPayloadStateless(Y,X,G={},J={},Q={},Z){await this._initPromise;let W=await this.getFeatureFlagPayloadsStateless(X,G,J,Q,Z,[Y]);if(!W)return;let $=W[Y];if($===void 0)return null;return $}async getFeatureFlagPayloadsStateless(Y,X={},G={},J={},Q,Z){return await this._initPromise,(await this.getFeatureFlagsAndPayloadsStateless(Y,X,G,J,Q,Z)).payloads}async getFeatureFlagsStateless(Y,X={},G={},J={},Q,Z){return await this._initPromise,await this.getFeatureFlagsAndPayloadsStateless(Y,X,G,J,Q,Z)}async getFeatureFlagsAndPayloadsStateless(Y,X={},G={},J={},Q,Z){await this._initPromise;let W=await this.getFeatureFlagDetailsStateless(Y,X,G,J,Q,Z);if(!W)return{flags:void 0,payloads:void 0,requestId:void 0};return{flags:W.featureFlags,payloads:W.featureFlagPayloads,requestId:W.requestId}}async getFeatureFlagDetailsStateless(Y,X={},G={},J={},Q,Z){await this._initPromise;let W={};if(Q??this.disableGeoip)W.geoip_disable=!0;if(Z)W.flag_keys_to_evaluate=Z;let $=await this.getFlags(Y,X,G,J,W);if(!$.success)return;let H=$.response;if(H.errorsWhileComputingFlags)console.error("[FEATURE FLAGS] Error while computing feature flags, some flags may be missing or incorrect. Learn more at https://posthog.com/docs/feature-flags/best-practices");if(H.quotaLimited?.includes("feature_flags"))return console.warn("[FEATURE FLAGS] Feature flags quota limit exceeded - feature flags unavailable. Learn more about billing limits at https://posthog.com/docs/billing/limits-alerts"),{flags:{},featureFlags:{},featureFlagPayloads:{},requestId:H?.requestId,quotaLimited:H.quotaLimited};return H}async getSurveysStateless(){if(await this._initPromise,this.disableSurveys===!0)return this._logger.info("Loading surveys is disabled."),[];let Y=`${this.host}/api/surveys/?token=${this.apiKey}`,X={method:"GET",headers:{...this.getCustomHeaders(),"Content-Type":"application/json"}},J=(await this.fetchWithRetry(Y,X).then((Q)=>{if(Q.status!==200||!Q.json){let Z=`Surveys API could not be loaded: ${Q.status}`,W=Error(Z);this._logger.error(W),this._events.emit("error",Error(Z));return}return Q.json()}).catch((Q)=>{this._logger.error("Surveys API could not be loaded",Q),this._events.emit("error",Q)}))?.surveys;if(J)this._logger.info("Surveys fetched from API: ",JSON.stringify(J));return J??[]}get props(){if(!this._props)this._props=this.getPersistedProperty(j3.Props);return this._props||{}}set props(Y){this._props=Y}async register(Y){this.wrap(()=>{this.props={...this.props,...Y},this.setPersistedProperty(j3.Props,this.props)})}async unregister(Y){this.wrap(()=>{delete this.props[Y],this.setPersistedProperty(j3.Props,this.props)})}processBeforeEnqueue(Y){return Y}async flushStorage(){}enqueue(Y,X,G){this.wrap(()=>{if(this.optedOut)return void this._events.emit(Y,"Library is disabled. Not sending event. To re-enable, call posthog.optIn()");let J=this.prepareMessage(Y,X,G);if(J=this.processBeforeEnqueue(J),J===null)return;let Q=this.getPersistedProperty(j3.Queue)||[];if(Q.length>=this.maxQueueSize)Q.shift(),this._logger.info("Queue is full, the oldest event is dropped.");if(Q.push({message:J}),this.setPersistedProperty(j3.Queue,Q),this._events.emit(Y,J),Q.length>=this.flushAt)this.flushBackground();if(this.flushInterval&&!this._flushTimer)this._flushTimer=Zq(()=>this.flushBackground(),this.flushInterval)})}async sendImmediate(Y,X,G){if(this.disabled)return void this._logger.warn("The client is disabled");if(!this._isInitialized)await this._initPromise;if(this.optedOut)return void this._events.emit(Y,"Library is disabled. Not sending event. To re-enable, call posthog.optIn()");let J=this.prepareMessage(Y,X,G);if(J=this.processBeforeEnqueue(J),J===null)return;let Q={api_key:this.apiKey,batch:[J],sent_at:Z$1()};if(this.historicalMigration)Q.historical_migration=!0;let Z=JSON.stringify(Q),W=`${this.host}/batch/`,$=this.disableCompression?null:await tZ1(Z,this.isDebug),H={method:"POST",headers:{...this.getCustomHeaders(),"Content-Type":"application/json",...$!==null&&{"Content-Encoding":"gzip"}},body:$||Z};try{await this.fetchWithRetry(W,H)}catch(K){this._events.emit("error",K)}}prepareMessage(Y,X,G){let J={...X,type:Y,library:this.getLibraryId(),library_version:this.getLibraryVersion(),timestamp:G?.timestamp?G?.timestamp:Z$1(),uuid:G?.uuid?G.uuid:Vw()};if(G?.disableGeoip??this.disableGeoip){if(!J.properties)J.properties={};J.properties.$geoip_disable=!0}if(J.distinctId)J.distinct_id=J.distinctId,delete J.distinctId;return J}clearFlushTimer(){if(this._flushTimer)clearTimeout(this._flushTimer),this._flushTimer=void 0}flushBackground(){this.flush().catch(async(Y)=>{await FM6(Y)})}async flush(){let Y=Yn1([this.flushPromise]).then(()=>this._flush());return this.flushPromise=Y,this.addPendingPromise(Y),Yn1([Y]).then(()=>{if(this.flushPromise===Y)this.flushPromise=null}),Y}getCustomHeaders(){let Y=this.getCustomUserAgent(),X={};if(Y&&Y!=="")X["User-Agent"]=Y;return X}async _flush(){this.clearFlushTimer(),await this._initPromise;let Y=this.getPersistedProperty(j3.Queue)||[];if(!Y.length)return;let X=[],G=Y.length;while(Y.length>0&&X.length<G){let J=Y.slice(0,this.maxBatchSize),Q=J.map((O)=>O.message),Z=async()=>{let B=(this.getPersistedProperty(j3.Queue)||[]).slice(J.length);this.setPersistedProperty(j3.Queue,B),Y=B,await this.flushStorage()},W={api_key:this.apiKey,batch:Q,sent_at:Z$1()};if(this.historicalMigration)W.historical_migration=!0;let $=JSON.stringify(W),H=`${this.host}/batch/`,K=this.disableCompression?null:await tZ1($,this.isDebug),V={method:"POST",headers:{...this.getCustomHeaders(),"Content-Type":"application/json",...K!==null&&{"Content-Encoding":"gzip"}},body:K||$},U={retryCheck:(O)=>{if(VM6(O))return!1;return Gn1(O)}};try{await this.fetchWithRetry(H,V,U)}catch(O){if(VM6(O)&&Q.length>1){this.maxBatchSize=Math.max(1,Math.floor(Q.length/2)),this._logger.warn(`Received 413 when sending batch of size ${Q.length}, reducing batch size to ${this.maxBatchSize}`);continue}if(!(O instanceof Di))await Z();throw this._events.emit("error",O),O}await Z(),X.push(...Q)}this._events.emit("flush",X)}async fetchWithRetry(Y,X,G,J){let Q=X.body?X.body:"",Z=-1;try{Z=Q instanceof Blob?Q.size:Buffer.byteLength(Q,JM6)}catch{if(Q instanceof Blob)Z=Q.size;else Z=new TextEncoder().encode(Q).length}return await WM6(async()=>{let W=new AbortController,$=J??this.requestTimeout,H=Zq(()=>W.abort(),$),K=null;try{K=await this.fetch(Y,{signal:W.signal,...X})}catch(U){throw new Di(U)}finally{clearTimeout(H)}if(X.mode!=="no-cors"&&(K.status<200||K.status>=400))throw new dk(K,Z);return K},{...this._retryOptions,...G})}async _shutdown(Y=30000){await this._initPromise;let X=!1;this.clearFlushTimer();let G=async()=>{try{await this.promiseQueue.join();while(!0){if((this.getPersistedProperty(j3.Queue)||[]).length===0)break;if(await this.flush(),X)break}}catch(Q){if(!Gn1(Q))throw Q;await FM6(Q)}},J;try{return await Promise.race([new Promise((Q,Z)=>{J=Zq(()=>{this._logger.error("Timed out while shutting down PostHog"),X=!0,Z("Timeout while shutting down PostHog. Some events may not have been sent.")},Y)}),G()])}finally{clearTimeout(J)}}async shutdown(Y=30000){if(this.shutdownPromise)this._logger.warn("shutdown() called while already shutting down. shutdown() is meant to be called once before process exit - use flush() for per-request cleanup");else this.shutdownPromise=this._shutdown(Y).finally(()=>{this.shutdownPromise=null});return this.shutdownPromise}}var dk,Di;var Jn1=w(()=>{KM6();sZ1();dp1();xk();_3();zi();dk=class dk extends Error{constructor(Y,X){super("HTTP error while fetching PostHog: status="+Y.status+", reqByteLength="+X),this.response=Y,this.reqByteLength=X,this.name="PostHogFetchHttpError"}get status(){return this.response.status}get text(){return this.response.text()}get json(){return this.response.json()}};Di=class Di extends Error{constructor(Y){super("Network error while fetching PostHog",Y instanceof Error?{cause:Y}:{}),this.error=Y,this.name="PostHogFetchNetworkError"}}});var UM6=w(()=>{sZ1();xk();Jn1();zi();_3()});var OM6=w(()=>{Ni()});function NM6(Y){let X=globalThis._posthogChunkIds;if(!X)return;let G=Object.keys(X);if(K$1&&G.length===BM6)return K$1;return BM6=G.length,K$1=G.reduce((J,Q)=>{if(!H$1)H$1={};let Z=H$1[Q];if(Z)J[Z[0]]=Z[1];else{let W=Y(Q);for(let $=W.length-1;$>=0;$--){let K=W[$]?.filename,V=X[Q];if(K&&V){J[K]=V,H$1[Q]=[K,V];break}}}return J},{}),K$1}var H$1,BM6,K$1;var qM6=()=>{};class zM6{constructor(Y,X,G=[]){this.coercers=Y,this.stackParser=X,this.modifiers=G}buildFromUnknown(Y,X={}){let J=X&&X.mechanism||{handled:!0,type:"generic"},Z=this.buildCoercingContext(J,X,0).apply(Y),W=this.buildParsingContext(X),$=this.parseStacktrace(Z,W);return{$exception_list:this.convertToExceptionList($,J),$exception_level:"error"}}async modifyFrames(Y){for(let X of Y)if(X.stacktrace&&X.stacktrace.frames&&Y$1(X.stacktrace.frames))X.stacktrace.frames=await this.applyModifiers(X.stacktrace.frames);return Y}coerceFallback(Y){return{type:"Error",value:"Unknown error",stack:Y.syntheticException?.stack,synthetic:!0}}parseStacktrace(Y,X){let G;if(Y.cause!=null)G=this.parseStacktrace(Y.cause,X);let J;if(Y.stack!=""&&Y.stack!=null)J=this.applyChunkIds(this.stackParser(Y.stack,Y.synthetic?X.skipFirstLines:0),X.chunkIdMap);return{...Y,cause:G,stack:J}}applyChunkIds(Y,X){return Y.map((G)=>{if(G.filename&&X)G.chunk_id=X[G.filename];return G})}applyCoercers(Y,X){for(let G of this.coercers)if(G.match(Y))return G.coerce(Y,X);return this.coerceFallback(X)}async applyModifiers(Y){let X=Y;for(let G of this.modifiers)X=await G(X);return X}convertToExceptionList(Y,X){let G={type:Y.type,value:Y.value,mechanism:{type:X.type??"generic",handled:X.handled??!0,synthetic:Y.synthetic??!1}};if(Y.stack)G.stacktrace={type:"raw",frames:Y.stack};let J=[G];if(Y.cause!=null)J.push(...this.convertToExceptionList(Y.cause,{...X,handled:!0}));return J}buildParsingContext(Y){return{chunkIdMap:NM6(this.stackParser),skipFirstLines:Y.skipFirstLines??1}}buildCoercingContext(Y,X,G=0){let J=(Z,W)=>{if(!(W<=BH5))return;{let $=this.buildCoercingContext(Y,X,W);return this.applyCoercers(Z,$)}};return{...X,syntheticException:G==0?X.syntheticException:void 0,mechanism:Y,apply:(Z)=>J(Z,G),next:(Z)=>J(Z,G+1)}}}var BH5=4;var LM6=w(()=>{_3();qM6()});function QO(Y,X,G,J,Q){let Z={platform:Y,filename:X,function:G==="<anonymous>"?AJ:G,in_app:!0};if(!uk(J))Z.lineno=J;if(!uk(Q))Z.colno=Q;return Z}var AJ="?";var Uw=w(()=>{_3()});var F$1=(Y,X)=>{let G=Y.indexOf("safari-extension")!==-1,J=Y.indexOf("safari-web-extension")!==-1;return G||J?[Y.indexOf("@")!==-1?Y.split("@")[0]:AJ,G?`safari-extension:${X}`:`safari-web-extension:${X}`]:[Y,X]};var Qn1=w(()=>{Uw()});var NH5,qH5,zH5,Wn1=(Y,X)=>{let G=NH5.exec(Y);if(G){let[,Q,Z,W]=G;return QO(X,Q,AJ,+Z,+W)}let J=qH5.exec(Y);if(J){if(J[2]&&J[2].indexOf("eval")===0){let $=zH5.exec(J[2]);if($)J[2]=$[1],J[3]=$[2],J[4]=$[3]}let[Z,W]=F$1(J[1]||AJ,J[2]);return QO(X,W,Z,J[3]?+J[3]:void 0,J[4]?+J[4]:void 0)}};var DM6=w(()=>{Uw();Qn1();NH5=/^\s*at (\S+?)(?::(\d+))(?::(\d+))\s*$/i,qH5=/^\s*at (?:(.+?\)(?: \[.+\])?|.*?) ?\((?:address at )?)?(?:async )?((?:<anonymous>|[-a-z]+:|.*bundle|\/)?.*?)(?::(\d+))?(?::(\d+))?\)?\s*$/i,zH5=/\((\S*)(?::(\d+))(?::(\d+))\)/});var LH5,DH5,Zn1=(Y,X)=>{let G=LH5.exec(Y);if(G){if(G[3]&&G[3].indexOf(" > eval")>-1){let W=DH5.exec(G[3]);if(W)G[1]=G[1]||"eval",G[3]=W[1],G[4]=W[2],G[5]=""}let Q=G[3],Z=G[1]||AJ;return[Z,Q]=F$1(Z,Q),QO(X,Q,Z,G[4]?+G[4]:void 0,G[5]?+G[5]:void 0)}};var wM6=w(()=>{Uw();Qn1();LH5=/^\s*(.*?)(?:\((.*?)\))?(?:^|@)?((?:[-a-z]+)?:\/.*?|\[native code\]|[^@]*(?:bundle|\d+\.js)|\/[\w\-. /=]+)(?::(\d+))?(?::(\d+))?\s*$/i,DH5=/(\S+) line (\d+)(?: > eval line \d+)* > eval/i});var wH5,AM6=(Y,X)=>{let G=wH5.exec(Y);return G?QO(X,G[2],G[1]||AJ,+G[3],G[4]?+G[4]:void 0):void 0};var MM6=w(()=>{Uw();wH5=/^\s*at (?:((?:\[object object\])?.+) )?\(?((?:[-a-z]+):.*?):(\d+)(?::(\d+))?\)?\s*$/i});var AH5,EM6=(Y,X)=>{let G=AH5.exec(Y);return G?QO(X,G[2],G[3]||AJ,+G[1]):void 0},MH5,PM6=(Y,X)=>{let G=MH5.exec(Y);return G?QO(X,G[5],G[3]||G[4]||AJ,+G[1],+G[2]):void 0};var TM6=w(()=>{Uw();AH5=/ line (\d+).*script (?:in )?(\S+)(?:: in function (\S+))?$/i,MH5=/ line (\d+), column (\d+)\s*(?:in (?:<anonymous function: ([^>]+)>|([^)]+))\(.*\))? in (.*):\s*$/i});function TH5(Y,X=!1){return!(X||Y&&!Y.startsWith("/")&&!Y.match(/^[A-Z]:/)&&!Y.startsWith(".")&&!Y.match(/^[a-zA-Z]([a-zA-Z0-9.\-+])*:\/\//))&&Y!==void 0&&!Y.includes("node_modules/")}function RM6(Y){return parseInt(Y||"",10)||void 0}var EH5,PH5,CM6=(Y,X)=>{let G=Y.match(PH5);if(G){let J,Q,Z,W,$;if(G[1]){Z=G[1];let V=Z.lastIndexOf(".");if(Z[V-1]===".")V--;if(V>0){J=Z.slice(0,V),Q=Z.slice(V+1);let U=J.indexOf(".Module");if(U>0)Z=Z.slice(U+1),J=J.slice(0,U)}W=void 0}if(Q)W=J,$=Q;if(Q==="<anonymous>")$=void 0,Z=void 0;if(Z===void 0)$=$||AJ,Z=W?`${W}.${$}`:$;let H=G[2]?.startsWith("file://")?G[2].slice(7):G[2],K=G[5]==="native";if(H?.match(/\/[A-Z]:/))H=H.slice(1);if(!H&&G[5]&&!K)H=G[5];return{filename:H?decodeURI(H):void 0,module:void 0,function:Z,lineno:RM6(G[3]),colno:RM6(G[4]),in_app:TH5(H||"",K),platform:X}}if(Y.match(EH5))return{filename:Y,platform:X}};var SM6=w(()=>{Uw();EH5=/^\s*[-]{4,}$/,PH5=/at (?:async )?(?:(.+?)\s+\()?(?:(.+):(\d+):(\d+)?|([^)]+))\)?/});function _M6(Y){if(!Y.length)return[];let X=Array.from(Y);return X.reverse(),X.slice(0,IM6).map((G)=>({...G,filename:G.filename||RH5(X).filename,function:G.function||AJ}))}function RH5(Y){return Y[Y.length-1]||{}}function CH5(){return fM6("web:javascript",Wn1,Zn1)}function fM6(Y,...X){return(G,J=0)=>{let Q=[],Z=G.split(`
1640
1640
  `);for(let W=J;W<Z.length;W++){let $=Z[W];if($.length>1024)continue;let H=jM6.test($)?$.replace(jM6,"$1"):$;if(!H.match(/\S*Error: /)){for(let K of X){let V=K(H,Y);if(V){Q.push(V);break}}if(Q.length>=IM6)break}}return _M6(Q)}}var jM6,IM6=50;var kM6=w(()=>{Uw();DM6();wM6();MM6();TM6();SM6();jM6=/\(error: (.*)\)/});class vM6{match(Y){return this.isDOMException(Y)||this.isDOMError(Y)}coerce(Y,X){let G=Fw(Y.stack);return{type:this.getType(Y),value:this.getValue(Y),stack:G?Y.stack:void 0,cause:Y.cause?X.next(Y.cause):void 0,synthetic:!1}}getType(Y){return this.isDOMError(Y)?"DOMError":"DOMException"}getValue(Y){let X=Y.name||(this.isDOMError(Y)?"DOMError":"DOMException");return Y.message?`${X}: ${Y.message}`:X}isDOMException(Y){return YT(Y,"DOMException")}isDOMError(Y){return YT(Y,"DOMError")}}var hM6=w(()=>{_3()});class yM6{match(Y){return pp1(Y)}coerce(Y,X){return{type:this.getType(Y),value:this.getMessage(Y,X),stack:this.getStack(Y),cause:Y.cause?X.next(Y.cause):void 0,synthetic:!1}}getType(Y){return Y.name||Y.constructor.name}getMessage(Y,X){let G=Y.message;if(G.error&&typeof G.error.message=="string")return String(G.error.message);return String(G)}getStack(Y){return Y.stacktrace||Y.stack||void 0}}var bM6=w(()=>{_3()});class xM6{constructor(){}match(Y){return mA6(Y)&&Y.error!=null}coerce(Y,X){let G=X.apply(Y.error);if(!G)return{type:"ErrorEvent",value:Y.message,stack:X.syntheticException?.stack,synthetic:!0};return G}}var uM6=w(()=>{_3()});class gM6{match(Y){return typeof Y=="string"}coerce(Y,X){let[G,J]=this.getInfos(Y);return{type:G??"Error",value:J??Y,stack:X.syntheticException?.stack,synthetic:!0}}getInfos(Y){let X="Error",G=Y,J=Y.match(SH5);if(J)X=J[1],G=J[2];return[X,G]}}var SH5;var mM6=w(()=>{SH5=/^(?:[Uu]ncaught (?:exception: )?)?(?:((?:Eval|Internal|Range|Reference|Syntax|Type|URI|)Error): )?(.*)$/i});var lM6;var dM6=w(()=>{lM6=["fatal","error","warning","log","info","debug"]});function V$1(Y,X=40){let G=Object.keys(Y);if(G.sort(),!G.length)return"[object has no keys]";for(let J=G.length;J>0;J--){let Q=G.slice(0,J).join(", ");if(!(Q.length>X)){if(J===G.length)return Q;return Q.length<=X?Q:`${Q.slice(0,X)}...`}}return""}var $n1=()=>{};class cM6{match(Y){return typeof Y=="object"&&Y!==null}coerce(Y,X){let G=this.getErrorPropertyFromObject(Y);if(G)return X.apply(G);return{type:this.getType(Y),value:this.getValue(Y),stack:X.syntheticException?.stack,level:this.isSeverityLevel(Y.level)?Y.level:"error",synthetic:!0}}getType(Y){return gk(Y)?Y.constructor.name:"Error"}getValue(Y){if("name"in Y&&typeof Y.name=="string"){let J=`'${Y.name}' captured as exception`;if("message"in Y&&typeof Y.message=="string")J+=` with message: '${Y.message}'`;return J}if("message"in Y&&typeof Y.message=="string")return Y.message;let X=this.getObjectClassName(Y),G=V$1(Y);return`${X&&X!=="Object"?`'${X}'`:"Object"} captured as exception with keys: ${G}`}isSeverityLevel(Y){return Fw(Y)&&!gA6(Y)&&lM6.indexOf(Y)>=0}getErrorPropertyFromObject(Y){for(let X in Y)if(Object.prototype.hasOwnProperty.call(Y,X)){let G=Y[X];if(ZM6(G))return G}}getObjectClassName(Y){try{let X=Object.getPrototypeOf(Y);return X?X.constructor.name:void 0}catch(X){return}}}var pM6=w(()=>{_3();dM6();$n1()});class nM6{match(Y){return gk(Y)}coerce(Y,X){let G=Y.constructor.name;return{type:G,value:`${G} captured as exception with keys: ${V$1(Y)}`,stack:X.syntheticException?.stack,synthetic:!0}}}var iM6=w(()=>{_3();$n1()});class aM6{match(Y){return X$1(Y)}coerce(Y,X){return{type:"Error",value:`Primitive value captured as exception: ${String(Y)}`,stack:X.syntheticException?.stack,synthetic:!0}}}var rM6=w(()=>{_3()});class oM6{match(Y){return YT(Y,"PromiseRejectionEvent")||this.isCustomEventWrappingRejection(Y)}isCustomEventWrappingRejection(Y){if(!gk(Y))return!1;try{let X=Y.detail;return X!=null&&typeof X=="object"&&"reason"in X}catch{return!1}}coerce(Y,X){let G=this.getUnhandledRejectionReason(Y);if(X$1(G))return{type:"UnhandledRejection",value:`Non-Error promise rejection captured with value: ${String(G)}`,stack:X.syntheticException?.stack,synthetic:!0};return X.apply(G)}getUnhandledRejectionReason(Y){try{if("reason"in Y)return Y.reason;if("detail"in Y&&Y.detail!=null&&typeof Y.detail=="object"&&"reason"in Y.detail)return Y.detail.reason}catch{}return Y}}var sM6=w(()=>{_3()});var tM6=w(()=>{hM6();bM6();uM6();mM6();pM6();iM6();rM6();sM6()});class eM6{constructor(Y){this._maxSize=Y,this._cache=new Map}get(Y){let X=this._cache.get(Y);if(X===void 0)return;return this._cache.delete(Y),this._cache.set(Y,X),X}set(Y,X){this._cache.set(Y,X)}reduce(){while(this._cache.size>=this._maxSize){let Y=this._cache.keys().next().value;if(Y)this._cache.delete(Y)}}}var YE6=()=>{};function Hn1(Y){if(!Y)return{...U$1};return{enabled:Y.enabled??U$1.enabled,max_bytes:_H5(Y.max_bytes,U$1.max_bytes)}}function IH5(Y){if(!Y)return{sanitizedProperties:{},droppedKeys:[]};let X=[];return{sanitizedProperties:Object.keys(Y).reduce((J,Q)=>{if(jH5.has(Q))return X.push(Q),J;return J[Q]=Y[Q],J},{}),droppedKeys:X}}class XE6{constructor(Y){this._entries=[],this._totalBytes=0,this._config=Hn1(Y)}setConfig(Y){this._config=Hn1(Y),this._trimToMaxBytes()}add(Y){let X=fH5(Y);if(!X)return;let G=GE6(X.json);if(G>this._config.max_bytes)return;this._entries.push({step:X.step,bytes:G}),this._totalBytes+=G,this._trimToMaxBytes()}getAttachable(){return this._entries.map((Y)=>Y.step)}clear(){this._entries=[],this._totalBytes=0}size(){return this._entries.length}_trimToMaxBytes(){while(this._totalBytes>this._config.max_bytes&&this._entries.length>0){let Y=this._entries.shift();if(Y)this._totalBytes-=Y.bytes}}}function _H5(Y,X){if(!Bi(Y)||Y===1/0||Y===-1/0)return X;let G=Math.floor(Y);if(G<0)return X;return G}function fH5(Y){let X=kH5(Y);if(!X)return;try{let G=JSON.parse(X);if(!Oi(G))return;let J=G,Q=J[wi.MESSAGE],Z=J[wi.TIMESTAMP];if(!Fw(Q)||Q.trim().length===0)return;if(!Fw(Z)&&!Bi(Z))return;return{step:J,json:X}}catch{return}}function kH5(Y){let X=new WeakSet;try{return JSON.stringify(Y,(G,J)=>{if(typeof J=="bigint")return J.toString();if(typeof J=="function"||typeof J=="symbol")return;if(J instanceof Date)return J.toISOString();if(J instanceof Error)return{name:J.name,message:J.message,stack:J.stack};if(J&&typeof J=="object"){if(X.has(J))return"[Circular]";X.add(J)}return J})}catch{return}}function GE6(Y){if(typeof TextEncoder<"u")return new TextEncoder().encode(Y).length;let X=encodeURIComponent(Y),G=0;for(let J=0;J<X.length;J++)if(X[J]==="%")G+=1,J+=2;else G+=1;return G}var wi,jH5,U$1;var JE6=w(()=>{_3();wi={MESSAGE:"$message",TIMESTAMP:"$timestamp"},jH5=new Set([wi.MESSAGE,wi.TIMESTAMP]),U$1={enabled:!0,max_bytes:32768}});var bW={};I0(bW,{winjsStackLineParser:()=>AM6,stripReservedExceptionStepFields:()=>IH5,reverseAndStripFrames:()=>_M6,resolveExceptionStepsConfig:()=>Hn1,opera11StackLineParser:()=>PM6,opera10StackLineParser:()=>EM6,nodeStackLineParser:()=>CM6,getUtf8ByteLength:()=>GE6,geckoStackLineParser:()=>Zn1,createStackParser:()=>fM6,createDefaultStackParser:()=>CH5,chromeStackLineParser:()=>Wn1,StringCoercer:()=>gM6,ReduceableCache:()=>eM6,PromiseRejectionEventCoercer:()=>oM6,PrimitiveCoercer:()=>aM6,ObjectCoercer:()=>cM6,ExceptionStepsBuffer:()=>XE6,EventCoercer:()=>nM6,ErrorPropertiesBuilder:()=>zM6,ErrorEventCoercer:()=>xM6,ErrorCoercer:()=>yM6,EXCEPTION_STEP_INTERNAL_FIELDS:()=>wi,DOMExceptionCoercer:()=>vM6,DEFAULT_EXCEPTION_STEPS_CONFIG:()=>U$1});var QE6=w(()=>{LM6();kM6();tM6();YE6();JE6()});var GT=w(()=>{sZ1();dp1();$M6();zi();HM6();QE6();_3();UM6();Jn1();OM6();xk()});import{createReadStream as vH5}from"fs";import{createInterface as hH5}from"readline";async function HE6(Y){let X={};for(let Q=Y.length-1;Q>=0;Q--){let Z=Y[Q],W=Z?.filename;if(!Z||typeof W!="string"||typeof Z.lineno!="number"||mH5(W)||lH5(Z))continue;if(!X[W])X[W]=[];X[W].push(Z.lineno)}let G=Object.keys(X);if(G.length==0)return Y;let J=[];for(let Q of G){if($E6.get(Q))continue;let Z=X[Q];if(!Z)continue;Z.sort((H,K)=>H-K);let W=cH5(Z);if(W.every((H)=>dH5(Q,H)))continue;let $=pH5(O$1,Q,{});J.push(xH5(Q,W,$))}if(await Promise.all(J).catch(()=>{}),Y&&Y.length>0)uH5(Y,O$1);return O$1.reduce(),Y}function xH5(Y,X,G){return new Promise((J)=>{let Q=vH5(Y),Z=hH5({input:Q});function W(){Q.destroy(),J()}let $=0,H=0,K=X[H];if(K===void 0)return void W();let V=K[0],U=K[1];function O(){$E6.set(Y,1),Z.close(),Z.removeAllListeners(),W()}Q.on("error",O),Z.on("error",O),Z.on("close",W),Z.on("line",(B)=>{if($++,$<V)return;if(G[$]=nH5(B,0),$>=U){if(H===X.length-1){Z.close(),Z.removeAllListeners();return}H++;let N=X[H];if(N===void 0){Z.close(),Z.removeAllListeners();return}V=N[0],U=N[1]}})})}function uH5(Y,X){for(let G of Y)if(G.filename&&G.context_line===void 0&&typeof G.lineno=="number"){let J=X.get(G.filename);if(J===void 0)continue;gH5(G.lineno,G,J)}}function gH5(Y,X,G){if(X.lineno===void 0||G===void 0)return;X.pre_context=[];for(let Q=KE6(Y);Q<Y;Q++){let Z=G[Q];if(Z===void 0)return void WE6(X);X.pre_context.push(Z)}if(G[Y]===void 0)return void WE6(X);X.context_line=G[Y];let J=FE6(Y);X.post_context=[];for(let Q=Y+1;Q<=J;Q++){let Z=G[Q];if(Z===void 0)break;X.post_context.push(Z)}}function WE6(Y){delete Y.pre_context,delete Y.context_line,delete Y.post_context}function mH5(Y){return Y.startsWith("node:")||Y.endsWith(".min.js")||Y.endsWith(".min.cjs")||Y.endsWith(".min.mjs")||Y.startsWith("data:")}function lH5(Y){if(Y.lineno!==void 0&&Y.lineno>bH5)return!0;if(Y.colno!==void 0&&Y.colno>yH5)return!0;return!1}function dH5(Y,X){let G=O$1.get(Y);if(G===void 0)return!1;for(let J=X[0];J<=X[1];J++)if(G[J]===void 0)return!1;return!0}function cH5(Y){if(!Y.length)return[];let X=0,G=Y[0];if(typeof G!="number")return[];let J=ZE6(G),Q=[];while(!0){if(X===Y.length-1){Q.push(J);break}let Z=Y[X+1];if(typeof Z!="number")break;if(Z<=J[1])J[1]=Z+Kn1;else Q.push(J),J=ZE6(Z);X++}return Q}function ZE6(Y){return[KE6(Y),FE6(Y)]}function KE6(Y){return Math.max(1,Y-Kn1)}function FE6(Y){return Y+Kn1}function pH5(Y,X,G){let J=Y.get(X);if(J===void 0)return Y.set(X,G),G;return J}function nH5(Y,X){let G=Y,J=G.length;if(J<=150)return G;if(X>J)X=J;let Q=Math.max(X-60,0);if(Q<5)Q=0;let Z=Math.min(Q+140,J);if(Z>J-5)Z=J;if(Z===J)Q=Math.max(Z-140,0);if(G=G.slice(Q,Z),Q>0)G=`...${G}`;if(Z<J)G+="...";return G}var O$1,$E6,Kn1=7,yH5=1000,bH5=1e4;var VE6=w(()=>{GT();O$1=new bW.ReduceableCache(25),$E6=new bW.ReduceableCache(20)});import{isAbsolute as iH5,relative as aH5,sep as rH5}from"path";function UE6(Y=process.cwd()){let X=rH5==="\\",G=(Q)=>X?Q.replace(/\\/g,"/"):Q,J=G(Y);return async(Q)=>{for(let Z of Q)if(!(!Z.filename||Z.filename.startsWith("node:")||Z.filename.startsWith("data:"))){if(iH5(Z.filename))Z.filename=G(aH5(J,G(Z.filename)))}return Q}}var OE6=()=>{};function oH5(Y,X){let G=!1;return Object.assign((J)=>{let Z=global.process.listeners("uncaughtException").filter((W)=>W.name!=="domainUncaughtExceptionClear"&&W._posthogErrorHandler!==!0).length===0;if(Y(J,{mechanism:{type:"onuncaughtexception",handled:!1}}),!G&&Z)G=!0,X(J)},{_posthogErrorHandler:!0})}function BE6(Y,X){globalThis.process?.on("uncaughtException",oH5(Y,X))}function NE6(Y){globalThis.process?.on("unhandledRejection",(X)=>Y(X,{mechanism:{type:"onunhandledrejection",handled:!1}}))}var qE6=()=>{};class AH{constructor(Y,X,G){this.client=Y,this._exceptionAutocaptureEnabled=X.enableExceptionAutocapture||!1,this._logger=G,this._rateLimiter=new ip1({refillRate:1,bucketSize:10,refillInterval:1e4,_logger:this._logger}),this.startAutocaptureIfEnabled()}static isPreviouslyCapturedError(Y){return Oi(Y)&&"__posthog_previously_captured_error"in Y&&Y.__posthog_previously_captured_error===!0}static async buildEventMessage(Y,X,G,J){let Q={...J},Z=this.errorPropertiesBuilder.buildFromUnknown(Y,X);return Z.$exception_list=await this.errorPropertiesBuilder.modifyFrames(Z.$exception_list),{event:"$exception",distinctId:G,properties:{...Z,...Q},_originatedFromCaptureException:!0}}startAutocaptureIfEnabled(){if(this.isEnabled())BE6(this.onException.bind(this),this.onFatalError.bind(this)),NE6(this.onException.bind(this))}onException(Y,X){this.client.addPendingPromise((async()=>{if(!AH.isPreviouslyCapturedError(Y)){let G=await AH.buildEventMessage(Y,X),Q=G.properties?.$exception_list[0]?.type??"Exception";if(this._rateLimiter.consumeRateLimit(Q))return void this._logger.info("Skipping exception capture because of client rate limiting.",{exception:Q});return this.client.capture(G)}})())}async onFatalError(Y){console.error(Y),await this.client.shutdown(sH5),process.exit(1)}isEnabled(){return!this.client.isDisabled&&this._exceptionAutocaptureEnabled}shutdown(){this._rateLimiter.stop()}}var sH5=2000;var B$1=w(()=>{qE6();GT()});var zE6="5.30.5";var LE6=()=>{};var Ai;var Fn1=w(()=>{Ai={ERRORS_WHILE_COMPUTING:"errors_while_computing_flags",FLAG_MISSING:"flag_missing",QUOTA_LIMITED:"quota_limited",UNKNOWN_ERROR:"unknown_error"}});async function DE6(Y){let X=globalThis.crypto?.subtle;if(!X)throw Error("SubtleCrypto API not available");let G=await X.digest("SHA-1",new TextEncoder().encode(Y));return Array.from(new Uint8Array(G)).map((Q)=>Q.toString(16).padStart(2,"0")).join("")}var wE6=()=>{};class Vn1{constructor({pollingInterval:Y,personalApiKey:X,projectApiKey:G,timeout:J,host:Q,customHeaders:Z,...W}){this.debugMode=!1,this.shouldBeginExponentialBackoff=!1,this.backOffCount=0,this.pollingInterval=Y,this.personalApiKey=X,this.featureFlags=[],this.featureFlagsByKey={},this.groupTypeMapping={},this.cohorts={},this.loadedSuccessfullyOnce=!1,this.timeout=J,this.projectApiKey=G,this.host=Q,this.poller=void 0,this.fetch=W.fetch||fetch,this.onError=W.onError,this.customHeaders=Z,this.onLoad=W.onLoad,this.cacheProvider=W.cacheProvider,this.strictLocalEvaluation=W.strictLocalEvaluation??!1,this.loadFeatureFlags()}debug(Y=!0){this.debugMode=Y}logMsgIfDebug(Y){if(this.debugMode)Y()}createEvaluationContext(Y,X={},G={},J={},Q={}){return{distinctId:Y,groups:X,personProperties:G,groupProperties:J,evaluationCache:Q}}async getFeatureFlag(Y,X,G={},J={},Q={}){await this.loadFeatureFlags();let Z,W;if(!this.loadedSuccessfullyOnce)return Z;if(W=this.featureFlagsByKey[Y],W!==void 0){let $=this.createEvaluationContext(X,G,J,Q);try{Z=(await this.computeFlagAndPayloadLocally(W,$)).value,this.logMsgIfDebug(()=>console.debug(`Successfully computed flag locally: ${Y} -> ${Z}`))}catch(H){if(H instanceof WO||H instanceof R5)this.logMsgIfDebug(()=>console.debug(`${H.name} when computing flag locally: ${Y}: ${H.message}`));else if(H instanceof Error)this.onError?.(Error(`Error computing flag locally: ${Y}: ${H}`))}}return Z}async getAllFlagsAndPayloads(Y,X){await this.loadFeatureFlags();let G={},J={},Q=this.featureFlags.length==0,Z=X?X.map(($)=>this.featureFlagsByKey[$]).filter(Boolean):this.featureFlags,W={...Y,evaluationCache:Y.evaluationCache??{}};return await Promise.all(Z.map(async($)=>{try{let{value:H,payload:K}=await this.computeFlagAndPayloadLocally($,W);if(G[$.key]=H,K)J[$.key]=K}catch(H){if(H instanceof WO||H instanceof R5)this.logMsgIfDebug(()=>console.debug(`${H.name} when computing flag locally: ${$.key}: ${H.message}`));else if(H instanceof Error)this.onError?.(Error(`Error computing flag locally: ${$.key}: ${H}`));Q=!0}})),{response:G,payloads:J,fallbackToFlags:Q}}async computeFlagAndPayloadLocally(Y,X,G={}){let{matchValue:J,skipLoadCheck:Q=!1}=G;if(!Q)await this.loadFeatureFlags();if(!this.loadedSuccessfullyOnce)return{value:!1,payload:null};let Z;Z=J!==void 0?J:await this.computeFlagValueLocally(Y,X);let W=this.getFeatureFlagPayload(Y.key,Z);return{value:Z,payload:W}}async computeFlagValueLocally(Y,X){let{distinctId:G,groups:J,personProperties:Q,groupProperties:Z}=X;if(Y.ensure_experience_continuity)throw new R5("Flag has experience continuity enabled");if(!Y.active)return!1;let $=(Y.filters||{}).aggregation_group_type_index;if($!=null){let H=this.groupTypeMapping[String($)];if(!H)throw this.logMsgIfDebug(()=>console.warn(`[FEATURE FLAGS] Unknown group type index ${$} for feature flag ${Y.key}`)),new R5("Flag has unknown group type index");if(!(H in J))return this.logMsgIfDebug(()=>console.warn(`[FEATURE FLAGS] Can't compute group feature flag: ${Y.key} without group names passed in`)),!1;if(Y.bucketing_identifier==="device_id"&&(Q?.$device_id===void 0||Q?.$device_id===null||Q?.$device_id===""))this.logMsgIfDebug(()=>console.warn(`[FEATURE FLAGS] Ignoring bucketing_identifier for group flag: ${Y.key}`));let K=Z[H];return await this.matchFeatureFlagProperties(Y,J[H],K,X)}{let H=this.getBucketingValueForFlag(Y,G,Q);if(H===void 0)throw this.logMsgIfDebug(()=>console.warn(`[FEATURE FLAGS] Can't compute feature flag: ${Y.key} without $device_id, falling back to server evaluation`)),new R5(`Can't compute feature flag: ${Y.key} without $device_id`);return await this.matchFeatureFlagProperties(Y,H,Q,X)}}getBucketingValueForFlag(Y,X,G){if(Y.filters?.aggregation_group_type_index!=null)return X;if(Y.bucketing_identifier==="device_id"){let J=G?.$device_id;if(J==null||J==="")return;return J}return X}getFeatureFlagPayload(Y,X){let G=null;if(X!==!1&&X!=null){if(typeof X=="boolean")G=this.featureFlagsByKey?.[Y]?.filters?.payloads?.[X.toString()]||null;else if(typeof X=="string")G=this.featureFlagsByKey?.[Y]?.filters?.payloads?.[X]||null;if(G!=null){if(typeof G=="object")return G;if(typeof G=="string")try{return JSON.parse(G)}catch{}return G}}return null}async evaluateFlagDependency(Y,X,G){let{evaluationCache:J}=G,Q=Y.key;if(!this.featureFlagsByKey)throw new R5("Feature flags not available for dependency evaluation");if(!("dependency_chain"in Y))throw new R5(`Flag dependency property for '${Q}' is missing required 'dependency_chain' field`);let Z=Y.dependency_chain;if(!Array.isArray(Z))throw new R5(`Flag dependency property for '${Q}' has an invalid 'dependency_chain' (expected array, got ${typeof Z})`);if(Z.length===0)throw new R5(`Circular dependency detected for flag '${Q}' (empty dependency chain)`);for(let $ of Z){if(!($ in J)){let K=this.featureFlagsByKey[$];if(K)if(K.active)try{let V=await this.computeFlagValueLocally(K,G);J[$]=V}catch(V){throw new R5(`Error evaluating flag dependency '${$}' for flag '${Q}': ${V}`)}else J[$]=!1;else throw new R5(`Missing flag dependency '${$}' for flag '${Q}'`)}if(J[$]==null)throw new R5(`Dependency '${$}' could not be evaluated`)}let W=J[Q];return this.flagEvaluatesToExpectedValue(Y.value,W)}flagEvaluatesToExpectedValue(Y,X){if(typeof Y=="boolean")return Y===X||typeof X=="string"&&X!==""&&Y===!0;if(typeof Y=="string")return X===Y;return!1}async matchFeatureFlagProperties(Y,X,G,J){let Q=Y.filters||{},Z=Q.groups||[],W=!1,$;for(let H of Z)try{if(await this.isConditionMatch(Y,X,H,G,J)){let K=H.variant,V=Q.multivariate?.variants||[];$=K&&V.some((U)=>U.key===K)?K:await this.getMatchingVariant(Y,X)||!0;break}}catch(K){if(K instanceof WO)throw K;if(K instanceof R5)W=!0;else throw K}if($!==void 0)return $;if(W)throw new R5("Can't determine if feature flag is enabled or not with given properties");return!1}async isConditionMatch(Y,X,G,J,Q){let Z=G.rollout_percentage,W=($)=>{this.logMsgIfDebug(()=>console.warn($))};if((G.properties||[]).length>0){for(let $ of G.properties){let H=$.type,K=!1;if(K=H==="cohort"?TE6($,J,this.cohorts,this.debugMode):H==="flag"?await this.evaluateFlagDependency($,J,Q):PE6($,J,W),!K)return!1}if(Z==null)return!0}if(Z!=null&&await AE6(Y.key,X)>Z/100)return!1;return!0}async getMatchingVariant(Y,X){let G=await AE6(Y.key,X,"variant"),J=this.variantLookupTable(Y).find((Q)=>G>=Q.valueMin&&G<Q.valueMax);if(J)return J.key}variantLookupTable(Y){let X=[],G=0,J=0;return((Y.filters||{}).multivariate?.variants||[]).forEach((W)=>{J=G+W.rollout_percentage/100,X.push({valueMin:G,valueMax:J,key:W.key}),G=J}),X}updateFlagState(Y){this.featureFlags=Y.flags,this.featureFlagsByKey=Y.flags.reduce((X,G)=>(X[G.key]=G,X),{}),this.groupTypeMapping=Y.groupTypeMapping,this.cohorts=Y.cohorts,this.loadedSuccessfullyOnce=!0}warnAboutExperienceContinuityFlags(Y){if(this.strictLocalEvaluation)return;let X=Y.filter((G)=>G.ensure_experience_continuity);if(X.length>0)console.warn(`[PostHog] You are using local evaluation but ${X.length} flag(s) have experience continuity enabled: ${X.map((G)=>G.key).join(", ")}. Experience continuity is incompatible with local evaluation and will cause a server request on every flag evaluation, negating local evaluation cost savings. To avoid server requests and unexpected costs, either disable experience continuity on these flags in PostHog, use strictLocalEvaluation: true in client init, or pass onlyEvaluateLocally: true per flag call (flags that cannot be evaluated locally will return undefined).`)}async loadFromCache(Y){if(!this.cacheProvider)return!1;try{let X=await this.cacheProvider.getFlagDefinitions();if(X)return this.updateFlagState(X),this.logMsgIfDebug(()=>console.debug(`[FEATURE FLAGS] ${Y} (${X.flags.length} flags)`)),this.onLoad?.(this.featureFlags.length),this.warnAboutExperienceContinuityFlags(X.flags),!0;return!1}catch(X){return this.onError?.(Error(`Failed to load from cache: ${X}`)),!1}}async loadFeatureFlags(Y=!1){if(this.loadedSuccessfullyOnce&&!Y)return;if(!Y&&this.nextFetchAllowedAt&&Date.now()<this.nextFetchAllowedAt)return void this.logMsgIfDebug(()=>console.debug("[FEATURE FLAGS] Skipping fetch, in backoff period"));if(!this.loadingPromise)this.loadingPromise=this._loadFeatureFlags().catch((X)=>this.logMsgIfDebug(()=>console.debug(`[FEATURE FLAGS] Failed to load feature flags: ${X}`))).finally(()=>{this.loadingPromise=void 0});return this.loadingPromise}isLocalEvaluationReady(){return(this.loadedSuccessfullyOnce??!1)&&(this.featureFlags?.length??0)>0}getFlagDefinitionsLoadedAt(){return this.flagDefinitionsLoadedAt}getPollingInterval(){if(!this.shouldBeginExponentialBackoff)return this.pollingInterval;return Math.min(tH5,this.pollingInterval*2**this.backOffCount)}beginBackoff(){this.shouldBeginExponentialBackoff=!0,this.backOffCount+=1,this.nextFetchAllowedAt=Date.now()+this.getPollingInterval()}clearBackoff(){this.shouldBeginExponentialBackoff=!1,this.backOffCount=0,this.nextFetchAllowedAt=void 0}async _loadFeatureFlags(){if(this.poller)clearTimeout(this.poller),this.poller=void 0;this.poller=setTimeout(()=>this.loadFeatureFlags(!0),this.getPollingInterval());try{let Y=!0;if(this.cacheProvider)try{Y=await this.cacheProvider.shouldFetchFlagDefinitions()}catch(G){this.onError?.(Error(`Error in shouldFetchFlagDefinitions: ${G}`))}if(!Y){if(await this.loadFromCache("Loaded flags from cache (skipped fetch)"))return;if(this.loadedSuccessfullyOnce)return}let X=await this._requestFeatureFlagDefinitions();if(!X)return;switch(X.status){case 304:this.logMsgIfDebug(()=>console.debug("[FEATURE FLAGS] Flags not modified (304), using cached data")),this.flagsEtag=X.headers?.get("ETag")??this.flagsEtag,this.loadedSuccessfullyOnce=!0,this.clearBackoff();return;case 401:throw this.beginBackoff(),new ck(`Your project key or personal API key is invalid. Setting next polling interval to ${this.getPollingInterval()}ms. More information: https://posthog.com/docs/api#rate-limiting`);case 402:console.warn("[FEATURE FLAGS] Feature flags quota limit exceeded - unsetting all local flags. Learn more about billing limits at https://posthog.com/docs/billing/limits-alerts"),this.featureFlags=[],this.featureFlagsByKey={},this.groupTypeMapping={},this.cohorts={};return;case 403:throw this.beginBackoff(),new ck(`Your personal API key does not have permission to fetch feature flag definitions for local evaluation. Setting next polling interval to ${this.getPollingInterval()}ms. Are you sure you're using the correct personal and Project API key pair? More information: https://posthog.com/docs/api/overview`);case 429:throw this.beginBackoff(),new ck(`You are being rate limited. Setting next polling interval to ${this.getPollingInterval()}ms. More information: https://posthog.com/docs/api#rate-limiting`);case 200:{let G=await X.json()??{};if(!("flags"in G))return void this.onError?.(Error(`Invalid response when getting feature flags: ${JSON.stringify(G)}`));this.flagsEtag=X.headers?.get("ETag")??void 0;let J={flags:G.flags??[],groupTypeMapping:G.group_type_mapping||{},cohorts:G.cohorts||{}};if(this.updateFlagState(J),this.flagDefinitionsLoadedAt=Date.now(),this.clearBackoff(),this.cacheProvider&&Y)try{await this.cacheProvider.onFlagDefinitionsReceived(J)}catch(Q){this.onError?.(Error(`Failed to store in cache: ${Q}`))}this.onLoad?.(this.featureFlags.length),this.warnAboutExperienceContinuityFlags(J.flags);break}default:return}}catch(Y){if(Y instanceof ck)this.onError?.(Y)}}getPersonalApiKeyRequestOptions(Y="GET",X){let G={...this.customHeaders,"Content-Type":"application/json",Authorization:`Bearer ${this.personalApiKey}`};if(X)G["If-None-Match"]=X;return{method:Y,headers:G}}_requestFeatureFlagDefinitions(){let Y=`${this.host}/flags/definitions?token=${this.projectApiKey}&send_cohorts`,X=this.getPersonalApiKeyRequestOptions("GET",this.flagsEtag),G=null;if(this.timeout&&typeof this.timeout=="number"){let J=new AbortController;G=Zq(()=>{J.abort()},this.timeout),X.signal=J.signal}try{let J=this.fetch;return J(Y,X)}finally{clearTimeout(G)}}async stopPoller(Y=30000){if(clearTimeout(this.poller),this.cacheProvider)try{let X=this.cacheProvider.shutdown();if(X instanceof Promise)await Promise.race([X,new Promise((G,J)=>setTimeout(()=>J(Error(`Cache shutdown timeout after ${Y}ms`)),Y))])}catch(X){this.onError?.(Error(`Error during cache shutdown: ${X}`))}}}async function AE6(Y,X,G=""){let J=await DE6(`${Y}.${X}${G}`);return parseInt(J.slice(0,15),16)/eH5}function PE6(Y,X,G){let{key:J,value:Q}=Y,Z=Y.operator||"exact";if(J in X){if(Z==="is_not_set")throw new R5("Operator is_not_set is not supported")}else throw new R5(`Property ${J} not found in propertyValues`);let W=X[J];if(W==null&&!YK5.includes(Z)){if(G)G(`Property ${J} cannot have a value of null/undefined with the ${Z} operator`);return!1}function $(K,V){if(Array.isArray(K))return K.map((U)=>String(U).toLowerCase()).includes(String(V).toLowerCase());return String(K).toLowerCase()===String(V).toLowerCase()}function H(K,V,U){if(U==="gt")return K>V;if(U==="gte")return K>=V;if(U==="lt")return K<V;if(U==="lte")return K<=V;throw Error(`Invalid operator: ${U}`)}switch(Z){case"exact":return $(Q,W);case"is_not":return!$(Q,W);case"is_set":return J in X;case"icontains":return String(W).toLowerCase().includes(String(Q).toLowerCase());case"not_icontains":return!String(W).toLowerCase().includes(String(Q).toLowerCase());case"regex":return ME6(String(Q))&&String(W).match(String(Q))!==null;case"not_regex":return ME6(String(Q))&&String(W).match(String(Q))===null;case"gt":case"gte":case"lt":case"lte":{let K=typeof Q=="number"?Q:null;if(typeof Q=="string")try{K=parseFloat(Q)}catch(V){}if(K==null||W==null)return H(String(W),String(Q),Z);if(typeof W=="string")return H(W,String(Q),Z);return H(W,K,Z)}case"is_date_after":case"is_date_before":{if(typeof Q=="boolean")throw new R5("Date operations cannot be performed on boolean values");let K=WK5(String(Q));if(K==null)K=EE6(Q);if(K==null)throw new R5(`Invalid date: ${Q}`);let V=EE6(W);if(["is_date_before"].includes(Z))return V<K;return V>K}case"semver_eq":return MH(MJ(String(W)),MJ(String(Q)))===0;case"semver_neq":return MH(MJ(String(W)),MJ(String(Q)))!==0;case"semver_gt":return MH(MJ(String(W)),MJ(String(Q)))>0;case"semver_gte":return MH(MJ(String(W)),MJ(String(Q)))>=0;case"semver_lt":return MH(MJ(String(W)),MJ(String(Q)))<0;case"semver_lte":return MH(MJ(String(W)),MJ(String(Q)))<=0;case"semver_tilde":{let K=MJ(String(W)),{lower:V,upper:U}=GK5(String(Q));return MH(K,V)>=0&&MH(K,U)<0}case"semver_caret":{let K=MJ(String(W)),{lower:V,upper:U}=JK5(String(Q));return MH(K,V)>=0&&MH(K,U)<0}case"semver_wildcard":{let K=MJ(String(W)),{lower:V,upper:U}=QK5(String(Q));return MH(K,V)>=0&&MH(K,U)<0}default:throw new R5(`Unknown operator: ${Z}`)}}function XK5(Y,X){if(!(Y in X))throw new WO(`cohort ${Y} not found in local cohorts - likely a static cohort that requires server evaluation`)}function TE6(Y,X,G,J=!1){let Q=String(Y.value);XK5(Q,G);let Z=G[Q];return RE6(Z,X,G,J)}function RE6(Y,X,G,J=!1){if(!Y)return!0;let{type:Q,values:Z}=Y;if(!Z||Z.length===0)return!0;let W=!1;if("values"in Z[0]){for(let $ of Z)try{let H=RE6($,X,G,J);if(Q==="AND"){if(!H)return!1}else if(H)return!0}catch(H){if(H instanceof WO)throw H;if(H instanceof R5){if(J)console.debug(`Failed to compute property ${$} locally: ${H}`);W=!0}else throw H}if(W)throw new R5("Can't match cohort without a given cohort property value");return Q==="AND"}for(let $ of Z)try{let H;if($.type==="cohort")H=TE6($,X,G,J);else if($.type==="flag"){if(J)console.warn(`[FEATURE FLAGS] Flag dependency filters are not supported in local evaluation. Skipping condition with dependency on flag '${$.key||"unknown"}'`);continue}else H=PE6($,X);let K=$.negation||!1;if(Q==="AND"){if(!H&&!K)return!1;if(H&&K)return!1}else{if(H&&!K)return!0;if(!H&&K)return!0}}catch(H){if(H instanceof WO)throw H;if(H instanceof R5){if(J)console.debug(`Failed to compute property ${$} locally: ${H}`);W=!0}else throw H}if(W)throw new R5("can't match cohort without a given cohort property value");return Q==="AND"}function ME6(Y){try{return new RegExp(Y),!0}catch(X){return!1}}function MJ(Y){let G=String(Y).trim().replace(/^[vV]/,"").split("-")[0].split("+")[0];if(!G||G.startsWith("."))throw new R5(`Invalid semver: ${Y}`);let J=G.split("."),Q=(H)=>{if(H===void 0||H==="")return 0;if(!/^\d+$/.test(H))throw new R5(`Invalid semver: ${Y}`);return parseInt(H,10)},Z=Q(J[0]),W=Q(J[1]),$=Q(J[2]);return[Z,W,$]}function MH(Y,X){for(let G=0;G<3;G++){if(Y[G]<X[G])return-1;if(Y[G]>X[G])return 1}return 0}function GK5(Y){let X=MJ(Y),G=[X[0],X[1],X[2]],J=[X[0],X[1]+1,0];return{lower:G,upper:J}}function JK5(Y){let X=MJ(Y),[G,J,Q]=X,Z=[G,J,Q],W;return W=G>0?[G+1,0,0]:J>0?[0,J+1,0]:[0,0,Q+1],{lower:Z,upper:W}}function QK5(Y){let G=String(Y).trim().replace(/^[vV]/,"").replace(/\.\*$/,"").replace(/\*$/,"");if(!G)throw new R5(`Invalid wildcard semver: ${Y}`);let J=G.split("."),Q=parseInt(J[0],10);if(isNaN(Q))throw new R5(`Invalid wildcard semver: ${Y}`);let Z,W;if(J.length===1)Z=[Q,0,0],W=[Q+1,0,0];else{let $=parseInt(J[1],10);if(isNaN($))throw new R5(`Invalid wildcard semver: ${Y}`);Z=[Q,$,0],W=[Q,$+1,0]}return{lower:Z,upper:W}}function EE6(Y){if(Y instanceof Date)return Y;if(typeof Y=="string"||typeof Y=="number"){let X=new Date(Y);if(!isNaN(X.valueOf()))return X;throw new R5(`${Y} is in an invalid date format`)}throw new R5(`The date provided ${Y} must be a string, number, or date object`)}function WK5(Y){let X=/^-?(?<number>[0-9]+)(?<interval>[a-z])$/,G=Y.match(X),J=new Date(new Date().toISOString());if(!G)return null;{if(!G.groups)return null;let Q=parseInt(G.groups.number);if(Q>=1e4)return null;let Z=G.groups.interval;if(Z=="h")J.setUTCHours(J.getUTCHours()-Q);else if(Z=="d")J.setUTCDate(J.getUTCDate()-Q);else if(Z=="w")J.setUTCDate(J.getUTCDate()-7*Q);else if(Z=="m")J.setUTCMonth(J.getUTCMonth()-Q);else{if(Z!="y")return null;J.setUTCFullYear(J.getUTCFullYear()-Q)}return J}}var tH5=60000,eH5=1152921504606847000,YK5,ck,R5,WO;var CE6=w(()=>{GT();wE6();YK5=["is_not"];ck=class ck extends Error{constructor(Y){super();Error.captureStackTrace(this,this.constructor),this.name="ClientError",this.message=Y,Object.setPrototypeOf(this,ck.prototype)}};R5=class R5 extends Error{constructor(Y){super(Y);this.name=this.constructor.name,Error.captureStackTrace(this,this.constructor),Object.setPrototypeOf(this,R5.prototype)}};WO=class WO extends Error{constructor(Y){super(Y);this.name=this.constructor.name,Error.captureStackTrace(this,this.constructor),Object.setPrototypeOf(this,WO.prototype)}}});class Un1{getProperty(Y){return this._memoryStorage[Y]}setProperty(Y,X){this._memoryStorage[Y]=X!==null?X:void 0}constructor(){this._memoryStorage={}}}var SE6=()=>{};function VK5(Y){return typeof Y=="string"?Y.trim():""}function UK5(Y){return(typeof Y=="string"?Y.trim():"")||void 0}function OK5(Y){return(typeof Y=="string"?Y.trim():"")||FK5}var ZK5=100,jE6=30000,$K5=50000,HK5=50,KK5=500,FK5="https://us.i.posthog.com",On1;var IE6=w(()=>{LE6();GT();Fn1();CE6();B$1();SE6();On1=class On1 extends $$1{constructor(Y,X={}){let G=VK5(Y),J={...X,host:OK5(X.host),personalApiKey:UK5(X.personalApiKey)};if(super(G,J),this._memoryStorage=new Un1,this.options=J,this.context=this.initializeContext(),this.options.featureFlagsPollingInterval=typeof J.featureFlagsPollingInterval=="number"?Math.max(J.featureFlagsPollingInterval,ZK5):jE6,typeof J.waitUntilDebounceMs=="number")this.options.waitUntilDebounceMs=Math.max(J.waitUntilDebounceMs,0);if(typeof J.waitUntilMaxWaitMs=="number")this.options.waitUntilMaxWaitMs=Math.max(J.waitUntilMaxWaitMs,0);if(J.personalApiKey){if(J.personalApiKey.includes("phc_"))throw Error('Your Personal API key is invalid. These keys are prefixed with "phx_" and can be created in PostHog project settings.');if(J.enableLocalEvaluation!==!1)this.featureFlagsPoller=new Vn1({pollingInterval:this.options.featureFlagsPollingInterval,personalApiKey:J.personalApiKey,projectApiKey:G,timeout:J.requestTimeout??1e4,host:this.host,fetch:J.fetch,onError:(Z)=>{this._events.emit("error",Z)},onLoad:(Z)=>{this._events.emit("localEvaluationFlagsLoaded",Z)},customHeaders:this.getCustomHeaders(),cacheProvider:J.flagDefinitionCacheProvider,strictLocalEvaluation:J.strictLocalEvaluation})}this.errorTracking=new AH(this,J,this._logger),this.distinctIdHasSentFlagCalls={},this.maxCacheSize=J.maxCacheSize||$K5}enqueue(Y,X,G){super.enqueue(Y,X,G),this.scheduleDebouncedFlush()}async flush(){let Y=super.flush(),X=this.options.waitUntil;if(X&&!this._waitUntilCycle)try{X(Y.catch(()=>{}))}catch{}return Y}scheduleDebouncedFlush(){let Y=this.options.waitUntil;if(!Y)return;if(this.disabled||this.optedOut)return;if(!this._waitUntilCycle){let Z,W=new Promise(($)=>{Z=$});try{Y(W)}catch{return}this._waitUntilCycle={resolve:Z,startedAt:Date.now(),timer:void 0}}let X=Date.now()-this._waitUntilCycle.startedAt,G=this.options.waitUntilMaxWaitMs??KK5,J=X>=G;if(this._waitUntilCycle.timer!==void 0)clearTimeout(this._waitUntilCycle.timer);if(J)return void this.resolveWaitUntilFlush();let Q=this.options.waitUntilDebounceMs??HK5;this._waitUntilCycle.timer=Zq(()=>{this.resolveWaitUntilFlush()},Q)}_consumeWaitUntilCycle(){let Y=this._waitUntilCycle;if(Y)clearTimeout(Y.timer),this._waitUntilCycle=void 0;return Y?.resolve}async resolveWaitUntilFlush(){let Y=this._consumeWaitUntilCycle();try{await super.flush()}catch{}finally{Y?.()}}getPersistedProperty(Y){return this._memoryStorage.getProperty(Y)}setPersistedProperty(Y,X){return this._memoryStorage.setProperty(Y,X)}fetch(Y,X){return this.options.fetch?this.options.fetch(Y,X):fetch(Y,X)}getLibraryVersion(){return zE6}getCustomUserAgent(){return`${this.getLibraryId()}/${this.getLibraryVersion()}`}enable(){return super.optIn()}disable(){return super.optOut()}debug(Y=!0){super.debug(Y),this.featureFlagsPoller?.debug(Y)}capture(Y){if(typeof Y=="string")this._logger.warn("Called capture() with a string as the first argument when an object was expected.");if(Y.event==="$exception"&&!Y._originatedFromCaptureException)this._logger.warn("Using `posthog.capture('$exception')` is unreliable because it does not attach required metadata. Use `posthog.captureException(error)` instead, which attaches required metadata automatically.");this.addPendingPromise(this.prepareEventMessage(Y).then(({distinctId:X,event:G,properties:J,options:Q})=>super.captureStateless(X,G,J,{timestamp:Q.timestamp,disableGeoip:Q.disableGeoip,uuid:Q.uuid})).catch((X)=>{if(X)console.error(X)}))}async captureImmediate(Y){if(typeof Y=="string")this._logger.warn("Called captureImmediate() with a string as the first argument when an object was expected.");if(Y.event==="$exception"&&!Y._originatedFromCaptureException)this._logger.warn("Capturing a `$exception` event via `posthog.captureImmediate('$exception')` is unreliable because it does not attach required metadata. Use `posthog.captureExceptionImmediate(error)` instead, which attaches this metadata by default.");return this.addPendingPromise(this.prepareEventMessage(Y).then(({distinctId:X,event:G,properties:J,options:Q})=>super.captureStatelessImmediate(X,G,J,{timestamp:Q.timestamp,disableGeoip:Q.disableGeoip,uuid:Q.uuid})).catch((X)=>{if(X)console.error(X)}))}identify({distinctId:Y,properties:X={},disableGeoip:G}){let{$set:J,$set_once:Q,$anon_distinct_id:Z,...W}=X,K={$set:J||W,$set_once:Q||{},$anon_distinct_id:Z??void 0};super.identifyStateless(Y,K,{disableGeoip:G})}async identifyImmediate({distinctId:Y,properties:X={},disableGeoip:G}){let{$set:J,$set_once:Q,$anon_distinct_id:Z,...W}=X,K={$set:J||W,$set_once:Q||{},$anon_distinct_id:Z??void 0};super.identifyStatelessImmediate(Y,K,{disableGeoip:G})}alias(Y){super.aliasStateless(Y.alias,Y.distinctId,void 0,{disableGeoip:Y.disableGeoip})}async aliasImmediate(Y){await super.aliasStatelessImmediate(Y.alias,Y.distinctId,void 0,{disableGeoip:Y.disableGeoip})}isLocalEvaluationReady(){return this.featureFlagsPoller?.isLocalEvaluationReady()??!1}async waitForLocalEvaluationReady(Y=jE6){if(this.isLocalEvaluationReady())return!0;if(this.featureFlagsPoller===void 0)return!1;return new Promise((X)=>{let G=setTimeout(()=>{J(),X(!1)},Y),J=this._events.on("localEvaluationFlagsLoaded",(Q)=>{clearTimeout(G),J(),X(Q>0)})})}_resolveDistinctId(Y,X){if(typeof Y=="string")return{distinctId:Y,options:X};return{distinctId:this.context?.get()?.distinctId,options:Y}}async _getFeatureFlagResult(Y,X,G={},J){let Q=G.sendFeatureFlagEvents??!0;if(this._flagOverrides!==void 0&&Y in this._flagOverrides){let T=this._flagOverrides[Y];if(T===void 0)return;let j=this._payloadOverrides?.[Y];return{key:Y,enabled:T!==!1,variant:typeof T=="string"?T:void 0,payload:j}}let{groups:Z,disableGeoip:W}=G,{onlyEvaluateLocally:$,personProperties:H,groupProperties:K}=G,V=this.addLocalPersonAndGroupProperties(X,Z,H,K);H=V.allPersonProperties,K=V.allGroupProperties;let U=this.createFeatureFlagEvaluationContext(X,Z,H,K);if($==null)$=this.options.strictLocalEvaluation??!1;let O,B=!1,N,q,L,D,E,R;if(this.featureFlagsPoller!==void 0){await this.featureFlagsPoller?.loadFeatureFlags();let T=this.featureFlagsPoller?.featureFlagsByKey[Y];if(T)try{let j=await this.featureFlagsPoller?.computeFlagAndPayloadLocally(T,U,{matchValue:J});if(j){B=!0;let _=j.value;D=T.id,R="Evaluated locally",O={key:Y,enabled:_!==!1,variant:typeof _=="string"?_:void 0,payload:j.payload??void 0}}}catch(j){if(j instanceof WO||j instanceof R5)this._logger?.info(`${j.name} when computing flag locally: ${Y}: ${j.message}`);else throw j}}if(!B&&!$){let T=await super.getFeatureFlagDetailsStateless(U.distinctId,U.groups,U.personProperties,U.groupProperties,W,[Y]);if(T===void 0)L=Ai.UNKNOWN_ERROR;else{N=T.requestId,q=T.evaluatedAt;let j=[];if(T.errorsWhileComputingFlags)j.push(Ai.ERRORS_WHILE_COMPUTING);if(T.quotaLimited?.includes("feature_flags"))j.push(Ai.QUOTA_LIMITED);let _=T.flags[Y];if(_===void 0)j.push(Ai.FLAG_MISSING);else{D=_.metadata?.id,E=_.metadata?.version,R=_.reason?.description??_.reason?.code;let k;if(_.metadata?.payload!==void 0)try{k=JSON.parse(_.metadata.payload)}catch{k=_.metadata.payload}O={key:Y,enabled:_.enabled,variant:_.variant,payload:k}}if(j.length>0)L=j.join(",")}}if(Q){let T=O===void 0?void 0:O.enabled===!1?!1:O.variant??!0,j=`${Y}_${T}`;if(!(X in this.distinctIdHasSentFlagCalls)||!this.distinctIdHasSentFlagCalls[X].includes(j)){if(Object.keys(this.distinctIdHasSentFlagCalls).length>=this.maxCacheSize)this.distinctIdHasSentFlagCalls={};if(Array.isArray(this.distinctIdHasSentFlagCalls[X]))this.distinctIdHasSentFlagCalls[X].push(j);else this.distinctIdHasSentFlagCalls[X]=[j];let _={$feature_flag:Y,$feature_flag_response:T,$feature_flag_id:D,$feature_flag_version:E,$feature_flag_reason:R,locally_evaluated:B,[`$feature/${Y}`]:T,$feature_flag_request_id:N,$feature_flag_evaluated_at:B?Date.now():q};if(B&&this.featureFlagsPoller){let k=this.featureFlagsPoller.getFlagDefinitionsLoadedAt();if(k!==void 0)_.$feature_flag_definitions_loaded_at=k}if(L)_.$feature_flag_error=L;this.capture({distinctId:X,event:"$feature_flag_called",properties:_,groups:Z,disableGeoip:W})}}if(O!==void 0&&this._payloadOverrides!==void 0&&Y in this._payloadOverrides)O={...O,payload:this._payloadOverrides[Y]};return O}async getFeatureFlag(Y,X,G){let J=await this._getFeatureFlagResult(Y,X,{...G,sendFeatureFlagEvents:G?.sendFeatureFlagEvents??this.options.sendFeatureFlagEvent??!0});if(J===void 0)return;if(J.enabled===!1)return!1;return J.variant??!0}async getFeatureFlagPayload(Y,X,G,J){if(this._payloadOverrides!==void 0&&Y in this._payloadOverrides)return this._payloadOverrides[Y];let Q=await this._getFeatureFlagResult(Y,X,{...J,sendFeatureFlagEvents:!1},G);if(Q===void 0)return;return Q.payload??null}async getFeatureFlagResult(Y,X,G){let{distinctId:J,options:Q}=this._resolveDistinctId(X,G);if(!J)return void this._logger.warn("[PostHog] distinctId is required \u2014 pass it explicitly or use withContext()");return this._getFeatureFlagResult(Y,J,{...Q,sendFeatureFlagEvents:Q?.sendFeatureFlagEvents??this.options.sendFeatureFlagEvent??!0})}async getRemoteConfigPayload(Y){if(!this.options.personalApiKey)throw Error("Personal API key is required for remote config payload decryption");let X=await this._requestRemoteConfigPayload(Y);if(!X)return;let G=await X.json();if(typeof G=="string")try{return JSON.parse(G)}catch(J){}return G}async isFeatureEnabled(Y,X,G){let J=await this.getFeatureFlag(Y,X,G);if(J===void 0)return;return!!J||!1}async getAllFlags(Y,X){let{distinctId:G,options:J}=this._resolveDistinctId(Y,X);if(!G)return this._logger.warn("[PostHog] distinctId is required to get feature flags \u2014 pass it explicitly or use withContext()"),{};return(await this.getAllFlagsAndPayloads(G,J)).featureFlags||{}}async getAllFlagsAndPayloads(Y,X){let{distinctId:G,options:J}=this._resolveDistinctId(Y,X);if(!G)return this._logger.warn("[PostHog] distinctId is required to get feature flags and payloads \u2014 pass it explicitly or use withContext()"),{featureFlags:{},featureFlagPayloads:{}};let{groups:Q,disableGeoip:Z,flagKeys:W}=J||{},{onlyEvaluateLocally:$,personProperties:H,groupProperties:K}=J||{},V=this.addLocalPersonAndGroupProperties(G,Q,H,K);H=V.allPersonProperties,K=V.allGroupProperties;let U=this.createFeatureFlagEvaluationContext(G,Q,H,K);if($==null)$=this.options.strictLocalEvaluation??!1;let O=await this.featureFlagsPoller?.getAllFlagsAndPayloads(U,W),B={},N={},q=!0;if(O)B=O.response,N=O.payloads,q=O.fallbackToFlags;if(q&&!$){let L=await super.getFeatureFlagsAndPayloadsStateless(U.distinctId,U.groups,U.personProperties,U.groupProperties,Z,W);B={...B,...L.flags||{}},N={...N,...L.payloads||{}}}if(this._flagOverrides!==void 0)B={...B,...this._flagOverrides};if(this._payloadOverrides!==void 0)N={...N,...this._payloadOverrides};return{featureFlags:B,featureFlagPayloads:N}}groupIdentify({groupType:Y,groupKey:X,properties:G,distinctId:J,disableGeoip:Q}){super.groupIdentifyStateless(Y,X,G,{disableGeoip:Q},J)}async reloadFeatureFlags(){await this.featureFlagsPoller?.loadFeatureFlags(!0)}overrideFeatureFlags(Y){let X=(G)=>Object.fromEntries(G.map((J)=>[J,!0]));if(Y===!1){this._flagOverrides=void 0,this._payloadOverrides=void 0;return}if(Array.isArray(Y)){this._flagOverrides=X(Y);return}if(this._isFeatureFlagOverrideOptions(Y)){if("flags"in Y){if(Y.flags===!1)this._flagOverrides=void 0;else if(Array.isArray(Y.flags))this._flagOverrides=X(Y.flags);else if(Y.flags!==void 0)this._flagOverrides={...Y.flags}}if("payloads"in Y){if(Y.payloads===!1)this._payloadOverrides=void 0;else if(Y.payloads!==void 0)this._payloadOverrides={...Y.payloads}}return}this._flagOverrides={...Y}}_isFeatureFlagOverrideOptions(Y){if(typeof Y!="object"||Y===null||Array.isArray(Y))return!1;let X=Y;if("flags"in X){let G=X.flags;if(G===!1||Array.isArray(G)||typeof G=="object"&&G!==null)return!0}if("payloads"in X){let G=X.payloads;if(G===!1||typeof G=="object"&&G!==null)return!0}return!1}withContext(Y,X,G){if(!this.context)return X();return this.context.run(Y,X,G)}getContext(){return this.context?.get()}enterContext(Y,X){this.context?.enter(Y,X)}async _shutdown(Y){let X=this._consumeWaitUntilCycle();await this.featureFlagsPoller?.stopPoller(Y),this.errorTracking.shutdown();try{return await super._shutdown(Y)}finally{X?.()}}async _requestRemoteConfigPayload(Y){if(!this.options.personalApiKey)return;let X=`${this.host}/api/projects/@current/feature_flags/${Y}/remote_config?token=${encodeURIComponent(this.apiKey)}`,G={method:"GET",headers:{...this.getCustomHeaders(),"Content-Type":"application/json",Authorization:`Bearer ${this.options.personalApiKey}`}},J=null;if(this.options.requestTimeout&&typeof this.options.requestTimeout=="number"){let Q=new AbortController;J=Zq(()=>{Q.abort()},this.options.requestTimeout),G.signal=Q.signal}try{return await this.fetch(X,G)}catch(Q){this._events.emit("error",Q);return}finally{if(J)clearTimeout(J)}}extractPropertiesFromEvent(Y,X){if(!Y)return{personProperties:{},groupProperties:{}};let G={},J={};for(let[Q,Z]of Object.entries(Y))if(lA6(Z)&&X&&Q in X){let W={};for(let[$,H]of Object.entries(Z))W[String($)]=String(H);J[String(Q)]=W}else G[String(Q)]=String(Z);return{personProperties:G,groupProperties:J}}async getFeatureFlagsForEvent(Y,X,G,J){let Q=J?.personProperties||{},Z=J?.groupProperties||{},W=J?.flagKeys;if(J?.onlyEvaluateLocally??this.options.strictLocalEvaluation??!1)if(!((this.featureFlagsPoller?.featureFlags?.length||0)>0))return{};else{let H={};for(let[K,V]of Object.entries(X||{}))H[K]=String(V);return await this.getAllFlags(Y,{groups:H,personProperties:Q,groupProperties:Z,disableGeoip:G,onlyEvaluateLocally:!0,flagKeys:W})}if((this.featureFlagsPoller?.featureFlags?.length||0)>0){let H={};for(let[K,V]of Object.entries(X||{}))H[K]=String(V);return await this.getAllFlags(Y,{groups:H,personProperties:Q,groupProperties:Z,disableGeoip:G,onlyEvaluateLocally:!0,flagKeys:W})}return(await super.getFeatureFlagsStateless(Y,X,Q,Z,G)).flags}addLocalPersonAndGroupProperties(Y,X,G,J){let Q={distinct_id:Y,...G||{}},Z={};if(X)for(let W of Object.keys(X))Z[W]={$group_key:X[W],...J?.[W]||{}};return{allPersonProperties:Q,allGroupProperties:Z}}createFeatureFlagEvaluationContext(Y,X,G,J){return{distinctId:Y,groups:X||{},personProperties:G||{},groupProperties:J||{},evaluationCache:{}}}captureException(Y,X,G,J){if(!AH.isPreviouslyCapturedError(Y)){let Q=Error("PostHog syntheticException");this.addPendingPromise(AH.buildEventMessage(Y,{syntheticException:Q},X,G).then((Z)=>this.capture({...Z,uuid:J})))}}async captureExceptionImmediate(Y,X,G){if(!AH.isPreviouslyCapturedError(Y)){let J=Error("PostHog syntheticException");return this.addPendingPromise(AH.buildEventMessage(Y,{syntheticException:J},X,G).then((Q)=>this.captureImmediate(Q)))}}async prepareEventMessage(Y){let{distinctId:X,event:G,properties:J,groups:Q,sendFeatureFlags:Z,timestamp:W,disableGeoip:$,uuid:H}=Y,K=this.context?.get(),V=X||K?.distinctId,U={...this.props,...K?.properties||{},...J||{}};if(!V)V=Vw(),U.$process_person_profile=!1;if(K?.sessionId&&!U.$session_id)U.$session_id=K.sessionId;let O=this._runBeforeSend({distinctId:V,event:G,properties:U,groups:Q,sendFeatureFlags:Z,timestamp:W,disableGeoip:$,uuid:H});if(!O)return Promise.reject(null);let B=await Promise.resolve().then(async()=>{if(Z){let N=typeof Z=="object"?Z:void 0;return await this.getFeatureFlagsForEvent(O.distinctId,Q,$,N)}return O.event,{}}).then((N)=>{let q={};if(N)for(let[D,E]of Object.entries(N))q[`$feature/${D}`]=E;let L=Object.keys(N||{}).filter((D)=>N?.[D]!==!1).sort();if(L.length>0)q.$active_feature_flags=L;return q}).catch(()=>({})).then((N)=>{return{...N,...O.properties||{},$groups:O.groups||Q}});if(O.event==="$pageview"&&this.options.__preview_capture_bot_pageviews&&typeof B.$raw_user_agent=="string"){if(bA6(B.$raw_user_agent,this.options.custom_blocked_useragents||[]))O.event="$bot_pageview",B.$browser_type="bot"}return{distinctId:O.distinctId,event:O.event,properties:B,options:{timestamp:O.timestamp,disableGeoip:O.disableGeoip,uuid:O.uuid}}}_runBeforeSend(Y){let X=this.options.before_send;if(!X)return Y;let G=Array.isArray(X)?X:[X],J=Y;for(let Q of G){if(J=Q(J),!J)return this._logger.info(`Event '${Y.event}' was rejected in beforeSend function`),null;if(!J.properties||Object.keys(J.properties).length===0){let Z=`Event '${J.event}' has no properties after beforeSend function, this is likely an error.`;this._logger.warn(Z)}}return J}}});import{AsyncLocalStorage as BK5}from"async_hooks";class Bn1{constructor(){this.storage=new BK5}get(){return this.storage.getStore()}run(Y,X,G){return this.storage.run(this.resolve(Y,G),X)}enter(Y,X){this.storage.enterWith(this.resolve(Y,X))}resolve(Y,X){if(X?.fresh===!0)return Y;let G=this.get()||{};return{distinctId:Y.distinctId??G.distinctId,sessionId:Y.sessionId??G.sessionId,properties:{...G.properties||{},...Y.properties||{}}}}}var _E6=()=>{};function NK5(Y,{organization:X,projectId:G,prefix:J,severityAllowList:Q=["error"],sendExceptionsToPostHog:Z=!0}={}){return(W)=>{if(!(Q==="*"||Q.includes(W.level)))return W;if(!W.tags)W.tags={};let H=W.tags[fE6.POSTHOG_ID_TAG];if(H===void 0)return W;let K=Y.options.host??"https://us.i.posthog.com",V=new URL(`/project/${Y.apiKey}/person/${H}`,K).toString();W.tags["PostHog Person URL"]=V;let U=W.exception?.values||[],O=U.map((N)=>({...N,stacktrace:N.stacktrace?{...N.stacktrace,type:"raw",frames:(N.stacktrace.frames||[]).map((q)=>({...q,platform:"node:javascript"}))}:void 0})),B={$exception_message:U[0]?.value||W.message,$exception_type:U[0]?.type,$exception_level:W.level,$exception_list:O,$sentry_event_id:W.event_id,$sentry_exception:W.exception,$sentry_exception_message:U[0]?.value||W.message,$sentry_exception_type:U[0]?.type,$sentry_tags:W.tags};if(X&&G)B.$sentry_url=(J||"https://sentry.io/organizations/")+X+"/issues/?project="+G+"&query="+W.event_id;if(Z)Y.capture({event:"$exception",distinctId:H,properties:B});return W}}var fE6;var kE6=w(()=>{fE6=class fE6{static#Y=this.POSTHOG_ID_TAG="posthog_distinct_id";constructor(Y,X,G,J,Q){this.name="posthog-node",this.name="posthog-node",this.setupOnce=function(Z,W){let $=W()?.getClient()?.getDsn()?.projectId;Z(NK5(Y,{organization:X,projectId:$,prefix:G,severityAllowList:J,sendExceptionsToPostHog:Q??!0}))}}}});var vE6=w(()=>{B$1()});var hE6=w(()=>{GT();kE6();vE6();Fn1()});var Nn1;var yE6=w(()=>{kA6();VE6();OE6();B$1();IE6();GT();_E6();hE6();AH.errorPropertiesBuilder=new bW.ErrorPropertiesBuilder([new bW.EventCoercer,new bW.ErrorCoercer,new bW.ObjectCoercer,new bW.StringCoercer,new bW.PrimitiveCoercer],bW.createStackParser("node:javascript",bW.nodeStackLineParser),[fA6(),HE6,UE6()]);Nn1=class Nn1 extends On1{getLibraryId(){return"posthog-node"}initializeContext(){return new Bn1}}});function qK5(){return{capture:()=>{},identify:()=>{},captureException:()=>{},groupIdentify:()=>{},shutdown:async()=>{}}}var qn1,bE6,z4;var LY=w(()=>{yE6();qn1=process.env.POSTHOG_KEY,bE6=process.env.POSTHOG_HOST;z4=qn1?new Nn1(qn1,{...bE6?{host:bE6}:{},enableExceptionAutocapture:!0,flushAt:1,flushInterval:0}):qK5();if(qn1){let Y=()=>{z4.shutdown().catch(()=>{})};process.on("SIGTERM",Y),process.on("SIGINT",Y)}});function iZ(){let Y=j6();if(Y.baseUrl)return Y.baseUrl;return`http://localhost:${Y.port??3000}`}function Mi(){return`http://localhost:${j6().port??3000}`}var $q=w(()=>{E9()});var xE6=w(()=>{W2()});function uE6(Y){return{organizationId:Y.organization_id,domain:Y.domain,autoJoinEnabled:Y.auto_join_enabled,createdAt:Y.created_at,updatedAt:Y.updated_at}}class Hq{db;constructor(Y){this.db=Y}async getByDomain(Y){let X=await this.db.selectFrom("organization_domains").selectAll().where("domain","=",Y.toLowerCase()).executeTakeFirst();return X?uE6(X):null}async getByOrganizationId(Y){let X=await this.db.selectFrom("organization_domains").selectAll().where("organization_id","=",Y).executeTakeFirst();return X?uE6(X):null}async setDomain(Y,X,G=!1){let J=new Date().toISOString(),Q=X.toLowerCase();try{await this.db.insertInto("organization_domains").values({organization_id:Y,domain:Q,auto_join_enabled:G,created_at:J,updated_at:J}).onConflict((W)=>W.column("organization_id").doUpdateSet({domain:Q,auto_join_enabled:G,updated_at:J})).execute()}catch(W){if(W.code==="23505")throw Error(`Domain "${Q}" is already claimed by another organization.`);throw W}let Z=await this.getByOrganizationId(Y);if(!Z)throw Error("Failed to set domain");return Z}async updateAutoJoin(Y,X){let G=new Date().toISOString();await this.db.updateTable("organization_domains").set({auto_join_enabled:X,updated_at:G}).where("organization_id","=",Y).execute();let J=await this.getByOrganizationId(Y);if(!J)throw Error("No domain found for organization");return J}async clearDomain(Y){await this.db.deleteFrom("organization_domains").where("organization_id","=",Y).execute()}}class zn1{apiKey;constructor(Y){this.apiKey=Y}async sendEmail({to:Y,from:X,subject:G,html:J}){let Q=await fetch("https://api.resend.com/emails",{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${this.apiKey}`},body:JSON.stringify({to:Y,from:X,subject:G,html:J})});if(!Q.ok)throw Error(`Failed to send email: ${Q.statusText}`)}}class Ln1{apiKey;constructor(Y){this.apiKey=Y}async sendEmail({to:Y,from:X,subject:G,html:J}){let Q=await fetch("https://api.sendgrid.com/v3/mail/send",{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${this.apiKey}`},body:JSON.stringify({personalizations:[{to:[{email:Y}]}],from:{email:X},subject:G,content:[{type:"text/html",value:J}]})});if(!Q.ok){let Z=await Q.text();throw Error(`Failed to send email via SendGrid: ${Q.statusText} - ${Z}`)}}}function JT(Y){let X=DK5[Y.provider];if(!X)throw Error(`Unknown email provider: ${Y.provider}`);return X(Y)}function QT(Y,X){return Y.find((G)=>G.id===X)}var zK5=(Y)=>{let X=new zn1(Y.config.apiKey);return async({to:G,subject:J,html:Q})=>{await X.sendEmail({to:G,from:Y.config.fromEmail,subject:J,html:Q})}},LK5=(Y)=>{let X=new Ln1(Y.config.apiKey);return async({to:G,subject:J,html:Q})=>{await X.sendEmail({to:G,from:Y.config.fromEmail,subject:J,html:Q})}},DK5;var N$1=w(()=>{DK5={resend:zK5,sendgrid:LK5}});function WT({preheader:Y="",heading:X,subheading:G,body:J,footnote:Q}){return`<!DOCTYPE html>
1641
1641
  <html lang="en">
1642
1642
  <head>