decocms 4.218.3 → 4.218.4
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-DFFt4-0W.js → AlertCircle-DdGNkFQM.js} +1 -1
- package/dist/client/assets/{AreaChart-Dg1cDQyV.js → AreaChart-DlFsZs9X.js} +1 -1
- package/dist/client/assets/{ArrowLeft-sdbtjVX4.js → ArrowLeft-C-GLcDfp.js} +1 -1
- package/dist/client/assets/{ArrowUp-CuRTWkNy.js → ArrowUp-ySgDY-5l.js} +1 -1
- package/dist/client/assets/{ArrowUpRight-JA3pH_ju.js → ArrowUpRight-DQB650fs.js} +1 -1
- package/dist/client/assets/{Check-CM5CCwi2.js → Check-CPtMlymw.js} +1 -1
- package/dist/client/assets/{CheckCircle-DePPVoh8.js → CheckCircle-C6X7EvCa.js} +1 -1
- package/dist/client/assets/{ChevronDown-DST4rqrY.js → ChevronDown-Dsgy-WoP.js} +1 -1
- package/dist/client/assets/{ChevronRight-BTfv6_YO.js → ChevronRight-DMEQjRnt.js} +1 -1
- package/dist/client/assets/{ChevronUp-CWAYyXvK.js → ChevronUp-DcY3ukst.js} +1 -1
- package/dist/client/assets/{Copy01-BXcyQqBF.js → Copy01-Ozoa_wjq.js} +1 -1
- package/dist/client/assets/{CpuChip01-C2c37ZN9.js → CpuChip01-Cq5fmfte.js} +1 -1
- package/dist/client/assets/{CreditCard01-D5MDq146.js → CreditCard01-CoXlk6Q3.js} +1 -1
- package/dist/client/assets/{DotsVertical-DQ1DMLzH.js → DotsVertical-oTGtDTjX.js} +1 -1
- package/dist/client/assets/{Eye-CHLIWyLU.js → Eye-CO7R7ZAf.js} +1 -1
- package/dist/client/assets/{FilterLines-LAwgRE7I.js → FilterLines-C-LnKl8J.js} +1 -1
- package/dist/client/assets/{Globe01-DPILdW7I.js → Globe01-DcPWEsL7.js} +1 -1
- package/dist/client/assets/{Globe04-Bmqq9Js1.js → Globe04-ChK5b_7y.js} +1 -1
- package/dist/client/assets/{HardDrive-BV58nDw2.js → HardDrive-BmUYzZZM.js} +1 -1
- package/dist/client/assets/{Key01-hoXWzpl6.js → Key01-BTli14k5.js} +1 -1
- package/dist/client/assets/{LayoutLeft-CbTNCTH2.js → LayoutLeft-DUygHYWm.js} +1 -1
- package/dist/client/assets/{LinkExternal01-BqriT7t4.js → LinkExternal01-DoozuFqY.js} +1 -1
- package/dist/client/assets/{LogOut01-DtJxir5h.js → LogOut01-cAIhPKFa.js} +1 -1
- package/dist/client/assets/{Monitor01-C_vqDGlj.js → Monitor01-BjBRULFO.js} +1 -1
- package/dist/client/assets/{Palette-Brgf1DQR.js → Palette-C37mqPNH.js} +1 -1
- package/dist/client/assets/{Play-JNbsz4Z_.js → Play-C_RqBCU4.js} +1 -1
- package/dist/client/assets/{Plus-SYSSNv4j.js → Plus-CldZeOWa.js} +1 -1
- package/dist/client/assets/{SearchLg-Go5GSc0S.js → SearchLg-D8hGueje.js} +1 -1
- package/dist/client/assets/{SearchMd-DqL7hTwM.js → SearchMd-CF4pGlrW.js} +1 -1
- package/dist/client/assets/{Settings02-C6vq0nta.js → Settings02-BdUsxtyw.js} +1 -1
- package/dist/client/assets/{Share07-RFhbVRnm.js → Share07-7JUyJiQZ.js} +1 -1
- package/dist/client/assets/{Shield01-CJySoBJ7.js → Shield01-Dux5DQts.js} +1 -1
- package/dist/client/assets/{Star01-DxAZxETo.js → Star01-Bi4bll6K.js} +1 -1
- package/dist/client/assets/{Stars01-JyoMeA0f.js → Stars01-DcmEXYDU.js} +1 -1
- package/dist/client/assets/{Stars02-CT_FWCOa.js → Stars02-B_FO0NbJ.js} +1 -1
- package/dist/client/assets/{Sun-BOpDRmV4.js → Sun-Gry6ZVnS.js} +1 -1
- package/dist/client/assets/{SwitchHorizontal01-EqK1mi7z.js → SwitchHorizontal01-BuUu8uqc.js} +1 -1
- package/dist/client/assets/{Tool01-BQSslmUM.js → Tool01-wIolZP6f.js} +1 -1
- package/dist/client/assets/{Tool02-CQbUv8wF.js → Tool02-BDvI8IbQ.js} +1 -1
- package/dist/client/assets/{Trash01-Cum35aTY.js → Trash01-hs7-0_-J.js} +1 -1
- package/dist/client/assets/{TrendUp01-Dcw0xb1Z.js → TrendUp01-C9ptPCag.js} +1 -1
- package/dist/client/assets/{Upload01-DGC1bMMT.js → Upload01-DNmMtGWM.js} +1 -1
- package/dist/client/assets/{User01-BnTNVHOf.js → User01-CKrwHP7P.js} +1 -1
- package/dist/client/assets/{Users01-Jw_xBrcX.js → Users01-vL_yCaiB.js} +1 -1
- package/dist/client/assets/{Users03-RQmOG8jM.js → Users03-D0URPeE3.js} +1 -1
- package/dist/client/assets/{X-DTvcbmZT.js → X-BCdC67Ox.js} +1 -1
- package/dist/client/assets/{XCircle-BmJK3BGz.js → XCircle-Ag0qHA5J.js} +1 -1
- package/dist/client/assets/{XClose-C2u09hSi.js → XClose-rRQA5zpK.js} +1 -1
- package/dist/client/assets/{Zap-BdrM68d2.js → Zap-4KJL6al6.js} +1 -1
- package/dist/client/assets/{ZapSquare-2E0JMFH5.js → ZapSquare-DzCHdokL.js} +1 -1
- package/dist/client/assets/{access-gate-uDM_7zCz.js → access-gate-BH5Sez-C.js} +1 -1
- package/dist/client/assets/{agent-icon-B2XkuuIZ.js → agent-icon-DcYsihcV.js} +1 -1
- package/dist/client/assets/{agents-list-BCmpzUl6.js → agents-list-DvSm_yEN.js} +1 -1
- package/dist/client/assets/{ai-providers-DTpiFBIJ.js → ai-providers-UhWBu0Jd.js} +1 -1
- package/dist/client/assets/{alert-Dl4UlyIE.js → alert-CDJpIhC3.js} +1 -1
- package/dist/client/assets/{alert-dialog-BdpxyOWR.js → alert-dialog-DpgVAZ9i.js} +1 -1
- package/dist/client/assets/{api-keys-ByS0Ggvb.js → api-keys-XnLw7fMo.js} +1 -1
- package/dist/client/assets/{app-editor-DfmE2vSB.js → app-editor-DE8iy2OR.js} +1 -1
- package/dist/client/assets/{auth-catchall-DFkupyCL.js → auth-catchall-DqS4oflz.js} +1 -1
- package/dist/client/assets/{auth-entry-Dv0gBFXT.js → auth-entry-DoHc6nfZ.js} +1 -1
- package/dist/client/assets/{auth-CW4_SWK4.js → auth-mjZJx07O.js} +1 -1
- package/dist/client/assets/{auth-split-layout-Dzpb3X-9.js → auth-split-layout-BhEl4XEP.js} +1 -1
- package/dist/client/assets/{authenticate-and-persist-oauth-BnJinf5E.js → authenticate-and-persist-oauth-GciTACn6.js} +1 -1
- package/dist/client/assets/{automation-list-row-xbw8N8rB.js → automation-list-row-Bka_32UT.js} +1 -1
- package/dist/client/assets/{automation-runs-DwMhTsOR.js → automation-runs-DI4JdvY6.js} +1 -1
- package/dist/client/assets/{automations-R3jK7rJx.js → automations-4lDRwm1p.js} +1 -1
- package/dist/client/assets/{avatar-LD7uTgn8.js → avatar-Bj21sqAu.js} +1 -1
- package/dist/client/assets/{badge-La-1Gd3f.js → badge-1LtZaxq4.js} +1 -1
- package/dist/client/assets/{billing-DTM79_B3.js → billing-91FGPknq.js} +1 -1
- package/dist/client/assets/{block-document-DDaT4DoT.js → block-document-D3JhSN8m.js} +1 -1
- package/dist/client/assets/{brand-context-CKkGaFxP.js → brand-context-Bt0rwBRF.js} +1 -1
- package/dist/client/assets/{buckets-ClP9VKHB.js → buckets-BtREwEMK.js} +1 -1
- package/dist/client/assets/{bulk-category-panel-D7zZrzxP.js → bulk-category-panel-xpOHN4j8.js} +1 -1
- package/dist/client/assets/{capability-load-error-kktPx-2r.js → capability-load-error-BarDpNVv.js} +1 -1
- package/dist/client/assets/{card-C1Y5hoYw.js → card-0sMZvtH3.js} +1 -1
- package/dist/client/assets/{cards-DN5CuDLZ.js → cards-COpItEnS.js} +1 -1
- package/dist/client/assets/{category-editor-C6P0D2I0.js → category-editor-BbOCqVz4.js} +1 -1
- package/dist/client/assets/{chat-context-CbG46M7Y.js → chat-context-B2S7r0sT.js} +1 -1
- package/dist/client/assets/{checkbox-AUmi5XJ0.js → checkbox-B_VSU9yh.js} +1 -1
- package/dist/client/assets/{cli-auth-success-qvxsl_Qq.js → cli-auth-success-CRYoBIO0.js} +1 -1
- package/dist/client/assets/{collection-detail-CR1hezgB.js → collection-detail-Doo4-Rvs.js} +1 -1
- package/dist/client/assets/{collection-display-button-CjsEzxWY.js → collection-display-button-ctLdn91E.js} +1 -1
- package/dist/client/assets/{collection-search-DLUOcQUk.js → collection-search-DRwr3LsR.js} +1 -1
- package/dist/client/assets/{collection-table-wrapper-BatKfQXK.js → collection-table-wrapper-ArfjbNpq.js} +1 -1
- package/dist/client/assets/{collection-tabs-Bz1tF2mk.js → collection-tabs-DvEhcOvw.js} +1 -1
- package/dist/client/assets/{command-BhSswNlc.js → command-YukFB27p.js} +1 -1
- package/dist/client/assets/{commerce-onboarding-C7Vt-eoY.js → commerce-onboarding-B1N49AI-.js} +1 -1
- package/dist/client/assets/{connect-BUgXeN4b.js → connect-CV0VFEx_.js} +1 -1
- package/dist/client/assets/{connection-1sOxKThs.js → connection-JRNb5Qx0.js} +1 -1
- package/dist/client/assets/{connection-card-7U1788M3.js → connection-card-DdstXKG4.js} +1 -1
- package/dist/client/assets/{connection-detail-B2RRLseN.js → connection-detail-CIayJVtS.js} +1 -1
- package/dist/client/assets/{connection-form-helpers-BS6kYyhv.js → connection-form-helpers-DvbPhZuF.js} +1 -1
- package/dist/client/assets/{connections-66aSVT5c.js → connections-Ceykl45p.js} +1 -1
- package/dist/client/assets/{decopilot-sse-pool-B3l31zVe.js → decopilot-sse-pool-DfSH8Xb_.js} +1 -1
- package/dist/client/assets/{dialog-eeRVH7f-.js → dialog-DLGvAAG3.js} +1 -1
- package/dist/client/assets/{domain-settings-CY5Zgvkf.js → domain-settings-BXYh9-dC.js} +1 -1
- package/dist/client/assets/{drawer-knqT6-u_.js → drawer-Bf2pJjLy.js} +1 -1
- package/dist/client/assets/{dropdown-menu-DoqO8t3L.js → dropdown-menu-CxEI7tQv.js} +1 -1
- package/dist/client/assets/{empty-state-Ca1hyAS6.js → empty-state-DkW3KEIH.js} +1 -1
- package/dist/client/assets/{extract-connection-data-Br896v1q.js → extract-connection-data-Bc0M2eUh.js} +1 -1
- package/dist/client/assets/{file-explorer-Bv2R8umQ.js → file-explorer-BA5JRH7r.js} +1 -1
- package/dist/client/assets/{file-type-icon-DcBmdm6q.js → file-type-icon-4dbybW_L.js} +1 -1
- package/dist/client/assets/{form-BUvK0gps.js → form-3KTB1XVu.js} +1 -1
- package/dist/client/assets/{general-wtCXjdnk.js → general-DWLcSurI.js} +1 -1
- package/dist/client/assets/{github-repo-picker-Bq4Aj_hU.js → github-repo-picker-8f-gwoHb.js} +1 -1
- package/dist/client/assets/{hooks-C4EMQT7n.js → hooks-DLW5fir8.js} +1 -1
- package/dist/client/assets/{index-CdPrjabh.js → index-391jPKNr.js} +1 -1
- package/dist/client/assets/{index-BmBlNOZV.js → index-ArtXeOYR.js} +1 -1
- package/dist/client/assets/{index-COlsL7Vp.js → index-B9p6s_MV.js} +1 -1
- package/dist/client/assets/{index-DYkaEkD_.js → index-BjXDiUJU.js} +3 -3
- package/dist/client/assets/{index-BJs1XPK9.js → index-CHdsJF9t.js} +43 -43
- package/dist/client/assets/{index-CQjc8WVz.js → index-Cr2LJYk0.js} +1 -1
- package/dist/client/assets/{index-Nxzp-5pI.js → index-Cvi6ktPV.js} +1 -1
- package/dist/client/assets/{index-SW0Z1191.js → index-DHtD68Ej.js} +1 -1
- package/dist/client/assets/{index-DhCoPNZP.js → index-DbFzOJw1.js} +1 -1
- package/dist/client/assets/{index-0J_YrZaK.js → index-axq_zRwn.js} +1 -1
- package/dist/client/assets/{index-redirect-UFGI-Iqs.js → index-redirect-BlTjTyFI.js} +1 -1
- package/dist/client/assets/{input-Bk-Fahae.js → input-_7VKIfaE.js} +1 -1
- package/dist/client/assets/{integration-icon-CwrQsw12.js → integration-icon-Bescs1fX.js} +1 -1
- package/dist/client/assets/{invite-member-dialog-CN7IRS9G.js → invite-member-dialog-DJp9eOs0.js} +1 -1
- package/dist/client/assets/{label-B1LZlq04.js → label-m_RRf4Va.js} +1 -1
- package/dist/client/assets/{layout-Czp4JGEu.js → layout-p88PM0O9.js} +1 -1
- package/dist/client/assets/{login-D86_vWtc.js → login-BfYLZw33.js} +1 -1
- package/dist/client/assets/{mcp-oauth-DfrXAoNq.js → mcp-oauth-C06VuQtX.js} +1 -1
- package/dist/client/assets/{members-D9UsvHGw.js → members-BlElTqJl.js} +1 -1
- package/dist/client/assets/{monaco-editor-B5Q1LawL.js → monaco-editor-Daxxj9pu.js} +1 -1
- package/dist/client/assets/{monitoring-stats-row-BmOQx38b.js → monitoring-stats-row-DDAYzYMU.js} +1 -1
- package/dist/client/assets/{multi-select-DHLRd7Ot.js → multi-select-G9NjT4_9.js} +1 -1
- package/dist/client/assets/{oauth-callback-DU51_hM1.js → oauth-callback-Ca5sh0RM.js} +1 -1
- package/dist/client/assets/{oauth-callback-ai-provider-DpSdpHgM.js → oauth-callback-ai-provider-D7lSv-E9.js} +1 -1
- package/dist/client/assets/{onboarding-Bx-7IoZe.js → onboarding-fFcSPNEl.js} +1 -1
- package/dist/client/assets/{org-layout-CopeAYgV.js → org-layout-C7KTBMrS.js} +1 -1
- package/dist/client/assets/{organization-choice-CnvNPccy.js → organization-choice-Bims6f6s.js} +1 -1
- package/dist/client/assets/{orgs-CnPuoCaS.js → orgs-O7HqizV8.js} +1 -1
- package/dist/client/assets/{page-seo-form-CYbw9wTd.js → page-seo-form-ChdyP5Wg.js} +1 -1
- package/dist/client/assets/{popover-Ds9crm5m.js → popover-CcJu2rLc.js} +1 -1
- package/dist/client/assets/{post-editor-C7LlD9t3.js → post-editor-BpskByuh.js} +1 -1
- package/dist/client/assets/{primitives-DpEWEUxe.js → primitives-C3Uw5XOL.js} +1 -1
- package/dist/client/assets/{profile-ucO8u1Rs.js → profile-CFNKay6T.js} +1 -1
- package/dist/client/assets/{project-app-view-lpg9wVPU.js → project-app-view-eNIvxGqg.js} +1 -1
- package/dist/client/assets/record-editor-BLb7zvTn.js +1 -0
- package/dist/client/assets/redirect-editor-DrSCC_jV.js +1 -0
- package/dist/client/assets/registry-38poLLky.js +2 -0
- package/dist/client/assets/{registry-layout-DlaP3L-4.js → registry-layout-B1HYxW-P.js} +1 -1
- package/dist/client/assets/{reports-C_qSXVUv.js → reports-Cb7EPE9D.js} +1 -1
- package/dist/client/assets/{require-capability-Dqy4t0WH.js → require-capability-Htfu531u.js} +1 -1
- package/dist/client/assets/{required-auth-layout-HUaFW-OK.js → required-auth-layout-CcE00nOq.js} +1 -1
- package/dist/client/assets/{reset-password-CfHsKXSi.js → reset-password-ClJUNLJc.js} +1 -1
- package/dist/client/assets/{roles-DxbXTQNR.js → roles-D6WB1hXb.js} +1 -1
- package/dist/client/assets/{search-input-Bsp0zyWA.js → search-input-DbSh91Za.js} +1 -1
- package/dist/client/assets/{secrets-CwoZv405.js → secrets-DW-1iYjG.js} +1 -1
- package/dist/client/assets/{sections-editor--fIsCWPd.js → sections-editor-CjtSTzEl.js} +1 -1
- package/dist/client/assets/{select-B1G6ad48.js → select-Betg3JYB.js} +1 -1
- package/dist/client/assets/{select-model-OfWTLpN8.js → select-model-DfTw2hmT.js} +1 -1
- package/dist/client/assets/{self-tool-result-BXmmdZiS.js → self-tool-result-CKkuriJs.js} +1 -1
- package/dist/client/assets/{seo-editor-Cr_gylk0.js → seo-editor-DLLOwp5V.js} +1 -1
- package/dist/client/assets/{settings-layout-C-qec7y_.js → settings-layout-0GSw8C_O.js} +1 -1
- package/dist/client/assets/{settings-section-DSEJFFRa.js → settings-section-DyxR9pvM.js} +1 -1
- package/dist/client/assets/{shell-controls-0eIF4m3N.js → shell-controls-D78C9oMm.js} +1 -1
- package/dist/client/assets/{shell-layout-CZKukoXL.js → shell-layout-lNVE_rfY.js} +1 -1
- package/dist/client/assets/{sidebar-CHwEvvOj.js → sidebar-CXyGrrW0.js} +1 -1
- package/dist/client/assets/{skeleton-qwWL07bk.js → skeleton-DCLRSQ98.js} +1 -1
- package/dist/client/assets/{spinner-Cj9Omszn.js → spinner-CqbnSabB.js} +1 -1
- package/dist/client/assets/{sso-2f0WH9YB.js → sso-C1kNjNZo.js} +1 -1
- package/dist/client/assets/{store-BdcUMji5.js → store-BabsVRLX.js} +1 -1
- package/dist/client/assets/store-registry-CAHNQyf5.js +2 -0
- package/dist/client/assets/{studio-tools-B5xwVBMb.js → studio-tools-CWWOlb46.js} +1 -1
- package/dist/client/assets/{switch-DAGGGCgJ.js → switch-Ddpno5lp.js} +1 -1
- package/dist/client/assets/{synced-repos-Dur61-ro.js → synced-repos-ukuGYr4j.js} +1 -1
- package/dist/client/assets/{tab-id-BkSFb79c.js → tab-id-mw6c_DeQ.js} +1 -1
- package/dist/client/assets/{table-DXJkxa0v.js → table-BMEpNehJ.js} +1 -1
- package/dist/client/assets/{tabs-BNFAGgRj.js → tabs-DbyUfhzY.js} +1 -1
- package/dist/client/assets/{textarea--EZGjae7.js → textarea-BXF-m9ct.js} +1 -1
- package/dist/client/assets/{toggle-group-D1uQYirZ.js → toggle-group-BpR-EAFT.js} +1 -1
- package/dist/client/assets/{toolbar-CQwE0lBt.js → toolbar-Ivl7ZB_x.js} +1 -1
- package/dist/client/assets/{tooltip-BDMvo7uu.js → tooltip-L3hcLjM8.js} +1 -1
- package/dist/client/assets/{track-1JNFjNqy.js → track-BpqKmMnP.js} +1 -1
- package/dist/client/assets/{use-ai-providers-OAwoaI2U.js → use-ai-providers-CrRRAkxS.js} +1 -1
- package/dist/client/assets/{use-api-keys-CC1teayO.js → use-api-keys-CdD76u0X.js} +1 -1
- package/dist/client/assets/{use-automations-CRse30sL.js → use-automations-BCa2rIhL.js} +1 -1
- package/dist/client/assets/{use-autosave-B8B9hqjt.js → use-autosave-DkQj-d4X.js} +1 -1
- package/dist/client/assets/{use-capability-Bj8h59xZ.js → use-capability-BuVTe48q.js} +1 -1
- package/dist/client/assets/{use-clock-tick-DfqQjyNX.js → use-clock-tick-LrWgresD.js} +1 -1
- package/dist/client/assets/{use-connection-Btpm0r9-.js → use-connection-DWFFvurf.js} +1 -1
- package/dist/client/assets/{use-copy-Bh9M2o5r.js → use-copy--_N0dGUi.js} +1 -1
- package/dist/client/assets/{use-create-virtual-mcp-yODKQqqj.js → use-create-virtual-mcp-5uqBDR23.js} +1 -1
- package/dist/client/assets/{use-debounced-autosave-DbWaTug0.js → use-debounced-autosave-w83mymYN.js} +1 -1
- package/dist/client/assets/{use-debounced-value-D0Lz8FcP.js → use-debounced-value-Cok-PPQi.js} +1 -1
- package/dist/client/assets/{use-deco-credits-B5FDrxty.js → use-deco-credits-Dinr_KfB.js} +1 -1
- package/dist/client/assets/{use-decopilot-events-C_RExSPP.js → use-decopilot-events-D-gxusrc.js} +1 -1
- package/dist/client/assets/{use-delete-connection-5pMUj0Vs.js → use-delete-connection-BCSFWPe7.js} +1 -1
- package/dist/client/assets/{use-deployment-admin-CB6HDGkS.js → use-deployment-admin-CxCoh-6q.js} +1 -1
- package/dist/client/assets/{use-file-configs-Ctvsnk5G.js → use-file-configs-BvMGLIPP.js} +1 -1
- package/dist/client/assets/{use-infinite-scroll-Be0oXEfV.js → use-infinite-scroll-CtCb83KJ.js} +1 -1
- package/dist/client/assets/{use-join-requests-CvDszUyp.js → use-join-requests-CxLgLAf0.js} +1 -1
- package/dist/client/assets/{use-mcp-client-DMvamh8c.js → use-mcp-client-D5FHpwUV.js} +1 -1
- package/dist/client/assets/{use-mcp-tools-WUaPyY9N.js → use-mcp-tools-0FppJhpT.js} +1 -1
- package/dist/client/assets/{use-members-DEObzV90.js → use-members-DCW4NHnT.js} +1 -1
- package/dist/client/assets/{use-mobile-BF82f4xW.js → use-mobile-DkA2nQz9.js} +1 -1
- package/dist/client/assets/{use-navigate-to-agent-CdfbVeFl.js → use-navigate-to-agent-Cg06_gQF.js} +1 -1
- package/dist/client/assets/{use-open-billing-url-DvrBt4mL.js → use-open-billing-url-BQtPnKAd.js} +1 -1
- package/dist/client/assets/{use-org-auth-client-DMmmj8tN.js → use-org-auth-client-DH6RDvj2.js} +1 -1
- package/dist/client/assets/{use-org-sso-CwOt2Zp4.js → use-org-sso-CjnHsSxl.js} +1 -1
- package/dist/client/assets/{use-organization-roles-C05vQCuK.js → use-organization-roles-DzC-CA33.js} +1 -1
- package/dist/client/assets/{use-organization-settings-BTylRMSo.js → use-organization-settings-CHI_gk3y.js} +1 -1
- package/dist/client/assets/{use-registry-connections-BA6QAUwS.js → use-registry-connections-BHYng-TA.js} +1 -1
- package/dist/client/assets/{use-secrets-DmGfPEvA.js → use-secrets-B9klviP6.js} +1 -1
- package/dist/client/assets/{use-section-preview-base-CqFIxE5k.js → use-section-preview-base-gGcZW4Po.js} +1 -1
- package/dist/client/assets/{use-status-sounds-Ddb-zndZ.js → use-status-sounds-D15AyFxt.js} +1 -1
- package/dist/client/assets/{use-tags-CgVrDfhq.js → use-tags-CFF_4Xie.js} +1 -1
- package/dist/client/assets/{use-view-mode-B07br8m9.js → use-view-mode-Dd3eoAo5.js} +1 -1
- package/dist/client/assets/{use-virtual-mcp-BpgoR4VI.js → use-virtual-mcp-CCTtFTNJ.js} +1 -1
- package/dist/client/assets/useInfiniteQuery-C2gja3Is.js +1 -0
- package/dist/client/assets/{useRouterState-Dd9hDphD.js → useRouterState-BsZg-jmJ.js} +1 -1
- package/dist/client/assets/useSuspenseInfiniteQuery-BrlVYbLd.js +1 -0
- package/dist/client/assets/{users-Bp_Ec_OG.js → users-i5VTvjLF.js} +1 -1
- package/dist/client/assets/{variant-calendar-BhEA97V9.js → variant-calendar-66xo2R6y.js} +1 -1
- package/dist/client/assets/{view-mode-toggle-tdjlG6ac.js → view-mode-toggle-B2YsLM_w.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-B4--fKiC.js +0 -1
- package/dist/client/assets/redirect-editor-C2nOh7kh.js +0 -1
- package/dist/client/assets/registry-Q1l30H7S.js +0 -2
- package/dist/client/assets/store-registry-hfX2-y3Y.js +0 -2
- package/dist/client/assets/useInfiniteQuery-CoTHqPJu.js +0 -1
- package/dist/client/assets/useSuspenseInfiniteQuery-0HOWySU4.js +0 -1
package/dist/server/cli.js
CHANGED
|
@@ -1332,7 +1332,7 @@ Usage: deco services <up|down|status>`),process.exit(1)}}var bd1=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 $t1($){await rm6($),await am6($);let Z=new sp1({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 sm6($){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 $t1(G.db);return await J(),{betterAuth:Y,kysely:K}}catch(K){throw await J(),K}}async function em6(){let $=N6(),Z=new sp1({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 Xt1=O(()=>{ap1();uu0();e7()});async function h90($){let Z={...process.env},X=_10($,Z);console.log(LB1(X.settings.encryptionKey));let Q=X.settings.betterAuthSecret||(X.settings.localMode?wi1(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(),Oi1));await W(G.databaseUrl);let{createDatabase:H}=await Promise.resolve().then(() => (e7(),Cm1)),{migrateToLatest:U}=await Promise.resolve().then(() => (Xt1(),Zt1)),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 yd1(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();Bi1();k8()});var Gt1={};B0(Gt1,{updateService:()=>GE,subscribeCliState:()=>zm0,setTuiConsoleIntercepted:()=>u90,setServerUrl:()=>Xi,setMigrationsDone:()=>Zi,setDevMode:()=>Xi6,resetCliStateForTests:()=>$i6,isTuiConsoleIntercepted:()=>c90,getCliState:()=>Em0,addLogEntry:()=>Vw});function Qt1(){return{services:[{name:"Postgres",status:"pending",port:0},{name:"NATS",status:"pending",port:0}],migrationsStatus:"pending",serverUrl:null,logs:[]}}function $i6(){bQ=Qt1()}function Zi6(){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 Xi6(){bQ={...bQ,services:[...Zi6(),{name:"API",status:"pending",port:0},{name:"Vite",status:"pending",port:0}]},$i()}function u90($){Yt1=$}function c90(){return Yt1}var bQ,Dm0,Yt1=!1;var JE=O(()=>{bQ=Qt1();Dm0=new Set});import{createServer as Jt1}from"net";function Qi6($){return new Promise((Z)=>{let X=Jt1();X.once("error",()=>Z(!1)),X.listen($,"0.0.0.0",()=>{X.close(()=>Z(!0))})})}async function Qi($){if(await Qi6($))return $;let Z=await new Promise((X,Q)=>{let Y=Jt1();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:()=>Gi6});import{join as Yi6}from"path";function Kt1($){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 Gi6($){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=Yi6(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)Kt1(F.stdout),Kt1(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.218.3",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 Ki6,Text as Wt1}from"ink";import{jsx as Wi6,jsxs as Ht1}from"react/jsx-runtime";function Ut1({version:$}){return Ht1(Ki6,{flexDirection:"column",marginTop:1,children:[L90.map((Z,X)=>Wi6(Wt1,{color:D90[X],children:Z},X)),Ht1(Wt1,{dimColor:!0,children:[" v",$]})]})}var Nt1=O(()=>{dm()});import{Box as KE,Text as kw}from"ink";import{Spinner as Hi6}from"@inkjs/ui";import{jsx as nY,jsxs as Ab}from"react/jsx-runtime";function Ft1({status:$}){if($==="pending")return nY(Hi6,{label:""});return nY(kw,{color:"green",children:"\u2713"})}function Ui6($){return`${$.name}: ${$.port||"...."}`}function wt1({services:$,migrationsStatus:Z,home:X,serverUrl:Q}){return Ab(KE,{flexDirection:"column",paddingBottom:1,children:[nY(Ut1,{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:Ui6(Y)}),nY(Ft1,{status:Y.status})]},Y.name)),Ab(KE,{gap:1,children:[nY(kw,{children:"Migrations"}),nY(Ft1,{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 Bt1=O(()=>{Tm0();Nt1()});import{Box as Ni6,Text as Gi}from"ink";import{jsx as Rm0,jsxs as Im0}from"react/jsx-runtime";function Fi6($){if($>=500)return"red";if($>=400)return"yellow";if($>=300)return"cyan";return"green"}function Ot1({logs:$}){return Rm0(Ni6,{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:Fi6(Z.status),children:Z.status}),Im0(Gi,{dimColor:!0,children:[" ",Q.padStart(8)]})]},X)})})}var Lt1=()=>{};var qm0={};B0(qm0,{App:()=>Oi6});import{Box as wi6}from"ink";import{useSyncExternalStore as Bi6}from"react";import{jsx as Dt1,jsxs as Li6}from"react/jsx-runtime";function Oi6({home:$}){let Z=Bi6(zm0,Em0);return Li6(wi6,{flexDirection:"column",children:[Dt1(wt1,{services:Z.services,migrationsStatus:Z.migrationsStatus,home:$,serverUrl:Z.serverUrl}),Dt1(Ot1,{logs:Z.logs})]})}var Mm0=O(()=>{Bt1();Lt1();JE()});var IJ="thread-gate",hU="decopilot-hosted-harness",Q3="automations",Sw="background-tools",WE="task-board-github-reads";var Et1="7";function zt1($){return{name:"decocms",systemDatabaseUrl:$.systemDatabaseUrl,systemDatabaseSchemaName:"dbos",systemDatabasePoolSize:$.poolSize,runAdminServer:!1,executorID:$.executorID,applicationVersion:Et1,...$.listenQueues!==void 0?{listenQueues:$.listenQueues}:{}}}var jt1=()=>{};function Di6(){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 Pt1(){let $=Di6();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 At1(){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 Tt1=()=>{};import*as Ei6 from"bun:jsc";function Rt1(){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{zi6()}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=ji6()?.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 zi6,ji6;var It1=O(()=>{({startSamplingProfiler:zi6,samplingProfilerStackTraces:ji6}=Ei6)});function qt1(){Pt1();let $=[At1(),Tm1(),Rt1()];return()=>{for(let Z of $)Z()}}var Mt1=O(()=>{ku0();Tt1();It1()});var HE=_((Vt1)=>{Object.defineProperty(Vt1,"__esModule",{value:!0});Vt1.RepublishHeaders=Vt1.DirectMsgHeaders=Vt1.JsHeaders=Vt1.AdvisoryKind=void 0;Vt1.isOrderedPushConsumerOptions=Pi6;Vt1.isPullConsumer=Ai6;Vt1.isPushConsumer=Ti6;Vt1.isBoundPushConsumerOptions=Ri6;function Pi6($){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 Ai6($){return $.isPullConsumer()}function Ti6($){return $.isPushConsumer()}function Ri6($){if($&&typeof $==="object")return"deliver_subject"in $||"deliver_group"in $||"idle_heartbeat"in $;return!1}Vt1.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"};Vt1.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"};Vt1.DirectMsgHeaders={Stream:"Nats-Stream",Sequence:"Nats-Sequence",TimeStamp:"Nats-Time-Stamp",Subject:"Nats-Subject",LastSequence:"Nats-Last-Sequence",NumPending:"Nats-Num-Pending"};Vt1.RepublishHeaders={Stream:"Nats-Stream",Subject:"Nats-Subject",Sequence:"Nats-Sequence",LastSequence:"Nats-Last-Sequence",Size:"Nats-Msg-Size"}});var pY=_((St1)=>{Object.defineProperty(St1,"__esModule",{value:!0});St1.TD=St1.TE=St1.Empty=void 0;St1.encode=vi6;St1.decode=xi6;St1.Empty=new Uint8Array(0);St1.TE=new TextEncoder;St1.TD=new TextDecoder;function _i6(...$){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 vi6(...$){let Z=[];for(let X=0;X<$.length;X++)Z.push(St1.TE.encode($[X]));if(Z.length===0)return St1.Empty;if(Z.length===1)return Z[0];return _i6(...Z)}function xi6($){if(!$||$.length===0)return"";return St1.TD.decode($)}});var tY=_((vt1)=>{Object.defineProperty(vt1,"__esModule",{value:!0});vt1.errors=vt1.PermissionViolationError=vt1.NoRespondersError=vt1.TimeoutError=vt1.RequestError=vt1.ProtocolError=vt1.ConnectionError=vt1.DrainingConnectionError=vt1.ClosedConnectionError=vt1.AuthorizationError=vt1.UserAuthenticationExpiredError=vt1.InvalidOperationError=vt1.InvalidArgumentError=vt1.InvalidSubjectError=void 0;class Sm0 extends Error{constructor($,Z){super(`illegal subject: '${$}'`,Z);this.name="InvalidSubjectError"}}vt1.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)}}vt1.InvalidArgumentError=m90;class Cm0 extends Error{constructor($,Z){super($,Z);this.name="InvalidOperationError"}}vt1.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}}vt1.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}}vt1.AuthorizationError=n90;class _m0 extends Error{constructor(){super("closed connection");this.name="ClosedConnectionError"}}vt1.ClosedConnectionError=_m0;class vm0 extends Error{constructor(){super("connection draining");this.name="DrainingConnectionError"}}vt1.DrainingConnectionError=vm0;class xm0 extends Error{constructor($,Z){super($,Z);this.name="ConnectionError"}}vt1.ConnectionError=xm0;class fm0 extends Error{constructor($,Z){super($,Z);this.name="ProtocolError"}}vt1.ProtocolError=fm0;class bm0 extends Error{constructor($="",Z){super($,Z);this.name="RequestError"}isNoResponders(){return this.cause instanceof p90}}vt1.RequestError=bm0;class ym0 extends Error{constructor($){super("timeout",$);this.name="TimeoutError"}}vt1.TimeoutError=ym0;class p90 extends Error{subject;constructor($,Z){super(`no responders: '${$}'`,Z);this.subject=$,this.name="NoResponders"}}vt1.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)}}vt1.PermissionViolationError=t90;vt1.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=_((gt1)=>{Object.defineProperty(gt1,"__esModule",{value:!0});gt1.SimpleMutex=gt1.Perf=void 0;gt1.extend=ai6;gt1.render=si6;gt1.timeout=ei6;gt1.delay=$n6;gt1.deadline=Zn6;gt1.deferred=hm0;gt1.debugDeferred=Xn6;gt1.shuffle=Qn6;gt1.collect=Yn6;gt1.jitter=yt1;gt1.backoff=Gn6;gt1.nanos=Jn6;gt1.millis=Kn6;gt1.randomToken=Un6;var ri6=pY(),gm0=tY();function ai6($,...Z){for(let X=0;X<Z.length;X++){let Q=Z[X];Object.keys(Q).forEach(function(Y){$[Y]=Q[Y]})}return $}function si6($){return ri6.TD.decode($).replace(/\n/g,"\u240A").replace(/\r/g,"\u240D")}function ei6($,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 $n6($=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 Zn6($,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 Xn6(){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 Qn6($){for(let Z=$.length-1;Z>0;Z--){let X=Math.floor(Math.random()*(Z+1));[$[Z],$[X]]=[$[X],$[Z]]}return $}async function Yn6($){let Z=[];for await(let X of $)Z.push(X);return Z}class ft1{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})}),$}}gt1.Perf=ft1;class bt1{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()}}gt1.SimpleMutex=bt1;function yt1($){if($===0)return 0;return Math.floor($/2+Math.random()*$)}function Gn6($=[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 yt1(X>Z?$[Z]:$[X])}}}function Jn6($){return $*1e6}function Kn6($){return Math.floor($/1e6)}var Wn6="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz",uU=new Uint8Array(62);for(let $=0;$<62;$++)uU[$]=Wn6.charCodeAt($);var Hn6=218340105584896;function Un6(){let $=Math.floor(Math.random()*Hn6),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 nt1=_((mt1)=>{Object.defineProperty(mt1,"__esModule",{value:!0});mt1.nuid=mt1.NuidImpl=void 0;var qn6="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz",Cw=62,r90=12,lt1=10,ut1=33,Mn6=333,ct1=r90+lt1,cm0=new Uint8Array(Cw);for(let $=0;$<Cw;$++)cm0[$]=qn6.charCodeAt($);var o90=4294967296,dt1=BigInt(Cw)**BigInt(lt1),Ji=Number(dt1/(1n<<32n)),um0=Number(dt1%(1n<<32n));function Vn6($){for(let Z=0;Z<$.length;Z++)$[Z]=Math.floor(Math.random()*256)}function kn6($){if(globalThis?.crypto?.getRandomValues)globalThis.crypto.getRandomValues($);else Vn6($)}class lm0{buf;cbuf;seqHi;seqLo;inc;inited;constructor(){this.buf=new Uint8Array(ct1),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()*(Mn6-ut1)+ut1|0}setPre(){kn6(this.cbuf);for(let $=0;$<r90;$++)this.buf[$]=cm0[this.cbuf[$]%Cw]}fillSeq(){let $=this.seqHi,Z=this.seqLo;for(let X=ct1-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()}}mt1.NuidImpl=lm0;mt1.nuid=new lm0});var rt1=_((tt1)=>{Object.defineProperty(tt1,"__esModule",{value:!0});tt1.nuid=tt1.Nuid=void 0;var pt1=nt1();tt1.Nuid=pt1.NuidImpl;tt1.nuid=pt1.nuid});var s90=_((a90)=>{Object.defineProperty(a90,"__esModule",{value:!0});a90.nuid=a90.Nuid=void 0;var at1=rt1();Object.defineProperty(a90,"Nuid",{enumerable:!0,get:function(){return at1.Nuid}});Object.defineProperty(a90,"nuid",{enumerable:!0,get:function(){return at1.nuid}})});var _w=_((st1)=>{Object.defineProperty(st1,"__esModule",{value:!0});st1.DEFAULT_HOST=st1.DEFAULT_PORT=st1.Match=void 0;st1.syncIterator=fn6;st1.createInbox=bn6;var vn6=s90(),xn6=tY();st1.Match={Exact:"exact",CanonicalMIME:"canonical",IgnoreCase:"insensitive"};function fn6($){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 bn6($=""){if($=$||"_INBOX",typeof $!=="string")throw TypeError("prefix must be a string");return $.split(".").forEach((Z)=>{if(Z==="*"||Z===">")throw xn6.InvalidArgumentError.format("prefix",`cannot have wildcards ('${$}')`)}),`${$}.${vn6.nuid.next()}`}st1.DEFAULT_PORT=4222;st1.DEFAULT_HOST="127.0.0.1"});var Ki=_((Xo1)=>{Object.defineProperty(Xo1,"__esModule",{value:!0});Xo1.DataBuffer=void 0;var $o1=pY();class Zo1{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 $o1.TE.encode($)}static toAscii($){return $o1.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}}Xo1.DataBuffer=Zo1});var UE=_((Go1)=>{Object.defineProperty(Go1,"__esModule",{value:!0});Go1.LF=Go1.CR=Go1.CRLF=Go1.CR_LF_LEN=Go1.CR_LF=void 0;Go1.setTransportFactory=mn6;Go1.defaultPort=in6;Go1.getUrlParseFn=nn6;Go1.newTransport=pn6;Go1.getResolveFn=tn6;Go1.protoLen=Yo1;Go1.extractProtocolMessage=on6;var cn6=pY(),ln6=_w(),dn6=Ki(),oY;function mn6($){oY=$}function in6(){return oY!==void 0&&oY.defaultPort!==void 0?oY.defaultPort:ln6.DEFAULT_PORT}function nn6(){return oY!==void 0&&oY.urlParseFn?oY.urlParseFn:void 0}function pn6(){if(!oY||typeof oY.factory!=="function")throw Error("transport fn is not set");return oY.factory()}function tn6(){return oY!==void 0&&oY.dnsResolveFn?oY.dnsResolveFn:void 0}Go1.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 Gi6($){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=Yi6(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)Kt1(F.stdout),Kt1(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.218.4",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 Ki6,Text as Wt1}from"ink";import{jsx as Wi6,jsxs as Ht1}from"react/jsx-runtime";function Ut1({version:$}){return Ht1(Ki6,{flexDirection:"column",marginTop:1,children:[L90.map((Z,X)=>Wi6(Wt1,{color:D90[X],children:Z},X)),Ht1(Wt1,{dimColor:!0,children:[" v",$]})]})}var Nt1=O(()=>{dm()});import{Box as KE,Text as kw}from"ink";import{Spinner as Hi6}from"@inkjs/ui";import{jsx as nY,jsxs as Ab}from"react/jsx-runtime";function Ft1({status:$}){if($==="pending")return nY(Hi6,{label:""});return nY(kw,{color:"green",children:"\u2713"})}function Ui6($){return`${$.name}: ${$.port||"...."}`}function wt1({services:$,migrationsStatus:Z,home:X,serverUrl:Q}){return Ab(KE,{flexDirection:"column",paddingBottom:1,children:[nY(Ut1,{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:Ui6(Y)}),nY(Ft1,{status:Y.status})]},Y.name)),Ab(KE,{gap:1,children:[nY(kw,{children:"Migrations"}),nY(Ft1,{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 Bt1=O(()=>{Tm0();Nt1()});import{Box as Ni6,Text as Gi}from"ink";import{jsx as Rm0,jsxs as Im0}from"react/jsx-runtime";function Fi6($){if($>=500)return"red";if($>=400)return"yellow";if($>=300)return"cyan";return"green"}function Ot1({logs:$}){return Rm0(Ni6,{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:Fi6(Z.status),children:Z.status}),Im0(Gi,{dimColor:!0,children:[" ",Q.padStart(8)]})]},X)})})}var Lt1=()=>{};var qm0={};B0(qm0,{App:()=>Oi6});import{Box as wi6}from"ink";import{useSyncExternalStore as Bi6}from"react";import{jsx as Dt1,jsxs as Li6}from"react/jsx-runtime";function Oi6({home:$}){let Z=Bi6(zm0,Em0);return Li6(wi6,{flexDirection:"column",children:[Dt1(wt1,{services:Z.services,migrationsStatus:Z.migrationsStatus,home:$,serverUrl:Z.serverUrl}),Dt1(Ot1,{logs:Z.logs})]})}var Mm0=O(()=>{Bt1();Lt1();JE()});var IJ="thread-gate",hU="decopilot-hosted-harness",Q3="automations",Sw="background-tools",WE="task-board-github-reads";var Et1="7";function zt1($){return{name:"decocms",systemDatabaseUrl:$.systemDatabaseUrl,systemDatabaseSchemaName:"dbos",systemDatabasePoolSize:$.poolSize,runAdminServer:!1,executorID:$.executorID,applicationVersion:Et1,...$.listenQueues!==void 0?{listenQueues:$.listenQueues}:{}}}var jt1=()=>{};function Di6(){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 Pt1(){let $=Di6();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 At1(){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 Tt1=()=>{};import*as Ei6 from"bun:jsc";function Rt1(){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{zi6()}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=ji6()?.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 zi6,ji6;var It1=O(()=>{({startSamplingProfiler:zi6,samplingProfilerStackTraces:ji6}=Ei6)});function qt1(){Pt1();let $=[At1(),Tm1(),Rt1()];return()=>{for(let Z of $)Z()}}var Mt1=O(()=>{ku0();Tt1();It1()});var HE=_((Vt1)=>{Object.defineProperty(Vt1,"__esModule",{value:!0});Vt1.RepublishHeaders=Vt1.DirectMsgHeaders=Vt1.JsHeaders=Vt1.AdvisoryKind=void 0;Vt1.isOrderedPushConsumerOptions=Pi6;Vt1.isPullConsumer=Ai6;Vt1.isPushConsumer=Ti6;Vt1.isBoundPushConsumerOptions=Ri6;function Pi6($){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 Ai6($){return $.isPullConsumer()}function Ti6($){return $.isPushConsumer()}function Ri6($){if($&&typeof $==="object")return"deliver_subject"in $||"deliver_group"in $||"idle_heartbeat"in $;return!1}Vt1.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"};Vt1.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"};Vt1.DirectMsgHeaders={Stream:"Nats-Stream",Sequence:"Nats-Sequence",TimeStamp:"Nats-Time-Stamp",Subject:"Nats-Subject",LastSequence:"Nats-Last-Sequence",NumPending:"Nats-Num-Pending"};Vt1.RepublishHeaders={Stream:"Nats-Stream",Subject:"Nats-Subject",Sequence:"Nats-Sequence",LastSequence:"Nats-Last-Sequence",Size:"Nats-Msg-Size"}});var pY=_((St1)=>{Object.defineProperty(St1,"__esModule",{value:!0});St1.TD=St1.TE=St1.Empty=void 0;St1.encode=vi6;St1.decode=xi6;St1.Empty=new Uint8Array(0);St1.TE=new TextEncoder;St1.TD=new TextDecoder;function _i6(...$){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 vi6(...$){let Z=[];for(let X=0;X<$.length;X++)Z.push(St1.TE.encode($[X]));if(Z.length===0)return St1.Empty;if(Z.length===1)return Z[0];return _i6(...Z)}function xi6($){if(!$||$.length===0)return"";return St1.TD.decode($)}});var tY=_((vt1)=>{Object.defineProperty(vt1,"__esModule",{value:!0});vt1.errors=vt1.PermissionViolationError=vt1.NoRespondersError=vt1.TimeoutError=vt1.RequestError=vt1.ProtocolError=vt1.ConnectionError=vt1.DrainingConnectionError=vt1.ClosedConnectionError=vt1.AuthorizationError=vt1.UserAuthenticationExpiredError=vt1.InvalidOperationError=vt1.InvalidArgumentError=vt1.InvalidSubjectError=void 0;class Sm0 extends Error{constructor($,Z){super(`illegal subject: '${$}'`,Z);this.name="InvalidSubjectError"}}vt1.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)}}vt1.InvalidArgumentError=m90;class Cm0 extends Error{constructor($,Z){super($,Z);this.name="InvalidOperationError"}}vt1.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}}vt1.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}}vt1.AuthorizationError=n90;class _m0 extends Error{constructor(){super("closed connection");this.name="ClosedConnectionError"}}vt1.ClosedConnectionError=_m0;class vm0 extends Error{constructor(){super("connection draining");this.name="DrainingConnectionError"}}vt1.DrainingConnectionError=vm0;class xm0 extends Error{constructor($,Z){super($,Z);this.name="ConnectionError"}}vt1.ConnectionError=xm0;class fm0 extends Error{constructor($,Z){super($,Z);this.name="ProtocolError"}}vt1.ProtocolError=fm0;class bm0 extends Error{constructor($="",Z){super($,Z);this.name="RequestError"}isNoResponders(){return this.cause instanceof p90}}vt1.RequestError=bm0;class ym0 extends Error{constructor($){super("timeout",$);this.name="TimeoutError"}}vt1.TimeoutError=ym0;class p90 extends Error{subject;constructor($,Z){super(`no responders: '${$}'`,Z);this.subject=$,this.name="NoResponders"}}vt1.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)}}vt1.PermissionViolationError=t90;vt1.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=_((gt1)=>{Object.defineProperty(gt1,"__esModule",{value:!0});gt1.SimpleMutex=gt1.Perf=void 0;gt1.extend=ai6;gt1.render=si6;gt1.timeout=ei6;gt1.delay=$n6;gt1.deadline=Zn6;gt1.deferred=hm0;gt1.debugDeferred=Xn6;gt1.shuffle=Qn6;gt1.collect=Yn6;gt1.jitter=yt1;gt1.backoff=Gn6;gt1.nanos=Jn6;gt1.millis=Kn6;gt1.randomToken=Un6;var ri6=pY(),gm0=tY();function ai6($,...Z){for(let X=0;X<Z.length;X++){let Q=Z[X];Object.keys(Q).forEach(function(Y){$[Y]=Q[Y]})}return $}function si6($){return ri6.TD.decode($).replace(/\n/g,"\u240A").replace(/\r/g,"\u240D")}function ei6($,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 $n6($=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 Zn6($,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 Xn6(){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 Qn6($){for(let Z=$.length-1;Z>0;Z--){let X=Math.floor(Math.random()*(Z+1));[$[Z],$[X]]=[$[X],$[Z]]}return $}async function Yn6($){let Z=[];for await(let X of $)Z.push(X);return Z}class ft1{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})}),$}}gt1.Perf=ft1;class bt1{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()}}gt1.SimpleMutex=bt1;function yt1($){if($===0)return 0;return Math.floor($/2+Math.random()*$)}function Gn6($=[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 yt1(X>Z?$[Z]:$[X])}}}function Jn6($){return $*1e6}function Kn6($){return Math.floor($/1e6)}var Wn6="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz",uU=new Uint8Array(62);for(let $=0;$<62;$++)uU[$]=Wn6.charCodeAt($);var Hn6=218340105584896;function Un6(){let $=Math.floor(Math.random()*Hn6),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 nt1=_((mt1)=>{Object.defineProperty(mt1,"__esModule",{value:!0});mt1.nuid=mt1.NuidImpl=void 0;var qn6="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz",Cw=62,r90=12,lt1=10,ut1=33,Mn6=333,ct1=r90+lt1,cm0=new Uint8Array(Cw);for(let $=0;$<Cw;$++)cm0[$]=qn6.charCodeAt($);var o90=4294967296,dt1=BigInt(Cw)**BigInt(lt1),Ji=Number(dt1/(1n<<32n)),um0=Number(dt1%(1n<<32n));function Vn6($){for(let Z=0;Z<$.length;Z++)$[Z]=Math.floor(Math.random()*256)}function kn6($){if(globalThis?.crypto?.getRandomValues)globalThis.crypto.getRandomValues($);else Vn6($)}class lm0{buf;cbuf;seqHi;seqLo;inc;inited;constructor(){this.buf=new Uint8Array(ct1),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()*(Mn6-ut1)+ut1|0}setPre(){kn6(this.cbuf);for(let $=0;$<r90;$++)this.buf[$]=cm0[this.cbuf[$]%Cw]}fillSeq(){let $=this.seqHi,Z=this.seqLo;for(let X=ct1-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()}}mt1.NuidImpl=lm0;mt1.nuid=new lm0});var rt1=_((tt1)=>{Object.defineProperty(tt1,"__esModule",{value:!0});tt1.nuid=tt1.Nuid=void 0;var pt1=nt1();tt1.Nuid=pt1.NuidImpl;tt1.nuid=pt1.nuid});var s90=_((a90)=>{Object.defineProperty(a90,"__esModule",{value:!0});a90.nuid=a90.Nuid=void 0;var at1=rt1();Object.defineProperty(a90,"Nuid",{enumerable:!0,get:function(){return at1.Nuid}});Object.defineProperty(a90,"nuid",{enumerable:!0,get:function(){return at1.nuid}})});var _w=_((st1)=>{Object.defineProperty(st1,"__esModule",{value:!0});st1.DEFAULT_HOST=st1.DEFAULT_PORT=st1.Match=void 0;st1.syncIterator=fn6;st1.createInbox=bn6;var vn6=s90(),xn6=tY();st1.Match={Exact:"exact",CanonicalMIME:"canonical",IgnoreCase:"insensitive"};function fn6($){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 bn6($=""){if($=$||"_INBOX",typeof $!=="string")throw TypeError("prefix must be a string");return $.split(".").forEach((Z)=>{if(Z==="*"||Z===">")throw xn6.InvalidArgumentError.format("prefix",`cannot have wildcards ('${$}')`)}),`${$}.${vn6.nuid.next()}`}st1.DEFAULT_PORT=4222;st1.DEFAULT_HOST="127.0.0.1"});var Ki=_((Xo1)=>{Object.defineProperty(Xo1,"__esModule",{value:!0});Xo1.DataBuffer=void 0;var $o1=pY();class Zo1{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 $o1.TE.encode($)}static toAscii($){return $o1.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}}Xo1.DataBuffer=Zo1});var UE=_((Go1)=>{Object.defineProperty(Go1,"__esModule",{value:!0});Go1.LF=Go1.CR=Go1.CRLF=Go1.CR_LF_LEN=Go1.CR_LF=void 0;Go1.setTransportFactory=mn6;Go1.defaultPort=in6;Go1.getUrlParseFn=nn6;Go1.newTransport=pn6;Go1.getResolveFn=tn6;Go1.protoLen=Yo1;Go1.extractProtocolMessage=on6;var cn6=pY(),ln6=_w(),dn6=Ki(),oY;function mn6($){oY=$}function in6(){return oY!==void 0&&oY.defaultPort!==void 0?oY.defaultPort:ln6.DEFAULT_PORT}function nn6(){return oY!==void 0&&oY.urlParseFn?oY.urlParseFn:void 0}function pn6(){if(!oY||typeof oY.factory!=="function")throw Error("transport fn is not set");return oY.factory()}function tn6(){return oY!==void 0&&oY.dnsResolveFn?oY.dnsResolveFn:void 0}Go1.CR_LF=`\r
|
|
1336
1336
|
`;Go1.CR_LF_LEN=Go1.CR_LF.length;Go1.CRLF=dn6.DataBuffer.fromAscii(Go1.CR_LF);Go1.CR=new Uint8Array(Go1.CRLF)[0];Go1.LF=new Uint8Array(Go1.CRLF)[1];function Yo1($){for(let Z=0;Z<$.length;Z++){let X=Z+1;if($.byteLength>X&&$[Z]===Go1.CR&&$[X]===Go1.LF)return X+1}return 0}function on6($){let Z=Yo1($);if(Z>0){let Q=new Uint8Array($).slice(0,Z);return cn6.TD.decode(Q)}return""}});var pm0=_((wo1)=>{Object.defineProperty(wo1,"__esModule",{value:!0});wo1.ipV4=Uo1;wo1.isIP=Jp6;wo1.parseIP=No1;var Wi=4,NE=16,e90=48,Ho1=57,Ko1=65,Yp6=70,Wo1=97,Gp6=102,nm0=16777215;function Uo1($,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 Jp6($){return No1($)!==void 0}function No1($){for(let Z=0;Z<$.length;Z++)switch($[Z]){case".":return Fo1($);case":":return Kp6($)}return}function Fo1($){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}=Wp6($);if(!G||Q>255)return;$=$.substring(Y),Z[X]=Q}return Uo1(Z[0],Z[1],Z[2],Z[3])}function Kp6($){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}=Hp6($);if(!J||Y>65535)return;if(G<$.length&&$[G]==="."){if(X<0&&Q!=NE-Wi)return;if(Q+Wi>NE)return;let K=Fo1($);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 Wp6($){let Z=0,X=0;for(Z=0;Z<$.length&&e90<=$.charCodeAt(Z)&&$.charCodeAt(Z)<=Ho1;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 Hp6($){let Z=0,X=0;for(X=0;X<$.length;X++){if(e90<=$.charCodeAt(X)&&$.charCodeAt(X)<=Ho1)Z*=16,Z+=$.charCodeAt(X)-e90;else if(Wo1<=$.charCodeAt(X)&&$.charCodeAt(X)<=Gp6)Z*=16,Z+=$.charCodeAt(X)-Wo1+10;else if(Ko1<=$.charCodeAt(X)&&$.charCodeAt(X)<=Yp6)Z*=16,Z+=$.charCodeAt(X)-Ko1+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=_((Oo1)=>{Object.defineProperty(Oo1,"__esModule",{value:!0});Oo1.Servers=Oo1.ServerImpl=void 0;Oo1.isIPV4OrHostname=Bo1;Oo1.hostPort=sm0;var tm0=UE(),om0=qJ(),rm0=pm0(),wp6=_w(),Bp6=tY();function Bo1($){if($.indexOf("[")!==-1||$.indexOf("::")!==-1)return!1;if($.indexOf(".")!==-1)return!0;if($.split(":").length<=2)return!0;return!1}function am0($){return!Bo1($)}function Op6($){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($=Op6($),am0($)&&$.indexOf("[")===-1)$=`[${$}]`;let Z=am0($)?$.match(/(]:)(\d+)/):$.match(/(:)(\d+)/),X=Z&&Z.length===3&&Z[1]&&Z[2]?parseInt(Z[2]):wp6.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}}Oo1.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 Bp6.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}}}Oo1.Servers=$Z0});var ZZ0=_((zo1)=>{Object.defineProperty(zo1,"__esModule",{value:!0});zo1.QueuedIteratorImpl=void 0;var $i0=qJ(),Do1=tY();class Eo1{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 Do1.InvalidOperationError("iterator cannot be used when a callback is registered");if(this.yielding)throw new Do1.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}}zo1.QueuedIteratorImpl=Eo1});var Zi0=_((To1)=>{Object.defineProperty(To1,"__esModule",{value:!0});To1.MuxSubscription=void 0;var zp6=_w(),Po1=tY();class Ao1{baseInbox;reqs;constructor(){this.reqs=new Map}size(){return this.reqs.size}init($){return this.baseInbox=`${(0,zp6.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 Po1.NoRespondersError(Q.requestSubject):null;Q.resolver($,Z)}}}}close(){let $=new Po1.RequestError("connection closed");this.reqs.forEach((Z)=>{Z.resolver($,{})})}}To1.MuxSubscription=Ao1});var Xi0=_((qo1)=>{Object.defineProperty(qo1,"__esModule",{value:!0});qo1.Heartbeat=void 0;var jp6=qJ();class Io1{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,jp6.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})}}qo1.Heartbeat=Io1});var Gi0=_((Co1)=>{Object.defineProperty(Co1,"__esModule",{value:!0});Co1.DenoBuffer=Co1.MAX_SIZE=Co1.AssertionError=void 0;Co1.assert=ko1;Co1.concat=So1;Co1.append=Ap6;Co1.readAll=Tp6;Co1.writeAll=Rp6;var Pp6=pY();class Qi0 extends Error{constructor($){super($);this.name="AssertionError"}}Co1.AssertionError=Qi0;function ko1($,Z="Assertion failed."){if(!$)throw new Qi0(Z)}var Vo1=32768;Co1.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 So1($,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 Ap6($,Z){return So1($,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($){ko1($<=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(Pp6.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+$>Co1.MAX_SIZE)throw Error("The buffer cannot be grown beyond the maximum size.");else{let Y=new Uint8Array(Math.min(2*Q+$,Co1.MAX_SIZE));XZ0(this._buf.subarray(this._off),Y),this._buf=Y}return this._off=0,this._reslice(Math.min(Z+$,Co1.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(Vo1);while(!0){let Q=this.capacity-this.length<Vo1,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}}}Co1.DenoBuffer=Yi0;function Tp6($){let Z=new Yi0;return Z.readFrom($),Z.bytes()}function Rp6($,Z){let X=0;while(X<Z.length)X+=$.write(Z.subarray(X))}});var Wi0=_((bo1)=>{Object.defineProperty(bo1,"__esModule",{value:!0});bo1.cc=bo1.State=bo1.Parser=bo1.Kind=void 0;bo1.describe=Cp6;var Ji0=Gi0(),Ki0=pY();bo1.Kind={OK:0,ERR:1,MSG:2,INFO:3,PING:4,PONG:5};function Cp6($){let Z,X="";switch($.kind){case bo1.Kind.MSG:Z="MSG";break;case bo1.Kind.OK:Z="OK";break;case bo1.Kind.ERR:Z="ERR",X=Ki0.TD.decode($.data);break;case bo1.Kind.PING:Z="PING";break;case bo1.Kind.PONG:Z="PONG";break;case bo1.Kind.INFO:Z="INFO",X=Ki0.TD.decode($.data)}return`${Z}: ${X}`}function vo1(){let $={};return $.sid=-1,$.hdr=-1,$.size=-1,$}var xo1=48,_p6=57,Rb=67108864;class fo1{dispatcher;state;as;drop;hdr;ma;argBuf;msgBuf;constructor($){this.dispatcher=$,this.state=bo1.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 bo1.State.OP_START:switch(X){case bo1.cc.M:case bo1.cc.m:this.state=bo1.State.OP_M,this.hdr=-1,this.ma=vo1();break;case bo1.cc.H:case bo1.cc.h:this.state=bo1.State.OP_H,this.hdr=0,this.ma=vo1();break;case bo1.cc.P:case bo1.cc.p:this.state=bo1.State.OP_P;break;case bo1.cc.PLUS:this.state=bo1.State.OP_PLUS;break;case bo1.cc.MINUS:this.state=bo1.State.OP_MINUS;break;case bo1.cc.I:case bo1.cc.i:this.state=bo1.State.OP_I;break;default:throw this.fail($.subarray(Z))}break;case bo1.State.OP_H:switch(X){case bo1.cc.M:case bo1.cc.m:this.state=bo1.State.OP_M;break;default:throw this.fail($.subarray(Z))}break;case bo1.State.OP_M:switch(X){case bo1.cc.S:case bo1.cc.s:this.state=bo1.State.OP_MS;break;default:throw this.fail($.subarray(Z))}break;case bo1.State.OP_MS:switch(X){case bo1.cc.G:case bo1.cc.g:this.state=bo1.State.OP_MSG;break;default:throw this.fail($.subarray(Z))}break;case bo1.State.OP_MSG:switch(X){case bo1.cc.SPACE:case bo1.cc.TAB:this.state=bo1.State.OP_MSG_SPC;break;default:throw this.fail($.subarray(Z))}break;case bo1.State.OP_MSG_SPC:switch(X){case bo1.cc.SPACE:case bo1.cc.TAB:continue;default:this.state=bo1.State.MSG_ARG,this.as=Z}break;case bo1.State.MSG_ARG:switch(X){case bo1.cc.CR:this.drop=1;break;case bo1.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=bo1.State.MSG_PAYLOAD,Z=this.as+this.ma.size-1;break}default:if(this.argBuf)this.argBuf.writeByte(X)}break;case bo1.State.MSG_PAYLOAD:if(this.msgBuf)if(this.msgBuf.length>=this.ma.size){let Q=this.msgBuf.bytes({copy:!1});this.dispatcher.push({kind:bo1.Kind.MSG,msg:this.ma,data:Q}),this.argBuf=void 0,this.msgBuf=void 0,this.state=bo1.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:bo1.Kind.MSG,msg:this.ma,data:$.subarray(this.as,Z)}),this.argBuf=void 0,this.msgBuf=void 0,this.state=bo1.State.MSG_END;break;case bo1.State.MSG_END:switch(X){case bo1.cc.NL:this.drop=0,this.as=Z+1,this.state=bo1.State.OP_START;break;default:continue}break;case bo1.State.OP_PLUS:switch(X){case bo1.cc.O:case bo1.cc.o:this.state=bo1.State.OP_PLUS_O;break;default:throw this.fail($.subarray(Z))}break;case bo1.State.OP_PLUS_O:switch(X){case bo1.cc.K:case bo1.cc.k:this.state=bo1.State.OP_PLUS_OK;break;default:throw this.fail($.subarray(Z))}break;case bo1.State.OP_PLUS_OK:switch(X){case bo1.cc.NL:this.dispatcher.push({kind:bo1.Kind.OK}),this.drop=0,this.state=bo1.State.OP_START;break}break;case bo1.State.OP_MINUS:switch(X){case bo1.cc.E:case bo1.cc.e:this.state=bo1.State.OP_MINUS_E;break;default:throw this.fail($.subarray(Z))}break;case bo1.State.OP_MINUS_E:switch(X){case bo1.cc.R:case bo1.cc.r:this.state=bo1.State.OP_MINUS_ER;break;default:throw this.fail($.subarray(Z))}break;case bo1.State.OP_MINUS_ER:switch(X){case bo1.cc.R:case bo1.cc.r:this.state=bo1.State.OP_MINUS_ERR;break;default:throw this.fail($.subarray(Z))}break;case bo1.State.OP_MINUS_ERR:switch(X){case bo1.cc.SPACE:case bo1.cc.TAB:this.state=bo1.State.OP_MINUS_ERR_SPC;break;default:throw this.fail($.subarray(Z))}break;case bo1.State.OP_MINUS_ERR_SPC:switch(X){case bo1.cc.SPACE:case bo1.cc.TAB:continue;default:this.state=bo1.State.MINUS_ERR_ARG,this.as=Z}break;case bo1.State.MINUS_ERR_ARG:switch(X){case bo1.cc.CR:this.drop=1;break;case bo1.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:bo1.Kind.ERR,data:Q}),this.drop=0,this.as=Z+1,this.state=bo1.State.OP_START;break}default:if(this.argBuf)this.argBuf.write(Uint8Array.of(X))}break;case bo1.State.OP_P:switch(X){case bo1.cc.I:case bo1.cc.i:this.state=bo1.State.OP_PI;break;case bo1.cc.O:case bo1.cc.o:this.state=bo1.State.OP_PO;break;default:throw this.fail($.subarray(Z))}break;case bo1.State.OP_PO:switch(X){case bo1.cc.N:case bo1.cc.n:this.state=bo1.State.OP_PON;break;default:throw this.fail($.subarray(Z))}break;case bo1.State.OP_PON:switch(X){case bo1.cc.G:case bo1.cc.g:this.state=bo1.State.OP_PONG;break;default:throw this.fail($.subarray(Z))}break;case bo1.State.OP_PONG:switch(X){case bo1.cc.NL:this.dispatcher.push({kind:bo1.Kind.PONG}),this.drop=0,this.state=bo1.State.OP_START;break}break;case bo1.State.OP_PI:switch(X){case bo1.cc.N:case bo1.cc.n:this.state=bo1.State.OP_PIN;break;default:throw this.fail($.subarray(Z))}break;case bo1.State.OP_PIN:switch(X){case bo1.cc.G:case bo1.cc.g:this.state=bo1.State.OP_PING;break;default:throw this.fail($.subarray(Z))}break;case bo1.State.OP_PING:switch(X){case bo1.cc.NL:this.dispatcher.push({kind:bo1.Kind.PING}),this.drop=0,this.state=bo1.State.OP_START;break}break;case bo1.State.OP_I:switch(X){case bo1.cc.N:case bo1.cc.n:this.state=bo1.State.OP_IN;break;default:throw this.fail($.subarray(Z))}break;case bo1.State.OP_IN:switch(X){case bo1.cc.F:case bo1.cc.f:this.state=bo1.State.OP_INF;break;default:throw this.fail($.subarray(Z))}break;case bo1.State.OP_INF:switch(X){case bo1.cc.O:case bo1.cc.o:this.state=bo1.State.OP_INFO;break;default:throw this.fail($.subarray(Z))}break;case bo1.State.OP_INFO:switch(X){case bo1.cc.SPACE:case bo1.cc.TAB:this.state=bo1.State.OP_INFO_SPC;break;default:throw this.fail($.subarray(Z))}break;case bo1.State.OP_INFO_SPC:switch(X){case bo1.cc.SPACE:case bo1.cc.TAB:continue;default:this.state=bo1.State.INFO_ARG,this.as=Z}break;case bo1.State.INFO_ARG:switch(X){case bo1.cc.CR:this.drop=1;break;case bo1.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:bo1.Kind.INFO,data:Q}),this.drop=0,this.as=Z+1,this.state=bo1.State.OP_START;break}default:if(this.argBuf)this.argBuf.writeByte(X)}break;default:throw this.fail($.subarray(Z))}}if((this.state===bo1.State.MSG_ARG||this.state===bo1.State.MINUS_ERR_ARG||this.state===bo1.State.INFO_ARG)&&!this.argBuf)this.argBuf=new Ji0.DenoBuffer($.subarray(this.as,Z-this.drop));if(this.state===bo1.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 bo1.cc.SPACE:case bo1.cc.TAB:case bo1.cc.CR:case bo1.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 bo1.cc.SPACE:case bo1.cc.TAB:case bo1.cc.CR:case bo1.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]<xo1||$[Q]>_p6)return-1;X=X*10+($[Q]-xo1)}return Z!==void 0&&X>Z?-1:X}}bo1.Parser=fo1;bo1.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};bo1.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=_((go1)=>{Object.defineProperty(go1,"__esModule",{value:!0});go1.MsgHdrsImpl=void 0;go1.canonicalMIMEHeaderKey=Ui0;go1.headers=fp6;var yo1=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 fp6($=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=yo1.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 QK4=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=BQ8($._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=BQ8(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(OQ8()).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(OQ8()).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 MH4,VH4,kH4;var xa0=O(()=>{MH4=new Set(["id","title","description","is_public","is_unlisted","created_at","updated_at","created_by"]),VH4=new Set(["is_public","is_unlisted"]),kH4={_meta:"meta_json",server:"server_json"}});import{randomUUID as _H4}from"crypto";function LQ8($,Z){if(!$)return Z;try{return JSON.parse($)}catch{return Z}}function DQ8($){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:DQ8($._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=_H4(),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:DQ8($._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:LQ8($.meta_json,{}),server:LQ8($.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 vH4,randomBytes as xH4,randomUUID as fH4}from"crypto";function EQ8($){return vH4("sha256").update($).digest("hex")}function bH4(){return`prk_${xH4(32).toString("hex")}`}class Ig{db;constructor($){this.db=$}async generate($,Z){let X=fH4(),Q=bH4(),Y=await EQ8(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 EQ8(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 zQ8}from"crypto";function jQ8($,Z){if(!$)return Z;try{return JSON.parse($)}catch{return Z}}class pQ0{db;constructor($){this.db=$}async create($){let Z=zQ8(),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:jQ8($.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=zQ8(),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:jQ8($.tool_results,[]),agent_summary:$.agent_summary,duration_ms:Number($.duration_ms??0),action_taken:$.action_taken,tested_at:$.tested_at}}}var PQ8=()=>{};import{randomUUID as yH4}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:yH4(),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 AQ8=()=>{};var TQ8=O(()=>{xa0();fa0();ba0();PQ8();AQ8()});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 gH4}from"kysely";function RQ8($){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?RQ8(Z):null}async getBillingByStripeSubscriptionId($){let Z=await this.db.selectFrom("organization_billing").selectAll().where("stripe_subscription_id","=",$).executeTakeFirst();return Z?RQ8(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:gH4`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 qQ8(){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,IQ8,hH4,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}],IQ8=new Set([...aQ0.find(($)=>$.id==="basic-usage")?.tools??[],"ORG_FS_READ","ORG_FS_WRITE"]),hH4=["agents:manage","connections:manage"],sQ0=new Set(aQ0.filter(($)=>hH4.includes($.id)).flatMap(($)=>$.tools))});function O3($){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 L3=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&&IQ8.has($))return!0;if(O3(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();L3();Vg=class Vg extends Error{constructor($){super($);this.name="UnauthorizedError"}};HN=class HN extends Error{constructor($){super($);this.name="ForbiddenError"}}});function MQ8($){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(VQ8[Z])??$.get(kQ8[Z])}function ca0($,Z,X){$[VQ8[Z]]=X,$[kQ8[Z]]=X}var VQ8,kQ8;var la0=O(()=>{VQ8={token:"x-studio-token",client:"x-studio-client",properties:"x-studio-properties",runMetadata:"x-studio-run-metadata"},kQ8={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<X58)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){uH4(),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 uH4(){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 cH4($){try{return YY0($)}catch{return null}}function lH4($){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=cH4(Q);if(!Y)continue;let[G,J]=Y,K=ep(G,$),W=lH4(K);if(W){if(!X[W])X[W]=[];X[W].push(J)}}return X}function SQ8($,Z){let X=ma0($,Z);return new Set(Object.keys(X).filter((Q)=>Q!=="*"))}var ia0=()=>{};async function CQ8($){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&&dH4.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 dH4;var _Q8=O(()=>{dH4=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 vQ8=()=>{};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 xQ8;var fQ8=O(()=>{xQ8=Symbol()});async function mH4($,Z){let X=await $.formData();if(X)return iH4(X,Z);return{}}function iH4($,Z){let X=Object.create(null);if($.forEach((Q,Y)=>{if(!(Z.all||Y.endsWith("[]")))X[Y]=Q;else nH4(X,Y,Q)}),Z.dot)Object.entries(X).forEach(([Q,Y])=>{if(Q.includes("."))pH4(X,Q,Y),delete X[Q]});return X}var bQ8=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 mH4($,{all:X,dot:Q});return{}},nH4=($,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]},pH4=($,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 yQ8=O(()=>{pa0()});var oa0=($)=>{let Z=$.split("/");if(Z[0]==="")Z.shift();return Z},gQ8=($)=>{let{groups:Z,path:X}=tH4($),Q=oa0(X);return oH4(Q,Z)},tH4=($)=>{let Z=[];return $=$.replace(/\{[^}]+\}/g,(X,Q)=>{let Y=`@${Q}`;return Z.push([Y,X]),Y}),{groups:Z,path:$}},oH4=($,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,hQ8=($,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}})}},uQ8=($)=>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 uQ8(W.includes("%25")?W.replace(/%25/g,"%2525"):W)}else if(Y===63||Y===35)break}return Z.slice(X,Q)},cQ8=($)=>{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):$},lQ8=($,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},dQ8,mQ8=($,Z)=>{return lQ8($,Z,!0)},$t;var xB=O(()=>{JY0={},dQ8=lQ8,$t=decodeURIComponent});var iQ8=($)=>Sg($,$t),GY0;var pa0=O(()=>{sJ();fQ8();yQ8();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)?iQ8(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)?iQ8(Q):Q}return $}#Y($){return this.#Z[1]?this.#Z[1][$]:$}query($){return dQ8(this.url,$)}queries($){return mQ8(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 bQ8(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[xQ8](){return this.#Z}get matchedRoutes(){return this.#Z[0].map(([[,$]])=>$)}get routePath(){return this.#Z[0].map(([[,$]])=>$)[this.routeIndex].path}}});var WY0,nQ8=($,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 nQ8(await J,G);else return J};var HY0=O(()=>{WY0={Stringify:1,BeforeStream:2,Stream:3}});var pQ8="text/plain; charset=UTF-8",aa0=($,Z)=>{return{"Content-Type":$,...Z}},Xt=($,Z)=>new Response($,Z),tQ8=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(pQ8,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",oQ8="all",rQ8,NY0="Can not add a route since the matcher is already built.",FY0;var fB=O(()=>{rQ8=["get","post","put","delete","options","patch"],FY0=class extends Error{}});var sa0="__COMPOSED_HANDLER";var ea0=()=>{};var rH4=($)=>{return $.text("404 Not Found",404)},aQ8=($,Z)=>{if("getResponse"in $){let X=$.getResponse();return Z.newResponse(X.body,X)}return console.error($),Z.text("Internal Server Error",500)},sQ8=class ${get;post;put;delete;options;patch;all;on;use;router;getPath;_basePath="/";#$="/";routes=[];constructor(Z={}){[...rQ8,oQ8].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:cQ8}#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=rH4;errorHandler=aQ8;route(Z,X){let Q=this.basePath(Z);return X.routes.map((Y)=>{let G;if(X.errorHandler===aQ8)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 tQ8(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 eQ8=O(()=>{vQ8();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 sH4($,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,aH4,$Y8=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(sH4).map((Q)=>{let Y=this.#X[Q];return(typeof Y.#Z==="number"?`(${Q})@${Y.#Z}`:aH4.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(),aH4=new Set(".\\+*[^]$()")});var ZY8=class{#$={varIndex:0};#Z=new $Y8;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 XY8=O(()=>{Zs0()});function YY8($){return QY8[$]??=new RegExp($==="*"?"":`^${$.replace(/\/\*$|([.\\+*[^\]$()])/g,(Z,X)=>X?`\\${X}`:"(?:|/.*)")}$`)}function $U4(){QY8=Object.create(null)}function ZU4($){let Z=new ZY8,X=[];if($.length===0)return eH4;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(YY8(X).test(Z))return[...$[X]];return}var eH4,QY8,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=YY8(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,$U4(),$}#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 ZU4(Z)}};var Xs0=O(()=>{fB();xB();$s0();Zs0();XY8();eH4=[/^$/,[],Object.create(null)],QY8=Object.create(null)});var XU4=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 GY8=O(()=>{fB();$s0();Xs0()});var JY8=O(()=>{Xs0();GY8()});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 KY8=O(()=>{fB()});var WY8=O(()=>{KY8()});var Jt,QU4=($)=>{for(let Z in $)return!0;return!1},HY8=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=gQ8(X),J=[];for(let K=0,W=G.length;K<W;K++){let H=G[K],U=G[K+1],N=hQ8(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),QU4(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 UY8=O(()=>{fB();xB();Jt=Object.create(null)});var Ys0=class{name="TrieRouter";#$;constructor(){this.#$=new HY8}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 NY8=O(()=>{xB();UY8()});var FY8=O(()=>{NY8()});var I1;var Gs0=O(()=>{eQ8();JY8();WY8();FY8();I1=class extends sQ8{constructor($={}){super($);this.router=$.router??new Qs0({routers:[new OY0,new Ys0]})}}});var d6=O(()=>{Gs0()});import{z as W$}from"zod";function wY8(){return GU4.parse(process.env)}var Js0=($)=>W$.enum(["true","false","1","0"]).optional().transform((Z)=>Z===void 0?$:Z==="true"||Z==="1"),YU4=($)=>W$.string().optional().transform((Z)=>Z?Z.split(",").map((X)=>X.trim()):$),GU4;var BY8=O(()=>{GU4=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:YU4(["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 OY8=O(()=>{LY0={enabled:!0,batchSize:250,flushIntervalMs:300,maxQueueSize:1e4,redactor:"regex"}});import{existsSync as JU4,readFileSync as KU4}from"fs";function WU4(){let $=wY8(),Z=a0().configPath;if(!JU4(Z))return{auth:$,monitoring:LY0};try{let X=JSON.parse(KU4(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=WU4();return Ks0}function LY8(){return Bz().theme}var Ks0=null;var Ws0=O(()=>{BY8();OY8();k8()});import{dirname as HU4,posix as UU4,sep as NU4}from"path";function EY8(){let $=FU4();return async(Z)=>{for(let X of Z)X.module=$(X.filename);return Z}}function FU4($=process.argv[1]?HU4(process.argv[1]):process.cwd(),Z=NU4==="\\"){let X=Z?DY8($):$;return(Q)=>{if(!Q)return;let Y=Z?DY8(Q):Q,{dir:G,base:J,ext:K}=UU4.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 DY8($){return $.replace(/^[A-Z]:/,"").replace(/\\/g,"/")}var zY8=()=>{};function wU4($,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=jY8($.flags),X=PY8($.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,wU4(Y,G,X[Y])]));return{...$,featureFlags:Z,featureFlagPayloads:X,flags:Q}}},jY8=($)=>Object.fromEntries(Object.entries($??{}).map(([Z,X])=>[Z,Kt(X)]).filter(([,Z])=>Z!==void 0)),PY8=($)=>{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 AY8(){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 BU4,TY8=function($,Z=[]){if(!$)return!1;let X=$.toLowerCase();return BU4.concat(Z).some((Q)=>{let Y=Q.toLowerCase();return X.indexOf(Y)!==-1})};var RY8=O(()=>{BU4=["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 MY8($){return Lz($,"ErrorEvent")}function vg($){return typeof Event<"u"&&DU4($,Event)}function VY8($){return Lz($,"Object")}function DU4($,Z){try{return $ instanceof Z}catch{return!1}}var LU4,IY8,Zz5,Fs0,jY0,Wt=($)=>$===Object($)&&!jY0($),_g=($)=>$===void 0,bB=($)=>Fs0.call($)=="[object String]",qY8=($)=>bB($)&&$.trim().length===0,Ht=($)=>Fs0.call($)=="[object Number]"&&$===$,ws0=($)=>$ instanceof Error;var Ut=O(()=>{Oz();zY0();LU4=Array.isArray,IY8=Object.prototype,Zz5=IY8.hasOwnProperty,Fs0=IY8.toString,jY0=LU4||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,EU4,$._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 EU4=86400000;var kY8=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 CY8{constructor($){this.timestamp=0,this.counter=0,this.random=$??zU4()}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 zU4=()=>({nextUint32:()=>65536*Math.trunc(65536*Math.random())+Math.trunc(65536*Math.random())}),SY8,yB=()=>jU4().toString(),jU4=()=>(SY8||(SY8=new CY8)).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 _Y8=O(()=>{Ft()});function PU4($=console){return{log:$.log.bind($),warn:$.warn.bind($),error:$.error.bind($),debug:$.debug.bind($)}}function xY8($,Z=AU4){return vY8($,Z,PU4())}var vY8=($,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)=>vY8(`${$} ${G}`,Z,X)}},AU4=($)=>$();var fY8=()=>{};var fg="Mobile",TY0="iOS",xg="Android",bY8="Tablet",wz5,RU4="Apple",Bz5,yY8="Safari",RY0="BlackBerry",gY8="Samsung",IU4,qU4,IY0="Chrome",MU4,VU4,hY8="Internet Explorer",kU4,Es0="Opera",Oz5,uY8="Edge",SU4,zs0="Firefox",CU4,js0="Nintendo",Ps0="PlayStation",AY0="Xbox",_U4,vU4,wt="Windows",xU4,cY8="Generic",Lz5,Dz5,fU4="Konqueror",QQ="(\\d+(\\.\\d+)?)",Ds0,Ez5,zz5,jz5,bU4,yU4,Pz5,Az5;var lY8=O(()=>{zY0();Ut();wz5=xg+" "+bY8,Bz5=RU4+" Watch",IU4=gY8+"Browser",qU4=gY8+" Internet",MU4=IY0+" OS",VU4=IY0+" "+TY0,kU4=hY8+" "+fg,Oz5=Es0+" Mini",SU4="Microsoft "+uY8,CU4=zs0+" "+TY0,_U4=xg+" "+fg,vU4=fg+" "+yY8,xU4=wt+" Phone",Lz5=cY8+" "+fg.toLowerCase(),Dz5=cY8+" "+bY8.toLowerCase(),Ds0=new RegExp("Version/"+QQ),Ez5=new RegExp(AY0,"i"),zz5=new RegExp(Ps0+" \\w+","i"),jz5=new RegExp(js0+" \\w+","i"),bU4=new RegExp(RY0+"|PlayBook|BB10","i"),yU4={"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"},Pz5={[kU4]:[new RegExp("rv:"+QQ)],[SU4]:[new RegExp(uY8+"?\\/"+QQ)],[IY0]:[new RegExp("("+IY0+"|CrMo)\\/"+QQ)],[VU4]:[new RegExp("CriOS\\/"+QQ)],"UC Browser":[new RegExp("(UCBrowser|UCWEB)\\/"+QQ)],[yY8]:[Ds0],[vU4]:[Ds0],[Es0]:[new RegExp("("+Es0+"|OPR)\\/"+QQ)],[zs0]:[new RegExp(zs0+"\\/"+QQ)],[CU4]:[new RegExp("FxiOS\\/"+QQ)],[fU4]:[new RegExp("Konqueror[:/]?"+QQ,"i")],[RY0]:[new RegExp(RY0+" "+QQ),Ds0],[_U4]:[new RegExp("android\\s"+QQ,"i")],[qU4]:[new RegExp(IU4+"\\/"+QQ)],[hY8]:[new RegExp("(rv:|MSIE )"+QQ)],Mozilla:[new RegExp("rv:"+QQ)]},Az5=[[new RegExp(AY0+"; "+AY0+" (.*?)[);]","i"),($)=>[AY0,$&&$[1]||""]],[new RegExp(js0,"i"),[js0,""]],[new RegExp(Ps0,"i"),[Ps0,""]],[bU4,[RY0,""]],[new RegExp(wt,"i"),($,Z)=>{if(/Phone/.test(Z)||/WPDesktop/.test(Z))return[xU4,""];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=yU4[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/,[MU4,""]],[/Linux|debian/i,["Linux",""]]]});function mY8($){return $?.replace(/\/+$/,"")}async function iY8($,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 dY8="utf8",nY8=($)=>$ instanceof Error;var YQ=O(()=>{RY8();kY8();Bs0();zY0();Ut();_Y8();fY8();lY8()});var gU4,bz5;var Ts0=O(()=>{YQ();gU4={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}},bz5=gU4.info});var pY8=O(()=>{Ts0();Oz()});var tY8=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 oY8=()=>{};async function rY8($){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 aY8($){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=xY8("[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=mY8(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=!AY8()||(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 rY8($)})}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(aY8(F))return!1;return Is0(F)}};try{await this.fetchWithRetry(W,U,N)}catch(F){if(aY8(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,dY8)}catch{if(Y instanceof Blob)G=Y.size;else G=new TextEncoder().encode(Y).length}return await iY8(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 rY8(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(()=>{oY8();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 sY8=O(()=>{DY0();Oz();qs0();Ft();YQ()});var eY8=O(()=>{Ut()});function ZG8($){let Z=globalThis._posthogChunkIds;if(!Z)return;let X=Object.keys(Z);if(kY0&&X.length===$G8)return kY0;return $G8=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,$G8,kY0;var XG8=()=>{};class QG8{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:ZG8(this.stackParser),skipFirstLines:$.skipFirstLines??1}}buildCoercingContext($,Z,X=0){let Q=(G,J)=>{if(!(J<=cU4))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 cU4=4;var YG8=O(()=>{YQ();XG8()});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 lU4,dU4,mU4,Vs0=($,Z)=>{let X=lU4.exec($);if(X){let[,Y,G,J]=X;return iW(Z,Y,A7,+G,+J)}let Q=dU4.exec($);if(Q){if(Q[2]&&Q[2].indexOf("eval")===0){let K=mU4.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 GG8=O(()=>{gB();Ms0();lU4=/^\s*at (\S+?)(?::(\d+))(?::(\d+))\s*$/i,dU4=/^\s*at (?:(.+?\)(?: \[.+\])?|.*?) ?\((?:address at )?)?(?:async )?((?:<anonymous>|[-a-z]+:|.*bundle|\/)?.*?)(?::(\d+))?(?::(\d+))?\)?\s*$/i,mU4=/\((\S*)(?::(\d+))(?::(\d+))\)/});var iU4,nU4,ks0=($,Z)=>{let X=iU4.exec($);if(X){if(X[3]&&X[3].indexOf(" > eval")>-1){let J=nU4.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 JG8=O(()=>{gB();Ms0();iU4=/^\s*(.*?)(?:\((.*?)\))?(?:^|@)?((?:[-a-z]+)?:\/.*?|\[native code\]|[^@]*(?:bundle|\d+\.js)|\/[\w\-. /=]+)(?::(\d+))?(?::(\d+))?\s*$/i,nU4=/(\S+) line (\d+)(?: > eval line \d+)* > eval/i});var pU4,KG8=($,Z)=>{let X=pU4.exec($);return X?iW(Z,X[2],X[1]||A7,+X[3],X[4]?+X[4]:void 0):void 0};var WG8=O(()=>{gB();pU4=/^\s*at (?:((?:\[object object\])?.+) )?\(?((?:[-a-z]+):.*?):(\d+)(?::(\d+))?\)?\s*$/i});var tU4,HG8=($,Z)=>{let X=tU4.exec($);return X?iW(Z,X[2],X[3]||A7,+X[1]):void 0},oU4,UG8=($,Z)=>{let X=oU4.exec($);return X?iW(Z,X[5],X[3]||X[4]||A7,+X[1],+X[2]):void 0};var NG8=O(()=>{gB();tU4=/ line (\d+).*script (?:in )?(\S+)(?:: in function (\S+))?$/i,oU4=/ line (\d+), column (\d+)\s*(?:in (?:<anonymous function: ([^>]+)>|([^)]+))\(.*\))? in (.*):\s*$/i});function sU4($,Z=!1){return!(Z||$&&!$.startsWith("/")&&!$.match(/^[A-Z]:/)&&!$.startsWith(".")&&!$.match(/^[a-zA-Z]([a-zA-Z0-9.\-+])*:\/\//))&&$!==void 0&&!$.includes("node_modules/")}function FG8($){return parseInt($||"",10)||void 0}var rU4,aU4,wG8=($,Z)=>{let X=$.match(aU4);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:FG8(X[3]),colno:FG8(X[4]),in_app:sU4(W||"",H),platform:Z}}if($.match(rU4))return{filename:$,platform:Z}};var BG8=O(()=>{gB();rU4=/^\s*[-]{4,}$/,aU4=/at (?:async )?(?:(.+?)\s+\()?(?:(.+):(\d+):(\d+)?|([^)]+))\)?/});function DG8($){if(!$.length)return[];let Z=Array.from($);return Z.reverse(),Z.slice(0,LG8).map((X)=>({...X,filename:X.filename||eU4(Z).filename,function:X.function||A7}))}function eU4($){return $[$.length-1]||{}}function $N4(){return EG8("web:javascript",Vs0,ks0)}function EG8($,...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=BQ8($._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=BQ8(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(OQ8()).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(OQ8()).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 MH4,VH4,kH4;var xa0=O(()=>{MH4=new Set(["id","title","description","is_public","is_unlisted","created_at","updated_at","created_by"]),VH4=new Set(["is_public","is_unlisted"]),kH4={_meta:"meta_json",server:"server_json"}});import{randomUUID as _H4}from"crypto";function LQ8($,Z){if(!$)return Z;try{return JSON.parse($)}catch{return Z}}function DQ8($){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:DQ8($._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=_H4(),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:DQ8($._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:LQ8($.meta_json,{}),server:LQ8($.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 vH4,randomBytes as xH4,randomUUID as fH4}from"crypto";function EQ8($){return vH4("sha256").update($).digest("hex")}function bH4(){return`prk_${xH4(32).toString("hex")}`}class Ig{db;constructor($){this.db=$}async generate($,Z){let X=fH4(),Q=bH4(),Y=await EQ8(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 EQ8(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 zQ8}from"crypto";function jQ8($,Z){if(!$)return Z;try{return JSON.parse($)}catch{return Z}}class pQ0{db;constructor($){this.db=$}async create($){let Z=zQ8(),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:jQ8($.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=zQ8(),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:jQ8($.tool_results,[]),agent_summary:$.agent_summary,duration_ms:Number($.duration_ms??0),action_taken:$.action_taken,tested_at:$.tested_at}}}var PQ8=()=>{};import{randomUUID as yH4}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:yH4(),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 AQ8=()=>{};var TQ8=O(()=>{xa0();fa0();ba0();PQ8();AQ8()});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 gH4}from"kysely";function RQ8($){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?RQ8(Z):null}async getBillingByStripeSubscriptionId($){let Z=await this.db.selectFrom("organization_billing").selectAll().where("stripe_subscription_id","=",$).executeTakeFirst();return Z?RQ8(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:gH4`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 qQ8(){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,IQ8,hH4,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}],IQ8=new Set([...aQ0.find(($)=>$.id==="basic-usage")?.tools??[],"ORG_FS_READ","ORG_FS_WRITE"]),hH4=["agents:manage","connections:manage"],sQ0=new Set(aQ0.filter(($)=>hH4.includes($.id)).flatMap(($)=>$.tools))});function O3($){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 L3=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&&IQ8.has($))return!0;if(O3(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();L3();Vg=class Vg extends Error{constructor($){super($);this.name="UnauthorizedError"}};HN=class HN extends Error{constructor($){super($);this.name="ForbiddenError"}}});function MQ8($){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(VQ8[Z])??$.get(kQ8[Z])}function ca0($,Z,X){$[VQ8[Z]]=X,$[kQ8[Z]]=X}var VQ8,kQ8;var la0=O(()=>{VQ8={token:"x-studio-token",client:"x-studio-client",properties:"x-studio-properties",runMetadata:"x-studio-run-metadata"},kQ8={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<X58)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){uH4(),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 uH4(){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 cH4($){try{return YY0($)}catch{return null}}function lH4($){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=cH4(Q);if(!Y)continue;let[G,J]=Y,K=ep(G,$),W=lH4(K);if(W){if(!X[W])X[W]=[];X[W].push(J)}}return X}function SQ8($,Z){let X=ma0($,Z);return new Set(Object.keys(X).filter((Q)=>Q!=="*"))}var ia0=()=>{};async function CQ8($){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&&dH4.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&&G<=3153600000)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 dH4;var _Q8=O(()=>{dH4=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 vQ8=()=>{};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 xQ8;var fQ8=O(()=>{xQ8=Symbol()});async function mH4($,Z){let X=await $.formData();if(X)return iH4(X,Z);return{}}function iH4($,Z){let X=Object.create(null);if($.forEach((Q,Y)=>{if(!(Z.all||Y.endsWith("[]")))X[Y]=Q;else nH4(X,Y,Q)}),Z.dot)Object.entries(X).forEach(([Q,Y])=>{if(Q.includes("."))pH4(X,Q,Y),delete X[Q]});return X}var bQ8=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 mH4($,{all:X,dot:Q});return{}},nH4=($,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]},pH4=($,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 yQ8=O(()=>{pa0()});var oa0=($)=>{let Z=$.split("/");if(Z[0]==="")Z.shift();return Z},gQ8=($)=>{let{groups:Z,path:X}=tH4($),Q=oa0(X);return oH4(Q,Z)},tH4=($)=>{let Z=[];return $=$.replace(/\{[^}]+\}/g,(X,Q)=>{let Y=`@${Q}`;return Z.push([Y,X]),Y}),{groups:Z,path:$}},oH4=($,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,hQ8=($,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}})}},uQ8=($)=>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 uQ8(W.includes("%25")?W.replace(/%25/g,"%2525"):W)}else if(Y===63||Y===35)break}return Z.slice(X,Q)},cQ8=($)=>{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):$},lQ8=($,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},dQ8,mQ8=($,Z)=>{return lQ8($,Z,!0)},$t;var xB=O(()=>{JY0={},dQ8=lQ8,$t=decodeURIComponent});var iQ8=($)=>Sg($,$t),GY0;var pa0=O(()=>{sJ();fQ8();yQ8();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)?iQ8(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)?iQ8(Q):Q}return $}#Y($){return this.#Z[1]?this.#Z[1][$]:$}query($){return dQ8(this.url,$)}queries($){return mQ8(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 bQ8(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[xQ8](){return this.#Z}get matchedRoutes(){return this.#Z[0].map(([[,$]])=>$)}get routePath(){return this.#Z[0].map(([[,$]])=>$)[this.routeIndex].path}}});var WY0,nQ8=($,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 nQ8(await J,G);else return J};var HY0=O(()=>{WY0={Stringify:1,BeforeStream:2,Stream:3}});var pQ8="text/plain; charset=UTF-8",aa0=($,Z)=>{return{"Content-Type":$,...Z}},Xt=($,Z)=>new Response($,Z),tQ8=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(pQ8,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",oQ8="all",rQ8,NY0="Can not add a route since the matcher is already built.",FY0;var fB=O(()=>{rQ8=["get","post","put","delete","options","patch"],FY0=class extends Error{}});var sa0="__COMPOSED_HANDLER";var ea0=()=>{};var rH4=($)=>{return $.text("404 Not Found",404)},aQ8=($,Z)=>{if("getResponse"in $){let X=$.getResponse();return Z.newResponse(X.body,X)}return console.error($),Z.text("Internal Server Error",500)},sQ8=class ${get;post;put;delete;options;patch;all;on;use;router;getPath;_basePath="/";#$="/";routes=[];constructor(Z={}){[...rQ8,oQ8].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:cQ8}#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=rH4;errorHandler=aQ8;route(Z,X){let Q=this.basePath(Z);return X.routes.map((Y)=>{let G;if(X.errorHandler===aQ8)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 tQ8(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 eQ8=O(()=>{vQ8();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 sH4($,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,aH4,$Y8=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(sH4).map((Q)=>{let Y=this.#X[Q];return(typeof Y.#Z==="number"?`(${Q})@${Y.#Z}`:aH4.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(),aH4=new Set(".\\+*[^]$()")});var ZY8=class{#$={varIndex:0};#Z=new $Y8;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 XY8=O(()=>{Zs0()});function YY8($){return QY8[$]??=new RegExp($==="*"?"":`^${$.replace(/\/\*$|([.\\+*[^\]$()])/g,(Z,X)=>X?`\\${X}`:"(?:|/.*)")}$`)}function $U4(){QY8=Object.create(null)}function ZU4($){let Z=new ZY8,X=[];if($.length===0)return eH4;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(YY8(X).test(Z))return[...$[X]];return}var eH4,QY8,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=YY8(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,$U4(),$}#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 ZU4(Z)}};var Xs0=O(()=>{fB();xB();$s0();Zs0();XY8();eH4=[/^$/,[],Object.create(null)],QY8=Object.create(null)});var XU4=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 GY8=O(()=>{fB();$s0();Xs0()});var JY8=O(()=>{Xs0();GY8()});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 KY8=O(()=>{fB()});var WY8=O(()=>{KY8()});var Jt,QU4=($)=>{for(let Z in $)return!0;return!1},HY8=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=gQ8(X),J=[];for(let K=0,W=G.length;K<W;K++){let H=G[K],U=G[K+1],N=hQ8(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),QU4(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 UY8=O(()=>{fB();xB();Jt=Object.create(null)});var Ys0=class{name="TrieRouter";#$;constructor(){this.#$=new HY8}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 NY8=O(()=>{xB();UY8()});var FY8=O(()=>{NY8()});var I1;var Gs0=O(()=>{eQ8();JY8();WY8();FY8();I1=class extends sQ8{constructor($={}){super($);this.router=$.router??new Qs0({routers:[new OY0,new Ys0]})}}});var d6=O(()=>{Gs0()});import{z as W$}from"zod";function wY8(){return GU4.parse(process.env)}var Js0=($)=>W$.enum(["true","false","1","0"]).optional().transform((Z)=>Z===void 0?$:Z==="true"||Z==="1"),YU4=($)=>W$.string().optional().transform((Z)=>Z?Z.split(",").map((X)=>X.trim()):$),GU4;var BY8=O(()=>{GU4=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:YU4(["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 OY8=O(()=>{LY0={enabled:!0,batchSize:250,flushIntervalMs:300,maxQueueSize:1e4,redactor:"regex"}});import{existsSync as JU4,readFileSync as KU4}from"fs";function WU4(){let $=wY8(),Z=a0().configPath;if(!JU4(Z))return{auth:$,monitoring:LY0};try{let X=JSON.parse(KU4(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=WU4();return Ks0}function LY8(){return Bz().theme}var Ks0=null;var Ws0=O(()=>{BY8();OY8();k8()});import{dirname as HU4,posix as UU4,sep as NU4}from"path";function EY8(){let $=FU4();return async(Z)=>{for(let X of Z)X.module=$(X.filename);return Z}}function FU4($=process.argv[1]?HU4(process.argv[1]):process.cwd(),Z=NU4==="\\"){let X=Z?DY8($):$;return(Q)=>{if(!Q)return;let Y=Z?DY8(Q):Q,{dir:G,base:J,ext:K}=UU4.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 DY8($){return $.replace(/^[A-Z]:/,"").replace(/\\/g,"/")}var zY8=()=>{};function wU4($,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=jY8($.flags),X=PY8($.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,wU4(Y,G,X[Y])]));return{...$,featureFlags:Z,featureFlagPayloads:X,flags:Q}}},jY8=($)=>Object.fromEntries(Object.entries($??{}).map(([Z,X])=>[Z,Kt(X)]).filter(([,Z])=>Z!==void 0)),PY8=($)=>{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 AY8(){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 BU4,TY8=function($,Z=[]){if(!$)return!1;let X=$.toLowerCase();return BU4.concat(Z).some((Q)=>{let Y=Q.toLowerCase();return X.indexOf(Y)!==-1})};var RY8=O(()=>{BU4=["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 MY8($){return Lz($,"ErrorEvent")}function vg($){return typeof Event<"u"&&DU4($,Event)}function VY8($){return Lz($,"Object")}function DU4($,Z){try{return $ instanceof Z}catch{return!1}}var LU4,IY8,Zz5,Fs0,jY0,Wt=($)=>$===Object($)&&!jY0($),_g=($)=>$===void 0,bB=($)=>Fs0.call($)=="[object String]",qY8=($)=>bB($)&&$.trim().length===0,Ht=($)=>Fs0.call($)=="[object Number]"&&$===$,ws0=($)=>$ instanceof Error;var Ut=O(()=>{Oz();zY0();LU4=Array.isArray,IY8=Object.prototype,Zz5=IY8.hasOwnProperty,Fs0=IY8.toString,jY0=LU4||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,EU4,$._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 EU4=86400000;var kY8=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 CY8{constructor($){this.timestamp=0,this.counter=0,this.random=$??zU4()}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 zU4=()=>({nextUint32:()=>65536*Math.trunc(65536*Math.random())+Math.trunc(65536*Math.random())}),SY8,yB=()=>jU4().toString(),jU4=()=>(SY8||(SY8=new CY8)).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 _Y8=O(()=>{Ft()});function PU4($=console){return{log:$.log.bind($),warn:$.warn.bind($),error:$.error.bind($),debug:$.debug.bind($)}}function xY8($,Z=AU4){return vY8($,Z,PU4())}var vY8=($,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)=>vY8(`${$} ${G}`,Z,X)}},AU4=($)=>$();var fY8=()=>{};var fg="Mobile",TY0="iOS",xg="Android",bY8="Tablet",wz5,RU4="Apple",Bz5,yY8="Safari",RY0="BlackBerry",gY8="Samsung",IU4,qU4,IY0="Chrome",MU4,VU4,hY8="Internet Explorer",kU4,Es0="Opera",Oz5,uY8="Edge",SU4,zs0="Firefox",CU4,js0="Nintendo",Ps0="PlayStation",AY0="Xbox",_U4,vU4,wt="Windows",xU4,cY8="Generic",Lz5,Dz5,fU4="Konqueror",QQ="(\\d+(\\.\\d+)?)",Ds0,Ez5,zz5,jz5,bU4,yU4,Pz5,Az5;var lY8=O(()=>{zY0();Ut();wz5=xg+" "+bY8,Bz5=RU4+" Watch",IU4=gY8+"Browser",qU4=gY8+" Internet",MU4=IY0+" OS",VU4=IY0+" "+TY0,kU4=hY8+" "+fg,Oz5=Es0+" Mini",SU4="Microsoft "+uY8,CU4=zs0+" "+TY0,_U4=xg+" "+fg,vU4=fg+" "+yY8,xU4=wt+" Phone",Lz5=cY8+" "+fg.toLowerCase(),Dz5=cY8+" "+bY8.toLowerCase(),Ds0=new RegExp("Version/"+QQ),Ez5=new RegExp(AY0,"i"),zz5=new RegExp(Ps0+" \\w+","i"),jz5=new RegExp(js0+" \\w+","i"),bU4=new RegExp(RY0+"|PlayBook|BB10","i"),yU4={"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"},Pz5={[kU4]:[new RegExp("rv:"+QQ)],[SU4]:[new RegExp(uY8+"?\\/"+QQ)],[IY0]:[new RegExp("("+IY0+"|CrMo)\\/"+QQ)],[VU4]:[new RegExp("CriOS\\/"+QQ)],"UC Browser":[new RegExp("(UCBrowser|UCWEB)\\/"+QQ)],[yY8]:[Ds0],[vU4]:[Ds0],[Es0]:[new RegExp("("+Es0+"|OPR)\\/"+QQ)],[zs0]:[new RegExp(zs0+"\\/"+QQ)],[CU4]:[new RegExp("FxiOS\\/"+QQ)],[fU4]:[new RegExp("Konqueror[:/]?"+QQ,"i")],[RY0]:[new RegExp(RY0+" "+QQ),Ds0],[_U4]:[new RegExp("android\\s"+QQ,"i")],[qU4]:[new RegExp(IU4+"\\/"+QQ)],[hY8]:[new RegExp("(rv:|MSIE )"+QQ)],Mozilla:[new RegExp("rv:"+QQ)]},Az5=[[new RegExp(AY0+"; "+AY0+" (.*?)[);]","i"),($)=>[AY0,$&&$[1]||""]],[new RegExp(js0,"i"),[js0,""]],[new RegExp(Ps0,"i"),[Ps0,""]],[bU4,[RY0,""]],[new RegExp(wt,"i"),($,Z)=>{if(/Phone/.test(Z)||/WPDesktop/.test(Z))return[xU4,""];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=yU4[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/,[MU4,""]],[/Linux|debian/i,["Linux",""]]]});function mY8($){return $?.replace(/\/+$/,"")}async function iY8($,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 dY8="utf8",nY8=($)=>$ instanceof Error;var YQ=O(()=>{RY8();kY8();Bs0();zY0();Ut();_Y8();fY8();lY8()});var gU4,bz5;var Ts0=O(()=>{YQ();gU4={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}},bz5=gU4.info});var pY8=O(()=>{Ts0();Oz()});var tY8=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 oY8=()=>{};async function rY8($){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 aY8($){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=xY8("[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=mY8(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=!AY8()||(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 rY8($)})}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(aY8(F))return!1;return Is0(F)}};try{await this.fetchWithRetry(W,U,N)}catch(F){if(aY8(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,dY8)}catch{if(Y instanceof Blob)G=Y.size;else G=new TextEncoder().encode(Y).length}return await iY8(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 rY8(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(()=>{oY8();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 sY8=O(()=>{DY0();Oz();qs0();Ft();YQ()});var eY8=O(()=>{Ut()});function ZG8($){let Z=globalThis._posthogChunkIds;if(!Z)return;let X=Object.keys(Z);if(kY0&&X.length===$G8)return kY0;return $G8=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,$G8,kY0;var XG8=()=>{};class QG8{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:ZG8(this.stackParser),skipFirstLines:$.skipFirstLines??1}}buildCoercingContext($,Z,X=0){let Q=(G,J)=>{if(!(J<=cU4))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 cU4=4;var YG8=O(()=>{YQ();XG8()});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 lU4,dU4,mU4,Vs0=($,Z)=>{let X=lU4.exec($);if(X){let[,Y,G,J]=X;return iW(Z,Y,A7,+G,+J)}let Q=dU4.exec($);if(Q){if(Q[2]&&Q[2].indexOf("eval")===0){let K=mU4.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 GG8=O(()=>{gB();Ms0();lU4=/^\s*at (\S+?)(?::(\d+))(?::(\d+))\s*$/i,dU4=/^\s*at (?:(.+?\)(?: \[.+\])?|.*?) ?\((?:address at )?)?(?:async )?((?:<anonymous>|[-a-z]+:|.*bundle|\/)?.*?)(?::(\d+))?(?::(\d+))?\)?\s*$/i,mU4=/\((\S*)(?::(\d+))(?::(\d+))\)/});var iU4,nU4,ks0=($,Z)=>{let X=iU4.exec($);if(X){if(X[3]&&X[3].indexOf(" > eval")>-1){let J=nU4.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 JG8=O(()=>{gB();Ms0();iU4=/^\s*(.*?)(?:\((.*?)\))?(?:^|@)?((?:[-a-z]+)?:\/.*?|\[native code\]|[^@]*(?:bundle|\d+\.js)|\/[\w\-. /=]+)(?::(\d+))?(?::(\d+))?\s*$/i,nU4=/(\S+) line (\d+)(?: > eval line \d+)* > eval/i});var pU4,KG8=($,Z)=>{let X=pU4.exec($);return X?iW(Z,X[2],X[1]||A7,+X[3],X[4]?+X[4]:void 0):void 0};var WG8=O(()=>{gB();pU4=/^\s*at (?:((?:\[object object\])?.+) )?\(?((?:[-a-z]+):.*?):(\d+)(?::(\d+))?\)?\s*$/i});var tU4,HG8=($,Z)=>{let X=tU4.exec($);return X?iW(Z,X[2],X[3]||A7,+X[1]):void 0},oU4,UG8=($,Z)=>{let X=oU4.exec($);return X?iW(Z,X[5],X[3]||X[4]||A7,+X[1],+X[2]):void 0};var NG8=O(()=>{gB();tU4=/ line (\d+).*script (?:in )?(\S+)(?:: in function (\S+))?$/i,oU4=/ line (\d+), column (\d+)\s*(?:in (?:<anonymous function: ([^>]+)>|([^)]+))\(.*\))? in (.*):\s*$/i});function sU4($,Z=!1){return!(Z||$&&!$.startsWith("/")&&!$.match(/^[A-Z]:/)&&!$.startsWith(".")&&!$.match(/^[a-zA-Z]([a-zA-Z0-9.\-+])*:\/\//))&&$!==void 0&&!$.includes("node_modules/")}function FG8($){return parseInt($||"",10)||void 0}var rU4,aU4,wG8=($,Z)=>{let X=$.match(aU4);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:FG8(X[3]),colno:FG8(X[4]),in_app:sU4(W||"",H),platform:Z}}if($.match(rU4))return{filename:$,platform:Z}};var BG8=O(()=>{gB();rU4=/^\s*[-]{4,}$/,aU4=/at (?:async )?(?:(.+?)\s+\()?(?:(.+):(\d+):(\d+)?|([^)]+))\)?/});function DG8($){if(!$.length)return[];let Z=Array.from($);return Z.reverse(),Z.slice(0,LG8).map((X)=>({...X,filename:X.filename||eU4(Z).filename,function:X.function||A7}))}function eU4($){return $[$.length-1]||{}}function $N4(){return EG8("web:javascript",Vs0,ks0)}function EG8($,...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=OG8.test(K)?K.replace(OG8,"$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>=LG8)break}}return DG8(Y)}}var OG8,LG8=50;var zG8=O(()=>{gB();GG8();JG8();WG8();NG8();BG8();OG8=/\(error: (.*)\)/});class jG8{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 PG8=O(()=>{YQ()});class AG8{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 TG8=O(()=>{YQ()});class RG8{constructor(){}match($){return MY8($)&&$.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 IG8=O(()=>{YQ()});class qG8{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(ZN4);if(Q)Z=Q[1],X=Q[2];return[Z,X]}}var ZN4;var MG8=O(()=>{ZN4=/^(?:[Uu]ncaught (?:exception: )?)?(?:((?:Eval|Internal|Range|Reference|Syntax|Type|URI|)Error): )?(.*)$/i});var VG8;var kG8=O(()=>{VG8=["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 SG8{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($)&&!qY8($)&&VG8.indexOf($)>=0}getErrorPropertyFromObject($){for(let Z in $)if(Object.prototype.hasOwnProperty.call($,Z)){let X=$[Z];if(nY8(X))return X}}getObjectClassName($){try{let Z=Object.getPrototypeOf($);return Z?Z.constructor.name:void 0}catch(Z){return}}}var CG8=O(()=>{YQ();kG8();Ss0()});class _G8{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 vG8=O(()=>{YQ();Ss0()});class xG8{match($){return PY0($)}coerce($,Z){return{type:"Error",value:`Primitive value captured as exception: ${String($)}`,stack:Z.syntheticException?.stack,synthetic:!0}}}var fG8=O(()=>{YQ()});class bG8{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 yG8=O(()=>{YQ()});var gG8=O(()=>{PG8();TG8();IG8();MG8();CG8();vG8();fG8();yG8()});class hG8{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 uG8=()=>{};function Cs0($){if(!$)return{..._Y0};return{enabled:$.enabled??_Y0.enabled,max_bytes:YN4($.max_bytes,_Y0.max_bytes)}}function QN4($){if(!$)return{sanitizedProperties:{},droppedKeys:[]};let Z=[];return{sanitizedProperties:Object.keys($).reduce((Q,Y)=>{if(XN4.has(Y))return Z.push(Y),Q;return Q[Y]=$[Y],Q},{}),droppedKeys:Z}}class cG8{constructor($){this._entries=[],this._totalBytes=0,this._config=Cs0($)}setConfig($){this._config=Cs0($),this._trimToMaxBytes()}add($){let Z=GN4($);if(!Z)return;let X=lG8(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 YN4($,Z){if(!Ht($)||$===1/0||$===-1/0)return Z;let X=Math.floor($);if(X<0)return Z;return X}function GN4($){let Z=JN4($);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 JN4($){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 lG8($){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,XN4,_Y0;var dG8=O(()=>{YQ();Ot={MESSAGE:"$message",TIMESTAMP:"$timestamp"},XN4=new Set([Ot.MESSAGE,Ot.TIMESTAMP]),_Y0={enabled:!0,max_bytes:32768}});var oQ={};B0(oQ,{winjsStackLineParser:()=>KG8,stripReservedExceptionStepFields:()=>QN4,reverseAndStripFrames:()=>DG8,resolveExceptionStepsConfig:()=>Cs0,opera11StackLineParser:()=>UG8,opera10StackLineParser:()=>HG8,nodeStackLineParser:()=>wG8,getUtf8ByteLength:()=>lG8,geckoStackLineParser:()=>ks0,createStackParser:()=>EG8,createDefaultStackParser:()=>$N4,chromeStackLineParser:()=>Vs0,StringCoercer:()=>qG8,ReduceableCache:()=>hG8,PromiseRejectionEventCoercer:()=>bG8,PrimitiveCoercer:()=>xG8,ObjectCoercer:()=>SG8,ExceptionStepsBuffer:()=>cG8,EventCoercer:()=>_G8,ErrorPropertiesBuilder:()=>QG8,ErrorEventCoercer:()=>RG8,ErrorCoercer:()=>AG8,EXCEPTION_STEP_INTERNAL_FIELDS:()=>Ot,DOMExceptionCoercer:()=>jG8,DEFAULT_EXCEPTION_STEPS_CONFIG:()=>_Y0});var mG8=O(()=>{YG8();zG8();gG8();uG8();dG8()});var Ez=O(()=>{DY0();Ns0();Ts0();pY8();Ft();tY8();mG8();YQ();sY8();qs0();eY8();Oz()});import{createReadStream as KN4}from"fs";import{createInterface as WN4}from"readline";async function tG8($){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"||BN4(J)||ON4(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(pG8.get(Y))continue;let G=Z[Y];if(!G)continue;G.sort((W,H)=>W-H);let J=DN4(G);if(J.every((W)=>LN4(Y,W)))continue;let K=EN4(vY0,Y,{});Q.push(NN4(Y,J,K))}if(await Promise.all(Q).catch(()=>{}),$&&$.length>0)FN4($,vY0);return vY0.reduce(),$}function NN4($,Z,X){return new Promise((Q)=>{let Y=KN4($),G=WN4({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(){pG8.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]=zN4(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 FN4($,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;wN4(X.lineno,X,Q)}}function wN4($,Z,X){if(Z.lineno===void 0||X===void 0)return;Z.pre_context=[];for(let Y=oG8($);Y<$;Y++){let G=X[Y];if(G===void 0)return void iG8(Z);Z.pre_context.push(G)}if(X[$]===void 0)return void iG8(Z);Z.context_line=X[$];let Q=rG8($);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 iG8($){delete $.pre_context,delete $.context_line,delete $.post_context}function BN4($){return $.startsWith("node:")||$.endsWith(".min.js")||$.endsWith(".min.cjs")||$.endsWith(".min.mjs")||$.startsWith("data:")}function ON4($){if($.lineno!==void 0&&$.lineno>UN4)return!0;if($.colno!==void 0&&$.colno>HN4)return!0;return!1}function LN4($,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 DN4($){if(!$.length)return[];let Z=0,X=$[0];if(typeof X!="number")return[];let Q=nG8(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=nG8(G);Z++}return Y}function nG8($){return[oG8($),rG8($)]}function oG8($){return Math.max(1,$-_s0)}function rG8($){return $+_s0}function EN4($,Z,X){let Q=$.get(Z);if(Q===void 0)return $.set(Z,X),X;return Q}function zN4($,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,pG8,_s0=7,HN4=1000,UN4=1e4;var aG8=O(()=>{Ez();vY0=new oQ.ReduceableCache(25),pG8=new oQ.ReduceableCache(20)});import{isAbsolute as jN4,relative as PN4,sep as AN4}from"path";function sG8($=process.cwd()){let Z=AN4==="\\",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(jN4(G.filename))G.filename=X(PN4(Q,X(G.filename)))}return Y}}var eG8=()=>{};function TN4($,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 $38($,Z){globalThis.process?.on("uncaughtException",TN4($,Z))}function Z38($){globalThis.process?.on("unhandledRejection",(Z)=>$(Z,{mechanism:{type:"onunhandledrejection",handled:!1}}))}var X38=()=>{};class D3{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())$38(this.onException.bind(this),this.onFatalError.bind(this)),Z38(this.onException.bind(this))}onException($,Z){this.client.addPendingPromise((async()=>{if(!D3.isPreviouslyCapturedError($)){let X=await D3.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(RN4),process.exit(1)}isEnabled(){return!this.client.isDisabled&&this._exceptionAutocaptureEnabled}shutdown(){this._rateLimiter.stop()}}var RN4=2000;var xY0=O(()=>{X38();Ez()});var Q38="5.30.6";var Y38=()=>{};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 G38($){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 J38=()=>{};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"?N38(K,Q,this.cohorts,this.debugMode):W==="flag"?await this.evaluateFlagDependency(K,Q,Y):U38(K,Q,J),!H)return!1}if(G==null)return!0}if(G!=null&&await K38($.key,Z)>G/100)return!1;return!0}async getMatchingVariant($,Z){let X=await K38($.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(IN4,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 K38($,Z,X=""){let Q=await G38(`${$}.${Z}${X}`);return parseInt(Q.slice(0,15),16)/qN4}function U38($,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&&!MN4.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 W38(String(Y))&&String(J).match(String(Y))!==null;case"not_regex":return W38(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=_N4(String(Y));if(H==null)H=H38(Y);if(H==null)throw new f4(`Invalid date: ${Y}`);let U=H38(J);if(["is_date_before"].includes(G))return U<H;return U>H}case"semver_eq":return E3(T7(String(J)),T7(String(Y)))===0;case"semver_neq":return E3(T7(String(J)),T7(String(Y)))!==0;case"semver_gt":return E3(T7(String(J)),T7(String(Y)))>0;case"semver_gte":return E3(T7(String(J)),T7(String(Y)))>=0;case"semver_lt":return E3(T7(String(J)),T7(String(Y)))<0;case"semver_lte":return E3(T7(String(J)),T7(String(Y)))<=0;case"semver_tilde":{let H=T7(String(J)),{lower:U,upper:N}=kN4(String(Y));return E3(H,U)>=0&&E3(H,N)<0}case"semver_caret":{let H=T7(String(J)),{lower:U,upper:N}=SN4(String(Y));return E3(H,U)>=0&&E3(H,N)<0}case"semver_wildcard":{let H=T7(String(J)),{lower:U,upper:N}=CN4(String(Y));return E3(H,U)>=0&&E3(H,N)<0}default:throw new f4(`Unknown operator: ${G}`)}}function VN4($,Z){if(!($ in Z))throw new nW(`cohort ${$} not found in local cohorts - likely a static cohort that requires server evaluation`)}function N38($,Z,X,Q=!1){let Y=String($.value);VN4(Y,X);let G=X[Y];return F38(G,Z,X,Q)}function F38($,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=F38(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=N38(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=U38(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 W38($){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 E3($,Z){for(let X=0;X<3;X++){if($[X]<Z[X])return-1;if($[X]>Z[X])return 1}return 0}function kN4($){let Z=T7($),X=[Z[0],Z[1],Z[2]],Q=[Z[0],Z[1]+1,0];return{lower:X,upper:Q}}function SN4($){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 CN4($){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 H38($){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 _N4($){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 IN4=60000,qN4=1152921504606847000,MN4,yg,f4,nW;var w38=O(()=>{Ez();J38();MN4=["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 B38=()=>{};function gN4($){return typeof $=="string"?$.trim():""}function hN4($){return(typeof $=="string"?$.trim():"")||void 0}function uN4($){return(typeof $=="string"?$.trim():"")||yN4}var vN4=100,O38=30000,xN4=50000,fN4=50,bN4=500,yN4="https://us.i.posthog.com",bs0;var L38=O(()=>{Y38();Ez();vs0();w38();xY0();B38();bs0=class bs0 extends MY0{constructor($,Z={}){let X=gN4($),Q={...Z,host:uN4(Z.host),personalApiKey:hN4(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,vN4):O38,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 D3(this,Q,this._logger),this.distinctIdHasSentFlagCalls={},this.maxCacheSize=Q.maxCacheSize||xN4}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??bN4,Q=Z>=X;if(this._waitUntilCycle.timer!==void 0)clearTimeout(this._waitUntilCycle.timer);if(Q)return void this.resolveWaitUntilFlush();let Y=this.options.waitUntilDebounceMs??fN4;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 Q38}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($=O38){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(VY8(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(!D3.isPreviouslyCapturedError($)){let Y=Error("PostHog syntheticException");this.addPendingPromise(D3.buildEventMessage($,{syntheticException:Y},Z,X).then((G)=>this.capture({...G,uuid:Q})))}}async captureExceptionImmediate($,Z,X){if(!D3.isPreviouslyCapturedError($)){let Q=Error("PostHog syntheticException");return this.addPendingPromise(D3.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(TY8(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 cN4}from"async_hooks";class ys0{constructor(){this.storage=new cN4}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 D38=()=>{};function lN4($,{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[E38.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 E38;var z38=O(()=>{E38=class E38{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(lN4($,{organization:Z,projectId:K,prefix:X,severityAllowList:Q,sendExceptionsToPostHog:Y??!0}))}}}});var j38=O(()=>{xY0()});var P38=O(()=>{Ez();z38();j38();vs0()});var gs0;var A38=O(()=>{zY8();aG8();eG8();xY0();L38();Ez();D38();P38();D3.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),[EY8(),tG8,sG8()]);gs0=class gs0 extends bs0{getLibraryId(){return"posthog-node"}initializeContext(){return new ys0}}});import{createHash as dN4}from"crypto";function mN4(){return{capture:()=>{},identify:()=>{},captureException:()=>{},groupIdentify:()=>{},shutdown:async()=>{}}}function R38($){let Z=dN4("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,T38,n1;var b4=O(()=>{A38();hs0=process.env.POSTHOG_KEY,T38=process.env.POSTHOG_HOST;n1=hs0?new gs0(hs0,{...T38?{host:T38}:{},enableExceptionAutocapture:!0,flushAt:1,flushInterval:0}):mN4();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>
|