decocms 4.217.11 → 4.217.13
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.
- package/dist/client/assets/{AlertCircle-CLKC9WVw.js → AlertCircle-0OUPWUNo.js} +1 -1
- package/dist/client/assets/{AreaChart-DKDsmhGq.js → AreaChart-BKcNvqGV.js} +1 -1
- package/dist/client/assets/{ArrowLeft-BQcTc5G0.js → ArrowLeft-CcZIvmNQ.js} +1 -1
- package/dist/client/assets/{ArrowUp-DNKXirfj.js → ArrowUp-CNifCRwW.js} +1 -1
- package/dist/client/assets/{ArrowUpRight-DyCER66a.js → ArrowUpRight-CHr_jXVV.js} +1 -1
- package/dist/client/assets/{Check-6wRdnvmg.js → Check-YqNpUnjS.js} +1 -1
- package/dist/client/assets/{CheckCircle-BsdSKGdd.js → CheckCircle-HA9HSubF.js} +1 -1
- package/dist/client/assets/{ChevronDown-3OCKmuhr.js → ChevronDown-BX2HgupK.js} +1 -1
- package/dist/client/assets/{ChevronRight-D6x0Q8Wo.js → ChevronRight-kdKaq9Ii.js} +1 -1
- package/dist/client/assets/{ChevronUp-B7WPWqF7.js → ChevronUp-J2R9ILOH.js} +1 -1
- package/dist/client/assets/{Copy01-VZLYfpIo.js → Copy01-Bm8H5mLb.js} +1 -1
- package/dist/client/assets/{CpuChip01-B5VL-Vp6.js → CpuChip01-DgkecjAs.js} +1 -1
- package/dist/client/assets/{CreditCard01-CCHTs-lJ.js → CreditCard01-f8B5Wkqh.js} +1 -1
- package/dist/client/assets/{DotsVertical-BWpqVlF8.js → DotsVertical-Cz5ElmDn.js} +1 -1
- package/dist/client/assets/{Eye-elQHdcKU.js → Eye-CaOR6o-h.js} +1 -1
- package/dist/client/assets/{FilterLines-mn6oZyQ0.js → FilterLines-CU3G94q8.js} +1 -1
- package/dist/client/assets/{Globe01-rxsdlGp9.js → Globe01-BAit6vQe.js} +1 -1
- package/dist/client/assets/{Globe04-DlM_fq7g.js → Globe04-DOMcqhEH.js} +1 -1
- package/dist/client/assets/{HardDrive-SM_p_RRT.js → HardDrive-CGleOs63.js} +1 -1
- package/dist/client/assets/{Key01-BZLU8uQj.js → Key01-DE0cHxdc.js} +1 -1
- package/dist/client/assets/{LayoutLeft-rE2Y6udM.js → LayoutLeft-B3Xq6Q9F.js} +1 -1
- package/dist/client/assets/{LinkExternal01-LcAUVToS.js → LinkExternal01-CtVhb7np.js} +1 -1
- package/dist/client/assets/{LogOut01-CnKh055I.js → LogOut01-pEbmO0Np.js} +1 -1
- package/dist/client/assets/{Monitor01-DAGmas4w.js → Monitor01-DDxK-vql.js} +1 -1
- package/dist/client/assets/{Palette-CY3LNAii.js → Palette-BdM6u7AM.js} +1 -1
- package/dist/client/assets/{Play-C49Wxoo1.js → Play-IbqcJdN3.js} +1 -1
- package/dist/client/assets/{Plus-D4BGL9Zw.js → Plus-BXW-bLkv.js} +1 -1
- package/dist/client/assets/{SearchLg-BLTW1w0_.js → SearchLg-L_ta90AC.js} +1 -1
- package/dist/client/assets/{SearchMd-MppUFc7q.js → SearchMd-B1jAF5PX.js} +1 -1
- package/dist/client/assets/{Settings02-Dqilgo49.js → Settings02-D8A1C3JO.js} +1 -1
- package/dist/client/assets/{Share07-DT3y4lRD.js → Share07-BVdvoyk4.js} +1 -1
- package/dist/client/assets/{Shield01-D2fE4v3n.js → Shield01-D2H3k2fO.js} +1 -1
- package/dist/client/assets/{Star01-BIpWXdR9.js → Star01-Dk3FFpxM.js} +1 -1
- package/dist/client/assets/{Stars01-BRzZFFoV.js → Stars01-ndnSTODt.js} +1 -1
- package/dist/client/assets/{Stars02-HylfoUF2.js → Stars02-D49Mvriv.js} +1 -1
- package/dist/client/assets/{Sun-DrQucKuP.js → Sun-BZWpsJUV.js} +1 -1
- package/dist/client/assets/{SwitchHorizontal01-CuznIteB.js → SwitchHorizontal01-B0vjSREj.js} +1 -1
- package/dist/client/assets/{Tool01-ueZe84Y1.js → Tool01-BK3Hfpvm.js} +1 -1
- package/dist/client/assets/{Tool02-BJcwiaUe.js → Tool02-gKszIrtU.js} +1 -1
- package/dist/client/assets/{Trash01-DWpMR0bM.js → Trash01-BSXuR-v0.js} +1 -1
- package/dist/client/assets/{TrendUp01-Cg0dy2HC.js → TrendUp01-D4y32I70.js} +1 -1
- package/dist/client/assets/{Upload01-BXop9Bpb.js → Upload01-nh4tHrH4.js} +1 -1
- package/dist/client/assets/{User01-D6JvkY4H.js → User01-XKHS0Yi2.js} +1 -1
- package/dist/client/assets/{Users01-Cyt0z3PM.js → Users01-tFQvWfNL.js} +1 -1
- package/dist/client/assets/{Users03-BaSjPnfu.js → Users03-DEaDNrbw.js} +1 -1
- package/dist/client/assets/{X-Dy6laQ7n.js → X-B1FpD19v.js} +1 -1
- package/dist/client/assets/{XCircle-BVeqng4K.js → XCircle-CT6qobjT.js} +1 -1
- package/dist/client/assets/{XClose-CeJnFQxy.js → XClose-CnW8TKsr.js} +1 -1
- package/dist/client/assets/{Zap-B2UiqUT8.js → Zap-CAz1ejRf.js} +1 -1
- package/dist/client/assets/{ZapSquare-DC08T_P_.js → ZapSquare-C7FTkjlS.js} +1 -1
- package/dist/client/assets/{access-gate-BvC7K8Sy.js → access-gate-BUqNYnUF.js} +1 -1
- package/dist/client/assets/{agent-icon-CElZ8Mt8.js → agent-icon-ivyach6Y.js} +1 -1
- package/dist/client/assets/{agents-list-Ds0lLA2l.js → agents-list-BD8HMFlr.js} +1 -1
- package/dist/client/assets/{ai-providers-SRgnFli7.js → ai-providers-CLkRw_xJ.js} +1 -1
- package/dist/client/assets/{alert-FuB9YF85.js → alert-JiyNNqe_.js} +1 -1
- package/dist/client/assets/{alert-dialog-D97HIfhk.js → alert-dialog-BtRTtbG0.js} +1 -1
- package/dist/client/assets/{api-keys-0C3SvW3P.js → api-keys-DpqcfGrn.js} +1 -1
- package/dist/client/assets/{app-editor-Dqo7qiSv.js → app-editor-BUsapCBQ.js} +1 -1
- package/dist/client/assets/{auth-CtXvGbkI.js → auth-BxRabvv-.js} +1 -1
- package/dist/client/assets/{auth-catchall-CO1FzRTP.js → auth-catchall-Cs7ipMDJ.js} +1 -1
- package/dist/client/assets/{auth-entry-C-rQqWMk.js → auth-entry-Db5e2aY_.js} +1 -1
- package/dist/client/assets/{auth-split-layout-CSe4cntC.js → auth-split-layout-Du-8m3RM.js} +1 -1
- package/dist/client/assets/{authenticate-and-persist-oauth-zzM-3K66.js → authenticate-and-persist-oauth-DH2xTiqE.js} +1 -1
- package/dist/client/assets/{automation-list-row-BR6akMQw.js → automation-list-row-D0gz_UHt.js} +1 -1
- package/dist/client/assets/{automation-runs-DLsLR7n4.js → automation-runs-B9PPWxz2.js} +1 -1
- package/dist/client/assets/{automations-BKXCfzJi.js → automations-B77Ef8pJ.js} +1 -1
- package/dist/client/assets/{avatar-D3NHRuut.js → avatar-BxOwauBx.js} +1 -1
- package/dist/client/assets/{badge-3WCpYeh8.js → badge-YeCL-pM6.js} +1 -1
- package/dist/client/assets/{billing-Bh7DdgO2.js → billing-LBD_HGMi.js} +1 -1
- package/dist/client/assets/{block-document-C5lXcQyg.js → block-document-Dwn6SQky.js} +1 -1
- package/dist/client/assets/{brand-context-Mqs7vkJ1.js → brand-context-B5zJkNnY.js} +1 -1
- package/dist/client/assets/{buckets-BUfVHHyh.js → buckets-BnUKsEzp.js} +1 -1
- package/dist/client/assets/{bulk-category-panel-DvQdS9Te.js → bulk-category-panel-DTyd9WI7.js} +1 -1
- package/dist/client/assets/{capability-load-error---anN8Fj.js → capability-load-error-Bl4HXrb5.js} +1 -1
- package/dist/client/assets/{card-Bu7O_YOS.js → card-BgLseUz9.js} +1 -1
- package/dist/client/assets/{cards-CgK5ojmu.js → cards-nVim6xBl.js} +1 -1
- package/dist/client/assets/{category-editor-CS1ocucY.js → category-editor-DsDVl13L.js} +1 -1
- package/dist/client/assets/{chat-context-DhZ4G6Pi.js → chat-context-DtiyxjXg.js} +1 -1
- package/dist/client/assets/{checkbox-CwyyDgl9.js → checkbox-DtxWa1Lp.js} +1 -1
- package/dist/client/assets/{cli-auth-success-CXtLemOZ.js → cli-auth-success-D7_d7B6d.js} +1 -1
- package/dist/client/assets/{collection-detail-BPSO4byF.js → collection-detail-BsnNHZuj.js} +1 -1
- package/dist/client/assets/{collection-display-button-BxrERoYY.js → collection-display-button-o9rgPX4h.js} +1 -1
- package/dist/client/assets/{collection-search-Cz0xbYnt.js → collection-search-C5R8jkCo.js} +1 -1
- package/dist/client/assets/{collection-table-wrapper-DWs0sVk_.js → collection-table-wrapper-prfaJL6p.js} +1 -1
- package/dist/client/assets/{collection-tabs-GwO5W8VL.js → collection-tabs-CCbVGHLG.js} +1 -1
- package/dist/client/assets/{command-DKBgNtxI.js → command-BweZE9r1.js} +1 -1
- package/dist/client/assets/{commerce-onboarding-6I7lcLMs.js → commerce-onboarding-D86hui_V.js} +1 -1
- package/dist/client/assets/{connect-BWp2pbeS.js → connect-C9Mordhu.js} +1 -1
- package/dist/client/assets/{connection-C_KJvi8p.js → connection-BHMqqEr8.js} +1 -1
- package/dist/client/assets/{connection-card-BQL6r2Wp.js → connection-card-B7NQUqWh.js} +1 -1
- package/dist/client/assets/{connection-detail-CeNM4y3E.js → connection-detail-BRAl0ckH.js} +1 -1
- package/dist/client/assets/{connection-form-helpers-CQB9Iu4A.js → connection-form-helpers-ZRhzxhfS.js} +1 -1
- package/dist/client/assets/{connections-Cj7hJn1Y.js → connections-DpqEid10.js} +1 -1
- package/dist/client/assets/{decopilot-sse-pool-H3zBF109.js → decopilot-sse-pool-BwUtRq_o.js} +1 -1
- package/dist/client/assets/{dialog-n8jfF5k5.js → dialog-DsCqITds.js} +1 -1
- package/dist/client/assets/{domain-settings-DatO0dZe.js → domain-settings-D-pog2VX.js} +1 -1
- package/dist/client/assets/{drawer-BfzyPj81.js → drawer-CWuptb6-.js} +1 -1
- package/dist/client/assets/{dropdown-menu-C2N24feG.js → dropdown-menu-CkysSdXs.js} +1 -1
- package/dist/client/assets/{empty-state-Bfwx0bh2.js → empty-state-HwZPqFUt.js} +1 -1
- package/dist/client/assets/{extract-connection-data-Bu5mCFyU.js → extract-connection-data-XyQY0B73.js} +1 -1
- package/dist/client/assets/{file-explorer-wyMDLDmo.js → file-explorer-BYizn1JB.js} +1 -1
- package/dist/client/assets/{file-type-icon-BiTqhbL0.js → file-type-icon-Cqwaa-8d.js} +1 -1
- package/dist/client/assets/{form-DOkLhjdt.js → form-C5LT36jD.js} +1 -1
- package/dist/client/assets/{general-BtyHcG76.js → general-jy9ogNyA.js} +1 -1
- package/dist/client/assets/{github-repo-picker-C_jqO6fn.js → github-repo-picker-UNa4kaK1.js} +1 -1
- package/dist/client/assets/{hooks-flPBwBkR.js → hooks-DoEly3LT.js} +1 -1
- package/dist/client/assets/{index-BM9ee0l2.js → index-6TRi0uef.js} +1 -1
- package/dist/client/assets/{index-VBq4UW-k.js → index-B6bkuuby.js} +1 -1
- package/dist/client/assets/{index-CJ6s13h0.js → index-BQO3LZFM.js} +1 -1
- package/dist/client/assets/{index-jIfyv4GV.js → index-CD1X_eW5.js} +1 -1
- package/dist/client/assets/{index-CiVr7zhH.js → index-Cb7hCoS-.js} +1 -1
- package/dist/client/assets/{index-DXPFePIE.js → index-CxV3B-5l.js} +4 -4
- package/dist/client/assets/{index-qWitIvPz.js → index-DC1l1OL-.js} +1 -1
- package/dist/client/assets/{index-CvjGHOkk.js → index-HWhUkMVs.js} +3 -3
- package/dist/client/assets/{index-redirect-BNSOVYFM.js → index-redirect-BoS6Qpc-.js} +1 -1
- package/dist/client/assets/{index-DV-ZFBe5.js → index-uoMzVpNH.js} +1 -1
- package/dist/client/assets/{index-D3CncSa6.js → index-wqhKYY5M.js} +1 -1
- package/dist/client/assets/{input-B92o9tkI.js → input-CDxc4QX0.js} +1 -1
- package/dist/client/assets/{integration-icon-BVPGHR0e.js → integration-icon-CtS0uJhZ.js} +1 -1
- package/dist/client/assets/{invite-member-dialog-BOH0MRpI.js → invite-member-dialog-vJbHGv59.js} +1 -1
- package/dist/client/assets/{label-DSusn5mW.js → label-CZbP70z-.js} +1 -1
- package/dist/client/assets/{layout-B4B-TfRU.js → layout-DqMTePyh.js} +1 -1
- package/dist/client/assets/{login-BRxZxHlx.js → login-Cajnb4aP.js} +1 -1
- package/dist/client/assets/{mcp-oauth-Wyln-p4g.js → mcp-oauth-DKoInR_S.js} +1 -1
- package/dist/client/assets/{members-BXTneek6.js → members-SjX1OUIT.js} +1 -1
- package/dist/client/assets/{monaco-editor-BG9IrEPb.js → monaco-editor-8vQ4bsg1.js} +1 -1
- package/dist/client/assets/{monitoring-stats-row-D1X-Rieo.js → monitoring-stats-row-DCubd6zO.js} +1 -1
- package/dist/client/assets/{multi-select-BzNsk3KA.js → multi-select-CP76ESrQ.js} +1 -1
- package/dist/client/assets/{oauth-callback-C1XCiOtk.js → oauth-callback-BRJVac2a.js} +1 -1
- package/dist/client/assets/{oauth-callback-ai-provider-BxxStz_2.js → oauth-callback-ai-provider-DwlNDTj-.js} +1 -1
- package/dist/client/assets/{onboarding-D-0gMKf0.js → onboarding-DN4soHuD.js} +1 -1
- package/dist/client/assets/{org-layout-BsUS_qJN.js → org-layout-7FmNBUHk.js} +1 -1
- package/dist/client/assets/{organization-choice-BRlGQyuw.js → organization-choice-DditNfue.js} +1 -1
- package/dist/client/assets/{orgs-BxM-NjQQ.js → orgs-C8FbFzrk.js} +1 -1
- package/dist/client/assets/{page-seo-form-Cr1fTH9W.js → page-seo-form-q36UjJko.js} +1 -1
- package/dist/client/assets/{popover-CFDgykDS.js → popover-CnbRVVJ4.js} +1 -1
- package/dist/client/assets/{post-editor-BAWTdpWD.js → post-editor-CsgQrDnJ.js} +1 -1
- package/dist/client/assets/{primitives-DJRhBEM_.js → primitives-D7u08cAb.js} +1 -1
- package/dist/client/assets/{profile-Cgbi60sy.js → profile-DjaGLDcj.js} +1 -1
- package/dist/client/assets/{project-app-view-MJzY7aYq.js → project-app-view-DlvKMam_.js} +1 -1
- package/dist/client/assets/record-editor-B9tAoum2.js +1 -0
- package/dist/client/assets/redirect-editor-B0SRp5vj.js +1 -0
- package/dist/client/assets/registry-DMD5W51g.js +2 -0
- package/dist/client/assets/{registry-layout-IFYm3hI_.js → registry-layout-CQILIy3B.js} +1 -1
- package/dist/client/assets/{reports-DGJJEepQ.js → reports-4WwZo7l5.js} +1 -1
- package/dist/client/assets/{require-capability-CjAHclB8.js → require-capability-V2e0LU3P.js} +1 -1
- package/dist/client/assets/{required-auth-layout-yn81pGG7.js → required-auth-layout-Cdi-946f.js} +1 -1
- package/dist/client/assets/{reset-password-Cnoy4SKL.js → reset-password-Daf0ERPq.js} +1 -1
- package/dist/client/assets/{roles-BzFIe9_q.js → roles-D5WQ-8A7.js} +1 -1
- package/dist/client/assets/{search-input-Dh-FLRR0.js → search-input-DmFmc4FA.js} +1 -1
- package/dist/client/assets/{secrets-Dx2pWJLK.js → secrets-Dp7mvwc3.js} +1 -1
- package/dist/client/assets/{sections-editor-CA168IMf.js → sections-editor-D9g5CKfD.js} +1 -1
- package/dist/client/assets/{select-CiehDFAd.js → select-D3htjNBx.js} +1 -1
- package/dist/client/assets/{select-model-BsC7_4K_.js → select-model-DQpQr2DQ.js} +1 -1
- package/dist/client/assets/{self-tool-result-ByzqWLys.js → self-tool-result-Ces-0lJd.js} +1 -1
- package/dist/client/assets/{seo-editor-C1wbq6Jl.js → seo-editor-DpR_FVvo.js} +1 -1
- package/dist/client/assets/{settings-layout-Bpa_eQuN.js → settings-layout-Be7ozVBR.js} +1 -1
- package/dist/client/assets/{settings-section-dwHpqoc4.js → settings-section-DzETP_0_.js} +1 -1
- package/dist/client/assets/{shell-controls-Cucko8hm.js → shell-controls-D7-dloPl.js} +1 -1
- package/dist/client/assets/{shell-layout-CvHWumsR.js → shell-layout-CzKlLa8f.js} +1 -1
- package/dist/client/assets/{sidebar-DJSdn9sP.js → sidebar-DbMpr-rh.js} +1 -1
- package/dist/client/assets/{skeleton-EKaYojot.js → skeleton-Y7gyZPrn.js} +1 -1
- package/dist/client/assets/{spinner-CTmoITTY.js → spinner-CMWgEkOv.js} +1 -1
- package/dist/client/assets/{sso-CxwHoGWb.js → sso-pOrWsTkM.js} +1 -1
- package/dist/client/assets/store-registry-D-qh_ccf.js +2 -0
- package/dist/client/assets/{store-x8D__PLz.js → store-u2l_1WH6.js} +1 -1
- package/dist/client/assets/{studio-tools-za10f5aE.js → studio-tools-whdp8gFV.js} +1 -1
- package/dist/client/assets/{switch-CEAlufXc.js → switch-b6594rNl.js} +1 -1
- package/dist/client/assets/{synced-repos-Diknx7vk.js → synced-repos-DBzAs0pB.js} +1 -1
- package/dist/client/assets/{tab-id-DkXxIDir.js → tab-id-fxY7FqYq.js} +1 -1
- package/dist/client/assets/{table-0ExCtthN.js → table-Bieg1GxH.js} +1 -1
- package/dist/client/assets/{tabs-C51YLuJA.js → tabs-D4B8_rLi.js} +1 -1
- package/dist/client/assets/{textarea-RW9Mo44C.js → textarea-CXh3iKjW.js} +1 -1
- package/dist/client/assets/{toggle-group-hHur8eEs.js → toggle-group-CBptT1rM.js} +1 -1
- package/dist/client/assets/{toolbar-Bo0Amphj.js → toolbar-BI3FThik.js} +1 -1
- package/dist/client/assets/{tooltip--d_0KCKQ.js → tooltip-DO91iaPZ.js} +1 -1
- package/dist/client/assets/{track-DZBBu9Qx.js → track-CY-fnB6q.js} +1 -1
- package/dist/client/assets/{use-ai-providers-BjF7hQoN.js → use-ai-providers-Dfw1C_Qb.js} +1 -1
- package/dist/client/assets/{use-api-keys-BhyD5-_k.js → use-api-keys-D0_X5TBd.js} +1 -1
- package/dist/client/assets/{use-automations-CyUFmAc1.js → use-automations-Y3CwRy47.js} +1 -1
- package/dist/client/assets/{use-autosave-OWU0aHe_.js → use-autosave-DwrF0hri.js} +1 -1
- package/dist/client/assets/{use-capability-BRB9mQoJ.js → use-capability-hVyOyKfv.js} +1 -1
- package/dist/client/assets/{use-clock-tick-EnLNcnyH.js → use-clock-tick-CttCxR3S.js} +1 -1
- package/dist/client/assets/{use-connection-CmHPrL_G.js → use-connection-B24S3YCN.js} +1 -1
- package/dist/client/assets/{use-copy-CuSRmRHQ.js → use-copy-BNHHpgOS.js} +1 -1
- package/dist/client/assets/{use-create-virtual-mcp-BydOfa0l.js → use-create-virtual-mcp-B4-JNTOi.js} +1 -1
- package/dist/client/assets/{use-debounced-autosave-BtT1kAKM.js → use-debounced-autosave-CrvyuS1z.js} +1 -1
- package/dist/client/assets/{use-debounced-value-D1g2giat.js → use-debounced-value-P_5pUA9W.js} +1 -1
- package/dist/client/assets/{use-deco-credits-z7PL6CZ3.js → use-deco-credits-5oBMNAq-.js} +1 -1
- package/dist/client/assets/{use-decopilot-events-g63RanKZ.js → use-decopilot-events-LcKd19eo.js} +1 -1
- package/dist/client/assets/{use-delete-connection-D_aHXkNb.js → use-delete-connection-YreJg1bm.js} +1 -1
- package/dist/client/assets/{use-deployment-admin-DWesnstk.js → use-deployment-admin-BHP-geVv.js} +1 -1
- package/dist/client/assets/{use-file-configs-D3z6Eu6E.js → use-file-configs-CPONQlYc.js} +1 -1
- package/dist/client/assets/{use-infinite-scroll-AiQI9LhU.js → use-infinite-scroll-CBy2t19Z.js} +1 -1
- package/dist/client/assets/{use-join-requests-D4prbatr.js → use-join-requests-atODS-UJ.js} +1 -1
- package/dist/client/assets/{use-mcp-client-BQhuNRpp.js → use-mcp-client-WNkI8KAJ.js} +1 -1
- package/dist/client/assets/{use-mcp-tools-DweqvGN5.js → use-mcp-tools-BW_wQYIZ.js} +1 -1
- package/dist/client/assets/{use-members-BN_-ico8.js → use-members-smedIK7m.js} +1 -1
- package/dist/client/assets/{use-mobile-Bug_iEGO.js → use-mobile-nNGwbm7m.js} +1 -1
- package/dist/client/assets/{use-navigate-to-agent-MOpcHlbm.js → use-navigate-to-agent-9y1G65Xj.js} +1 -1
- package/dist/client/assets/{use-open-billing-url-DhHKci1e.js → use-open-billing-url-GphQa9pn.js} +1 -1
- package/dist/client/assets/{use-org-auth-client-B6ww681l.js → use-org-auth-client-uDIBUVH9.js} +1 -1
- package/dist/client/assets/{use-org-sso-BJ4gBjTo.js → use-org-sso-DrOx8nh9.js} +1 -1
- package/dist/client/assets/{use-organization-roles-kdrMcR45.js → use-organization-roles-DYd5AO4U.js} +1 -1
- package/dist/client/assets/{use-organization-settings-Badwuy7t.js → use-organization-settings-BJdrgwhq.js} +1 -1
- package/dist/client/assets/{use-registry-connections-CfL6bcMw.js → use-registry-connections-ChaImRoz.js} +1 -1
- package/dist/client/assets/{use-secrets-BsWLfWHt.js → use-secrets-Dl1vnLJJ.js} +1 -1
- package/dist/client/assets/{use-section-preview-base-D7KNbQ-g.js → use-section-preview-base-BcBdEo4a.js} +1 -1
- package/dist/client/assets/{use-status-sounds-owL06Mtn.js → use-status-sounds-CRL_QHV0.js} +1 -1
- package/dist/client/assets/{use-tags-B4o6Qc5X.js → use-tags-4N4KBIBB.js} +1 -1
- package/dist/client/assets/{use-view-mode-4bz6XwO6.js → use-view-mode-Cuib_Qyk.js} +1 -1
- package/dist/client/assets/{use-virtual-mcp-BDm3C_SB.js → use-virtual-mcp-uppMIhb1.js} +1 -1
- package/dist/client/assets/useInfiniteQuery-BOShi_GX.js +1 -0
- package/dist/client/assets/{useRouterState-C6XNXsWF.js → useRouterState-DMhgLsX7.js} +1 -1
- package/dist/client/assets/useSuspenseInfiniteQuery-C2H3DSMn.js +1 -0
- package/dist/client/assets/{users-_wALmp9i.js → users-D_L2xQM5.js} +1 -1
- package/dist/client/assets/{variant-calendar-mm2ufWxU.js → variant-calendar-CqXsSQtn.js} +1 -1
- package/dist/client/assets/{view-mode-toggle-CfTjQ6_1.js → view-mode-toggle-Bd7XGg_T.js} +1 -1
- package/dist/client/index.html +1 -1
- package/dist/server/cli.js +2 -2
- package/dist/server/server.js +2 -2
- package/package.json +1 -1
- package/dist/client/assets/record-editor-DX_FIJ_u.js +0 -1
- package/dist/client/assets/redirect-editor-z9ZjULHg.js +0 -1
- package/dist/client/assets/registry-CLIuLoer.js +0 -2
- package/dist/client/assets/store-registry-BAF8Ary7.js +0 -2
- package/dist/client/assets/useInfiniteQuery-CRxCJvuG.js +0 -1
- package/dist/client/assets/useSuspenseInfiniteQuery-dEMTeOkE.js +0 -1
package/dist/server/cli.js
CHANGED
|
@@ -1332,7 +1332,7 @@ Usage: deco services <up|down|status>`),process.exit(1)}}var fd1=O(()=>{px()});f
|
|
|
1332
1332
|
`.execute($);if(Number(W.rows[0]?.cnt)===0){console.warn(`Failed to migrate ${J}/${K}, keeping in old table`);continue}}await Pb`
|
|
1333
1333
|
DELETE FROM kysely_migration WHERE name = ${X}
|
|
1334
1334
|
`.execute($)}}async function ep1($){await tm6($),await om6($);let Z=new ap1({db:$,provider:{getMigrations:()=>Promise.resolve(Om0)}}),{error:X,results:Q}=await Z.migrateToLatest(),Y=0;if(Q?.forEach((G)=>{if(G.status==="Success")Y++;else if(G.status==="Error")console.error(`Failed to execute migration "${G.migrationName}"`)}),X)throw console.error("Failed to migrate"),console.error(X),X;return Y}async function rm6($){let{keepOpen:Z=!1,database:X,skipBetterAuth:Q=!1}=$??{},Y="skipped";if(!Q&&!X)Y=await hu0();let G=X??N6(),J=async()=>{if(!Z&&!X)await Tw(G).catch((K)=>{console.warn("Warning: Error closing database:",K)})};try{let K=await ep1(G.db);return await J(),{betterAuth:Y,kysely:K}}catch(K){throw await J(),K}}async function am6(){let $=N6(),Z=new ap1({db:$.db,provider:{getMigrations:()=>Promise.resolve(Om0)}}),{error:X,results:Q}=await Z.migrateDown();if(Q?.forEach((Y)=>{if(Y.status==="Success")console.log(`\u2705 Migration "${Y.migrationName}" rolled back successfully`);else if(Y.status==="Error")console.error(`\u274C Failed to rollback migration "${Y.migrationName}"`)}),X)throw console.error("Failed to rollback migration"),console.error(X),X}var Zt1=O(()=>{rp1();uu0();e7()});async function h90($){let Z={...process.env},X=_10($,Z);console.log(OB1(X.settings.encryptionKey));let Q=X.settings.betterAuthSecret||(X.settings.localMode?Fi1(X.settings.dataDir):""),{ensureServices:Y}=await Promise.resolve().then(() => (o50(),t50)),{outputs:G,services:J}=await Y({home:X.settings.dataDir,externalDatabaseUrl:X.externalDatabaseUrl,externalNatsUrl:X.externalNatsUrl});if(!X.skipMigrations){let{migrateBetterAuth:W}=await Promise.resolve().then(() => (uu0(),Bi1));await W(G.databaseUrl);let{createDatabase:H}=await Promise.resolve().then(() => (e7(),Sm1)),{migrateToLatest:U}=await Promise.resolve().then(() => (Zt1(),$t1)),N=H(G.databaseUrl);await U({keepOpen:!0,database:N,skipBetterAuth:!0})}let K={...X.settings,betterAuthSecret:Q,databaseUrl:G.databaseUrl,natsUrls:G.natsUrls,...G.s3?{s3Endpoint:G.s3.endpoint,s3Bucket:G.s3.bucket,s3AccessKeyId:G.s3.accessKeyId,s3SecretAccessKey:G.s3.secretAccessKey,s3ForcePathStyle:G.s3.forcePathStyle}:{},...G.natsTunnel?{natsPublicUrl:G.natsTunnel.publicUrl,natsAccountJwt:G.natsTunnel.accountJwt,natsAccountSigningKey:G.natsTunnel.accountSigningKey,natsOperatorJwt:G.natsTunnel.operatorJwt,natsTunnelPublicEnabled:!0,natsCredsPath:G.natsTunnel.credsPath}:{}};return bd1(K),{settings:K,services:J.map((W)=>({name:W.name==="PostgreSQL"?"Postgres":W.name,port:W.port})),managedServiceNames:J.filter((W)=>W.owner==="managed").map((W)=>W.name)}}var Lm0=O(()=>{px();wi1();k8()});var Yt1={};B0(Yt1,{updateService:()=>GE,subscribeCliState:()=>zm0,setTuiConsoleIntercepted:()=>u90,setServerUrl:()=>Xi,setMigrationsDone:()=>Zi,setDevMode:()=>$i6,resetCliStateForTests:()=>sm6,isTuiConsoleIntercepted:()=>c90,getCliState:()=>Em0,addLogEntry:()=>Vw});function Xt1(){return{services:[{name:"Postgres",status:"pending",port:0},{name:"NATS",status:"pending",port:0}],migrationsStatus:"pending",serverUrl:null,logs:[]}}function sm6(){bQ=Xt1()}function em6(){return[{name:"Postgres",status:"pending",port:0},{name:"NATS",status:"pending",port:0}]}function $i(){for(let $ of Dm0)$()}function Em0(){return bQ}function zm0($){return Dm0.add($),()=>Dm0.delete($)}function GE($){bQ={...bQ,services:bQ.services.map((Z)=>Z.name===$.name?$:Z)},$i()}function Zi(){bQ={...bQ,migrationsStatus:"done"},$i()}function Xi($){bQ={...bQ,serverUrl:$},$i()}function Vw($){let Z=[...bQ.logs,$];bQ={...bQ,logs:Z.length>500?Z.slice(-500):Z},$i()}function $i6(){bQ={...bQ,services:[...em6(),{name:"API",status:"pending",port:0},{name:"Vite",status:"pending",port:0}]},$i()}function u90($){Qt1=$}function c90(){return Qt1}var bQ,Dm0,Qt1=!1;var JE=O(()=>{bQ=Xt1();Dm0=new Set});import{createServer as Gt1}from"net";function Zi6($){return new Promise((Z)=>{let X=Gt1();X.once("error",()=>Z(!1)),X.listen($,"0.0.0.0",()=>{X.close(()=>Z(!0))})})}async function Qi($){if(await Zi6($))return $;let Z=await new Promise((X,Q)=>{let Y=Gt1();Y.once("error",Q),Y.listen(0,"0.0.0.0",()=>{let G=Y.address(),J=typeof G==="object"&&G?G.port:0;Y.close(()=>X(J))})});return console.warn(`Port ${$} is in use, using port ${Z} instead.`),Z}var jm0=()=>{};function Yi($){return $.replace(/\x1b\[[0-9;]*m/g,"")}var Pm0={};B0(Pm0,{startDevServer:()=>Qi6});import{join as Xi6}from"path";function Jt1($){let Z=$.getReader(),X=new TextDecoder,Q="";function Y(){let G=Q.split(`
|
|
1335
|
-
`);Q=G.pop()??"";for(let J of G){let K=Yi(J).replace(/^\[\d+\]\s*/,"").trim();if(!K)continue;Vw({method:"",path:"",status:0,duration:0,timestamp:new Date,rawLine:K})}}(async()=>{for(;;){let{done:G,value:J}=await Z.read();if(G)break;Q+=X.decode(J,{stream:!0}),Y()}if(Q.trim()){let G=Yi(Q).replace(/^\[\d+\]\s*/,"").trim();if(G)Vw({method:"",path:"",status:0,duration:0,timestamp:new Date,rawLine:G})}})()}async function Qi6($){let{baseUrl:Z,noTui:X}=$,Q=process.env.HOST==="0.0.0.0"&&Boolean(process.env.PORT),Y=Q?process.env.PORT:$.vitePort,G=Z||`http://localhost:${Y}`,J=Q?await Qi(Number(Y)+1):await Qi(Number($.port)),{settings:K,services:W,managedServiceNames:H}=await h90({port:String(J),home:$.home,baseUrl:$.baseUrl,localMode:$.localMode,skipMigrations:$.skipMigrations,noTui:$.noTui,vitePort:$.vitePort});for(let L of W)GE({name:L.name,status:"ready",port:L.port});Zi();let U=Xi6(import.meta.dir,"..","..","..","..",".."),N=X===!0,F=Bun.spawn(["bun","run","dev:servers"],{cwd:U,env:{...process.env,PORT:String(K.port),VITE_PORT:String(Y),DATABASE_URL:K.databaseUrl,NATS_URL:K.natsUrls.join(","),NODE_ENV:K.nodeEnv,BASE_URL:G,DECOCMS_LOCAL_MODE:String(K.localMode),DECOCMS_HOME:K.dataDir,DATA_DIR:K.dataDir,DECO_CLI:"1",...K.betterAuthSecret?{BETTER_AUTH_SECRET:K.betterAuthSecret}:{},...K.s3Endpoint?{S3_ENDPOINT:K.s3Endpoint,S3_BUCKET:K.s3Bucket??"",S3_ACCESS_KEY_ID:K.s3AccessKeyId??"",S3_SECRET_ACCESS_KEY:K.s3SecretAccessKey??"",S3_FORCE_PATH_STYLE:String(K.s3ForcePathStyle)}:{},...K.natsPublicUrl&&K.natsAccountJwt&&K.natsAccountSigningKey?{NATS_PUBLIC_URL:K.natsPublicUrl,NATS_ACCOUNT_JWT:K.natsAccountJwt,NATS_ACCOUNT_SIGNING_KEY:K.natsAccountSigningKey,NATS_OPERATOR_JWT:K.natsOperatorJwt??"",NATS_TUNNEL_PUBLIC_ENABLED:"true",...K.natsCredsPath?{NATS_CREDS:K.natsCredsPath}:{}}:{}},stdio:["inherit",N?"inherit":"pipe",N?"inherit":"pipe"]});if(!N)Jt1(F.stdout),Jt1(F.stderr);Xi(G),GE({name:"Vite",status:"ready",port:Number(Y)}),GE({name:"API",status:"ready",port:Number(K.port)});let B=async(L)=>{if(F.kill(L),await F.exited,H.length>0){let{stopServices:D}=await Promise.resolve().then(() => (o50(),t50));await D(K.dataDir)}};return process.on("SIGINT",()=>B("SIGINT")),process.on("SIGTERM",()=>B("SIGTERM")),{port:Number(Y),process:F}}var Am0=O(()=>{Lm0();JE();jm0()});var l90;var Tm0=O(()=>{l90={name:"decocms",version:"4.217.11",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/api"},bugs:{url:"https://github.com/decocms/studio/issues"},type:"module",bin:{deco:"./dist/server/cli.js"},files:["dist/**/*"],scripts:{dev:"bun run migrate && bun run dev:server","dev:server":"bun run --cwd=../../packages/sandbox build && NODE_ENV=development bun --env-file=.env --hot run src/index.ts",build:"bun run build:server","build:server":"bun run scripts/bundle-server-script.ts --dist ./dist/server","generate:tool-contracts":"bun run scripts/generate-tool-contracts.ts","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 src","better-auth:migrate":"bunx --bun @better-auth/cli migrate -y --config src/auth/index.ts",prepublishOnly:"bun run --cwd=../.. build:studio"},optionalDependencies:{"@duckdb/node-api":"^1.5.0-r.1"},dependencies:{"@ai-sdk/anthropic":"^3.0.85","@ai-sdk/google":"^3.0.83","@ai-sdk/openai":"^3.0.73","@anthropic-ai/sdk":"^0.105.0","@aws-sdk/client-s3":"^3.1013.0","@aws-sdk/client-sts":"^3.1013.0","@aws-sdk/lib-storage":"^3.1013.0","@aws-sdk/s3-request-presigner":"^3.1013.0","@clickhouse/client":"^1.8.1","@dbos-inc/dbos-sdk":"^4.21.6","@inkjs/ui":"^2.0.0","@nats-io/jetstream":"3.4.0","@nats-io/kv":"3.4.0","@nats-io/nats-core":"3.4.0","@nats-io/transport-node":"3.4.0","@openrouter/ai-sdk-provider":"^2.9.1","@opentelemetry/core":"^2.6.0","embedded-postgres":"^18.3.0-beta.16",ink:"^6.8.0",kysely:"^0.28.12","posthog-node":"^5.0.0",react:"^19.2.6","react-dom":"^19.2.6"},devDependencies:{"@ai-sdk/provider":"^3.0.10","@better-auth/sso":"1.4.1","@decocms/better-auth":"1.5.17","@decocms/bindings":"workspace:*","@decocms/mcp-utils":"workspace:*","@decocms/runtime":"workspace:*","@decocms/sandbox":"workspace:*","@decocms/shared":"workspace:*","@jitl/quickjs-wasmfile-release-sync":"0.31.0","@modelcontextprotocol/sdk":"1.29.0","@nats-io/jwt":"0.0.10-5","@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/resources":"^2.6.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","@types/bun":"^1.3.1","@types/google.maps":"^3.65.2","@types/pg":"^8.15.6","@types/react-syntax-highlighter":"^15.5.13","@vercel/nft":"^1.1.1",ai:"^6.0.208","better-auth":"1.4.22",croner:"^9.1.0",degit:"^2.8.4",hono:"^4.10.7",jose:"^6.0.11",nanoid:"^5.1.6",pg:"^8.16.3",typescript:"^7.0.2",typescript5:"npm:typescript@^5.9.3",zod:"4.3.6"},homepage:"https://github.com/decocms/studio",keywords:["mcp","model-context-protocol","ai","gateway","self-hosted","tools"],license:"MIT",publishConfig:{access:"public"}}});import{Box as Gi6,Text as Kt1}from"ink";import{jsx as Ji6,jsxs as Wt1}from"react/jsx-runtime";function Ht1({version:$}){return Wt1(Gi6,{flexDirection:"column",marginTop:1,children:[L90.map((Z,X)=>Ji6(Kt1,{color:D90[X],children:Z},X)),Wt1(Kt1,{dimColor:!0,children:[" v",$]})]})}var Ut1=O(()=>{dm()});import{Box as KE,Text as kw}from"ink";import{Spinner as Ki6}from"@inkjs/ui";import{jsx as nY,jsxs as Ab}from"react/jsx-runtime";function Nt1({status:$}){if($==="pending")return nY(Ki6,{label:""});return nY(kw,{color:"green",children:"\u2713"})}function Wi6($){return`${$.name}: ${$.port||"...."}`}function Ft1({services:$,migrationsStatus:Z,home:X,serverUrl:Q}){return Ab(KE,{flexDirection:"column",paddingBottom:1,children:[nY(Ht1,{version:l90.version}),nY(KE,{marginBottom:1,children:nY(kw,{dimColor:!0,children:"\u2500".repeat(80)})}),nY(KE,{children:Ab(kw,{dimColor:!0,children:["Home: ",X]})}),Ab(KE,{gap:2,children:[$.map((Y)=>Ab(KE,{gap:1,children:[nY(kw,{children:Wi6(Y)}),nY(Nt1,{status:Y.status})]},Y.name)),Ab(KE,{gap:1,children:[nY(kw,{children:"Migrations"}),nY(Nt1,{status:Z})]})]}),nY(KE,{children:Q?Ab(kw,{children:["Open in browser: ",nY(kw,{color:"cyan",children:Q})]}):nY(kw,{dimColor:!0,children:"Starting..."})})]})}var wt1=O(()=>{Tm0();Ut1()});import{Box as Hi6,Text as Gi}from"ink";import{jsx as Rm0,jsxs as Im0}from"react/jsx-runtime";function Ui6($){if($>=500)return"red";if($>=400)return"yellow";if($>=300)return"cyan";return"green"}function Bt1({logs:$}){return Rm0(Hi6,{flexDirection:"column",children:$.map((Z,X)=>{if(Z.rawLine)return Rm0(Gi,{dimColor:!0,children:Z.rawLine},X);let Q=Z.duration<1000?`${Z.duration}ms`:`${(Z.duration/1000).toFixed(1)}s`;return Im0(Gi,{children:[Im0(Gi,{dimColor:!0,children:[Z.method.padEnd(6)," ",Z.path.padEnd(30)," "]}),Rm0(Gi,{color:Ui6(Z.status),children:Z.status}),Im0(Gi,{dimColor:!0,children:[" ",Q.padStart(8)]})]},X)})})}var Ot1=()=>{};var qm0={};B0(qm0,{App:()=>wi6});import{Box as Ni6}from"ink";import{useSyncExternalStore as Fi6}from"react";import{jsx as Lt1,jsxs as Bi6}from"react/jsx-runtime";function wi6({home:$}){let Z=Fi6(zm0,Em0);return Bi6(Ni6,{flexDirection:"column",children:[Lt1(Ft1,{services:Z.services,migrationsStatus:Z.migrationsStatus,home:$,serverUrl:Z.serverUrl}),Lt1(Bt1,{logs:Z.logs})]})}var Mm0=O(()=>{wt1();Ot1();JE()});var IJ="thread-gate",hU="decopilot-hosted-harness",X3="automations",Sw="background-tools",WE="task-board-github-reads";var Dt1="7";function Et1($){return{name:"decocms",systemDatabaseUrl:$.systemDatabaseUrl,systemDatabaseSchemaName:"dbos",systemDatabasePoolSize:$.poolSize,runAdminServer:!1,executorID:$.executorID,applicationVersion:Dt1,...$.listenQueues!==void 0?{listenQueues:$.listenQueues}:{}}}var zt1=()=>{};function Oi6(){let $=(process.env.BUN_OPTIONS??"").split(/\s+/).filter(Boolean);return[...process.argv.slice(1),...$]}function Vm0($,Z){for(let X=0;X<$.length;X++){let Q=$[X];if(Q===void 0)continue;if(Q===Z)return $[X+1];if(Q.startsWith(`${Z}=`))return Q.slice(Z.length+1)}return}function jt1(){let $=Oi6();if($.includes("--cpu-prof")){console.log(JSON.stringify({msg:"cpu-profiling-active",dir:Vm0($,"--cpu-prof-dir")??process.cwd(),name:Vm0($,"--cpu-prof-name"),markdown:$.includes("--cpu-prof-md"),intervalUs:Number(Vm0($,"--cpu-prof-interval")??1000),note:"profile is written on process exit"}));return}if(process.env.CPU_PROFILE)console.warn(JSON.stringify({msg:"cpu-profiling-requested-but-inactive",hint:'CPU profiling is a Bun launch flag. Set BUN_OPTIONS="--cpu-prof --cpu-prof-md --cpu-prof-dir=/tmp" before starting the process.'}))}function Pt1(){if(process.env.HEAP_WATCH!=="1")return()=>{};let $=Number(process.env.HEAP_WATCH_INTERVAL_MS??60000),Z=async()=>{let X=ZE();if(!X)return;let Q={};try{let{heapStats:Y}=await import("bun:jsc"),G=Y(),J=Object.entries(G.objectTypeCounts).sort((K,W)=>W[1]-K[1]).slice(0,20);Q={objectCount:G.objectCount,heapSize:G.heapSize,top:Object.fromEntries(J)}}catch{}console.log(JSON.stringify({msg:"heap-watch",ts:new Date().toISOString(),uptimeS:Math.round(process.uptime()),rss:X.rss,heapUsed:X.heapUsed,heapTotal:X.heapTotal,external:X.external,arrayBuffers:X.arrayBuffers,...Q}))};return Z().catch(()=>{}),d90=setInterval(()=>void Z().catch(()=>{}),$),d90.unref?.(),process.on("SIGUSR2",()=>{try{let X=Bun.generateHeapSnapshot("v8"),Q=typeof X==="string"?X:JSON.stringify(X),Y=`/tmp/heap-${process.pid}-${Date.now()}.heapsnapshot`;Bun.write(Y,Q),console.log(JSON.stringify({msg:"heap-snapshot-written",path:Y}))}catch(X){console.error("[heap-watch] snapshot failed:",X)}}),()=>{if(d90)clearInterval(d90)}}var d90;var At1=()=>{};import*as Li6 from"bun:jsc";function Tt1(){if(process.env.STALL_WATCHDOG!=="1")return()=>{};let $=Number(process.env.STALL_WATCHDOG_MS??100),Z=Number(process.env.STALL_WATCHDOG_TICK_MS??50);try{Di6()}catch(G){return console.error("[stall-watchdog] failed to start sampling profiler:",G),()=>{}}let X,Q=performance.now()+Z,Y=()=>{let G=performance.now(),J=G-Q;Q=G+Z;let K=[];try{K=Ei6()?.traces??[]}catch{}if(J>$&&K.length>0){let W=new Map;for(let U of K){let N=U.frames.find((B)=>B.sourceURL&&!/Unknown Executable/.test(B.category??""))??U.frames[0];if(!N)continue;let F=(N.sourceURL??"?").replace(/^.*\/node_modules\//,"node_modules/"),w=`${N.name??"?"} @ ${F}:${N.line??"?"}`;W.set(w,(W.get(w)??0)+1)}let H=[...W.entries()].sort((U,N)=>N[1]-U[1]).slice(0,8).map(([U,N])=>({frame:U,count:N}));console.warn(JSON.stringify({msg:"stall-stack",ts:new Date().toISOString(),lagMs:Math.round(J),samplesInWindow:K.length,top:H}))}X=setTimeout(Y,Z),X.unref?.()};return X=setTimeout(Y,Z),X.unref?.(),()=>{if(X)clearTimeout(X)}}var Di6,Ei6;var Rt1=O(()=>{({startSamplingProfiler:Di6,samplingProfilerStackTraces:Ei6}=Li6)});function It1(){jt1();let $=[Pt1(),Am1(),Tt1()];return()=>{for(let Z of $)Z()}}var qt1=O(()=>{ku0();At1();Rt1()});var HE=_((Mt1)=>{Object.defineProperty(Mt1,"__esModule",{value:!0});Mt1.RepublishHeaders=Mt1.DirectMsgHeaders=Mt1.JsHeaders=Mt1.AdvisoryKind=void 0;Mt1.isOrderedPushConsumerOptions=zi6;Mt1.isPullConsumer=ji6;Mt1.isPushConsumer=Pi6;Mt1.isBoundPushConsumerOptions=Ai6;function zi6($){if($&&typeof $==="object")return"name_prefix"in $||"deliver_subject_prefix"in $||"filter_subjects"in $||"filter_subject"in $||"deliver_policy"in $||"opt_start_seq"in $||"opt_start_time"in $||"replay_policy"in $||"inactive_threshold"in $||"headers_only"in $||"deliver_prefix"in $;return!1}function ji6($){return $.isPullConsumer()}function Pi6($){return $.isPushConsumer()}function Ai6($){if($&&typeof $==="object")return"deliver_subject"in $||"deliver_group"in $||"idle_heartbeat"in $;return!1}Mt1.AdvisoryKind={API:"api_audit",StreamAction:"stream_action",ConsumerAction:"consumer_action",SnapshotCreate:"snapshot_create",SnapshotComplete:"snapshot_complete",RestoreCreate:"restore_create",RestoreComplete:"restore_complete",MaxDeliver:"max_deliver",Terminated:"terminated",Ack:"consumer_ack",StreamLeaderElected:"stream_leader_elected",StreamQuorumLost:"stream_quorum_lost",ConsumerLeaderElected:"consumer_leader_elected",ConsumerQuorumLost:"consumer_quorum_lost"};Mt1.JsHeaders={StreamSourceHdr:"Nats-Stream-Source",LastConsumerSeqHdr:"Nats-Last-Consumer",LastStreamSeqHdr:"Nats-Last-Stream",ConsumerStalledHdr:"Nats-Consumer-Stalled",MessageSizeHdr:"Nats-Msg-Size",RollupHdr:"Nats-Rollup",RollupValueSubject:"sub",RollupValueAll:"all",PendingMessagesHdr:"Nats-Pending-Messages",PendingBytesHdr:"Nats-Pending-Bytes",RequiredApiLevel:"Nats-Required-Api-Level"};Mt1.DirectMsgHeaders={Stream:"Nats-Stream",Sequence:"Nats-Sequence",TimeStamp:"Nats-Time-Stamp",Subject:"Nats-Subject",LastSequence:"Nats-Last-Sequence",NumPending:"Nats-Num-Pending"};Mt1.RepublishHeaders={Stream:"Nats-Stream",Subject:"Nats-Subject",Sequence:"Nats-Sequence",LastSequence:"Nats-Last-Sequence",Size:"Nats-Msg-Size"}});var pY=_((kt1)=>{Object.defineProperty(kt1,"__esModule",{value:!0});kt1.TD=kt1.TE=kt1.Empty=void 0;kt1.encode=Ci6;kt1.decode=_i6;kt1.Empty=new Uint8Array(0);kt1.TE=new TextEncoder;kt1.TD=new TextDecoder;function Si6(...$){let Z=0;for(let Y=0;Y<$.length;Y++)Z+=$[Y].length;let X=new Uint8Array(Z),Q=0;for(let Y=0;Y<$.length;Y++)X.set($[Y],Q),Q+=$[Y].length;return X}function Ci6(...$){let Z=[];for(let X=0;X<$.length;X++)Z.push(kt1.TE.encode($[X]));if(Z.length===0)return kt1.Empty;if(Z.length===1)return Z[0];return Si6(...Z)}function _i6($){if(!$||$.length===0)return"";return kt1.TD.decode($)}});var tY=_((_t1)=>{Object.defineProperty(_t1,"__esModule",{value:!0});_t1.errors=_t1.PermissionViolationError=_t1.NoRespondersError=_t1.TimeoutError=_t1.RequestError=_t1.ProtocolError=_t1.ConnectionError=_t1.DrainingConnectionError=_t1.ClosedConnectionError=_t1.AuthorizationError=_t1.UserAuthenticationExpiredError=_t1.InvalidOperationError=_t1.InvalidArgumentError=_t1.InvalidSubjectError=void 0;class Sm0 extends Error{constructor($,Z){super(`illegal subject: '${$}'`,Z);this.name="InvalidSubjectError"}}_t1.InvalidSubjectError=Sm0;class m90 extends Error{constructor($,Z){super($,Z);this.name="InvalidArgumentError"}static format($,Z,X){if(Array.isArray(Z)&&Z.length>1)Z=Z[0];if(Array.isArray($))$=$.map((Q)=>`'${Q}'`),$=$.join(",");else $=`'${$}'`;return new m90(`${$} ${Z}`,X)}}_t1.InvalidArgumentError=m90;class Cm0 extends Error{constructor($,Z){super($,Z);this.name="InvalidOperationError"}}_t1.InvalidOperationError=Cm0;class i90 extends Error{constructor($,Z){super($,Z);this.name="UserAuthenticationExpiredError"}static parse($){if($.toLowerCase().indexOf("user authentication expired")!==-1)return new i90($);return null}}_t1.UserAuthenticationExpiredError=i90;class n90 extends Error{constructor($,Z){super($,Z);this.name="AuthorizationError"}static parse($){let Z=["authorization violation","account authentication expired","authentication timeout"],X=$.toLowerCase();for(let Q=0;Q<Z.length;Q++)if(X.indexOf(Z[Q])!==-1)return new n90($);return null}}_t1.AuthorizationError=n90;class _m0 extends Error{constructor(){super("closed connection");this.name="ClosedConnectionError"}}_t1.ClosedConnectionError=_m0;class vm0 extends Error{constructor(){super("connection draining");this.name="DrainingConnectionError"}}_t1.DrainingConnectionError=vm0;class xm0 extends Error{constructor($,Z){super($,Z);this.name="ConnectionError"}}_t1.ConnectionError=xm0;class fm0 extends Error{constructor($,Z){super($,Z);this.name="ProtocolError"}}_t1.ProtocolError=fm0;class bm0 extends Error{constructor($="",Z){super($,Z);this.name="RequestError"}isNoResponders(){return this.cause instanceof p90}}_t1.RequestError=bm0;class ym0 extends Error{constructor($){super("timeout",$);this.name="TimeoutError"}}_t1.TimeoutError=ym0;class p90 extends Error{subject;constructor($,Z){super(`no responders: '${$}'`,Z);this.subject=$,this.name="NoResponders"}}_t1.NoRespondersError=p90;class t90 extends Error{operation;subject;queue;constructor($,Z,X,Q,Y){super($,Y);this.name="PermissionViolationError",this.operation=Z,this.subject=X,this.queue=Q}static parse($){if(($?$.toLowerCase():"").indexOf("permissions violation")===-1)return null;let X="publish",Q="",Y=void 0,G=$.match(/(Publish|Subscription) to "(\S+)"/);if(G){if(X=G[1].toLowerCase(),Q=G[2],X==="subscription"){let J=$.match(/using queue "(\S+)"/);if(J)Y=J[1]}}return new t90($,X,Q,Y)}}_t1.PermissionViolationError=t90;_t1.errors={AuthorizationError:n90,ClosedConnectionError:_m0,ConnectionError:xm0,DrainingConnectionError:vm0,InvalidArgumentError:m90,InvalidOperationError:Cm0,InvalidSubjectError:Sm0,NoRespondersError:p90,PermissionViolationError:t90,ProtocolError:fm0,RequestError:bm0,TimeoutError:ym0,UserAuthenticationExpiredError:i90}});var qJ=_((yt1)=>{Object.defineProperty(yt1,"__esModule",{value:!0});yt1.SimpleMutex=yt1.Perf=void 0;yt1.extend=oi6;yt1.render=ri6;yt1.timeout=ai6;yt1.delay=si6;yt1.deadline=ei6;yt1.deferred=hm0;yt1.debugDeferred=$n6;yt1.shuffle=Zn6;yt1.collect=Xn6;yt1.jitter=bt1;yt1.backoff=Qn6;yt1.nanos=Yn6;yt1.millis=Gn6;yt1.randomToken=Wn6;var ti6=pY(),gm0=tY();function oi6($,...Z){for(let X=0;X<Z.length;X++){let Q=Z[X];Object.keys(Q).forEach(function(Y){$[Y]=Q[Y]})}return $}function ri6($){return ti6.TD.decode($).replace(/\n/g,"\u240A").replace(/\r/g,"\u240D")}function ai6($,Z=!0){let X=Z?new gm0.TimeoutError:null,Q,Y,G=new Promise((J,K)=>{Q={cancel:()=>{if(Y)clearTimeout(Y)}},Y=setTimeout(()=>{if(X===null)K(new gm0.TimeoutError);else K(X)},$)});return Object.assign(G,Q)}function si6($=0){let Z,X=new Promise((Q)=>{let Y=setTimeout(()=>{Q()},$);Z={cancel:()=>{if(Y)clearTimeout(Y),Q()}}});return Object.assign(X,Z)}async function ei6($,Z=1000){let X=hm0(),Q=setTimeout(()=>{X.reject(new gm0.TimeoutError)},Z);try{return await Promise.race([$,X])}finally{clearTimeout(Q)}}function hm0(){let $={},Z=new Promise((X,Q)=>{$={resolve:X,reject:Q}});return Object.assign(Z,$)}function $n6(){let $={},Z=new Promise((X,Q)=>{$={resolve:(Y)=>{console.trace("resolve",Y),X(Y)},reject:(Y)=>{console.trace("reject"),Q(Y)}}});return Object.assign(Z,$)}function Zn6($){for(let Z=$.length-1;Z>0;Z--){let X=Math.floor(Math.random()*(Z+1));[$[Z],$[X]]=[$[X],$[Z]]}return $}async function Xn6($){let Z=[];for await(let X of $)Z.push(X);return Z}class xt1{timers;measures;constructor(){this.timers=new Map,this.measures=new Map}mark($){this.timers.set($,performance.now())}measure($,Z,X){let Q=this.timers.get(Z);if(Q===void 0)throw Error(`${Z} is not defined`);let Y=this.timers.get(X);if(Y===void 0)throw Error(`${X} is not defined`);this.measures.set($,Y-Q)}getEntries(){let $=[];return this.measures.forEach((Z,X)=>{$.push({name:X,duration:Z})}),$}}yt1.Perf=xt1;class ft1{max;current;waiting;constructor($=1){this.max=$,this.current=0,this.waiting=[]}lock(){if(this.current++,this.current<=this.max)return Promise.resolve();let $=hm0();return this.waiting.push($),$}unlock(){this.current--,this.waiting.pop()?.resolve()}}yt1.SimpleMutex=ft1;function bt1($){if($===0)return 0;return Math.floor($/2+Math.random()*$)}function Qn6($=[0,250,250,500,500,3000,5000]){if(!Array.isArray($))$=[0,250,250,500,500,3000,5000];let Z=$.length-1;return{backoff(X){return bt1(X>Z?$[Z]:$[X])}}}function Yn6($){return $*1e6}function Gn6($){return Math.floor($/1e6)}var Jn6="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz",uU=new Uint8Array(62);for(let $=0;$<62;$++)uU[$]=Jn6.charCodeAt($);var Kn6=218340105584896;function Wn6(){let $=Math.floor(Math.random()*Kn6),Z=$%62,X=uU[Z];$=($-Z)/62,Z=$%62;let Q=uU[Z];$=($-Z)/62,Z=$%62;let Y=uU[Z];$=($-Z)/62,Z=$%62;let G=uU[Z];$=($-Z)/62,Z=$%62;let J=uU[Z];$=($-Z)/62,Z=$%62;let K=uU[Z];$=($-Z)/62,Z=$%62;let W=uU[Z];$=($-Z)/62;let H=uU[$];return String.fromCharCode(X,Q,Y,G,J,K,W,H)}});var it1=_((dt1)=>{Object.defineProperty(dt1,"__esModule",{value:!0});dt1.nuid=dt1.NuidImpl=void 0;var Rn6="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz",Cw=62,r90=12,ct1=10,ht1=33,In6=333,ut1=r90+ct1,cm0=new Uint8Array(Cw);for(let $=0;$<Cw;$++)cm0[$]=Rn6.charCodeAt($);var o90=4294967296,lt1=BigInt(Cw)**BigInt(ct1),Ji=Number(lt1/(1n<<32n)),um0=Number(lt1%(1n<<32n));function qn6($){for(let Z=0;Z<$.length;Z++)$[Z]=Math.floor(Math.random()*256)}function Mn6($){if(globalThis?.crypto?.getRandomValues)globalThis.crypto.getRandomValues($);else qn6($)}class lm0{buf;cbuf;seqHi;seqLo;inc;inited;constructor(){this.buf=new Uint8Array(ut1),this.cbuf=new Uint8Array(r90),this.inited=!1}init(){this.inited=!0,this.setPre(),this.initSeqAndInc(),this.fillSeq()}initSeqAndInc(){let $=0;do this.seqHi=Math.floor(Math.random()*(Ji+1)),this.seqLo=Math.floor(Math.random()*o90);while($++<8&&this.seqHi===Ji&&this.seqLo>=um0);if(this.seqHi===Ji&&this.seqLo>=um0)this.seqLo=0;this.inc=Math.random()*(In6-ht1)+ht1|0}setPre(){Mn6(this.cbuf);for(let $=0;$<r90;$++)this.buf[$]=cm0[this.cbuf[$]%Cw]}fillSeq(){let $=this.seqHi,Z=this.seqLo;for(let X=ut1-1;X>=r90;X--){let Q=Math.floor($/Cw),G=($-Q*Cw)*o90+Z,J=Math.floor(G/Cw),K=G-J*Cw;this.buf[X]=cm0[K],$=Q,Z=J}}next(){if(!this.inited)this.init();if(this.seqLo+=this.inc,this.seqLo>=o90)this.seqLo-=o90,this.seqHi+=1;if(this.seqHi>Ji||this.seqHi===Ji&&this.seqLo>=um0)this.setPre(),this.initSeqAndInc();this.fillSeq();let $=this.buf;return String.fromCharCode($[0],$[1],$[2],$[3],$[4],$[5],$[6],$[7],$[8],$[9],$[10],$[11],$[12],$[13],$[14],$[15],$[16],$[17],$[18],$[19],$[20],$[21])}reset(){this.init()}}dt1.NuidImpl=lm0;dt1.nuid=new lm0});var ot1=_((pt1)=>{Object.defineProperty(pt1,"__esModule",{value:!0});pt1.nuid=pt1.Nuid=void 0;var nt1=it1();pt1.Nuid=nt1.NuidImpl;pt1.nuid=nt1.nuid});var s90=_((a90)=>{Object.defineProperty(a90,"__esModule",{value:!0});a90.nuid=a90.Nuid=void 0;var rt1=ot1();Object.defineProperty(a90,"Nuid",{enumerable:!0,get:function(){return rt1.Nuid}});Object.defineProperty(a90,"nuid",{enumerable:!0,get:function(){return rt1.nuid}})});var _w=_((at1)=>{Object.defineProperty(at1,"__esModule",{value:!0});at1.DEFAULT_HOST=at1.DEFAULT_PORT=at1.Match=void 0;at1.syncIterator=vn6;at1.createInbox=xn6;var Cn6=s90(),_n6=tY();at1.Match={Exact:"exact",CanonicalMIME:"canonical",IgnoreCase:"insensitive"};function vn6($){let Z=$[Symbol.asyncIterator]();return{async next(){let X=await Z.next();if(X.done)return Promise.resolve(null);return Promise.resolve(X.value)}}}function xn6($=""){if($=$||"_INBOX",typeof $!=="string")throw TypeError("prefix must be a string");return $.split(".").forEach((Z)=>{if(Z==="*"||Z===">")throw _n6.InvalidArgumentError.format("prefix",`cannot have wildcards ('${$}')`)}),`${$}.${Cn6.nuid.next()}`}at1.DEFAULT_PORT=4222;at1.DEFAULT_HOST="127.0.0.1"});var Ki=_((Zo1)=>{Object.defineProperty(Zo1,"__esModule",{value:!0});Zo1.DataBuffer=void 0;var et1=pY();class $o1{buffers;byteLength;constructor(){this.buffers=[],this.byteLength=0}static concat(...$){let Z=0;for(let Y=0;Y<$.length;Y++)Z+=$[Y].length;let X=new Uint8Array(Z),Q=0;for(let Y=0;Y<$.length;Y++)X.set($[Y],Q),Q+=$[Y].length;return X}static fromAscii($){if(!$)$="";return et1.TE.encode($)}static toAscii($){return et1.TD.decode($)}reset(){this.buffers.length=0,this.byteLength=0}pack(){if(this.buffers.length>1){let $=new Uint8Array(this.byteLength),Z=0;for(let X=0;X<this.buffers.length;X++)$.set(this.buffers[X],Z),Z+=this.buffers[X].length;this.buffers.length=0,this.buffers.push($)}}shift(){if(this.buffers.length){let $=this.buffers.shift();if($)return this.byteLength-=$.length,$}return new Uint8Array(0)}drain($){if(this.buffers.length){this.pack();let Z=this.buffers.pop();if(Z){let X=this.byteLength;if($===void 0||$>X)$=X;let Q=Z.subarray(0,$);if(X>$)this.buffers.push(Z.subarray($));return this.byteLength=X-$,Q}}return new Uint8Array(0)}fill($,...Z){if($)this.buffers.push($),this.byteLength+=$.length;for(let X=0;X<Z.length;X++)if(Z[X]&&Z[X].length)this.buffers.push(Z[X]),this.byteLength+=Z[X].length}peek(){if(this.buffers.length)return this.pack(),this.buffers[0];return new Uint8Array(0)}size(){return this.byteLength}length(){return this.buffers.length}}Zo1.DataBuffer=$o1});var UE=_((Yo1)=>{Object.defineProperty(Yo1,"__esModule",{value:!0});Yo1.LF=Yo1.CR=Yo1.CRLF=Yo1.CR_LF_LEN=Yo1.CR_LF=void 0;Yo1.setTransportFactory=ln6;Yo1.defaultPort=dn6;Yo1.getUrlParseFn=mn6;Yo1.newTransport=in6;Yo1.getResolveFn=nn6;Yo1.protoLen=Qo1;Yo1.extractProtocolMessage=pn6;var hn6=pY(),un6=_w(),cn6=Ki(),oY;function ln6($){oY=$}function dn6(){return oY!==void 0&&oY.defaultPort!==void 0?oY.defaultPort:un6.DEFAULT_PORT}function mn6(){return oY!==void 0&&oY.urlParseFn?oY.urlParseFn:void 0}function in6(){if(!oY||typeof oY.factory!=="function")throw Error("transport fn is not set");return oY.factory()}function nn6(){return oY!==void 0&&oY.dnsResolveFn?oY.dnsResolveFn:void 0}Yo1.CR_LF=`\r
|
|
1335
|
+
`);Q=G.pop()??"";for(let J of G){let K=Yi(J).replace(/^\[\d+\]\s*/,"").trim();if(!K)continue;Vw({method:"",path:"",status:0,duration:0,timestamp:new Date,rawLine:K})}}(async()=>{for(;;){let{done:G,value:J}=await Z.read();if(G)break;Q+=X.decode(J,{stream:!0}),Y()}if(Q.trim()){let G=Yi(Q).replace(/^\[\d+\]\s*/,"").trim();if(G)Vw({method:"",path:"",status:0,duration:0,timestamp:new Date,rawLine:G})}})()}async function Qi6($){let{baseUrl:Z,noTui:X}=$,Q=process.env.HOST==="0.0.0.0"&&Boolean(process.env.PORT),Y=Q?process.env.PORT:$.vitePort,G=Z||`http://localhost:${Y}`,J=Q?await Qi(Number(Y)+1):await Qi(Number($.port)),{settings:K,services:W,managedServiceNames:H}=await h90({port:String(J),home:$.home,baseUrl:$.baseUrl,localMode:$.localMode,skipMigrations:$.skipMigrations,noTui:$.noTui,vitePort:$.vitePort});for(let L of W)GE({name:L.name,status:"ready",port:L.port});Zi();let U=Xi6(import.meta.dir,"..","..","..","..",".."),N=X===!0,F=Bun.spawn(["bun","run","dev:servers"],{cwd:U,env:{...process.env,PORT:String(K.port),VITE_PORT:String(Y),DATABASE_URL:K.databaseUrl,NATS_URL:K.natsUrls.join(","),NODE_ENV:K.nodeEnv,BASE_URL:G,DECOCMS_LOCAL_MODE:String(K.localMode),DECOCMS_HOME:K.dataDir,DATA_DIR:K.dataDir,DECO_CLI:"1",...K.betterAuthSecret?{BETTER_AUTH_SECRET:K.betterAuthSecret}:{},...K.s3Endpoint?{S3_ENDPOINT:K.s3Endpoint,S3_BUCKET:K.s3Bucket??"",S3_ACCESS_KEY_ID:K.s3AccessKeyId??"",S3_SECRET_ACCESS_KEY:K.s3SecretAccessKey??"",S3_FORCE_PATH_STYLE:String(K.s3ForcePathStyle)}:{},...K.natsPublicUrl&&K.natsAccountJwt&&K.natsAccountSigningKey?{NATS_PUBLIC_URL:K.natsPublicUrl,NATS_ACCOUNT_JWT:K.natsAccountJwt,NATS_ACCOUNT_SIGNING_KEY:K.natsAccountSigningKey,NATS_OPERATOR_JWT:K.natsOperatorJwt??"",NATS_TUNNEL_PUBLIC_ENABLED:"true",...K.natsCredsPath?{NATS_CREDS:K.natsCredsPath}:{}}:{}},stdio:["inherit",N?"inherit":"pipe",N?"inherit":"pipe"]});if(!N)Jt1(F.stdout),Jt1(F.stderr);Xi(G),GE({name:"Vite",status:"ready",port:Number(Y)}),GE({name:"API",status:"ready",port:Number(K.port)});let B=async(L)=>{if(F.kill(L),await F.exited,H.length>0){let{stopServices:D}=await Promise.resolve().then(() => (o50(),t50));await D(K.dataDir)}};return process.on("SIGINT",()=>B("SIGINT")),process.on("SIGTERM",()=>B("SIGTERM")),{port:Number(Y),process:F}}var Am0=O(()=>{Lm0();JE();jm0()});var l90;var Tm0=O(()=>{l90={name:"decocms",version:"4.217.13",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/api"},bugs:{url:"https://github.com/decocms/studio/issues"},type:"module",bin:{deco:"./dist/server/cli.js"},files:["dist/**/*"],scripts:{dev:"bun run migrate && bun run dev:server","dev:server":"bun run --cwd=../../packages/sandbox build && NODE_ENV=development bun --env-file=.env --hot run src/index.ts",build:"bun run build:server","build:server":"bun run scripts/bundle-server-script.ts --dist ./dist/server","generate:tool-contracts":"bun run scripts/generate-tool-contracts.ts","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 src","better-auth:migrate":"bunx --bun @better-auth/cli migrate -y --config src/auth/index.ts",prepublishOnly:"bun run --cwd=../.. build:studio"},optionalDependencies:{"@duckdb/node-api":"^1.5.0-r.1"},dependencies:{"@ai-sdk/anthropic":"^3.0.85","@ai-sdk/google":"^3.0.83","@ai-sdk/openai":"^3.0.73","@anthropic-ai/sdk":"^0.105.0","@aws-sdk/client-s3":"^3.1013.0","@aws-sdk/client-sts":"^3.1013.0","@aws-sdk/lib-storage":"^3.1013.0","@aws-sdk/s3-request-presigner":"^3.1013.0","@clickhouse/client":"^1.8.1","@dbos-inc/dbos-sdk":"^4.21.6","@inkjs/ui":"^2.0.0","@nats-io/jetstream":"3.4.0","@nats-io/kv":"3.4.0","@nats-io/nats-core":"3.4.0","@nats-io/transport-node":"3.4.0","@openrouter/ai-sdk-provider":"^2.9.1","@opentelemetry/core":"^2.6.0","embedded-postgres":"^18.3.0-beta.16",ink:"^6.8.0",kysely:"^0.28.12","posthog-node":"^5.0.0",react:"^19.2.6","react-dom":"^19.2.6"},devDependencies:{"@ai-sdk/provider":"^3.0.10","@better-auth/sso":"1.4.1","@decocms/better-auth":"1.5.17","@decocms/bindings":"workspace:*","@decocms/mcp-utils":"workspace:*","@decocms/runtime":"workspace:*","@decocms/sandbox":"workspace:*","@decocms/shared":"workspace:*","@jitl/quickjs-wasmfile-release-sync":"0.31.0","@modelcontextprotocol/sdk":"1.29.0","@nats-io/jwt":"0.0.10-5","@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/resources":"^2.6.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","@types/bun":"^1.3.1","@types/google.maps":"^3.65.2","@types/pg":"^8.15.6","@types/react-syntax-highlighter":"^15.5.13","@vercel/nft":"^1.1.1",ai:"^6.0.208","better-auth":"1.4.22",croner:"^9.1.0",degit:"^2.8.4",hono:"^4.10.7",jose:"^6.0.11",nanoid:"^5.1.6",pg:"^8.16.3",typescript:"^7.0.2",typescript5:"npm:typescript@^5.9.3",zod:"4.3.6"},homepage:"https://github.com/decocms/studio",keywords:["mcp","model-context-protocol","ai","gateway","self-hosted","tools"],license:"MIT",publishConfig:{access:"public"}}});import{Box as Gi6,Text as Kt1}from"ink";import{jsx as Ji6,jsxs as Wt1}from"react/jsx-runtime";function Ht1({version:$}){return Wt1(Gi6,{flexDirection:"column",marginTop:1,children:[L90.map((Z,X)=>Ji6(Kt1,{color:D90[X],children:Z},X)),Wt1(Kt1,{dimColor:!0,children:[" v",$]})]})}var Ut1=O(()=>{dm()});import{Box as KE,Text as kw}from"ink";import{Spinner as Ki6}from"@inkjs/ui";import{jsx as nY,jsxs as Ab}from"react/jsx-runtime";function Nt1({status:$}){if($==="pending")return nY(Ki6,{label:""});return nY(kw,{color:"green",children:"\u2713"})}function Wi6($){return`${$.name}: ${$.port||"...."}`}function Ft1({services:$,migrationsStatus:Z,home:X,serverUrl:Q}){return Ab(KE,{flexDirection:"column",paddingBottom:1,children:[nY(Ht1,{version:l90.version}),nY(KE,{marginBottom:1,children:nY(kw,{dimColor:!0,children:"\u2500".repeat(80)})}),nY(KE,{children:Ab(kw,{dimColor:!0,children:["Home: ",X]})}),Ab(KE,{gap:2,children:[$.map((Y)=>Ab(KE,{gap:1,children:[nY(kw,{children:Wi6(Y)}),nY(Nt1,{status:Y.status})]},Y.name)),Ab(KE,{gap:1,children:[nY(kw,{children:"Migrations"}),nY(Nt1,{status:Z})]})]}),nY(KE,{children:Q?Ab(kw,{children:["Open in browser: ",nY(kw,{color:"cyan",children:Q})]}):nY(kw,{dimColor:!0,children:"Starting..."})})]})}var wt1=O(()=>{Tm0();Ut1()});import{Box as Hi6,Text as Gi}from"ink";import{jsx as Rm0,jsxs as Im0}from"react/jsx-runtime";function Ui6($){if($>=500)return"red";if($>=400)return"yellow";if($>=300)return"cyan";return"green"}function Bt1({logs:$}){return Rm0(Hi6,{flexDirection:"column",children:$.map((Z,X)=>{if(Z.rawLine)return Rm0(Gi,{dimColor:!0,children:Z.rawLine},X);let Q=Z.duration<1000?`${Z.duration}ms`:`${(Z.duration/1000).toFixed(1)}s`;return Im0(Gi,{children:[Im0(Gi,{dimColor:!0,children:[Z.method.padEnd(6)," ",Z.path.padEnd(30)," "]}),Rm0(Gi,{color:Ui6(Z.status),children:Z.status}),Im0(Gi,{dimColor:!0,children:[" ",Q.padStart(8)]})]},X)})})}var Ot1=()=>{};var qm0={};B0(qm0,{App:()=>wi6});import{Box as Ni6}from"ink";import{useSyncExternalStore as Fi6}from"react";import{jsx as Lt1,jsxs as Bi6}from"react/jsx-runtime";function wi6({home:$}){let Z=Fi6(zm0,Em0);return Bi6(Ni6,{flexDirection:"column",children:[Lt1(Ft1,{services:Z.services,migrationsStatus:Z.migrationsStatus,home:$,serverUrl:Z.serverUrl}),Lt1(Bt1,{logs:Z.logs})]})}var Mm0=O(()=>{wt1();Ot1();JE()});var IJ="thread-gate",hU="decopilot-hosted-harness",X3="automations",Sw="background-tools",WE="task-board-github-reads";var Dt1="7";function Et1($){return{name:"decocms",systemDatabaseUrl:$.systemDatabaseUrl,systemDatabaseSchemaName:"dbos",systemDatabasePoolSize:$.poolSize,runAdminServer:!1,executorID:$.executorID,applicationVersion:Dt1,...$.listenQueues!==void 0?{listenQueues:$.listenQueues}:{}}}var zt1=()=>{};function Oi6(){let $=(process.env.BUN_OPTIONS??"").split(/\s+/).filter(Boolean);return[...process.argv.slice(1),...$]}function Vm0($,Z){for(let X=0;X<$.length;X++){let Q=$[X];if(Q===void 0)continue;if(Q===Z)return $[X+1];if(Q.startsWith(`${Z}=`))return Q.slice(Z.length+1)}return}function jt1(){let $=Oi6();if($.includes("--cpu-prof")){console.log(JSON.stringify({msg:"cpu-profiling-active",dir:Vm0($,"--cpu-prof-dir")??process.cwd(),name:Vm0($,"--cpu-prof-name"),markdown:$.includes("--cpu-prof-md"),intervalUs:Number(Vm0($,"--cpu-prof-interval")??1000),note:"profile is written on process exit"}));return}if(process.env.CPU_PROFILE)console.warn(JSON.stringify({msg:"cpu-profiling-requested-but-inactive",hint:'CPU profiling is a Bun launch flag. Set BUN_OPTIONS="--cpu-prof --cpu-prof-md --cpu-prof-dir=/tmp" before starting the process.'}))}function Pt1(){if(process.env.HEAP_WATCH!=="1")return()=>{};let $=Number(process.env.HEAP_WATCH_INTERVAL_MS??60000),Z=async()=>{let X=ZE();if(!X)return;let Q={};try{let{heapStats:Y}=await import("bun:jsc"),G=Y(),J=Object.entries(G.objectTypeCounts).sort((K,W)=>W[1]-K[1]).slice(0,20);Q={objectCount:G.objectCount,heapSize:G.heapSize,top:Object.fromEntries(J)}}catch{}console.log(JSON.stringify({msg:"heap-watch",ts:new Date().toISOString(),uptimeS:Math.round(process.uptime()),rss:X.rss,heapUsed:X.heapUsed,heapTotal:X.heapTotal,external:X.external,arrayBuffers:X.arrayBuffers,...Q}))};return Z().catch(()=>{}),d90=setInterval(()=>void Z().catch(()=>{}),$),d90.unref?.(),process.on("SIGUSR2",()=>{try{let X=Bun.generateHeapSnapshot("v8"),Q=typeof X==="string"?X:JSON.stringify(X),Y=`/tmp/heap-${process.pid}-${Date.now()}.heapsnapshot`;Bun.write(Y,Q),console.log(JSON.stringify({msg:"heap-snapshot-written",path:Y}))}catch(X){console.error("[heap-watch] snapshot failed:",X)}}),()=>{if(d90)clearInterval(d90)}}var d90;var At1=()=>{};import*as Li6 from"bun:jsc";function Tt1(){if(process.env.STALL_WATCHDOG!=="1")return()=>{};let $=Number(process.env.STALL_WATCHDOG_MS??100),Z=Number(process.env.STALL_WATCHDOG_TICK_MS??50);try{Di6()}catch(G){return console.error("[stall-watchdog] failed to start sampling profiler:",G),()=>{}}let X,Q=performance.now()+Z,Y=()=>{let G=performance.now(),J=G-Q;Q=G+Z;let K=[];try{K=Ei6()?.traces??[]}catch{}if(J>$&&K.length>0){let W=new Map;for(let U of K){let N=U.frames.find((B)=>B.sourceURL&&!/Unknown Executable/.test(B.category??""))??U.frames[0];if(!N)continue;let F=(N.sourceURL??"?").replace(/^.*\/node_modules\//,"node_modules/"),w=`${N.name??"?"} @ ${F}:${N.line??"?"}`;W.set(w,(W.get(w)??0)+1)}let H=[...W.entries()].sort((U,N)=>N[1]-U[1]).slice(0,8).map(([U,N])=>({frame:U,count:N}));console.warn(JSON.stringify({msg:"stall-stack",ts:new Date().toISOString(),lagMs:Math.round(J),samplesInWindow:K.length,top:H}))}X=setTimeout(Y,Z),X.unref?.()};return X=setTimeout(Y,Z),X.unref?.(),()=>{if(X)clearTimeout(X)}}var Di6,Ei6;var Rt1=O(()=>{({startSamplingProfiler:Di6,samplingProfilerStackTraces:Ei6}=Li6)});function It1(){jt1();let $=[Pt1(),Am1(),Tt1()];return()=>{for(let Z of $)Z()}}var qt1=O(()=>{ku0();At1();Rt1()});var HE=_((Mt1)=>{Object.defineProperty(Mt1,"__esModule",{value:!0});Mt1.RepublishHeaders=Mt1.DirectMsgHeaders=Mt1.JsHeaders=Mt1.AdvisoryKind=void 0;Mt1.isOrderedPushConsumerOptions=zi6;Mt1.isPullConsumer=ji6;Mt1.isPushConsumer=Pi6;Mt1.isBoundPushConsumerOptions=Ai6;function zi6($){if($&&typeof $==="object")return"name_prefix"in $||"deliver_subject_prefix"in $||"filter_subjects"in $||"filter_subject"in $||"deliver_policy"in $||"opt_start_seq"in $||"opt_start_time"in $||"replay_policy"in $||"inactive_threshold"in $||"headers_only"in $||"deliver_prefix"in $;return!1}function ji6($){return $.isPullConsumer()}function Pi6($){return $.isPushConsumer()}function Ai6($){if($&&typeof $==="object")return"deliver_subject"in $||"deliver_group"in $||"idle_heartbeat"in $;return!1}Mt1.AdvisoryKind={API:"api_audit",StreamAction:"stream_action",ConsumerAction:"consumer_action",SnapshotCreate:"snapshot_create",SnapshotComplete:"snapshot_complete",RestoreCreate:"restore_create",RestoreComplete:"restore_complete",MaxDeliver:"max_deliver",Terminated:"terminated",Ack:"consumer_ack",StreamLeaderElected:"stream_leader_elected",StreamQuorumLost:"stream_quorum_lost",ConsumerLeaderElected:"consumer_leader_elected",ConsumerQuorumLost:"consumer_quorum_lost"};Mt1.JsHeaders={StreamSourceHdr:"Nats-Stream-Source",LastConsumerSeqHdr:"Nats-Last-Consumer",LastStreamSeqHdr:"Nats-Last-Stream",ConsumerStalledHdr:"Nats-Consumer-Stalled",MessageSizeHdr:"Nats-Msg-Size",RollupHdr:"Nats-Rollup",RollupValueSubject:"sub",RollupValueAll:"all",PendingMessagesHdr:"Nats-Pending-Messages",PendingBytesHdr:"Nats-Pending-Bytes",RequiredApiLevel:"Nats-Required-Api-Level"};Mt1.DirectMsgHeaders={Stream:"Nats-Stream",Sequence:"Nats-Sequence",TimeStamp:"Nats-Time-Stamp",Subject:"Nats-Subject",LastSequence:"Nats-Last-Sequence",NumPending:"Nats-Num-Pending"};Mt1.RepublishHeaders={Stream:"Nats-Stream",Subject:"Nats-Subject",Sequence:"Nats-Sequence",LastSequence:"Nats-Last-Sequence",Size:"Nats-Msg-Size"}});var pY=_((kt1)=>{Object.defineProperty(kt1,"__esModule",{value:!0});kt1.TD=kt1.TE=kt1.Empty=void 0;kt1.encode=Ci6;kt1.decode=_i6;kt1.Empty=new Uint8Array(0);kt1.TE=new TextEncoder;kt1.TD=new TextDecoder;function Si6(...$){let Z=0;for(let Y=0;Y<$.length;Y++)Z+=$[Y].length;let X=new Uint8Array(Z),Q=0;for(let Y=0;Y<$.length;Y++)X.set($[Y],Q),Q+=$[Y].length;return X}function Ci6(...$){let Z=[];for(let X=0;X<$.length;X++)Z.push(kt1.TE.encode($[X]));if(Z.length===0)return kt1.Empty;if(Z.length===1)return Z[0];return Si6(...Z)}function _i6($){if(!$||$.length===0)return"";return kt1.TD.decode($)}});var tY=_((_t1)=>{Object.defineProperty(_t1,"__esModule",{value:!0});_t1.errors=_t1.PermissionViolationError=_t1.NoRespondersError=_t1.TimeoutError=_t1.RequestError=_t1.ProtocolError=_t1.ConnectionError=_t1.DrainingConnectionError=_t1.ClosedConnectionError=_t1.AuthorizationError=_t1.UserAuthenticationExpiredError=_t1.InvalidOperationError=_t1.InvalidArgumentError=_t1.InvalidSubjectError=void 0;class Sm0 extends Error{constructor($,Z){super(`illegal subject: '${$}'`,Z);this.name="InvalidSubjectError"}}_t1.InvalidSubjectError=Sm0;class m90 extends Error{constructor($,Z){super($,Z);this.name="InvalidArgumentError"}static format($,Z,X){if(Array.isArray(Z)&&Z.length>1)Z=Z[0];if(Array.isArray($))$=$.map((Q)=>`'${Q}'`),$=$.join(",");else $=`'${$}'`;return new m90(`${$} ${Z}`,X)}}_t1.InvalidArgumentError=m90;class Cm0 extends Error{constructor($,Z){super($,Z);this.name="InvalidOperationError"}}_t1.InvalidOperationError=Cm0;class i90 extends Error{constructor($,Z){super($,Z);this.name="UserAuthenticationExpiredError"}static parse($){if($.toLowerCase().indexOf("user authentication expired")!==-1)return new i90($);return null}}_t1.UserAuthenticationExpiredError=i90;class n90 extends Error{constructor($,Z){super($,Z);this.name="AuthorizationError"}static parse($){let Z=["authorization violation","account authentication expired","authentication timeout"],X=$.toLowerCase();for(let Q=0;Q<Z.length;Q++)if(X.indexOf(Z[Q])!==-1)return new n90($);return null}}_t1.AuthorizationError=n90;class _m0 extends Error{constructor(){super("closed connection");this.name="ClosedConnectionError"}}_t1.ClosedConnectionError=_m0;class vm0 extends Error{constructor(){super("connection draining");this.name="DrainingConnectionError"}}_t1.DrainingConnectionError=vm0;class xm0 extends Error{constructor($,Z){super($,Z);this.name="ConnectionError"}}_t1.ConnectionError=xm0;class fm0 extends Error{constructor($,Z){super($,Z);this.name="ProtocolError"}}_t1.ProtocolError=fm0;class bm0 extends Error{constructor($="",Z){super($,Z);this.name="RequestError"}isNoResponders(){return this.cause instanceof p90}}_t1.RequestError=bm0;class ym0 extends Error{constructor($){super("timeout",$);this.name="TimeoutError"}}_t1.TimeoutError=ym0;class p90 extends Error{subject;constructor($,Z){super(`no responders: '${$}'`,Z);this.subject=$,this.name="NoResponders"}}_t1.NoRespondersError=p90;class t90 extends Error{operation;subject;queue;constructor($,Z,X,Q,Y){super($,Y);this.name="PermissionViolationError",this.operation=Z,this.subject=X,this.queue=Q}static parse($){if(($?$.toLowerCase():"").indexOf("permissions violation")===-1)return null;let X="publish",Q="",Y=void 0,G=$.match(/(Publish|Subscription) to "(\S+)"/);if(G){if(X=G[1].toLowerCase(),Q=G[2],X==="subscription"){let J=$.match(/using queue "(\S+)"/);if(J)Y=J[1]}}return new t90($,X,Q,Y)}}_t1.PermissionViolationError=t90;_t1.errors={AuthorizationError:n90,ClosedConnectionError:_m0,ConnectionError:xm0,DrainingConnectionError:vm0,InvalidArgumentError:m90,InvalidOperationError:Cm0,InvalidSubjectError:Sm0,NoRespondersError:p90,PermissionViolationError:t90,ProtocolError:fm0,RequestError:bm0,TimeoutError:ym0,UserAuthenticationExpiredError:i90}});var qJ=_((yt1)=>{Object.defineProperty(yt1,"__esModule",{value:!0});yt1.SimpleMutex=yt1.Perf=void 0;yt1.extend=oi6;yt1.render=ri6;yt1.timeout=ai6;yt1.delay=si6;yt1.deadline=ei6;yt1.deferred=hm0;yt1.debugDeferred=$n6;yt1.shuffle=Zn6;yt1.collect=Xn6;yt1.jitter=bt1;yt1.backoff=Qn6;yt1.nanos=Yn6;yt1.millis=Gn6;yt1.randomToken=Wn6;var ti6=pY(),gm0=tY();function oi6($,...Z){for(let X=0;X<Z.length;X++){let Q=Z[X];Object.keys(Q).forEach(function(Y){$[Y]=Q[Y]})}return $}function ri6($){return ti6.TD.decode($).replace(/\n/g,"\u240A").replace(/\r/g,"\u240D")}function ai6($,Z=!0){let X=Z?new gm0.TimeoutError:null,Q,Y,G=new Promise((J,K)=>{Q={cancel:()=>{if(Y)clearTimeout(Y)}},Y=setTimeout(()=>{if(X===null)K(new gm0.TimeoutError);else K(X)},$)});return Object.assign(G,Q)}function si6($=0){let Z,X=new Promise((Q)=>{let Y=setTimeout(()=>{Q()},$);Z={cancel:()=>{if(Y)clearTimeout(Y),Q()}}});return Object.assign(X,Z)}async function ei6($,Z=1000){let X=hm0(),Q=setTimeout(()=>{X.reject(new gm0.TimeoutError)},Z);try{return await Promise.race([$,X])}finally{clearTimeout(Q)}}function hm0(){let $={},Z=new Promise((X,Q)=>{$={resolve:X,reject:Q}});return Object.assign(Z,$)}function $n6(){let $={},Z=new Promise((X,Q)=>{$={resolve:(Y)=>{console.trace("resolve",Y),X(Y)},reject:(Y)=>{console.trace("reject"),Q(Y)}}});return Object.assign(Z,$)}function Zn6($){for(let Z=$.length-1;Z>0;Z--){let X=Math.floor(Math.random()*(Z+1));[$[Z],$[X]]=[$[X],$[Z]]}return $}async function Xn6($){let Z=[];for await(let X of $)Z.push(X);return Z}class xt1{timers;measures;constructor(){this.timers=new Map,this.measures=new Map}mark($){this.timers.set($,performance.now())}measure($,Z,X){let Q=this.timers.get(Z);if(Q===void 0)throw Error(`${Z} is not defined`);let Y=this.timers.get(X);if(Y===void 0)throw Error(`${X} is not defined`);this.measures.set($,Y-Q)}getEntries(){let $=[];return this.measures.forEach((Z,X)=>{$.push({name:X,duration:Z})}),$}}yt1.Perf=xt1;class ft1{max;current;waiting;constructor($=1){this.max=$,this.current=0,this.waiting=[]}lock(){if(this.current++,this.current<=this.max)return Promise.resolve();let $=hm0();return this.waiting.push($),$}unlock(){this.current--,this.waiting.pop()?.resolve()}}yt1.SimpleMutex=ft1;function bt1($){if($===0)return 0;return Math.floor($/2+Math.random()*$)}function Qn6($=[0,250,250,500,500,3000,5000]){if(!Array.isArray($))$=[0,250,250,500,500,3000,5000];let Z=$.length-1;return{backoff(X){return bt1(X>Z?$[Z]:$[X])}}}function Yn6($){return $*1e6}function Gn6($){return Math.floor($/1e6)}var Jn6="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz",uU=new Uint8Array(62);for(let $=0;$<62;$++)uU[$]=Jn6.charCodeAt($);var Kn6=218340105584896;function Wn6(){let $=Math.floor(Math.random()*Kn6),Z=$%62,X=uU[Z];$=($-Z)/62,Z=$%62;let Q=uU[Z];$=($-Z)/62,Z=$%62;let Y=uU[Z];$=($-Z)/62,Z=$%62;let G=uU[Z];$=($-Z)/62,Z=$%62;let J=uU[Z];$=($-Z)/62,Z=$%62;let K=uU[Z];$=($-Z)/62,Z=$%62;let W=uU[Z];$=($-Z)/62;let H=uU[$];return String.fromCharCode(X,Q,Y,G,J,K,W,H)}});var it1=_((dt1)=>{Object.defineProperty(dt1,"__esModule",{value:!0});dt1.nuid=dt1.NuidImpl=void 0;var Rn6="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz",Cw=62,r90=12,ct1=10,ht1=33,In6=333,ut1=r90+ct1,cm0=new Uint8Array(Cw);for(let $=0;$<Cw;$++)cm0[$]=Rn6.charCodeAt($);var o90=4294967296,lt1=BigInt(Cw)**BigInt(ct1),Ji=Number(lt1/(1n<<32n)),um0=Number(lt1%(1n<<32n));function qn6($){for(let Z=0;Z<$.length;Z++)$[Z]=Math.floor(Math.random()*256)}function Mn6($){if(globalThis?.crypto?.getRandomValues)globalThis.crypto.getRandomValues($);else qn6($)}class lm0{buf;cbuf;seqHi;seqLo;inc;inited;constructor(){this.buf=new Uint8Array(ut1),this.cbuf=new Uint8Array(r90),this.inited=!1}init(){this.inited=!0,this.setPre(),this.initSeqAndInc(),this.fillSeq()}initSeqAndInc(){let $=0;do this.seqHi=Math.floor(Math.random()*(Ji+1)),this.seqLo=Math.floor(Math.random()*o90);while($++<8&&this.seqHi===Ji&&this.seqLo>=um0);if(this.seqHi===Ji&&this.seqLo>=um0)this.seqLo=0;this.inc=Math.random()*(In6-ht1)+ht1|0}setPre(){Mn6(this.cbuf);for(let $=0;$<r90;$++)this.buf[$]=cm0[this.cbuf[$]%Cw]}fillSeq(){let $=this.seqHi,Z=this.seqLo;for(let X=ut1-1;X>=r90;X--){let Q=Math.floor($/Cw),G=($-Q*Cw)*o90+Z,J=Math.floor(G/Cw),K=G-J*Cw;this.buf[X]=cm0[K],$=Q,Z=J}}next(){if(!this.inited)this.init();if(this.seqLo+=this.inc,this.seqLo>=o90)this.seqLo-=o90,this.seqHi+=1;if(this.seqHi>Ji||this.seqHi===Ji&&this.seqLo>=um0)this.setPre(),this.initSeqAndInc();this.fillSeq();let $=this.buf;return String.fromCharCode($[0],$[1],$[2],$[3],$[4],$[5],$[6],$[7],$[8],$[9],$[10],$[11],$[12],$[13],$[14],$[15],$[16],$[17],$[18],$[19],$[20],$[21])}reset(){this.init()}}dt1.NuidImpl=lm0;dt1.nuid=new lm0});var ot1=_((pt1)=>{Object.defineProperty(pt1,"__esModule",{value:!0});pt1.nuid=pt1.Nuid=void 0;var nt1=it1();pt1.Nuid=nt1.NuidImpl;pt1.nuid=nt1.nuid});var s90=_((a90)=>{Object.defineProperty(a90,"__esModule",{value:!0});a90.nuid=a90.Nuid=void 0;var rt1=ot1();Object.defineProperty(a90,"Nuid",{enumerable:!0,get:function(){return rt1.Nuid}});Object.defineProperty(a90,"nuid",{enumerable:!0,get:function(){return rt1.nuid}})});var _w=_((at1)=>{Object.defineProperty(at1,"__esModule",{value:!0});at1.DEFAULT_HOST=at1.DEFAULT_PORT=at1.Match=void 0;at1.syncIterator=vn6;at1.createInbox=xn6;var Cn6=s90(),_n6=tY();at1.Match={Exact:"exact",CanonicalMIME:"canonical",IgnoreCase:"insensitive"};function vn6($){let Z=$[Symbol.asyncIterator]();return{async next(){let X=await Z.next();if(X.done)return Promise.resolve(null);return Promise.resolve(X.value)}}}function xn6($=""){if($=$||"_INBOX",typeof $!=="string")throw TypeError("prefix must be a string");return $.split(".").forEach((Z)=>{if(Z==="*"||Z===">")throw _n6.InvalidArgumentError.format("prefix",`cannot have wildcards ('${$}')`)}),`${$}.${Cn6.nuid.next()}`}at1.DEFAULT_PORT=4222;at1.DEFAULT_HOST="127.0.0.1"});var Ki=_((Zo1)=>{Object.defineProperty(Zo1,"__esModule",{value:!0});Zo1.DataBuffer=void 0;var et1=pY();class $o1{buffers;byteLength;constructor(){this.buffers=[],this.byteLength=0}static concat(...$){let Z=0;for(let Y=0;Y<$.length;Y++)Z+=$[Y].length;let X=new Uint8Array(Z),Q=0;for(let Y=0;Y<$.length;Y++)X.set($[Y],Q),Q+=$[Y].length;return X}static fromAscii($){if(!$)$="";return et1.TE.encode($)}static toAscii($){return et1.TD.decode($)}reset(){this.buffers.length=0,this.byteLength=0}pack(){if(this.buffers.length>1){let $=new Uint8Array(this.byteLength),Z=0;for(let X=0;X<this.buffers.length;X++)$.set(this.buffers[X],Z),Z+=this.buffers[X].length;this.buffers.length=0,this.buffers.push($)}}shift(){if(this.buffers.length){let $=this.buffers.shift();if($)return this.byteLength-=$.length,$}return new Uint8Array(0)}drain($){if(this.buffers.length){this.pack();let Z=this.buffers.pop();if(Z){let X=this.byteLength;if($===void 0||$>X)$=X;let Q=Z.subarray(0,$);if(X>$)this.buffers.push(Z.subarray($));return this.byteLength=X-$,Q}}return new Uint8Array(0)}fill($,...Z){if($)this.buffers.push($),this.byteLength+=$.length;for(let X=0;X<Z.length;X++)if(Z[X]&&Z[X].length)this.buffers.push(Z[X]),this.byteLength+=Z[X].length}peek(){if(this.buffers.length)return this.pack(),this.buffers[0];return new Uint8Array(0)}size(){return this.byteLength}length(){return this.buffers.length}}Zo1.DataBuffer=$o1});var UE=_((Yo1)=>{Object.defineProperty(Yo1,"__esModule",{value:!0});Yo1.LF=Yo1.CR=Yo1.CRLF=Yo1.CR_LF_LEN=Yo1.CR_LF=void 0;Yo1.setTransportFactory=ln6;Yo1.defaultPort=dn6;Yo1.getUrlParseFn=mn6;Yo1.newTransport=in6;Yo1.getResolveFn=nn6;Yo1.protoLen=Qo1;Yo1.extractProtocolMessage=pn6;var hn6=pY(),un6=_w(),cn6=Ki(),oY;function ln6($){oY=$}function dn6(){return oY!==void 0&&oY.defaultPort!==void 0?oY.defaultPort:un6.DEFAULT_PORT}function mn6(){return oY!==void 0&&oY.urlParseFn?oY.urlParseFn:void 0}function in6(){if(!oY||typeof oY.factory!=="function")throw Error("transport fn is not set");return oY.factory()}function nn6(){return oY!==void 0&&oY.dnsResolveFn?oY.dnsResolveFn:void 0}Yo1.CR_LF=`\r
|
|
1336
1336
|
`;Yo1.CR_LF_LEN=Yo1.CR_LF.length;Yo1.CRLF=cn6.DataBuffer.fromAscii(Yo1.CR_LF);Yo1.CR=new Uint8Array(Yo1.CRLF)[0];Yo1.LF=new Uint8Array(Yo1.CRLF)[1];function Qo1($){for(let Z=0;Z<$.length;Z++){let X=Z+1;if($.byteLength>X&&$[Z]===Yo1.CR&&$[X]===Yo1.LF)return X+1}return 0}function pn6($){let Z=Qo1($);if(Z>0){let Q=new Uint8Array($).slice(0,Z);return hn6.TD.decode(Q)}return""}});var pm0=_((Fo1)=>{Object.defineProperty(Fo1,"__esModule",{value:!0});Fo1.ipV4=Ho1;Fo1.isIP=Yp6;Fo1.parseIP=Uo1;var Wi=4,NE=16,e90=48,Wo1=57,Jo1=65,Xp6=70,Ko1=97,Qp6=102,nm0=16777215;function Ho1($,Z,X,Q){let Y=new Uint8Array(NE);return[0,0,0,0,0,0,0,0,0,0,255,255].forEach((J,K)=>{Y[K]=J}),Y[12]=$,Y[13]=Z,Y[14]=X,Y[15]=Q,Y}function Yp6($){return Uo1($)!==void 0}function Uo1($){for(let Z=0;Z<$.length;Z++)switch($[Z]){case".":return No1($);case":":return Gp6($)}return}function No1($){let Z=new Uint8Array(Wi);for(let X=0;X<Wi;X++){if($.length===0)return;if(X>0){if($[0]!==".")return;$=$.substring(1)}let{n:Q,c:Y,ok:G}=Jp6($);if(!G||Q>255)return;$=$.substring(Y),Z[X]=Q}return Ho1(Z[0],Z[1],Z[2],Z[3])}function Gp6($){let Z=new Uint8Array(NE),X=-1;if($.length>=2&&$[0]===":"&&$[1]===":"){if(X=0,$=$.substring(2),$.length===0)return Z}let Q=0;while(Q<NE){let{n:Y,c:G,ok:J}=Kp6($);if(!J||Y>65535)return;if(G<$.length&&$[G]==="."){if(X<0&&Q!=NE-Wi)return;if(Q+Wi>NE)return;let K=No1($);if(K===void 0)return;Z[Q]=K[12],Z[Q+1]=K[13],Z[Q+2]=K[14],Z[Q+3]=K[15],$="",Q+=Wi;break}if(Z[Q]=Y>>8,Z[Q+1]=Y,Q+=2,$=$.substring(G),$.length===0)break;if($[0]!==":"||$.length==1)return;if($=$.substring(1),$[0]===":"){if(X>=0)return;if(X=Q,$=$.substring(1),$.length===0)break}}if($.length!==0)return;if(Q<NE){if(X<0)return;let Y=NE-Q;for(let G=Q-1;G>=X;G--)Z[G+Y]=Z[G];for(let G=X+Y-1;G>=X;G--)Z[G]=0}else if(X>=0)return;return Z}function Jp6($){let Z=0,X=0;for(Z=0;Z<$.length&&e90<=$.charCodeAt(Z)&&$.charCodeAt(Z)<=Wo1;Z++)if(X=X*10+($.charCodeAt(Z)-e90),X>=nm0)return{n:nm0,c:Z,ok:!1};if(Z===0)return{n:0,c:0,ok:!1};return{n:X,c:Z,ok:!0}}function Kp6($){let Z=0,X=0;for(X=0;X<$.length;X++){if(e90<=$.charCodeAt(X)&&$.charCodeAt(X)<=Wo1)Z*=16,Z+=$.charCodeAt(X)-e90;else if(Ko1<=$.charCodeAt(X)&&$.charCodeAt(X)<=Qp6)Z*=16,Z+=$.charCodeAt(X)-Ko1+10;else if(Jo1<=$.charCodeAt(X)&&$.charCodeAt(X)<=Xp6)Z*=16,Z+=$.charCodeAt(X)-Jo1+10;else break;if(Z>=nm0)return{n:0,c:X,ok:!1}}if(X===0)return{n:0,c:X,ok:!1};return{n:Z,c:X,ok:!0}}});var em0=_((Bo1)=>{Object.defineProperty(Bo1,"__esModule",{value:!0});Bo1.Servers=Bo1.ServerImpl=void 0;Bo1.isIPV4OrHostname=wo1;Bo1.hostPort=sm0;var tm0=UE(),om0=qJ(),rm0=pm0(),Np6=_w(),Fp6=tY();function wo1($){if($.indexOf("[")!==-1||$.indexOf("::")!==-1)return!1;if($.indexOf(".")!==-1)return!0;if($.split(":").length<=2)return!0;return!1}function am0($){return!wo1($)}function wp6($){let X=$.toUpperCase().indexOf("::FFFF:");if(X!==-1&&$.indexOf(".")!==-1){let Q=$.substring(X+7);return Q=Q.replace("[",""),Q.replace("]","")}return $}function sm0($){if($=$.trim(),$.match(/^(.*:\/\/)(.*)/m))$=$.replace(/^(.*:\/\/)(.*)/gm,"$2");if($=wp6($),am0($)&&$.indexOf("[")===-1)$=`[${$}]`;let Z=am0($)?$.match(/(]:)(\d+)/):$.match(/(:)(\d+)/),X=Z&&Z.length===3&&Z[1]&&Z[2]?parseInt(Z[2]):Np6.DEFAULT_PORT,Y=new URL(`${X===80?"https":"http"}://${$}`);Y.port=`${X}`;let G=Y.hostname;if(G.charAt(0)==="[")G=G.substring(1,G.length-1);return{listen:Y.host,hostname:G,port:X}}class Tb{src;listen;hostname;port;didConnect;reconnects;lastConnect;gossiped;tlsName;resolves;constructor($,Z=!1){this.src=$,this.tlsName="";let X=sm0($);this.listen=X.listen,this.hostname=X.hostname,this.port=X.port,this.didConnect=!1,this.reconnects=0,this.lastConnect=0,this.gossiped=Z}toString(){return this.listen}async resolve($){if(!$.fn||$.resolve===!1)return[this];let Z=[];if((0,rm0.isIP)(this.hostname))return[this];else{let X=await $.fn(this.hostname);if($.debug)console.log(`resolve ${this.hostname} = ${X.join(",")}`);for(let Q of X){let Y=this.port===80?"https":"http",G=new URL(`${Y}://${am0(Q)?"["+Q+"]":Q}`);G.port=`${this.port}`;let J=new Tb(G.host,!1);J.tlsName=this.hostname,Z.push(J)}}if($.randomize)(0,om0.shuffle)(Z);return this.resolves=Z,Z}}Bo1.ServerImpl=Tb;class $Z0{firstSelect;servers;currentServer;tlsName;randomize;constructor($={}){this.firstSelect=!0,this.servers=[],this.tlsName="",this.randomize=$.randomize||!1}setServers($){if(!Array.isArray($)||$.length===0)throw Fp6.InvalidArgumentError.format("servers","cannot be empty");let Z=(0,tm0.getUrlParseFn)(),X=new Map;for(let Y of this.servers)X.set(Y.listen,Y);let Q=[];for(let Y of $){Y=Z?Z(Y):Y;let{listen:G}=sm0(Y),J=X.get(G);if(J)J.gossiped=!1,Q.push(J);else Q.push(new Tb(Y))}if(this.randomize)(0,om0.shuffle)(Q);if(this.servers=Q,this.currentServer===void 0||!Q.includes(this.currentServer))this.currentServer=Q[0],this.firstSelect=!0}clear(){this.servers.length=0}updateTLSName(){let $=this.getCurrentServer();if(!(0,rm0.isIP)($.hostname))this.tlsName=$.hostname,this.servers.forEach((Z)=>{if(Z.gossiped)Z.tlsName=this.tlsName})}getCurrentServer(){return this.currentServer}addServer($,Z=!1){let X=(0,tm0.getUrlParseFn)();$=X?X($):$;let Q=new Tb($,Z);if((0,rm0.isIP)(Q.hostname))Q.tlsName=this.tlsName;this.servers.push(Q)}selectServer(){if(this.firstSelect)return this.firstSelect=!1,this.currentServer;let $=this.servers.shift();if($)this.servers.push($),this.currentServer=$;return $}removeCurrentServer(){this.removeServer(this.currentServer)}removeServer($){if($){let Z=this.servers.indexOf($);this.servers.splice(Z,1)}}snapshot(){return $Z0.freezeAll(this.servers)}snapshotForHandler(){let $=this.currentServer;if(!$)return this.snapshot();let Z=this.servers.indexOf($);if(Z<=0)return this.snapshot();return $Z0.freezeAll([$,...this.servers.slice(0,Z),...this.servers.slice(Z+1)])}static freezeAll($){return $.map((Z)=>Object.freeze({hostname:Z.hostname,port:Z.port,listen:Z.listen,src:Z.src,tlsName:Z.tlsName,reconnects:Z.reconnects,lastConnect:Z.lastConnect,gossiped:Z.gossiped,didConnect:Z.didConnect}))}find($){return this.servers.find((Z)=>Z.listen===$.listen)}setCurrent($){this.currentServer=$}length(){return this.servers.length}next(){return this.servers.length?this.servers[0]:void 0}getServers(){return this.servers}update($,Z){let X=[],Q=[],Y=(0,tm0.getUrlParseFn)(),G=new Map;if($.connect_urls&&$.connect_urls.length>0)$.connect_urls.forEach((K)=>{K=Y?Y(K,Z):K;let W=new Tb(K,!0);G.set(K,W)});let J=[];if(this.servers.forEach((K,W)=>{let H=K.listen;if(K.gossiped&&this.currentServer.listen!==H&&G.get(H)===void 0)J.push(W);G.delete(H)}),J.reverse(),J.forEach((K)=>{let W=this.servers.splice(K,1);Q=Q.concat(W[0].listen)}),G.forEach((K,W)=>{this.servers.push(K),X.push(W)}),this.randomize&&X.length>0){let K=this.currentServer,W=this.servers.filter((H)=>H!==K);(0,om0.shuffle)(W),this.servers=K?[K,...W]:W}return{added:X,deleted:Q}}}Bo1.Servers=$Z0});var ZZ0=_((Eo1)=>{Object.defineProperty(Eo1,"__esModule",{value:!0});Eo1.QueuedIteratorImpl=void 0;var $i0=qJ(),Lo1=tY();class Do1{inflight;processed;received;noIterator;iterClosed;done;signal;yields;filtered;pendingFiltered;ctx;_data;err;time;profile;yielding;didBreak;constructor(){this.inflight=0,this.filtered=0,this.pendingFiltered=0,this.processed=0,this.received=0,this.noIterator=!1,this.done=!1,this.signal=(0,$i0.deferred)(),this.yields=[],this.iterClosed=(0,$i0.deferred)(),this.time=0,this.yielding=!1,this.didBreak=!1,this.profile=!1}[Symbol.asyncIterator](){return this.iterate()}push($){if(this.done)return;if(this.didBreak){if(typeof $==="function"){let Z=$;try{Z()}catch(X){}}return}if(typeof $==="function")this.pendingFiltered++;this.yields.push($),this.signal.resolve()}async*iterate(){if(this.noIterator)throw new Lo1.InvalidOperationError("iterator cannot be used when a callback is registered");if(this.yielding)throw new Lo1.InvalidOperationError("iterator is already yielding");this.yielding=!0;try{while(!0){if(this.yields.length===0)await this.signal;if(this.err)throw this.err;let $=this.yields;this.inflight=$.length,this.yields=[];for(let Z=0;Z<$.length;Z++){if(typeof $[Z]==="function"){this.pendingFiltered--;let Q=$[Z];try{Q()}catch(Y){throw Y}if(this.err)throw this.err;continue}this.processed++,this.inflight--;let X=this.profile?Date.now():0;yield $[Z],this.time=this.profile?Date.now()-X:0}if(this.done)break;else if(this.yields.length===0)$.length=0,this.yields=$,this.signal=(0,$i0.deferred)()}}finally{this.didBreak=!0,this.stop()}}stop($){if(this.done)return;this.err=$,this.done=!0,this.signal.resolve(),this.iterClosed.resolve($)}getProcessed(){return this.noIterator?this.received:this.processed}getPending(){return this.yields.length+this.inflight-this.pendingFiltered}getReceived(){return this.received-this.filtered}}Eo1.QueuedIteratorImpl=Do1});var Zi0=_((Ao1)=>{Object.defineProperty(Ao1,"__esModule",{value:!0});Ao1.MuxSubscription=void 0;var Dp6=_w(),jo1=tY();class Po1{baseInbox;reqs;constructor(){this.reqs=new Map}size(){return this.reqs.size}init($){return this.baseInbox=`${(0,Dp6.createInbox)($)}.`,this.baseInbox}add($){if(!isNaN($.received))$.received=0;this.reqs.set($.token,$)}get($){return this.reqs.get($)}cancel($){this.reqs.delete($.token)}getToken($){let Z=$.subject||"";if(Z.indexOf(this.baseInbox)===0)return Z.substring(this.baseInbox.length);return null}all(){return Array.from(this.reqs.values())}handleError($,Z){if($)return this.all().forEach((X)=>{X.resolver(Z,{})}),!0;if(Z.operation==="publish"){let X=this.all().find((Q)=>{return Q.requestSubject===Z.subject});if(X)return X.resolver(Z,{}),!0}return!1}dispatcher(){return($,Z)=>{let X=this.getToken(Z);if(X){let Q=this.get(X);if(Q){if($===null)$=Z?.data?.length===0&&Z.headers?.code===503?new jo1.NoRespondersError(Q.requestSubject):null;Q.resolver($,Z)}}}}close(){let $=new jo1.RequestError("connection closed");this.reqs.forEach((Z)=>{Z.resolver($,{})})}}Ao1.MuxSubscription=Po1});var Xi0=_((Io1)=>{Object.defineProperty(Io1,"__esModule",{value:!0});Io1.Heartbeat=void 0;var Ep6=qJ();class Ro1{ph;interval;maxOut;timer;pendings;constructor($,Z,X){this.ph=$,this.interval=Z,this.maxOut=X,this.pendings=[]}start(){this.cancel(),this._schedule()}cancel($){if(this.timer)clearTimeout(this.timer),this.timer=void 0;if(this._reset(),$)this.ph.disconnect()}_schedule(){this.timer=setTimeout(()=>{if(this.ph.dispatchStatus({type:"ping",pendingPings:this.pendings.length+1}),this.pendings.length===this.maxOut){this.cancel(!0);return}let $=(0,Ep6.deferred)();this.ph.flush($).then(()=>{this._reset()}).catch(()=>{this.cancel()}),this.pendings.push($),this._schedule()},this.interval)}_reset(){this.pendings=this.pendings.filter(($)=>{return $.resolve(),!1})}}Io1.Heartbeat=Ro1});var Gi0=_((So1)=>{Object.defineProperty(So1,"__esModule",{value:!0});So1.DenoBuffer=So1.MAX_SIZE=So1.AssertionError=void 0;So1.assert=Vo1;So1.concat=ko1;So1.append=jp6;So1.readAll=Pp6;So1.writeAll=Ap6;var zp6=pY();class Qi0 extends Error{constructor($){super($);this.name="AssertionError"}}So1.AssertionError=Qi0;function Vo1($,Z="Assertion failed."){if(!$)throw new Qi0(Z)}var Mo1=32768;So1.MAX_SIZE=4294967294;function XZ0($,Z,X=0){let Q=Z.byteLength-X;if($.byteLength>Q)$=$.subarray(0,Q);return Z.set($,X),$.byteLength}function ko1($,Z){if($===void 0&&Z===void 0)return new Uint8Array(0);if($===void 0)return Z;if(Z===void 0)return $;let X=new Uint8Array($.length+Z.length);return X.set($,0),X.set(Z,$.length),X}function jp6($,Z){return ko1($,Uint8Array.of(Z))}class Yi0{_buf;_off;constructor($){if(this._off=0,$==null){this._buf=new Uint8Array(0);return}this._buf=new Uint8Array($)}bytes($={copy:!0}){if($.copy===!1)return this._buf.subarray(this._off);return this._buf.slice(this._off)}empty(){return this._buf.byteLength<=this._off}get length(){return this._buf.byteLength-this._off}get capacity(){return this._buf.buffer.byteLength}truncate($){if($===0){this.reset();return}if($<0||$>this.length)throw Error("bytes.Buffer: truncation out of range");this._reslice(this._off+$)}reset(){this._reslice(0),this._off=0}_tryGrowByReslice($){let Z=this._buf.byteLength;if($<=this.capacity-Z)return this._reslice(Z+$),Z;return-1}_reslice($){Vo1($<=this._buf.buffer.byteLength),this._buf=new Uint8Array(this._buf.buffer,0,$)}readByte(){let $=new Uint8Array(1);if(this.read($))return $[0];return null}read($){if(this.empty()){if(this.reset(),$.byteLength===0)return 0;return null}let Z=XZ0(this._buf.subarray(this._off),$);return this._off+=Z,Z}writeByte($){return this.write(Uint8Array.of($))}writeString($){return this.write(zp6.TE.encode($))}write($){let Z=this._grow($.byteLength);return XZ0($,this._buf,Z)}_grow($){let Z=this.length;if(Z===0&&this._off!==0)this.reset();let X=this._tryGrowByReslice($);if(X>=0)return X;let Q=this.capacity;if($<=Math.floor(Q/2)-Z)XZ0(this._buf.subarray(this._off),this._buf);else if(Q+$>So1.MAX_SIZE)throw Error("The buffer cannot be grown beyond the maximum size.");else{let Y=new Uint8Array(Math.min(2*Q+$,So1.MAX_SIZE));XZ0(this._buf.subarray(this._off),Y),this._buf=Y}return this._off=0,this._reslice(Math.min(Z+$,So1.MAX_SIZE)),Z}grow($){if($<0)throw Error("Buffer._grow: negative count");let Z=this._grow($);this._reslice(Z)}readFrom($){let Z=0,X=new Uint8Array(Mo1);while(!0){let Q=this.capacity-this.length<Mo1,Y=Q?X:new Uint8Array(this._buf.buffer,this.length),G=$.read(Y);if(G===null)return Z;if(Q)this.write(Y.subarray(0,G));else this._reslice(this.length+G);Z+=G}}}So1.DenoBuffer=Yi0;function Pp6($){let Z=new Yi0;return Z.readFrom($),Z.bytes()}function Ap6($,Z){let X=0;while(X<Z.length)X+=$.write(Z.subarray(X))}});var Wi0=_((fo1)=>{Object.defineProperty(fo1,"__esModule",{value:!0});fo1.cc=fo1.State=fo1.Parser=fo1.Kind=void 0;fo1.describe=kp6;var Ji0=Gi0(),Ki0=pY();fo1.Kind={OK:0,ERR:1,MSG:2,INFO:3,PING:4,PONG:5};function kp6($){let Z,X="";switch($.kind){case fo1.Kind.MSG:Z="MSG";break;case fo1.Kind.OK:Z="OK";break;case fo1.Kind.ERR:Z="ERR",X=Ki0.TD.decode($.data);break;case fo1.Kind.PING:Z="PING";break;case fo1.Kind.PONG:Z="PONG";break;case fo1.Kind.INFO:Z="INFO",X=Ki0.TD.decode($.data)}return`${Z}: ${X}`}function _o1(){let $={};return $.sid=-1,$.hdr=-1,$.size=-1,$}var vo1=48,Sp6=57,Rb=67108864;class xo1{dispatcher;state;as;drop;hdr;ma;argBuf;msgBuf;constructor($){this.dispatcher=$,this.state=fo1.State.OP_START,this.as=0,this.drop=0,this.hdr=0}parse($){let Z;for(Z=0;Z<$.length;Z++){let X=$[Z];switch(this.state){case fo1.State.OP_START:switch(X){case fo1.cc.M:case fo1.cc.m:this.state=fo1.State.OP_M,this.hdr=-1,this.ma=_o1();break;case fo1.cc.H:case fo1.cc.h:this.state=fo1.State.OP_H,this.hdr=0,this.ma=_o1();break;case fo1.cc.P:case fo1.cc.p:this.state=fo1.State.OP_P;break;case fo1.cc.PLUS:this.state=fo1.State.OP_PLUS;break;case fo1.cc.MINUS:this.state=fo1.State.OP_MINUS;break;case fo1.cc.I:case fo1.cc.i:this.state=fo1.State.OP_I;break;default:throw this.fail($.subarray(Z))}break;case fo1.State.OP_H:switch(X){case fo1.cc.M:case fo1.cc.m:this.state=fo1.State.OP_M;break;default:throw this.fail($.subarray(Z))}break;case fo1.State.OP_M:switch(X){case fo1.cc.S:case fo1.cc.s:this.state=fo1.State.OP_MS;break;default:throw this.fail($.subarray(Z))}break;case fo1.State.OP_MS:switch(X){case fo1.cc.G:case fo1.cc.g:this.state=fo1.State.OP_MSG;break;default:throw this.fail($.subarray(Z))}break;case fo1.State.OP_MSG:switch(X){case fo1.cc.SPACE:case fo1.cc.TAB:this.state=fo1.State.OP_MSG_SPC;break;default:throw this.fail($.subarray(Z))}break;case fo1.State.OP_MSG_SPC:switch(X){case fo1.cc.SPACE:case fo1.cc.TAB:continue;default:this.state=fo1.State.MSG_ARG,this.as=Z}break;case fo1.State.MSG_ARG:switch(X){case fo1.cc.CR:this.drop=1;break;case fo1.cc.NL:{let Q=this.argBuf?this.argBuf.bytes():$.subarray(this.as,Z-this.drop);this.processMsgArgs(Q),this.drop=0,this.as=Z+1,this.state=fo1.State.MSG_PAYLOAD,Z=this.as+this.ma.size-1;break}default:if(this.argBuf)this.argBuf.writeByte(X)}break;case fo1.State.MSG_PAYLOAD:if(this.msgBuf)if(this.msgBuf.length>=this.ma.size){let Q=this.msgBuf.bytes({copy:!1});this.dispatcher.push({kind:fo1.Kind.MSG,msg:this.ma,data:Q}),this.argBuf=void 0,this.msgBuf=void 0,this.state=fo1.State.MSG_END}else{let Q=this.ma.size-this.msgBuf.length,Y=$.length-Z;if(Y<Q)Q=Y;if(Q>0)this.msgBuf.write($.subarray(Z,Z+Q)),Z=Z+Q-1;else this.msgBuf.writeByte(X)}else if(Z-this.as>=this.ma.size)this.dispatcher.push({kind:fo1.Kind.MSG,msg:this.ma,data:$.subarray(this.as,Z)}),this.argBuf=void 0,this.msgBuf=void 0,this.state=fo1.State.MSG_END;break;case fo1.State.MSG_END:switch(X){case fo1.cc.NL:this.drop=0,this.as=Z+1,this.state=fo1.State.OP_START;break;default:continue}break;case fo1.State.OP_PLUS:switch(X){case fo1.cc.O:case fo1.cc.o:this.state=fo1.State.OP_PLUS_O;break;default:throw this.fail($.subarray(Z))}break;case fo1.State.OP_PLUS_O:switch(X){case fo1.cc.K:case fo1.cc.k:this.state=fo1.State.OP_PLUS_OK;break;default:throw this.fail($.subarray(Z))}break;case fo1.State.OP_PLUS_OK:switch(X){case fo1.cc.NL:this.dispatcher.push({kind:fo1.Kind.OK}),this.drop=0,this.state=fo1.State.OP_START;break}break;case fo1.State.OP_MINUS:switch(X){case fo1.cc.E:case fo1.cc.e:this.state=fo1.State.OP_MINUS_E;break;default:throw this.fail($.subarray(Z))}break;case fo1.State.OP_MINUS_E:switch(X){case fo1.cc.R:case fo1.cc.r:this.state=fo1.State.OP_MINUS_ER;break;default:throw this.fail($.subarray(Z))}break;case fo1.State.OP_MINUS_ER:switch(X){case fo1.cc.R:case fo1.cc.r:this.state=fo1.State.OP_MINUS_ERR;break;default:throw this.fail($.subarray(Z))}break;case fo1.State.OP_MINUS_ERR:switch(X){case fo1.cc.SPACE:case fo1.cc.TAB:this.state=fo1.State.OP_MINUS_ERR_SPC;break;default:throw this.fail($.subarray(Z))}break;case fo1.State.OP_MINUS_ERR_SPC:switch(X){case fo1.cc.SPACE:case fo1.cc.TAB:continue;default:this.state=fo1.State.MINUS_ERR_ARG,this.as=Z}break;case fo1.State.MINUS_ERR_ARG:switch(X){case fo1.cc.CR:this.drop=1;break;case fo1.cc.NL:{let Q;if(this.argBuf)Q=this.argBuf.bytes(),this.argBuf=void 0;else Q=$.subarray(this.as,Z-this.drop);this.dispatcher.push({kind:fo1.Kind.ERR,data:Q}),this.drop=0,this.as=Z+1,this.state=fo1.State.OP_START;break}default:if(this.argBuf)this.argBuf.write(Uint8Array.of(X))}break;case fo1.State.OP_P:switch(X){case fo1.cc.I:case fo1.cc.i:this.state=fo1.State.OP_PI;break;case fo1.cc.O:case fo1.cc.o:this.state=fo1.State.OP_PO;break;default:throw this.fail($.subarray(Z))}break;case fo1.State.OP_PO:switch(X){case fo1.cc.N:case fo1.cc.n:this.state=fo1.State.OP_PON;break;default:throw this.fail($.subarray(Z))}break;case fo1.State.OP_PON:switch(X){case fo1.cc.G:case fo1.cc.g:this.state=fo1.State.OP_PONG;break;default:throw this.fail($.subarray(Z))}break;case fo1.State.OP_PONG:switch(X){case fo1.cc.NL:this.dispatcher.push({kind:fo1.Kind.PONG}),this.drop=0,this.state=fo1.State.OP_START;break}break;case fo1.State.OP_PI:switch(X){case fo1.cc.N:case fo1.cc.n:this.state=fo1.State.OP_PIN;break;default:throw this.fail($.subarray(Z))}break;case fo1.State.OP_PIN:switch(X){case fo1.cc.G:case fo1.cc.g:this.state=fo1.State.OP_PING;break;default:throw this.fail($.subarray(Z))}break;case fo1.State.OP_PING:switch(X){case fo1.cc.NL:this.dispatcher.push({kind:fo1.Kind.PING}),this.drop=0,this.state=fo1.State.OP_START;break}break;case fo1.State.OP_I:switch(X){case fo1.cc.N:case fo1.cc.n:this.state=fo1.State.OP_IN;break;default:throw this.fail($.subarray(Z))}break;case fo1.State.OP_IN:switch(X){case fo1.cc.F:case fo1.cc.f:this.state=fo1.State.OP_INF;break;default:throw this.fail($.subarray(Z))}break;case fo1.State.OP_INF:switch(X){case fo1.cc.O:case fo1.cc.o:this.state=fo1.State.OP_INFO;break;default:throw this.fail($.subarray(Z))}break;case fo1.State.OP_INFO:switch(X){case fo1.cc.SPACE:case fo1.cc.TAB:this.state=fo1.State.OP_INFO_SPC;break;default:throw this.fail($.subarray(Z))}break;case fo1.State.OP_INFO_SPC:switch(X){case fo1.cc.SPACE:case fo1.cc.TAB:continue;default:this.state=fo1.State.INFO_ARG,this.as=Z}break;case fo1.State.INFO_ARG:switch(X){case fo1.cc.CR:this.drop=1;break;case fo1.cc.NL:{let Q;if(this.argBuf)Q=this.argBuf.bytes(),this.argBuf=void 0;else Q=$.subarray(this.as,Z-this.drop);this.dispatcher.push({kind:fo1.Kind.INFO,data:Q}),this.drop=0,this.as=Z+1,this.state=fo1.State.OP_START;break}default:if(this.argBuf)this.argBuf.writeByte(X)}break;default:throw this.fail($.subarray(Z))}}if((this.state===fo1.State.MSG_ARG||this.state===fo1.State.MINUS_ERR_ARG||this.state===fo1.State.INFO_ARG)&&!this.argBuf)this.argBuf=new Ji0.DenoBuffer($.subarray(this.as,Z-this.drop));if(this.state===fo1.State.MSG_PAYLOAD&&!this.msgBuf){if(!this.argBuf)this.cloneMsgArg();this.msgBuf=new Ji0.DenoBuffer($.subarray(this.as))}}cloneMsgArg(){let $=this.ma.subject.length,Z=this.ma.reply?this.ma.reply.length:0,X=new Uint8Array($+Z);if(X.set(this.ma.subject),this.ma.reply)X.set(this.ma.reply,$);if(this.argBuf=new Ji0.DenoBuffer(X),this.ma.subject=X.subarray(0,$),this.ma.reply)this.ma.reply=X.subarray($)}processMsgArgs($){if(this.hdr>=0)return this.processHeaderMsgArgs($);let Z=[],X=-1;for(let Q=0;Q<$.length;Q++)switch($[Q]){case fo1.cc.SPACE:case fo1.cc.TAB:case fo1.cc.CR:case fo1.cc.NL:if(X>=0)Z.push($.subarray(X,Q)),X=-1;break;default:if(X<0)X=Q}if(X>=0)Z.push($.subarray(X));switch(Z.length){case 3:this.ma.subject=Z[0],this.ma.sid=this.protoParseInt(Z[1]),this.ma.reply=void 0,this.ma.size=this.protoParseInt(Z[2],Rb);break;case 4:this.ma.subject=Z[0],this.ma.sid=this.protoParseInt(Z[1]),this.ma.reply=Z[2],this.ma.size=this.protoParseInt(Z[3],Rb);break;default:throw this.fail($,"processMsgArgs Parse Error")}if(this.ma.sid<0)throw this.fail($,"processMsgArgs Bad or Missing Sid Error");if(this.ma.size<0)throw this.fail($,"processMsgArgs Bad or Missing Size Error")}fail($,Z=""){if(!Z)Z=`parse error [${this.state}]`;else Z=`${Z} [${this.state}]`;return Error(`${Z}: ${Ki0.TD.decode($)}`)}processHeaderMsgArgs($){let Z=[],X=-1;for(let Q=0;Q<$.length;Q++)switch($[Q]){case fo1.cc.SPACE:case fo1.cc.TAB:case fo1.cc.CR:case fo1.cc.NL:if(X>=0)Z.push($.subarray(X,Q)),X=-1;break;default:if(X<0)X=Q}if(X>=0)Z.push($.subarray(X));switch(Z.length){case 4:this.ma.subject=Z[0],this.ma.sid=this.protoParseInt(Z[1]),this.ma.reply=void 0,this.ma.hdr=this.protoParseInt(Z[2],Rb),this.ma.size=this.protoParseInt(Z[3],Rb);break;case 5:this.ma.subject=Z[0],this.ma.sid=this.protoParseInt(Z[1]),this.ma.reply=Z[2],this.ma.hdr=this.protoParseInt(Z[3],Rb),this.ma.size=this.protoParseInt(Z[4],Rb);break;default:throw this.fail($,"processHeaderMsgArgs Parse Error")}if(this.ma.sid<0)throw this.fail($,"processHeaderMsgArgs Bad or Missing Sid Error");if(this.ma.hdr<0||this.ma.hdr>this.ma.size)throw this.fail($,"processHeaderMsgArgs Bad or Missing Header Size Error");if(this.ma.size<0)throw this.fail($,"processHeaderMsgArgs Bad or Missing Size Error")}protoParseInt($,Z){if($.length===0||$.length>15)return-1;let X=0;for(let Q=0;Q<$.length;Q++){if($[Q]<vo1||$[Q]>Sp6)return-1;X=X*10+($[Q]-vo1)}return Z!==void 0&&X>Z?-1:X}}fo1.Parser=xo1;fo1.State={OP_START:0,OP_PLUS:1,OP_PLUS_O:2,OP_PLUS_OK:3,OP_MINUS:4,OP_MINUS_E:5,OP_MINUS_ER:6,OP_MINUS_ERR:7,OP_MINUS_ERR_SPC:8,MINUS_ERR_ARG:9,OP_M:10,OP_MS:11,OP_MSG:12,OP_MSG_SPC:13,MSG_ARG:14,MSG_PAYLOAD:15,MSG_END:16,OP_H:17,OP_P:18,OP_PI:19,OP_PIN:20,OP_PING:21,OP_PO:22,OP_PON:23,OP_PONG:24,OP_I:25,OP_IN:26,OP_INF:27,OP_INFO:28,OP_INFO_SPC:29,INFO_ARG:30};fo1.cc={CR:13,E:69,e:101,F:70,f:102,G:71,g:103,H:72,h:104,I:73,i:105,K:75,k:107,M:77,m:109,MINUS:45,N:78,n:110,NL:10,O:79,o:111,P:80,p:112,PLUS:43,R:82,r:114,S:83,s:115,SPACE:32,TAB:9}});var GZ0=_((yo1)=>{Object.defineProperty(yo1,"__esModule",{value:!0});yo1.MsgHdrsImpl=void 0;yo1.canonicalMIMEHeaderKey=Ui0;yo1.headers=vp6;var bo1=pY(),MJ=_w(),YZ0=tY();function Ui0($){let U=!0,N=Array($.length);for(let F=0;F<$.length;F++){let w=$.charCodeAt(F);if(w===58||w<33||w>126)throw YZ0.InvalidArgumentError.format("header",`'${$[F]}' is not a valid character in a header name`);if(U&&97<=w&&w<=122)w-=32;else if(!U&&65<=w&&w<=90)w+=32;N[F]=w,U=w==45}return String.fromCharCode(...N)}function vp6($=0,Z=""){if($===0&&Z!=="")throw YZ0.InvalidArgumentError.format("code","is required");else if($>0&&Z==="")throw YZ0.InvalidArgumentError.format("description","is required");return new Ib($,Z)}var Hi0="NATS/1.0";class Ib{_code;headers;_description;constructor($=0,Z=""){this._code=$,this._description=Z,this.headers=new Map}[Symbol.iterator](){return this.headers.entries()}size(){return this.headers.size}equals($){if($&&this.headers.size===$.headers.size&&this._code===$._code){for(let[Z,X]of this.headers){let Q=$.values(Z);if(X.length!==Q.length)return!1;let Y=[...X].sort(),G=[...Q].sort();for(let J=0;J<Y.length;J++)if(Y[J]!==G[J])return!1}return!0}return!1}static decode($){let Z=new Ib,Q=bo1.TD.decode($).split(`\r
|
|
1337
1337
|
`),Y=Q[0];if(Y!==Hi0){let G=Y.replace(Hi0,"").trim();if(G.length>0){if(Z._code=parseInt(G,10),isNaN(Z._code))Z._code=0;let J=Z._code.toString();G=G.replace(J,""),Z._description=G.trim()}}if(Q.length>=1)Q.slice(1).map((G)=>{if(G){let J=G.indexOf(":");if(J>-1){let K=G.slice(0,J),W=G.slice(J+1).trim();Z.append(K,W)}}});return Z}toString(){if(this.headers.size===0&&this._code===0)return"";let $=Hi0;if(this._code>0&&this._description!=="")$+=` ${this._code} ${this._description}`;for(let[Z,X]of this.headers)for(let Q=0;Q<X.length;Q++)$=`${$}\r
|
|
1338
1338
|
${Z}: ${X[Q]}`;return`${$}\r
|
|
@@ -1641,7 +1641,7 @@ ${Y}`}return $}});var TQ0=_((Yz)=>{var ZK4=Yz&&Yz.__createBinding||(Object.creat
|
|
|
1641
1641
|
${S8.ref("meta_json")}::jsonb->'mcp.studio'->>'verified',
|
|
1642
1642
|
${S8.ref("meta_json")}::jsonb->'mcp.mesh'->>'verified'
|
|
1643
1643
|
) = 'true' THEN 1 ELSE 0 END
|
|
1644
|
-
) desc`}class Tg{db;constructor($){this.db=$}async create($){let Z=new Date().toISOString(),X=wQ8($._meta??{}),Q=nQ0(X),Y=tQ(Q.tags),G=tQ(Q.categories),J={id:$.id,organization_id:$.organization_id,title:$.title,description:$.description??null,server_json:JSON.stringify($.server),meta_json:JSON.stringify(X),tags:mQ0(Y),categories:mQ0(G),is_public:$.is_public?1:0,is_unlisted:$.is_unlisted?1:0,created_at:Z,updated_at:Z,created_by:$.created_by??null};await this.db.insertInto("private_registry_item").values(J).execute();let K=await this.findById($.organization_id,$.id);if(!K)throw Error(`Failed to create registry item "${$.id}"`);return K}async findById($,Z){let X=await this.db.selectFrom("private_registry_item").selectAll().where("organization_id","=",$).where("id","=",Z).executeTakeFirst();return X?this.deserialize(X):null}async findByIdOrName($,Z){let X=await this.findById($,Z);if(X)return X;let Q=await this.db.selectFrom("private_registry_item").selectAll().where("organization_id","=",$).where("title","=",Z).executeTakeFirst();return Q?this.deserialize(Q):null}async update($,Z,X){let Q=await this.findById($,Z);if(!Q)throw Error(`Registry item not found: ${Z}`);let Y=wQ8(X._meta??Q._meta??{}),G=nQ0(Y),J=tQ(G.tags),K=tQ(G.categories),W={updated_at:new Date().toISOString()};if(X.title!==void 0)W.title=X.title;if(X.description!==void 0)W.description=X.description;if(X.server!==void 0)W.server_json=JSON.stringify(X.server);if(X._meta!==void 0)W.meta_json=JSON.stringify(Y);if(X._meta!==void 0)W.tags=mQ0(J),W.categories=mQ0(K);if(X.is_public!==void 0)W.is_public=X.is_public?1:0;if(X.is_unlisted!==void 0)W.is_unlisted=X.is_unlisted?1:0;await this.db.updateTable("private_registry_item").set(W).where("organization_id","=",$).where("id","=",Z).execute();let H=await this.findById($,Z);if(!H)throw Error(`Registry item not found after update: ${Z}`);return H}async delete($,Z){let X=await this.findById($,Z);if(!X)return null;return await this.db.deleteFrom("private_registry_item").where("organization_id","=",$).where("id","=",Z).execute(),X}async list($,Z={}){let X=this.db.selectFrom("private_registry_item").selectAll().where("organization_id","=",$);if(!Z.includeUnlisted)X=X.where("is_unlisted","=",0);let Q=tQ(Z.tags);if(Q.length>0)X=X.where(iQ0("tags",Q));let Y=tQ(Z.categories);if(Y.length>0)X=X.where(iQ0("categories",Y));if(Z.where)X=X.where(va0(Z.where));let K=(await this.db.selectFrom(X.as("filtered")).select(S8`count(*)::int`.as("count")).executeTakeFirst())?.count??0;X=X.orderBy(BQ8()).orderBy("created_at","desc");let H=lQ0(Z.cursor)??Z.offset??0,U=Z.limit??24;X=X.limit(U).offset(H);let F=(await X.execute()).map((L)=>this.deserialize(L)),w=H+U<K,B=w?cQ0(H+U):void 0;return{items:F,totalCount:K,hasMore:w,nextCursor:B}}async listPublic($,Z={}){let X=this.db.selectFrom("private_registry_item").selectAll().where("organization_id","=",$).where("is_public","=",1).where("is_unlisted","=",0),Q=tQ(Z.tags);if(Q.length>0)X=X.where(iQ0("tags",Q));let Y=tQ(Z.categories);if(Y.length>0)X=X.where(iQ0("categories",Y));if(Z.where)X=X.where(va0(Z.where));let K=(await this.db.selectFrom(X.as("filtered")).select(S8`count(*)::int`.as("count")).executeTakeFirst())?.count??0;X=X.orderBy(BQ8()).orderBy("created_at","desc");let H=lQ0(Z.cursor)??Z.offset??0,U=Z.limit??24;X=X.limit(U).offset(H);let F=(await X.execute()).map((L)=>this.deserialize(L)),w=H+U<K,B=w?cQ0(H+U):void 0;return{items:F,totalCount:K,hasMore:w,nextCursor:B}}async getFilters($,Z){let X=this.db.selectFrom("private_registry_item").select(["tags","categories"]).where("organization_id","=",$);if(Z?.publicOnly)X=X.where("is_public","=",1);if(!Z?.includeUnlisted)X=X.where("is_unlisted","=",0);let Q=await X.execute(),Y=new Map,G=new Map;for(let K of Q){for(let W of Wz(K.tags))Y.set(W,(Y.get(W)??0)+1);for(let W of Wz(K.categories))G.set(W,(G.get(W)??0)+1)}let J=(K)=>Array.from(K.entries()).map(([W,H])=>({value:W,count:H})).sort((W,H)=>W.value.localeCompare(H.value));return{tags:J(Y),categories:J(G)}}async search($,Z={},X){let Q=this.db.selectFrom("private_registry_item").select(["id","title","description","meta_json","server_json","tags","categories","is_public","is_unlisted"]).where("organization_id","=",$).orderBy("created_at","desc");if(X?.publicOnly)Q=Q.where("is_public","=",1);if(!X?.includeUnlisted)Q=Q.where("is_unlisted","=",0);let Y=await Q.execute(),G=Z.query?.trim().toLowerCase(),J=tQ(Z.tags),K=tQ(Z.categories),W=Y.filter((D)=>{if(G){let E=dQ0(D.server_json,{}),z=dQ0(D.meta_json,{}),j=nQ0(z).short_description??"";if(![D.id,D.title,D.description??"",E.name??"",E.description??"",j].join(" ").toLowerCase().includes(G))return!1}if(J.length>0){let E=tQ(Wz(D.tags));if(!J.every((z)=>E.includes(z)))return!1}if(K.length>0){let E=tQ(Wz(D.categories));if(!K.every((z)=>E.includes(z)))return!1}return!0}),U=lQ0(Z.cursor)??0,N=Z.limit??20,F=W.slice(U,U+N),w=U+N<W.length,B=w?cQ0(U+N):void 0;return{items:F.map((D)=>({id:D.id,title:D.title,tags:Wz(D.tags),categories:Wz(D.categories),is_public:D.is_public===1,is_unlisted:D.is_unlisted===1})),totalCount:W.length,hasMore:w,nextCursor:B}}deserialize($){let Z=dQ0($.server_json,{}),X=dQ0($.meta_json,{});return{id:$.id,name:typeof Z.name==="string"?Z.name:void 0,title:$.title,description:$.description,_meta:X,server:Z,is_public:$.is_public===1,is_unlisted:$.is_unlisted===1,created_at:$.created_at,updated_at:$.updated_at,...$.created_by?{created_by:$.created_by}:{}}}}var IH4,qH4,MH4;var xa0=O(()=>{IH4=new Set(["id","title","description","is_public","is_unlisted","created_at","updated_at","created_by"]),qH4=new Set(["is_public","is_unlisted"]),MH4={_meta:"meta_json",server:"server_json"}});import{randomUUID as SH4}from"crypto";function OQ8($,Z){if(!$)return Z;try{return JSON.parse($)}catch{return Z}}function LQ8($){if(!$)return null;let Z=dW($);return JSON.stringify(Z?uQ0($,Z):$)}class Rg{db;constructor($){this.db=$}async createOrUpdate($){let Z=new Date().toISOString(),X=await this.findPendingByRequestedId($.organization_id,$.requested_id);if(X){let J={title:$.title,description:$.description??null,server_json:JSON.stringify($.server),meta_json:LQ8($._meta),requester_name:$.requester_name??null,requester_email:$.requester_email??null,updated_at:Z};await this.db.updateTable("private_registry_publish_request").set(J).where("organization_id","=",$.organization_id).where("id","=",X.id).execute();let K=await this.findById($.organization_id,X.id);if(!K)throw Error("Failed to update publish request");return K}let Q=SH4(),Y={id:Q,organization_id:$.organization_id,requested_id:$.requested_id,status:"pending",title:$.title,description:$.description??null,server_json:JSON.stringify($.server),meta_json:LQ8($._meta),requester_name:$.requester_name??null,requester_email:$.requester_email??null,reviewer_notes:null,created_at:Z,updated_at:Z};await this.db.insertInto("private_registry_publish_request").values(Y).execute();let G=await this.findById($.organization_id,Q);if(!G)throw Error("Failed to create publish request");return G}async findPendingByRequestedId($,Z){let X=await this.db.selectFrom("private_registry_publish_request").selectAll().where("organization_id","=",$).where("requested_id","=",Z).where("status","=","pending").executeTakeFirst();return X?this.deserialize(X):null}async findById($,Z){let X=await this.db.selectFrom("private_registry_publish_request").selectAll().where("organization_id","=",$).where("id","=",Z).executeTakeFirst();return X?this.deserialize(X):null}async list($,Z={}){let X=this.db.selectFrom("private_registry_publish_request").selectAll().where("organization_id","=",$),Q=this.db.selectFrom("private_registry_publish_request").select((H)=>H.fn.countAll().as("count")).where("organization_id","=",$);if(Z.status)X=X.where("status","=",Z.status),Q=Q.where("status","=",Z.status);let Y=await Q.executeTakeFirst(),G=Number(Y?.count??0),J=Z.sortBy??"created_at",K=Z.sortDirection??"desc";if(J==="title")X=X.orderBy("title",K);else X=X.orderBy("created_at",K);return{items:(await X.limit(Z.limit??24).offset(Z.offset??0).execute()).map((H)=>this.deserialize(H)),totalCount:G}}async updateStatus($,Z,X,Q){let Y={status:X,updated_at:new Date().toISOString(),reviewer_notes:Q??null};await this.db.updateTable("private_registry_publish_request").set(Y).where("organization_id","=",$).where("id","=",Z).execute();let G=await this.findById($,Z);if(!G)throw Error(`Publish request not found: ${Z}`);return G}async countPending($){let Z=await this.db.selectFrom("private_registry_publish_request").select((X)=>X.fn.countAll().as("count")).where("organization_id","=",$).where("status","=","pending").executeTakeFirst();return Number(Z?.count??0)}async delete($,Z){let X=await this.findById($,Z);if(!X)return null;return await this.db.deleteFrom("private_registry_publish_request").where("organization_id","=",$).where("id","=",Z).execute(),X}deserialize($){return{id:$.id,organization_id:$.organization_id,requested_id:$.requested_id??null,status:$.status,title:$.title,description:$.description,_meta:OQ8($.meta_json,{}),server:OQ8($.server_json,{name:""}),requester_name:$.requester_name,requester_email:$.requester_email,reviewer_notes:$.reviewer_notes,created_at:$.created_at,updated_at:$.updated_at}}}var fa0=()=>{};import{createHash as CH4,randomBytes as _H4,randomUUID as vH4}from"crypto";function DQ8($){return CH4("sha256").update($).digest("hex")}function xH4(){return`prk_${_H4(32).toString("hex")}`}class Ig{db;constructor($){this.db=$}async generate($,Z){let X=vH4(),Q=xH4(),Y=await DQ8(Q),G=Q.slice(0,12),J=new Date().toISOString();return await this.db.insertInto("private_registry_publish_api_key").values({id:X,organization_id:$,name:Z,key_hash:Y,prefix:G,created_at:J}).execute(),{entity:{id:X,organization_id:$,name:Z,prefix:G,created_at:J},key:Q}}async list($){return await this.db.selectFrom("private_registry_publish_api_key").select(["id","organization_id","name","prefix","created_at"]).where("organization_id","=",$).orderBy("created_at","desc").execute()}async revoke($,Z){return(await this.db.deleteFrom("private_registry_publish_api_key").where("organization_id","=",$).where("id","=",Z).execute()).length>0}async validate($,Z){let X=await DQ8(Z),Q=await this.db.selectFrom("private_registry_publish_api_key").select(["id"]).where("organization_id","=",$).where("key_hash","=",X).executeTakeFirst();return Boolean(Q)}async hasKeys($){let Z=await this.db.selectFrom("private_registry_publish_api_key").select((X)=>X.fn.countAll().as("count")).where("organization_id","=",$).executeTakeFirst();return Number(Z?.count??0)>0}}var ba0=()=>{};import{randomUUID as EQ8}from"crypto";function zQ8($,Z){if(!$)return Z;try{return JSON.parse($)}catch{return Z}}class pQ0{db;constructor($){this.db=$}async create($){let Z=EQ8(),X=new Date().toISOString(),Q={id:Z,organization_id:$.organization_id,status:$.status??"pending",config_snapshot:$.config_snapshot?JSON.stringify($.config_snapshot):null,total_items:$.total_items??0,tested_items:0,passed_items:0,failed_items:0,skipped_items:0,current_item_id:null,started_at:$.started_at??null,finished_at:null,created_at:X};await this.db.insertInto("private_registry_monitor_run").values(Q).execute();let Y=await this.findById($.organization_id,Z);if(!Y)throw Error(`Failed to create monitor run ${Z}`);return Y}async findById($,Z){let X=await this.db.selectFrom("private_registry_monitor_run").selectAll().where("organization_id","=",$).where("id","=",Z).executeTakeFirst();return X?this.deserializeRun(X):null}async list($,Z={}){let X=this.db.selectFrom("private_registry_monitor_run").selectAll().where("organization_id","=",$),Q=this.db.selectFrom("private_registry_monitor_run").select((K)=>K.fn.countAll().as("count")).where("organization_id","=",$);if(Z.status)X=X.where("status","=",Z.status),Q=Q.where("status","=",Z.status);let Y=await Q.executeTakeFirst(),G=Number(Y?.count??0);return{items:(await X.orderBy("created_at","desc").limit(Z.limit??24).offset(Z.offset??0).execute()).map((K)=>this.deserializeRun(K)),totalCount:G}}async update($,Z,X){let Q={};if(X.total_items!==void 0)Q.total_items=X.total_items;if(X.status!==void 0)Q.status=X.status;if(X.tested_items!==void 0)Q.tested_items=X.tested_items;if(X.passed_items!==void 0)Q.passed_items=X.passed_items;if(X.failed_items!==void 0)Q.failed_items=X.failed_items;if(X.skipped_items!==void 0)Q.skipped_items=X.skipped_items;if(X.current_item_id!==void 0)Q.current_item_id=X.current_item_id;if(X.started_at!==void 0)Q.started_at=X.started_at;if(X.finished_at!==void 0)Q.finished_at=X.finished_at;await this.db.updateTable("private_registry_monitor_run").set(Q).where("organization_id","=",$).where("id","=",Z).execute();let Y=await this.findById($,Z);if(!Y)throw Error(`Monitor run not found: ${Z}`);return Y}deserializeRun($){return{id:$.id,organization_id:$.organization_id,status:$.status,config_snapshot:zQ8($.config_snapshot,null),total_items:Number($.total_items??0),tested_items:Number($.tested_items??0),passed_items:Number($.passed_items??0),failed_items:Number($.failed_items??0),skipped_items:Number($.skipped_items??0),current_item_id:$.current_item_id,started_at:$.started_at,finished_at:$.finished_at,created_at:$.created_at}}}class tQ0{db;constructor($){this.db=$}async create($){let Z=EQ8(),X=new Date().toISOString(),Q={id:Z,run_id:$.run_id,organization_id:$.organization_id,item_id:$.item_id,item_title:$.item_title,status:$.status,error_message:$.error_message??null,connection_ok:$.connection_ok?1:0,tools_listed:$.tools_listed?1:0,tool_results:$.tool_results?JSON.stringify($.tool_results):null,agent_summary:$.agent_summary??null,duration_ms:$.duration_ms??0,action_taken:$.action_taken??"none",tested_at:X};await this.db.insertInto("private_registry_monitor_result").values(Q).execute();let Y=await this.findById($.organization_id,Z);if(!Y)throw Error("Failed to create test result");return Y}async findById($,Z){let X=await this.db.selectFrom("private_registry_monitor_result").selectAll().where("organization_id","=",$).where("id","=",Z).executeTakeFirst();return X?this.deserialize(X):null}async listByRun($,Z,X={}){let Q=this.db.selectFrom("private_registry_monitor_result").selectAll().where("organization_id","=",$).where("run_id","=",Z),Y=this.db.selectFrom("private_registry_monitor_result").select((W)=>W.fn.countAll().as("count")).where("organization_id","=",$).where("run_id","=",Z);if(X.status)Q=Q.where("status","=",X.status),Y=Y.where("status","=",X.status);let G=await Y.executeTakeFirst(),J=Number(G?.count??0);return{items:(await Q.orderBy("tested_at","desc").limit(X.limit??50).offset(X.offset??0).execute()).map((W)=>this.deserialize(W)),totalCount:J}}async update($,Z,X){let Q={};if(X.status!==void 0)Q.status=X.status;if(X.error_message!==void 0)Q.error_message=X.error_message;if(X.connection_ok!==void 0)Q.connection_ok=X.connection_ok?1:0;if(X.tools_listed!==void 0)Q.tools_listed=X.tools_listed?1:0;if(X.tool_results!==void 0)Q.tool_results=JSON.stringify(X.tool_results);if(X.agent_summary!==void 0)Q.agent_summary=X.agent_summary;if(X.duration_ms!==void 0)Q.duration_ms=X.duration_ms;if(X.action_taken!==void 0)Q.action_taken=X.action_taken;await this.db.updateTable("private_registry_monitor_result").set(Q).where("organization_id","=",$).where("id","=",Z).execute();let Y=await this.findById($,Z);if(!Y)throw Error(`Monitor result not found: ${Z}`);return Y}deserialize($){return{id:$.id,run_id:$.run_id,organization_id:$.organization_id,item_id:$.item_id,item_title:$.item_title,status:$.status,error_message:$.error_message,connection_ok:$.connection_ok===1,tools_listed:$.tools_listed===1,tool_results:zQ8($.tool_results,[]),agent_summary:$.agent_summary,duration_ms:Number($.duration_ms??0),action_taken:$.action_taken,tested_at:$.tested_at}}}var jQ8=()=>{};import{randomUUID as fH4}from"crypto";class oQ0{db;constructor($){this.db=$}async findByItemId($,Z){let X=await this.db.selectFrom("private_registry_monitor_connection").selectAll().where("organization_id","=",$).where("item_id","=",Z).executeTakeFirst();return X?this.deserialize(X):null}async list($){return(await this.db.selectFrom("private_registry_monitor_connection").selectAll().where("organization_id","=",$).orderBy("updated_at","desc").execute()).map((X)=>this.deserialize(X))}async findByConnectionId($,Z){let X=await this.db.selectFrom("private_registry_monitor_connection").selectAll().where("organization_id","=",$).where("connection_id","=",Z).executeTakeFirst();return X?this.deserialize(X):null}async upsert($){let Z=await this.findByItemId($.organization_id,$.item_id),X=new Date().toISOString();if(!Z){let Y={id:fH4(),organization_id:$.organization_id,item_id:$.item_id,connection_id:$.connection_id,auth_status:$.auth_status??"none",created_at:X,updated_at:X};await this.db.insertInto("private_registry_monitor_connection").values(Y).execute()}else{let Y={connection_id:$.connection_id,auth_status:$.auth_status??Z.auth_status,updated_at:X};await this.db.updateTable("private_registry_monitor_connection").set(Y).where("organization_id","=",$.organization_id).where("item_id","=",$.item_id).execute()}let Q=await this.findByItemId($.organization_id,$.item_id);if(!Q)throw Error("Failed to save monitor connection");return Q}async updateAuthStatus($,Z,X){return await this.db.updateTable("private_registry_monitor_connection").set({auth_status:X,updated_at:new Date().toISOString()}).where("organization_id","=",$).where("item_id","=",Z).execute(),this.findByItemId($,Z)}deserialize($){return{id:$.id,organization_id:$.organization_id,item_id:$.item_id,connection_id:$.connection_id,auth_status:$.auth_status,created_at:$.created_at,updated_at:$.updated_at}}}var PQ8=()=>{};var AQ8=O(()=>{xa0();fa0();ba0();jQ8();PQ8()});class ap{db;constructor($){this.db=$}async listOrgTags($){return(await this.db.selectFrom("organization_tags").selectAll().where("organization_id","=",$).orderBy("name","asc").execute()).map((X)=>this.tagFromDbRow(X))}async getTag($){let Z=await this.db.selectFrom("organization_tags").selectAll().where("id","=",$).executeTakeFirst();return Z?this.tagFromDbRow(Z):null}async getTagByName($,Z){let X=await this.db.selectFrom("organization_tags").selectAll().where("organization_id","=",$).where("name","=",Z).executeTakeFirst();return X?this.tagFromDbRow(X):null}async createTag($,Z,X){let Q=Z4("tag"),Y=new Date().toISOString();await this.db.insertInto("organization_tags").values({id:Q,organization_id:$,name:Z,color:X??null,created_at:Y}).onConflict((J)=>J.columns(["organization_id","name"]).doNothing()).execute();let G=await this.getTagByName($,Z);if(!G)throw Error(`Failed to create or retrieve tag: ${Z}`);return G}async deleteTag($){await this.db.deleteFrom("organization_tags").where("id","=",$).execute()}async getMemberTags($){return(await this.db.selectFrom("member_tags").innerJoin("organization_tags","organization_tags.id","member_tags.tag_id").select(["organization_tags.id","organization_tags.organization_id","organization_tags.name","organization_tags.color","organization_tags.created_at"]).where("member_tags.member_id","=",$).orderBy("organization_tags.name","asc").execute()).map((X)=>this.tagFromDbRow(X))}async setMemberTags($,Z){await this.db.transaction().execute(async(X)=>{if(await X.deleteFrom("member_tags").where("member_id","=",$).execute(),Z.length>0){let Q=new Date().toISOString();await X.insertInto("member_tags").values(Z.map((Y)=>({id:Z4("mtag"),member_id:$,tag_id:Y,created_at:Q}))).execute()}})}async addMemberTag($,Z){let X=new Date().toISOString();await this.db.insertInto("member_tags").values({id:Z4("mtag"),member_id:$,tag_id:Z,created_at:X}).onConflict((Q)=>Q.columns(["member_id","tag_id"]).doNothing()).execute()}async removeMemberTag($,Z){await this.db.deleteFrom("member_tags").where("member_id","=",$).where("tag_id","=",Z).execute()}async verifyMemberOrg($,Z){return await this.db.selectFrom("member").select("id").where("id","=",$).where("organizationId","=",Z).executeTakeFirst()!==void 0}async getUserTagsInOrg($,Z){return(await this.db.selectFrom("member").innerJoin("member_tags","member_tags.member_id","member.id").innerJoin("organization_tags","organization_tags.id","member_tags.tag_id").select(["organization_tags.id","organization_tags.organization_id","organization_tags.name","organization_tags.color","organization_tags.created_at"]).where("member.userId","=",$).where("member.organizationId","=",Z).orderBy("organization_tags.name","asc").execute()).map((Q)=>this.tagFromDbRow(Q))}async getMembersWithTags($){let Z=await this.db.selectFrom("member").leftJoin("member_tags","member_tags.member_id","member.id").leftJoin("organization_tags","organization_tags.id","member_tags.tag_id").select(["member.id as memberId","organization_tags.name as tagName"]).where("member.organizationId","=",$).execute(),X=new Map;for(let Q of Z){if(!X.has(Q.memberId))X.set(Q.memberId,[]);if(Q.tagName)X.get(Q.memberId).push(Q.tagName)}return X}tagFromDbRow($){return{id:$.id,organizationId:$.organization_id,name:$.name,color:$.color??null,createdAt:$.created_at}}}var ya0=O(()=>{$Q()});import{sql as bH4}from"kysely";function TQ8($){return{organizationId:$.organization_id,status:$.status,stripeCustomerId:$.stripe_customer_id,stripeSubscriptionId:$.stripe_subscription_id,currentPeriodEnd:$.current_period_end,lastStripeEventAt:$.last_stripe_event_at,freeTaskExecutions:$.free_task_executions,monthlyTaskExecutions:$.monthly_task_executions}}class mW{db;constructor($){this.db=$}async getBilling($){let Z=await this.db.selectFrom("organization_billing").selectAll().where("organization_id","=",$).executeTakeFirst();return Z?TQ8(Z):null}async getBillingByStripeSubscriptionId($){let Z=await this.db.selectFrom("organization_billing").selectAll().where("stripe_subscription_id","=",$).executeTakeFirst();return Z?TQ8(Z):null}async updateStripeState($,Z){return((await this.db.updateTable("organization_billing").set({...Z.stripeCustomerId!==void 0&&{stripe_customer_id:Z.stripeCustomerId},...Z.stripeSubscriptionId!==void 0&&{stripe_subscription_id:Z.stripeSubscriptionId},...Z.status!==void 0&&{status:Z.status},...Z.currentPeriodEnd!==void 0&&{current_period_end:Z.currentPeriodEnd},...Z.lastStripeEventAt!==void 0&&{last_stripe_event_at:Z.lastStripeEventAt},updated_at:new Date}).where("organization_id","=",$).executeTakeFirst()).numUpdatedRows??0n)>0n}async taskClaim($){let Z=await this.db.selectFrom("task_quota_claims").select(["run_count","state"]).where("task_board_item_id","=",$).executeTakeFirst();return Z?{runCount:Z.run_count,state:Z.state}:null}static liveClaimCount($,Z,X){return $.selectFrom("task_quota_claims").select((Q)=>Q.fn.countAll().as("count")).where("organization_id","=",Z).where("period_key","=",X).where("state","<>","released").executeTakeFirst().then((Q)=>Number(Q?.count??0))}async countTaskClaims($,Z){return await mW.liveClaimCount(this.db,$,Z)}async claimTaskUnderLimit($,Z,X,Q,Y){return await this.db.transaction().execute(async(G)=>{await G.insertInto("organization_billing").values({organization_id:$}).onConflict((W)=>W.column("organization_id").doNothing()).execute(),await G.selectFrom("organization_billing").select("organization_id").where("organization_id","=",$).forUpdate().executeTakeFirstOrThrow();let J=await G.selectFrom("task_quota_claims").select(["run_count","state"]).where("task_board_item_id","=",Z).executeTakeFirst();if(J&&J.run_count>=Y)return"runs_exhausted";let K=()=>mW.liveClaimCount(G,$,X);if(J&&J.state!=="released")return await G.updateTable("task_quota_claims").set({run_count:J.run_count+1}).where("task_board_item_id","=",Z).execute(),"rerun";if(await K()>=Q)return"exhausted";if(J)return await G.updateTable("task_quota_claims").set({state:"held",period_key:X,run_count:J.run_count+1}).where("task_board_item_id","=",Z).execute(),"claimed";return await G.insertInto("task_quota_claims").values({task_board_item_id:Z,organization_id:$,period_key:X,state:"held"}).execute(),"claimed"})}async releaseTaskClaim($,Z){return((await this.db.updateTable("task_quota_claims").set({state:"released"}).where("organization_id","=",$).where("task_board_item_id","=",Z).where("state","=","held").executeTakeFirst()).numUpdatedRows??0n)>0n}async rollbackTaskClaim($,Z,{releaseSlot:X}){await this.db.updateTable("task_quota_claims").set(()=>({...X?{state:"released"}:{},run_count:bH4`greatest(run_count - 1, 0)`})).where("organization_id","=",$).where("task_board_item_id","=",Z).where("state","=","held").execute()}}var rQ0=()=>{};class ga0{db;constructor($){this.db=$}async findById($,Z){let X=await this.db.selectFrom("user").select(["user.id","user.name","user.email","user.image","user.createdAt","user.updatedAt"]).where("user.id","=",$).where((Q)=>Q.exists(Q.selectFrom("member as m1").innerJoin("member as m2","m1.organizationId","m2.organizationId").select("m1.id").where("m1.userId","=",$).where("m2.userId","=",Z))).executeTakeFirst();if(!X)return null;return{id:X.id,name:X.name,email:X.email,role:"",createdAt:X.createdAt,updatedAt:X.updatedAt,image:X.image??void 0}}}function IQ8(){let $={};for(let Z of aQ0){if(Z.id==="basic-usage")continue;$[Z.id]=!0}return $}function ua0($){let Z=(G)=>{let J=$[G];return Array.isArray(J)?J:[]},X=Z("*").includes("*")||Z("self").includes("*"),Q=new Set;if(!X)for(let G of Object.values($)){if(!Array.isArray(G))continue;for(let J of G)Q.add(J)}let Y={};for(let G of aQ0){if(G.id==="basic-usage")continue;Y[G.id]=X||G.tools.every((J)=>Q.has(J))}return Y}function Hz(){let $={Organizations:[],Connections:[],"Virtual MCPs":[],Threads:[],Monitoring:[],Users:[],"API Keys":[],Tags:[],"AI Providers":[],Secrets:[],"File Configs":[],Automations:[],"Object Storage":[],Registry:[],GitHub:[],VM:[],Search:[],"Task Board":[]};for(let Z of ha0)$[Z.category].push(Z);return $}var ha0,aQ0,RQ8,yH4,sQ0;var qg=O(()=>{ha0=[{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_LIST",description:"List organization domain claims",category:"Organizations"},{name:"ORGANIZATION_DOMAIN_ADD",description:"Claim an email domain for the organization",category:"Organizations"},{name:"ORGANIZATION_DOMAIN_UPDATE",description:"Set a domain's join mode",category:"Organizations"},{name:"ORGANIZATION_DOMAIN_VERIFY",description:"Verify a domain via DNS TXT record",category:"Organizations"},{name:"ORGANIZATION_DOMAIN_REMOVE",description:"Remove an organization domain claim",category:"Organizations",dangerous:!0},{name:"ORGANIZATION_JOIN_REQUEST_LIST",description:"List pending requests to join the organization",category:"Organizations"},{name:"ORGANIZATION_JOIN_REQUEST_APPROVE",description:"Approve a request to join the organization",category:"Organizations"},{name:"ORGANIZATION_JOIN_REQUEST_DENY",description:"Deny a request to join the organization",category:"Organizations",dangerous:!0},{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:"ORGANIZATION_BILLING_CHECKOUT_START",description:"Start the org subscription checkout",category:"Organizations",dangerous:!0},{name:"ORGANIZATION_BILLING_PORTAL",description:"Open the Stripe billing portal",category:"Organizations"},{name:"ORGANIZATION_TASK_QUOTA_GET",description:"Get the org's auto-task quota usage",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:"COMMERCE_DISCOVERY_SETUP",description:"Set up Commerce Discovery",category:"Connections"},{name:"COMMERCE_DISCOVERY_RUN",description:"Run Commerce Discovery",category:"Connections"},{name:"COMMERCE_DISCOVERY_BIND",description:"Bind Commerce Discovery data source",category:"Connections"},{name:"COMMERCE_DISCOVERY_CONNECTION_STATUS",description:"Read Commerce Discovery connection status",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_HEATMAP",description:"View tool-call volume by agent and tool",category:"Monitoring"},{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:"MONITORING_THREAD_USAGE",description:"View per-thread token usage and cost",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:"USER_GET",description:"Get a user by id",category:"Users"},{name:"USER_MODEL_PREFERENCES_GET",description:"Get the calling user's chat tier \u2192 model overrides",category:"Users"},{name:"USER_MODEL_PREFERENCES_UPDATE",description:"Set the calling user's chat tier \u2192 model overrides",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_TRIGGER_ROTATE_TOKEN",description:"Rotate the secret token for a webhook automation trigger",category:"Automations"},{name:"AUTOMATION_RUN",description:"Manually trigger an automation run",category:"Automations"},{name:"AUTOMATION_RUN_STATS",description:"View aggregated run counts and token/cost for an automation",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:"VIRTUAL_MCP_LAST_USED_LIST",description:"Get last-used info for one or more virtual MCPs",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_KEY_UPDATE",description:"Update AI provider API key label or credential",category:"AI Providers"},{name:"AI_PROVIDER_KEY_PREVIEW",description:"Get masked preview of AI provider API key",category:"AI Providers"},{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:"CLAUDE_SUBSCRIPTION_CONNECT",description:"Link your own Claude subscription with a setup token",category:"AI Providers"},{name:"CLAUDE_SUBSCRIPTION_STATUS",description:"Whether your Claude subscription is linked, and since when",category:"AI Providers"},{name:"CLAUDE_SUBSCRIPTION_DISCONNECT",description:"Unlink your Claude subscription",category:"AI Providers"},{name:"AI_PROVIDER_CREDITS",description:"Get current credit balance for a provider",category:"AI Providers"},{name:"SECRET_CREATE",description:"Create a secret in the credential vault",category:"Secrets"},{name:"SECRET_LIST",description:"List secrets visible to the caller (no values returned)",category:"Secrets"},{name:"FILE_CONFIG_CREATE",description:"Create an S3-compatible bucket configuration for the org",category:"File Configs"},{name:"FILE_CONFIG_LIST",description:"List S3 bucket configurations for the org (no creds returned)",category:"File Configs"},{name:"ORG_FS_PUBLIC_SETS_SYNC",description:"Re-sync the shared public skill-set volumes from their GitHub sources",category:"File Configs"},{name:"ORG_REPO_SYNC_CREATE",description:"Keep a GitHub repository mirrored into a new org-fs volume",category:"File Configs"},{name:"ORG_REPO_SYNC_LIST",description:"List the org's synced repositories and their sync status",category:"File Configs"},{name:"ORG_REPO_SYNC_UPDATE",description:"Update a synced repository's ref, paths, or enabled flag",category:"File Configs"},{name:"ORG_REPO_SYNC_DELETE",description:"Stop syncing a repository (already-synced files are kept)",category:"File Configs"},{name:"ORG_REPO_SYNC_RUN",description:"Sync a repository into its volume right now",category:"File Configs"},{name:"FILE_CONFIG_UPDATE",description:"Update an S3 bucket configuration, optionally rotating credentials",category:"File Configs"},{name:"FILE_CONFIG_DELETE",description:"Delete an S3 bucket configuration",category:"File Configs"},{name:"FILE_OBJECTS_LIST",description:"List existing objects in a configured bucket",category:"File Configs"},{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:"SANDBOX_START",description:"Start a sandbox VM with dev server preview",category:"VM"},{name:"SANDBOX_DELETE",description:"Stop and delete a sandbox VM",category:"VM"},{name:"GITHUB_LIST_USER_ORGS",description:"List GitHub user's personal account and organizations",category:"GitHub"},{name:"GLOBAL_SEARCH",description:"Search across organization resources (currently threads). Returns a typed union of matches.",category:"Search"},{name:"TASK_BOARD_ITEM_CREATE",description:"Create task board item",category:"Task Board"},{name:"TASK_BOARD_ITEM_LIST",description:"List task board items",category:"Task Board"},{name:"TASK_BOARD_ITEM_UPDATE",description:"Update task board item",category:"Task Board"},{name:"TASK_BOARD_ITEM_DELETE",description:"Delete task board item",category:"Task Board",dangerous:!0},{name:"TASK_BOARD_ITEM_PRS_GET",description:"Get a task board item's linked pull requests with live state",category:"Task Board"},{name:"TASK_BOARD_ITEM_PR_LINK",description:"Link a pull request a task run opened to its task board item",category:"Task Board"},{name:"TASK_BOARD_ITEM_RERUN",description:"Re-run a task with the Super Agent, failing any run still holding it open",category:"Task Board",dangerous:!0},{name:"TASK_BOARD_REVIEW_DECISION",description:"Record a reviewer's decision (approve or request changes) for a task under review",category:"Task Board",dangerous:!0},{name:"TASK_BOARD_PROMOTE_TO_PRODUCTION",description:"Merge a reviewed task's pull request and move the task to Done",category:"Task Board",dangerous:!0},{name:"TASK_BOARD_ACTIVITY_LIST",description:"List a task board item's change history",category:"Task Board"},{name:"TASK_BOARD_COMMENT_LIST",description:"List a task board item's comment threads",category:"Task Board"},{name:"TASK_BOARD_COMMENT_CREATE",description:"Post a comment or a reply on a task board item",category:"Task Board"},{name:"TASK_BOARD_COMMENT_UPDATE",description:"Edit a comment, or resolve/unresolve a comment thread",category:"Task Board"},{name:"TASK_BOARD_COMMENT_DELETE",description:"Delete a comment (a thread root takes its replies)",category:"Task Board"},{name:"TASK_BOARD_DISMISSED_LIST",description:"List diagnostic findings dismissed by deleting their task board cards",category:"Task Board"},{name:"TASK_BOARD_DISMISSED_RESTORE",description:"Un-dismiss diagnostic findings so the next report import pushes them again",category:"Task Board"},{name:"TASK_ADD_REPO",description:"Clone an organization repository into the sandbox of the task run calling it",category:"Task Board"}],aQ0=[{id:"basic-usage",label:"Basic Usage",description:"Tools all org members can access by default",section:"Basic Usage",tools:["COLLECTION_CONNECTIONS_LIST","COLLECTION_CONNECTIONS_GET","CONNECTION_TEST","COLLECTION_VIRTUAL_MCP_LIST","COLLECTION_VIRTUAL_MCP_GET","VIRTUAL_MCP_PLUGIN_CONFIG_GET","VIRTUAL_MCP_LAST_USED_LIST","AUTOMATION_GET","AUTOMATION_LIST","AUTOMATION_RUN_STATS","AI_PROVIDERS_LIST","AI_PROVIDERS_LIST_MODELS","AI_PROVIDERS_ACTIVE","AI_PROVIDER_KEY_LIST","AI_PROVIDER_CREDITS","AI_PROVIDER_TOPUP_URL","LIST_OBJECTS","GET_OBJECT_METADATA","GET_PRESIGNED_URL","PUT_PRESIGNED_URL","FILE_OBJECTS_LIST","ORG_REPO_SYNC_LIST","SANDBOX_START","SANDBOX_DELETE","GLOBAL_SEARCH","ORGANIZATION_SETTINGS_GET","USER_GET","BRAND_CONTEXT_LIST","COLLECTION_THREADS_CREATE","COLLECTION_THREADS_LIST","COLLECTION_THREADS_GET","COLLECTION_THREADS_UPDATE","COLLECTION_THREADS_DELETE","COLLECTION_THREAD_MESSAGES_LIST","TASK_BOARD_ITEM_CREATE","TASK_BOARD_ITEM_LIST","TASK_BOARD_ITEM_UPDATE","TASK_BOARD_ITEM_DELETE","TASK_BOARD_ITEM_PRS_GET","TASK_BOARD_ITEM_PR_LINK","TASK_BOARD_ITEM_RERUN","TASK_BOARD_REVIEW_DECISION","TASK_BOARD_PROMOTE_TO_PRODUCTION","TASK_BOARD_ACTIVITY_LIST","TASK_BOARD_COMMENT_LIST","TASK_BOARD_COMMENT_CREATE","TASK_BOARD_COMMENT_UPDATE","TASK_BOARD_COMMENT_DELETE","TASK_BOARD_DISMISSED_LIST","TASK_BOARD_DISMISSED_RESTORE"]},{id:"org:manage",label:"Manage organization",description:"Edit organization settings, brand context, and domain configuration",section:"Organization",tools:["ORGANIZATION_GET","ORGANIZATION_LIST","ORGANIZATION_UPDATE","ORGANIZATION_SETTINGS_GET","ORGANIZATION_SETTINGS_UPDATE","BRAND_CONTEXT_LIST","BRAND_CONTEXT_GET","BRAND_CONTEXT_CREATE","BRAND_CONTEXT_UPDATE","BRAND_CONTEXT_DELETE","BRAND_CONTEXT_EXTRACT","BRAND_GET","BRAND_LIST","ORGANIZATION_DOMAIN_LIST","ORGANIZATION_DOMAIN_ADD","ORGANIZATION_DOMAIN_UPDATE","ORGANIZATION_DOMAIN_VERIFY","ORGANIZATION_DOMAIN_REMOVE"]},{id:"members:manage",label:"Manage members",description:"Invite members, remove them, and change their roles",section:"Organization",tools:["ORGANIZATION_MEMBER_LIST","ORGANIZATION_MEMBER_ADD","ORGANIZATION_MEMBER_REMOVE","ORGANIZATION_MEMBER_UPDATE_ROLE","ORGANIZATION_BILLING_CHECKOUT_START","ORGANIZATION_BILLING_PORTAL","ORGANIZATION_TASK_QUOTA_GET","ORGANIZATION_JOIN_REQUEST_LIST","ORGANIZATION_JOIN_REQUEST_APPROVE","ORGANIZATION_JOIN_REQUEST_DENY"],dangerous:!0},{id:"connections:manage",label:"Manage connections",description:"Create, update, and delete connections",section:"Connections & Agents",tools:["COLLECTION_CONNECTIONS_CREATE","COLLECTION_CONNECTIONS_UPDATE","COLLECTION_CONNECTIONS_DELETE","COMMERCE_DISCOVERY_SETUP","COMMERCE_DISCOVERY_RUN","COMMERCE_DISCOVERY_BIND","COMMERCE_DISCOVERY_CONNECTION_STATUS"],dangerous:!0},{id:"agents:manage",label:"Manage agents",description:"Create, configure, and delete agents",section:"Connections & Agents",tools:["COLLECTION_VIRTUAL_MCP_CREATE","COLLECTION_VIRTUAL_MCP_UPDATE","COLLECTION_VIRTUAL_MCP_DELETE","VIRTUAL_MCP_PLUGIN_CONFIG_UPDATE","VIRTUAL_MCP_PINNED_VIEWS_UPDATE"],dangerous:!0},{id:"automations:manage",label:"Manage automations",description:"Create, update, run, and delete automations",section:"Automations",tools:["AUTOMATION_CREATE","AUTOMATION_UPDATE","AUTOMATION_DELETE","AUTOMATION_TRIGGER_ADD","AUTOMATION_TRIGGER_REMOVE","AUTOMATION_TRIGGER_ROTATE_TOKEN","AUTOMATION_RUN"],dangerous:!0},{id:"monitoring:view",label:"View monitoring",description:"Access logs and usage statistics",section:"Monitoring",tools:["MONITORING_HEATMAP","MONITORING_LOG_GET","MONITORING_LOGS_LIST","MONITORING_STATS","MONITORING_THREAD_USAGE"]},{id:"secrets:manage",label:"Manage secrets",description:"Create and list secrets stored in the credential vault",section:"Organization",tools:["SECRET_CREATE","SECRET_LIST"]},{id:"file-configs:manage",label:"Manage file configs",description:"Create, list, update and delete S3 bucket configurations and synced GitHub repositories",section:"Organization",tools:["FILE_CONFIG_CREATE","FILE_CONFIG_LIST","FILE_CONFIG_UPDATE","FILE_CONFIG_DELETE","FILE_OBJECTS_LIST","ORG_REPO_SYNC_CREATE","ORG_REPO_SYNC_LIST","ORG_REPO_SYNC_UPDATE","ORG_REPO_SYNC_DELETE","ORG_REPO_SYNC_RUN"]},{id:"ai-providers:manage",label:"Manage AI providers",description:"Add or remove API keys and provision provider credentials",section:"AI Providers",tools:["AI_PROVIDER_KEY_CREATE","AI_PROVIDER_KEY_LIST","AI_PROVIDER_KEY_DELETE","AI_PROVIDER_KEY_UPDATE","AI_PROVIDER_KEY_PREVIEW","AI_PROVIDER_OAUTH_URL","AI_PROVIDER_OAUTH_EXCHANGE","AI_PROVIDER_PROVISION_KEY","AI_PROVIDER_TOPUP_URL","AI_PROVIDER_CREDITS","CLAUDE_SUBSCRIPTION_CONNECT","CLAUDE_SUBSCRIPTION_STATUS","CLAUDE_SUBSCRIPTION_DISCONNECT"]},{id:"tags:manage",label:"Manage tags",description:"Create, assign, and delete organization tags",section:"Organization",tools:["TAGS_LIST","TAGS_CREATE","TAGS_DELETE","MEMBER_TAGS_GET","MEMBER_TAGS_SET"]},{id:"registry:manage",label:"Manage registry",description:"Browse, publish, and manage items in the registry",section:"Store & Registry",tools:["COLLECTION_REGISTRY_APP_LIST","COLLECTION_REGISTRY_APP_GET","COLLECTION_REGISTRY_APP_VERSIONS","COLLECTION_REGISTRY_APP_FILTERS","REGISTRY_ITEM_LIST","REGISTRY_ITEM_SEARCH","REGISTRY_ITEM_GET","REGISTRY_ITEM_VERSIONS","REGISTRY_ITEM_FILTERS","REGISTRY_DISCOVER_TOOLS","REGISTRY_ITEM_CREATE","REGISTRY_ITEM_BULK_CREATE","REGISTRY_ITEM_UPDATE","REGISTRY_ITEM_DELETE","REGISTRY_AI_GENERATE","REGISTRY_PUBLISH_REQUEST_LIST","REGISTRY_PUBLISH_REQUEST_REVIEW","REGISTRY_PUBLISH_REQUEST_COUNT","REGISTRY_PUBLISH_REQUEST_DELETE","REGISTRY_PUBLISH_API_KEY_GENERATE","REGISTRY_PUBLISH_API_KEY_LIST","REGISTRY_PUBLISH_API_KEY_REVOKE"],dangerous:!0},{id:"registry:monitor",label:"Monitor registry health",description:"Run health checks on registry connections and view results",section:"Store & Registry",tools:["REGISTRY_MONITOR_RUN_START","REGISTRY_MONITOR_RUN_LIST","REGISTRY_MONITOR_RUN_GET","REGISTRY_MONITOR_RUN_CANCEL","REGISTRY_MONITOR_RESULT_LIST","REGISTRY_MONITOR_CONNECTION_LIST","REGISTRY_MONITOR_CONNECTION_SYNC","REGISTRY_MONITOR_CONNECTION_UPDATE_AUTH"]},{id:"api-keys:manage",label:"Manage API keys",description:"Create, update, and revoke API keys",section:"Developer",tools:["API_KEY_CREATE","API_KEY_LIST","API_KEY_UPDATE","API_KEY_DELETE"]},{id:"storage:delete",label:"Delete from storage",description:"Permanently delete files from object storage",section:"Developer",tools:["DELETE_OBJECT","DELETE_OBJECTS"],dangerous:!0},{id:"connections:sql",label:"Run SQL queries",description:"Execute raw SQL against connected databases",section:"Developer",tools:["DATABASES_RUN_SQL"],dangerous:!0}],RQ8=new Set([...aQ0.find(($)=>$.id==="basic-usage")?.tools??[],"ORG_FS_READ","ORG_FS_WRITE"]),yH4=["agents:manage","connections:manage"],sQ0=new Set(aQ0.filter(($)=>yH4.includes($.id)).flatMap(($)=>$.tools))});function B3($){if(!$)return!1;return $.split(",").some((X)=>sp.includes(X))}function eQ0($,Z){let X=Array.isArray(Z)?Z:[Z];if(X.length===0)return!1;let Q=$?$.split(","):[];if(Q.includes("owner"))return!0;if(Q.includes("admin"))return X.every((Y)=>Y!=="owner");return!1}var Mg,sp;var O3=O(()=>{Mg=["owner","admin","user"],sp=["owner","admin"]});class Uz{userId;toolName;boundAuth;role;connectionId;getToolMeta;organizationId;_granted=!1;constructor($,Z,X,Q,Y="self",G,J){this.userId=$;this.toolName=Z;this.boundAuth=X;this.role=Q;this.connectionId=Y;this.getToolMeta=G;this.organizationId=J}setToolName($){this.toolName=$}setOrganizationId($){this.organizationId=$}getOrganizationId(){return this.organizationId}setRole($){this.role=$}getRole(){return this.role}grant(){this._granted=!0}async check(...$){if(this._granted)return;if(this.toolName?.startsWith("STUDIO_PUBLIC_")||this.toolName?.startsWith("MESH_PUBLIC_")){this.grant();return}if(!this.userId&&!this.boundAuth){if(this.getToolMeta&&await this.isToolPublic()){this.grant();return}throw new Vg("Authentication required. Please provide a valid OAuth token or API key.")}let Z=$.length>0?$:this.toolName?[this.toolName]:[];if(Z.length===0)throw new HN("No resources specified for access check");for(let X of Z)if(await this.checkResource(X)){this.grant();return}throw new HN(`Access denied to: ${Z.join(", ")}`)}async checkResource($){if(!this.userId&&!this.boundAuth)return!1;return this.boundAuth?.isApiKeyPrincipal?this.checkApiKeyAccess($):this.checkMemberAccess($)}async checkApiKeyAccess($){if(!this.boundAuth)return!1;return this.boundAuth.hasPermission({[this.connectionId]:[$]})}async checkMemberAccess($){if(this.userId&&this.role&&RQ8.has($))return!0;if(B3(this.role))return!0;if(!this.boundAuth)return!1;return this.boundAuth.hasPermission({[this.connectionId]:[$]},{organizationId:this.organizationId,role:this.role})}async isToolPublic(){if(this.toolName?.startsWith("STUDIO_PUBLIC_")||this.toolName?.startsWith("MESH_PUBLIC_"))return!0;if(!this.getToolMeta)return!1;try{let $=await this.getToolMeta();if(!$)return!1;let X=dW($)?.public_tool;return X===!0||X==="true"}catch{return!1}}granted(){return this._granted}}var Vg,HN;var Nz=O(()=>{qg();O3();Vg=class Vg extends Error{constructor($){super($);this.name="UnauthorizedError"}};HN=class HN extends Error{constructor($){super($);this.name="ForbiddenError"}}});function qQ8($){let Z={};for(let X of Object.keys($))Z[X]=["*"];return Z}function XQ($){let Z=$?.metadata;if(!Z)return!1;try{return(typeof Z==="string"?JSON.parse(Z):Z).archived===!0}catch{return!1}}function $Y0($,Z){return $.get(MQ8[Z])??$.get(VQ8[Z])}function ca0($,Z,X){$[MQ8[Z]]=X,$[VQ8[Z]]=X}var MQ8,VQ8;var la0=O(()=>{MQ8={token:"x-studio-token",client:"x-studio-client",properties:"x-studio-properties",runMetadata:"x-studio-run-metadata"},VQ8={token:"x-mesh-token",client:"x-mesh-client",properties:"x-mesh-properties",runMetadata:"x-mesh-run-metadata"}});function ZY0($){let Z=vB.get($);if(!Z||Z.state==="CLOSED")return;if(Z.state==="HALF_OPEN"){if(Z.halfOpenInFlight){if(Date.now()-Z.halfOpenStartedAt<Z58)throw new kg($,0)}Z.halfOpenInFlight=!0,Z.halfOpenStartedAt=Date.now();return}let X=Date.now()-Z.lastFailureTime;if(X>=Co0){Z.state="HALF_OPEN",Z.halfOpenInFlight=!0,Z.halfOpenStartedAt=Date.now();return}throw new kg($,Co0-X)}function XY0($){vB.delete($)}function QY0($){let Z=vB.get($);if(!Z){gH4(),vB.set($,{state:1>=So0?"OPEN":"CLOSED",consecutiveFailures:1,lastFailureTime:Date.now(),halfOpenInFlight:!1,halfOpenStartedAt:0});return}if(Z.consecutiveFailures++,Z.lastFailureTime=Date.now(),Z.halfOpenInFlight=!1,Z.consecutiveFailures>=So0)Z.state="OPEN"}function gH4(){if(vB.size<bX0)return;let $=null,Z=1/0;for(let[X,Q]of vB)if(Q.lastFailureTime<Z)Z=Q.lastFailureTime,$=X;if($)vB.delete($)}var vB,kg;var da0=O(()=>{t$();vB=new Map;y8.createObservableGauge("mcp_circuit_breaker.circuits",{description:"MCP connection circuits by state (open, half_open)",unit:"{circuits}"}).addCallback(($)=>{let Z=0,X=0;for(let Q of vB.values())if(Q.state==="OPEN")Z++;else if(Q.state==="HALF_OPEN")X++;$.observe(Z,{state:"open"}),$.observe(X,{state:"half_open"})});kg=class kg extends Error{cooldownRemainingMs;constructor($,Z){super(`Connection ${$} circuit breaker is open \u2014 downstream server unreachable. `+`Retry in ${Math.ceil(Z/1000)}s.`);this.name="CircuitOpenError",this.cooldownRemainingMs=Z}}});var ep=($,Z)=>{if(Z===null||Z===void 0)return;let X=$.replace(/\[(\w+)\]/g,".$1").split(".").filter(Boolean),Q=Z;for(let Y of X){if(Q===null||Q===void 0||typeof Q!=="object")return;Q=Q[Y]}return Q};function YY0($){let Z=$.split("::");if(Z.length!==2||!Z[0]||!Z[1])throw Error(`Invalid scope format: ${$}. Expected format: "KEY::SCOPE"`);return Z}function hH4($){try{return YY0($)}catch{return null}}function uH4($){if(typeof $==="object"&&$!==null&&"value"in $){let Z=$.value;if(typeof Z==="string")return Z}return null}function ma0($,Z){let X={};if(!$||!Z)return X;for(let Q of Z){if(Q==="*"){X["*"]=["*"];continue}let Y=hH4(Q);if(!Y)continue;let[G,J]=Y,K=ep(G,$),W=uH4(K);if(W){if(!X[W])X[W]=[];X[W].push(J)}}return X}function kQ8($,Z){let X=ma0($,Z);return new Set(Object.keys(X).filter((Q)=>Q!=="*"))}var ia0=()=>{};async function SQ8($){if(!$.refreshToken)return{success:!1,permanent:!1,error:"No refresh token available"};if(!$.tokenEndpoint)return{success:!1,permanent:!1,error:"No token endpoint available"};if(!$.clientId)return{success:!1,permanent:!1,error:"No client ID available"};try{let Z=new URLSearchParams({grant_type:"refresh_token",refresh_token:$.refreshToken,client_id:$.clientId});if($.clientSecret)Z.set("client_secret",$.clientSecret);if($.scope)Z.set("scope",$.scope);let X=await fetch($.tokenEndpoint,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded",Accept:"application/json"},body:Z.toString(),signal:AbortSignal.timeout(1e4)});if(!X.ok){let G=await X.text(),J,K;try{let H=JSON.parse(G);J=H.error,K=H.error_description}catch{}let W=X.status===400&&!!J&&cH4.has(J);return(W?console.error:console.warn)("[TokenRefresh] refresh failed",{connectionId:$.connectionId,tokenEndpoint:$.tokenEndpoint,status:X.status,errorCode:J,errorDescription:K,permanent:W}),{success:!1,permanent:W,status:X.status,errorCode:J,error:K||J||`Token refresh failed: ${X.status}`}}let Q=await X.json();if(typeof Q.access_token!=="string"||!Q.access_token)return console.warn("[TokenRefresh] 200 response missing access_token",{connectionId:$.connectionId,tokenEndpoint:$.tokenEndpoint}),{success:!1,permanent:!1,status:X.status,error:"Token endpoint returned no access_token"};let Y;if(Q.expires_in!==void 0){let G=Number(Q.expires_in);if(Number.isFinite(G)&&G>0)Y=G;else console.warn("[TokenRefresh] ignoring malformed expires_in",{connectionId:$.connectionId,tokenEndpoint:$.tokenEndpoint,expiresIn:Q.expires_in})}return{success:!0,accessToken:Q.access_token,refreshToken:typeof Q.refresh_token==="string"&&Q.refresh_token?Q.refresh_token:$.refreshToken,expiresIn:Y,scope:typeof Q.scope==="string"?Q.scope:void 0}}catch(Z){return console.warn("[TokenRefresh] network/parse error",{connectionId:$.connectionId,tokenEndpoint:$.tokenEndpoint,message:Z instanceof Error?Z.message:String(Z)}),{success:!1,permanent:!1,error:Z instanceof Error?Z.message:"Token refresh failed"}}}var cH4;var CQ8=O(()=>{cH4=new Set(["invalid_grant","bad_refresh_token"])});var na0=($,Z,X)=>{return(Q,Y)=>{let G=-1;return J(0);async function J(K){if(K<=G)throw Error("next() called multiple times");G=K;let W,H=!1,U;if($[K])U=$[K][0][0],Q.req.routeIndex=K;else U=K===$.length&&Y||void 0;if(U)try{W=await U(Q,()=>J(K+1))}catch(N){if(N instanceof Error&&Z)Q.error=N,W=await Z(N,Q),H=!0;else throw N}else if(Q.finalized===!1&&X)W=await X(Q);if(W&&(Q.finalized===!1||H))Q.res=W;return Q}}};var _Q8=()=>{};var J8;var sJ=O(()=>{J8=class extends Error{res;status;constructor($=500,Z){super(Z?.message,{cause:Z?.cause});this.res=Z?.res,this.status=$}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 vQ8;var xQ8=O(()=>{vQ8=Symbol()});async function lH4($,Z){let X=await $.formData();if(X)return dH4(X,Z);return{}}function dH4($,Z){let X=Object.create(null);if($.forEach((Q,Y)=>{if(!(Z.all||Y.endsWith("[]")))X[Y]=Q;else mH4(X,Y,Q)}),Z.dot)Object.entries(X).forEach(([Q,Y])=>{if(Q.includes("."))iH4(X,Q,Y),delete X[Q]});return X}var fQ8=async($,Z=Object.create(null))=>{let{all:X=!1,dot:Q=!1}=Z,G=($ instanceof GY0?$.raw.headers:$.headers).get("Content-Type");if(G?.startsWith("multipart/form-data")||G?.startsWith("application/x-www-form-urlencoded"))return lH4($,{all:X,dot:Q});return{}},mH4=($,Z,X)=>{if($[Z]!==void 0)if(Array.isArray($[Z]))$[Z].push(X);else $[Z]=[$[Z],X];else if(!Z.endsWith("[]"))$[Z]=X;else $[Z]=[X]},iH4=($,Z,X)=>{if(/(?:^|\.)__proto__\./.test(Z))return;let Q=$,Y=Z.split(".");Y.forEach((G,J)=>{if(J===Y.length-1)Q[G]=X;else{if(!Q[G]||typeof Q[G]!=="object"||Array.isArray(Q[G])||Q[G]instanceof File)Q[G]=Object.create(null);Q=Q[G]}})};var bQ8=O(()=>{pa0()});var oa0=($)=>{let Z=$.split("/");if(Z[0]==="")Z.shift();return Z},yQ8=($)=>{let{groups:Z,path:X}=nH4($),Q=oa0(X);return pH4(Q,Z)},nH4=($)=>{let Z=[];return $=$.replace(/\{[^}]+\}/g,(X,Q)=>{let Y=`@${Q}`;return Z.push([Y,X]),Y}),{groups:Z,path:$}},pH4=($,Z)=>{for(let X=Z.length-1;X>=0;X--){let[Q]=Z[X];for(let Y=$.length-1;Y>=0;Y--)if($[Y].includes(Q)){$[Y]=$[Y].replace(Q,Z[X][1]);break}}return $},JY0,gQ8=($,Z)=>{if($==="*")return"*";let X=$.match(/^\:([^\{\}]+)(?:\{(.+)\})?$/);if(X){let Q=`${$}#${Z}`;if(!JY0[Q])if(X[2])JY0[Q]=Z&&Z[0]!==":"&&Z[0]!=="*"?[Q,X[1],new RegExp(`^${X[2]}(?=/${Z})`)]:[$,X[1],new RegExp(`^${X[2]}$`)];else JY0[Q]=[$,X[1],!0];return JY0[Q]}return null},Sg=($,Z)=>{try{return Z($)}catch{return $.replace(/(?:%[0-9A-Fa-f]{2})+/g,(X)=>{try{return Z(X)}catch{return X}})}},hQ8=($)=>Sg($,decodeURI),ra0=($)=>{let Z=$.url,X=Z.indexOf("/",Z.indexOf(":")+4),Q=X;for(;Q<Z.length;Q++){let Y=Z.charCodeAt(Q);if(Y===37){let G=Z.indexOf("?",Q),J=Z.indexOf("#",Q),K=G===-1?J===-1?void 0:J:J===-1?G:Math.min(G,J),W=Z.slice(X,K);return hQ8(W.includes("%25")?W.replace(/%25/g,"%2525"):W)}else if(Y===63||Y===35)break}return Z.slice(X,Q)},uQ8=($)=>{let Z=ra0($);return Z.length>1&&Z.at(-1)==="/"?Z.slice(0,-1):Z},Fz=($,Z,...X)=>{if(X.length)Z=Fz(Z,...X);return`${$?.[0]==="/"?"":"/"}${$}${Z==="/"?"":`${$?.at(-1)==="/"?"":"/"}${Z?.[0]==="/"?Z.slice(1):Z}`}`},KY0=($)=>{if($.charCodeAt($.length-1)!==63||!$.includes(":"))return null;let Z=$.split("/"),X=[],Q="";return Z.forEach((Y)=>{if(Y!==""&&!/\:/.test(Y))Q+="/"+Y;else if(/\:/.test(Y))if(/\?/.test(Y)){if(X.length===0&&Q==="")X.push("/");else X.push(Q);let G=Y.replace("?","");Q+="/"+G,X.push(Q)}else Q+="/"+Y}),X.filter((Y,G,J)=>J.indexOf(Y)===G)},ta0=($)=>{if(!/[%+]/.test($))return $;if($.indexOf("+")!==-1)$=$.replace(/\+/g," ");return $.indexOf("%")!==-1?Sg($,$t):$},cQ8=($,Z,X)=>{let Q;if(!X&&Z&&!/[%+]/.test(Z)){let J=$.indexOf("?",8);if(J===-1)return;if(!$.startsWith(Z,J+1))J=$.indexOf(`&${Z}`,J+1);while(J!==-1){let K=$.charCodeAt(J+Z.length+1);if(K===61){let W=J+Z.length+2,H=$.indexOf("&",W);return ta0($.slice(W,H===-1?void 0:H))}else if(K==38||isNaN(K))return"";J=$.indexOf(`&${Z}`,J+1)}if(Q=/[%+]/.test($),!Q)return}let Y={};Q??=/[%+]/.test($);let G=$.indexOf("?",8);while(G!==-1){let J=$.indexOf("&",G+1),K=$.indexOf("=",G);if(K>J&&J!==-1)K=-1;let W=$.slice(G+1,K===-1?J===-1?void 0:J:K);if(Q)W=ta0(W);if(G=J,W==="")continue;let H;if(K===-1)H="";else if(H=$.slice(K+1,J===-1?void 0:J),Q)H=ta0(H);if(X){if(!(Y[W]&&Array.isArray(Y[W])))Y[W]=[];Y[W].push(H)}else Y[W]??=H}return Z?Y[Z]:Y},lQ8,dQ8=($,Z)=>{return cQ8($,Z,!0)},$t;var xB=O(()=>{JY0={},lQ8=cQ8,$t=decodeURIComponent});var mQ8=($)=>Sg($,$t),GY0;var pa0=O(()=>{sJ();xQ8();bQ8();xB();GY0=class{raw;#$;#Z;routeIndex=0;path;bodyCache={};constructor($,Z="/",X=[[]]){this.raw=$,this.path=Z,this.#Z=X,this.#$={}}param($){return $?this.#X($):this.#G()}#X($){let Z=this.#Z[0][this.routeIndex][1][$],X=this.#Y(Z);return X&&/\%/.test(X)?mQ8(X):X}#G(){let $={},Z=Object.keys(this.#Z[0][this.routeIndex][1]);for(let X of Z){let Q=this.#Y(this.#Z[0][this.routeIndex][1][X]);if(Q!==void 0)$[X]=/\%/.test(Q)?mQ8(Q):Q}return $}#Y($){return this.#Z[1]?this.#Z[1][$]:$}query($){return lQ8(this.url,$)}queries($){return dQ8(this.url,$)}header($){if($)return this.raw.headers.get($)??void 0;let Z={};return this.raw.headers.forEach((X,Q)=>{Z[Q]=X}),Z}async parseBody($){return fQ8(this,$)}#Q=($)=>{let{bodyCache:Z,raw:X}=this,Q=Z[$];if(Q)return Q;let Y=Object.keys(Z)[0];if(Y)return Z[Y].then((G)=>{if(Y==="json")G=JSON.stringify(G);return new Response(G)[$]()});return Z[$]=X[$]()};json(){return this.#Q("text").then(($)=>JSON.parse($))}text(){return this.#Q("text")}arrayBuffer(){return this.#Q("arrayBuffer")}blob(){return this.#Q("blob")}formData(){return this.#Q("formData")}addValidatedData($,Z){this.#$[$]=Z}valid($){return this.#$[$]}get url(){return this.raw.url}get method(){return this.raw.method}get[vQ8](){return this.#Z}get matchedRoutes(){return this.#Z[0].map(([[,$]])=>$)}get routePath(){return this.#Z[0].map(([[,$]])=>$)[this.routeIndex].path}}});var WY0,iQ8=($,Z)=>{let X=new String($);return X.isEscaped=!0,X.callbacks=Z,X},Zt=async($,Z,X,Q,Y)=>{if(typeof $==="object"&&!($ instanceof String)){if(!($ instanceof Promise))$=$.toString();if($ instanceof Promise)$=await $}let G=$.callbacks;if(!G?.length)return Promise.resolve($);if(Y)Y[0]+=$;else Y=[$];let J=Promise.all(G.map((K)=>K({phase:Z,buffer:Y,context:Q}))).then((K)=>Promise.all(K.filter(Boolean).map((W)=>Zt(W,Z,!1,Q,Y))).then(()=>Y[0]));if(X)return iQ8(await J,G);else return J};var HY0=O(()=>{WY0={Stringify:1,BeforeStream:2,Stream:3}});var nQ8="text/plain; charset=UTF-8",aa0=($,Z)=>{return{"Content-Type":$,...Z}},Xt=($,Z)=>new Response($,Z),pQ8=class{#$;#Z;env={};#X;finalized=!1;error;#G;#Y;#Q;#J;#K;#W;#U;#N;#F;constructor($,Z){if(this.#$=$,Z)this.#Y=Z.executionCtx,this.env=Z.env,this.#W=Z.notFoundHandler,this.#F=Z.path,this.#N=Z.matchResult}get req(){return this.#Z??=new GY0(this.#$,this.#F,this.#N),this.#Z}get event(){if(this.#Y&&"respondWith"in this.#Y)return this.#Y;else throw Error("This context has no FetchEvent")}get executionCtx(){if(this.#Y)return this.#Y;else throw Error("This context has no ExecutionContext")}get res(){return this.#Q||=Xt(null,{headers:this.#U??=new Headers})}set res($){if(this.#Q&&$){$=Xt($.body,$);for(let[Z,X]of this.#Q.headers.entries()){if(Z==="content-type")continue;if(Z==="set-cookie"){let Q=this.#Q.headers.getSetCookie();$.headers.delete("set-cookie");for(let Y of Q)$.headers.append("set-cookie",Y)}else $.headers.set(Z,X)}}this.#Q=$,this.finalized=!0}render=(...$)=>{return this.#K??=(Z)=>this.html(Z),this.#K(...$)};setLayout=($)=>this.#J=$;getLayout=()=>this.#J;setRenderer=($)=>{this.#K=$};header=($,Z,X)=>{if(this.finalized)this.#Q=Xt(this.#Q.body,this.#Q);let Q=this.#Q?this.#Q.headers:this.#U??=new Headers;if(Z===void 0)Q.delete($);else if(X?.append)Q.append($,Z);else Q.set($,Z)};status=($)=>{this.#G=$};set=($,Z)=>{this.#X??=new Map,this.#X.set($,Z)};get=($)=>{return this.#X?this.#X.get($):void 0};get var(){if(!this.#X)return{};return Object.fromEntries(this.#X)}#H($,Z,X){let Q=this.#Q?new Headers(this.#Q.headers):this.#U??new Headers;if(typeof Z==="object"&&"headers"in Z){let G=Z.headers instanceof Headers?Z.headers:new Headers(Z.headers);for(let[J,K]of G)if(J.toLowerCase()==="set-cookie")Q.append(J,K);else Q.set(J,K)}if(X)for(let[G,J]of Object.entries(X))if(typeof J==="string")Q.set(G,J);else{Q.delete(G);for(let K of J)Q.append(G,K)}let Y=typeof Z==="number"?Z:Z?.status??this.#G;return Xt($,{status:Y,headers:Q})}newResponse=(...$)=>this.#H(...$);body=($,Z,X)=>this.#H($,Z,X);text=($,Z,X)=>{return!this.#U&&!this.#G&&!Z&&!X&&!this.finalized?new Response($):this.#H($,Z,aa0(nQ8,X))};json=($,Z,X)=>{return this.#H(JSON.stringify($),Z,aa0("application/json",X))};html=($,Z,X)=>{let Q=(Y)=>this.#H(Y,Z,aa0("text/html; charset=UTF-8",X));return typeof $==="object"?Zt($,WY0.Stringify,!1,{}).then(Q):Q($)};redirect=($,Z)=>{let X=String($);return this.header("Location",!/[^\x00-\xFF]/.test(X)?X:encodeURI(X)),this.newResponse(null,Z??302)};notFound=()=>{return this.#W??=()=>Xt(),this.#W(this)}};var UY0=O(()=>{pa0();HY0()});var b$="ALL",tQ8="all",oQ8,NY0="Can not add a route since the matcher is already built.",FY0;var fB=O(()=>{oQ8=["get","post","put","delete","options","patch"],FY0=class extends Error{}});var sa0="__COMPOSED_HANDLER";var ea0=()=>{};var tH4=($)=>{return $.text("404 Not Found",404)},rQ8=($,Z)=>{if("getResponse"in $){let X=$.getResponse();return Z.newResponse(X.body,X)}return console.error($),Z.text("Internal Server Error",500)},aQ8=class ${get;post;put;delete;options;patch;all;on;use;router;getPath;_basePath="/";#$="/";routes=[];constructor(Z={}){[...oQ8,tQ8].forEach((G)=>{this[G]=(J,...K)=>{if(typeof J==="string")this.#$=J;else this.#G(G,this.#$,J);return K.forEach((W)=>{this.#G(G,this.#$,W)}),this}}),this.on=(G,J,...K)=>{for(let W of[J].flat()){this.#$=W;for(let H of[G].flat())K.map((U)=>{this.#G(H.toUpperCase(),this.#$,U)})}return this},this.use=(G,...J)=>{if(typeof G==="string")this.#$=G;else this.#$="*",J.unshift(G);return J.forEach((K)=>{this.#G(b$,this.#$,K)}),this};let{strict:Q,...Y}=Z;Object.assign(this,Y),this.getPath=Q??!0?Z.getPath??ra0:uQ8}#Z(){let Z=new $({router:this.router,getPath:this.getPath});return Z.errorHandler=this.errorHandler,Z.#X=this.#X,Z.routes=this.routes,Z}#X=tH4;errorHandler=rQ8;route(Z,X){let Q=this.basePath(Z);return X.routes.map((Y)=>{let G;if(X.errorHandler===rQ8)G=Y.handler;else G=async(J,K)=>(await na0([],X.errorHandler)(J,()=>Y.handler(J,K))).res,G[sa0]=Y.handler;Q.#G(Y.method,Y.path,G)}),this}basePath(Z){let X=this.#Z();return X._basePath=Fz(this._basePath,Z),X}onError=(Z)=>{return this.errorHandler=Z,this};notFound=(Z)=>{return this.#X=Z,this};mount(Z,X,Q){let Y,G;if(Q)if(typeof Q==="function")G=Q;else if(G=Q.optionHandler,Q.replaceRequest===!1)Y=(W)=>W;else Y=Q.replaceRequest;let J=G?(W)=>{let H=G(W);return Array.isArray(H)?H:[H]}:(W)=>{let H=void 0;try{H=W.executionCtx}catch{}return[W.env,H]};Y||=(()=>{let W=Fz(this._basePath,Z),H=W==="/"?0:W.length;return(U)=>{let N=new URL(U.url);return N.pathname=N.pathname.slice(H)||"/",new Request(N,U)}})();let K=async(W,H)=>{let U=await X(Y(W.req.raw),...J(W));if(U)return U;await H()};return this.#G(b$,Fz(Z,"*"),K),this}#G(Z,X,Q){Z=Z.toUpperCase(),X=Fz(this._basePath,X);let Y={basePath:this._basePath,path:X,method:Z,handler:Q};this.router.add(Z,X,[Q,Y]),this.routes.push(Y)}#Y(Z,X){if(Z instanceof Error)return this.errorHandler(Z,X);throw Z}#Q(Z,X,Q,Y){if(Y==="HEAD")return(async()=>new Response(null,await this.#Q(Z,X,Q,"GET")))();let G=this.getPath(Z,{env:Q}),J=this.router.match(Y,G),K=new pQ8(Z,{path:G,matchResult:J,env:Q,executionCtx:X,notFoundHandler:this.#X});if(J[0].length===1){let H;try{H=J[0][0][0][0](K,async()=>{K.res=await this.#X(K)})}catch(U){return this.#Y(U,K)}return H instanceof Promise?H.then((U)=>U||(K.finalized?K.res:this.#X(K))).catch((U)=>this.#Y(U,K)):H??this.#X(K)}let W=na0(J[0],this.errorHandler,this.#X);return(async()=>{try{let H=await W(K);if(!H.finalized)throw Error("Context is not finalized. Did you forget to return a Response object or `await next()`?");return H.res}catch(H){return this.#Y(H,K)}})()}fetch=(Z,...X)=>{return this.#Q(Z,X[1],X[0],Z.method)};request=(Z,X,Q,Y)=>{if(Z instanceof Request)return this.fetch(X?new Request(Z,X):Z,Q,Y);return Z=Z.toString(),this.fetch(new Request(/^https?:\/\//.test(Z)?Z:`http://localhost${Fz("/",Z)}`,X),Q,Y)};fire=()=>{addEventListener("fetch",(Z)=>{Z.respondWith(this.#Q(Z.request,Z,void 0,Z.request.method))})}};var sQ8=O(()=>{_Q8();UY0();fB();ea0();xB()});function wY0($,Z){let X=this.buildAllMatchers(),Q=(Y,G)=>{let J=X[Y]||X[b$],K=J[2][G];if(K)return K;let W=G.match(J[0]);if(!W)return[[],Qt];let H=W.indexOf("",1);return[J[1][H],W]};return this.match=Q,Q($,Z)}var Qt;var $s0=O(()=>{fB();Qt=[]});function rH4($,Z){if($.length===1)return Z.length===1?$<Z?-1:1:-1;if(Z.length===1)return 1;if($===Yt||$===Gt)return 1;else if(Z===Yt||Z===Gt)return-1;if($===BY0)return 1;else if(Z===BY0)return-1;return $.length===Z.length?$<Z?-1:1:Z.length-$.length}var BY0="[^/]+",Yt=".*",Gt="(?:|/.*)",wz,oH4,eQ8=class ${#$;#Z;#X=Object.create(null);insert(Z,X,Q,Y,G){if(Z.length===0){if(this.#$!==void 0)throw wz;if(G)return;this.#$=X;return}let[J,...K]=Z,W=J==="*"?K.length===0?["","",Yt]:["","",BY0]:J==="/*"?["","",Gt]:J.match(/^\:([^\{\}]+)(?:\{(.+)\})?$/),H;if(W){let U=W[1],N=W[2]||BY0;if(U&&W[2]){if(N===".*")throw wz;if(N=N.replace(/^\((?!\?:)(?=[^)]+\)$)/,"(?:"),/\((?!\?:)/.test(N))throw wz}if(H=this.#X[N],!H){if(Object.keys(this.#X).some((F)=>F!==Yt&&F!==Gt))throw wz;if(G)return;if(H=this.#X[N]=new $,U!=="")H.#Z=Y.varIndex++}if(!G&&U!=="")Q.push([U,H.#Z])}else if(H=this.#X[J],!H){if(Object.keys(this.#X).some((U)=>U.length>1&&U!==Yt&&U!==Gt))throw wz;if(G)return;H=this.#X[J]=new $}H.insert(K,X,Q,Y,G)}buildRegExpStr(){let X=Object.keys(this.#X).sort(rH4).map((Q)=>{let Y=this.#X[Q];return(typeof Y.#Z==="number"?`(${Q})@${Y.#Z}`:oH4.has(Q)?`\\${Q}`:Q)+Y.buildRegExpStr()});if(typeof this.#$==="number")X.unshift(`#${this.#$}`);if(X.length===0)return"";if(X.length===1)return X[0];return"(?:"+X.join("|")+")"}};var Zs0=O(()=>{wz=Symbol(),oH4=new Set(".\\+*[^]$()")});var $Y8=class{#$={varIndex:0};#Z=new eQ8;insert($,Z,X){let Q=[],Y=[];for(let J=0;;){let K=!1;if($=$.replace(/\{[^}]+\}/g,(W)=>{let H=`@\\${J}`;return Y[J]=[H,W],J++,K=!0,H}),!K)break}let G=$.match(/(?::[^\/]+)|(?:\/\*$)|./g)||[];for(let J=Y.length-1;J>=0;J--){let[K]=Y[J];for(let W=G.length-1;W>=0;W--)if(G[W].indexOf(K)!==-1){G[W]=G[W].replace(K,Y[J][1]);break}}return this.#Z.insert(G,Z,Q,this.#$,X),Q}buildRegExp(){let $=this.#Z.buildRegExpStr();if($==="")return[/^$/,[],[]];let Z=0,X=[],Q=[];return $=$.replace(/#(\d+)|@(\d+)|\.\*\$/g,(Y,G,J)=>{if(G!==void 0)return X[++Z]=Number(G),"$()";if(J!==void 0)return Q[Number(J)]=++Z,"";return""}),[new RegExp(`^${$}`),X,Q]}};var ZY8=O(()=>{Zs0()});function QY8($){return XY8[$]??=new RegExp($==="*"?"":`^${$.replace(/\/\*$|([.\\+*[^\]$()])/g,(Z,X)=>X?`\\${X}`:"(?:|/.*)")}$`)}function sH4(){XY8=Object.create(null)}function eH4($){let Z=new $Y8,X=[];if($.length===0)return aH4;let Q=$.map((H)=>[!/\*|\/:/.test(H[0]),...H]).sort(([H,U],[N,F])=>H?1:N?-1:U.length-F.length),Y=Object.create(null);for(let H=0,U=-1,N=Q.length;H<N;H++){let[F,w,B]=Q[H];if(F)Y[w]=[B.map(([D])=>[D,Object.create(null)]),Qt];else U++;let L;try{L=Z.insert(w,U,F)}catch(D){throw D===wz?new FY0(w):D}if(F)continue;X[U]=B.map(([D,E])=>{let z=Object.create(null);E-=1;for(;E>=0;E--){let[j,A]=L[E];z[j]=A}return[D,z]})}let[G,J,K]=Z.buildRegExp();for(let H=0,U=X.length;H<U;H++)for(let N=0,F=X[H].length;N<F;N++){let w=X[H][N]?.[1];if(!w)continue;let B=Object.keys(w);for(let L=0,D=B.length;L<D;L++)w[B[L]]=K[w[B[L]]]}let W=[];for(let H in J)W[H]=X[J[H]];return[G,W,Y]}function Cg($,Z){if(!$)return;for(let X of Object.keys($).sort((Q,Y)=>Y.length-Q.length))if(QY8(X).test(Z))return[...$[X]];return}var aH4,XY8,OY0=class{name="RegExpRouter";#$;#Z;constructor(){this.#$={[b$]:Object.create(null)},this.#Z={[b$]:Object.create(null)}}add($,Z,X){let Q=this.#$,Y=this.#Z;if(!Q||!Y)throw Error(NY0);if(!Q[$])[Q,Y].forEach((K)=>{K[$]=Object.create(null),Object.keys(K[b$]).forEach((W)=>{K[$][W]=[...K[b$][W]]})});if(Z==="/*")Z="*";let G=(Z.match(/\/:/g)||[]).length;if(/\*$/.test(Z)){let K=QY8(Z);if($===b$)Object.keys(Q).forEach((W)=>{Q[W][Z]||=Cg(Q[W],Z)||Cg(Q[b$],Z)||[]});else Q[$][Z]||=Cg(Q[$],Z)||Cg(Q[b$],Z)||[];Object.keys(Q).forEach((W)=>{if($===b$||$===W)Object.keys(Q[W]).forEach((H)=>{K.test(H)&&Q[W][H].push([X,G])})}),Object.keys(Y).forEach((W)=>{if($===b$||$===W)Object.keys(Y[W]).forEach((H)=>K.test(H)&&Y[W][H].push([X,G]))});return}let J=KY0(Z)||[Z];for(let K=0,W=J.length;K<W;K++){let H=J[K];Object.keys(Y).forEach((U)=>{if($===b$||$===U)Y[U][H]||=[...Cg(Q[U],H)||Cg(Q[b$],H)||[]],Y[U][H].push([X,G-W+K+1])})}}match=wY0;buildAllMatchers(){let $=Object.create(null);return Object.keys(this.#Z).concat(Object.keys(this.#$)).forEach((Z)=>{$[Z]||=this.#X(Z)}),this.#$=this.#Z=void 0,sH4(),$}#X($){let Z=[],X=$===b$;if([this.#$,this.#Z].forEach((Q)=>{let Y=Q[$]?Object.keys(Q[$]).map((G)=>[G,Q[$][G]]):[];if(Y.length!==0)X||=!0,Z.push(...Y);else if($!==b$)Z.push(...Object.keys(Q[b$]).map((G)=>[G,Q[b$][G]]))}),!X)return null;else return eH4(Z)}};var Xs0=O(()=>{fB();xB();$s0();Zs0();ZY8();aH4=[/^$/,[],Object.create(null)],XY8=Object.create(null)});var $U4=class{name="PreparedRegExpRouter";#$;#Z;constructor($,Z){this.#$=$,this.#Z=Z}#X($,Z){let X=this.#$[$];X[1].forEach((Q)=>Q&&Q.push(Z)),Object.values(X[2]).forEach((Q)=>Q[0].push(Z))}#G($,Z,X,Q,Y){let G=this.#$[$];if(!Y)G[2][Z][0].push([X,{}]);else Q.forEach((J)=>{if(typeof J==="number")G[1][J].push([X,Y]);else G[2][J||Z][0].push([X,Y])})}add($,Z,X){if(!this.#$[$]){let Y=this.#$[b$],G={};for(let J in Y[2])G[J]=[Y[2][J][0].slice(),Qt];this.#$[$]=[Y[0],Y[1].map((J)=>Array.isArray(J)?J.slice():0),G]}if(Z==="/*"||Z==="*"){let Y=[X,{}];if($===b$)for(let G in this.#$)this.#X(G,Y);else this.#X($,Y);return}let Q=this.#Z[Z];if(!Q)throw Error(`Path ${Z} is not registered`);for(let[Y,G]of Q)if($===b$)for(let J in this.#$)this.#G(J,Z,X,Y,G);else this.#G($,Z,X,Y,G)}buildAllMatchers(){return this.#$}match=wY0};var YY8=O(()=>{fB();$s0();Xs0()});var GY8=O(()=>{Xs0();YY8()});var Qs0=class{name="SmartRouter";#$=[];#Z=[];constructor($){this.#$=$.routers}add($,Z,X){if(!this.#Z)throw Error(NY0);this.#Z.push([$,Z,X])}match($,Z){if(!this.#Z)throw Error("Fatal error");let X=this.#$,Q=this.#Z,Y=X.length,G=0,J;for(;G<Y;G++){let K=X[G];try{for(let W=0,H=Q.length;W<H;W++)K.add(...Q[W]);J=K.match($,Z)}catch(W){if(W instanceof FY0)continue;throw W}this.match=K.match.bind(K),this.#$=[K],this.#Z=void 0;break}if(G===Y)throw Error("Fatal error");return this.name=`SmartRouter + ${this.activeRouter.name}`,J}get activeRouter(){if(this.#Z||this.#$.length!==1)throw Error("No active router has been determined yet.");return this.#$[0]}};var JY8=O(()=>{fB()});var KY8=O(()=>{JY8()});var Jt,ZU4=($)=>{for(let Z in $)return!0;return!1},WY8=class ${#$;#Z;#X;#G=0;#Y=Jt;constructor(Z,X,Q){if(this.#Z=Q||Object.create(null),this.#$=[],Z&&X){let Y=Object.create(null);Y[Z]={handler:X,possibleKeys:[],score:0},this.#$=[Y]}this.#X=[]}insert(Z,X,Q){this.#G=++this.#G;let Y=this,G=yQ8(X),J=[];for(let K=0,W=G.length;K<W;K++){let H=G[K],U=G[K+1],N=gQ8(H,U),F=Array.isArray(N)?N[0]:H;if(F in Y.#Z){if(Y=Y.#Z[F],N)J.push(N[1]);continue}if(Y.#Z[F]=new $,N)Y.#X.push(N),J.push(N[1]);Y=Y.#Z[F]}return Y.#$.push({[Z]:{handler:Q,possibleKeys:J.filter((K,W,H)=>H.indexOf(K)===W),score:this.#G}}),Y}#Q(Z,X,Q,Y,G){for(let J=0,K=X.#$.length;J<K;J++){let W=X.#$[J],H=W[Q]||W[b$],U={};if(H!==void 0){if(H.params=Object.create(null),Z.push(H),Y!==Jt||G&&G!==Jt)for(let N=0,F=H.possibleKeys.length;N<F;N++){let w=H.possibleKeys[N],B=U[H.score];H.params[w]=G?.[w]&&!B?G[w]:Y[w]??G?.[w],U[H.score]=!0}}}}search(Z,X){let Q=[];this.#Y=Jt;let G=[this],J=oa0(X),K=[],W=J.length,H=null;for(let U=0;U<W;U++){let N=J[U],F=U===W-1,w=[];for(let L=0,D=G.length;L<D;L++){let E=G[L],z=E.#Z[N];if(z)if(z.#Y=E.#Y,F){if(z.#Z["*"])this.#Q(Q,z.#Z["*"],Z,E.#Y);this.#Q(Q,z,Z,E.#Y)}else w.push(z);for(let j=0,A=E.#X.length;j<A;j++){let P=E.#X[j],I=E.#Y===Jt?{}:{...E.#Y};if(P==="*"){let f=E.#Z["*"];if(f)this.#Q(Q,f,Z,E.#Y),f.#Y=I,w.push(f);continue}let[V,M,C]=P;if(!N&&!(C instanceof RegExp))continue;let m=E.#Z[V];if(C instanceof RegExp){if(H===null){H=Array(W);let o=X[0]==="/"?1:0;for(let b=0;b<W;b++)H[b]=o,o+=J[b].length+1}let f=X.substring(H[U]),y=C.exec(f);if(y){if(I[M]=y[0],this.#Q(Q,m,Z,E.#Y,I),ZU4(m.#Z)){m.#Y=I;let o=y[0].match(/\//)?.length??0;(K[o]||=[]).push(m)}continue}}if(C===!0||C.test(N))if(I[M]=N,F){if(this.#Q(Q,m,Z,I,E.#Y),m.#Z["*"])this.#Q(Q,m.#Z["*"],Z,I,E.#Y)}else m.#Y=I,w.push(m)}}let B=K.shift();G=B?w.concat(B):w}if(Q.length>1)Q.sort((U,N)=>{return U.score-N.score});return[Q.map(({handler:U,params:N})=>[U,N])]}};var HY8=O(()=>{fB();xB();Jt=Object.create(null)});var Ys0=class{name="TrieRouter";#$;constructor(){this.#$=new WY8}add($,Z,X){let Q=KY0(Z);if(Q){for(let Y=0,G=Q.length;Y<G;Y++)this.#$.insert($,Q[Y],X);return}this.#$.insert($,Z,X)}match($,Z){return this.#$.search($,Z)}};var UY8=O(()=>{xB();HY8()});var NY8=O(()=>{UY8()});var I1;var Gs0=O(()=>{sQ8();GY8();KY8();NY8();I1=class extends aQ8{constructor($={}){super($);this.router=$.router??new Qs0({routers:[new OY0,new Ys0]})}}});var d6=O(()=>{Gs0()});import{z as W$}from"zod";function FY8(){return QU4.parse(process.env)}var Js0=($)=>W$.enum(["true","false","1","0"]).optional().transform((Z)=>Z===void 0?$:Z==="true"||Z==="1"),XU4=($)=>W$.string().optional().transform((Z)=>Z?Z.split(",").map((X)=>X.trim()):$),QU4;var wY8=O(()=>{QU4=W$.object({AUTH_EMAIL_PASSWORD_ENABLED:Js0(!0),AUTH_GOOGLE_CLIENT_ID:W$.string().optional(),AUTH_GOOGLE_CLIENT_SECRET:W$.string().optional(),AUTH_GITHUB_CLIENT_ID:W$.string().optional(),AUTH_GITHUB_CLIENT_SECRET:W$.string().optional(),AUTH_RESEND_API_KEY:W$.string().optional(),AUTH_RESEND_FROM_EMAIL:W$.string().optional(),AUTH_SENDGRID_API_KEY:W$.string().optional(),AUTH_SENDGRID_FROM_EMAIL:W$.string().optional(),AUTH_INVITE_EMAIL_PROVIDER:W$.enum(["resend","sendgrid"]).optional(),AUTH_RESET_PASSWORD_EMAIL_PROVIDER:W$.enum(["resend","sendgrid"]).optional(),AUTH_MAGIC_LINK_ENABLED:Js0(!1),AUTH_MAGIC_LINK_EMAIL_PROVIDER:W$.enum(["resend","sendgrid"]).optional(),AUTH_EMAIL_OTP_ENABLED:Js0(!1),AUTH_EMAIL_OTP_EMAIL_PROVIDER:W$.enum(["resend","sendgrid"]).optional(),AUTH_EMAIL_OTP_LENGTH:W$.coerce.number().optional(),AUTH_EMAIL_OTP_EXPIRES_IN:W$.coerce.number().optional(),AUTH_SSO_DOMAIN:W$.string().optional(),AUTH_SSO_MS_TENANT_ID:W$.string().optional(),AUTH_SSO_MS_CLIENT_ID:W$.string().optional(),AUTH_SSO_MS_CLIENT_SECRET:W$.string().optional(),AUTH_SSO_SCOPES:XU4(["openid","email","profile"]),AUTH_SSO_GOOGLE_CLIENT_ID:W$.string().optional(),AUTH_SSO_GOOGLE_CLIENT_SECRET:W$.string().optional()}).superRefine(($,Z)=>{let X=new Set;if($.AUTH_RESEND_API_KEY)X.add("resend");if($.AUTH_SENDGRID_API_KEY)X.add("sendgrid");let Q=["AUTH_INVITE_EMAIL_PROVIDER","AUTH_RESET_PASSWORD_EMAIL_PROVIDER","AUTH_MAGIC_LINK_EMAIL_PROVIDER","AUTH_EMAIL_OTP_EMAIL_PROVIDER"];for(let Y of Q){let G=$[Y];if(G&&!X.has(G)){let J=G==="resend"?"AUTH_RESEND_API_KEY":"AUTH_SENDGRID_API_KEY";Z.addIssue({code:W$.ZodIssueCode.custom,path:[Y],message:`${Y}="${G}" but ${J} is not set`})}}if($.AUTH_MAGIC_LINK_ENABLED&&X.size===0)Z.addIssue({code:W$.ZodIssueCode.custom,path:["AUTH_MAGIC_LINK_ENABLED"],message:"AUTH_MAGIC_LINK_ENABLED=true requires AUTH_RESEND_API_KEY or AUTH_SENDGRID_API_KEY to be set"});if($.AUTH_EMAIL_OTP_ENABLED&&X.size===0)Z.addIssue({code:W$.ZodIssueCode.custom,path:["AUTH_EMAIL_OTP_ENABLED"],message:"AUTH_EMAIL_OTP_ENABLED=true requires AUTH_RESEND_API_KEY or AUTH_SENDGRID_API_KEY to be set"});if($.AUTH_SSO_MS_CLIENT_ID&&$.AUTH_SSO_DOMAIN){if(!$.AUTH_SSO_MS_CLIENT_SECRET)Z.addIssue({code:W$.ZodIssueCode.custom,path:["AUTH_SSO_MS_CLIENT_SECRET"],message:"AUTH_SSO_MS_CLIENT_ID and AUTH_SSO_DOMAIN are set but AUTH_SSO_MS_CLIENT_SECRET is not"});if(!$.AUTH_SSO_MS_TENANT_ID)Z.addIssue({code:W$.ZodIssueCode.custom,path:["AUTH_SSO_MS_TENANT_ID"],message:"AUTH_SSO_MS_CLIENT_ID and AUTH_SSO_DOMAIN are set but AUTH_SSO_MS_TENANT_ID is not"})}if($.AUTH_SSO_GOOGLE_CLIENT_ID&&$.AUTH_SSO_DOMAIN&&!$.AUTH_SSO_GOOGLE_CLIENT_SECRET)Z.addIssue({code:W$.ZodIssueCode.custom,path:["AUTH_SSO_GOOGLE_CLIENT_SECRET"],message:"AUTH_SSO_GOOGLE_CLIENT_ID and AUTH_SSO_DOMAIN are set but AUTH_SSO_GOOGLE_CLIENT_SECRET is not"});if($.AUTH_EMAIL_OTP_LENGTH!==void 0&&(!Number.isInteger($.AUTH_EMAIL_OTP_LENGTH)||$.AUTH_EMAIL_OTP_LENGTH<1))Z.addIssue({code:W$.ZodIssueCode.custom,path:["AUTH_EMAIL_OTP_LENGTH"],message:"AUTH_EMAIL_OTP_LENGTH must be a positive integer"});if($.AUTH_EMAIL_OTP_EXPIRES_IN!==void 0&&(!Number.isInteger($.AUTH_EMAIL_OTP_EXPIRES_IN)||$.AUTH_EMAIL_OTP_EXPIRES_IN<1))Z.addIssue({code:W$.ZodIssueCode.custom,path:["AUTH_EMAIL_OTP_EXPIRES_IN"],message:"AUTH_EMAIL_OTP_EXPIRES_IN must be a positive integer"})}).transform(($)=>{let Z={};if($.AUTH_GOOGLE_CLIENT_ID)Z.google={clientId:$.AUTH_GOOGLE_CLIENT_ID,clientSecret:$.AUTH_GOOGLE_CLIENT_SECRET??""};if($.AUTH_GITHUB_CLIENT_ID)Z.github={clientId:$.AUTH_GITHUB_CLIENT_ID,clientSecret:$.AUTH_GITHUB_CLIENT_SECRET??""};let X=[];if($.AUTH_RESEND_API_KEY)X.push({id:"resend",provider:"resend",config:{apiKey:$.AUTH_RESEND_API_KEY,fromEmail:$.AUTH_RESEND_FROM_EMAIL??"noreply@example.com"}});if($.AUTH_SENDGRID_API_KEY)X.push({id:"sendgrid",provider:"sendgrid",config:{apiKey:$.AUTH_SENDGRID_API_KEY,fromEmail:$.AUTH_SENDGRID_FROM_EMAIL??"noreply@example.com"}});let Q=X[0]?.id,Y;if($.AUTH_SSO_MS_CLIENT_ID&&$.AUTH_SSO_DOMAIN)Y={providerId:"microsoft",domain:$.AUTH_SSO_DOMAIN,MS_TENANT_ID:$.AUTH_SSO_MS_TENANT_ID??"",MS_CLIENT_ID:$.AUTH_SSO_MS_CLIENT_ID,MS_CLIENT_SECRET:$.AUTH_SSO_MS_CLIENT_SECRET??"",scopes:$.AUTH_SSO_SCOPES};else if($.AUTH_SSO_GOOGLE_CLIENT_ID&&$.AUTH_SSO_DOMAIN)Y={providerId:"google",domain:$.AUTH_SSO_DOMAIN,GOOGLE_CLIENT_ID:$.AUTH_SSO_GOOGLE_CLIENT_ID,GOOGLE_CLIENT_SECRET:$.AUTH_SSO_GOOGLE_CLIENT_SECRET??"",scopes:$.AUTH_SSO_SCOPES};let G;if($.AUTH_MAGIC_LINK_ENABLED)G={enabled:!0,emailProviderId:$.AUTH_MAGIC_LINK_EMAIL_PROVIDER??Q??""};let J;if($.AUTH_EMAIL_OTP_ENABLED)J={enabled:!0,emailProviderId:$.AUTH_EMAIL_OTP_EMAIL_PROVIDER??Q??"",...$.AUTH_EMAIL_OTP_LENGTH!==void 0&&{otpLength:$.AUTH_EMAIL_OTP_LENGTH},...$.AUTH_EMAIL_OTP_EXPIRES_IN!==void 0&&{expiresIn:$.AUTH_EMAIL_OTP_EXPIRES_IN}};return{emailAndPassword:{enabled:$.AUTH_EMAIL_PASSWORD_ENABLED},socialProviders:Object.keys(Z).length>0?Z:void 0,emailProviders:X.length>0?X:void 0,inviteEmailProviderId:$.AUTH_INVITE_EMAIL_PROVIDER,resetPasswordEmailProviderId:$.AUTH_RESET_PASSWORD_EMAIL_PROVIDER,ssoConfig:Y,magicLinkConfig:G,emailOtpConfig:J}})});var LY0;var BY8=O(()=>{LY0={enabled:!0,batchSize:250,flushIntervalMs:300,maxQueueSize:1e4,redactor:"regex"}});import{existsSync as YU4,readFileSync as GU4}from"fs";function JU4(){let $=FY8(),Z=a0().configPath;if(!YU4(Z))return{auth:$,monitoring:LY0};try{let X=JSON.parse(GU4(Z,"utf-8"));if(X.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:$,monitoring:X.monitoring??LY0,theme:X.theme,logo:X.logo,autoCreateOrganizationOnSignup:X.autoCreateOrganizationOnSignup}}catch{return{auth:$,monitoring:LY0}}}function Bz(){if(!Ks0)Ks0=JU4();return Ks0}function OY8(){return Bz().theme}var Ks0=null;var Ws0=O(()=>{wY8();BY8();k8()});import{dirname as KU4,posix as WU4,sep as HU4}from"path";function DY8(){let $=UU4();return async(Z)=>{for(let X of Z)X.module=$(X.filename);return Z}}function UU4($=process.argv[1]?KU4(process.argv[1]):process.cwd(),Z=HU4==="\\"){let X=Z?LY8($):$;return(Q)=>{if(!Q)return;let Y=Z?LY8(Q):Q,{dir:G,base:J,ext:K}=WU4.parse(Y);if(K===".js"||K===".mjs"||K===".cjs")J=J.slice(0,-1*K.length);let W=decodeURIComponent(J);if(!G)G=".";let H=G.lastIndexOf("/node_modules");if(H>-1)return`${G.slice(H+14).replace(/\//g,".")}:${W}`;if(G.startsWith(X)){let U=G.slice(X.length+1).replace(/\//g,".");return U?`${U}:${W}`:W}return W}}function LY8($){return $.replace(/^[A-Z]:/,"").replace(/\\/g,"/")}var EY8=()=>{};function NU4($,Z,X){return{key:$,enabled:typeof Z=="string"?!0:Z,variant:typeof Z=="string"?Z:void 0,reason:void 0,metadata:{id:void 0,version:void 0,payload:X?JSON.stringify(X):void 0,description:void 0}}}var Hs0=($)=>{if("flags"in $){let Z=zY8($.flags),X=jY8($.flags);return{...$,featureFlags:Z,featureFlagPayloads:X}}{let Z=$.featureFlags??{},X=Object.fromEntries(Object.entries($.featureFlagPayloads||{}).map(([Y,G])=>[Y,Us0(G)])),Q=Object.fromEntries(Object.entries(Z).map(([Y,G])=>[Y,NU4(Y,G,X[Y])]));return{...$,featureFlags:Z,featureFlagPayloads:X,flags:Q}}},zY8=($)=>Object.fromEntries(Object.entries($??{}).map(([Z,X])=>[Z,Kt(X)]).filter(([,Z])=>Z!==void 0)),jY8=($)=>{let Z=$??{};return Object.fromEntries(Object.keys(Z).filter((X)=>{let Q=Z[X];return Q.enabled&&Q.metadata&&Q.metadata.payload!==void 0}).map((X)=>{let Q=Z[X].metadata?.payload;return[X,Q?Us0(Q):void 0]}))},Kt=($)=>$===void 0?void 0:$.variant??$.enabled,Us0=($)=>{if(typeof $!="string")return $;try{return JSON.parse($)}catch{return $}};var DY0=()=>{};function PY8(){return"CompressionStream"in globalThis&&"TextEncoder"in globalThis&&"Response"in globalThis&&typeof Response.prototype.blob=="function"}async function EY0($,Z=!0,X){try{let Q=new CompressionStream("gzip"),Y=Q.writable.getWriter(),G=Y.write(new TextEncoder().encode($)).then(()=>Y.close()).catch(async(W)=>{try{await Y.abort(W)}catch{}throw W}),J=new Response(Q.readable).blob(),[K]=await Promise.all([J,G]);return K}catch(Q){if(X?.rethrow)throw Q;if(Z)console.error("Failed to gzip compress data",Q);return null}}var Ns0=()=>{};var FU4,AY8=function($,Z=[]){if(!$)return!1;let X=$.toLowerCase();return FU4.concat(Z).some((Q)=>{let Y=Q.toLowerCase();return X.indexOf(Y)!==-1})};var TY8=O(()=>{FU4=["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 HX;var Oz=O(()=>{HX=function($){return $.AnonymousId="anonymous_id",$.DistinctId="distinct_id",$.Props="props",$.EnablePersonProcessing="enable_person_processing",$.PersonMode="person_mode",$.FeatureFlagDetails="feature_flag_details",$.FeatureFlags="feature_flags",$.FeatureFlagPayloads="feature_flag_payloads",$.BootstrapFeatureFlagDetails="bootstrap_feature_flag_details",$.BootstrapFeatureFlags="bootstrap_feature_flags",$.BootstrapFeatureFlagPayloads="bootstrap_feature_flag_payloads",$.OverrideFeatureFlags="override_feature_flags",$.Queue="queue",$.LogsQueue="logs_queue",$.OptedOut="opted_out",$.SessionId="session_id",$.SessionStartTimestamp="session_start_timestamp",$.SessionLastTimestamp="session_timestamp",$.PersonProperties="person_properties",$.GroupProperties="group_properties",$.InstalledAppBuild="installed_app_build",$.InstalledAppVersion="installed_app_version",$.SessionReplay="session_replay",$.SurveyLastSeenDate="survey_last_seen_date",$.SurveysSeen="surveys_seen",$.Surveys="surveys",$.RemoteConfig="remote_config",$.FlagsEndpointWasHit="flags_endpoint_was_hit",$.DeviceId="device_id",$}({})});var zY0=()=>{};function PY0($){return $===null||typeof $!="object"}function Lz($,Z){return Object.prototype.toString.call($)===`[object ${Z}]`}function qY8($){return Lz($,"ErrorEvent")}function vg($){return typeof Event<"u"&&OU4($,Event)}function MY8($){return Lz($,"Object")}function OU4($,Z){try{return $ instanceof Z}catch{return!1}}var BU4,RY8,eE5,Fs0,jY0,Wt=($)=>$===Object($)&&!jY0($),_g=($)=>$===void 0,bB=($)=>Fs0.call($)=="[object String]",IY8=($)=>bB($)&&$.trim().length===0,Ht=($)=>Fs0.call($)=="[object Number]"&&$===$,ws0=($)=>$ instanceof Error;var Ut=O(()=>{Oz();zY0();BU4=Array.isArray,RY8=Object.prototype,eE5=RY8.hasOwnProperty,Fs0=RY8.toString,jY0=BU4||function($){return Fs0.call($)==="[object Array]"}});function Nt($,Z,X,Q,Y){if(Z>X)Q.warn("min cannot be greater than max."),Z=X;if(Ht($))if($>X)return Q.warn(" cannot be greater than max: "+X+". Using max value instead."),X;else{if(!($<Z))return $;return Q.warn(" cannot be less than min: "+Z+". Using min value instead."),Z}return Q.warn(" must be a number. using max or fallback. max: "+X+", fallback: "+Y),Nt(Y||X,Z,X,Q)}var Bs0=O(()=>{Ut()});class Os0{constructor($){this._buckets={},this._onBucketRateLimited=$._onBucketRateLimited,this._bucketSize=Nt($.bucketSize,0,100,$._logger),this._refillRate=Nt($.refillRate,0,this._bucketSize,$._logger),this._refillInterval=Nt($.refillInterval,0,LU4,$._logger)}_applyRefill($,Z){let X=Z-$.lastAccess,Q=Math.floor(X/this._refillInterval);if(Q>0){let Y=Q*this._refillRate;$.tokens=Math.min($.tokens+Y,this._bucketSize),$.lastAccess=$.lastAccess+Q*this._refillInterval}}consumeRateLimit($){let Z=Date.now(),X=String($),Q=this._buckets[X];if(Q)this._applyRefill(Q,Z);else Q={tokens:this._bucketSize,lastAccess:Z},this._buckets[X]=Q;if(Q.tokens===0)return!0;if(Q.tokens--,Q.tokens===0)this._onBucketRateLimited?.($);return Q.tokens===0}stop(){this._buckets={}}}var LU4=86400000;var VY8=O(()=>{Bs0()});class Dz{constructor($){this.bytes=$}static ofInner($){if($.length===16)return new Dz($);throw TypeError("not 128-bit length")}static fromFieldsV7($,Z,X,Q){if(!Number.isInteger($)||!Number.isInteger(Z)||!Number.isInteger(X)||!Number.isInteger(Q)||$<0||Z<0||X<0||Q<0||$>281474976710655||Z>4095||X>1073741823||Q>4294967295)throw RangeError("invalid field value");let Y=new Uint8Array(16);return Y[0]=$/1099511627776,Y[1]=$/4294967296,Y[2]=$/16777216,Y[3]=$/65536,Y[4]=$/256,Y[5]=$,Y[6]=112|Z>>>8,Y[7]=Z,Y[8]=128|X>>>24,Y[9]=X>>>16,Y[10]=X>>>8,Y[11]=X,Y[12]=Q>>>24,Y[13]=Q>>>16,Y[14]=Q>>>8,Y[15]=Q,new Dz(Y)}static parse($){let Z;switch($.length){case 32:Z=/^[0-9a-f]{32}$/i.exec($)?.[0];break;case 36:Z=/^([0-9a-f]{8})-([0-9a-f]{4})-([0-9a-f]{4})-([0-9a-f]{4})-([0-9a-f]{12})$/i.exec($)?.slice(1,6).join("");break;case 38:Z=/^\{([0-9a-f]{8})-([0-9a-f]{4})-([0-9a-f]{4})-([0-9a-f]{4})-([0-9a-f]{12})\}$/i.exec($)?.slice(1,6).join("");break;case 45:Z=/^urn:uuid:([0-9a-f]{8})-([0-9a-f]{4})-([0-9a-f]{4})-([0-9a-f]{4})-([0-9a-f]{12})$/i.exec($)?.slice(1,6).join("");break;default:break}if(Z){let X=new Uint8Array(16);for(let Q=0;Q<16;Q+=4){let Y=parseInt(Z.substring(2*Q,2*Q+8),16);X[Q+0]=Y>>>24,X[Q+1]=Y>>>16,X[Q+2]=Y>>>8,X[Q+3]=Y}return new Dz(X)}throw SyntaxError("could not parse UUID string")}toString(){let $="";for(let Z=0;Z<this.bytes.length;Z++)if($+="0123456789abcdef".charAt(this.bytes[Z]>>>4),$+="0123456789abcdef".charAt(15&this.bytes[Z]),Z===3||Z===5||Z===7||Z===9)$+="-";return $}toHex(){let $="";for(let Z=0;Z<this.bytes.length;Z++)$+="0123456789abcdef".charAt(this.bytes[Z]>>>4),$+="0123456789abcdef".charAt(15&this.bytes[Z]);return $}toJSON(){return this.toString()}getVariant(){let $=this.bytes[8]>>>4;if($<0)throw Error("unreachable");if($<=7)return this.bytes.every((Z)=>Z===0)?"NIL":"VAR_0";if($<=11)return"VAR_10";if($<=13)return"VAR_110";if($<=15)return this.bytes.every((Z)=>Z===255)?"MAX":"VAR_RESERVED";else throw Error("unreachable")}getVersion(){return this.getVariant()==="VAR_10"?this.bytes[6]>>>4:void 0}clone(){return new Dz(this.bytes.slice(0))}equals($){return this.compareTo($)===0}compareTo($){for(let Z=0;Z<16;Z++){let X=this.bytes[Z]-$.bytes[Z];if(X!==0)return Math.sign(X)}return 0}}class SY8{constructor($){this.timestamp=0,this.counter=0,this.random=$??DU4()}generate(){return this.generateOrResetCore(Date.now(),1e4)}generateOrAbort(){return this.generateOrAbortCore(Date.now(),1e4)}generateOrResetCore($,Z){let X=this.generateOrAbortCore($,Z);if(X===void 0)this.timestamp=0,X=this.generateOrAbortCore($,Z);return X}generateOrAbortCore($,Z){if(!Number.isInteger($)||$<1||$>281474976710655)throw RangeError("`unixTsMs` must be a 48-bit positive integer");if(Z<0||Z>281474976710655)throw RangeError("`rollbackAllowance` out of reasonable range");if($>this.timestamp)this.timestamp=$,this.resetCounter();else{if(!($+Z>=this.timestamp))return;if(this.counter++,this.counter>4398046511103)this.timestamp++,this.resetCounter()}return Dz.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 $=new Uint8Array(Uint32Array.of(this.random.nextUint32(),this.random.nextUint32(),this.random.nextUint32(),this.random.nextUint32()).buffer);return $[6]=64|$[6]>>>4,$[8]=128|$[8]>>>2,Dz.ofInner($)}}var DU4=()=>({nextUint32:()=>65536*Math.trunc(65536*Math.random())+Math.trunc(65536*Math.random())}),kY8,yB=()=>EU4().toString(),EU4=()=>(kY8||(kY8=new SY8)).generate();var Ft=O(()=>{/*! For license information please see uuidv7.mjs.LICENSE.txt */});class Ls0{add($){let Z=yB();return this.promiseByIds[Z]=$,$.catch(()=>{}).finally(()=>{delete this.promiseByIds[Z]}),$}async join(){let $=Object.values(this.promiseByIds),Z=$.length;while(Z>0)await Promise.all($),$=Object.values(this.promiseByIds),Z=$.length}get length(){return Object.keys(this.promiseByIds).length}constructor(){this.promiseByIds={}}}var CY8=O(()=>{Ft()});function zU4($=console){return{log:$.log.bind($),warn:$.warn.bind($),error:$.error.bind($),debug:$.debug.bind($)}}function vY8($,Z=jU4){return _Y8($,Z,zU4())}var _Y8=($,Z,X)=>{function Q(G,...J){Z(()=>{let K=X[G];K($,...J)})}return{info:(...G)=>{Q("log",...G)},warn:(...G)=>{Q("warn",...G)},error:(...G)=>{Q("error",...G)},critical:(...G)=>{X.error($,...G)},createLogger:(G)=>_Y8(`${$} ${G}`,Z,X)}},jU4=($)=>$();var xY8=()=>{};var fg="Mobile",TY0="iOS",xg="Android",fY8="Tablet",Nz5,AU4="Apple",Fz5,bY8="Safari",RY0="BlackBerry",yY8="Samsung",TU4,RU4,IY0="Chrome",IU4,qU4,gY8="Internet Explorer",MU4,Es0="Opera",wz5,hY8="Edge",VU4,zs0="Firefox",kU4,js0="Nintendo",Ps0="PlayStation",AY0="Xbox",SU4,CU4,wt="Windows",_U4,uY8="Generic",Bz5,Oz5,vU4="Konqueror",QQ="(\\d+(\\.\\d+)?)",Ds0,Lz5,Dz5,Ez5,xU4,fU4,zz5,jz5;var cY8=O(()=>{zY0();Ut();Nz5=xg+" "+fY8,Fz5=AU4+" Watch",TU4=yY8+"Browser",RU4=yY8+" Internet",IU4=IY0+" OS",qU4=IY0+" "+TY0,MU4=gY8+" "+fg,wz5=Es0+" Mini",VU4="Microsoft "+hY8,kU4=zs0+" "+TY0,SU4=xg+" "+fg,CU4=fg+" "+bY8,_U4=wt+" Phone",Bz5=uY8+" "+fg.toLowerCase(),Oz5=uY8+" "+fY8.toLowerCase(),Ds0=new RegExp("Version/"+QQ),Lz5=new RegExp(AY0,"i"),Dz5=new RegExp(Ps0+" \\w+","i"),Ez5=new RegExp(js0+" \\w+","i"),xU4=new RegExp(RY0+"|PlayBook|BB10","i"),fU4={"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"},zz5={[MU4]:[new RegExp("rv:"+QQ)],[VU4]:[new RegExp(hY8+"?\\/"+QQ)],[IY0]:[new RegExp("("+IY0+"|CrMo)\\/"+QQ)],[qU4]:[new RegExp("CriOS\\/"+QQ)],"UC Browser":[new RegExp("(UCBrowser|UCWEB)\\/"+QQ)],[bY8]:[Ds0],[CU4]:[Ds0],[Es0]:[new RegExp("("+Es0+"|OPR)\\/"+QQ)],[zs0]:[new RegExp(zs0+"\\/"+QQ)],[kU4]:[new RegExp("FxiOS\\/"+QQ)],[vU4]:[new RegExp("Konqueror[:/]?"+QQ,"i")],[RY0]:[new RegExp(RY0+" "+QQ),Ds0],[SU4]:[new RegExp("android\\s"+QQ,"i")],[RU4]:[new RegExp(TU4+"\\/"+QQ)],[gY8]:[new RegExp("(rv:|MSIE )"+QQ)],Mozilla:[new RegExp("rv:"+QQ)]},jz5=[[new RegExp(AY0+"; "+AY0+" (.*?)[);]","i"),($)=>[AY0,$&&$[1]||""]],[new RegExp(js0,"i"),[js0,""]],[new RegExp(Ps0,"i"),[Ps0,""]],[xU4,[RY0,""]],[new RegExp(wt,"i"),($,Z)=>{if(/Phone/.test(Z)||/WPDesktop/.test(Z))return[_U4,""];if(new RegExp(fg).test(Z)&&!/IEMobile\b/.test(Z))return[wt+" "+fg,""];let X=/Windows NT ([0-9.]+)/i.exec(Z);if(X&&X[1]){let Q=X[1],Y=fU4[Q]||"";if(/arm/i.test(Z))Y="RT";return[wt,Y]}return[wt,""]}],[/((iPhone|iPad|iPod).*?OS (\d+)_(\d+)_?(\d+)?|iPhone)/,($)=>{if($&&$[3]){let Z=[$[3],$[4],$[5]||"0"];return[TY0,Z.join(".")]}return[TY0,""]}],[/(watch.*\/(\d+\.\d+\.\d+)|watch os,(\d+\.\d+),)/i,($)=>{let Z="";if($&&$.length>=3)Z=_g($[2])?$[3]:$[2];return["watchOS",Z]}],[new RegExp("("+xg+" (\\d+)\\.(\\d+)\\.?(\\d+)?|"+xg+")","i"),($)=>{if($&&$[2]){let Z=[$[2],$[3],$[4]||"0"];return[xg,Z.join(".")]}return[xg,""]}],[/Mac OS X (\d+)[_.](\d+)[_.]?(\d+)?/i,($)=>{let Z=["Mac OS X",""];if($&&$[1]){let X=[$[1],$[2],$[3]||"0"];Z[1]=X.join(".")}return Z}],[/Mac/i,["Mac OS X",""]],[/CrOS/,[IU4,""]],[/Linux|debian/i,["Linux",""]]]});function dY8($){return $?.replace(/\/+$/,"")}async function mY8($,Z){let X=null;for(let Q=0;Q<Z.retryCount+1;Q++){if(Q>0)await new Promise((Y)=>setTimeout(Y,Z.retryDelay));try{return await $()}catch(Y){if(X=Y,!Z.retryCheck(Y))throw Y}}throw X}function qY0(){return new Date().toISOString()}function UN($,Z){let X=setTimeout($,Z);return X?.unref&&X?.unref(),X}function As0($){return Promise.all($.map((Z)=>(Z??Promise.resolve()).then((X)=>({status:"fulfilled",value:X}),(X)=>({status:"rejected",reason:X}))))}var lY8="utf8",iY8=($)=>$ instanceof Error;var YQ=O(()=>{TY8();VY8();Bs0();zY0();Ut();CY8();xY8();cY8()});var bU4,xz5;var Ts0=O(()=>{YQ();bU4={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}},xz5=bU4.info});var nY8=O(()=>{Ts0();Oz()});var pY8=O(()=>{Oz()});class Rs0{constructor(){this.events={},this.events={}}on($,Z){if(!this.events[$])this.events[$]=[];return this.events[$].push(Z),()=>{this.events[$]=this.events[$].filter((X)=>X!==Z)}}emit($,Z){for(let X of this.events[$]||[])X(Z);for(let X of this.events["*"]||[])X($,Z)}}var tY8=()=>{};async function oY8($){if($ instanceof bg){let Z="";try{Z=await $.text}catch{}console.error(`Error while flushing PostHog: message=${$.message}, response body=${Z}`,$)}else console.error("Error while flushing PostHog",$);return Promise.resolve()}function Is0($){return typeof $=="object"&&($ instanceof bg||$ instanceof Bt)}function rY8($){return typeof $=="object"&&$ instanceof bg&&$.status===413}class MY0{constructor($,Z={}){this.flushPromise=null,this.shutdownPromise=null,this.promiseQueue=new Ls0,this._events=new Rs0,this._isInitialized=!1;let X=typeof $=="string"?$.trim():"",Q=typeof Z.host=="string"?Z.host.trim():"",Y=!X;if(this._logger=vY8("[PostHog]",this.logMsgIfDebug.bind(this)),Y)this._logger.error("You must pass your PostHog project's api key. The client will be disabled.");if(this.apiKey=X,this.host=dY8(Q||"https://us.i.posthog.com"),this.flushAt=Z.flushAt?Math.max(Z.flushAt,1):20,this.maxBatchSize=Math.max(this.flushAt,Z.maxBatchSize??100),this.maxQueueSize=Math.max(this.flushAt,Z.maxQueueSize??1000),this.flushInterval=Z.flushInterval??1e4,this.preloadFeatureFlags=Z.preloadFeatureFlags??!0,this.defaultOptIn=Z.defaultOptIn??!0,this.disableSurveys=Z.disableSurveys??!1,this._retryOptions={retryCount:Z.fetchRetryCount??3,retryDelay:Z.fetchRetryDelay??3000,retryCheck:Is0},this.requestTimeout=Z.requestTimeout??1e4,this.featureFlagsRequestTimeoutMs=Z.featureFlagsRequestTimeoutMs??3000,this.remoteConfigRequestTimeoutMs=Z.remoteConfigRequestTimeoutMs??3000,this.disableGeoip=Z.disableGeoip??!0,this.disabled=(Z.disabled??!1)||Y,this.historicalMigration=Z?.historicalMigration??!1,this._initPromise=Promise.resolve(),this._isInitialized=!0,this.evaluationContexts=Z?.evaluationContexts??Z?.evaluationEnvironments,Z?.evaluationEnvironments&&!Z?.evaluationContexts)this._logger.warn("evaluationEnvironments is deprecated. Use evaluationContexts instead. This property will be removed in a future version.");this.disableCompression=!PY8()||(Z?.disableCompression??!1)}logMsgIfDebug($){if(this.isDebug)$()}wrap($){if(this.disabled)return void this._logger.warn("The client is disabled");if(this._isInitialized)return $();this._initPromise.then(()=>$())}getCommonEventProperties(){return{$lib:this.getLibraryId(),$lib_version:this.getLibraryVersion()}}get optedOut(){return this.getPersistedProperty(HX.OptedOut)??!this.defaultOptIn}async optIn(){this.wrap(()=>{this.setPersistedProperty(HX.OptedOut,!1)})}async optOut(){this.wrap(()=>{this.setPersistedProperty(HX.OptedOut,!0)})}on($,Z){return this._events.on($,Z)}debug($=!0){if(this.removeDebugCallback?.(),$){let Z=this.on("*",(X,Q)=>this._logger.info(X,Q));this.removeDebugCallback=()=>{Z(),this.removeDebugCallback=void 0}}}get isDebug(){return!!this.removeDebugCallback}get isDisabled(){return this.disabled}buildPayload($){return{distinct_id:$.distinct_id,event:$.event,properties:{...$.properties||{},...this.getCommonEventProperties()}}}addPendingPromise($){return this.promiseQueue.add($)}identifyStateless($,Z,X){this.wrap(()=>{let Q={...this.buildPayload({distinct_id:$,event:"$identify",properties:Z})};this.enqueue("identify",Q,X)})}async identifyStatelessImmediate($,Z,X){let Q={...this.buildPayload({distinct_id:$,event:"$identify",properties:Z})};await this.sendImmediate("identify",Q,X)}captureStateless($,Z,X,Q){this.wrap(()=>{let Y=this.buildPayload({distinct_id:$,event:Z,properties:X});this.enqueue("capture",Y,Q)})}async captureStatelessImmediate($,Z,X,Q){let Y=this.buildPayload({distinct_id:$,event:Z,properties:X});await this.sendImmediate("capture",Y,Q)}aliasStateless($,Z,X,Q){this.wrap(()=>{let Y=this.buildPayload({event:"$create_alias",distinct_id:Z,properties:{...X||{},distinct_id:Z,alias:$}});this.enqueue("alias",Y,Q)})}async aliasStatelessImmediate($,Z,X,Q){let Y=this.buildPayload({event:"$create_alias",distinct_id:Z,properties:{...X||{},distinct_id:Z,alias:$}});await this.sendImmediate("alias",Y,Q)}groupIdentifyStateless($,Z,X,Q,Y,G){this.wrap(()=>{let J=this.buildPayload({distinct_id:Y||`$${$}_${Z}`,event:"$groupidentify",properties:{$group_type:$,$group_key:Z,$group_set:X||{},...G||{}}});this.enqueue("capture",J,Q)})}async getRemoteConfig(){await this._initPromise;let $=this.host;if($==="https://us.i.posthog.com")$="https://us-assets.i.posthog.com";else if($==="https://eu.i.posthog.com")$="https://eu-assets.i.posthog.com";let Z=`${$}/array/${this.apiKey}/config`,X={method:"GET",headers:{...this.getCustomHeaders(),"Content-Type":"application/json"}};return this.fetchWithRetry(Z,X,{retryCount:0},this.remoteConfigRequestTimeoutMs).then((Q)=>Q.json()).catch((Q)=>{this._logger.error("Remote config could not be loaded",Q),this._events.emit("error",Q)})}async getFlags($,Z={},X={},Q={},Y={},G=!1){await this._initPromise;let J=G?"&config=true":"",K=`${this.host}/flags/?v=2${J}`,W={token:this.apiKey,distinct_id:$,groups:Z,person_properties:X,group_properties:Q,...Y};if(X.$device_id)W.$device_id=X.$device_id;if(this.evaluationContexts&&this.evaluationContexts.length>0)W.evaluation_contexts=this.evaluationContexts;let H={method:"POST",headers:{...this.getCustomHeaders(),"Content-Type":"application/json"},body:JSON.stringify(W)};return this._logger.info("Flags URL",K),this.fetchWithRetry(K,H,{retryCount:0},this.featureFlagsRequestTimeoutMs).then((U)=>U.json()).then((U)=>({success:!0,response:Hs0(U)})).catch((U)=>{return this._events.emit("error",U),{success:!1,error:this.categorizeRequestError(U)}})}categorizeRequestError($){if($ instanceof bg)return{type:"api_error",statusCode:$.status};if($ instanceof Bt){let Z=$.error;if(Z instanceof Error&&(Z.name==="AbortError"||Z.name==="TimeoutError"))return{type:"timeout"};return{type:"connection_error"}}return{type:"unknown_error"}}async getFeatureFlagStateless($,Z,X={},Q={},Y={},G){await this._initPromise;let J=await this.getFeatureFlagDetailStateless($,Z,X,Q,Y,G);if(J===void 0)return{response:void 0,requestId:void 0};let K=Kt(J.response);if(K===void 0)K=!1;return{response:K,requestId:J.requestId}}async getFeatureFlagDetailStateless($,Z,X={},Q={},Y={},G){await this._initPromise;let J=await this.getFeatureFlagDetailsStateless(Z,X,Q,Y,G,[$]);if(J===void 0)return;return{response:J.flags[$],requestId:J.requestId,evaluatedAt:J.evaluatedAt}}async getFeatureFlagPayloadStateless($,Z,X={},Q={},Y={},G){await this._initPromise;let J=await this.getFeatureFlagPayloadsStateless(Z,X,Q,Y,G,[$]);if(!J)return;let K=J[$];if(K===void 0)return null;return K}async getFeatureFlagPayloadsStateless($,Z={},X={},Q={},Y,G){return await this._initPromise,(await this.getFeatureFlagsAndPayloadsStateless($,Z,X,Q,Y,G)).payloads}async getFeatureFlagsStateless($,Z={},X={},Q={},Y,G){return await this._initPromise,await this.getFeatureFlagsAndPayloadsStateless($,Z,X,Q,Y,G)}async getFeatureFlagsAndPayloadsStateless($,Z={},X={},Q={},Y,G){await this._initPromise;let J=await this.getFeatureFlagDetailsStateless($,Z,X,Q,Y,G);if(!J)return{flags:void 0,payloads:void 0,requestId:void 0};return{flags:J.featureFlags,payloads:J.featureFlagPayloads,requestId:J.requestId}}async getFeatureFlagDetailsStateless($,Z={},X={},Q={},Y,G){await this._initPromise;let J={};if(Y??this.disableGeoip)J.geoip_disable=!0;if(G)J.flag_keys_to_evaluate=G;let K=await this.getFlags($,Z,X,Q,J);if(!K.success)return;let W=K.response;if(W.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(W.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:W?.requestId,quotaLimited:W.quotaLimited};return W}async getSurveysStateless(){if(await this._initPromise,this.disableSurveys===!0)return this._logger.info("Loading surveys is disabled."),[];let $=`${this.host}/api/surveys/?token=${this.apiKey}`,Z={method:"GET",headers:{...this.getCustomHeaders(),"Content-Type":"application/json"}},Q=(await this.fetchWithRetry($,Z).then((Y)=>{if(Y.status!==200||!Y.json){let G=`Surveys API could not be loaded: ${Y.status}`,J=Error(G);this._logger.error(J),this._events.emit("error",Error(G));return}return Y.json()}).catch((Y)=>{this._logger.error("Surveys API could not be loaded",Y),this._events.emit("error",Y)}))?.surveys;if(Q)this._logger.info("Surveys fetched from API: ",JSON.stringify(Q));return Q??[]}get props(){if(!this._props)this._props=this.getPersistedProperty(HX.Props);return this._props||{}}set props($){this._props=$}async register($){this.wrap(()=>{this.props={...this.props,...$},this.setPersistedProperty(HX.Props,this.props)})}async unregister($){this.wrap(()=>{delete this.props[$],this.setPersistedProperty(HX.Props,this.props)})}processBeforeEnqueue($){return $}async flushStorage(){}enqueue($,Z,X){this.wrap(()=>{if(this.optedOut)return void this._events.emit($,"Library is disabled. Not sending event. To re-enable, call posthog.optIn()");let Q=this.prepareMessage($,Z,X);if(Q=this.processBeforeEnqueue(Q),Q===null)return;let Y=this.getPersistedProperty(HX.Queue)||[];if(Y.length>=this.maxQueueSize)Y.shift(),this._logger.info("Queue is full, the oldest event is dropped.");if(Y.push({message:Q}),this.setPersistedProperty(HX.Queue,Y),this._events.emit($,Q),Y.length>=this.flushAt)this.flushBackground();if(this.flushInterval&&!this._flushTimer)this._flushTimer=UN(()=>this.flushBackground(),this.flushInterval)})}async sendImmediate($,Z,X){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($,"Library is disabled. Not sending event. To re-enable, call posthog.optIn()");let Q=this.prepareMessage($,Z,X);if(Q=this.processBeforeEnqueue(Q),Q===null)return;let Y={api_key:this.apiKey,batch:[Q],sent_at:qY0()};if(this.historicalMigration)Y.historical_migration=!0;let G=JSON.stringify(Y),J=`${this.host}/batch/`,K=this.disableCompression?null:await EY0(G,this.isDebug),W={method:"POST",headers:{...this.getCustomHeaders(),"Content-Type":"application/json",...K!==null&&{"Content-Encoding":"gzip"}},body:K||G};try{await this.fetchWithRetry(J,W)}catch(H){this._events.emit("error",H)}}prepareMessage($,Z,X){let Q={...Z,type:$,library:this.getLibraryId(),library_version:this.getLibraryVersion(),timestamp:X?.timestamp?X?.timestamp:qY0(),uuid:X?.uuid?X.uuid:yB()};if(X?.disableGeoip??this.disableGeoip){if(!Q.properties)Q.properties={};Q.properties.$geoip_disable=!0}if(Q.distinctId)Q.distinct_id=Q.distinctId,delete Q.distinctId;return Q}clearFlushTimer(){if(this._flushTimer)clearTimeout(this._flushTimer),this._flushTimer=void 0}flushBackground(){this.flush().catch(async($)=>{await oY8($)})}async flush(){let $=As0([this.flushPromise]).then(()=>this._flush());return this.flushPromise=$,this.addPendingPromise($),As0([$]).then(()=>{if(this.flushPromise===$)this.flushPromise=null}),$}getCustomHeaders(){let $=this.getCustomUserAgent(),Z={};if($&&$!=="")Z["User-Agent"]=$;return Z}async _flush(){this.clearFlushTimer(),await this._initPromise;let $=this.getPersistedProperty(HX.Queue)||[];if(!$.length)return;let Z=[],X=$.length;while($.length>0&&Z.length<X){let Q=$.slice(0,this.maxBatchSize),Y=Q.map((F)=>F.message),G=async()=>{let w=(this.getPersistedProperty(HX.Queue)||[]).slice(Q.length);this.setPersistedProperty(HX.Queue,w),$=w,await this.flushStorage()},J={api_key:this.apiKey,batch:Y,sent_at:qY0()};if(this.historicalMigration)J.historical_migration=!0;let K=JSON.stringify(J),W=`${this.host}/batch/`,H=this.disableCompression?null:await EY0(K,this.isDebug),U={method:"POST",headers:{...this.getCustomHeaders(),"Content-Type":"application/json",...H!==null&&{"Content-Encoding":"gzip"}},body:H||K},N={retryCheck:(F)=>{if(rY8(F))return!1;return Is0(F)}};try{await this.fetchWithRetry(W,U,N)}catch(F){if(rY8(F)&&Y.length>1){this.maxBatchSize=Math.max(1,Math.floor(Y.length/2)),this._logger.warn(`Received 413 when sending batch of size ${Y.length}, reducing batch size to ${this.maxBatchSize}`);continue}if(!(F instanceof Bt))await G();throw this._events.emit("error",F),F}await G(),Z.push(...Y)}this._events.emit("flush",Z)}async fetchWithRetry($,Z,X,Q){let Y=Z.body?Z.body:"",G=-1;try{G=Y instanceof Blob?Y.size:Buffer.byteLength(Y,lY8)}catch{if(Y instanceof Blob)G=Y.size;else G=new TextEncoder().encode(Y).length}return await mY8(async()=>{let J=new AbortController,K=Q??this.requestTimeout,W=UN(()=>J.abort(),K),H=null;try{H=await this.fetch($,{signal:J.signal,...Z})}catch(N){throw new Bt(N)}finally{clearTimeout(W)}if(Z.mode!=="no-cors"&&(H.status<200||H.status>=400))throw new bg(H,G);return H},{...this._retryOptions,...X})}async _shutdown($=30000){await this._initPromise;let Z=!1;this.clearFlushTimer();let X=async()=>{try{await this.promiseQueue.join();while(!0){if((this.getPersistedProperty(HX.Queue)||[]).length===0)break;if(await this.flush(),Z)break}}catch(Y){if(!Is0(Y))throw Y;await oY8(Y)}},Q;try{return await Promise.race([new Promise((Y,G)=>{Q=UN(()=>{this._logger.error("Timed out while shutting down PostHog"),Z=!0,G("Timeout while shutting down PostHog. Some events may not have been sent.")},$)}),X()])}finally{clearTimeout(Q)}}async shutdown($=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($).finally(()=>{this.shutdownPromise=null});return this.shutdownPromise}}var bg,Bt;var qs0=O(()=>{tY8();DY0();Ns0();Oz();YQ();Ft();bg=class bg extends Error{constructor($,Z){super("HTTP error while fetching PostHog: status="+$.status+", reqByteLength="+Z),this.response=$,this.reqByteLength=Z,this.name="PostHogFetchHttpError"}get status(){return this.response.status}get text(){return this.response.text()}get json(){return this.response.json()}};Bt=class Bt extends Error{constructor($){super("Network error while fetching PostHog",$ instanceof Error?{cause:$}:{}),this.error=$,this.name="PostHogFetchNetworkError"}}});var aY8=O(()=>{DY0();Oz();qs0();Ft();YQ()});var sY8=O(()=>{Ut()});function $G8($){let Z=globalThis._posthogChunkIds;if(!Z)return;let X=Object.keys(Z);if(kY0&&X.length===eY8)return kY0;return eY8=X.length,kY0=X.reduce((Q,Y)=>{if(!VY0)VY0={};let G=VY0[Y];if(G)Q[G[0]]=G[1];else{let J=$(Y);for(let K=J.length-1;K>=0;K--){let H=J[K]?.filename,U=Z[Y];if(H&&U){Q[H]=U,VY0[Y]=[H,U];break}}}return Q},{}),kY0}var VY0,eY8,kY0;var ZG8=()=>{};class XG8{constructor($,Z,X=[]){this.coercers=$,this.stackParser=Z,this.modifiers=X}buildFromUnknown($,Z={}){let Q=Z&&Z.mechanism||{handled:!0,type:"generic"},G=this.buildCoercingContext(Q,Z,0).apply($),J=this.buildParsingContext(Z),K=this.parseStacktrace(G,J);return{$exception_list:this.convertToExceptionList(K,Q),$exception_level:"error"}}async modifyFrames($){for(let Z of $)if(Z.stacktrace&&Z.stacktrace.frames&&jY0(Z.stacktrace.frames))Z.stacktrace.frames=await this.applyModifiers(Z.stacktrace.frames);return $}coerceFallback($){return{type:"Error",value:"Unknown error",stack:$.syntheticException?.stack,synthetic:!0}}parseStacktrace($,Z){let X;if($.cause!=null)X=this.parseStacktrace($.cause,Z);let Q;if($.stack!=""&&$.stack!=null)Q=this.applyChunkIds(this.stackParser($.stack,$.synthetic?Z.skipFirstLines:0),Z.chunkIdMap);return{...$,cause:X,stack:Q}}applyChunkIds($,Z){return $.map((X)=>{if(X.filename&&Z)X.chunk_id=Z[X.filename];return X})}applyCoercers($,Z){for(let X of this.coercers)if(X.match($))return X.coerce($,Z);return this.coerceFallback(Z)}async applyModifiers($){let Z=$;for(let X of this.modifiers)Z=await X(Z);return Z}convertToExceptionList($,Z){let X={type:$.type,value:$.value,mechanism:{type:Z.type??"generic",handled:Z.handled??!0,synthetic:$.synthetic??!1}};if($.stack)X.stacktrace={type:"raw",frames:$.stack};let Q=[X];if($.cause!=null)Q.push(...this.convertToExceptionList($.cause,{...Z,handled:!0}));return Q}buildParsingContext($){return{chunkIdMap:$G8(this.stackParser),skipFirstLines:$.skipFirstLines??1}}buildCoercingContext($,Z,X=0){let Q=(G,J)=>{if(!(J<=hU4))return;{let K=this.buildCoercingContext($,Z,J);return this.applyCoercers(G,K)}};return{...Z,syntheticException:X==0?Z.syntheticException:void 0,mechanism:$,apply:(G)=>Q(G,X),next:(G)=>Q(G,X+1)}}}var hU4=4;var QG8=O(()=>{YQ();ZG8()});function iW($,Z,X,Q,Y){let G={platform:$,filename:Z,function:X==="<anonymous>"?A7:X,in_app:!0};if(!_g(Q))G.lineno=Q;if(!_g(Y))G.colno=Y;return G}var A7="?";var gB=O(()=>{YQ()});var SY0=($,Z)=>{let X=$.indexOf("safari-extension")!==-1,Q=$.indexOf("safari-web-extension")!==-1;return X||Q?[$.indexOf("@")!==-1?$.split("@")[0]:A7,X?`safari-extension:${Z}`:`safari-web-extension:${Z}`]:[$,Z]};var Ms0=O(()=>{gB()});var uU4,cU4,lU4,Vs0=($,Z)=>{let X=uU4.exec($);if(X){let[,Y,G,J]=X;return iW(Z,Y,A7,+G,+J)}let Q=cU4.exec($);if(Q){if(Q[2]&&Q[2].indexOf("eval")===0){let K=lU4.exec(Q[2]);if(K)Q[2]=K[1],Q[3]=K[2],Q[4]=K[3]}let[G,J]=SY0(Q[1]||A7,Q[2]);return iW(Z,J,G,Q[3]?+Q[3]:void 0,Q[4]?+Q[4]:void 0)}};var YG8=O(()=>{gB();Ms0();uU4=/^\s*at (\S+?)(?::(\d+))(?::(\d+))\s*$/i,cU4=/^\s*at (?:(.+?\)(?: \[.+\])?|.*?) ?\((?:address at )?)?(?:async )?((?:<anonymous>|[-a-z]+:|.*bundle|\/)?.*?)(?::(\d+))?(?::(\d+))?\)?\s*$/i,lU4=/\((\S*)(?::(\d+))(?::(\d+))\)/});var dU4,mU4,ks0=($,Z)=>{let X=dU4.exec($);if(X){if(X[3]&&X[3].indexOf(" > eval")>-1){let J=mU4.exec(X[3]);if(J)X[1]=X[1]||"eval",X[3]=J[1],X[4]=J[2],X[5]=""}let Y=X[3],G=X[1]||A7;return[G,Y]=SY0(G,Y),iW(Z,Y,G,X[4]?+X[4]:void 0,X[5]?+X[5]:void 0)}};var GG8=O(()=>{gB();Ms0();dU4=/^\s*(.*?)(?:\((.*?)\))?(?:^|@)?((?:[-a-z]+)?:\/.*?|\[native code\]|[^@]*(?:bundle|\d+\.js)|\/[\w\-. /=]+)(?::(\d+))?(?::(\d+))?\s*$/i,mU4=/(\S+) line (\d+)(?: > eval line \d+)* > eval/i});var iU4,JG8=($,Z)=>{let X=iU4.exec($);return X?iW(Z,X[2],X[1]||A7,+X[3],X[4]?+X[4]:void 0):void 0};var KG8=O(()=>{gB();iU4=/^\s*at (?:((?:\[object object\])?.+) )?\(?((?:[-a-z]+):.*?):(\d+)(?::(\d+))?\)?\s*$/i});var nU4,WG8=($,Z)=>{let X=nU4.exec($);return X?iW(Z,X[2],X[3]||A7,+X[1]):void 0},pU4,HG8=($,Z)=>{let X=pU4.exec($);return X?iW(Z,X[5],X[3]||X[4]||A7,+X[1],+X[2]):void 0};var UG8=O(()=>{gB();nU4=/ line (\d+).*script (?:in )?(\S+)(?:: in function (\S+))?$/i,pU4=/ line (\d+), column (\d+)\s*(?:in (?:<anonymous function: ([^>]+)>|([^)]+))\(.*\))? in (.*):\s*$/i});function rU4($,Z=!1){return!(Z||$&&!$.startsWith("/")&&!$.match(/^[A-Z]:/)&&!$.startsWith(".")&&!$.match(/^[a-zA-Z]([a-zA-Z0-9.\-+])*:\/\//))&&$!==void 0&&!$.includes("node_modules/")}function NG8($){return parseInt($||"",10)||void 0}var tU4,oU4,FG8=($,Z)=>{let X=$.match(oU4);if(X){let Q,Y,G,J,K;if(X[1]){G=X[1];let U=G.lastIndexOf(".");if(G[U-1]===".")U--;if(U>0){Q=G.slice(0,U),Y=G.slice(U+1);let N=Q.indexOf(".Module");if(N>0)G=G.slice(N+1),Q=Q.slice(0,N)}J=void 0}if(Y)J=Q,K=Y;if(Y==="<anonymous>")K=void 0,G=void 0;if(G===void 0)K=K||A7,G=J?`${J}.${K}`:K;let W=X[2]?.startsWith("file://")?X[2].slice(7):X[2],H=X[5]==="native";if(W?.match(/\/[A-Z]:/))W=W.slice(1);if(!W&&X[5]&&!H)W=X[5];return{filename:W?decodeURI(W):void 0,module:void 0,function:G,lineno:NG8(X[3]),colno:NG8(X[4]),in_app:rU4(W||"",H),platform:Z}}if($.match(tU4))return{filename:$,platform:Z}};var wG8=O(()=>{gB();tU4=/^\s*[-]{4,}$/,oU4=/at (?:async )?(?:(.+?)\s+\()?(?:(.+):(\d+):(\d+)?|([^)]+))\)?/});function LG8($){if(!$.length)return[];let Z=Array.from($);return Z.reverse(),Z.slice(0,OG8).map((X)=>({...X,filename:X.filename||aU4(Z).filename,function:X.function||A7}))}function aU4($){return $[$.length-1]||{}}function sU4(){return DG8("web:javascript",Vs0,ks0)}function DG8($,...Z){return(X,Q=0)=>{let Y=[],G=X.split(`
|
|
1644
|
+
) desc`}class Tg{db;constructor($){this.db=$}async create($){let Z=new Date().toISOString(),X=wQ8($._meta??{}),Q=nQ0(X),Y=tQ(Q.tags),G=tQ(Q.categories),J={id:$.id,organization_id:$.organization_id,title:$.title,description:$.description??null,server_json:JSON.stringify($.server),meta_json:JSON.stringify(X),tags:mQ0(Y),categories:mQ0(G),is_public:$.is_public?1:0,is_unlisted:$.is_unlisted?1:0,created_at:Z,updated_at:Z,created_by:$.created_by??null};await this.db.insertInto("private_registry_item").values(J).execute();let K=await this.findById($.organization_id,$.id);if(!K)throw Error(`Failed to create registry item "${$.id}"`);return K}async findById($,Z){let X=await this.db.selectFrom("private_registry_item").selectAll().where("organization_id","=",$).where("id","=",Z).executeTakeFirst();return X?this.deserialize(X):null}async findByIdOrName($,Z){let X=await this.findById($,Z);if(X)return X;let Q=await this.db.selectFrom("private_registry_item").selectAll().where("organization_id","=",$).where("title","=",Z).executeTakeFirst();return Q?this.deserialize(Q):null}async update($,Z,X){let Q=await this.findById($,Z);if(!Q)throw Error(`Registry item not found: ${Z}`);let Y=wQ8(X._meta??Q._meta??{}),G=nQ0(Y),J=tQ(G.tags),K=tQ(G.categories),W={updated_at:new Date().toISOString()};if(X.title!==void 0)W.title=X.title;if(X.description!==void 0)W.description=X.description;if(X.server!==void 0)W.server_json=JSON.stringify(X.server);if(X._meta!==void 0)W.meta_json=JSON.stringify(Y);if(X._meta!==void 0)W.tags=mQ0(J),W.categories=mQ0(K);if(X.is_public!==void 0)W.is_public=X.is_public?1:0;if(X.is_unlisted!==void 0)W.is_unlisted=X.is_unlisted?1:0;await this.db.updateTable("private_registry_item").set(W).where("organization_id","=",$).where("id","=",Z).execute();let H=await this.findById($,Z);if(!H)throw Error(`Registry item not found after update: ${Z}`);return H}async delete($,Z){let X=await this.findById($,Z);if(!X)return null;return await this.db.deleteFrom("private_registry_item").where("organization_id","=",$).where("id","=",Z).execute(),X}async list($,Z={}){let X=this.db.selectFrom("private_registry_item").selectAll().where("organization_id","=",$);if(!Z.includeUnlisted)X=X.where("is_unlisted","=",0);let Q=tQ(Z.tags);if(Q.length>0)X=X.where(iQ0("tags",Q));let Y=tQ(Z.categories);if(Y.length>0)X=X.where(iQ0("categories",Y));if(Z.where)X=X.where(va0(Z.where));let K=(await this.db.selectFrom(X.as("filtered")).select(S8`count(*)::int`.as("count")).executeTakeFirst())?.count??0;X=X.orderBy(BQ8()).orderBy("created_at","desc");let H=lQ0(Z.cursor)??Z.offset??0,U=Z.limit??24;X=X.limit(U).offset(H);let F=(await X.execute()).map((L)=>this.deserialize(L)),w=H+U<K,B=w?cQ0(H+U):void 0;return{items:F,totalCount:K,hasMore:w,nextCursor:B}}async listPublic($,Z={}){let X=this.db.selectFrom("private_registry_item").selectAll().where("organization_id","=",$).where("is_public","=",1).where("is_unlisted","=",0),Q=tQ(Z.tags);if(Q.length>0)X=X.where(iQ0("tags",Q));let Y=tQ(Z.categories);if(Y.length>0)X=X.where(iQ0("categories",Y));if(Z.where)X=X.where(va0(Z.where));let K=(await this.db.selectFrom(X.as("filtered")).select(S8`count(*)::int`.as("count")).executeTakeFirst())?.count??0;X=X.orderBy(BQ8()).orderBy("created_at","desc");let H=lQ0(Z.cursor)??Z.offset??0,U=Z.limit??24;X=X.limit(U).offset(H);let F=(await X.execute()).map((L)=>this.deserialize(L)),w=H+U<K,B=w?cQ0(H+U):void 0;return{items:F,totalCount:K,hasMore:w,nextCursor:B}}async getFilters($,Z){let X=this.db.selectFrom("private_registry_item").select(["tags","categories"]).where("organization_id","=",$);if(Z?.publicOnly)X=X.where("is_public","=",1);if(!Z?.includeUnlisted)X=X.where("is_unlisted","=",0);let Q=await X.execute(),Y=new Map,G=new Map;for(let K of Q){for(let W of Wz(K.tags))Y.set(W,(Y.get(W)??0)+1);for(let W of Wz(K.categories))G.set(W,(G.get(W)??0)+1)}let J=(K)=>Array.from(K.entries()).map(([W,H])=>({value:W,count:H})).sort((W,H)=>W.value.localeCompare(H.value));return{tags:J(Y),categories:J(G)}}async search($,Z={},X){let Q=this.db.selectFrom("private_registry_item").select(["id","title","description","meta_json","server_json","tags","categories","is_public","is_unlisted"]).where("organization_id","=",$).orderBy("created_at","desc");if(X?.publicOnly)Q=Q.where("is_public","=",1);if(!X?.includeUnlisted)Q=Q.where("is_unlisted","=",0);let Y=await Q.execute(),G=Z.query?.trim().toLowerCase(),J=tQ(Z.tags),K=tQ(Z.categories),W=Y.filter((D)=>{if(G){let E=dQ0(D.server_json,{}),z=dQ0(D.meta_json,{}),j=nQ0(z).short_description??"";if(![D.id,D.title,D.description??"",E.name??"",E.description??"",j].join(" ").toLowerCase().includes(G))return!1}if(J.length>0){let E=tQ(Wz(D.tags));if(!J.every((z)=>E.includes(z)))return!1}if(K.length>0){let E=tQ(Wz(D.categories));if(!K.every((z)=>E.includes(z)))return!1}return!0}),U=lQ0(Z.cursor)??0,N=Z.limit??20,F=W.slice(U,U+N),w=U+N<W.length,B=w?cQ0(U+N):void 0;return{items:F.map((D)=>({id:D.id,title:D.title,tags:Wz(D.tags),categories:Wz(D.categories),is_public:D.is_public===1,is_unlisted:D.is_unlisted===1})),totalCount:W.length,hasMore:w,nextCursor:B}}deserialize($){let Z=dQ0($.server_json,{}),X=dQ0($.meta_json,{});return{id:$.id,name:typeof Z.name==="string"?Z.name:void 0,title:$.title,description:$.description,_meta:X,server:Z,is_public:$.is_public===1,is_unlisted:$.is_unlisted===1,created_at:$.created_at,updated_at:$.updated_at,...$.created_by?{created_by:$.created_by}:{}}}}var IH4,qH4,MH4;var xa0=O(()=>{IH4=new Set(["id","title","description","is_public","is_unlisted","created_at","updated_at","created_by"]),qH4=new Set(["is_public","is_unlisted"]),MH4={_meta:"meta_json",server:"server_json"}});import{randomUUID as SH4}from"crypto";function OQ8($,Z){if(!$)return Z;try{return JSON.parse($)}catch{return Z}}function LQ8($){if(!$)return null;let Z=dW($);return JSON.stringify(Z?uQ0($,Z):$)}class Rg{db;constructor($){this.db=$}async createOrUpdate($){let Z=new Date().toISOString(),X=await this.findPendingByRequestedId($.organization_id,$.requested_id);if(X){let J={title:$.title,description:$.description??null,server_json:JSON.stringify($.server),meta_json:LQ8($._meta),requester_name:$.requester_name??null,requester_email:$.requester_email??null,updated_at:Z};await this.db.updateTable("private_registry_publish_request").set(J).where("organization_id","=",$.organization_id).where("id","=",X.id).execute();let K=await this.findById($.organization_id,X.id);if(!K)throw Error("Failed to update publish request");return K}let Q=SH4(),Y={id:Q,organization_id:$.organization_id,requested_id:$.requested_id,status:"pending",title:$.title,description:$.description??null,server_json:JSON.stringify($.server),meta_json:LQ8($._meta),requester_name:$.requester_name??null,requester_email:$.requester_email??null,reviewer_notes:null,created_at:Z,updated_at:Z};await this.db.insertInto("private_registry_publish_request").values(Y).execute();let G=await this.findById($.organization_id,Q);if(!G)throw Error("Failed to create publish request");return G}async findPendingByRequestedId($,Z){let X=await this.db.selectFrom("private_registry_publish_request").selectAll().where("organization_id","=",$).where("requested_id","=",Z).where("status","=","pending").executeTakeFirst();return X?this.deserialize(X):null}async findById($,Z){let X=await this.db.selectFrom("private_registry_publish_request").selectAll().where("organization_id","=",$).where("id","=",Z).executeTakeFirst();return X?this.deserialize(X):null}async list($,Z={}){let X=this.db.selectFrom("private_registry_publish_request").selectAll().where("organization_id","=",$),Q=this.db.selectFrom("private_registry_publish_request").select((H)=>H.fn.countAll().as("count")).where("organization_id","=",$);if(Z.status)X=X.where("status","=",Z.status),Q=Q.where("status","=",Z.status);let Y=await Q.executeTakeFirst(),G=Number(Y?.count??0),J=Z.sortBy??"created_at",K=Z.sortDirection??"desc";if(J==="title")X=X.orderBy("title",K);else X=X.orderBy("created_at",K);return{items:(await X.limit(Z.limit??24).offset(Z.offset??0).execute()).map((H)=>this.deserialize(H)),totalCount:G}}async updateStatus($,Z,X,Q){let Y={status:X,updated_at:new Date().toISOString(),reviewer_notes:Q??null};await this.db.updateTable("private_registry_publish_request").set(Y).where("organization_id","=",$).where("id","=",Z).execute();let G=await this.findById($,Z);if(!G)throw Error(`Publish request not found: ${Z}`);return G}async countPending($){let Z=await this.db.selectFrom("private_registry_publish_request").select((X)=>X.fn.countAll().as("count")).where("organization_id","=",$).where("status","=","pending").executeTakeFirst();return Number(Z?.count??0)}async delete($,Z){let X=await this.findById($,Z);if(!X)return null;return await this.db.deleteFrom("private_registry_publish_request").where("organization_id","=",$).where("id","=",Z).execute(),X}deserialize($){return{id:$.id,organization_id:$.organization_id,requested_id:$.requested_id??null,status:$.status,title:$.title,description:$.description,_meta:OQ8($.meta_json,{}),server:OQ8($.server_json,{name:""}),requester_name:$.requester_name,requester_email:$.requester_email,reviewer_notes:$.reviewer_notes,created_at:$.created_at,updated_at:$.updated_at}}}var fa0=()=>{};import{createHash as CH4,randomBytes as _H4,randomUUID as vH4}from"crypto";function DQ8($){return CH4("sha256").update($).digest("hex")}function xH4(){return`prk_${_H4(32).toString("hex")}`}class Ig{db;constructor($){this.db=$}async generate($,Z){let X=vH4(),Q=xH4(),Y=await DQ8(Q),G=Q.slice(0,12),J=new Date().toISOString();return await this.db.insertInto("private_registry_publish_api_key").values({id:X,organization_id:$,name:Z,key_hash:Y,prefix:G,created_at:J}).execute(),{entity:{id:X,organization_id:$,name:Z,prefix:G,created_at:J},key:Q}}async list($){return await this.db.selectFrom("private_registry_publish_api_key").select(["id","organization_id","name","prefix","created_at"]).where("organization_id","=",$).orderBy("created_at","desc").execute()}async revoke($,Z){return(await this.db.deleteFrom("private_registry_publish_api_key").where("organization_id","=",$).where("id","=",Z).execute()).length>0}async validate($,Z){let X=await DQ8(Z),Q=await this.db.selectFrom("private_registry_publish_api_key").select(["id"]).where("organization_id","=",$).where("key_hash","=",X).executeTakeFirst();return Boolean(Q)}async hasKeys($){let Z=await this.db.selectFrom("private_registry_publish_api_key").select((X)=>X.fn.countAll().as("count")).where("organization_id","=",$).executeTakeFirst();return Number(Z?.count??0)>0}}var ba0=()=>{};import{randomUUID as EQ8}from"crypto";function zQ8($,Z){if(!$)return Z;try{return JSON.parse($)}catch{return Z}}class pQ0{db;constructor($){this.db=$}async create($){let Z=EQ8(),X=new Date().toISOString(),Q={id:Z,organization_id:$.organization_id,status:$.status??"pending",config_snapshot:$.config_snapshot?JSON.stringify($.config_snapshot):null,total_items:$.total_items??0,tested_items:0,passed_items:0,failed_items:0,skipped_items:0,current_item_id:null,started_at:$.started_at??null,finished_at:null,created_at:X};await this.db.insertInto("private_registry_monitor_run").values(Q).execute();let Y=await this.findById($.organization_id,Z);if(!Y)throw Error(`Failed to create monitor run ${Z}`);return Y}async findById($,Z){let X=await this.db.selectFrom("private_registry_monitor_run").selectAll().where("organization_id","=",$).where("id","=",Z).executeTakeFirst();return X?this.deserializeRun(X):null}async list($,Z={}){let X=this.db.selectFrom("private_registry_monitor_run").selectAll().where("organization_id","=",$),Q=this.db.selectFrom("private_registry_monitor_run").select((K)=>K.fn.countAll().as("count")).where("organization_id","=",$);if(Z.status)X=X.where("status","=",Z.status),Q=Q.where("status","=",Z.status);let Y=await Q.executeTakeFirst(),G=Number(Y?.count??0);return{items:(await X.orderBy("created_at","desc").limit(Z.limit??24).offset(Z.offset??0).execute()).map((K)=>this.deserializeRun(K)),totalCount:G}}async update($,Z,X){let Q={};if(X.total_items!==void 0)Q.total_items=X.total_items;if(X.status!==void 0)Q.status=X.status;if(X.tested_items!==void 0)Q.tested_items=X.tested_items;if(X.passed_items!==void 0)Q.passed_items=X.passed_items;if(X.failed_items!==void 0)Q.failed_items=X.failed_items;if(X.skipped_items!==void 0)Q.skipped_items=X.skipped_items;if(X.current_item_id!==void 0)Q.current_item_id=X.current_item_id;if(X.started_at!==void 0)Q.started_at=X.started_at;if(X.finished_at!==void 0)Q.finished_at=X.finished_at;await this.db.updateTable("private_registry_monitor_run").set(Q).where("organization_id","=",$).where("id","=",Z).execute();let Y=await this.findById($,Z);if(!Y)throw Error(`Monitor run not found: ${Z}`);return Y}deserializeRun($){return{id:$.id,organization_id:$.organization_id,status:$.status,config_snapshot:zQ8($.config_snapshot,null),total_items:Number($.total_items??0),tested_items:Number($.tested_items??0),passed_items:Number($.passed_items??0),failed_items:Number($.failed_items??0),skipped_items:Number($.skipped_items??0),current_item_id:$.current_item_id,started_at:$.started_at,finished_at:$.finished_at,created_at:$.created_at}}}class tQ0{db;constructor($){this.db=$}async create($){let Z=EQ8(),X=new Date().toISOString(),Q={id:Z,run_id:$.run_id,organization_id:$.organization_id,item_id:$.item_id,item_title:$.item_title,status:$.status,error_message:$.error_message??null,connection_ok:$.connection_ok?1:0,tools_listed:$.tools_listed?1:0,tool_results:$.tool_results?JSON.stringify($.tool_results):null,agent_summary:$.agent_summary??null,duration_ms:$.duration_ms??0,action_taken:$.action_taken??"none",tested_at:X};await this.db.insertInto("private_registry_monitor_result").values(Q).execute();let Y=await this.findById($.organization_id,Z);if(!Y)throw Error("Failed to create test result");return Y}async findById($,Z){let X=await this.db.selectFrom("private_registry_monitor_result").selectAll().where("organization_id","=",$).where("id","=",Z).executeTakeFirst();return X?this.deserialize(X):null}async listByRun($,Z,X={}){let Q=this.db.selectFrom("private_registry_monitor_result").selectAll().where("organization_id","=",$).where("run_id","=",Z),Y=this.db.selectFrom("private_registry_monitor_result").select((W)=>W.fn.countAll().as("count")).where("organization_id","=",$).where("run_id","=",Z);if(X.status)Q=Q.where("status","=",X.status),Y=Y.where("status","=",X.status);let G=await Y.executeTakeFirst(),J=Number(G?.count??0);return{items:(await Q.orderBy("tested_at","desc").limit(X.limit??50).offset(X.offset??0).execute()).map((W)=>this.deserialize(W)),totalCount:J}}async update($,Z,X){let Q={};if(X.status!==void 0)Q.status=X.status;if(X.error_message!==void 0)Q.error_message=X.error_message;if(X.connection_ok!==void 0)Q.connection_ok=X.connection_ok?1:0;if(X.tools_listed!==void 0)Q.tools_listed=X.tools_listed?1:0;if(X.tool_results!==void 0)Q.tool_results=JSON.stringify(X.tool_results);if(X.agent_summary!==void 0)Q.agent_summary=X.agent_summary;if(X.duration_ms!==void 0)Q.duration_ms=X.duration_ms;if(X.action_taken!==void 0)Q.action_taken=X.action_taken;await this.db.updateTable("private_registry_monitor_result").set(Q).where("organization_id","=",$).where("id","=",Z).execute();let Y=await this.findById($,Z);if(!Y)throw Error(`Monitor result not found: ${Z}`);return Y}deserialize($){return{id:$.id,run_id:$.run_id,organization_id:$.organization_id,item_id:$.item_id,item_title:$.item_title,status:$.status,error_message:$.error_message,connection_ok:$.connection_ok===1,tools_listed:$.tools_listed===1,tool_results:zQ8($.tool_results,[]),agent_summary:$.agent_summary,duration_ms:Number($.duration_ms??0),action_taken:$.action_taken,tested_at:$.tested_at}}}var jQ8=()=>{};import{randomUUID as fH4}from"crypto";class oQ0{db;constructor($){this.db=$}async findByItemId($,Z){let X=await this.db.selectFrom("private_registry_monitor_connection").selectAll().where("organization_id","=",$).where("item_id","=",Z).executeTakeFirst();return X?this.deserialize(X):null}async list($){return(await this.db.selectFrom("private_registry_monitor_connection").selectAll().where("organization_id","=",$).orderBy("updated_at","desc").execute()).map((X)=>this.deserialize(X))}async findByConnectionId($,Z){let X=await this.db.selectFrom("private_registry_monitor_connection").selectAll().where("organization_id","=",$).where("connection_id","=",Z).executeTakeFirst();return X?this.deserialize(X):null}async upsert($){let Z=await this.findByItemId($.organization_id,$.item_id),X=new Date().toISOString();if(!Z){let Y={id:fH4(),organization_id:$.organization_id,item_id:$.item_id,connection_id:$.connection_id,auth_status:$.auth_status??"none",created_at:X,updated_at:X};await this.db.insertInto("private_registry_monitor_connection").values(Y).execute()}else{let Y={connection_id:$.connection_id,auth_status:$.auth_status??Z.auth_status,updated_at:X};await this.db.updateTable("private_registry_monitor_connection").set(Y).where("organization_id","=",$.organization_id).where("item_id","=",$.item_id).execute()}let Q=await this.findByItemId($.organization_id,$.item_id);if(!Q)throw Error("Failed to save monitor connection");return Q}async updateAuthStatus($,Z,X){return await this.db.updateTable("private_registry_monitor_connection").set({auth_status:X,updated_at:new Date().toISOString()}).where("organization_id","=",$).where("item_id","=",Z).execute(),this.findByItemId($,Z)}deserialize($){return{id:$.id,organization_id:$.organization_id,item_id:$.item_id,connection_id:$.connection_id,auth_status:$.auth_status,created_at:$.created_at,updated_at:$.updated_at}}}var PQ8=()=>{};var AQ8=O(()=>{xa0();fa0();ba0();jQ8();PQ8()});class ap{db;constructor($){this.db=$}async listOrgTags($){return(await this.db.selectFrom("organization_tags").selectAll().where("organization_id","=",$).orderBy("name","asc").execute()).map((X)=>this.tagFromDbRow(X))}async getTag($){let Z=await this.db.selectFrom("organization_tags").selectAll().where("id","=",$).executeTakeFirst();return Z?this.tagFromDbRow(Z):null}async getTagByName($,Z){let X=await this.db.selectFrom("organization_tags").selectAll().where("organization_id","=",$).where("name","=",Z).executeTakeFirst();return X?this.tagFromDbRow(X):null}async createTag($,Z,X){let Q=Z4("tag"),Y=new Date().toISOString();await this.db.insertInto("organization_tags").values({id:Q,organization_id:$,name:Z,color:X??null,created_at:Y}).onConflict((J)=>J.columns(["organization_id","name"]).doNothing()).execute();let G=await this.getTagByName($,Z);if(!G)throw Error(`Failed to create or retrieve tag: ${Z}`);return G}async deleteTag($){await this.db.deleteFrom("organization_tags").where("id","=",$).execute()}async getMemberTags($){return(await this.db.selectFrom("member_tags").innerJoin("organization_tags","organization_tags.id","member_tags.tag_id").select(["organization_tags.id","organization_tags.organization_id","organization_tags.name","organization_tags.color","organization_tags.created_at"]).where("member_tags.member_id","=",$).orderBy("organization_tags.name","asc").execute()).map((X)=>this.tagFromDbRow(X))}async setMemberTags($,Z){await this.db.transaction().execute(async(X)=>{if(await X.deleteFrom("member_tags").where("member_id","=",$).execute(),Z.length>0){let Q=new Date().toISOString();await X.insertInto("member_tags").values(Z.map((Y)=>({id:Z4("mtag"),member_id:$,tag_id:Y,created_at:Q}))).execute()}})}async addMemberTag($,Z){let X=new Date().toISOString();await this.db.insertInto("member_tags").values({id:Z4("mtag"),member_id:$,tag_id:Z,created_at:X}).onConflict((Q)=>Q.columns(["member_id","tag_id"]).doNothing()).execute()}async removeMemberTag($,Z){await this.db.deleteFrom("member_tags").where("member_id","=",$).where("tag_id","=",Z).execute()}async verifyMemberOrg($,Z){return await this.db.selectFrom("member").select("id").where("id","=",$).where("organizationId","=",Z).executeTakeFirst()!==void 0}async getUserTagsInOrg($,Z){return(await this.db.selectFrom("member").innerJoin("member_tags","member_tags.member_id","member.id").innerJoin("organization_tags","organization_tags.id","member_tags.tag_id").select(["organization_tags.id","organization_tags.organization_id","organization_tags.name","organization_tags.color","organization_tags.created_at"]).where("member.userId","=",$).where("member.organizationId","=",Z).orderBy("organization_tags.name","asc").execute()).map((Q)=>this.tagFromDbRow(Q))}async getMembersWithTags($){let Z=await this.db.selectFrom("member").leftJoin("member_tags","member_tags.member_id","member.id").leftJoin("organization_tags","organization_tags.id","member_tags.tag_id").select(["member.id as memberId","organization_tags.name as tagName"]).where("member.organizationId","=",$).execute(),X=new Map;for(let Q of Z){if(!X.has(Q.memberId))X.set(Q.memberId,[]);if(Q.tagName)X.get(Q.memberId).push(Q.tagName)}return X}tagFromDbRow($){return{id:$.id,organizationId:$.organization_id,name:$.name,color:$.color??null,createdAt:$.created_at}}}var ya0=O(()=>{$Q()});import{sql as bH4}from"kysely";function TQ8($){return{organizationId:$.organization_id,status:$.status,stripeCustomerId:$.stripe_customer_id,stripeSubscriptionId:$.stripe_subscription_id,currentPeriodEnd:$.current_period_end,lastStripeEventAt:$.last_stripe_event_at,freeTaskExecutions:$.free_task_executions,monthlyTaskExecutions:$.monthly_task_executions}}class mW{db;constructor($){this.db=$}async getBilling($){let Z=await this.db.selectFrom("organization_billing").selectAll().where("organization_id","=",$).executeTakeFirst();return Z?TQ8(Z):null}async getBillingByStripeSubscriptionId($){let Z=await this.db.selectFrom("organization_billing").selectAll().where("stripe_subscription_id","=",$).executeTakeFirst();return Z?TQ8(Z):null}async updateStripeState($,Z){return((await this.db.updateTable("organization_billing").set({...Z.stripeCustomerId!==void 0&&{stripe_customer_id:Z.stripeCustomerId},...Z.stripeSubscriptionId!==void 0&&{stripe_subscription_id:Z.stripeSubscriptionId},...Z.status!==void 0&&{status:Z.status},...Z.currentPeriodEnd!==void 0&&{current_period_end:Z.currentPeriodEnd},...Z.lastStripeEventAt!==void 0&&{last_stripe_event_at:Z.lastStripeEventAt},updated_at:new Date}).where("organization_id","=",$).executeTakeFirst()).numUpdatedRows??0n)>0n}async taskClaim($){let Z=await this.db.selectFrom("task_quota_claims").select(["run_count","state"]).where("task_board_item_id","=",$).executeTakeFirst();return Z?{runCount:Z.run_count,state:Z.state}:null}static liveClaimCount($,Z,X){return $.selectFrom("task_quota_claims").select((Q)=>Q.fn.countAll().as("count")).where("organization_id","=",Z).where("period_key","=",X).where("state","<>","released").executeTakeFirst().then((Q)=>Number(Q?.count??0))}async countTaskClaims($,Z){return await mW.liveClaimCount(this.db,$,Z)}async claimTaskUnderLimit($,Z,X,Q,Y){return await this.db.transaction().execute(async(G)=>{await G.insertInto("organization_billing").values({organization_id:$}).onConflict((W)=>W.column("organization_id").doNothing()).execute(),await G.selectFrom("organization_billing").select("organization_id").where("organization_id","=",$).forUpdate().executeTakeFirstOrThrow();let J=await G.selectFrom("task_quota_claims").select(["run_count","state"]).where("task_board_item_id","=",Z).executeTakeFirst();if(J&&J.run_count>=Y)return"runs_exhausted";let K=()=>mW.liveClaimCount(G,$,X);if(J&&J.state!=="released")return await G.updateTable("task_quota_claims").set({run_count:J.run_count+1}).where("task_board_item_id","=",Z).execute(),"rerun";if(await K()>=Q)return"exhausted";if(J)return await G.updateTable("task_quota_claims").set({state:"held",period_key:X,run_count:J.run_count+1}).where("task_board_item_id","=",Z).execute(),"claimed";return await G.insertInto("task_quota_claims").values({task_board_item_id:Z,organization_id:$,period_key:X,state:"held"}).execute(),"claimed"})}async releaseTaskClaim($,Z){return((await this.db.updateTable("task_quota_claims").set({state:"released"}).where("organization_id","=",$).where("task_board_item_id","=",Z).where("state","=","held").executeTakeFirst()).numUpdatedRows??0n)>0n}async rollbackTaskClaim($,Z,{releaseSlot:X}){await this.db.updateTable("task_quota_claims").set(()=>({...X?{state:"released"}:{},run_count:bH4`greatest(run_count - 1, 0)`})).where("organization_id","=",$).where("task_board_item_id","=",Z).where("state","=","held").execute()}}var rQ0=()=>{};class ga0{db;constructor($){this.db=$}async findById($,Z){let X=await this.db.selectFrom("user").select(["user.id","user.name","user.email","user.image","user.createdAt","user.updatedAt"]).where("user.id","=",$).where((Q)=>Q.exists(Q.selectFrom("member as m1").innerJoin("member as m2","m1.organizationId","m2.organizationId").select("m1.id").where("m1.userId","=",$).where("m2.userId","=",Z))).executeTakeFirst();if(!X)return null;return{id:X.id,name:X.name,email:X.email,role:"",createdAt:X.createdAt,updatedAt:X.updatedAt,image:X.image??void 0}}}function IQ8(){let $={};for(let Z of aQ0){if(Z.id==="basic-usage")continue;$[Z.id]=!0}return $}function ua0($){let Z=(G)=>{let J=$[G];return Array.isArray(J)?J:[]},X=Z("*").includes("*")||Z("self").includes("*"),Q=new Set;if(!X)for(let G of Object.values($)){if(!Array.isArray(G))continue;for(let J of G)Q.add(J)}let Y={};for(let G of aQ0){if(G.id==="basic-usage")continue;Y[G.id]=X||G.tools.every((J)=>Q.has(J))}return Y}function Hz(){let $={Organizations:[],Connections:[],"Virtual MCPs":[],Threads:[],Monitoring:[],Users:[],"API Keys":[],Tags:[],"AI Providers":[],Secrets:[],"File Configs":[],Automations:[],"Object Storage":[],Registry:[],GitHub:[],VM:[],Search:[],"Task Board":[]};for(let Z of ha0)$[Z.category].push(Z);return $}var ha0,aQ0,RQ8,yH4,sQ0;var qg=O(()=>{ha0=[{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_LIST",description:"List organization domain claims",category:"Organizations"},{name:"ORGANIZATION_DOMAIN_ADD",description:"Claim an email domain for the organization",category:"Organizations"},{name:"ORGANIZATION_DOMAIN_UPDATE",description:"Set a domain's join mode",category:"Organizations"},{name:"ORGANIZATION_DOMAIN_VERIFY",description:"Verify a domain via DNS TXT record",category:"Organizations"},{name:"ORGANIZATION_DOMAIN_REMOVE",description:"Remove an organization domain claim",category:"Organizations",dangerous:!0},{name:"ORGANIZATION_JOIN_REQUEST_LIST",description:"List pending requests to join the organization",category:"Organizations"},{name:"ORGANIZATION_JOIN_REQUEST_APPROVE",description:"Approve a request to join the organization",category:"Organizations"},{name:"ORGANIZATION_JOIN_REQUEST_DENY",description:"Deny a request to join the organization",category:"Organizations",dangerous:!0},{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:"ORGANIZATION_BILLING_CHECKOUT_START",description:"Start the org subscription checkout",category:"Organizations",dangerous:!0},{name:"ORGANIZATION_BILLING_PORTAL",description:"Open the Stripe billing portal",category:"Organizations"},{name:"ORGANIZATION_TASK_QUOTA_GET",description:"Get the org's auto-task quota usage",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:"COMMERCE_DISCOVERY_SETUP",description:"Set up Commerce Discovery",category:"Connections"},{name:"COMMERCE_DISCOVERY_RUN",description:"Run Commerce Discovery",category:"Connections"},{name:"COMMERCE_DISCOVERY_BIND",description:"Bind Commerce Discovery data source",category:"Connections"},{name:"COMMERCE_DISCOVERY_CONNECTION_STATUS",description:"Read Commerce Discovery connection status",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_HEATMAP",description:"View tool-call volume by agent and tool",category:"Monitoring"},{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:"MONITORING_THREAD_USAGE",description:"View per-thread token usage and cost",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:"USER_GET",description:"Get a user by id",category:"Users"},{name:"USER_MODEL_PREFERENCES_GET",description:"Get the calling user's chat tier \u2192 model overrides",category:"Users"},{name:"USER_MODEL_PREFERENCES_UPDATE",description:"Set the calling user's chat tier \u2192 model overrides",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_TRIGGER_ROTATE_TOKEN",description:"Rotate the secret token for a webhook automation trigger",category:"Automations"},{name:"AUTOMATION_RUN",description:"Manually trigger an automation run",category:"Automations"},{name:"AUTOMATION_RUN_STATS",description:"View aggregated run counts and token/cost for an automation",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:"VIRTUAL_MCP_LAST_USED_LIST",description:"Get last-used info for one or more virtual MCPs",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_KEY_UPDATE",description:"Update AI provider API key label or credential",category:"AI Providers"},{name:"AI_PROVIDER_KEY_PREVIEW",description:"Get masked preview of AI provider API key",category:"AI Providers"},{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:"CLAUDE_SUBSCRIPTION_CONNECT",description:"Link your own Claude subscription with a setup token",category:"AI Providers"},{name:"CLAUDE_SUBSCRIPTION_STATUS",description:"Whether your Claude subscription is linked, and since when",category:"AI Providers"},{name:"CLAUDE_SUBSCRIPTION_DISCONNECT",description:"Unlink your Claude subscription",category:"AI Providers"},{name:"AI_PROVIDER_CREDITS",description:"Get current credit balance for a provider",category:"AI Providers"},{name:"SECRET_CREATE",description:"Create a secret in the credential vault",category:"Secrets"},{name:"SECRET_LIST",description:"List secrets visible to the caller (no values returned)",category:"Secrets"},{name:"FILE_CONFIG_CREATE",description:"Create an S3-compatible bucket configuration for the org",category:"File Configs"},{name:"FILE_CONFIG_LIST",description:"List S3 bucket configurations for the org (no creds returned)",category:"File Configs"},{name:"ORG_FS_PUBLIC_SETS_SYNC",description:"Re-sync the shared public skill-set volumes from their GitHub sources",category:"File Configs"},{name:"ORG_REPO_SYNC_CREATE",description:"Keep a GitHub repository mirrored into a new org-fs volume",category:"File Configs"},{name:"ORG_REPO_SYNC_LIST",description:"List the org's synced repositories and their sync status",category:"File Configs"},{name:"ORG_REPO_SYNC_UPDATE",description:"Update a synced repository's ref, paths, or enabled flag",category:"File Configs"},{name:"ORG_REPO_SYNC_DELETE",description:"Stop syncing a repository (already-synced files are kept)",category:"File Configs"},{name:"ORG_REPO_SYNC_RUN",description:"Sync a repository into its volume right now",category:"File Configs"},{name:"FILE_CONFIG_UPDATE",description:"Update an S3 bucket configuration, optionally rotating credentials",category:"File Configs"},{name:"FILE_CONFIG_DELETE",description:"Delete an S3 bucket configuration",category:"File Configs"},{name:"FILE_OBJECTS_LIST",description:"List existing objects in a configured bucket",category:"File Configs"},{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:"SANDBOX_START",description:"Start a sandbox VM with dev server preview",category:"VM"},{name:"SANDBOX_DELETE",description:"Stop and delete a sandbox VM",category:"VM"},{name:"GITHUB_LIST_USER_ORGS",description:"List GitHub user's personal account and organizations",category:"GitHub"},{name:"GLOBAL_SEARCH",description:"Search across organization resources (currently threads). Returns a typed union of matches.",category:"Search"},{name:"TASK_BOARD_ITEM_CREATE",description:"Create task board item",category:"Task Board"},{name:"TASK_BOARD_ITEM_LIST",description:"List task board items",category:"Task Board"},{name:"TASK_BOARD_ITEM_UPDATE",description:"Update task board item",category:"Task Board"},{name:"TASK_BOARD_ITEM_DELETE",description:"Delete task board item",category:"Task Board",dangerous:!0},{name:"TASK_BOARD_ITEM_PRS_GET",description:"Get a task board item's linked pull requests with live state",category:"Task Board"},{name:"TASK_BOARD_ITEM_PR_LINK",description:"Link a pull request a task run opened to its task board item",category:"Task Board"},{name:"TASK_BOARD_ITEM_RERUN",description:"Re-run a task with the Super Agent, failing any run still holding it open",category:"Task Board",dangerous:!0},{name:"TASK_BOARD_REVIEW_DECISION",description:"Record a reviewer's decision (approve or request changes) for a task under review",category:"Task Board",dangerous:!0},{name:"TASK_BOARD_PROMOTE_TO_PRODUCTION",description:"Merge a reviewed task's pull request and move the task to Done",category:"Task Board",dangerous:!0},{name:"TASK_BOARD_ACTIVITY_LIST",description:"List a task board item's change history",category:"Task Board"},{name:"TASK_BOARD_COMMENT_LIST",description:"List a task board item's comment threads",category:"Task Board"},{name:"TASK_BOARD_COMMENT_CREATE",description:"Post a comment or a reply on a task board item",category:"Task Board"},{name:"TASK_BOARD_COMMENT_UPDATE",description:"Edit a comment, or resolve/unresolve a comment thread",category:"Task Board"},{name:"TASK_BOARD_COMMENT_DELETE",description:"Delete a comment (a thread root takes its replies)",category:"Task Board"},{name:"TASK_BOARD_DISMISSED_LIST",description:"List diagnostic findings dismissed by deleting their task board cards",category:"Task Board"},{name:"TASK_BOARD_DISMISSED_RESTORE",description:"Un-dismiss diagnostic findings so the next report import pushes them again",category:"Task Board"},{name:"TASK_ADD_REPO",description:"Clone an organization repository into the sandbox of the task run calling it",category:"Task Board"}],aQ0=[{id:"basic-usage",label:"Basic Usage",description:"Tools all org members can access by default",section:"Basic Usage",tools:["COLLECTION_CONNECTIONS_LIST","COLLECTION_CONNECTIONS_GET","CONNECTION_TEST","COLLECTION_VIRTUAL_MCP_LIST","COLLECTION_VIRTUAL_MCP_GET","VIRTUAL_MCP_PLUGIN_CONFIG_GET","VIRTUAL_MCP_LAST_USED_LIST","AUTOMATION_GET","AUTOMATION_LIST","AUTOMATION_RUN_STATS","AI_PROVIDERS_LIST","AI_PROVIDERS_LIST_MODELS","AI_PROVIDERS_ACTIVE","AI_PROVIDER_KEY_LIST","AI_PROVIDER_CREDITS","AI_PROVIDER_TOPUP_URL","LIST_OBJECTS","GET_OBJECT_METADATA","GET_PRESIGNED_URL","PUT_PRESIGNED_URL","FILE_OBJECTS_LIST","ORG_REPO_SYNC_LIST","SANDBOX_START","SANDBOX_DELETE","GLOBAL_SEARCH","ORGANIZATION_SETTINGS_GET","USER_GET","BRAND_CONTEXT_LIST","COLLECTION_THREADS_CREATE","COLLECTION_THREADS_LIST","COLLECTION_THREADS_GET","COLLECTION_THREADS_UPDATE","COLLECTION_THREADS_DELETE","COLLECTION_THREAD_MESSAGES_LIST","TASK_BOARD_ITEM_CREATE","TASK_BOARD_ITEM_LIST","TASK_BOARD_ITEM_UPDATE","TASK_BOARD_ITEM_DELETE","TASK_BOARD_ITEM_PRS_GET","TASK_BOARD_ITEM_PR_LINK","TASK_BOARD_ITEM_RERUN","TASK_BOARD_REVIEW_DECISION","TASK_BOARD_PROMOTE_TO_PRODUCTION","TASK_BOARD_ACTIVITY_LIST","TASK_BOARD_COMMENT_LIST","TASK_BOARD_COMMENT_CREATE","TASK_BOARD_COMMENT_UPDATE","TASK_BOARD_COMMENT_DELETE","TASK_BOARD_DISMISSED_LIST","TASK_BOARD_DISMISSED_RESTORE"]},{id:"org:manage",label:"Manage organization",description:"Edit organization settings, brand context, and domain configuration",section:"Organization",tools:["ORGANIZATION_GET","ORGANIZATION_LIST","ORGANIZATION_UPDATE","ORGANIZATION_SETTINGS_GET","ORGANIZATION_SETTINGS_UPDATE","BRAND_CONTEXT_LIST","BRAND_CONTEXT_GET","BRAND_CONTEXT_CREATE","BRAND_CONTEXT_UPDATE","BRAND_CONTEXT_DELETE","BRAND_CONTEXT_EXTRACT","BRAND_GET","BRAND_LIST","ORGANIZATION_DOMAIN_LIST","ORGANIZATION_DOMAIN_ADD","ORGANIZATION_DOMAIN_UPDATE","ORGANIZATION_DOMAIN_VERIFY","ORGANIZATION_DOMAIN_REMOVE"]},{id:"members:manage",label:"Manage members",description:"Invite members, remove them, and change their roles",section:"Organization",tools:["ORGANIZATION_MEMBER_LIST","ORGANIZATION_MEMBER_ADD","ORGANIZATION_MEMBER_REMOVE","ORGANIZATION_MEMBER_UPDATE_ROLE","ORGANIZATION_BILLING_CHECKOUT_START","ORGANIZATION_BILLING_PORTAL","ORGANIZATION_TASK_QUOTA_GET","ORGANIZATION_JOIN_REQUEST_LIST","ORGANIZATION_JOIN_REQUEST_APPROVE","ORGANIZATION_JOIN_REQUEST_DENY"],dangerous:!0},{id:"connections:manage",label:"Manage connections",description:"Create, update, and delete connections",section:"Connections & Agents",tools:["COLLECTION_CONNECTIONS_CREATE","COLLECTION_CONNECTIONS_UPDATE","COLLECTION_CONNECTIONS_DELETE","COMMERCE_DISCOVERY_SETUP","COMMERCE_DISCOVERY_RUN","COMMERCE_DISCOVERY_BIND","COMMERCE_DISCOVERY_CONNECTION_STATUS"],dangerous:!0},{id:"agents:manage",label:"Manage agents",description:"Create, configure, and delete agents",section:"Connections & Agents",tools:["COLLECTION_VIRTUAL_MCP_CREATE","COLLECTION_VIRTUAL_MCP_UPDATE","COLLECTION_VIRTUAL_MCP_DELETE","VIRTUAL_MCP_PLUGIN_CONFIG_UPDATE","VIRTUAL_MCP_PINNED_VIEWS_UPDATE"],dangerous:!0},{id:"automations:manage",label:"Manage automations",description:"Create, update, run, and delete automations",section:"Automations",tools:["AUTOMATION_CREATE","AUTOMATION_UPDATE","AUTOMATION_DELETE","AUTOMATION_TRIGGER_ADD","AUTOMATION_TRIGGER_REMOVE","AUTOMATION_TRIGGER_ROTATE_TOKEN","AUTOMATION_RUN"],dangerous:!0},{id:"monitoring:view",label:"View monitoring",description:"Access logs and usage statistics",section:"Monitoring",tools:["MONITORING_HEATMAP","MONITORING_LOG_GET","MONITORING_LOGS_LIST","MONITORING_STATS","MONITORING_THREAD_USAGE"]},{id:"secrets:manage",label:"Manage secrets",description:"Create and list secrets stored in the credential vault",section:"Organization",tools:["SECRET_CREATE","SECRET_LIST"]},{id:"file-configs:manage",label:"Manage file configs",description:"Create, list, update and delete S3 bucket configurations and synced GitHub repositories",section:"Organization",tools:["FILE_CONFIG_CREATE","FILE_CONFIG_LIST","FILE_CONFIG_UPDATE","FILE_CONFIG_DELETE","FILE_OBJECTS_LIST","ORG_REPO_SYNC_CREATE","ORG_REPO_SYNC_LIST","ORG_REPO_SYNC_UPDATE","ORG_REPO_SYNC_DELETE","ORG_REPO_SYNC_RUN"]},{id:"ai-providers:manage",label:"Manage AI providers",description:"Add or remove API keys and provision provider credentials",section:"AI Providers",tools:["AI_PROVIDER_KEY_CREATE","AI_PROVIDER_KEY_LIST","AI_PROVIDER_KEY_DELETE","AI_PROVIDER_KEY_UPDATE","AI_PROVIDER_KEY_PREVIEW","AI_PROVIDER_OAUTH_URL","AI_PROVIDER_OAUTH_EXCHANGE","AI_PROVIDER_PROVISION_KEY","AI_PROVIDER_TOPUP_URL","AI_PROVIDER_CREDITS","CLAUDE_SUBSCRIPTION_CONNECT","CLAUDE_SUBSCRIPTION_STATUS","CLAUDE_SUBSCRIPTION_DISCONNECT"]},{id:"tags:manage",label:"Manage tags",description:"Create, assign, and delete organization tags",section:"Organization",tools:["TAGS_LIST","TAGS_CREATE","TAGS_DELETE","MEMBER_TAGS_GET","MEMBER_TAGS_SET"]},{id:"registry:manage",label:"Manage registry",description:"Browse, publish, and manage items in the registry",section:"Store & Registry",tools:["COLLECTION_REGISTRY_APP_LIST","COLLECTION_REGISTRY_APP_GET","COLLECTION_REGISTRY_APP_VERSIONS","COLLECTION_REGISTRY_APP_FILTERS","REGISTRY_ITEM_LIST","REGISTRY_ITEM_SEARCH","REGISTRY_ITEM_GET","REGISTRY_ITEM_VERSIONS","REGISTRY_ITEM_FILTERS","REGISTRY_DISCOVER_TOOLS","REGISTRY_ITEM_CREATE","REGISTRY_ITEM_BULK_CREATE","REGISTRY_ITEM_UPDATE","REGISTRY_ITEM_DELETE","REGISTRY_AI_GENERATE","REGISTRY_PUBLISH_REQUEST_LIST","REGISTRY_PUBLISH_REQUEST_REVIEW","REGISTRY_PUBLISH_REQUEST_COUNT","REGISTRY_PUBLISH_REQUEST_DELETE","REGISTRY_PUBLISH_API_KEY_GENERATE","REGISTRY_PUBLISH_API_KEY_LIST","REGISTRY_PUBLISH_API_KEY_REVOKE"],dangerous:!0},{id:"registry:monitor",label:"Monitor registry health",description:"Run health checks on registry connections and view results",section:"Store & Registry",tools:["REGISTRY_MONITOR_RUN_START","REGISTRY_MONITOR_RUN_LIST","REGISTRY_MONITOR_RUN_GET","REGISTRY_MONITOR_RUN_CANCEL","REGISTRY_MONITOR_RESULT_LIST","REGISTRY_MONITOR_CONNECTION_LIST","REGISTRY_MONITOR_CONNECTION_SYNC","REGISTRY_MONITOR_CONNECTION_UPDATE_AUTH"]},{id:"api-keys:manage",label:"Manage API keys",description:"Create, update, and revoke API keys",section:"Developer",tools:["API_KEY_CREATE","API_KEY_LIST","API_KEY_UPDATE","API_KEY_DELETE"]},{id:"storage:delete",label:"Delete from storage",description:"Permanently delete files from object storage",section:"Developer",tools:["DELETE_OBJECT","DELETE_OBJECTS"],dangerous:!0},{id:"connections:sql",label:"Run SQL queries",description:"Execute raw SQL against connected databases",section:"Developer",tools:["DATABASES_RUN_SQL"],dangerous:!0}],RQ8=new Set([...aQ0.find(($)=>$.id==="basic-usage")?.tools??[],"ORG_FS_READ","ORG_FS_WRITE"]),yH4=["agents:manage","connections:manage"],sQ0=new Set(aQ0.filter(($)=>yH4.includes($.id)).flatMap(($)=>$.tools))});function B3($){if(!$)return!1;return $.split(",").some((X)=>sp.includes(X))}function eQ0($,Z){let X=Array.isArray(Z)?Z:[Z];if(X.length===0)return!1;let Q=$?$.split(","):[];if(Q.includes("owner"))return!0;if(Q.includes("admin"))return X.every((Y)=>Y!=="owner");return!1}var Mg,sp;var O3=O(()=>{Mg=["owner","admin","user"],sp=["owner","admin"]});class Uz{userId;toolName;boundAuth;role;connectionId;getToolMeta;organizationId;_granted=!1;constructor($,Z,X,Q,Y="self",G,J){this.userId=$;this.toolName=Z;this.boundAuth=X;this.role=Q;this.connectionId=Y;this.getToolMeta=G;this.organizationId=J}setToolName($){this.toolName=$}setOrganizationId($){this.organizationId=$}getOrganizationId(){return this.organizationId}setRole($){this.role=$}getRole(){return this.role}grant(){this._granted=!0}async check(...$){if(this._granted)return;if(this.toolName?.startsWith("STUDIO_PUBLIC_")||this.toolName?.startsWith("MESH_PUBLIC_")){this.grant();return}if(!this.userId&&!this.boundAuth){if(this.getToolMeta&&await this.isToolPublic()){this.grant();return}throw new Vg("Authentication required. Please provide a valid OAuth token or API key.")}let Z=$.length>0?$:this.toolName?[this.toolName]:[];if(Z.length===0)throw new HN("No resources specified for access check");for(let X of Z)if(await this.checkResource(X)){this.grant();return}throw new HN(`Access denied to: ${Z.join(", ")}`)}async checkResource($){if(!this.userId&&!this.boundAuth)return!1;return this.boundAuth?.isApiKeyPrincipal?this.checkApiKeyAccess($):this.checkMemberAccess($)}async checkApiKeyAccess($){if(!this.boundAuth)return!1;return this.boundAuth.hasPermission({[this.connectionId]:[$]})}async checkMemberAccess($){if(this.userId&&this.role&&RQ8.has($))return!0;if(B3(this.role))return!0;if(!this.boundAuth)return!1;return this.boundAuth.hasPermission({[this.connectionId]:[$]},{organizationId:this.organizationId,role:this.role})}async isToolPublic(){if(this.toolName?.startsWith("STUDIO_PUBLIC_")||this.toolName?.startsWith("MESH_PUBLIC_"))return!0;if(!this.getToolMeta)return!1;try{let $=await this.getToolMeta();if(!$)return!1;let X=dW($)?.public_tool;return X===!0||X==="true"}catch{return!1}}granted(){return this._granted}}var Vg,HN;var Nz=O(()=>{qg();O3();Vg=class Vg extends Error{constructor($){super($);this.name="UnauthorizedError"}};HN=class HN extends Error{constructor($){super($);this.name="ForbiddenError"}}});function qQ8($){let Z={};for(let X of Object.keys($))Z[X]=["*"];return Z}function XQ($){let Z=$?.metadata;if(!Z)return!1;try{return(typeof Z==="string"?JSON.parse(Z):Z).archived===!0}catch{return!1}}function $Y0($,Z){return $.get(MQ8[Z])??$.get(VQ8[Z])}function ca0($,Z,X){$[MQ8[Z]]=X,$[VQ8[Z]]=X}var MQ8,VQ8;var la0=O(()=>{MQ8={token:"x-studio-token",client:"x-studio-client",properties:"x-studio-properties",runMetadata:"x-studio-run-metadata"},VQ8={token:"x-mesh-token",client:"x-mesh-client",properties:"x-mesh-properties",runMetadata:"x-mesh-run-metadata"}});function ZY0($){let Z=vB.get($);if(!Z||Z.state==="CLOSED")return;if(Z.state==="HALF_OPEN"){if(Z.halfOpenInFlight){if(Date.now()-Z.halfOpenStartedAt<Z58)throw new kg($,0)}Z.halfOpenInFlight=!0,Z.halfOpenStartedAt=Date.now();return}let X=Date.now()-Z.lastFailureTime;if(X>=Co0){Z.state="HALF_OPEN",Z.halfOpenInFlight=!0,Z.halfOpenStartedAt=Date.now();return}throw new kg($,Co0-X)}function XY0($){vB.delete($)}function QY0($){let Z=vB.get($);if(!Z){gH4(),vB.set($,{state:1>=So0?"OPEN":"CLOSED",consecutiveFailures:1,lastFailureTime:Date.now(),halfOpenInFlight:!1,halfOpenStartedAt:0});return}if(Z.consecutiveFailures++,Z.lastFailureTime=Date.now(),Z.halfOpenInFlight=!1,Z.consecutiveFailures>=So0)Z.state="OPEN"}function gH4(){if(vB.size<bX0)return;let $=null,Z=1/0;for(let[X,Q]of vB)if(Q.lastFailureTime<Z)Z=Q.lastFailureTime,$=X;if($)vB.delete($)}var vB,kg;var da0=O(()=>{t$();vB=new Map;y8.createObservableGauge("mcp_circuit_breaker.circuits",{description:"MCP connection circuits by state (open, half_open)",unit:"{circuits}"}).addCallback(($)=>{let Z=0,X=0;for(let Q of vB.values())if(Q.state==="OPEN")Z++;else if(Q.state==="HALF_OPEN")X++;$.observe(Z,{state:"open"}),$.observe(X,{state:"half_open"})});kg=class kg extends Error{cooldownRemainingMs;constructor($,Z){super(`Connection ${$} circuit breaker is open \u2014 downstream server unreachable. `+`Retry in ${Math.ceil(Z/1000)}s.`);this.name="CircuitOpenError",this.cooldownRemainingMs=Z}}});var ep=($,Z)=>{if(Z===null||Z===void 0)return;let X=$.replace(/\[(\w+)\]/g,".$1").split(".").filter(Boolean),Q=Z;for(let Y of X){if(Q===null||Q===void 0||typeof Q!=="object")return;Q=Q[Y]}return Q};function YY0($){let Z=$.split("::");if(Z.length!==2||!Z[0]||!Z[1])throw Error(`Invalid scope format: ${$}. Expected format: "KEY::SCOPE"`);return Z}function hH4($){try{return YY0($)}catch{return null}}function uH4($){if(typeof $==="object"&&$!==null&&"value"in $){let Z=$.value;if(typeof Z==="string")return Z}return null}function ma0($,Z){let X={};if(!$||!Z)return X;for(let Q of Z){if(Q==="*"){X["*"]=["*"];continue}let Y=hH4(Q);if(!Y)continue;let[G,J]=Y,K=ep(G,$),W=uH4(K);if(W){if(!X[W])X[W]=[];X[W].push(J)}}return X}function kQ8($,Z){let X=ma0($,Z);return new Set(Object.keys(X).filter((Q)=>Q!=="*"))}var ia0=()=>{};async function SQ8($){if(!$.refreshToken)return{success:!1,permanent:!1,error:"No refresh token available"};if(!$.tokenEndpoint)return{success:!1,permanent:!1,error:"No token endpoint available"};if(!$.clientId)return{success:!1,permanent:!1,error:"No client ID available"};try{let Z=new URLSearchParams({grant_type:"refresh_token",refresh_token:$.refreshToken,client_id:$.clientId});if($.clientSecret)Z.set("client_secret",$.clientSecret);if($.scope)Z.set("scope",$.scope);let X=await fetch($.tokenEndpoint,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded",Accept:"application/json"},body:Z.toString(),signal:AbortSignal.timeout(1e4)});if(!X.ok){let G=await X.text(),J,K;try{let H=JSON.parse(G);if(typeof H.error==="string")J=H.error;if(typeof H.error_description==="string")K=H.error_description}catch{}let W=X.status===400&&!!J&&cH4.has(J);return(W?console.error:console.warn)("[TokenRefresh] refresh failed",{connectionId:$.connectionId,tokenEndpoint:$.tokenEndpoint,status:X.status,errorCode:J,errorDescription:K,permanent:W}),{success:!1,permanent:W,status:X.status,errorCode:J,error:K||J||`Token refresh failed: ${X.status}`}}let Q=await X.json();if(typeof Q.access_token!=="string"||!Q.access_token)return console.warn("[TokenRefresh] 200 response missing access_token",{connectionId:$.connectionId,tokenEndpoint:$.tokenEndpoint}),{success:!1,permanent:!1,status:X.status,error:"Token endpoint returned no access_token"};let Y;if(Q.expires_in!==void 0){let G=Number(Q.expires_in);if(Number.isFinite(G)&&G>0)Y=G;else console.warn("[TokenRefresh] ignoring malformed expires_in",{connectionId:$.connectionId,tokenEndpoint:$.tokenEndpoint,expiresIn:Q.expires_in})}return{success:!0,accessToken:Q.access_token,refreshToken:typeof Q.refresh_token==="string"&&Q.refresh_token?Q.refresh_token:$.refreshToken,expiresIn:Y,scope:typeof Q.scope==="string"?Q.scope:void 0}}catch(Z){return console.warn("[TokenRefresh] network/parse error",{connectionId:$.connectionId,tokenEndpoint:$.tokenEndpoint,message:Z instanceof Error?Z.message:String(Z)}),{success:!1,permanent:!1,error:Z instanceof Error?Z.message:"Token refresh failed"}}}var cH4;var CQ8=O(()=>{cH4=new Set(["invalid_grant","bad_refresh_token"])});var na0=($,Z,X)=>{return(Q,Y)=>{let G=-1;return J(0);async function J(K){if(K<=G)throw Error("next() called multiple times");G=K;let W,H=!1,U;if($[K])U=$[K][0][0],Q.req.routeIndex=K;else U=K===$.length&&Y||void 0;if(U)try{W=await U(Q,()=>J(K+1))}catch(N){if(N instanceof Error&&Z)Q.error=N,W=await Z(N,Q),H=!0;else throw N}else if(Q.finalized===!1&&X)W=await X(Q);if(W&&(Q.finalized===!1||H))Q.res=W;return Q}}};var _Q8=()=>{};var J8;var sJ=O(()=>{J8=class extends Error{res;status;constructor($=500,Z){super(Z?.message,{cause:Z?.cause});this.res=Z?.res,this.status=$}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 vQ8;var xQ8=O(()=>{vQ8=Symbol()});async function lH4($,Z){let X=await $.formData();if(X)return dH4(X,Z);return{}}function dH4($,Z){let X=Object.create(null);if($.forEach((Q,Y)=>{if(!(Z.all||Y.endsWith("[]")))X[Y]=Q;else mH4(X,Y,Q)}),Z.dot)Object.entries(X).forEach(([Q,Y])=>{if(Q.includes("."))iH4(X,Q,Y),delete X[Q]});return X}var fQ8=async($,Z=Object.create(null))=>{let{all:X=!1,dot:Q=!1}=Z,G=($ instanceof GY0?$.raw.headers:$.headers).get("Content-Type");if(G?.startsWith("multipart/form-data")||G?.startsWith("application/x-www-form-urlencoded"))return lH4($,{all:X,dot:Q});return{}},mH4=($,Z,X)=>{if($[Z]!==void 0)if(Array.isArray($[Z]))$[Z].push(X);else $[Z]=[$[Z],X];else if(!Z.endsWith("[]"))$[Z]=X;else $[Z]=[X]},iH4=($,Z,X)=>{if(/(?:^|\.)__proto__\./.test(Z))return;let Q=$,Y=Z.split(".");Y.forEach((G,J)=>{if(J===Y.length-1)Q[G]=X;else{if(!Q[G]||typeof Q[G]!=="object"||Array.isArray(Q[G])||Q[G]instanceof File)Q[G]=Object.create(null);Q=Q[G]}})};var bQ8=O(()=>{pa0()});var oa0=($)=>{let Z=$.split("/");if(Z[0]==="")Z.shift();return Z},yQ8=($)=>{let{groups:Z,path:X}=nH4($),Q=oa0(X);return pH4(Q,Z)},nH4=($)=>{let Z=[];return $=$.replace(/\{[^}]+\}/g,(X,Q)=>{let Y=`@${Q}`;return Z.push([Y,X]),Y}),{groups:Z,path:$}},pH4=($,Z)=>{for(let X=Z.length-1;X>=0;X--){let[Q]=Z[X];for(let Y=$.length-1;Y>=0;Y--)if($[Y].includes(Q)){$[Y]=$[Y].replace(Q,Z[X][1]);break}}return $},JY0,gQ8=($,Z)=>{if($==="*")return"*";let X=$.match(/^\:([^\{\}]+)(?:\{(.+)\})?$/);if(X){let Q=`${$}#${Z}`;if(!JY0[Q])if(X[2])JY0[Q]=Z&&Z[0]!==":"&&Z[0]!=="*"?[Q,X[1],new RegExp(`^${X[2]}(?=/${Z})`)]:[$,X[1],new RegExp(`^${X[2]}$`)];else JY0[Q]=[$,X[1],!0];return JY0[Q]}return null},Sg=($,Z)=>{try{return Z($)}catch{return $.replace(/(?:%[0-9A-Fa-f]{2})+/g,(X)=>{try{return Z(X)}catch{return X}})}},hQ8=($)=>Sg($,decodeURI),ra0=($)=>{let Z=$.url,X=Z.indexOf("/",Z.indexOf(":")+4),Q=X;for(;Q<Z.length;Q++){let Y=Z.charCodeAt(Q);if(Y===37){let G=Z.indexOf("?",Q),J=Z.indexOf("#",Q),K=G===-1?J===-1?void 0:J:J===-1?G:Math.min(G,J),W=Z.slice(X,K);return hQ8(W.includes("%25")?W.replace(/%25/g,"%2525"):W)}else if(Y===63||Y===35)break}return Z.slice(X,Q)},uQ8=($)=>{let Z=ra0($);return Z.length>1&&Z.at(-1)==="/"?Z.slice(0,-1):Z},Fz=($,Z,...X)=>{if(X.length)Z=Fz(Z,...X);return`${$?.[0]==="/"?"":"/"}${$}${Z==="/"?"":`${$?.at(-1)==="/"?"":"/"}${Z?.[0]==="/"?Z.slice(1):Z}`}`},KY0=($)=>{if($.charCodeAt($.length-1)!==63||!$.includes(":"))return null;let Z=$.split("/"),X=[],Q="";return Z.forEach((Y)=>{if(Y!==""&&!/\:/.test(Y))Q+="/"+Y;else if(/\:/.test(Y))if(/\?/.test(Y)){if(X.length===0&&Q==="")X.push("/");else X.push(Q);let G=Y.replace("?","");Q+="/"+G,X.push(Q)}else Q+="/"+Y}),X.filter((Y,G,J)=>J.indexOf(Y)===G)},ta0=($)=>{if(!/[%+]/.test($))return $;if($.indexOf("+")!==-1)$=$.replace(/\+/g," ");return $.indexOf("%")!==-1?Sg($,$t):$},cQ8=($,Z,X)=>{let Q;if(!X&&Z&&!/[%+]/.test(Z)){let J=$.indexOf("?",8);if(J===-1)return;if(!$.startsWith(Z,J+1))J=$.indexOf(`&${Z}`,J+1);while(J!==-1){let K=$.charCodeAt(J+Z.length+1);if(K===61){let W=J+Z.length+2,H=$.indexOf("&",W);return ta0($.slice(W,H===-1?void 0:H))}else if(K==38||isNaN(K))return"";J=$.indexOf(`&${Z}`,J+1)}if(Q=/[%+]/.test($),!Q)return}let Y={};Q??=/[%+]/.test($);let G=$.indexOf("?",8);while(G!==-1){let J=$.indexOf("&",G+1),K=$.indexOf("=",G);if(K>J&&J!==-1)K=-1;let W=$.slice(G+1,K===-1?J===-1?void 0:J:K);if(Q)W=ta0(W);if(G=J,W==="")continue;let H;if(K===-1)H="";else if(H=$.slice(K+1,J===-1?void 0:J),Q)H=ta0(H);if(X){if(!(Y[W]&&Array.isArray(Y[W])))Y[W]=[];Y[W].push(H)}else Y[W]??=H}return Z?Y[Z]:Y},lQ8,dQ8=($,Z)=>{return cQ8($,Z,!0)},$t;var xB=O(()=>{JY0={},lQ8=cQ8,$t=decodeURIComponent});var mQ8=($)=>Sg($,$t),GY0;var pa0=O(()=>{sJ();xQ8();bQ8();xB();GY0=class{raw;#$;#Z;routeIndex=0;path;bodyCache={};constructor($,Z="/",X=[[]]){this.raw=$,this.path=Z,this.#Z=X,this.#$={}}param($){return $?this.#X($):this.#G()}#X($){let Z=this.#Z[0][this.routeIndex][1][$],X=this.#Y(Z);return X&&/\%/.test(X)?mQ8(X):X}#G(){let $={},Z=Object.keys(this.#Z[0][this.routeIndex][1]);for(let X of Z){let Q=this.#Y(this.#Z[0][this.routeIndex][1][X]);if(Q!==void 0)$[X]=/\%/.test(Q)?mQ8(Q):Q}return $}#Y($){return this.#Z[1]?this.#Z[1][$]:$}query($){return lQ8(this.url,$)}queries($){return dQ8(this.url,$)}header($){if($)return this.raw.headers.get($)??void 0;let Z={};return this.raw.headers.forEach((X,Q)=>{Z[Q]=X}),Z}async parseBody($){return fQ8(this,$)}#Q=($)=>{let{bodyCache:Z,raw:X}=this,Q=Z[$];if(Q)return Q;let Y=Object.keys(Z)[0];if(Y)return Z[Y].then((G)=>{if(Y==="json")G=JSON.stringify(G);return new Response(G)[$]()});return Z[$]=X[$]()};json(){return this.#Q("text").then(($)=>JSON.parse($))}text(){return this.#Q("text")}arrayBuffer(){return this.#Q("arrayBuffer")}blob(){return this.#Q("blob")}formData(){return this.#Q("formData")}addValidatedData($,Z){this.#$[$]=Z}valid($){return this.#$[$]}get url(){return this.raw.url}get method(){return this.raw.method}get[vQ8](){return this.#Z}get matchedRoutes(){return this.#Z[0].map(([[,$]])=>$)}get routePath(){return this.#Z[0].map(([[,$]])=>$)[this.routeIndex].path}}});var WY0,iQ8=($,Z)=>{let X=new String($);return X.isEscaped=!0,X.callbacks=Z,X},Zt=async($,Z,X,Q,Y)=>{if(typeof $==="object"&&!($ instanceof String)){if(!($ instanceof Promise))$=$.toString();if($ instanceof Promise)$=await $}let G=$.callbacks;if(!G?.length)return Promise.resolve($);if(Y)Y[0]+=$;else Y=[$];let J=Promise.all(G.map((K)=>K({phase:Z,buffer:Y,context:Q}))).then((K)=>Promise.all(K.filter(Boolean).map((W)=>Zt(W,Z,!1,Q,Y))).then(()=>Y[0]));if(X)return iQ8(await J,G);else return J};var HY0=O(()=>{WY0={Stringify:1,BeforeStream:2,Stream:3}});var nQ8="text/plain; charset=UTF-8",aa0=($,Z)=>{return{"Content-Type":$,...Z}},Xt=($,Z)=>new Response($,Z),pQ8=class{#$;#Z;env={};#X;finalized=!1;error;#G;#Y;#Q;#J;#K;#W;#U;#N;#F;constructor($,Z){if(this.#$=$,Z)this.#Y=Z.executionCtx,this.env=Z.env,this.#W=Z.notFoundHandler,this.#F=Z.path,this.#N=Z.matchResult}get req(){return this.#Z??=new GY0(this.#$,this.#F,this.#N),this.#Z}get event(){if(this.#Y&&"respondWith"in this.#Y)return this.#Y;else throw Error("This context has no FetchEvent")}get executionCtx(){if(this.#Y)return this.#Y;else throw Error("This context has no ExecutionContext")}get res(){return this.#Q||=Xt(null,{headers:this.#U??=new Headers})}set res($){if(this.#Q&&$){$=Xt($.body,$);for(let[Z,X]of this.#Q.headers.entries()){if(Z==="content-type")continue;if(Z==="set-cookie"){let Q=this.#Q.headers.getSetCookie();$.headers.delete("set-cookie");for(let Y of Q)$.headers.append("set-cookie",Y)}else $.headers.set(Z,X)}}this.#Q=$,this.finalized=!0}render=(...$)=>{return this.#K??=(Z)=>this.html(Z),this.#K(...$)};setLayout=($)=>this.#J=$;getLayout=()=>this.#J;setRenderer=($)=>{this.#K=$};header=($,Z,X)=>{if(this.finalized)this.#Q=Xt(this.#Q.body,this.#Q);let Q=this.#Q?this.#Q.headers:this.#U??=new Headers;if(Z===void 0)Q.delete($);else if(X?.append)Q.append($,Z);else Q.set($,Z)};status=($)=>{this.#G=$};set=($,Z)=>{this.#X??=new Map,this.#X.set($,Z)};get=($)=>{return this.#X?this.#X.get($):void 0};get var(){if(!this.#X)return{};return Object.fromEntries(this.#X)}#H($,Z,X){let Q=this.#Q?new Headers(this.#Q.headers):this.#U??new Headers;if(typeof Z==="object"&&"headers"in Z){let G=Z.headers instanceof Headers?Z.headers:new Headers(Z.headers);for(let[J,K]of G)if(J.toLowerCase()==="set-cookie")Q.append(J,K);else Q.set(J,K)}if(X)for(let[G,J]of Object.entries(X))if(typeof J==="string")Q.set(G,J);else{Q.delete(G);for(let K of J)Q.append(G,K)}let Y=typeof Z==="number"?Z:Z?.status??this.#G;return Xt($,{status:Y,headers:Q})}newResponse=(...$)=>this.#H(...$);body=($,Z,X)=>this.#H($,Z,X);text=($,Z,X)=>{return!this.#U&&!this.#G&&!Z&&!X&&!this.finalized?new Response($):this.#H($,Z,aa0(nQ8,X))};json=($,Z,X)=>{return this.#H(JSON.stringify($),Z,aa0("application/json",X))};html=($,Z,X)=>{let Q=(Y)=>this.#H(Y,Z,aa0("text/html; charset=UTF-8",X));return typeof $==="object"?Zt($,WY0.Stringify,!1,{}).then(Q):Q($)};redirect=($,Z)=>{let X=String($);return this.header("Location",!/[^\x00-\xFF]/.test(X)?X:encodeURI(X)),this.newResponse(null,Z??302)};notFound=()=>{return this.#W??=()=>Xt(),this.#W(this)}};var UY0=O(()=>{pa0();HY0()});var b$="ALL",tQ8="all",oQ8,NY0="Can not add a route since the matcher is already built.",FY0;var fB=O(()=>{oQ8=["get","post","put","delete","options","patch"],FY0=class extends Error{}});var sa0="__COMPOSED_HANDLER";var ea0=()=>{};var tH4=($)=>{return $.text("404 Not Found",404)},rQ8=($,Z)=>{if("getResponse"in $){let X=$.getResponse();return Z.newResponse(X.body,X)}return console.error($),Z.text("Internal Server Error",500)},aQ8=class ${get;post;put;delete;options;patch;all;on;use;router;getPath;_basePath="/";#$="/";routes=[];constructor(Z={}){[...oQ8,tQ8].forEach((G)=>{this[G]=(J,...K)=>{if(typeof J==="string")this.#$=J;else this.#G(G,this.#$,J);return K.forEach((W)=>{this.#G(G,this.#$,W)}),this}}),this.on=(G,J,...K)=>{for(let W of[J].flat()){this.#$=W;for(let H of[G].flat())K.map((U)=>{this.#G(H.toUpperCase(),this.#$,U)})}return this},this.use=(G,...J)=>{if(typeof G==="string")this.#$=G;else this.#$="*",J.unshift(G);return J.forEach((K)=>{this.#G(b$,this.#$,K)}),this};let{strict:Q,...Y}=Z;Object.assign(this,Y),this.getPath=Q??!0?Z.getPath??ra0:uQ8}#Z(){let Z=new $({router:this.router,getPath:this.getPath});return Z.errorHandler=this.errorHandler,Z.#X=this.#X,Z.routes=this.routes,Z}#X=tH4;errorHandler=rQ8;route(Z,X){let Q=this.basePath(Z);return X.routes.map((Y)=>{let G;if(X.errorHandler===rQ8)G=Y.handler;else G=async(J,K)=>(await na0([],X.errorHandler)(J,()=>Y.handler(J,K))).res,G[sa0]=Y.handler;Q.#G(Y.method,Y.path,G)}),this}basePath(Z){let X=this.#Z();return X._basePath=Fz(this._basePath,Z),X}onError=(Z)=>{return this.errorHandler=Z,this};notFound=(Z)=>{return this.#X=Z,this};mount(Z,X,Q){let Y,G;if(Q)if(typeof Q==="function")G=Q;else if(G=Q.optionHandler,Q.replaceRequest===!1)Y=(W)=>W;else Y=Q.replaceRequest;let J=G?(W)=>{let H=G(W);return Array.isArray(H)?H:[H]}:(W)=>{let H=void 0;try{H=W.executionCtx}catch{}return[W.env,H]};Y||=(()=>{let W=Fz(this._basePath,Z),H=W==="/"?0:W.length;return(U)=>{let N=new URL(U.url);return N.pathname=N.pathname.slice(H)||"/",new Request(N,U)}})();let K=async(W,H)=>{let U=await X(Y(W.req.raw),...J(W));if(U)return U;await H()};return this.#G(b$,Fz(Z,"*"),K),this}#G(Z,X,Q){Z=Z.toUpperCase(),X=Fz(this._basePath,X);let Y={basePath:this._basePath,path:X,method:Z,handler:Q};this.router.add(Z,X,[Q,Y]),this.routes.push(Y)}#Y(Z,X){if(Z instanceof Error)return this.errorHandler(Z,X);throw Z}#Q(Z,X,Q,Y){if(Y==="HEAD")return(async()=>new Response(null,await this.#Q(Z,X,Q,"GET")))();let G=this.getPath(Z,{env:Q}),J=this.router.match(Y,G),K=new pQ8(Z,{path:G,matchResult:J,env:Q,executionCtx:X,notFoundHandler:this.#X});if(J[0].length===1){let H;try{H=J[0][0][0][0](K,async()=>{K.res=await this.#X(K)})}catch(U){return this.#Y(U,K)}return H instanceof Promise?H.then((U)=>U||(K.finalized?K.res:this.#X(K))).catch((U)=>this.#Y(U,K)):H??this.#X(K)}let W=na0(J[0],this.errorHandler,this.#X);return(async()=>{try{let H=await W(K);if(!H.finalized)throw Error("Context is not finalized. Did you forget to return a Response object or `await next()`?");return H.res}catch(H){return this.#Y(H,K)}})()}fetch=(Z,...X)=>{return this.#Q(Z,X[1],X[0],Z.method)};request=(Z,X,Q,Y)=>{if(Z instanceof Request)return this.fetch(X?new Request(Z,X):Z,Q,Y);return Z=Z.toString(),this.fetch(new Request(/^https?:\/\//.test(Z)?Z:`http://localhost${Fz("/",Z)}`,X),Q,Y)};fire=()=>{addEventListener("fetch",(Z)=>{Z.respondWith(this.#Q(Z.request,Z,void 0,Z.request.method))})}};var sQ8=O(()=>{_Q8();UY0();fB();ea0();xB()});function wY0($,Z){let X=this.buildAllMatchers(),Q=(Y,G)=>{let J=X[Y]||X[b$],K=J[2][G];if(K)return K;let W=G.match(J[0]);if(!W)return[[],Qt];let H=W.indexOf("",1);return[J[1][H],W]};return this.match=Q,Q($,Z)}var Qt;var $s0=O(()=>{fB();Qt=[]});function rH4($,Z){if($.length===1)return Z.length===1?$<Z?-1:1:-1;if(Z.length===1)return 1;if($===Yt||$===Gt)return 1;else if(Z===Yt||Z===Gt)return-1;if($===BY0)return 1;else if(Z===BY0)return-1;return $.length===Z.length?$<Z?-1:1:Z.length-$.length}var BY0="[^/]+",Yt=".*",Gt="(?:|/.*)",wz,oH4,eQ8=class ${#$;#Z;#X=Object.create(null);insert(Z,X,Q,Y,G){if(Z.length===0){if(this.#$!==void 0)throw wz;if(G)return;this.#$=X;return}let[J,...K]=Z,W=J==="*"?K.length===0?["","",Yt]:["","",BY0]:J==="/*"?["","",Gt]:J.match(/^\:([^\{\}]+)(?:\{(.+)\})?$/),H;if(W){let U=W[1],N=W[2]||BY0;if(U&&W[2]){if(N===".*")throw wz;if(N=N.replace(/^\((?!\?:)(?=[^)]+\)$)/,"(?:"),/\((?!\?:)/.test(N))throw wz}if(H=this.#X[N],!H){if(Object.keys(this.#X).some((F)=>F!==Yt&&F!==Gt))throw wz;if(G)return;if(H=this.#X[N]=new $,U!=="")H.#Z=Y.varIndex++}if(!G&&U!=="")Q.push([U,H.#Z])}else if(H=this.#X[J],!H){if(Object.keys(this.#X).some((U)=>U.length>1&&U!==Yt&&U!==Gt))throw wz;if(G)return;H=this.#X[J]=new $}H.insert(K,X,Q,Y,G)}buildRegExpStr(){let X=Object.keys(this.#X).sort(rH4).map((Q)=>{let Y=this.#X[Q];return(typeof Y.#Z==="number"?`(${Q})@${Y.#Z}`:oH4.has(Q)?`\\${Q}`:Q)+Y.buildRegExpStr()});if(typeof this.#$==="number")X.unshift(`#${this.#$}`);if(X.length===0)return"";if(X.length===1)return X[0];return"(?:"+X.join("|")+")"}};var Zs0=O(()=>{wz=Symbol(),oH4=new Set(".\\+*[^]$()")});var $Y8=class{#$={varIndex:0};#Z=new eQ8;insert($,Z,X){let Q=[],Y=[];for(let J=0;;){let K=!1;if($=$.replace(/\{[^}]+\}/g,(W)=>{let H=`@\\${J}`;return Y[J]=[H,W],J++,K=!0,H}),!K)break}let G=$.match(/(?::[^\/]+)|(?:\/\*$)|./g)||[];for(let J=Y.length-1;J>=0;J--){let[K]=Y[J];for(let W=G.length-1;W>=0;W--)if(G[W].indexOf(K)!==-1){G[W]=G[W].replace(K,Y[J][1]);break}}return this.#Z.insert(G,Z,Q,this.#$,X),Q}buildRegExp(){let $=this.#Z.buildRegExpStr();if($==="")return[/^$/,[],[]];let Z=0,X=[],Q=[];return $=$.replace(/#(\d+)|@(\d+)|\.\*\$/g,(Y,G,J)=>{if(G!==void 0)return X[++Z]=Number(G),"$()";if(J!==void 0)return Q[Number(J)]=++Z,"";return""}),[new RegExp(`^${$}`),X,Q]}};var ZY8=O(()=>{Zs0()});function QY8($){return XY8[$]??=new RegExp($==="*"?"":`^${$.replace(/\/\*$|([.\\+*[^\]$()])/g,(Z,X)=>X?`\\${X}`:"(?:|/.*)")}$`)}function sH4(){XY8=Object.create(null)}function eH4($){let Z=new $Y8,X=[];if($.length===0)return aH4;let Q=$.map((H)=>[!/\*|\/:/.test(H[0]),...H]).sort(([H,U],[N,F])=>H?1:N?-1:U.length-F.length),Y=Object.create(null);for(let H=0,U=-1,N=Q.length;H<N;H++){let[F,w,B]=Q[H];if(F)Y[w]=[B.map(([D])=>[D,Object.create(null)]),Qt];else U++;let L;try{L=Z.insert(w,U,F)}catch(D){throw D===wz?new FY0(w):D}if(F)continue;X[U]=B.map(([D,E])=>{let z=Object.create(null);E-=1;for(;E>=0;E--){let[j,A]=L[E];z[j]=A}return[D,z]})}let[G,J,K]=Z.buildRegExp();for(let H=0,U=X.length;H<U;H++)for(let N=0,F=X[H].length;N<F;N++){let w=X[H][N]?.[1];if(!w)continue;let B=Object.keys(w);for(let L=0,D=B.length;L<D;L++)w[B[L]]=K[w[B[L]]]}let W=[];for(let H in J)W[H]=X[J[H]];return[G,W,Y]}function Cg($,Z){if(!$)return;for(let X of Object.keys($).sort((Q,Y)=>Y.length-Q.length))if(QY8(X).test(Z))return[...$[X]];return}var aH4,XY8,OY0=class{name="RegExpRouter";#$;#Z;constructor(){this.#$={[b$]:Object.create(null)},this.#Z={[b$]:Object.create(null)}}add($,Z,X){let Q=this.#$,Y=this.#Z;if(!Q||!Y)throw Error(NY0);if(!Q[$])[Q,Y].forEach((K)=>{K[$]=Object.create(null),Object.keys(K[b$]).forEach((W)=>{K[$][W]=[...K[b$][W]]})});if(Z==="/*")Z="*";let G=(Z.match(/\/:/g)||[]).length;if(/\*$/.test(Z)){let K=QY8(Z);if($===b$)Object.keys(Q).forEach((W)=>{Q[W][Z]||=Cg(Q[W],Z)||Cg(Q[b$],Z)||[]});else Q[$][Z]||=Cg(Q[$],Z)||Cg(Q[b$],Z)||[];Object.keys(Q).forEach((W)=>{if($===b$||$===W)Object.keys(Q[W]).forEach((H)=>{K.test(H)&&Q[W][H].push([X,G])})}),Object.keys(Y).forEach((W)=>{if($===b$||$===W)Object.keys(Y[W]).forEach((H)=>K.test(H)&&Y[W][H].push([X,G]))});return}let J=KY0(Z)||[Z];for(let K=0,W=J.length;K<W;K++){let H=J[K];Object.keys(Y).forEach((U)=>{if($===b$||$===U)Y[U][H]||=[...Cg(Q[U],H)||Cg(Q[b$],H)||[]],Y[U][H].push([X,G-W+K+1])})}}match=wY0;buildAllMatchers(){let $=Object.create(null);return Object.keys(this.#Z).concat(Object.keys(this.#$)).forEach((Z)=>{$[Z]||=this.#X(Z)}),this.#$=this.#Z=void 0,sH4(),$}#X($){let Z=[],X=$===b$;if([this.#$,this.#Z].forEach((Q)=>{let Y=Q[$]?Object.keys(Q[$]).map((G)=>[G,Q[$][G]]):[];if(Y.length!==0)X||=!0,Z.push(...Y);else if($!==b$)Z.push(...Object.keys(Q[b$]).map((G)=>[G,Q[b$][G]]))}),!X)return null;else return eH4(Z)}};var Xs0=O(()=>{fB();xB();$s0();Zs0();ZY8();aH4=[/^$/,[],Object.create(null)],XY8=Object.create(null)});var $U4=class{name="PreparedRegExpRouter";#$;#Z;constructor($,Z){this.#$=$,this.#Z=Z}#X($,Z){let X=this.#$[$];X[1].forEach((Q)=>Q&&Q.push(Z)),Object.values(X[2]).forEach((Q)=>Q[0].push(Z))}#G($,Z,X,Q,Y){let G=this.#$[$];if(!Y)G[2][Z][0].push([X,{}]);else Q.forEach((J)=>{if(typeof J==="number")G[1][J].push([X,Y]);else G[2][J||Z][0].push([X,Y])})}add($,Z,X){if(!this.#$[$]){let Y=this.#$[b$],G={};for(let J in Y[2])G[J]=[Y[2][J][0].slice(),Qt];this.#$[$]=[Y[0],Y[1].map((J)=>Array.isArray(J)?J.slice():0),G]}if(Z==="/*"||Z==="*"){let Y=[X,{}];if($===b$)for(let G in this.#$)this.#X(G,Y);else this.#X($,Y);return}let Q=this.#Z[Z];if(!Q)throw Error(`Path ${Z} is not registered`);for(let[Y,G]of Q)if($===b$)for(let J in this.#$)this.#G(J,Z,X,Y,G);else this.#G($,Z,X,Y,G)}buildAllMatchers(){return this.#$}match=wY0};var YY8=O(()=>{fB();$s0();Xs0()});var GY8=O(()=>{Xs0();YY8()});var Qs0=class{name="SmartRouter";#$=[];#Z=[];constructor($){this.#$=$.routers}add($,Z,X){if(!this.#Z)throw Error(NY0);this.#Z.push([$,Z,X])}match($,Z){if(!this.#Z)throw Error("Fatal error");let X=this.#$,Q=this.#Z,Y=X.length,G=0,J;for(;G<Y;G++){let K=X[G];try{for(let W=0,H=Q.length;W<H;W++)K.add(...Q[W]);J=K.match($,Z)}catch(W){if(W instanceof FY0)continue;throw W}this.match=K.match.bind(K),this.#$=[K],this.#Z=void 0;break}if(G===Y)throw Error("Fatal error");return this.name=`SmartRouter + ${this.activeRouter.name}`,J}get activeRouter(){if(this.#Z||this.#$.length!==1)throw Error("No active router has been determined yet.");return this.#$[0]}};var JY8=O(()=>{fB()});var KY8=O(()=>{JY8()});var Jt,ZU4=($)=>{for(let Z in $)return!0;return!1},WY8=class ${#$;#Z;#X;#G=0;#Y=Jt;constructor(Z,X,Q){if(this.#Z=Q||Object.create(null),this.#$=[],Z&&X){let Y=Object.create(null);Y[Z]={handler:X,possibleKeys:[],score:0},this.#$=[Y]}this.#X=[]}insert(Z,X,Q){this.#G=++this.#G;let Y=this,G=yQ8(X),J=[];for(let K=0,W=G.length;K<W;K++){let H=G[K],U=G[K+1],N=gQ8(H,U),F=Array.isArray(N)?N[0]:H;if(F in Y.#Z){if(Y=Y.#Z[F],N)J.push(N[1]);continue}if(Y.#Z[F]=new $,N)Y.#X.push(N),J.push(N[1]);Y=Y.#Z[F]}return Y.#$.push({[Z]:{handler:Q,possibleKeys:J.filter((K,W,H)=>H.indexOf(K)===W),score:this.#G}}),Y}#Q(Z,X,Q,Y,G){for(let J=0,K=X.#$.length;J<K;J++){let W=X.#$[J],H=W[Q]||W[b$],U={};if(H!==void 0){if(H.params=Object.create(null),Z.push(H),Y!==Jt||G&&G!==Jt)for(let N=0,F=H.possibleKeys.length;N<F;N++){let w=H.possibleKeys[N],B=U[H.score];H.params[w]=G?.[w]&&!B?G[w]:Y[w]??G?.[w],U[H.score]=!0}}}}search(Z,X){let Q=[];this.#Y=Jt;let G=[this],J=oa0(X),K=[],W=J.length,H=null;for(let U=0;U<W;U++){let N=J[U],F=U===W-1,w=[];for(let L=0,D=G.length;L<D;L++){let E=G[L],z=E.#Z[N];if(z)if(z.#Y=E.#Y,F){if(z.#Z["*"])this.#Q(Q,z.#Z["*"],Z,E.#Y);this.#Q(Q,z,Z,E.#Y)}else w.push(z);for(let j=0,A=E.#X.length;j<A;j++){let P=E.#X[j],I=E.#Y===Jt?{}:{...E.#Y};if(P==="*"){let f=E.#Z["*"];if(f)this.#Q(Q,f,Z,E.#Y),f.#Y=I,w.push(f);continue}let[V,M,C]=P;if(!N&&!(C instanceof RegExp))continue;let m=E.#Z[V];if(C instanceof RegExp){if(H===null){H=Array(W);let o=X[0]==="/"?1:0;for(let b=0;b<W;b++)H[b]=o,o+=J[b].length+1}let f=X.substring(H[U]),y=C.exec(f);if(y){if(I[M]=y[0],this.#Q(Q,m,Z,E.#Y,I),ZU4(m.#Z)){m.#Y=I;let o=y[0].match(/\//)?.length??0;(K[o]||=[]).push(m)}continue}}if(C===!0||C.test(N))if(I[M]=N,F){if(this.#Q(Q,m,Z,I,E.#Y),m.#Z["*"])this.#Q(Q,m.#Z["*"],Z,I,E.#Y)}else m.#Y=I,w.push(m)}}let B=K.shift();G=B?w.concat(B):w}if(Q.length>1)Q.sort((U,N)=>{return U.score-N.score});return[Q.map(({handler:U,params:N})=>[U,N])]}};var HY8=O(()=>{fB();xB();Jt=Object.create(null)});var Ys0=class{name="TrieRouter";#$;constructor(){this.#$=new WY8}add($,Z,X){let Q=KY0(Z);if(Q){for(let Y=0,G=Q.length;Y<G;Y++)this.#$.insert($,Q[Y],X);return}this.#$.insert($,Z,X)}match($,Z){return this.#$.search($,Z)}};var UY8=O(()=>{xB();HY8()});var NY8=O(()=>{UY8()});var I1;var Gs0=O(()=>{sQ8();GY8();KY8();NY8();I1=class extends aQ8{constructor($={}){super($);this.router=$.router??new Qs0({routers:[new OY0,new Ys0]})}}});var d6=O(()=>{Gs0()});import{z as W$}from"zod";function FY8(){return QU4.parse(process.env)}var Js0=($)=>W$.enum(["true","false","1","0"]).optional().transform((Z)=>Z===void 0?$:Z==="true"||Z==="1"),XU4=($)=>W$.string().optional().transform((Z)=>Z?Z.split(",").map((X)=>X.trim()):$),QU4;var wY8=O(()=>{QU4=W$.object({AUTH_EMAIL_PASSWORD_ENABLED:Js0(!0),AUTH_GOOGLE_CLIENT_ID:W$.string().optional(),AUTH_GOOGLE_CLIENT_SECRET:W$.string().optional(),AUTH_GITHUB_CLIENT_ID:W$.string().optional(),AUTH_GITHUB_CLIENT_SECRET:W$.string().optional(),AUTH_RESEND_API_KEY:W$.string().optional(),AUTH_RESEND_FROM_EMAIL:W$.string().optional(),AUTH_SENDGRID_API_KEY:W$.string().optional(),AUTH_SENDGRID_FROM_EMAIL:W$.string().optional(),AUTH_INVITE_EMAIL_PROVIDER:W$.enum(["resend","sendgrid"]).optional(),AUTH_RESET_PASSWORD_EMAIL_PROVIDER:W$.enum(["resend","sendgrid"]).optional(),AUTH_MAGIC_LINK_ENABLED:Js0(!1),AUTH_MAGIC_LINK_EMAIL_PROVIDER:W$.enum(["resend","sendgrid"]).optional(),AUTH_EMAIL_OTP_ENABLED:Js0(!1),AUTH_EMAIL_OTP_EMAIL_PROVIDER:W$.enum(["resend","sendgrid"]).optional(),AUTH_EMAIL_OTP_LENGTH:W$.coerce.number().optional(),AUTH_EMAIL_OTP_EXPIRES_IN:W$.coerce.number().optional(),AUTH_SSO_DOMAIN:W$.string().optional(),AUTH_SSO_MS_TENANT_ID:W$.string().optional(),AUTH_SSO_MS_CLIENT_ID:W$.string().optional(),AUTH_SSO_MS_CLIENT_SECRET:W$.string().optional(),AUTH_SSO_SCOPES:XU4(["openid","email","profile"]),AUTH_SSO_GOOGLE_CLIENT_ID:W$.string().optional(),AUTH_SSO_GOOGLE_CLIENT_SECRET:W$.string().optional()}).superRefine(($,Z)=>{let X=new Set;if($.AUTH_RESEND_API_KEY)X.add("resend");if($.AUTH_SENDGRID_API_KEY)X.add("sendgrid");let Q=["AUTH_INVITE_EMAIL_PROVIDER","AUTH_RESET_PASSWORD_EMAIL_PROVIDER","AUTH_MAGIC_LINK_EMAIL_PROVIDER","AUTH_EMAIL_OTP_EMAIL_PROVIDER"];for(let Y of Q){let G=$[Y];if(G&&!X.has(G)){let J=G==="resend"?"AUTH_RESEND_API_KEY":"AUTH_SENDGRID_API_KEY";Z.addIssue({code:W$.ZodIssueCode.custom,path:[Y],message:`${Y}="${G}" but ${J} is not set`})}}if($.AUTH_MAGIC_LINK_ENABLED&&X.size===0)Z.addIssue({code:W$.ZodIssueCode.custom,path:["AUTH_MAGIC_LINK_ENABLED"],message:"AUTH_MAGIC_LINK_ENABLED=true requires AUTH_RESEND_API_KEY or AUTH_SENDGRID_API_KEY to be set"});if($.AUTH_EMAIL_OTP_ENABLED&&X.size===0)Z.addIssue({code:W$.ZodIssueCode.custom,path:["AUTH_EMAIL_OTP_ENABLED"],message:"AUTH_EMAIL_OTP_ENABLED=true requires AUTH_RESEND_API_KEY or AUTH_SENDGRID_API_KEY to be set"});if($.AUTH_SSO_MS_CLIENT_ID&&$.AUTH_SSO_DOMAIN){if(!$.AUTH_SSO_MS_CLIENT_SECRET)Z.addIssue({code:W$.ZodIssueCode.custom,path:["AUTH_SSO_MS_CLIENT_SECRET"],message:"AUTH_SSO_MS_CLIENT_ID and AUTH_SSO_DOMAIN are set but AUTH_SSO_MS_CLIENT_SECRET is not"});if(!$.AUTH_SSO_MS_TENANT_ID)Z.addIssue({code:W$.ZodIssueCode.custom,path:["AUTH_SSO_MS_TENANT_ID"],message:"AUTH_SSO_MS_CLIENT_ID and AUTH_SSO_DOMAIN are set but AUTH_SSO_MS_TENANT_ID is not"})}if($.AUTH_SSO_GOOGLE_CLIENT_ID&&$.AUTH_SSO_DOMAIN&&!$.AUTH_SSO_GOOGLE_CLIENT_SECRET)Z.addIssue({code:W$.ZodIssueCode.custom,path:["AUTH_SSO_GOOGLE_CLIENT_SECRET"],message:"AUTH_SSO_GOOGLE_CLIENT_ID and AUTH_SSO_DOMAIN are set but AUTH_SSO_GOOGLE_CLIENT_SECRET is not"});if($.AUTH_EMAIL_OTP_LENGTH!==void 0&&(!Number.isInteger($.AUTH_EMAIL_OTP_LENGTH)||$.AUTH_EMAIL_OTP_LENGTH<1))Z.addIssue({code:W$.ZodIssueCode.custom,path:["AUTH_EMAIL_OTP_LENGTH"],message:"AUTH_EMAIL_OTP_LENGTH must be a positive integer"});if($.AUTH_EMAIL_OTP_EXPIRES_IN!==void 0&&(!Number.isInteger($.AUTH_EMAIL_OTP_EXPIRES_IN)||$.AUTH_EMAIL_OTP_EXPIRES_IN<1))Z.addIssue({code:W$.ZodIssueCode.custom,path:["AUTH_EMAIL_OTP_EXPIRES_IN"],message:"AUTH_EMAIL_OTP_EXPIRES_IN must be a positive integer"})}).transform(($)=>{let Z={};if($.AUTH_GOOGLE_CLIENT_ID)Z.google={clientId:$.AUTH_GOOGLE_CLIENT_ID,clientSecret:$.AUTH_GOOGLE_CLIENT_SECRET??""};if($.AUTH_GITHUB_CLIENT_ID)Z.github={clientId:$.AUTH_GITHUB_CLIENT_ID,clientSecret:$.AUTH_GITHUB_CLIENT_SECRET??""};let X=[];if($.AUTH_RESEND_API_KEY)X.push({id:"resend",provider:"resend",config:{apiKey:$.AUTH_RESEND_API_KEY,fromEmail:$.AUTH_RESEND_FROM_EMAIL??"noreply@example.com"}});if($.AUTH_SENDGRID_API_KEY)X.push({id:"sendgrid",provider:"sendgrid",config:{apiKey:$.AUTH_SENDGRID_API_KEY,fromEmail:$.AUTH_SENDGRID_FROM_EMAIL??"noreply@example.com"}});let Q=X[0]?.id,Y;if($.AUTH_SSO_MS_CLIENT_ID&&$.AUTH_SSO_DOMAIN)Y={providerId:"microsoft",domain:$.AUTH_SSO_DOMAIN,MS_TENANT_ID:$.AUTH_SSO_MS_TENANT_ID??"",MS_CLIENT_ID:$.AUTH_SSO_MS_CLIENT_ID,MS_CLIENT_SECRET:$.AUTH_SSO_MS_CLIENT_SECRET??"",scopes:$.AUTH_SSO_SCOPES};else if($.AUTH_SSO_GOOGLE_CLIENT_ID&&$.AUTH_SSO_DOMAIN)Y={providerId:"google",domain:$.AUTH_SSO_DOMAIN,GOOGLE_CLIENT_ID:$.AUTH_SSO_GOOGLE_CLIENT_ID,GOOGLE_CLIENT_SECRET:$.AUTH_SSO_GOOGLE_CLIENT_SECRET??"",scopes:$.AUTH_SSO_SCOPES};let G;if($.AUTH_MAGIC_LINK_ENABLED)G={enabled:!0,emailProviderId:$.AUTH_MAGIC_LINK_EMAIL_PROVIDER??Q??""};let J;if($.AUTH_EMAIL_OTP_ENABLED)J={enabled:!0,emailProviderId:$.AUTH_EMAIL_OTP_EMAIL_PROVIDER??Q??"",...$.AUTH_EMAIL_OTP_LENGTH!==void 0&&{otpLength:$.AUTH_EMAIL_OTP_LENGTH},...$.AUTH_EMAIL_OTP_EXPIRES_IN!==void 0&&{expiresIn:$.AUTH_EMAIL_OTP_EXPIRES_IN}};return{emailAndPassword:{enabled:$.AUTH_EMAIL_PASSWORD_ENABLED},socialProviders:Object.keys(Z).length>0?Z:void 0,emailProviders:X.length>0?X:void 0,inviteEmailProviderId:$.AUTH_INVITE_EMAIL_PROVIDER,resetPasswordEmailProviderId:$.AUTH_RESET_PASSWORD_EMAIL_PROVIDER,ssoConfig:Y,magicLinkConfig:G,emailOtpConfig:J}})});var LY0;var BY8=O(()=>{LY0={enabled:!0,batchSize:250,flushIntervalMs:300,maxQueueSize:1e4,redactor:"regex"}});import{existsSync as YU4,readFileSync as GU4}from"fs";function JU4(){let $=FY8(),Z=a0().configPath;if(!YU4(Z))return{auth:$,monitoring:LY0};try{let X=JSON.parse(GU4(Z,"utf-8"));if(X.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:$,monitoring:X.monitoring??LY0,theme:X.theme,logo:X.logo,autoCreateOrganizationOnSignup:X.autoCreateOrganizationOnSignup}}catch{return{auth:$,monitoring:LY0}}}function Bz(){if(!Ks0)Ks0=JU4();return Ks0}function OY8(){return Bz().theme}var Ks0=null;var Ws0=O(()=>{wY8();BY8();k8()});import{dirname as KU4,posix as WU4,sep as HU4}from"path";function DY8(){let $=UU4();return async(Z)=>{for(let X of Z)X.module=$(X.filename);return Z}}function UU4($=process.argv[1]?KU4(process.argv[1]):process.cwd(),Z=HU4==="\\"){let X=Z?LY8($):$;return(Q)=>{if(!Q)return;let Y=Z?LY8(Q):Q,{dir:G,base:J,ext:K}=WU4.parse(Y);if(K===".js"||K===".mjs"||K===".cjs")J=J.slice(0,-1*K.length);let W=decodeURIComponent(J);if(!G)G=".";let H=G.lastIndexOf("/node_modules");if(H>-1)return`${G.slice(H+14).replace(/\//g,".")}:${W}`;if(G.startsWith(X)){let U=G.slice(X.length+1).replace(/\//g,".");return U?`${U}:${W}`:W}return W}}function LY8($){return $.replace(/^[A-Z]:/,"").replace(/\\/g,"/")}var EY8=()=>{};function NU4($,Z,X){return{key:$,enabled:typeof Z=="string"?!0:Z,variant:typeof Z=="string"?Z:void 0,reason:void 0,metadata:{id:void 0,version:void 0,payload:X?JSON.stringify(X):void 0,description:void 0}}}var Hs0=($)=>{if("flags"in $){let Z=zY8($.flags),X=jY8($.flags);return{...$,featureFlags:Z,featureFlagPayloads:X}}{let Z=$.featureFlags??{},X=Object.fromEntries(Object.entries($.featureFlagPayloads||{}).map(([Y,G])=>[Y,Us0(G)])),Q=Object.fromEntries(Object.entries(Z).map(([Y,G])=>[Y,NU4(Y,G,X[Y])]));return{...$,featureFlags:Z,featureFlagPayloads:X,flags:Q}}},zY8=($)=>Object.fromEntries(Object.entries($??{}).map(([Z,X])=>[Z,Kt(X)]).filter(([,Z])=>Z!==void 0)),jY8=($)=>{let Z=$??{};return Object.fromEntries(Object.keys(Z).filter((X)=>{let Q=Z[X];return Q.enabled&&Q.metadata&&Q.metadata.payload!==void 0}).map((X)=>{let Q=Z[X].metadata?.payload;return[X,Q?Us0(Q):void 0]}))},Kt=($)=>$===void 0?void 0:$.variant??$.enabled,Us0=($)=>{if(typeof $!="string")return $;try{return JSON.parse($)}catch{return $}};var DY0=()=>{};function PY8(){return"CompressionStream"in globalThis&&"TextEncoder"in globalThis&&"Response"in globalThis&&typeof Response.prototype.blob=="function"}async function EY0($,Z=!0,X){try{let Q=new CompressionStream("gzip"),Y=Q.writable.getWriter(),G=Y.write(new TextEncoder().encode($)).then(()=>Y.close()).catch(async(W)=>{try{await Y.abort(W)}catch{}throw W}),J=new Response(Q.readable).blob(),[K]=await Promise.all([J,G]);return K}catch(Q){if(X?.rethrow)throw Q;if(Z)console.error("Failed to gzip compress data",Q);return null}}var Ns0=()=>{};var FU4,AY8=function($,Z=[]){if(!$)return!1;let X=$.toLowerCase();return FU4.concat(Z).some((Q)=>{let Y=Q.toLowerCase();return X.indexOf(Y)!==-1})};var TY8=O(()=>{FU4=["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 HX;var Oz=O(()=>{HX=function($){return $.AnonymousId="anonymous_id",$.DistinctId="distinct_id",$.Props="props",$.EnablePersonProcessing="enable_person_processing",$.PersonMode="person_mode",$.FeatureFlagDetails="feature_flag_details",$.FeatureFlags="feature_flags",$.FeatureFlagPayloads="feature_flag_payloads",$.BootstrapFeatureFlagDetails="bootstrap_feature_flag_details",$.BootstrapFeatureFlags="bootstrap_feature_flags",$.BootstrapFeatureFlagPayloads="bootstrap_feature_flag_payloads",$.OverrideFeatureFlags="override_feature_flags",$.Queue="queue",$.LogsQueue="logs_queue",$.OptedOut="opted_out",$.SessionId="session_id",$.SessionStartTimestamp="session_start_timestamp",$.SessionLastTimestamp="session_timestamp",$.PersonProperties="person_properties",$.GroupProperties="group_properties",$.InstalledAppBuild="installed_app_build",$.InstalledAppVersion="installed_app_version",$.SessionReplay="session_replay",$.SurveyLastSeenDate="survey_last_seen_date",$.SurveysSeen="surveys_seen",$.Surveys="surveys",$.RemoteConfig="remote_config",$.FlagsEndpointWasHit="flags_endpoint_was_hit",$.DeviceId="device_id",$}({})});var zY0=()=>{};function PY0($){return $===null||typeof $!="object"}function Lz($,Z){return Object.prototype.toString.call($)===`[object ${Z}]`}function qY8($){return Lz($,"ErrorEvent")}function vg($){return typeof Event<"u"&&OU4($,Event)}function MY8($){return Lz($,"Object")}function OU4($,Z){try{return $ instanceof Z}catch{return!1}}var BU4,RY8,eE5,Fs0,jY0,Wt=($)=>$===Object($)&&!jY0($),_g=($)=>$===void 0,bB=($)=>Fs0.call($)=="[object String]",IY8=($)=>bB($)&&$.trim().length===0,Ht=($)=>Fs0.call($)=="[object Number]"&&$===$,ws0=($)=>$ instanceof Error;var Ut=O(()=>{Oz();zY0();BU4=Array.isArray,RY8=Object.prototype,eE5=RY8.hasOwnProperty,Fs0=RY8.toString,jY0=BU4||function($){return Fs0.call($)==="[object Array]"}});function Nt($,Z,X,Q,Y){if(Z>X)Q.warn("min cannot be greater than max."),Z=X;if(Ht($))if($>X)return Q.warn(" cannot be greater than max: "+X+". Using max value instead."),X;else{if(!($<Z))return $;return Q.warn(" cannot be less than min: "+Z+". Using min value instead."),Z}return Q.warn(" must be a number. using max or fallback. max: "+X+", fallback: "+Y),Nt(Y||X,Z,X,Q)}var Bs0=O(()=>{Ut()});class Os0{constructor($){this._buckets={},this._onBucketRateLimited=$._onBucketRateLimited,this._bucketSize=Nt($.bucketSize,0,100,$._logger),this._refillRate=Nt($.refillRate,0,this._bucketSize,$._logger),this._refillInterval=Nt($.refillInterval,0,LU4,$._logger)}_applyRefill($,Z){let X=Z-$.lastAccess,Q=Math.floor(X/this._refillInterval);if(Q>0){let Y=Q*this._refillRate;$.tokens=Math.min($.tokens+Y,this._bucketSize),$.lastAccess=$.lastAccess+Q*this._refillInterval}}consumeRateLimit($){let Z=Date.now(),X=String($),Q=this._buckets[X];if(Q)this._applyRefill(Q,Z);else Q={tokens:this._bucketSize,lastAccess:Z},this._buckets[X]=Q;if(Q.tokens===0)return!0;if(Q.tokens--,Q.tokens===0)this._onBucketRateLimited?.($);return Q.tokens===0}stop(){this._buckets={}}}var LU4=86400000;var VY8=O(()=>{Bs0()});class Dz{constructor($){this.bytes=$}static ofInner($){if($.length===16)return new Dz($);throw TypeError("not 128-bit length")}static fromFieldsV7($,Z,X,Q){if(!Number.isInteger($)||!Number.isInteger(Z)||!Number.isInteger(X)||!Number.isInteger(Q)||$<0||Z<0||X<0||Q<0||$>281474976710655||Z>4095||X>1073741823||Q>4294967295)throw RangeError("invalid field value");let Y=new Uint8Array(16);return Y[0]=$/1099511627776,Y[1]=$/4294967296,Y[2]=$/16777216,Y[3]=$/65536,Y[4]=$/256,Y[5]=$,Y[6]=112|Z>>>8,Y[7]=Z,Y[8]=128|X>>>24,Y[9]=X>>>16,Y[10]=X>>>8,Y[11]=X,Y[12]=Q>>>24,Y[13]=Q>>>16,Y[14]=Q>>>8,Y[15]=Q,new Dz(Y)}static parse($){let Z;switch($.length){case 32:Z=/^[0-9a-f]{32}$/i.exec($)?.[0];break;case 36:Z=/^([0-9a-f]{8})-([0-9a-f]{4})-([0-9a-f]{4})-([0-9a-f]{4})-([0-9a-f]{12})$/i.exec($)?.slice(1,6).join("");break;case 38:Z=/^\{([0-9a-f]{8})-([0-9a-f]{4})-([0-9a-f]{4})-([0-9a-f]{4})-([0-9a-f]{12})\}$/i.exec($)?.slice(1,6).join("");break;case 45:Z=/^urn:uuid:([0-9a-f]{8})-([0-9a-f]{4})-([0-9a-f]{4})-([0-9a-f]{4})-([0-9a-f]{12})$/i.exec($)?.slice(1,6).join("");break;default:break}if(Z){let X=new Uint8Array(16);for(let Q=0;Q<16;Q+=4){let Y=parseInt(Z.substring(2*Q,2*Q+8),16);X[Q+0]=Y>>>24,X[Q+1]=Y>>>16,X[Q+2]=Y>>>8,X[Q+3]=Y}return new Dz(X)}throw SyntaxError("could not parse UUID string")}toString(){let $="";for(let Z=0;Z<this.bytes.length;Z++)if($+="0123456789abcdef".charAt(this.bytes[Z]>>>4),$+="0123456789abcdef".charAt(15&this.bytes[Z]),Z===3||Z===5||Z===7||Z===9)$+="-";return $}toHex(){let $="";for(let Z=0;Z<this.bytes.length;Z++)$+="0123456789abcdef".charAt(this.bytes[Z]>>>4),$+="0123456789abcdef".charAt(15&this.bytes[Z]);return $}toJSON(){return this.toString()}getVariant(){let $=this.bytes[8]>>>4;if($<0)throw Error("unreachable");if($<=7)return this.bytes.every((Z)=>Z===0)?"NIL":"VAR_0";if($<=11)return"VAR_10";if($<=13)return"VAR_110";if($<=15)return this.bytes.every((Z)=>Z===255)?"MAX":"VAR_RESERVED";else throw Error("unreachable")}getVersion(){return this.getVariant()==="VAR_10"?this.bytes[6]>>>4:void 0}clone(){return new Dz(this.bytes.slice(0))}equals($){return this.compareTo($)===0}compareTo($){for(let Z=0;Z<16;Z++){let X=this.bytes[Z]-$.bytes[Z];if(X!==0)return Math.sign(X)}return 0}}class SY8{constructor($){this.timestamp=0,this.counter=0,this.random=$??DU4()}generate(){return this.generateOrResetCore(Date.now(),1e4)}generateOrAbort(){return this.generateOrAbortCore(Date.now(),1e4)}generateOrResetCore($,Z){let X=this.generateOrAbortCore($,Z);if(X===void 0)this.timestamp=0,X=this.generateOrAbortCore($,Z);return X}generateOrAbortCore($,Z){if(!Number.isInteger($)||$<1||$>281474976710655)throw RangeError("`unixTsMs` must be a 48-bit positive integer");if(Z<0||Z>281474976710655)throw RangeError("`rollbackAllowance` out of reasonable range");if($>this.timestamp)this.timestamp=$,this.resetCounter();else{if(!($+Z>=this.timestamp))return;if(this.counter++,this.counter>4398046511103)this.timestamp++,this.resetCounter()}return Dz.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 $=new Uint8Array(Uint32Array.of(this.random.nextUint32(),this.random.nextUint32(),this.random.nextUint32(),this.random.nextUint32()).buffer);return $[6]=64|$[6]>>>4,$[8]=128|$[8]>>>2,Dz.ofInner($)}}var DU4=()=>({nextUint32:()=>65536*Math.trunc(65536*Math.random())+Math.trunc(65536*Math.random())}),kY8,yB=()=>EU4().toString(),EU4=()=>(kY8||(kY8=new SY8)).generate();var Ft=O(()=>{/*! For license information please see uuidv7.mjs.LICENSE.txt */});class Ls0{add($){let Z=yB();return this.promiseByIds[Z]=$,$.catch(()=>{}).finally(()=>{delete this.promiseByIds[Z]}),$}async join(){let $=Object.values(this.promiseByIds),Z=$.length;while(Z>0)await Promise.all($),$=Object.values(this.promiseByIds),Z=$.length}get length(){return Object.keys(this.promiseByIds).length}constructor(){this.promiseByIds={}}}var CY8=O(()=>{Ft()});function zU4($=console){return{log:$.log.bind($),warn:$.warn.bind($),error:$.error.bind($),debug:$.debug.bind($)}}function vY8($,Z=jU4){return _Y8($,Z,zU4())}var _Y8=($,Z,X)=>{function Q(G,...J){Z(()=>{let K=X[G];K($,...J)})}return{info:(...G)=>{Q("log",...G)},warn:(...G)=>{Q("warn",...G)},error:(...G)=>{Q("error",...G)},critical:(...G)=>{X.error($,...G)},createLogger:(G)=>_Y8(`${$} ${G}`,Z,X)}},jU4=($)=>$();var xY8=()=>{};var fg="Mobile",TY0="iOS",xg="Android",fY8="Tablet",Nz5,AU4="Apple",Fz5,bY8="Safari",RY0="BlackBerry",yY8="Samsung",TU4,RU4,IY0="Chrome",IU4,qU4,gY8="Internet Explorer",MU4,Es0="Opera",wz5,hY8="Edge",VU4,zs0="Firefox",kU4,js0="Nintendo",Ps0="PlayStation",AY0="Xbox",SU4,CU4,wt="Windows",_U4,uY8="Generic",Bz5,Oz5,vU4="Konqueror",QQ="(\\d+(\\.\\d+)?)",Ds0,Lz5,Dz5,Ez5,xU4,fU4,zz5,jz5;var cY8=O(()=>{zY0();Ut();Nz5=xg+" "+fY8,Fz5=AU4+" Watch",TU4=yY8+"Browser",RU4=yY8+" Internet",IU4=IY0+" OS",qU4=IY0+" "+TY0,MU4=gY8+" "+fg,wz5=Es0+" Mini",VU4="Microsoft "+hY8,kU4=zs0+" "+TY0,SU4=xg+" "+fg,CU4=fg+" "+bY8,_U4=wt+" Phone",Bz5=uY8+" "+fg.toLowerCase(),Oz5=uY8+" "+fY8.toLowerCase(),Ds0=new RegExp("Version/"+QQ),Lz5=new RegExp(AY0,"i"),Dz5=new RegExp(Ps0+" \\w+","i"),Ez5=new RegExp(js0+" \\w+","i"),xU4=new RegExp(RY0+"|PlayBook|BB10","i"),fU4={"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"},zz5={[MU4]:[new RegExp("rv:"+QQ)],[VU4]:[new RegExp(hY8+"?\\/"+QQ)],[IY0]:[new RegExp("("+IY0+"|CrMo)\\/"+QQ)],[qU4]:[new RegExp("CriOS\\/"+QQ)],"UC Browser":[new RegExp("(UCBrowser|UCWEB)\\/"+QQ)],[bY8]:[Ds0],[CU4]:[Ds0],[Es0]:[new RegExp("("+Es0+"|OPR)\\/"+QQ)],[zs0]:[new RegExp(zs0+"\\/"+QQ)],[kU4]:[new RegExp("FxiOS\\/"+QQ)],[vU4]:[new RegExp("Konqueror[:/]?"+QQ,"i")],[RY0]:[new RegExp(RY0+" "+QQ),Ds0],[SU4]:[new RegExp("android\\s"+QQ,"i")],[RU4]:[new RegExp(TU4+"\\/"+QQ)],[gY8]:[new RegExp("(rv:|MSIE )"+QQ)],Mozilla:[new RegExp("rv:"+QQ)]},jz5=[[new RegExp(AY0+"; "+AY0+" (.*?)[);]","i"),($)=>[AY0,$&&$[1]||""]],[new RegExp(js0,"i"),[js0,""]],[new RegExp(Ps0,"i"),[Ps0,""]],[xU4,[RY0,""]],[new RegExp(wt,"i"),($,Z)=>{if(/Phone/.test(Z)||/WPDesktop/.test(Z))return[_U4,""];if(new RegExp(fg).test(Z)&&!/IEMobile\b/.test(Z))return[wt+" "+fg,""];let X=/Windows NT ([0-9.]+)/i.exec(Z);if(X&&X[1]){let Q=X[1],Y=fU4[Q]||"";if(/arm/i.test(Z))Y="RT";return[wt,Y]}return[wt,""]}],[/((iPhone|iPad|iPod).*?OS (\d+)_(\d+)_?(\d+)?|iPhone)/,($)=>{if($&&$[3]){let Z=[$[3],$[4],$[5]||"0"];return[TY0,Z.join(".")]}return[TY0,""]}],[/(watch.*\/(\d+\.\d+\.\d+)|watch os,(\d+\.\d+),)/i,($)=>{let Z="";if($&&$.length>=3)Z=_g($[2])?$[3]:$[2];return["watchOS",Z]}],[new RegExp("("+xg+" (\\d+)\\.(\\d+)\\.?(\\d+)?|"+xg+")","i"),($)=>{if($&&$[2]){let Z=[$[2],$[3],$[4]||"0"];return[xg,Z.join(".")]}return[xg,""]}],[/Mac OS X (\d+)[_.](\d+)[_.]?(\d+)?/i,($)=>{let Z=["Mac OS X",""];if($&&$[1]){let X=[$[1],$[2],$[3]||"0"];Z[1]=X.join(".")}return Z}],[/Mac/i,["Mac OS X",""]],[/CrOS/,[IU4,""]],[/Linux|debian/i,["Linux",""]]]});function dY8($){return $?.replace(/\/+$/,"")}async function mY8($,Z){let X=null;for(let Q=0;Q<Z.retryCount+1;Q++){if(Q>0)await new Promise((Y)=>setTimeout(Y,Z.retryDelay));try{return await $()}catch(Y){if(X=Y,!Z.retryCheck(Y))throw Y}}throw X}function qY0(){return new Date().toISOString()}function UN($,Z){let X=setTimeout($,Z);return X?.unref&&X?.unref(),X}function As0($){return Promise.all($.map((Z)=>(Z??Promise.resolve()).then((X)=>({status:"fulfilled",value:X}),(X)=>({status:"rejected",reason:X}))))}var lY8="utf8",iY8=($)=>$ instanceof Error;var YQ=O(()=>{TY8();VY8();Bs0();zY0();Ut();CY8();xY8();cY8()});var bU4,xz5;var Ts0=O(()=>{YQ();bU4={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}},xz5=bU4.info});var nY8=O(()=>{Ts0();Oz()});var pY8=O(()=>{Oz()});class Rs0{constructor(){this.events={},this.events={}}on($,Z){if(!this.events[$])this.events[$]=[];return this.events[$].push(Z),()=>{this.events[$]=this.events[$].filter((X)=>X!==Z)}}emit($,Z){for(let X of this.events[$]||[])X(Z);for(let X of this.events["*"]||[])X($,Z)}}var tY8=()=>{};async function oY8($){if($ instanceof bg){let Z="";try{Z=await $.text}catch{}console.error(`Error while flushing PostHog: message=${$.message}, response body=${Z}`,$)}else console.error("Error while flushing PostHog",$);return Promise.resolve()}function Is0($){return typeof $=="object"&&($ instanceof bg||$ instanceof Bt)}function rY8($){return typeof $=="object"&&$ instanceof bg&&$.status===413}class MY0{constructor($,Z={}){this.flushPromise=null,this.shutdownPromise=null,this.promiseQueue=new Ls0,this._events=new Rs0,this._isInitialized=!1;let X=typeof $=="string"?$.trim():"",Q=typeof Z.host=="string"?Z.host.trim():"",Y=!X;if(this._logger=vY8("[PostHog]",this.logMsgIfDebug.bind(this)),Y)this._logger.error("You must pass your PostHog project's api key. The client will be disabled.");if(this.apiKey=X,this.host=dY8(Q||"https://us.i.posthog.com"),this.flushAt=Z.flushAt?Math.max(Z.flushAt,1):20,this.maxBatchSize=Math.max(this.flushAt,Z.maxBatchSize??100),this.maxQueueSize=Math.max(this.flushAt,Z.maxQueueSize??1000),this.flushInterval=Z.flushInterval??1e4,this.preloadFeatureFlags=Z.preloadFeatureFlags??!0,this.defaultOptIn=Z.defaultOptIn??!0,this.disableSurveys=Z.disableSurveys??!1,this._retryOptions={retryCount:Z.fetchRetryCount??3,retryDelay:Z.fetchRetryDelay??3000,retryCheck:Is0},this.requestTimeout=Z.requestTimeout??1e4,this.featureFlagsRequestTimeoutMs=Z.featureFlagsRequestTimeoutMs??3000,this.remoteConfigRequestTimeoutMs=Z.remoteConfigRequestTimeoutMs??3000,this.disableGeoip=Z.disableGeoip??!0,this.disabled=(Z.disabled??!1)||Y,this.historicalMigration=Z?.historicalMigration??!1,this._initPromise=Promise.resolve(),this._isInitialized=!0,this.evaluationContexts=Z?.evaluationContexts??Z?.evaluationEnvironments,Z?.evaluationEnvironments&&!Z?.evaluationContexts)this._logger.warn("evaluationEnvironments is deprecated. Use evaluationContexts instead. This property will be removed in a future version.");this.disableCompression=!PY8()||(Z?.disableCompression??!1)}logMsgIfDebug($){if(this.isDebug)$()}wrap($){if(this.disabled)return void this._logger.warn("The client is disabled");if(this._isInitialized)return $();this._initPromise.then(()=>$())}getCommonEventProperties(){return{$lib:this.getLibraryId(),$lib_version:this.getLibraryVersion()}}get optedOut(){return this.getPersistedProperty(HX.OptedOut)??!this.defaultOptIn}async optIn(){this.wrap(()=>{this.setPersistedProperty(HX.OptedOut,!1)})}async optOut(){this.wrap(()=>{this.setPersistedProperty(HX.OptedOut,!0)})}on($,Z){return this._events.on($,Z)}debug($=!0){if(this.removeDebugCallback?.(),$){let Z=this.on("*",(X,Q)=>this._logger.info(X,Q));this.removeDebugCallback=()=>{Z(),this.removeDebugCallback=void 0}}}get isDebug(){return!!this.removeDebugCallback}get isDisabled(){return this.disabled}buildPayload($){return{distinct_id:$.distinct_id,event:$.event,properties:{...$.properties||{},...this.getCommonEventProperties()}}}addPendingPromise($){return this.promiseQueue.add($)}identifyStateless($,Z,X){this.wrap(()=>{let Q={...this.buildPayload({distinct_id:$,event:"$identify",properties:Z})};this.enqueue("identify",Q,X)})}async identifyStatelessImmediate($,Z,X){let Q={...this.buildPayload({distinct_id:$,event:"$identify",properties:Z})};await this.sendImmediate("identify",Q,X)}captureStateless($,Z,X,Q){this.wrap(()=>{let Y=this.buildPayload({distinct_id:$,event:Z,properties:X});this.enqueue("capture",Y,Q)})}async captureStatelessImmediate($,Z,X,Q){let Y=this.buildPayload({distinct_id:$,event:Z,properties:X});await this.sendImmediate("capture",Y,Q)}aliasStateless($,Z,X,Q){this.wrap(()=>{let Y=this.buildPayload({event:"$create_alias",distinct_id:Z,properties:{...X||{},distinct_id:Z,alias:$}});this.enqueue("alias",Y,Q)})}async aliasStatelessImmediate($,Z,X,Q){let Y=this.buildPayload({event:"$create_alias",distinct_id:Z,properties:{...X||{},distinct_id:Z,alias:$}});await this.sendImmediate("alias",Y,Q)}groupIdentifyStateless($,Z,X,Q,Y,G){this.wrap(()=>{let J=this.buildPayload({distinct_id:Y||`$${$}_${Z}`,event:"$groupidentify",properties:{$group_type:$,$group_key:Z,$group_set:X||{},...G||{}}});this.enqueue("capture",J,Q)})}async getRemoteConfig(){await this._initPromise;let $=this.host;if($==="https://us.i.posthog.com")$="https://us-assets.i.posthog.com";else if($==="https://eu.i.posthog.com")$="https://eu-assets.i.posthog.com";let Z=`${$}/array/${this.apiKey}/config`,X={method:"GET",headers:{...this.getCustomHeaders(),"Content-Type":"application/json"}};return this.fetchWithRetry(Z,X,{retryCount:0},this.remoteConfigRequestTimeoutMs).then((Q)=>Q.json()).catch((Q)=>{this._logger.error("Remote config could not be loaded",Q),this._events.emit("error",Q)})}async getFlags($,Z={},X={},Q={},Y={},G=!1){await this._initPromise;let J=G?"&config=true":"",K=`${this.host}/flags/?v=2${J}`,W={token:this.apiKey,distinct_id:$,groups:Z,person_properties:X,group_properties:Q,...Y};if(X.$device_id)W.$device_id=X.$device_id;if(this.evaluationContexts&&this.evaluationContexts.length>0)W.evaluation_contexts=this.evaluationContexts;let H={method:"POST",headers:{...this.getCustomHeaders(),"Content-Type":"application/json"},body:JSON.stringify(W)};return this._logger.info("Flags URL",K),this.fetchWithRetry(K,H,{retryCount:0},this.featureFlagsRequestTimeoutMs).then((U)=>U.json()).then((U)=>({success:!0,response:Hs0(U)})).catch((U)=>{return this._events.emit("error",U),{success:!1,error:this.categorizeRequestError(U)}})}categorizeRequestError($){if($ instanceof bg)return{type:"api_error",statusCode:$.status};if($ instanceof Bt){let Z=$.error;if(Z instanceof Error&&(Z.name==="AbortError"||Z.name==="TimeoutError"))return{type:"timeout"};return{type:"connection_error"}}return{type:"unknown_error"}}async getFeatureFlagStateless($,Z,X={},Q={},Y={},G){await this._initPromise;let J=await this.getFeatureFlagDetailStateless($,Z,X,Q,Y,G);if(J===void 0)return{response:void 0,requestId:void 0};let K=Kt(J.response);if(K===void 0)K=!1;return{response:K,requestId:J.requestId}}async getFeatureFlagDetailStateless($,Z,X={},Q={},Y={},G){await this._initPromise;let J=await this.getFeatureFlagDetailsStateless(Z,X,Q,Y,G,[$]);if(J===void 0)return;return{response:J.flags[$],requestId:J.requestId,evaluatedAt:J.evaluatedAt}}async getFeatureFlagPayloadStateless($,Z,X={},Q={},Y={},G){await this._initPromise;let J=await this.getFeatureFlagPayloadsStateless(Z,X,Q,Y,G,[$]);if(!J)return;let K=J[$];if(K===void 0)return null;return K}async getFeatureFlagPayloadsStateless($,Z={},X={},Q={},Y,G){return await this._initPromise,(await this.getFeatureFlagsAndPayloadsStateless($,Z,X,Q,Y,G)).payloads}async getFeatureFlagsStateless($,Z={},X={},Q={},Y,G){return await this._initPromise,await this.getFeatureFlagsAndPayloadsStateless($,Z,X,Q,Y,G)}async getFeatureFlagsAndPayloadsStateless($,Z={},X={},Q={},Y,G){await this._initPromise;let J=await this.getFeatureFlagDetailsStateless($,Z,X,Q,Y,G);if(!J)return{flags:void 0,payloads:void 0,requestId:void 0};return{flags:J.featureFlags,payloads:J.featureFlagPayloads,requestId:J.requestId}}async getFeatureFlagDetailsStateless($,Z={},X={},Q={},Y,G){await this._initPromise;let J={};if(Y??this.disableGeoip)J.geoip_disable=!0;if(G)J.flag_keys_to_evaluate=G;let K=await this.getFlags($,Z,X,Q,J);if(!K.success)return;let W=K.response;if(W.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(W.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:W?.requestId,quotaLimited:W.quotaLimited};return W}async getSurveysStateless(){if(await this._initPromise,this.disableSurveys===!0)return this._logger.info("Loading surveys is disabled."),[];let $=`${this.host}/api/surveys/?token=${this.apiKey}`,Z={method:"GET",headers:{...this.getCustomHeaders(),"Content-Type":"application/json"}},Q=(await this.fetchWithRetry($,Z).then((Y)=>{if(Y.status!==200||!Y.json){let G=`Surveys API could not be loaded: ${Y.status}`,J=Error(G);this._logger.error(J),this._events.emit("error",Error(G));return}return Y.json()}).catch((Y)=>{this._logger.error("Surveys API could not be loaded",Y),this._events.emit("error",Y)}))?.surveys;if(Q)this._logger.info("Surveys fetched from API: ",JSON.stringify(Q));return Q??[]}get props(){if(!this._props)this._props=this.getPersistedProperty(HX.Props);return this._props||{}}set props($){this._props=$}async register($){this.wrap(()=>{this.props={...this.props,...$},this.setPersistedProperty(HX.Props,this.props)})}async unregister($){this.wrap(()=>{delete this.props[$],this.setPersistedProperty(HX.Props,this.props)})}processBeforeEnqueue($){return $}async flushStorage(){}enqueue($,Z,X){this.wrap(()=>{if(this.optedOut)return void this._events.emit($,"Library is disabled. Not sending event. To re-enable, call posthog.optIn()");let Q=this.prepareMessage($,Z,X);if(Q=this.processBeforeEnqueue(Q),Q===null)return;let Y=this.getPersistedProperty(HX.Queue)||[];if(Y.length>=this.maxQueueSize)Y.shift(),this._logger.info("Queue is full, the oldest event is dropped.");if(Y.push({message:Q}),this.setPersistedProperty(HX.Queue,Y),this._events.emit($,Q),Y.length>=this.flushAt)this.flushBackground();if(this.flushInterval&&!this._flushTimer)this._flushTimer=UN(()=>this.flushBackground(),this.flushInterval)})}async sendImmediate($,Z,X){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($,"Library is disabled. Not sending event. To re-enable, call posthog.optIn()");let Q=this.prepareMessage($,Z,X);if(Q=this.processBeforeEnqueue(Q),Q===null)return;let Y={api_key:this.apiKey,batch:[Q],sent_at:qY0()};if(this.historicalMigration)Y.historical_migration=!0;let G=JSON.stringify(Y),J=`${this.host}/batch/`,K=this.disableCompression?null:await EY0(G,this.isDebug),W={method:"POST",headers:{...this.getCustomHeaders(),"Content-Type":"application/json",...K!==null&&{"Content-Encoding":"gzip"}},body:K||G};try{await this.fetchWithRetry(J,W)}catch(H){this._events.emit("error",H)}}prepareMessage($,Z,X){let Q={...Z,type:$,library:this.getLibraryId(),library_version:this.getLibraryVersion(),timestamp:X?.timestamp?X?.timestamp:qY0(),uuid:X?.uuid?X.uuid:yB()};if(X?.disableGeoip??this.disableGeoip){if(!Q.properties)Q.properties={};Q.properties.$geoip_disable=!0}if(Q.distinctId)Q.distinct_id=Q.distinctId,delete Q.distinctId;return Q}clearFlushTimer(){if(this._flushTimer)clearTimeout(this._flushTimer),this._flushTimer=void 0}flushBackground(){this.flush().catch(async($)=>{await oY8($)})}async flush(){let $=As0([this.flushPromise]).then(()=>this._flush());return this.flushPromise=$,this.addPendingPromise($),As0([$]).then(()=>{if(this.flushPromise===$)this.flushPromise=null}),$}getCustomHeaders(){let $=this.getCustomUserAgent(),Z={};if($&&$!=="")Z["User-Agent"]=$;return Z}async _flush(){this.clearFlushTimer(),await this._initPromise;let $=this.getPersistedProperty(HX.Queue)||[];if(!$.length)return;let Z=[],X=$.length;while($.length>0&&Z.length<X){let Q=$.slice(0,this.maxBatchSize),Y=Q.map((F)=>F.message),G=async()=>{let w=(this.getPersistedProperty(HX.Queue)||[]).slice(Q.length);this.setPersistedProperty(HX.Queue,w),$=w,await this.flushStorage()},J={api_key:this.apiKey,batch:Y,sent_at:qY0()};if(this.historicalMigration)J.historical_migration=!0;let K=JSON.stringify(J),W=`${this.host}/batch/`,H=this.disableCompression?null:await EY0(K,this.isDebug),U={method:"POST",headers:{...this.getCustomHeaders(),"Content-Type":"application/json",...H!==null&&{"Content-Encoding":"gzip"}},body:H||K},N={retryCheck:(F)=>{if(rY8(F))return!1;return Is0(F)}};try{await this.fetchWithRetry(W,U,N)}catch(F){if(rY8(F)&&Y.length>1){this.maxBatchSize=Math.max(1,Math.floor(Y.length/2)),this._logger.warn(`Received 413 when sending batch of size ${Y.length}, reducing batch size to ${this.maxBatchSize}`);continue}if(!(F instanceof Bt))await G();throw this._events.emit("error",F),F}await G(),Z.push(...Y)}this._events.emit("flush",Z)}async fetchWithRetry($,Z,X,Q){let Y=Z.body?Z.body:"",G=-1;try{G=Y instanceof Blob?Y.size:Buffer.byteLength(Y,lY8)}catch{if(Y instanceof Blob)G=Y.size;else G=new TextEncoder().encode(Y).length}return await mY8(async()=>{let J=new AbortController,K=Q??this.requestTimeout,W=UN(()=>J.abort(),K),H=null;try{H=await this.fetch($,{signal:J.signal,...Z})}catch(N){throw new Bt(N)}finally{clearTimeout(W)}if(Z.mode!=="no-cors"&&(H.status<200||H.status>=400))throw new bg(H,G);return H},{...this._retryOptions,...X})}async _shutdown($=30000){await this._initPromise;let Z=!1;this.clearFlushTimer();let X=async()=>{try{await this.promiseQueue.join();while(!0){if((this.getPersistedProperty(HX.Queue)||[]).length===0)break;if(await this.flush(),Z)break}}catch(Y){if(!Is0(Y))throw Y;await oY8(Y)}},Q;try{return await Promise.race([new Promise((Y,G)=>{Q=UN(()=>{this._logger.error("Timed out while shutting down PostHog"),Z=!0,G("Timeout while shutting down PostHog. Some events may not have been sent.")},$)}),X()])}finally{clearTimeout(Q)}}async shutdown($=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($).finally(()=>{this.shutdownPromise=null});return this.shutdownPromise}}var bg,Bt;var qs0=O(()=>{tY8();DY0();Ns0();Oz();YQ();Ft();bg=class bg extends Error{constructor($,Z){super("HTTP error while fetching PostHog: status="+$.status+", reqByteLength="+Z),this.response=$,this.reqByteLength=Z,this.name="PostHogFetchHttpError"}get status(){return this.response.status}get text(){return this.response.text()}get json(){return this.response.json()}};Bt=class Bt extends Error{constructor($){super("Network error while fetching PostHog",$ instanceof Error?{cause:$}:{}),this.error=$,this.name="PostHogFetchNetworkError"}}});var aY8=O(()=>{DY0();Oz();qs0();Ft();YQ()});var sY8=O(()=>{Ut()});function $G8($){let Z=globalThis._posthogChunkIds;if(!Z)return;let X=Object.keys(Z);if(kY0&&X.length===eY8)return kY0;return eY8=X.length,kY0=X.reduce((Q,Y)=>{if(!VY0)VY0={};let G=VY0[Y];if(G)Q[G[0]]=G[1];else{let J=$(Y);for(let K=J.length-1;K>=0;K--){let H=J[K]?.filename,U=Z[Y];if(H&&U){Q[H]=U,VY0[Y]=[H,U];break}}}return Q},{}),kY0}var VY0,eY8,kY0;var ZG8=()=>{};class XG8{constructor($,Z,X=[]){this.coercers=$,this.stackParser=Z,this.modifiers=X}buildFromUnknown($,Z={}){let Q=Z&&Z.mechanism||{handled:!0,type:"generic"},G=this.buildCoercingContext(Q,Z,0).apply($),J=this.buildParsingContext(Z),K=this.parseStacktrace(G,J);return{$exception_list:this.convertToExceptionList(K,Q),$exception_level:"error"}}async modifyFrames($){for(let Z of $)if(Z.stacktrace&&Z.stacktrace.frames&&jY0(Z.stacktrace.frames))Z.stacktrace.frames=await this.applyModifiers(Z.stacktrace.frames);return $}coerceFallback($){return{type:"Error",value:"Unknown error",stack:$.syntheticException?.stack,synthetic:!0}}parseStacktrace($,Z){let X;if($.cause!=null)X=this.parseStacktrace($.cause,Z);let Q;if($.stack!=""&&$.stack!=null)Q=this.applyChunkIds(this.stackParser($.stack,$.synthetic?Z.skipFirstLines:0),Z.chunkIdMap);return{...$,cause:X,stack:Q}}applyChunkIds($,Z){return $.map((X)=>{if(X.filename&&Z)X.chunk_id=Z[X.filename];return X})}applyCoercers($,Z){for(let X of this.coercers)if(X.match($))return X.coerce($,Z);return this.coerceFallback(Z)}async applyModifiers($){let Z=$;for(let X of this.modifiers)Z=await X(Z);return Z}convertToExceptionList($,Z){let X={type:$.type,value:$.value,mechanism:{type:Z.type??"generic",handled:Z.handled??!0,synthetic:$.synthetic??!1}};if($.stack)X.stacktrace={type:"raw",frames:$.stack};let Q=[X];if($.cause!=null)Q.push(...this.convertToExceptionList($.cause,{...Z,handled:!0}));return Q}buildParsingContext($){return{chunkIdMap:$G8(this.stackParser),skipFirstLines:$.skipFirstLines??1}}buildCoercingContext($,Z,X=0){let Q=(G,J)=>{if(!(J<=hU4))return;{let K=this.buildCoercingContext($,Z,J);return this.applyCoercers(G,K)}};return{...Z,syntheticException:X==0?Z.syntheticException:void 0,mechanism:$,apply:(G)=>Q(G,X),next:(G)=>Q(G,X+1)}}}var hU4=4;var QG8=O(()=>{YQ();ZG8()});function iW($,Z,X,Q,Y){let G={platform:$,filename:Z,function:X==="<anonymous>"?A7:X,in_app:!0};if(!_g(Q))G.lineno=Q;if(!_g(Y))G.colno=Y;return G}var A7="?";var gB=O(()=>{YQ()});var SY0=($,Z)=>{let X=$.indexOf("safari-extension")!==-1,Q=$.indexOf("safari-web-extension")!==-1;return X||Q?[$.indexOf("@")!==-1?$.split("@")[0]:A7,X?`safari-extension:${Z}`:`safari-web-extension:${Z}`]:[$,Z]};var Ms0=O(()=>{gB()});var uU4,cU4,lU4,Vs0=($,Z)=>{let X=uU4.exec($);if(X){let[,Y,G,J]=X;return iW(Z,Y,A7,+G,+J)}let Q=cU4.exec($);if(Q){if(Q[2]&&Q[2].indexOf("eval")===0){let K=lU4.exec(Q[2]);if(K)Q[2]=K[1],Q[3]=K[2],Q[4]=K[3]}let[G,J]=SY0(Q[1]||A7,Q[2]);return iW(Z,J,G,Q[3]?+Q[3]:void 0,Q[4]?+Q[4]:void 0)}};var YG8=O(()=>{gB();Ms0();uU4=/^\s*at (\S+?)(?::(\d+))(?::(\d+))\s*$/i,cU4=/^\s*at (?:(.+?\)(?: \[.+\])?|.*?) ?\((?:address at )?)?(?:async )?((?:<anonymous>|[-a-z]+:|.*bundle|\/)?.*?)(?::(\d+))?(?::(\d+))?\)?\s*$/i,lU4=/\((\S*)(?::(\d+))(?::(\d+))\)/});var dU4,mU4,ks0=($,Z)=>{let X=dU4.exec($);if(X){if(X[3]&&X[3].indexOf(" > eval")>-1){let J=mU4.exec(X[3]);if(J)X[1]=X[1]||"eval",X[3]=J[1],X[4]=J[2],X[5]=""}let Y=X[3],G=X[1]||A7;return[G,Y]=SY0(G,Y),iW(Z,Y,G,X[4]?+X[4]:void 0,X[5]?+X[5]:void 0)}};var GG8=O(()=>{gB();Ms0();dU4=/^\s*(.*?)(?:\((.*?)\))?(?:^|@)?((?:[-a-z]+)?:\/.*?|\[native code\]|[^@]*(?:bundle|\d+\.js)|\/[\w\-. /=]+)(?::(\d+))?(?::(\d+))?\s*$/i,mU4=/(\S+) line (\d+)(?: > eval line \d+)* > eval/i});var iU4,JG8=($,Z)=>{let X=iU4.exec($);return X?iW(Z,X[2],X[1]||A7,+X[3],X[4]?+X[4]:void 0):void 0};var KG8=O(()=>{gB();iU4=/^\s*at (?:((?:\[object object\])?.+) )?\(?((?:[-a-z]+):.*?):(\d+)(?::(\d+))?\)?\s*$/i});var nU4,WG8=($,Z)=>{let X=nU4.exec($);return X?iW(Z,X[2],X[3]||A7,+X[1]):void 0},pU4,HG8=($,Z)=>{let X=pU4.exec($);return X?iW(Z,X[5],X[3]||X[4]||A7,+X[1],+X[2]):void 0};var UG8=O(()=>{gB();nU4=/ line (\d+).*script (?:in )?(\S+)(?:: in function (\S+))?$/i,pU4=/ line (\d+), column (\d+)\s*(?:in (?:<anonymous function: ([^>]+)>|([^)]+))\(.*\))? in (.*):\s*$/i});function rU4($,Z=!1){return!(Z||$&&!$.startsWith("/")&&!$.match(/^[A-Z]:/)&&!$.startsWith(".")&&!$.match(/^[a-zA-Z]([a-zA-Z0-9.\-+])*:\/\//))&&$!==void 0&&!$.includes("node_modules/")}function NG8($){return parseInt($||"",10)||void 0}var tU4,oU4,FG8=($,Z)=>{let X=$.match(oU4);if(X){let Q,Y,G,J,K;if(X[1]){G=X[1];let U=G.lastIndexOf(".");if(G[U-1]===".")U--;if(U>0){Q=G.slice(0,U),Y=G.slice(U+1);let N=Q.indexOf(".Module");if(N>0)G=G.slice(N+1),Q=Q.slice(0,N)}J=void 0}if(Y)J=Q,K=Y;if(Y==="<anonymous>")K=void 0,G=void 0;if(G===void 0)K=K||A7,G=J?`${J}.${K}`:K;let W=X[2]?.startsWith("file://")?X[2].slice(7):X[2],H=X[5]==="native";if(W?.match(/\/[A-Z]:/))W=W.slice(1);if(!W&&X[5]&&!H)W=X[5];return{filename:W?decodeURI(W):void 0,module:void 0,function:G,lineno:NG8(X[3]),colno:NG8(X[4]),in_app:rU4(W||"",H),platform:Z}}if($.match(tU4))return{filename:$,platform:Z}};var wG8=O(()=>{gB();tU4=/^\s*[-]{4,}$/,oU4=/at (?:async )?(?:(.+?)\s+\()?(?:(.+):(\d+):(\d+)?|([^)]+))\)?/});function LG8($){if(!$.length)return[];let Z=Array.from($);return Z.reverse(),Z.slice(0,OG8).map((X)=>({...X,filename:X.filename||aU4(Z).filename,function:X.function||A7}))}function aU4($){return $[$.length-1]||{}}function sU4(){return DG8("web:javascript",Vs0,ks0)}function DG8($,...Z){return(X,Q=0)=>{let Y=[],G=X.split(`
|
|
1645
1645
|
`);for(let J=Q;J<G.length;J++){let K=G[J];if(K.length>1024)continue;let W=BG8.test(K)?K.replace(BG8,"$1"):K;if(!W.match(/\S*Error: /)){for(let H of Z){let U=H(W,$);if(U){Y.push(U);break}}if(Y.length>=OG8)break}}return LG8(Y)}}var BG8,OG8=50;var EG8=O(()=>{gB();YG8();GG8();KG8();UG8();wG8();BG8=/\(error: (.*)\)/});class zG8{match($){return this.isDOMException($)||this.isDOMError($)}coerce($,Z){let X=bB($.stack);return{type:this.getType($),value:this.getValue($),stack:X?$.stack:void 0,cause:$.cause?Z.next($.cause):void 0,synthetic:!1}}getType($){return this.isDOMError($)?"DOMError":"DOMException"}getValue($){let Z=$.name||(this.isDOMError($)?"DOMError":"DOMException");return $.message?`${Z}: ${$.message}`:Z}isDOMException($){return Lz($,"DOMException")}isDOMError($){return Lz($,"DOMError")}}var jG8=O(()=>{YQ()});class PG8{match($){return ws0($)}coerce($,Z){return{type:this.getType($),value:this.getMessage($,Z),stack:this.getStack($),cause:$.cause?Z.next($.cause):void 0,synthetic:!1}}getType($){return $.name||$.constructor.name}getMessage($,Z){let X=$.message;if(X.error&&typeof X.error.message=="string")return String(X.error.message);return String(X)}getStack($){return $.stacktrace||$.stack||void 0}}var AG8=O(()=>{YQ()});class TG8{constructor(){}match($){return qY8($)&&$.error!=null}coerce($,Z){let X=Z.apply($.error);if(!X)return{type:"ErrorEvent",value:$.message,stack:Z.syntheticException?.stack,synthetic:!0};return X}}var RG8=O(()=>{YQ()});class IG8{match($){return typeof $=="string"}coerce($,Z){let[X,Q]=this.getInfos($);return{type:X??"Error",value:Q??$,stack:Z.syntheticException?.stack,synthetic:!0}}getInfos($){let Z="Error",X=$,Q=$.match(eU4);if(Q)Z=Q[1],X=Q[2];return[Z,X]}}var eU4;var qG8=O(()=>{eU4=/^(?:[Uu]ncaught (?:exception: )?)?(?:((?:Eval|Internal|Range|Reference|Syntax|Type|URI|)Error): )?(.*)$/i});var MG8;var VG8=O(()=>{MG8=["fatal","error","warning","log","info","debug"]});function CY0($,Z=40){let X=Object.keys($);if(X.sort(),!X.length)return"[object has no keys]";for(let Q=X.length;Q>0;Q--){let Y=X.slice(0,Q).join(", ");if(!(Y.length>Z)){if(Q===X.length)return Y;return Y.length<=Z?Y:`${Y.slice(0,Z)}...`}}return""}var Ss0=()=>{};class kG8{match($){return typeof $=="object"&&$!==null}coerce($,Z){let X=this.getErrorPropertyFromObject($);if(X)return Z.apply(X);return{type:this.getType($),value:this.getValue($),stack:Z.syntheticException?.stack,level:this.isSeverityLevel($.level)?$.level:"error",synthetic:!0}}getType($){return vg($)?$.constructor.name:"Error"}getValue($){if("name"in $&&typeof $.name=="string"){let Q=`'${$.name}' captured as exception`;if("message"in $&&typeof $.message=="string")Q+=` with message: '${$.message}'`;return Q}if("message"in $&&typeof $.message=="string")return $.message;let Z=this.getObjectClassName($),X=CY0($);return`${Z&&Z!=="Object"?`'${Z}'`:"Object"} captured as exception with keys: ${X}`}isSeverityLevel($){return bB($)&&!IY8($)&&MG8.indexOf($)>=0}getErrorPropertyFromObject($){for(let Z in $)if(Object.prototype.hasOwnProperty.call($,Z)){let X=$[Z];if(iY8(X))return X}}getObjectClassName($){try{let Z=Object.getPrototypeOf($);return Z?Z.constructor.name:void 0}catch(Z){return}}}var SG8=O(()=>{YQ();VG8();Ss0()});class CG8{match($){return vg($)}coerce($,Z){let X=$.constructor.name;return{type:X,value:`${X} captured as exception with keys: ${CY0($)}`,stack:Z.syntheticException?.stack,synthetic:!0}}}var _G8=O(()=>{YQ();Ss0()});class vG8{match($){return PY0($)}coerce($,Z){return{type:"Error",value:`Primitive value captured as exception: ${String($)}`,stack:Z.syntheticException?.stack,synthetic:!0}}}var xG8=O(()=>{YQ()});class fG8{match($){return Lz($,"PromiseRejectionEvent")||this.isCustomEventWrappingRejection($)}isCustomEventWrappingRejection($){if(!vg($))return!1;try{let Z=$.detail;return Z!=null&&typeof Z=="object"&&"reason"in Z}catch{return!1}}coerce($,Z){let X=this.getUnhandledRejectionReason($);if(PY0(X))return{type:"UnhandledRejection",value:`Non-Error promise rejection captured with value: ${String(X)}`,stack:Z.syntheticException?.stack,synthetic:!0};return Z.apply(X)}getUnhandledRejectionReason($){try{if("reason"in $)return $.reason;if("detail"in $&&$.detail!=null&&typeof $.detail=="object"&&"reason"in $.detail)return $.detail.reason}catch{}return $}}var bG8=O(()=>{YQ()});var yG8=O(()=>{jG8();AG8();RG8();qG8();SG8();_G8();xG8();bG8()});class gG8{constructor($){this._maxSize=$,this._cache=new Map}get($){let Z=this._cache.get($);if(Z===void 0)return;return this._cache.delete($),this._cache.set($,Z),Z}set($,Z){this._cache.set($,Z)}reduce(){while(this._cache.size>=this._maxSize){let $=this._cache.keys().next().value;if($)this._cache.delete($)}}}var hG8=()=>{};function Cs0($){if(!$)return{..._Y0};return{enabled:$.enabled??_Y0.enabled,max_bytes:XN4($.max_bytes,_Y0.max_bytes)}}function ZN4($){if(!$)return{sanitizedProperties:{},droppedKeys:[]};let Z=[];return{sanitizedProperties:Object.keys($).reduce((Q,Y)=>{if($N4.has(Y))return Z.push(Y),Q;return Q[Y]=$[Y],Q},{}),droppedKeys:Z}}class uG8{constructor($){this._entries=[],this._totalBytes=0,this._config=Cs0($)}setConfig($){this._config=Cs0($),this._trimToMaxBytes()}add($){let Z=QN4($);if(!Z)return;let X=cG8(Z.json);if(X>this._config.max_bytes)return;this._entries.push({step:Z.step,bytes:X}),this._totalBytes+=X,this._trimToMaxBytes()}getAttachable(){return this._entries.map(($)=>$.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 $=this._entries.shift();if($)this._totalBytes-=$.bytes}}}function XN4($,Z){if(!Ht($)||$===1/0||$===-1/0)return Z;let X=Math.floor($);if(X<0)return Z;return X}function QN4($){let Z=YN4($);if(!Z)return;try{let X=JSON.parse(Z);if(!Wt(X))return;let Q=X,Y=Q[Ot.MESSAGE],G=Q[Ot.TIMESTAMP];if(!bB(Y)||Y.trim().length===0)return;if(!bB(G)&&!Ht(G))return;return{step:Q,json:Z}}catch{return}}function YN4($){let Z=new WeakSet;try{return JSON.stringify($,(X,Q)=>{if(typeof Q=="bigint")return Q.toString();if(typeof Q=="function"||typeof Q=="symbol")return;if(Q instanceof Date)return Q.toISOString();if(Q instanceof Error)return{name:Q.name,message:Q.message,stack:Q.stack};if(Q&&typeof Q=="object"){if(Z.has(Q))return"[Circular]";Z.add(Q)}return Q})}catch{return}}function cG8($){if(typeof TextEncoder<"u")return new TextEncoder().encode($).length;let Z=encodeURIComponent($),X=0;for(let Q=0;Q<Z.length;Q++)if(Z[Q]==="%")X+=1,Q+=2;else X+=1;return X}var Ot,$N4,_Y0;var lG8=O(()=>{YQ();Ot={MESSAGE:"$message",TIMESTAMP:"$timestamp"},$N4=new Set([Ot.MESSAGE,Ot.TIMESTAMP]),_Y0={enabled:!0,max_bytes:32768}});var oQ={};B0(oQ,{winjsStackLineParser:()=>JG8,stripReservedExceptionStepFields:()=>ZN4,reverseAndStripFrames:()=>LG8,resolveExceptionStepsConfig:()=>Cs0,opera11StackLineParser:()=>HG8,opera10StackLineParser:()=>WG8,nodeStackLineParser:()=>FG8,getUtf8ByteLength:()=>cG8,geckoStackLineParser:()=>ks0,createStackParser:()=>DG8,createDefaultStackParser:()=>sU4,chromeStackLineParser:()=>Vs0,StringCoercer:()=>IG8,ReduceableCache:()=>gG8,PromiseRejectionEventCoercer:()=>fG8,PrimitiveCoercer:()=>vG8,ObjectCoercer:()=>kG8,ExceptionStepsBuffer:()=>uG8,EventCoercer:()=>CG8,ErrorPropertiesBuilder:()=>XG8,ErrorEventCoercer:()=>TG8,ErrorCoercer:()=>PG8,EXCEPTION_STEP_INTERNAL_FIELDS:()=>Ot,DOMExceptionCoercer:()=>zG8,DEFAULT_EXCEPTION_STEPS_CONFIG:()=>_Y0});var dG8=O(()=>{QG8();EG8();yG8();hG8();lG8()});var Ez=O(()=>{DY0();Ns0();Ts0();nY8();Ft();pY8();dG8();YQ();aY8();qs0();sY8();Oz()});import{createReadStream as GN4}from"fs";import{createInterface as JN4}from"readline";async function pG8($){let Z={};for(let Y=$.length-1;Y>=0;Y--){let G=$[Y],J=G?.filename;if(!G||typeof J!="string"||typeof G.lineno!="number"||FN4(J)||wN4(G))continue;if(!Z[J])Z[J]=[];Z[J].push(G.lineno)}let X=Object.keys(Z);if(X.length==0)return $;let Q=[];for(let Y of X){if(nG8.get(Y))continue;let G=Z[Y];if(!G)continue;G.sort((W,H)=>W-H);let J=ON4(G);if(J.every((W)=>BN4(Y,W)))continue;let K=LN4(vY0,Y,{});Q.push(HN4(Y,J,K))}if(await Promise.all(Q).catch(()=>{}),$&&$.length>0)UN4($,vY0);return vY0.reduce(),$}function HN4($,Z,X){return new Promise((Q)=>{let Y=GN4($),G=JN4({input:Y});function J(){Y.destroy(),Q()}let K=0,W=0,H=Z[W];if(H===void 0)return void J();let U=H[0],N=H[1];function F(){nG8.set($,1),G.close(),G.removeAllListeners(),J()}Y.on("error",F),G.on("error",F),G.on("close",J),G.on("line",(w)=>{if(K++,K<U)return;if(X[K]=DN4(w,0),K>=N){if(W===Z.length-1){G.close(),G.removeAllListeners();return}W++;let B=Z[W];if(B===void 0){G.close(),G.removeAllListeners();return}U=B[0],N=B[1]}})})}function UN4($,Z){for(let X of $)if(X.filename&&X.context_line===void 0&&typeof X.lineno=="number"){let Q=Z.get(X.filename);if(Q===void 0)continue;NN4(X.lineno,X,Q)}}function NN4($,Z,X){if(Z.lineno===void 0||X===void 0)return;Z.pre_context=[];for(let Y=tG8($);Y<$;Y++){let G=X[Y];if(G===void 0)return void mG8(Z);Z.pre_context.push(G)}if(X[$]===void 0)return void mG8(Z);Z.context_line=X[$];let Q=oG8($);Z.post_context=[];for(let Y=$+1;Y<=Q;Y++){let G=X[Y];if(G===void 0)break;Z.post_context.push(G)}}function mG8($){delete $.pre_context,delete $.context_line,delete $.post_context}function FN4($){return $.startsWith("node:")||$.endsWith(".min.js")||$.endsWith(".min.cjs")||$.endsWith(".min.mjs")||$.startsWith("data:")}function wN4($){if($.lineno!==void 0&&$.lineno>WN4)return!0;if($.colno!==void 0&&$.colno>KN4)return!0;return!1}function BN4($,Z){let X=vY0.get($);if(X===void 0)return!1;for(let Q=Z[0];Q<=Z[1];Q++)if(X[Q]===void 0)return!1;return!0}function ON4($){if(!$.length)return[];let Z=0,X=$[0];if(typeof X!="number")return[];let Q=iG8(X),Y=[];while(!0){if(Z===$.length-1){Y.push(Q);break}let G=$[Z+1];if(typeof G!="number")break;if(G<=Q[1])Q[1]=G+_s0;else Y.push(Q),Q=iG8(G);Z++}return Y}function iG8($){return[tG8($),oG8($)]}function tG8($){return Math.max(1,$-_s0)}function oG8($){return $+_s0}function LN4($,Z,X){let Q=$.get(Z);if(Q===void 0)return $.set(Z,X),X;return Q}function DN4($,Z){let X=$,Q=X.length;if(Q<=150)return X;if(Z>Q)Z=Q;let Y=Math.max(Z-60,0);if(Y<5)Y=0;let G=Math.min(Y+140,Q);if(G>Q-5)G=Q;if(G===Q)Y=Math.max(G-140,0);if(X=X.slice(Y,G),Y>0)X=`...${X}`;if(G<Q)X+="...";return X}var vY0,nG8,_s0=7,KN4=1000,WN4=1e4;var rG8=O(()=>{Ez();vY0=new oQ.ReduceableCache(25),nG8=new oQ.ReduceableCache(20)});import{isAbsolute as EN4,relative as zN4,sep as jN4}from"path";function aG8($=process.cwd()){let Z=jN4==="\\",X=(Y)=>Z?Y.replace(/\\/g,"/"):Y,Q=X($);return async(Y)=>{for(let G of Y)if(!(!G.filename||G.filename.startsWith("node:")||G.filename.startsWith("data:"))){if(EN4(G.filename))G.filename=X(zN4(Q,X(G.filename)))}return Y}}var sG8=()=>{};function PN4($,Z){let X=!1;return Object.assign((Q)=>{let G=global.process.listeners("uncaughtException").filter((J)=>J.name!=="domainUncaughtExceptionClear"&&J._posthogErrorHandler!==!0).length===0;if($(Q,{mechanism:{type:"onuncaughtexception",handled:!1}}),!X&&G)X=!0,Z(Q)},{_posthogErrorHandler:!0})}function eG8($,Z){globalThis.process?.on("uncaughtException",PN4($,Z))}function $38($){globalThis.process?.on("unhandledRejection",(Z)=>$(Z,{mechanism:{type:"onunhandledrejection",handled:!1}}))}var Z38=()=>{};class L3{constructor($,Z,X){this.client=$,this._exceptionAutocaptureEnabled=Z.enableExceptionAutocapture||!1,this._logger=X,this._rateLimiter=new Os0({refillRate:1,bucketSize:10,refillInterval:1e4,_logger:this._logger}),this.startAutocaptureIfEnabled()}static isPreviouslyCapturedError($){return Wt($)&&"__posthog_previously_captured_error"in $&&$.__posthog_previously_captured_error===!0}static async buildEventMessage($,Z,X,Q){let Y={...Q},G=this.errorPropertiesBuilder.buildFromUnknown($,Z);return G.$exception_list=await this.errorPropertiesBuilder.modifyFrames(G.$exception_list),{event:"$exception",distinctId:X,properties:{...G,...Y},_originatedFromCaptureException:!0}}startAutocaptureIfEnabled(){if(this.isEnabled())eG8(this.onException.bind(this),this.onFatalError.bind(this)),$38(this.onException.bind(this))}onException($,Z){this.client.addPendingPromise((async()=>{if(!L3.isPreviouslyCapturedError($)){let X=await L3.buildEventMessage($,Z),Y=X.properties?.$exception_list[0]?.type??"Exception";if(this._rateLimiter.consumeRateLimit(Y))return void this._logger.info("Skipping exception capture because of client rate limiting.",{exception:Y});return this.client.capture(X)}})())}async onFatalError($){console.error($),await this.client.shutdown(AN4),process.exit(1)}isEnabled(){return!this.client.isDisabled&&this._exceptionAutocaptureEnabled}shutdown(){this._rateLimiter.stop()}}var AN4=2000;var xY0=O(()=>{Z38();Ez()});var X38="5.30.6";var Q38=()=>{};var Lt;var vs0=O(()=>{Lt={ERRORS_WHILE_COMPUTING:"errors_while_computing_flags",FLAG_MISSING:"flag_missing",QUOTA_LIMITED:"quota_limited",UNKNOWN_ERROR:"unknown_error"}});async function Y38($){let Z=globalThis.crypto?.subtle;if(!Z)throw Error("SubtleCrypto API not available");let X=await Z.digest("SHA-1",new TextEncoder().encode($));return Array.from(new Uint8Array(X)).map((Y)=>Y.toString(16).padStart(2,"0")).join("")}var G38=()=>{};class xs0{constructor({pollingInterval:$,personalApiKey:Z,projectApiKey:X,timeout:Q,host:Y,customHeaders:G,...J}){this.debugMode=!1,this.shouldBeginExponentialBackoff=!1,this.backOffCount=0,this.pollingInterval=$,this.personalApiKey=Z,this.featureFlags=[],this.featureFlagsByKey={},this.groupTypeMapping={},this.cohorts={},this.loadedSuccessfullyOnce=!1,this.timeout=Q,this.projectApiKey=X,this.host=Y,this.poller=void 0,this.fetch=J.fetch||fetch,this.onError=J.onError,this.customHeaders=G,this.onLoad=J.onLoad,this.cacheProvider=J.cacheProvider,this.strictLocalEvaluation=J.strictLocalEvaluation??!1,this.loadFeatureFlags()}debug($=!0){this.debugMode=$}logMsgIfDebug($){if(this.debugMode)$()}createEvaluationContext($,Z={},X={},Q={},Y={}){return{distinctId:$,groups:Z,personProperties:X,groupProperties:Q,evaluationCache:Y}}async getFeatureFlag($,Z,X={},Q={},Y={}){await this.loadFeatureFlags();let G,J;if(!this.loadedSuccessfullyOnce)return G;if(J=this.featureFlagsByKey[$],J!==void 0){let K=this.createEvaluationContext(Z,X,Q,Y);try{G=(await this.computeFlagAndPayloadLocally(J,K)).value,this.logMsgIfDebug(()=>console.debug(`Successfully computed flag locally: ${$} -> ${G}`))}catch(W){if(W instanceof nW||W instanceof f4)this.logMsgIfDebug(()=>console.debug(`${W.name} when computing flag locally: ${$}: ${W.message}`));else if(W instanceof Error)this.onError?.(Error(`Error computing flag locally: ${$}: ${W}`))}}return G}async getAllFlagsAndPayloads($,Z){await this.loadFeatureFlags();let X={},Q={},Y=this.featureFlags.length==0,G=Z?Z.map((K)=>this.featureFlagsByKey[K]).filter(Boolean):this.featureFlags,J={...$,evaluationCache:$.evaluationCache??{}};return await Promise.all(G.map(async(K)=>{try{let{value:W,payload:H}=await this.computeFlagAndPayloadLocally(K,J);if(X[K.key]=W,H)Q[K.key]=H}catch(W){if(W instanceof nW||W instanceof f4)this.logMsgIfDebug(()=>console.debug(`${W.name} when computing flag locally: ${K.key}: ${W.message}`));else if(W instanceof Error)this.onError?.(Error(`Error computing flag locally: ${K.key}: ${W}`));Y=!0}})),{response:X,payloads:Q,fallbackToFlags:Y}}async computeFlagAndPayloadLocally($,Z,X={}){let{matchValue:Q,skipLoadCheck:Y=!1}=X;if(!Y)await this.loadFeatureFlags();if(!this.loadedSuccessfullyOnce)return{value:!1,payload:null};let G;G=Q!==void 0?Q:await this.computeFlagValueLocally($,Z);let J=this.getFeatureFlagPayload($.key,G);return{value:G,payload:J}}async computeFlagValueLocally($,Z){let{distinctId:X,groups:Q,personProperties:Y,groupProperties:G}=Z;if($.ensure_experience_continuity)throw new f4("Flag has experience continuity enabled");if(!$.active)return!1;let K=($.filters||{}).aggregation_group_type_index;if(K!=null){let W=this.groupTypeMapping[String(K)];if(!W)throw this.logMsgIfDebug(()=>console.warn(`[FEATURE FLAGS] Unknown group type index ${K} for feature flag ${$.key}`)),new f4("Flag has unknown group type index");if(!(W in Q))return this.logMsgIfDebug(()=>console.warn(`[FEATURE FLAGS] Can't compute group feature flag: ${$.key} without group names passed in`)),!1;if($.bucketing_identifier==="device_id"&&(Y?.$device_id===void 0||Y?.$device_id===null||Y?.$device_id===""))this.logMsgIfDebug(()=>console.warn(`[FEATURE FLAGS] Ignoring bucketing_identifier for group flag: ${$.key}`));let H=G[W];return await this.matchFeatureFlagProperties($,Q[W],H,Z)}{let W=this.getBucketingValueForFlag($,X,Y);if(W===void 0)throw this.logMsgIfDebug(()=>console.warn(`[FEATURE FLAGS] Can't compute feature flag: ${$.key} without $device_id, falling back to server evaluation`)),new f4(`Can't compute feature flag: ${$.key} without $device_id`);return await this.matchFeatureFlagProperties($,W,Y,Z)}}getBucketingValueForFlag($,Z,X){if($.filters?.aggregation_group_type_index!=null)return Z;if($.bucketing_identifier==="device_id"){let Q=X?.$device_id;if(Q==null||Q==="")return;return Q}return Z}getFeatureFlagPayload($,Z){let X=null;if(Z!==!1&&Z!=null){if(typeof Z=="boolean")X=this.featureFlagsByKey?.[$]?.filters?.payloads?.[Z.toString()]||null;else if(typeof Z=="string")X=this.featureFlagsByKey?.[$]?.filters?.payloads?.[Z]||null;if(X!=null){if(typeof X=="object")return X;if(typeof X=="string")try{return JSON.parse(X)}catch{}return X}}return null}async evaluateFlagDependency($,Z,X){let{evaluationCache:Q}=X,Y=$.key;if(!this.featureFlagsByKey)throw new f4("Feature flags not available for dependency evaluation");if(!("dependency_chain"in $))throw new f4(`Flag dependency property for '${Y}' is missing required 'dependency_chain' field`);let G=$.dependency_chain;if(!Array.isArray(G))throw new f4(`Flag dependency property for '${Y}' has an invalid 'dependency_chain' (expected array, got ${typeof G})`);if(G.length===0)throw new f4(`Circular dependency detected for flag '${Y}' (empty dependency chain)`);for(let K of G){if(!(K in Q)){let H=this.featureFlagsByKey[K];if(H)if(H.active)try{let U=await this.computeFlagValueLocally(H,X);Q[K]=U}catch(U){throw new f4(`Error evaluating flag dependency '${K}' for flag '${Y}': ${U}`)}else Q[K]=!1;else throw new f4(`Missing flag dependency '${K}' for flag '${Y}'`)}if(Q[K]==null)throw new f4(`Dependency '${K}' could not be evaluated`)}let J=Q[Y];return this.flagEvaluatesToExpectedValue($.value,J)}flagEvaluatesToExpectedValue($,Z){if(typeof $=="boolean")return $===Z||typeof Z=="string"&&Z!==""&&$===!0;if(typeof $=="string")return Z===$;return!1}async matchFeatureFlagProperties($,Z,X,Q){let Y=$.filters||{},G=Y.groups||[],J=!1,K;for(let W of G)try{if(await this.isConditionMatch($,Z,W,X,Q)){let H=W.variant,U=Y.multivariate?.variants||[];K=H&&U.some((N)=>N.key===H)?H:await this.getMatchingVariant($,Z)||!0;break}}catch(H){if(H instanceof nW)throw H;if(H instanceof f4)J=!0;else throw H}if(K!==void 0)return K;if(J)throw new f4("Can't determine if feature flag is enabled or not with given properties");return!1}async isConditionMatch($,Z,X,Q,Y){let G=X.rollout_percentage,J=(K)=>{this.logMsgIfDebug(()=>console.warn(K))};if((X.properties||[]).length>0){for(let K of X.properties){let W=K.type,H=!1;if(H=W==="cohort"?U38(K,Q,this.cohorts,this.debugMode):W==="flag"?await this.evaluateFlagDependency(K,Q,Y):H38(K,Q,J),!H)return!1}if(G==null)return!0}if(G!=null&&await J38($.key,Z)>G/100)return!1;return!0}async getMatchingVariant($,Z){let X=await J38($.key,Z,"variant"),Q=this.variantLookupTable($).find((Y)=>X>=Y.valueMin&&X<Y.valueMax);if(Q)return Q.key}variantLookupTable($){let Z=[],X=0,Q=0;return(($.filters||{}).multivariate?.variants||[]).forEach((J)=>{Q=X+J.rollout_percentage/100,Z.push({valueMin:X,valueMax:Q,key:J.key}),X=Q}),Z}updateFlagState($){this.featureFlags=$.flags,this.featureFlagsByKey=$.flags.reduce((Z,X)=>(Z[X.key]=X,Z),{}),this.groupTypeMapping=$.groupTypeMapping,this.cohorts=$.cohorts,this.loadedSuccessfullyOnce=!0}warnAboutExperienceContinuityFlags($){if(this.strictLocalEvaluation)return;let Z=$.filter((X)=>X.ensure_experience_continuity);if(Z.length>0)console.warn(`[PostHog] You are using local evaluation but ${Z.length} flag(s) have experience continuity enabled: ${Z.map((X)=>X.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($){if(!this.cacheProvider)return!1;try{let Z=await this.cacheProvider.getFlagDefinitions();if(Z)return this.updateFlagState(Z),this.logMsgIfDebug(()=>console.debug(`[FEATURE FLAGS] ${$} (${Z.flags.length} flags)`)),this.onLoad?.(this.featureFlags.length),this.warnAboutExperienceContinuityFlags(Z.flags),!0;return!1}catch(Z){return this.onError?.(Error(`Failed to load from cache: ${Z}`)),!1}}async loadFeatureFlags($=!1){if(this.loadedSuccessfullyOnce&&!$)return;if(!$&&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((Z)=>this.logMsgIfDebug(()=>console.debug(`[FEATURE FLAGS] Failed to load feature flags: ${Z}`))).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(TN4,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 $=!0;if(this.cacheProvider)try{$=await this.cacheProvider.shouldFetchFlagDefinitions()}catch(X){this.onError?.(Error(`Error in shouldFetchFlagDefinitions: ${X}`))}if(!$){if(await this.loadFromCache("Loaded flags from cache (skipped fetch)"))return;if(this.loadedSuccessfullyOnce)return}let Z=await this._requestFeatureFlagDefinitions();if(!Z)return;switch(Z.status){case 304:this.logMsgIfDebug(()=>console.debug("[FEATURE FLAGS] Flags not modified (304), using cached data")),this.flagsEtag=Z.headers?.get("ETag")??this.flagsEtag,this.loadedSuccessfullyOnce=!0,this.clearBackoff();return;case 401:throw this.beginBackoff(),new yg(`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 yg(`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 yg(`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 X=await Z.json()??{};if(!("flags"in X))return void this.onError?.(Error(`Invalid response when getting feature flags: ${JSON.stringify(X)}`));this.flagsEtag=Z.headers?.get("ETag")??void 0;let Q={flags:X.flags??[],groupTypeMapping:X.group_type_mapping||{},cohorts:X.cohorts||{}};if(this.updateFlagState(Q),this.flagDefinitionsLoadedAt=Date.now(),this.clearBackoff(),this.cacheProvider&&$)try{await this.cacheProvider.onFlagDefinitionsReceived(Q)}catch(Y){this.onError?.(Error(`Failed to store in cache: ${Y}`))}this.onLoad?.(this.featureFlags.length),this.warnAboutExperienceContinuityFlags(Q.flags);break}default:return}}catch($){if($ instanceof yg)this.onError?.($)}}getPersonalApiKeyRequestOptions($="GET",Z){let X={...this.customHeaders,"Content-Type":"application/json",Authorization:`Bearer ${this.personalApiKey}`};if(Z)X["If-None-Match"]=Z;return{method:$,headers:X}}_requestFeatureFlagDefinitions(){let $=`${this.host}/flags/definitions?token=${this.projectApiKey}&send_cohorts`,Z=this.getPersonalApiKeyRequestOptions("GET",this.flagsEtag),X=null;if(this.timeout&&typeof this.timeout=="number"){let Q=new AbortController;X=UN(()=>{Q.abort()},this.timeout),Z.signal=Q.signal}try{let Q=this.fetch;return Q($,Z)}finally{clearTimeout(X)}}async stopPoller($=30000){if(clearTimeout(this.poller),this.cacheProvider)try{let Z=this.cacheProvider.shutdown();if(Z instanceof Promise)await Promise.race([Z,new Promise((X,Q)=>setTimeout(()=>Q(Error(`Cache shutdown timeout after ${$}ms`)),$))])}catch(Z){this.onError?.(Error(`Error during cache shutdown: ${Z}`))}}}async function J38($,Z,X=""){let Q=await Y38(`${$}.${Z}${X}`);return parseInt(Q.slice(0,15),16)/RN4}function H38($,Z,X){let{key:Q,value:Y}=$,G=$.operator||"exact";if(Q in Z){if(G==="is_not_set")throw new f4("Operator is_not_set is not supported")}else throw new f4(`Property ${Q} not found in propertyValues`);let J=Z[Q];if(J==null&&!IN4.includes(G)){if(X)X(`Property ${Q} cannot have a value of null/undefined with the ${G} operator`);return!1}function K(H,U){if(Array.isArray(H))return H.map((N)=>String(N).toLowerCase()).includes(String(U).toLowerCase());return String(H).toLowerCase()===String(U).toLowerCase()}function W(H,U,N){if(N==="gt")return H>U;if(N==="gte")return H>=U;if(N==="lt")return H<U;if(N==="lte")return H<=U;throw Error(`Invalid operator: ${N}`)}switch(G){case"exact":return K(Y,J);case"is_not":return!K(Y,J);case"is_set":return Q in Z;case"icontains":return String(J).toLowerCase().includes(String(Y).toLowerCase());case"not_icontains":return!String(J).toLowerCase().includes(String(Y).toLowerCase());case"regex":return K38(String(Y))&&String(J).match(String(Y))!==null;case"not_regex":return K38(String(Y))&&String(J).match(String(Y))===null;case"gt":case"gte":case"lt":case"lte":{let H=typeof Y=="number"?Y:null;if(typeof Y=="string")try{H=parseFloat(Y)}catch(U){}if(H==null||J==null)return W(String(J),String(Y),G);if(typeof J=="string")return W(J,String(Y),G);return W(J,H,G)}case"is_date_after":case"is_date_before":{if(typeof Y=="boolean")throw new f4("Date operations cannot be performed on boolean values");let H=SN4(String(Y));if(H==null)H=W38(Y);if(H==null)throw new f4(`Invalid date: ${Y}`);let U=W38(J);if(["is_date_before"].includes(G))return U<H;return U>H}case"semver_eq":return D3(T7(String(J)),T7(String(Y)))===0;case"semver_neq":return D3(T7(String(J)),T7(String(Y)))!==0;case"semver_gt":return D3(T7(String(J)),T7(String(Y)))>0;case"semver_gte":return D3(T7(String(J)),T7(String(Y)))>=0;case"semver_lt":return D3(T7(String(J)),T7(String(Y)))<0;case"semver_lte":return D3(T7(String(J)),T7(String(Y)))<=0;case"semver_tilde":{let H=T7(String(J)),{lower:U,upper:N}=MN4(String(Y));return D3(H,U)>=0&&D3(H,N)<0}case"semver_caret":{let H=T7(String(J)),{lower:U,upper:N}=VN4(String(Y));return D3(H,U)>=0&&D3(H,N)<0}case"semver_wildcard":{let H=T7(String(J)),{lower:U,upper:N}=kN4(String(Y));return D3(H,U)>=0&&D3(H,N)<0}default:throw new f4(`Unknown operator: ${G}`)}}function qN4($,Z){if(!($ in Z))throw new nW(`cohort ${$} not found in local cohorts - likely a static cohort that requires server evaluation`)}function U38($,Z,X,Q=!1){let Y=String($.value);qN4(Y,X);let G=X[Y];return N38(G,Z,X,Q)}function N38($,Z,X,Q=!1){if(!$)return!0;let{type:Y,values:G}=$;if(!G||G.length===0)return!0;let J=!1;if("values"in G[0]){for(let K of G)try{let W=N38(K,Z,X,Q);if(Y==="AND"){if(!W)return!1}else if(W)return!0}catch(W){if(W instanceof nW)throw W;if(W instanceof f4){if(Q)console.debug(`Failed to compute property ${K} locally: ${W}`);J=!0}else throw W}if(J)throw new f4("Can't match cohort without a given cohort property value");return Y==="AND"}for(let K of G)try{let W;if(K.type==="cohort")W=U38(K,Z,X,Q);else if(K.type==="flag"){if(Q)console.warn(`[FEATURE FLAGS] Flag dependency filters are not supported in local evaluation. Skipping condition with dependency on flag '${K.key||"unknown"}'`);continue}else W=H38(K,Z);let H=K.negation||!1;if(Y==="AND"){if(!W&&!H)return!1;if(W&&H)return!1}else{if(W&&!H)return!0;if(!W&&H)return!0}}catch(W){if(W instanceof nW)throw W;if(W instanceof f4){if(Q)console.debug(`Failed to compute property ${K} locally: ${W}`);J=!0}else throw W}if(J)throw new f4("can't match cohort without a given cohort property value");return Y==="AND"}function K38($){try{return new RegExp($),!0}catch(Z){return!1}}function T7($){let X=String($).trim().replace(/^[vV]/,"").split("-")[0].split("+")[0];if(!X||X.startsWith("."))throw new f4(`Invalid semver: ${$}`);let Q=X.split("."),Y=(W)=>{if(W===void 0||W==="")return 0;if(!/^\d+$/.test(W))throw new f4(`Invalid semver: ${$}`);return parseInt(W,10)},G=Y(Q[0]),J=Y(Q[1]),K=Y(Q[2]);return[G,J,K]}function D3($,Z){for(let X=0;X<3;X++){if($[X]<Z[X])return-1;if($[X]>Z[X])return 1}return 0}function MN4($){let Z=T7($),X=[Z[0],Z[1],Z[2]],Q=[Z[0],Z[1]+1,0];return{lower:X,upper:Q}}function VN4($){let Z=T7($),[X,Q,Y]=Z,G=[X,Q,Y],J;return J=X>0?[X+1,0,0]:Q>0?[0,Q+1,0]:[0,0,Y+1],{lower:G,upper:J}}function kN4($){let X=String($).trim().replace(/^[vV]/,"").replace(/\.\*$/,"").replace(/\*$/,"");if(!X)throw new f4(`Invalid wildcard semver: ${$}`);let Q=X.split("."),Y=parseInt(Q[0],10);if(isNaN(Y))throw new f4(`Invalid wildcard semver: ${$}`);let G,J;if(Q.length===1)G=[Y,0,0],J=[Y+1,0,0];else{let K=parseInt(Q[1],10);if(isNaN(K))throw new f4(`Invalid wildcard semver: ${$}`);G=[Y,K,0],J=[Y,K+1,0]}return{lower:G,upper:J}}function W38($){if($ instanceof Date)return $;if(typeof $=="string"||typeof $=="number"){let Z=new Date($);if(!isNaN(Z.valueOf()))return Z;throw new f4(`${$} is in an invalid date format`)}throw new f4(`The date provided ${$} must be a string, number, or date object`)}function SN4($){let Z=/^-?(?<number>[0-9]+)(?<interval>[a-z])$/,X=$.match(Z),Q=new Date(new Date().toISOString());if(!X)return null;{if(!X.groups)return null;let Y=parseInt(X.groups.number);if(Y>=1e4)return null;let G=X.groups.interval;if(G=="h")Q.setUTCHours(Q.getUTCHours()-Y);else if(G=="d")Q.setUTCDate(Q.getUTCDate()-Y);else if(G=="w")Q.setUTCDate(Q.getUTCDate()-7*Y);else if(G=="m")Q.setUTCMonth(Q.getUTCMonth()-Y);else{if(G!="y")return null;Q.setUTCFullYear(Q.getUTCFullYear()-Y)}return Q}}var TN4=60000,RN4=1152921504606847000,IN4,yg,f4,nW;var F38=O(()=>{Ez();G38();IN4=["is_not"];yg=class yg extends Error{constructor($){super();Error.captureStackTrace(this,this.constructor),this.name="ClientError",this.message=$,Object.setPrototypeOf(this,yg.prototype)}};f4=class f4 extends Error{constructor($){super($);this.name=this.constructor.name,Error.captureStackTrace(this,this.constructor),Object.setPrototypeOf(this,f4.prototype)}};nW=class nW extends Error{constructor($){super($);this.name=this.constructor.name,Error.captureStackTrace(this,this.constructor),Object.setPrototypeOf(this,nW.prototype)}}});class fs0{getProperty($){return this._memoryStorage[$]}setProperty($,Z){this._memoryStorage[$]=Z!==null?Z:void 0}constructor(){this._memoryStorage={}}}var w38=()=>{};function bN4($){return typeof $=="string"?$.trim():""}function yN4($){return(typeof $=="string"?$.trim():"")||void 0}function gN4($){return(typeof $=="string"?$.trim():"")||fN4}var CN4=100,B38=30000,_N4=50000,vN4=50,xN4=500,fN4="https://us.i.posthog.com",bs0;var O38=O(()=>{Q38();Ez();vs0();F38();xY0();w38();bs0=class bs0 extends MY0{constructor($,Z={}){let X=bN4($),Q={...Z,host:gN4(Z.host),personalApiKey:yN4(Z.personalApiKey)};if(super(X,Q),this._memoryStorage=new fs0,this.options=Q,this.context=this.initializeContext(),this.options.featureFlagsPollingInterval=typeof Q.featureFlagsPollingInterval=="number"?Math.max(Q.featureFlagsPollingInterval,CN4):B38,typeof Q.waitUntilDebounceMs=="number")this.options.waitUntilDebounceMs=Math.max(Q.waitUntilDebounceMs,0);if(typeof Q.waitUntilMaxWaitMs=="number")this.options.waitUntilMaxWaitMs=Math.max(Q.waitUntilMaxWaitMs,0);if(Q.personalApiKey){if(Q.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(Q.enableLocalEvaluation!==!1)this.featureFlagsPoller=new xs0({pollingInterval:this.options.featureFlagsPollingInterval,personalApiKey:Q.personalApiKey,projectApiKey:X,timeout:Q.requestTimeout??1e4,host:this.host,fetch:Q.fetch,onError:(G)=>{this._events.emit("error",G)},onLoad:(G)=>{this._events.emit("localEvaluationFlagsLoaded",G)},customHeaders:this.getCustomHeaders(),cacheProvider:Q.flagDefinitionCacheProvider,strictLocalEvaluation:Q.strictLocalEvaluation})}this.errorTracking=new L3(this,Q,this._logger),this.distinctIdHasSentFlagCalls={},this.maxCacheSize=Q.maxCacheSize||_N4}enqueue($,Z,X){super.enqueue($,Z,X),this.scheduleDebouncedFlush()}async flush(){let $=super.flush(),Z=this.options.waitUntil;if(Z&&!this._waitUntilCycle)try{Z($.catch(()=>{}))}catch{}return $}scheduleDebouncedFlush(){let $=this.options.waitUntil;if(!$)return;if(this.disabled||this.optedOut)return;if(!this._waitUntilCycle){let G,J=new Promise((K)=>{G=K});try{$(J)}catch{return}this._waitUntilCycle={resolve:G,startedAt:Date.now(),timer:void 0}}let Z=Date.now()-this._waitUntilCycle.startedAt,X=this.options.waitUntilMaxWaitMs??xN4,Q=Z>=X;if(this._waitUntilCycle.timer!==void 0)clearTimeout(this._waitUntilCycle.timer);if(Q)return void this.resolveWaitUntilFlush();let Y=this.options.waitUntilDebounceMs??vN4;this._waitUntilCycle.timer=UN(()=>{this.resolveWaitUntilFlush()},Y)}_consumeWaitUntilCycle(){let $=this._waitUntilCycle;if($)clearTimeout($.timer),this._waitUntilCycle=void 0;return $?.resolve}async resolveWaitUntilFlush(){let $=this._consumeWaitUntilCycle();try{await super.flush()}catch{}finally{$?.()}}getPersistedProperty($){return this._memoryStorage.getProperty($)}setPersistedProperty($,Z){return this._memoryStorage.setProperty($,Z)}fetch($,Z){return this.options.fetch?this.options.fetch($,Z):fetch($,Z)}getLibraryVersion(){return X38}getCustomUserAgent(){return`${this.getLibraryId()}/${this.getLibraryVersion()}`}enable(){return super.optIn()}disable(){return super.optOut()}debug($=!0){super.debug($),this.featureFlagsPoller?.debug($)}capture($){if(typeof $=="string")this._logger.warn("Called capture() with a string as the first argument when an object was expected.");if($.event==="$exception"&&!$._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($).then(({distinctId:Z,event:X,properties:Q,options:Y})=>super.captureStateless(Z,X,Q,{timestamp:Y.timestamp,disableGeoip:Y.disableGeoip,uuid:Y.uuid})).catch((Z)=>{if(Z)console.error(Z)}))}async captureImmediate($){if(typeof $=="string")this._logger.warn("Called captureImmediate() with a string as the first argument when an object was expected.");if($.event==="$exception"&&!$._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($).then(({distinctId:Z,event:X,properties:Q,options:Y})=>super.captureStatelessImmediate(Z,X,Q,{timestamp:Y.timestamp,disableGeoip:Y.disableGeoip,uuid:Y.uuid})).catch((Z)=>{if(Z)console.error(Z)}))}identify({distinctId:$,properties:Z={},disableGeoip:X}){let{$set:Q,$set_once:Y,$anon_distinct_id:G,...J}=Z,H={$set:Q||J,$set_once:Y||{},$anon_distinct_id:G??void 0};super.identifyStateless($,H,{disableGeoip:X})}async identifyImmediate({distinctId:$,properties:Z={},disableGeoip:X}){let{$set:Q,$set_once:Y,$anon_distinct_id:G,...J}=Z,H={$set:Q||J,$set_once:Y||{},$anon_distinct_id:G??void 0};super.identifyStatelessImmediate($,H,{disableGeoip:X})}alias($){super.aliasStateless($.alias,$.distinctId,void 0,{disableGeoip:$.disableGeoip})}async aliasImmediate($){await super.aliasStatelessImmediate($.alias,$.distinctId,void 0,{disableGeoip:$.disableGeoip})}isLocalEvaluationReady(){return this.featureFlagsPoller?.isLocalEvaluationReady()??!1}async waitForLocalEvaluationReady($=B38){if(this.isLocalEvaluationReady())return!0;if(this.featureFlagsPoller===void 0)return!1;return new Promise((Z)=>{let X=setTimeout(()=>{Q(),Z(!1)},$),Q=this._events.on("localEvaluationFlagsLoaded",(Y)=>{clearTimeout(X),Q(),Z(Y>0)})})}_resolveDistinctId($,Z){if(typeof $=="string")return{distinctId:$,options:Z};return{distinctId:this.context?.get()?.distinctId,options:$}}async _getFeatureFlagResult($,Z,X={},Q){let Y=X.sendFeatureFlagEvents??!0;if(this._flagOverrides!==void 0&&$ in this._flagOverrides){let P=this._flagOverrides[$];if(P===void 0)return;let I=this._payloadOverrides?.[$];return{key:$,enabled:P!==!1,variant:typeof P=="string"?P:void 0,payload:I}}let{groups:G,disableGeoip:J}=X,{onlyEvaluateLocally:K,personProperties:W,groupProperties:H}=X,U=this.addLocalPersonAndGroupProperties(Z,G,W,H);W=U.allPersonProperties,H=U.allGroupProperties;let N=this.createFeatureFlagEvaluationContext(Z,G,W,H);if(K==null)K=this.options.strictLocalEvaluation??!1;let F,w=!1,B,L,D,E,z,j;if(this.featureFlagsPoller!==void 0){await this.featureFlagsPoller?.loadFeatureFlags();let P=this.featureFlagsPoller?.featureFlagsByKey[$];if(P)try{let I=await this.featureFlagsPoller?.computeFlagAndPayloadLocally(P,N,{matchValue:Q});if(I){w=!0;let V=I.value;E=P.id,j="Evaluated locally",F={key:$,enabled:V!==!1,variant:typeof V=="string"?V:void 0,payload:I.payload??void 0}}}catch(I){if(I instanceof nW||I instanceof f4)this._logger?.info(`${I.name} when computing flag locally: ${$}: ${I.message}`);else throw I}}if(!w&&!K){let P=await super.getFeatureFlagDetailsStateless(N.distinctId,N.groups,N.personProperties,N.groupProperties,J,[$]);if(P===void 0)D=Lt.UNKNOWN_ERROR;else{B=P.requestId,L=P.evaluatedAt;let I=[];if(P.errorsWhileComputingFlags)I.push(Lt.ERRORS_WHILE_COMPUTING);if(P.quotaLimited?.includes("feature_flags"))I.push(Lt.QUOTA_LIMITED);let V=P.flags[$];if(V===void 0)I.push(Lt.FLAG_MISSING);else{E=V.metadata?.id,z=V.metadata?.version,j=V.reason?.description??V.reason?.code;let M;if(V.metadata?.payload!==void 0)try{M=JSON.parse(V.metadata.payload)}catch{M=V.metadata.payload}F={key:$,enabled:V.enabled,variant:V.variant,payload:M}}if(I.length>0)D=I.join(",")}}if(Y){let P=F===void 0?void 0:F.enabled===!1?!1:F.variant??!0,I=`${$}_${P}`;if(!(Z in this.distinctIdHasSentFlagCalls)||!this.distinctIdHasSentFlagCalls[Z].includes(I)){if(Object.keys(this.distinctIdHasSentFlagCalls).length>=this.maxCacheSize)this.distinctIdHasSentFlagCalls={};if(Array.isArray(this.distinctIdHasSentFlagCalls[Z]))this.distinctIdHasSentFlagCalls[Z].push(I);else this.distinctIdHasSentFlagCalls[Z]=[I];let V={$feature_flag:$,$feature_flag_response:P,$feature_flag_id:E,$feature_flag_version:z,$feature_flag_reason:j,locally_evaluated:w,[`$feature/${$}`]:P,$feature_flag_request_id:B,$feature_flag_evaluated_at:w?Date.now():L};if(w&&this.featureFlagsPoller){let M=this.featureFlagsPoller.getFlagDefinitionsLoadedAt();if(M!==void 0)V.$feature_flag_definitions_loaded_at=M}if(D)V.$feature_flag_error=D;this.capture({distinctId:Z,event:"$feature_flag_called",properties:V,groups:G,disableGeoip:J})}}if(F!==void 0&&this._payloadOverrides!==void 0&&$ in this._payloadOverrides)F={...F,payload:this._payloadOverrides[$]};return F}async getFeatureFlag($,Z,X){let Q=await this._getFeatureFlagResult($,Z,{...X,sendFeatureFlagEvents:X?.sendFeatureFlagEvents??this.options.sendFeatureFlagEvent??!0});if(Q===void 0)return;if(Q.enabled===!1)return!1;return Q.variant??!0}async getFeatureFlagPayload($,Z,X,Q){if(this._payloadOverrides!==void 0&&$ in this._payloadOverrides)return this._payloadOverrides[$];let Y=await this._getFeatureFlagResult($,Z,{...Q,sendFeatureFlagEvents:!1},X);if(Y===void 0)return;return Y.payload??null}async getFeatureFlagResult($,Z,X){let{distinctId:Q,options:Y}=this._resolveDistinctId(Z,X);if(!Q)return void this._logger.warn("[PostHog] distinctId is required \u2014 pass it explicitly or use withContext()");return this._getFeatureFlagResult($,Q,{...Y,sendFeatureFlagEvents:Y?.sendFeatureFlagEvents??this.options.sendFeatureFlagEvent??!0})}async getRemoteConfigPayload($){if(!this.options.personalApiKey)throw Error("Personal API key is required for remote config payload decryption");let Z=await this._requestRemoteConfigPayload($);if(!Z)return;let X=await Z.json();if(typeof X=="string")try{return JSON.parse(X)}catch(Q){}return X}async isFeatureEnabled($,Z,X){let Q=await this.getFeatureFlag($,Z,X);if(Q===void 0)return;return!!Q||!1}async getAllFlags($,Z){let{distinctId:X,options:Q}=this._resolveDistinctId($,Z);if(!X)return this._logger.warn("[PostHog] distinctId is required to get feature flags \u2014 pass it explicitly or use withContext()"),{};return(await this.getAllFlagsAndPayloads(X,Q)).featureFlags||{}}async getAllFlagsAndPayloads($,Z){let{distinctId:X,options:Q}=this._resolveDistinctId($,Z);if(!X)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:Y,disableGeoip:G,flagKeys:J}=Q||{},{onlyEvaluateLocally:K,personProperties:W,groupProperties:H}=Q||{},U=this.addLocalPersonAndGroupProperties(X,Y,W,H);W=U.allPersonProperties,H=U.allGroupProperties;let N=this.createFeatureFlagEvaluationContext(X,Y,W,H);if(K==null)K=this.options.strictLocalEvaluation??!1;let F=await this.featureFlagsPoller?.getAllFlagsAndPayloads(N,J),w={},B={},L=!0;if(F)w=F.response,B=F.payloads,L=F.fallbackToFlags;if(L&&!K){let D=await super.getFeatureFlagsAndPayloadsStateless(N.distinctId,N.groups,N.personProperties,N.groupProperties,G,J);w={...w,...D.flags||{}},B={...B,...D.payloads||{}}}if(this._flagOverrides!==void 0)w={...w,...this._flagOverrides};if(this._payloadOverrides!==void 0)B={...B,...this._payloadOverrides};return{featureFlags:w,featureFlagPayloads:B}}groupIdentify({groupType:$,groupKey:Z,properties:X,distinctId:Q,disableGeoip:Y}){super.groupIdentifyStateless($,Z,X,{disableGeoip:Y},Q)}async reloadFeatureFlags(){await this.featureFlagsPoller?.loadFeatureFlags(!0)}overrideFeatureFlags($){let Z=(X)=>Object.fromEntries(X.map((Q)=>[Q,!0]));if($===!1){this._flagOverrides=void 0,this._payloadOverrides=void 0;return}if(Array.isArray($)){this._flagOverrides=Z($);return}if(this._isFeatureFlagOverrideOptions($)){if("flags"in $){if($.flags===!1)this._flagOverrides=void 0;else if(Array.isArray($.flags))this._flagOverrides=Z($.flags);else if($.flags!==void 0)this._flagOverrides={...$.flags}}if("payloads"in $){if($.payloads===!1)this._payloadOverrides=void 0;else if($.payloads!==void 0)this._payloadOverrides={...$.payloads}}return}this._flagOverrides={...$}}_isFeatureFlagOverrideOptions($){if(typeof $!="object"||$===null||Array.isArray($))return!1;let Z=$;if("flags"in Z){let X=Z.flags;if(X===!1||Array.isArray(X)||typeof X=="object"&&X!==null)return!0}if("payloads"in Z){let X=Z.payloads;if(X===!1||typeof X=="object"&&X!==null)return!0}return!1}withContext($,Z,X){if(!this.context)return Z();return this.context.run($,Z,X)}getContext(){return this.context?.get()}enterContext($,Z){this.context?.enter($,Z)}async _shutdown($){let Z=this._consumeWaitUntilCycle();await this.featureFlagsPoller?.stopPoller($),this.errorTracking.shutdown();try{return await super._shutdown($)}finally{Z?.()}}async _requestRemoteConfigPayload($){if(!this.options.personalApiKey)return;let Z=`${this.host}/api/projects/@current/feature_flags/${$}/remote_config?token=${encodeURIComponent(this.apiKey)}`,X={method:"GET",headers:{...this.getCustomHeaders(),"Content-Type":"application/json",Authorization:`Bearer ${this.options.personalApiKey}`}},Q=null;if(this.options.requestTimeout&&typeof this.options.requestTimeout=="number"){let Y=new AbortController;Q=UN(()=>{Y.abort()},this.options.requestTimeout),X.signal=Y.signal}try{return await this.fetch(Z,X)}catch(Y){this._events.emit("error",Y);return}finally{if(Q)clearTimeout(Q)}}extractPropertiesFromEvent($,Z){if(!$)return{personProperties:{},groupProperties:{}};let X={},Q={};for(let[Y,G]of Object.entries($))if(MY8(G)&&Z&&Y in Z){let J={};for(let[K,W]of Object.entries(G))J[String(K)]=String(W);Q[String(Y)]=J}else X[String(Y)]=String(G);return{personProperties:X,groupProperties:Q}}async getFeatureFlagsForEvent($,Z,X,Q){let Y=Q?.personProperties||{},G=Q?.groupProperties||{},J=Q?.flagKeys;if(Q?.onlyEvaluateLocally??this.options.strictLocalEvaluation??!1)if(!((this.featureFlagsPoller?.featureFlags?.length||0)>0))return{};else{let W={};for(let[H,U]of Object.entries(Z||{}))W[H]=String(U);return await this.getAllFlags($,{groups:W,personProperties:Y,groupProperties:G,disableGeoip:X,onlyEvaluateLocally:!0,flagKeys:J})}if((this.featureFlagsPoller?.featureFlags?.length||0)>0){let W={};for(let[H,U]of Object.entries(Z||{}))W[H]=String(U);return await this.getAllFlags($,{groups:W,personProperties:Y,groupProperties:G,disableGeoip:X,onlyEvaluateLocally:!0,flagKeys:J})}return(await super.getFeatureFlagsStateless($,Z,Y,G,X)).flags}addLocalPersonAndGroupProperties($,Z,X,Q){let Y={distinct_id:$,...X||{}},G={};if(Z)for(let J of Object.keys(Z))G[J]={$group_key:Z[J],...Q?.[J]||{}};return{allPersonProperties:Y,allGroupProperties:G}}createFeatureFlagEvaluationContext($,Z,X,Q){return{distinctId:$,groups:Z||{},personProperties:X||{},groupProperties:Q||{},evaluationCache:{}}}captureException($,Z,X,Q){if(!L3.isPreviouslyCapturedError($)){let Y=Error("PostHog syntheticException");this.addPendingPromise(L3.buildEventMessage($,{syntheticException:Y},Z,X).then((G)=>this.capture({...G,uuid:Q})))}}async captureExceptionImmediate($,Z,X){if(!L3.isPreviouslyCapturedError($)){let Q=Error("PostHog syntheticException");return this.addPendingPromise(L3.buildEventMessage($,{syntheticException:Q},Z,X).then((Y)=>this.captureImmediate(Y)))}}async prepareEventMessage($){let{distinctId:Z,event:X,properties:Q,groups:Y,sendFeatureFlags:G,timestamp:J,disableGeoip:K,uuid:W}=$,H=this.context?.get(),U=Z||H?.distinctId,N={...this.props,...H?.properties||{},...Q||{}};if(!U)U=yB(),N.$process_person_profile=!1;if(H?.sessionId&&!N.$session_id)N.$session_id=H.sessionId;let F=this._runBeforeSend({distinctId:U,event:X,properties:N,groups:Y,sendFeatureFlags:G,timestamp:J,disableGeoip:K,uuid:W});if(!F)return Promise.reject(null);let w=await Promise.resolve().then(async()=>{if(G){let B=typeof G=="object"?G:void 0;return await this.getFeatureFlagsForEvent(F.distinctId,Y,K,B)}return F.event,{}}).then((B)=>{let L={};if(B)for(let[E,z]of Object.entries(B))L[`$feature/${E}`]=z;let D=Object.keys(B||{}).filter((E)=>B?.[E]!==!1).sort();if(D.length>0)L.$active_feature_flags=D;return L}).catch(()=>({})).then((B)=>{return{...B,...F.properties||{},$groups:F.groups||Y}});if(F.event==="$pageview"&&this.options.__preview_capture_bot_pageviews&&typeof w.$raw_user_agent=="string"){if(AY8(w.$raw_user_agent,this.options.custom_blocked_useragents||[]))F.event="$bot_pageview",w.$browser_type="bot"}return{distinctId:F.distinctId,event:F.event,properties:w,options:{timestamp:F.timestamp,disableGeoip:F.disableGeoip,uuid:F.uuid}}}_runBeforeSend($){let Z=this.options.before_send;if(!Z)return $;let X=Array.isArray(Z)?Z:[Z],Q=$;for(let Y of X){if(Q=Y(Q),!Q)return this._logger.info(`Event '${$.event}' was rejected in beforeSend function`),null;if(!Q.properties||Object.keys(Q.properties).length===0){let G=`Event '${Q.event}' has no properties after beforeSend function, this is likely an error.`;this._logger.warn(G)}}return Q}}});import{AsyncLocalStorage as hN4}from"async_hooks";class ys0{constructor(){this.storage=new hN4}get(){return this.storage.getStore()}run($,Z,X){return this.storage.run(this.resolve($,X),Z)}enter($,Z){this.storage.enterWith(this.resolve($,Z))}resolve($,Z){if(Z?.fresh===!0)return $;let X=this.get()||{};return{distinctId:$.distinctId??X.distinctId,sessionId:$.sessionId??X.sessionId,properties:{...X.properties||{},...$.properties||{}}}}}var L38=()=>{};function uN4($,{organization:Z,projectId:X,prefix:Q,severityAllowList:Y=["error"],sendExceptionsToPostHog:G=!0}={}){return(J)=>{if(!(Y==="*"||Y.includes(J.level)))return J;if(!J.tags)J.tags={};let W=J.tags[D38.POSTHOG_ID_TAG];if(W===void 0)return J;let H=$.options.host??"https://us.i.posthog.com",U=new URL(`/project/${$.apiKey}/person/${W}`,H).toString();J.tags["PostHog Person URL"]=U;let N=J.exception?.values||[],F=N.map((B)=>({...B,stacktrace:B.stacktrace?{...B.stacktrace,type:"raw",frames:(B.stacktrace.frames||[]).map((L)=>({...L,platform:"node:javascript"}))}:void 0})),w={$exception_message:N[0]?.value||J.message,$exception_type:N[0]?.type,$exception_level:J.level,$exception_list:F,$sentry_event_id:J.event_id,$sentry_exception:J.exception,$sentry_exception_message:N[0]?.value||J.message,$sentry_exception_type:N[0]?.type,$sentry_tags:J.tags};if(Z&&X)w.$sentry_url=(Q||"https://sentry.io/organizations/")+Z+"/issues/?project="+X+"&query="+J.event_id;if(G)$.capture({event:"$exception",distinctId:W,properties:w});return J}}var D38;var E38=O(()=>{D38=class D38{static#$=this.POSTHOG_ID_TAG="posthog_distinct_id";constructor($,Z,X,Q,Y){this.name="posthog-node",this.name="posthog-node",this.setupOnce=function(G,J){let K=J()?.getClient()?.getDsn()?.projectId;G(uN4($,{organization:Z,projectId:K,prefix:X,severityAllowList:Q,sendExceptionsToPostHog:Y??!0}))}}}});var z38=O(()=>{xY0()});var j38=O(()=>{Ez();E38();z38();vs0()});var gs0;var P38=O(()=>{EY8();rG8();sG8();xY0();O38();Ez();L38();j38();L3.errorPropertiesBuilder=new oQ.ErrorPropertiesBuilder([new oQ.EventCoercer,new oQ.ErrorCoercer,new oQ.ObjectCoercer,new oQ.StringCoercer,new oQ.PrimitiveCoercer],oQ.createStackParser("node:javascript",oQ.nodeStackLineParser),[DY8(),pG8,aG8()]);gs0=class gs0 extends bs0{getLibraryId(){return"posthog-node"}initializeContext(){return new ys0}}});import{createHash as cN4}from"crypto";function lN4(){return{capture:()=>{},identify:()=>{},captureException:()=>{},groupIdentify:()=>{},shutdown:async()=>{}}}function T38($){let Z=cN4("sha256").update($).digest();Z[6]=(Z[6]??0)&15|64,Z[8]=(Z[8]??0)&63|128;let X=Z.subarray(0,16).toString("hex");return`${X.slice(0,8)}-${X.slice(8,12)}-${X.slice(12,16)}-${X.slice(16,20)}-${X.slice(20,32)}`}function YG($){n1.capture({distinctId:$.userId??`org:${$.organizationId}`,event:$.event,groups:{organization:$.organizationId},...$.uuid?{uuid:$.uuid}:{},...$.timestamp?{timestamp:$.timestamp}:{},properties:{organization_id:$.organizationId,...$.userId?{}:{$process_person_profile:!1},...$.properties}})}var hs0,A38,n1;var b4=O(()=>{P38();hs0=process.env.POSTHOG_KEY,A38=process.env.POSTHOG_HOST;n1=hs0?new gs0(hs0,{...A38?{host:A38}:{},enableExceptionAutocapture:!0,flushAt:1,flushInterval:0}):lN4();if(hs0){let $=()=>{n1.shutdown().catch(()=>{})};process.on("SIGTERM",$),process.on("SIGINT",$)}});class us0{apiKey;constructor($){this.apiKey=$}async sendEmail({to:$,from:Z,subject:X,html:Q}){let Y=await fetch("https://api.resend.com/emails",{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${this.apiKey}`},body:JSON.stringify({to:$,from:Z,subject:X,html:Q})});if(!Y.ok)throw Error(`Failed to send email: ${Y.statusText}`)}}class cs0{apiKey;constructor($){this.apiKey=$}async sendEmail({to:$,from:Z,subject:X,html:Q}){let Y=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:$}]}],from:{email:Z},subject:X,content:[{type:"text/html",value:Q}]})});if(!Y.ok){let G=await Y.text();throw Error(`Failed to send email via SendGrid: ${Y.statusText} - ${G}`)}}}function NN($){switch($.provider){case"resend":{let Z=new us0($.config.apiKey);return({to:X,subject:Q,html:Y})=>Z.sendEmail({to:X,from:$.config.fromEmail,subject:Q,html:Y})}case"sendgrid":{let Z=new cs0($.config.apiKey);return({to:X,subject:Q,html:Y})=>Z.sendEmail({to:X,from:$.config.fromEmail,subject:Q,html:Y})}}}function FN($,Z){return $.find((X)=>X.id===Z)}var Dt=()=>{};function wN({preheader:$="",heading:Z,subheading:X,body:Q,footnote:Y}){return`<!DOCTYPE html>
|
|
1646
1646
|
<html lang="en">
|
|
1647
1647
|
<head>
|