decocms 4.371.0 → 4.371.1
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-t16GmFFD.js → AlertCircle-C0-TxiO6.js} +1 -1
- package/dist/client/assets/{AreaChart-CxQ7Ao3R.js → AreaChart-CoPMvbKJ.js} +1 -1
- package/dist/client/assets/{ArrowLeft-HY7Uv4__.js → ArrowLeft-DJPAQw7U.js} +1 -1
- package/dist/client/assets/{ArrowRight-BXtyrNon.js → ArrowRight-BdNCMkoU.js} +1 -1
- package/dist/client/assets/{ArrowUp-cZ3ikcyU.js → ArrowUp-CA0-gutj.js} +1 -1
- package/dist/client/assets/{CartesianChart-Byp0SnUn.js → CartesianChart-CZW-iNRU.js} +1 -1
- package/dist/client/assets/{Check-BTpIoLcV.js → Check-DPmkVp9o.js} +1 -1
- package/dist/client/assets/{CheckCircle-B8akZhwz.js → CheckCircle-L1uNWTeX.js} +1 -1
- package/dist/client/assets/{ChevronRight-CKnzeSGF.js → ChevronRight-Cy9RadCH.js} +1 -1
- package/dist/client/assets/{ChevronSelectorVertical-DLLN3Jrh.js → ChevronSelectorVertical-Re7oyhI4.js} +1 -1
- package/dist/client/assets/{ChevronUp-CT0pFhxd.js → ChevronUp-DlAlGiaE.js} +1 -1
- package/dist/client/assets/{Copy01-CgV4lgMd.js → Copy01-DR-j5GBU.js} +1 -1
- package/dist/client/assets/{CreditCard01-CMgoHghV.js → CreditCard01-BdreiyNN.js} +1 -1
- package/dist/client/assets/{Database01-B6M3QRum.js → Database01-BJzPZhLQ.js} +1 -1
- package/dist/client/assets/{DotsVertical-DrQAveG6.js → DotsVertical-OZudxO2A.js} +1 -1
- package/dist/client/assets/{Download01-CS4QK_TT.js → Download01-CFE3dmp0.js} +1 -1
- package/dist/client/assets/{ErrorBarContext-DqCobLbp.js → ErrorBarContext-C5wObTqe.js} +1 -1
- package/dist/client/assets/{Eye-CtzcB9Un.js → Eye-j3TWnyRQ.js} +1 -1
- package/dist/client/assets/{File02-DD4AutCj.js → File02-BJKQz8dh.js} +1 -1
- package/dist/client/assets/{GitBranch01-cLKM3ULo.js → GitBranch01-CoQ__zNu.js} +1 -1
- package/dist/client/assets/{Globe01-CJEubxiw.js → Globe01-DvG6lHau.js} +1 -1
- package/dist/client/assets/{HardDrive-D3CIiO3U.js → HardDrive-5vJRcklo.js} +1 -1
- package/dist/client/assets/{Image01-DMSxcNyE.js → Image01-CYlbNXO1.js} +1 -1
- package/dist/client/assets/{Key01-CvpaWm2K.js → Key01-ul8Oow4l.js} +1 -1
- package/dist/client/assets/{Line-D7fF0vo9.js → Line-UJg13jRB.js} +1 -1
- package/dist/client/assets/{Link01-BTaDUtVY.js → Link01-DhrAf5on.js} +1 -1
- package/dist/client/assets/{LinkExternal01-De6j4Np2.js → LinkExternal01-Cnnt0i1n.js} +1 -1
- package/dist/client/assets/{MessageCircle01-p8E5OK7n.js → MessageCircle01-Csmtku99.js} +1 -1
- package/dist/client/assets/{Monitor01-BJeNu-a1.js → Monitor01-CwroNIhL.js} +1 -1
- package/dist/client/assets/{Package-DK9dOLCk.js → Package-BdaUmaHt.js} +1 -1
- package/dist/client/assets/{Palette-BqLqu4oe.js → Palette-DWnrHTYs.js} +1 -1
- package/dist/client/assets/{Play-CY5YidfV.js → Play-DdxMPTZZ.js} +1 -1
- package/dist/client/assets/{Plus-DYzEMfHc.js → Plus-DeeK2M8D.js} +1 -1
- package/dist/client/assets/{Printer-AhWbME7S.js → Printer-Dxx0wBbQ.js} +1 -1
- package/dist/client/assets/{SearchLg-DENgfmiG.js → SearchLg-D2PFuerf.js} +1 -1
- package/dist/client/assets/{SearchMd-DtsFz9nf.js → SearchMd-K12rQhTx.js} +1 -1
- package/dist/client/assets/{Sector-C6vlgUZH.js → Sector-CGboweI9.js} +1 -1
- package/dist/client/assets/{Settings02-mu2qB12n.js → Settings02-C2D3KrJO.js} +1 -1
- package/dist/client/assets/{Share07-BGCT37w6.js → Share07-CuCcaIKs.js} +1 -1
- package/dist/client/assets/{Shield01-zQZfrJSD.js → Shield01-Eo3hV7_Y.js} +1 -1
- package/dist/client/assets/{Stars01-ClJSo3pH.js → Stars01-CLBXU-E8.js} +1 -1
- package/dist/client/assets/{Sun-Dhb69X-z.js → Sun-Cl84jAMG.js} +1 -1
- package/dist/client/assets/{SwitchHorizontal01-CF7Zn7df.js → SwitchHorizontal01-DixKYGlF.js} +1 -1
- package/dist/client/assets/{Tool01-C3d-Z_qI.js → Tool01-050h7b-t.js} +1 -1
- package/dist/client/assets/{Tool02-DdREhml_.js → Tool02-CArhDp9C.js} +1 -1
- package/dist/client/assets/{Trash01-CBgUpFSF.js → Trash01-CO8Ng7lf.js} +1 -1
- package/dist/client/assets/{TrendUp01-yM3PpNYw.js → TrendUp01-BvUgeJGM.js} +1 -1
- package/dist/client/assets/{Upload01-CanSzxYG.js → Upload01-KPhkQ5vY.js} +1 -1
- package/dist/client/assets/{User01-D2w9GFKA.js → User01-Dz0JolLa.js} +1 -1
- package/dist/client/assets/{UserSquare-C2XBN0YV.js → UserSquare-CSZkAXD6.js} +1 -1
- package/dist/client/assets/{Users01-BQOAhGFf.js → Users01-DtyA-vKe.js} +1 -1
- package/dist/client/assets/{Users03-BMu5SlYc.js → Users03-D_di5oKF.js} +1 -1
- package/dist/client/assets/{X-BxXVKNVf.js → X-C0TLYkbc.js} +1 -1
- package/dist/client/assets/{XCircle-DP3A0LYH.js → XCircle-rfqM8vls.js} +1 -1
- package/dist/client/assets/{XClose-Dd96BjAd.js → XClose-D1BXFiFY.js} +1 -1
- package/dist/client/assets/{Zap-BANQ7xNU.js → Zap-ClPuBau2.js} +1 -1
- package/dist/client/assets/{ZoomOut-DGKL8Wmf.js → ZoomOut-B3aFTWVJ.js} +1 -1
- package/dist/client/assets/{access-gate-BGu2iYOi.js → access-gate-CEH6pmZh.js} +1 -1
- package/dist/client/assets/{add-connection-dialog-DgwnOh0x.js → add-connection-dialog-D0P3BW60.js} +1 -1
- package/dist/client/assets/{agent-analytics-biEccnxy.js → agent-analytics-JvtpHiQo.js} +1 -1
- package/dist/client/assets/agent-app-C24O_B5I.js +1 -0
- package/dist/client/assets/{agent-assets-COUJ9ZJd.js → agent-assets-M-IJ3mW0.js} +1 -1
- package/dist/client/assets/{agent-automation-D9iXVVXu.js → agent-automation-_OOPkMyR.js} +1 -1
- package/dist/client/assets/{agent-automations-QIrwC1O7.js → agent-automations-B65IGibY.js} +1 -1
- package/dist/client/assets/{agent-connect-sources-KplOnImN.js → agent-connect-sources-BScxWVBc.js} +1 -1
- package/dist/client/assets/agent-deck-B9hyeW87.js +1 -0
- package/dist/client/assets/{agent-e2e-CTQhpy53.js → agent-e2e-CWv13Eol.js} +1 -1
- package/dist/client/assets/{agent-experiments-DZFK3iS3.js → agent-experiments-sfC6Lqe2.js} +1 -1
- package/dist/client/assets/agent-file-bM_cVpDM.js +1 -0
- package/dist/client/assets/{agent-git-BabNMQHA.js → agent-git-DAdJx1Wg.js} +1 -1
- package/dist/client/assets/{agent-hosting-DirfXB27.js → agent-hosting-DwMOxMly.js} +1 -1
- package/dist/client/assets/{agent-icon-lNRuSVKm.js → agent-icon-BiGnObzK.js} +1 -1
- package/dist/client/assets/agent-library-file-Dgi210Ns.js +1 -0
- package/dist/client/assets/{agent-monitor-DECNBEXB.js → agent-monitor-N7BiRxoQ.js} +1 -1
- package/dist/client/assets/{agent-overview-DWxUWHsJ.js → agent-overview-FYkyBP9v.js} +1 -1
- package/dist/client/assets/agent-settings-D5dc8WiN.js +1 -0
- package/dist/client/assets/{agent-site-editor-v3O0k9a-.js → agent-site-editor-CauI0s_F.js} +1 -1
- package/dist/client/assets/agent-site-editor-code-0MnA4pc9.js +2 -0
- package/dist/client/assets/{agent-site-editor-content-C51QB5JC.js → agent-site-editor-content-DusAz1gD.js} +2 -2
- package/dist/client/assets/{agent-site-editor-preview-DRFSg53h.js → agent-site-editor-preview-BD0l2ruL.js} +3 -3
- package/dist/client/assets/agent-view-Bd1H6lfA.js +1 -0
- package/dist/client/assets/{agent-view-guard-COPTapPw.js → agent-view-guard-DEZqe5Yn.js} +1 -1
- package/dist/client/assets/{agents-list-CYL-jlyp.js → agents-list-D9aYDM-r.js} +1 -1
- package/dist/client/assets/{ai-providers-BqV7vqKs.js → ai-providers-WLbGZ32j.js} +1 -1
- package/dist/client/assets/{alert-BXMnJYMc.js → alert-V7Wm-pHG.js} +1 -1
- package/dist/client/assets/{alert-dialog-BZ1o5787.js → alert-dialog-C6pDLcOY.js} +1 -1
- package/dist/client/assets/api-keys-C8RdXgwE.js +1 -0
- package/dist/client/assets/{api-keys-CtP9k40v.js → api-keys-DBx-sLNL.js} +1 -1
- package/dist/client/assets/app-editor-Df3InrIn.js +1 -0
- package/dist/client/assets/{asset-utils-BW6hS-Vv.js → asset-utils-Q0S5-J4d.js} +1 -1
- package/dist/client/assets/{auth-DVaX653V.js → auth-_OTb7ucb.js} +1 -1
- package/dist/client/assets/{auth-catchall-DhfVQhLT.js → auth-catchall-BwKuZoDY.js} +1 -1
- package/dist/client/assets/{auth-entry-GbJBUVUc.js → auth-entry-BjjjeSsi.js} +1 -1
- package/dist/client/assets/{auth-split-layout-Jtf6zhHc.js → auth-split-layout-CmEK87QP.js} +1 -1
- package/dist/client/assets/{authenticate-and-persist-oauth--PwyxHrV.js → authenticate-and-persist-oauth-sk9wyiL9.js} +1 -1
- package/dist/client/assets/{automation-list-row-B-BmiLOQ.js → automation-list-row-BQRrv-mM.js} +1 -1
- package/dist/client/assets/{automation-runs-CvN-ViNb.js → automation-runs-xXo7y48P.js} +1 -1
- package/dist/client/assets/automations-n3slcnWV.js +1 -0
- package/dist/client/assets/{autosend-RrsCJCzF.js → autosend-CxCswIxl.js} +1 -1
- package/dist/client/assets/{avatar-DMDwxyOC.js → avatar-CmhAIXd1.js} +1 -1
- package/dist/client/assets/{badge-B04u7Iz2.js → badge-BQcRAjbm.js} +1 -1
- package/dist/client/assets/{block-document-SaUEGHtk.js → block-document-zcRRzAU8.js} +1 -1
- package/dist/client/assets/{blocks-preview-workspace-context-DSGBiDKx.js → blocks-preview-workspace-context-CTa2E8XJ.js} +1 -1
- package/dist/client/assets/{breadcrumb-BJ4kb7XU.js → breadcrumb-PsRIPYAp.js} +1 -1
- package/dist/client/assets/{buckets-7YwbOBu-.js → buckets-C2Mnw28r.js} +1 -1
- package/dist/client/assets/{build-improve-prompt-doc-DloH7rHc.js → build-improve-prompt-doc-CDk0pfsj.js} +1 -1
- package/dist/client/assets/{bulk-category-panel-DnL23siN.js → bulk-category-panel-BKOt3Cbt.js} +1 -1
- package/dist/client/assets/{calendar-Luncm321.js → calendar-D3SnfVOV.js} +1 -1
- package/dist/client/assets/{capability-load-error-BJGXRamj.js → capability-load-error-B43iJrev.js} +1 -1
- package/dist/client/assets/{cards-C3iU5bAV.js → cards-BsJjaCyl.js} +1 -1
- package/dist/client/assets/category-editor-TFP8Cyaa.js +1 -0
- package/dist/client/assets/{chart-DfwQDWkm.js → chart-lZgAUDLm.js} +1 -1
- package/dist/client/assets/{chat-context-C7331aUi.js → chat-context-CoBHiltL.js} +1 -1
- package/dist/client/assets/{chat-draft-CcTVi1jY.js → chat-draft-DJUheoUs.js} +1 -1
- package/dist/client/assets/{checkbox-B0iv1edQ.js → checkbox-yqUkf7OW.js} +1 -1
- package/dist/client/assets/{choose-editor-9ovU6jNU.js → choose-editor-zOeLxhki.js} +1 -1
- package/dist/client/assets/{cli-auth-success-z4vItwgl.js → cli-auth-success-B2eElmbs.js} +1 -1
- package/dist/client/assets/{client-icons-C7cHoTwc.js → client-icons-DJ6NR0Tk.js} +1 -1
- package/dist/client/assets/{collapsible-CShI5lwF.js → collapsible-Pw-T7X4Y.js} +1 -1
- package/dist/client/assets/{collection-detail-CLJhAF6s.js → collection-detail-C9uuji1v.js} +1 -1
- package/dist/client/assets/{collection-display-button-vfXKWThj.js → collection-display-button-Cvh7SCuv.js} +1 -1
- package/dist/client/assets/{collection-search-Cic15zOR.js → collection-search-DcP3oL8c.js} +1 -1
- package/dist/client/assets/{collection-table-wrapper-BU7rIamq.js → collection-table-wrapper-BO3Rmslm.js} +1 -1
- package/dist/client/assets/{collection-tabs-BTXpTMr3.js → collection-tabs-Bz5VoH82.js} +1 -1
- package/dist/client/assets/{combobox-DfVRTnqi.js → combobox-D96oyObH.js} +1 -1
- package/dist/client/assets/{command-DUkP3zmM.js → command-DsHSX_Q2.js} +1 -1
- package/dist/client/assets/{command-palette-store-XBis5rCY.js → command-palette-store-Bh-jT81a.js} +1 -1
- package/dist/client/assets/{companion-mcps-section-XflWfJ9i.js → companion-mcps-section-BZZMPLgr.js} +1 -1
- package/dist/client/assets/{connect-DDoS2TK3.js → connect-Ch5IvlMi.js} +1 -1
- package/dist/client/assets/{connect-layout-DM55x4tY.js → connect-layout-BkgI1aqK.js} +1 -1
- package/dist/client/assets/{connection-_jyHU_UL.js → connection-Ckax9kml.js} +1 -1
- package/dist/client/assets/{connection-card-vQXsRR_o.js → connection-card-DRjApK4U.js} +1 -1
- package/dist/client/assets/{connection-detail-CogPySTK.js → connection-detail-DRDHHCoy.js} +1 -1
- package/dist/client/assets/{connection-form-helpers-DYV1KRrv.js → connection-form-helpers-CTatDCFh.js} +1 -1
- package/dist/client/assets/{connections-kvIrjgCr.js → connections-j1dRKolw.js} +1 -1
- package/dist/client/assets/{create-organization-dialog-ClFMpd19.js → create-organization-dialog-7AMbRjLu.js} +1 -1
- package/dist/client/assets/{decofile-api-BARSeSQx.js → decofile-api-DSJZcFNx.js} +1 -1
- package/dist/client/assets/{decopilot-cUeMFk1c.js → decopilot-CXbwfTk8.js} +1 -1
- package/dist/client/assets/{dialog-DolMafrK.js → dialog-2OQ2LxEM.js} +1 -1
- package/dist/client/assets/{discover-B3B2qs5r.js → discover-3w5WqvOf.js} +1 -1
- package/dist/client/assets/{domain-settings-BrduqtvC.js → domain-settings-DGdcQovP.js} +1 -1
- package/dist/client/assets/{download-app-dialog-DWrK0S2y.js → download-app-dialog-CooL40cq.js} +1 -1
- package/dist/client/assets/{drawer-bj1-7vWq.js → drawer-l3m_rTVV.js} +1 -1
- package/dist/client/assets/{dropdown-menu-DKi6r-jI.js → dropdown-menu-C_Ad2-Sm.js} +1 -1
- package/dist/client/assets/{editor-sstVZH8z.js → editor-B8X3kLOx.js} +1 -1
- package/dist/client/assets/{empty-state-BiMiwfS8.js → empty-state-BenBb6xP.js} +1 -1
- package/dist/client/assets/{empty-state-DPrgdHnO.js → empty-state-DQUIOtOI.js} +1 -1
- package/dist/client/assets/{extract-connection-data-amssTZqV.js → extract-connection-data-CPB2KH-s.js} +1 -1
- package/dist/client/assets/{feature-gate-GAGlxl_2.js → feature-gate-CHkTViSe.js} +1 -1
- package/dist/client/assets/{feature-paywall-DMe1WEQb.js → feature-paywall-BZprTeyJ.js} +1 -1
- package/dist/client/assets/{file-explorer-BYtr5WOs.js → file-explorer-CIIwmsmj.js} +1 -1
- package/dist/client/assets/{file-preview-x7-MgY1v.js → file-preview-DKi27zOw.js} +1 -1
- package/dist/client/assets/{file-share-button-CHL077fF.js → file-share-button-DjCMHoE-.js} +1 -1
- package/dist/client/assets/{file-type-icon-BerVMYpw.js → file-type-icon-OdO3rqaU.js} +1 -1
- package/dist/client/assets/{folder-icon-Bg2SHYwX.js → folder-icon-BJeoal6K.js} +1 -1
- package/dist/client/assets/{form-WXGHvZBn.js → form-DYY0T0Ph.js} +1 -1
- package/dist/client/assets/{gateway-client-y-HOSL5d.js → gateway-client-BVNanaRY.js} +1 -1
- package/dist/client/assets/{general-D9GzeSHC.js → general-Bmhe5AJi.js} +1 -1
- package/dist/client/assets/{github-icon-xpbWHYjC.js → github-icon-B5oLQet2.js} +1 -1
- package/dist/client/assets/{home-COmXCSEO.js → home-B6NFDC2N.js} +1 -1
- package/dist/client/assets/{hooks-eaxU4Dzu.js → hooks-BgSBJTIE.js} +1 -1
- package/dist/client/assets/{hooks-BILYBqoD.js → hooks-HpwgoFC5.js} +1 -1
- package/dist/client/assets/{index-B7iD44NA.js → index-1AZZF6nw.js} +1 -1
- package/dist/client/assets/{index-D92nJk4M.js → index-7tmEKxvy.js} +1 -1
- package/dist/client/assets/{index-O_d7IbvI.js → index-BWTOyWG7.js} +1 -1
- package/dist/client/assets/{index-6k60hctk.js → index-CGYjjYlC.js} +1 -1
- package/dist/client/assets/{index-CNbjwBIU.js → index-Ci-eaOqX.js} +1 -1
- package/dist/client/assets/{index-DXrLYuI6.js → index-Cl114pPG.js} +1 -1
- package/dist/client/assets/{index-BZcH2pUx.js → index-CoMP2Qdd.js} +1 -1
- package/dist/client/assets/{index-B1Ek4vGo.js → index-CzgZcCrm.js} +1 -1
- package/dist/client/assets/{index-jx3Y2kdg.js → index-D3XkEo8t.js} +1 -1
- package/dist/client/assets/{index-FOz1yCID.js → index-D47f-PFy.js} +1 -1
- package/dist/client/assets/{index-DeyF98wZ.js → index-DgsWrxen.js} +1 -1
- package/dist/client/assets/{index-CBkYTSk4.js → index-FkXidNHj.js} +1 -1
- package/dist/client/assets/{index--n-dBO4n.js → index-cls_6rd9.js} +1 -1
- package/dist/client/assets/{index-DL6tNiwC.js → index-mdGKLoWD.js} +1 -1
- package/dist/client/assets/{index-qv1lKMAY.js → index-nKkHSRkb.js} +4 -4
- package/dist/client/assets/{index-redirect-7NIIY2-H.js → index-redirect-D2zoJEqW.js} +1 -1
- package/dist/client/assets/{infiniteQueryObserver-D2W8J0Sg.js → infiniteQueryObserver-D7k-PkZ6.js} +1 -1
- package/dist/client/assets/{infra-billing-BjnHYAtH.js → infra-billing-lE5HyC-e.js} +1 -1
- package/dist/client/assets/{input-Dw_TZvOF.js → input-BgRPV9Bc.js} +1 -1
- package/dist/client/assets/{input-9LgasDbE.js → input-DngpeZVh.js} +1 -1
- package/dist/client/assets/{input-EAOo-JzH.js → input-Hsf1nkXM.js} +1 -1
- package/dist/client/assets/{integration-icon-c5d5aRDM.js → integration-icon-CAGkW7Vy.js} +1 -1
- package/dist/client/assets/{label-Bgsg6RCX.js → label-DcafVRIf.js} +1 -1
- package/dist/client/assets/{last-preview-page-BHdE8VOh.js → last-preview-page-BGeX2_0f.js} +1 -1
- package/dist/client/assets/{layout-38S5RZcK.js → layout-Cfj-m9Vm.js} +1 -1
- package/dist/client/assets/{legacy-agents-deep-DIghDqst.js → legacy-agents-deep-CCrce5H7.js} +1 -1
- package/dist/client/assets/{legacy-main-redirect-Cwlrj11s.js → legacy-main-redirect-BVdYhAaQ.js} +1 -1
- package/dist/client/assets/{library-DNT0Vlf2.js → library-CtjRCYrQ.js} +1 -1
- package/dist/client/assets/{login-DPHQRhM8.js → login-GKg8GpoY.js} +1 -1
- package/dist/client/assets/{markdown-lF3Contj.js → markdown-Fz2AMvvg.js} +1 -1
- package/dist/client/assets/{mcp-app-renderer-D-GVC0tc.js → mcp-app-renderer-HogOC3ED.js} +1 -1
- package/dist/client/assets/{mcp-oauth-U4XVBJvp.js → mcp-oauth-qdU_HYnI.js} +1 -1
- package/dist/client/assets/{members-rlKFIDOd.js → members-oZ2JcSPa.js} +1 -1
- package/dist/client/assets/{message-templates-COCKPF_j.js → message-templates-wJN9a2dq.js} +1 -1
- package/dist/client/assets/{mini-report-page-4fm2Gma4.js → mini-report-page-Dn9HZU--.js} +1 -1
- package/dist/client/assets/mock-board-DH9Tffqt.js +90 -0
- package/dist/client/assets/{monaco-editor-CpryQexh.js → monaco-editor-BclCUfzv.js} +1 -1
- package/dist/client/assets/{monitoring-stats-row-amLI2_4T.js → monitoring-stats-row-Dpg2dq7g.js} +1 -1
- package/dist/client/assets/{multi-select-DktytD4b.js → multi-select-BBOHfLXQ.js} +1 -1
- package/dist/client/assets/{mustache-bGjyq4Y8.js → mustache-hckfV8Mc.js} +1 -1
- package/dist/client/assets/{oauth-callback-BGv_pC2u.js → oauth-callback-CotnqZr8.js} +1 -1
- package/dist/client/assets/{oauth-callback-ai-provider-DYfIZtC5.js → oauth-callback-ai-provider-Bh1LI6or.js} +1 -1
- package/dist/client/assets/{onboarding-JPD5RTmZ.js → onboarding-D4HY7XPs.js} +1 -1
- package/dist/client/assets/{optimistic-project-sidebar-views-sNbzDk5B.js → optimistic-project-sidebar-views-BqE9-IPQ.js} +1 -1
- package/dist/client/assets/{org-file-open-context-BdlrYhRi.js → org-file-open-context-RAQRxz7Y.js} +1 -1
- package/dist/client/assets/{organization-choice-BmFHTd6w.js → organization-choice-Cbwl3aYW.js} +1 -1
- package/dist/client/assets/{orgs-BLZZjg7h.js → orgs-BOm76Qov.js} +1 -1
- package/dist/client/assets/{page-seo-form-B63QGw1B.js → page-seo-form-S97ODJb7.js} +1 -1
- package/dist/client/assets/{pair-DfGiG3T_.js → pair-DbMQbz7t.js} +1 -1
- package/dist/client/assets/{plan-ladder-C6XrZTK_.js → plan-ladder-ClbbuzfM.js} +1 -1
- package/dist/client/assets/{popover-DXqnrxWm.js → popover-DHIkZZwQ.js} +1 -1
- package/dist/client/assets/{post-calendar-BEqoPsPL.js → post-calendar-DvSRyUm7.js} +1 -1
- package/dist/client/assets/{post-editor-Bgv2aEHo.js → post-editor-DXEU7s2o.js} +1 -1
- package/dist/client/assets/{preview-content-BzJz-rqC.js → preview-content-BtWytI1q.js} +1 -1
- package/dist/client/assets/{preview-dialog-C36d2-QU.js → preview-dialog-OzfdHBBk.js} +1 -1
- package/dist/client/assets/{primitives-CILwTmm9.js → primitives-DLh0L8ih.js} +1 -1
- package/dist/client/assets/{profile-wM3nq8sT.js → profile-VoVqqpuY.js} +1 -1
- package/dist/client/assets/{project-app-view-B18knvHF.js → project-app-view-DpLfdpL2.js} +1 -1
- package/dist/client/assets/{project-feed-CagoiOgJ.js → project-feed-a0SRH40x.js} +1 -1
- package/dist/client/assets/{project-icon-DcnxWFko.js → project-icon-Dt_k_hQy.js} +1 -1
- package/dist/client/assets/project-reports-Bk5BmKl4.js +1 -0
- package/dist/client/assets/project-tasks-BRrKkill.js +1 -0
- package/dist/client/assets/{prompts-BYFEa2h4.js → prompts-B1SyYTL0.js} +1 -1
- package/dist/client/assets/record-editor-CpnzJCaG.js +1 -0
- package/dist/client/assets/{redirect-editor-CnmXhshy.js → redirect-editor-5yzH5kJ-.js} +1 -1
- package/dist/client/assets/{registry-layout-CO1epL8c.js → registry-layout-BOjfbx0W.js} +1 -1
- package/dist/client/assets/registry-rQQyAfb6.js +2 -0
- package/dist/client/assets/reports-Ck0M_7wE.js +1 -0
- package/dist/client/assets/{reports-Dz80d2QD.js → reports-fMF8-4_i.js} +1 -1
- package/dist/client/assets/{reports-onboarding-BsZYJKFw.js → reports-onboarding-BYaeqyQv.js} +1 -1
- package/dist/client/assets/{reports-tab-EPHyWKvN.js → reports-tab-CXSSXSVr.js} +2 -2
- package/dist/client/assets/{repositories-dTK3uJ7B.js → repositories-BBwZB-kM.js} +1 -1
- package/dist/client/assets/{repository-import-picker-DBLrlkWB.js → repository-import-picker-BBpOZXsN.js} +1 -1
- package/dist/client/assets/{repository-picker-vqQMlbpT.js → repository-picker-CfD8NzRM.js} +1 -1
- package/dist/client/assets/{require-capability-W3M3ed6h.js → require-capability-BASN-Vyd.js} +1 -1
- package/dist/client/assets/{required-auth-layout-DC4bK3NA.js → required-auth-layout-DlBZkx8e.js} +1 -1
- package/dist/client/assets/{reset-password-Bw7rbc8I.js → reset-password-BOMK7K-7.js} +1 -1
- package/dist/client/assets/{resizable-B_I79GN8.js → resizable-Ch3JDnYL.js} +1 -1
- package/dist/client/assets/{review-settings-CJsad7fK.js → review-settings-Bex1hdqn.js} +1 -1
- package/dist/client/assets/{rich-text-link-control-g27yMK7k.js → rich-text-link-control-DTZMDLIw.js} +1 -1
- package/dist/client/assets/{roles-CDRoBq55.js → roles-wsvlJ7ed.js} +1 -1
- package/dist/client/assets/{route-BruqcMqr.js → route-B5u_glun.js} +1 -1
- package/dist/client/assets/{route-DGrkXM2z.js → route-MZ4GFC5q.js} +1 -1
- package/dist/client/assets/{route-4XtYc2Ky.js → route-W-Jj2n6u.js} +1 -1
- package/dist/client/assets/{runnable-block-editor-CO-y-ACU.js → runnable-block-editor-Dy0rH5lU.js} +1 -1
- package/dist/client/assets/{sandbox-lifecycle-context-D_8Qa0hB.js → sandbox-lifecycle-context-CIMm9hbd.js} +1 -1
- package/dist/client/assets/{schema-RsSldpa7.js → schema-DghDa6ek.js} +1 -1
- package/dist/client/assets/{scroll-area-DLgeDa9R.js → scroll-area-Bz1vCdzu.js} +1 -1
- package/dist/client/assets/{search-input-CQqhqXmZ.js → search-input-1ZuaPRD7.js} +1 -1
- package/dist/client/assets/{secrets-CFlOEQnu.js → secrets-DLdPUMBL.js} +1 -1
- package/dist/client/assets/{sections-editor-CJ1_oViR.js → sections-editor-BPeiNTic.js} +1 -1
- package/dist/client/assets/{select-C6j3bHbU.js → select-CdddrVx0.js} +1 -1
- package/dist/client/assets/{select-model-BsBUXM5E.js → select-model-BF_1NMgR.js} +1 -1
- package/dist/client/assets/{seo-editor-CqiBU4aN.js → seo-editor-CIVS059r.js} +1 -1
- package/dist/client/assets/{settings-tab-39j0L8io.js → settings-tab-ASIRJjj3.js} +1 -1
- package/dist/client/assets/{sheet-yKKRJGVA.js → sheet-CvOZfy0z.js} +1 -1
- package/dist/client/assets/{shell-layout-DUllgRrj.js → shell-layout-CRL_zfb1.js} +1 -1
- package/dist/client/assets/{sidebar-0NBbAcoO.js → sidebar-CV7ufyrR.js} +1 -1
- package/dist/client/assets/{skill-preview-C165TBMS.js → skill-preview-BbMw8FqN.js} +1 -1
- package/dist/client/assets/{skills-_N8f2nsw.js → skills-6iZZYNFv.js} +1 -1
- package/dist/client/assets/{sso-b4zihAaX.js → sso-SdEpd0cn.js} +1 -1
- package/dist/client/assets/{store-BxMh7GID.js → store-DCS-Gmyp.js} +1 -1
- package/dist/client/assets/store-registry-DYMg0tKB.js +2 -0
- package/dist/client/assets/{switch-BtXPXo_j.js → switch-DvCQgbRQ.js} +1 -1
- package/dist/client/assets/{synced-repos-DemfexbS.js → synced-repos-D5oMhxJF.js} +1 -1
- package/dist/client/assets/{table-CJRAm-V4.js → table-BxWM9cyb.js} +1 -1
- package/dist/client/assets/{tabs-ZML7sfwI.js → tabs-L4f-E-B1.js} +1 -1
- package/dist/client/assets/{task-board-f3GCJvgs.js → task-board-Cp2U1K9O.js} +1 -1
- package/dist/client/assets/{task-route-DbM9IwcH.js → task-route-CNEvIr3Q.js} +1 -1
- package/dist/client/assets/{task-status-CNJDcBko.js → task-status-DPV9M5UQ.js} +1 -1
- package/dist/client/assets/{taskboard-analytics-u-ior8SC.js → taskboard-analytics-C-CFwikI.js} +1 -1
- package/dist/client/assets/{tasks-KTAUFc1i.js → tasks-C5Fy83uo.js} +1 -1
- package/dist/client/assets/tasks-CzGA7vaG.js +1 -0
- package/dist/client/assets/{textarea-Ch_8EMpS.js → textarea-DaZKtfNF.js} +1 -1
- package/dist/client/assets/{thread-intent-B8_Igzy9.js → thread-intent-BxYojNc6.js} +1 -1
- package/dist/client/assets/{thread-route-BF1kNRK0.js → thread-route-DnPIeWG_.js} +1 -1
- package/dist/client/assets/{thread-route-DfLkrN6w.js → thread-route-SAxtri8_.js} +1 -1
- package/dist/client/assets/{thread-sheet-body-DxaFuNuW.js → thread-sheet-body-rvw_0vLm.js} +1 -1
- package/dist/client/assets/{toggle-group-D35jMnWw.js → toggle-group-CdWbHpWf.js} +1 -1
- package/dist/client/assets/{toolbar-icon-button-BeNQ87YG.js → toolbar-icon-button-D59rYDPz.js} +1 -1
- package/dist/client/assets/{tooltip-D3hrSfAd.js → tooltip-DUmiRhmo.js} +1 -1
- package/dist/client/assets/{track-uxF1GB69.js → track-DYgFTCAU.js} +1 -1
- package/dist/client/assets/{types-DizT6fP4.js → types-B3eKh2CO.js} +1 -1
- package/dist/client/assets/{usage-stats-B-M5giW9.js → usage-stats-CHHoYVjA.js} +1 -1
- package/dist/client/assets/{use-ai-providers-B2tolGlx.js → use-ai-providers-B5dR5vUw.js} +1 -1
- package/dist/client/assets/{use-automations-CQkQXgF8.js → use-automations-CTceOFoF.js} +1 -1
- package/dist/client/assets/{use-autosave-C2vvEbwM.js → use-autosave-URyqsdnZ.js} +1 -1
- package/dist/client/assets/{use-connect-companion-CXdhJYrm.js → use-connect-companion-Dfdpnf2o.js} +1 -1
- package/dist/client/assets/{use-connection-BtGGmt0M.js → use-connection-BrqTSVj6.js} +1 -1
- package/dist/client/assets/{use-copy-SbhQGjoA.js → use-copy-BSyL6TSO.js} +1 -1
- package/dist/client/assets/{use-create-virtual-mcp-Bm4ZDhWK.js → use-create-virtual-mcp-Dw8Zc1Ud.js} +1 -1
- package/dist/client/assets/{use-date-fns-locale-Dn1q05u_.js → use-date-fns-locale-DM4yM54o.js} +1 -1
- package/dist/client/assets/{use-debounced-autosave-ZIdQpnNR.js → use-debounced-autosave-DjQzT60v.js} +1 -1
- package/dist/client/assets/{use-debounced-value-2oFF1WEN.js → use-debounced-value-BjcwhDr9.js} +1 -1
- package/dist/client/assets/{use-deco-credits-DqoTIuu7.js → use-deco-credits-D21Pbmyv.js} +1 -1
- package/dist/client/assets/{use-decopilot-events-CuTXTRBR.js → use-decopilot-events-CNzthIdX.js} +1 -1
- package/dist/client/assets/{use-delete-connection-DzINDI7q.js → use-delete-connection-CVSY4ll3.js} +1 -1
- package/dist/client/assets/{use-deployment-admin-CBdLmf5q.js → use-deployment-admin-C-GqCr8K.js} +1 -1
- package/dist/client/assets/{use-entitlements-BivgY5kT.js → use-entitlements-tLMMxrZd.js} +1 -1
- package/dist/client/assets/{use-fast-preview-draft-url-dC7p2k6s.js → use-fast-preview-draft-url-Dk8Ktazm.js} +1 -1
- package/dist/client/assets/{use-file-configs-BX0L-9mE.js → use-file-configs-DRzLwnWx.js} +1 -1
- package/dist/client/assets/{use-infinite-scroll-ZhvdGkpY.js → use-infinite-scroll-BOW7TpXu.js} +1 -1
- package/dist/client/assets/{use-join-requests-CHaP7Kis.js → use-join-requests-CqPFDa-P.js} +1 -1
- package/dist/client/assets/{use-main-panel-tabs-DgXNGjZx.js → use-main-panel-tabs-r6NEI9Bh.js} +1 -1
- package/dist/client/assets/{use-mcp-auth-status-I2D4FtBo.js → use-mcp-auth-status-D1-JP6_b.js} +1 -1
- package/dist/client/assets/{use-mcp-client-ywBbWlsZ.js → use-mcp-client-CgD872ML.js} +1 -1
- package/dist/client/assets/{use-mcp-prompts-CfR5Gc7W.js → use-mcp-prompts-XZ7YPEUr.js} +1 -1
- package/dist/client/assets/{use-mcp-tools-C1Bm7_BP.js → use-mcp-tools-KwKOV8rm.js} +1 -1
- package/dist/client/assets/{use-members-vXo7GDuE.js → use-members-R8U953eg.js} +1 -1
- package/dist/client/assets/{use-mobile-DaGIh2Ci.js → use-mobile-AM6xFr_B.js} +1 -1
- package/dist/client/assets/{use-navigate-to-agent-JIUkpR0J.js → use-navigate-to-agent-OO46tTZp.js} +1 -1
- package/dist/client/assets/{use-open-billing-url-BiRRNmol.js → use-open-billing-url-BWUxLBlY.js} +1 -1
- package/dist/client/assets/{use-org-auth-client-BHqa5vb4.js → use-org-auth-client-Bd-VOGg-.js} +1 -1
- package/dist/client/assets/{use-org-fs-B2BTkwLF.js → use-org-fs-BZtNVHKP.js} +1 -1
- package/dist/client/assets/{use-org-notice-BOycsuXQ.js → use-org-notice-Dyky16Pk.js} +1 -1
- package/dist/client/assets/{use-org-sso-BUbkUyRE.js → use-org-sso-Z_koUL2r.js} +1 -1
- package/dist/client/assets/{use-organization-roles-Cifap3T7.js → use-organization-roles-fQNOgdP0.js} +1 -1
- package/dist/client/assets/{use-organization-settings-BHFsVXOd.js → use-organization-settings-Bd7AH03U.js} +1 -1
- package/dist/client/assets/{use-panel-navigate-CQQhAdgp.js → use-panel-navigate-DxN5IO61.js} +1 -1
- package/dist/client/assets/{use-project-native-view-presence-C1QgaWe2.js → use-project-native-view-presence-BXk9uZik.js} +1 -1
- package/dist/client/assets/{use-project-scope-ByZYyEr6.js → use-project-scope-D7rsxoOl.js} +1 -1
- package/dist/client/assets/{use-registry-connections-Dg52VSSM.js → use-registry-connections-CntwhWiV.js} +1 -1
- package/dist/client/assets/{use-releases-3QtKRlMJ.js → use-releases-BdeuWcKl.js} +1 -1
- package/dist/client/assets/{use-reports-diagnostic-CuC_fY4R.js → use-reports-diagnostic-e6Hr1e9d.js} +1 -1
- package/dist/client/assets/{use-route-default-main-BK0WdK-8.js → use-route-default-main-CEHe4dR8.js} +1 -1
- package/dist/client/assets/{use-secrets-BDVXCurZ.js → use-secrets-zKiWKge6.js} +1 -1
- package/dist/client/assets/{use-section-preview-base-BvWi0nGH.js → use-section-preview-base-CZmbFB2G.js} +1 -1
- package/dist/client/assets/{use-session-runtime-DI3vOHvv.js → use-session-runtime-B7GVhOZP.js} +1 -1
- package/dist/client/assets/{use-tags-BUyBYPKz.js → use-tags-SPOeXMVI.js} +1 -1
- package/dist/client/assets/{use-task-board-analytics-CTl1JMWT.js → use-task-board-analytics-DxZEgds6.js} +1 -1
- package/dist/client/assets/{use-task-metadata-2M_NCkGF.js → use-task-metadata-Cw595lWp.js} +1 -1
- package/dist/client/assets/{use-thread-outputs-DWntNrGT.js → use-thread-outputs-CMynNSlr.js} +1 -1
- package/dist/client/assets/{use-view-mode-25w-ODpd.js → use-view-mode-aCYPhx0y.js} +1 -1
- package/dist/client/assets/{use-virtual-mcp-72ymGbkB.js → use-virtual-mcp-JT5XfjaF.js} +1 -1
- package/dist/client/assets/useInfiniteQuery-2tolEpNN.js +1 -0
- package/dist/client/assets/{useQueries-cRQlxMAB.js → useQueries-CHy_Rsz7.js} +1 -1
- package/dist/client/assets/useSuspenseInfiniteQuery-B_PS73nL.js +1 -0
- package/dist/client/assets/{users-D8tFka2r.js → users-C2T36D4M.js} +1 -1
- package/dist/client/assets/{utils-Dxw1OvqE.js → utils-BKVYxzxg.js} +1 -1
- package/dist/client/assets/{variant-calendar-CxupiN2W.js → variant-calendar-cHDBecFa.js} +1 -1
- package/dist/client/assets/{variant-matcher-override-Bv3rxn78.js → variant-matcher-override-fecd-gJF.js} +1 -1
- package/dist/client/assets/{view-mode-toggle-CDEffjIb.js → view-mode-toggle-m_5iG4rS.js} +1 -1
- package/dist/client/assets/{virtual-mcp-C2HrZtbe.js → virtual-mcp-Gk9zfI9X.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/agent-app-_uguOLHG.js +0 -1
- package/dist/client/assets/agent-deck-CzayJGW9.js +0 -1
- package/dist/client/assets/agent-file-itGu49yN.js +0 -1
- package/dist/client/assets/agent-library-file-Cb2ahfzi.js +0 -1
- package/dist/client/assets/agent-settings-DLW7Y42b.js +0 -1
- package/dist/client/assets/agent-site-editor-code-Dzhq4cRN.js +0 -2
- package/dist/client/assets/agent-view-BGVrukNO.js +0 -1
- package/dist/client/assets/api-keys-CpLluBDt.js +0 -1
- package/dist/client/assets/app-editor-BHLxcxFh.js +0 -1
- package/dist/client/assets/automations-Dj7dLQYg.js +0 -1
- package/dist/client/assets/category-editor-Mr_TSzCC.js +0 -1
- package/dist/client/assets/mock-board-BhU9kaH-.js +0 -90
- package/dist/client/assets/project-reports-BC8DTIPY.js +0 -1
- package/dist/client/assets/project-tasks-Bn_dTITj.js +0 -1
- package/dist/client/assets/record-editor-if7xFrnd.js +0 -1
- package/dist/client/assets/registry-4lgPOb48.js +0 -2
- package/dist/client/assets/reports-88p9EFJ8.js +0 -1
- package/dist/client/assets/store-registry-DNYUtZkG.js +0 -2
- package/dist/client/assets/tasks-BgOq8Mh_.js +0 -1
- package/dist/client/assets/useInfiniteQuery-CDV0bH8B.js +0 -1
- package/dist/client/assets/useSuspenseInfiniteQuery-BoYSe3ey.js +0 -1
package/dist/server/cli.js
CHANGED
|
@@ -2076,7 +2076,7 @@ Usage: deco services <up|down|status>`),process.exit(1)}}var T0$=D(()=>{fg()});f
|
|
|
2076
2076
|
`.execute($);if(Number(W.rows[0]?.cnt)===0){console.warn(`Failed to migrate ${G}/${K}, keeping in old table`);continue}}await Ku`
|
|
2077
2077
|
DELETE FROM kysely_migration WHERE name = ${Q}
|
|
2078
2078
|
`.execute($)}}async function p6$($){await IX4($),await VX4($);let Z=new d6$({db:$,provider:{getMigrations:()=>Promise.resolve(Is0)}}),{error:Q,results:X}=await Z.migrateToLatest(),Y=0;if(X?.forEach((J)=>{if(J.status==="Success")Y++;else if(J.status==="Error")console.error(`Failed to execute migration "${J.migrationName}"`)}),Q)throw console.error("Failed to migrate"),console.error(Q),Q;return Y}async function kX4($){let{keepOpen:Z=!1,database:Q,skipBetterAuth:X=!1}=$??{},Y="skipped";if(!X&&!Q)Y=await pn0();let J=Q??l$(),G=async()=>{if(!Z&&!Q)await yD(J).catch((K)=>{console.warn("Warning: Error closing database:",K)})};try{let K=await p6$(J.db);return await G(),{betterAuth:Y,kysely:K}}catch(K){throw await G(),K}}async function SX4(){let $=l$(),Z=new d6$({db:$.db,provider:{getMigrations:()=>Promise.resolve(Is0)}}),{error:Q,results:X}=await Z.migrateDown();if(X?.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}"`)}),Q)throw console.error("Failed to rollback migration"),console.error(Q),Q}var t6$=D(()=>{m6$();nn0();dQ()});async function OJ0($){let Z={...process.env},Q=X90($,Z);console.log(qR1(Q.settings.encryptionKey));let X=Q.settings.betterAuthSecret||(Q.settings.localMode?Z$$(Q.settings.dataDir):""),{ensureServices:Y}=await Promise.resolve().then(() => (DY0(),OY0)),{outputs:J,services:G}=await Y({home:Q.settings.dataDir,externalDatabaseUrl:Q.externalDatabaseUrl,externalNatsUrl:Q.externalNatsUrl});if(!Q.skipMigrations){let{migrateBetterAuth:W}=await Promise.resolve().then(() => (nn0(),X$$));await W(J.databaseUrl);let{createDatabase:H}=await Promise.resolve().then(() => (dQ(),E1$)),{migrateToLatest:F}=await Promise.resolve().then(() => (t6$(),n6$)),U=H(J.databaseUrl);await F({keepOpen:!0,database:U,skipBetterAuth:!0})}let K={...Q.settings,betterAuthSecret:X,databaseUrl:J.databaseUrl,natsUrls:J.natsUrls,...J.s3?{s3Endpoint:J.s3.endpoint,s3Bucket:J.s3.bucket,s3AccessKeyId:J.s3.accessKeyId,s3SecretAccessKey:J.s3.secretAccessKey,s3ForcePathStyle:J.s3.forcePathStyle}:{}};return R0$(K),{settings:K,services:G.map((W)=>({name:W.name==="PostgreSQL"?"Postgres":W.name,port:W.port})),managedServiceNames:G.filter((W)=>W.owner==="managed").map((W)=>W.name)}}var Vs0=D(()=>{fg();Q$$();t1()});var s6$={};$0(s6$,{updateService:()=>mz,subscribeCliState:()=>Cs0,setTuiConsoleIntercepted:()=>DJ0,setServerUrl:()=>Po,setMigrationsDone:()=>zo,setDevMode:()=>_X4,resetCliStateForTests:()=>CX4,isTuiConsoleIntercepted:()=>LJ0,getCliState:()=>Ss0,addLogEntry:()=>mD});function o6$(){return[{name:"Postgres",status:"pending",port:0},{name:"NATS",status:"pending",port:0}]}function r6$(){return{services:o6$(),migrationsStatus:"pending",serverUrl:null,logs:[]}}function CX4(){_Y=r6$()}function Eo(){for(let $ of ks0)$()}function Ss0(){return _Y}function Cs0($){return ks0.add($),()=>ks0.delete($)}function mz($){_Y={..._Y,services:_Y.services.map((Z)=>Z.name===$.name?$:Z)},Eo()}function zo(){_Y={..._Y,migrationsStatus:"done"},Eo()}function Po($){_Y={..._Y,serverUrl:$},Eo()}function mD($){let Z=[..._Y.logs,$];_Y={..._Y,logs:Z.length>500?Z.slice(-500):Z},Eo()}function _X4(){_Y={..._Y,services:[...o6$(),{name:"API",status:"pending",port:0},{name:"Vite",status:"pending",port:0}]},Eo()}function DJ0($){a6$=$}function LJ0(){return a6$}var _Y,ks0,a6$=!1;var dz=D(()=>{_Y=r6$();ks0=new Set});import{createServer as e6$}from"net";function vX4($){return new Promise((Z)=>{let Q=e6$();Q.once("error",()=>Z(!1)),Q.listen($,"0.0.0.0",()=>{Q.close(()=>Z(!0))})})}async function Ao($){if(await vX4($))return $;let Z=await new Promise((Q,X)=>{let Y=e6$();Y.once("error",X),Y.listen(0,"0.0.0.0",()=>{let J=Y.address(),G=typeof J==="object"&&J?J.port:0;Y.close(()=>Q(G))})});return console.warn(`Port ${$} is in use, using port ${Z} instead.`),Z}var _s0=()=>{};var xs0={};$0(xs0,{startDevServer:()=>fX4,pipeToLogStore:()=>vs0});import{join as xX4}from"path";function vs0($){let Z=$.getReader(),Q=new TextDecoder,X="";function Y(){let J=X.split(`
|
|
2079
|
-
`);X=J.pop()??"";for(let G of J){let K=Bun.stripANSI(G).replace(/^\[\d+\]\s*/,"").trim();if(!K)continue;mD({method:"",path:"",status:0,duration:0,timestamp:new Date,rawLine:K})}}(async()=>{try{for(;;){let{done:J,value:G}=await Z.read();if(J)break;X+=Q.decode(G,{stream:!0}),Y()}}catch{}if(X.trim()){let J=Bun.stripANSI(X).replace(/^\[\d+\]\s*/,"").trim();if(J)mD({method:"",path:"",status:0,duration:0,timestamp:new Date,rawLine:J})}})()}async function fX4($){let{baseUrl:Z,noTui:Q}=$,X=process.env.HOST==="0.0.0.0"&&Boolean(process.env.PORT),Y=X?process.env.PORT:$.vitePort,J=Z||`http://localhost:${Y}`,G=X?await Ao(Number(Y)+1):await Ao(Number($.port)),{settings:K,services:W,managedServiceNames:H}=await OJ0({port:String(G),home:$.home,baseUrl:$.baseUrl,localMode:$.localMode,skipMigrations:$.skipMigrations,noTui:$.noTui,vitePort:$.vitePort});for(let L of W)mz({name:L.name,status:"ready",port:L.port});zo();let F=xX4(import.meta.dir,"..","..","..","..",".."),U=Q===!0,N=Bun.spawn(["bun","run","dev:servers"],{cwd:F,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:J,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.natsCredsPath?{NATS_CREDS:K.natsCredsPath}:{}},stdio:["inherit",U?"inherit":"pipe",U?"inherit":"pipe"]});if(!U)vs0(N.stdout),vs0(N.stderr);Po(J),mz({name:"Vite",status:"ready",port:Number(Y)}),mz({name:"API",status:"ready",port:Number(K.port)});let O=async(L)=>{if(N.kill(L),await N.exited,H.length>0){let{stopServices:w}=await Promise.resolve().then(() => (DY0(),OY0));await w(K.dataDir)}};return process.on("SIGINT",()=>O("SIGINT")),process.on("SIGTERM",()=>O("SIGTERM")),{port:Number(Y),process:N}}var fs0=D(()=>{Vs0();dz();_s0()});var wJ0;var bs0=D(()=>{wJ0={name:"decocms",version:"4.371.0",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","db:migrate:dbos":"bun run ./dist/server/migrate-dbos.js",check:"tsc --noEmit",start:"bun run ./dist/server/server.js",migrate:"bun run src/database/migrate.ts","migrate:dbos":"bun run src/database/migrate-dbos.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","@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 yX4,Text as $5$}from"ink";import{jsx as gX4,jsxs as Z5$}from"react/jsx-runtime";function Q5$({version:$}){return Z5$(yX4,{flexDirection:"column",marginTop:1,children:[gY0.map((Z,Q)=>gX4($5$,{color:hY0[Q],children:Z},Q)),Z5$($5$,{dimColor:!0,children:[" v",$]})]})}var X5$=D(()=>{Jo()});import{Box as iz,Text as dD}from"ink";import{Spinner as hX4}from"@inkjs/ui";import{jsx as aJ,jsxs as Wu}from"react/jsx-runtime";function Y5$({status:$}){if($==="pending")return aJ(hX4,{label:""});return aJ(dD,{color:"green",children:"\u2713"})}function uX4($){return`${$.name}: ${$.port||"...."}`}function J5$({services:$,migrationsStatus:Z,home:Q,serverUrl:X}){return Wu(iz,{flexDirection:"column",paddingBottom:1,children:[aJ(Q5$,{version:wJ0.version}),aJ(iz,{marginBottom:1,children:aJ(dD,{dimColor:!0,children:"\u2500".repeat(80)})}),aJ(iz,{children:Wu(dD,{dimColor:!0,children:["Home: ",Q]})}),Wu(iz,{gap:2,children:[$.map((Y)=>Wu(iz,{gap:1,children:[aJ(dD,{children:uX4(Y)}),aJ(Y5$,{status:Y.status})]},Y.name)),Wu(iz,{gap:1,children:[aJ(dD,{children:"Migrations"}),aJ(Y5$,{status:Z})]})]}),aJ(iz,{children:X?Wu(dD,{children:["Open in browser: ",aJ(dD,{color:"cyan",children:X})]}):aJ(dD,{dimColor:!0,children:"Starting..."})})]})}var G5$=D(()=>{bs0();X5$()});import{Box as lX4,Text as To}from"ink";import{jsx as ys0,jsxs as gs0}from"react/jsx-runtime";function cX4($){if($>=500)return"red";if($>=400)return"yellow";if($>=300)return"cyan";return"green"}function K5$({logs:$}){return ys0(lX4,{flexDirection:"column",children:$.map((Z,Q)=>{if(Z.rawLine)return ys0(To,{dimColor:!0,children:Z.rawLine},Q);let X=Z.duration<1000?`${Z.duration}ms`:`${(Z.duration/1000).toFixed(1)}s`;return gs0(To,{children:[gs0(To,{dimColor:!0,children:[Z.method.padEnd(6)," ",Z.path.padEnd(30)," "]}),ys0(To,{color:cX4(Z.status),children:Z.status}),gs0(To,{dimColor:!0,children:[" ",X.padStart(8)]})]},Q)})})}var W5$=()=>{};var hs0={};$0(hs0,{App:()=>iX4});import{Box as mX4}from"ink";import{useSyncExternalStore as dX4}from"react";import{jsx as H5$,jsxs as pX4}from"react/jsx-runtime";function iX4({home:$}){let Z=dX4(Cs0,Ss0);return pX4(mX4,{flexDirection:"column",children:[H5$(J5$,{services:Z.services,migrationsStatus:Z.migrationsStatus,home:$,serverUrl:Z.serverUrl}),H5$(K5$,{logs:Z.logs})]})}var us0=D(()=>{G5$();W5$();dz()});var TG="thread-gate",yN="decopilot-hosted-harness",gN="decopilot-hosted-harness-sandboxed",RG="automations",iD="background-tools",pz="task-board-github-reads";var F5$="11";function U5$($){return{name:"decocms",systemDatabaseUrl:$.systemDatabaseUrl,systemDatabaseSchemaName:"dbos",systemDatabasePoolSize:$.poolSize,runAdminServer:!1,executorID:$.executorID,applicationVersion:F5$,...$.listenQueues!==void 0?{listenQueues:$.listenQueues}:{}}}var N5$=()=>{};import nX4 from"pg";async function O5$($,Z){let{databaseUrl:Q,lockTimeoutMs:X=tX4}=$,Y=$.log??((W)=>console.log(W)),J=new nX4.Client({connectionString:Q});await J.connect();let G=Date.now(),K=!1;try{while(!K){if(K=(await J.query("SELECT pg_try_advisory_lock($1) AS locked",[B5$.toString()])).rows[0]?.locked===!0,K)break;if(Date.now()-G>=X)throw Error(`Timed out after ${X}ms waiting for the DBOS migration lock. Another process is still migrating the dbos schema; this pod will restart and retry.`);await O$(oX4)}let W=Date.now()-G;if(W>1000)Y(`[dbos] waited ${W}ms for the migration lock; another process migrated first`);return await Z()}finally{if(K)try{await J.query("SELECT pg_advisory_unlock($1)",[B5$.toString()])}catch{}await J.end().catch(()=>{})}}var B5$=8314027461559302n,tX4=600000,oX4=500;var D5$=D(()=>{i$()});function rX4(){let $=(process.env.BUN_OPTIONS??"").split(/\s+/).filter(Boolean);return[...process.argv.slice(1),...$]}function ls0($,Z){for(let Q=0;Q<$.length;Q++){let X=$[Q];if(X===void 0)continue;if(X===Z)return $[Q+1];if(X.startsWith(`${Z}=`))return X.slice(Z.length+1)}return}function L5$(){let $=rX4();if($.includes("--cpu-prof")){console.log(JSON.stringify({msg:"cpu-profiling-active",dir:ls0($,"--cpu-prof-dir")??process.cwd(),name:ls0($,"--cpu-prof-name"),markdown:$.includes("--cpu-prof-md"),intervalUs:Number(ls0($,"--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 w5$(){if(process.env.HEAP_WATCH!=="1")return()=>{};let $=Number(process.env.HEAP_WATCH_INTERVAL_MS??60000),Z=async()=>{let Q=hz();if(!Q)return;let X={};try{let{heapStats:Y}=await import("bun:jsc"),J=Y(),G=Object.entries(J.objectTypeCounts).sort((K,W)=>W[1]-K[1]).slice(0,20);X={objectCount:J.objectCount,heapSize:J.heapSize,top:Object.fromEntries(G)}}catch{}console.log(JSON.stringify({msg:"heap-watch",ts:new Date().toISOString(),uptimeS:Math.round(process.uptime()),rss:Q.rss,heapUsed:Q.heapUsed,heapTotal:Q.heapTotal,external:Q.external,arrayBuffers:Q.arrayBuffers,...X}))};return Z().catch(()=>{}),jJ0=setInterval(()=>void Z().catch(()=>{}),$),jJ0.unref?.(),process.on("SIGUSR2",()=>{try{let Q=Bun.generateHeapSnapshot("v8"),X=typeof Q==="string"?Q:JSON.stringify(Q),Y=`/tmp/heap-${process.pid}-${Date.now()}.heapsnapshot`;Bun.write(Y,X),console.log(JSON.stringify({msg:"heap-snapshot-written",path:Y}))}catch(Q){console.error("[heap-watch] snapshot failed:",Q)}}),()=>{if(jJ0)clearInterval(jJ0)}}var jJ0;var j5$=()=>{};import*as aX4 from"bun:jsc";function E5$(){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{sX4()}catch(J){return console.error("[stall-watchdog] failed to start sampling profiler:",J),()=>{}}let Q,X=performance.now()+Z,Y=()=>{let J=performance.now(),G=J-X;X=J+Z;let K=[];try{K=eX4()?.traces??[]}catch{}if(G>$&&K.length>0){let W=new Map;for(let F of K){let U=F.frames.find((O)=>O.sourceURL&&!/Unknown Executable/.test(O.category??""))??F.frames[0];if(!U)continue;let N=(U.sourceURL??"?").replace(/^.*\/node_modules\//,"node_modules/"),B=`${U.name??"?"} @ ${N}:${U.line??"?"}`;W.set(B,(W.get(B)??0)+1)}let H=[...W.entries()].sort((F,U)=>U[1]-F[1]).slice(0,8).map(([F,U])=>({frame:F,count:U}));console.warn(JSON.stringify({msg:"stall-stack",ts:new Date().toISOString(),lagMs:Math.round(G),samplesInWindow:K.length,top:H}))}Q=setTimeout(Y,Z),Q.unref?.()};return Q=setTimeout(Y,Z),Q.unref?.(),()=>{if(Q)clearTimeout(Q)}}var sX4,eX4;var z5$=D(()=>{({startSamplingProfiler:sX4,samplingProfilerStackTraces:eX4}=aX4)});function P5$(){L5$();let $=[w5$(),U1$(),E5$()];return()=>{for(let Z of $)Z()}}var A5$=D(()=>{gn0();j5$();z5$()});var nz=v((T5$)=>{Object.defineProperty(T5$,"__esModule",{value:!0});T5$.RepublishHeaders=T5$.DirectMsgHeaders=T5$.JsHeaders=T5$.AdvisoryKind=void 0;T5$.isOrderedPushConsumerOptions=$Y4;T5$.isPullConsumer=ZY4;T5$.isPushConsumer=QY4;T5$.isBoundPushConsumerOptions=XY4;function $Y4($){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 ZY4($){return $.isPullConsumer()}function QY4($){return $.isPushConsumer()}function XY4($){if($&&typeof $==="object")return"deliver_subject"in $||"deliver_group"in $||"idle_heartbeat"in $;return!1}T5$.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"};T5$.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"};T5$.DirectMsgHeaders={Stream:"Nats-Stream",Sequence:"Nats-Sequence",TimeStamp:"Nats-Time-Stamp",Subject:"Nats-Subject",LastSequence:"Nats-Last-Sequence",NumPending:"Nats-Num-Pending"};T5$.RepublishHeaders={Stream:"Nats-Stream",Subject:"Nats-Subject",Sequence:"Nats-Sequence",LastSequence:"Nats-Last-Sequence",Size:"Nats-Msg-Size"}});var sJ=v((q5$)=>{Object.defineProperty(q5$,"__esModule",{value:!0});q5$.TD=q5$.TE=q5$.Empty=void 0;q5$.encode=NY4;q5$.decode=BY4;q5$.Empty=new Uint8Array(0);q5$.TE=new TextEncoder;q5$.TD=new TextDecoder;function UY4(...$){let Z=0;for(let Y=0;Y<$.length;Y++)Z+=$[Y].length;let Q=new Uint8Array(Z),X=0;for(let Y=0;Y<$.length;Y++)Q.set($[Y],X),X+=$[Y].length;return Q}function NY4(...$){let Z=[];for(let Q=0;Q<$.length;Q++)Z.push(q5$.TE.encode($[Q]));if(Z.length===0)return q5$.Empty;if(Z.length===1)return Z[0];return UY4(...Z)}function BY4($){if(!$||$.length===0)return"";return q5$.TD.decode($)}});var eJ=v((V5$)=>{Object.defineProperty(V5$,"__esModule",{value:!0});V5$.errors=V5$.PermissionViolationError=V5$.NoRespondersError=V5$.TimeoutError=V5$.RequestError=V5$.ProtocolError=V5$.ConnectionError=V5$.DrainingConnectionError=V5$.ClosedConnectionError=V5$.AuthorizationError=V5$.UserAuthenticationExpiredError=V5$.InvalidOperationError=V5$.InvalidArgumentError=V5$.InvalidSubjectError=void 0;class ms0 extends Error{constructor($,Z){super(`illegal subject: '${$}'`,Z);this.name="InvalidSubjectError"}}V5$.InvalidSubjectError=ms0;class EJ0 extends Error{constructor($,Z){super($,Z);this.name="InvalidArgumentError"}static format($,Z,Q){if(Array.isArray(Z)&&Z.length>1)Z=Z[0];if(Array.isArray($))$=$.map((X)=>`'${X}'`),$=$.join(",");else $=`'${$}'`;return new EJ0(`${$} ${Z}`,Q)}}V5$.InvalidArgumentError=EJ0;class ds0 extends Error{constructor($,Z){super($,Z);this.name="InvalidOperationError"}}V5$.InvalidOperationError=ds0;class zJ0 extends Error{constructor($,Z){super($,Z);this.name="UserAuthenticationExpiredError"}static parse($){if($.toLowerCase().indexOf("user authentication expired")!==-1)return new zJ0($);return null}}V5$.UserAuthenticationExpiredError=zJ0;class PJ0 extends Error{constructor($,Z){super($,Z);this.name="AuthorizationError"}static parse($){let Z=["authorization violation","account authentication expired","authentication timeout"],Q=$.toLowerCase();for(let X=0;X<Z.length;X++)if(Q.indexOf(Z[X])!==-1)return new PJ0($);return null}}V5$.AuthorizationError=PJ0;class is0 extends Error{constructor(){super("closed connection");this.name="ClosedConnectionError"}}V5$.ClosedConnectionError=is0;class ps0 extends Error{constructor(){super("connection draining");this.name="DrainingConnectionError"}}V5$.DrainingConnectionError=ps0;class ns0 extends Error{constructor($,Z){super($,Z);this.name="ConnectionError"}}V5$.ConnectionError=ns0;class ts0 extends Error{constructor($,Z){super($,Z);this.name="ProtocolError"}}V5$.ProtocolError=ts0;class os0 extends Error{constructor($="",Z){super($,Z);this.name="RequestError"}isNoResponders(){return this.cause instanceof AJ0}}V5$.RequestError=os0;class rs0 extends Error{constructor($){super("timeout",$);this.name="TimeoutError"}}V5$.TimeoutError=rs0;class AJ0 extends Error{subject;constructor($,Z){super(`no responders: '${$}'`,Z);this.subject=$,this.name="NoResponders"}}V5$.NoRespondersError=AJ0;class TJ0 extends Error{operation;subject;queue;constructor($,Z,Q,X,Y){super($,Y);this.name="PermissionViolationError",this.operation=Z,this.subject=Q,this.queue=X}static parse($){if(($?$.toLowerCase():"").indexOf("permissions violation")===-1)return null;let Q="publish",X="",Y=void 0,J=$.match(/(Publish|Subscription) to "(\S+)"/);if(J){if(Q=J[1].toLowerCase(),X=J[2],Q==="subscription"){let G=$.match(/using queue "(\S+)"/);if(G)Y=G[1]}}return new TJ0($,Q,X,Y)}}V5$.PermissionViolationError=TJ0;V5$.errors={AuthorizationError:PJ0,ClosedConnectionError:is0,ConnectionError:ns0,DrainingConnectionError:ps0,InvalidArgumentError:EJ0,InvalidOperationError:ds0,InvalidSubjectError:ms0,NoRespondersError:AJ0,PermissionViolationError:TJ0,ProtocolError:ts0,RequestError:os0,TimeoutError:rs0,UserAuthenticationExpiredError:zJ0}});var QW=v((v5$)=>{Object.defineProperty(v5$,"__esModule",{value:!0});v5$.SimpleMutex=v5$.Perf=void 0;v5$.extend=SY4;v5$.render=CY4;v5$.timeout=_Y4;v5$.delay=vY4;v5$.deadline=xY4;v5$.deferred=ss0;v5$.debugDeferred=fY4;v5$.shuffle=bY4;v5$.collect=yY4;v5$.jitter=_5$;v5$.backoff=gY4;v5$.nanos=hY4;v5$.millis=uY4;v5$.randomToken=mY4;var kY4=sJ(),as0=eJ();function SY4($,...Z){for(let Q=0;Q<Z.length;Q++){let X=Z[Q];Object.keys(X).forEach(function(Y){$[Y]=X[Y]})}return $}function CY4($){return kY4.TD.decode($).replace(/\n/g,"\u240A").replace(/\r/g,"\u240D")}function _Y4($,Z=!0){let Q=Z?new as0.TimeoutError:null,X,Y,J=new Promise((G,K)=>{X={cancel:()=>{if(Y)clearTimeout(Y)}},Y=setTimeout(()=>{if(Q===null)K(new as0.TimeoutError);else K(Q)},$)});return Object.assign(J,X)}function vY4($=0){let Z,Q=new Promise((X)=>{let Y=setTimeout(()=>{X()},$);Z={cancel:()=>{if(Y)clearTimeout(Y),X()}}});return Object.assign(Q,Z)}async function xY4($,Z=1000){let Q=ss0(),X=setTimeout(()=>{Q.reject(new as0.TimeoutError)},Z);try{return await Promise.race([$,Q])}finally{clearTimeout(X)}}function ss0(){let $={},Z=new Promise((Q,X)=>{$={resolve:Q,reject:X}});return Object.assign(Z,$)}function fY4(){let $={},Z=new Promise((Q,X)=>{$={resolve:(Y)=>{console.trace("resolve",Y),Q(Y)},reject:(Y)=>{console.trace("reject"),X(Y)}}});return Object.assign(Z,$)}function bY4($){for(let Z=$.length-1;Z>0;Z--){let Q=Math.floor(Math.random()*(Z+1));[$[Z],$[Q]]=[$[Q],$[Z]]}return $}async function yY4($){let Z=[];for await(let Q of $)Z.push(Q);return Z}class S5${timers;measures;constructor(){this.timers=new Map,this.measures=new Map}mark($){this.timers.set($,performance.now())}measure($,Z,Q){let X=this.timers.get(Z);if(X===void 0)throw Error(`${Z} is not defined`);let Y=this.timers.get(Q);if(Y===void 0)throw Error(`${Q} is not defined`);this.measures.set($,Y-X)}getEntries(){let $=[];return this.measures.forEach((Z,Q)=>{$.push({name:Q,duration:Z})}),$}}v5$.Perf=S5$;class C5${max;current;waiting;constructor($=1){this.max=$,this.current=0,this.waiting=[]}lock(){if(this.current++,this.current<=this.max)return Promise.resolve();let $=ss0();return this.waiting.push($),$}unlock(){this.current--,this.waiting.pop()?.resolve()}}v5$.SimpleMutex=C5$;function _5$($){if($===0)return 0;return Math.floor($/2+Math.random()*$)}function gY4($=[0,250,250,500,500,3000,5000]){if(!Array.isArray($))$=[0,250,250,500,500,3000,5000];let Z=$.length-1;return{backoff(Q){return _5$(Q>Z?$[Z]:$[Q])}}}function hY4($){return $*1e6}function uY4($){return Math.floor($/1e6)}var lY4="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz",hN=new Uint8Array(62);for(let $=0;$<62;$++)hN[$]=lY4.charCodeAt($);var cY4=218340105584896;function mY4(){let $=Math.floor(Math.random()*cY4),Z=$%62,Q=hN[Z];$=($-Z)/62,Z=$%62;let X=hN[Z];$=($-Z)/62,Z=$%62;let Y=hN[Z];$=($-Z)/62,Z=$%62;let J=hN[Z];$=($-Z)/62,Z=$%62;let G=hN[Z];$=($-Z)/62,Z=$%62;let K=hN[Z];$=($-Z)/62,Z=$%62;let W=hN[Z];$=($-Z)/62;let H=hN[$];return String.fromCharCode(Q,X,Y,J,G,K,W,H)}});var l5$=v((h5$)=>{Object.defineProperty(h5$,"__esModule",{value:!0});h5$.nuid=h5$.NuidImpl=void 0;var JJ4="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz",pD=62,qJ0=12,y5$=10,f5$=33,GJ4=333,b5$=qJ0+y5$,$e0=new Uint8Array(pD);for(let $=0;$<pD;$++)$e0[$]=JJ4.charCodeAt($);var RJ0=4294967296,g5$=BigInt(pD)**BigInt(y5$),Ro=Number(g5$/(1n<<32n)),es0=Number(g5$%(1n<<32n));function KJ4($){for(let Z=0;Z<$.length;Z++)$[Z]=Math.floor(Math.random()*256)}function WJ4($){if(globalThis?.crypto?.getRandomValues)globalThis.crypto.getRandomValues($);else KJ4($)}class Ze0{buf;cbuf;seqHi;seqLo;inc;inited;constructor(){this.buf=new Uint8Array(b5$),this.cbuf=new Uint8Array(qJ0),this.inited=!1}init(){this.inited=!0,this.setPre(),this.initSeqAndInc(),this.fillSeq()}initSeqAndInc(){let $=0;do this.seqHi=Math.floor(Math.random()*(Ro+1)),this.seqLo=Math.floor(Math.random()*RJ0);while($++<8&&this.seqHi===Ro&&this.seqLo>=es0);if(this.seqHi===Ro&&this.seqLo>=es0)this.seqLo=0;this.inc=Math.random()*(GJ4-f5$)+f5$|0}setPre(){WJ4(this.cbuf);for(let $=0;$<qJ0;$++)this.buf[$]=$e0[this.cbuf[$]%pD]}fillSeq(){let $=this.seqHi,Z=this.seqLo;for(let Q=b5$-1;Q>=qJ0;Q--){let X=Math.floor($/pD),J=($-X*pD)*RJ0+Z,G=Math.floor(J/pD),K=J-G*pD;this.buf[Q]=$e0[K],$=X,Z=G}}next(){if(!this.inited)this.init();if(this.seqLo+=this.inc,this.seqLo>=RJ0)this.seqLo-=RJ0,this.seqHi+=1;if(this.seqHi>Ro||this.seqHi===Ro&&this.seqLo>=es0)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()}}h5$.NuidImpl=Ze0;h5$.nuid=new Ze0});var i5$=v((m5$)=>{Object.defineProperty(m5$,"__esModule",{value:!0});m5$.nuid=m5$.Nuid=void 0;var c5$=l5$();m5$.Nuid=c5$.NuidImpl;m5$.nuid=c5$.nuid});var IJ0=v((MJ0)=>{Object.defineProperty(MJ0,"__esModule",{value:!0});MJ0.nuid=MJ0.Nuid=void 0;var p5$=i5$();Object.defineProperty(MJ0,"Nuid",{enumerable:!0,get:function(){return p5$.Nuid}});Object.defineProperty(MJ0,"nuid",{enumerable:!0,get:function(){return p5$.nuid}})});var nD=v((n5$)=>{Object.defineProperty(n5$,"__esModule",{value:!0});n5$.DEFAULT_HOST=n5$.DEFAULT_PORT=n5$.Match=void 0;n5$.syncIterator=OJ4;n5$.createInbox=DJ4;var NJ4=IJ0(),BJ4=eJ();n5$.Match={Exact:"exact",CanonicalMIME:"canonical",IgnoreCase:"insensitive"};function OJ4($){let Z=$[Symbol.asyncIterator]();return{async next(){let Q=await Z.next();if(Q.done)return Promise.resolve(null);return Promise.resolve(Q.value)}}}function DJ4($=""){if($=$||"_INBOX",typeof $!=="string")throw TypeError("prefix must be a string");return $.split(".").forEach((Z)=>{if(Z==="*"||Z===">")throw BJ4.InvalidArgumentError.format("prefix",`cannot have wildcards ('${$}')`)}),`${$}.${NJ4.nuid.next()}`}n5$.DEFAULT_PORT=4222;n5$.DEFAULT_HOST="127.0.0.1"});var qo=v((a5$)=>{Object.defineProperty(a5$,"__esModule",{value:!0});a5$.DataBuffer=void 0;var o5$=sJ();class r5${buffers;byteLength;constructor(){this.buffers=[],this.byteLength=0}static concat(...$){let Z=0;for(let Y=0;Y<$.length;Y++)Z+=$[Y].length;let Q=new Uint8Array(Z),X=0;for(let Y=0;Y<$.length;Y++)Q.set($[Y],X),X+=$[Y].length;return Q}static fromAscii($){if(!$)$="";return o5$.TE.encode($)}static toAscii($){return o5$.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 Q=0;Q<this.buffers.length;Q++)$.set(this.buffers[Q],Z),Z+=this.buffers[Q].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 Q=this.byteLength;if($===void 0||$>Q)$=Q;let X=Z.subarray(0,$);if(Q>$)this.buffers.push(Z.subarray($));return this.byteLength=Q-$,X}}return new Uint8Array(0)}fill($,...Z){if($)this.buffers.push($),this.byteLength+=$.length;for(let Q=0;Q<Z.length;Q++)if(Z[Q]&&Z[Q].length)this.buffers.push(Z[Q]),this.byteLength+=Z[Q].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}}a5$.DataBuffer=r5$});var tz=v(($9$)=>{Object.defineProperty($9$,"__esModule",{value:!0});$9$.LF=$9$.CR=$9$.CRLF=$9$.CR_LF_LEN=$9$.CR_LF=void 0;$9$.setTransportFactory=TJ4;$9$.defaultPort=RJ4;$9$.getUrlParseFn=qJ4;$9$.newTransport=MJ4;$9$.getResolveFn=IJ4;$9$.protoLen=e5$;$9$.extractProtocolMessage=VJ4;var zJ4=sJ(),PJ4=nD(),AJ4=qo(),$3;function TJ4($){$3=$}function RJ4(){return $3!==void 0&&$3.defaultPort!==void 0?$3.defaultPort:PJ4.DEFAULT_PORT}function qJ4(){return $3!==void 0&&$3.urlParseFn?$3.urlParseFn:void 0}function MJ4(){if(!$3||typeof $3.factory!=="function")throw Error("transport fn is not set");return $3.factory()}function IJ4(){return $3!==void 0&&$3.dnsResolveFn?$3.dnsResolveFn:void 0}$9$.CR_LF=`\r
|
|
2079
|
+
`);X=J.pop()??"";for(let G of J){let K=Bun.stripANSI(G).replace(/^\[\d+\]\s*/,"").trim();if(!K)continue;mD({method:"",path:"",status:0,duration:0,timestamp:new Date,rawLine:K})}}(async()=>{try{for(;;){let{done:J,value:G}=await Z.read();if(J)break;X+=Q.decode(G,{stream:!0}),Y()}}catch{}if(X.trim()){let J=Bun.stripANSI(X).replace(/^\[\d+\]\s*/,"").trim();if(J)mD({method:"",path:"",status:0,duration:0,timestamp:new Date,rawLine:J})}})()}async function fX4($){let{baseUrl:Z,noTui:Q}=$,X=process.env.HOST==="0.0.0.0"&&Boolean(process.env.PORT),Y=X?process.env.PORT:$.vitePort,J=Z||`http://localhost:${Y}`,G=X?await Ao(Number(Y)+1):await Ao(Number($.port)),{settings:K,services:W,managedServiceNames:H}=await OJ0({port:String(G),home:$.home,baseUrl:$.baseUrl,localMode:$.localMode,skipMigrations:$.skipMigrations,noTui:$.noTui,vitePort:$.vitePort});for(let L of W)mz({name:L.name,status:"ready",port:L.port});zo();let F=xX4(import.meta.dir,"..","..","..","..",".."),U=Q===!0,N=Bun.spawn(["bun","run","dev:servers"],{cwd:F,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:J,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.natsCredsPath?{NATS_CREDS:K.natsCredsPath}:{}},stdio:["inherit",U?"inherit":"pipe",U?"inherit":"pipe"]});if(!U)vs0(N.stdout),vs0(N.stderr);Po(J),mz({name:"Vite",status:"ready",port:Number(Y)}),mz({name:"API",status:"ready",port:Number(K.port)});let O=async(L)=>{if(N.kill(L),await N.exited,H.length>0){let{stopServices:w}=await Promise.resolve().then(() => (DY0(),OY0));await w(K.dataDir)}};return process.on("SIGINT",()=>O("SIGINT")),process.on("SIGTERM",()=>O("SIGTERM")),{port:Number(Y),process:N}}var fs0=D(()=>{Vs0();dz();_s0()});var wJ0;var bs0=D(()=>{wJ0={name:"decocms",version:"4.371.1",description:"Deco CMS \u2014 Self-hostable MCP Gateway for managing AI connections and tools",author:"Deco team",repository:{type:"git",url:"git+https://github.com/decocms/studio.git",directory:"apps/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","db:migrate:dbos":"bun run ./dist/server/migrate-dbos.js",check:"tsc --noEmit",start:"bun run ./dist/server/server.js",migrate:"bun run src/database/migrate.ts","migrate:dbos":"bun run src/database/migrate-dbos.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","@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 yX4,Text as $5$}from"ink";import{jsx as gX4,jsxs as Z5$}from"react/jsx-runtime";function Q5$({version:$}){return Z5$(yX4,{flexDirection:"column",marginTop:1,children:[gY0.map((Z,Q)=>gX4($5$,{color:hY0[Q],children:Z},Q)),Z5$($5$,{dimColor:!0,children:[" v",$]})]})}var X5$=D(()=>{Jo()});import{Box as iz,Text as dD}from"ink";import{Spinner as hX4}from"@inkjs/ui";import{jsx as aJ,jsxs as Wu}from"react/jsx-runtime";function Y5$({status:$}){if($==="pending")return aJ(hX4,{label:""});return aJ(dD,{color:"green",children:"\u2713"})}function uX4($){return`${$.name}: ${$.port||"...."}`}function J5$({services:$,migrationsStatus:Z,home:Q,serverUrl:X}){return Wu(iz,{flexDirection:"column",paddingBottom:1,children:[aJ(Q5$,{version:wJ0.version}),aJ(iz,{marginBottom:1,children:aJ(dD,{dimColor:!0,children:"\u2500".repeat(80)})}),aJ(iz,{children:Wu(dD,{dimColor:!0,children:["Home: ",Q]})}),Wu(iz,{gap:2,children:[$.map((Y)=>Wu(iz,{gap:1,children:[aJ(dD,{children:uX4(Y)}),aJ(Y5$,{status:Y.status})]},Y.name)),Wu(iz,{gap:1,children:[aJ(dD,{children:"Migrations"}),aJ(Y5$,{status:Z})]})]}),aJ(iz,{children:X?Wu(dD,{children:["Open in browser: ",aJ(dD,{color:"cyan",children:X})]}):aJ(dD,{dimColor:!0,children:"Starting..."})})]})}var G5$=D(()=>{bs0();X5$()});import{Box as lX4,Text as To}from"ink";import{jsx as ys0,jsxs as gs0}from"react/jsx-runtime";function cX4($){if($>=500)return"red";if($>=400)return"yellow";if($>=300)return"cyan";return"green"}function K5$({logs:$}){return ys0(lX4,{flexDirection:"column",children:$.map((Z,Q)=>{if(Z.rawLine)return ys0(To,{dimColor:!0,children:Z.rawLine},Q);let X=Z.duration<1000?`${Z.duration}ms`:`${(Z.duration/1000).toFixed(1)}s`;return gs0(To,{children:[gs0(To,{dimColor:!0,children:[Z.method.padEnd(6)," ",Z.path.padEnd(30)," "]}),ys0(To,{color:cX4(Z.status),children:Z.status}),gs0(To,{dimColor:!0,children:[" ",X.padStart(8)]})]},Q)})})}var W5$=()=>{};var hs0={};$0(hs0,{App:()=>iX4});import{Box as mX4}from"ink";import{useSyncExternalStore as dX4}from"react";import{jsx as H5$,jsxs as pX4}from"react/jsx-runtime";function iX4({home:$}){let Z=dX4(Cs0,Ss0);return pX4(mX4,{flexDirection:"column",children:[H5$(J5$,{services:Z.services,migrationsStatus:Z.migrationsStatus,home:$,serverUrl:Z.serverUrl}),H5$(K5$,{logs:Z.logs})]})}var us0=D(()=>{G5$();W5$();dz()});var TG="thread-gate",yN="decopilot-hosted-harness",gN="decopilot-hosted-harness-sandboxed",RG="automations",iD="background-tools",pz="task-board-github-reads";var F5$="11";function U5$($){return{name:"decocms",systemDatabaseUrl:$.systemDatabaseUrl,systemDatabaseSchemaName:"dbos",systemDatabasePoolSize:$.poolSize,runAdminServer:!1,executorID:$.executorID,applicationVersion:F5$,...$.listenQueues!==void 0?{listenQueues:$.listenQueues}:{}}}var N5$=()=>{};import nX4 from"pg";async function O5$($,Z){let{databaseUrl:Q,lockTimeoutMs:X=tX4}=$,Y=$.log??((W)=>console.log(W)),J=new nX4.Client({connectionString:Q});await J.connect();let G=Date.now(),K=!1;try{while(!K){if(K=(await J.query("SELECT pg_try_advisory_lock($1) AS locked",[B5$.toString()])).rows[0]?.locked===!0,K)break;if(Date.now()-G>=X)throw Error(`Timed out after ${X}ms waiting for the DBOS migration lock. Another process is still migrating the dbos schema; this pod will restart and retry.`);await O$(oX4)}let W=Date.now()-G;if(W>1000)Y(`[dbos] waited ${W}ms for the migration lock; another process migrated first`);return await Z()}finally{if(K)try{await J.query("SELECT pg_advisory_unlock($1)",[B5$.toString()])}catch{}await J.end().catch(()=>{})}}var B5$=8314027461559302n,tX4=600000,oX4=500;var D5$=D(()=>{i$()});function rX4(){let $=(process.env.BUN_OPTIONS??"").split(/\s+/).filter(Boolean);return[...process.argv.slice(1),...$]}function ls0($,Z){for(let Q=0;Q<$.length;Q++){let X=$[Q];if(X===void 0)continue;if(X===Z)return $[Q+1];if(X.startsWith(`${Z}=`))return X.slice(Z.length+1)}return}function L5$(){let $=rX4();if($.includes("--cpu-prof")){console.log(JSON.stringify({msg:"cpu-profiling-active",dir:ls0($,"--cpu-prof-dir")??process.cwd(),name:ls0($,"--cpu-prof-name"),markdown:$.includes("--cpu-prof-md"),intervalUs:Number(ls0($,"--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 w5$(){if(process.env.HEAP_WATCH!=="1")return()=>{};let $=Number(process.env.HEAP_WATCH_INTERVAL_MS??60000),Z=async()=>{let Q=hz();if(!Q)return;let X={};try{let{heapStats:Y}=await import("bun:jsc"),J=Y(),G=Object.entries(J.objectTypeCounts).sort((K,W)=>W[1]-K[1]).slice(0,20);X={objectCount:J.objectCount,heapSize:J.heapSize,top:Object.fromEntries(G)}}catch{}console.log(JSON.stringify({msg:"heap-watch",ts:new Date().toISOString(),uptimeS:Math.round(process.uptime()),rss:Q.rss,heapUsed:Q.heapUsed,heapTotal:Q.heapTotal,external:Q.external,arrayBuffers:Q.arrayBuffers,...X}))};return Z().catch(()=>{}),jJ0=setInterval(()=>void Z().catch(()=>{}),$),jJ0.unref?.(),process.on("SIGUSR2",()=>{try{let Q=Bun.generateHeapSnapshot("v8"),X=typeof Q==="string"?Q:JSON.stringify(Q),Y=`/tmp/heap-${process.pid}-${Date.now()}.heapsnapshot`;Bun.write(Y,X),console.log(JSON.stringify({msg:"heap-snapshot-written",path:Y}))}catch(Q){console.error("[heap-watch] snapshot failed:",Q)}}),()=>{if(jJ0)clearInterval(jJ0)}}var jJ0;var j5$=()=>{};import*as aX4 from"bun:jsc";function E5$(){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{sX4()}catch(J){return console.error("[stall-watchdog] failed to start sampling profiler:",J),()=>{}}let Q,X=performance.now()+Z,Y=()=>{let J=performance.now(),G=J-X;X=J+Z;let K=[];try{K=eX4()?.traces??[]}catch{}if(G>$&&K.length>0){let W=new Map;for(let F of K){let U=F.frames.find((O)=>O.sourceURL&&!/Unknown Executable/.test(O.category??""))??F.frames[0];if(!U)continue;let N=(U.sourceURL??"?").replace(/^.*\/node_modules\//,"node_modules/"),B=`${U.name??"?"} @ ${N}:${U.line??"?"}`;W.set(B,(W.get(B)??0)+1)}let H=[...W.entries()].sort((F,U)=>U[1]-F[1]).slice(0,8).map(([F,U])=>({frame:F,count:U}));console.warn(JSON.stringify({msg:"stall-stack",ts:new Date().toISOString(),lagMs:Math.round(G),samplesInWindow:K.length,top:H}))}Q=setTimeout(Y,Z),Q.unref?.()};return Q=setTimeout(Y,Z),Q.unref?.(),()=>{if(Q)clearTimeout(Q)}}var sX4,eX4;var z5$=D(()=>{({startSamplingProfiler:sX4,samplingProfilerStackTraces:eX4}=aX4)});function P5$(){L5$();let $=[w5$(),U1$(),E5$()];return()=>{for(let Z of $)Z()}}var A5$=D(()=>{gn0();j5$();z5$()});var nz=v((T5$)=>{Object.defineProperty(T5$,"__esModule",{value:!0});T5$.RepublishHeaders=T5$.DirectMsgHeaders=T5$.JsHeaders=T5$.AdvisoryKind=void 0;T5$.isOrderedPushConsumerOptions=$Y4;T5$.isPullConsumer=ZY4;T5$.isPushConsumer=QY4;T5$.isBoundPushConsumerOptions=XY4;function $Y4($){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 ZY4($){return $.isPullConsumer()}function QY4($){return $.isPushConsumer()}function XY4($){if($&&typeof $==="object")return"deliver_subject"in $||"deliver_group"in $||"idle_heartbeat"in $;return!1}T5$.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"};T5$.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"};T5$.DirectMsgHeaders={Stream:"Nats-Stream",Sequence:"Nats-Sequence",TimeStamp:"Nats-Time-Stamp",Subject:"Nats-Subject",LastSequence:"Nats-Last-Sequence",NumPending:"Nats-Num-Pending"};T5$.RepublishHeaders={Stream:"Nats-Stream",Subject:"Nats-Subject",Sequence:"Nats-Sequence",LastSequence:"Nats-Last-Sequence",Size:"Nats-Msg-Size"}});var sJ=v((q5$)=>{Object.defineProperty(q5$,"__esModule",{value:!0});q5$.TD=q5$.TE=q5$.Empty=void 0;q5$.encode=NY4;q5$.decode=BY4;q5$.Empty=new Uint8Array(0);q5$.TE=new TextEncoder;q5$.TD=new TextDecoder;function UY4(...$){let Z=0;for(let Y=0;Y<$.length;Y++)Z+=$[Y].length;let Q=new Uint8Array(Z),X=0;for(let Y=0;Y<$.length;Y++)Q.set($[Y],X),X+=$[Y].length;return Q}function NY4(...$){let Z=[];for(let Q=0;Q<$.length;Q++)Z.push(q5$.TE.encode($[Q]));if(Z.length===0)return q5$.Empty;if(Z.length===1)return Z[0];return UY4(...Z)}function BY4($){if(!$||$.length===0)return"";return q5$.TD.decode($)}});var eJ=v((V5$)=>{Object.defineProperty(V5$,"__esModule",{value:!0});V5$.errors=V5$.PermissionViolationError=V5$.NoRespondersError=V5$.TimeoutError=V5$.RequestError=V5$.ProtocolError=V5$.ConnectionError=V5$.DrainingConnectionError=V5$.ClosedConnectionError=V5$.AuthorizationError=V5$.UserAuthenticationExpiredError=V5$.InvalidOperationError=V5$.InvalidArgumentError=V5$.InvalidSubjectError=void 0;class ms0 extends Error{constructor($,Z){super(`illegal subject: '${$}'`,Z);this.name="InvalidSubjectError"}}V5$.InvalidSubjectError=ms0;class EJ0 extends Error{constructor($,Z){super($,Z);this.name="InvalidArgumentError"}static format($,Z,Q){if(Array.isArray(Z)&&Z.length>1)Z=Z[0];if(Array.isArray($))$=$.map((X)=>`'${X}'`),$=$.join(",");else $=`'${$}'`;return new EJ0(`${$} ${Z}`,Q)}}V5$.InvalidArgumentError=EJ0;class ds0 extends Error{constructor($,Z){super($,Z);this.name="InvalidOperationError"}}V5$.InvalidOperationError=ds0;class zJ0 extends Error{constructor($,Z){super($,Z);this.name="UserAuthenticationExpiredError"}static parse($){if($.toLowerCase().indexOf("user authentication expired")!==-1)return new zJ0($);return null}}V5$.UserAuthenticationExpiredError=zJ0;class PJ0 extends Error{constructor($,Z){super($,Z);this.name="AuthorizationError"}static parse($){let Z=["authorization violation","account authentication expired","authentication timeout"],Q=$.toLowerCase();for(let X=0;X<Z.length;X++)if(Q.indexOf(Z[X])!==-1)return new PJ0($);return null}}V5$.AuthorizationError=PJ0;class is0 extends Error{constructor(){super("closed connection");this.name="ClosedConnectionError"}}V5$.ClosedConnectionError=is0;class ps0 extends Error{constructor(){super("connection draining");this.name="DrainingConnectionError"}}V5$.DrainingConnectionError=ps0;class ns0 extends Error{constructor($,Z){super($,Z);this.name="ConnectionError"}}V5$.ConnectionError=ns0;class ts0 extends Error{constructor($,Z){super($,Z);this.name="ProtocolError"}}V5$.ProtocolError=ts0;class os0 extends Error{constructor($="",Z){super($,Z);this.name="RequestError"}isNoResponders(){return this.cause instanceof AJ0}}V5$.RequestError=os0;class rs0 extends Error{constructor($){super("timeout",$);this.name="TimeoutError"}}V5$.TimeoutError=rs0;class AJ0 extends Error{subject;constructor($,Z){super(`no responders: '${$}'`,Z);this.subject=$,this.name="NoResponders"}}V5$.NoRespondersError=AJ0;class TJ0 extends Error{operation;subject;queue;constructor($,Z,Q,X,Y){super($,Y);this.name="PermissionViolationError",this.operation=Z,this.subject=Q,this.queue=X}static parse($){if(($?$.toLowerCase():"").indexOf("permissions violation")===-1)return null;let Q="publish",X="",Y=void 0,J=$.match(/(Publish|Subscription) to "(\S+)"/);if(J){if(Q=J[1].toLowerCase(),X=J[2],Q==="subscription"){let G=$.match(/using queue "(\S+)"/);if(G)Y=G[1]}}return new TJ0($,Q,X,Y)}}V5$.PermissionViolationError=TJ0;V5$.errors={AuthorizationError:PJ0,ClosedConnectionError:is0,ConnectionError:ns0,DrainingConnectionError:ps0,InvalidArgumentError:EJ0,InvalidOperationError:ds0,InvalidSubjectError:ms0,NoRespondersError:AJ0,PermissionViolationError:TJ0,ProtocolError:ts0,RequestError:os0,TimeoutError:rs0,UserAuthenticationExpiredError:zJ0}});var QW=v((v5$)=>{Object.defineProperty(v5$,"__esModule",{value:!0});v5$.SimpleMutex=v5$.Perf=void 0;v5$.extend=SY4;v5$.render=CY4;v5$.timeout=_Y4;v5$.delay=vY4;v5$.deadline=xY4;v5$.deferred=ss0;v5$.debugDeferred=fY4;v5$.shuffle=bY4;v5$.collect=yY4;v5$.jitter=_5$;v5$.backoff=gY4;v5$.nanos=hY4;v5$.millis=uY4;v5$.randomToken=mY4;var kY4=sJ(),as0=eJ();function SY4($,...Z){for(let Q=0;Q<Z.length;Q++){let X=Z[Q];Object.keys(X).forEach(function(Y){$[Y]=X[Y]})}return $}function CY4($){return kY4.TD.decode($).replace(/\n/g,"\u240A").replace(/\r/g,"\u240D")}function _Y4($,Z=!0){let Q=Z?new as0.TimeoutError:null,X,Y,J=new Promise((G,K)=>{X={cancel:()=>{if(Y)clearTimeout(Y)}},Y=setTimeout(()=>{if(Q===null)K(new as0.TimeoutError);else K(Q)},$)});return Object.assign(J,X)}function vY4($=0){let Z,Q=new Promise((X)=>{let Y=setTimeout(()=>{X()},$);Z={cancel:()=>{if(Y)clearTimeout(Y),X()}}});return Object.assign(Q,Z)}async function xY4($,Z=1000){let Q=ss0(),X=setTimeout(()=>{Q.reject(new as0.TimeoutError)},Z);try{return await Promise.race([$,Q])}finally{clearTimeout(X)}}function ss0(){let $={},Z=new Promise((Q,X)=>{$={resolve:Q,reject:X}});return Object.assign(Z,$)}function fY4(){let $={},Z=new Promise((Q,X)=>{$={resolve:(Y)=>{console.trace("resolve",Y),Q(Y)},reject:(Y)=>{console.trace("reject"),X(Y)}}});return Object.assign(Z,$)}function bY4($){for(let Z=$.length-1;Z>0;Z--){let Q=Math.floor(Math.random()*(Z+1));[$[Z],$[Q]]=[$[Q],$[Z]]}return $}async function yY4($){let Z=[];for await(let Q of $)Z.push(Q);return Z}class S5${timers;measures;constructor(){this.timers=new Map,this.measures=new Map}mark($){this.timers.set($,performance.now())}measure($,Z,Q){let X=this.timers.get(Z);if(X===void 0)throw Error(`${Z} is not defined`);let Y=this.timers.get(Q);if(Y===void 0)throw Error(`${Q} is not defined`);this.measures.set($,Y-X)}getEntries(){let $=[];return this.measures.forEach((Z,Q)=>{$.push({name:Q,duration:Z})}),$}}v5$.Perf=S5$;class C5${max;current;waiting;constructor($=1){this.max=$,this.current=0,this.waiting=[]}lock(){if(this.current++,this.current<=this.max)return Promise.resolve();let $=ss0();return this.waiting.push($),$}unlock(){this.current--,this.waiting.pop()?.resolve()}}v5$.SimpleMutex=C5$;function _5$($){if($===0)return 0;return Math.floor($/2+Math.random()*$)}function gY4($=[0,250,250,500,500,3000,5000]){if(!Array.isArray($))$=[0,250,250,500,500,3000,5000];let Z=$.length-1;return{backoff(Q){return _5$(Q>Z?$[Z]:$[Q])}}}function hY4($){return $*1e6}function uY4($){return Math.floor($/1e6)}var lY4="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz",hN=new Uint8Array(62);for(let $=0;$<62;$++)hN[$]=lY4.charCodeAt($);var cY4=218340105584896;function mY4(){let $=Math.floor(Math.random()*cY4),Z=$%62,Q=hN[Z];$=($-Z)/62,Z=$%62;let X=hN[Z];$=($-Z)/62,Z=$%62;let Y=hN[Z];$=($-Z)/62,Z=$%62;let J=hN[Z];$=($-Z)/62,Z=$%62;let G=hN[Z];$=($-Z)/62,Z=$%62;let K=hN[Z];$=($-Z)/62,Z=$%62;let W=hN[Z];$=($-Z)/62;let H=hN[$];return String.fromCharCode(Q,X,Y,J,G,K,W,H)}});var l5$=v((h5$)=>{Object.defineProperty(h5$,"__esModule",{value:!0});h5$.nuid=h5$.NuidImpl=void 0;var JJ4="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz",pD=62,qJ0=12,y5$=10,f5$=33,GJ4=333,b5$=qJ0+y5$,$e0=new Uint8Array(pD);for(let $=0;$<pD;$++)$e0[$]=JJ4.charCodeAt($);var RJ0=4294967296,g5$=BigInt(pD)**BigInt(y5$),Ro=Number(g5$/(1n<<32n)),es0=Number(g5$%(1n<<32n));function KJ4($){for(let Z=0;Z<$.length;Z++)$[Z]=Math.floor(Math.random()*256)}function WJ4($){if(globalThis?.crypto?.getRandomValues)globalThis.crypto.getRandomValues($);else KJ4($)}class Ze0{buf;cbuf;seqHi;seqLo;inc;inited;constructor(){this.buf=new Uint8Array(b5$),this.cbuf=new Uint8Array(qJ0),this.inited=!1}init(){this.inited=!0,this.setPre(),this.initSeqAndInc(),this.fillSeq()}initSeqAndInc(){let $=0;do this.seqHi=Math.floor(Math.random()*(Ro+1)),this.seqLo=Math.floor(Math.random()*RJ0);while($++<8&&this.seqHi===Ro&&this.seqLo>=es0);if(this.seqHi===Ro&&this.seqLo>=es0)this.seqLo=0;this.inc=Math.random()*(GJ4-f5$)+f5$|0}setPre(){WJ4(this.cbuf);for(let $=0;$<qJ0;$++)this.buf[$]=$e0[this.cbuf[$]%pD]}fillSeq(){let $=this.seqHi,Z=this.seqLo;for(let Q=b5$-1;Q>=qJ0;Q--){let X=Math.floor($/pD),J=($-X*pD)*RJ0+Z,G=Math.floor(J/pD),K=J-G*pD;this.buf[Q]=$e0[K],$=X,Z=G}}next(){if(!this.inited)this.init();if(this.seqLo+=this.inc,this.seqLo>=RJ0)this.seqLo-=RJ0,this.seqHi+=1;if(this.seqHi>Ro||this.seqHi===Ro&&this.seqLo>=es0)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()}}h5$.NuidImpl=Ze0;h5$.nuid=new Ze0});var i5$=v((m5$)=>{Object.defineProperty(m5$,"__esModule",{value:!0});m5$.nuid=m5$.Nuid=void 0;var c5$=l5$();m5$.Nuid=c5$.NuidImpl;m5$.nuid=c5$.nuid});var IJ0=v((MJ0)=>{Object.defineProperty(MJ0,"__esModule",{value:!0});MJ0.nuid=MJ0.Nuid=void 0;var p5$=i5$();Object.defineProperty(MJ0,"Nuid",{enumerable:!0,get:function(){return p5$.Nuid}});Object.defineProperty(MJ0,"nuid",{enumerable:!0,get:function(){return p5$.nuid}})});var nD=v((n5$)=>{Object.defineProperty(n5$,"__esModule",{value:!0});n5$.DEFAULT_HOST=n5$.DEFAULT_PORT=n5$.Match=void 0;n5$.syncIterator=OJ4;n5$.createInbox=DJ4;var NJ4=IJ0(),BJ4=eJ();n5$.Match={Exact:"exact",CanonicalMIME:"canonical",IgnoreCase:"insensitive"};function OJ4($){let Z=$[Symbol.asyncIterator]();return{async next(){let Q=await Z.next();if(Q.done)return Promise.resolve(null);return Promise.resolve(Q.value)}}}function DJ4($=""){if($=$||"_INBOX",typeof $!=="string")throw TypeError("prefix must be a string");return $.split(".").forEach((Z)=>{if(Z==="*"||Z===">")throw BJ4.InvalidArgumentError.format("prefix",`cannot have wildcards ('${$}')`)}),`${$}.${NJ4.nuid.next()}`}n5$.DEFAULT_PORT=4222;n5$.DEFAULT_HOST="127.0.0.1"});var qo=v((a5$)=>{Object.defineProperty(a5$,"__esModule",{value:!0});a5$.DataBuffer=void 0;var o5$=sJ();class r5${buffers;byteLength;constructor(){this.buffers=[],this.byteLength=0}static concat(...$){let Z=0;for(let Y=0;Y<$.length;Y++)Z+=$[Y].length;let Q=new Uint8Array(Z),X=0;for(let Y=0;Y<$.length;Y++)Q.set($[Y],X),X+=$[Y].length;return Q}static fromAscii($){if(!$)$="";return o5$.TE.encode($)}static toAscii($){return o5$.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 Q=0;Q<this.buffers.length;Q++)$.set(this.buffers[Q],Z),Z+=this.buffers[Q].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 Q=this.byteLength;if($===void 0||$>Q)$=Q;let X=Z.subarray(0,$);if(Q>$)this.buffers.push(Z.subarray($));return this.byteLength=Q-$,X}}return new Uint8Array(0)}fill($,...Z){if($)this.buffers.push($),this.byteLength+=$.length;for(let Q=0;Q<Z.length;Q++)if(Z[Q]&&Z[Q].length)this.buffers.push(Z[Q]),this.byteLength+=Z[Q].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}}a5$.DataBuffer=r5$});var tz=v(($9$)=>{Object.defineProperty($9$,"__esModule",{value:!0});$9$.LF=$9$.CR=$9$.CRLF=$9$.CR_LF_LEN=$9$.CR_LF=void 0;$9$.setTransportFactory=TJ4;$9$.defaultPort=RJ4;$9$.getUrlParseFn=qJ4;$9$.newTransport=MJ4;$9$.getResolveFn=IJ4;$9$.protoLen=e5$;$9$.extractProtocolMessage=VJ4;var zJ4=sJ(),PJ4=nD(),AJ4=qo(),$3;function TJ4($){$3=$}function RJ4(){return $3!==void 0&&$3.defaultPort!==void 0?$3.defaultPort:PJ4.DEFAULT_PORT}function qJ4(){return $3!==void 0&&$3.urlParseFn?$3.urlParseFn:void 0}function MJ4(){if(!$3||typeof $3.factory!=="function")throw Error("transport fn is not set");return $3.factory()}function IJ4(){return $3!==void 0&&$3.dnsResolveFn?$3.dnsResolveFn:void 0}$9$.CR_LF=`\r
|
|
2080
2080
|
`;$9$.CR_LF_LEN=$9$.CR_LF.length;$9$.CRLF=AJ4.DataBuffer.fromAscii($9$.CR_LF);$9$.CR=new Uint8Array($9$.CRLF)[0];$9$.LF=new Uint8Array($9$.CRLF)[1];function e5$($){for(let Z=0;Z<$.length;Z++){let Q=Z+1;if($.byteLength>Q&&$[Z]===$9$.CR&&$[Q]===$9$.LF)return Q+1}return 0}function VJ4($){let Z=e5$($);if(Z>0){let X=new Uint8Array($).slice(0,Z);return zJ4.TD.decode(X)}return""}});var Ge0=v((W9$)=>{Object.defineProperty(W9$,"__esModule",{value:!0});W9$.ipV4=J9$;W9$.isIP=hJ4;W9$.parseIP=G9$;var Mo=4,oz=16,VJ0=48,Y9$=57,Q9$=65,yJ4=70,X9$=97,gJ4=102,Je0=16777215;function J9$($,Z,Q,X){let Y=new Uint8Array(oz);return[0,0,0,0,0,0,0,0,0,0,255,255].forEach((G,K)=>{Y[K]=G}),Y[12]=$,Y[13]=Z,Y[14]=Q,Y[15]=X,Y}function hJ4($){return G9$($)!==void 0}function G9$($){for(let Z=0;Z<$.length;Z++)switch($[Z]){case".":return K9$($);case":":return uJ4($)}return}function K9$($){let Z=new Uint8Array(Mo);for(let Q=0;Q<Mo;Q++){if($.length===0)return;if(Q>0){if($[0]!==".")return;$=$.substring(1)}let{n:X,c:Y,ok:J}=lJ4($);if(!J||X>255)return;$=$.substring(Y),Z[Q]=X}return J9$(Z[0],Z[1],Z[2],Z[3])}function uJ4($){let Z=new Uint8Array(oz),Q=-1;if($.length>=2&&$[0]===":"&&$[1]===":"){if(Q=0,$=$.substring(2),$.length===0)return Z}let X=0;while(X<oz){let{n:Y,c:J,ok:G}=cJ4($);if(!G||Y>65535)return;if(J<$.length&&$[J]==="."){if(Q<0&&X!=oz-Mo)return;if(X+Mo>oz)return;let K=K9$($);if(K===void 0)return;Z[X]=K[12],Z[X+1]=K[13],Z[X+2]=K[14],Z[X+3]=K[15],$="",X+=Mo;break}if(Z[X]=Y>>8,Z[X+1]=Y,X+=2,$=$.substring(J),$.length===0)break;if($[0]!==":"||$.length==1)return;if($=$.substring(1),$[0]===":"){if(Q>=0)return;if(Q=X,$=$.substring(1),$.length===0)break}}if($.length!==0)return;if(X<oz){if(Q<0)return;let Y=oz-X;for(let J=X-1;J>=Q;J--)Z[J+Y]=Z[J];for(let J=Q+Y-1;J>=Q;J--)Z[J]=0}else if(Q>=0)return;return Z}function lJ4($){let Z=0,Q=0;for(Z=0;Z<$.length&&VJ0<=$.charCodeAt(Z)&&$.charCodeAt(Z)<=Y9$;Z++)if(Q=Q*10+($.charCodeAt(Z)-VJ0),Q>=Je0)return{n:Je0,c:Z,ok:!1};if(Z===0)return{n:0,c:0,ok:!1};return{n:Q,c:Z,ok:!0}}function cJ4($){let Z=0,Q=0;for(Q=0;Q<$.length;Q++){if(VJ0<=$.charCodeAt(Q)&&$.charCodeAt(Q)<=Y9$)Z*=16,Z+=$.charCodeAt(Q)-VJ0;else if(X9$<=$.charCodeAt(Q)&&$.charCodeAt(Q)<=gJ4)Z*=16,Z+=$.charCodeAt(Q)-X9$+10;else if(Q9$<=$.charCodeAt(Q)&&$.charCodeAt(Q)<=yJ4)Z*=16,Z+=$.charCodeAt(Q)-Q9$+10;else break;if(Z>=Je0)return{n:0,c:Q,ok:!1}}if(Q===0)return{n:0,c:Q,ok:!1};return{n:Z,c:Q,ok:!0}}});var Ne0=v((F9$)=>{Object.defineProperty(F9$,"__esModule",{value:!0});F9$.Servers=F9$.ServerImpl=void 0;F9$.isIPV4OrHostname=H9$;F9$.hostPort=Ue0;var Ke0=tz(),We0=QW(),He0=Ge0(),pJ4=nD(),nJ4=eJ();function H9$($){if($.indexOf("[")!==-1||$.indexOf("::")!==-1)return!1;if($.indexOf(".")!==-1)return!0;if($.split(":").length<=2)return!0;return!1}function Fe0($){return!H9$($)}function tJ4($){let Q=$.toUpperCase().indexOf("::FFFF:");if(Q!==-1&&$.indexOf(".")!==-1){let X=$.substring(Q+7);return X=X.replace("[",""),X.replace("]","")}return $}function Ue0($){if($=$.trim(),$.match(/^(.*:\/\/)(.*)/m))$=$.replace(/^(.*:\/\/)(.*)/gm,"$2");if($=tJ4($),Fe0($)&&$.indexOf("[")===-1)$=`[${$}]`;let Z=Fe0($)?$.match(/(]:)(\d+)/):$.match(/(:)(\d+)/),Q=Z&&Z.length===3&&Z[1]&&Z[2]?parseInt(Z[2]):pJ4.DEFAULT_PORT,Y=new URL(`${Q===80?"https":"http"}://${$}`);Y.port=`${Q}`;let J=Y.hostname;if(J.charAt(0)==="[")J=J.substring(1,J.length-1);return{listen:Y.host,hostname:J,port:Q}}class Hu{src;listen;hostname;port;didConnect;reconnects;lastConnect;gossiped;tlsName;resolves;constructor($,Z=!1){this.src=$,this.tlsName="";let Q=Ue0($);this.listen=Q.listen,this.hostname=Q.hostname,this.port=Q.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,He0.isIP)(this.hostname))return[this];else{let Q=await $.fn(this.hostname);if($.debug)console.log(`resolve ${this.hostname} = ${Q.join(",")}`);for(let X of Q){let Y=this.port===80?"https":"http",J=new URL(`${Y}://${Fe0(X)?"["+X+"]":X}`);J.port=`${this.port}`;let G=new Hu(J.host,!1);G.tlsName=this.hostname,Z.push(G)}}if($.randomize)(0,We0.shuffle)(Z);return this.resolves=Z,Z}}F9$.ServerImpl=Hu;class kJ0{firstSelect;servers;currentServer;tlsName;randomize;constructor($={}){this.firstSelect=!0,this.servers=[],this.tlsName="",this.randomize=$.randomize||!1}setServers($){if(!Array.isArray($)||$.length===0)throw nJ4.InvalidArgumentError.format("servers","cannot be empty");let Z=(0,Ke0.getUrlParseFn)(),Q=new Map;for(let Y of this.servers)Q.set(Y.listen,Y);let X=[];for(let Y of $){Y=Z?Z(Y):Y;let{listen:J}=Ue0(Y),G=Q.get(J);if(G)G.gossiped=!1,X.push(G);else X.push(new Hu(Y))}if(this.randomize)(0,We0.shuffle)(X);if(this.servers=X,this.currentServer===void 0||!X.includes(this.currentServer))this.currentServer=X[0],this.firstSelect=!0}clear(){this.servers.length=0}updateTLSName(){let $=this.getCurrentServer();if(!(0,He0.isIP)($.hostname))this.tlsName=$.hostname,this.servers.forEach((Z)=>{if(Z.gossiped)Z.tlsName=this.tlsName})}getCurrentServer(){return this.currentServer}addServer($,Z=!1){let Q=(0,Ke0.getUrlParseFn)();$=Q?Q($):$;let X=new Hu($,Z);if((0,He0.isIP)(X.hostname))X.tlsName=this.tlsName;this.servers.push(X)}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 kJ0.freezeAll(this.servers)}snapshotForHandler(){let $=this.currentServer;if(!$)return this.snapshot();let Z=this.servers.indexOf($);if(Z<=0)return this.snapshot();return kJ0.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 Q=[],X=[],Y=(0,Ke0.getUrlParseFn)(),J=new Map;if($.connect_urls&&$.connect_urls.length>0)$.connect_urls.forEach((K)=>{K=Y?Y(K,Z):K;let W=new Hu(K,!0);J.set(K,W)});let G=[];if(this.servers.forEach((K,W)=>{let H=K.listen;if(K.gossiped&&this.currentServer.listen!==H&&J.get(H)===void 0)G.push(W);J.delete(H)}),G.reverse(),G.forEach((K)=>{let W=this.servers.splice(K,1);X=X.concat(W[0].listen)}),J.forEach((K,W)=>{this.servers.push(K),Q.push(W)}),this.randomize&&Q.length>0){let K=this.currentServer,W=this.servers.filter((H)=>H!==K);(0,We0.shuffle)(W),this.servers=K?[K,...W]:W}return{added:Q,deleted:X}}}F9$.Servers=kJ0});var SJ0=v((O9$)=>{Object.defineProperty(O9$,"__esModule",{value:!0});O9$.QueuedIteratorImpl=void 0;var Be0=QW(),N9$=eJ();class B9${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,Be0.deferred)(),this.yields=[],this.iterClosed=(0,Be0.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(Q){}}return}if(typeof $==="function")this.pendingFiltered++;this.yields.push($),this.signal.resolve()}async*iterate(){if(this.noIterator)throw new N9$.InvalidOperationError("iterator cannot be used when a callback is registered");if(this.yielding)throw new N9$.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 X=$[Z];try{X()}catch(Y){throw Y}if(this.err)throw this.err;continue}this.processed++,this.inflight--;let Q=this.profile?Date.now():0;yield $[Z],this.time=this.profile?Date.now()-Q:0}if(this.done)break;else if(this.yields.length===0)$.length=0,this.yields=$,this.signal=(0,Be0.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}}O9$.QueuedIteratorImpl=B9$});var Oe0=v((j9$)=>{Object.defineProperty(j9$,"__esModule",{value:!0});j9$.MuxSubscription=void 0;var sJ4=nD(),L9$=eJ();class w9${baseInbox;reqs;constructor(){this.reqs=new Map}size(){return this.reqs.size}init($){return this.baseInbox=`${(0,sJ4.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((Q)=>{Q.resolver(Z,{})}),!0;if(Z.operation==="publish"){let Q=this.all().find((X)=>{return X.requestSubject===Z.subject});if(Q)return Q.resolver(Z,{}),!0}return!1}dispatcher(){return($,Z)=>{let Q=this.getToken(Z);if(Q){let X=this.get(Q);if(X){if($===null)$=Z?.data?.length===0&&Z.headers?.code===503?new L9$.NoRespondersError(X.requestSubject):null;X.resolver($,Z)}}}}close(){let $=new L9$.RequestError("connection closed");this.reqs.forEach((Z)=>{Z.resolver($,{})})}}j9$.MuxSubscription=w9$});var De0=v((P9$)=>{Object.defineProperty(P9$,"__esModule",{value:!0});P9$.Heartbeat=void 0;var eJ4=QW();class z9${ph;interval;maxOut;timer;pendings;constructor($,Z,Q){this.ph=$,this.interval=Z,this.maxOut=Q,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,eJ4.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})}}P9$.Heartbeat=z9$});var je0=v((M9$)=>{Object.defineProperty(M9$,"__esModule",{value:!0});M9$.DenoBuffer=M9$.MAX_SIZE=M9$.AssertionError=void 0;M9$.assert=R9$;M9$.concat=q9$;M9$.append=Z34;M9$.readAll=Q34;M9$.writeAll=X34;var $34=sJ();class Le0 extends Error{constructor($){super($);this.name="AssertionError"}}M9$.AssertionError=Le0;function R9$($,Z="Assertion failed."){if(!$)throw new Le0(Z)}var T9$=32768;M9$.MAX_SIZE=4294967294;function CJ0($,Z,Q=0){let X=Z.byteLength-Q;if($.byteLength>X)$=$.subarray(0,X);return Z.set($,Q),$.byteLength}function q9$($,Z){if($===void 0&&Z===void 0)return new Uint8Array(0);if($===void 0)return Z;if(Z===void 0)return $;let Q=new Uint8Array($.length+Z.length);return Q.set($,0),Q.set(Z,$.length),Q}function Z34($,Z){return q9$($,Uint8Array.of(Z))}class we0{_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($){R9$($<=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=CJ0(this._buf.subarray(this._off),$);return this._off+=Z,Z}writeByte($){return this.write(Uint8Array.of($))}writeString($){return this.write($34.TE.encode($))}write($){let Z=this._grow($.byteLength);return CJ0($,this._buf,Z)}_grow($){let Z=this.length;if(Z===0&&this._off!==0)this.reset();let Q=this._tryGrowByReslice($);if(Q>=0)return Q;let X=this.capacity;if($<=Math.floor(X/2)-Z)CJ0(this._buf.subarray(this._off),this._buf);else if(X+$>M9$.MAX_SIZE)throw Error("The buffer cannot be grown beyond the maximum size.");else{let Y=new Uint8Array(Math.min(2*X+$,M9$.MAX_SIZE));CJ0(this._buf.subarray(this._off),Y),this._buf=Y}return this._off=0,this._reslice(Math.min(Z+$,M9$.MAX_SIZE)),Z}grow($){if($<0)throw Error("Buffer._grow: negative count");let Z=this._grow($);this._reslice(Z)}readFrom($){let Z=0,Q=new Uint8Array(T9$);while(!0){let X=this.capacity-this.length<T9$,Y=X?Q:new Uint8Array(this._buf.buffer,this.length),J=$.read(Y);if(J===null)return Z;if(X)this.write(Y.subarray(0,J));else this._reslice(this.length+J);Z+=J}}}M9$.DenoBuffer=we0;function Q34($){let Z=new we0;return Z.readFrom($),Z.bytes()}function X34($,Z){let Q=0;while(Q<Z.length)Q+=$.write(Z.subarray(Q))}});var Pe0=v((C9$)=>{Object.defineProperty(C9$,"__esModule",{value:!0});C9$.cc=C9$.State=C9$.Parser=C9$.Kind=void 0;C9$.describe=F34;var Ee0=je0(),ze0=sJ();C9$.Kind={OK:0,ERR:1,MSG:2,INFO:3,PING:4,PONG:5};function F34($){let Z,Q="";switch($.kind){case C9$.Kind.MSG:Z="MSG";break;case C9$.Kind.OK:Z="OK";break;case C9$.Kind.ERR:Z="ERR",Q=ze0.TD.decode($.data);break;case C9$.Kind.PING:Z="PING";break;case C9$.Kind.PONG:Z="PONG";break;case C9$.Kind.INFO:Z="INFO",Q=ze0.TD.decode($.data)}return`${Z}: ${Q}`}function V9$(){let $={};return $.sid=-1,$.hdr=-1,$.size=-1,$}var k9$=48,U34=57,Fu=67108864;class S9${dispatcher;state;as;drop;hdr;ma;argBuf;msgBuf;constructor($){this.dispatcher=$,this.state=C9$.State.OP_START,this.as=0,this.drop=0,this.hdr=0}parse($){let Z;for(Z=0;Z<$.length;Z++){let Q=$[Z];switch(this.state){case C9$.State.OP_START:switch(Q){case C9$.cc.M:case C9$.cc.m:this.state=C9$.State.OP_M,this.hdr=-1,this.ma=V9$();break;case C9$.cc.H:case C9$.cc.h:this.state=C9$.State.OP_H,this.hdr=0,this.ma=V9$();break;case C9$.cc.P:case C9$.cc.p:this.state=C9$.State.OP_P;break;case C9$.cc.PLUS:this.state=C9$.State.OP_PLUS;break;case C9$.cc.MINUS:this.state=C9$.State.OP_MINUS;break;case C9$.cc.I:case C9$.cc.i:this.state=C9$.State.OP_I;break;default:throw this.fail($.subarray(Z))}break;case C9$.State.OP_H:switch(Q){case C9$.cc.M:case C9$.cc.m:this.state=C9$.State.OP_M;break;default:throw this.fail($.subarray(Z))}break;case C9$.State.OP_M:switch(Q){case C9$.cc.S:case C9$.cc.s:this.state=C9$.State.OP_MS;break;default:throw this.fail($.subarray(Z))}break;case C9$.State.OP_MS:switch(Q){case C9$.cc.G:case C9$.cc.g:this.state=C9$.State.OP_MSG;break;default:throw this.fail($.subarray(Z))}break;case C9$.State.OP_MSG:switch(Q){case C9$.cc.SPACE:case C9$.cc.TAB:this.state=C9$.State.OP_MSG_SPC;break;default:throw this.fail($.subarray(Z))}break;case C9$.State.OP_MSG_SPC:switch(Q){case C9$.cc.SPACE:case C9$.cc.TAB:continue;default:this.state=C9$.State.MSG_ARG,this.as=Z}break;case C9$.State.MSG_ARG:switch(Q){case C9$.cc.CR:this.drop=1;break;case C9$.cc.NL:{let X=this.argBuf?this.argBuf.bytes():$.subarray(this.as,Z-this.drop);this.processMsgArgs(X),this.drop=0,this.as=Z+1,this.state=C9$.State.MSG_PAYLOAD,Z=this.as+this.ma.size-1;break}default:if(this.argBuf)this.argBuf.writeByte(Q)}break;case C9$.State.MSG_PAYLOAD:if(this.msgBuf)if(this.msgBuf.length>=this.ma.size){let X=this.msgBuf.bytes({copy:!1});this.dispatcher.push({kind:C9$.Kind.MSG,msg:this.ma,data:X}),this.argBuf=void 0,this.msgBuf=void 0,this.state=C9$.State.MSG_END}else{let X=this.ma.size-this.msgBuf.length,Y=$.length-Z;if(Y<X)X=Y;if(X>0)this.msgBuf.write($.subarray(Z,Z+X)),Z=Z+X-1;else this.msgBuf.writeByte(Q)}else if(Z-this.as>=this.ma.size)this.dispatcher.push({kind:C9$.Kind.MSG,msg:this.ma,data:$.subarray(this.as,Z)}),this.argBuf=void 0,this.msgBuf=void 0,this.state=C9$.State.MSG_END;break;case C9$.State.MSG_END:switch(Q){case C9$.cc.NL:this.drop=0,this.as=Z+1,this.state=C9$.State.OP_START;break;default:continue}break;case C9$.State.OP_PLUS:switch(Q){case C9$.cc.O:case C9$.cc.o:this.state=C9$.State.OP_PLUS_O;break;default:throw this.fail($.subarray(Z))}break;case C9$.State.OP_PLUS_O:switch(Q){case C9$.cc.K:case C9$.cc.k:this.state=C9$.State.OP_PLUS_OK;break;default:throw this.fail($.subarray(Z))}break;case C9$.State.OP_PLUS_OK:switch(Q){case C9$.cc.NL:this.dispatcher.push({kind:C9$.Kind.OK}),this.drop=0,this.state=C9$.State.OP_START;break}break;case C9$.State.OP_MINUS:switch(Q){case C9$.cc.E:case C9$.cc.e:this.state=C9$.State.OP_MINUS_E;break;default:throw this.fail($.subarray(Z))}break;case C9$.State.OP_MINUS_E:switch(Q){case C9$.cc.R:case C9$.cc.r:this.state=C9$.State.OP_MINUS_ER;break;default:throw this.fail($.subarray(Z))}break;case C9$.State.OP_MINUS_ER:switch(Q){case C9$.cc.R:case C9$.cc.r:this.state=C9$.State.OP_MINUS_ERR;break;default:throw this.fail($.subarray(Z))}break;case C9$.State.OP_MINUS_ERR:switch(Q){case C9$.cc.SPACE:case C9$.cc.TAB:this.state=C9$.State.OP_MINUS_ERR_SPC;break;default:throw this.fail($.subarray(Z))}break;case C9$.State.OP_MINUS_ERR_SPC:switch(Q){case C9$.cc.SPACE:case C9$.cc.TAB:continue;default:this.state=C9$.State.MINUS_ERR_ARG,this.as=Z}break;case C9$.State.MINUS_ERR_ARG:switch(Q){case C9$.cc.CR:this.drop=1;break;case C9$.cc.NL:{let X;if(this.argBuf)X=this.argBuf.bytes(),this.argBuf=void 0;else X=$.subarray(this.as,Z-this.drop);this.dispatcher.push({kind:C9$.Kind.ERR,data:X}),this.drop=0,this.as=Z+1,this.state=C9$.State.OP_START;break}default:if(this.argBuf)this.argBuf.write(Uint8Array.of(Q))}break;case C9$.State.OP_P:switch(Q){case C9$.cc.I:case C9$.cc.i:this.state=C9$.State.OP_PI;break;case C9$.cc.O:case C9$.cc.o:this.state=C9$.State.OP_PO;break;default:throw this.fail($.subarray(Z))}break;case C9$.State.OP_PO:switch(Q){case C9$.cc.N:case C9$.cc.n:this.state=C9$.State.OP_PON;break;default:throw this.fail($.subarray(Z))}break;case C9$.State.OP_PON:switch(Q){case C9$.cc.G:case C9$.cc.g:this.state=C9$.State.OP_PONG;break;default:throw this.fail($.subarray(Z))}break;case C9$.State.OP_PONG:switch(Q){case C9$.cc.NL:this.dispatcher.push({kind:C9$.Kind.PONG}),this.drop=0,this.state=C9$.State.OP_START;break}break;case C9$.State.OP_PI:switch(Q){case C9$.cc.N:case C9$.cc.n:this.state=C9$.State.OP_PIN;break;default:throw this.fail($.subarray(Z))}break;case C9$.State.OP_PIN:switch(Q){case C9$.cc.G:case C9$.cc.g:this.state=C9$.State.OP_PING;break;default:throw this.fail($.subarray(Z))}break;case C9$.State.OP_PING:switch(Q){case C9$.cc.NL:this.dispatcher.push({kind:C9$.Kind.PING}),this.drop=0,this.state=C9$.State.OP_START;break}break;case C9$.State.OP_I:switch(Q){case C9$.cc.N:case C9$.cc.n:this.state=C9$.State.OP_IN;break;default:throw this.fail($.subarray(Z))}break;case C9$.State.OP_IN:switch(Q){case C9$.cc.F:case C9$.cc.f:this.state=C9$.State.OP_INF;break;default:throw this.fail($.subarray(Z))}break;case C9$.State.OP_INF:switch(Q){case C9$.cc.O:case C9$.cc.o:this.state=C9$.State.OP_INFO;break;default:throw this.fail($.subarray(Z))}break;case C9$.State.OP_INFO:switch(Q){case C9$.cc.SPACE:case C9$.cc.TAB:this.state=C9$.State.OP_INFO_SPC;break;default:throw this.fail($.subarray(Z))}break;case C9$.State.OP_INFO_SPC:switch(Q){case C9$.cc.SPACE:case C9$.cc.TAB:continue;default:this.state=C9$.State.INFO_ARG,this.as=Z}break;case C9$.State.INFO_ARG:switch(Q){case C9$.cc.CR:this.drop=1;break;case C9$.cc.NL:{let X;if(this.argBuf)X=this.argBuf.bytes(),this.argBuf=void 0;else X=$.subarray(this.as,Z-this.drop);this.dispatcher.push({kind:C9$.Kind.INFO,data:X}),this.drop=0,this.as=Z+1,this.state=C9$.State.OP_START;break}default:if(this.argBuf)this.argBuf.writeByte(Q)}break;default:throw this.fail($.subarray(Z))}}if((this.state===C9$.State.MSG_ARG||this.state===C9$.State.MINUS_ERR_ARG||this.state===C9$.State.INFO_ARG)&&!this.argBuf)this.argBuf=new Ee0.DenoBuffer($.subarray(this.as,Z-this.drop));if(this.state===C9$.State.MSG_PAYLOAD&&!this.msgBuf){if(!this.argBuf)this.cloneMsgArg();this.msgBuf=new Ee0.DenoBuffer($.subarray(this.as))}}cloneMsgArg(){let $=this.ma.subject.length,Z=this.ma.reply?this.ma.reply.length:0,Q=new Uint8Array($+Z);if(Q.set(this.ma.subject),this.ma.reply)Q.set(this.ma.reply,$);if(this.argBuf=new Ee0.DenoBuffer(Q),this.ma.subject=Q.subarray(0,$),this.ma.reply)this.ma.reply=Q.subarray($)}processMsgArgs($){if(this.hdr>=0)return this.processHeaderMsgArgs($);let Z=[],Q=-1;for(let X=0;X<$.length;X++)switch($[X]){case C9$.cc.SPACE:case C9$.cc.TAB:case C9$.cc.CR:case C9$.cc.NL:if(Q>=0)Z.push($.subarray(Q,X)),Q=-1;break;default:if(Q<0)Q=X}if(Q>=0)Z.push($.subarray(Q));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],Fu);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],Fu);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}: ${ze0.TD.decode($)}`)}processHeaderMsgArgs($){let Z=[],Q=-1;for(let X=0;X<$.length;X++)switch($[X]){case C9$.cc.SPACE:case C9$.cc.TAB:case C9$.cc.CR:case C9$.cc.NL:if(Q>=0)Z.push($.subarray(Q,X)),Q=-1;break;default:if(Q<0)Q=X}if(Q>=0)Z.push($.subarray(Q));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],Fu),this.ma.size=this.protoParseInt(Z[3],Fu);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],Fu),this.ma.size=this.protoParseInt(Z[4],Fu);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 Q=0;for(let X=0;X<$.length;X++){if($[X]<k9$||$[X]>U34)return-1;Q=Q*10+($[X]-k9$)}return Z!==void 0&&Q>Z?-1:Q}}C9$.Parser=S9$;C9$.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};C9$.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 xJ0=v((v9$)=>{Object.defineProperty(v9$,"__esModule",{value:!0});v9$.MsgHdrsImpl=void 0;v9$.canonicalMIMEHeaderKey=Te0;v9$.headers=O34;var _9$=sJ(),XW=nD(),vJ0=eJ();function Te0($){let F=!0,U=Array($.length);for(let N=0;N<$.length;N++){let B=$.charCodeAt(N);if(B===58||B<33||B>126)throw vJ0.InvalidArgumentError.format("header",`'${$[N]}' is not a valid character in a header name`);if(F&&97<=B&&B<=122)B-=32;else if(!F&&65<=B&&B<=90)B+=32;U[N]=B,F=B==45}return String.fromCharCode(...U)}function O34($=0,Z=""){if($===0&&Z!=="")throw vJ0.InvalidArgumentError.format("code","is required");else if($>0&&Z==="")throw vJ0.InvalidArgumentError.format("description","is required");return new Uu($,Z)}var Ae0="NATS/1.0";class Uu{_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,Q]of this.headers){let X=$.values(Z);if(Q.length!==X.length)return!1;let Y=[...Q].sort(),J=[...X].sort();for(let G=0;G<Y.length;G++)if(Y[G]!==J[G])return!1}return!0}return!1}static decode($){let Z=new Uu,X=_9$.TD.decode($).split(`\r
|
|
2081
2081
|
`),Y=X[0];if(Y!==Ae0){let J=Y.replace(Ae0,"").trim();if(J.length>0){if(Z._code=parseInt(J,10),isNaN(Z._code))Z._code=0;let G=Z._code.toString();J=J.replace(G,""),Z._description=J.trim()}}if(X.length>=1)X.slice(1).map((J)=>{if(J){let G=J.indexOf(":");if(G>-1){let K=J.slice(0,G),W=J.slice(G+1).trim();Z.append(K,W)}}});return Z}toString(){if(this.headers.size===0&&this._code===0)return"";let $=Ae0;if(this._code>0&&this._description!=="")$+=` ${this._code} ${this._description}`;for(let[Z,Q]of this.headers)for(let X=0;X<Q.length;X++)$=`${$}\r
|
|
2082
2082
|
${Z}: ${Q[X]}`;return`${$}\r
|
|
@@ -5294,7 +5294,7 @@ ${Z}`}:X)}}var HW8=D(()=>{x9()});async function ot6($,Z,Q){if(!$)return!1;let X=
|
|
|
5294
5294
|
AND date >= {since:Date} AND date <= {until:Date}
|
|
5295
5295
|
GROUP BY ${X}
|
|
5296
5296
|
ORDER BY pageviews DESC
|
|
5297
|
-
LIMIT 50`,{slug:$,since:Z,until:Q})).map((J)=>({key:J.key,pageviews:Number(J.pageviews),visitors:Number(J.visitors)}))}async function pF8($){let{since:Z,until:Q}=nF8(90),X=await tF8($,Z,Q);return[...new Set(X.map(ad))]}async function Mv0($){let Z=$.get("studioContext");if(!tP(Z))return $.json({error:"Unauthorized"},401);let Q=n(Z),X=$.req.param("site");if(!X)return $.json({error:"site is required"},400);let Y=X.toLowerCase();if(!await Z.storage.orgSites.isOwnedBy(Y,Q.id))return $.json({error:"Site not found in organization"},404);if(!await lG(Z,Q.id,"monitoring"))return $.json({error:"This organization's plan does not include monitoring",code:"feature_not_in_plan"},403);return{slug:Y}}var ca6,ma6,dF8,fK="site_id IN (SELECT id FROM default.dim_sites WHERE name = {slug:String})",aa6,$s6="https://deco.lilstts.com/plausible",Zs6=12000,Qs6,oF8=()=>{let $=new Z1;return $.get("/:site/cdn/data",async(Z)=>{let Q=await Mv0(Z);if(Q instanceof Response)return Q;if(!NO())return Z.json({available:!1,error:"Monitor is not configured"});let X=Z.req.query("view")??"summary";if(!ca6.has(X))return Z.json({error:`unknown or unavailable view: ${X}`},400);let Y=Z.req.query("range")??"7d",J=Yz1(Y,Z.req.query("since"),Z.req.query("until"));if(!J)return Z.json({error:`unknown range: ${Y}`},400);let{slug:G}=Q,{since:K,until:W}=J,H=iF8(Z.req.query("filters"));try{let F;switch(X){case"summary":F=await ia6(G,K,W,H);break;case"timeline":F=await pa6(G,K,W,J.granularity,H);break;case"cache-status":F=await na6(G,K,W,H);break;case"status-codes":F=await ta6(G,K,W,H);break;case"top-paths":F=await oa6(G,K,W,Z.req.query("groupByPath")==="1",H);break;case"top-countries":F=await ra6(G,K,W,H);break}return Z.json({available:!0,view:X,range:Y,data:F})}catch(F){return console.error(`[monitor] cdn ${X} query failed for site="${G}":`,F),Z.json({error:"Failed to query monitor warehouse"},502)}}),$.get("/:site/audience/data",async(Z)=>{let Q=await Mv0(Z);if(Q instanceof Response)return Q;if(!NO())return Z.json({available:!1,error:"Monitor is not configured"});let X=Z.req.query("view")??"summary";if(!aa6.has(X))return Z.json({error:`unknown or unavailable view: ${X}`},400);let Y=Z.req.query("range")??"7d",J=Yz1(Y,Z.req.query("since"),Z.req.query("until"));if(!J)return Z.json({error:`unknown range: ${Y}`},400);let{slug:G}=Q,{since:K,until:W}=J;try{let H;switch(X){case"summary":H=await sa6(G,K,W);break;case"timeline":H=await ea6(G,K,W);break;case"top-sources":H=await Jz1(G,K,W,"utm_source");break;case"top-countries":H=await Jz1(G,K,W,"country");break;case"devices":H=await Jz1(G,K,W,"device_type");break}return Z.json({available:!0,view:X,range:Y,data:H})}catch(H){return console.error(`[monitor] audience ${X} query failed for site="${G}":`,H),Z.json({error:"Failed to query monitor warehouse"},502)}}),$.get("/:site/hosts",async(Z)=>{let Q=await Mv0(Z);if(Q instanceof Response)return Q;let{slug:X}=Q;if(!NO())return Z.json({available:!1,hosts:[]});try{let Y=await pF8(X);return Z.json({available:!0,hosts:Y})}catch(Y){return console.error(`[monitor] hosts failed for site="${X}":`,Y),Z.json({available:!0,hosts:[]})}}),$.get("/:site/onedollar",async(Z)=>{let Q=await Mv0(Z);if(Q instanceof Response)return Q;let{slug:X}=Q,Y=E0().oneDollarStatsApiKey;if(!Y)return Z.json({available:!1,error:"OneDollarStats not configured"});let J=Z.req.query("report")??"kpis",G=Qs6[J];if(!G)return Z.json({error:`unknown report: ${J}`},400);let K=Z.req.query("range")??"7d",W=Yz1(K,Z.req.query("since"),Z.req.query("until"));if(!W)return Z.json({error:`unknown range: ${K}`},400);let H=await pF8(X),F=Z.req.query("host"),U=F&&H.includes(F)?F:H[0];if(!U)return Z.json({available:!0,report:J,range:K,results:[]});let{since:N,until:B}=W,O=J==="timeseries"?W.granularity==="hourly"?"time:hour":"time:day":G.dimension,L={page:"event:page",source:"visit:referrer",referrer:"visit:referrer",country:"visit:country",browser:"visit:browser",os:"visit:os",device:"visit:device",utm_campaign:"visit:utm_campaign",utm_source:"visit:utm_source",utm_medium:"visit:utm_medium",utm_content:"visit:utm_content",utm_term:"visit:utm_term"},w={equals:"is",not_equals:"is_not",contains:"contains",not_contains:"contains_not"},j=iF8(Z.req.query("filters")).map((z)=>{let P=L[z.field],A=w[z.op];return P&&A?[A,P,[z.value]]:null}).filter(Boolean),E=async(z)=>{let P=await fetch($s6,{method:"POST",headers:{"Content-Type":"application/json","x-api-key":Y,Accept:"application/json"},body:JSON.stringify({site_id:U,metrics:G.metrics,date_range:z,...O?{dimensions:[O]}:{},...G.order?{order_by:[[G.order,"desc"]]}:{},...j.length?{filters:j}:{},pagination:{limit:100,offset:0}}),signal:AbortSignal.timeout(Zs6)});if(!P.ok)throw Error(`OneDollarStats ${P.status}`);return(await P.json().catch(()=>null))?.results??[]};try{let z=await E([N,B]),P;if(J==="kpis"||J==="timeseries"&&Z.req.query("compare")==="1"){let q=Date.parse(`${N}T00:00:00Z`),V=86400000,M=Iv0(new Date(q-86400000)),C=Iv0(new Date(q-W.days*86400000));P=await E([C,M]).catch(()=>{return})}return Z.json({available:!0,report:J,range:K,host:U,metrics:G.metrics,results:z,...P?{previous:P}:{}})}catch(z){return console.error(`[monitor] onedollar ${J} failed for host="${U}":`,z),Z.json({error:"Failed to reach OneDollarStats"},502)}}),$};var rF8=D(()=>{c$();t1();MF();$k0();Zk0();ca6=new Set(["summary","timeline","cache-status","status-codes","top-paths","top-countries"]),ma6={today:{days:1,granularity:"hourly"},yesterday:{days:1,granularity:"hourly",endOffsetDays:1},"7d":{days:7,granularity:"daily"},"14d":{days:14,granularity:"daily"},"30d":{days:30,granularity:"daily"},"90d":{days:90,granularity:"daily"},"180d":{days:180,granularity:"daily"},"1y":{days:365,granularity:"daily"}};dF8=/^\d{4}-\d{2}-\d{2}$/;aa6=new Set(["summary","timeline","top-sources","top-countries","devices"]);Qs6={kpis:{metrics:["visitors","visits","pageviews","bounce_rate","visit_duration"]},timeseries:{metrics:["pageviews","visits","visitors","bounce_rate","visit_duration"]},pages:{metrics:["pageviews","visitors"],dimension:"event:page",order:"pageviews"},sources:{metrics:["visitors"],dimension:"visit:referrer",order:"visitors"},countries:{metrics:["visitors"],dimension:"visit:country",order:"visitors"},browsers:{metrics:["visitors"],dimension:"visit:browser",order:"visitors"},os:{metrics:["visitors"],dimension:"visit:os",order:"visitors"},devices:{metrics:["visitors"],dimension:"visit:device",order:"visitors"},events:{metrics:["visitors","events"],dimension:"event:name",order:"events"},utm_campaign:{metrics:["visitors","events"],dimension:"visit:utm_campaign",order:"events"},utm_source:{metrics:["visitors","events"],dimension:"visit:utm_source",order:"events"},utm_medium:{metrics:["visitors","events"],dimension:"visit:utm_medium",order:"events"},utm_content:{metrics:["visitors","events"],dimension:"visit:utm_content",order:"events"},utm_term:{metrics:["visitors","events"],dimension:"visit:utm_term",order:"events"}}});import{timingSafeEqual as Xs6}from"crypto";function tU($){let Q=$?.match(/^Bearer\s+(.+)$/i)?.[1]?.trim();return Q?Q:null}function L60($,Z){let Q=Buffer.from($),X=Buffer.from(Z);return Q.length===X.length&&Xs6(Q,X)}function qE($){let Z=process.env.VAULT_SERVICE_TOKEN;return!!Z&&L60($,Z)}function aF8($){if(!$)return null;return $ instanceof Date?$.toISOString():$}function Ys6($){if(!$)return[];if(Array.isArray($))return $.filter((Z)=>typeof Z==="string");if(typeof $!=="string")return[];try{let Z=JSON.parse($);return Array.isArray(Z)?Z.filter((Q)=>typeof Q==="string"):[]}catch{return[]}}async function sF8($,Z,Q){let X=tU($.req.header("authorization"));if(!X)return{ok:!1,response:$.json({error:"Unauthorized"},401)};let Y=$.get("studioContext"),J=Y.organization?.id;if(!J)return{ok:!1,response:$.json({error:"Organization context required"},403)};if(qE(X))return{ok:!0,ctx:Y,organizationId:J};let G=await Y.storage.connectionCredentialVault.authenticateWorkloadToken(X);if(!G||G.organizationId!==J)return{ok:!1,response:$.json({error:"Unauthorized"},401)};let K=await Y.storage.connections.findById(G.subjectConnectionId,J);if(!K||K.status!=="active")return{ok:!1,response:$.json({error:"Unauthorized"},401)};if(!await Y.storage.connectionCredentialVault.hasGrant({organizationId:J,subjectConnectionId:G.subjectConnectionId,targetConnectionId:Z,scope:Q}))return{ok:!1,response:$.json({error:"Forbidden"},403)};return{ok:!0,ctx:Y,organizationId:J}}var eF8=()=>{let $=new Z1;return $.post("/vault/connections/batch",async(Z)=>{let Q=tU(Z.req.header("authorization"));if(!Q||!qE(Q))return Z.json({error:"Unauthorized"},401);let X=Z.get("studioContext"),Y=X.organization?.id;if(!Y)return Z.json({error:"Organization context required"},403);let J=await Z.req.json().catch(()=>null),G=Array.isArray(J?.connectionIds)?[...new Set(J.connectionIds)].filter((B)=>typeof B==="string"&&B.length>0):[];if(G.length===0||G.length>20)return Z.json({error:"connectionIds must be a non-empty string array (max 20)"},400);let{items:K}=await X.storage.connections.list(Y,{includeVirtual:!0,where:{field:["id"],operator:"in",value:G},limit:G.length}),W=new Map(K.map((B)=>[B.id,B])),H=new Set((await X.db.selectFrom("downstream_tokens").select("connectionId").where("connectionId","in",G).execute()).map((B)=>B.connectionId)),F=new Map((await X.db.selectFrom("connections").select(["id","configuration_state","connection_token"]).where("id","in",G).where("organization_id","=",Y).execute()).map((B)=>[B.id,B])),U=new p5(X.db,X.vault),N={};return await Promise.all(G.map(async(B)=>{try{let O=W.get(B);if(!O||O.status!=="active"){N[B]={error:"Connection not found"};return}if(F.get(B)?.configuration_state&&!O.configuration_state){N[B]={error:"MCP configuration could not be decrypted"};return}let L={type:"mcp_configuration",state:O.configuration_state??{},scopes:O.configuration_scopes??[]},w=null;if(H.has(B)){let j=await C3({connectionId:B,connectionUrl:O.connection_url,tokenStorage:U});if(j.state==="valid"||j.state==="refreshed"){let E=await U.get(B);w={type:"oauth_access_token",tokenType:"Bearer",accessToken:j.accessToken,expiresAt:aF8(E?.expiresAt??null),scope:E?.scope??null}}}else if(O.connection_token)w={type:"static_token",tokenType:"Bearer",accessToken:O.connection_token,expiresAt:null,scope:null};else if(F.get(B)?.connection_token){N[B]={error:"Connection token could not be decrypted"};return}N[B]={configuration:L,accessToken:w}}catch(O){N[B]={error:O instanceof Error?O.message:String(O)}}})),Z.header("Cache-Control","no-store"),Z.header("Pragma","no-cache"),Z.json(N)}),$.post("/vault/connections/:connectionId/access-token",async(Z)=>{let Q=Z.req.param("connectionId"),X=await sF8(Z,Q,nW0);if(!X.ok)return X.response;let{ctx:Y,organizationId:J}=X,G=await Y.storage.connections.findById(Q,J);if(!G||G.status!=="active")return Z.json({error:"Connection not found"},404);let K=new p5(Y.db,Y.vault),W=await C3({connectionId:Q,connectionUrl:G.connection_url,tokenStorage:K});if(W.state==="missing"){if(G.connection_token)return Z.header("Cache-Control","no-store"),Z.header("Pragma","no-cache"),Z.json({type:"static_token",tokenType:"Bearer",accessToken:G.connection_token,expiresAt:null,scope:null});if((await Y.db.selectFrom("connections").select("connection_token").where("id","=",Q).where("organization_id","=",J).executeTakeFirst())?.connection_token)return Z.json({error:"Connection token could not be decrypted"},424);return Z.json({error:"Downstream token not found"},409)}if(W.state==="expired_without_refresh"||W.state==="refresh_failed")return Z.json({error:"Downstream token refresh failed"},424);let H=await K.get(Q);return Z.header("Cache-Control","no-store"),Z.header("Pragma","no-cache"),Z.json({type:"oauth_access_token",tokenType:"Bearer",accessToken:W.accessToken,expiresAt:aF8(H?.expiresAt??null),scope:H?.scope??null})}),$.post("/vault/connections/:connectionId/configuration",async(Z)=>{let Q=Z.req.param("connectionId"),X=await sF8(Z,Q,tW0);if(!X.ok)return X.response;let{ctx:Y,organizationId:J}=X,G=await Y.db.selectFrom("connections").select(["status","configuration_state","configuration_scopes"]).where("id","=",Q).where("organization_id","=",J).executeTakeFirst();if(!G||G.status!=="active")return Z.json({error:"Connection not found"},404);let K={};if(G.configuration_state)try{let W=await Y.vault.decrypt(G.configuration_state),H=JSON.parse(W);if(typeof H!=="object"||H===null||Array.isArray(H))throw Error("MCP configuration state is not an object");K=H}catch{return Z.json({error:"MCP configuration could not be decrypted"},424)}return Z.header("Cache-Control","no-store"),Z.header("Pragma","no-cache"),Z.json({type:"mcp_configuration",state:K,scopes:Ys6(G.configuration_scopes)})}),$};var py=D(()=>{c$();YK();oW0();tW()});import{createHmac as Js6}from"crypto";import{mkdir as Gs6,writeFile as Ks6}from"fs/promises";import{dirname as Ws6,join as QU8}from"path";function Fs6($){let Z=$.replace(/[^a-zA-Z0-9_-]/g,"_");return QU8(Hs6,Z)}function $U8($,Z){let Q=Fs6($),X=EG(Z);return QU8(Q,X)}function ZU8($,Z,Q,X,Y){let J=E0().encryptionKey||"dev-secret",G=`${$}:${Z}:${Q}:${X}`,K=Js6("sha256",J).update(G).digest("hex");return L60(Y,K)}function Gz1($){let Z=$.split(".").pop()?.toLowerCase()||"";return{jpg:"image/jpeg",jpeg:"image/jpeg",png:"image/png",gif:"image/gif",webp:"image/webp",svg:"image/svg+xml",ico:"image/x-icon",bmp:"image/bmp",pdf:"application/pdf",json:"application/json",xml:"application/xml",txt:"text/plain",html:"text/html",htm:"text/html",css:"text/css",csv:"text/csv",md:"text/markdown",js:"application/javascript",mjs:"application/javascript",ts:"application/typescript",mp4:"video/mp4",webm:"video/webm",avi:"video/x-msvideo",mov:"video/quicktime",mp3:"audio/mpeg",wav:"audio/wav",ogg:"audio/ogg",zip:"application/zip",gz:"application/gzip",tar:"application/x-tar",woff:"font/woff",woff2:"font/woff2",ttf:"font/ttf",otf:"font/otf"}[Z]||"application/octet-stream"}var Hs6="./data/assets",Vv0=($)=>{let Z=new Z1,Q=$.orgFromPath?"/*":"/:orgId/*";return Z.get(Q,async(X)=>{let Y=$.orgFromPath?X.get("studioContext")?.organization?.id:X.req.param("orgId");if(!Y)return X.json({error:"Missing organization context"},500);let J=$.orgFromPath?`/api/${X.req.param("org")??""}/dev-assets/`:`/api/dev-assets/${Y}/`,G=X.req.path.replace(J,"");if(!G)return X.json({error:"Missing key"},400);let K=X.req.query("expires"),W=X.req.query("signature"),H=X.req.query("method");if(!K||!W||H!=="GET")return X.json({error:"Invalid or missing signature parameters"},400);let F=parseInt(K,10);if(!Number.isFinite(F))return X.json({error:"Invalid expires parameter"},400);let U=Math.floor(Date.now()/1000);if(F<U)return X.json({error:"URL has expired"},403);if(!ZU8(Y,G,F,"GET",W))return X.json({error:"Invalid signature"},403);let N=$U8(Y,G);try{let B=Bun.file(N);if(!await B.exists())return X.json({error:"File not found"},404);let L=Gz1(G);return new Response(B.stream(),{headers:{"Content-Type":L,"Content-Length":B.size.toString(),"Cache-Control":"private, max-age=3600"}})}catch(B){return console.error("Error serving file:",B),X.json({error:"Failed to read file"},500)}}),Z.put(Q,async(X)=>{let Y=$.orgFromPath?X.get("studioContext")?.organization?.id:X.req.param("orgId");if(!Y)return X.json({error:"Missing organization context"},500);let J=$.orgFromPath?`/api/${X.req.param("org")??""}/dev-assets/`:`/api/dev-assets/${Y}/`,G=X.req.path.replace(J,"");if(!G)return X.json({error:"Missing key"},400);let K=X.req.query("expires"),W=X.req.query("signature"),H=X.req.query("method");if(!K||!W||H!=="PUT")return X.json({error:"Invalid or missing signature parameters"},400);let F=parseInt(K,10);if(!Number.isFinite(F))return X.json({error:"Invalid expires parameter"},400);let U=Math.floor(Date.now()/1000);if(F<U)return X.json({error:"URL has expired"},403);if(!ZU8(Y,G,F,"PUT",W))return X.json({error:"Invalid signature"},403);let N=$U8(Y,G),B=Ws6(N);try{await Gs6(B,{recursive:!0});let O=await X.req.arrayBuffer();return await Ks6(N,Buffer.from(O)),X.json({success:!0,key:G})}catch(O){return console.error("Error saving file:",O),X.json({error:"Failed to save file"},500)}}),Z};var kv0=D(()=>{c$();t1();rK();py()});function XU8($,Z,Q){if(!["127.0.0.1","::1","::ffff:127.0.0.1"].includes($??""))return!1;try{let X=new URL(Q);return["http:","https:"].includes(X.protocol)&&["localhost","127.0.0.1","[::1]"].includes(X.hostname)&&Z===X.origin}catch{return!1}}function Kz1($){let Z=new URL(Us6);if(Z.searchParams.set("client_id",$.clientId),Z.searchParams.set("redirect_uri",$.redirectUri),Z.searchParams.set("state",$.state),$.selectAccount)Z.searchParams.set("prompt","select_account");return Z.toString()}function Ns6($,Z=200){let Q=$!==null&&typeof $==="object"?$:{};if(typeof Q.error==="string"){let X=typeof Q.error_description==="string"?` (${Q.error_description})`:"";throw new b0({provider:"github",status:400,message:`GitHub OAuth code exchange failed: ${Q.error}${X}`})}if(typeof Q.access_token!=="string"||Q.access_token.length===0)throw new b0({provider:"github",status:Z,message:"GitHub OAuth code exchange returned no access token"});return{accessToken:Q.access_token,refreshToken:typeof Q.refresh_token==="string"&&Q.refresh_token.length>0?Q.refresh_token:null,expiresIn:typeof Q.expires_in==="number"&&Number.isFinite(Q.expires_in)?Q.expires_in:null,scope:typeof Q.scope==="string"&&Q.scope.length>0?Q.scope:null,tokenEndpoint:YU8}}async function JU8($){let Z;try{let Y=process.env.GITHUB_OAUTH_TOKEN_URL??YU8;Z=await fetch(Y,{method:"POST",headers:{Accept:"application/json","Content-Type":"application/json"},body:JSON.stringify({client_id:$.clientId,client_secret:$.clientSecret,code:$.code,redirect_uri:$.redirectUri}),signal:AbortSignal.timeout(nY1)})}catch(Y){throw new b0({provider:"github",status:0,message:`GitHub OAuth code exchange failed: ${Y instanceof Error?Y.message:String(Y)}`,cause:Y})}let Q=await Z.text();if(!Z.ok)throw new b0({provider:"github",status:Z.status,message:`GitHub OAuth code exchange failed: ${Z.status} ${Q.slice(0,300)}`});let X;try{X=JSON.parse(Q)}catch(Y){throw new b0({provider:"github",status:Z.status,message:`GitHub OAuth code exchange returned invalid JSON: ${Q.slice(0,300)}`,cause:Y})}return Ns6(X,Z.status)}var Us6="https://github.com/login/oauth/authorize",YU8="https://github.com/login/oauth/access_token";var GU8=D(()=>{a6();Hj()});function KU8($){let Z=new URL(`https://${gB}/site/oauth2/authorize`);return Z.searchParams.set("client_id",$.clientId),Z.searchParams.set("redirect_uri",$.redirectUri),Z.searchParams.set("response_type","code"),Z.searchParams.set("state",$.state),Z.toString()}function Bs6(){return`https://${gB}/site/oauth2/access_token`}async function WU8($){let Z=Bs6(),Q=new URLSearchParams({grant_type:"authorization_code",client_id:$.clientId,client_secret:$.clientSecret,code:$.code,redirect_uri:$.redirectUri}),X;try{X=await fetch(Z,{method:"POST",headers:{Accept:"application/json","Content-Type":"application/x-www-form-urlencoded"},body:Q,signal:AbortSignal.timeout(Os6)})}catch(J){throw new b0({provider:"bitbucket",status:0,message:`Bitbucket token exchange failed: ${Ds6(J)}`,cause:J})}let Y=await X.json().catch(()=>null);if(!X.ok||!Y||typeof Y.error==="string"){let J=Y&&typeof Y.error_description==="string"?Y.error_description:Y&&typeof Y.error==="string"?Y.error:X.statusText;throw new b0({provider:"bitbucket",status:X.status,message:`Bitbucket token exchange failed (${X.status}): ${J}`})}if(typeof Y.access_token!=="string"||!Y.access_token)throw new b0({provider:"bitbucket",status:X.status,message:"Bitbucket token exchange returned no access_token"});return{accessToken:Y.access_token,refreshToken:typeof Y.refresh_token==="string"&&Y.refresh_token?Y.refresh_token:null,expiresIn:typeof Y.expires_in==="number"&&Number.isFinite(Y.expires_in)?Y.expires_in:null,scope:typeof Y.scopes==="string"?Y.scopes:null,tokenEndpoint:Z}}function Ds6($){return $ instanceof Error?$.message:String($)}var Os6=15000;var HU8=D(()=>{a6();ym()});function FU8($){let Z=new URL(`https://${$.host}/oauth/authorize`);return Z.searchParams.set("client_id",$.clientId),Z.searchParams.set("redirect_uri",$.redirectUri),Z.searchParams.set("response_type","code"),Z.searchParams.set("state",$.state),Z.searchParams.set("scope",($.scopes??Ls6).join(" ")),Z.toString()}function ws6($){return`https://${$}/oauth/token`}async function UU8($){let Z=ws6($.host),Q=new URLSearchParams({grant_type:"authorization_code",client_id:$.clientId,client_secret:$.clientSecret,code:$.code,redirect_uri:$.redirectUri}),X;try{X=await fetch(Z,{method:"POST",headers:{Accept:"application/json","Content-Type":"application/x-www-form-urlencoded"},body:Q,signal:AbortSignal.timeout(js6)})}catch(J){throw new b0({provider:"gitlab",status:0,message:`GitLab token exchange failed: ${Es6(J)}`,cause:J})}let Y=await X.json().catch(()=>null);if(!X.ok||!Y||typeof Y.error==="string"){let J=Y&&typeof Y.error_description==="string"?Y.error_description:Y&&typeof Y.error==="string"?Y.error:X.statusText;throw new b0({provider:"gitlab",status:X.status,message:`GitLab token exchange failed (${X.status}): ${J}`})}if(typeof Y.access_token!=="string"||!Y.access_token)throw new b0({provider:"gitlab",status:X.status,message:"GitLab token exchange returned no access_token"});return{accessToken:Y.access_token,refreshToken:typeof Y.refresh_token==="string"&&Y.refresh_token?Y.refresh_token:null,expiresIn:typeof Y.expires_in==="number"&&Number.isFinite(Y.expires_in)?Y.expires_in:null,scope:typeof Y.scope==="string"?Y.scope:null,tokenEndpoint:Z}}function Es6($){return $ instanceof Error?$.message:String($)}var Ls6,js6=15000;var NU8=D(()=>{a6();Ls6=["api","read_user"]});import{z as CO}from"zod";function w60($){if(!$)return"/";if(!$.startsWith("/")||$.startsWith("//")||$.includes("\\")||/[\r\n\t]/.test($))return"/";return $}function zs6($){if($.htmlUrl)return $.htmlUrl;return`https://github.com${$.accountType==="Organization"?`/organizations/${encodeURIComponent($.login)}/settings/installations/${$.installationId}`:`/settings/installations/${$.installationId}`}`}function ny($){return`${N5()}/api/_git/${$}/callback`}function IX($,Z){let Q=new URL($,N5());if(Q.searchParams.delete("git_error"),Z)Q.searchParams.set("git_error",Z);return Q.toString()}async function Sv0($,Z){let Q=$.organization?.id,X=$.auth.user?.id;if(!Q||!X)throw Error("Session with an organization is required");return $.storage.gitProviderOAuthStates.create({organizationId:Q,userId:X,...Z})}async function Cv0($,Z,Q){if(!Q)return{ok:!1,error:"missing_state",returnTo:"/"};let X=await $.storage.gitProviderOAuthStates.consume(Q);if(!X||X.provider!==Z)return{ok:!1,error:"invalid_state",returnTo:"/"};let Y=w60(X.returnTo);if($.auth.user?.id!==X.userId)return{ok:!1,error:"session_mismatch",returnTo:Y};return{ok:!0,state:X,returnTo:Y}}var BU8=()=>{let $=new Z1;return $.post("/git-providers/github/cli/connect",async(Z)=>{if(!AT())return Z.json({error:"GitHub CLI requires local mode"},403);let Q;try{Q=W60(Z).remote.address}catch{}if(!XU8(Q,Z.req.header("Origin"),N5()))return Z.json({error:"GitHub CLI requires a local, same-origin request"},403);let X=Z.get("studioContext");if(!X.auth.user||!X.organization)return Z.json({error:"Unauthorized"},401);try{await X.access.check("GIT_ACCOUNT_CONNECT_TOKEN")}catch(G){if(G instanceof q7)return Z.json({error:"Forbidden"},403);throw G}if(Z.header("Cache-Control","no-store"),!Z.req.header("Content-Type")?.startsWith("application/json"))return Z.json({error:"Invalid content type"},415);let Y;try{Y=await hk$()}catch{return Z.json({error:"Could not connect to GitHub CLI. Install gh and run gh auth login --hostname github.com, then try again."},400)}let J=await X.storage.gitProviderAccounts.upsert({organizationId:X.organization.id,type:"github",host:"github.com",authKind:"github_cli",...Y,createdBy:X.auth.user.id});return Z.json({account:{id:J.id,login:J.login}})}),$.get("/git-providers/github/connect",async(Z)=>{let Q=Z.get("studioContext");if(!Q.auth.user)return Z.json({error:"Unauthorized"},401);await Q.access.check("GIT_ACCOUNT_CONNECT_TOKEN");let X=Yj();if(!X)return Z.json({error:"GitHub App is not configured"},503);let Y=await Sv0(Q,{provider:"github",host:"github.com",returnTo:w60(Z.req.query("returnTo"))});return Z.redirect(Kz1({clientId:X.clientId,redirectUri:ny("github"),state:Y,selectAccount:!0}))}),$.get("/git-providers/github/install",async(Z)=>{let Q=Z.get("studioContext");if(!Q.auth.user)return Z.json({error:"Unauthorized"},401);await Q.access.check("GIT_ACCOUNT_CONNECT_TOKEN");let X=Yj();if(!X)return Z.json({error:"GitHub App is not configured"},503);let Y=await Sv0(Q,{provider:"github",host:"github.com",returnTo:w60(Z.req.query("returnTo"))}),J=new URL(`https://github.com/apps/${encodeURIComponent(X.slug)}/installations/new`);return J.searchParams.set("state",Y),Z.redirect(J.toString())}),$.get("/git-providers/github/flows/:id",async(Z)=>{let Q=Z.get("studioContext");if(!Q.auth.user||!Q.organization)return Z.json({error:"Unauthorized"},401);await Q.access.check("GIT_ACCOUNT_CONNECT_TOKEN"),Z.header("Cache-Control","no-store");let X={organizationId:Q.organization.id,userId:Q.auth.user.id},Y=await Q.storage.githubConnectFlows.get(Z.req.param("id"),X);if(!Y)return Z.json({error:"flow_expired"},410);let J=$H();if(!J)return Z.json({error:"not_configured"},503);try{let G=await J.listConnectableInstallations(Y.id,await Q.vault.decrypt(Y.encrypted_access_token));return Z.json({installations:G.map((K)=>({installationId:K.installationId,login:K.login,avatarUrl:K.avatarUrl,accountType:K.accountType})),expiresAt:Y.expires_at})}catch{return Z.json({error:"github_unavailable"},502)}}),$.get("/git-providers/github/flows/:id/repositories",async(Z)=>{let Q=Z.get("studioContext");if(!Q.auth.user||!Q.organization)return Z.json({error:"Unauthorized"},401);await Q.access.check("GIT_ACCOUNT_CONNECT_TOKEN"),Z.header("Cache-Control","no-store");let X=CO.object({installationId:CO.coerce.number().int().positive().safe(),page:CO.coerce.number().int().positive().safe().default(1),query:CO.string().trim().max(256).optional()}).safeParse(Z.req.query());if(!X.success)return Z.json({error:"Invalid installation"},400);let Y={organizationId:Q.organization.id,userId:Q.auth.user.id},J=await Q.storage.githubConnectFlows.get(Z.req.param("id"),Y);if(!J)return Z.json({error:"flow_expired"},410);let G=$H();if(!G)return Z.json({error:"not_configured"},503);try{let K=await Q.vault.decrypt(J.encrypted_access_token),W=await G.connectableInstallation(J.id,K,X.data.installationId);if(!W)return Z.json({error:"installation_forbidden"},403);let H=await G.delegableRepositories(J.id,K,W.installationId),F=await Q.storage.gitProviderAccounts.findByExternalId({organizationId:Y.organizationId,host:"github.com",externalAccountId:String(W.installationId)});return Z.json({...Sk$(H,X.data.page,X.data.query),accountVersion:oj1(F)})}catch{return Z.json({error:"github_unavailable"},502)}}),$.post("/git-providers/github/flows/:id",async(Z)=>{let Q=Z.get("studioContext");if(!Q.auth.user||!Q.organization)return Z.json({error:"Unauthorized"},401);if(await Q.access.check("GIT_ACCOUNT_CONNECT_TOKEN"),Z.header("Cache-Control","no-store"),!Z.req.header("Content-Type")?.startsWith("application/json"))return Z.json({error:"Invalid content type"},415);let X=CO.object({installationId:CO.number().int().positive().safe(),repositoryIds:CO.array(CO.number().int().positive().safe()).min(1).max(QN0).refine((H)=>new Set(H).size===H.length),accountVersion:CO.string().max(200).nullable()}).safeParse(await Z.req.json().catch(()=>null));if(!X.success)return Z.json({error:"Invalid installation"},400);let Y={organizationId:Q.organization.id,userId:Q.auth.user.id},J=await Q.storage.githubConnectFlows.get(Z.req.param("id"),Y);if(!J)return Z.json({error:"flow_expired"},410);let G=$H();if(!G)return Z.json({error:"not_configured"},503);let K,W;try{let H=await Q.vault.decrypt(J.encrypted_access_token);if(K=await G.connectableInstallation(J.id,H,X.data.installationId,{fresh:!0}),!K)return Z.json({error:"installation_forbidden"},403);let F=await G.delegableRepositories(J.id,H,K.installationId,{fresh:!0});if(!Ck$(F,X.data.repositoryIds))return Z.json({error:"repositories_forbidden"},403);W=await G.connectingUserId(H)}catch{return Z.json({error:"github_unavailable"},502)}try{let H=await Q.storage.githubConnectFlows.connect(J.id,Y,{organizationId:Y.organizationId,type:"github",host:"github.com",authKind:"github_app",externalAccountId:String(K.installationId),login:K.login,avatarUrl:K.avatarUrl,installationId:K.installationId,installationAuthorizedBy:W,installationRepositoryIds:X.data.repositoryIds},X.data.accountVersion);if(!H)return Z.json({error:"flow_expired"},410);return G.forgetFlow(J.id),Z.json({account:{id:H.id,login:H.login}})}catch(H){if(H instanceof n_0)return Z.json({error:"account_changed"},409);throw H}}),$.delete("/git-providers/github/flows/:id",async(Z)=>{let Q=Z.get("studioContext");if(!Q.auth.user||!Q.organization)return Z.json({error:"Unauthorized"},401);return await Q.access.check("GIT_ACCOUNT_CONNECT_TOKEN"),await Q.storage.githubConnectFlows.cancel(Z.req.param("id"),{organizationId:Q.organization.id,userId:Q.auth.user.id}),$H()?.forgetFlow(Z.req.param("id")),Z.body(null,204)}),$.get("/git-providers/github/accounts/:id/manage",async(Z)=>{let Q=Z.get("studioContext");if(!Q.auth.user||!Q.organization)return Z.json({error:"Unauthorized"},401);await Q.access.check("GIT_ACCOUNT_CONNECT_TOKEN");let X=await Q.storage.gitProviderAccounts.get(Z.req.param("id"),Q.organization.id);if(!X||X.type!=="github"||!X.installationId)return Z.json({error:"Account not found"},404);let Y=$H();if(!Y)return Z.json({error:"not_configured"},503);let J=await Y.getInstallation(X.installationId);if(!J)return Z.json({error:"Installation not found"},404);return Z.redirect(zs6(J))}),$.get("/git-providers/gitlab/connect",async(Z)=>{let Q=Z.get("studioContext");if(!Q.auth.user)return Z.json({error:"Unauthorized"},401);await Q.access.check("GIT_ACCOUNT_CONNECT_TOKEN");let X=TN0(),Y=(Z.req.query("host")??X?.host??"gitlab.com").trim().toLowerCase();if(!X||X.host!==Y)return Z.json({error:`No GitLab OAuth application is configured for ${Y}. Connect with an access token instead.`},503);let J=await Sv0(Q,{provider:"gitlab",host:Y,returnTo:w60(Z.req.query("returnTo"))});return Z.redirect(FU8({host:Y,clientId:X.clientId,redirectUri:ny("gitlab"),state:J}))}),$.get("/git-providers/bitbucket/connect",async(Z)=>{let Q=Z.get("studioContext");if(!Q.auth.user)return Z.json({error:"Unauthorized"},401);await Q.access.check("GIT_ACCOUNT_CONNECT_TOKEN");let X=KN0();if(!X)return Z.json({error:"No Bitbucket OAuth consumer is configured. Connect with an access token instead."},503);let Y=await Sv0(Q,{provider:"bitbucket",host:X.host,returnTo:w60(Z.req.query("returnTo"))});return Z.redirect(KU8({clientId:X.clientId,redirectUri:ny("bitbucket"),state:Y}))}),$},Lp;var Wz1=D(()=>{c$();CE1();sF();BW();I5();XN0();aj1();sY1();JN0();GU8();Uj();ym();RT();HU8();NU8();Lp=new Z1;Lp.get("/github/callback",async($)=>{let Z=await PQ.create($.req.raw),Q=await Cv0(Z,"github",$.req.query("state"));if(!Q.ok)return $.redirect(IX(Q.returnTo,Q.error));let{returnTo:X,state:Y}=Q,J=Yj(),G=$H(),K=$.req.query("code");if(!J||!G)return $.redirect(IX(X,"not_configured"));if(!K)return $.redirect(IX(X,$.req.query("error")??"denied"));try{let W=await JU8({clientId:J.clientId,clientSecret:J.clientSecret,code:K,redirectUri:ny("github")}),H={organizationId:Y.organizationId,userId:Y.userId},F=new URL(X,N5()),U=F.searchParams.get("git_flow"),N=await Z.vault.encrypt(W.accessToken),B=U&&await Z.storage.githubConnectFlows.refresh(U,H,N)?U:await Z.storage.githubConnectFlows.create(H,N);return F.searchParams.delete("git_error"),F.searchParams.set("git_flow",B),$.redirect(F.toString())}catch(W){return console.error("[git-providers] github callback failed",{message:W instanceof Error?W.message:String(W)}),$.redirect(IX(X,"exchange_failed"))}});Lp.get("/github/setup",async($)=>{let Z=await PQ.create($.req.raw),Q=await Cv0(Z,"github",$.req.query("state"));if(!Q.ok)return $.redirect(IX(Q.returnTo,Q.error));let{returnTo:X,state:Y}=Q,J=Yj();if(!J)return $.redirect(IX(X,"not_configured"));let G=await Z.storage.gitProviderOAuthStates.create(Y);return $.redirect(Kz1({clientId:J.clientId,redirectUri:ny("github"),state:G}))});Lp.get("/gitlab/callback",async($)=>{let Z=await PQ.create($.req.raw),Q=await Cv0(Z,"gitlab",$.req.query("state"));if(!Q.ok)return $.redirect(IX(Q.returnTo,Q.error));let{returnTo:X,state:Y}=Q,{host:J}=Y,G=TN0(),K=$.req.query("code");if(!G||G.host!==J)return $.redirect(IX(X,"not_configured"));if(!K)return $.redirect(IX(X,$.req.query("error")??"denied"));try{let W=await UU8({host:J,clientId:G.clientId,clientSecret:G.clientSecret,code:K,redirectUri:ny("gitlab")}),H=await GN0(J,W.accessToken),F=await Z.storage.gitProviderAccounts.upsert({organizationId:Y.organizationId,type:"gitlab",host:J,authKind:"oauth",externalAccountId:H.externalAccountId,login:H.login,avatarUrl:H.avatarUrl,createdBy:Y.userId});return await Z.storage.gitProviderAccountCredentials.upsert({connectionId:F.id,accessToken:W.accessToken,refreshToken:W.refreshToken,scope:W.scope,expiresAt:W.expiresIn!==null?new Date(Date.now()+W.expiresIn*1000):null,clientId:G.clientId,clientSecret:G.clientSecret,tokenEndpoint:W.tokenEndpoint}),$.redirect(IX(X))}catch(W){return console.error("[git-providers] gitlab callback failed",{host:J,message:W instanceof Error?W.message:String(W)}),$.redirect(IX(X,"exchange_failed"))}});Lp.get("/bitbucket/callback",async($)=>{let Z=await PQ.create($.req.raw),Q=await Cv0(Z,"bitbucket",$.req.query("state"));if(!Q.ok)return $.redirect(IX(Q.returnTo,Q.error));let{returnTo:X,state:Y}=Q,{host:J}=Y,G=KN0(),K=$.req.query("code");if(!G||G.host!==J)return $.redirect(IX(X,"not_configured"));if(!K)return $.redirect(IX(X,$.req.query("error")??"denied"));try{let W=await WU8({clientId:G.clientId,clientSecret:G.clientSecret,code:K,redirectUri:ny("bitbucket")}),H=await WN0(J,W.accessToken),F=await Z.storage.gitProviderAccounts.upsert({organizationId:Y.organizationId,type:"bitbucket",host:J,authKind:"oauth",externalAccountId:H.externalAccountId,login:H.login,avatarUrl:H.avatarUrl,createdBy:Y.userId});return await Z.storage.gitProviderAccountCredentials.upsert({connectionId:F.id,accessToken:W.accessToken,refreshToken:W.refreshToken,scope:W.scope,expiresAt:W.expiresIn!==null?new Date(Date.now()+W.expiresIn*1000):null,clientId:G.clientId,clientSecret:G.clientSecret,tokenEndpoint:W.tokenEndpoint}),$.redirect(IX(X))}catch(W){return console.error("[git-providers] bitbucket callback failed",{host:J,message:W instanceof Error?W.message:String(W)}),$.redirect(IX(X,"exchange_failed"))}})});var E60=v((Ms6)=>{Ms6.HttpAuthLocation=void 0;(function($){$.HEADER="header",$.QUERY="query"})(Ms6.HttpAuthLocation||(Ms6.HttpAuthLocation={}));Ms6.HttpApiKeyAuthLocation=void 0;(function($){$.HEADER="header",$.QUERY="query"})(Ms6.HttpApiKeyAuthLocation||(Ms6.HttpApiKeyAuthLocation={}));Ms6.EndpointURLScheme=void 0;(function($){$.HTTP="http",$.HTTPS="https"})(Ms6.EndpointURLScheme||(Ms6.EndpointURLScheme={}));Ms6.AlgorithmId=void 0;(function($){$.MD5="md5",$.CRC32="crc32",$.CRC32C="crc32c",$.SHA1="sha1",$.SHA256="sha256"})(Ms6.AlgorithmId||(Ms6.AlgorithmId={}));var Ps6=($)=>{let Z=[];if($.sha256!==void 0)Z.push({algorithmId:()=>Ms6.AlgorithmId.SHA256,checksumConstructor:()=>$.sha256});if($.md5!=null)Z.push({algorithmId:()=>Ms6.AlgorithmId.MD5,checksumConstructor:()=>$.md5});return{addChecksumAlgorithm(Q){Z.push(Q)},checksumAlgorithms(){return Z}}},As6=($)=>{let Z={};return $.checksumAlgorithms().forEach((Q)=>{Z[Q.algorithmId()]=Q.checksumConstructor()}),Z},Ts6=($)=>{return Ps6($)},Rs6=($)=>{return As6($)};Ms6.FieldPosition=void 0;(function($){$[$.HEADER=0]="HEADER",$[$.TRAILER=1]="TRAILER"})(Ms6.FieldPosition||(Ms6.FieldPosition={}));var qs6="__smithy_context";Ms6.IniSectionType=void 0;(function($){$.PROFILE="profile",$.SSO_SESSION="sso-session",$.SERVICES="services"})(Ms6.IniSectionType||(Ms6.IniSectionType={}));Ms6.RequestHandlerProtocol=void 0;(function($){$.HTTP_0_9="http/0.9",$.HTTP_1_0="http/1.0",$.TDS_8_0="tds/8.0"})(Ms6.RequestHandlerProtocol||(Ms6.RequestHandlerProtocol={}));Ms6.SMITHY_CONTEXT_KEY=qs6;Ms6.getDefaultClientConfiguration=Ts6;Ms6.resolveDefaultRuntimeConfig=Rs6});var Cz1=v((J05)=>{var jz1=K0("crypto"),Dz1=K0("fs"),Ss6=q60(),Cs6=M60(),oU=K0("stream"),zU8=($)=>typeof ArrayBuffer==="function"&&$ instanceof ArrayBuffer||Object.prototype.toString.call($)==="[object ArrayBuffer]",Ep=($,Z=0,Q=$.byteLength-Z)=>{if(!zU8($))throw TypeError(`The "input" argument must be ArrayBuffer. Received type ${typeof $} (${$})`);return Buffer.from($,Z,Q)},fv0=($,Z)=>{if(typeof $!=="string")throw TypeError(`The "input" argument must be of type string. Received type ${typeof $} (${$})`);return Z?Buffer.from($,Z):Buffer.from($)},_s6=/^[A-Za-z0-9+/]*={0,2}$/,PU8=($)=>{if($.length*3%4!==0)throw TypeError("Incorrect padding on base64 string.");if(!_s6.exec($))throw TypeError("Invalid base64 string.");let Z=fv0($,"base64");return new Uint8Array(Z.buffer,Z.byteOffset,Z.byteLength)},bv0=($)=>{let Z=fv0($,"utf8");return new Uint8Array(Z.buffer,Z.byteOffset,Z.byteLength/Uint8Array.BYTES_PER_ELEMENT)},Tz1=($)=>{let Z;if(typeof $==="string")Z=bv0($);else Z=$;if(typeof Z!=="object"||typeof Z.byteOffset!=="number"||typeof Z.byteLength!=="number")throw Error("@smithy/util-base64: toBase64 encoder function only accepts string | Uint8Array.");return Ep(Z.buffer,Z.byteOffset,Z.byteLength).toString("base64")};function vs6($,Z,Q,X){return class Y extends Uint8Array{static fromString(J,G="utf-8"){if(typeof J==="string"){if(G==="base64")return Y.mutate(X(J));return Y.mutate(Z(J))}throw Error(`Unsupported conversion from ${typeof J} to Uint8ArrayBlobAdapter.`)}static mutate(J){return Object.setPrototypeOf(J,Y.prototype),J}transformToString(J="utf-8"){if(J==="base64")return Q(this);return $(this)}}}var AU8=($)=>{if(typeof $==="string")return $;if(typeof $!=="object"||typeof $.byteOffset!=="number"||typeof $.byteLength!=="number")throw Error("@smithy/util-utf8: toUtf8 encoder function only accepts string | Uint8Array.");return Ep($.buffer,$.byteOffset,$.byteLength).toString("utf8")},VX=Array.from({length:256},($,Z)=>Z.toString(16).padStart(2,"0"));function xs6($){if(typeof crypto<"u"&&typeof crypto.randomUUID==="function")return()=>crypto.randomUUID();return()=>{let Z=new Uint8Array(16);return $(Z),Z[6]=Z[6]&15|64,Z[8]=Z[8]&63|128,VX[Z[0]]+VX[Z[1]]+VX[Z[2]]+VX[Z[3]]+"-"+VX[Z[4]]+VX[Z[5]]+"-"+VX[Z[6]]+VX[Z[7]]+"-"+VX[Z[8]]+VX[Z[9]]+"-"+VX[Z[10]]+VX[Z[11]]+VX[Z[12]]+VX[Z[13]]+VX[Z[14]]+VX[Z[15]]}}var fs6=($,Z,Q=(X)=>X)=>$,bs6=($)=>{switch($){case"true":return!0;case"false":return!1;default:throw Error(`Unable to parse boolean value "${$}"`)}},ys6=($)=>{if($===null||$===void 0)return;if(typeof $==="number"){if($===0||$===1)R60.warn(vv0(`Expected boolean, got ${typeof $}: ${$}`));if($===0)return!1;if($===1)return!0}if(typeof $==="string"){let Z=$.toLowerCase();if(Z==="false"||Z==="true")R60.warn(vv0(`Expected boolean, got ${typeof $}: ${$}`));if(Z==="false")return!1;if(Z==="true")return!0}if(typeof $==="boolean")return $;throw TypeError(`Expected boolean, got ${typeof $}: ${$}`)},A60=($)=>{if($===null||$===void 0)return;if(typeof $==="string"){let Z=parseFloat($);if(!Number.isNaN(Z)){if(String(Z)!==String($))R60.warn(vv0(`Expected number but observed string: ${$}`));return Z}}if(typeof $==="number")return $;throw TypeError(`Expected number, got ${typeof $}: ${$}`)},gs6=Math.ceil(340282346638528860000000000000000000000),_v0=($)=>{let Z=A60($);if(Z!==void 0&&!Number.isNaN(Z)&&Z!==1/0&&Z!==-1/0){if(Math.abs(Z)>gs6)throw TypeError(`Expected 32-bit float, got ${$}`)}return Z},T60=($)=>{if($===null||$===void 0)return;if(Number.isInteger($)&&!Number.isNaN($))return $;throw TypeError(`Expected integer, got ${typeof $}: ${$}`)},hs6=T60,Ez1=($)=>Rz1($,32),zz1=($)=>Rz1($,16),Pz1=($)=>Rz1($,8),Rz1=($,Z)=>{let Q=T60($);if(Q!==void 0&&us6(Q,Z)!==Q)throw TypeError(`Expected ${Z}-bit integer, got ${$}`);return Q},us6=($,Z)=>{switch(Z){case 32:return Int32Array.of($)[0];case 16:return Int16Array.of($)[0];case 8:return Int8Array.of($)[0]}},ls6=($,Z)=>{if($===null||$===void 0){if(Z)throw TypeError(`Expected a non-null value for ${Z}`);throw TypeError("Expected a non-null value")}return $},TU8=($)=>{if($===null||$===void 0)return;if(typeof $==="object"&&!Array.isArray($))return $;let Z=Array.isArray($)?"array":typeof $;throw TypeError(`Expected object, got ${Z}: ${$}`)},cs6=($)=>{if($===null||$===void 0)return;if(typeof $==="string")return $;if(["boolean","number","bigint"].includes(typeof $))return R60.warn(vv0(`Expected string, got ${typeof $}: ${$}`)),String($);throw TypeError(`Expected string, got ${typeof $}: ${$}`)},ms6=($)=>{if($===null||$===void 0)return;let Z=TU8($),Q=[];for(let X in Z)if(Z[X]!=null)Q.push(X);if(Q.length===0)throw TypeError("Unions must have exactly one non-null member. None were found.");if(Q.length>1)throw TypeError(`Unions must have exactly one non-null member. Keys ${Q} were not null.`);return Z},qz1=($)=>{if(typeof $=="string")return A60(Ap($));return A60($)},ds6=qz1,RU8=($)=>{if(typeof $=="string")return _v0(Ap($));return _v0($)},is6=/(-?(?:0|[1-9]\d*)(?:\.\d+)?(?:[eE][+-]?\d+)?)|(-?Infinity)|(NaN)/g,Ap=($)=>{let Z=$.match(is6);if(Z===null||Z[0].length!==$.length)throw TypeError("Expected real number, got implicit NaN");return parseFloat($)},Mz1=($)=>{if(typeof $=="string")return qU8($);return A60($)},ps6=Mz1,ns6=Mz1,ts6=($)=>{if(typeof $=="string")return qU8($);return _v0($)},qU8=($)=>{switch($){case"NaN":return NaN;case"Infinity":return 1/0;case"-Infinity":return-1/0;default:throw Error(`Unable to parse float value: ${$}`)}},MU8=($)=>{if(typeof $==="string")return T60(Ap($));return T60($)},os6=MU8,rs6=($)=>{if(typeof $==="string")return Ez1(Ap($));return Ez1($)},zp=($)=>{if(typeof $==="string")return zz1(Ap($));return zz1($)},IU8=($)=>{if(typeof $==="string")return Pz1(Ap($));return Pz1($)},vv0=($)=>{return String(TypeError($).stack||$).split(`
|
|
5297
|
+
LIMIT 50`,{slug:$,since:Z,until:Q})).map((J)=>({key:J.key,pageviews:Number(J.pageviews),visitors:Number(J.visitors)}))}async function pF8($){let{since:Z,until:Q}=nF8(90),X=await tF8($,Z,Q);return[...new Set(X.map(ad))]}async function Mv0($){let Z=$.get("studioContext");if(!tP(Z))return $.json({error:"Unauthorized"},401);let Q=n(Z),X=$.req.param("site");if(!X)return $.json({error:"site is required"},400);let Y=X.toLowerCase();if(!await Z.storage.orgSites.isOwnedBy(Y,Q.id))return $.json({error:"Site not found in organization"},404);if(!await lG(Z,Q.id,"monitoring"))return $.json({error:"This organization's plan does not include monitoring",code:"feature_not_in_plan"},403);return{slug:Y}}var ca6,ma6,dF8,fK="site_id IN (SELECT id FROM default.dim_sites WHERE name = {slug:String})",aa6,$s6="https://deco.lilstts.com/plausible",Zs6=12000,Qs6,oF8=()=>{let $=new Z1;return $.get("/:site/cdn/data",async(Z)=>{let Q=await Mv0(Z);if(Q instanceof Response)return Q;if(!NO())return Z.json({available:!1,error:"Monitor is not configured"});let X=Z.req.query("view")??"summary";if(!ca6.has(X))return Z.json({error:`unknown or unavailable view: ${X}`},400);let Y=Z.req.query("range")??"7d",J=Yz1(Y,Z.req.query("since"),Z.req.query("until"));if(!J)return Z.json({error:`unknown range: ${Y}`},400);let{slug:G}=Q,{since:K,until:W}=J,H=iF8(Z.req.query("filters"));try{let F;switch(X){case"summary":F=await ia6(G,K,W,H);break;case"timeline":F=await pa6(G,K,W,J.granularity,H);break;case"cache-status":F=await na6(G,K,W,H);break;case"status-codes":F=await ta6(G,K,W,H);break;case"top-paths":F=await oa6(G,K,W,Z.req.query("groupByPath")==="1",H);break;case"top-countries":F=await ra6(G,K,W,H);break}return Z.json({available:!0,view:X,range:Y,data:F})}catch(F){return console.error(`[monitor] cdn ${X} query failed for site="${G}":`,F),Z.json({error:"Failed to query monitor warehouse"},502)}}),$.get("/:site/audience/data",async(Z)=>{let Q=await Mv0(Z);if(Q instanceof Response)return Q;if(!NO())return Z.json({available:!1,error:"Monitor is not configured"});let X=Z.req.query("view")??"summary";if(!aa6.has(X))return Z.json({error:`unknown or unavailable view: ${X}`},400);let Y=Z.req.query("range")??"7d",J=Yz1(Y,Z.req.query("since"),Z.req.query("until"));if(!J)return Z.json({error:`unknown range: ${Y}`},400);let{slug:G}=Q,{since:K,until:W}=J;try{let H;switch(X){case"summary":H=await sa6(G,K,W);break;case"timeline":H=await ea6(G,K,W);break;case"top-sources":H=await Jz1(G,K,W,"utm_source");break;case"top-countries":H=await Jz1(G,K,W,"country");break;case"devices":H=await Jz1(G,K,W,"device_type");break}return Z.json({available:!0,view:X,range:Y,data:H})}catch(H){return console.error(`[monitor] audience ${X} query failed for site="${G}":`,H),Z.json({error:"Failed to query monitor warehouse"},502)}}),$.get("/:site/hosts",async(Z)=>{let Q=await Mv0(Z);if(Q instanceof Response)return Q;let{slug:X}=Q;if(!NO())return Z.json({available:!1,hosts:[]});try{let Y=await pF8(X);return Z.json({available:!0,hosts:Y})}catch(Y){return console.error(`[monitor] hosts failed for site="${X}":`,Y),Z.json({available:!0,hosts:[]})}}),$.get("/:site/onedollar",async(Z)=>{let Q=await Mv0(Z);if(Q instanceof Response)return Q;let{slug:X}=Q,Y=E0().oneDollarStatsApiKey;if(!Y)return Z.json({available:!1,error:"OneDollarStats not configured"});let J=Z.req.query("report")??"kpis",G=Qs6[J];if(!G)return Z.json({error:`unknown report: ${J}`},400);let K=Z.req.query("range")??"7d",W=Yz1(K,Z.req.query("since"),Z.req.query("until"));if(!W)return Z.json({error:`unknown range: ${K}`},400);let H=await pF8(X),F=Z.req.query("host"),U=F&&H.includes(F)?F:H[0];if(!U)return Z.json({available:!0,report:J,range:K,results:[]});let{since:N,until:B}=W,O=J==="timeseries"?W.granularity==="hourly"?"time:hour":"time:day":G.dimension,L={page:"event:page",source:"visit:referrer",referrer:"visit:referrer",country:"visit:country",browser:"visit:browser",os:"visit:os",device:"visit:device",utm_campaign:"visit:utm_campaign",utm_source:"visit:utm_source",utm_medium:"visit:utm_medium",utm_content:"visit:utm_content",utm_term:"visit:utm_term"},w={equals:"is",not_equals:"is_not",contains:"contains",not_contains:"contains_not"},j=iF8(Z.req.query("filters")).map((z)=>{let P=L[z.field],A=w[z.op];return P&&A?[A,P,[z.value]]:null}).filter(Boolean),E=async(z)=>{let P=await fetch($s6,{method:"POST",headers:{"Content-Type":"application/json","x-api-key":Y,Accept:"application/json"},body:JSON.stringify({site_id:U,metrics:G.metrics,date_range:z,...O?{dimensions:[O]}:{},...G.order?{order_by:[[G.order,"desc"]]}:{},...j.length?{filters:j}:{},pagination:{limit:100,offset:0}}),signal:AbortSignal.timeout(Zs6)});if(!P.ok)throw Error(`OneDollarStats ${P.status}`);return(await P.json().catch(()=>null))?.results??[]};try{let z=await E([N,B]),P;if(J==="kpis"||J==="timeseries"&&Z.req.query("compare")==="1"){let q=Date.parse(`${N}T00:00:00Z`),V=86400000,M=Iv0(new Date(q-86400000)),C=Iv0(new Date(q-W.days*86400000));P=await E([C,M]).catch(()=>{return})}return Z.json({available:!0,report:J,range:K,host:U,metrics:G.metrics,results:z,...P?{previous:P}:{}})}catch(z){return console.error(`[monitor] onedollar ${J} failed for host="${U}":`,z),Z.json({error:"Failed to reach OneDollarStats"},502)}}),$};var rF8=D(()=>{c$();t1();MF();$k0();Zk0();ca6=new Set(["summary","timeline","cache-status","status-codes","top-paths","top-countries"]),ma6={today:{days:1,granularity:"hourly"},yesterday:{days:1,granularity:"hourly",endOffsetDays:1},"7d":{days:7,granularity:"daily"},"14d":{days:14,granularity:"daily"},"30d":{days:30,granularity:"daily"},"90d":{days:90,granularity:"daily"},"180d":{days:180,granularity:"daily"},"1y":{days:365,granularity:"daily"}};dF8=/^\d{4}-\d{2}-\d{2}$/;aa6=new Set(["summary","timeline","top-sources","top-countries","devices"]);Qs6={kpis:{metrics:["visitors","visits","pageviews","bounce_rate","visit_duration"]},timeseries:{metrics:["pageviews","visits","visitors","bounce_rate","visit_duration"]},pages:{metrics:["pageviews","visitors"],dimension:"event:page",order:"pageviews"},sources:{metrics:["visitors"],dimension:"visit:referrer",order:"visitors"},countries:{metrics:["visitors"],dimension:"visit:country",order:"visitors"},browsers:{metrics:["visitors"],dimension:"visit:browser",order:"visitors"},os:{metrics:["visitors"],dimension:"visit:os",order:"visitors"},devices:{metrics:["visitors"],dimension:"visit:device",order:"visitors"},events:{metrics:["visitors","events"],dimension:"event:name",order:"events"},utm_campaign:{metrics:["visitors","events"],dimension:"visit:utm_campaign",order:"events"},utm_source:{metrics:["visitors","events"],dimension:"visit:utm_source",order:"events"},utm_medium:{metrics:["visitors","events"],dimension:"visit:utm_medium",order:"events"},utm_content:{metrics:["visitors","events"],dimension:"visit:utm_content",order:"events"},utm_term:{metrics:["visitors","events"],dimension:"visit:utm_term",order:"events"}}});import{timingSafeEqual as Xs6}from"crypto";function tU($){let Q=$?.match(/^Bearer\s+(.+)$/i)?.[1]?.trim();return Q?Q:null}function L60($,Z){let Q=Buffer.from($),X=Buffer.from(Z);return Q.length===X.length&&Xs6(Q,X)}function qE($){let Z=process.env.VAULT_SERVICE_TOKEN;return!!Z&&L60($,Z)}function aF8($){if(!$)return null;return $ instanceof Date?$.toISOString():$}function Ys6($){if(!$)return[];if(Array.isArray($))return $.filter((Z)=>typeof Z==="string");if(typeof $!=="string")return[];try{let Z=JSON.parse($);return Array.isArray(Z)?Z.filter((Q)=>typeof Q==="string"):[]}catch{return[]}}async function sF8($,Z,Q){let X=tU($.req.header("authorization"));if(!X)return{ok:!1,response:$.json({error:"Unauthorized"},401)};let Y=$.get("studioContext"),J=Y.organization?.id;if(!J)return{ok:!1,response:$.json({error:"Organization context required"},403)};if(qE(X))return{ok:!0,ctx:Y,organizationId:J};let G=await Y.storage.connectionCredentialVault.authenticateWorkloadToken(X);if(!G||G.organizationId!==J)return{ok:!1,response:$.json({error:"Unauthorized"},401)};let K=await Y.storage.connections.findById(G.subjectConnectionId,J);if(!K||K.status!=="active")return{ok:!1,response:$.json({error:"Unauthorized"},401)};if(!await Y.storage.connectionCredentialVault.hasGrant({organizationId:J,subjectConnectionId:G.subjectConnectionId,targetConnectionId:Z,scope:Q}))return{ok:!1,response:$.json({error:"Forbidden"},403)};return{ok:!0,ctx:Y,organizationId:J}}var eF8=()=>{let $=new Z1;return $.post("/vault/connections/batch",async(Z)=>{let Q=tU(Z.req.header("authorization"));if(!Q||!qE(Q))return Z.json({error:"Unauthorized"},401);let X=Z.get("studioContext"),Y=X.organization?.id;if(!Y)return Z.json({error:"Organization context required"},403);let J=await Z.req.json().catch(()=>null),G=Array.isArray(J?.connectionIds)?[...new Set(J.connectionIds)].filter((B)=>typeof B==="string"&&B.length>0):[];if(G.length===0||G.length>20)return Z.json({error:"connectionIds must be a non-empty string array (max 20)"},400);let{items:K}=await X.storage.connections.list(Y,{includeVirtual:!0,where:{field:["id"],operator:"in",value:G},limit:G.length}),W=new Map(K.map((B)=>[B.id,B])),H=new Set((await X.db.selectFrom("downstream_tokens").select("connectionId").where("connectionId","in",G).execute()).map((B)=>B.connectionId)),F=new Map((await X.db.selectFrom("connections").select(["id","configuration_state","connection_token"]).where("id","in",G).where("organization_id","=",Y).execute()).map((B)=>[B.id,B])),U=new p5(X.db,X.vault),N={};return await Promise.all(G.map(async(B)=>{try{let O=W.get(B);if(!O||O.status!=="active"){N[B]={error:"Connection not found"};return}if(F.get(B)?.configuration_state&&!O.configuration_state){N[B]={error:"MCP configuration could not be decrypted"};return}let L={type:"mcp_configuration",state:O.configuration_state??{},scopes:O.configuration_scopes??[]},w=null;if(H.has(B)){let j=await C3({connectionId:B,connectionUrl:O.connection_url,tokenStorage:U});if(j.state==="valid"||j.state==="refreshed"){let E=await U.get(B);w={type:"oauth_access_token",tokenType:"Bearer",accessToken:j.accessToken,expiresAt:aF8(E?.expiresAt??null),scope:E?.scope??null}}}else if(O.connection_token)w={type:"static_token",tokenType:"Bearer",accessToken:O.connection_token,expiresAt:null,scope:null};else if(F.get(B)?.connection_token){N[B]={error:"Connection token could not be decrypted"};return}N[B]={configuration:L,accessToken:w}}catch(O){N[B]={error:O instanceof Error?O.message:String(O)}}})),Z.header("Cache-Control","no-store"),Z.header("Pragma","no-cache"),Z.json(N)}),$.post("/vault/connections/:connectionId/access-token",async(Z)=>{let Q=Z.req.param("connectionId"),X=await sF8(Z,Q,nW0);if(!X.ok)return X.response;let{ctx:Y,organizationId:J}=X,G=await Y.storage.connections.findById(Q,J);if(!G||G.status!=="active")return Z.json({error:"Connection not found"},404);let K=new p5(Y.db,Y.vault),W=await C3({connectionId:Q,connectionUrl:G.connection_url,tokenStorage:K});if(W.state==="missing"){if(G.connection_token)return Z.header("Cache-Control","no-store"),Z.header("Pragma","no-cache"),Z.json({type:"static_token",tokenType:"Bearer",accessToken:G.connection_token,expiresAt:null,scope:null});if((await Y.db.selectFrom("connections").select("connection_token").where("id","=",Q).where("organization_id","=",J).executeTakeFirst())?.connection_token)return Z.json({error:"Connection token could not be decrypted"},424);return Z.json({error:"Downstream token not found"},409)}if(W.state==="expired_without_refresh"||W.state==="refresh_failed")return Z.json({error:"Downstream token refresh failed"},424);let H=await K.get(Q);return Z.header("Cache-Control","no-store"),Z.header("Pragma","no-cache"),Z.json({type:"oauth_access_token",tokenType:"Bearer",accessToken:W.accessToken,expiresAt:aF8(H?.expiresAt??null),scope:H?.scope??null})}),$.post("/vault/connections/:connectionId/configuration",async(Z)=>{let Q=Z.req.param("connectionId"),X=await sF8(Z,Q,tW0);if(!X.ok)return X.response;let{ctx:Y,organizationId:J}=X,G=await Y.db.selectFrom("connections").select(["status","configuration_state","configuration_scopes"]).where("id","=",Q).where("organization_id","=",J).executeTakeFirst();if(!G||G.status!=="active")return Z.json({error:"Connection not found"},404);let K={};if(G.configuration_state)try{let W=await Y.vault.decrypt(G.configuration_state),H=JSON.parse(W);if(typeof H!=="object"||H===null||Array.isArray(H))throw Error("MCP configuration state is not an object");K=H}catch{return Z.json({error:"MCP configuration could not be decrypted"},424)}return Z.header("Cache-Control","no-store"),Z.header("Pragma","no-cache"),Z.json({type:"mcp_configuration",state:K,scopes:Ys6(G.configuration_scopes)})}),$};var py=D(()=>{c$();YK();oW0();tW()});import{createHmac as Js6}from"crypto";import{mkdir as Gs6,writeFile as Ks6}from"fs/promises";import{dirname as Ws6,join as QU8}from"path";function Fs6($){let Z=$.replace(/[^a-zA-Z0-9_-]/g,"_");return QU8(Hs6,Z)}function $U8($,Z){let Q=Fs6($),X=EG(Z);return QU8(Q,X)}function ZU8($,Z,Q,X,Y){let J=E0().encryptionKey||"dev-secret",G=`${$}:${Z}:${Q}:${X}`,K=Js6("sha256",J).update(G).digest("hex");return L60(Y,K)}function Gz1($){let Z=$.split(".").pop()?.toLowerCase()||"";return{jpg:"image/jpeg",jpeg:"image/jpeg",png:"image/png",gif:"image/gif",webp:"image/webp",svg:"image/svg+xml",ico:"image/x-icon",bmp:"image/bmp",pdf:"application/pdf",json:"application/json",xml:"application/xml",txt:"text/plain",html:"text/html",htm:"text/html",css:"text/css",csv:"text/csv",md:"text/markdown",js:"application/javascript",mjs:"application/javascript",ts:"application/typescript",mp4:"video/mp4",webm:"video/webm",avi:"video/x-msvideo",mov:"video/quicktime",mp3:"audio/mpeg",wav:"audio/wav",ogg:"audio/ogg",zip:"application/zip",gz:"application/gzip",tar:"application/x-tar",woff:"font/woff",woff2:"font/woff2",ttf:"font/ttf",otf:"font/otf"}[Z]||"application/octet-stream"}var Hs6="./data/assets",Vv0=($)=>{let Z=new Z1,Q=$.orgFromPath?"/*":"/:orgId/*";return Z.get(Q,async(X)=>{let Y=$.orgFromPath?X.get("studioContext")?.organization?.id:X.req.param("orgId");if(!Y)return X.json({error:"Missing organization context"},500);let J=$.orgFromPath?`/api/${X.req.param("org")??""}/dev-assets/`:`/api/dev-assets/${Y}/`,G=X.req.path.replace(J,"");if(!G)return X.json({error:"Missing key"},400);let K=X.req.query("expires"),W=X.req.query("signature"),H=X.req.query("method");if(!K||!W||H!=="GET")return X.json({error:"Invalid or missing signature parameters"},400);let F=parseInt(K,10);if(!Number.isFinite(F))return X.json({error:"Invalid expires parameter"},400);let U=Math.floor(Date.now()/1000);if(F<U)return X.json({error:"URL has expired"},403);if(!ZU8(Y,G,F,"GET",W))return X.json({error:"Invalid signature"},403);let N=$U8(Y,G);try{let B=Bun.file(N);if(!await B.exists())return X.json({error:"File not found"},404);let L=Gz1(G);return new Response(B.stream(),{headers:{"Content-Type":L,"Content-Length":B.size.toString(),"Cache-Control":"private, max-age=3600"}})}catch(B){return console.error("Error serving file:",B),X.json({error:"Failed to read file"},500)}}),Z.put(Q,async(X)=>{let Y=$.orgFromPath?X.get("studioContext")?.organization?.id:X.req.param("orgId");if(!Y)return X.json({error:"Missing organization context"},500);let J=$.orgFromPath?`/api/${X.req.param("org")??""}/dev-assets/`:`/api/dev-assets/${Y}/`,G=X.req.path.replace(J,"");if(!G)return X.json({error:"Missing key"},400);let K=X.req.query("expires"),W=X.req.query("signature"),H=X.req.query("method");if(!K||!W||H!=="PUT")return X.json({error:"Invalid or missing signature parameters"},400);let F=parseInt(K,10);if(!Number.isFinite(F))return X.json({error:"Invalid expires parameter"},400);let U=Math.floor(Date.now()/1000);if(F<U)return X.json({error:"URL has expired"},403);if(!ZU8(Y,G,F,"PUT",W))return X.json({error:"Invalid signature"},403);let N=$U8(Y,G),B=Ws6(N);try{await Gs6(B,{recursive:!0});let O=await X.req.arrayBuffer();return await Ks6(N,Buffer.from(O)),X.json({success:!0,key:G})}catch(O){return console.error("Error saving file:",O),X.json({error:"Failed to save file"},500)}}),Z};var kv0=D(()=>{c$();t1();rK();py()});function XU8($,Z,Q){if(!["127.0.0.1","::1","::ffff:127.0.0.1"].includes($??""))return!1;try{let X=new URL(Q),Y=["localhost","127.0.0.1","[::1]"].includes(X.hostname)||X.hostname.endsWith(".localhost");return["http:","https:"].includes(X.protocol)&&Y&&Z===X.origin}catch{return!1}}function Kz1($){let Z=new URL(Us6);if(Z.searchParams.set("client_id",$.clientId),Z.searchParams.set("redirect_uri",$.redirectUri),Z.searchParams.set("state",$.state),$.selectAccount)Z.searchParams.set("prompt","select_account");return Z.toString()}function Ns6($,Z=200){let Q=$!==null&&typeof $==="object"?$:{};if(typeof Q.error==="string"){let X=typeof Q.error_description==="string"?` (${Q.error_description})`:"";throw new b0({provider:"github",status:400,message:`GitHub OAuth code exchange failed: ${Q.error}${X}`})}if(typeof Q.access_token!=="string"||Q.access_token.length===0)throw new b0({provider:"github",status:Z,message:"GitHub OAuth code exchange returned no access token"});return{accessToken:Q.access_token,refreshToken:typeof Q.refresh_token==="string"&&Q.refresh_token.length>0?Q.refresh_token:null,expiresIn:typeof Q.expires_in==="number"&&Number.isFinite(Q.expires_in)?Q.expires_in:null,scope:typeof Q.scope==="string"&&Q.scope.length>0?Q.scope:null,tokenEndpoint:YU8}}async function JU8($){let Z;try{let Y=process.env.GITHUB_OAUTH_TOKEN_URL??YU8;Z=await fetch(Y,{method:"POST",headers:{Accept:"application/json","Content-Type":"application/json"},body:JSON.stringify({client_id:$.clientId,client_secret:$.clientSecret,code:$.code,redirect_uri:$.redirectUri}),signal:AbortSignal.timeout(nY1)})}catch(Y){throw new b0({provider:"github",status:0,message:`GitHub OAuth code exchange failed: ${Y instanceof Error?Y.message:String(Y)}`,cause:Y})}let Q=await Z.text();if(!Z.ok)throw new b0({provider:"github",status:Z.status,message:`GitHub OAuth code exchange failed: ${Z.status} ${Q.slice(0,300)}`});let X;try{X=JSON.parse(Q)}catch(Y){throw new b0({provider:"github",status:Z.status,message:`GitHub OAuth code exchange returned invalid JSON: ${Q.slice(0,300)}`,cause:Y})}return Ns6(X,Z.status)}var Us6="https://github.com/login/oauth/authorize",YU8="https://github.com/login/oauth/access_token";var GU8=D(()=>{a6();Hj()});function KU8($){let Z=new URL(`https://${gB}/site/oauth2/authorize`);return Z.searchParams.set("client_id",$.clientId),Z.searchParams.set("redirect_uri",$.redirectUri),Z.searchParams.set("response_type","code"),Z.searchParams.set("state",$.state),Z.toString()}function Bs6(){return`https://${gB}/site/oauth2/access_token`}async function WU8($){let Z=Bs6(),Q=new URLSearchParams({grant_type:"authorization_code",client_id:$.clientId,client_secret:$.clientSecret,code:$.code,redirect_uri:$.redirectUri}),X;try{X=await fetch(Z,{method:"POST",headers:{Accept:"application/json","Content-Type":"application/x-www-form-urlencoded"},body:Q,signal:AbortSignal.timeout(Os6)})}catch(J){throw new b0({provider:"bitbucket",status:0,message:`Bitbucket token exchange failed: ${Ds6(J)}`,cause:J})}let Y=await X.json().catch(()=>null);if(!X.ok||!Y||typeof Y.error==="string"){let J=Y&&typeof Y.error_description==="string"?Y.error_description:Y&&typeof Y.error==="string"?Y.error:X.statusText;throw new b0({provider:"bitbucket",status:X.status,message:`Bitbucket token exchange failed (${X.status}): ${J}`})}if(typeof Y.access_token!=="string"||!Y.access_token)throw new b0({provider:"bitbucket",status:X.status,message:"Bitbucket token exchange returned no access_token"});return{accessToken:Y.access_token,refreshToken:typeof Y.refresh_token==="string"&&Y.refresh_token?Y.refresh_token:null,expiresIn:typeof Y.expires_in==="number"&&Number.isFinite(Y.expires_in)?Y.expires_in:null,scope:typeof Y.scopes==="string"?Y.scopes:null,tokenEndpoint:Z}}function Ds6($){return $ instanceof Error?$.message:String($)}var Os6=15000;var HU8=D(()=>{a6();ym()});function FU8($){let Z=new URL(`https://${$.host}/oauth/authorize`);return Z.searchParams.set("client_id",$.clientId),Z.searchParams.set("redirect_uri",$.redirectUri),Z.searchParams.set("response_type","code"),Z.searchParams.set("state",$.state),Z.searchParams.set("scope",($.scopes??Ls6).join(" ")),Z.toString()}function ws6($){return`https://${$}/oauth/token`}async function UU8($){let Z=ws6($.host),Q=new URLSearchParams({grant_type:"authorization_code",client_id:$.clientId,client_secret:$.clientSecret,code:$.code,redirect_uri:$.redirectUri}),X;try{X=await fetch(Z,{method:"POST",headers:{Accept:"application/json","Content-Type":"application/x-www-form-urlencoded"},body:Q,signal:AbortSignal.timeout(js6)})}catch(J){throw new b0({provider:"gitlab",status:0,message:`GitLab token exchange failed: ${Es6(J)}`,cause:J})}let Y=await X.json().catch(()=>null);if(!X.ok||!Y||typeof Y.error==="string"){let J=Y&&typeof Y.error_description==="string"?Y.error_description:Y&&typeof Y.error==="string"?Y.error:X.statusText;throw new b0({provider:"gitlab",status:X.status,message:`GitLab token exchange failed (${X.status}): ${J}`})}if(typeof Y.access_token!=="string"||!Y.access_token)throw new b0({provider:"gitlab",status:X.status,message:"GitLab token exchange returned no access_token"});return{accessToken:Y.access_token,refreshToken:typeof Y.refresh_token==="string"&&Y.refresh_token?Y.refresh_token:null,expiresIn:typeof Y.expires_in==="number"&&Number.isFinite(Y.expires_in)?Y.expires_in:null,scope:typeof Y.scope==="string"?Y.scope:null,tokenEndpoint:Z}}function Es6($){return $ instanceof Error?$.message:String($)}var Ls6,js6=15000;var NU8=D(()=>{a6();Ls6=["api","read_user"]});import{z as CO}from"zod";function w60($){if(!$)return"/";if(!$.startsWith("/")||$.startsWith("//")||$.includes("\\")||/[\r\n\t]/.test($))return"/";return $}function zs6($){if($.htmlUrl)return $.htmlUrl;return`https://github.com${$.accountType==="Organization"?`/organizations/${encodeURIComponent($.login)}/settings/installations/${$.installationId}`:`/settings/installations/${$.installationId}`}`}function ny($){return`${N5()}/api/_git/${$}/callback`}function IX($,Z){let Q=new URL($,N5());if(Q.searchParams.delete("git_error"),Z)Q.searchParams.set("git_error",Z);return Q.toString()}async function Sv0($,Z){let Q=$.organization?.id,X=$.auth.user?.id;if(!Q||!X)throw Error("Session with an organization is required");return $.storage.gitProviderOAuthStates.create({organizationId:Q,userId:X,...Z})}async function Cv0($,Z,Q){if(!Q)return{ok:!1,error:"missing_state",returnTo:"/"};let X=await $.storage.gitProviderOAuthStates.consume(Q);if(!X||X.provider!==Z)return{ok:!1,error:"invalid_state",returnTo:"/"};let Y=w60(X.returnTo);if($.auth.user?.id!==X.userId)return{ok:!1,error:"session_mismatch",returnTo:Y};return{ok:!0,state:X,returnTo:Y}}var BU8=()=>{let $=new Z1;return $.post("/git-providers/github/cli/connect",async(Z)=>{if(!AT())return Z.json({error:"GitHub CLI requires local mode"},403);let Q;try{Q=W60(Z).remote.address}catch{}if(!XU8(Q,Z.req.header("Origin"),N5()))return Z.json({error:"GitHub CLI requires a local, same-origin request"},403);let X=Z.get("studioContext");if(!X.auth.user||!X.organization)return Z.json({error:"Unauthorized"},401);try{await X.access.check("GIT_ACCOUNT_CONNECT_TOKEN")}catch(G){if(G instanceof q7)return Z.json({error:"Forbidden"},403);throw G}if(Z.header("Cache-Control","no-store"),!Z.req.header("Content-Type")?.startsWith("application/json"))return Z.json({error:"Invalid content type"},415);let Y;try{Y=await hk$()}catch{return Z.json({error:"Could not connect to GitHub CLI. Install gh and run gh auth login --hostname github.com, then try again."},400)}let J=await X.storage.gitProviderAccounts.upsert({organizationId:X.organization.id,type:"github",host:"github.com",authKind:"github_cli",...Y,createdBy:X.auth.user.id});return Z.json({account:{id:J.id,login:J.login}})}),$.get("/git-providers/github/connect",async(Z)=>{let Q=Z.get("studioContext");if(!Q.auth.user)return Z.json({error:"Unauthorized"},401);await Q.access.check("GIT_ACCOUNT_CONNECT_TOKEN");let X=Yj();if(!X)return Z.json({error:"GitHub App is not configured"},503);let Y=await Sv0(Q,{provider:"github",host:"github.com",returnTo:w60(Z.req.query("returnTo"))});return Z.redirect(Kz1({clientId:X.clientId,redirectUri:ny("github"),state:Y,selectAccount:!0}))}),$.get("/git-providers/github/install",async(Z)=>{let Q=Z.get("studioContext");if(!Q.auth.user)return Z.json({error:"Unauthorized"},401);await Q.access.check("GIT_ACCOUNT_CONNECT_TOKEN");let X=Yj();if(!X)return Z.json({error:"GitHub App is not configured"},503);let Y=await Sv0(Q,{provider:"github",host:"github.com",returnTo:w60(Z.req.query("returnTo"))}),J=new URL(`https://github.com/apps/${encodeURIComponent(X.slug)}/installations/new`);return J.searchParams.set("state",Y),Z.redirect(J.toString())}),$.get("/git-providers/github/flows/:id",async(Z)=>{let Q=Z.get("studioContext");if(!Q.auth.user||!Q.organization)return Z.json({error:"Unauthorized"},401);await Q.access.check("GIT_ACCOUNT_CONNECT_TOKEN"),Z.header("Cache-Control","no-store");let X={organizationId:Q.organization.id,userId:Q.auth.user.id},Y=await Q.storage.githubConnectFlows.get(Z.req.param("id"),X);if(!Y)return Z.json({error:"flow_expired"},410);let J=$H();if(!J)return Z.json({error:"not_configured"},503);try{let G=await J.listConnectableInstallations(Y.id,await Q.vault.decrypt(Y.encrypted_access_token));return Z.json({installations:G.map((K)=>({installationId:K.installationId,login:K.login,avatarUrl:K.avatarUrl,accountType:K.accountType})),expiresAt:Y.expires_at})}catch{return Z.json({error:"github_unavailable"},502)}}),$.get("/git-providers/github/flows/:id/repositories",async(Z)=>{let Q=Z.get("studioContext");if(!Q.auth.user||!Q.organization)return Z.json({error:"Unauthorized"},401);await Q.access.check("GIT_ACCOUNT_CONNECT_TOKEN"),Z.header("Cache-Control","no-store");let X=CO.object({installationId:CO.coerce.number().int().positive().safe(),page:CO.coerce.number().int().positive().safe().default(1),query:CO.string().trim().max(256).optional()}).safeParse(Z.req.query());if(!X.success)return Z.json({error:"Invalid installation"},400);let Y={organizationId:Q.organization.id,userId:Q.auth.user.id},J=await Q.storage.githubConnectFlows.get(Z.req.param("id"),Y);if(!J)return Z.json({error:"flow_expired"},410);let G=$H();if(!G)return Z.json({error:"not_configured"},503);try{let K=await Q.vault.decrypt(J.encrypted_access_token),W=await G.connectableInstallation(J.id,K,X.data.installationId);if(!W)return Z.json({error:"installation_forbidden"},403);let H=await G.delegableRepositories(J.id,K,W.installationId),F=await Q.storage.gitProviderAccounts.findByExternalId({organizationId:Y.organizationId,host:"github.com",externalAccountId:String(W.installationId)});return Z.json({...Sk$(H,X.data.page,X.data.query),accountVersion:oj1(F)})}catch{return Z.json({error:"github_unavailable"},502)}}),$.post("/git-providers/github/flows/:id",async(Z)=>{let Q=Z.get("studioContext");if(!Q.auth.user||!Q.organization)return Z.json({error:"Unauthorized"},401);if(await Q.access.check("GIT_ACCOUNT_CONNECT_TOKEN"),Z.header("Cache-Control","no-store"),!Z.req.header("Content-Type")?.startsWith("application/json"))return Z.json({error:"Invalid content type"},415);let X=CO.object({installationId:CO.number().int().positive().safe(),repositoryIds:CO.array(CO.number().int().positive().safe()).min(1).max(QN0).refine((H)=>new Set(H).size===H.length),accountVersion:CO.string().max(200).nullable()}).safeParse(await Z.req.json().catch(()=>null));if(!X.success)return Z.json({error:"Invalid installation"},400);let Y={organizationId:Q.organization.id,userId:Q.auth.user.id},J=await Q.storage.githubConnectFlows.get(Z.req.param("id"),Y);if(!J)return Z.json({error:"flow_expired"},410);let G=$H();if(!G)return Z.json({error:"not_configured"},503);let K,W;try{let H=await Q.vault.decrypt(J.encrypted_access_token);if(K=await G.connectableInstallation(J.id,H,X.data.installationId,{fresh:!0}),!K)return Z.json({error:"installation_forbidden"},403);let F=await G.delegableRepositories(J.id,H,K.installationId,{fresh:!0});if(!Ck$(F,X.data.repositoryIds))return Z.json({error:"repositories_forbidden"},403);W=await G.connectingUserId(H)}catch{return Z.json({error:"github_unavailable"},502)}try{let H=await Q.storage.githubConnectFlows.connect(J.id,Y,{organizationId:Y.organizationId,type:"github",host:"github.com",authKind:"github_app",externalAccountId:String(K.installationId),login:K.login,avatarUrl:K.avatarUrl,installationId:K.installationId,installationAuthorizedBy:W,installationRepositoryIds:X.data.repositoryIds},X.data.accountVersion);if(!H)return Z.json({error:"flow_expired"},410);return G.forgetFlow(J.id),Z.json({account:{id:H.id,login:H.login}})}catch(H){if(H instanceof n_0)return Z.json({error:"account_changed"},409);throw H}}),$.delete("/git-providers/github/flows/:id",async(Z)=>{let Q=Z.get("studioContext");if(!Q.auth.user||!Q.organization)return Z.json({error:"Unauthorized"},401);return await Q.access.check("GIT_ACCOUNT_CONNECT_TOKEN"),await Q.storage.githubConnectFlows.cancel(Z.req.param("id"),{organizationId:Q.organization.id,userId:Q.auth.user.id}),$H()?.forgetFlow(Z.req.param("id")),Z.body(null,204)}),$.get("/git-providers/github/accounts/:id/manage",async(Z)=>{let Q=Z.get("studioContext");if(!Q.auth.user||!Q.organization)return Z.json({error:"Unauthorized"},401);await Q.access.check("GIT_ACCOUNT_CONNECT_TOKEN");let X=await Q.storage.gitProviderAccounts.get(Z.req.param("id"),Q.organization.id);if(!X||X.type!=="github"||!X.installationId)return Z.json({error:"Account not found"},404);let Y=$H();if(!Y)return Z.json({error:"not_configured"},503);let J=await Y.getInstallation(X.installationId);if(!J)return Z.json({error:"Installation not found"},404);return Z.redirect(zs6(J))}),$.get("/git-providers/gitlab/connect",async(Z)=>{let Q=Z.get("studioContext");if(!Q.auth.user)return Z.json({error:"Unauthorized"},401);await Q.access.check("GIT_ACCOUNT_CONNECT_TOKEN");let X=TN0(),Y=(Z.req.query("host")??X?.host??"gitlab.com").trim().toLowerCase();if(!X||X.host!==Y)return Z.json({error:`No GitLab OAuth application is configured for ${Y}. Connect with an access token instead.`},503);let J=await Sv0(Q,{provider:"gitlab",host:Y,returnTo:w60(Z.req.query("returnTo"))});return Z.redirect(FU8({host:Y,clientId:X.clientId,redirectUri:ny("gitlab"),state:J}))}),$.get("/git-providers/bitbucket/connect",async(Z)=>{let Q=Z.get("studioContext");if(!Q.auth.user)return Z.json({error:"Unauthorized"},401);await Q.access.check("GIT_ACCOUNT_CONNECT_TOKEN");let X=KN0();if(!X)return Z.json({error:"No Bitbucket OAuth consumer is configured. Connect with an access token instead."},503);let Y=await Sv0(Q,{provider:"bitbucket",host:X.host,returnTo:w60(Z.req.query("returnTo"))});return Z.redirect(KU8({clientId:X.clientId,redirectUri:ny("bitbucket"),state:Y}))}),$},Lp;var Wz1=D(()=>{c$();CE1();sF();BW();I5();XN0();aj1();sY1();JN0();GU8();Uj();ym();RT();HU8();NU8();Lp=new Z1;Lp.get("/github/callback",async($)=>{let Z=await PQ.create($.req.raw),Q=await Cv0(Z,"github",$.req.query("state"));if(!Q.ok)return $.redirect(IX(Q.returnTo,Q.error));let{returnTo:X,state:Y}=Q,J=Yj(),G=$H(),K=$.req.query("code");if(!J||!G)return $.redirect(IX(X,"not_configured"));if(!K)return $.redirect(IX(X,$.req.query("error")??"denied"));try{let W=await JU8({clientId:J.clientId,clientSecret:J.clientSecret,code:K,redirectUri:ny("github")}),H={organizationId:Y.organizationId,userId:Y.userId},F=new URL(X,N5()),U=F.searchParams.get("git_flow"),N=await Z.vault.encrypt(W.accessToken),B=U&&await Z.storage.githubConnectFlows.refresh(U,H,N)?U:await Z.storage.githubConnectFlows.create(H,N);return F.searchParams.delete("git_error"),F.searchParams.set("git_flow",B),$.redirect(F.toString())}catch(W){return console.error("[git-providers] github callback failed",{message:W instanceof Error?W.message:String(W)}),$.redirect(IX(X,"exchange_failed"))}});Lp.get("/github/setup",async($)=>{let Z=await PQ.create($.req.raw),Q=await Cv0(Z,"github",$.req.query("state"));if(!Q.ok)return $.redirect(IX(Q.returnTo,Q.error));let{returnTo:X,state:Y}=Q,J=Yj();if(!J)return $.redirect(IX(X,"not_configured"));let G=await Z.storage.gitProviderOAuthStates.create(Y);return $.redirect(Kz1({clientId:J.clientId,redirectUri:ny("github"),state:G}))});Lp.get("/gitlab/callback",async($)=>{let Z=await PQ.create($.req.raw),Q=await Cv0(Z,"gitlab",$.req.query("state"));if(!Q.ok)return $.redirect(IX(Q.returnTo,Q.error));let{returnTo:X,state:Y}=Q,{host:J}=Y,G=TN0(),K=$.req.query("code");if(!G||G.host!==J)return $.redirect(IX(X,"not_configured"));if(!K)return $.redirect(IX(X,$.req.query("error")??"denied"));try{let W=await UU8({host:J,clientId:G.clientId,clientSecret:G.clientSecret,code:K,redirectUri:ny("gitlab")}),H=await GN0(J,W.accessToken),F=await Z.storage.gitProviderAccounts.upsert({organizationId:Y.organizationId,type:"gitlab",host:J,authKind:"oauth",externalAccountId:H.externalAccountId,login:H.login,avatarUrl:H.avatarUrl,createdBy:Y.userId});return await Z.storage.gitProviderAccountCredentials.upsert({connectionId:F.id,accessToken:W.accessToken,refreshToken:W.refreshToken,scope:W.scope,expiresAt:W.expiresIn!==null?new Date(Date.now()+W.expiresIn*1000):null,clientId:G.clientId,clientSecret:G.clientSecret,tokenEndpoint:W.tokenEndpoint}),$.redirect(IX(X))}catch(W){return console.error("[git-providers] gitlab callback failed",{host:J,message:W instanceof Error?W.message:String(W)}),$.redirect(IX(X,"exchange_failed"))}});Lp.get("/bitbucket/callback",async($)=>{let Z=await PQ.create($.req.raw),Q=await Cv0(Z,"bitbucket",$.req.query("state"));if(!Q.ok)return $.redirect(IX(Q.returnTo,Q.error));let{returnTo:X,state:Y}=Q,{host:J}=Y,G=KN0(),K=$.req.query("code");if(!G||G.host!==J)return $.redirect(IX(X,"not_configured"));if(!K)return $.redirect(IX(X,$.req.query("error")??"denied"));try{let W=await WU8({clientId:G.clientId,clientSecret:G.clientSecret,code:K,redirectUri:ny("bitbucket")}),H=await WN0(J,W.accessToken),F=await Z.storage.gitProviderAccounts.upsert({organizationId:Y.organizationId,type:"bitbucket",host:J,authKind:"oauth",externalAccountId:H.externalAccountId,login:H.login,avatarUrl:H.avatarUrl,createdBy:Y.userId});return await Z.storage.gitProviderAccountCredentials.upsert({connectionId:F.id,accessToken:W.accessToken,refreshToken:W.refreshToken,scope:W.scope,expiresAt:W.expiresIn!==null?new Date(Date.now()+W.expiresIn*1000):null,clientId:G.clientId,clientSecret:G.clientSecret,tokenEndpoint:W.tokenEndpoint}),$.redirect(IX(X))}catch(W){return console.error("[git-providers] bitbucket callback failed",{host:J,message:W instanceof Error?W.message:String(W)}),$.redirect(IX(X,"exchange_failed"))}})});var E60=v((Ms6)=>{Ms6.HttpAuthLocation=void 0;(function($){$.HEADER="header",$.QUERY="query"})(Ms6.HttpAuthLocation||(Ms6.HttpAuthLocation={}));Ms6.HttpApiKeyAuthLocation=void 0;(function($){$.HEADER="header",$.QUERY="query"})(Ms6.HttpApiKeyAuthLocation||(Ms6.HttpApiKeyAuthLocation={}));Ms6.EndpointURLScheme=void 0;(function($){$.HTTP="http",$.HTTPS="https"})(Ms6.EndpointURLScheme||(Ms6.EndpointURLScheme={}));Ms6.AlgorithmId=void 0;(function($){$.MD5="md5",$.CRC32="crc32",$.CRC32C="crc32c",$.SHA1="sha1",$.SHA256="sha256"})(Ms6.AlgorithmId||(Ms6.AlgorithmId={}));var Ps6=($)=>{let Z=[];if($.sha256!==void 0)Z.push({algorithmId:()=>Ms6.AlgorithmId.SHA256,checksumConstructor:()=>$.sha256});if($.md5!=null)Z.push({algorithmId:()=>Ms6.AlgorithmId.MD5,checksumConstructor:()=>$.md5});return{addChecksumAlgorithm(Q){Z.push(Q)},checksumAlgorithms(){return Z}}},As6=($)=>{let Z={};return $.checksumAlgorithms().forEach((Q)=>{Z[Q.algorithmId()]=Q.checksumConstructor()}),Z},Ts6=($)=>{return Ps6($)},Rs6=($)=>{return As6($)};Ms6.FieldPosition=void 0;(function($){$[$.HEADER=0]="HEADER",$[$.TRAILER=1]="TRAILER"})(Ms6.FieldPosition||(Ms6.FieldPosition={}));var qs6="__smithy_context";Ms6.IniSectionType=void 0;(function($){$.PROFILE="profile",$.SSO_SESSION="sso-session",$.SERVICES="services"})(Ms6.IniSectionType||(Ms6.IniSectionType={}));Ms6.RequestHandlerProtocol=void 0;(function($){$.HTTP_0_9="http/0.9",$.HTTP_1_0="http/1.0",$.TDS_8_0="tds/8.0"})(Ms6.RequestHandlerProtocol||(Ms6.RequestHandlerProtocol={}));Ms6.SMITHY_CONTEXT_KEY=qs6;Ms6.getDefaultClientConfiguration=Ts6;Ms6.resolveDefaultRuntimeConfig=Rs6});var Cz1=v((J05)=>{var jz1=K0("crypto"),Dz1=K0("fs"),Ss6=q60(),Cs6=M60(),oU=K0("stream"),zU8=($)=>typeof ArrayBuffer==="function"&&$ instanceof ArrayBuffer||Object.prototype.toString.call($)==="[object ArrayBuffer]",Ep=($,Z=0,Q=$.byteLength-Z)=>{if(!zU8($))throw TypeError(`The "input" argument must be ArrayBuffer. Received type ${typeof $} (${$})`);return Buffer.from($,Z,Q)},fv0=($,Z)=>{if(typeof $!=="string")throw TypeError(`The "input" argument must be of type string. Received type ${typeof $} (${$})`);return Z?Buffer.from($,Z):Buffer.from($)},_s6=/^[A-Za-z0-9+/]*={0,2}$/,PU8=($)=>{if($.length*3%4!==0)throw TypeError("Incorrect padding on base64 string.");if(!_s6.exec($))throw TypeError("Invalid base64 string.");let Z=fv0($,"base64");return new Uint8Array(Z.buffer,Z.byteOffset,Z.byteLength)},bv0=($)=>{let Z=fv0($,"utf8");return new Uint8Array(Z.buffer,Z.byteOffset,Z.byteLength/Uint8Array.BYTES_PER_ELEMENT)},Tz1=($)=>{let Z;if(typeof $==="string")Z=bv0($);else Z=$;if(typeof Z!=="object"||typeof Z.byteOffset!=="number"||typeof Z.byteLength!=="number")throw Error("@smithy/util-base64: toBase64 encoder function only accepts string | Uint8Array.");return Ep(Z.buffer,Z.byteOffset,Z.byteLength).toString("base64")};function vs6($,Z,Q,X){return class Y extends Uint8Array{static fromString(J,G="utf-8"){if(typeof J==="string"){if(G==="base64")return Y.mutate(X(J));return Y.mutate(Z(J))}throw Error(`Unsupported conversion from ${typeof J} to Uint8ArrayBlobAdapter.`)}static mutate(J){return Object.setPrototypeOf(J,Y.prototype),J}transformToString(J="utf-8"){if(J==="base64")return Q(this);return $(this)}}}var AU8=($)=>{if(typeof $==="string")return $;if(typeof $!=="object"||typeof $.byteOffset!=="number"||typeof $.byteLength!=="number")throw Error("@smithy/util-utf8: toUtf8 encoder function only accepts string | Uint8Array.");return Ep($.buffer,$.byteOffset,$.byteLength).toString("utf8")},VX=Array.from({length:256},($,Z)=>Z.toString(16).padStart(2,"0"));function xs6($){if(typeof crypto<"u"&&typeof crypto.randomUUID==="function")return()=>crypto.randomUUID();return()=>{let Z=new Uint8Array(16);return $(Z),Z[6]=Z[6]&15|64,Z[8]=Z[8]&63|128,VX[Z[0]]+VX[Z[1]]+VX[Z[2]]+VX[Z[3]]+"-"+VX[Z[4]]+VX[Z[5]]+"-"+VX[Z[6]]+VX[Z[7]]+"-"+VX[Z[8]]+VX[Z[9]]+"-"+VX[Z[10]]+VX[Z[11]]+VX[Z[12]]+VX[Z[13]]+VX[Z[14]]+VX[Z[15]]}}var fs6=($,Z,Q=(X)=>X)=>$,bs6=($)=>{switch($){case"true":return!0;case"false":return!1;default:throw Error(`Unable to parse boolean value "${$}"`)}},ys6=($)=>{if($===null||$===void 0)return;if(typeof $==="number"){if($===0||$===1)R60.warn(vv0(`Expected boolean, got ${typeof $}: ${$}`));if($===0)return!1;if($===1)return!0}if(typeof $==="string"){let Z=$.toLowerCase();if(Z==="false"||Z==="true")R60.warn(vv0(`Expected boolean, got ${typeof $}: ${$}`));if(Z==="false")return!1;if(Z==="true")return!0}if(typeof $==="boolean")return $;throw TypeError(`Expected boolean, got ${typeof $}: ${$}`)},A60=($)=>{if($===null||$===void 0)return;if(typeof $==="string"){let Z=parseFloat($);if(!Number.isNaN(Z)){if(String(Z)!==String($))R60.warn(vv0(`Expected number but observed string: ${$}`));return Z}}if(typeof $==="number")return $;throw TypeError(`Expected number, got ${typeof $}: ${$}`)},gs6=Math.ceil(340282346638528860000000000000000000000),_v0=($)=>{let Z=A60($);if(Z!==void 0&&!Number.isNaN(Z)&&Z!==1/0&&Z!==-1/0){if(Math.abs(Z)>gs6)throw TypeError(`Expected 32-bit float, got ${$}`)}return Z},T60=($)=>{if($===null||$===void 0)return;if(Number.isInteger($)&&!Number.isNaN($))return $;throw TypeError(`Expected integer, got ${typeof $}: ${$}`)},hs6=T60,Ez1=($)=>Rz1($,32),zz1=($)=>Rz1($,16),Pz1=($)=>Rz1($,8),Rz1=($,Z)=>{let Q=T60($);if(Q!==void 0&&us6(Q,Z)!==Q)throw TypeError(`Expected ${Z}-bit integer, got ${$}`);return Q},us6=($,Z)=>{switch(Z){case 32:return Int32Array.of($)[0];case 16:return Int16Array.of($)[0];case 8:return Int8Array.of($)[0]}},ls6=($,Z)=>{if($===null||$===void 0){if(Z)throw TypeError(`Expected a non-null value for ${Z}`);throw TypeError("Expected a non-null value")}return $},TU8=($)=>{if($===null||$===void 0)return;if(typeof $==="object"&&!Array.isArray($))return $;let Z=Array.isArray($)?"array":typeof $;throw TypeError(`Expected object, got ${Z}: ${$}`)},cs6=($)=>{if($===null||$===void 0)return;if(typeof $==="string")return $;if(["boolean","number","bigint"].includes(typeof $))return R60.warn(vv0(`Expected string, got ${typeof $}: ${$}`)),String($);throw TypeError(`Expected string, got ${typeof $}: ${$}`)},ms6=($)=>{if($===null||$===void 0)return;let Z=TU8($),Q=[];for(let X in Z)if(Z[X]!=null)Q.push(X);if(Q.length===0)throw TypeError("Unions must have exactly one non-null member. None were found.");if(Q.length>1)throw TypeError(`Unions must have exactly one non-null member. Keys ${Q} were not null.`);return Z},qz1=($)=>{if(typeof $=="string")return A60(Ap($));return A60($)},ds6=qz1,RU8=($)=>{if(typeof $=="string")return _v0(Ap($));return _v0($)},is6=/(-?(?:0|[1-9]\d*)(?:\.\d+)?(?:[eE][+-]?\d+)?)|(-?Infinity)|(NaN)/g,Ap=($)=>{let Z=$.match(is6);if(Z===null||Z[0].length!==$.length)throw TypeError("Expected real number, got implicit NaN");return parseFloat($)},Mz1=($)=>{if(typeof $=="string")return qU8($);return A60($)},ps6=Mz1,ns6=Mz1,ts6=($)=>{if(typeof $=="string")return qU8($);return _v0($)},qU8=($)=>{switch($){case"NaN":return NaN;case"Infinity":return 1/0;case"-Infinity":return-1/0;default:throw Error(`Unable to parse float value: ${$}`)}},MU8=($)=>{if(typeof $==="string")return T60(Ap($));return T60($)},os6=MU8,rs6=($)=>{if(typeof $==="string")return Ez1(Ap($));return Ez1($)},zp=($)=>{if(typeof $==="string")return zz1(Ap($));return zz1($)},IU8=($)=>{if(typeof $==="string")return Pz1(Ap($));return Pz1($)},vv0=($)=>{return String(TypeError($).stack||$).split(`
|
|
5298
5298
|
`).slice(0,5).filter((Z)=>!Z.includes("stackTraceWarning")).join(`
|
|
5299
5299
|
`)},R60={warn:console.warn},as6=["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],Iz1=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];function ss6($){let Z=$.getUTCFullYear(),Q=$.getUTCMonth(),X=$.getUTCDay(),Y=$.getUTCDate(),J=$.getUTCHours(),G=$.getUTCMinutes(),K=$.getUTCSeconds(),W=Y<10?`0${Y}`:`${Y}`,H=J<10?`0${J}`:`${J}`,F=G<10?`0${G}`:`${G}`,U=K<10?`0${K}`:`${K}`;return`${as6[X]}, ${W} ${Iz1[Q]} ${Z} ${H}:${F}:${U} GMT`}var es6=new RegExp(/^(\d{4})-(\d{2})-(\d{2})[tT](\d{2}):(\d{2}):(\d{2})(?:\.(\d+))?[zZ]$/),$e6=($)=>{if($===null||$===void 0)return;if(typeof $!=="string")throw TypeError("RFC-3339 date-times must be expressed as strings");let Z=es6.exec($);if(!Z)throw TypeError("Invalid RFC-3339 date-time value");let[Q,X,Y,J,G,K,W,H]=Z,F=zp(Pp(X)),U=rU(Y,"month",1,12),N=rU(J,"day",1,31);return z60(F,U,N,{hours:G,minutes:K,seconds:W,fractionalMilliseconds:H})},Ze6=new RegExp(/^(\d{4})-(\d{2})-(\d{2})[tT](\d{2}):(\d{2}):(\d{2})(?:\.(\d+))?(([-+]\d{2}\:\d{2})|[zZ])$/),Qe6=($)=>{if($===null||$===void 0)return;if(typeof $!=="string")throw TypeError("RFC-3339 date-times must be expressed as strings");let Z=Ze6.exec($);if(!Z)throw TypeError("Invalid RFC-3339 date-time value");let[Q,X,Y,J,G,K,W,H,F]=Z,U=zp(Pp(X)),N=rU(Y,"month",1,12),B=rU(J,"day",1,31),O=z60(U,N,B,{hours:G,minutes:K,seconds:W,fractionalMilliseconds:H});if(F.toUpperCase()!="Z")O.setTime(O.getTime()-De6(F));return O},Xe6=new RegExp(/^(?:Mon|Tue|Wed|Thu|Fri|Sat|Sun), (\d{2}) (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) (\d{4}) (\d{1,2}):(\d{2}):(\d{2})(?:\.(\d+))? GMT$/),Ye6=new RegExp(/^(?:Monday|Tuesday|Wednesday|Thursday|Friday|Saturday|Sunday), (\d{2})-(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)-(\d{2}) (\d{1,2}):(\d{2}):(\d{2})(?:\.(\d+))? GMT$/),Je6=new RegExp(/^(?:Mon|Tue|Wed|Thu|Fri|Sat|Sun) (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) ( [1-9]|\d{2}) (\d{1,2}):(\d{2}):(\d{2})(?:\.(\d+))? (\d{4})$/),Ge6=($)=>{if($===null||$===void 0)return;if(typeof $!=="string")throw TypeError("RFC-7231 date-times must be expressed as strings");let Z=Xe6.exec($);if(Z){let[Q,X,Y,J,G,K,W,H]=Z;return z60(zp(Pp(J)),Lz1(Y),rU(X,"day",1,31),{hours:G,minutes:K,seconds:W,fractionalMilliseconds:H})}if(Z=Ye6.exec($),Z){let[Q,X,Y,J,G,K,W,H]=Z;return Fe6(z60(We6(J),Lz1(Y),rU(X,"day",1,31),{hours:G,minutes:K,seconds:W,fractionalMilliseconds:H}))}if(Z=Je6.exec($),Z){let[Q,X,Y,J,G,K,W,H]=Z;return z60(zp(Pp(H)),Lz1(X),rU(Y.trimLeft(),"day",1,31),{hours:J,minutes:G,seconds:K,fractionalMilliseconds:W})}throw TypeError("Invalid RFC-7231 date-time value")},Ke6=($)=>{if($===null||$===void 0)return;let Z;if(typeof $==="number")Z=$;else if(typeof $==="string")Z=qz1($);else if(typeof $==="object"&&$.tag===1)Z=$.value;else throw TypeError("Epoch timestamps must be expressed as floating point numbers or their string representation");if(Number.isNaN(Z)||Z===1/0||Z===-1/0)throw TypeError("Epoch timestamps must be valid, non-Infinite, non-NaN numerics");return new Date(Math.round(Z*1000))},z60=($,Z,Q,X)=>{let Y=Z-1;return Ne6($,Y,Q),new Date(Date.UTC($,Y,Q,rU(X.hours,"hour",0,23),rU(X.minutes,"minute",0,59),rU(X.seconds,"seconds",0,60),Oe6(X.fractionalMilliseconds)))},We6=($)=>{let Z=new Date().getUTCFullYear(),Q=Math.floor(Z/100)*100+zp(Pp($));if(Q<Z)return Q+100;return Q},He6=1576800000000,Fe6=($)=>{if($.getTime()-new Date().getTime()>He6)return new Date(Date.UTC($.getUTCFullYear()-100,$.getUTCMonth(),$.getUTCDate(),$.getUTCHours(),$.getUTCMinutes(),$.getUTCSeconds(),$.getUTCMilliseconds()));return $},Lz1=($)=>{let Z=Iz1.indexOf($);if(Z<0)throw TypeError(`Invalid month: ${$}`);return Z+1},Ue6=[31,28,31,30,31,30,31,31,30,31,30,31],Ne6=($,Z,Q)=>{let X=Ue6[Z];if(Z===1&&Be6($))X=29;if(Q>X)throw TypeError(`Invalid day for ${Iz1[Z]} in ${$}: ${Q}`)},Be6=($)=>{return $%4===0&&($%100!==0||$%400===0)},rU=($,Z,Q,X)=>{let Y=IU8(Pp($));if(Y<Q||Y>X)throw TypeError(`${Z} must be between ${Q} and ${X}, inclusive`);return Y},Oe6=($)=>{if($===null||$===void 0)return 0;return RU8("0."+$)*1000},De6=($)=>{let Z=$[0],Q=1;if(Z=="+")Q=1;else if(Z=="-")Q=-1;else throw TypeError(`Offset direction, ${Z}, must be "+" or "-"`);let X=Number($.substring(1,3)),Y=Number($.substring(4,6));return Q*(X*60+Y)*60*1000},Pp=($)=>{let Z=0;while(Z<$.length-1&&$.charAt(Z)==="0")Z++;if(Z===0)return $;return $.slice(Z)},ty=function(Z){return Object.assign(new String(Z),{deserializeJSON(){return JSON.parse(String(Z))},toString(){return String(Z)},toJSON(){return String(Z)}})};ty.from=($)=>{if($&&typeof $==="object"&&($ instanceof ty||("deserializeJSON"in $)))return $;else if(typeof $==="string"||Object.getPrototypeOf($)===String.prototype)return ty(String($));return ty(JSON.stringify($))};ty.fromObject=ty.from;function Le6($){if($.includes(",")||$.includes('"'))$=`"${$.replace(/"/g,"\\\"")}"`;return $}var Vz1="(?:Mon|Tue|Wed|Thu|Fri|Sat|Sun)(?:[ne|u?r]?s?day)?",kz1="(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)",Sz1="(\\d?\\d):(\\d{2}):(\\d{2})(?:\\.(\\d+))?",VU8="(\\d?\\d)",kU8="(\\d{4})",we6=new RegExp(/^(\d{4})-(\d\d)-(\d\d)[tT](\d\d):(\d\d):(\d\d)(\.(\d+))?(([-+]\d\d:\d\d)|[zZ])$/),je6=new RegExp(`^${Vz1}, ${VU8} ${kz1} ${kU8} ${Sz1} GMT$`),Ee6=new RegExp(`^${Vz1}, ${VU8}-${kz1}-(\\d\\d) ${Sz1} GMT$`),ze6=new RegExp(`^${Vz1} ${kz1} ( [1-9]|\\d\\d) ${Sz1} ${kU8}$`),Pe6=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],Ae6=($)=>{if($==null)return;let Z=NaN;if(typeof $==="number")Z=$;else if(typeof $==="string"){if(!/^-?\d*\.?\d+$/.test($))throw TypeError("parseEpochTimestamp - numeric string invalid.");Z=Number.parseFloat($)}else if(typeof $==="object"&&$.tag===1)Z=$.value;if(isNaN(Z)||Math.abs(Z)===1/0)throw TypeError("Epoch timestamps must be valid finite numbers.");return new Date(Math.round(Z*1000))},Te6=($)=>{if($==null)return;if(typeof $!=="string")throw TypeError("RFC3339 timestamps must be strings");let Z=we6.exec($);if(!Z)throw TypeError(`Invalid RFC3339 timestamp format ${$}`);let[,Q,X,Y,J,G,K,,W,H]=Z;_O(X,1,12),_O(Y,1,31),_O(J,0,23),_O(G,0,59),_O(K,0,60);let F=new Date(Date.UTC(Number(Q),Number(X)-1,Number(Y),Number(J),Number(G),Number(K),Number(W)?Math.round(parseFloat(`0.${W}`)*1000):0));if(F.setUTCFullYear(Number(Q)),H.toUpperCase()!="Z"){let[,U,N,B]=/([+-])(\d\d):(\d\d)/.exec(H)||[void 0,"+",0,0],O=U==="-"?1:-1;F.setTime(F.getTime()+O*(Number(N)*60*60*1000+Number(B)*60*1000))}return F},Re6=($)=>{if($==null)return;if(typeof $!=="string")throw TypeError("RFC7231 timestamps must be strings.");let Z,Q,X,Y,J,G,K,W;if(W=je6.exec($))[,Z,Q,X,Y,J,G,K]=W;else if(W=Ee6.exec($))[,Z,Q,X,Y,J,G,K]=W,X=(Number(X)+1900).toString();else if(W=ze6.exec($))[,Q,Z,Y,J,G,K,X]=W;if(X&&G){let H=Date.UTC(Number(X),Pe6.indexOf(Q),Number(Z),Number(Y),Number(J),Number(G),K?Math.round(parseFloat(`0.${K}`)*1000):0);_O(Z,1,31),_O(Y,0,23),_O(J,0,59),_O(G,0,60);let F=new Date(H);return F.setUTCFullYear(Number(X)),F}throw TypeError(`Invalid RFC7231 date-time value ${$}.`)};function _O($,Z,Q){let X=Number($);if(X<Z||X>Q)throw Error(`Value ${X} out of range [${Z}, ${Q}]`)}function qe6($,Z,Q){if(Q<=0||!Number.isInteger(Q))throw Error("Invalid number of delimiters ("+Q+") for splitEvery.");let X=$.split(Z);if(Q===1)return X;let Y=[],J="";for(let G=0;G<X.length;G++){if(J==="")J=X[G];else J+=Z+X[G];if((G+1)%Q===0)Y.push(J),J=""}if(J!=="")Y.push(J);return Y}var Me6=($)=>{let Z=$.length,Q=[],X=!1,Y=void 0,J=0;for(let G=0;G<Z;++G){let K=$[G];switch(K){case'"':if(Y!=="\\")X=!X;break;case",":if(!X)Q.push($.slice(J,G)),J=G+1;break}Y=K}return Q.push($.slice(J)),Q.map((G)=>{G=G.trim();let K=G.length;if(K<2)return G;if(G[0]==='"'&&G[K-1]==='"')G=G.slice(1,K-1);return G.replace(/\\"/g,'"')})},OU8=/^-?\d*(\.\d+)?$/;class yv0{string;type;constructor($,Z){if(this.string=$,this.type=Z,!OU8.test($))throw Error('@smithy/core/serde - NumericValue must only contain [0-9], at most one decimal point ".", and an optional negation prefix "-".')}toString(){return this.string}static[Symbol.hasInstance]($){if(!$||typeof $!=="object")return!1;let Z=$;return yv0.prototype.isPrototypeOf($)||Z.type==="bigDecimal"&&OU8.test(Z.string)}}function Ie6($){return new yv0(String($),"bigDecimal")}var SU8={},Az1={};for(let $=0;$<256;$++){let Z=$.toString(16).toLowerCase();if(Z.length===1)Z=`0${Z}`;SU8[$]=Z,Az1[Z]=$}function Ve6($){if($.length%2!==0)throw Error("Hex encoded strings must have an even number length");let Z=new Uint8Array($.length/2);for(let Q=0;Q<$.length;Q+=2){let X=$.slice(Q,Q+2).toLowerCase();if(X in Az1)Z[Q/2]=Az1[X];else throw Error(`Cannot decode unrecognized sequence ${X} as hexadecimal`)}return Z}function CU8($){let Z="";for(let Q=0;Q<$.byteLength;Q++)Z+=SU8[$[Q]];return Z}var ke6=($)=>{if(!$)return 0;if(typeof $==="string")return Buffer.byteLength($);else if(typeof $.byteLength==="number")return $.byteLength;else if(typeof $.size==="number")return $.size;else if(typeof $.start==="number"&&typeof $.end==="number")return $.end+1-$.start;else if($ instanceof Dz1.ReadStream){if($.path!=null)return Dz1.lstatSync($.path).size;else if(typeof $.fd==="number")return Dz1.fstatSync($.fd).size}throw Error(`Body Length computation failed for ${$}`)},_U8=($)=>{if(typeof $==="string")return bv0($);if(ArrayBuffer.isView($))return new Uint8Array($.buffer,$.byteOffset,$.byteLength/Uint8Array.BYTES_PER_ELEMENT);return new Uint8Array($)},vU8=($,Z)=>(Q,X)=>async(Y)=>{let{response:J}=await Q(Y);try{let G=await Z(J,$);return{response:J,output:G}}catch(G){if(Object.defineProperty(G,"$response",{value:J,enumerable:!1,writable:!1,configurable:!1}),!("$metadata"in G)){try{G.message+=`
|
|
5300
5300
|
Deserialization error: to see the raw response, inspect the hidden field {error}.$response on this object.`}catch(W){if(!X.logger||X.logger?.constructor?.name==="NoOpLogger")console.warn("Deserialization error: to see the raw response, inspect the hidden field {error}.$response on this object.");else X.logger?.warn?.("Deserialization error: to see the raw response, inspect the hidden field {error}.$response on this object.")}if(typeof G.$responseBodyText<"u"){if(G.$response)G.$response.body=G.$responseBodyText}try{if(Ss6.HttpResponse.isInstance(J)){let{headers:W={}}=J,H=Object.entries(W);G.$metadata={httpStatusCode:J.statusCode,requestId:wz1(/^x-[\w-]+-request-?id$/,H),extendedRequestId:wz1(/^x-[\w-]+-id-2$/,H),cfId:wz1(/^x-[\w-]+-cf-id$/,H)}}}catch(W){}}throw G}},wz1=($,Z)=>{return(Z.find(([Q])=>{return Q.match($)})||[void 0,void 0])[1]},xU8=($,Z)=>(Q,X)=>async(Y)=>{let J=$,G=X.endpointV2?async()=>Cs6.toEndpointV1(X.endpointV2):J.endpoint;if(!G)throw Error("No valid endpoint provider available.");let K=await Z(Y.input,{...$,endpoint:G});return Q({...Y,request:K})},fU8={name:"deserializerMiddleware",step:"deserialize",tags:["DESERIALIZER"],override:!0},bU8={name:"serializerMiddleware",step:"serialize",tags:["SERIALIZER"],override:!0};function Se6($,Z,Q){return{applyToStack:(X)=>{X.add(vU8($,Q),fU8),X.add(xU8($,Z),bU8)}}}class yU8{algorithmIdentifier;secret;hash;constructor($,Z){this.algorithmIdentifier=$,this.secret=Z,this.reset()}update($,Z){this.hash.update(_U8(DU8($,Z)))}digest(){return Promise.resolve(this.hash.digest())}reset(){this.hash=this.secret?jz1.createHmac(this.algorithmIdentifier,DU8(this.secret)):jz1.createHash(this.algorithmIdentifier)}}function DU8($,Z){if(Buffer.isBuffer($))return $;if(typeof $==="string")return fv0($,Z);if(ArrayBuffer.isView($))return Ep($.buffer,$.byteOffset,$.byteLength);return Ep($)}var gU8=class extends oU.Duplex{expectedChecksum;checksumSourceLocation;checksum;source;base64Encoder;pendingCallback=null;constructor({expectedChecksum:Z,checksum:Q,source:X,checksumSourceLocation:Y,base64Encoder:J}){super();if(typeof X.pipe==="function")this.source=X;else throw Error(`@smithy/util-stream: unsupported source type ${X?.constructor?.name??X} in ChecksumStream.`);this.base64Encoder=J??Tz1,this.expectedChecksum=Z,this.checksum=Q,this.checksumSourceLocation=Y,this.source.pipe(this)}_read(Z){if(this.pendingCallback){let Q=this.pendingCallback;this.pendingCallback=null,Q()}}_write(Z,Q,X){try{if(this.checksum.update(Z),!this.push(Z)){this.pendingCallback=X;return}}catch(Y){return X(Y)}return X()}async _final(Z){try{let Q=await this.checksum.digest(),X=this.base64Encoder(Q);if(this.expectedChecksum!==X)return Z(Error(`Checksum mismatch: expected "${this.expectedChecksum}" but received "${X}" in response header "${this.checksumSourceLocation}".`))}catch(Q){return Z(Q)}return this.push(null),Z()}},vO=($)=>typeof ReadableStream==="function"&&($?.constructor?.name===ReadableStream.name||$ instanceof ReadableStream),hU8=($)=>{return typeof Blob==="function"&&($?.constructor?.name===Blob.name||$ instanceof Blob)},Ce6=($)=>new TextEncoder().encode($),uU8="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",LU8=Object.entries(uU8).reduce(($,[Z,Q])=>{return $[Q]=Number(Z),$},{}),_e6=uU8.split(""),wp=6,P60=8,ve6=63;function lU8($){let Z;if(typeof $==="string")Z=Ce6($);else Z=$;let Q=typeof Z==="object"&&typeof Z.length==="number",X=typeof Z==="object"&&typeof Z.byteOffset==="number"&&typeof Z.byteLength==="number";if(!Q&&!X)throw Error("@smithy/util-base64: toBase64 encoder function only accepts string | Uint8Array.");let Y="";for(let J=0;J<Z.length;J+=3){let G=0,K=0;for(let H=J,F=Math.min(J+3,Z.length);H<F;H++)G|=Z[H]<<(F-H-1)*P60,K+=P60;let W=Math.ceil(K/wp);G<<=W*wp-K;for(let H=1;H<=W;H++){let F=(W-H)*wp;Y+=_e6[(G&ve6<<F)>>F]}Y+="==".slice(0,4-W)}return Y}var xe6=typeof ReadableStream==="function"?ReadableStream:function(){};class cU8 extends xe6{}var fe6=({expectedChecksum:$,checksum:Z,source:Q,checksumSourceLocation:X,base64Encoder:Y})=>{if(!vO(Q))throw Error(`@smithy/util-stream: unsupported source type ${Q?.constructor?.name??Q} in ChecksumStream.`);let J=Y??lU8;if(typeof TransformStream!=="function")throw Error("@smithy/util-stream: unable to instantiate ChecksumStream because API unavailable: ReadableStream/TransformStream.");let G=new TransformStream({start(){},async transform(W,H){Z.update(W),H.enqueue(W)},async flush(W){let H=await Z.digest(),F=J(H);if($!==F){let U=Error(`Checksum mismatch: expected "${$}" but received "${F}" in response header "${X}".`);W.error(U)}else W.terminate()}});Q.pipeThrough(G);let K=G.readable;return Object.setPrototypeOf(K,cU8.prototype),K};function be6($){if(typeof ReadableStream==="function"&&vO($.source))return fe6($);return new gU8($)}class xv0{allocByteArray;byteLength=0;byteArrays=[];constructor($){this.allocByteArray=$}push($){this.byteArrays.push($),this.byteLength+=$.byteLength}flush(){if(this.byteArrays.length===1){let Q=this.byteArrays[0];return this.reset(),Q}let $=this.allocByteArray(this.byteLength),Z=0;for(let Q=0;Q<this.byteArrays.length;++Q){let X=this.byteArrays[Q];$.set(X,Z),Z+=X.byteLength}return this.reset(),$}reset(){this.byteArrays=[],this.byteLength=0}}function ye6($,Z,Q){let X=$.getReader(),Y=!1,J=0,G=["",new xv0((H)=>new Uint8Array(H))],K=-1,W=async(H)=>{let{value:F,done:U}=await X.read(),N=F;if(U){if(K!==-1){let B=jp(G,K);if(ME(B)>0)H.enqueue(B)}H.close()}else{let B=dU8(N,!1);if(K!==B){if(K>=0)H.enqueue(jp(G,K));K=B}if(K===-1){H.enqueue(N);return}let O=ME(N);J+=O;let L=ME(G[K]);if(O>=Z&&L===0)H.enqueue(N);else{let w=mU8(G,K,N);if(!Y&&J>Z*2)Y=!0,Q?.warn(`@smithy/util-stream - stream chunk size ${O} is below threshold of ${Z}, automatically buffering.`);if(w>=Z)H.enqueue(jp(G,K));else await W(H)}}};return new ReadableStream({pull:W})}function mU8($,Z,Q){switch(Z){case 0:return $[0]+=Q,ME($[0]);case 1:case 2:return $[Z].push(Q),ME($[Z])}}function jp($,Z){switch(Z){case 0:let Q=$[0];return $[0]="",Q;case 1:case 2:return $[Z].flush()}throw Error(`@smithy/util-stream - invalid index ${Z} given to flush()`)}function ME($){return $?.byteLength??$?.length??0}function dU8($,Z=!0){if(Z&&typeof Buffer<"u"&&$ instanceof Buffer)return 2;if($ instanceof Uint8Array)return 1;if(typeof $==="string")return 0;return-1}function ge6($,Z,Q){if(vO($))return ye6($,Z,Q);let X=new oU.Readable({read(){}}),Y=!1,J=0,G=["",new xv0((W)=>new Uint8Array(W)),new xv0((W)=>Buffer.from(new Uint8Array(W)))],K=-1;return $.on("data",(W)=>{let H=dU8(W,!0);if(K!==H){if(K>=0)X.push(jp(G,K));K=H}if(K===-1){X.push(W);return}let F=ME(W);J+=F;let U=ME(G[K]);if(F>=Z&&U===0)X.push(W);else{let N=mU8(G,K,W);if(!Y&&J>Z*2)Y=!0,Q?.warn(`@smithy/util-stream - stream chunk size ${F} is below threshold of ${Z}, automatically buffering.`);if(N>=Z)X.push(jp(G,K))}}),$.on("end",()=>{if(K!==-1){let W=jp(G,K);if(ME(W)>0)X.push(W)}X.push(null)}),X}var he6=($,Z)=>{let{base64Encoder:Q,bodyLengthChecker:X,checksumAlgorithmFn:Y,checksumLocationName:J,streamHasher:G}=Z,K=Q!==void 0&&X!==void 0&&Y!==void 0&&J!==void 0&&G!==void 0,W=K?G(Y,$):void 0,H=$.getReader();return new ReadableStream({async pull(F){let{value:U,done:N}=await H.read();if(N){if(F.enqueue(`0\r
|