watchbell 1.2.1 → 1.2.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +34 -11
- package/bin/watchbell.mjs +731 -44
- package/package.json +1 -1
- package/scripts/node-runtime.mjs +166 -0
- package/scripts/selfhost-log.mjs +116 -0
- package/server/.next/BUILD_ID +1 -1
- package/server/.next/build-manifest.json +3 -3
- package/server/.next/prerender-manifest.json +3 -3
- package/server/.next/server/app/(console)/(private)/ai/agents/page/server-reference-manifest.json +11 -11
- package/server/.next/server/app/(console)/(private)/ai/agents/page.js +47 -46
- package/server/.next/server/app/(console)/(private)/ai/agents/page.js.nft.json +1 -1
- package/server/.next/server/app/(console)/(private)/ai/agents/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/(console)/(private)/ai/ask/page/server-reference-manifest.json +10 -10
- package/server/.next/server/app/(console)/(private)/ai/ask/page.js +47 -46
- package/server/.next/server/app/(console)/(private)/ai/ask/page.js.nft.json +1 -1
- package/server/.next/server/app/(console)/(private)/ai/ask/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/(console)/(private)/ai/connect/page/server-reference-manifest.json +9 -9
- package/server/.next/server/app/(console)/(private)/ai/connect/page.js +47 -46
- package/server/.next/server/app/(console)/(private)/ai/connect/page.js.nft.json +1 -1
- package/server/.next/server/app/(console)/(private)/ai/connect/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/(console)/(private)/ai/keys/page/server-reference-manifest.json +12 -12
- package/server/.next/server/app/(console)/(private)/ai/keys/page.js +47 -46
- package/server/.next/server/app/(console)/(private)/ai/keys/page.js.nft.json +1 -1
- package/server/.next/server/app/(console)/(private)/ai/keys/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/(console)/(private)/ai/logs/page/server-reference-manifest.json +10 -10
- package/server/.next/server/app/(console)/(private)/ai/logs/page.js +47 -46
- package/server/.next/server/app/(console)/(private)/ai/logs/page.js.nft.json +1 -1
- package/server/.next/server/app/(console)/(private)/ai/logs/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/(console)/(private)/ai/models/page/server-reference-manifest.json +19 -19
- package/server/.next/server/app/(console)/(private)/ai/models/page.js +47 -46
- package/server/.next/server/app/(console)/(private)/ai/models/page.js.nft.json +1 -1
- package/server/.next/server/app/(console)/(private)/ai/models/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/(console)/(private)/ai/page/server-reference-manifest.json +9 -9
- package/server/.next/server/app/(console)/(private)/ai/page.js +47 -46
- package/server/.next/server/app/(console)/(private)/ai/page.js.nft.json +1 -1
- package/server/.next/server/app/(console)/(private)/ai/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/(console)/(private)/ai/playground/page/server-reference-manifest.json +12 -12
- package/server/.next/server/app/(console)/(private)/ai/playground/page.js +47 -46
- package/server/.next/server/app/(console)/(private)/ai/playground/page.js.nft.json +1 -1
- package/server/.next/server/app/(console)/(private)/ai/playground/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/(console)/(private)/ai/providers/page/server-reference-manifest.json +15 -15
- package/server/.next/server/app/(console)/(private)/ai/providers/page.js +47 -46
- package/server/.next/server/app/(console)/(private)/ai/providers/page.js.nft.json +1 -1
- package/server/.next/server/app/(console)/(private)/ai/providers/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/(console)/(private)/ai/quota/page/server-reference-manifest.json +10 -10
- package/server/.next/server/app/(console)/(private)/ai/quota/page.js +47 -46
- package/server/.next/server/app/(console)/(private)/ai/quota/page.js.nft.json +1 -1
- package/server/.next/server/app/(console)/(private)/ai/quota/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/(console)/(private)/ai/usage/page/server-reference-manifest.json +10 -10
- package/server/.next/server/app/(console)/(private)/ai/usage/page.js +47 -46
- package/server/.next/server/app/(console)/(private)/ai/usage/page.js.nft.json +1 -1
- package/server/.next/server/app/(console)/(private)/ai/usage/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/(console)/(private)/api-docs/[[...op]]/page/server-reference-manifest.json +9 -9
- package/server/.next/server/app/(console)/(private)/api-docs/[[...op]]/page.js +47 -46
- package/server/.next/server/app/(console)/(private)/api-docs/[[...op]]/page.js.nft.json +1 -1
- package/server/.next/server/app/(console)/(private)/api-docs/[[...op]]/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/(console)/(private)/auto-actions/page/server-reference-manifest.json +10 -10
- package/server/.next/server/app/(console)/(private)/auto-actions/page.js +47 -46
- package/server/.next/server/app/(console)/(private)/auto-actions/page.js.nft.json +1 -1
- package/server/.next/server/app/(console)/(private)/auto-actions/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/(console)/alerts/page/server-reference-manifest.json +22 -22
- package/server/.next/server/app/(console)/alerts/page.js +47 -46
- package/server/.next/server/app/(console)/alerts/page.js.nft.json +1 -1
- package/server/.next/server/app/(console)/alerts/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/(console)/apps/[id]/page/server-reference-manifest.json +26 -26
- package/server/.next/server/app/(console)/apps/[id]/page.js +47 -46
- package/server/.next/server/app/(console)/apps/[id]/page.js.nft.json +1 -1
- package/server/.next/server/app/(console)/apps/[id]/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/(console)/apps/page/server-reference-manifest.json +12 -12
- package/server/.next/server/app/(console)/apps/page.js +47 -46
- package/server/.next/server/app/(console)/apps/page.js.nft.json +1 -1
- package/server/.next/server/app/(console)/apps/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/(console)/backups/page/server-reference-manifest.json +12 -12
- package/server/.next/server/app/(console)/backups/page.js +47 -46
- package/server/.next/server/app/(console)/backups/page.js.nft.json +1 -1
- package/server/.next/server/app/(console)/backups/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/(console)/catalog/page/server-reference-manifest.json +9 -9
- package/server/.next/server/app/(console)/catalog/page.js +47 -46
- package/server/.next/server/app/(console)/catalog/page.js.nft.json +1 -1
- package/server/.next/server/app/(console)/catalog/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/(console)/connections/page/server-reference-manifest.json +20 -20
- package/server/.next/server/app/(console)/connections/page.js +47 -46
- package/server/.next/server/app/(console)/connections/page.js.nft.json +1 -1
- package/server/.next/server/app/(console)/connections/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/(console)/d1/page/server-reference-manifest.json +9 -9
- package/server/.next/server/app/(console)/d1/page.js +47 -46
- package/server/.next/server/app/(console)/d1/page.js.nft.json +1 -1
- package/server/.next/server/app/(console)/d1/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/(console)/deployments/page/server-reference-manifest.json +15 -15
- package/server/.next/server/app/(console)/deployments/page.js +47 -46
- package/server/.next/server/app/(console)/deployments/page.js.nft.json +1 -1
- package/server/.next/server/app/(console)/deployments/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/(console)/dns/page/server-reference-manifest.json +16 -16
- package/server/.next/server/app/(console)/dns/page.js +47 -46
- package/server/.next/server/app/(console)/dns/page.js.nft.json +1 -1
- package/server/.next/server/app/(console)/dns/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/(console)/domains/page/server-reference-manifest.json +11 -11
- package/server/.next/server/app/(console)/domains/page.js +47 -46
- package/server/.next/server/app/(console)/domains/page.js.nft.json +1 -1
- package/server/.next/server/app/(console)/domains/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/(console)/events/page/server-reference-manifest.json +9 -9
- package/server/.next/server/app/(console)/events/page.js +47 -46
- package/server/.next/server/app/(console)/events/page.js.nft.json +1 -1
- package/server/.next/server/app/(console)/events/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/(console)/firebase/page/server-reference-manifest.json +16 -16
- package/server/.next/server/app/(console)/firebase/page.js +47 -46
- package/server/.next/server/app/(console)/firebase/page.js.nft.json +1 -1
- package/server/.next/server/app/(console)/firebase/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/(console)/logs/page/server-reference-manifest.json +10 -10
- package/server/.next/server/app/(console)/logs/page.js +47 -46
- package/server/.next/server/app/(console)/logs/page.js.nft.json +1 -1
- package/server/.next/server/app/(console)/logs/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/(console)/manage/sections/page/server-reference-manifest.json +10 -10
- package/server/.next/server/app/(console)/manage/sections/page.js +47 -46
- package/server/.next/server/app/(console)/manage/sections/page.js.nft.json +1 -1
- package/server/.next/server/app/(console)/manage/sections/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/(console)/neon/page/server-reference-manifest.json +20 -20
- package/server/.next/server/app/(console)/neon/page.js +47 -46
- package/server/.next/server/app/(console)/neon/page.js.nft.json +1 -1
- package/server/.next/server/app/(console)/neon/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/(console)/overview/page/server-reference-manifest.json +19 -19
- package/server/.next/server/app/(console)/overview/page.js +47 -46
- package/server/.next/server/app/(console)/overview/page.js.nft.json +1 -1
- package/server/.next/server/app/(console)/overview/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/(console)/repos/[id]/page/server-reference-manifest.json +10 -10
- package/server/.next/server/app/(console)/repos/[id]/page.js +47 -46
- package/server/.next/server/app/(console)/repos/[id]/page.js.nft.json +1 -1
- package/server/.next/server/app/(console)/repos/[id]/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/(console)/repos/page/server-reference-manifest.json +9 -9
- package/server/.next/server/app/(console)/repos/page.js +47 -46
- package/server/.next/server/app/(console)/repos/page.js.nft.json +1 -1
- package/server/.next/server/app/(console)/repos/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/(console)/settings/page/server-reference-manifest.json +19 -19
- package/server/.next/server/app/(console)/settings/page.js +47 -46
- package/server/.next/server/app/(console)/settings/page.js.nft.json +1 -1
- package/server/.next/server/app/(console)/settings/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/(console)/sql/page/server-reference-manifest.json +16 -16
- package/server/.next/server/app/(console)/sql/page.js +47 -46
- package/server/.next/server/app/(console)/sql/page.js.nft.json +1 -1
- package/server/.next/server/app/(console)/sql/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/(console)/status/page/server-reference-manifest.json +9 -9
- package/server/.next/server/app/(console)/status/page.js +47 -46
- package/server/.next/server/app/(console)/status/page.js.nft.json +1 -1
- package/server/.next/server/app/(console)/status/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/(console)/supabase/page/server-reference-manifest.json +30 -30
- package/server/.next/server/app/(console)/supabase/page.js +47 -46
- package/server/.next/server/app/(console)/supabase/page.js.nft.json +1 -1
- package/server/.next/server/app/(console)/supabase/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/(console)/topology/page/server-reference-manifest.json +9 -9
- package/server/.next/server/app/(console)/topology/page.js +47 -46
- package/server/.next/server/app/(console)/topology/page.js.nft.json +1 -1
- package/server/.next/server/app/(console)/topology/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/(console)/turso/page/server-reference-manifest.json +9 -9
- package/server/.next/server/app/(console)/turso/page.js +47 -46
- package/server/.next/server/app/(console)/turso/page.js.nft.json +1 -1
- package/server/.next/server/app/(console)/turso/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/(console)/upstash/page/server-reference-manifest.json +9 -9
- package/server/.next/server/app/(console)/upstash/page.js +47 -46
- package/server/.next/server/app/(console)/upstash/page.js.nft.json +1 -1
- package/server/.next/server/app/(console)/upstash/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/(console)/uptime/page/server-reference-manifest.json +23 -23
- package/server/.next/server/app/(console)/uptime/page.js +47 -46
- package/server/.next/server/app/(console)/uptime/page.js.nft.json +1 -1
- package/server/.next/server/app/(console)/uptime/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/(console)/welcome/page/server-reference-manifest.json +14 -14
- package/server/.next/server/app/(console)/welcome/page.js +47 -46
- package/server/.next/server/app/(console)/welcome/page.js.nft.json +1 -1
- package/server/.next/server/app/(console)/welcome/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/_global-error/page/server-reference-manifest.json +1 -1
- package/server/.next/server/app/_global-error/page.js.nft.json +1 -1
- package/server/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/_global-error.html +1 -1
- package/server/.next/server/app/_global-error.rsc +4 -4
- package/server/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +3 -3
- package/server/.next/server/app/_global-error.segments/_full.segment.rsc +4 -4
- package/server/.next/server/app/_global-error.segments/_tree.segment.rsc +2 -2
- package/server/.next/server/app/_not-found/page/server-reference-manifest.json +1 -1
- package/server/.next/server/app/_not-found/page.js.nft.json +1 -1
- package/server/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/_not-found.html +1 -1
- package/server/.next/server/app/_not-found.rsc +5 -5
- package/server/.next/server/app/_not-found.segments/_full.segment.rsc +5 -5
- package/server/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +4 -4
- package/server/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
- package/server/.next/server/app/account/password/page/server-reference-manifest.json +2 -2
- package/server/.next/server/app/account/password/page.js.nft.json +1 -1
- package/server/.next/server/app/account/password/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/api/collect/route/server-reference-manifest.json +7 -7
- package/server/.next/server/app/api/collect/route.js +24 -24
- package/server/.next/server/app/api/collect/route.js.nft.json +1 -1
- package/server/.next/server/app/api/daily/route/server-reference-manifest.json +7 -7
- package/server/.next/server/app/api/daily/route.js +24 -24
- package/server/.next/server/app/api/daily/route.js.nft.json +1 -1
- package/server/.next/server/app/api/ping/[...parts]/route.js.nft.json +1 -1
- package/server/.next/server/app/api/status/route.js.nft.json +1 -1
- package/server/.next/server/app/api/telegram/webhook/route/server-reference-manifest.json +7 -7
- package/server/.next/server/app/api/telegram/webhook/route.js +23 -23
- package/server/.next/server/app/api/telegram/webhook/route.js.nft.json +1 -1
- package/server/.next/server/app/api/v1/advice/route.js +3 -3
- package/server/.next/server/app/api/v1/advice/route.js.nft.json +1 -1
- package/server/.next/server/app/api/v1/ai/chat/completions/route.js +1 -1
- package/server/.next/server/app/api/v1/ai/chat/completions/route.js.nft.json +1 -1
- package/server/.next/server/app/api/v1/ai/models/route.js +1 -1
- package/server/.next/server/app/api/v1/ai/models/route.js.nft.json +1 -1
- package/server/.next/server/app/api/v1/ai/questions/[id]/route.js.nft.json +1 -1
- package/server/.next/server/app/api/v1/ai/questions/route.js +3 -3
- package/server/.next/server/app/api/v1/ai/questions/route.js.nft.json +1 -1
- package/server/.next/server/app/api/v1/mcp/route.js +2 -2
- package/server/.next/server/app/api/v1/mcp/route.js.nft.json +1 -1
- package/server/.next/server/app/api/v1/me/route.js.nft.json +1 -1
- package/server/.next/server/app/api/v1/openapi.json/route.js.nft.json +1 -1
- package/server/.next/server/app/api/v1/status/apps/[app]/route.js +3 -3
- package/server/.next/server/app/api/v1/status/apps/[app]/route.js.nft.json +1 -1
- package/server/.next/server/app/api/v1/status/route.js +3 -3
- package/server/.next/server/app/api/v1/status/route.js.nft.json +1 -1
- package/server/.next/server/app/api/watchdog/route.js +4 -4
- package/server/.next/server/app/api/watchdog/route.js.nft.json +1 -1
- package/server/.next/server/app/auth/confirm/route.js.nft.json +1 -1
- package/server/.next/server/app/auth/google/callback/route.js +2 -2
- package/server/.next/server/app/auth/google/callback/route.js.nft.json +1 -1
- package/server/.next/server/app/auth/google/create/callback/route.js.nft.json +1 -1
- package/server/.next/server/app/auth/not-member/route.js.nft.json +1 -1
- package/server/.next/server/app/auth/session-ended/route.js.nft.json +1 -1
- package/server/.next/server/app/invite/page/server-reference-manifest.json +2 -2
- package/server/.next/server/app/invite/page.js.nft.json +1 -1
- package/server/.next/server/app/invite/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/mfa/page/server-reference-manifest.json +2 -2
- package/server/.next/server/app/mfa/page.js.nft.json +1 -1
- package/server/.next/server/app/mfa/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/mfa/setup/page/server-reference-manifest.json +3 -3
- package/server/.next/server/app/mfa/setup/page.js.nft.json +1 -1
- package/server/.next/server/app/mfa/setup/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/page/server-reference-manifest.json +1 -1
- package/server/.next/server/app/page.js.nft.json +1 -1
- package/server/.next/server/app/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/s/[slug]/badge/[file]/route.js.nft.json +1 -1
- package/server/.next/server/app/s/[slug]/page/server-reference-manifest.json +1 -1
- package/server/.next/server/app/s/[slug]/page.js.nft.json +1 -1
- package/server/.next/server/app/s/[slug]/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/setup/page/server-reference-manifest.json +2 -2
- package/server/.next/server/app/setup/page.js.nft.json +1 -1
- package/server/.next/server/app/setup/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/signin/page/server-reference-manifest.json +3 -3
- package/server/.next/server/app/signin/page.js.nft.json +1 -1
- package/server/.next/server/app/signin/page_client-reference-manifest.js +1 -1
- package/server/.next/server/chunks/{[externals]__0dolpidprtypa._.js → [externals]__0y_x27mdj85p4._.js} +1 -1
- package/server/.next/server/chunks/{[externals]__0pfohce9kbhcc._.js → [externals]__1fzfzd0ia0sk6._.js} +1 -1
- package/server/.next/server/chunks/{[externals]__1ou2ofma806s1._.js → [externals]__1qqyrxnupegg3._.js} +1 -1
- package/server/.next/server/chunks/{[root-of-the-server]__0wbhuhlkn_ueu._.js → [root-of-the-server]__0-ytbad9hn7uc._.js} +2 -2
- package/server/.next/server/chunks/{[root-of-the-server]__1cbg6fvn16har._.js → [root-of-the-server]__0032rbj2s87zo._.js} +2 -2
- package/server/.next/server/chunks/{[root-of-the-server]__163-eo1vkbzx1._.js → [root-of-the-server]__03i6yscmtbhhg._.js} +2 -2
- package/server/.next/server/chunks/{[root-of-the-server]__1x9u88f9545aa._.js → [root-of-the-server]__05qcc-0e8z1u8._.js} +2 -2
- package/server/.next/server/chunks/{[root-of-the-server]__1p1k8nq50cwfy._.js → [root-of-the-server]__07bw6o0jc31yr._.js} +2 -2
- package/server/.next/server/chunks/{[root-of-the-server]__14pgqdfdkuopi._.js → [root-of-the-server]__07eo--c90cju2._.js} +2 -2
- package/server/.next/server/chunks/{[root-of-the-server]__0iysztx_xio84._.js → [root-of-the-server]__07mzeijv31avl._.js} +2 -2
- package/server/.next/server/chunks/{[root-of-the-server]__05ht00n_eiksb._.js → [root-of-the-server]__090in165mp6av._.js} +1 -1
- package/server/.next/server/chunks/{[root-of-the-server]__0403hy52a1qcu._.js → [root-of-the-server]__0_nljmqhjcept._.js} +1 -1
- package/server/.next/server/chunks/{[root-of-the-server]__08k886n7y6f_3._.js → [root-of-the-server]__0awtaloe4_8am._.js} +1 -1
- package/server/.next/server/chunks/{[root-of-the-server]__0b136ghrklbbn._.js → [root-of-the-server]__0dsy-9ts8s-pn._.js} +1 -1
- package/server/.next/server/chunks/{[root-of-the-server]__0hvejly8-nlkq._.js → [root-of-the-server]__0g1cifa7hd790._.js} +1 -1
- package/server/.next/server/chunks/{[root-of-the-server]__0pwn8go30dm_3._.js → [root-of-the-server]__0hblpf7wqke-j._.js} +2 -2
- package/server/.next/server/chunks/[root-of-the-server]__0hedtycoyydoc._.js +3 -0
- package/server/.next/server/chunks/{[root-of-the-server]__0kgmy-sltdtb_._.js → [root-of-the-server]__0hlyn_aj72sn5._.js} +2 -2
- package/server/.next/server/chunks/{[root-of-the-server]__0w8qhgmo5c23i._.js → [root-of-the-server]__0hnljrh9qi9t-._.js} +2 -2
- package/server/.next/server/chunks/{[root-of-the-server]__0xgl1cg3z00iz._.js → [root-of-the-server]__0hrtz5c_46jkw._.js} +1 -1
- package/server/.next/server/chunks/{[root-of-the-server]__0cskq__p3tja8._.js → [root-of-the-server]__0ihedjvt-l2-u._.js} +2 -2
- package/server/.next/server/chunks/[root-of-the-server]__0iicsi0n7tfa5._.js +3 -0
- package/server/.next/server/chunks/{[root-of-the-server]__0dc0pz57q73va._.js → [root-of-the-server]__0kp0yx909wtab._.js} +1 -1
- package/server/.next/server/chunks/{[root-of-the-server]__1w-yk3b07wcf1._.js → [root-of-the-server]__0l6_iao04u72h._.js} +2 -2
- package/server/.next/server/chunks/{[root-of-the-server]__1yzaj148hs9a1._.js → [root-of-the-server]__0l9ja3579qrju._.js} +2 -2
- package/server/.next/server/chunks/{[root-of-the-server]__1r9j5o80kocvz._.js → [root-of-the-server]__0lu91s5izfu0p._.js} +2 -2
- package/server/.next/server/chunks/{[root-of-the-server]__0_64c807n6q9e._.js → [root-of-the-server]__0noc6l63d3l9w._.js} +2 -2
- package/server/.next/server/chunks/{[root-of-the-server]__04zuzs7oruu3o._.js → [root-of-the-server]__0nrg8zzqizk69._.js} +2 -2
- package/server/.next/server/chunks/{[root-of-the-server]__1lbmzw1j9jufm._.js → [root-of-the-server]__0oy0hcm48kl-q._.js} +2 -2
- package/server/.next/server/chunks/{[root-of-the-server]__0l5v9itfv9nhr._.js → [root-of-the-server]__0q-x05ekhpohj._.js} +1 -1
- package/server/.next/server/chunks/[root-of-the-server]__0r1men25anfgb._.js +3 -0
- package/server/.next/server/chunks/{[root-of-the-server]__01estsu5k8l4t._.js → [root-of-the-server]__0s8vjz6urzn76._.js} +1 -1
- package/server/.next/server/chunks/{[root-of-the-server]__04ruh9diphqtp._.js → [root-of-the-server]__0u3un538__ca5._.js} +2 -2
- package/server/.next/server/chunks/{[root-of-the-server]__1ry92m8xlcebk._.js → [root-of-the-server]__0v-gc-c_e8pwl._.js} +2 -2
- package/server/.next/server/chunks/{[root-of-the-server]__0t9o5ca5bzg0p._.js → [root-of-the-server]__0x487cn6dsn12._.js} +2 -2
- package/server/.next/server/chunks/{[root-of-the-server]__11qvos_7nf8z8._.js → [root-of-the-server]__0yuyew8m9dc6-._.js} +1 -1
- package/server/.next/server/chunks/[root-of-the-server]__0zmvf4j8e2gno._.js +3 -0
- package/server/.next/server/chunks/{[root-of-the-server]__1w9hei9xe1odr._.js → [root-of-the-server]__0zni_2pv2fdgb._.js} +2 -2
- package/server/.next/server/chunks/[root-of-the-server]__10wbld2tja51-._.js +3 -0
- package/server/.next/server/chunks/{[root-of-the-server]__10mob-6xfy8b0._.js → [root-of-the-server]__125fkw52kl2ty._.js} +2 -2
- package/server/.next/server/chunks/[root-of-the-server]__13hrm9c61i7uk._.js +3 -0
- package/server/.next/server/chunks/[root-of-the-server]__14ou3bydfm0ms._.js +3 -0
- package/server/.next/server/chunks/{[root-of-the-server]__1xrt934xl5wbd._.js → [root-of-the-server]__15dhjj384tuw_._.js} +2 -2
- package/server/.next/server/chunks/{[root-of-the-server]__1vmls0bkau925._.js → [root-of-the-server]__16waq6rapvngp._.js} +2 -2
- package/server/.next/server/chunks/[root-of-the-server]__18eg-mk5loj_8._.js +3 -0
- package/server/.next/server/chunks/[root-of-the-server]__19ylbgd65iej4._.js +3 -0
- package/server/.next/server/chunks/{[root-of-the-server]__1vutb2z9gw8el._.js → [root-of-the-server]__1adw_bv2u89kc._.js} +1 -1
- package/server/.next/server/chunks/[root-of-the-server]__1brl5otpkvgd3._.js +3 -0
- package/server/.next/server/chunks/{[root-of-the-server]__00wz8qo4hgq2i._.js → [root-of-the-server]__1c78cu7kb9vkl._.js} +2 -2
- package/server/.next/server/chunks/[root-of-the-server]__1d5y0cc5mg_07._.js +3 -0
- package/server/.next/server/chunks/{[root-of-the-server]__1zcp6yrat15t5._.js → [root-of-the-server]__1dbz126yujh44._.js} +2 -2
- package/server/.next/server/chunks/{[root-of-the-server]__0m9648az7bkus._.js → [root-of-the-server]__1dh4di29mjq9y._.js} +2 -2
- package/server/.next/server/chunks/[root-of-the-server]__1e1l75cf48ph2._.js +3 -0
- package/server/.next/server/chunks/[root-of-the-server]__1eu2_f44as742._.js +3 -0
- package/server/.next/server/chunks/{[root-of-the-server]__1-bvfylgbkjso._.js → [root-of-the-server]__1jsf0jf_ljpsm._.js} +2 -2
- package/server/.next/server/chunks/{[root-of-the-server]__1fj8d0drhw1yx._.js → [root-of-the-server]__1lerees-l5-6c._.js} +2 -2
- package/server/.next/server/chunks/{[root-of-the-server]__1sb8d4e5b5pdl._.js → [root-of-the-server]__1lj1f2w2-w8nw._.js} +2 -2
- package/server/.next/server/chunks/[root-of-the-server]__1mim39ea6-dm1._.js +3 -0
- package/server/.next/server/chunks/{[root-of-the-server]__0sfnhgc5reef1._.js → [root-of-the-server]__1ooxluowhatjt._.js} +2 -2
- package/server/.next/server/chunks/[root-of-the-server]__1p0zd1rtbkj9r._.js +3 -0
- package/server/.next/server/chunks/[root-of-the-server]__1pvx0izh1m_0_._.js +3 -0
- package/server/.next/server/chunks/{[root-of-the-server]__05jzukkrp2pvu._.js → [root-of-the-server]__1rpgddeg42i-q._.js} +2 -2
- package/server/.next/server/chunks/[root-of-the-server]__1v4i7ytwadml8._.js +3 -0
- package/server/.next/server/chunks/[root-of-the-server]__1vvg0ur3_7o0p._.js +3 -0
- package/server/.next/server/chunks/[root-of-the-server]__1vwz2r58cojht._.js +3 -0
- package/server/.next/server/chunks/{[root-of-the-server]__02s57amypj_ye._.js → [root-of-the-server]__1w7dv8zm-k_oa._.js} +2 -2
- package/server/.next/server/chunks/[root-of-the-server]__1x7en4waq21dd._.js +3 -0
- package/server/.next/server/chunks/[root-of-the-server]__1x813cg-b9rls._.js +3 -0
- package/server/.next/server/chunks/{[root-of-the-server]__1147qf6sf3ru4._.js → [root-of-the-server]__1xl6_spngp6k3._.js} +2 -2
- package/server/.next/server/chunks/{[root-of-the-server]__1cwr95yi8preu._.js → [root-of-the-server]__1xxmlb3soqzom._.js} +2 -2
- package/server/.next/server/chunks/[root-of-the-server]__1zg653esm3__p._.js +3 -0
- package/server/.next/server/chunks/{[root-of-the-server]__1w_wtn9h9eu93._.js → [root-of-the-server]__1zvoez8iapsem._.js} +2 -2
- package/server/.next/server/chunks/[root-of-the-server]__209g3_0l-y67u._.js +3 -0
- package/server/.next/server/chunks/[root-of-the-server]__20pu-tixzpeev._.js +3 -0
- package/server/.next/server/chunks/_004c7-39glldb._.js +4 -4
- package/server/.next/server/chunks/_09l75j3ey14tc._.js +1 -1
- package/server/.next/server/chunks/_0duxuj4kmjibl._.js +41 -0
- package/server/.next/server/chunks/_0gz8ldqeokdtn._.js +1 -1
- package/server/.next/server/chunks/{_1msi9fy888xna._.js → _0if5sw58tii_3._.js} +2 -2
- package/server/.next/server/chunks/_0kmhvts35imzs._.js +4 -4
- package/server/.next/server/chunks/_0l_hz-8cj94r7._.js +3 -0
- package/server/.next/server/chunks/_0n-wbmmvp4omq._.js +1 -1
- package/server/.next/server/chunks/_0ofzzim090ezo._.js +1 -1
- package/server/.next/server/chunks/_0q3ygdztfvqq6._.js +3 -0
- package/server/.next/server/chunks/_0qmi54vmnlwdv._.js +7 -7
- package/server/.next/server/chunks/_0qyupoc7u5hr7._.js +3 -0
- package/server/.next/server/chunks/_0rwuppwyvemfj._.js +4 -4
- package/server/.next/server/chunks/{_060yqv0qyo-lp._.js → _0ry4553j-m5fp._.js} +3 -3
- package/server/.next/server/chunks/_0tz4o-qufnu3l._.js +4 -4
- package/server/.next/server/chunks/_0voowig3y32v1._.js +4 -4
- package/server/.next/server/chunks/_0wtlf0x_depae._.js +3 -0
- package/server/.next/server/chunks/_0zj10_al6r59j._.js +26 -26
- package/server/.next/server/chunks/_1-pcsy2hkg0il._.js +3 -0
- package/server/.next/server/chunks/_10vh_l3hht4_3._.js +4 -4
- package/server/.next/server/chunks/_113ebzq_9i756._.js +41 -0
- package/server/.next/server/chunks/{_1z8__gxixw-z-._.js → _16urxazbgm48y._.js} +3 -3
- package/server/.next/server/chunks/_1a5vma58w9ytn._.js +4 -4
- package/server/.next/server/chunks/_1e_rbkrukj0x9._.js +26 -26
- package/server/.next/server/chunks/{_219klbycazlx_._.js → _1g8r-7wcf8sy3._.js} +3 -3
- package/server/.next/server/chunks/_1g_prqb_u33e3._.js +7 -7
- package/server/.next/server/chunks/_1ihndlef8r00f._.js +41 -0
- package/server/.next/server/chunks/_1mwb214-ablfo._.js +41 -0
- package/server/.next/server/chunks/_1ngkjn56qmi2x._.js +3 -0
- package/server/.next/server/chunks/_1v7q0xdxbqawm._.js +4 -4
- package/server/.next/server/chunks/_1xs2ya_n7kb04._.js +4 -4
- package/server/.next/server/chunks/node_modules_zod_v4_classic_external_01k1rek7hgd0j.js +4 -4
- package/server/.next/server/chunks/src_0--qn984h6czu._.js +1 -1
- package/server/.next/server/chunks/src_063xvouojxyoa._.js +1 -1
- package/server/.next/server/chunks/{src_0lcm1yhnzhn2d._.js → src_09cgjvch02173._.js} +2 -2
- package/server/.next/server/chunks/{src_0v67kw2p2wd_c._.js → src_0c7qu5adpm3gv._.js} +2 -2
- package/server/.next/server/chunks/src_1-xw4hea2lvb3._.js +1 -1
- package/server/.next/server/chunks/{src_0390zcofy42lg._.js → src_10vyvp9vy_69h._.js} +2 -2
- package/server/.next/server/chunks/{src_1v3tf1ye2jzyk._.js → src_13n1vi7uew4iu._.js} +2 -2
- package/server/.next/server/chunks/src_1a5yibsjcy1ga._.js +1 -1
- package/server/.next/server/chunks/{src_07vqa8fdgu9ah._.js → src_1il7wg_qjxny7._.js} +2 -2
- package/server/.next/server/chunks/src_1tux0n9_5b1kr._.js +7 -4
- package/server/.next/server/chunks/src_1u-olt84z63rx._.js +1 -1
- package/server/.next/server/chunks/src_1wzm081p6qyre._.js +7 -4
- package/server/.next/server/chunks/src_20ilndq84j3b3._.js +3 -0
- package/server/.next/server/chunks/src_lib_0ayxuk4ftzf2f._.js +6 -0
- package/server/.next/server/chunks/src_lib_0ds7lhpop_adf._.js +1 -1
- package/server/.next/server/chunks/src_lib_0glcfed-uogyd._.js +1 -1
- package/server/.next/server/chunks/src_lib_0krdzz8eu9xh3._.js +6 -0
- package/server/.next/server/chunks/src_lib_0ta8sd9jeuw50._.js +10 -9
- package/server/.next/server/chunks/src_lib_1-u7dbsavbtb0._.js +6 -0
- package/server/.next/server/chunks/src_lib_103kimc1xvc_0._.js +9 -0
- package/server/.next/server/chunks/src_lib_1en6omqx66g9d._.js +10 -9
- package/server/.next/server/chunks/src_lib_1qo6t00wwitz6._.js +10 -9
- package/server/.next/server/chunks/src_lib_1sdusf16f07x-._.js +9 -0
- package/server/.next/server/chunks/src_lib_1sz77jjn7xl7o._.js +1 -1
- package/server/.next/server/chunks/src_lib_1xwavi_m_li7p._.js +1 -1
- package/server/.next/server/chunks/src_lib_206j7lyff31-g._.js +6 -0
- package/server/.next/server/chunks/src_lib_collector_runners_ts_12z4gtgikss74._.js +5 -5
- package/server/.next/server/chunks/src_lib_data_advisor-db_ts_0rl1ug3iana24._.js +1 -1
- package/server/.next/server/chunks/src_lib_data_apps-db_ts_02ovqtci8e7o6._.js +1 -1
- package/server/.next/server/chunks/src_lib_domain-move_ts_04stiet1-xpe2._.js +1 -1
- package/server/.next/server/chunks/src_lib_notify_telegram-bot_ts_18y40dkchmcqd._.js +1 -1
- package/server/.next/server/chunks/src_lib_view_databases_ts_1ovdbo8spjhf9._.js +1 -1
- package/server/.next/server/chunks/src_lib_view_display-name_ts_0xoimm6j7bwnf._.js +1 -1
- package/server/.next/server/chunks/src_private_1_nggk_wre7qf._.js +2 -2
- package/server/.next/server/chunks/src_private_ai_gateway_ts_04_5ao9914d0p._.js +1 -1
- package/server/.next/server/chunks/src_private_ai_gateway_ts_1qtr4nyb8kgnd._.js +2 -2
- package/server/.next/server/chunks/src_private_assist_provider-answer_ts_10qv42t-5046y._.js +1 -1
- package/server/.next/server/chunks/src_private_notes_notes-actions_ts_1g63g8u965fhc._.js +1 -1
- package/server/.next/server/chunks/ssr/1oeh_server_app_(console)_(private)_ai_agents_page_actions_1q6nc5chwn5k4.js +1 -1
- package/server/.next/server/chunks/ssr/1oeh_server_app_(console)_(private)_ai_models_page_actions_0n_anax2l1jpu.js +1 -1
- package/server/.next/server/chunks/ssr/1oeh_server_app_(console)_(private)_ai_playground_page_actions_1kyng_xuojdtb.js +1 -1
- package/server/.next/server/chunks/ssr/1oeh_server_app_(console)_(private)_ai_quota_page_actions_04r4ro6x7-p7p.js +1 -1
- package/server/.next/server/chunks/ssr/1oeh_server_app_(console)_(private)_ai_usage_page_actions_1fq9uugdpqa_l.js +1 -1
- package/server/.next/server/chunks/ssr/1oeh_server_app_(console)_(private)_auto-actions_page_actions_0mhtiq_5szpe0.js +1 -1
- package/server/.next/server/chunks/ssr/{[externals]__1thdbok76xtof._.js → [externals]__1d_fn156y1kzg._.js} +1 -1
- package/server/.next/server/chunks/ssr/[root-of-the-server]__0llh-w4ta1qbp._.js +1 -1
- package/server/.next/server/chunks/ssr/[root-of-the-server]__0nlfip3wc3l2z._.js +2 -2
- package/server/.next/server/chunks/ssr/{[root-of-the-server]__04tkts7c9ylma._.js → [root-of-the-server]__0p5znbfo0wgsu._.js} +2 -2
- package/server/.next/server/chunks/ssr/{[root-of-the-server]__12ymdwm8dphvu._.js → [root-of-the-server]__0ua-p_wz8epv9._.js} +2 -2
- package/server/.next/server/chunks/ssr/[root-of-the-server]__0wcnxr_g-bd3r._.js +1 -1
- package/server/.next/server/chunks/ssr/{[root-of-the-server]__0ojywxj06986-._.js → [root-of-the-server]__0y84mqfn13ss4._.js} +1 -1
- package/server/.next/server/chunks/ssr/[root-of-the-server]__1_f7nip9age3d._.js +1 -1
- package/server/.next/server/chunks/ssr/[root-of-the-server]__1fj33_xkainxk._.js +2 -2
- package/server/.next/server/chunks/ssr/{[root-of-the-server]__0oayb8dm0iu8k._.js → [root-of-the-server]__1rvdnoxnu0ddf._.js} +2 -2
- package/server/.next/server/chunks/ssr/_0-uwh2rwm_dic._.js +2 -2
- package/server/.next/server/chunks/ssr/_026w_ig6vy9bt._.js +1 -1
- package/server/.next/server/chunks/ssr/_04ltmruop4rt3._.js +2 -2
- package/server/.next/server/chunks/ssr/_06kwu83_fmex9._.js +2 -2
- package/server/.next/server/chunks/ssr/_090fib2x989oc._.js +1 -1
- package/server/.next/server/chunks/ssr/_0_oc9q0vqkynd._.js +1 -1
- package/server/.next/server/chunks/ssr/_0_rtyc4t9xcdo._.js +1 -1
- package/server/.next/server/chunks/ssr/_0a22b7zsckifp._.js +1 -1
- package/server/.next/server/chunks/ssr/_0azq3ml4gbn1d._.js +1 -1
- package/server/.next/server/chunks/ssr/_0bd4cxnpnnq2u._.js +1 -1
- package/server/.next/server/chunks/ssr/_0cw4kz3d6kmb1._.js +1 -1
- package/server/.next/server/chunks/ssr/_0d702k82llasi._.js +1 -1
- package/server/.next/server/chunks/ssr/_0hmxyfx7su4uk._.js +1 -1
- package/server/.next/server/chunks/ssr/_0i-e824vtomvg._.js +2 -2
- package/server/.next/server/chunks/ssr/_0jjoot3rhbde3._.js +2 -2
- package/server/.next/server/chunks/ssr/_0kn710rrv_o2t._.js +2 -2
- package/server/.next/server/chunks/ssr/_0lmcrl8r9dg49._.js +1 -1
- package/server/.next/server/chunks/ssr/_0mgclon6_oh87._.js +2 -2
- package/server/.next/server/chunks/ssr/_0ns_087lx5abm._.js +1 -1
- package/server/.next/server/chunks/ssr/_0oovfx_t_-u0k._.js +1 -1
- package/server/.next/server/chunks/ssr/_0qcvpnwa1u3vr._.js +1 -1
- package/server/.next/server/chunks/ssr/_0qhvl_fw4qetx._.js +1 -1
- package/server/.next/server/chunks/ssr/_0qyupoc7u5hr7._.js +3 -0
- package/server/.next/server/chunks/ssr/_0sotiqakj-6ci._.js +1 -1
- package/server/.next/server/chunks/ssr/_0uogspz6zrvwk._.js +2 -2
- package/server/.next/server/chunks/ssr/_0v6v5w16qxwke._.js +1 -1
- package/server/.next/server/chunks/ssr/_0wo-lpqf7hr1y._.js +2 -2
- package/server/.next/server/chunks/ssr/{_0i2a_ziqzhyq-._.js → _0wzg8e30al7bu._.js} +2 -2
- package/server/.next/server/chunks/ssr/_1-6d1tm3r_qwg._.js +1 -1
- package/server/.next/server/chunks/ssr/_10bven6gb1vj0._.js +5 -5
- package/server/.next/server/chunks/ssr/_10pz3ggun9s5i._.js +2 -2
- package/server/.next/server/chunks/ssr/_118h21qua_4o3._.js +1 -1
- package/server/.next/server/chunks/ssr/_12ddramfkd6o1._.js +2 -2
- package/server/.next/server/chunks/ssr/_15ft896zgt02e._.js +2 -2
- package/server/.next/server/chunks/ssr/_18lgd6o04ugow._.js +2 -2
- package/server/.next/server/chunks/ssr/_19-3vzkc6rk97._.js +1 -1
- package/server/.next/server/chunks/ssr/_1_-o2s48aj4i7._.js +1 -1
- package/server/.next/server/chunks/ssr/{_022u_nnwo1yb4._.js → _1_gydx19bikgo._.js} +2 -2
- package/server/.next/server/chunks/ssr/_1ag8axv14phju._.js +2 -2
- package/server/.next/server/chunks/ssr/_1b1ano88ar-gi._.js +2 -2
- package/server/.next/server/chunks/ssr/_1boia2p3_0nsz._.js +2 -2
- package/server/.next/server/chunks/ssr/_1cl55h_h3q-b_._.js +1 -1
- package/server/.next/server/chunks/ssr/_1dqf3jmb24s37._.js +1 -1
- package/server/.next/server/chunks/ssr/_1e24cpw3g7njr._.js +2 -2
- package/server/.next/server/chunks/ssr/_1g2zbl_-4z_hg._.js +1 -1
- package/server/.next/server/chunks/ssr/{_14n2368190qms._.js → _1gk334l49puy-._.js} +2 -2
- package/server/.next/server/chunks/ssr/{_1wssvwkmxcdn5._.js → _1gvbcfoah__sl._.js} +2 -2
- package/server/.next/server/chunks/ssr/_1i77n2n-wb98v._.js +2 -2
- package/server/.next/server/chunks/ssr/_1j9cka-44jd65._.js +1 -1
- package/server/.next/server/chunks/ssr/_1jh_o2i8hj2g5._.js +1 -1
- package/server/.next/server/chunks/ssr/_1r7o1vx4875hu._.js +1 -1
- package/server/.next/server/chunks/ssr/{_20gx4od4pnj8d._.js → _1rf_mwfkk_9oa._.js} +2 -2
- package/server/.next/server/chunks/ssr/_1w_rq6clcs0ft._.js +2 -2
- package/server/.next/server/chunks/ssr/_1ybhu25y38395._.js +2 -2
- package/server/.next/server/chunks/ssr/_1z6dy1k48mskn._.js +1 -1
- package/server/.next/server/chunks/ssr/_210edglbxmcb3._.js +2 -2
- package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_(private)_ai_keys_page_actions_1910ocjt__nlh.js +1 -1
- package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_(private)_ai_logs_page_actions_136-s4sxl6nra.js +1 -1
- package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_alerts_page_actions_0f7cxitw-svnl.js +1 -1
- package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_apps_[id]_page_actions_14l8--w36mywn.js +1 -1
- package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_apps_page_actions_1zw_mdh2ep6vs.js +1 -1
- package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_connections_page_actions_06a1fnrawxlh1.js +1 -1
- package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_dns_page_actions_1p2deebbgom7b.js +1 -1
- package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_domains_page_actions_0-wg58qcvu_rv.js +1 -1
- package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_firebase_page_actions_217-u-dmlzx6a.js +1 -1
- package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_logs_page_actions_11-8xinblaop_.js +1 -1
- package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_manage_sections_page_actions_0ven9q46d3d7s.js +1 -1
- package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_settings_page_actions_1z3l1p4keed3m.js +1 -1
- package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_supabase_page_actions_1evatil08dntl.js +1 -1
- package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_uptime_page_actions_0k1237d-q3oc4.js +1 -1
- package/server/.next/server/chunks/ssr/_next-internal_server_app_account_password_page_actions_1v4e71_oifbx9.js +1 -1
- package/server/.next/server/chunks/ssr/_next-internal_server_app_signin_page_actions_11wzk446p6_zi.js +1 -1
- package/server/.next/server/chunks/ssr/node_modules_zod_v4_classic_external_01k1rek7hgd0j.js +4 -4
- package/server/.next/server/chunks/ssr/src_06tjy8wljego8._.js +1 -1
- package/server/.next/server/chunks/ssr/src_084tdkx3c_yqi._.js +1 -1
- package/server/.next/server/chunks/ssr/src_0_5_wl0sww-x7._.js +6 -3
- package/server/.next/server/chunks/ssr/src_0abts6wp5ucc0._.js +1 -1
- package/server/.next/server/chunks/ssr/{src_0vi30frvjgri2._.js → src_0jdurlhzhcg5x._.js} +2 -2
- package/server/.next/server/chunks/ssr/src_0p0fk07bj9gpq._.js +1 -1
- package/server/.next/server/chunks/ssr/src_0ph020gy78gi9._.js +1 -1
- package/server/.next/server/chunks/ssr/src_0uitfl3c1mdqb._.js +1 -1
- package/server/.next/server/chunks/ssr/src_1-xw4hea2lvb3._.js +1 -1
- package/server/.next/server/chunks/ssr/src_10zavgy86u3us._.js +1 -1
- package/server/.next/server/chunks/ssr/src_1koc8y1nfdlw3._.js +1 -1
- package/server/.next/server/chunks/ssr/src_1q-jgpnd3lbcu._.js +1 -1
- package/server/.next/server/chunks/ssr/src_1sdwdnblbiq_g._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_agents_1fyhh1ldgm23z._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_ask_ask-form_tsx_18ttm9nna_9y6._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_logs_export-button_tsx_1k-crb88n1za_._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_models_0ayzqn062pnv5._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_playground_playground-view_tsx_18ua5zn_a0mar._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_providers_1ru-30x6-uwu4._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_quota_limits-form_tsx_1vouaaf560z_x._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_usage_limits-form_tsx_0sfk3ver58rqw._.js +1 -1
- package/server/.next/server/chunks/ssr/{src_app_(console)_05mlxmavgli8_._.js → src_app_(console)_08pmfte22v8vg._.js} +2 -2
- package/server/.next/server/chunks/ssr/{src_app_(console)_0u1ec16rmzze6._.js → src_app_(console)_1rx84pcbevbbk._.js} +2 -2
- package/server/.next/server/chunks/ssr/src_app_(console)_alerts_0j5xlt68kwg8x._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_apps_[id]_1sfvku9ui1le-._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_backups_actions_ts_1vpytsdh0wc1f._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_backups_drive-buttons_tsx_00cku5r_z3jkg._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_connections_1fahc65-97qla._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_connections_1fmp_anbkapur._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_connections_actions_ts_103blv4gzq76z._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_create_actions_ts_05-86qr6kfjey._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_dns_actions_ts_1jzn58xzwbukz._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_dns_record-actions_tsx_0cqmz51zcuebv._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_firebase_row-menu_tsx_0hssoq3pqjl-n._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_logs_log-viewer_tsx_0v3e4cflfk14w._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_manage_sections_section-switch_tsx_1mfs-o_357i22._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_monitor-actions_ts_10w3h7myk2ppi._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_overview_page_tsx_0se3f3ln9q-42._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_palette-action_ts_0zyw9a9imev6p._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_repos_[id]_page_tsx_1nkxthc4ethrj._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_sql_1icfsti04djqe._.js +2 -2
- package/server/.next/server/chunks/ssr/src_app_(console)_sql_actions_ts_1oqco02hw-3vp._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_supabase_0ib3m2ch9gu-4._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_supabase_pool-actions_ts_0nzd4vwy_9zzx._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_uptime_1mnnkfi-2zv-k._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_vercel-actions_ts_0wpk1yo9v632d._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_mfa_setup_setup-flow_tsx_1fpwygr2vdgnh._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_setup_setup-form_tsx_0izoagdur96e1._.js +1 -1
- package/server/.next/server/chunks/ssr/{src_app_signin_06v-xlrxfp079._.js → src_app_signin_0hb58isfg-2yx._.js} +2 -2
- package/server/.next/server/chunks/ssr/src_components_08d78uqnnmrrh._.js +1 -1
- package/server/.next/server/chunks/ssr/src_components_11x625pqq9ovs._.js +1 -1
- package/server/.next/server/chunks/ssr/src_components_create_create-dialog_tsx_1s_9clly_m1ru._.js +1 -1
- package/server/.next/server/chunks/ssr/src_lib_005l0kcpyu43o._.js +2 -1
- package/server/.next/server/chunks/ssr/src_lib_0f_4mvf4-xxst._.js +1 -1
- package/server/.next/server/chunks/ssr/src_lib_1xwavi_m_li7p._.js +1 -1
- package/server/.next/server/chunks/ssr/src_lib_collector_node-runtime_ts_0778fef3fi3zj._.js +3 -0
- package/server/.next/server/chunks/ssr/src_lib_collector_run_ts_0-q8is8s0y9cq._.js +3 -3
- package/server/.next/server/chunks/ssr/src_lib_data_apps-db_ts_02ovqtci8e7o6._.js +1 -1
- package/server/.next/server/chunks/ssr/{src_lib_demo_15okweo0amos4._.js → src_lib_demo_1wu-a6lubzph6._.js} +2 -2
- package/server/.next/server/chunks/ssr/src_lib_domain-move_ts_04stiet1-xpe2._.js +1 -1
- package/server/.next/server/chunks/ssr/src_lib_view_databases_ts_1ovdbo8spjhf9._.js +1 -1
- package/server/.next/server/chunks/ssr/src_lib_view_display-name_ts_0xoimm6j7bwnf._.js +1 -1
- package/server/.next/server/chunks/ssr/src_private_04omlb_sgy-_r._.js +1 -1
- package/server/.next/server/chunks/ssr/src_private_0iy_wyg2p1jkn._.js +1 -1
- package/server/.next/server/chunks/ssr/src_private_actions_decide-form_tsx_1hngtxpyle3v8._.js +1 -1
- package/server/.next/server/chunks/ssr/src_private_actions_telegram-approvals_ts_14gvz6qi_j4aa._.js +1 -1
- package/server/.next/server/chunks/ssr/src_private_ai_gateway_ts_04_5ao9914d0p._.js +1 -1
- package/server/.next/server/chunks/ssr/src_private_ai_providers_actions_ts_0wxa36ai6s5nn._.js +1 -1
- package/server/.next/server/chunks/ssr/src_private_assist_advisor-notes_ts_0qkpm5c3la7fo._.js +6 -6
- package/server/.next/server/chunks/ssr/src_private_notes_notes-actions_ts_1g63g8u965fhc._.js +1 -1
- package/server/.next/server/middleware-build-manifest.js +3 -3
- package/server/.next/server/pages/404.html +1 -1
- package/server/.next/server/pages/500.html +1 -1
- package/server/.next/server/preview-props.json +3 -3
- package/server/.next/server/server-reference-manifest.js +1 -1
- package/server/.next/server/server-reference-manifest.json +139 -139
- package/server/.next/static/chunks/{22ierqxhqtwn6.js → 0-_zjfssid86w.js} +2 -2
- package/server/.next/static/chunks/02-edmd1oolf2.css +3 -0
- package/server/.next/static/chunks/05p62k_8g05pm.js +76 -0
- package/server/.next/static/chunks/{02byu0sw5d0g9.js → 073u0a0mfexc8.js} +1 -1
- package/server/.next/static/chunks/{38c9rnljzl6iw.js → 09fx7h5vm68up.js} +1 -1
- package/server/.next/static/chunks/{177dd6kiifsoi.js → 0a5vchcarwyam.js} +1 -1
- package/server/.next/static/chunks/{42z3imsp11da1.js → 0ao7_ov9mlvqp.js} +1 -1
- package/server/.next/static/chunks/{3qbk8r6jm8udo.js → 0cvmbpyjages7.js} +2 -2
- package/server/.next/static/chunks/{04yl9t4cn6zwm.js → 0hnhf3barhk90.js} +1 -1
- package/server/.next/static/chunks/{2aerfowxsf234.js → 0i8-ofb4wfcch.js} +1 -1
- package/server/.next/static/chunks/{3tl9dgour-h9l.js → 0id261ol_gl6f.js} +1 -1
- package/server/.next/static/chunks/0iyozrryj1w49.js +1 -0
- package/server/.next/static/chunks/{1zyyqxguxs96l.js → 0q2ogu5cn9q9p.js} +1 -1
- package/server/.next/static/chunks/{37f1rjolzxbiv.js → 0z_fqwq62_95p.js} +1 -1
- package/server/.next/static/chunks/{11gctw6uutyd7.js → 12fo0pcbpv7lw.js} +1 -1
- package/server/.next/static/chunks/{0d556cjlmwiq4.js → 16d1ws92me6_q.js} +1 -1
- package/server/.next/static/chunks/{3vbz762vgy3dx.js → 1__8cm_-lydee.js} +1 -1
- package/server/.next/static/chunks/{0xwz6ps1581qa.js → 1hmur12m0hx3z.js} +1 -1
- package/server/.next/static/chunks/{22h4lj0gp_6n5.js → 1o1lidcbrrh92.js} +1 -1
- package/server/.next/static/chunks/{25r6-t40ok5s9.js → 1pre7l9hmk-b6.js} +1 -1
- package/server/.next/static/chunks/{04lzxilmq17f_.js → 1qxc6cck2xkbs.js} +1 -1
- package/server/.next/static/chunks/{160mk2sltxl3e.js → 205s3z3_jvp5m.js} +1 -1
- package/server/.next/static/chunks/{0qciunoy58a03.js → 20cpkauaj8e6x.js} +2 -2
- package/server/.next/static/chunks/{3_erdlvi2tz19.js → 25meucm7i1e7b.js} +1 -1
- package/server/.next/static/chunks/{2pn16qmann41d.js → 2oy7awlquezq_.js} +1 -1
- package/server/.next/static/chunks/{2xhx4rma6gx5o.js → 2pj8subq20y-_.js} +1 -1
- package/server/.next/static/chunks/{2szlo15y09085.js → 2qcurt9u9shwc.js} +1 -1
- package/server/.next/static/chunks/{01mhc6kz81iwf.js → 2scf40c-_g_q1.js} +1 -1
- package/server/.next/static/chunks/{1bn-7bluoi2vi.js → 2tnx5isef9ryw.js} +1 -1
- package/server/.next/static/chunks/{3wi43ltm1e5iy.js → 2whojv56qi3ke.js} +1 -1
- package/server/.next/static/chunks/{0lcmy-_tdtrqk.js → 2wlen-jacsbqv.js} +1 -1
- package/server/.next/static/chunks/{0foc_dy1j2x52.js → 319s97ka6eaex.js} +1 -1
- package/server/.next/static/chunks/{1d0mukiro5klq.js → 36bqhxadlfbfn.js} +1 -1
- package/server/.next/static/chunks/{16lnw4itnfhw-.js → 36js6cf9c-53b.js} +1 -1
- package/server/.next/static/chunks/372gugw4ldy47.js +1 -0
- package/server/.next/static/chunks/{2onhuya5-n3-e.js → 39n_1gky-xh0a.js} +1 -1
- package/server/.next/static/chunks/{1x8bgprfjtt59.js → 3fv862m8cvcoe.js} +1 -1
- package/server/.next/static/chunks/{2lfa16b0tlnvj.js → 3g73nar6-7bqk.js} +1 -1
- package/server/.next/static/chunks/{2wd8yh_ni0lqj.js → 3orhi-m-n-ra4.js} +1 -1
- package/server/.next/static/chunks/{3zaeh5nbkqpyj.js → 3u3h2mlon2qu7.js} +1 -1
- package/server/.next/static/chunks/{0ld0vtd027il_.js → 3vacue9vhoqag.js} +1 -1
- package/server/.next/static/chunks/{0jm8a63677590.js → 3x8-w_p0n-gsd.js} +1 -1
- package/server/.next/static/chunks/{0r2z8zg4n43pd.js → 3xo5igjfumqip.js} +1 -1
- package/server/.next/static/chunks/{1yctclvh0qaxz.js → 415ijq-anmr2o.js} +1 -1
- package/server/.next/static/chunks/{1nfofl7nhy6fx.js → 43wm4_0-0-eej.js} +1 -1
- package/server/.next/static/chunks/{08oksl0raetg5.js → 44bizq7fli9cp.js} +1 -1
- package/server/.next/server/chunks/[root-of-the-server]__0i3bs_98vlttu._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__0ych1y0j6e38k._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__0zhzy29i2vylk._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__0zwe7i-isx08p._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__10ee5dhzx78ne._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__10q3dc485yp4l._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__10u93zgn0-c5a._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__115yxhfn37r-k._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__14mz6mbk2m_e0._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__15y82djobfhof._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__165qlmqwvxmzr._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__1acps2oi9s0i7._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__1erq9v_t5jwp5._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__1ip0gr1i080kn._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__1lfidps4tcfkg._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__1mrpvwofqktnv._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__1ppnnpydkrs93._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__1qdo_hgivrawk._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__1qp_dvfy4vvsm._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__1rk6wb8qem46d._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__1s20vd1etiird._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__1s9_nmhp7chvj._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__1yc_xjjam78sg._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__2067x8gf07f-i._.js +0 -3
- package/server/.next/server/chunks/_0beox3lp9z58-._.js +0 -3
- package/server/.next/server/chunks/_0gobsd0_oxj5v._.js +0 -3
- package/server/.next/server/chunks/_0vwctvzwde-sz._.js +0 -37
- package/server/.next/server/chunks/_0yzmfi6iwa_sk._.js +0 -3
- package/server/.next/server/chunks/_1c3ksp22eq0rw._.js +0 -37
- package/server/.next/server/chunks/_1cjfskikk32wj._.js +0 -37
- package/server/.next/server/chunks/_1d9mf39gz0bv4._.js +0 -3
- package/server/.next/server/chunks/_1dlvqnaceqr-_._.js +0 -3
- package/server/.next/server/chunks/_1jveb9aojczvg._.js +0 -3
- package/server/.next/server/chunks/_1qw43v448l9e7._.js +0 -37
- package/server/.next/server/chunks/src_0yve3gn52i_mn._.js +0 -3
- package/server/.next/server/chunks/src_lib_0cbh80jxsdx3n._.js +0 -6
- package/server/.next/server/chunks/src_lib_0s_txig7jm3ty._.js +0 -9
- package/server/.next/server/chunks/src_lib_15wd7ab4u5nrn._.js +0 -9
- package/server/.next/server/chunks/src_lib_15y0kwcot_7u0._.js +0 -6
- package/server/.next/server/chunks/src_lib_16y1secb8t9fj._.js +0 -6
- package/server/.next/server/chunks/src_lib_1iwyh213u9xts._.js +0 -6
- package/server/.next/server/chunks/ssr/_1dlvqnaceqr-_._.js +0 -3
- package/server/.next/static/chunks/0r-2mywc7qkb_.js +0 -1
- package/server/.next/static/chunks/1-zyqj42cr9hy.css +0 -3
- package/server/.next/static/chunks/1jc8ghvf721gg.js +0 -76
- package/server/.next/static/chunks/1rt5heq1xn_az.js +0 -1
- /package/server/.next/static/{ZGhdfWFNBWLdWW4UhJrAO → 90CuiGzddaxNn9lvRkGlH}/_buildManifest.js +0 -0
- /package/server/.next/static/{ZGhdfWFNBWLdWW4UhJrAO → 90CuiGzddaxNn9lvRkGlH}/_clientMiddlewareManifest.js +0 -0
- /package/server/.next/static/{ZGhdfWFNBWLdWW4UhJrAO → 90CuiGzddaxNn9lvRkGlH}/_ssgManifest.js +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
(()=>{"use strict";(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,590246,e=>{let t=(0,e.i(33550).f)("outline","external-link","ExternalLink",[["path",{d:"M12 6h-6a2 2 0 0 0 -2 2v10a2 2 0 0 0 2 2h10a2 2 0 0 0 2 -2v-6",key:"svg-0"}],["path",{d:"M11 13l9 -9",key:"svg-1"}],["path",{d:"M15 4h5v5",key:"svg-2"}]]);e.s(["f",0,t],590246)},225913,e=>{var t=e.i(207670);let a=e=>"boolean"==typeof e?`${e}`:0===e?"0":e,r=t.f;e.s(["f",0,(e,t)=>n=>{var i;if((null==t?void 0:t.variants)==null)return r(e,null==n?void 0:n.class,null==n?void 0:n.className);let{variants:l,defaultVariants:o}=t,s=Object.keys(l).map(e=>{let t=null==n?void 0:n[e],r=null==o?void 0:o[e];if(null===t)return null;let i=a(t)||a(r);return l[e][i]}),u=n&&Object.entries(n).reduce((e,t)=>{let[a,r]=t;return void 0===r||(e[a]=r),e},{});return r(e,s,null==t||null==(i=t.compoundVariants)?void 0:i.reduce((e,t)=>{let{class:a,className:r,...n}=t;return Object.entries(n).every(e=>{let[t,a]=e;return Array.isArray(a)?a.includes({...o,...u}[t]):({...o,...u})[t]===a})?[...e,a,r]:e},[]),null==n?void 0:n.class,null==n?void 0:n.className)}])},385925,e=>{var t=e.i(843476),a=e.i(590246),r=e.i(271645),n=e.i(54131),i=e.i(428325),l=e.i(39626),o=e.i(975157);function s(e){return"fatal"===e||"error"===e?"error":"warning"===e?"warning":"info"}e.i(684496);var u=e.i(95187);let d=(0,u.createServerReference)("408cb571935e2a177cf85377aa1e870baf32e1c00b",u.callServer,void 0,u.findSourceMapURL,"readLastHour"),c={info:"text-code-info",warning:"text-code-warn",error:"text-code-err"};e.s(["LogViewer",0,function({mode:e,apps:u,appId:f,initial:p,vercelUrl:v}){var g;let b,x="live"===e,[h,m]=(0,r.useState)(p),y=(0,n.useMask)(),[k,j]=(0,r.useState)(""),[w,R]=(0,r.useState)(""),[C,S]=(0,r.useState)(""),[M,N]=(0,r.useState)(!0),[E,A]=(0,r.useState)(null),[z,T]=(0,r.useState)(0),[I,L]=(0,r.useState)([]),[D,V]=(0,r.useState)(null),[K,P]=(0,r.useTransition)(),F=(0,r.useRef)(!1),O=(0,r.useRef)(null),_=u.find(e=>e.name===k)?.id??null,H=f??_;(0,r.useEffect)(()=>{F.current=K},[K]);let q=(0,r.useCallback)(()=>{P(async()=>{let e=await d(H);e.ok&&e.data?(V(null),L(e.data.problems),m(e.data.lines.slice(-500)),A(Date.parse(e.data.readAt)),T(Date.now())):V(e.ok?"Couldn't read the logs. Try again.":e.error)})},[H]);(0,r.useEffect)(()=>{if(!x)return;let e=setTimeout(q,0);return()=>clearTimeout(e)},[x,q]),(0,r.useEffect)(()=>{if(!x||!M)return;let e=setInterval(()=>{"visible"!==document.visibilityState||F.current||q()},15e3);return()=>clearInterval(e)},[x,M,q]),(0,r.useEffect)(()=>{if(!x)return;let e=setInterval(()=>T(Date.now()),5e3);return()=>clearInterval(e)},[x]);let $=(b=(g={app:f?"":k,level:w,text:C}).text.trim().toLowerCase(),h.filter(e=>(!g.app||e.app===g.app)&&(!g.level||s(e.level)===g.level)&&(!b||`${e.app} ${e.text}`.toLowerCase().includes(b))));return(0,r.useEffect)(()=>{let e=O.current;e&&(e.scrollTop=e.scrollHeight)},[h]),(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)("div",{className:"flex flex-wrap items-center gap-2 px-[18px] pb-3 pt-3.5 max-[720px]:px-3.5",children:[!f&&(0,t.jsxs)("select",{className:(0,o.f)(i.S,"w-auto"),"aria-label":"Project",value:k,onChange:e=>j(e.target.value),children:[(0,t.jsx)("option",{value:"",children:"All projects"}),u.map(e=>(0,t.jsx)("option",{value:e.name,children:y("app",e.name)},e.id))]}),(0,t.jsxs)("select",{className:(0,o.f)(i.S,"w-auto"),"aria-label":"Level",value:w,onChange:e=>R(e.target.value),children:[(0,t.jsx)("option",{value:"",children:"All levels"}),x&&(0,t.jsx)("option",{value:"info",children:"Info"}),(0,t.jsx)("option",{value:"warning",children:"Warning"}),(0,t.jsx)("option",{value:"error",children:"Error"})]}),x?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)("label",{className:"inline-flex items-center gap-1.5 text-[13px]",children:[(0,t.jsx)("input",{type:"checkbox",className:"accent-brand",checked:M,onChange:e=>N(e.target.checked)})," Auto-refresh every 15s"]}),(0,t.jsx)(i.K,{size:"sm",disabled:K,onClick:q,children:K?"Fetching…":"Fetch now"})]}):(0,t.jsx)("input",{className:(0,o.f)(i.S,"w-[200px] max-[720px]:w-full"),placeholder:"Search messages","aria-label":"Search messages",value:C,onChange:e=>S(e.target.value)}),v&&(0,t.jsxs)("a",{href:v,target:"_blank",rel:"noopener noreferrer",className:(0,i.R)({variant:"ghost",size:"sm"}),children:["Open in Vercel ",(0,t.jsx)(a.f,{size:14,"aria-hidden":!0})]}),(0,t.jsx)("span",{className:"ml-auto flex items-center text-[12.5px] text-ink-soft",children:x?(0,t.jsxs)(t.Fragment,{children:["Vercel request logs · last 1 hour · ",function(e,t){if(null===e)return"reading…";let a=Math.max(0,Math.round((t-e)/1e3));return a<5?"read just now":a<60?`read ${a}s ago`:`read ${Math.floor(a/60)} min ago`}(E,z),(0,t.jsx)(l.Src,{kind:"api"})]}):(0,t.jsxs)(t.Fragment,{children:["Copied by the collector every 5 min · kept 7 days",(0,t.jsx)(l.Src,{kind:"calc"})]})})]}),D&&(0,t.jsx)("p",{role:"alert",className:"px-[18px] pb-2 text-[12.5px] text-err max-[720px]:px-3.5",children:D}),I.length>0&&(0,t.jsx)("p",{className:"px-[18px] pb-2 text-[12.5px] text-ink-soft max-[720px]:px-3.5",children:y("text",I.join(" · "))}),(0,t.jsx)("div",{ref:O,tabIndex:0,"aria-label":x?"Request log lines of the last hour":"Stored warning and error log lines",className:"h-[420px] overflow-auto rounded-b-lg bg-code-bg px-4 py-3 font-mono text-[12.5px] leading-[1.7] text-code-text",children:0===$.length?(0,t.jsx)("div",{className:"text-code-dim",children:x?null!==E||D?"No log lines in this window.":"Reading the last hour…":"No warnings or errors stored in the last 7 days."}):$.map(e=>(0,t.jsxs)("div",{className:"whitespace-pre",children:[(0,t.jsx)("time",{className:"text-code-dim",children:e.time})," ",(0,t.jsx)("span",{className:c[s(e.level)],children:e.level.toUpperCase().padEnd(7)})," ",(0,t.jsx)("span",{className:"text-code-proj",children:y("app",e.app).padEnd(17)})," ",y("text",e.text)]},e.id))})]})}],385925)},677572,e=>{var t=e.i(843476),a=e.i(271645),r=e.i(951437),n=e.i(146376),i=e.i(667865),l=e.i(552245),o=e.i(53687),s=e.i(733332);let u=a.createContext(void 0);function d(){let e=a.useContext(u);if(void 0===e)throw Error((0,s.f)(64));return e}let c={tabActivationDirection:e=>({"data-activation-direction":e})};var f=e.i(675606),p=e.i(216856),p=p,v=p,g=p;let b=a.forwardRef(function(e,s){let{className:d,defaultValue:b=0,onValueChange:m,orientation:y="horizontal",render:k,value:j,style:w,...R}=e,C=void 0!==e.defaultValue,S=a.useRef([]),[M,N]=a.useState(()=>new Map),[E,A]=(0,r.f)({controlled:j,default:b,name:"Tabs",state:"value"}),z=void 0!==j,[T,I]=a.useState(()=>new Map),L=a.useRef(void 0),D=a.useCallback(e=>x(T,e),[T]),[V,K]=a.useState(()=>({previousValue:E,tabActivationDirection:"none"})),{previousValue:P,tabActivationDirection:F}=V,O=F,_=!1;P!==E&&(O=h(P,E,y,T),_=null!=P&&null!=E&&null==D(E));let H=_?P:E,q=P!==H||F!==O;(0,n.f)(()=>{q&&K({previousValue:H,tabActivationDirection:O})},[H,q,O]);let $=(0,i.f)((e,t)=>{t.activationDirection=h(E,e,y,T),m?.(e,t),t.isCanceled||A(()=>e)}),B=(0,i.f)((e,t)=>{m?.(e,(0,f.j)(t,void 0,void 0,{activationDirection:"none"}))}),U=(0,i.f)((e,t)=>(N(a=>{let r=new Map(a);return r.set(e,t),r}),()=>{N(a=>{if(a.get(e)!==t)return a;let r=new Map(a);return r.delete(e),r})})),Z=a.useCallback(e=>M.get(e),[M]),J=a.useCallback(e=>{for(let t of T.values())if(e===t.value)return t.id},[T]),W=a.useMemo(()=>({getTabElementBySelectedValue:D,getTabIdByPanelValue:J,getTabPanelIdByValue:Z,onValueChange:$,orientation:y,registerMountedTabPanel:U,setTabMap:I,tabActivationDirection:O,value:E}),[D,J,Z,$,y,U,I,O,E]),X=a.useMemo(()=>{for(let e of T.values())if(e.value===E)return e},[T,E]),G=a.useMemo(()=>{for(let e of T.values())if(!e.disabled)return e.value},[T]),Q=a.useRef(!C),Y=a.useRef(b),ee=a.useRef(C),et=a.useRef(!1);(0,n.f)(()=>{if(z)return;function e(e,t){A(()=>e),K({previousValue:e,tabActivationDirection:"none"}),B(e,t),Q.current=!1}if(0===T.size){et.current&&null!==E&&!L.current?.isConnected&&e(null,v.missing);return}et.current=!0,L.current=T.keys().next().value;let t=X?.disabled,a=null==X&&null!==E;if(t||E!==Y.current||(ee.current=!1),ee.current&&t&&E===Y.current)return;let r=Q.current;if(t||a){let a=G??null;if(E===a){Q.current=!1;return}let n=v.missing;r?n=p.initial:t&&(n=g.disabled),e(a,n);return}r&&null!=X&&(B(E,p.initial),Q.current=!1)},[G,z,B,X,A,T,E]);let ea={orientation:y,tabActivationDirection:O},er=(0,l.a)("div",e,{state:ea,ref:s,props:R,stateAttributesMapping:c});return(0,t.jsx)(u.Provider,{value:W,children:(0,t.jsx)(o.f,{elementsRef:S,children:er})})});function x(e,t){for(let[a,r]of e.entries())if(t===r.value)return a;return null}function h(e,t,a,r){if(null==e||null==t)return"none";let[n,i,l]="horizontal"===a?["left","left","right"]:["top","up","down"],o=x(r,e),s=x(r,t);if(null==o||null==s)return o!==s&&("number"==typeof e||"string"==typeof e)&&typeof e==typeof t?t>e?l:i:"none";let u=o.getBoundingClientRect()[n],d=s.getBoundingClientRect()[n];return d<u?i:d>u?l:"none"}var m=e.i(108868),y=e.i(788015),k=e.i(540886);let j="data-composite-item-active";var w=e.i(395530),R=e.i(838452);let C=a.createContext(void 0);var S=e.i(380025),M=e.i(584446);let N=a.forwardRef(function(e,t){let{className:r,disabled:o=!1,render:u,value:p,id:v,nativeButton:g=!0,style:b,...x}=e,{value:h,getTabPanelIdByValue:N,onValueChange:E,orientation:A,tabActivationDirection:z}=d(),{activateOnFocus:T,registerTabResizeObserverElement:I,tabsListElement:L}=function(){let e=a.useContext(C);if(void 0===e)throw Error((0,s.f)(65));return e}(),{highlightedIndex:D,onHighlightedIndexChange:V}=(0,R.o)(),K=(0,y.f)(v),P=a.useMemo(()=>({disabled:o,id:K,value:p}),[o,K,p]),{compositeProps:F,compositeRef:O,index:_}=(0,w.f)({metadata:P}),H=p===h,q=a.useRef(!1),$=a.useRef(null),B=(0,i.f)(e=>{$.current?.(),$.current=e?I(e):null});(0,n.f)(()=>{if(q.current){q.current=!1;return}if(H&&_>-1&&D!==_){if(null!=L){let e=(0,M.T)((0,m.f)(L));if(e&&(0,M.I)(L,e))return}o||V(_)}},[H,_,D,V,o,L]);let{getButtonProps:U,buttonRef:Z}=(0,k.f)({disabled:o,native:g,focusableWhenDisabled:!0}),J=N(p),W=a.useRef(!1),X=a.useRef(!1);function G(e){E(p,(0,f.j)(S.f.none,e.nativeEvent,void 0,{activationDirection:"none"}))}return(0,l.a)("button",e,{state:{disabled:o,active:H,orientation:A,tabActivationDirection:z},ref:[t,Z,O,B],props:[F,{role:"tab","aria-controls":J,"aria-selected":H,id:K,onClick:function(e){H||o||G(e)},onFocus:function(e){H||o||T&&(!W.current||X.current)&&G(e)},onPointerDown:function(e){if(H||o)return;W.current=!0,X.current=0===e.button;let t=(0,m.f)(e.currentTarget);function a(){W.current=!1,X.current=!1,t.removeEventListener("pointerup",a),t.removeEventListener("pointercancel",a)}t.addEventListener("pointerup",a),t.addEventListener("pointercancel",a)},[j]:H?"":void 0,onKeyDownCapture(){q.current=!0}},x,U],stateAttributesMapping:c})});var E=e.i(144394),A=e.i(474354),z=e.i(137584),T=e.i(223910),I=e.i(673553),L=e.i(180862),L=L,D=L;L.startingStyle,D.endingStyle;let V={...c,...A.f},K=a.forwardRef(function(e,t){let{className:r,value:i,render:o,keepMounted:s=!1,style:u,...c}=e,{value:f,getTabIdByPanelValue:p,orientation:v,tabActivationDirection:g,registerMountedTabPanel:b}=d(),x=(0,y.f)(),{ref:h,index:m}=(0,I.f)(),k=i===f,{mounted:j,transitionStatus:w,setMounted:R}=(0,T.f)(k),C=!j,S=p(i),M=a.useRef(null),N=(0,l.a)("div",e,{state:{hidden:C,orientation:v,tabActivationDirection:g,transitionStatus:w},ref:[t,h,M],props:[{"aria-labelledby":S,hidden:C,id:x,role:"tabpanel",tabIndex:k?0:-1,inert:(0,E.f)(!k),"data-index":m},c],stateAttributesMapping:V});return((0,z.f)({open:k,ref:M,onComplete(){k||R(!1)}}),(0,n.f)(()=>{if(null!=x&&(!C||s))return b(i,x)},[C,s,i,x,b]),s||j)?N:null});var P=e.i(956789),F=e.i(828918),O=e.i(673327),_=e.i(621082),H=e.i(872855);function q(e){let{render:r,className:s,style:u,refs:d=P.v,props:c=P.v,state:f=P.w,stateAttributesMapping:p,highlightedIndex:v,onHighlightedIndexChange:g,orientation:b,grid:x,loopFocus:h,onLoop:m,enableHomeAndEndKeys:y,onMapChange:k,stopEventPropagation:w=!0,rootRef:C,disabledIndices:S,modifierKeys:N,highlightItemOnHover:E=!1,tag:A="div",...z}=e,{props:T,highlightedIndex:I,onHighlightedIndexChange:L,elementsRef:D,onMapChange:V,relayKeyboardEvent:K}=function(e){let{loopFocus:t=!0,orientation:r="both",grid:l,onLoop:o,direction:s,highlightedIndex:u,onHighlightedIndexChange:d,rootRef:c,enableHomeAndEndKeys:f=!1,stopEventPropagation:p,disabledIndices:v,modifierKeys:g=P.v}=e,[b,x]=a.useState(0),h=null!=l,m=a.useRef(null),y=(0,F.A)(m,c),k=a.useRef([]),w=a.useRef(!1),R=a.useRef(null),C=u??b,S=(0,i.f)((e,t=!1)=>{if(R.current=k.current[e]??null,(d??x)(e),t){let t=k.current[e];(0,O.l)(m.current,t,s,r)}}),N=(0,i.f)(e=>{if(0===e.size)return;if(w.current){let e=k.current,t=e.indexOf(R.current);if(-1===t){let t=e[C];!t||(0,_.K)(e,C,v)?S(function(e,t){let a=-1;for(let r=0;r<e.length;r+=1){let n=e[r];if(!(!n||(0,_.K)(e,r,t))){if(n.hasAttribute(j))return r;-1===a&&(a=r)}}return Math.max(a,0)}(e,v)):R.current=t}else t!==C&&S(t);return}w.current=!0;let t=Array.from(e.keys()),a=t.find(e=>e?.hasAttribute(j))??null,n=a?e.get(a)?.index??-1:-1;if(-1!==n)S(n);else if((0,_.K)(t,C,v)){let e=(0,_.e)(t,{disabledIndices:v});(0,_.c)(t,e)||S(e)}(0,O.l)(m.current,a,s,r)});(0,n.f)(()=>{if(null==v||null!=u||!w.current)return;let e=k.current;if((0,_.K)(e,C,v)){let t=(0,_.e)(e,{disabledIndices:v});(0,_.c)(e,t)||S(t)}},[v,u,C,k,S]);let E=(0,i.f)((e,t,a)=>o?o(e,t,a,k):a),A=(0,i.f)(e=>{let a=e.key===O.Z||e.key===O.C;if(!O.J.has(e.key)||!f&&a||function(e,t){for(let a of O.a)if(!t.includes(a)&&e.getModifierState(a))return!0;return!1}(e,g)||!m.current)return;let n="rtl"===s,i=n?O.b:O.q,u=n?O.q:O.b,d="vertical"===r?O.e:i,c="vertical"===r?O.V:u,b=(0,M.Z)(e.nativeEvent);if(null!=b&&(0,O.X)(b)&&!(null==b||b.hasAttribute("disabled")||"true"===b.getAttribute("aria-disabled"))){let t=b.selectionStart,a=b.selectionEnd,r=b.value;if(null==t||e.shiftKey||t!==a||e.key!==c&&t<r.length||e.key!==d&&t>0)return}let x=C,y=(0,_.J)(k,v),j=(0,_._)(k,v);null!=l&&(x=l({disabledIndices:v,elementsRef:k,event:e,highlightedIndex:C,loopFocus:t,maxIndex:j,minIndex:y,onLoop:E,orientation:r,rtl:n}));let w="vertical"!==r&&e.key===i||"horizontal"!==r&&e.key===O.e,R="vertical"!==r&&e.key===u||"horizontal"!==r&&e.key===O.V;f&&(e.key===O.Z?x=y:e.key===O.C&&(x=j)),x===C&&(w||R)&&(t&&x===j&&w?(x=y,o&&(x=o(e,C,x,k))):t&&x===y&&R?(x=j,o&&(x=o(e,C,x,k))):x=(0,_.e)(k.current,{startingIndex:x,decrement:R,disabledIndices:v})),x===C||(0,_.c)(k.current,x)||(p&&e.stopPropagation(),(h||a||w||R)&&e.preventDefault(),S(x,!0),queueMicrotask(()=>{k.current[x]?.focus()}))});return{props:{ref:y,onFocus(e){let t=m.current,a=(0,M.Z)(e.nativeEvent);t&&null!=a&&(0,O.X)(a)&&a.setSelectionRange(0,a.value.length)},onKeyDown:A},highlightedIndex:C,onHighlightedIndexChange:S,elementsRef:k,onMapChange:N,relayKeyboardEvent:A}}({grid:x,loopFocus:h,onLoop:m,orientation:b,highlightedIndex:v,onHighlightedIndexChange:g,rootRef:C,stopEventPropagation:w,enableHomeAndEndKeys:y,direction:(0,H.f)(),disabledIndices:S,modifierKeys:N}),q=(0,l.a)(A,e,{state:f,ref:d,props:[T,...c,z],stateAttributesMapping:p}),$=a.useMemo(()=>({highlightedIndex:I,onHighlightedIndexChange:L,highlightItemOnHover:E,relayKeyboardEvent:K}),[I,L,E,K]);return(0,t.jsx)(R.e.Provider,{value:$,children:(0,t.jsx)(o.f,{elementsRef:D,onMapChange:e=>{k?.(e),V(e)},children:q})})}let $=a.forwardRef(function(e,r){let{activateOnFocus:l=!1,className:o,loopFocus:s=!0,render:u,style:f,...p}=e,{orientation:v,setTabMap:g,tabActivationDirection:b}=d(),[x,h]=a.useState(0),[m,y]=a.useState(null),k=a.useRef(new Set),j=a.useRef(new Set),w=a.useRef(null);(0,n.f)(()=>{if("u"<typeof ResizeObserver)return;let e=new ResizeObserver(()=>{k.current.forEach(e=>{e()})});return w.current=e,m&&e.observe(m),j.current.forEach(t=>{e.observe(t)}),()=>{e.disconnect(),w.current=null}},[m]);let R=(0,i.f)(e=>(k.current.add(e),()=>{k.current.delete(e)})),S=(0,i.f)(e=>(j.current.add(e),w.current?.observe(e),()=>{j.current.delete(e),w.current?.unobserve(e)})),M=a.useMemo(()=>({activateOnFocus:l,registerIndicatorUpdateListener:R,registerTabResizeObserverElement:S,tabsListElement:m}),[l,R,S,m]);return(0,t.jsx)(C.Provider,{value:M,children:(0,t.jsx)(q,{render:u,className:o,style:f,state:{orientation:v,tabActivationDirection:b},refs:[r,y],props:[{"aria-orientation":"vertical"===v?"vertical":void 0,role:"tablist"},p],stateAttributesMapping:c,highlightedIndex:x,enableHomeAndEndKeys:!0,loopFocus:s,orientation:v,onHighlightedIndexChange:h,onMapChange:g,disabledIndices:P.v})})});e.s(["List",0,$,"Panel",0,K,"Root",0,b,"Tab",0,N],69281);var B=e.i(69281),B=B,U=B,Z=B,J=B,W=e.i(225913),X=e.i(975157);let G=(0,W.f)("group/tabs-list inline-flex w-fit items-center justify-center rounded-lg p-[3px] text-muted-foreground group-data-horizontal/tabs:h-8 group-data-vertical/tabs:h-fit group-data-vertical/tabs:flex-col data-[variant=line]:rounded-none",{variants:{variant:{default:"bg-muted",line:"w-full justify-start gap-1 overflow-x-auto bg-transparent p-0 shadow-[inset_0_-1px_0_var(--oc-line)] group-data-horizontal/tabs:h-auto"}},defaultVariants:{variant:"default"}});e.s(["Tabs",0,function({className:e,orientation:a="horizontal",...r}){return(0,t.jsx)(B.Root,{"data-slot":"tabs","data-orientation":a,className:(0,X.f)("group/tabs flex gap-2 data-horizontal:flex-col",e),...r})},"TabsContent",0,function({className:e,...a}){return(0,t.jsx)(J.Panel,{"data-slot":"tabs-content",className:(0,X.f)("flex-1 text-sm outline-none",e),...a})},"TabsList",0,function({className:e,variant:a="default",...r}){return(0,t.jsx)(U.List,{"data-slot":"tabs-list","data-variant":a,className:(0,X.f)(G({variant:a}),e),...r})},"TabsTrigger",0,function({className:e,...a}){return(0,t.jsx)(Z.Tab,{"data-slot":"tabs-trigger",className:(0,X.f)("relative inline-flex h-[calc(100%-1px)] flex-1 items-center justify-center gap-1.5 rounded-md border border-transparent px-1.5 py-0.5 text-sm font-medium whitespace-nowrap text-foreground/60 transition-all group-data-vertical/tabs:w-full group-data-vertical/tabs:justify-start hover:text-foreground focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 focus-visible:outline-1 focus-visible:outline-ring disabled:pointer-events-none disabled:opacity-50 has-data-[icon=inline-end]:pr-1 has-data-[icon=inline-start]:pl-1 aria-disabled:pointer-events-none aria-disabled:opacity-50 dark:text-muted-foreground dark:hover:text-foreground group-data-[variant=default]/tabs-list:data-active:shadow-sm group-data-[variant=line]/tabs-list:data-active:shadow-none [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4","group-data-[variant=line]/tabs-list:bg-transparent group-data-[variant=line]/tabs-list:data-active:bg-transparent dark:group-data-[variant=line]/tabs-list:data-active:border-transparent dark:group-data-[variant=line]/tabs-list:data-active:bg-transparent","data-active:bg-background data-active:text-foreground dark:data-active:border-input dark:data-active:bg-input/30 dark:data-active:text-foreground","after:absolute after:bg-foreground after:opacity-0 after:transition-opacity group-data-horizontal/tabs:after:inset-x-0 group-data-horizontal/tabs:after:bottom-[-5px] group-data-horizontal/tabs:after:h-0.5 group-data-vertical/tabs:after:inset-y-0 group-data-vertical/tabs:after:-right-1 group-data-vertical/tabs:after:w-0.5 group-data-[variant=line]/tabs-list:data-active:after:opacity-100","group-data-[variant=line]/tabs-list:h-auto group-data-[variant=line]/tabs-list:flex-none group-data-[variant=line]/tabs-list:rounded-none group-data-[variant=line]/tabs-list:px-3 group-data-[variant=line]/tabs-list:py-2 group-data-[variant=line]/tabs-list:text-sm group-data-[variant=line]/tabs-list:font-normal group-data-[variant=line]/tabs-list:text-ink-soft group-data-[variant=line]/tabs-list:hover:text-ink group-data-[variant=line]/tabs-list:data-active:font-medium group-data-[variant=line]/tabs-list:data-active:text-ink group-data-[variant=line]/tabs-list:after:bg-brand group-data-horizontal/tabs:group-data-[variant=line]/tabs-list:after:bottom-0","dark:group-data-[variant=line]/tabs-list:text-ink-soft dark:group-data-[variant=line]/tabs-list:hover:text-ink dark:group-data-[variant=line]/tabs-list:data-active:text-ink",e),...a})}],677572)}])})();
|
|
1
|
+
(()=>{"use strict";(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,590246,e=>{let t=(0,e.i(33550).f)("outline","external-link","ExternalLink",[["path",{d:"M12 6h-6a2 2 0 0 0 -2 2v10a2 2 0 0 0 2 2h10a2 2 0 0 0 2 -2v-6",key:"svg-0"}],["path",{d:"M11 13l9 -9",key:"svg-1"}],["path",{d:"M15 4h5v5",key:"svg-2"}]]);e.s(["f",0,t],590246)},225913,e=>{var t=e.i(207670);let a=e=>"boolean"==typeof e?`${e}`:0===e?"0":e,r=t.f;e.s(["f",0,(e,t)=>n=>{var i;if((null==t?void 0:t.variants)==null)return r(e,null==n?void 0:n.class,null==n?void 0:n.className);let{variants:l,defaultVariants:o}=t,s=Object.keys(l).map(e=>{let t=null==n?void 0:n[e],r=null==o?void 0:o[e];if(null===t)return null;let i=a(t)||a(r);return l[e][i]}),u=n&&Object.entries(n).reduce((e,t)=>{let[a,r]=t;return void 0===r||(e[a]=r),e},{});return r(e,s,null==t||null==(i=t.compoundVariants)?void 0:i.reduce((e,t)=>{let{class:a,className:r,...n}=t;return Object.entries(n).every(e=>{let[t,a]=e;return Array.isArray(a)?a.includes({...o,...u}[t]):({...o,...u})[t]===a})?[...e,a,r]:e},[]),null==n?void 0:n.class,null==n?void 0:n.className)}])},385925,e=>{var t=e.i(843476),a=e.i(590246),r=e.i(271645),n=e.i(54131),i=e.i(428325),l=e.i(39626),o=e.i(975157);function s(e){return"fatal"===e||"error"===e?"error":"warning"===e?"warning":"info"}e.i(684496);var u=e.i(95187);let d=(0,u.createServerReference)("407a1d1f396dd024c62b358a9596bc2a8abbce1b66",u.callServer,void 0,u.findSourceMapURL,"readLastHour"),c={info:"text-code-info",warning:"text-code-warn",error:"text-code-err"};e.s(["LogViewer",0,function({mode:e,apps:u,appId:f,initial:p,vercelUrl:v}){var g;let b,x="live"===e,[h,m]=(0,r.useState)(p),y=(0,n.useMask)(),[k,j]=(0,r.useState)(""),[w,R]=(0,r.useState)(""),[C,S]=(0,r.useState)(""),[M,N]=(0,r.useState)(!0),[E,A]=(0,r.useState)(null),[z,T]=(0,r.useState)(0),[I,L]=(0,r.useState)([]),[D,V]=(0,r.useState)(null),[K,P]=(0,r.useTransition)(),F=(0,r.useRef)(!1),O=(0,r.useRef)(null),_=u.find(e=>e.name===k)?.id??null,H=f??_;(0,r.useEffect)(()=>{F.current=K},[K]);let q=(0,r.useCallback)(()=>{P(async()=>{let e=await d(H);e.ok&&e.data?(V(null),L(e.data.problems),m(e.data.lines.slice(-500)),A(Date.parse(e.data.readAt)),T(Date.now())):V(e.ok?"Couldn't read the logs. Try again.":e.error)})},[H]);(0,r.useEffect)(()=>{if(!x)return;let e=setTimeout(q,0);return()=>clearTimeout(e)},[x,q]),(0,r.useEffect)(()=>{if(!x||!M)return;let e=setInterval(()=>{"visible"!==document.visibilityState||F.current||q()},15e3);return()=>clearInterval(e)},[x,M,q]),(0,r.useEffect)(()=>{if(!x)return;let e=setInterval(()=>T(Date.now()),5e3);return()=>clearInterval(e)},[x]);let $=(b=(g={app:f?"":k,level:w,text:C}).text.trim().toLowerCase(),h.filter(e=>(!g.app||e.app===g.app)&&(!g.level||s(e.level)===g.level)&&(!b||`${e.app} ${e.text}`.toLowerCase().includes(b))));return(0,r.useEffect)(()=>{let e=O.current;e&&(e.scrollTop=e.scrollHeight)},[h]),(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)("div",{className:"flex flex-wrap items-center gap-2 px-[18px] pb-3 pt-3.5 max-[720px]:px-3.5",children:[!f&&(0,t.jsxs)("select",{className:(0,o.f)(i.S,"w-auto"),"aria-label":"Project",value:k,onChange:e=>j(e.target.value),children:[(0,t.jsx)("option",{value:"",children:"All projects"}),u.map(e=>(0,t.jsx)("option",{value:e.name,children:y("app",e.name)},e.id))]}),(0,t.jsxs)("select",{className:(0,o.f)(i.S,"w-auto"),"aria-label":"Level",value:w,onChange:e=>R(e.target.value),children:[(0,t.jsx)("option",{value:"",children:"All levels"}),x&&(0,t.jsx)("option",{value:"info",children:"Info"}),(0,t.jsx)("option",{value:"warning",children:"Warning"}),(0,t.jsx)("option",{value:"error",children:"Error"})]}),x?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)("label",{className:"inline-flex items-center gap-1.5 text-[13px]",children:[(0,t.jsx)("input",{type:"checkbox",className:"accent-brand",checked:M,onChange:e=>N(e.target.checked)})," Auto-refresh every 15s"]}),(0,t.jsx)(i.K,{size:"sm",disabled:K,onClick:q,children:K?"Fetching…":"Fetch now"})]}):(0,t.jsx)("input",{className:(0,o.f)(i.S,"w-[200px] max-[720px]:w-full"),placeholder:"Search messages","aria-label":"Search messages",value:C,onChange:e=>S(e.target.value)}),v&&(0,t.jsxs)("a",{href:v,target:"_blank",rel:"noopener noreferrer",className:(0,i.R)({variant:"ghost",size:"sm"}),children:["Open in Vercel ",(0,t.jsx)(a.f,{size:14,"aria-hidden":!0})]}),(0,t.jsx)("span",{className:"ml-auto flex items-center text-[12.5px] text-ink-soft",children:x?(0,t.jsxs)(t.Fragment,{children:["Vercel request logs · last 1 hour · ",function(e,t){if(null===e)return"reading…";let a=Math.max(0,Math.round((t-e)/1e3));return a<5?"read just now":a<60?`read ${a}s ago`:`read ${Math.floor(a/60)} min ago`}(E,z),(0,t.jsx)(l.Src,{kind:"api"})]}):(0,t.jsxs)(t.Fragment,{children:["Copied by the collector every 5 min · kept 7 days",(0,t.jsx)(l.Src,{kind:"calc"})]})})]}),D&&(0,t.jsx)("p",{role:"alert",className:"px-[18px] pb-2 text-[12.5px] text-err max-[720px]:px-3.5",children:D}),I.length>0&&(0,t.jsx)("p",{className:"px-[18px] pb-2 text-[12.5px] text-ink-soft max-[720px]:px-3.5",children:y("text",I.join(" · "))}),(0,t.jsx)("div",{ref:O,tabIndex:0,"aria-label":x?"Request log lines of the last hour":"Stored warning and error log lines",className:"h-[420px] overflow-auto rounded-b-lg bg-code-bg px-4 py-3 font-mono text-[12.5px] leading-[1.7] text-code-text",children:0===$.length?(0,t.jsx)("div",{className:"text-code-dim",children:x?null!==E||D?"No log lines in this window.":"Reading the last hour…":"No warnings or errors stored in the last 7 days."}):$.map(e=>(0,t.jsxs)("div",{className:"whitespace-pre",children:[(0,t.jsx)("time",{className:"text-code-dim",children:e.time})," ",(0,t.jsx)("span",{className:c[s(e.level)],children:e.level.toUpperCase().padEnd(7)})," ",(0,t.jsx)("span",{className:"text-code-proj",children:y("app",e.app).padEnd(17)})," ",y("text",e.text)]},e.id))})]})}],385925)},677572,e=>{var t=e.i(843476),a=e.i(271645),r=e.i(951437),n=e.i(146376),i=e.i(667865),l=e.i(552245),o=e.i(53687),s=e.i(733332);let u=a.createContext(void 0);function d(){let e=a.useContext(u);if(void 0===e)throw Error((0,s.f)(64));return e}let c={tabActivationDirection:e=>({"data-activation-direction":e})};var f=e.i(675606),p=e.i(216856),p=p,v=p,g=p;let b=a.forwardRef(function(e,s){let{className:d,defaultValue:b=0,onValueChange:m,orientation:y="horizontal",render:k,value:j,style:w,...R}=e,C=void 0!==e.defaultValue,S=a.useRef([]),[M,N]=a.useState(()=>new Map),[E,A]=(0,r.f)({controlled:j,default:b,name:"Tabs",state:"value"}),z=void 0!==j,[T,I]=a.useState(()=>new Map),L=a.useRef(void 0),D=a.useCallback(e=>x(T,e),[T]),[V,K]=a.useState(()=>({previousValue:E,tabActivationDirection:"none"})),{previousValue:P,tabActivationDirection:F}=V,O=F,_=!1;P!==E&&(O=h(P,E,y,T),_=null!=P&&null!=E&&null==D(E));let H=_?P:E,q=P!==H||F!==O;(0,n.f)(()=>{q&&K({previousValue:H,tabActivationDirection:O})},[H,q,O]);let $=(0,i.f)((e,t)=>{t.activationDirection=h(E,e,y,T),m?.(e,t),t.isCanceled||A(()=>e)}),B=(0,i.f)((e,t)=>{m?.(e,(0,f.j)(t,void 0,void 0,{activationDirection:"none"}))}),U=(0,i.f)((e,t)=>(N(a=>{let r=new Map(a);return r.set(e,t),r}),()=>{N(a=>{if(a.get(e)!==t)return a;let r=new Map(a);return r.delete(e),r})})),Z=a.useCallback(e=>M.get(e),[M]),J=a.useCallback(e=>{for(let t of T.values())if(e===t.value)return t.id},[T]),W=a.useMemo(()=>({getTabElementBySelectedValue:D,getTabIdByPanelValue:J,getTabPanelIdByValue:Z,onValueChange:$,orientation:y,registerMountedTabPanel:U,setTabMap:I,tabActivationDirection:O,value:E}),[D,J,Z,$,y,U,I,O,E]),X=a.useMemo(()=>{for(let e of T.values())if(e.value===E)return e},[T,E]),G=a.useMemo(()=>{for(let e of T.values())if(!e.disabled)return e.value},[T]),Q=a.useRef(!C),Y=a.useRef(b),ee=a.useRef(C),et=a.useRef(!1);(0,n.f)(()=>{if(z)return;function e(e,t){A(()=>e),K({previousValue:e,tabActivationDirection:"none"}),B(e,t),Q.current=!1}if(0===T.size){et.current&&null!==E&&!L.current?.isConnected&&e(null,v.missing);return}et.current=!0,L.current=T.keys().next().value;let t=X?.disabled,a=null==X&&null!==E;if(t||E!==Y.current||(ee.current=!1),ee.current&&t&&E===Y.current)return;let r=Q.current;if(t||a){let a=G??null;if(E===a){Q.current=!1;return}let n=v.missing;r?n=p.initial:t&&(n=g.disabled),e(a,n);return}r&&null!=X&&(B(E,p.initial),Q.current=!1)},[G,z,B,X,A,T,E]);let ea={orientation:y,tabActivationDirection:O},er=(0,l.a)("div",e,{state:ea,ref:s,props:R,stateAttributesMapping:c});return(0,t.jsx)(u.Provider,{value:W,children:(0,t.jsx)(o.f,{elementsRef:S,children:er})})});function x(e,t){for(let[a,r]of e.entries())if(t===r.value)return a;return null}function h(e,t,a,r){if(null==e||null==t)return"none";let[n,i,l]="horizontal"===a?["left","left","right"]:["top","up","down"],o=x(r,e),s=x(r,t);if(null==o||null==s)return o!==s&&("number"==typeof e||"string"==typeof e)&&typeof e==typeof t?t>e?l:i:"none";let u=o.getBoundingClientRect()[n],d=s.getBoundingClientRect()[n];return d<u?i:d>u?l:"none"}var m=e.i(108868),y=e.i(788015),k=e.i(540886);let j="data-composite-item-active";var w=e.i(395530),R=e.i(838452);let C=a.createContext(void 0);var S=e.i(380025),M=e.i(584446);let N=a.forwardRef(function(e,t){let{className:r,disabled:o=!1,render:u,value:p,id:v,nativeButton:g=!0,style:b,...x}=e,{value:h,getTabPanelIdByValue:N,onValueChange:E,orientation:A,tabActivationDirection:z}=d(),{activateOnFocus:T,registerTabResizeObserverElement:I,tabsListElement:L}=function(){let e=a.useContext(C);if(void 0===e)throw Error((0,s.f)(65));return e}(),{highlightedIndex:D,onHighlightedIndexChange:V}=(0,R.o)(),K=(0,y.f)(v),P=a.useMemo(()=>({disabled:o,id:K,value:p}),[o,K,p]),{compositeProps:F,compositeRef:O,index:_}=(0,w.f)({metadata:P}),H=p===h,q=a.useRef(!1),$=a.useRef(null),B=(0,i.f)(e=>{$.current?.(),$.current=e?I(e):null});(0,n.f)(()=>{if(q.current){q.current=!1;return}if(H&&_>-1&&D!==_){if(null!=L){let e=(0,M.T)((0,m.f)(L));if(e&&(0,M.I)(L,e))return}o||V(_)}},[H,_,D,V,o,L]);let{getButtonProps:U,buttonRef:Z}=(0,k.f)({disabled:o,native:g,focusableWhenDisabled:!0}),J=N(p),W=a.useRef(!1),X=a.useRef(!1);function G(e){E(p,(0,f.j)(S.f.none,e.nativeEvent,void 0,{activationDirection:"none"}))}return(0,l.a)("button",e,{state:{disabled:o,active:H,orientation:A,tabActivationDirection:z},ref:[t,Z,O,B],props:[F,{role:"tab","aria-controls":J,"aria-selected":H,id:K,onClick:function(e){H||o||G(e)},onFocus:function(e){H||o||T&&(!W.current||X.current)&&G(e)},onPointerDown:function(e){if(H||o)return;W.current=!0,X.current=0===e.button;let t=(0,m.f)(e.currentTarget);function a(){W.current=!1,X.current=!1,t.removeEventListener("pointerup",a),t.removeEventListener("pointercancel",a)}t.addEventListener("pointerup",a),t.addEventListener("pointercancel",a)},[j]:H?"":void 0,onKeyDownCapture(){q.current=!0}},x,U],stateAttributesMapping:c})});var E=e.i(144394),A=e.i(474354),z=e.i(137584),T=e.i(223910),I=e.i(673553),L=e.i(180862),L=L,D=L;L.startingStyle,D.endingStyle;let V={...c,...A.f},K=a.forwardRef(function(e,t){let{className:r,value:i,render:o,keepMounted:s=!1,style:u,...c}=e,{value:f,getTabIdByPanelValue:p,orientation:v,tabActivationDirection:g,registerMountedTabPanel:b}=d(),x=(0,y.f)(),{ref:h,index:m}=(0,I.f)(),k=i===f,{mounted:j,transitionStatus:w,setMounted:R}=(0,T.f)(k),C=!j,S=p(i),M=a.useRef(null),N=(0,l.a)("div",e,{state:{hidden:C,orientation:v,tabActivationDirection:g,transitionStatus:w},ref:[t,h,M],props:[{"aria-labelledby":S,hidden:C,id:x,role:"tabpanel",tabIndex:k?0:-1,inert:(0,E.f)(!k),"data-index":m},c],stateAttributesMapping:V});return((0,z.f)({open:k,ref:M,onComplete(){k||R(!1)}}),(0,n.f)(()=>{if(null!=x&&(!C||s))return b(i,x)},[C,s,i,x,b]),s||j)?N:null});var P=e.i(956789),F=e.i(828918),O=e.i(673327),_=e.i(621082),H=e.i(872855);function q(e){let{render:r,className:s,style:u,refs:d=P.v,props:c=P.v,state:f=P.w,stateAttributesMapping:p,highlightedIndex:v,onHighlightedIndexChange:g,orientation:b,grid:x,loopFocus:h,onLoop:m,enableHomeAndEndKeys:y,onMapChange:k,stopEventPropagation:w=!0,rootRef:C,disabledIndices:S,modifierKeys:N,highlightItemOnHover:E=!1,tag:A="div",...z}=e,{props:T,highlightedIndex:I,onHighlightedIndexChange:L,elementsRef:D,onMapChange:V,relayKeyboardEvent:K}=function(e){let{loopFocus:t=!0,orientation:r="both",grid:l,onLoop:o,direction:s,highlightedIndex:u,onHighlightedIndexChange:d,rootRef:c,enableHomeAndEndKeys:f=!1,stopEventPropagation:p,disabledIndices:v,modifierKeys:g=P.v}=e,[b,x]=a.useState(0),h=null!=l,m=a.useRef(null),y=(0,F.A)(m,c),k=a.useRef([]),w=a.useRef(!1),R=a.useRef(null),C=u??b,S=(0,i.f)((e,t=!1)=>{if(R.current=k.current[e]??null,(d??x)(e),t){let t=k.current[e];(0,O.l)(m.current,t,s,r)}}),N=(0,i.f)(e=>{if(0===e.size)return;if(w.current){let e=k.current,t=e.indexOf(R.current);if(-1===t){let t=e[C];!t||(0,_.K)(e,C,v)?S(function(e,t){let a=-1;for(let r=0;r<e.length;r+=1){let n=e[r];if(!(!n||(0,_.K)(e,r,t))){if(n.hasAttribute(j))return r;-1===a&&(a=r)}}return Math.max(a,0)}(e,v)):R.current=t}else t!==C&&S(t);return}w.current=!0;let t=Array.from(e.keys()),a=t.find(e=>e?.hasAttribute(j))??null,n=a?e.get(a)?.index??-1:-1;if(-1!==n)S(n);else if((0,_.K)(t,C,v)){let e=(0,_.e)(t,{disabledIndices:v});(0,_.c)(t,e)||S(e)}(0,O.l)(m.current,a,s,r)});(0,n.f)(()=>{if(null==v||null!=u||!w.current)return;let e=k.current;if((0,_.K)(e,C,v)){let t=(0,_.e)(e,{disabledIndices:v});(0,_.c)(e,t)||S(t)}},[v,u,C,k,S]);let E=(0,i.f)((e,t,a)=>o?o(e,t,a,k):a),A=(0,i.f)(e=>{let a=e.key===O.Z||e.key===O.C;if(!O.J.has(e.key)||!f&&a||function(e,t){for(let a of O.a)if(!t.includes(a)&&e.getModifierState(a))return!0;return!1}(e,g)||!m.current)return;let n="rtl"===s,i=n?O.b:O.q,u=n?O.q:O.b,d="vertical"===r?O.e:i,c="vertical"===r?O.V:u,b=(0,M.Z)(e.nativeEvent);if(null!=b&&(0,O.X)(b)&&!(null==b||b.hasAttribute("disabled")||"true"===b.getAttribute("aria-disabled"))){let t=b.selectionStart,a=b.selectionEnd,r=b.value;if(null==t||e.shiftKey||t!==a||e.key!==c&&t<r.length||e.key!==d&&t>0)return}let x=C,y=(0,_.J)(k,v),j=(0,_._)(k,v);null!=l&&(x=l({disabledIndices:v,elementsRef:k,event:e,highlightedIndex:C,loopFocus:t,maxIndex:j,minIndex:y,onLoop:E,orientation:r,rtl:n}));let w="vertical"!==r&&e.key===i||"horizontal"!==r&&e.key===O.e,R="vertical"!==r&&e.key===u||"horizontal"!==r&&e.key===O.V;f&&(e.key===O.Z?x=y:e.key===O.C&&(x=j)),x===C&&(w||R)&&(t&&x===j&&w?(x=y,o&&(x=o(e,C,x,k))):t&&x===y&&R?(x=j,o&&(x=o(e,C,x,k))):x=(0,_.e)(k.current,{startingIndex:x,decrement:R,disabledIndices:v})),x===C||(0,_.c)(k.current,x)||(p&&e.stopPropagation(),(h||a||w||R)&&e.preventDefault(),S(x,!0),queueMicrotask(()=>{k.current[x]?.focus()}))});return{props:{ref:y,onFocus(e){let t=m.current,a=(0,M.Z)(e.nativeEvent);t&&null!=a&&(0,O.X)(a)&&a.setSelectionRange(0,a.value.length)},onKeyDown:A},highlightedIndex:C,onHighlightedIndexChange:S,elementsRef:k,onMapChange:N,relayKeyboardEvent:A}}({grid:x,loopFocus:h,onLoop:m,orientation:b,highlightedIndex:v,onHighlightedIndexChange:g,rootRef:C,stopEventPropagation:w,enableHomeAndEndKeys:y,direction:(0,H.f)(),disabledIndices:S,modifierKeys:N}),q=(0,l.a)(A,e,{state:f,ref:d,props:[T,...c,z],stateAttributesMapping:p}),$=a.useMemo(()=>({highlightedIndex:I,onHighlightedIndexChange:L,highlightItemOnHover:E,relayKeyboardEvent:K}),[I,L,E,K]);return(0,t.jsx)(R.e.Provider,{value:$,children:(0,t.jsx)(o.f,{elementsRef:D,onMapChange:e=>{k?.(e),V(e)},children:q})})}let $=a.forwardRef(function(e,r){let{activateOnFocus:l=!1,className:o,loopFocus:s=!0,render:u,style:f,...p}=e,{orientation:v,setTabMap:g,tabActivationDirection:b}=d(),[x,h]=a.useState(0),[m,y]=a.useState(null),k=a.useRef(new Set),j=a.useRef(new Set),w=a.useRef(null);(0,n.f)(()=>{if("u"<typeof ResizeObserver)return;let e=new ResizeObserver(()=>{k.current.forEach(e=>{e()})});return w.current=e,m&&e.observe(m),j.current.forEach(t=>{e.observe(t)}),()=>{e.disconnect(),w.current=null}},[m]);let R=(0,i.f)(e=>(k.current.add(e),()=>{k.current.delete(e)})),S=(0,i.f)(e=>(j.current.add(e),w.current?.observe(e),()=>{j.current.delete(e),w.current?.unobserve(e)})),M=a.useMemo(()=>({activateOnFocus:l,registerIndicatorUpdateListener:R,registerTabResizeObserverElement:S,tabsListElement:m}),[l,R,S,m]);return(0,t.jsx)(C.Provider,{value:M,children:(0,t.jsx)(q,{render:u,className:o,style:f,state:{orientation:v,tabActivationDirection:b},refs:[r,y],props:[{"aria-orientation":"vertical"===v?"vertical":void 0,role:"tablist"},p],stateAttributesMapping:c,highlightedIndex:x,enableHomeAndEndKeys:!0,loopFocus:s,orientation:v,onHighlightedIndexChange:h,onMapChange:g,disabledIndices:P.v})})});e.s(["List",0,$,"Panel",0,K,"Root",0,b,"Tab",0,N],69281);var B=e.i(69281),B=B,U=B,Z=B,J=B,W=e.i(225913),X=e.i(975157);let G=(0,W.f)("group/tabs-list inline-flex w-fit items-center justify-center rounded-lg p-[3px] text-muted-foreground group-data-horizontal/tabs:h-8 group-data-vertical/tabs:h-fit group-data-vertical/tabs:flex-col data-[variant=line]:rounded-none",{variants:{variant:{default:"bg-muted",line:"w-full justify-start gap-1 overflow-x-auto bg-transparent p-0 shadow-[inset_0_-1px_0_var(--oc-line)] group-data-horizontal/tabs:h-auto"}},defaultVariants:{variant:"default"}});e.s(["Tabs",0,function({className:e,orientation:a="horizontal",...r}){return(0,t.jsx)(B.Root,{"data-slot":"tabs","data-orientation":a,className:(0,X.f)("group/tabs flex gap-2 data-horizontal:flex-col",e),...r})},"TabsContent",0,function({className:e,...a}){return(0,t.jsx)(J.Panel,{"data-slot":"tabs-content",className:(0,X.f)("flex-1 text-sm outline-none",e),...a})},"TabsList",0,function({className:e,variant:a="default",...r}){return(0,t.jsx)(U.List,{"data-slot":"tabs-list","data-variant":a,className:(0,X.f)(G({variant:a}),e),...r})},"TabsTrigger",0,function({className:e,...a}){return(0,t.jsx)(Z.Tab,{"data-slot":"tabs-trigger",className:(0,X.f)("relative inline-flex h-[calc(100%-1px)] flex-1 items-center justify-center gap-1.5 rounded-md border border-transparent px-1.5 py-0.5 text-sm font-medium whitespace-nowrap text-foreground/60 transition-all group-data-vertical/tabs:w-full group-data-vertical/tabs:justify-start hover:text-foreground focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 focus-visible:outline-1 focus-visible:outline-ring disabled:pointer-events-none disabled:opacity-50 has-data-[icon=inline-end]:pr-1 has-data-[icon=inline-start]:pl-1 aria-disabled:pointer-events-none aria-disabled:opacity-50 dark:text-muted-foreground dark:hover:text-foreground group-data-[variant=default]/tabs-list:data-active:shadow-sm group-data-[variant=line]/tabs-list:data-active:shadow-none [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4","group-data-[variant=line]/tabs-list:bg-transparent group-data-[variant=line]/tabs-list:data-active:bg-transparent dark:group-data-[variant=line]/tabs-list:data-active:border-transparent dark:group-data-[variant=line]/tabs-list:data-active:bg-transparent","data-active:bg-background data-active:text-foreground dark:data-active:border-input dark:data-active:bg-input/30 dark:data-active:text-foreground","after:absolute after:bg-foreground after:opacity-0 after:transition-opacity group-data-horizontal/tabs:after:inset-x-0 group-data-horizontal/tabs:after:bottom-[-5px] group-data-horizontal/tabs:after:h-0.5 group-data-vertical/tabs:after:inset-y-0 group-data-vertical/tabs:after:-right-1 group-data-vertical/tabs:after:w-0.5 group-data-[variant=line]/tabs-list:data-active:after:opacity-100","group-data-[variant=line]/tabs-list:h-auto group-data-[variant=line]/tabs-list:flex-none group-data-[variant=line]/tabs-list:rounded-none group-data-[variant=line]/tabs-list:px-3 group-data-[variant=line]/tabs-list:py-2 group-data-[variant=line]/tabs-list:text-sm group-data-[variant=line]/tabs-list:font-normal group-data-[variant=line]/tabs-list:text-ink-soft group-data-[variant=line]/tabs-list:hover:text-ink group-data-[variant=line]/tabs-list:data-active:font-medium group-data-[variant=line]/tabs-list:data-active:text-ink group-data-[variant=line]/tabs-list:after:bg-brand group-data-horizontal/tabs:group-data-[variant=line]/tabs-list:after:bottom-0","dark:group-data-[variant=line]/tabs-list:text-ink-soft dark:group-data-[variant=line]/tabs-list:hover:text-ink dark:group-data-[variant=line]/tabs-list:data-active:text-ink",e),...a})}],677572)}])})();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(()=>{"use strict";(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,590246,e=>{let t=(0,e.i(33550).f)("outline","external-link","ExternalLink",[["path",{d:"M12 6h-6a2 2 0 0 0 -2 2v10a2 2 0 0 0 2 2h10a2 2 0 0 0 2 -2v-6",key:"svg-0"}],["path",{d:"M11 13l9 -9",key:"svg-1"}],["path",{d:"M15 4h5v5",key:"svg-2"}]]);e.s(["f",0,t],590246)},617708,e=>{let t=(0,e.i(33550).f)("outline","plus","Plus",[["path",{d:"M12 5l0 14",key:"svg-0"}],["path",{d:"M5 12l14 0",key:"svg-1"}]]);e.s(["f",0,t],617708)},518716,e=>{let t=(0,e.i(33550).f)("outline","refresh","Refresh",[["path",{d:"M20 11a8.1 8.1 0 0 0 -15.5 -2m-.5 -4v4h4",key:"svg-0"}],["path",{d:"M4 13a8.1 8.1 0 0 0 15.5 2m.5 4v-4h-4",key:"svg-1"}]]);e.s(["f",0,t],518716)},225913,e=>{var t=e.i(207670);let a=e=>"boolean"==typeof e?`${e}`:0===e?"0":e,n=t.f;e.s(["f",0,(e,t)=>s=>{var o;if((null==t?void 0:t.variants)==null)return n(e,null==s?void 0:s.class,null==s?void 0:s.className);let{variants:r,defaultVariants:i}=t,d=Object.keys(r).map(e=>{let t=null==s?void 0:s[e],n=null==i?void 0:i[e];if(null===t)return null;let o=a(t)||a(n);return r[e][o]}),c=s&&Object.entries(s).reduce((e,t)=>{let[a,n]=t;return void 0===n||(e[a]=n),e},{});return n(e,d,null==t||null==(o=t.compoundVariants)?void 0:o.reduce((e,t)=>{let{class:a,className:n,...s}=t;return Object.entries(s).every(e=>{let[t,a]=e;return Array.isArray(a)?a.includes({...i,...c}[t]):({...i,...c})[t]===a})?[...e,a,n]:e},[]),null==s?void 0:s.class,null==s?void 0:s.className)}])},66930,e=>{var t=e.i(843476),a=e.i(49601),n=e.i(386770),s=e.i(38156),o=e.i(213756),r=e.i(590246),i=e.i(504962),d=e.i(617708);let c=(0,e.i(33550).f)("outline","triangle","Triangle",[["path",{d:"M10.363 3.591l-8.106 13.534a1.914 1.914 0 0 0 1.636 2.871h16.214a1.914 1.914 0 0 0 1.636 -2.87l-8.106 -13.536a1.914 1.914 0 0 0 -3.274 0",key:"svg-0"}]]);var l=e.i(271645),u=e.i(846696),p=e.i(54131),h=e.i(428325),m=e.i(220806),f=e.i(776639);let g={vercel:{createUrl:"https://vercel.com/account/settings/tokens",needs:["Scope: your account","An expiry date. The console warns you 14 days before it ends."],checked:"2026-10-21",name:"Vercel",icon:"triangle",credentialKind:"Access token",accessNote:"Full account (no read-only option)",multiAccount:!1,note:"One account. Tokens can't be read-only, so actions always ask for confirmation."},supabase:{createUrl:"https://supabase.com/dashboard/account/tokens",needs:["Projects read: status, region, Postgres version","Project admin read: service health","Analytics usage read: last API traffic and auto-pause risk","Organization admin read: free plan, for the free-slot count","Database read: database size, once a day (checked at the first daily read, because testing it would query your database)","Project admin write, only if you want pause and restore (stage 6)"],checked:"2026-10-21",name:"Supabase",icon:"bolt",credentialKind:"Scoped access token",accessNote:"Projects, health, analytics, organization and database read",multiAccount:!0,note:"Each account gets 2 free active projects. Use scoped tokens: read-only, plus project admin if you want pause and restore."},neon:{createUrl:"https://console.neon.tech/app/settings/api-keys",needs:["A personal or project API key. Neon has no read-only keys."],checked:"2026-10-21",name:"Neon",icon:"database",credentialKind:"API key",accessNote:"All projects (no read-only option)",multiAccount:!0,note:"No read-only keys exist, so keys stay on the server."},firebase:{createUrl:"https://console.cloud.google.com/iam-admin/serviceaccounts",needs:["Roles on each project: firebase.viewer, datastore.viewer, monitoring.viewer, firebaseauth.viewer","Turn on the Cloud Monitoring API in the project for reads, writes, and deletes today"],checked:"2026-10-21",name:"Firebase",icon:"flame",credentialKind:"Service account JSON",accessNote:"firebase.viewer, datastore.viewer, monitoring.viewer, firebaseauth.viewer",multiAccount:!0,json:!0,note:"One service account per Google account, with viewer roles only."},turso:{createUrl:"https://app.turso.tech/account/api-tokens",needs:["A platform API token limited to one organization (turso auth api-tokens mint watchbell --org <your-org>)","Turso has no read-only platform tokens; the console only lists databases and reads usage","Not a database token: database and group tokens can't list anything"],checked:"2026-10-21",name:"Turso",icon:"database",credentialKind:"Platform API token",accessNote:"One organization: databases and usage (no read-only option)",multiAccount:!0,note:"Lists databases and reads this month's rows read and written and storage against the free plan. Keys stay on the server."},upstash:{createUrl:"https://console.upstash.com/account/api",needs:["A Developer API key created as Read Only (Account → Management API)","Paste it as your-email:API_KEY (Upstash signs API calls with the account email and the key)","Native Upstash accounts only: a database made through the Vercel integration can't be read this way"],checked:"2026-10-21",name:"Upstash",icon:"bolt",credentialKind:"Developer API key",accessNote:"Read-only Developer API key: Redis databases and stats",multiAccount:!0,note:"Redis databases with their region, commands this month and data size against the free plan. QStash is budgeted in Settings."},cloudflare:{createUrl:"https://dash.cloudflare.com/profile/api-tokens",needs:["Zone: Read, DNS: Read, SSL and Certificates: Read","Zone Settings: Read, to show each zone's SSL/TLS mode (optional)","Zone → DNS → Edit, only if the owner wants to edit records from the DNS records page (never create or delete)","Account → D1 → Read, to watch Cloudflare D1 databases (size and tables); add Account → Account Analytics → Read for their rows read and written (optional)","Not needed: Registrar (domain expiry comes from RDAP)"],checked:"2026-10-21",name:"Cloudflare",icon:"cloud",credentialKind:"API token",accessNote:"Zone, DNS, SSL and Certificates read",multiAccount:!0,note:"A read-only API token is enough to watch. Add DNS Edit only to change records from the console. Domain expiry comes from RDAP, so Registrar access isn't needed."},github:{createUrl:"https://github.com/settings/personal-access-tokens/new",needs:["A fine-grained token (it starts with github_pat_); classic tokens can't be limited to read-only","Repository access: all repositories, or only the ones your apps deploy from","Repository permissions, each Read-only: Metadata, Contents, Actions. Nothing else","An expiry date. The console warns you 14 days before it ends."],checked:"2026-10-21",name:"GitHub",icon:"github",credentialKind:"Fine-grained token",accessNote:"Metadata, Contents and Actions read",multiAccount:!1,note:"A read-only fine-grained token. Sync lists your repositories; apps are linked to theirs, and their GitHub Actions status shows on the app page."},github_write:{createUrl:"https://github.com/settings/personal-access-tokens/new",needs:["A separate fine-grained token (it starts with github_pat_), not the read-only one above","Repository access: Only select repositories, the ones you want update PRs for","Repository permissions: Contents: Read and write, Pull requests: Read and write, Commit statuses: Read (for automatic merges). Nothing else (Metadata read is added by GitHub)","An expiry date. The console warns you 14 days before it ends."],checked:"2026-10-21",name:"GitHub (PR write)",icon:"github",credentialKind:"Fine-grained token",accessNote:"Contents and Pull requests read and write, Commit statuses read, chosen repositories",multiAccount:!1,note:"Optional. Opens pull requests that update vulnerable packages (when you approve one, or by itself with Automatic security fixes) and, with automatic fixes and auto-rollback on, squash-merges Watchbell's own PRs once CI, the Vercel preview and its smoke test pass. It never pushes to the default branch directly."}};var x=e.i(95187);let b=(0,x.createServerReference)("70d814b33e3424bab150b993fe58c007a14e821107",x.callServer,void 0,x.findSourceMapURL,"addAccount"),v=(0,x.createServerReference)("604a3688d49f39ea936baee939e027c15fcaec218b",x.callServer,void 0,x.findSourceMapURL,"checkCredential"),k=(0,x.createServerReference)("60744e2f5fd115e12da8665789d0b4e3a0a7c13e90",x.callServer,void 0,x.findSourceMapURL,"replaceCredential"),y={triangle:c,bolt:a.f,database:o.f,flame:i.f,cloud:s.f,github:n.f};function j({provider:e,replace:a,onDone:n,onCancel:s}){let o=g[e],[i,d]=(0,l.useTransition)(),[c,p]=(0,l.useState)(""),[f,x]=(0,l.useState)(""),[y,w]=(0,l.useState)({}),[N,S]=(0,l.useState)(null),A=`${e}-${a?.id??"new"}`,C=o.credentialKind.toLowerCase();return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)("div",{className:"px-[18px] pt-1.5",children:[!a&&(0,t.jsx)(h.O,{id:`${A}-name`,label:"Account name",help:"Shown next to everything that comes from this account.",error:y.label,children:(0,t.jsx)("input",{id:`${A}-name`,value:c,onChange:e=>p(e.target.value),placeholder:"vercel"===e?"acme":"utama",className:h.S})}),(0,t.jsx)(h.O,{id:`${A}-cred`,label:o.credentialKind,error:y.credential,help:(0,t.jsxs)("a",{href:o.createUrl,target:"_blank",rel:"noopener noreferrer",children:[o.guide?"How to create one":"Create one"," ",(0,t.jsx)(r.f,{size:12,className:"inline"})]}),children:o.json?(0,t.jsx)("textarea",{id:`${A}-cred`,spellCheck:!1,autoComplete:"off",autoCorrect:"off",autoCapitalize:"off","data-gramm":"false",value:f,onChange:e=>x(e.target.value),className:`${h.S} min-h-24 font-mono text-[12.5px]`,placeholder:'{ "type": "service_account", "client_email": "…", "private_key": "…" }'}):(0,t.jsx)("input",{id:`${A}-cred`,type:"password",spellCheck:!1,autoComplete:"off",autoCorrect:"off",autoCapitalize:"off","data-gramm":"false",value:f,onChange:e=>x(e.target.value),className:h.S,placeholder:`Paste the ${C}`})}),(0,t.jsxs)("div",{className:"mb-3.5 rounded-lg border border-line bg-surface-2 px-3 py-2.5 text-[13px]",children:[(0,t.jsx)("b",{className:"font-medium",children:"It needs"}),(0,t.jsx)("ul",{className:"mt-1 list-disc pl-[18px] text-ink-soft",children:o.needs.map(e=>(0,t.jsx)("li",{children:e},e))})]}),N&&(0,t.jsxs)("div",{className:`mb-3.5 rounded-lg px-3 py-2.5 text-[13px] ${N.ok?"bg-ok-soft":"bg-err-soft"}`,role:"status",children:[(0,t.jsx)(m.F,{state:N.ok?"ok":"err",children:N.ok?"Connected":"Couldn't connect"}),(0,t.jsx)("ul",{className:"mt-1 list-disc pl-[18px]",children:N.ok?[N.summary,...N.details].map(e=>(0,t.jsx)("li",{children:e},e)):(0,t.jsx)("li",{children:N.error})})]})]}),(0,t.jsxs)("div",{className:"flex flex-wrap items-center justify-end gap-2 border-t border-line px-[18px] py-3",children:[(0,t.jsx)("span",{className:"mr-auto text-[12.5px] text-ink-faint",children:"Save tests the credential first."}),(0,t.jsx)(h.K,{onClick:function(){d(async()=>{let t=await v(e,f);w(t.ok?{}:t.fieldErrors??{}),S(t.ok?t.data??null:t.fieldErrors?null:{ok:!1,kind:"transient",error:t.error})})},disabled:i,children:"Test connection"}),s&&(0,t.jsx)(h.K,{onClick:s,disabled:i,children:"Cancel"}),(0,t.jsx)(h.K,{variant:"primary",onClick:function(){d(async()=>{let t=a?await k(a.id,f):await b(e,c,f);w(t.ok?{}:t.fieldErrors??{}),t.data&&S(t.data),t.ok?(u.c.success(t.message),p(""),x(""),S(null),n?.()):t.fieldErrors||t.data||u.c.error(t.error)})},disabled:i,children:i?"Working…":"Save"})]})]})}e.s(["AccountDialog",0,function({provider:e,replace:a,triggerLabel:n,primary:s}){let o=g[e],r=y[o.icon],[i,c]=(0,l.useState)(!1),[u,m]=(0,l.useState)(0),x=(0,p.useMask)();function b(e){c(e),e||m(e=>e+1)}return(0,t.jsxs)(f.N,{open:i,onOpenChange:b,children:[(0,t.jsxs)(f.a,{className:(0,h.R)({size:"sm",variant:s?"primary":"secondary"}),children:[!a&&!n&&(0,t.jsx)(d.f,{size:16}),n??(a?"Replace credential":"Add account")]}),(0,t.jsxs)(f.d,{className:"max-w-[640px] gap-0 p-0 sm:max-w-[640px]",children:[(0,t.jsxs)("div",{className:"flex items-start gap-3 px-[18px] pb-2 pt-4",children:[(0,t.jsx)("span",{className:"grid size-9 shrink-0 place-items-center rounded-lg bg-sunken text-ink-soft",children:(0,t.jsx)(r,{size:19})}),(0,t.jsxs)("div",{children:[(0,t.jsx)(f.F,{className:"text-base",children:a?`Replace credential \xb7 ${o.name} \xb7 ${x("account",a.label)}`:`Connect ${o.name}`}),(0,t.jsx)(f.C,{className:"mt-0.5 text-[13px] text-ink-soft",children:a?"The old credential is deleted as soon as the new one works.":"The credential is encrypted before it's saved and never shown again."})]})]}),(0,t.jsx)(j,{provider:e,replace:a,onDone:()=>b(!1),onCancel:()=>b(!1)},u)]})]})},"AccountForm",0,j,"PROVIDER_ICONS",0,y],66930)},618897,e=>{var t=e.i(843476),a=e.i(518716),n=e.i(271645),s=e.i(846696),o=e.i(54131),r=e.i(428325),i=e.i(364440),d=e.i(776639),c=e.i(95187);let l=(0,c.createServerReference)("70c5e74e544ce2f95952a09e7d08d98c18d8ffa28e",c.callServer,void 0,c.findSourceMapURL,"saveSyncSelection"),u=(0,c.createServerReference)("4059560f2dd888e4c448f705fee8e594663813b447",c.callServer,void 0,c.findSourceMapURL,"syncNow"),p={app:{what:"projects",looking:"Looking for projects in every team this token can read…",none:"This Vercel account has no projects yet."},zone:{what:"zones",looking:"Looking for zones in this Cloudflare account…",none:"This Cloudflare account has no zones yet."},supabase_project:{what:"projects",looking:"Looking for projects this credential can read…",none:"This account has no projects yet."},neon_project:{what:"projects",looking:"Looking for projects this credential can read…",none:"This account has no projects yet."},firestore:{what:"projects",looking:"Looking for projects this credential can read…",none:"This account has no projects yet."},turso_database:{what:"databases",looking:"Looking for databases in the organizations this token can read…",none:"This Turso account has no databases yet."},upstash_redis:{what:"databases",looking:"Looking for Redis databases this key can read…",none:"This Upstash account has no Redis databases yet."}};e.s(["SyncButton",0,function({accountId:e,title:c,label:h="Sync",primary:m,watchNew:f,kind:g="app"}){let x=p[g],b=(0,o.useMask)(),[v,k]=(0,n.useState)(!1),[y,j]=(0,n.useState)(null),[w,N]=(0,n.useState)(null),[S,A]=(0,n.useState)(new Set),[C,R]=(0,n.useState)(f),[z,P]=(0,n.useTransition)(),[T,M]=(0,n.useTransition)(),U=(0,n.useMemo)(()=>y?.rows??[],[y]);return(0,t.jsxs)(d.N,{open:v,onOpenChange:function(t){k(t),t&&(j(null),N(null),A(new Set),R(f),P(async()=>{let t=await u(e);t.ok&&t.data?(j(t.data),A(new Set(t.data.rows.filter(e=>e.monitored).map(e=>e.id)))):N(t.ok?"Sync returned nothing.":t.error)}))},children:[(0,t.jsxs)(d.a,{className:(0,r.R)({size:"sm",variant:m?"primary":"secondary"}),children:[(0,t.jsx)(a.f,{size:15,"aria-hidden":!0})," ",h]}),(0,t.jsxs)(d.d,{className:"max-w-[640px] gap-0 p-0 sm:max-w-[640px]","aria-label":"Sync resources",children:[(0,t.jsxs)("div",{className:"flex items-start gap-3 px-[18px] pb-2 pt-4",children:[(0,t.jsx)("span",{className:"grid size-9 shrink-0 place-items-center rounded-lg bg-sunken text-ink-soft",children:(0,t.jsx)(a.f,{size:19})}),(0,t.jsxs)("div",{children:[(0,t.jsxs)(d.F,{className:"text-base",children:["Sync ",b("text",c)]}),(0,t.jsx)(d.C,{className:"mt-0.5 text-[13px] text-ink-soft",children:y?`Found ${U.length} resources just now. Pick the ones the console should watch. Unticked ones are ignored and cost nothing.`:w?`The list of ${x.what} could not be loaded.`:x.looking})]})]}),(0,t.jsxs)("div",{className:"px-[18px] pb-2",children:[w&&(0,t.jsx)("div",{className:"mb-2",children:(0,t.jsx)(r.M,{tone:"danger",title:"Sync didn't finish",children:w})}),y&&y.skippedTeams.length>0&&(0,t.jsx)("div",{className:"mb-2",children:(0,t.jsxs)(r.M,{tone:"info",title:"Some teams were skipped",children:["This token can't read ",y.skippedTeams.join(", "),". Create a token with access to them to include their projects."]})}),y?.overLimit&&(0,t.jsx)("div",{className:"mb-2",children:(0,t.jsx)(r.M,{tone:"warning",title:"Monitor limit reached",children:y.overLimit})}),z&&(0,t.jsx)("p",{className:"py-6 text-center text-[13px] text-ink-soft",children:"Syncing…"}),y&&0===U.length&&(0,t.jsx)(r.k,{title:"Nothing found",children:x.none}),y&&U.length>0&&(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)("div",{className:"mb-1.5 flex gap-1.5",children:[(0,t.jsx)(r.K,{size:"sm",onClick:()=>A(new Set(U.map(e=>e.id))),children:"Select all"}),(0,t.jsx)(r.K,{size:"sm",onClick:()=>A(new Set),children:"Select none"})]}),(0,t.jsx)("div",{className:"max-h-[360px] overflow-y-auto rounded-md border border-line",children:U.map(e=>(0,t.jsxs)("label",{className:"flex cursor-pointer items-center gap-3 border-b border-line px-3 py-[9px] last:border-b-0 hover:bg-hover",children:[(0,t.jsx)("input",{type:"checkbox",className:"size-4 accent-brand",checked:S.has(e.id),onChange:()=>{var t;return t=e.id,void A(e=>{let a=new Set(e);return a.has(t)?a.delete(t):a.add(t),a})}}),(0,t.jsx)(i.f,{kind:e.badge}),(0,t.jsxs)("span",{className:"min-w-0 flex-1",children:[(0,t.jsx)("span",{className:"block truncate",children:"db"===e.badge||"fs"===e.badge?(0,t.jsx)(o.DbName,{id:e.id,name:e.name,alias:e.alias}):(0,t.jsx)(o.Masked,{kind:"app"===e.badge?"app":"text",real:e.name})}),(0,t.jsx)("span",{className:"block truncate text-[12px] text-ink-faint",children:(0,t.jsx)(o.Masked,{kind:"text",real:e.sub})})]}),e.fresh&&(0,t.jsx)("span",{className:"rounded bg-brand-soft px-1.5 py-px font-mono text-[10.5px] text-brand",children:"New"})]},e.id))})]})]}),(0,t.jsxs)("div",{className:"flex flex-wrap items-center gap-3 border-t border-line px-[18px] py-3",children:[(0,t.jsxs)("span",{className:"text-[12.5px] text-ink-soft",children:[S.size," of ",U.length," selected"]}),(0,t.jsxs)("label",{className:"flex items-center gap-1.5 text-[12.5px]",children:[(0,t.jsx)("input",{type:"checkbox",className:"size-4 accent-brand",checked:C,onChange:e=>R(e.target.checked)}),"Watch new ones automatically"]}),(0,t.jsxs)("div",{className:"ml-auto flex gap-2",children:[(0,t.jsx)(r.K,{onClick:()=>k(!1),children:"Cancel"}),(0,t.jsx)(r.K,{variant:"primary",disabled:!y||T,onClick:function(){M(async()=>{let t=await l(e,[...S],C);if(!t.ok)return void s.c.error(t.error);let a=`Watching ${S.size} of ${y?.rows.length??0} resources in ${b("text",c)}. Checks start on the next collector run.`,n=t.data?.overLimit;n?s.c.warning("Selection saved",{description:`${a} ${n}`}):s.c.success("Selection saved",{description:a}),k(!1)})},children:T?"Saving…":"Save selection"})]})]})]})]})}],618897)},364440,e=>{var t=e.i(843476);e.i(522016),e.i(54131);var a=e.i(975157);let n={app:["APP","bg-brand-soft text-brand"],db:["DB","bg-teal-soft text-teal"],br:["BR","bg-teal-soft text-teal"],fs:["FS","bg-teal-soft text-teal"],mon:["MON","bg-amber-soft text-amber"],dpl:["DPL","bg-gray-soft text-ink-soft"],dom:["DOM","bg-gray-soft text-ink-soft"],dns:["DNS","bg-gray-soft text-ink-soft"],usr:["USR","bg-gray-soft text-ink-soft"]};e.s(["f",0,function({kind:e}){let[s,o]=n[e];return(0,t.jsx)("span",{className:(0,a.f)("rounded px-[5px] py-px font-mono text-[10.5px] font-medium tracking-[0.02em]",o),children:s})}])},776639,998218,152744,e=>{var t=e.i(843476),a=e.i(526323),n=e.i(828376);e.s(["f",0,n],998218);var n=n,s=e.i(209977),o=e.i(921637),r=e.i(141708),i=e.i(593480),d=e.i(309169),c=n;e.s(["f",0,c],152744);var c=n,l=e.i(975157),u=e.i(271645),p=e.i(540886),h=e.i(552245);let m=u.forwardRef(function(e,t){let{render:a,className:n,disabled:s=!1,focusableWhenDisabled:o=!1,nativeButton:r=!0,style:i,...d}=e,{getButtonProps:c,buttonRef:l}=(0,p.f)({disabled:s,focusableWhenDisabled:o,native:r});return(0,h.a)("button",e,{state:{disabled:s},ref:[t,l],props:[d,c]})}),f=(0,e.i(225913).f)("group/button inline-flex shrink-0 items-center justify-center rounded-lg border border-transparent bg-clip-padding text-sm font-medium whitespace-nowrap transition-all outline-none select-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 active:not-aria-[haspopup]:translate-y-px disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",{variants:{variant:{default:"bg-primary text-primary-foreground hover:bg-primary/80",outline:"border-border bg-background hover:bg-muted hover:text-foreground aria-expanded:bg-muted aria-expanded:text-foreground dark:border-input dark:bg-input/30 dark:hover:bg-input/50",secondary:"bg-secondary text-secondary-foreground hover:bg-[color-mix(in_oklch,var(--secondary),var(--foreground)_5%)] aria-expanded:bg-secondary aria-expanded:text-secondary-foreground",ghost:"hover:bg-muted hover:text-foreground aria-expanded:bg-muted aria-expanded:text-foreground dark:hover:bg-muted/50",destructive:"bg-destructive/10 text-destructive hover:bg-destructive/20 focus-visible:border-destructive/40 focus-visible:ring-destructive/20 dark:bg-destructive/20 dark:hover:bg-destructive/30 dark:focus-visible:ring-destructive/40",link:"text-primary underline-offset-4 hover:underline"},size:{default:"h-8 gap-1.5 px-2.5 has-data-[icon=inline-end]:pr-2 has-data-[icon=inline-start]:pl-2",xs:"h-6 gap-1 rounded-[min(var(--radius-md),10px)] px-2 text-xs in-data-[slot=button-group]:rounded-lg has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [&_svg:not([class*='size-'])]:size-3",sm:"h-7 gap-1 rounded-[min(var(--radius-md),12px)] px-2.5 text-[0.8rem] in-data-[slot=button-group]:rounded-lg has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [&_svg:not([class*='size-'])]:size-3.5",lg:"h-9 gap-1.5 px-2.5 has-data-[icon=inline-end]:pr-2 has-data-[icon=inline-start]:pl-2",icon:"size-8","icon-xs":"size-6 rounded-[min(var(--radius-md),10px)] in-data-[slot=button-group]:rounded-lg [&_svg:not([class*='size-'])]:size-3","icon-sm":"size-7 rounded-[min(var(--radius-md),12px)] in-data-[slot=button-group]:rounded-lg","icon-lg":"size-9"}},defaultVariants:{variant:"default",size:"default"}});function g({className:e,variant:a="default",size:n="default",...s}){return(0,t.jsx)(m,{"data-slot":"button",className:(0,l.f)(f({variant:a,size:n,className:e})),...s})}var x=e.i(456420);let b={name:"x",size:24,node:[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]]};b.node;let v=(0,x.f)(b);function k({...e}){return(0,t.jsx)(s.f.Portal,{"data-slot":"dialog-portal",...e})}function y({className:e,...a}){return(0,t.jsx)(r.f.Backdrop,{"data-slot":"dialog-overlay",className:(0,l.f)("fixed inset-0 isolate z-50 bg-black/10 duration-100 supports-backdrop-filter:backdrop-blur-xs data-open:animate-in data-open:fade-in-0 data-closed:animate-out data-closed:fade-out-0",e),...a})}e.s(["N",0,function({...e}){return(0,t.jsx)(a.f.Root,{"data-slot":"dialog",...e})},"d",0,function({className:e,children:a,showCloseButton:n=!0,...s}){return(0,t.jsxs)(k,{children:[(0,t.jsx)(y,{}),(0,t.jsxs)(i.f.Popup,{"data-slot":"dialog-content",className:(0,l.f)("fixed top-1/2 left-1/2 z-50 grid w-full grid-cols-[minmax(0,1fr)] max-w-[calc(100%-2rem)] -translate-x-1/2 -translate-y-1/2 gap-4 rounded-xl bg-popover p-4 text-sm text-popover-foreground ring-1 ring-foreground/10 duration-100 outline-none sm:max-w-sm data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95",e),...s,children:[a,n&&(0,t.jsxs)(o.f.Close,{"data-slot":"dialog-close",render:(0,t.jsx)(g,{variant:"ghost",className:"absolute top-2 right-2",size:"icon-sm"}),children:[(0,t.jsx)(v,{}),(0,t.jsx)("span",{className:"sr-only",children:"Close"})]})]})]})},"C",0,function({className:e,...a}){return(0,t.jsx)(c.Description,{"data-slot":"dialog-description",className:(0,l.f)("text-sm text-muted-foreground *:[a]:underline *:[a]:underline-offset-3 *:[a]:hover:text-foreground",e),...a})},"F",0,function({className:e,...a}){return(0,t.jsx)(d.f.Title,{"data-slot":"dialog-title",className:(0,l.f)("font-heading text-base leading-none font-medium",e),...a})},"a",0,function({...e}){return(0,t.jsx)(n.Trigger,{"data-slot":"dialog-trigger",...e})}],776639)}])})();
|
|
1
|
+
(()=>{"use strict";(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,590246,e=>{let t=(0,e.i(33550).f)("outline","external-link","ExternalLink",[["path",{d:"M12 6h-6a2 2 0 0 0 -2 2v10a2 2 0 0 0 2 2h10a2 2 0 0 0 2 -2v-6",key:"svg-0"}],["path",{d:"M11 13l9 -9",key:"svg-1"}],["path",{d:"M15 4h5v5",key:"svg-2"}]]);e.s(["f",0,t],590246)},617708,e=>{let t=(0,e.i(33550).f)("outline","plus","Plus",[["path",{d:"M12 5l0 14",key:"svg-0"}],["path",{d:"M5 12l14 0",key:"svg-1"}]]);e.s(["f",0,t],617708)},518716,e=>{let t=(0,e.i(33550).f)("outline","refresh","Refresh",[["path",{d:"M20 11a8.1 8.1 0 0 0 -15.5 -2m-.5 -4v4h4",key:"svg-0"}],["path",{d:"M4 13a8.1 8.1 0 0 0 15.5 2m.5 4v-4h-4",key:"svg-1"}]]);e.s(["f",0,t],518716)},225913,e=>{var t=e.i(207670);let a=e=>"boolean"==typeof e?`${e}`:0===e?"0":e,n=t.f;e.s(["f",0,(e,t)=>s=>{var o;if((null==t?void 0:t.variants)==null)return n(e,null==s?void 0:s.class,null==s?void 0:s.className);let{variants:r,defaultVariants:i}=t,d=Object.keys(r).map(e=>{let t=null==s?void 0:s[e],n=null==i?void 0:i[e];if(null===t)return null;let o=a(t)||a(n);return r[e][o]}),c=s&&Object.entries(s).reduce((e,t)=>{let[a,n]=t;return void 0===n||(e[a]=n),e},{});return n(e,d,null==t||null==(o=t.compoundVariants)?void 0:o.reduce((e,t)=>{let{class:a,className:n,...s}=t;return Object.entries(s).every(e=>{let[t,a]=e;return Array.isArray(a)?a.includes({...i,...c}[t]):({...i,...c})[t]===a})?[...e,a,n]:e},[]),null==s?void 0:s.class,null==s?void 0:s.className)}])},66930,e=>{var t=e.i(843476),a=e.i(49601),n=e.i(386770),s=e.i(38156),o=e.i(213756),r=e.i(590246),i=e.i(504962),d=e.i(617708);let c=(0,e.i(33550).f)("outline","triangle","Triangle",[["path",{d:"M10.363 3.591l-8.106 13.534a1.914 1.914 0 0 0 1.636 2.871h16.214a1.914 1.914 0 0 0 1.636 -2.87l-8.106 -13.536a1.914 1.914 0 0 0 -3.274 0",key:"svg-0"}]]);var l=e.i(271645),u=e.i(846696),p=e.i(54131),h=e.i(428325),m=e.i(220806),f=e.i(776639);let g={vercel:{createUrl:"https://vercel.com/account/settings/tokens",needs:["Scope: your account","An expiry date. The console warns you 14 days before it ends."],checked:"2026-10-21",name:"Vercel",icon:"triangle",credentialKind:"Access token",accessNote:"Full account (no read-only option)",multiAccount:!1,note:"One account. Tokens can't be read-only, so actions always ask for confirmation."},supabase:{createUrl:"https://supabase.com/dashboard/account/tokens",needs:["Projects read: status, region, Postgres version","Project admin read: service health","Analytics usage read: last API traffic and auto-pause risk","Organization admin read: free plan, for the free-slot count","Database read: database size, once a day (checked at the first daily read, because testing it would query your database)","Project admin write, only if you want pause and restore (stage 6)"],checked:"2026-10-21",name:"Supabase",icon:"bolt",credentialKind:"Scoped access token",accessNote:"Projects, health, analytics, organization and database read",multiAccount:!0,note:"Each account gets 2 free active projects. Use scoped tokens: read-only, plus project admin if you want pause and restore."},neon:{createUrl:"https://console.neon.tech/app/settings/api-keys",needs:["A personal or project API key. Neon has no read-only keys."],checked:"2026-10-21",name:"Neon",icon:"database",credentialKind:"API key",accessNote:"All projects (no read-only option)",multiAccount:!0,note:"No read-only keys exist, so keys stay on the server."},firebase:{createUrl:"https://console.cloud.google.com/iam-admin/serviceaccounts",needs:["Roles on each project: firebase.viewer, datastore.viewer, monitoring.viewer, firebaseauth.viewer","Turn on the Cloud Monitoring API in the project for reads, writes, and deletes today"],checked:"2026-10-21",name:"Firebase",icon:"flame",credentialKind:"Service account JSON",accessNote:"firebase.viewer, datastore.viewer, monitoring.viewer, firebaseauth.viewer",multiAccount:!0,json:!0,note:"One service account per Google account, with viewer roles only."},turso:{createUrl:"https://app.turso.tech/account/api-tokens",needs:["A platform API token limited to one organization (turso auth api-tokens mint watchbell --org <your-org>)","Turso has no read-only platform tokens; the console only lists databases and reads usage","Not a database token: database and group tokens can't list anything"],checked:"2026-10-21",name:"Turso",icon:"database",credentialKind:"Platform API token",accessNote:"One organization: databases and usage (no read-only option)",multiAccount:!0,note:"Lists databases and reads this month's rows read and written and storage against the free plan. Keys stay on the server."},upstash:{createUrl:"https://console.upstash.com/account/api",needs:["A Developer API key created as Read Only (Account → Management API)","Paste it as your-email:API_KEY (Upstash signs API calls with the account email and the key)","Native Upstash accounts only: a database made through the Vercel integration can't be read this way"],checked:"2026-10-21",name:"Upstash",icon:"bolt",credentialKind:"Developer API key",accessNote:"Read-only Developer API key: Redis databases and stats",multiAccount:!0,note:"Redis databases with their region, commands this month and data size against the free plan. QStash is budgeted in Settings."},cloudflare:{createUrl:"https://dash.cloudflare.com/profile/api-tokens",needs:["Zone: Read, DNS: Read, SSL and Certificates: Read","Zone Settings: Read, to show each zone's SSL/TLS mode (optional)","Zone → DNS → Edit, only if the owner wants to edit records from the DNS records page (never create or delete)","Account → D1 → Read, to watch Cloudflare D1 databases (size and tables); add Account → Account Analytics → Read for their rows read and written (optional)","Not needed: Registrar (domain expiry comes from RDAP)"],checked:"2026-10-21",name:"Cloudflare",icon:"cloud",credentialKind:"API token",accessNote:"Zone, DNS, SSL and Certificates read",multiAccount:!0,note:"A read-only API token is enough to watch. Add DNS Edit only to change records from the console. Domain expiry comes from RDAP, so Registrar access isn't needed."},github:{createUrl:"https://github.com/settings/personal-access-tokens/new",needs:["A fine-grained token (it starts with github_pat_); classic tokens can't be limited to read-only","Repository access: all repositories, or only the ones your apps deploy from","Repository permissions, each Read-only: Metadata, Contents, Actions. Nothing else","An expiry date. The console warns you 14 days before it ends."],checked:"2026-10-21",name:"GitHub",icon:"github",credentialKind:"Fine-grained token",accessNote:"Metadata, Contents and Actions read",multiAccount:!1,note:"A read-only fine-grained token. Sync lists your repositories; apps are linked to theirs, and their GitHub Actions status shows on the app page."},github_write:{createUrl:"https://github.com/settings/personal-access-tokens/new",needs:["A separate fine-grained token (it starts with github_pat_), not the read-only one above","Repository access: Only select repositories, the ones you want update PRs for","Repository permissions: Contents: Read and write, Pull requests: Read and write, Commit statuses: Read (for automatic merges). Nothing else (Metadata read is added by GitHub)","An expiry date. The console warns you 14 days before it ends."],checked:"2026-10-21",name:"GitHub (PR write)",icon:"github",credentialKind:"Fine-grained token",accessNote:"Contents and Pull requests read and write, Commit statuses read, chosen repositories",multiAccount:!1,note:"Optional. Opens pull requests that update vulnerable packages (when you approve one, or by itself with Automatic security fixes) and, with automatic fixes and auto-rollback on, squash-merges Watchbell's own PRs once CI, the Vercel preview and its smoke test pass. It never pushes to the default branch directly."}};var x=e.i(95187);let b=(0,x.createServerReference)("705038dfb40f7b686a137f0d1f24a29eaa314beb31",x.callServer,void 0,x.findSourceMapURL,"addAccount"),v=(0,x.createServerReference)("60967e0d0291e6d8142545f340bd45880ea031babc",x.callServer,void 0,x.findSourceMapURL,"checkCredential"),k=(0,x.createServerReference)("60f788c6f27e52e489eba677bacfb9459f175091d6",x.callServer,void 0,x.findSourceMapURL,"replaceCredential"),y={triangle:c,bolt:a.f,database:o.f,flame:i.f,cloud:s.f,github:n.f};function j({provider:e,replace:a,onDone:n,onCancel:s}){let o=g[e],[i,d]=(0,l.useTransition)(),[c,p]=(0,l.useState)(""),[f,x]=(0,l.useState)(""),[y,w]=(0,l.useState)({}),[N,S]=(0,l.useState)(null),A=`${e}-${a?.id??"new"}`,C=o.credentialKind.toLowerCase();return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)("div",{className:"px-[18px] pt-1.5",children:[!a&&(0,t.jsx)(h.O,{id:`${A}-name`,label:"Account name",help:"Shown next to everything that comes from this account.",error:y.label,children:(0,t.jsx)("input",{id:`${A}-name`,value:c,onChange:e=>p(e.target.value),placeholder:"vercel"===e?"acme":"utama",className:h.S})}),(0,t.jsx)(h.O,{id:`${A}-cred`,label:o.credentialKind,error:y.credential,help:(0,t.jsxs)("a",{href:o.createUrl,target:"_blank",rel:"noopener noreferrer",children:[o.guide?"How to create one":"Create one"," ",(0,t.jsx)(r.f,{size:12,className:"inline"})]}),children:o.json?(0,t.jsx)("textarea",{id:`${A}-cred`,spellCheck:!1,autoComplete:"off",autoCorrect:"off",autoCapitalize:"off","data-gramm":"false",value:f,onChange:e=>x(e.target.value),className:`${h.S} min-h-24 font-mono text-[12.5px]`,placeholder:'{ "type": "service_account", "client_email": "…", "private_key": "…" }'}):(0,t.jsx)("input",{id:`${A}-cred`,type:"password",spellCheck:!1,autoComplete:"off",autoCorrect:"off",autoCapitalize:"off","data-gramm":"false",value:f,onChange:e=>x(e.target.value),className:h.S,placeholder:`Paste the ${C}`})}),(0,t.jsxs)("div",{className:"mb-3.5 rounded-lg border border-line bg-surface-2 px-3 py-2.5 text-[13px]",children:[(0,t.jsx)("b",{className:"font-medium",children:"It needs"}),(0,t.jsx)("ul",{className:"mt-1 list-disc pl-[18px] text-ink-soft",children:o.needs.map(e=>(0,t.jsx)("li",{children:e},e))})]}),N&&(0,t.jsxs)("div",{className:`mb-3.5 rounded-lg px-3 py-2.5 text-[13px] ${N.ok?"bg-ok-soft":"bg-err-soft"}`,role:"status",children:[(0,t.jsx)(m.F,{state:N.ok?"ok":"err",children:N.ok?"Connected":"Couldn't connect"}),(0,t.jsx)("ul",{className:"mt-1 list-disc pl-[18px]",children:N.ok?[N.summary,...N.details].map(e=>(0,t.jsx)("li",{children:e},e)):(0,t.jsx)("li",{children:N.error})})]})]}),(0,t.jsxs)("div",{className:"flex flex-wrap items-center justify-end gap-2 border-t border-line px-[18px] py-3",children:[(0,t.jsx)("span",{className:"mr-auto text-[12.5px] text-ink-faint",children:"Save tests the credential first."}),(0,t.jsx)(h.K,{onClick:function(){d(async()=>{let t=await v(e,f);w(t.ok?{}:t.fieldErrors??{}),S(t.ok?t.data??null:t.fieldErrors?null:{ok:!1,kind:"transient",error:t.error})})},disabled:i,children:"Test connection"}),s&&(0,t.jsx)(h.K,{onClick:s,disabled:i,children:"Cancel"}),(0,t.jsx)(h.K,{variant:"primary",onClick:function(){d(async()=>{let t=a?await k(a.id,f):await b(e,c,f);w(t.ok?{}:t.fieldErrors??{}),t.data&&S(t.data),t.ok?(u.c.success(t.message),p(""),x(""),S(null),n?.()):t.fieldErrors||t.data||u.c.error(t.error)})},disabled:i,children:i?"Working…":"Save"})]})]})}e.s(["AccountDialog",0,function({provider:e,replace:a,triggerLabel:n,primary:s}){let o=g[e],r=y[o.icon],[i,c]=(0,l.useState)(!1),[u,m]=(0,l.useState)(0),x=(0,p.useMask)();function b(e){c(e),e||m(e=>e+1)}return(0,t.jsxs)(f.N,{open:i,onOpenChange:b,children:[(0,t.jsxs)(f.a,{className:(0,h.R)({size:"sm",variant:s?"primary":"secondary"}),children:[!a&&!n&&(0,t.jsx)(d.f,{size:16}),n??(a?"Replace credential":"Add account")]}),(0,t.jsxs)(f.d,{className:"max-w-[640px] gap-0 p-0 sm:max-w-[640px]",children:[(0,t.jsxs)("div",{className:"flex items-start gap-3 px-[18px] pb-2 pt-4",children:[(0,t.jsx)("span",{className:"grid size-9 shrink-0 place-items-center rounded-lg bg-sunken text-ink-soft",children:(0,t.jsx)(r,{size:19})}),(0,t.jsxs)("div",{children:[(0,t.jsx)(f.F,{className:"text-base",children:a?`Replace credential \xb7 ${o.name} \xb7 ${x("account",a.label)}`:`Connect ${o.name}`}),(0,t.jsx)(f.C,{className:"mt-0.5 text-[13px] text-ink-soft",children:a?"The old credential is deleted as soon as the new one works.":"The credential is encrypted before it's saved and never shown again."})]})]}),(0,t.jsx)(j,{provider:e,replace:a,onDone:()=>b(!1),onCancel:()=>b(!1)},u)]})]})},"AccountForm",0,j,"PROVIDER_ICONS",0,y],66930)},618897,e=>{var t=e.i(843476),a=e.i(518716),n=e.i(271645),s=e.i(846696),o=e.i(54131),r=e.i(428325),i=e.i(364440),d=e.i(776639),c=e.i(95187);let l=(0,c.createServerReference)("7075de08fb6d670f4d6e104e5e68a98e7c95503f02",c.callServer,void 0,c.findSourceMapURL,"saveSyncSelection"),u=(0,c.createServerReference)("4002b6d0c33a29dc4db384dc865b4f4a63c7bd6659",c.callServer,void 0,c.findSourceMapURL,"syncNow"),p={app:{what:"projects",looking:"Looking for projects in every team this token can read…",none:"This Vercel account has no projects yet."},zone:{what:"zones",looking:"Looking for zones in this Cloudflare account…",none:"This Cloudflare account has no zones yet."},supabase_project:{what:"projects",looking:"Looking for projects this credential can read…",none:"This account has no projects yet."},neon_project:{what:"projects",looking:"Looking for projects this credential can read…",none:"This account has no projects yet."},firestore:{what:"projects",looking:"Looking for projects this credential can read…",none:"This account has no projects yet."},turso_database:{what:"databases",looking:"Looking for databases in the organizations this token can read…",none:"This Turso account has no databases yet."},upstash_redis:{what:"databases",looking:"Looking for Redis databases this key can read…",none:"This Upstash account has no Redis databases yet."}};e.s(["SyncButton",0,function({accountId:e,title:c,label:h="Sync",primary:m,watchNew:f,kind:g="app"}){let x=p[g],b=(0,o.useMask)(),[v,k]=(0,n.useState)(!1),[y,j]=(0,n.useState)(null),[w,N]=(0,n.useState)(null),[S,A]=(0,n.useState)(new Set),[C,R]=(0,n.useState)(f),[z,P]=(0,n.useTransition)(),[T,M]=(0,n.useTransition)(),U=(0,n.useMemo)(()=>y?.rows??[],[y]);return(0,t.jsxs)(d.N,{open:v,onOpenChange:function(t){k(t),t&&(j(null),N(null),A(new Set),R(f),P(async()=>{let t=await u(e);t.ok&&t.data?(j(t.data),A(new Set(t.data.rows.filter(e=>e.monitored).map(e=>e.id)))):N(t.ok?"Sync returned nothing.":t.error)}))},children:[(0,t.jsxs)(d.a,{className:(0,r.R)({size:"sm",variant:m?"primary":"secondary"}),children:[(0,t.jsx)(a.f,{size:15,"aria-hidden":!0})," ",h]}),(0,t.jsxs)(d.d,{className:"max-w-[640px] gap-0 p-0 sm:max-w-[640px]","aria-label":"Sync resources",children:[(0,t.jsxs)("div",{className:"flex items-start gap-3 px-[18px] pb-2 pt-4",children:[(0,t.jsx)("span",{className:"grid size-9 shrink-0 place-items-center rounded-lg bg-sunken text-ink-soft",children:(0,t.jsx)(a.f,{size:19})}),(0,t.jsxs)("div",{children:[(0,t.jsxs)(d.F,{className:"text-base",children:["Sync ",b("text",c)]}),(0,t.jsx)(d.C,{className:"mt-0.5 text-[13px] text-ink-soft",children:y?`Found ${U.length} resources just now. Pick the ones the console should watch. Unticked ones are ignored and cost nothing.`:w?`The list of ${x.what} could not be loaded.`:x.looking})]})]}),(0,t.jsxs)("div",{className:"px-[18px] pb-2",children:[w&&(0,t.jsx)("div",{className:"mb-2",children:(0,t.jsx)(r.M,{tone:"danger",title:"Sync didn't finish",children:w})}),y&&y.skippedTeams.length>0&&(0,t.jsx)("div",{className:"mb-2",children:(0,t.jsxs)(r.M,{tone:"info",title:"Some teams were skipped",children:["This token can't read ",y.skippedTeams.join(", "),". Create a token with access to them to include their projects."]})}),y?.overLimit&&(0,t.jsx)("div",{className:"mb-2",children:(0,t.jsx)(r.M,{tone:"warning",title:"Monitor limit reached",children:y.overLimit})}),z&&(0,t.jsx)("p",{className:"py-6 text-center text-[13px] text-ink-soft",children:"Syncing…"}),y&&0===U.length&&(0,t.jsx)(r.k,{title:"Nothing found",children:x.none}),y&&U.length>0&&(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)("div",{className:"mb-1.5 flex gap-1.5",children:[(0,t.jsx)(r.K,{size:"sm",onClick:()=>A(new Set(U.map(e=>e.id))),children:"Select all"}),(0,t.jsx)(r.K,{size:"sm",onClick:()=>A(new Set),children:"Select none"})]}),(0,t.jsx)("div",{className:"max-h-[360px] overflow-y-auto rounded-md border border-line",children:U.map(e=>(0,t.jsxs)("label",{className:"flex cursor-pointer items-center gap-3 border-b border-line px-3 py-[9px] last:border-b-0 hover:bg-hover",children:[(0,t.jsx)("input",{type:"checkbox",className:"size-4 accent-brand",checked:S.has(e.id),onChange:()=>{var t;return t=e.id,void A(e=>{let a=new Set(e);return a.has(t)?a.delete(t):a.add(t),a})}}),(0,t.jsx)(i.f,{kind:e.badge}),(0,t.jsxs)("span",{className:"min-w-0 flex-1",children:[(0,t.jsx)("span",{className:"block truncate",children:"db"===e.badge||"fs"===e.badge?(0,t.jsx)(o.DbName,{id:e.id,name:e.name,alias:e.alias}):(0,t.jsx)(o.Masked,{kind:"app"===e.badge?"app":"text",real:e.name})}),(0,t.jsx)("span",{className:"block truncate text-[12px] text-ink-faint",children:(0,t.jsx)(o.Masked,{kind:"text",real:e.sub})})]}),e.fresh&&(0,t.jsx)("span",{className:"rounded bg-brand-soft px-1.5 py-px font-mono text-[10.5px] text-brand",children:"New"})]},e.id))})]})]}),(0,t.jsxs)("div",{className:"flex flex-wrap items-center gap-3 border-t border-line px-[18px] py-3",children:[(0,t.jsxs)("span",{className:"text-[12.5px] text-ink-soft",children:[S.size," of ",U.length," selected"]}),(0,t.jsxs)("label",{className:"flex items-center gap-1.5 text-[12.5px]",children:[(0,t.jsx)("input",{type:"checkbox",className:"size-4 accent-brand",checked:C,onChange:e=>R(e.target.checked)}),"Watch new ones automatically"]}),(0,t.jsxs)("div",{className:"ml-auto flex gap-2",children:[(0,t.jsx)(r.K,{onClick:()=>k(!1),children:"Cancel"}),(0,t.jsx)(r.K,{variant:"primary",disabled:!y||T,onClick:function(){M(async()=>{let t=await l(e,[...S],C);if(!t.ok)return void s.c.error(t.error);let a=`Watching ${S.size} of ${y?.rows.length??0} resources in ${b("text",c)}. Checks start on the next collector run.`,n=t.data?.overLimit;n?s.c.warning("Selection saved",{description:`${a} ${n}`}):s.c.success("Selection saved",{description:a}),k(!1)})},children:T?"Saving…":"Save selection"})]})]})]})]})}],618897)},364440,e=>{var t=e.i(843476);e.i(522016),e.i(54131);var a=e.i(975157);let n={app:["APP","bg-brand-soft text-brand"],db:["DB","bg-teal-soft text-teal"],br:["BR","bg-teal-soft text-teal"],fs:["FS","bg-teal-soft text-teal"],mon:["MON","bg-amber-soft text-amber"],dpl:["DPL","bg-gray-soft text-ink-soft"],dom:["DOM","bg-gray-soft text-ink-soft"],dns:["DNS","bg-gray-soft text-ink-soft"],usr:["USR","bg-gray-soft text-ink-soft"]};e.s(["f",0,function({kind:e}){let[s,o]=n[e];return(0,t.jsx)("span",{className:(0,a.f)("rounded px-[5px] py-px font-mono text-[10.5px] font-medium tracking-[0.02em]",o),children:s})}])},776639,998218,152744,e=>{var t=e.i(843476),a=e.i(526323),n=e.i(828376);e.s(["f",0,n],998218);var n=n,s=e.i(209977),o=e.i(921637),r=e.i(141708),i=e.i(593480),d=e.i(309169),c=n;e.s(["f",0,c],152744);var c=n,l=e.i(975157),u=e.i(271645),p=e.i(540886),h=e.i(552245);let m=u.forwardRef(function(e,t){let{render:a,className:n,disabled:s=!1,focusableWhenDisabled:o=!1,nativeButton:r=!0,style:i,...d}=e,{getButtonProps:c,buttonRef:l}=(0,p.f)({disabled:s,focusableWhenDisabled:o,native:r});return(0,h.a)("button",e,{state:{disabled:s},ref:[t,l],props:[d,c]})}),f=(0,e.i(225913).f)("group/button inline-flex shrink-0 items-center justify-center rounded-lg border border-transparent bg-clip-padding text-sm font-medium whitespace-nowrap transition-all outline-none select-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 active:not-aria-[haspopup]:translate-y-px disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",{variants:{variant:{default:"bg-primary text-primary-foreground hover:bg-primary/80",outline:"border-border bg-background hover:bg-muted hover:text-foreground aria-expanded:bg-muted aria-expanded:text-foreground dark:border-input dark:bg-input/30 dark:hover:bg-input/50",secondary:"bg-secondary text-secondary-foreground hover:bg-[color-mix(in_oklch,var(--secondary),var(--foreground)_5%)] aria-expanded:bg-secondary aria-expanded:text-secondary-foreground",ghost:"hover:bg-muted hover:text-foreground aria-expanded:bg-muted aria-expanded:text-foreground dark:hover:bg-muted/50",destructive:"bg-destructive/10 text-destructive hover:bg-destructive/20 focus-visible:border-destructive/40 focus-visible:ring-destructive/20 dark:bg-destructive/20 dark:hover:bg-destructive/30 dark:focus-visible:ring-destructive/40",link:"text-primary underline-offset-4 hover:underline"},size:{default:"h-8 gap-1.5 px-2.5 has-data-[icon=inline-end]:pr-2 has-data-[icon=inline-start]:pl-2",xs:"h-6 gap-1 rounded-[min(var(--radius-md),10px)] px-2 text-xs in-data-[slot=button-group]:rounded-lg has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [&_svg:not([class*='size-'])]:size-3",sm:"h-7 gap-1 rounded-[min(var(--radius-md),12px)] px-2.5 text-[0.8rem] in-data-[slot=button-group]:rounded-lg has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [&_svg:not([class*='size-'])]:size-3.5",lg:"h-9 gap-1.5 px-2.5 has-data-[icon=inline-end]:pr-2 has-data-[icon=inline-start]:pl-2",icon:"size-8","icon-xs":"size-6 rounded-[min(var(--radius-md),10px)] in-data-[slot=button-group]:rounded-lg [&_svg:not([class*='size-'])]:size-3","icon-sm":"size-7 rounded-[min(var(--radius-md),12px)] in-data-[slot=button-group]:rounded-lg","icon-lg":"size-9"}},defaultVariants:{variant:"default",size:"default"}});function g({className:e,variant:a="default",size:n="default",...s}){return(0,t.jsx)(m,{"data-slot":"button",className:(0,l.f)(f({variant:a,size:n,className:e})),...s})}var x=e.i(456420);let b={name:"x",size:24,node:[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]]};b.node;let v=(0,x.f)(b);function k({...e}){return(0,t.jsx)(s.f.Portal,{"data-slot":"dialog-portal",...e})}function y({className:e,...a}){return(0,t.jsx)(r.f.Backdrop,{"data-slot":"dialog-overlay",className:(0,l.f)("fixed inset-0 isolate z-50 bg-black/10 duration-100 supports-backdrop-filter:backdrop-blur-xs data-open:animate-in data-open:fade-in-0 data-closed:animate-out data-closed:fade-out-0",e),...a})}e.s(["N",0,function({...e}){return(0,t.jsx)(a.f.Root,{"data-slot":"dialog",...e})},"d",0,function({className:e,children:a,showCloseButton:n=!0,...s}){return(0,t.jsxs)(k,{children:[(0,t.jsx)(y,{}),(0,t.jsxs)(i.f.Popup,{"data-slot":"dialog-content",className:(0,l.f)("fixed top-1/2 left-1/2 z-50 grid w-full grid-cols-[minmax(0,1fr)] max-w-[calc(100%-2rem)] -translate-x-1/2 -translate-y-1/2 gap-4 rounded-xl bg-popover p-4 text-sm text-popover-foreground ring-1 ring-foreground/10 duration-100 outline-none sm:max-w-sm data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95",e),...s,children:[a,n&&(0,t.jsxs)(o.f.Close,{"data-slot":"dialog-close",render:(0,t.jsx)(g,{variant:"ghost",className:"absolute top-2 right-2",size:"icon-sm"}),children:[(0,t.jsx)(v,{}),(0,t.jsx)("span",{className:"sr-only",children:"Close"})]})]})]})},"C",0,function({className:e,...a}){return(0,t.jsx)(c.Description,{"data-slot":"dialog-description",className:(0,l.f)("text-sm text-muted-foreground *:[a]:underline *:[a]:underline-offset-3 *:[a]:hover:text-foreground",e),...a})},"F",0,function({className:e,...a}){return(0,t.jsx)(d.f.Title,{"data-slot":"dialog-title",className:(0,l.f)("font-heading text-base leading-none font-medium",e),...a})},"a",0,function({...e}){return(0,t.jsx)(n.Trigger,{"data-slot":"dialog-trigger",...e})}],776639)}])})();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(()=>{"use strict";(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,531219,e=>{let t=(0,e.i(33550).f)("outline","filter-off","FilterOff",[["path",{d:"M8 4h12v2.172a2 2 0 0 1 -.586 1.414l-3.914 3.914m-.5 3.5v4l-6 2v-8.5l-4.48 -4.928a2 2 0 0 1 -.52 -1.345v-2.227",key:"svg-0"}],["path",{d:"M3 3l18 18",key:"svg-1"}]]);e.s(["f",0,t],531219)},225913,e=>{var t=e.i(207670);let n=e=>"boolean"==typeof e?`${e}`:0===e?"0":e,r=t.f;e.s(["f",0,(e,t)=>a=>{var i;if((null==t?void 0:t.variants)==null)return r(e,null==a?void 0:a.class,null==a?void 0:a.className);let{variants:l,defaultVariants:s}=t,o=Object.keys(l).map(e=>{let t=null==a?void 0:a[e],r=null==s?void 0:s[e];if(null===t)return null;let i=n(t)||n(r);return l[e][i]}),d=a&&Object.entries(a).reduce((e,t)=>{let[n,r]=t;return void 0===r||(e[n]=r),e},{});return r(e,o,null==t||null==(i=t.compoundVariants)?void 0:i.reduce((e,t)=>{let{class:n,className:r,...a}=t;return Object.entries(a).every(e=>{let[t,n]=e;return Array.isArray(n)?n.includes({...s,...d}[t]):({...s,...d})[t]===n})?[...e,n,r]:e},[]),null==a?void 0:a.class,null==a?void 0:a.className)}])},919036,127756,270121,e=>{var t=e.i(95187);let n=(0,t.createServerReference)("60899cb564c2342488acfc7065abe363ea9d0adf29",t.callServer,void 0,t.findSourceMapURL,"promoteAction");e.s(["f",0,n],919036);let r=(0,t.createServerReference)("605425c2bab4662d343951924387c326c58de7a317",t.callServer,void 0,t.findSourceMapURL,"redeployAction");e.s(["f",0,r],127756);let a=(0,t.createServerReference)("6007465c940f51c958c51977b36b83f9dd5223e730",t.callServer,void 0,t.findSourceMapURL,"rollbackAction");e.s(["f",0,a],270121)},523135,e=>{var t=e.i(843476),n=e.i(271645),r=e.i(54131),a=e.i(428325),i=e.i(799589),l=e.i(177106),s=e.i(856033),o=e.i(452842),d=e.i(95187);let c=(0,d.createServerReference)("608f340167ab012792b78a5eb98e04c55e15f6aaca",d.callServer,void 0,d.findSourceMapURL,"cancelAction");var u=e.i(919036);let p=(0,d.createServerReference)("60c4dcf82b192ffbc9c1c0315dc72187309438e5aa",d.callServer,void 0,d.findSourceMapURL,"promotePreviewAction");var f=e.i(127756),x=e.i(270121),m=e.i(39626),h=e.i(776639),b=e.i(500443);let g=/(\berror(?![-\w])|\bERR!|\bERR_[A-Z_]+|\bfailed\b|exited with (?:code )?[1-9]|Module not found|command not found)/i,v=/^\s*(?:npm |pnpm |yarn )?(?:warn|warning)\b|\b0 (?:errors?|failed)\b/i;function y(e){return"command"!==e.kind&&"delimiter"!==e.kind&&g.test(e.text)&&!v.test(e.text)}var k=e.i(975157);let j=(0,d.createServerReference)("605eb17b2719b6c30ea47110b0fc3e57e7ee30bbfb",d.callServer,void 0,d.findSourceMapURL,"buildLogsAction"),w={stdout:"",stderr:"text-code-warn",command:"text-code-info",delimiter:"text-code-dim"},N=e=>`build-line-${e}`;function S({log:e}){let n=e.lines.findIndex(y),r=e.lines.filter(y).length;return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)("div",{className:"flex flex-wrap items-center gap-x-3 gap-y-1 px-[18px] pb-2 text-[12.5px] text-ink-soft",children:[(0,t.jsxs)("span",{children:[e.lines.length," lines",e.truncated?` (the last ${2e3.toLocaleString("en-US")})`:""]}),n>=0?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)("span",{className:"text-err",children:[r," error line",1===r?"":"s"]}),(0,t.jsx)("button",{type:"button","data-line":N(n),className:"text-brand hover:underline",onClick:()=>document.getElementById(N(n))?.scrollIntoView({block:"center"}),children:"Jump to first error"})]}):(0,t.jsx)("span",{children:"No error lines"})]}),(0,t.jsx)("div",{tabIndex:0,"aria-label":"Build log lines",className:"min-h-0 flex-1 overflow-auto bg-code-bg px-4 py-3 font-mono text-[12.5px] leading-[1.7] text-code-text",children:0===e.lines.length?(0,t.jsx)("div",{className:"text-code-dim",children:"Vercel returned no build output for this deployment."}):e.lines.map((e,n)=>{let r=y(e);return(0,t.jsx)("div",{id:N(n),"data-error":r?"":void 0,className:(0,k.f)("whitespace-pre-wrap [overflow-wrap:anywhere]",r?"-mx-4 border-l-2 border-err bg-err/15 px-[14px] text-code-err":w[e.kind],"delimiter"===e.kind&&"mt-1.5 font-medium"),children:"command"===e.kind?`$ ${e.text}`:e.text||" "},n)})})]})}function $({appId:e,deploymentId:r,title:a,open:i,onOpenChange:l,read:s=j}){let[o,d]=(0,n.useState)(null);return(0,b.useHoldRefresh)(i),(0,n.useEffect)(()=>{if(!i)return;let t=!0;return s(e,r).then(e=>{t&&d(e.ok&&e.data?{log:e.data}:{error:e.ok?"No build log came back.":e.error})}).catch(()=>{t&&d({error:"Something went wrong. Try again."})}),()=>{t=!1,d(null)}},[i,e,r,s]),(0,t.jsx)(h.N,{open:i,onOpenChange:l,children:(0,t.jsxs)(h.d,{className:"top-0 right-0 left-auto flex h-dvh max-w-full translate-x-0 translate-y-0 flex-col gap-0 rounded-none p-0 sm:max-w-[780px]",children:[(0,t.jsxs)("div",{className:"px-[18px] pb-2 pt-4 pr-12",children:[(0,t.jsxs)(h.F,{className:"text-base",children:["Build log · ",a]}),(0,t.jsxs)(h.C,{className:"mt-0.5 text-[12.5px] text-ink-soft",children:["Newest build, read from Vercel now",(0,t.jsx)(m.Src,{kind:"api"})]})]}),null===o?(0,t.jsx)("p",{className:"px-[18px] pb-4 text-[13px] text-ink-soft",children:"Reading the build log…"}):"error"in o?(0,t.jsx)("p",{role:"alert",className:"px-[18px] pb-4 text-[13px] text-err",children:o.error}):(0,t.jsx)(S,{log:o.log})]})})}let R={label:"View build logs",kind:"logs"};e.s(["DeployRowActions",0,function({d:e,actions:d,logs:m}){var h;let b,g,v,y=(0,r.useMask)(),{open:k,dialog:j}=(0,i.W)(),[w,N]=(0,n.useState)(!1),S=e.sha?e.sha.slice(0,7):"",{visit:C,deployment:z}=(b=e.url?`https://${e.url}`:null,e.primaryDomain?{visit:`https://${e.primaryDomain}`,deployment:b}:{visit:b??"",deployment:null}),{buttons:M,menu:P}=(g=[...(h={actions:d,logs:m,visit:!!C&&e.visit}).visit&&"button"!==h.logs?[{label:"Visit",kind:"visit"}]:[],...h.actions.map(e=>({label:e,kind:"action",action:e})),..."button"===h.logs?[R]:[]],v="menu"===h.logs?[R]:[],g.length>2?{buttons:[],menu:[...g,...v]}:{buttons:g,menu:v}),A=t=>k({...(0,s.f)(t,y("app",e.appName),S),run:function(e,t,n){switch(e){case"Redeploy":return()=>(0,f.f)(t,n);case"Roll back to this":return()=>(0,x.f)(t,n);case"Promote":return()=>(0,u.f)(t,n);case"Cancel":return()=>c(t,n);case"Promote to production":return()=>p(t,n)}}(t,e.appId,e.externalId)});return(0,t.jsxs)("div",{className:"flex items-center gap-1.5",children:[M.map(e=>"visit"===e.kind?(0,t.jsx)("a",{href:C,target:"_blank",rel:"noreferrer",className:(0,a.R)({size:"sm"}),children:"Visit"},e.label):"logs"===e.kind?(0,t.jsx)(a.K,{size:"sm",onClick:()=>N(!0),children:e.label},e.label):(0,t.jsx)(a.K,{size:"sm",onClick:()=>A(e.action),children:e.label},e.label)),z&&e.visit&&"button"!==m&&(0,t.jsx)("a",{href:z,target:"_blank",rel:"noreferrer",className:"text-xs text-ink-faint underline-offset-2 hover:text-ink hover:underline",children:"Deployment URL"}),P.length>0&&(0,t.jsx)(l.RowMenu,{label:(0,o.J)(y("app",e.appName),S||e.url||e.externalId),items:P.map(e=>"visit"===e.kind?{label:e.label,href:C}:"logs"===e.kind?{label:e.label,onSelect:()=>N(!0)}:{label:e.label,onSelect:()=>A(e.action)})}),j,m&&(0,t.jsx)($,{appId:e.appId,deploymentId:e.externalId,title:`${y("app",e.appName)}${S?` ${S}`:""}`,open:w,onOpenChange:N})]})}],523135)},46200,e=>{var t=e.i(843476),n=e.i(146874),r=e.i(239692),a=e.i(271645),i=e.i(846696),l=e.i(428325),s=e.i(500443),o=e.i(776639);e.s(["f",0,function({trigger:e,open:d,onOpenChange:c,title:u,body:p,cta:f,danger:x=!1,onConfirm:m}){let[h,b]=(0,a.useState)(!1),g=d??h,[v,y]=(0,a.useTransition)();function k(e){void 0===d&&b(e),c?.(e)}return(0,s.useHoldRefresh)(g),(0,t.jsxs)(o.N,{open:g,onOpenChange:e=>{v||k(e)},children:[void 0!==e&&((0,a.isValidElement)(e)?(0,t.jsx)(o.a,{render:e}):(0,t.jsx)(o.a,{children:e})),(0,t.jsxs)(o.d,{className:"gap-0 p-0 sm:max-w-[640px]",showCloseButton:!1,children:[(0,t.jsxs)("div",{className:"flex items-start gap-3 px-[18px] pb-2 pt-4",children:[(0,t.jsx)("span",{className:`grid size-9 shrink-0 place-items-center rounded-lg bg-sunken ${x?"text-err":"text-ink-soft"}`,children:x?(0,t.jsx)(n.f,{size:19}):(0,t.jsx)(r.f,{size:19})}),(0,t.jsxs)("div",{children:[(0,t.jsx)(o.F,{className:"text-base",children:u}),(0,t.jsx)(o.C,{className:"mt-0.5 text-[13px] text-ink-soft",children:p})]})]}),(0,t.jsxs)("div",{className:"flex flex-wrap items-center justify-end gap-2 border-t border-line px-[18px] py-3",children:[(0,t.jsx)(l.K,{onClick:()=>k(!1),disabled:v,children:"Keep as is"}),(0,t.jsx)(l.K,{variant:x?"danger":"primary",onClick:function(){y(async()=>{try{let e=await m();e.ok?(i.c.success(e.message),k(!1)):i.c.error(e.message)}catch{i.c.error("Something went wrong. Try again.")}})},disabled:v,children:v?"Working…":f})]})]})]})}])},374931,e=>{var t=e.i(843476),n=e.i(531219),r=e.i(357772),a=e.i(271645),i=e.i(54131),l=e.i(428325),s=e.i(541299),o=e.i(691106),d=e.i(975157),c=e.i(322534),u=e.i(495784);e.s(["ListFilter",0,function({placeholder:e,states:p,groups:f,head:x,rows:m,chips:h}){var b,g;let v,[y,k]=(0,a.useState)(""),[j,w]=(0,a.useState)(""),[N,S]=(0,a.useState)(""),[$,R]=(0,a.useState)(""),[C,z]=(0,a.useState)(1),M=(0,i.useMask)(),P=(b=m.map(e=>({...e,text:`${e.text} ${M("text",e.text)}`})),v=(g={text:y,state:j,group:$,tag:N}).text.trim().toLowerCase(),b.filter(e=>(!g.state||e.state===g.state)&&(!g.group||e.group===g.group)&&(!g.tag||(e.tags??[]).includes(g.tag))&&(!v||e.text.toLowerCase().includes(v)))),A=(0,u.$)(P,C),_=A.rows;A.page!==C&&z(A.page);let O=p?.find(([e])=>e===j)?.[1];return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)("div",{className:"flex flex-wrap items-center gap-2 px-[18px] pb-3 pt-3.5 max-[720px]:px-3.5",children:[(0,t.jsx)("input",{className:(0,d.f)(l.S,"w-[240px] max-[720px]:w-full"),placeholder:e,"aria-label":e,value:y,onChange:e=>{k(e.target.value),z(1)}}),p&&(0,t.jsxs)("select",{className:(0,d.f)(l.S,"w-auto"),"aria-label":"State",value:j,onChange:e=>{w(e.target.value),z(1)},children:[(0,t.jsx)("option",{value:"",children:"All states"}),p.map(([e,n])=>(0,t.jsx)("option",{value:e,children:n},e))]}),f&&f.length>1&&(0,t.jsxs)("select",{className:(0,d.f)(l.S,"w-auto"),"aria-label":"Account",value:$,onChange:e=>{R(e.target.value),z(1)},children:[(0,t.jsx)("option",{value:"",children:"All accounts"}),f.map(e=>(0,t.jsx)("option",{value:e,children:M("account",e)},e))]}),h?.map(([e,n])=>(0,t.jsx)("button",{type:"button","aria-pressed":N===e,onClick:()=>{S(N===e?"":e),z(1)},className:(0,d.f)("rounded-[5px] border px-2 py-0.5 text-[12.5px]",N===e?"border-brand bg-brand-soft text-brand":"border-line text-ink-soft hover:bg-hover"),children:n},e)),O&&(0,t.jsxs)("span",{className:"inline-flex items-center gap-1 rounded-[5px] bg-brand-soft py-px pl-2 pr-1 text-[12.5px] text-brand",children:["State: ",O,(0,t.jsx)("button",{type:"button","aria-label":"Remove filter",className:"px-0.5",onClick:()=>{w(""),z(1)},children:(0,t.jsx)(r.f,{size:13})})]}),$&&(0,t.jsxs)("span",{className:"inline-flex items-center gap-1 rounded-[5px] bg-brand-soft py-px pl-2 pr-1 text-[12.5px] text-brand",children:["Account: ",(0,t.jsx)(i.Masked,{kind:"account",real:$}),(0,t.jsx)("button",{type:"button","aria-label":"Remove account filter",className:"px-0.5",onClick:()=>{R(""),z(1)},children:(0,t.jsx)(r.f,{size:13})})]}),(0,t.jsx)("span",{role:"status",className:"ml-auto text-[12.5px] text-ink-soft",children:(0,c.f)(P.length)})]}),(0,t.jsx)("div",{className:"overflow-x-auto",children:(0,t.jsxs)("table",{className:o.o,children:[(0,t.jsx)(o.U,{head:x}),(0,t.jsx)("tbody",{children:_.map(e=>(0,t.jsx)(a.Fragment,{children:e.row},e.key))})]})}),0===P.length&&m.length>0&&(0,t.jsxs)(l.k,{icon:n.f,title:"No results",children:["Nothing matches these filters."," ",(0,t.jsx)("button",{type:"button",className:"text-brand hover:underline",onClick:()=>{k(""),w(""),R(""),S(""),z(1)},children:"Clear filters"})]}),(0,t.jsx)(s.f,{page:A.page,pages:A.pages,text:(0,u.z)(A),onPage:z})]})}],374931)},541299,495784,e=>{var t=e.i(843476),n=e.i(271645),r=e.i(428325),a=e.i(975157);function i(e,t,n=25){let r=e.length,a=Math.max(1,Math.ceil(r/n)),l=Math.min(Math.max(Number.isFinite(t)?Math.floor(t):1,1),a),s=(l-1)*n,o=e.slice(s,s+n);return{rows:o,page:l,pages:a,from:0===r?0:s+1,to:s+o.length,total:r}}e.s(["f",0,function({page:e,pages:i,text:l,onPage:s,bleed:o=!1}){let d=(0,n.useRef)(null),c=(0,n.useRef)(null);if((0,n.useEffect)(()=>{null!==c.current&&(d.current?.querySelectorAll("button")[c.current]?.focus(),c.current=null)},[e]),i<=1)return null;let u=(e,t)=>{(e<=1||e>=i)&&(c.current=t),s(e)};return(0,t.jsxs)("div",{className:(0,a.f)("flex items-center gap-2 border-t border-line px-[18px] py-2.5 text-[12.5px] text-ink-soft",o?"-mx-[18px] -mb-4 mt-2":"max-[720px]:px-3.5"),children:[(0,t.jsx)("span",{role:"status",children:l}),(0,t.jsxs)("span",{ref:d,className:"ml-auto flex gap-1.5",children:[(0,t.jsx)(r.K,{size:"sm",className:"disabled:hover:bg-surface","aria-label":"Previous page",disabled:e<=1,onClick:()=>u(e-1,1),children:"‹ Previous"}),(0,t.jsx)(r.K,{size:"sm",className:"disabled:hover:bg-surface","aria-label":"Next page",disabled:e>=i,onClick:()=>u(e+1,0),children:"Next ›"})]})]})}],541299),e.s(["k",0,function(e,t,n,r){return r<=1?null:t>0&&null!==n?n:e[0]?.id??null},"$",0,i,"f",0,function(e,t,n,r=25){let a=null===n?0:Math.max(0,e.findIndex(e=>e.id===n)),l=i(e.slice(a),t,r);return 0===a||l.page>1?{...l,shift:a}:{...i(e,1,r),shift:0}},"z",0,function(e,t=0,n=e.total){return`${e.from+t}–${e.to+t} of ${n}`}],495784)},799589,225794,e=>{var t=e.i(843476),n=e.i(271645),r=e.i(54131),a=e.i(46200),i=e.i(428325);function l(e,t=e=>e){return e.ok?{ok:!0,message:t(e.message??"Done.")}:{ok:!1,message:t(e.error)}}function s(){let e=(0,r.useMask)();return t=>l(t,t=>e("text",t))}e.s(["f",0,l],225794),e.s(["p",0,function({label:e,title:n,body:r,cta:l,danger:o=!1,run:d}){let c=s();return(0,t.jsx)(a.f,{trigger:(0,t.jsx)(i.K,{variant:o?"danger":"secondary",children:e}),title:n,body:r,cta:l,danger:o,onConfirm:async()=>c(await d())})},"W",0,function(){let[e,r]=(0,n.useState)(null),i=s(),l=e?(0,t.jsx)(a.f,{open:!0,onOpenChange:e=>{e||r(null)},title:e.title,body:e.body,cta:e.cta,danger:e.danger,onConfirm:async()=>i(await e.run())}):null;return{open:r,dialog:l}}],799589)},177106,e=>{var t=e.i(843476),n=e.i(33550);let r=(0,n.f)("outline","chevron-down","ChevronDown",[["path",{d:"M6 9l6 6l6 -6",key:"svg-0"}]]),a=(0,n.f)("outline","dots-vertical","DotsVertical",[["path",{d:"M11 12a1 1 0 1 0 2 0a1 1 0 1 0 -2 0",key:"svg-0"}],["path",{d:"M11 19a1 1 0 1 0 2 0a1 1 0 1 0 -2 0",key:"svg-1"}],["path",{d:"M11 5a1 1 0 1 0 2 0a1 1 0 1 0 -2 0",key:"svg-2"}]]);var i=e.i(271645),l=e.i(428325),s=e.i(500443),o=e.i(755146);e.s(["RowMenu",0,function({items:e,button:n=!1,label:d="Actions"}){let[c,u]=(0,i.useState)(!1);return(0,s.useHoldRefresh)(c),(0,t.jsxs)(o.G,{open:c,onOpenChange:u,children:[n?(0,t.jsxs)(o.X,{className:(0,l.R)(),children:[d," ",(0,t.jsx)(r,{size:16,"aria-hidden":!0})]}):(0,t.jsx)(o.X,{"aria-label":d,className:"rounded-[5px] px-1.5 py-1 text-ink-faint hover:bg-sunken hover:text-ink focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-brand/40",children:(0,t.jsx)(a,{size:17})}),(0,t.jsx)(o.L,{align:"end",className:"min-w-[200px] rounded-[8px] border border-line-strong bg-surface p-1 shadow-[0_8px_24px_rgba(0,0,0,.14)] ring-0",children:e.map((e,n)=>"---"===e?(0,t.jsx)(o.U,{},`sep-${n}`):(0,t.jsxs)(o.r,{disabled:void 0!==e.disabled,variant:e.danger?"destructive":"default",className:"rounded-[5px] px-2.5 py-[7px]",onClick:()=>{e.href?window.open(e.href,"_blank","noopener,noreferrer"):e.onSelect?.()},children:[e.label,void 0!==e.disabled&&(0,t.jsx)("span",{className:"ml-auto pl-3 text-[11px] text-ink-faint",children:e.disabled})]},e.label))})]})}],177106)},776639,998218,152744,e=>{var t=e.i(843476),n=e.i(526323),r=e.i(828376);e.s(["f",0,r],998218);var r=r,a=e.i(209977),i=e.i(921637),l=e.i(141708),s=e.i(593480),o=e.i(309169),d=r;e.s(["f",0,d],152744);var d=r,c=e.i(975157),u=e.i(271645),p=e.i(540886),f=e.i(552245);let x=u.forwardRef(function(e,t){let{render:n,className:r,disabled:a=!1,focusableWhenDisabled:i=!1,nativeButton:l=!0,style:s,...o}=e,{getButtonProps:d,buttonRef:c}=(0,p.f)({disabled:a,focusableWhenDisabled:i,native:l});return(0,f.a)("button",e,{state:{disabled:a},ref:[t,c],props:[o,d]})}),m=(0,e.i(225913).f)("group/button inline-flex shrink-0 items-center justify-center rounded-lg border border-transparent bg-clip-padding text-sm font-medium whitespace-nowrap transition-all outline-none select-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 active:not-aria-[haspopup]:translate-y-px disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",{variants:{variant:{default:"bg-primary text-primary-foreground hover:bg-primary/80",outline:"border-border bg-background hover:bg-muted hover:text-foreground aria-expanded:bg-muted aria-expanded:text-foreground dark:border-input dark:bg-input/30 dark:hover:bg-input/50",secondary:"bg-secondary text-secondary-foreground hover:bg-[color-mix(in_oklch,var(--secondary),var(--foreground)_5%)] aria-expanded:bg-secondary aria-expanded:text-secondary-foreground",ghost:"hover:bg-muted hover:text-foreground aria-expanded:bg-muted aria-expanded:text-foreground dark:hover:bg-muted/50",destructive:"bg-destructive/10 text-destructive hover:bg-destructive/20 focus-visible:border-destructive/40 focus-visible:ring-destructive/20 dark:bg-destructive/20 dark:hover:bg-destructive/30 dark:focus-visible:ring-destructive/40",link:"text-primary underline-offset-4 hover:underline"},size:{default:"h-8 gap-1.5 px-2.5 has-data-[icon=inline-end]:pr-2 has-data-[icon=inline-start]:pl-2",xs:"h-6 gap-1 rounded-[min(var(--radius-md),10px)] px-2 text-xs in-data-[slot=button-group]:rounded-lg has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [&_svg:not([class*='size-'])]:size-3",sm:"h-7 gap-1 rounded-[min(var(--radius-md),12px)] px-2.5 text-[0.8rem] in-data-[slot=button-group]:rounded-lg has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [&_svg:not([class*='size-'])]:size-3.5",lg:"h-9 gap-1.5 px-2.5 has-data-[icon=inline-end]:pr-2 has-data-[icon=inline-start]:pl-2",icon:"size-8","icon-xs":"size-6 rounded-[min(var(--radius-md),10px)] in-data-[slot=button-group]:rounded-lg [&_svg:not([class*='size-'])]:size-3","icon-sm":"size-7 rounded-[min(var(--radius-md),12px)] in-data-[slot=button-group]:rounded-lg","icon-lg":"size-9"}},defaultVariants:{variant:"default",size:"default"}});function h({className:e,variant:n="default",size:r="default",...a}){return(0,t.jsx)(x,{"data-slot":"button",className:(0,c.f)(m({variant:n,size:r,className:e})),...a})}var b=e.i(456420);let g={name:"x",size:24,node:[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]]};g.node;let v=(0,b.f)(g);function y({...e}){return(0,t.jsx)(a.f.Portal,{"data-slot":"dialog-portal",...e})}function k({className:e,...n}){return(0,t.jsx)(l.f.Backdrop,{"data-slot":"dialog-overlay",className:(0,c.f)("fixed inset-0 isolate z-50 bg-black/10 duration-100 supports-backdrop-filter:backdrop-blur-xs data-open:animate-in data-open:fade-in-0 data-closed:animate-out data-closed:fade-out-0",e),...n})}e.s(["N",0,function({...e}){return(0,t.jsx)(n.f.Root,{"data-slot":"dialog",...e})},"d",0,function({className:e,children:n,showCloseButton:r=!0,...a}){return(0,t.jsxs)(y,{children:[(0,t.jsx)(k,{}),(0,t.jsxs)(s.f.Popup,{"data-slot":"dialog-content",className:(0,c.f)("fixed top-1/2 left-1/2 z-50 grid w-full grid-cols-[minmax(0,1fr)] max-w-[calc(100%-2rem)] -translate-x-1/2 -translate-y-1/2 gap-4 rounded-xl bg-popover p-4 text-sm text-popover-foreground ring-1 ring-foreground/10 duration-100 outline-none sm:max-w-sm data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95",e),...a,children:[n,r&&(0,t.jsxs)(i.f.Close,{"data-slot":"dialog-close",render:(0,t.jsx)(h,{variant:"ghost",className:"absolute top-2 right-2",size:"icon-sm"}),children:[(0,t.jsx)(v,{}),(0,t.jsx)("span",{className:"sr-only",children:"Close"})]})]})]})},"C",0,function({className:e,...n}){return(0,t.jsx)(d.Description,{"data-slot":"dialog-description",className:(0,c.f)("text-sm text-muted-foreground *:[a]:underline *:[a]:underline-offset-3 *:[a]:hover:text-foreground",e),...n})},"F",0,function({className:e,...n}){return(0,t.jsx)(o.f.Title,{"data-slot":"dialog-title",className:(0,c.f)("font-heading text-base leading-none font-medium",e),...n})},"a",0,function({...e}){return(0,t.jsx)(r.Trigger,{"data-slot":"dialog-trigger",...e})}],776639)},70528,876195,e=>{let t=/^[A-Za-z_$][\w$]*(?:\.[A-Za-z_$][\w$]*|\[\d{1,6}\])*$/,n=new Set(["__proto__","prototype","constructor"]),r=[300,3600,86400,604800],a=[300,3600,21600];e.s(["q",0,a,"Q",0,r,"v",0,function(e){return e%604800==0?604800===e?"1 week":`${e/604800} weeks`:e%86400==0?86400===e?"1 day":`${e/86400} days`:e%3600==0?`${e/3600} h`:`${Math.max(1,Math.round(e/60))} min`}],876195);let i=/^(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})$/;function l(e){let t=i.exec(e);if(!t)return null;let n=t.slice(1).map(Number);return n.every(e=>e<=255)?n:null}function s([e,t,n]){return 0===e||10===e||127===e||e>=224||100===e&&t>=64&&t<=127||169===e&&254===t||172===e&&t>=16&&t<=31||192===e&&0===t&&0===n||192===e&&168===t||198===e&&(18===t||19===t)}function o(e){return"https:"!==e.protocol||e.username||e.password?"scheme":""!==e.port&&"443"!==e.port?"blocked":!function(e){let t=e.trim().toLowerCase();if(t.startsWith("[")&&t.endsWith("]")){let e=function(e){let t=e.split("%")[0].toLowerCase();if(!t.includes(":"))return null;if(-1!==t.lastIndexOf(".")){let e=t.lastIndexOf(":"),n=l(t.slice(e+1));if(!n)return null;t=`${t.slice(0,e+1)}${(n[0]<<8|n[1]).toString(16)}:${(n[2]<<8|n[3]).toString(16)}`}let n=t.split("::");if(n.length>2)return null;let r=e=>""===e?[]:e.split(":"),a=r(n[0]),i=2===n.length?r(n[1]):[],s=8-a.length-i.length;if(1===n.length?0!==s:s<1)return null;let o=[...a,...Array(2===n.length?s:0).fill("0"),...i];return 8===o.length&&o.every(e=>/^[0-9a-f]{1,4}$/.test(e))?o.map(e=>parseInt(e,16)):null}(t.slice(1,-1));return!e||function(e){if(e.slice(0,6).every(e=>0===e)||e.slice(0,5).every(e=>0===e)&&65535===e[5]||e.slice(0,4).every(e=>0===e)&&65535===e[4]&&0===e[5]||100===e[0]&&65435===e[1]&&e.slice(2,6).every(e=>0===e)||100===e[0]&&65435===e[1]&&1===e[2])return!0;if(8194===e[0]){let t,n;return s([(t=e[1])>>8,255&t,(n=e[2])>>8,255&n])}return(65024&e[0])==64512||(65472&e[0])==65152||(65472&e[0])==65216||(65280&e[0])==65280}(e)}if(t.endsWith(".")&&(t=t.slice(0,-1)),!t)return!0;let n=l(t);if(n)return s(n);let r=t.slice(t.lastIndexOf(".")+1);return!(!/^(\d+|0x[0-9a-f]*)$/.test(r)&&t.includes("."))||"localhost"===t||/\.(localhost|local|internal)$/.test(t)||t.endsWith(".home.arpa")}(e.hostname)?null:"blocked"}e.i(684496);let d=[3,5,10],c=/[\u0000-\u001f\u007f-\u009f]/,u=/[----]/;e.s(["L",0,d,"G",0,function(e){return null!==e.lastStatus&&e.lastError&&!/^HTTP \d{3}( · DEPLOYMENT_NOT_FOUND)?$/.test(e.lastError)?e.lastError:null},"a",0,function(e){let t={},n=String(e?.name??""),i=n.trim().replace(/\s+/g," ");!/[\p{L}\p{N}]/u.test(i)||c.test(i)||u.test(n)?t.name="Name the job, like backup job.":i.length>60&&(t.name="Keep the name to 60 characters.");let l=Number(e?.periodS);r.includes(l)||(t.periodS="Pick how often the job runs.");let s=Number(e?.graceS);return(a.includes(s)||(t.graceS="Pick a grace time."),Object.keys(t).length)?{ok:!1,fieldErrors:t}:{ok:!0,value:{name:i,periodS:l,graceS:s}}},"X",0,function(e){let r={},a=String(e?.url??"").trim(),i=null;try{i=new URL(a)}catch{i=null}i&&i.hostname&&!(a.length>2048)&&"scheme"!==o(i)?"blocked"===o(i)&&(r.url="Use a public https address."):r.url="Enter a full https:// address.";let l=String(e?.expectedStatus??"").trim();/^[1-5]\d\d$/.test(l)||(r.expectedStatus="Enter an HTTP status between 100 and 599.");let s=Number(e?.timeoutS);d.includes(s)||(r.timeoutS="Pick a timeout.");let c=String(e?.bodyContains??"").trim(),u=String(e?.jsonPath??"").trim(),p=String(e?.jsonEquals??"").trim();return(c.length>200&&(r.bodyContains="Keep the keyword under 200 characters."),!u&&p&&(r.jsonPath="Add a JSON path for the value."),u&&(u.length>100||!function(e){if(!t.test(e))return null;let r=[];for(let t of e.matchAll(/([A-Za-z_$][\w$]*)|\[(\d+)\]/g))r.push(void 0!==t[1]?t[1]:Number(t[2]));return r.some(e=>"string"==typeof e&&n.has(e))?null:r}(u)?r.jsonPath="Use dots and [0] only, like checks.db or items[0].state.":p?p.length>200&&(r.jsonEquals="Keep the value under 200 characters."):r.jsonEquals="Enter the value it must equal.",c&&!r.bodyContains&&(r.bodyContains="Use either a keyword or a JSON field.")),Object.keys(r).length||!i)?{ok:!1,fieldErrors:r}:(i.hash="",{ok:!0,value:{url:i.toString(),expectedStatus:Number(l),timeoutMs:1e3*s,bodyContains:c||null,jsonPath:u||null,jsonEquals:u?p:null}})}],70528)},856033,e=>{e.s(["f",0,function(e,t,n){switch(e){case"Redeploy":return{title:`Redeploy ${t}?`,cta:"Redeploy",danger:!1,body:"Vercel builds the current production deployment again (same commit, today's environment variables) and makes it live when the build is ready. It counts toward the 100 deployments a day on Hobby."};case"Roll back":return{title:`Roll back ${t}?`,cta:"Roll back",danger:!0,body:"Production goes back to the previous production deployment. Hobby can't go further back. Vercel then stops sending new pushes to production until you promote one again."};case"Roll back to this":return{title:`Roll back ${t} to ${n||"this deployment"}?`,cta:"Roll back",danger:!0,body:"Production goes back to this deployment. Hobby only allows the previous production deployment. Vercel then stops sending new pushes to production until you promote one again."};case"Promote":return{title:`Promote ${t} ${n}?`.replace(" ?","?"),cta:"Promote",danger:!1,body:"Production traffic moves to this production deployment and new pushes go live again (this undoes a roll back). Nothing is rebuilt."};case"Promote to production":return{title:`Promote ${t} ${n} to production?`.replace(" "," "),cta:"Promote to production",danger:!0,body:"Vercel builds this preview's commit again as a production deployment, with the production environment variables (preview-only values aren't used), and makes it live when the build is ready. It counts toward the 100 deployments a day on Hobby."};case"Cancel":return{title:"Cancel this build?",cta:"Cancel build",danger:!0,body:`The running build of ${`${t} ${n}`.trim()} stops. The current production deployment stays live.`}}}])},322534,e=>{e.i(684496),e.s(["f",0,e=>`${e} item${1===e?"":"s"}`])},452842,e=>{e.i(203709),e.i(70528),e.i(684496),e.i(322534),e.s(["p",0,[["deployment","Deployment"],["monitor","Monitor"],["database","Database"],["system","System"],["action","Action"]],"X",0,{ok:"healthy",warn:"degraded",err:"down",idle:"idle",build:"building",paused:"paused",info:"info",fail:"failed",off:"off",unknown:"unknown",maint:"maintenance"},"J",0,(...e)=>`Actions for ${e.filter(Boolean).join(" ")}`],452842)}])})();
|
|
1
|
+
(()=>{"use strict";(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,531219,e=>{let t=(0,e.i(33550).f)("outline","filter-off","FilterOff",[["path",{d:"M8 4h12v2.172a2 2 0 0 1 -.586 1.414l-3.914 3.914m-.5 3.5v4l-6 2v-8.5l-4.48 -4.928a2 2 0 0 1 -.52 -1.345v-2.227",key:"svg-0"}],["path",{d:"M3 3l18 18",key:"svg-1"}]]);e.s(["f",0,t],531219)},225913,e=>{var t=e.i(207670);let n=e=>"boolean"==typeof e?`${e}`:0===e?"0":e,r=t.f;e.s(["f",0,(e,t)=>a=>{var i;if((null==t?void 0:t.variants)==null)return r(e,null==a?void 0:a.class,null==a?void 0:a.className);let{variants:l,defaultVariants:s}=t,o=Object.keys(l).map(e=>{let t=null==a?void 0:a[e],r=null==s?void 0:s[e];if(null===t)return null;let i=n(t)||n(r);return l[e][i]}),d=a&&Object.entries(a).reduce((e,t)=>{let[n,r]=t;return void 0===r||(e[n]=r),e},{});return r(e,o,null==t||null==(i=t.compoundVariants)?void 0:i.reduce((e,t)=>{let{class:n,className:r,...a}=t;return Object.entries(a).every(e=>{let[t,n]=e;return Array.isArray(n)?n.includes({...s,...d}[t]):({...s,...d})[t]===n})?[...e,n,r]:e},[]),null==a?void 0:a.class,null==a?void 0:a.className)}])},829880,718288,666203,e=>{var t=e.i(95187);let n=(0,t.createServerReference)("60865708d5a5bc688c74b6e4cf4b65321b87491175",t.callServer,void 0,t.findSourceMapURL,"promoteAction");e.s(["f",0,n],829880);let r=(0,t.createServerReference)("602cb079aa790e16ea19167eba40830d6c08c0b1fd",t.callServer,void 0,t.findSourceMapURL,"redeployAction");e.s(["f",0,r],718288);let a=(0,t.createServerReference)("60533fb4e5182651671fbfa30df5880c0731f9e75c",t.callServer,void 0,t.findSourceMapURL,"rollbackAction");e.s(["f",0,a],666203)},523135,e=>{var t=e.i(843476),n=e.i(271645),r=e.i(54131),a=e.i(428325),i=e.i(799589),l=e.i(177106),s=e.i(856033),o=e.i(452842),d=e.i(95187);let c=(0,d.createServerReference)("608b682929d1b66dc8ec085312646ab3768493bd3e",d.callServer,void 0,d.findSourceMapURL,"cancelAction");var u=e.i(829880);let p=(0,d.createServerReference)("603c4306edfc8590aea062360360e6644e0ccb004c",d.callServer,void 0,d.findSourceMapURL,"promotePreviewAction");var f=e.i(718288),x=e.i(666203),m=e.i(39626),h=e.i(776639),b=e.i(500443);let g=/(\berror(?![-\w])|\bERR!|\bERR_[A-Z_]+|\bfailed\b|exited with (?:code )?[1-9]|Module not found|command not found)/i,v=/^\s*(?:npm |pnpm |yarn )?(?:warn|warning)\b|\b0 (?:errors?|failed)\b/i;function y(e){return"command"!==e.kind&&"delimiter"!==e.kind&&g.test(e.text)&&!v.test(e.text)}var k=e.i(975157);let j=(0,d.createServerReference)("60252179b2cdeae52a032ad3a892e77538b0e1b841",d.callServer,void 0,d.findSourceMapURL,"buildLogsAction"),w={stdout:"",stderr:"text-code-warn",command:"text-code-info",delimiter:"text-code-dim"},N=e=>`build-line-${e}`;function S({log:e}){let n=e.lines.findIndex(y),r=e.lines.filter(y).length;return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)("div",{className:"flex flex-wrap items-center gap-x-3 gap-y-1 px-[18px] pb-2 text-[12.5px] text-ink-soft",children:[(0,t.jsxs)("span",{children:[e.lines.length," lines",e.truncated?` (the last ${2e3.toLocaleString("en-US")})`:""]}),n>=0?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)("span",{className:"text-err",children:[r," error line",1===r?"":"s"]}),(0,t.jsx)("button",{type:"button","data-line":N(n),className:"text-brand hover:underline",onClick:()=>document.getElementById(N(n))?.scrollIntoView({block:"center"}),children:"Jump to first error"})]}):(0,t.jsx)("span",{children:"No error lines"})]}),(0,t.jsx)("div",{tabIndex:0,"aria-label":"Build log lines",className:"min-h-0 flex-1 overflow-auto bg-code-bg px-4 py-3 font-mono text-[12.5px] leading-[1.7] text-code-text",children:0===e.lines.length?(0,t.jsx)("div",{className:"text-code-dim",children:"Vercel returned no build output for this deployment."}):e.lines.map((e,n)=>{let r=y(e);return(0,t.jsx)("div",{id:N(n),"data-error":r?"":void 0,className:(0,k.f)("whitespace-pre-wrap [overflow-wrap:anywhere]",r?"-mx-4 border-l-2 border-err bg-err/15 px-[14px] text-code-err":w[e.kind],"delimiter"===e.kind&&"mt-1.5 font-medium"),children:"command"===e.kind?`$ ${e.text}`:e.text||" "},n)})})]})}function $({appId:e,deploymentId:r,title:a,open:i,onOpenChange:l,read:s=j}){let[o,d]=(0,n.useState)(null);return(0,b.useHoldRefresh)(i),(0,n.useEffect)(()=>{if(!i)return;let t=!0;return s(e,r).then(e=>{t&&d(e.ok&&e.data?{log:e.data}:{error:e.ok?"No build log came back.":e.error})}).catch(()=>{t&&d({error:"Something went wrong. Try again."})}),()=>{t=!1,d(null)}},[i,e,r,s]),(0,t.jsx)(h.N,{open:i,onOpenChange:l,children:(0,t.jsxs)(h.d,{className:"top-0 right-0 left-auto flex h-dvh max-w-full translate-x-0 translate-y-0 flex-col gap-0 rounded-none p-0 sm:max-w-[780px]",children:[(0,t.jsxs)("div",{className:"px-[18px] pb-2 pt-4 pr-12",children:[(0,t.jsxs)(h.F,{className:"text-base",children:["Build log · ",a]}),(0,t.jsxs)(h.C,{className:"mt-0.5 text-[12.5px] text-ink-soft",children:["Newest build, read from Vercel now",(0,t.jsx)(m.Src,{kind:"api"})]})]}),null===o?(0,t.jsx)("p",{className:"px-[18px] pb-4 text-[13px] text-ink-soft",children:"Reading the build log…"}):"error"in o?(0,t.jsx)("p",{role:"alert",className:"px-[18px] pb-4 text-[13px] text-err",children:o.error}):(0,t.jsx)(S,{log:o.log})]})})}let R={label:"View build logs",kind:"logs"};e.s(["DeployRowActions",0,function({d:e,actions:d,logs:m}){var h;let b,g,v,y=(0,r.useMask)(),{open:k,dialog:j}=(0,i.W)(),[w,N]=(0,n.useState)(!1),S=e.sha?e.sha.slice(0,7):"",{visit:C,deployment:z}=(b=e.url?`https://${e.url}`:null,e.primaryDomain?{visit:`https://${e.primaryDomain}`,deployment:b}:{visit:b??"",deployment:null}),{buttons:M,menu:P}=(g=[...(h={actions:d,logs:m,visit:!!C&&e.visit}).visit&&"button"!==h.logs?[{label:"Visit",kind:"visit"}]:[],...h.actions.map(e=>({label:e,kind:"action",action:e})),..."button"===h.logs?[R]:[]],v="menu"===h.logs?[R]:[],g.length>2?{buttons:[],menu:[...g,...v]}:{buttons:g,menu:v}),A=t=>k({...(0,s.f)(t,y("app",e.appName),S),run:function(e,t,n){switch(e){case"Redeploy":return()=>(0,f.f)(t,n);case"Roll back to this":return()=>(0,x.f)(t,n);case"Promote":return()=>(0,u.f)(t,n);case"Cancel":return()=>c(t,n);case"Promote to production":return()=>p(t,n)}}(t,e.appId,e.externalId)});return(0,t.jsxs)("div",{className:"flex items-center gap-1.5",children:[M.map(e=>"visit"===e.kind?(0,t.jsx)("a",{href:C,target:"_blank",rel:"noreferrer",className:(0,a.R)({size:"sm"}),children:"Visit"},e.label):"logs"===e.kind?(0,t.jsx)(a.K,{size:"sm",onClick:()=>N(!0),children:e.label},e.label):(0,t.jsx)(a.K,{size:"sm",onClick:()=>A(e.action),children:e.label},e.label)),z&&e.visit&&"button"!==m&&(0,t.jsx)("a",{href:z,target:"_blank",rel:"noreferrer",className:"text-xs text-ink-faint underline-offset-2 hover:text-ink hover:underline",children:"Deployment URL"}),P.length>0&&(0,t.jsx)(l.RowMenu,{label:(0,o.J)(y("app",e.appName),S||e.url||e.externalId),items:P.map(e=>"visit"===e.kind?{label:e.label,href:C}:"logs"===e.kind?{label:e.label,onSelect:()=>N(!0)}:{label:e.label,onSelect:()=>A(e.action)})}),j,m&&(0,t.jsx)($,{appId:e.appId,deploymentId:e.externalId,title:`${y("app",e.appName)}${S?` ${S}`:""}`,open:w,onOpenChange:N})]})}],523135)},46200,e=>{var t=e.i(843476),n=e.i(146874),r=e.i(239692),a=e.i(271645),i=e.i(846696),l=e.i(428325),s=e.i(500443),o=e.i(776639);e.s(["f",0,function({trigger:e,open:d,onOpenChange:c,title:u,body:p,cta:f,danger:x=!1,onConfirm:m}){let[h,b]=(0,a.useState)(!1),g=d??h,[v,y]=(0,a.useTransition)();function k(e){void 0===d&&b(e),c?.(e)}return(0,s.useHoldRefresh)(g),(0,t.jsxs)(o.N,{open:g,onOpenChange:e=>{v||k(e)},children:[void 0!==e&&((0,a.isValidElement)(e)?(0,t.jsx)(o.a,{render:e}):(0,t.jsx)(o.a,{children:e})),(0,t.jsxs)(o.d,{className:"gap-0 p-0 sm:max-w-[640px]",showCloseButton:!1,children:[(0,t.jsxs)("div",{className:"flex items-start gap-3 px-[18px] pb-2 pt-4",children:[(0,t.jsx)("span",{className:`grid size-9 shrink-0 place-items-center rounded-lg bg-sunken ${x?"text-err":"text-ink-soft"}`,children:x?(0,t.jsx)(n.f,{size:19}):(0,t.jsx)(r.f,{size:19})}),(0,t.jsxs)("div",{children:[(0,t.jsx)(o.F,{className:"text-base",children:u}),(0,t.jsx)(o.C,{className:"mt-0.5 text-[13px] text-ink-soft",children:p})]})]}),(0,t.jsxs)("div",{className:"flex flex-wrap items-center justify-end gap-2 border-t border-line px-[18px] py-3",children:[(0,t.jsx)(l.K,{onClick:()=>k(!1),disabled:v,children:"Keep as is"}),(0,t.jsx)(l.K,{variant:x?"danger":"primary",onClick:function(){y(async()=>{try{let e=await m();e.ok?(i.c.success(e.message),k(!1)):i.c.error(e.message)}catch{i.c.error("Something went wrong. Try again.")}})},disabled:v,children:v?"Working…":f})]})]})]})}])},374931,e=>{var t=e.i(843476),n=e.i(531219),r=e.i(357772),a=e.i(271645),i=e.i(54131),l=e.i(428325),s=e.i(541299),o=e.i(691106),d=e.i(975157),c=e.i(322534),u=e.i(495784);e.s(["ListFilter",0,function({placeholder:e,states:p,groups:f,head:x,rows:m,chips:h}){var b,g;let v,[y,k]=(0,a.useState)(""),[j,w]=(0,a.useState)(""),[N,S]=(0,a.useState)(""),[$,R]=(0,a.useState)(""),[C,z]=(0,a.useState)(1),M=(0,i.useMask)(),P=(b=m.map(e=>({...e,text:`${e.text} ${M("text",e.text)}`})),v=(g={text:y,state:j,group:$,tag:N}).text.trim().toLowerCase(),b.filter(e=>(!g.state||e.state===g.state)&&(!g.group||e.group===g.group)&&(!g.tag||(e.tags??[]).includes(g.tag))&&(!v||e.text.toLowerCase().includes(v)))),A=(0,u.$)(P,C),_=A.rows;A.page!==C&&z(A.page);let O=p?.find(([e])=>e===j)?.[1];return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)("div",{className:"flex flex-wrap items-center gap-2 px-[18px] pb-3 pt-3.5 max-[720px]:px-3.5",children:[(0,t.jsx)("input",{className:(0,d.f)(l.S,"w-[240px] max-[720px]:w-full"),placeholder:e,"aria-label":e,value:y,onChange:e=>{k(e.target.value),z(1)}}),p&&(0,t.jsxs)("select",{className:(0,d.f)(l.S,"w-auto"),"aria-label":"State",value:j,onChange:e=>{w(e.target.value),z(1)},children:[(0,t.jsx)("option",{value:"",children:"All states"}),p.map(([e,n])=>(0,t.jsx)("option",{value:e,children:n},e))]}),f&&f.length>1&&(0,t.jsxs)("select",{className:(0,d.f)(l.S,"w-auto"),"aria-label":"Account",value:$,onChange:e=>{R(e.target.value),z(1)},children:[(0,t.jsx)("option",{value:"",children:"All accounts"}),f.map(e=>(0,t.jsx)("option",{value:e,children:M("account",e)},e))]}),h?.map(([e,n])=>(0,t.jsx)("button",{type:"button","aria-pressed":N===e,onClick:()=>{S(N===e?"":e),z(1)},className:(0,d.f)("rounded-[5px] border px-2 py-0.5 text-[12.5px]",N===e?"border-brand bg-brand-soft text-brand":"border-line text-ink-soft hover:bg-hover"),children:n},e)),O&&(0,t.jsxs)("span",{className:"inline-flex items-center gap-1 rounded-[5px] bg-brand-soft py-px pl-2 pr-1 text-[12.5px] text-brand",children:["State: ",O,(0,t.jsx)("button",{type:"button","aria-label":"Remove filter",className:"px-0.5",onClick:()=>{w(""),z(1)},children:(0,t.jsx)(r.f,{size:13})})]}),$&&(0,t.jsxs)("span",{className:"inline-flex items-center gap-1 rounded-[5px] bg-brand-soft py-px pl-2 pr-1 text-[12.5px] text-brand",children:["Account: ",(0,t.jsx)(i.Masked,{kind:"account",real:$}),(0,t.jsx)("button",{type:"button","aria-label":"Remove account filter",className:"px-0.5",onClick:()=>{R(""),z(1)},children:(0,t.jsx)(r.f,{size:13})})]}),(0,t.jsx)("span",{role:"status",className:"ml-auto text-[12.5px] text-ink-soft",children:(0,c.f)(P.length)})]}),(0,t.jsx)("div",{className:"overflow-x-auto",children:(0,t.jsxs)("table",{className:o.o,children:[(0,t.jsx)(o.U,{head:x}),(0,t.jsx)("tbody",{children:_.map(e=>(0,t.jsx)(a.Fragment,{children:e.row},e.key))})]})}),0===P.length&&m.length>0&&(0,t.jsxs)(l.k,{icon:n.f,title:"No results",children:["Nothing matches these filters."," ",(0,t.jsx)("button",{type:"button",className:"text-brand hover:underline",onClick:()=>{k(""),w(""),R(""),S(""),z(1)},children:"Clear filters"})]}),(0,t.jsx)(s.f,{page:A.page,pages:A.pages,text:(0,u.z)(A),onPage:z})]})}],374931)},541299,495784,e=>{var t=e.i(843476),n=e.i(271645),r=e.i(428325),a=e.i(975157);function i(e,t,n=25){let r=e.length,a=Math.max(1,Math.ceil(r/n)),l=Math.min(Math.max(Number.isFinite(t)?Math.floor(t):1,1),a),s=(l-1)*n,o=e.slice(s,s+n);return{rows:o,page:l,pages:a,from:0===r?0:s+1,to:s+o.length,total:r}}e.s(["f",0,function({page:e,pages:i,text:l,onPage:s,bleed:o=!1}){let d=(0,n.useRef)(null),c=(0,n.useRef)(null);if((0,n.useEffect)(()=>{null!==c.current&&(d.current?.querySelectorAll("button")[c.current]?.focus(),c.current=null)},[e]),i<=1)return null;let u=(e,t)=>{(e<=1||e>=i)&&(c.current=t),s(e)};return(0,t.jsxs)("div",{className:(0,a.f)("flex items-center gap-2 border-t border-line px-[18px] py-2.5 text-[12.5px] text-ink-soft",o?"-mx-[18px] -mb-4 mt-2":"max-[720px]:px-3.5"),children:[(0,t.jsx)("span",{role:"status",children:l}),(0,t.jsxs)("span",{ref:d,className:"ml-auto flex gap-1.5",children:[(0,t.jsx)(r.K,{size:"sm",className:"disabled:hover:bg-surface","aria-label":"Previous page",disabled:e<=1,onClick:()=>u(e-1,1),children:"‹ Previous"}),(0,t.jsx)(r.K,{size:"sm",className:"disabled:hover:bg-surface","aria-label":"Next page",disabled:e>=i,onClick:()=>u(e+1,0),children:"Next ›"})]})]})}],541299),e.s(["k",0,function(e,t,n,r){return r<=1?null:t>0&&null!==n?n:e[0]?.id??null},"$",0,i,"f",0,function(e,t,n,r=25){let a=null===n?0:Math.max(0,e.findIndex(e=>e.id===n)),l=i(e.slice(a),t,r);return 0===a||l.page>1?{...l,shift:a}:{...i(e,1,r),shift:0}},"z",0,function(e,t=0,n=e.total){return`${e.from+t}–${e.to+t} of ${n}`}],495784)},799589,225794,e=>{var t=e.i(843476),n=e.i(271645),r=e.i(54131),a=e.i(46200),i=e.i(428325);function l(e,t=e=>e){return e.ok?{ok:!0,message:t(e.message??"Done.")}:{ok:!1,message:t(e.error)}}function s(){let e=(0,r.useMask)();return t=>l(t,t=>e("text",t))}e.s(["f",0,l],225794),e.s(["p",0,function({label:e,title:n,body:r,cta:l,danger:o=!1,run:d}){let c=s();return(0,t.jsx)(a.f,{trigger:(0,t.jsx)(i.K,{variant:o?"danger":"secondary",children:e}),title:n,body:r,cta:l,danger:o,onConfirm:async()=>c(await d())})},"W",0,function(){let[e,r]=(0,n.useState)(null),i=s(),l=e?(0,t.jsx)(a.f,{open:!0,onOpenChange:e=>{e||r(null)},title:e.title,body:e.body,cta:e.cta,danger:e.danger,onConfirm:async()=>i(await e.run())}):null;return{open:r,dialog:l}}],799589)},177106,e=>{var t=e.i(843476),n=e.i(33550);let r=(0,n.f)("outline","chevron-down","ChevronDown",[["path",{d:"M6 9l6 6l6 -6",key:"svg-0"}]]),a=(0,n.f)("outline","dots-vertical","DotsVertical",[["path",{d:"M11 12a1 1 0 1 0 2 0a1 1 0 1 0 -2 0",key:"svg-0"}],["path",{d:"M11 19a1 1 0 1 0 2 0a1 1 0 1 0 -2 0",key:"svg-1"}],["path",{d:"M11 5a1 1 0 1 0 2 0a1 1 0 1 0 -2 0",key:"svg-2"}]]);var i=e.i(271645),l=e.i(428325),s=e.i(500443),o=e.i(755146);e.s(["RowMenu",0,function({items:e,button:n=!1,label:d="Actions"}){let[c,u]=(0,i.useState)(!1);return(0,s.useHoldRefresh)(c),(0,t.jsxs)(o.G,{open:c,onOpenChange:u,children:[n?(0,t.jsxs)(o.X,{className:(0,l.R)(),children:[d," ",(0,t.jsx)(r,{size:16,"aria-hidden":!0})]}):(0,t.jsx)(o.X,{"aria-label":d,className:"rounded-[5px] px-1.5 py-1 text-ink-faint hover:bg-sunken hover:text-ink focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-brand/40",children:(0,t.jsx)(a,{size:17})}),(0,t.jsx)(o.L,{align:"end",className:"min-w-[200px] rounded-[8px] border border-line-strong bg-surface p-1 shadow-[0_8px_24px_rgba(0,0,0,.14)] ring-0",children:e.map((e,n)=>"---"===e?(0,t.jsx)(o.U,{},`sep-${n}`):(0,t.jsxs)(o.r,{disabled:void 0!==e.disabled,variant:e.danger?"destructive":"default",className:"rounded-[5px] px-2.5 py-[7px]",onClick:()=>{e.href?window.open(e.href,"_blank","noopener,noreferrer"):e.onSelect?.()},children:[e.label,void 0!==e.disabled&&(0,t.jsx)("span",{className:"ml-auto pl-3 text-[11px] text-ink-faint",children:e.disabled})]},e.label))})]})}],177106)},776639,998218,152744,e=>{var t=e.i(843476),n=e.i(526323),r=e.i(828376);e.s(["f",0,r],998218);var r=r,a=e.i(209977),i=e.i(921637),l=e.i(141708),s=e.i(593480),o=e.i(309169),d=r;e.s(["f",0,d],152744);var d=r,c=e.i(975157),u=e.i(271645),p=e.i(540886),f=e.i(552245);let x=u.forwardRef(function(e,t){let{render:n,className:r,disabled:a=!1,focusableWhenDisabled:i=!1,nativeButton:l=!0,style:s,...o}=e,{getButtonProps:d,buttonRef:c}=(0,p.f)({disabled:a,focusableWhenDisabled:i,native:l});return(0,f.a)("button",e,{state:{disabled:a},ref:[t,c],props:[o,d]})}),m=(0,e.i(225913).f)("group/button inline-flex shrink-0 items-center justify-center rounded-lg border border-transparent bg-clip-padding text-sm font-medium whitespace-nowrap transition-all outline-none select-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 active:not-aria-[haspopup]:translate-y-px disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",{variants:{variant:{default:"bg-primary text-primary-foreground hover:bg-primary/80",outline:"border-border bg-background hover:bg-muted hover:text-foreground aria-expanded:bg-muted aria-expanded:text-foreground dark:border-input dark:bg-input/30 dark:hover:bg-input/50",secondary:"bg-secondary text-secondary-foreground hover:bg-[color-mix(in_oklch,var(--secondary),var(--foreground)_5%)] aria-expanded:bg-secondary aria-expanded:text-secondary-foreground",ghost:"hover:bg-muted hover:text-foreground aria-expanded:bg-muted aria-expanded:text-foreground dark:hover:bg-muted/50",destructive:"bg-destructive/10 text-destructive hover:bg-destructive/20 focus-visible:border-destructive/40 focus-visible:ring-destructive/20 dark:bg-destructive/20 dark:hover:bg-destructive/30 dark:focus-visible:ring-destructive/40",link:"text-primary underline-offset-4 hover:underline"},size:{default:"h-8 gap-1.5 px-2.5 has-data-[icon=inline-end]:pr-2 has-data-[icon=inline-start]:pl-2",xs:"h-6 gap-1 rounded-[min(var(--radius-md),10px)] px-2 text-xs in-data-[slot=button-group]:rounded-lg has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [&_svg:not([class*='size-'])]:size-3",sm:"h-7 gap-1 rounded-[min(var(--radius-md),12px)] px-2.5 text-[0.8rem] in-data-[slot=button-group]:rounded-lg has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [&_svg:not([class*='size-'])]:size-3.5",lg:"h-9 gap-1.5 px-2.5 has-data-[icon=inline-end]:pr-2 has-data-[icon=inline-start]:pl-2",icon:"size-8","icon-xs":"size-6 rounded-[min(var(--radius-md),10px)] in-data-[slot=button-group]:rounded-lg [&_svg:not([class*='size-'])]:size-3","icon-sm":"size-7 rounded-[min(var(--radius-md),12px)] in-data-[slot=button-group]:rounded-lg","icon-lg":"size-9"}},defaultVariants:{variant:"default",size:"default"}});function h({className:e,variant:n="default",size:r="default",...a}){return(0,t.jsx)(x,{"data-slot":"button",className:(0,c.f)(m({variant:n,size:r,className:e})),...a})}var b=e.i(456420);let g={name:"x",size:24,node:[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]]};g.node;let v=(0,b.f)(g);function y({...e}){return(0,t.jsx)(a.f.Portal,{"data-slot":"dialog-portal",...e})}function k({className:e,...n}){return(0,t.jsx)(l.f.Backdrop,{"data-slot":"dialog-overlay",className:(0,c.f)("fixed inset-0 isolate z-50 bg-black/10 duration-100 supports-backdrop-filter:backdrop-blur-xs data-open:animate-in data-open:fade-in-0 data-closed:animate-out data-closed:fade-out-0",e),...n})}e.s(["N",0,function({...e}){return(0,t.jsx)(n.f.Root,{"data-slot":"dialog",...e})},"d",0,function({className:e,children:n,showCloseButton:r=!0,...a}){return(0,t.jsxs)(y,{children:[(0,t.jsx)(k,{}),(0,t.jsxs)(s.f.Popup,{"data-slot":"dialog-content",className:(0,c.f)("fixed top-1/2 left-1/2 z-50 grid w-full grid-cols-[minmax(0,1fr)] max-w-[calc(100%-2rem)] -translate-x-1/2 -translate-y-1/2 gap-4 rounded-xl bg-popover p-4 text-sm text-popover-foreground ring-1 ring-foreground/10 duration-100 outline-none sm:max-w-sm data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95",e),...a,children:[n,r&&(0,t.jsxs)(i.f.Close,{"data-slot":"dialog-close",render:(0,t.jsx)(h,{variant:"ghost",className:"absolute top-2 right-2",size:"icon-sm"}),children:[(0,t.jsx)(v,{}),(0,t.jsx)("span",{className:"sr-only",children:"Close"})]})]})]})},"C",0,function({className:e,...n}){return(0,t.jsx)(d.Description,{"data-slot":"dialog-description",className:(0,c.f)("text-sm text-muted-foreground *:[a]:underline *:[a]:underline-offset-3 *:[a]:hover:text-foreground",e),...n})},"F",0,function({className:e,...n}){return(0,t.jsx)(o.f.Title,{"data-slot":"dialog-title",className:(0,c.f)("font-heading text-base leading-none font-medium",e),...n})},"a",0,function({...e}){return(0,t.jsx)(r.Trigger,{"data-slot":"dialog-trigger",...e})}],776639)},70528,876195,e=>{let t=/^[A-Za-z_$][\w$]*(?:\.[A-Za-z_$][\w$]*|\[\d{1,6}\])*$/,n=new Set(["__proto__","prototype","constructor"]),r=[300,3600,86400,604800],a=[300,3600,21600];e.s(["q",0,a,"Q",0,r,"v",0,function(e){return e%604800==0?604800===e?"1 week":`${e/604800} weeks`:e%86400==0?86400===e?"1 day":`${e/86400} days`:e%3600==0?`${e/3600} h`:`${Math.max(1,Math.round(e/60))} min`}],876195);let i=/^(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})$/;function l(e){let t=i.exec(e);if(!t)return null;let n=t.slice(1).map(Number);return n.every(e=>e<=255)?n:null}function s([e,t,n]){return 0===e||10===e||127===e||e>=224||100===e&&t>=64&&t<=127||169===e&&254===t||172===e&&t>=16&&t<=31||192===e&&0===t&&0===n||192===e&&168===t||198===e&&(18===t||19===t)}function o(e){return"https:"!==e.protocol||e.username||e.password?"scheme":""!==e.port&&"443"!==e.port?"blocked":!function(e){let t=e.trim().toLowerCase();if(t.startsWith("[")&&t.endsWith("]")){let e=function(e){let t=e.split("%")[0].toLowerCase();if(!t.includes(":"))return null;if(-1!==t.lastIndexOf(".")){let e=t.lastIndexOf(":"),n=l(t.slice(e+1));if(!n)return null;t=`${t.slice(0,e+1)}${(n[0]<<8|n[1]).toString(16)}:${(n[2]<<8|n[3]).toString(16)}`}let n=t.split("::");if(n.length>2)return null;let r=e=>""===e?[]:e.split(":"),a=r(n[0]),i=2===n.length?r(n[1]):[],s=8-a.length-i.length;if(1===n.length?0!==s:s<1)return null;let o=[...a,...Array(2===n.length?s:0).fill("0"),...i];return 8===o.length&&o.every(e=>/^[0-9a-f]{1,4}$/.test(e))?o.map(e=>parseInt(e,16)):null}(t.slice(1,-1));return!e||function(e){if(e.slice(0,6).every(e=>0===e)||e.slice(0,5).every(e=>0===e)&&65535===e[5]||e.slice(0,4).every(e=>0===e)&&65535===e[4]&&0===e[5]||100===e[0]&&65435===e[1]&&e.slice(2,6).every(e=>0===e)||100===e[0]&&65435===e[1]&&1===e[2])return!0;if(8194===e[0]){let t,n;return s([(t=e[1])>>8,255&t,(n=e[2])>>8,255&n])}return(65024&e[0])==64512||(65472&e[0])==65152||(65472&e[0])==65216||(65280&e[0])==65280}(e)}if(t.endsWith(".")&&(t=t.slice(0,-1)),!t)return!0;let n=l(t);if(n)return s(n);let r=t.slice(t.lastIndexOf(".")+1);return!(!/^(\d+|0x[0-9a-f]*)$/.test(r)&&t.includes("."))||"localhost"===t||/\.(localhost|local|internal)$/.test(t)||t.endsWith(".home.arpa")}(e.hostname)?null:"blocked"}e.i(684496);let d=[3,5,10],c=/[\u0000-\u001f\u007f-\u009f]/,u=/[----]/;e.s(["L",0,d,"G",0,function(e){return null!==e.lastStatus&&e.lastError&&!/^HTTP \d{3}( · DEPLOYMENT_NOT_FOUND)?$/.test(e.lastError)?e.lastError:null},"a",0,function(e){let t={},n=String(e?.name??""),i=n.trim().replace(/\s+/g," ");!/[\p{L}\p{N}]/u.test(i)||c.test(i)||u.test(n)?t.name="Name the job, like backup job.":i.length>60&&(t.name="Keep the name to 60 characters.");let l=Number(e?.periodS);r.includes(l)||(t.periodS="Pick how often the job runs.");let s=Number(e?.graceS);return(a.includes(s)||(t.graceS="Pick a grace time."),Object.keys(t).length)?{ok:!1,fieldErrors:t}:{ok:!0,value:{name:i,periodS:l,graceS:s}}},"X",0,function(e){let r={},a=String(e?.url??"").trim(),i=null;try{i=new URL(a)}catch{i=null}i&&i.hostname&&!(a.length>2048)&&"scheme"!==o(i)?"blocked"===o(i)&&(r.url="Use a public https address."):r.url="Enter a full https:// address.";let l=String(e?.expectedStatus??"").trim();/^[1-5]\d\d$/.test(l)||(r.expectedStatus="Enter an HTTP status between 100 and 599.");let s=Number(e?.timeoutS);d.includes(s)||(r.timeoutS="Pick a timeout.");let c=String(e?.bodyContains??"").trim(),u=String(e?.jsonPath??"").trim(),p=String(e?.jsonEquals??"").trim();return(c.length>200&&(r.bodyContains="Keep the keyword under 200 characters."),!u&&p&&(r.jsonPath="Add a JSON path for the value."),u&&(u.length>100||!function(e){if(!t.test(e))return null;let r=[];for(let t of e.matchAll(/([A-Za-z_$][\w$]*)|\[(\d+)\]/g))r.push(void 0!==t[1]?t[1]:Number(t[2]));return r.some(e=>"string"==typeof e&&n.has(e))?null:r}(u)?r.jsonPath="Use dots and [0] only, like checks.db or items[0].state.":p?p.length>200&&(r.jsonEquals="Keep the value under 200 characters."):r.jsonEquals="Enter the value it must equal.",c&&!r.bodyContains&&(r.bodyContains="Use either a keyword or a JSON field.")),Object.keys(r).length||!i)?{ok:!1,fieldErrors:r}:(i.hash="",{ok:!0,value:{url:i.toString(),expectedStatus:Number(l),timeoutMs:1e3*s,bodyContains:c||null,jsonPath:u||null,jsonEquals:u?p:null}})}],70528)},856033,e=>{e.s(["f",0,function(e,t,n){switch(e){case"Redeploy":return{title:`Redeploy ${t}?`,cta:"Redeploy",danger:!1,body:"Vercel builds the current production deployment again (same commit, today's environment variables) and makes it live when the build is ready. It counts toward the 100 deployments a day on Hobby."};case"Roll back":return{title:`Roll back ${t}?`,cta:"Roll back",danger:!0,body:"Production goes back to the previous production deployment. Hobby can't go further back. Vercel then stops sending new pushes to production until you promote one again."};case"Roll back to this":return{title:`Roll back ${t} to ${n||"this deployment"}?`,cta:"Roll back",danger:!0,body:"Production goes back to this deployment. Hobby only allows the previous production deployment. Vercel then stops sending new pushes to production until you promote one again."};case"Promote":return{title:`Promote ${t} ${n}?`.replace(" ?","?"),cta:"Promote",danger:!1,body:"Production traffic moves to this production deployment and new pushes go live again (this undoes a roll back). Nothing is rebuilt."};case"Promote to production":return{title:`Promote ${t} ${n} to production?`.replace(" "," "),cta:"Promote to production",danger:!0,body:"Vercel builds this preview's commit again as a production deployment, with the production environment variables (preview-only values aren't used), and makes it live when the build is ready. It counts toward the 100 deployments a day on Hobby."};case"Cancel":return{title:"Cancel this build?",cta:"Cancel build",danger:!0,body:`The running build of ${`${t} ${n}`.trim()} stops. The current production deployment stays live.`}}}])},322534,e=>{e.i(684496),e.s(["f",0,e=>`${e} item${1===e?"":"s"}`])},452842,e=>{e.i(203709),e.i(70528),e.i(684496),e.i(322534),e.s(["p",0,[["deployment","Deployment"],["monitor","Monitor"],["database","Database"],["system","System"],["action","Action"]],"X",0,{ok:"healthy",warn:"degraded",err:"down",idle:"idle",build:"building",paused:"paused",info:"info",fail:"failed",off:"off",unknown:"unknown",maint:"maintenance"},"J",0,(...e)=>`Actions for ${e.filter(Boolean).join(" ")}`],452842)}])})();
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
(()=>{"use strict";(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,77656,e=>{let t=(0,e.i(33550).f)("outline","send","Send",[["path",{d:"M10 14l11 -11",key:"svg-0"}],["path",{d:"M21 3l-6.5 18a.55 .55 0 0 1 -1 0l-3.5 -7l-7 -3.5a.55 .55 0 0 1 0 -1l18 -6.5",key:"svg-1"}]]);e.s(["f",0,t],77656)},962942,e=>{var t=e.i(843476),a=e.i(513932),s=e.i(77656),n=e.i(271645),l=e.i(428325),r=e.i(944971),i=e.i(975157),o=e.i(
|
|
1
|
+
(()=>{"use strict";(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,77656,e=>{let t=(0,e.i(33550).f)("outline","send","Send",[["path",{d:"M10 14l11 -11",key:"svg-0"}],["path",{d:"M21 3l-6.5 18a.55 .55 0 0 1 -1 0l-3.5 -7l-7 -3.5a.55 .55 0 0 1 0 -1l18 -6.5",key:"svg-1"}]]);e.s(["f",0,t],77656)},962942,e=>{var t=e.i(843476),a=e.i(513932),s=e.i(77656),n=e.i(271645),l=e.i(428325),r=e.i(944971),i=e.i(975157),o=e.i(785869),d=e.i(95187);let c=(0,d.createServerReference)("40488cc3b603999bfff1005a0c6cb2e527d494ef28",d.callServer,void 0,d.findSourceMapURL,"questionStatus");var u=e.i(562556);e.i(684496);let m=r.T.hint,p=(e,t)=>{let a=e.replace(/\s+/g," ").trim();return a.length>t?`${a.slice(0,t-1)}…`:a},h=(0,d.createServerReference)("400a450c4e0c355d680c8c6525820a208104545855",d.callServer,void 0,d.findSourceMapURL,"playgroundSend");e.s(["PlaygroundView",0,function({models:e,defaultModel:d}){let[x,f]=(0,n.useState)(e.some(e=>e.id===d)?d:e[0]?.id??""),[g,v]=(0,n.useState)("plain"),[b,j]=(0,n.useState)("0.4"),[y,S]=(0,n.useState)("1024"),[w,k]=(0,n.useState)("You are Watchbell's assistant. Answer from the console data you are given. Say when the data doesn't cover the question."),[N,T]=(0,n.useState)(""),[A,M]=(0,n.useState)([]),[$,C]=(0,n.useState)(null),[R,L]=(0,n.useState)(null),[U,q]=(0,n.useState)(0),[I,D]=(0,n.useTransition)(),K=(0,n.useRef)(null),O="antigravity"===(e.find(e=>e.id===x)?.via??"provider"),P=I||null!==R,E=e.filter(e=>"provider"===e.via),W=e.filter(e=>"antigravity"===e.via);(0,n.useEffect)(()=>{K.current?.scrollTo({top:K.current.scrollHeight})},[A,I,R]),(0,n.useEffect)(()=>{if(!R)return;let e=!1,t=!1,a=t=>{!e&&(L(null),t&&C(t))},s=setInterval(()=>q(Date.now()),1e3),n=setInterval(async()=>{if(!t&&!e){if(Date.now()-R.startedAt>6e5)return a(r.T.giveUp);t=!0;try{let t=await c(R.id);if(e)return;if(!t.ok)return a(t.error);let s=t.data;if(s?.status==="answered"){let e=Math.max(1,Math.round((Date.now()-R.startedAt)/1e3));M(t=>[...t,{role:"assistant",content:s.answer?.trim()||r.T.emptyAnswer,md:!0,meta:r.T.answerMeta(s.model??R.model,e)}]),a(null)}else s?.status==="expired"&&a(r.T.expired)}catch{}finally{t=!1}}},3e3);return()=>{e=!0,clearInterval(s),clearInterval(n)}},[R]);let z=()=>{let e=N.trim();if(!e||P||!x)return;let t=[...A,{role:"user",content:e}];if(M(t),T(""),C(null),O){let t;t=function(e,t,a=2e3){let s=t.trim(),n=e.slice(-4).map(e=>`Q: ${p(e.q,300)}
|
|
2
2
|
A: ${p(e.a,600)}`);for(;n.length>0;){let e=`Earlier in this chat:
|
|
3
3
|
${n.join("\n")}
|
|
4
4
|
|
|
5
|
-
Now: ${s}`;if(e.length<=a)return e;n=n.slice(1)}return s}(function(e){let t=[];for(let a=0;a+1<e.length;a++)"user"===e[a].role&&"assistant"===e[a+1].role&&(t.push({q:e[a].content,a:e[a+1].content}),a++);return t}(A),e),D(async()=>{try{let e=await (0,o.f)(t,x);if(e.ok&&e.data){let t=Date.now();q(t),L({id:e.data.id,model:x,startedAt:t})}else C(e.ok?r.T.notTaken:e.error)}catch{C("Something went wrong. Try again.")}})}else D(async()=>{try{let e=await h({model:x,mode:g,temperature:Number(b),maxTokens:Number(y),system:w,messages:t.map(({role:e,content:t})=>({role:e,content:t}))});if(e.ok&&e.data){let t=e.data;M(e=>{let a,s,n;return[...e,{role:"assistant",content:t.text,meta:`${t.model} \xb7 ${(s=t.tokensIn,n=t.tokensOut,null===s&&null===n?"—":`${null===s?"—":s.toLocaleString("en-US")} / ${null===n?"—":n.toLocaleString("en-US")}`)} \xb7 ${(a=t.ms)<1e3?`${Math.round(a)} ms`:`${(a/1e3).toFixed(1)} s`}${t.grounded?" · grounded on the console snapshot":""}`}]})}else C(e.ok?"No answer.":e.error)}catch{C("Something went wrong. Try again.")}})},B=R?Math.max(0,Math.round((U-R.startedAt)/1e3)):0;return(0,t.jsxs)("div",{className:"grid grid-cols-1 gap-4 min-[1001px]:grid-cols-[minmax(0,1.5fr)_minmax(0,1fr)]",children:[(0,t.jsxs)(l.N,{title:"Chat",children:[(0,t.jsxs)("div",{className:"flex flex-wrap items-center gap-2 pb-3",children:[(0,t.jsx)("select",{className:(0,i.f)(l.S,"w-auto max-w-full"),"aria-label":"Model",value:x,onChange:e=>f(e.target.value),disabled:P,children:E.length>0&&W.length>0?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("optgroup",{label:"Real-time (provider)",children:E.map(e=>(0,t.jsx)("option",{value:e.id,children:e.label},e.id))}),(0,t.jsx)("optgroup",{label:`${r.T.groupLabel} \xb7 ${m}`,children:W.map(e=>(0,t.jsx)("option",{value:e.id,children:e.label},e.id))})]}):e.map(e=>(0,t.jsx)("option",{value:e.id,children:e.label},e.id))}),O?(0,t.jsx)("span",{className:"font-mono text-[12px] text-ink-faint",children:m}):(0,t.jsxs)("select",{className:(0,i.f)(l.S,"w-auto"),"aria-label":"Mode",value:g,onChange:e=>v("plain"===e.target.value?"plain":"console"),children:[(0,t.jsx)("option",{value:"plain",children:"Plain model"}),(0,t.jsx)("option",{value:"console",children:"Ask the console (uses read:status data)"})]}),(0,t.jsx)(l.K,{size:"sm",variant:"ghost",onClick:()=>{M([]),C(null),L(null)},disabled:0===A.length&&!$,children:"Clear"}),(0,t.jsx)("span",{className:"ml-auto text-[12.5px] text-ink-soft",children:O?"Also on AI › Ask":"Not stored"})]}),(0,t.jsxs)("div",{ref:K,className:"flex max-h-[460px] min-h-[260px] flex-col gap-3 overflow-auto p-0.5","aria-live":"polite",children:[0===A.length&&(0,t.jsx)("p",{className:"m-auto text-[13px] text-ink-faint",children:"Ask about your apps, or anything."}),A.map((e,a)=>(0,t.jsxs)("div",{className:(0,i.f)("max-w-[84%] rounded-lg border px-3 py-2","user"===e.role?"self-end border-transparent bg-brand-soft":"border-line bg-surface"),children:[e.md?(0,t.jsx)("div",{className:"break-words",children:(0,t.jsx)(u.f,{source:e.content})}):(0,t.jsx)("p",{className:"m-0 whitespace-pre-wrap break-words",children:e.content}),e.meta&&(0,t.jsx)("span",{className:"mt-1 block font-mono text-[11.5px] text-ink-faint",children:e.meta})]},a)),I&&!R&&(0,t.jsx)("div",{className:"self-start rounded-lg border border-line bg-surface px-3 py-2 text-ink-soft",role:"status",children:O?r.T.sending:"Thinking..."}),R&&(0,t.jsxs)("div",{className:"inline-flex items-center gap-1.5 self-start rounded-lg border border-line bg-surface px-3 py-2 text-ink-soft",role:"status",children:[(0,t.jsx)(a.f,{size:14,className:"animate-spin","aria-hidden":!0}),r.T.thinking," ",(0,t.jsxs)("span",{className:"font-mono text-[12px] text-ink-faint","aria-hidden":!0,children:[B," s"]})]})]}),$&&(0,t.jsx)("p",{className:"mt-2 text-[13px] text-err",role:"alert",children:$}),(0,t.jsxs)("div",{className:"mt-3 flex items-end gap-2",children:[(0,t.jsx)("textarea",{className:(0,i.f)(l.S,"min-h-11 flex-1"),placeholder:"Ask about your apps, or anything","aria-label":"Message",value:N,maxLength:O?2e3:8e3,onChange:e=>T(e.target.value),onKeyDown:e=>{"Enter"===e.key&&(e.ctrlKey||e.metaKey)&&(e.preventDefault(),z())}}),(0,t.jsxs)(l.K,{variant:"primary",onClick:z,disabled:P||!N.trim()||!x,children:[(0,t.jsx)(s.f,{size:16,"aria-hidden":!0}),"Send"]})]})]}),(0,t.jsxs)("div",{className:"flex min-w-0 flex-col gap-4",children:[(0,t.jsxs)(l.N,{title:"Settings",meta:O?"Provider models only":void 0,children:[(0,t.jsx)(l.O,{id:"pg-temp",label:"Temperature",children:(0,t.jsx)("input",{id:"pg-temp",className:(0,i.f)(l.S,"font-mono"),inputMode:"decimal",value:b,disabled:O,onChange:e=>j(e.target.value)})}),(0,t.jsx)(l.O,{id:"pg-max",label:"Max output tokens",children:(0,t.jsx)("input",{id:"pg-max",className:(0,i.f)(l.S,"font-mono"),inputMode:"numeric",value:y,disabled:O,onChange:e=>S(e.target.value)})}),(0,t.jsx)(l.O,{id:"pg-sys",label:"System prompt",children:(0,t.jsx)("textarea",{id:"pg-sys",className:(0,i.f)(l.S,"min-h-24"),value:w,maxLength:4e3,disabled:O,onChange:e=>k(e.target.value)})})]}),O?(0,t.jsx)(l.N,{title:r.T.howTitle,children:(0,t.jsxs)("p",{className:"m-0 text-[13px] text-ink-soft",children:[r.T.howBody," ","The last ",4," turns of this chat go in front of the question (up to 2,000 characters). The question and answer are kept 7 days and show on AI › Ask."]})}):(0,t.jsx)(l.N,{title:"What's sent in console mode",children:(0,t.jsx)("p",{className:"m-0 text-[13px] text-ink-soft",children:"A compact summary of /api/v1/status: app names and states, monitor results, open alerts, Why problems. Databases as aliases, no URLs, emails, IPs or tokens. Sent to the chosen provider with your question; not stored by Watchbell. Messages count toward the provider's quota."})})]})]})}],962942)},
|
|
5
|
+
Now: ${s}`;if(e.length<=a)return e;n=n.slice(1)}return s}(function(e){let t=[];for(let a=0;a+1<e.length;a++)"user"===e[a].role&&"assistant"===e[a+1].role&&(t.push({q:e[a].content,a:e[a+1].content}),a++);return t}(A),e),D(async()=>{try{let e=await (0,o.f)(t,x);if(e.ok&&e.data){let t=Date.now();q(t),L({id:e.data.id,model:x,startedAt:t})}else C(e.ok?r.T.notTaken:e.error)}catch{C("Something went wrong. Try again.")}})}else D(async()=>{try{let e=await h({model:x,mode:g,temperature:Number(b),maxTokens:Number(y),system:w,messages:t.map(({role:e,content:t})=>({role:e,content:t}))});if(e.ok&&e.data){let t=e.data;M(e=>{let a,s,n;return[...e,{role:"assistant",content:t.text,meta:`${t.model} \xb7 ${(s=t.tokensIn,n=t.tokensOut,null===s&&null===n?"—":`${null===s?"—":s.toLocaleString("en-US")} / ${null===n?"—":n.toLocaleString("en-US")}`)} \xb7 ${(a=t.ms)<1e3?`${Math.round(a)} ms`:`${(a/1e3).toFixed(1)} s`}${t.grounded?" · grounded on the console snapshot":""}`}]})}else C(e.ok?"No answer.":e.error)}catch{C("Something went wrong. Try again.")}})},B=R?Math.max(0,Math.round((U-R.startedAt)/1e3)):0;return(0,t.jsxs)("div",{className:"grid grid-cols-1 gap-4 min-[1001px]:grid-cols-[minmax(0,1.5fr)_minmax(0,1fr)]",children:[(0,t.jsxs)(l.N,{title:"Chat",children:[(0,t.jsxs)("div",{className:"flex flex-wrap items-center gap-2 pb-3",children:[(0,t.jsx)("select",{className:(0,i.f)(l.S,"w-auto max-w-full"),"aria-label":"Model",value:x,onChange:e=>f(e.target.value),disabled:P,children:E.length>0&&W.length>0?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("optgroup",{label:"Real-time (provider)",children:E.map(e=>(0,t.jsx)("option",{value:e.id,children:e.label},e.id))}),(0,t.jsx)("optgroup",{label:`${r.T.groupLabel} \xb7 ${m}`,children:W.map(e=>(0,t.jsx)("option",{value:e.id,children:e.label},e.id))})]}):e.map(e=>(0,t.jsx)("option",{value:e.id,children:e.label},e.id))}),O?(0,t.jsx)("span",{className:"font-mono text-[12px] text-ink-faint",children:m}):(0,t.jsxs)("select",{className:(0,i.f)(l.S,"w-auto"),"aria-label":"Mode",value:g,onChange:e=>v("plain"===e.target.value?"plain":"console"),children:[(0,t.jsx)("option",{value:"plain",children:"Plain model"}),(0,t.jsx)("option",{value:"console",children:"Ask the console (uses read:status data)"})]}),(0,t.jsx)(l.K,{size:"sm",variant:"ghost",onClick:()=>{M([]),C(null),L(null)},disabled:0===A.length&&!$,children:"Clear"}),(0,t.jsx)("span",{className:"ml-auto text-[12.5px] text-ink-soft",children:O?"Also on AI › Ask":"Not stored"})]}),(0,t.jsxs)("div",{ref:K,className:"flex max-h-[460px] min-h-[260px] flex-col gap-3 overflow-auto p-0.5","aria-live":"polite",children:[0===A.length&&(0,t.jsx)("p",{className:"m-auto text-[13px] text-ink-faint",children:"Ask about your apps, or anything."}),A.map((e,a)=>(0,t.jsxs)("div",{className:(0,i.f)("max-w-[84%] rounded-lg border px-3 py-2","user"===e.role?"self-end border-transparent bg-brand-soft":"border-line bg-surface"),children:[e.md?(0,t.jsx)("div",{className:"break-words",children:(0,t.jsx)(u.f,{source:e.content})}):(0,t.jsx)("p",{className:"m-0 whitespace-pre-wrap break-words",children:e.content}),e.meta&&(0,t.jsx)("span",{className:"mt-1 block font-mono text-[11.5px] text-ink-faint",children:e.meta})]},a)),I&&!R&&(0,t.jsx)("div",{className:"self-start rounded-lg border border-line bg-surface px-3 py-2 text-ink-soft",role:"status",children:O?r.T.sending:"Thinking..."}),R&&(0,t.jsxs)("div",{className:"inline-flex items-center gap-1.5 self-start rounded-lg border border-line bg-surface px-3 py-2 text-ink-soft",role:"status",children:[(0,t.jsx)(a.f,{size:14,className:"animate-spin","aria-hidden":!0}),r.T.thinking," ",(0,t.jsxs)("span",{className:"font-mono text-[12px] text-ink-faint","aria-hidden":!0,children:[B," s"]})]})]}),$&&(0,t.jsx)("p",{className:"mt-2 text-[13px] text-err",role:"alert",children:$}),(0,t.jsxs)("div",{className:"mt-3 flex items-end gap-2",children:[(0,t.jsx)("textarea",{className:(0,i.f)(l.S,"min-h-11 flex-1"),placeholder:"Ask about your apps, or anything","aria-label":"Message",value:N,maxLength:O?2e3:8e3,onChange:e=>T(e.target.value),onKeyDown:e=>{"Enter"===e.key&&(e.ctrlKey||e.metaKey)&&(e.preventDefault(),z())}}),(0,t.jsxs)(l.K,{variant:"primary",onClick:z,disabled:P||!N.trim()||!x,children:[(0,t.jsx)(s.f,{size:16,"aria-hidden":!0}),"Send"]})]})]}),(0,t.jsxs)("div",{className:"flex min-w-0 flex-col gap-4",children:[(0,t.jsxs)(l.N,{title:"Settings",meta:O?"Provider models only":void 0,children:[(0,t.jsx)(l.O,{id:"pg-temp",label:"Temperature",children:(0,t.jsx)("input",{id:"pg-temp",className:(0,i.f)(l.S,"font-mono"),inputMode:"decimal",value:b,disabled:O,onChange:e=>j(e.target.value)})}),(0,t.jsx)(l.O,{id:"pg-max",label:"Max output tokens",children:(0,t.jsx)("input",{id:"pg-max",className:(0,i.f)(l.S,"font-mono"),inputMode:"numeric",value:y,disabled:O,onChange:e=>S(e.target.value)})}),(0,t.jsx)(l.O,{id:"pg-sys",label:"System prompt",children:(0,t.jsx)("textarea",{id:"pg-sys",className:(0,i.f)(l.S,"min-h-24"),value:w,maxLength:4e3,disabled:O,onChange:e=>k(e.target.value)})})]}),O?(0,t.jsx)(l.N,{title:r.T.howTitle,children:(0,t.jsxs)("p",{className:"m-0 text-[13px] text-ink-soft",children:[r.T.howBody," ","The last ",4," turns of this chat go in front of the question (up to 2,000 characters). The question and answer are kept 7 days and show on AI › Ask."]})}):(0,t.jsx)(l.N,{title:"What's sent in console mode",children:(0,t.jsx)("p",{className:"m-0 text-[13px] text-ink-soft",children:"A compact summary of /api/v1/status: app names and states, monitor results, open alerts, Why problems. Databases as aliases, no URLs, emails, IPs or tokens. Sent to the chosen provider with your question; not stored by Watchbell. Messages count toward the provider's quota."})})]})]})}],962942)},785869,e=>{var t=e.i(95187);let a=(0,t.createServerReference)("60da6df8083959c2dfce200620ed190dc53d724a1d",t.callServer,void 0,t.findSourceMapURL,"askGeneral");e.s(["f",0,a])}])})();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(()=>{"use strict";(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,518869,e=>{var a=e.i(843476),t=e.i(271645),n=e.i(846696),i=e.i(54131),r=e.i(428325),s=e.i(95187);let o=(0,s.createServerReference)("406cfbf310a041e411115bd44674045be65ad59440",s.callServer,void 0,s.findSourceMapURL,"updateMonitorDomain");e.s(["DomainMoved",0,function({monitorId:e,from:s,to:l,canAct:d}){let[c,p]=(0,t.useTransition)();return(0,a.jsxs)("span",{className:"inline-flex flex-wrap items-center gap-2 text-[13px] text-warn",children:[(0,a.jsxs)("span",{children:["Domain changed: ",(0,a.jsx)(i.MaskedText,{text:s})," → ",(0,a.jsx)(i.MaskedText,{text:l}),d?", update monitor?":""]}),d&&(0,a.jsx)(r.K,{size:"sm",disabled:c,onClick:()=>p(async()=>{try{let a=await o(e);a.ok?n.c.success(a.message??"Monitor updated."):n.c.error(a.error)}catch{n.c.error("Something went wrong. Try again.")}}),children:c?"Updating…":"Update monitor"})]})}],518869)},525252,e=>{var a=e.i(843476),t=e.i(615884),n=e.i(271645),i=e.i(846696),r=e.i(428325),s=e.i(500443),o=e.i(776639),l=e.i(789279),d=e.i(684496);let c=[30,60,90,180,360];function p(e){return"all"===e.scope?"all":"app"===e.scope?`app:${e.appId}`:`monitor:${e.monitorId}`}var m=e.i(95187);let u=(0,m.createServerReference)("4075667b5a8947a642d63af9c5126cd761622c9c2d",m.callServer,void 0,m.findSourceMapURL,"addWindow"),h=(0,m.createServerReference)("60c2e5b8439fb65ee9a07f98b13a5a7a52bb725f08",m.callServer,void 0,m.findSourceMapURL,"editWindow");function x(e){if("edit"===e.mode){let a=e.win;return{target:p(a),weekly:a.weekly,start:(0,d.S)(a.startsAt),durationMin:String(a.durationMin),note:a.note??""}}return{target:"all",weekly:!1,start:(0,d.S)(new Date(36e5*Math.ceil(Date.now()/36e5))),durationMin:"90",note:""}}e.s(["MaintenanceDialog",0,function(e){let[m,f]=(0,n.useState)(!1),g="edit"===e.mode?e.open:m,[j,b]=(0,n.useState)(()=>x(e)),[v,S]=(0,n.useState)({}),[k,w]=(0,n.useTransition)();function y(a){a&&(b(x(e)),S({})),"edit"===e.mode?e.onOpenChange(a):f(a)}(0,s.useHoldRefresh)(g);let{apps:N,monitors:C}=e.options,M="edit"===e.mode?p(e.win):null,R="all"===M||N.some(e=>`app:${e.id}`===M)||C.some(e=>`monitor:${e.id}`===M),U=v.scope??v.targetId;return(0,a.jsxs)(o.N,{open:g,onOpenChange:e=>{k||y(e)},children:["add"===e.mode&&(0,a.jsx)(o.a,{render:(0,a.jsx)(r.K,{children:"Add maintenance window"})}),(0,a.jsxs)(o.d,{className:"gap-0 p-0 sm:max-w-[560px]",showCloseButton:!1,children:[(0,a.jsxs)("div",{className:"flex items-start gap-3 px-[18px] pb-2 pt-4",children:[(0,a.jsx)("span",{className:"grid size-9 shrink-0 place-items-center rounded-lg bg-sunken text-ink-soft",children:(0,a.jsx)(t.f,{size:19})}),(0,a.jsxs)("div",{children:[(0,a.jsx)(o.F,{className:"text-base",children:"add"===e.mode?"Add maintenance window":"Edit maintenance window"}),(0,a.jsxs)(o.C,{className:"mt-0.5 text-[13px] text-ink-soft",children:["Checks keep running, but they are left out of uptime % and open no alerts. ",(0,d.n)()]})]})]}),(0,a.jsxs)("form",{onSubmit:a=>{a.preventDefault(),function(){var a,t;let n={...function(e){if("all"===e)return{scope:"all",targetId:""};let a=/^(app|monitor):(.+)$/.exec(e);return a?{scope:a[1],targetId:a[2]}:{scope:"",targetId:""}}(j.target),start:j.start,durationMin:j.durationMin,weekly:j.weekly,note:j.note},r=function(e){let a={},t="all"===e.scope||"app"===e.scope||"monitor"===e.scope?e.scope:null;t||(a.scope="Pick what it applies to.");let n="string"==typeof e.start?e.start:"",i=(0,d.a)(n);i||(a.start="Pick a start time.");let r=Number(e.durationMin);c.includes(r)||(a.durationMin="Pick how long it lasts.");let s="string"==typeof e.targetId?e.targetId:"";if(t&&"all"!==t&&!(0,l.f)(s)&&(a.targetId="app"===t?"Pick an application.":"Pick a monitor."),Object.keys(a).length||!t||!i)return{ok:!1,fieldErrors:a};let o=("string"==typeof e.note?e.note:"").trim().slice(0,120)||null;return{ok:!0,value:{scope:t,appId:"app"===t?s:null,monitorId:"monitor"===t?s:null,startsAt:i,durationMin:r,weekly:!0===e.weekly,note:o}}}(n);if(!r.ok)return S(r.fieldErrors);(a=r.value,t=new Date,!a.weekly&&a.startsAt.getTime()+6e4*a.durationMin<=t.getTime())?S({start:"That window has already ended."}):(S({}),w(async()=>{let a="add"===e.mode?await u(n):await h(e.win.id,n);if(!a.ok){S(a.fieldErrors??{}),i.c.error(a.error);return}i.c.success("Window saved",{description:a.message}),y(!1)}))}()},children:[(0,a.jsxs)("div",{className:"px-[18px] pt-2",children:[(0,a.jsx)(r.O,{id:"mw-scope",label:"Applies to",error:U,children:(0,a.jsxs)("select",{id:"mw-scope",className:r.S,value:j.target,onChange:e=>b({...j,target:e.target.value}),children:[(0,a.jsx)("option",{value:"all",children:"All monitors"}),"edit"===e.mode&&!R&&M&&(0,a.jsx)("option",{value:M,children:e.win.target}),N.length>0&&(0,a.jsx)("optgroup",{label:"Application",children:N.map(e=>(0,a.jsx)("option",{value:`app:${e.id}`,children:e.name},e.id))}),C.length>0&&(0,a.jsx)("optgroup",{label:"One monitor",children:C.map(e=>(0,a.jsx)("option",{value:`monitor:${e.id}`,children:e.label},e.id))})]})}),(0,a.jsxs)("fieldset",{className:"mb-3.5 flex flex-col gap-[5px]",children:[(0,a.jsx)("legend",{className:"mb-[5px] text-[13px] font-medium",children:"Repeat"}),(0,a.jsx)("div",{className:"flex flex-wrap gap-x-4 gap-y-1.5",children:[[!1,"Once"],[!0,"Every week"]].map(([e,t])=>(0,a.jsxs)("label",{className:"flex items-center gap-1.5 text-[13px]",children:[(0,a.jsx)("input",{type:"radio",name:"mw-rep",className:"size-4 accent-brand",checked:j.weekly===e,onChange:()=>b({...j,weekly:e})}),t]},t))})]}),(0,a.jsxs)("div",{className:"grid grid-cols-1 gap-3 sm:grid-cols-2",children:[(0,a.jsx)(r.O,{id:"mw-start",label:"Starts",error:v.start,children:(0,a.jsx)("input",{id:"mw-start",type:"datetime-local",className:r.S,value:j.start,onChange:e=>b({...j,start:e.target.value})})}),(0,a.jsx)(r.O,{id:"mw-len",label:"Lasts",error:v.durationMin,children:(0,a.jsx)("select",{id:"mw-len",className:r.S,value:j.durationMin,onChange:e=>b({...j,durationMin:e.target.value}),children:c.map(e=>{let t,n;return(0,a.jsx)("option",{value:String(e),children:[(t=Math.floor(e/60))?`${t} h`:"",(n=e%60)?`${n} min`:""].filter(Boolean).join(" ")},e)})})})]}),(0,a.jsx)(r.O,{id:"mw-note",label:"Note (optional)",help:"Shown on the public status page if a monitor there is affected.",children:(0,a.jsx)("input",{id:"mw-note",className:r.S,value:j.note,maxLength:120,placeholder:"Moving DNS to Cloudflare",autoComplete:"off",onChange:e=>b({...j,note:e.target.value})})})]}),(0,a.jsxs)("div",{className:"flex flex-wrap items-center justify-end gap-2 border-t border-line px-[18px] py-3",children:[(0,a.jsx)(r.K,{onClick:()=>y(!1),disabled:k,children:"Cancel"}),(0,a.jsx)(r.K,{type:"submit",variant:"primary",disabled:k,children:k?"Saving…":"add"===e.mode?"Add window":"Save"})]})]})]})]})}],525252)},388594,e=>{var a=e.i(843476),t=e.i(271645),n=e.i(46200),i=e.i(177106),r=e.i(452842),s=e.i(95187);let o=(0,s.createServerReference)("40f635a0bdb7766f67c8c6cc5aa9c0e354f4d6e3f6",s.callServer,void 0,s.findSourceMapURL,"removeWindow");var l=e.i(525252);e.s(["MaintenanceMenu",0,function({win:e,options:s}){let[d,c]=(0,t.useState)(!1),[p,m]=(0,t.useState)(!1);return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(i.RowMenu,{label:(0,r.J)(e.target,"window"),items:[{label:"Edit window",onSelect:()=>c(!0)},"---",{label:"Delete",danger:!0,onSelect:()=>m(!0)}]}),d&&(0,a.jsx)(l.MaintenanceDialog,{mode:"edit",win:e,options:s,open:!0,onOpenChange:c}),(0,a.jsx)(n.f,{open:p,onOpenChange:m,title:"Delete this maintenance window?",body:"Checks count toward uptime % and open alerts again outside any other window.",cta:"Delete",danger:!0,onConfirm:async()=>{let a=await o(e.id);return{ok:a.ok,message:(a.ok?a.message:a.error)??""}}})]})}],388594)},380030,637598,e=>{var a=e.i(843476),t=e.i(359133),n=e.i(271645),i=e.i(846696),r=e.i(428325),s=e.i(500443),o=e.i(776639),l=e.i(876195),d=e.i(70528),c=e.i(95187);let p=(0,c.createServerReference)("60ec3af70b884627269c8c6c13e14973c484cf07ef",c.callServer,void 0,c.findSourceMapURL,"addHeartbeat"),m=(0,c.createServerReference)("601cb535c42da1a66f45cca44c6b726bdc1fa3d830",c.callServer,void 0,c.findSourceMapURL,"addMonitor"),u=(0,c.createServerReference)("60e2b4b5d6b47360a44ef3423954e5715a0cd1758c",c.callServer,void 0,c.findSourceMapURL,"editHeartbeat"),h=(0,c.createServerReference)("60d5cf822ffc784839339a023333b65ca85e399176",c.callServer,void 0,c.findSourceMapURL,"editMonitor");var x=e.i(54131);function f(e){return null===e?{ok:!1,text:"Couldn't reach the console"}:e>=200&&e<300?{ok:!0,text:`OK \xb7 ${e}`}:404===e?{ok:!1,text:"Not found · 404"}:429===e?{ok:!1,text:"Too many pings · 429"}:{ok:!1,text:`Failed \xb7 ${e}`}}function g({name:e,url:l,onClose:d}){let c=null!==l,[p,m]=(0,n.useState)(!1),[u,h]=(0,n.useState)(null);async function j(){if(l)try{await navigator.clipboard.writeText(l),i.c.success("Copied.")}catch{i.c.error("Couldn't copy. Select the URL and copy it yourself.")}}async function b(e){let a,t=l?(a=/\/api\/ping\/(hb_[0-9a-f]{32})\/?$/.exec(l))?`/api/ping/${a[1]}${"fail"===e?"/fail":""}`:null:null;if(t&&!p){m(!0),h(null);try{let e=await fetch(t,{method:"GET",cache:"no-store"});h(f(e.status))}catch{h(f(null))}finally{m(!1)}}}function v(){h(null),d()}return(0,s.useHoldRefresh)(c),(0,a.jsx)(o.N,{open:c,onOpenChange:e=>{e||v()},children:(0,a.jsxs)(o.d,{className:"gap-0 p-0 sm:max-w-[640px]",showCloseButton:!1,children:[(0,a.jsxs)("div",{className:"flex items-start gap-3 px-[18px] pb-2 pt-4",children:[(0,a.jsx)("span",{className:"grid size-9 shrink-0 place-items-center rounded-lg bg-sunken text-ink-soft",children:(0,a.jsx)(t.f,{size:19})}),(0,a.jsxs)("div",{className:"min-w-0",children:[(0,a.jsxs)(o.F,{className:"text-base",children:["Ping URL for ",(0,a.jsx)(x.Masked,{kind:"text",real:e})]}),(0,a.jsx)(o.C,{className:"mt-0.5 text-[13px] text-ink-soft",children:"Copy it now. It is shown once; the console keeps only a hash. Lost it? Make a new one from the monitor's menu."})]})]}),(0,a.jsxs)("div",{className:"px-[18px] pt-2",children:[(0,a.jsxs)("div",{className:"mb-3 flex items-center gap-1.5",children:[(0,a.jsx)("code",{className:"min-w-0 flex-1 overflow-x-auto whitespace-nowrap rounded-md border border-line bg-sunken px-2 py-1.5 font-mono text-[12.5px]",children:l&&(0,a.jsx)(x.Masked,{kind:"text",real:l,masked:l.replace(/(\/api\/ping\/).*/,"$1••••••")})}),(0,a.jsx)(r.K,{size:"sm",onClick:j,children:"Copy"})]}),(0,a.jsxs)("div",{className:"mb-3.5 flex flex-wrap items-center gap-2",children:[(0,a.jsx)(r.K,{size:"sm",disabled:p,onClick:()=>b("ok"),children:"Send test ping"}),(0,a.jsx)(r.K,{size:"sm",disabled:p,onClick:()=>b("fail"),children:"Test fail"}),(0,a.jsx)("span",{role:"status","aria-live":"polite",className:`text-[13px] ${u?u.ok?"text-ok":"text-err":"text-ink-soft"}`,children:p?"Sending…":u?.text??""})]}),(0,a.jsxs)("div",{className:"mb-3.5 rounded-lg border border-line bg-surface-2 px-3 py-2.5 text-[13px]",children:[(0,a.jsx)("b",{className:"font-medium",children:"From your job"}),(0,a.jsxs)("ul",{className:"mt-1 list-disc pl-[18px] text-ink-soft",children:[(0,a.jsxs)("li",{children:["When it succeeds: ",(0,a.jsx)("span",{className:"font-mono",children:"curl -fsS -m 10 <url>"})]}),(0,a.jsxs)("li",{children:["When it fails: add ",(0,a.jsx)("span",{className:"font-mono",children:"/fail"})," to the URL"]}),(0,a.jsxs)("li",{children:["When it starts (optional): add ",(0,a.jsx)("span",{className:"font-mono",children:"/start"})]})]})]})]}),(0,a.jsx)("div",{className:"flex justify-end gap-2 border-t border-line px-[18px] py-3",children:(0,a.jsx)(r.K,{variant:"primary",onClick:v,children:"Done"})})]})})}e.s(["f",0,g],637598);let j={name:"",periodS:"86400",graceS:"3600"},b=[["http","HTTP check","The collector opens a URL every minute"],["heartbeat","Heartbeat","Your cron job or backup script pings a secret URL when it runs"]];function v(e){if("edit"===e.mode){let a=e.monitor;return{appId:"",kind:a.kind,url:"http"===a.kind?a.url:"",expectedStatus:String(a.expectedStatus),timeoutS:String(Math.round(a.timeoutMs/1e3)),bodyContains:a.bodyContains??"",jsonPath:a.jsonPath??"",jsonEquals:a.jsonEquals??"",name:a.name??"",periodS:String(a.periodS??j.periodS),graceS:String(a.graceS??j.graceS)}}let a=e.apps[0];return{appId:a?.id??"",kind:"http",url:a?`https://${a.domain}/api/health`:"",expectedStatus:"200",timeoutS:"5",bodyContains:"",jsonPath:"",jsonEquals:"",...j}}e.s(["MonitorDialog",0,function(e){let[c,x]=(0,n.useState)(!1),f="edit"===e.mode?e.open:c,[j,S]=(0,n.useState)(()=>v(e)),[k,w]=(0,n.useState)({}),[y,N]=(0,n.useTransition)(),[C,M]=(0,n.useState)(null);function R(a){a&&(S(v(e)),w({})),"edit"===e.mode?e.onOpenChange(a):x(a)}(0,s.useHoldRefresh)(f);let U="add"===e.mode?e.apps:[],O="add"===e.mode&&0===U.length,T="heartbeat"===j.kind,L="add"===e.mode?"HTTP checks run every minute from the collector. Heartbeats wait for your job to ping the console.":T?"Your job pings the console; nothing is fetched.":"Checked every minute from the collector.";return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsxs)(o.N,{open:f,onOpenChange:e=>{y||R(e)},children:["add"===e.mode&&(O?(0,a.jsxs)("span",{className:"inline-flex items-center gap-2",children:[(0,a.jsx)(r.K,{variant:"primary",disabled:!0,children:"Add monitor"}),(0,a.jsx)("span",{className:"text-[12.5px] text-ink-faint",children:"Watch an app first: Connections, then Sync."})]}):(0,a.jsx)(o.a,{render:(0,a.jsx)(r.K,{variant:"primary",children:"Add monitor"})})),(0,a.jsxs)(o.d,{className:"gap-0 p-0 sm:max-w-[640px]",showCloseButton:!1,children:[(0,a.jsxs)("div",{className:"flex items-start gap-3 px-[18px] pb-2 pt-4",children:[(0,a.jsx)("span",{className:"grid size-9 shrink-0 place-items-center rounded-lg bg-sunken text-ink-soft",children:(0,a.jsx)(t.f,{size:19})}),(0,a.jsxs)("div",{children:[(0,a.jsx)(o.F,{className:"text-base",children:"add"===e.mode?"Add monitor":"Edit monitor"}),(0,a.jsx)(o.C,{className:"mt-0.5 text-[13px] text-ink-soft",children:L})]})]}),(0,a.jsxs)("form",{onSubmit:a=>{let t,n;a.preventDefault(),(n=(t="heartbeat"===j.kind)?(0,d.a)(j):(0,d.X)(j)).ok?(w({}),N(async()=>{let a=t?"add"===e.mode?await p(j.appId,j):await u(e.monitor.id,j):"add"===e.mode?await m(j.appId,j):await h(e.monitor.id,j);if(!a.ok){w(a.fieldErrors??{}),i.c.error(a.error);return}i.c.success("add"===e.mode?"Monitor added":"Monitor saved",{description:a.message}),R(!1);let n=a.data&&"pingUrl"in a.data?a.data.pingUrl:null;n&&M({name:j.name.trim(),url:n})})):w(n.fieldErrors)},children:[(0,a.jsxs)("div",{className:"px-[18px] pt-2",children:["add"===e.mode&&(0,a.jsxs)("fieldset",{className:"mb-3.5",children:[(0,a.jsx)("legend",{className:"mb-[5px] text-[13px] font-medium",children:"Type"}),(0,a.jsx)("div",{className:"overflow-hidden rounded-lg border border-line",children:b.map(([e,t,n])=>(0,a.jsxs)("label",{className:"flex cursor-pointer items-start gap-2.5 border-t border-line px-3 py-[9px] first:border-t-0 hover:bg-hover",children:[(0,a.jsx)("input",{type:"radio",name:"mon-kind",value:e,checked:j.kind===e,className:"mt-[3px] accent-brand",onChange:()=>{S({...j,kind:e}),w({})}}),(0,a.jsxs)("span",{children:[t,(0,a.jsx)("small",{className:"block text-xs text-ink-faint",children:n})]})]},e))})]}),(0,a.jsx)(r.O,{id:"mon-app",label:"Application",children:"add"===e.mode?(0,a.jsx)("select",{id:"mon-app",className:r.S,value:j.appId,onChange:e=>{let a=U.find(a=>a.id===e.target.value);S({...j,appId:e.target.value,url:a?`https://${a.domain}/`:j.url})},children:U.map(e=>(0,a.jsx)("option",{value:e.id,children:e.name},e.id))}):(0,a.jsx)("input",{id:"mon-app",className:r.S,value:e.monitor.appName,disabled:!0})}),T?(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(r.O,{id:"hb-name",label:"Name",error:k.name,children:(0,a.jsx)("input",{id:"hb-name",className:r.S,value:j.name,placeholder:"backup job",maxLength:80,autoComplete:"off",onChange:e=>S({...j,name:e.target.value})})}),(0,a.jsxs)("div",{className:"grid grid-cols-1 gap-3 sm:grid-cols-2",children:[(0,a.jsx)(r.O,{id:"hb-every",label:"Expected every",error:k.periodS,children:(0,a.jsx)("select",{id:"hb-every",className:r.S,value:j.periodS,onChange:e=>S({...j,periodS:e.target.value}),children:l.Q.map(e=>(0,a.jsx)("option",{value:String(e),children:(0,l.v)(e)},e))})}),(0,a.jsx)(r.O,{id:"hb-grace",label:"Grace time",error:k.graceS,children:(0,a.jsx)("select",{id:"hb-grace",className:r.S,value:j.graceS,onChange:e=>S({...j,graceS:e.target.value}),children:l.q.map(e=>(0,a.jsx)("option",{value:String(e),children:(0,l.v)(e)},e))})})]}),(0,a.jsxs)("p",{className:"mb-3 text-[13px] text-ink-soft",children:["Late once the period passes, down after the grace time too.","add"===e.mode?" The ping URL is shown once after you add it.":""]})]}):(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(r.O,{id:"mon-url",label:"URL",help:"Must start with https://. A health route that touches nothing heavy works best.",error:k.url,children:(0,a.jsx)("input",{id:"mon-url",className:r.S,value:j.url,autoComplete:"off",spellCheck:!1,onChange:e=>S({...j,url:e.target.value})})}),(0,a.jsxs)("div",{className:"grid grid-cols-1 gap-3 sm:grid-cols-2",children:[(0,a.jsx)(r.O,{id:"mon-code",label:"Expected status",error:k.expectedStatus,children:(0,a.jsx)("input",{id:"mon-code",className:r.S,inputMode:"numeric",value:j.expectedStatus,onChange:e=>S({...j,expectedStatus:e.target.value})})}),(0,a.jsx)(r.O,{id:"mon-timeout",label:"Timeout",error:k.timeoutS,children:(0,a.jsx)("select",{id:"mon-timeout",className:r.S,value:j.timeoutS,onChange:e=>S({...j,timeoutS:e.target.value}),children:d.L.map(e=>(0,a.jsxs)("option",{value:String(e),children:[e," s"]},e))})})]}),(0,a.jsx)(r.O,{id:"mon-match",label:"Response must contain (optional)",help:"Plain text, case-sensitive. The first 256 KB of the response is searched and never stored.",error:k.bodyContains,children:(0,a.jsx)("input",{id:"mon-match",className:r.S,value:j.bodyContains??"",placeholder:'e.g. "status":"ok"',autoComplete:"off",spellCheck:!1,onChange:e=>S({...j,bodyContains:e.target.value})})}),(0,a.jsxs)("div",{className:"grid grid-cols-1 gap-3 sm:grid-cols-2",children:[(0,a.jsx)(r.O,{id:"mon-jpath",label:"Or JSON field (optional)",error:k.jsonPath,children:(0,a.jsx)("input",{id:"mon-jpath",className:`${r.S} font-mono`,value:j.jsonPath??"",placeholder:"status or checks.db",autoComplete:"off",spellCheck:!1,onChange:e=>S({...j,jsonPath:e.target.value})})}),(0,a.jsx)(r.O,{id:"mon-jeq",label:"Equals",error:k.jsonEquals,children:(0,a.jsx)("input",{id:"mon-jeq",className:`${r.S} font-mono`,value:j.jsonEquals??"",placeholder:"ok",autoComplete:"off",spellCheck:!1,onChange:e=>S({...j,jsonEquals:e.target.value})})})]}),(0,a.jsx)("p",{className:"mb-3 text-[13px] text-ink-soft",children:"Marked down after 3 failed checks in a row. A missing keyword counts as a failed check."})]})]}),(0,a.jsxs)("div",{className:"flex flex-wrap items-center justify-end gap-2 border-t border-line px-[18px] py-3",children:[(0,a.jsx)(r.K,{onClick:()=>R(!1),disabled:y,children:"Cancel"}),(0,a.jsx)(r.K,{type:"submit",variant:"primary",disabled:y,children:y?"Saving…":"add"===e.mode?"Add monitor":"Save"})]})]})]})]}),(0,a.jsx)(g,{name:C?.name??"",url:C?.url??null,onClose:()=>M(null)})]})}],380030)},595349,e=>{var a=e.i(843476),t=e.i(271645),n=e.i(846696),i=e.i(46200),r=e.i(177106),s=e.i(452842),o=e.i(95187);let l=(0,o.createServerReference)("40b05dcf40990ad587079089047d197bc372425d5a",o.callServer,void 0,o.findSourceMapURL,"checkNow"),d=(0,o.createServerReference)("40cff3f12c6c2bdc03ca108309899442e31ae87bbb",o.callServer,void 0,o.findSourceMapURL,"newPingUrl"),c=(0,o.createServerReference)("607f67a3fad40a3bd94dd66093bd6e09a14a883dd2",o.callServer,void 0,o.findSourceMapURL,"pauseMonitor"),p=(0,o.createServerReference)("60dbda7dac218839a916faaad874019d34d551a8cd",o.callServer,void 0,o.findSourceMapURL,"recordTestPingAction"),m=(0,o.createServerReference)("4067a6dd82efdd86e4c71ac5b179d182c74553ff2e",o.callServer,void 0,o.findSourceMapURL,"removeMonitor");var u=e.i(380030),h=e.i(637598);e.s(["MonitorMenu",0,function({monitor:e}){let[o,x]=(0,t.useState)(!1),[f,g]=(0,t.useState)(!1),[j,b]=(0,t.useState)(!1),[v,S]=(0,t.useState)(null),[,k]=(0,t.useTransition)(),w=(0,t.useRef)(!1),y="heartbeat"===e.kind,N=y?`${e.appName} \xb7 ${e.path}`:`${e.appName}${e.path}`,C=(e,a)=>{if(w.current)return;w.current=!0;let t=a?n.c.loading(a):void 0;k(async()=>{try{let a=await e();a.ok?a.data?.passed===!1?n.c.warning(a.message??"",{id:t}):n.c.success(a.message??"",{id:t}):n.c.error(a.error,{id:t})}catch{n.c.error("Something went wrong. Try again.",{id:t})}finally{w.current=!1}})},M={label:e.ownerPaused?"Resume":"Pause",onSelect:()=>C(()=>c(e.id,!e.ownerPaused))},R=y?{label:"Show ping URL",onSelect:()=>b(!0)}:{label:"Check now",onSelect:()=>C(()=>l(e.id),`Checking ${N}…`)};return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(r.RowMenu,{label:(0,s.J)(e.appName,e.path),items:[R,...y?[{label:"Record a test ping: OK",onSelect:()=>C(()=>p(e.id,"ok"))},{label:"Record a test ping: Fail",onSelect:()=>C(()=>p(e.id,"fail"))}]:[],{label:"Edit monitor",onSelect:()=>x(!0)},M,"---",{label:"Delete",danger:!0,onSelect:()=>g(!0)}]}),o&&(0,a.jsx)(u.MonitorDialog,{mode:"edit",monitor:e,open:!0,onOpenChange:x}),(0,a.jsx)(i.f,{open:f,onOpenChange:g,title:`Delete ${N}?`,body:y?"Its ping URL stops working. This can't be undone.":"This can't be undone.",cta:"Delete",danger:!0,onConfirm:async()=>{let a=await m(e.id);return{ok:a.ok,message:(a.ok?a.message:a.error)??""}}}),y&&(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(i.f,{open:j,onOpenChange:b,title:`New ping URL for ${e.path}?`,body:"Make a new ping URL? The old one stops working, so update your job.",cta:"Make a new URL",onConfirm:async()=>{let a=await d(e.id);return a.ok&&a.data?.pingUrl&&S(a.data.pingUrl),{ok:a.ok,message:(a.ok?a.message:a.error)??""}}}),(0,a.jsx)(h.f,{name:e.path,url:v,onClose:()=>S(null)})]})]})}],595349)},346072,e=>{var a=e.i(843476),t=e.i(271645),n=e.i(541299),i=e.i(691106),r=e.i(495784);e.s(["PlainTable",0,function({head:e,rows:s}){let[o,l]=(0,t.useState)(1),d=(0,r.$)(s,o);return d.page!==o&&l(d.page),(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)("div",{className:"overflow-x-auto",children:(0,a.jsxs)("table",{className:i.o,children:[(0,a.jsx)(i.U,{head:e}),(0,a.jsx)("tbody",{children:d.rows.map(e=>(0,a.jsx)(t.Fragment,{children:e.row},e.key))})]})}),(0,a.jsx)(n.f,{page:d.page,pages:d.pages,text:(0,r.z)(d),onPage:l})]})}])},789279,e=>{let a=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;e.s(["f",0,e=>"string"==typeof e&&a.test(e)])}])})();
|
|
1
|
+
(()=>{"use strict";(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,518869,e=>{var a=e.i(843476),t=e.i(271645),n=e.i(846696),i=e.i(54131),r=e.i(428325),s=e.i(95187);let o=(0,s.createServerReference)("40459ec9208360a7d3ec74ce42d31dce7aca947b45",s.callServer,void 0,s.findSourceMapURL,"updateMonitorDomain");e.s(["DomainMoved",0,function({monitorId:e,from:s,to:l,canAct:d}){let[c,p]=(0,t.useTransition)();return(0,a.jsxs)("span",{className:"inline-flex flex-wrap items-center gap-2 text-[13px] text-warn",children:[(0,a.jsxs)("span",{children:["Domain changed: ",(0,a.jsx)(i.MaskedText,{text:s})," → ",(0,a.jsx)(i.MaskedText,{text:l}),d?", update monitor?":""]}),d&&(0,a.jsx)(r.K,{size:"sm",disabled:c,onClick:()=>p(async()=>{try{let a=await o(e);a.ok?n.c.success(a.message??"Monitor updated."):n.c.error(a.error)}catch{n.c.error("Something went wrong. Try again.")}}),children:c?"Updating…":"Update monitor"})]})}],518869)},525252,e=>{var a=e.i(843476),t=e.i(615884),n=e.i(271645),i=e.i(846696),r=e.i(428325),s=e.i(500443),o=e.i(776639),l=e.i(789279),d=e.i(684496);let c=[30,60,90,180,360];function p(e){return"all"===e.scope?"all":"app"===e.scope?`app:${e.appId}`:`monitor:${e.monitorId}`}var m=e.i(95187);let u=(0,m.createServerReference)("409c2433a24efd8772bbaf5c98a4e994b7308d876b",m.callServer,void 0,m.findSourceMapURL,"addWindow"),h=(0,m.createServerReference)("60f8622eaf665f4a81b6a57f9b87982824891214d3",m.callServer,void 0,m.findSourceMapURL,"editWindow");function x(e){if("edit"===e.mode){let a=e.win;return{target:p(a),weekly:a.weekly,start:(0,d.S)(a.startsAt),durationMin:String(a.durationMin),note:a.note??""}}return{target:"all",weekly:!1,start:(0,d.S)(new Date(36e5*Math.ceil(Date.now()/36e5))),durationMin:"90",note:""}}e.s(["MaintenanceDialog",0,function(e){let[m,f]=(0,n.useState)(!1),g="edit"===e.mode?e.open:m,[j,b]=(0,n.useState)(()=>x(e)),[v,S]=(0,n.useState)({}),[k,w]=(0,n.useTransition)();function y(a){a&&(b(x(e)),S({})),"edit"===e.mode?e.onOpenChange(a):f(a)}(0,s.useHoldRefresh)(g);let{apps:N,monitors:C}=e.options,M="edit"===e.mode?p(e.win):null,R="all"===M||N.some(e=>`app:${e.id}`===M)||C.some(e=>`monitor:${e.id}`===M),U=v.scope??v.targetId;return(0,a.jsxs)(o.N,{open:g,onOpenChange:e=>{k||y(e)},children:["add"===e.mode&&(0,a.jsx)(o.a,{render:(0,a.jsx)(r.K,{children:"Add maintenance window"})}),(0,a.jsxs)(o.d,{className:"gap-0 p-0 sm:max-w-[560px]",showCloseButton:!1,children:[(0,a.jsxs)("div",{className:"flex items-start gap-3 px-[18px] pb-2 pt-4",children:[(0,a.jsx)("span",{className:"grid size-9 shrink-0 place-items-center rounded-lg bg-sunken text-ink-soft",children:(0,a.jsx)(t.f,{size:19})}),(0,a.jsxs)("div",{children:[(0,a.jsx)(o.F,{className:"text-base",children:"add"===e.mode?"Add maintenance window":"Edit maintenance window"}),(0,a.jsxs)(o.C,{className:"mt-0.5 text-[13px] text-ink-soft",children:["Checks keep running, but they are left out of uptime % and open no alerts. ",(0,d.n)()]})]})]}),(0,a.jsxs)("form",{onSubmit:a=>{a.preventDefault(),function(){var a,t;let n={...function(e){if("all"===e)return{scope:"all",targetId:""};let a=/^(app|monitor):(.+)$/.exec(e);return a?{scope:a[1],targetId:a[2]}:{scope:"",targetId:""}}(j.target),start:j.start,durationMin:j.durationMin,weekly:j.weekly,note:j.note},r=function(e){let a={},t="all"===e.scope||"app"===e.scope||"monitor"===e.scope?e.scope:null;t||(a.scope="Pick what it applies to.");let n="string"==typeof e.start?e.start:"",i=(0,d.a)(n);i||(a.start="Pick a start time.");let r=Number(e.durationMin);c.includes(r)||(a.durationMin="Pick how long it lasts.");let s="string"==typeof e.targetId?e.targetId:"";if(t&&"all"!==t&&!(0,l.f)(s)&&(a.targetId="app"===t?"Pick an application.":"Pick a monitor."),Object.keys(a).length||!t||!i)return{ok:!1,fieldErrors:a};let o=("string"==typeof e.note?e.note:"").trim().slice(0,120)||null;return{ok:!0,value:{scope:t,appId:"app"===t?s:null,monitorId:"monitor"===t?s:null,startsAt:i,durationMin:r,weekly:!0===e.weekly,note:o}}}(n);if(!r.ok)return S(r.fieldErrors);(a=r.value,t=new Date,!a.weekly&&a.startsAt.getTime()+6e4*a.durationMin<=t.getTime())?S({start:"That window has already ended."}):(S({}),w(async()=>{let a="add"===e.mode?await u(n):await h(e.win.id,n);if(!a.ok){S(a.fieldErrors??{}),i.c.error(a.error);return}i.c.success("Window saved",{description:a.message}),y(!1)}))}()},children:[(0,a.jsxs)("div",{className:"px-[18px] pt-2",children:[(0,a.jsx)(r.O,{id:"mw-scope",label:"Applies to",error:U,children:(0,a.jsxs)("select",{id:"mw-scope",className:r.S,value:j.target,onChange:e=>b({...j,target:e.target.value}),children:[(0,a.jsx)("option",{value:"all",children:"All monitors"}),"edit"===e.mode&&!R&&M&&(0,a.jsx)("option",{value:M,children:e.win.target}),N.length>0&&(0,a.jsx)("optgroup",{label:"Application",children:N.map(e=>(0,a.jsx)("option",{value:`app:${e.id}`,children:e.name},e.id))}),C.length>0&&(0,a.jsx)("optgroup",{label:"One monitor",children:C.map(e=>(0,a.jsx)("option",{value:`monitor:${e.id}`,children:e.label},e.id))})]})}),(0,a.jsxs)("fieldset",{className:"mb-3.5 flex flex-col gap-[5px]",children:[(0,a.jsx)("legend",{className:"mb-[5px] text-[13px] font-medium",children:"Repeat"}),(0,a.jsx)("div",{className:"flex flex-wrap gap-x-4 gap-y-1.5",children:[[!1,"Once"],[!0,"Every week"]].map(([e,t])=>(0,a.jsxs)("label",{className:"flex items-center gap-1.5 text-[13px]",children:[(0,a.jsx)("input",{type:"radio",name:"mw-rep",className:"size-4 accent-brand",checked:j.weekly===e,onChange:()=>b({...j,weekly:e})}),t]},t))})]}),(0,a.jsxs)("div",{className:"grid grid-cols-1 gap-3 sm:grid-cols-2",children:[(0,a.jsx)(r.O,{id:"mw-start",label:"Starts",error:v.start,children:(0,a.jsx)("input",{id:"mw-start",type:"datetime-local",className:r.S,value:j.start,onChange:e=>b({...j,start:e.target.value})})}),(0,a.jsx)(r.O,{id:"mw-len",label:"Lasts",error:v.durationMin,children:(0,a.jsx)("select",{id:"mw-len",className:r.S,value:j.durationMin,onChange:e=>b({...j,durationMin:e.target.value}),children:c.map(e=>{let t,n;return(0,a.jsx)("option",{value:String(e),children:[(t=Math.floor(e/60))?`${t} h`:"",(n=e%60)?`${n} min`:""].filter(Boolean).join(" ")},e)})})})]}),(0,a.jsx)(r.O,{id:"mw-note",label:"Note (optional)",help:"Shown on the public status page if a monitor there is affected.",children:(0,a.jsx)("input",{id:"mw-note",className:r.S,value:j.note,maxLength:120,placeholder:"Moving DNS to Cloudflare",autoComplete:"off",onChange:e=>b({...j,note:e.target.value})})})]}),(0,a.jsxs)("div",{className:"flex flex-wrap items-center justify-end gap-2 border-t border-line px-[18px] py-3",children:[(0,a.jsx)(r.K,{onClick:()=>y(!1),disabled:k,children:"Cancel"}),(0,a.jsx)(r.K,{type:"submit",variant:"primary",disabled:k,children:k?"Saving…":"add"===e.mode?"Add window":"Save"})]})]})]})]})}],525252)},388594,e=>{var a=e.i(843476),t=e.i(271645),n=e.i(46200),i=e.i(177106),r=e.i(452842),s=e.i(95187);let o=(0,s.createServerReference)("40877c218b03049bfc5dc9d61d64670f65d1316a88",s.callServer,void 0,s.findSourceMapURL,"removeWindow");var l=e.i(525252);e.s(["MaintenanceMenu",0,function({win:e,options:s}){let[d,c]=(0,t.useState)(!1),[p,m]=(0,t.useState)(!1);return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(i.RowMenu,{label:(0,r.J)(e.target,"window"),items:[{label:"Edit window",onSelect:()=>c(!0)},"---",{label:"Delete",danger:!0,onSelect:()=>m(!0)}]}),d&&(0,a.jsx)(l.MaintenanceDialog,{mode:"edit",win:e,options:s,open:!0,onOpenChange:c}),(0,a.jsx)(n.f,{open:p,onOpenChange:m,title:"Delete this maintenance window?",body:"Checks count toward uptime % and open alerts again outside any other window.",cta:"Delete",danger:!0,onConfirm:async()=>{let a=await o(e.id);return{ok:a.ok,message:(a.ok?a.message:a.error)??""}}})]})}],388594)},380030,637598,e=>{var a=e.i(843476),t=e.i(359133),n=e.i(271645),i=e.i(846696),r=e.i(428325),s=e.i(500443),o=e.i(776639),l=e.i(876195),d=e.i(70528),c=e.i(95187);let p=(0,c.createServerReference)("6090dd7dd3622766cda2d33490c36177fe10f07bbb",c.callServer,void 0,c.findSourceMapURL,"addHeartbeat"),m=(0,c.createServerReference)("605971b2a0651d57c21f9b8f5e84c1a382d5cc9674",c.callServer,void 0,c.findSourceMapURL,"addMonitor"),u=(0,c.createServerReference)("60c54ecbb1b142671c24d844324870f8ed35cceb64",c.callServer,void 0,c.findSourceMapURL,"editHeartbeat"),h=(0,c.createServerReference)("60f4e57c678c0bfe3b3d687ef85f6a1bd590942e36",c.callServer,void 0,c.findSourceMapURL,"editMonitor");var x=e.i(54131);function f(e){return null===e?{ok:!1,text:"Couldn't reach the console"}:e>=200&&e<300?{ok:!0,text:`OK \xb7 ${e}`}:404===e?{ok:!1,text:"Not found · 404"}:429===e?{ok:!1,text:"Too many pings · 429"}:{ok:!1,text:`Failed \xb7 ${e}`}}function g({name:e,url:l,onClose:d}){let c=null!==l,[p,m]=(0,n.useState)(!1),[u,h]=(0,n.useState)(null);async function j(){if(l)try{await navigator.clipboard.writeText(l),i.c.success("Copied.")}catch{i.c.error("Couldn't copy. Select the URL and copy it yourself.")}}async function b(e){let a,t=l?(a=/\/api\/ping\/(hb_[0-9a-f]{32})\/?$/.exec(l))?`/api/ping/${a[1]}${"fail"===e?"/fail":""}`:null:null;if(t&&!p){m(!0),h(null);try{let e=await fetch(t,{method:"GET",cache:"no-store"});h(f(e.status))}catch{h(f(null))}finally{m(!1)}}}function v(){h(null),d()}return(0,s.useHoldRefresh)(c),(0,a.jsx)(o.N,{open:c,onOpenChange:e=>{e||v()},children:(0,a.jsxs)(o.d,{className:"gap-0 p-0 sm:max-w-[640px]",showCloseButton:!1,children:[(0,a.jsxs)("div",{className:"flex items-start gap-3 px-[18px] pb-2 pt-4",children:[(0,a.jsx)("span",{className:"grid size-9 shrink-0 place-items-center rounded-lg bg-sunken text-ink-soft",children:(0,a.jsx)(t.f,{size:19})}),(0,a.jsxs)("div",{className:"min-w-0",children:[(0,a.jsxs)(o.F,{className:"text-base",children:["Ping URL for ",(0,a.jsx)(x.Masked,{kind:"text",real:e})]}),(0,a.jsx)(o.C,{className:"mt-0.5 text-[13px] text-ink-soft",children:"Copy it now. It is shown once; the console keeps only a hash. Lost it? Make a new one from the monitor's menu."})]})]}),(0,a.jsxs)("div",{className:"px-[18px] pt-2",children:[(0,a.jsxs)("div",{className:"mb-3 flex items-center gap-1.5",children:[(0,a.jsx)("code",{className:"min-w-0 flex-1 overflow-x-auto whitespace-nowrap rounded-md border border-line bg-sunken px-2 py-1.5 font-mono text-[12.5px]",children:l&&(0,a.jsx)(x.Masked,{kind:"text",real:l,masked:l.replace(/(\/api\/ping\/).*/,"$1••••••")})}),(0,a.jsx)(r.K,{size:"sm",onClick:j,children:"Copy"})]}),(0,a.jsxs)("div",{className:"mb-3.5 flex flex-wrap items-center gap-2",children:[(0,a.jsx)(r.K,{size:"sm",disabled:p,onClick:()=>b("ok"),children:"Send test ping"}),(0,a.jsx)(r.K,{size:"sm",disabled:p,onClick:()=>b("fail"),children:"Test fail"}),(0,a.jsx)("span",{role:"status","aria-live":"polite",className:`text-[13px] ${u?u.ok?"text-ok":"text-err":"text-ink-soft"}`,children:p?"Sending…":u?.text??""})]}),(0,a.jsxs)("div",{className:"mb-3.5 rounded-lg border border-line bg-surface-2 px-3 py-2.5 text-[13px]",children:[(0,a.jsx)("b",{className:"font-medium",children:"From your job"}),(0,a.jsxs)("ul",{className:"mt-1 list-disc pl-[18px] text-ink-soft",children:[(0,a.jsxs)("li",{children:["When it succeeds: ",(0,a.jsx)("span",{className:"font-mono",children:"curl -fsS -m 10 <url>"})]}),(0,a.jsxs)("li",{children:["When it fails: add ",(0,a.jsx)("span",{className:"font-mono",children:"/fail"})," to the URL"]}),(0,a.jsxs)("li",{children:["When it starts (optional): add ",(0,a.jsx)("span",{className:"font-mono",children:"/start"})]})]})]})]}),(0,a.jsx)("div",{className:"flex justify-end gap-2 border-t border-line px-[18px] py-3",children:(0,a.jsx)(r.K,{variant:"primary",onClick:v,children:"Done"})})]})})}e.s(["f",0,g],637598);let j={name:"",periodS:"86400",graceS:"3600"},b=[["http","HTTP check","The collector opens a URL every minute"],["heartbeat","Heartbeat","Your cron job or backup script pings a secret URL when it runs"]];function v(e){if("edit"===e.mode){let a=e.monitor;return{appId:"",kind:a.kind,url:"http"===a.kind?a.url:"",expectedStatus:String(a.expectedStatus),timeoutS:String(Math.round(a.timeoutMs/1e3)),bodyContains:a.bodyContains??"",jsonPath:a.jsonPath??"",jsonEquals:a.jsonEquals??"",name:a.name??"",periodS:String(a.periodS??j.periodS),graceS:String(a.graceS??j.graceS)}}let a=e.apps[0];return{appId:a?.id??"",kind:"http",url:a?`https://${a.domain}/api/health`:"",expectedStatus:"200",timeoutS:"5",bodyContains:"",jsonPath:"",jsonEquals:"",...j}}e.s(["MonitorDialog",0,function(e){let[c,x]=(0,n.useState)(!1),f="edit"===e.mode?e.open:c,[j,S]=(0,n.useState)(()=>v(e)),[k,w]=(0,n.useState)({}),[y,N]=(0,n.useTransition)(),[C,M]=(0,n.useState)(null);function R(a){a&&(S(v(e)),w({})),"edit"===e.mode?e.onOpenChange(a):x(a)}(0,s.useHoldRefresh)(f);let U="add"===e.mode?e.apps:[],O="add"===e.mode&&0===U.length,T="heartbeat"===j.kind,L="add"===e.mode?"HTTP checks run every minute from the collector. Heartbeats wait for your job to ping the console.":T?"Your job pings the console; nothing is fetched.":"Checked every minute from the collector.";return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsxs)(o.N,{open:f,onOpenChange:e=>{y||R(e)},children:["add"===e.mode&&(O?(0,a.jsxs)("span",{className:"inline-flex items-center gap-2",children:[(0,a.jsx)(r.K,{variant:"primary",disabled:!0,children:"Add monitor"}),(0,a.jsx)("span",{className:"text-[12.5px] text-ink-faint",children:"Watch an app first: Connections, then Sync."})]}):(0,a.jsx)(o.a,{render:(0,a.jsx)(r.K,{variant:"primary",children:"Add monitor"})})),(0,a.jsxs)(o.d,{className:"gap-0 p-0 sm:max-w-[640px]",showCloseButton:!1,children:[(0,a.jsxs)("div",{className:"flex items-start gap-3 px-[18px] pb-2 pt-4",children:[(0,a.jsx)("span",{className:"grid size-9 shrink-0 place-items-center rounded-lg bg-sunken text-ink-soft",children:(0,a.jsx)(t.f,{size:19})}),(0,a.jsxs)("div",{children:[(0,a.jsx)(o.F,{className:"text-base",children:"add"===e.mode?"Add monitor":"Edit monitor"}),(0,a.jsx)(o.C,{className:"mt-0.5 text-[13px] text-ink-soft",children:L})]})]}),(0,a.jsxs)("form",{onSubmit:a=>{let t,n;a.preventDefault(),(n=(t="heartbeat"===j.kind)?(0,d.a)(j):(0,d.X)(j)).ok?(w({}),N(async()=>{let a=t?"add"===e.mode?await p(j.appId,j):await u(e.monitor.id,j):"add"===e.mode?await m(j.appId,j):await h(e.monitor.id,j);if(!a.ok){w(a.fieldErrors??{}),i.c.error(a.error);return}i.c.success("add"===e.mode?"Monitor added":"Monitor saved",{description:a.message}),R(!1);let n=a.data&&"pingUrl"in a.data?a.data.pingUrl:null;n&&M({name:j.name.trim(),url:n})})):w(n.fieldErrors)},children:[(0,a.jsxs)("div",{className:"px-[18px] pt-2",children:["add"===e.mode&&(0,a.jsxs)("fieldset",{className:"mb-3.5",children:[(0,a.jsx)("legend",{className:"mb-[5px] text-[13px] font-medium",children:"Type"}),(0,a.jsx)("div",{className:"overflow-hidden rounded-lg border border-line",children:b.map(([e,t,n])=>(0,a.jsxs)("label",{className:"flex cursor-pointer items-start gap-2.5 border-t border-line px-3 py-[9px] first:border-t-0 hover:bg-hover",children:[(0,a.jsx)("input",{type:"radio",name:"mon-kind",value:e,checked:j.kind===e,className:"mt-[3px] accent-brand",onChange:()=>{S({...j,kind:e}),w({})}}),(0,a.jsxs)("span",{children:[t,(0,a.jsx)("small",{className:"block text-xs text-ink-faint",children:n})]})]},e))})]}),(0,a.jsx)(r.O,{id:"mon-app",label:"Application",children:"add"===e.mode?(0,a.jsx)("select",{id:"mon-app",className:r.S,value:j.appId,onChange:e=>{let a=U.find(a=>a.id===e.target.value);S({...j,appId:e.target.value,url:a?`https://${a.domain}/`:j.url})},children:U.map(e=>(0,a.jsx)("option",{value:e.id,children:e.name},e.id))}):(0,a.jsx)("input",{id:"mon-app",className:r.S,value:e.monitor.appName,disabled:!0})}),T?(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(r.O,{id:"hb-name",label:"Name",error:k.name,children:(0,a.jsx)("input",{id:"hb-name",className:r.S,value:j.name,placeholder:"backup job",maxLength:80,autoComplete:"off",onChange:e=>S({...j,name:e.target.value})})}),(0,a.jsxs)("div",{className:"grid grid-cols-1 gap-3 sm:grid-cols-2",children:[(0,a.jsx)(r.O,{id:"hb-every",label:"Expected every",error:k.periodS,children:(0,a.jsx)("select",{id:"hb-every",className:r.S,value:j.periodS,onChange:e=>S({...j,periodS:e.target.value}),children:l.Q.map(e=>(0,a.jsx)("option",{value:String(e),children:(0,l.v)(e)},e))})}),(0,a.jsx)(r.O,{id:"hb-grace",label:"Grace time",error:k.graceS,children:(0,a.jsx)("select",{id:"hb-grace",className:r.S,value:j.graceS,onChange:e=>S({...j,graceS:e.target.value}),children:l.q.map(e=>(0,a.jsx)("option",{value:String(e),children:(0,l.v)(e)},e))})})]}),(0,a.jsxs)("p",{className:"mb-3 text-[13px] text-ink-soft",children:["Late once the period passes, down after the grace time too.","add"===e.mode?" The ping URL is shown once after you add it.":""]})]}):(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(r.O,{id:"mon-url",label:"URL",help:"Must start with https://. A health route that touches nothing heavy works best.",error:k.url,children:(0,a.jsx)("input",{id:"mon-url",className:r.S,value:j.url,autoComplete:"off",spellCheck:!1,onChange:e=>S({...j,url:e.target.value})})}),(0,a.jsxs)("div",{className:"grid grid-cols-1 gap-3 sm:grid-cols-2",children:[(0,a.jsx)(r.O,{id:"mon-code",label:"Expected status",error:k.expectedStatus,children:(0,a.jsx)("input",{id:"mon-code",className:r.S,inputMode:"numeric",value:j.expectedStatus,onChange:e=>S({...j,expectedStatus:e.target.value})})}),(0,a.jsx)(r.O,{id:"mon-timeout",label:"Timeout",error:k.timeoutS,children:(0,a.jsx)("select",{id:"mon-timeout",className:r.S,value:j.timeoutS,onChange:e=>S({...j,timeoutS:e.target.value}),children:d.L.map(e=>(0,a.jsxs)("option",{value:String(e),children:[e," s"]},e))})})]}),(0,a.jsx)(r.O,{id:"mon-match",label:"Response must contain (optional)",help:"Plain text, case-sensitive. The first 256 KB of the response is searched and never stored.",error:k.bodyContains,children:(0,a.jsx)("input",{id:"mon-match",className:r.S,value:j.bodyContains??"",placeholder:'e.g. "status":"ok"',autoComplete:"off",spellCheck:!1,onChange:e=>S({...j,bodyContains:e.target.value})})}),(0,a.jsxs)("div",{className:"grid grid-cols-1 gap-3 sm:grid-cols-2",children:[(0,a.jsx)(r.O,{id:"mon-jpath",label:"Or JSON field (optional)",error:k.jsonPath,children:(0,a.jsx)("input",{id:"mon-jpath",className:`${r.S} font-mono`,value:j.jsonPath??"",placeholder:"status or checks.db",autoComplete:"off",spellCheck:!1,onChange:e=>S({...j,jsonPath:e.target.value})})}),(0,a.jsx)(r.O,{id:"mon-jeq",label:"Equals",error:k.jsonEquals,children:(0,a.jsx)("input",{id:"mon-jeq",className:`${r.S} font-mono`,value:j.jsonEquals??"",placeholder:"ok",autoComplete:"off",spellCheck:!1,onChange:e=>S({...j,jsonEquals:e.target.value})})})]}),(0,a.jsx)("p",{className:"mb-3 text-[13px] text-ink-soft",children:"Marked down after 3 failed checks in a row. A missing keyword counts as a failed check."})]})]}),(0,a.jsxs)("div",{className:"flex flex-wrap items-center justify-end gap-2 border-t border-line px-[18px] py-3",children:[(0,a.jsx)(r.K,{onClick:()=>R(!1),disabled:y,children:"Cancel"}),(0,a.jsx)(r.K,{type:"submit",variant:"primary",disabled:y,children:y?"Saving…":"add"===e.mode?"Add monitor":"Save"})]})]})]})]}),(0,a.jsx)(g,{name:C?.name??"",url:C?.url??null,onClose:()=>M(null)})]})}],380030)},595349,e=>{var a=e.i(843476),t=e.i(271645),n=e.i(846696),i=e.i(46200),r=e.i(177106),s=e.i(452842),o=e.i(95187);let l=(0,o.createServerReference)("40dd6fafc5198b09980d3a0e88e9b9edebc4d7d543",o.callServer,void 0,o.findSourceMapURL,"checkNow"),d=(0,o.createServerReference)("4070a969a060b0f4fcc38b0bb97d9d5cdab1d1ef1f",o.callServer,void 0,o.findSourceMapURL,"newPingUrl"),c=(0,o.createServerReference)("6057a46e4652b3111f7098d43961a5d6298b9f0e59",o.callServer,void 0,o.findSourceMapURL,"pauseMonitor"),p=(0,o.createServerReference)("607aefdf2a073db670929304dacef089e641788d09",o.callServer,void 0,o.findSourceMapURL,"recordTestPingAction"),m=(0,o.createServerReference)("400ee85a1301cc4928f4668897765e23553fa0a962",o.callServer,void 0,o.findSourceMapURL,"removeMonitor");var u=e.i(380030),h=e.i(637598);e.s(["MonitorMenu",0,function({monitor:e}){let[o,x]=(0,t.useState)(!1),[f,g]=(0,t.useState)(!1),[j,b]=(0,t.useState)(!1),[v,S]=(0,t.useState)(null),[,k]=(0,t.useTransition)(),w=(0,t.useRef)(!1),y="heartbeat"===e.kind,N=y?`${e.appName} \xb7 ${e.path}`:`${e.appName}${e.path}`,C=(e,a)=>{if(w.current)return;w.current=!0;let t=a?n.c.loading(a):void 0;k(async()=>{try{let a=await e();a.ok?a.data?.passed===!1?n.c.warning(a.message??"",{id:t}):n.c.success(a.message??"",{id:t}):n.c.error(a.error,{id:t})}catch{n.c.error("Something went wrong. Try again.",{id:t})}finally{w.current=!1}})},M={label:e.ownerPaused?"Resume":"Pause",onSelect:()=>C(()=>c(e.id,!e.ownerPaused))},R=y?{label:"Show ping URL",onSelect:()=>b(!0)}:{label:"Check now",onSelect:()=>C(()=>l(e.id),`Checking ${N}…`)};return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(r.RowMenu,{label:(0,s.J)(e.appName,e.path),items:[R,...y?[{label:"Record a test ping: OK",onSelect:()=>C(()=>p(e.id,"ok"))},{label:"Record a test ping: Fail",onSelect:()=>C(()=>p(e.id,"fail"))}]:[],{label:"Edit monitor",onSelect:()=>x(!0)},M,"---",{label:"Delete",danger:!0,onSelect:()=>g(!0)}]}),o&&(0,a.jsx)(u.MonitorDialog,{mode:"edit",monitor:e,open:!0,onOpenChange:x}),(0,a.jsx)(i.f,{open:f,onOpenChange:g,title:`Delete ${N}?`,body:y?"Its ping URL stops working. This can't be undone.":"This can't be undone.",cta:"Delete",danger:!0,onConfirm:async()=>{let a=await m(e.id);return{ok:a.ok,message:(a.ok?a.message:a.error)??""}}}),y&&(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(i.f,{open:j,onOpenChange:b,title:`New ping URL for ${e.path}?`,body:"Make a new ping URL? The old one stops working, so update your job.",cta:"Make a new URL",onConfirm:async()=>{let a=await d(e.id);return a.ok&&a.data?.pingUrl&&S(a.data.pingUrl),{ok:a.ok,message:(a.ok?a.message:a.error)??""}}}),(0,a.jsx)(h.f,{name:e.path,url:v,onClose:()=>S(null)})]})]})}],595349)},346072,e=>{var a=e.i(843476),t=e.i(271645),n=e.i(541299),i=e.i(691106),r=e.i(495784);e.s(["PlainTable",0,function({head:e,rows:s}){let[o,l]=(0,t.useState)(1),d=(0,r.$)(s,o);return d.page!==o&&l(d.page),(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)("div",{className:"overflow-x-auto",children:(0,a.jsxs)("table",{className:i.o,children:[(0,a.jsx)(i.U,{head:e}),(0,a.jsx)("tbody",{children:d.rows.map(e=>(0,a.jsx)(t.Fragment,{children:e.row},e.key))})]})}),(0,a.jsx)(n.f,{page:d.page,pages:d.pages,text:(0,r.z)(d),onPage:l})]})}])},789279,e=>{let a=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;e.s(["f",0,e=>"string"==typeof e&&a.test(e)])}])})();
|