watchbell 1.0.0 → 1.1.0
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/LICENSE +1 -1
- package/README.md +123 -84
- package/bin/watchbell.mjs +593 -23
- package/package.json +1 -1
- 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 +38 -37
- 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 +38 -37
- 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 +38 -37
- 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 +38 -37
- 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 +38 -37
- 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 +38 -37
- 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 +38 -37
- 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 +38 -37
- 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 +38 -37
- 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 +38 -37
- 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 +38 -37
- 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 +38 -37
- 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 +38 -37
- 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)/[...slug]/page/server-reference-manifest.json +9 -9
- package/server/.next/server/app/(console)/[...slug]/page.js +38 -37
- package/server/.next/server/app/(console)/[...slug]/page.js.nft.json +1 -1
- package/server/.next/server/app/(console)/[...slug]/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 +38 -37
- 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 +23 -23
- package/server/.next/server/app/(console)/apps/[id]/page.js +38 -37
- 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 +11 -11
- package/server/.next/server/app/(console)/apps/page.js +38 -37
- 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 +38 -37
- 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 +38 -37
- 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 +38 -37
- 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 +38 -37
- 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 +14 -14
- package/server/.next/server/app/(console)/deployments/page.js +38 -37
- 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 +38 -37
- 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 +38 -37
- 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 +38 -37
- 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 +15 -15
- package/server/.next/server/app/(console)/firebase/page.js +38 -37
- 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 +38 -37
- 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)/neon/page/server-reference-manifest.json +20 -20
- package/server/.next/server/app/(console)/neon/page.js +38 -37
- 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 +18 -18
- package/server/.next/server/app/(console)/overview/page.js +38 -37
- 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 +38 -37
- 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 +38 -37
- 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 +38 -37
- 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 +38 -37
- 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 +38 -37
- 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 +29 -29
- package/server/.next/server/app/(console)/supabase/page.js +38 -37
- 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 +38 -37
- 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 +38 -37
- 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 +38 -37
- 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 +22 -22
- package/server/.next/server/app/(console)/uptime/page.js +38 -37
- 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 +38 -37
- 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 +2 -2
- package/server/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +2 -2
- package/server/.next/server/app/_global-error.segments/_full.segment.rsc +2 -2
- package/server/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- 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 +3 -3
- package/server/.next/server/app/_not-found.segments/_full.segment.rsc +3 -3
- package/server/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +2 -2
- package/server/.next/server/app/_not-found.segments/_tree.segment.rsc +1 -1
- 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 +48 -46
- 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 +52 -50
- 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 +48 -46
- package/server/.next/server/app/api/telegram/webhook/route.js.nft.json +1 -1
- package/server/.next/server/app/api/v1/advice/route.js +19 -18
- 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.nft.json +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 +22 -21
- 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 +20 -19
- 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 +9 -8
- 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 +18 -17
- 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 +18 -17
- package/server/.next/server/app/api/v1/status/route.js.nft.json +1 -1
- package/server/.next/server/app/api/watchdog/route.js +19 -18
- 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 +18 -17
- 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 +4 -3
- 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 +9 -8
- 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 +8 -8
- 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/{[root-of-the-server]__09qqv-zsz9qhr._.js → [root-of-the-server]__00hb7hqa7qktx._.js} +1 -1
- package/server/.next/server/chunks/[root-of-the-server]__03276vwi4jgvk._.js +1 -1
- package/server/.next/server/chunks/[root-of-the-server]__049ykc067tlsv._.js +1 -1
- package/server/.next/server/chunks/[root-of-the-server]__06f9e4kpi0mw8._.js +1 -1
- package/server/.next/server/chunks/[root-of-the-server]__0_rfeg3389imx._.js +1 -1
- package/server/.next/server/chunks/{[root-of-the-server]__1n32c8l_j8jt4._.js → [root-of-the-server]__0abdjgj-muln9._.js} +2 -2
- package/server/.next/server/chunks/{[root-of-the-server]__1jrqehmo6kq8x._.js → [root-of-the-server]__0alnp_0qkhzze._.js} +2 -2
- package/server/.next/server/chunks/[root-of-the-server]__0b2hzo6nez0we._.js +1 -1
- package/server/.next/server/chunks/[root-of-the-server]__0c5w5y-db0jkb._.js +3 -0
- package/server/.next/server/chunks/{[root-of-the-server]__0znb_m_wygjdc._.js → [root-of-the-server]__0erdelc9_06nk._.js} +2 -2
- package/server/.next/server/chunks/{[root-of-the-server]__0u66-8g4ql645._.js → [root-of-the-server]__0grtjjr51j6xe._.js} +1 -1
- package/server/.next/server/chunks/{[root-of-the-server]__0-ok-3r9xtz0y._.js → [root-of-the-server]__0hpdrg-m0n6ty._.js} +2 -2
- package/server/.next/server/chunks/{[root-of-the-server]__1z3-s7wc9-uc6._.js → [root-of-the-server]__0m7_0rarf_x86._.js} +2 -2
- package/server/.next/server/chunks/[root-of-the-server]__0m7i0l3nkbdfm._.js +1 -1
- package/server/.next/server/chunks/[root-of-the-server]__0mwiq4mkf8pc5._.js +1 -1
- package/server/.next/server/chunks/[root-of-the-server]__0p3lnkpxf2-xz._.js +1 -1
- package/server/.next/server/chunks/{[root-of-the-server]__08n3x1x850wqc._.js → [root-of-the-server]__0qmkpydmx3ljf._.js} +2 -2
- package/server/.next/server/chunks/{[root-of-the-server]__0_6eq1806attx._.js → [root-of-the-server]__0r-zdzq6ki5gr._.js} +1 -1
- package/server/.next/server/chunks/{[root-of-the-server]__157yb_wl7w4ly._.js → [root-of-the-server]__0rak0ce6prxwp._.js} +1 -1
- package/server/.next/server/chunks/{[root-of-the-server]__081ywec7cjq3d._.js → [root-of-the-server]__0rxrv00e5e6fj._.js} +2 -2
- package/server/.next/server/chunks/{[root-of-the-server]__1_5q9zgl6p5_3._.js → [root-of-the-server]__0sivlmcvkc1uq._.js} +1 -1
- package/server/.next/server/chunks/{[root-of-the-server]__1x9tt_2yhozwe._.js → [root-of-the-server]__0vp-x4ifpr3p9._.js} +2 -2
- package/server/.next/server/chunks/{[root-of-the-server]__0j0medewrv95l._.js → [root-of-the-server]__0z-41cwvkliev._.js} +2 -2
- package/server/.next/server/chunks/{[root-of-the-server]__06iz-tlpv7pqm._.js → [root-of-the-server]__0zd61mh-juh2i._.js} +1 -1
- package/server/.next/server/chunks/{[root-of-the-server]__0mtlynfv-vklo._.js → [root-of-the-server]__1-q6_msattgcu._.js} +1 -1
- package/server/.next/server/chunks/{[root-of-the-server]__018ux7xja83l6._.js → [root-of-the-server]__1-rqermjb77se._.js} +2 -2
- package/server/.next/server/chunks/[root-of-the-server]__110c-t3wz3nzm._.js +1 -1
- package/server/.next/server/chunks/[root-of-the-server]__11k46kam6tbia._.js +1 -1
- package/server/.next/server/chunks/{[root-of-the-server]__0mhtnnebbepzx._.js → [root-of-the-server]__11kfkk5yxz4ge._.js} +2 -2
- package/server/.next/server/chunks/{[root-of-the-server]__0ymon9r-17xe_._.js → [root-of-the-server]__13be7gbo81td4._.js} +1 -1
- package/server/.next/server/chunks/{[root-of-the-server]__0uyagcs61c0t_._.js → [root-of-the-server]__13scfgchwlitx._.js} +2 -2
- package/server/.next/server/chunks/[root-of-the-server]__14zpwd7xntffk._.js +3 -0
- package/server/.next/server/chunks/[root-of-the-server]__15tt645jfx-br._.js +3 -0
- package/server/.next/server/chunks/{[root-of-the-server]__08801yoxfe_os._.js → [root-of-the-server]__15zbj_ehkvv-n._.js} +2 -2
- package/server/.next/server/chunks/[root-of-the-server]__16sp8qurcwsnf._.js +3 -0
- package/server/.next/server/chunks/[root-of-the-server]__19kwj690b37xf._.js +1 -1
- package/server/.next/server/chunks/[root-of-the-server]__1_1-jgxiadvs0._.js +3 -0
- package/server/.next/server/chunks/[root-of-the-server]__1_2akhn6c9eqq._.js +3 -0
- package/server/.next/server/chunks/[root-of-the-server]__1c2u-bg524-_w._.js +3 -0
- package/server/.next/server/chunks/[root-of-the-server]__1c8_e0jqh_8na._.js +3 -0
- package/server/.next/server/chunks/{[root-of-the-server]__0qpf0qusq792k._.js → [root-of-the-server]__1flvcyht5uk7h._.js} +2 -2
- package/server/.next/server/chunks/[root-of-the-server]__1g-be2zoiz2tf._.js +3 -0
- package/server/.next/server/chunks/[root-of-the-server]__1h96ebyza_vlh._.js +3 -0
- package/server/.next/server/chunks/{[root-of-the-server]__02ihdvnmhshoe._.js → [root-of-the-server]__1hw6s0e7p2-6g._.js} +2 -2
- package/server/.next/server/chunks/[root-of-the-server]__1j26i51ankv-z._.js +3 -0
- package/server/.next/server/chunks/[root-of-the-server]__1ldcwvd42rpuz._.js +3 -0
- package/server/.next/server/chunks/{[root-of-the-server]__0q691wec2busx._.js → [root-of-the-server]__1objhlwwrjfjk._.js} +2 -2
- package/server/.next/server/chunks/{[root-of-the-server]__0wt74rsaz-308._.js → [root-of-the-server]__1qzor1nqajuyp._.js} +2 -2
- package/server/.next/server/chunks/{[root-of-the-server]__18mztbxkzaxjs._.js → [root-of-the-server]__1rf3slum5swk2._.js} +2 -2
- package/server/.next/server/chunks/[root-of-the-server]__1sj7uwyq1gpet._.js +3 -0
- package/server/.next/server/chunks/{[root-of-the-server]__0tb-63ts77gqd._.js → [root-of-the-server]__1tefe1f5835t_._.js} +2 -2
- package/server/.next/server/chunks/[root-of-the-server]__1u1b3a58anm3f._.js +3 -0
- package/server/.next/server/chunks/{[root-of-the-server]__132wlw6sbwt1d._.js → [root-of-the-server]__1vi0u2vkv3tk0._.js} +2 -2
- package/server/.next/server/chunks/[root-of-the-server]__1w_73psnce1dd._.js +3 -0
- package/server/.next/server/chunks/[root-of-the-server]__202r0hxhr5bnu._.js +3 -0
- package/server/.next/server/chunks/[root-of-the-server]__2196hxm-s7u6e._.js +3 -0
- package/server/.next/server/chunks/{_076dwl7r_5vcl._.js → _061mqfu1rkl7g._.js} +4 -4
- package/server/.next/server/chunks/{_0594j_bb0l80e._.js → _0c_vrxu6rin-k._.js} +2 -2
- package/server/.next/server/chunks/_0ejcrge5k4quv._.js +9 -9
- package/server/.next/server/chunks/_0n-wbmmvp4omq._.js +3 -0
- package/server/.next/server/chunks/_0qawxzcf--lyq._.js +2 -2
- package/server/.next/server/chunks/_0qmi54vmnlwdv._.js +3 -3
- package/server/.next/server/chunks/{_0m49djgc1t4wg._.js → _0qrn1v02iivm8._.js} +2 -2
- package/server/.next/server/chunks/_0vgojnnkcf1vu._.js +2 -2
- package/server/.next/server/chunks/_0vz0de4gz70-e._.js +1 -1
- package/server/.next/server/chunks/_103ai6ybnpq1k._.js +1 -1
- package/server/.next/server/chunks/_108e86rhye0o1._.js +1 -1
- package/server/.next/server/chunks/_1476vtrt9101m._.js +1 -1
- package/server/.next/server/chunks/{_0r4am1mgz4dg_._.js → _1b63jfweu0o04._.js} +2 -2
- package/server/.next/server/chunks/_1b7pc6ohhqxs3._.js +9 -9
- package/server/.next/server/chunks/_1g_prqb_u33e3._.js +3 -3
- package/server/.next/server/chunks/{_08tppw9ujlpke._.js → _1i57ar6zvd7yb._.js} +4 -4
- package/server/.next/server/chunks/{_11p2ejgai2a78._.js → _1k2cwp1_wt6qm._.js} +2 -2
- package/server/.next/server/chunks/_1kcmwgs544mo-._.js +1 -1
- package/server/.next/server/chunks/{_0n5m3o7at0adm._.js → _1kj2yv4-wk2kp._.js} +4 -4
- package/server/.next/server/chunks/_1lq5m27p-ilrw._.js +1 -1
- package/server/.next/server/chunks/_1mnwzh3z9y4th._.js +3 -0
- package/server/.next/server/chunks/_1nuf-l7izvfl_._.js +1 -1
- package/server/.next/server/chunks/{_1rw6_0nf-3sxs._.js → _1ozrnl_on86u7._.js} +4 -4
- package/server/.next/server/chunks/_1ptcxyn1tzm9r._.js +1 -1
- package/server/.next/server/chunks/_1xeuk6g48m3_1._.js +3 -0
- package/server/.next/server/chunks/{src_0uxqs7150nhx2._.js → src_014zbodp4djeb._.js} +2 -2
- package/server/.next/server/chunks/{src_0n42os1q41rha._.js → src_04pgj--n_d4w5._.js} +2 -2
- package/server/.next/server/chunks/src_063xvouojxyoa._.js +1 -1
- package/server/.next/server/chunks/{src_01wdnb4skk1wz._.js → src_08bzavsfds295._.js} +2 -2
- package/server/.next/server/chunks/src_0c-owt8q0lyj3._.js +3 -0
- package/server/.next/server/chunks/{src_1-r51arho90p7._.js → src_0k78ifotuztod._.js} +2 -2
- package/server/.next/server/chunks/src_0o4-snj7wkaav._.js +1 -1
- package/server/.next/server/chunks/{src_0d-zi077mzm6v._.js → src_0xqorb3-ef3ub._.js} +2 -2
- package/server/.next/server/chunks/src_1a5yibsjcy1ga._.js +1 -1
- package/server/.next/server/chunks/src_1zo6so07lgcdj._.js +1 -1
- package/server/.next/server/chunks/src_db_rows_ts_15b286wn1kn1e._.js +1 -1
- package/server/.next/server/chunks/src_instrumentation-node_ts_1c--sr1k7_8k2._.js +3 -0
- package/server/.next/server/chunks/src_lib_0485hz-c7h7dr._.js +6 -6
- package/server/.next/server/chunks/src_lib_08u7n7-yunfvd._.js +2 -2
- package/server/.next/server/chunks/src_lib_0cbs2jlrw1qbh._.js +3 -0
- package/server/.next/server/chunks/src_lib_0glcfed-uogyd._.js +1 -1
- package/server/.next/server/chunks/src_lib_0qcyomi01xvf1._.js +6 -6
- package/server/.next/server/chunks/src_lib_0vl2-zp4wzw7n._.js +3 -0
- package/server/.next/server/chunks/src_lib_0x4n8swwa3zn7._.js +1 -1
- package/server/.next/server/chunks/src_lib_10vqn6q0h8kls._.js +2 -2
- package/server/.next/server/chunks/src_lib_13g9xjx8ci00z._.js +3 -0
- package/server/.next/server/chunks/src_lib_1ryt-36ohhnm6._.js +6 -6
- package/server/.next/server/chunks/src_lib_1tzoqx44yogsk._.js +2 -2
- package/server/.next/server/chunks/src_lib_1yd94hta5y1hx._.js +3 -0
- package/server/.next/server/chunks/src_lib_brand-env_ts_1wcm1bjuismq_._.js +3 -0
- package/server/.next/server/chunks/src_lib_collector_runners_ts_12z4gtgikss74._.js +6 -6
- package/server/.next/server/chunks/src_lib_data_0ask_rbmgwlf3._.js +1 -1
- package/server/.next/server/chunks/src_lib_data_0e155tkqeoojm._.js +1 -1
- package/server/.next/server/chunks/src_lib_data_backup-db_ts_19rtzbv84xz_h._.js +2 -2
- package/server/.next/server/chunks/src_lib_data_logs-db_ts_1ddw07do12mmk._.js +2 -2
- package/server/.next/server/chunks/src_lib_demo_pool_ts_0fpn8acsdk64i._.js +9 -9
- package/server/.next/server/chunks/src_lib_demo_pool_ts_14rjvkgozh1d4._.js +9 -9
- package/server/.next/server/chunks/src_lib_demo_pool_ts_17xz9bk-d5uic._.js +13 -13
- package/server/.next/server/chunks/src_lib_demo_pool_ts_210g_on8zx_-n._.js +9 -9
- package/server/.next/server/chunks/src_lib_time_ts_1__07rt8x18k-._.js +3 -0
- package/server/.next/server/chunks/src_lib_time_ts_1a27wp71yhgti._.js +3 -0
- package/server/.next/server/chunks/src_lib_time_ts_1qlwgp7nprvbi._.js +3 -0
- package/server/.next/server/chunks/src_private_ai_gateway_ts_04_5ao9914d0p._.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]__1u-jgivpw0_oh._.js → [externals]__0vbbz7arebnub._.js} +1 -1
- package/server/.next/server/chunks/ssr/[root-of-the-server]__02cq5r26w4itc._.js +1 -1
- package/server/.next/server/chunks/ssr/[root-of-the-server]__02qyxz9eh8_eh._.js +1 -1
- package/server/.next/server/chunks/ssr/[root-of-the-server]__04a21b9fkrqs3._.js +3 -0
- package/server/.next/server/chunks/ssr/{[root-of-the-server]__0ijk9z1ot_xi4._.js → [root-of-the-server]__07n1hb3mk44lt._.js} +2 -2
- package/server/.next/server/chunks/ssr/[root-of-the-server]__09-0oydof-7uw._.js +1 -1
- package/server/.next/server/chunks/ssr/[root-of-the-server]__0ct71emqfru3b._.js +1 -1
- package/server/.next/server/chunks/ssr/{[root-of-the-server]__1fdzriy6yyu5d._.js → [root-of-the-server]__0hbk3gqja86zp._.js} +1 -1
- package/server/.next/server/chunks/ssr/[root-of-the-server]__0ksvf4x4zcbpb._.js +1 -1
- package/server/.next/server/chunks/ssr/[root-of-the-server]__0n7cj-oti5wct._.js +2 -2
- package/server/.next/server/chunks/ssr/[root-of-the-server]__0op0kqh43wd-a._.js +3 -0
- package/server/.next/server/chunks/ssr/{[root-of-the-server]__1tkmutq84zkeh._.js → [root-of-the-server]__0ryl_hnreck66._.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]__0wf8q7-o-4n8y._.js +3 -0
- package/server/.next/server/chunks/ssr/[root-of-the-server]__10bkg3o65q6r4._.js +1 -1
- package/server/.next/server/chunks/ssr/{[root-of-the-server]__0ryb947ux5cq7._.js → [root-of-the-server]__11y6b96ofb-c5._.js} +2 -2
- package/server/.next/server/chunks/ssr/[root-of-the-server]__13oi70jo-u731._.js +2 -2
- package/server/.next/server/chunks/ssr/{[root-of-the-server]__0aahjz4fnt4c_._.js → [root-of-the-server]__13rgl1h4g39l-._.js} +2 -2
- package/server/.next/server/chunks/ssr/{[root-of-the-server]__1csz822qejxk-._.js → [root-of-the-server]__168ahi_n-kf90._.js} +2 -2
- package/server/.next/server/chunks/ssr/[root-of-the-server]__17kocbnwlcw6d._.js +1 -1
- package/server/.next/server/chunks/ssr/{[root-of-the-server]__11-ssp_43878t._.js → [root-of-the-server]__18b1wk6-2gq4x._.js} +2 -2
- 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]__0lks-6wz-rmk5._.js → [root-of-the-server]__1drr27jyyhw7p._.js} +2 -2
- package/server/.next/server/chunks/ssr/[root-of-the-server]__1e-xqsuqsd4ub._.js +3 -0
- package/server/.next/server/chunks/ssr/[root-of-the-server]__1gw6334w8y2my._.js +1 -1
- package/server/.next/server/chunks/ssr/[root-of-the-server]__1i69oli51is1u._.js +1 -1
- package/server/.next/server/chunks/ssr/[root-of-the-server]__1lx2k37wgre3d._.js +1 -1
- package/server/.next/server/chunks/ssr/[root-of-the-server]__1n1pq5j5p4_qn._.js +3 -0
- package/server/.next/server/chunks/ssr/[root-of-the-server]__1qltiqn0htqnx._.js +1 -1
- package/server/.next/server/chunks/ssr/[root-of-the-server]__1w1472ukyh58r._.js +1 -1
- package/server/.next/server/chunks/ssr/[root-of-the-server]__1xa91qls2i3j4._.js +3 -0
- package/server/.next/server/chunks/ssr/[root-of-the-server]__204_t7bzma353._.js +3 -0
- package/server/.next/server/chunks/ssr/[root-of-the-server]__20ht054m5-_d6._.js +1 -1
- 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/_06kwu83_fmex9._.js +2 -2
- package/server/.next/server/chunks/ssr/{_14bz_443syxhi._.js → _06sp8cllu_ljh._.js} +2 -2
- package/server/.next/server/chunks/ssr/{_18t7ov64ycb-w._.js → _08u2qnetu4ghm._.js} +2 -2
- package/server/.next/server/chunks/ssr/_0_oc9q0vqkynd._.js +1 -1
- package/server/.next/server/chunks/ssr/_0_tr9fol2yq33._.js +1 -1
- package/server/.next/server/chunks/ssr/_0_ul4mlc_pj5i._.js +2 -2
- 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/_0cukja7zcxh7e._.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/_0fnl7z-saj7nc._.js +1 -1
- package/server/.next/server/chunks/ssr/_0hykblvnwc2ar._.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/_0mgclon6_oh87._.js +2 -2
- package/server/.next/server/chunks/ssr/_0oovfx_t_-u0k._.js +1 -1
- package/server/.next/server/chunks/ssr/_0qnv1uc1_yv28._.js +2 -2
- package/server/.next/server/chunks/ssr/_0sotiqakj-6ci._.js +1 -1
- package/server/.next/server/chunks/ssr/_0tcmsw8hszixv._.js +1 -1
- package/server/.next/server/chunks/ssr/_0uogspz6zrvwk._.js +2 -2
- package/server/.next/server/chunks/ssr/_1-6d1tm3r_qwg._.js +1 -1
- package/server/.next/server/chunks/ssr/_10bven6gb1vj0._.js +1 -1
- package/server/.next/server/chunks/ssr/_10pz3ggun9s5i._.js +2 -2
- package/server/.next/server/chunks/ssr/_11o43qq2eyx_r._.js +3 -0
- package/server/.next/server/chunks/ssr/{_06_f735j-1i20._.js → _12348a3ug1-wo._.js} +2 -2
- package/server/.next/server/chunks/ssr/_12ddramfkd6o1._.js +2 -2
- package/server/.next/server/chunks/ssr/_1476vtrt9101m._.js +1 -1
- package/server/.next/server/chunks/ssr/_15ft896zgt02e._.js +2 -2
- package/server/.next/server/chunks/ssr/_16t9k9e5cjvas._.js +1 -1
- 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/{_08y82qdosn7ga._.js → _1_ojvke28lw3y._.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/_1c28jitsyufnt._.js +1 -1
- package/server/.next/server/chunks/ssr/_1cl55h_h3q-b_._.js +1 -1
- package/server/.next/server/chunks/ssr/_1dx207la592b7._.js +2 -2
- package/server/.next/server/chunks/ssr/_1e24cpw3g7njr._.js +2 -2
- package/server/.next/server/chunks/ssr/{_0o0-2ela2_qqd._.js → _1exwj9ou5yh71._.js} +2 -2
- package/server/.next/server/chunks/ssr/_1flla16o7o9ba._.js +1 -1
- package/server/.next/server/chunks/ssr/_1g2zbl_-4z_hg._.js +1 -1
- package/server/.next/server/chunks/ssr/_1i77n2n-wb98v._.js +2 -2
- package/server/.next/server/chunks/ssr/_1ibagew7zj8y6._.js +3 -0
- 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/_1nir32qtr99-r._.js +1 -1
- package/server/.next/server/chunks/ssr/_1qt1czw3w8dww._.js +3 -0
- package/server/.next/server/chunks/ssr/_1sq12-1_02tzt._.js +2 -2
- package/server/.next/server/chunks/ssr/_1ybhu25y38395._.js +2 -2
- package/server/.next/server/chunks/ssr/_1ykxf4mi60jog._.js +2 -2
- package/server/.next/server/chunks/ssr/_1z6dy1k48mskn._.js +1 -1
- package/server/.next/server/chunks/ssr/_20ln-4gu85-yt._.js +3 -0
- package/server/.next/server/chunks/ssr/_210edglbxmcb3._.js +2 -2
- package/server/.next/server/chunks/ssr/{_0i6y4bkm-0cm3._.js → _216rrmkts392q._.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_1uaicj0j8stji.js +1 -1
- package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_connections_page_actions_03amng1-xhfd1.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_215m-kkv06r4z.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)_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/src_00ze92e3aolj8._.js +1 -1
- 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_0abts6wp5ucc0._.js +1 -1
- package/server/.next/server/chunks/ssr/src_0f_ip1ke7i9r7._.js +3 -0
- package/server/.next/server/chunks/ssr/src_0iefnjvaszvw_._.js +1 -1
- package/server/.next/server/chunks/ssr/src_0ph020gy78gi9._.js +1 -1
- package/server/.next/server/chunks/ssr/src_0qu78tivj78-x._.js +3 -0
- package/server/.next/server/chunks/ssr/src_0t6-d5hmzrbp1._.js +1 -1
- package/server/.next/server/chunks/ssr/src_0xh3xicmff6ws._.js +1 -1
- package/server/.next/server/chunks/ssr/src_10zavgy86u3us._.js +1 -1
- package/server/.next/server/chunks/ssr/{src_1eermasnm2cgy._.js → src_11_hakxhnybdd._.js} +2 -2
- 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_06n-9cjmbb-vu._.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_connect_connect-view_tsx_04abz05n7hdsd._.js +15 -15
- 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_models_0hla-5y3iresx._.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_0jamu-nm6x-dh._.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_1kor9sy67qpiw._.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_1v003vrkwk19w._.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)_1ppp9j5e2rtqf._.js → src_app_(console)_1olpa0osy74mq._.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)_alerts_1t61z2wktki-v._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_apps_[id]_088bs149wsgca._.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)_backups_page_tsx_0o082iagq_14b._.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_1qigx20w8bk53._.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)_logs_log-viewer_tsx_0v3e4cflfk14w._.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)_palette-action_ts_0zyw9a9imev6p._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_repos_repo-list_tsx_1n1gcm4qfrfdt._.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_148phfjye0539._.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_s_[slug]_page_tsx_0jjqe6py82mpb._.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_124xn9wb2fasu._.js → src_app_signin_1y1xla7bcc5a1._.js} +2 -2
- package/server/.next/server/chunks/ssr/src_components_11x625pqq9ovs._.js +3 -0
- 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 +3 -3
- package/server/.next/server/chunks/ssr/src_lib_05ai1oj91p9w2._.js +2 -2
- package/server/.next/server/chunks/ssr/{src_lib_1l8ej-zoyyegd._.js → src_lib_0vl2-zp4wzw7n._.js} +2 -2
- package/server/.next/server/chunks/ssr/src_lib_0x4n8swwa3zn7._.js +1 -1
- package/server/.next/server/chunks/ssr/src_lib_1nkahiclbn55q._.js +1 -1
- package/server/.next/server/chunks/ssr/src_lib_collector_run_ts_0-q8is8s0y9cq._.js +1 -1
- package/server/.next/server/chunks/ssr/src_lib_data_logs-db_ts_1ddw07do12mmk._.js +2 -2
- package/server/.next/server/chunks/ssr/{src_lib_demo_20hj85e_64pp1._.js → src_lib_demo_20zjotuzm1lm8._.js} +2 -2
- package/server/.next/server/chunks/ssr/src_lib_demo_pool_ts_0fpn8acsdk64i._.js +9 -9
- package/server/.next/server/chunks/ssr/src_lib_time_ts_1qlwgp7nprvbi._.js +3 -0
- package/server/.next/server/chunks/ssr/src_lib_time_ts_1ualgyi3irm1z._.js +3 -0
- 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_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_ai_usage-analytics_ts_1bxba3xarzol0._.js +1 -1
- package/server/.next/server/chunks/ssr/src_private_ai_views-db_ts_1jbnr41mskha2._.js +1 -1
- package/server/.next/server/chunks/ssr/src_private_assist_advisor-notes_ts_0qkpm5c3la7fo._.js +4 -4
- package/server/.next/server/chunks/ssr/src_private_explorer_explorer_tsx_04m_tdottspjs._.js +1 -1
- 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 +133 -133
- package/server/.next/static/chunks/0-7by9f00qb4d.js +1 -0
- package/server/.next/static/chunks/{2k9ytb8jmg14_.js → 010bc8dzhxd_0.js} +1 -1
- package/server/.next/static/chunks/01oee9tptcjdb.js +1 -0
- package/server/.next/static/chunks/02uvde7i-78p5.js +1 -0
- package/server/.next/static/chunks/{2rdmebof0d_c4.js → 03fjh6klyhqv4.js} +1 -1
- package/server/.next/static/chunks/{1o_q7_4ulcq9x.js → 06lmwdlx-fkr8.js} +1 -1
- package/server/.next/static/chunks/{1ieazx9t3vl5p.js → 08w0t5q93_9mu.js} +1 -1
- package/server/.next/static/chunks/{1mlvn70-zqjvi.js → 0anet8wttkax1.js} +1 -1
- package/server/.next/static/chunks/0ao7kjrp6bp3l.js +1 -0
- package/server/.next/static/chunks/0b0rwd99q942r.js +1 -0
- package/server/.next/static/chunks/{1ts_fd_r1kcrv.js → 0dhgqjjm0zj6_.js} +1 -1
- package/server/.next/static/chunks/{2jlv5ekbb0wu2.js → 0dnjs3de2e_d1.js} +1 -1
- package/server/.next/static/chunks/{29p15vj15jcsb.js → 0ilml-p3iktnr.js} +1 -1
- package/server/.next/static/chunks/{43_va15lk2zc1.js → 0j_5norjm-kef.js} +1 -1
- package/server/.next/static/chunks/0nx0h-723nd_u.js +7 -0
- package/server/.next/static/chunks/0unx038_2rfsp.js +1 -0
- package/server/.next/static/chunks/0y_0w1ek5fakj.js +1 -0
- package/server/.next/static/chunks/1483hxa9hair1.js +1 -0
- package/server/.next/static/chunks/{1gmof0n5nswkk.js → 18gwem_5y9wnt.js} +1 -1
- package/server/.next/static/chunks/1aoqsoecu-fy_.js +1 -0
- package/server/.next/static/chunks/1endj3d7bewa1.js +1 -0
- package/server/.next/static/chunks/1j18pg23fzwv_.js +1 -0
- package/server/.next/static/chunks/{0wlc502815llk.js → 1k01h6men2hvb.js} +1 -1
- package/server/.next/static/chunks/{158-i6phe17yl.js → 1mdaf7mwcfafr.js} +1 -1
- package/server/.next/static/chunks/{0li9-xjc40g51.js → 1o4mdgq5lu1g_.js} +1 -1
- package/server/.next/static/chunks/{3dokgd9nungcr.js → 1t2iu6ufyxecz.js} +1 -1
- package/server/.next/static/chunks/{0wtboeftyamyk.js → 1vi8tyc1ou2o3.js} +1 -1
- package/server/.next/static/chunks/1xy80z39ducub.js +1 -0
- package/server/.next/static/chunks/1yb4_s_96v9tf.js +1 -0
- package/server/.next/static/chunks/{2v14aqfx8wv9o.js → 2-8ra6gmaw_pb.js} +1 -1
- package/server/.next/static/chunks/{1-1hfgat2l_o9.js → 2cmw27buw9oce.js} +1 -1
- package/server/.next/static/chunks/{3f5sxz8awpdog.js → 2lv5qmgi8nm4h.js} +1 -1
- package/server/.next/static/chunks/2mj8z5a9dz7bh.js +1 -0
- package/server/.next/static/chunks/{1gb8jvw-g7fr7.js → 2n-h6_0i3mpxo.js} +1 -1
- package/server/.next/static/chunks/{2cjfogw85k3h-.js → 2pbnh717ldzfl.js} +1 -1
- package/server/.next/static/chunks/2qltilq3pn4ia.js +1 -0
- package/server/.next/static/chunks/{30fczssqw6xys.js → 2ufr23d_eyosj.js} +1 -1
- package/server/.next/static/chunks/2wqgz94tksucm.js +1 -0
- package/server/.next/static/chunks/{3tqh7fwtd_k_l.js → 2z6a725ntvlr6.js} +2 -2
- package/server/.next/static/chunks/{2fo6iuxb0ec7f.js → 2zdjxqgm-44u1.js} +1 -1
- package/server/.next/static/chunks/{026asl66kuq3f.js → 340ecjh1jzqjd.js} +15 -15
- package/server/.next/static/chunks/{2z1xy8l4s3usi.js → 3alfhqlczff2s.js} +1 -1
- package/server/.next/static/chunks/{36ureqoyz5e06.js → 3col9buetdxvh.js} +2 -2
- package/server/.next/static/chunks/{1zi37go-xtasg.js → 3o45i7xbzm0w-.js} +1 -1
- package/server/.next/static/chunks/{0cannaigw8lhi.js → 3o7se0ypyiqmz.js} +1 -1
- package/server/.next/static/chunks/{1c4fx4kipvnqz.js → 3oe302ug_esoe.js} +1 -1
- package/server/.next/static/chunks/3s7hj7g12rmuh.js +1 -0
- package/server/.next/static/chunks/{2fj4o7-stsvht.js → 3uujo4bht1tqo.js} +1 -1
- package/server/.next/static/chunks/3w445wy3mpp2f.js +1 -0
- package/server/.next/static/chunks/{2kmerzslng988.js → 3ypdfkwyovory.js} +1 -1
- package/server/.next/server/chunks/[root-of-the-server]__0grnl7ncqcjft._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__0m8w2-7618scn._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__0p_b0m2cstlrl._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__0zxjft8y2r575._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__114vjjaqb2wyv._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__12uyws-qe6wxs._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__139pgc0wpc7kg._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__1bwgi7nn5-hc3._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__1k8s02gwythps._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__1lf_lo1wqcbcg._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__1niiijc82bgoj._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__1on_3p53yn6fs._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__1q90luznbe9-l._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__1r15vmrh2r06l._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__1woerg3tb4ls3._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__1zaomh_4901_f._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__20lwsd6a4wnpe._.js +0 -3
- package/server/.next/server/chunks/_03bua_9n4apok._.js +0 -3
- package/server/.next/server/chunks/_08y82qdosn7ga._.js +0 -3
- package/server/.next/server/chunks/_1bcsmpznxhk9h._.js +0 -3
- package/server/.next/server/chunks/_1he3nioua8ee5._.js +0 -3
- package/server/.next/server/chunks/_1lpcbqj4uzrsh._.js +0 -3
- package/server/.next/server/chunks/src_0l-no1yc1_izn._.js +0 -3
- package/server/.next/server/chunks/src_156ewlek-4a4z._.js +0 -3
- package/server/.next/server/chunks/src_lib_0-ylqsh7whlj2._.js +0 -3
- package/server/.next/server/chunks/src_lib_0f0p6-l5vvduu._.js +0 -3
- package/server/.next/server/chunks/src_lib_15a3m-j_urkkp._.js +0 -3
- package/server/.next/server/chunks/ssr/[root-of-the-server]__06s-dfcfuperv._.js +0 -3
- package/server/.next/server/chunks/ssr/[root-of-the-server]__07or1m2vwon1m._.js +0 -3
- package/server/.next/server/chunks/ssr/[root-of-the-server]__0d9lwldljqtvx._.js +0 -3
- package/server/.next/server/chunks/ssr/[root-of-the-server]__0uklr553mp86_._.js +0 -3
- package/server/.next/server/chunks/ssr/[root-of-the-server]__1cykncw1_xcno._.js +0 -3
- package/server/.next/server/chunks/ssr/[root-of-the-server]__1ih2a_fbqu7ko._.js +0 -3
- package/server/.next/server/chunks/ssr/[root-of-the-server]__1j7_a902k_8es._.js +0 -3
- package/server/.next/server/chunks/ssr/[root-of-the-server]__1ofzjllv-b0o0._.js +0 -3
- package/server/.next/server/chunks/ssr/_040ixxsgfs0vi._.js +0 -3
- package/server/.next/server/chunks/ssr/_0ux6eo_w1x155._.js +0 -3
- package/server/.next/server/chunks/ssr/_12o9qqjoik4q4._.js +0 -3
- package/server/.next/server/chunks/ssr/_1k2q3yt1h6cfs._.js +0 -3
- package/server/.next/server/chunks/ssr/_1zhtvg8t3jtxe._.js +0 -3
- package/server/.next/server/chunks/ssr/_200p6me5_kp2j._.js +0 -3
- package/server/.next/server/chunks/ssr/src_00s82lfm2ga7-._.js +0 -3
- package/server/.next/server/chunks/ssr/src_13hsrg6rdvh-d._.js +0 -3
- package/server/.next/server/chunks/ssr/src_1xgsz_do2xpr2._.js +0 -3
- package/server/.next/server/chunks/ssr/src_components_shell_shell_tsx_1cpq-hbch_dvj._.js +0 -3
- package/server/.next/server/chunks/ssr/src_lib_0y40wht-o-oc2._.js +0 -3
- package/server/.next/static/chunks/03qto0oyf2r1n.js +0 -1
- package/server/.next/static/chunks/0c7pskzfstcdh.js +0 -1
- package/server/.next/static/chunks/0n_l4a3za5-q8.js +0 -1
- package/server/.next/static/chunks/0t96fqp1vsmrp.js +0 -1
- package/server/.next/static/chunks/1sm8wxvlpowwg.js +0 -1
- package/server/.next/static/chunks/1teh52nh5dujq.js +0 -1
- package/server/.next/static/chunks/1v4hl1z0y1npd.js +0 -1
- package/server/.next/static/chunks/1vh2psoqw3ddc.js +0 -1
- package/server/.next/static/chunks/1xau8pf40_upi.js +0 -7
- package/server/.next/static/chunks/1z2rcngn3-7i5.js +0 -1
- package/server/.next/static/chunks/210qrsqvmgaet.js +0 -1
- package/server/.next/static/chunks/2llric-1orr3y.js +0 -1
- package/server/.next/static/chunks/2wb9a1xth0yhf.js +0 -1
- package/server/.next/static/chunks/34gs6c2dsgtqy.js +0 -1
- package/server/.next/static/chunks/3ag6t3ta58rih.js +0 -1
- package/server/.next/static/chunks/3gkta99h3_5i2.js +0 -1
- /package/server/.next/static/{xCga6YpZus71dK3aq8Q4H → n3Kt7dFNHr9KDw7DgGz0m}/_buildManifest.js +0 -0
- /package/server/.next/static/{xCga6YpZus71dK3aq8Q4H → n3Kt7dFNHr9KDw7DgGz0m}/_clientMiddlewareManifest.js +0 -0
- /package/server/.next/static/{xCga6YpZus71dK3aq8Q4H → n3Kt7dFNHr9KDw7DgGz0m}/_ssgManifest.js +0 -0
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
(()=>{"use strict";module.exports=[28358,a=>{var b=a.i(187924),c=a.i(196790),d=a.i(572131),e=a.i(823292),f=a.i(611619),g=a.i(619089),h=a.i(507504),i=a.i(814574),j=a.i(405050);let k=(0,j.createServerReference)("40c554a1865ad7f9ff0ec4b9aac5fd7549d5f954da",j.callServer,void 0,j.findSourceMapURL,"deleteMetricsKey"),l=(0,j.createServerReference)("7009e73c344d9c4102e0cabf32a1c14016a54d74ff",j.callServer,void 0,j.findSourceMapURL,"setMetricsKey");function m({id:a,projectRef:f,alias:j,hasKey:k,open:n,onOpenChange:o,trigger:p}){let[q,r]=(0,d.useState)(!1),s=n??q,[t,u]=(0,d.useState)(""),[v,w]=(0,d.useState)(),[x,y]=(0,d.useTransition)();function z(a){x||(u(""),w(void 0),void 0===n&&r(a),o?.(a))}return(0,h.useHoldRefresh)(s),(0,b.jsxs)(i.N,{open:s,onOpenChange:z,children:[p&&(0,b.jsx)(i.a,{render:p}),(0,b.jsxs)(i.d,{className:"gap-0 p-0 sm:max-w-[560px]",showCloseButton:!1,children:[(0,b.jsxs)("div",{className:"flex items-start gap-3 px-[18px] pb-2 pt-4",children:[(0,b.jsx)("span",{className:"grid size-9 shrink-0 place-items-center rounded-lg bg-sunken text-ink-soft",children:(0,b.jsx)(c.f,{size:19})}),(0,b.jsxs)("div",{children:[(0,b.jsxs)(i.F,{className:"text-base",children:[k?"Replace":"Add"," metrics key for ",j]}),(0,b.jsx)(i.C,{className:"mt-0.5 text-[13px] text-ink-soft",children:"CPU, RAM, disk and connections come from Supabase's Metrics API (beta), which needs a Secret API key of this project."})]})]}),(0,b.jsxs)("form",{onSubmit:b=>{b.preventDefault(),y(async()=>{try{let b=await l(a,f,t);if(!b.ok){w(b.fieldErrors?.key??b.error),e.c.error(b.error);return}let c=b.message?.includes("test call failed");e.c.success(`Metrics key saved for ${j}`,{description:c?"The test call failed; the Compute panel shows why.":"CPU shows after the next scrape, in about 5 minutes."}),u(""),z(!1)}catch{e.c.error("Something went wrong. Try again.")}})},children:[(0,b.jsxs)("div",{className:"px-[18px] pt-2 text-[13px] text-ink-soft",children:[(0,b.jsxs)("ol",{className:"mb-3 list-decimal space-y-1 pl-5",children:[(0,b.jsxs)("li",{children:["In Supabase, open ",(0,b.jsx)("b",{className:"font-medium text-ink",children:"Project Settings → API Keys"})," for this project and create a new Secret API key named ",(0,b.jsx)("span",{className:"font-mono text-ink",children:"watchbell-metrics"}),"."]}),(0,b.jsx)("li",{children:"Paste it below. A secret key has full database power, so the console stores it encrypted, never shows it again and only sends it to this project's metrics endpoint."}),(0,b.jsx)("li",{children:"You can revoke it in Supabase at any time; the panel then shows the error and you can add a new one."})]}),(0,b.jsx)(g.O,{id:`mk-${a}`,label:"Secret API key",error:v,help:"Starts with sb_secret_. Saving makes one test call to the metrics endpoint.",children:(0,b.jsx)("input",{id:`mk-${a}`,type:"password",className:`${g.S} font-mono`,autoComplete:"off",spellCheck:!1,placeholder:"sb_secret_…",value:t,onChange:a=>{u(a.target.value),w(void 0)}})})]}),(0,b.jsxs)("div",{className:"flex justify-end gap-2 border-t border-line px-[18px] py-3",children:[(0,b.jsx)(g.K,{type:"button",onClick:()=>z(!1),disabled:x,children:"Cancel"}),(0,b.jsx)(g.K,{type:"submit",variant:"primary",disabled:x||!t.trim(),children:x?"Testing…":k?"Replace key":"Save key"})]})]})]})]})}a.s(["MetricsKeyButtons",0,function({id:a,projectRef:c,alias:d,hasKey:e}){return(0,b.jsxs)("span",{className:"inline-flex gap-1.5",children:[(0,b.jsx)(m,{id:a,projectRef:c,alias:d,hasKey:e,trigger:(0,b.jsx)(g.K,{size:"sm",children:e?"Replace key":"Add metrics key"})}),e&&(0,b.jsx)(f.f,{trigger:(0,b.jsx)(g.K,{size:"sm",variant:"ghost",children:"Remove"}),danger:!0,title:`Remove the metrics key of ${d}?`,cta:"Remove key",body:"The console deletes the stored key and this project's compute history. Revoke the key in Supabase (Project Settings → API Keys) too.",onConfirm:async()=>{let b=await k(a);return b.ok?{ok:!0,message:`Metrics key removed for ${d}.`}:{ok:!1,message:b.error}}})]})},"MetricsKeyDialog",0,m],28358)},103113,a=>{var b=a.i(187924),c=a.i(908161),d=a.i(572131),e=a.i(823292),f=a.i(771378),g=a.i(611619),h=a.i(619089),i=a.i(507504),j=a.i(54901),k=a.i(188406),l=a.i(814574),m=a.i(405050);let n=(0,m.createServerReference)("602d7bed70b158d7bb0cdda707a17f56c84ba98d46",m.callServer,void 0,m.findSourceMapURL,"pauseAction"),o=(0,m.createServerReference)("60d3b5193df175278ce72bf3d162ac9e881403bd2d",m.callServer,void 0,m.findSourceMapURL,"restoreAction"),p=(0,m.createServerReference)("60b738b50670b935056450df0ad4794245dd65daa5",m.callServer,void 0,m.findSourceMapURL,"setAutoRestore"),q=(0,m.createServerReference)("607c42abf0b3ed8e74424e16a8e2bb5753dddf5d00",m.callServer,void 0,m.findSourceMapURL,"setKeepActive");var r=a.i(28358);function s({alias:a,account:g,choices:j}){let[k,m]=(0,d.useState)(!1),[o,p]=(0,d.useState)(j.at(-1)?.id??""),[q,r]=(0,d.useTransition)(),t=(0,f.useMask)();(0,i.useHoldRefresh)(k);let u=j.find(a=>a.id===o);return(0,b.jsxs)(l.N,{open:k,onOpenChange:a=>{!q&&(m(a),a&&p(j.at(-1)?.id??""))},children:[(0,b.jsx)(l.a,{render:(0,b.jsx)(h.K,{size:"sm",children:"Restore"})}),(0,b.jsxs)(l.d,{className:"gap-0 p-0 sm:max-w-[560px]",showCloseButton:!1,children:[(0,b.jsxs)("div",{className:"flex items-start gap-3 px-[18px] pb-2 pt-4",children:[(0,b.jsx)("span",{className:"grid size-9 shrink-0 place-items-center rounded-lg bg-sunken text-ink-soft",children:(0,b.jsx)(c.f,{size:19})}),(0,b.jsxs)("div",{children:[(0,b.jsxs)(l.F,{className:"text-base",children:["Restore ",a,"?"]}),(0,b.jsxs)(l.C,{className:"mt-0.5 text-[13px] text-ink-soft",children:["Account ",(0,b.jsx)(f.Masked,{kind:"account",real:g})," already uses both free slots. Pick a project to pause first."]})]})]}),(0,b.jsxs)("div",{className:"px-[18px] pb-2",children:[j.length?(0,b.jsx)("div",{className:"max-h-[260px] overflow-y-auto",children:j.map(a=>(0,b.jsxs)("label",{className:"flex cursor-pointer items-center gap-3 border-b border-line px-1 py-[9px] last:border-b-0 hover:bg-hover",children:[(0,b.jsx)("input",{type:"radio",name:"pause-first",className:"size-4 accent-brand",checked:o===a.id,onChange:()=>p(a.id)}),(0,b.jsxs)("span",{className:"min-w-0 flex-1",children:[(0,b.jsxs)("span",{className:"block truncate",children:["Pause ",a.alias]}),(0,b.jsxs)("span",{className:"block truncate text-[12px] text-ink-faint",children:["Last API traffic ",a.traffic,a.usedBy.length?` \xb7 used by ${a.usedBy.map(a=>t("app",a)).join(", ")}`:""]})]})]},a.id))}):(0,b.jsx)("p",{className:"my-2 text-[13px] text-ink-soft",children:"The console doesn't watch this account's active projects, so pause one in Supabase first."}),(0,b.jsxs)("p",{className:"mb-2 mt-3 text-[13px] text-ink-soft",children:["Apps that use the paused project get errors until you restore it. You can also move ",a," to another account with a free slot instead."]}),(0,b.jsx)("p",{className:"mb-3 text-[13px] text-ink-soft",children:"Restore stays blocked until the project you pause shows Paused (about 2 minutes). Then press Restore again."})]}),(0,b.jsxs)("div",{className:"flex justify-end gap-2 border-t border-line px-[18px] py-3",children:[(0,b.jsx)(h.K,{onClick:()=>m(!1),disabled:q,children:"Cancel"}),(0,b.jsx)(h.K,{variant:"danger",disabled:q||!u,onClick:function(){u&&r(async()=>{try{let b=await n(u.id,u.ref);if(!b.ok)return void e.c.error(b.error);e.c.success("Pause started",{description:`Pausing ${u.alias}. Restore ${a} once ${u.alias} shows Paused, about 2 minutes.`}),m(!1)}catch{e.c.error("Something went wrong. Try again.")}})},children:q?"Working…":"Pause selected"})]})]})]})}let t={keep:(a,b)=>b?`${a}: warning from day 5 without API traffic, and one keep-alive query a day.`:`${a} may pause after 7 idle days.`,autoRestore:(a,b)=>b?`${a} is restored automatically when its account has a free slot.`:`${a} is no longer restored automatically.`};a.s(["ActiveRowMenu",0,function({id:a,projectRef:c,alias:e,label:f,metrics:g,dashboard:h=!0}){let{open:i,dialog:l}=(0,j.W)(),[m,o]=(0,d.useState)(!1);return(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(k.RowMenu,{label:f,items:[...h?[{label:"Open in Supabase",href:`https://supabase.com/dashboard/project/${encodeURIComponent(c)}`}]:[],{label:"Check services",later:6},...g?[{label:g.hasKey?"Replace metrics key":"Add metrics key",onSelect:()=>o(!0)}]:[],"---",{label:"Pause project",danger:!0,onSelect:()=>i({title:`Pause ${e}?`,body:"Supabase stops the project in about 2 minutes. Apps that use this database get errors until it's restored (possible for 1 year). Pausing frees one of this account's 2 free slots. Nothing is deleted.",cta:"Pause project",danger:!0,run:async()=>{let b;return(b=`Pausing ${e}. It takes about 2 minutes.`,a=>a.ok?{ok:!0,message:b}:a)(await n(a,c))}})}]}),l,g&&(0,b.jsx)(r.MetricsKeyDialog,{id:a,projectRef:c,alias:e,hasKey:g.hasKey,open:m,onOpenChange:o})]})},"KeepActiveBoxes",0,function({id:a,alias:c,keep:f,autoRestore:g,owner:h,sent:i}){let[j,k]=(0,d.useState)({keep:f,autoRestore:g}),[l,m]=(0,d.useTransition)(),n=(d,f)=>(0,b.jsxs)("label",{className:"flex items-center gap-1.5 text-[13px]",title:h?void 0:"Owner only",children:[(0,b.jsx)("input",{type:"checkbox",className:"size-4 accent-brand",checked:j[d],disabled:!h||l,onChange:b=>{var f;return f=b.target.checked,void(k({...j,[d]:f}),m(async()=>{try{let b=await ("keep"===d?q:p)(a,f);if(!b.ok){k(j),e.c.error(b.error);return}e.c.success("Keep active saved",{description:t[d](c,f)})}catch{k(j),e.c.error("Something went wrong. Try again.")}}))}}),f]});return(0,b.jsxs)("div",{children:[(0,b.jsxs)("div",{className:"flex flex-col items-start gap-0.5",children:[n("keep","Keep active"),n("autoRestore","Auto-restore")]}),i&&(0,b.jsxs)("div",{className:"text-[12px] text-ink-faint",children:["Keep-alive sent ",i]})]})},"RestoreButton",0,function({id:a,projectRef:c,alias:d,account:e,slotsLeft:f,choices:i}){return f>0?(0,b.jsx)(g.f,{trigger:(0,b.jsx)(h.K,{size:"sm",children:"Restore"}),title:`Restore ${d}?`,body:"Supabase brings the project back in about 2 minutes. Apps that use it start working again after that.",cta:"Restore",onConfirm:async()=>{let b=await o(a,c);return b.ok?{ok:!0,message:`Restoring ${d}. It takes about 2 minutes.`}:{ok:!1,message:b.error}}}):(0,b.jsx)(s,{alias:d,account:e,choices:i})}],103113)}]})();
|
|
1
|
+
(()=>{"use strict";module.exports=[28358,a=>{var b=a.i(187924),c=a.i(196790),d=a.i(572131),e=a.i(823292),f=a.i(611619),g=a.i(619089),h=a.i(507504),i=a.i(814574),j=a.i(405050);let k=(0,j.createServerReference)("406404f43ed1729ad1a4bf6a608b94198c52fafbee",j.callServer,void 0,j.findSourceMapURL,"deleteMetricsKey"),l=(0,j.createServerReference)("70b806d6a26f92ebdedf1d515252b40849db1045dc",j.callServer,void 0,j.findSourceMapURL,"setMetricsKey");function m({id:a,projectRef:f,alias:j,hasKey:k,open:n,onOpenChange:o,trigger:p}){let[q,r]=(0,d.useState)(!1),s=n??q,[t,u]=(0,d.useState)(""),[v,w]=(0,d.useState)(),[x,y]=(0,d.useTransition)();function z(a){x||(u(""),w(void 0),void 0===n&&r(a),o?.(a))}return(0,h.useHoldRefresh)(s),(0,b.jsxs)(i.N,{open:s,onOpenChange:z,children:[p&&(0,b.jsx)(i.a,{render:p}),(0,b.jsxs)(i.d,{className:"gap-0 p-0 sm:max-w-[560px]",showCloseButton:!1,children:[(0,b.jsxs)("div",{className:"flex items-start gap-3 px-[18px] pb-2 pt-4",children:[(0,b.jsx)("span",{className:"grid size-9 shrink-0 place-items-center rounded-lg bg-sunken text-ink-soft",children:(0,b.jsx)(c.f,{size:19})}),(0,b.jsxs)("div",{children:[(0,b.jsxs)(i.F,{className:"text-base",children:[k?"Replace":"Add"," metrics key for ",j]}),(0,b.jsx)(i.C,{className:"mt-0.5 text-[13px] text-ink-soft",children:"CPU, RAM, disk and connections come from Supabase's Metrics API (beta), which needs a Secret API key of this project."})]})]}),(0,b.jsxs)("form",{onSubmit:b=>{b.preventDefault(),y(async()=>{try{let b=await l(a,f,t);if(!b.ok){w(b.fieldErrors?.key??b.error),e.c.error(b.error);return}let c=b.message?.includes("test call failed");e.c.success(`Metrics key saved for ${j}`,{description:c?"The test call failed; the Compute panel shows why.":"CPU shows after the next scrape, in about 5 minutes."}),u(""),z(!1)}catch{e.c.error("Something went wrong. Try again.")}})},children:[(0,b.jsxs)("div",{className:"px-[18px] pt-2 text-[13px] text-ink-soft",children:[(0,b.jsxs)("ol",{className:"mb-3 list-decimal space-y-1 pl-5",children:[(0,b.jsxs)("li",{children:["In Supabase, open ",(0,b.jsx)("b",{className:"font-medium text-ink",children:"Project Settings → API Keys"})," for this project and create a new Secret API key named ",(0,b.jsx)("span",{className:"font-mono text-ink",children:"watchbell-metrics"}),"."]}),(0,b.jsx)("li",{children:"Paste it below. A secret key has full database power, so the console stores it encrypted, never shows it again and only sends it to this project's metrics endpoint."}),(0,b.jsx)("li",{children:"You can revoke it in Supabase at any time; the panel then shows the error and you can add a new one."})]}),(0,b.jsx)(g.O,{id:`mk-${a}`,label:"Secret API key",error:v,help:"Starts with sb_secret_. Saving makes one test call to the metrics endpoint.",children:(0,b.jsx)("input",{id:`mk-${a}`,type:"password",className:`${g.S} font-mono`,autoComplete:"off",spellCheck:!1,placeholder:"sb_secret_…",value:t,onChange:a=>{u(a.target.value),w(void 0)}})})]}),(0,b.jsxs)("div",{className:"flex justify-end gap-2 border-t border-line px-[18px] py-3",children:[(0,b.jsx)(g.K,{type:"button",onClick:()=>z(!1),disabled:x,children:"Cancel"}),(0,b.jsx)(g.K,{type:"submit",variant:"primary",disabled:x||!t.trim(),children:x?"Testing…":k?"Replace key":"Save key"})]})]})]})]})}a.s(["MetricsKeyButtons",0,function({id:a,projectRef:c,alias:d,hasKey:e}){return(0,b.jsxs)("span",{className:"inline-flex gap-1.5",children:[(0,b.jsx)(m,{id:a,projectRef:c,alias:d,hasKey:e,trigger:(0,b.jsx)(g.K,{size:"sm",children:e?"Replace key":"Add metrics key"})}),e&&(0,b.jsx)(f.f,{trigger:(0,b.jsx)(g.K,{size:"sm",variant:"ghost",children:"Remove"}),danger:!0,title:`Remove the metrics key of ${d}?`,cta:"Remove key",body:"The console deletes the stored key and this project's compute history. Revoke the key in Supabase (Project Settings → API Keys) too.",onConfirm:async()=>{let b=await k(a);return b.ok?{ok:!0,message:`Metrics key removed for ${d}.`}:{ok:!1,message:b.error}}})]})},"MetricsKeyDialog",0,m],28358)},103113,a=>{var b=a.i(187924),c=a.i(908161),d=a.i(572131),e=a.i(823292),f=a.i(771378),g=a.i(611619),h=a.i(619089),i=a.i(507504),j=a.i(54901),k=a.i(188406),l=a.i(814574),m=a.i(405050);let n=(0,m.createServerReference)("60fd2347413e34f448ec9d56c31bf35c2bdc39e1b2",m.callServer,void 0,m.findSourceMapURL,"pauseAction"),o=(0,m.createServerReference)("6073514cb07fb268525208ddf3ef10833afe81e05f",m.callServer,void 0,m.findSourceMapURL,"restoreAction"),p=(0,m.createServerReference)("603f376a68e2e46347c3aba39754ce45f73e0e4f45",m.callServer,void 0,m.findSourceMapURL,"setAutoRestore"),q=(0,m.createServerReference)("602fe40fa15b465f552a32776959bf23010a75ba67",m.callServer,void 0,m.findSourceMapURL,"setKeepActive");var r=a.i(28358);function s({alias:a,account:g,choices:j}){let[k,m]=(0,d.useState)(!1),[o,p]=(0,d.useState)(j.at(-1)?.id??""),[q,r]=(0,d.useTransition)(),t=(0,f.useMask)();(0,i.useHoldRefresh)(k);let u=j.find(a=>a.id===o);return(0,b.jsxs)(l.N,{open:k,onOpenChange:a=>{!q&&(m(a),a&&p(j.at(-1)?.id??""))},children:[(0,b.jsx)(l.a,{render:(0,b.jsx)(h.K,{size:"sm",children:"Restore"})}),(0,b.jsxs)(l.d,{className:"gap-0 p-0 sm:max-w-[560px]",showCloseButton:!1,children:[(0,b.jsxs)("div",{className:"flex items-start gap-3 px-[18px] pb-2 pt-4",children:[(0,b.jsx)("span",{className:"grid size-9 shrink-0 place-items-center rounded-lg bg-sunken text-ink-soft",children:(0,b.jsx)(c.f,{size:19})}),(0,b.jsxs)("div",{children:[(0,b.jsxs)(l.F,{className:"text-base",children:["Restore ",a,"?"]}),(0,b.jsxs)(l.C,{className:"mt-0.5 text-[13px] text-ink-soft",children:["Account ",(0,b.jsx)(f.Masked,{kind:"account",real:g})," already uses both free slots. Pick a project to pause first."]})]})]}),(0,b.jsxs)("div",{className:"px-[18px] pb-2",children:[j.length?(0,b.jsx)("div",{className:"max-h-[260px] overflow-y-auto",children:j.map(a=>(0,b.jsxs)("label",{className:"flex cursor-pointer items-center gap-3 border-b border-line px-1 py-[9px] last:border-b-0 hover:bg-hover",children:[(0,b.jsx)("input",{type:"radio",name:"pause-first",className:"size-4 accent-brand",checked:o===a.id,onChange:()=>p(a.id)}),(0,b.jsxs)("span",{className:"min-w-0 flex-1",children:[(0,b.jsxs)("span",{className:"block truncate",children:["Pause ",a.alias]}),(0,b.jsxs)("span",{className:"block truncate text-[12px] text-ink-faint",children:["Last API traffic ",a.traffic,a.usedBy.length?` \xb7 used by ${a.usedBy.map(a=>t("app",a)).join(", ")}`:""]})]})]},a.id))}):(0,b.jsx)("p",{className:"my-2 text-[13px] text-ink-soft",children:"The console doesn't watch this account's active projects, so pause one in Supabase first."}),(0,b.jsxs)("p",{className:"mb-2 mt-3 text-[13px] text-ink-soft",children:["Apps that use the paused project get errors until you restore it. You can also move ",a," to another account with a free slot instead."]}),(0,b.jsx)("p",{className:"mb-3 text-[13px] text-ink-soft",children:"Restore stays blocked until the project you pause shows Paused (about 2 minutes). Then press Restore again."})]}),(0,b.jsxs)("div",{className:"flex justify-end gap-2 border-t border-line px-[18px] py-3",children:[(0,b.jsx)(h.K,{onClick:()=>m(!1),disabled:q,children:"Cancel"}),(0,b.jsx)(h.K,{variant:"danger",disabled:q||!u,onClick:function(){u&&r(async()=>{try{let b=await n(u.id,u.ref);if(!b.ok)return void e.c.error(b.error);e.c.success("Pause started",{description:`Pausing ${u.alias}. Restore ${a} once ${u.alias} shows Paused, about 2 minutes.`}),m(!1)}catch{e.c.error("Something went wrong. Try again.")}})},children:q?"Working…":"Pause selected"})]})]})]})}let t={keep:(a,b)=>b?`${a}: warning from day 5 without API traffic, and one keep-alive query a day.`:`${a} may pause after 7 idle days.`,autoRestore:(a,b)=>b?`${a} is restored automatically when its account has a free slot.`:`${a} is no longer restored automatically.`};a.s(["ActiveRowMenu",0,function({id:a,projectRef:c,alias:e,label:f,metrics:g,dashboard:h=!0}){let{open:i,dialog:l}=(0,j.W)(),[m,o]=(0,d.useState)(!1);return(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(k.RowMenu,{label:f,items:[...h?[{label:"Open in Supabase",href:`https://supabase.com/dashboard/project/${encodeURIComponent(c)}`}]:[],{label:"Check services",later:6},...g?[{label:g.hasKey?"Replace metrics key":"Add metrics key",onSelect:()=>o(!0)}]:[],"---",{label:"Pause project",danger:!0,onSelect:()=>i({title:`Pause ${e}?`,body:"Supabase stops the project in about 2 minutes. Apps that use this database get errors until it's restored (possible for 1 year). Pausing frees one of this account's 2 free slots. Nothing is deleted.",cta:"Pause project",danger:!0,run:async()=>{let b;return(b=`Pausing ${e}. It takes about 2 minutes.`,a=>a.ok?{ok:!0,message:b}:a)(await n(a,c))}})}]}),l,g&&(0,b.jsx)(r.MetricsKeyDialog,{id:a,projectRef:c,alias:e,hasKey:g.hasKey,open:m,onOpenChange:o})]})},"KeepActiveBoxes",0,function({id:a,alias:c,keep:f,autoRestore:g,owner:h,sent:i}){let[j,k]=(0,d.useState)({keep:f,autoRestore:g}),[l,m]=(0,d.useTransition)(),n=(d,f)=>(0,b.jsxs)("label",{className:"flex items-center gap-1.5 text-[13px]",title:h?void 0:"Owner only",children:[(0,b.jsx)("input",{type:"checkbox",className:"size-4 accent-brand",checked:j[d],disabled:!h||l,onChange:b=>{var f;return f=b.target.checked,void(k({...j,[d]:f}),m(async()=>{try{let b=await ("keep"===d?q:p)(a,f);if(!b.ok){k(j),e.c.error(b.error);return}e.c.success("Keep active saved",{description:t[d](c,f)})}catch{k(j),e.c.error("Something went wrong. Try again.")}}))}}),f]});return(0,b.jsxs)("div",{children:[(0,b.jsxs)("div",{className:"flex flex-col items-start gap-0.5",children:[n("keep","Keep active"),n("autoRestore","Auto-restore")]}),i&&(0,b.jsxs)("div",{className:"text-[12px] text-ink-faint",children:["Keep-alive sent ",i]})]})},"RestoreButton",0,function({id:a,projectRef:c,alias:d,account:e,slotsLeft:f,choices:i}){return f>0?(0,b.jsx)(g.f,{trigger:(0,b.jsx)(h.K,{size:"sm",children:"Restore"}),title:`Restore ${d}?`,body:"Supabase brings the project back in about 2 minutes. Apps that use it start working again after that.",cta:"Restore",onConfirm:async()=>{let b=await o(a,c);return b.ok?{ok:!0,message:`Restoring ${d}. It takes about 2 minutes.`}:{ok:!1,message:b.error}}}):(0,b.jsx)(s,{alias:d,account:e,choices:i})}],103113)}]})();
|
|
2
2
|
|
|
3
3
|
//# sourceMappingURL=src_app_%28console%29_supabase_0ib3m2ch9gu-4._.js.map
|
package/server/.next/server/chunks/ssr/src_app_(console)_supabase_pool-actions_ts_0nzd4vwy_9zzx._.js
CHANGED
|
@@ -5,6 +5,6 @@ module.exports=[953685,612990,a=>{"use strict";var b=a.i(137936),c=a.i(118558),d
|
|
|
5
5
|
select state, extract(epoch from now() - state_change)::int as idle_s, extract(epoch from now() - backend_start)::int as age_s,
|
|
6
6
|
left(query, 400) as query
|
|
7
7
|
from pg_stat_activity where usename = current_user and pid <> pg_backend_pid()
|
|
8
|
-
order by state_change asc limit 20`),b=(0,i.f)(a).map(a=>({busy:"idle"!==a.state,idleS:Number(a.idle_s),table:l(a.query),ageS:Number(a.age_s)}));return{used:b.length+1,active:b.filter(a=>a.busy).length+1,conns:b}}catch{return null}}a.s(["Y",0,10,"X",0,15,"R",0,k,"H",0,m,"g",0,a=>({pct:Math.min(100,Math.round(a.used/15*100)),warn:a.used>=10})],612990);var n=a.i(371289),o=a.i(312573),p=a.i(323878),q=a.i(713095);let r={requireActionMember:e.g};async function s(){return(0,d.F)("owner",async a=>{if(!(0,n.r)())return{ok:!1,error:"Not available in this mode."};let b=await (0,p.C)(o.t.monitorWrite,a.id);if(!b.allowed)return{ok:!1,error:`Too many changes. Try again in ${(0,o.H)(b.retryAfter)}.`};let d=await k(1,5);return await (0,f.f)({kind:"ok",message:`Closed ${d.trimmed} idle database connection${1===d.trimmed?"":"s"} (pool ${d.total}/15)`,resourceId:null,actorUserId:a.userId}).catch(()=>console.warn("audit event failed")),(0,c.refresh)(),{ok:!0,message:`Closed ${d.trimmed} idle connection${1===d.trimmed?"":"s"}.`}},r)}async function t(){await s()}(0,q.ensureServerEntryExports)([s,t]),(0,b.registerServerReference)(s,"
|
|
8
|
+
order by state_change asc limit 20`),b=(0,i.f)(a).map(a=>({busy:"idle"!==a.state,idleS:Number(a.idle_s),table:l(a.query),ageS:Number(a.age_s)}));return{used:b.length+1,active:b.filter(a=>a.busy).length+1,conns:b}}catch{return null}}a.s(["Y",0,10,"X",0,15,"R",0,k,"H",0,m,"g",0,a=>({pct:Math.min(100,Math.round(a.used/15*100)),warn:a.used>=10})],612990);var n=a.i(371289),o=a.i(312573),p=a.i(323878),q=a.i(713095);let r={requireActionMember:e.g};async function s(){return(0,d.F)("owner",async a=>{if(!(0,n.r)())return{ok:!1,error:"Not available in this mode."};let b=await (0,p.C)(o.t.monitorWrite,a.id);if(!b.allowed)return{ok:!1,error:`Too many changes. Try again in ${(0,o.H)(b.retryAfter)}.`};let d=await k(1,5);return await (0,f.f)({kind:"ok",message:`Closed ${d.trimmed} idle database connection${1===d.trimmed?"":"s"} (pool ${d.total}/15)`,resourceId:null,actorUserId:a.userId}).catch(()=>console.warn("audit event failed")),(0,c.refresh)(),{ok:!0,message:`Closed ${d.trimmed} idle connection${1===d.trimmed?"":"s"}.`}},r)}async function t(){await s()}(0,q.ensureServerEntryExports)([s,t]),(0,b.registerServerReference)(s,"00bc915b28bfa11f73c9928407947bffd4104d7217",null),(0,b.registerServerReference)(t,"00e3dcc956ebe93da8ab059430cadc685b3c77a6cf",null),a.s(["w",0,s,"n",0,t],953685)}];
|
|
9
9
|
|
|
10
10
|
//# sourceMappingURL=src_app_%28console%29_supabase_pool-actions_ts_0nzd4vwy_9zzx._.js.map
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
module.exports=[[180626,a=>{let b=(0,a.i(211857).registerClientReference)(function(){throw Error("Attempted to call MaintenanceDialog() from the server but MaintenanceDialog is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/src/app/(console)/uptime/maintenance-dialog.tsx","MaintenanceDialog");a.s(["MaintenanceDialog",0,b])},739243,a=>{var b=a.i(180626);a.n(b)},725849,a=>{let b=(0,a.i(211857).registerClientReference)(function(){throw Error("Attempted to call MaintenanceMenu() from the server but MaintenanceMenu is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/src/app/(console)/uptime/maintenance-menu.tsx","MaintenanceMenu");a.s(["MaintenanceMenu",0,b])},316754,a=>{var b=a.i(725849);a.n(b)},287563,a=>{let b=(0,a.i(211857).registerClientReference)(function(){throw Error("Attempted to call MonitorDialog() from the server but MonitorDialog is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/src/app/(console)/uptime/monitor-dialog.tsx","MonitorDialog");a.s(["MonitorDialog",0,b])},215312,a=>{var b=a.i(287563);a.n(b)},244293,a=>{let b=(0,a.i(211857).registerClientReference)(function(){throw Error("Attempted to call MonitorMenu() from the server but MonitorMenu is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/src/app/(console)/uptime/monitor-menu.tsx","MonitorMenu");a.s(["MonitorMenu",0,b])},538793,a=>{var b=a.i(244293);a.n(b)},713064,a=>{var b=a.i(907997),c=a.i(252302),d=a.i(649247),e=a.i(803681),f=a.i(959581),g=a.i(685865),h=a.i(154756),i=a.i(954296),j=a.i(686251),k=a.i(605826),l=a.i(421911),m=a.i(791444),n=a.i(109307),o=a.i(714530),p=a.i(895176),q=a.i(149396),r=a.i(767163),s=a.i(519051),t=a.i(
|
|
1
|
+
module.exports=[[180626,a=>{let b=(0,a.i(211857).registerClientReference)(function(){throw Error("Attempted to call MaintenanceDialog() from the server but MaintenanceDialog is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/src/app/(console)/uptime/maintenance-dialog.tsx","MaintenanceDialog");a.s(["MaintenanceDialog",0,b])},739243,a=>{var b=a.i(180626);a.n(b)},725849,a=>{let b=(0,a.i(211857).registerClientReference)(function(){throw Error("Attempted to call MaintenanceMenu() from the server but MaintenanceMenu is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/src/app/(console)/uptime/maintenance-menu.tsx","MaintenanceMenu");a.s(["MaintenanceMenu",0,b])},316754,a=>{var b=a.i(725849);a.n(b)},287563,a=>{let b=(0,a.i(211857).registerClientReference)(function(){throw Error("Attempted to call MonitorDialog() from the server but MonitorDialog is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/src/app/(console)/uptime/monitor-dialog.tsx","MonitorDialog");a.s(["MonitorDialog",0,b])},215312,a=>{var b=a.i(287563);a.n(b)},244293,a=>{let b=(0,a.i(211857).registerClientReference)(function(){throw Error("Attempted to call MonitorMenu() from the server but MonitorMenu is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/src/app/(console)/uptime/monitor-menu.tsx","MonitorMenu");a.s(["MonitorMenu",0,b])},538793,a=>{var b=a.i(244293);a.n(b)},713064,a=>{var b=a.i(907997),c=a.i(252302),d=a.i(649247),e=a.i(803681),f=a.i(959581),g=a.i(685865),h=a.i(154756),i=a.i(954296),j=a.i(686251),k=a.i(605826),l=a.i(421911),m=a.i(791444),n=a.i(109307),o=a.i(714530),p=a.i(895176),q=a.i(149396),r=a.i(767163),s=a.i(519051),t=a.i(245710),u=a.i(139138),v=a.i(469762),w=a.i(505237),x=a.i(968715),y=a.i(739243),z=a.i(316754),A=a.i(215312),B=a.i(538793),C=a.i(701702);let D="font-mono text-[12.5px]",E=["Monitor","Status",(0,b.jsxs)("span",{children:["Last 90 days",(0,b.jsx)(i.Src,{kind:"calc"})]},"bars"),"Uptime","Response","Interval",""],F=[["Up","ok"],["Degraded","warn"],["Down","err"],["Maintenance","maint"],["Paused","paused"]],G=["Applies to","When","Note","Status",""];async function H(){let a=await (0,n.I)(),i=new Date,H=(0,w.z)(a.role),[I,J,K,L]=await Promise.all([(0,p.d)(i),H?(0,p.b)():Promise.resolve([]),(0,o.A)(),(0,q.u)()]),M=I.map(a=>({m:a,s:(0,w.M)(a,(0,s.x)(K,{monitorId:a.id,appId:a.appId},i),i)})),N=(0,x.j)(M.map(({m:a,s:b})=>({state:b.state,appGone:a.appGone}))),O=M.map(({m:a,s:d})=>{let f,g="heartbeat"===a.kind,k=g?null:a.bodyContains??(a.jsonPath?`JSON ${a.jsonPath} equals "${a.jsonEquals??""}"`:null),l=g?`${a.appName} \xb7 ${a.path}`:`${a.appName}${a.path}`;return{key:a.id,state:d.state,text:[l,g?"Heartbeat":k?"Keyword":"",L.has(a.id)?"Public":"",d.label,(0,v.C)(a.uptime30)].join(" "),row:(0,b.jsxs)("tr",{className:m.C,children:[(0,b.jsx)("td",{className:m.z,children:(0,b.jsxs)("span",{className:"inline-flex items-center gap-[7px]",children:[(0,b.jsx)(h.g,{kind:"mon"}),(0,b.jsxs)("span",{children:[(0,b.jsx)(C.Masked,{kind:"app",real:a.appName}),(0,b.jsx)("span",{className:"text-ink-faint",children:g?` \xb7 ${a.path}`:a.path})]}),g&&(0,b.jsx)(e.E,{children:"Heartbeat"}),k&&(0,b.jsx)("span",{title:k,children:(0,b.jsx)(e.E,{children:"Keyword"})}),L.has(a.id)&&(0,b.jsx)("span",{title:"Shown on the public status page",children:(0,b.jsx)(e.E,{children:"Public"})})]})}),(0,b.jsx)("td",{className:m.z,children:(0,b.jsx)(j.F,{state:d.state,children:d.label})}),(0,b.jsx)("td",{className:m.z,children:(0,b.jsx)(c.n,{bars:(0,x.h)(a.days,i)})}),(0,b.jsx)("td",{className:(0,u.f)(m.z,D),children:(0,v.C)(a.uptime30)}),(0,b.jsx)("td",{className:(0,u.f)(m.z,D),children:g||"err"===a.state||null===a.lastLatencyMs?"—":`${a.lastLatencyMs} ms`}),(0,b.jsx)("td",{className:(0,u.f)(m.z,"text-ink-soft"),children:"heartbeat"===(f=a).kind?`${(0,r.v)(f.periodS??3600)} + ${(0,r.v)(f.graceS??600)}`:`${Math.max(1,Math.round(f.intervalS/60))} min`}),(0,b.jsx)("td",{className:m.z,children:H&&(0,b.jsx)(B.MonitorMenu,{monitor:{id:a.id,appName:a.appName,path:a.path,url:a.url,expectedStatus:a.expectedStatus,timeoutMs:a.timeoutMs,bodyContains:a.bodyContains,jsonPath:a.jsonPath,jsonEquals:a.jsonEquals,ownerPaused:a.ownerPaused,kind:a.kind,name:a.name,periodS:a.periodS,graceS:a.graceS}})})]})}}),P={apps:J.map(a=>({id:a.id,name:a.name})),monitors:I.filter(a=>!a.appGone).map(a=>({id:a.id,label:"heartbeat"===a.kind?`${a.appName} \xb7 ${a.path}`:`${a.appName}${a.path}`}))},Q=K.map(a=>{let c=(0,s.y)(a,i);return{key:a.id,state:c.status.state,text:[a.target,c.when,a.note??""].join(" "),row:(0,b.jsxs)("tr",{className:m.C,children:[(0,b.jsx)("td",{className:m.z,children:(0,b.jsx)(C.MaskedText,{text:a.target})}),(0,b.jsx)("td",{className:m.z,children:c.when}),(0,b.jsx)("td",{className:(0,u.f)(m.z,m.M,"text-ink-soft"),children:a.note?(0,b.jsx)(C.MaskedText,{text:a.note}):"—"}),(0,b.jsx)("td",{className:m.z,children:(0,b.jsx)(j.F,{state:c.status.state,children:c.status.text})}),(0,b.jsx)("td",{className:m.z,children:H&&(0,b.jsx)(z.MaintenanceMenu,{win:a,options:P})})]})}});return(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(g.AutoRefresh,{at:i.getTime()}),(0,b.jsx)(e.L,{crumbs:[{label:"Observe"},{label:"Uptime"}],title:"Uptime",sub:"HTTP checks run every minute; heartbeats wait for your own jobs to ping. cron-job.org calls the collector, and Upstash QStash checks every 5 minutes that it is still running.",actions:H?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(l.RefreshButton,{}),(0,b.jsx)(y.MaintenanceDialog,{mode:"add",options:P}),(0,b.jsx)(A.MonitorDialog,{mode:"add",apps:J})]}):void 0}),(0,b.jsx)("div",{className:"grid grid-cols-1 gap-4 min-[721px]:grid-cols-2 min-[1281px]:grid-cols-5",children:F.map(([a,c])=>(0,b.jsx)(e.N,{title:a,children:(0,b.jsx)("span",{className:"text-[26px] font-semibold tracking-[-0.02em]",children:N[c]})},a))}),(0,b.jsx)(e.N,{flush:!0,children:0===I.length?(0,b.jsx)(d.x,{canAct:H}):(0,b.jsx)(f.ListFilter,{placeholder:"Filter by name",states:w.g,head:E,rows:O})}),(0,b.jsxs)(e.N,{title:"Maintenance windows",flush:!0,children:[(0,b.jsxs)("p",{className:"mx-[18px] mb-2.5 text-[12.5px] text-ink-soft",children:["Checks keep running inside a window, but they are left out of uptime % and open no alerts. ",(0,t.n)()]}),Q.length?(0,b.jsx)(k.PlainTable,{head:G,rows:Q}):(0,b.jsxs)("p",{className:"mx-[18px] mb-4 text-[13px] text-ink-faint",children:["No maintenance windows.",H?" Add one before planned work, so it doesn't count as downtime.":""]})]})]})}a.s(["default",0,H,"maxDuration",0,30])}],603768,function(a){a.n(a.i(713064))}];
|
|
2
2
|
|
|
3
3
|
//# sourceMappingURL=src_app_%28console%29_uptime_148phfjye0539._.js.map
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
(()=>{"use strict";module.exports=[320518,a=>{var b=a.i(187924),c=a.i(249490),d=a.i(572131),e=a.i(823292),f=a.i(619089),g=a.i(507504),h=a.i(814574),i=a.i(941881);let j=[30,60,90,180,360];function k(a){return new Date(a.getTime()+252e5).toISOString().slice(0,16)}function l(a){return"all"===a.scope?"all":"app"===a.scope?`app:${a.appId}`:`monitor:${a.monitorId}`}var m=a.i(405050);let n=(0,m.createServerReference)("403fa4f093553c23a5657ecce6717d9a800147591d",m.callServer,void 0,m.findSourceMapURL,"addWindow"),o=(0,m.createServerReference)("606bdfd43ca1b5c68c4498df4bac4f821f708d8444",m.callServer,void 0,m.findSourceMapURL,"editWindow");function p(a){if("edit"===a.mode){let b=a.win;return{target:l(b),weekly:b.weekly,start:k(b.startsAt),durationMin:String(b.durationMin),note:b.note??""}}return{target:"all",weekly:!1,start:k(new Date(36e5*Math.ceil(Date.now()/36e5))),durationMin:"90",note:""}}a.s(["MaintenanceDialog",0,function(a){let[k,m]=(0,d.useState)(!1),q="edit"===a.mode?a.open:k,[r,s]=(0,d.useState)(()=>p(a)),[t,u]=(0,d.useState)({}),[v,w]=(0,d.useTransition)();function x(b){b&&(s(p(a)),u({})),"edit"===a.mode?a.onOpenChange(b):m(b)}(0,g.useHoldRefresh)(q);let{apps:y,monitors:z}=a.options,A="edit"===a.mode?l(a.win):null,B="all"===A||y.some(a=>`app:${a.id}`===A)||z.some(a=>`monitor:${a.id}`===A),C=t.scope??t.targetId;return(0,b.jsxs)(h.N,{open:q,onOpenChange:a=>{v||x(a)},children:["add"===a.mode&&(0,b.jsx)(h.a,{render:(0,b.jsx)(f.K,{children:"Add maintenance window"})}),(0,b.jsxs)(h.d,{className:"gap-0 p-0 sm:max-w-[560px]",showCloseButton:!1,children:[(0,b.jsxs)("div",{className:"flex items-start gap-3 px-[18px] pb-2 pt-4",children:[(0,b.jsx)("span",{className:"grid size-9 shrink-0 place-items-center rounded-lg bg-sunken text-ink-soft",children:(0,b.jsx)(c.f,{size:19})}),(0,b.jsxs)("div",{children:[(0,b.jsx)(h.F,{className:"text-base",children:"add"===a.mode?"Add maintenance window":"Edit maintenance window"}),(0,b.jsx)(h.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. Times are WIB."})]})]}),(0,b.jsxs)("form",{onSubmit:b=>{b.preventDefault(),function(){var b,c;let d={...function(a){if("all"===a)return{scope:"all",targetId:""};let b=/^(app|monitor):(.+)$/.exec(a);return b?{scope:b[1],targetId:b[2]}:{scope:"",targetId:""}}(r.target),start:r.start,durationMin:r.durationMin,weekly:r.weekly,note:r.note},f=function(a){let b={},c="all"===a.scope||"app"===a.scope||"monitor"===a.scope?a.scope:null;c||(b.scope="Pick what it applies to.");let d="string"==typeof a.start?a.start:"",e=/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}$/.test(d)?new Date(`${d}:00+07:00`):null;e&&(Number.isNaN(e.getTime())||new Date(e.getTime()+252e5).toISOString().slice(0,16)!==d)&&(e=null),e||(b.start="Pick a start time.");let f=Number(a.durationMin);j.includes(f)||(b.durationMin="Pick how long it lasts.");let g="string"==typeof a.targetId?a.targetId:"";if(c&&"all"!==c&&!(0,i.f)(g)&&(b.targetId="app"===c?"Pick an application.":"Pick a monitor."),Object.keys(b).length||!c||!e)return{ok:!1,fieldErrors:b};let h=("string"==typeof a.note?a.note:"").trim().slice(0,120)||null;return{ok:!0,value:{scope:c,appId:"app"===c?g:null,monitorId:"monitor"===c?g:null,startsAt:e,durationMin:f,weekly:!0===a.weekly,note:h}}}(d);if(!f.ok)return u(f.fieldErrors);(b=f.value,c=new Date,!b.weekly&&b.startsAt.getTime()+6e4*b.durationMin<=c.getTime())?u({start:"That window has already ended."}):(u({}),w(async()=>{let b="add"===a.mode?await n(d):await o(a.win.id,d);if(!b.ok){u(b.fieldErrors??{}),e.c.error(b.error);return}e.c.success("Window saved",{description:b.message}),x(!1)}))}()},children:[(0,b.jsxs)("div",{className:"px-[18px] pt-2",children:[(0,b.jsx)(f.O,{id:"mw-scope",label:"Applies to",error:C,children:(0,b.jsxs)("select",{id:"mw-scope",className:f.S,value:r.target,onChange:a=>s({...r,target:a.target.value}),children:[(0,b.jsx)("option",{value:"all",children:"All monitors"}),"edit"===a.mode&&!B&&A&&(0,b.jsx)("option",{value:A,children:a.win.target}),y.length>0&&(0,b.jsx)("optgroup",{label:"Application",children:y.map(a=>(0,b.jsx)("option",{value:`app:${a.id}`,children:a.name},a.id))}),z.length>0&&(0,b.jsx)("optgroup",{label:"One monitor",children:z.map(a=>(0,b.jsx)("option",{value:`monitor:${a.id}`,children:a.label},a.id))})]})}),(0,b.jsxs)("fieldset",{className:"mb-3.5 flex flex-col gap-[5px]",children:[(0,b.jsx)("legend",{className:"mb-[5px] text-[13px] font-medium",children:"Repeat"}),(0,b.jsx)("div",{className:"flex flex-wrap gap-x-4 gap-y-1.5",children:[[!1,"Once"],[!0,"Every week"]].map(([a,c])=>(0,b.jsxs)("label",{className:"flex items-center gap-1.5 text-[13px]",children:[(0,b.jsx)("input",{type:"radio",name:"mw-rep",className:"size-4 accent-brand",checked:r.weekly===a,onChange:()=>s({...r,weekly:a})}),c]},c))})]}),(0,b.jsxs)("div",{className:"grid grid-cols-1 gap-3 sm:grid-cols-2",children:[(0,b.jsx)(f.O,{id:"mw-start",label:"Starts",error:t.start,children:(0,b.jsx)("input",{id:"mw-start",type:"datetime-local",className:f.S,value:r.start,onChange:a=>s({...r,start:a.target.value})})}),(0,b.jsx)(f.O,{id:"mw-len",label:"Lasts",error:t.durationMin,children:(0,b.jsx)("select",{id:"mw-len",className:f.S,value:r.durationMin,onChange:a=>s({...r,durationMin:a.target.value}),children:j.map(a=>{let c,d;return(0,b.jsx)("option",{value:String(a),children:[(c=Math.floor(a/60))?`${c} h`:"",(d=a%60)?`${d} min`:""].filter(Boolean).join(" ")},a)})})})]}),(0,b.jsx)(f.O,{id:"mw-note",label:"Note (optional)",help:"Shown on the public status page if a monitor there is affected.",children:(0,b.jsx)("input",{id:"mw-note",className:f.S,value:r.note,maxLength:120,placeholder:"Moving DNS to Cloudflare",autoComplete:"off",onChange:a=>s({...r,note:a.target.value})})})]}),(0,b.jsxs)("div",{className:"flex flex-wrap items-center justify-end gap-2 border-t border-line px-[18px] py-3",children:[(0,b.jsx)(f.K,{onClick:()=>x(!1),disabled:v,children:"Cancel"}),(0,b.jsx)(f.K,{type:"submit",variant:"primary",disabled:v,children:v?"Saving…":"add"===a.mode?"Add window":"Save"})]})]})]})]})}],320518)},723355,a=>{var b=a.i(187924),c=a.i(572131),d=a.i(611619),e=a.i(188406),f=a.i(742680),g=a.i(405050);let h=(0,g.createServerReference)("40d498cfc239631a1d4075fb79ebd908948923dc6d",g.callServer,void 0,g.findSourceMapURL,"removeWindow");var i=a.i(320518);a.s(["MaintenanceMenu",0,function({win:a,options:g}){let[j,k]=(0,c.useState)(!1),[l,m]=(0,c.useState)(!1);return(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(e.RowMenu,{label:(0,f.J)(a.target,"window"),items:[{label:"Edit window",onSelect:()=>k(!0)},"---",{label:"Delete",danger:!0,onSelect:()=>m(!0)}]}),j&&(0,b.jsx)(i.MaintenanceDialog,{mode:"edit",win:a,options:g,open:!0,onOpenChange:k}),(0,b.jsx)(d.f,{open:l,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 b=await h(a.id);return{ok:b.ok,message:(b.ok?b.message:b.error)??""}}})]})}],723355)},642823,855771,a=>{var b=a.i(187924),c=a.i(614548),d=a.i(572131),e=a.i(823292),f=a.i(619089),g=a.i(507504),h=a.i(814574),i=a.i(880305),j=a.i(310412),k=a.i(405050);let l=(0,k.createServerReference)("602927c2ad1cb827c9c2f02fa5f75e1e2a0a1e66fe",k.callServer,void 0,k.findSourceMapURL,"addHeartbeat"),m=(0,k.createServerReference)("60bfa5fe0ed47080301a758dd1c15f216f32ba7ebe",k.callServer,void 0,k.findSourceMapURL,"addMonitor"),n=(0,k.createServerReference)("6052d7d100bd7fe80d76b74848f47739d44c531349",k.callServer,void 0,k.findSourceMapURL,"editHeartbeat"),o=(0,k.createServerReference)("60dd71298b0d2c559853231e4e51518d0837e1b068",k.callServer,void 0,k.findSourceMapURL,"editMonitor");var p=a.i(771378);function q(a){return null===a?{ok:!1,text:"Couldn't reach the console"}:a>=200&&a<300?{ok:!0,text:`OK \xb7 ${a}`}:404===a?{ok:!1,text:"Not found · 404"}:429===a?{ok:!1,text:"Too many pings · 429"}:{ok:!1,text:`Failed \xb7 ${a}`}}function r({name:a,url:i,onClose:j}){let k=null!==i,[l,m]=(0,d.useState)(!1),[n,o]=(0,d.useState)(null);async function s(){if(i)try{await navigator.clipboard.writeText(i),e.c.success("Copied.")}catch{e.c.error("Couldn't copy. Select the URL and copy it yourself.")}}async function t(a){let b,c=i?(b=/\/api\/ping\/(hb_[0-9a-f]{32})\/?$/.exec(i))?`/api/ping/${b[1]}${"fail"===a?"/fail":""}`:null:null;if(c&&!l){m(!0),o(null);try{let a=await fetch(c,{method:"GET",cache:"no-store"});o(q(a.status))}catch{o(q(null))}finally{m(!1)}}}function u(){o(null),j()}return(0,g.useHoldRefresh)(k),(0,b.jsx)(h.N,{open:k,onOpenChange:a=>{a||u()},children:(0,b.jsxs)(h.d,{className:"gap-0 p-0 sm:max-w-[640px]",showCloseButton:!1,children:[(0,b.jsxs)("div",{className:"flex items-start gap-3 px-[18px] pb-2 pt-4",children:[(0,b.jsx)("span",{className:"grid size-9 shrink-0 place-items-center rounded-lg bg-sunken text-ink-soft",children:(0,b.jsx)(c.f,{size:19})}),(0,b.jsxs)("div",{className:"min-w-0",children:[(0,b.jsxs)(h.F,{className:"text-base",children:["Ping URL for ",(0,b.jsx)(p.Masked,{kind:"text",real:a})]}),(0,b.jsx)(h.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,b.jsxs)("div",{className:"px-[18px] pt-2",children:[(0,b.jsxs)("div",{className:"mb-3 flex items-center gap-1.5",children:[(0,b.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:i&&(0,b.jsx)(p.Masked,{kind:"text",real:i,masked:i.replace(/(\/api\/ping\/).*/,"$1••••••")})}),(0,b.jsx)(f.K,{size:"sm",onClick:s,children:"Copy"})]}),(0,b.jsxs)("div",{className:"mb-3.5 flex flex-wrap items-center gap-2",children:[(0,b.jsx)(f.K,{size:"sm",disabled:l,onClick:()=>t("ok"),children:"Send test ping"}),(0,b.jsx)(f.K,{size:"sm",disabled:l,onClick:()=>t("fail"),children:"Test fail"}),(0,b.jsx)("span",{role:"status","aria-live":"polite",className:`text-[13px] ${n?n.ok?"text-ok":"text-err":"text-ink-soft"}`,children:l?"Sending…":n?.text??""})]}),(0,b.jsxs)("div",{className:"mb-3.5 rounded-lg border border-line bg-surface-2 px-3 py-2.5 text-[13px]",children:[(0,b.jsx)("b",{className:"font-medium",children:"From your job"}),(0,b.jsxs)("ul",{className:"mt-1 list-disc pl-[18px] text-ink-soft",children:[(0,b.jsxs)("li",{children:["When it succeeds: ",(0,b.jsx)("span",{className:"font-mono",children:"curl -fsS -m 10 <url>"})]}),(0,b.jsxs)("li",{children:["When it fails: add ",(0,b.jsx)("span",{className:"font-mono",children:"/fail"})," to the URL"]}),(0,b.jsxs)("li",{children:["When it starts (optional): add ",(0,b.jsx)("span",{className:"font-mono",children:"/start"})]})]})]})]}),(0,b.jsx)("div",{className:"flex justify-end gap-2 border-t border-line px-[18px] py-3",children:(0,b.jsx)(f.K,{variant:"primary",onClick:u,children:"Done"})})]})})}a.s(["f",0,r],855771);let s={name:"",periodS:"86400",graceS:"3600"},t=[["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 u(a){if("edit"===a.mode){let b=a.monitor;return{appId:"",kind:b.kind,url:"http"===b.kind?b.url:"",expectedStatus:String(b.expectedStatus),timeoutS:String(Math.round(b.timeoutMs/1e3)),bodyContains:b.bodyContains??"",jsonPath:b.jsonPath??"",jsonEquals:b.jsonEquals??"",name:b.name??"",periodS:String(b.periodS??s.periodS),graceS:String(b.graceS??s.graceS)}}let b=a.apps[0];return{appId:b?.id??"",kind:"http",url:b?`https://${b.domain}/api/health`:"",expectedStatus:"200",timeoutS:"5",bodyContains:"",jsonPath:"",jsonEquals:"",...s}}a.s(["MonitorDialog",0,function(a){let[k,p]=(0,d.useState)(!1),q="edit"===a.mode?a.open:k,[s,v]=(0,d.useState)(()=>u(a)),[w,x]=(0,d.useState)({}),[y,z]=(0,d.useTransition)(),[A,B]=(0,d.useState)(null);function C(b){b&&(v(u(a)),x({})),"edit"===a.mode?a.onOpenChange(b):p(b)}(0,g.useHoldRefresh)(q);let D="add"===a.mode?a.apps:[],E="add"===a.mode&&0===D.length,F="heartbeat"===s.kind,G="add"===a.mode?"HTTP checks run every minute from the collector. Heartbeats wait for your job to ping the console.":F?"Your job pings the console; nothing is fetched.":"Checked every minute from the collector.";return(0,b.jsxs)(b.Fragment,{children:[(0,b.jsxs)(h.N,{open:q,onOpenChange:a=>{y||C(a)},children:["add"===a.mode&&(E?(0,b.jsx)("span",{title:"Watch an app first, in Connections → Sync",className:"inline-flex",children:(0,b.jsx)(f.K,{variant:"primary",disabled:!0,children:"Add monitor"})}):(0,b.jsx)(h.a,{render:(0,b.jsx)(f.K,{variant:"primary",children:"Add monitor"})})),(0,b.jsxs)(h.d,{className:"gap-0 p-0 sm:max-w-[640px]",showCloseButton:!1,children:[(0,b.jsxs)("div",{className:"flex items-start gap-3 px-[18px] pb-2 pt-4",children:[(0,b.jsx)("span",{className:"grid size-9 shrink-0 place-items-center rounded-lg bg-sunken text-ink-soft",children:(0,b.jsx)(c.f,{size:19})}),(0,b.jsxs)("div",{children:[(0,b.jsx)(h.F,{className:"text-base",children:"add"===a.mode?"Add monitor":"Edit monitor"}),(0,b.jsx)(h.C,{className:"mt-0.5 text-[13px] text-ink-soft",children:G})]})]}),(0,b.jsxs)("form",{onSubmit:b=>{let c,d;b.preventDefault(),(d=(c="heartbeat"===s.kind)?(0,j.a)(s):(0,j.X)(s)).ok?(x({}),z(async()=>{let b=c?"add"===a.mode?await l(s.appId,s):await n(a.monitor.id,s):"add"===a.mode?await m(s.appId,s):await o(a.monitor.id,s);if(!b.ok){x(b.fieldErrors??{}),e.c.error(b.error);return}e.c.success("add"===a.mode?"Monitor added":"Monitor saved",{description:b.message}),C(!1);let d=b.data&&"pingUrl"in b.data?b.data.pingUrl:null;d&&B({name:s.name.trim(),url:d})})):x(d.fieldErrors)},children:[(0,b.jsxs)("div",{className:"px-[18px] pt-2",children:["add"===a.mode&&(0,b.jsxs)("fieldset",{className:"mb-3.5",children:[(0,b.jsx)("legend",{className:"mb-[5px] text-[13px] font-medium",children:"Type"}),(0,b.jsx)("div",{className:"overflow-hidden rounded-lg border border-line",children:t.map(([a,c,d])=>(0,b.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,b.jsx)("input",{type:"radio",name:"mon-kind",value:a,checked:s.kind===a,className:"mt-[3px] accent-brand",onChange:()=>{v({...s,kind:a}),x({})}}),(0,b.jsxs)("span",{children:[c,(0,b.jsx)("small",{className:"block text-xs text-ink-faint",children:d})]})]},a))})]}),(0,b.jsx)(f.O,{id:"mon-app",label:"Application",children:"add"===a.mode?(0,b.jsx)("select",{id:"mon-app",className:f.S,value:s.appId,onChange:a=>{let b=D.find(b=>b.id===a.target.value);v({...s,appId:a.target.value,url:b?`https://${b.domain}/`:s.url})},children:D.map(a=>(0,b.jsx)("option",{value:a.id,children:a.name},a.id))}):(0,b.jsx)("input",{id:"mon-app",className:f.S,value:a.monitor.appName,disabled:!0})}),F?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(f.O,{id:"hb-name",label:"Name",error:w.name,children:(0,b.jsx)("input",{id:"hb-name",className:f.S,value:s.name,placeholder:"backup job",maxLength:80,autoComplete:"off",onChange:a=>v({...s,name:a.target.value})})}),(0,b.jsxs)("div",{className:"grid grid-cols-1 gap-3 sm:grid-cols-2",children:[(0,b.jsx)(f.O,{id:"hb-every",label:"Expected every",error:w.periodS,children:(0,b.jsx)("select",{id:"hb-every",className:f.S,value:s.periodS,onChange:a=>v({...s,periodS:a.target.value}),children:i.Q.map(a=>(0,b.jsx)("option",{value:String(a),children:(0,i.v)(a)},a))})}),(0,b.jsx)(f.O,{id:"hb-grace",label:"Grace time",error:w.graceS,children:(0,b.jsx)("select",{id:"hb-grace",className:f.S,value:s.graceS,onChange:a=>v({...s,graceS:a.target.value}),children:i.q.map(a=>(0,b.jsx)("option",{value:String(a),children:(0,i.v)(a)},a))})})]}),(0,b.jsxs)("p",{className:"mb-3 text-[13px] text-ink-soft",children:["Late once the period passes, down after the grace time too.","add"===a.mode?" The ping URL is shown once after you add it.":""]})]}):(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(f.O,{id:"mon-url",label:"URL",help:"Must start with https://. A health route that touches nothing heavy works best.",error:w.url,children:(0,b.jsx)("input",{id:"mon-url",className:f.S,value:s.url,autoComplete:"off",spellCheck:!1,onChange:a=>v({...s,url:a.target.value})})}),(0,b.jsxs)("div",{className:"grid grid-cols-1 gap-3 sm:grid-cols-2",children:[(0,b.jsx)(f.O,{id:"mon-code",label:"Expected status",error:w.expectedStatus,children:(0,b.jsx)("input",{id:"mon-code",className:f.S,inputMode:"numeric",value:s.expectedStatus,onChange:a=>v({...s,expectedStatus:a.target.value})})}),(0,b.jsx)(f.O,{id:"mon-timeout",label:"Timeout",error:w.timeoutS,children:(0,b.jsx)("select",{id:"mon-timeout",className:f.S,value:s.timeoutS,onChange:a=>v({...s,timeoutS:a.target.value}),children:j.L.map(a=>(0,b.jsxs)("option",{value:String(a),children:[a," s"]},a))})})]}),(0,b.jsx)(f.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:w.bodyContains,children:(0,b.jsx)("input",{id:"mon-match",className:f.S,value:s.bodyContains??"",placeholder:'e.g. "status":"ok"',autoComplete:"off",spellCheck:!1,onChange:a=>v({...s,bodyContains:a.target.value})})}),(0,b.jsxs)("div",{className:"grid grid-cols-1 gap-3 sm:grid-cols-2",children:[(0,b.jsx)(f.O,{id:"mon-jpath",label:"Or JSON field (optional)",error:w.jsonPath,children:(0,b.jsx)("input",{id:"mon-jpath",className:`${f.S} font-mono`,value:s.jsonPath??"",placeholder:"status or checks.db",autoComplete:"off",spellCheck:!1,onChange:a=>v({...s,jsonPath:a.target.value})})}),(0,b.jsx)(f.O,{id:"mon-jeq",label:"Equals",error:w.jsonEquals,children:(0,b.jsx)("input",{id:"mon-jeq",className:`${f.S} font-mono`,value:s.jsonEquals??"",placeholder:"ok",autoComplete:"off",spellCheck:!1,onChange:a=>v({...s,jsonEquals:a.target.value})})})]}),(0,b.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,b.jsxs)("div",{className:"flex flex-wrap items-center justify-end gap-2 border-t border-line px-[18px] py-3",children:[(0,b.jsx)(f.K,{onClick:()=>C(!1),disabled:y,children:"Cancel"}),(0,b.jsx)(f.K,{type:"submit",variant:"primary",disabled:y,children:y?"Saving…":"add"===a.mode?"Add monitor":"Save"})]})]})]})]}),(0,b.jsx)(r,{name:A?.name??"",url:A?.url??null,onClose:()=>B(null)})]})}],642823)},788831,a=>{var b=a.i(187924),c=a.i(572131),d=a.i(823292),e=a.i(611619),f=a.i(188406),g=a.i(742680),h=a.i(405050);let i=(0,h.createServerReference)("40a456c96e578ca95e90202f0421e3d0a08b0197e4",h.callServer,void 0,h.findSourceMapURL,"checkNow"),j=(0,h.createServerReference)("40f4ac6325a23cb0d2e07f4293260ec0f6357259e4",h.callServer,void 0,h.findSourceMapURL,"newPingUrl"),k=(0,h.createServerReference)("60e12db11973299e029752e5fed946b1a888190242",h.callServer,void 0,h.findSourceMapURL,"pauseMonitor"),l=(0,h.createServerReference)("60d2fe2b89f2f67da033b4f8241e09781469c675de",h.callServer,void 0,h.findSourceMapURL,"recordTestPingAction"),m=(0,h.createServerReference)("404edd687092381560921298aa451808f5a7d20e78",h.callServer,void 0,h.findSourceMapURL,"removeMonitor");var n=a.i(642823),o=a.i(855771);a.s(["MonitorMenu",0,function({monitor:a}){let[h,p]=(0,c.useState)(!1),[q,r]=(0,c.useState)(!1),[s,t]=(0,c.useState)(!1),[u,v]=(0,c.useState)(null),[,w]=(0,c.useTransition)(),x=(0,c.useRef)(!1),y="heartbeat"===a.kind,z=y?`${a.appName} \xb7 ${a.path}`:`${a.appName}${a.path}`,A=(a,b)=>{if(x.current)return;x.current=!0;let c=b?d.c.loading(b):void 0;w(async()=>{try{let b=await a();b.ok?b.data?.passed===!1?d.c.warning(b.message??"",{id:c}):d.c.success(b.message??"",{id:c}):d.c.error(b.error,{id:c})}catch{d.c.error("Something went wrong. Try again.",{id:c})}finally{x.current=!1}})},B={label:a.ownerPaused?"Resume":"Pause",onSelect:()=>A(()=>k(a.id,!a.ownerPaused))},C=y?{label:"Show ping URL",onSelect:()=>t(!0)}:{label:"Check now",onSelect:()=>A(()=>i(a.id),`Checking ${z}…`)};return(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(f.RowMenu,{label:(0,g.J)(a.appName,a.path),items:[C,...y?[{label:"Record a test ping: OK",onSelect:()=>A(()=>l(a.id,"ok"))},{label:"Record a test ping: Fail",onSelect:()=>A(()=>l(a.id,"fail"))}]:[],{label:"Edit monitor",onSelect:()=>p(!0)},B,"---",{label:"Delete",danger:!0,onSelect:()=>r(!0)}]}),h&&(0,b.jsx)(n.MonitorDialog,{mode:"edit",monitor:a,open:!0,onOpenChange:p}),(0,b.jsx)(e.f,{open:q,onOpenChange:r,title:`Delete ${z}?`,body:y?"Its ping URL stops working. This can't be undone.":"This can't be undone.",cta:"Delete",danger:!0,onConfirm:async()=>{let b=await m(a.id);return{ok:b.ok,message:(b.ok?b.message:b.error)??""}}}),y&&(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(e.f,{open:s,onOpenChange:t,title:`New ping URL for ${a.path}?`,body:"Make a new ping URL? The old one stops working, so update your job.",cta:"Make a new URL",onConfirm:async()=>{let b=await j(a.id);return b.ok&&b.data?.pingUrl&&v(b.data.pingUrl),{ok:b.ok,message:(b.ok?b.message:b.error)??""}}}),(0,b.jsx)(o.f,{name:a.path,url:u,onClose:()=>v(null)})]})]})}],788831)}]})();
|
|
1
|
+
(()=>{"use strict";module.exports=[320518,a=>{var b=a.i(187924),c=a.i(249490),d=a.i(572131),e=a.i(823292),f=a.i(619089),g=a.i(507504),h=a.i(814574),i=a.i(941881),j=a.i(147474);let k=[30,60,90,180,360];function l(a){return"all"===a.scope?"all":"app"===a.scope?`app:${a.appId}`:`monitor:${a.monitorId}`}var m=a.i(405050);let n=(0,m.createServerReference)("4090e02b7cdbc798ad6713238a795294059df5083e",m.callServer,void 0,m.findSourceMapURL,"addWindow"),o=(0,m.createServerReference)("6006ea58e4e2674b26b1a5f5412922364adec3e74e",m.callServer,void 0,m.findSourceMapURL,"editWindow");function p(a){if("edit"===a.mode){let b=a.win;return{target:l(b),weekly:b.weekly,start:(0,j.S)(b.startsAt),durationMin:String(b.durationMin),note:b.note??""}}return{target:"all",weekly:!1,start:(0,j.S)(new Date(36e5*Math.ceil(Date.now()/36e5))),durationMin:"90",note:""}}a.s(["MaintenanceDialog",0,function(a){let[m,q]=(0,d.useState)(!1),r="edit"===a.mode?a.open:m,[s,t]=(0,d.useState)(()=>p(a)),[u,v]=(0,d.useState)({}),[w,x]=(0,d.useTransition)();function y(b){b&&(t(p(a)),v({})),"edit"===a.mode?a.onOpenChange(b):q(b)}(0,g.useHoldRefresh)(r);let{apps:z,monitors:A}=a.options,B="edit"===a.mode?l(a.win):null,C="all"===B||z.some(a=>`app:${a.id}`===B)||A.some(a=>`monitor:${a.id}`===B),D=u.scope??u.targetId;return(0,b.jsxs)(h.N,{open:r,onOpenChange:a=>{w||y(a)},children:["add"===a.mode&&(0,b.jsx)(h.a,{render:(0,b.jsx)(f.K,{children:"Add maintenance window"})}),(0,b.jsxs)(h.d,{className:"gap-0 p-0 sm:max-w-[560px]",showCloseButton:!1,children:[(0,b.jsxs)("div",{className:"flex items-start gap-3 px-[18px] pb-2 pt-4",children:[(0,b.jsx)("span",{className:"grid size-9 shrink-0 place-items-center rounded-lg bg-sunken text-ink-soft",children:(0,b.jsx)(c.f,{size:19})}),(0,b.jsxs)("div",{children:[(0,b.jsx)(h.F,{className:"text-base",children:"add"===a.mode?"Add maintenance window":"Edit maintenance window"}),(0,b.jsxs)(h.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,j.n)()]})]})]}),(0,b.jsxs)("form",{onSubmit:b=>{b.preventDefault(),function(){var b,c;let d={...function(a){if("all"===a)return{scope:"all",targetId:""};let b=/^(app|monitor):(.+)$/.exec(a);return b?{scope:b[1],targetId:b[2]}:{scope:"",targetId:""}}(s.target),start:s.start,durationMin:s.durationMin,weekly:s.weekly,note:s.note},f=function(a){let b={},c="all"===a.scope||"app"===a.scope||"monitor"===a.scope?a.scope:null;c||(b.scope="Pick what it applies to.");let d="string"==typeof a.start?a.start:"",e=(0,j.a)(d);e||(b.start="Pick a start time.");let f=Number(a.durationMin);k.includes(f)||(b.durationMin="Pick how long it lasts.");let g="string"==typeof a.targetId?a.targetId:"";if(c&&"all"!==c&&!(0,i.f)(g)&&(b.targetId="app"===c?"Pick an application.":"Pick a monitor."),Object.keys(b).length||!c||!e)return{ok:!1,fieldErrors:b};let h=("string"==typeof a.note?a.note:"").trim().slice(0,120)||null;return{ok:!0,value:{scope:c,appId:"app"===c?g:null,monitorId:"monitor"===c?g:null,startsAt:e,durationMin:f,weekly:!0===a.weekly,note:h}}}(d);if(!f.ok)return v(f.fieldErrors);(b=f.value,c=new Date,!b.weekly&&b.startsAt.getTime()+6e4*b.durationMin<=c.getTime())?v({start:"That window has already ended."}):(v({}),x(async()=>{let b="add"===a.mode?await n(d):await o(a.win.id,d);if(!b.ok){v(b.fieldErrors??{}),e.c.error(b.error);return}e.c.success("Window saved",{description:b.message}),y(!1)}))}()},children:[(0,b.jsxs)("div",{className:"px-[18px] pt-2",children:[(0,b.jsx)(f.O,{id:"mw-scope",label:"Applies to",error:D,children:(0,b.jsxs)("select",{id:"mw-scope",className:f.S,value:s.target,onChange:a=>t({...s,target:a.target.value}),children:[(0,b.jsx)("option",{value:"all",children:"All monitors"}),"edit"===a.mode&&!C&&B&&(0,b.jsx)("option",{value:B,children:a.win.target}),z.length>0&&(0,b.jsx)("optgroup",{label:"Application",children:z.map(a=>(0,b.jsx)("option",{value:`app:${a.id}`,children:a.name},a.id))}),A.length>0&&(0,b.jsx)("optgroup",{label:"One monitor",children:A.map(a=>(0,b.jsx)("option",{value:`monitor:${a.id}`,children:a.label},a.id))})]})}),(0,b.jsxs)("fieldset",{className:"mb-3.5 flex flex-col gap-[5px]",children:[(0,b.jsx)("legend",{className:"mb-[5px] text-[13px] font-medium",children:"Repeat"}),(0,b.jsx)("div",{className:"flex flex-wrap gap-x-4 gap-y-1.5",children:[[!1,"Once"],[!0,"Every week"]].map(([a,c])=>(0,b.jsxs)("label",{className:"flex items-center gap-1.5 text-[13px]",children:[(0,b.jsx)("input",{type:"radio",name:"mw-rep",className:"size-4 accent-brand",checked:s.weekly===a,onChange:()=>t({...s,weekly:a})}),c]},c))})]}),(0,b.jsxs)("div",{className:"grid grid-cols-1 gap-3 sm:grid-cols-2",children:[(0,b.jsx)(f.O,{id:"mw-start",label:"Starts",error:u.start,children:(0,b.jsx)("input",{id:"mw-start",type:"datetime-local",className:f.S,value:s.start,onChange:a=>t({...s,start:a.target.value})})}),(0,b.jsx)(f.O,{id:"mw-len",label:"Lasts",error:u.durationMin,children:(0,b.jsx)("select",{id:"mw-len",className:f.S,value:s.durationMin,onChange:a=>t({...s,durationMin:a.target.value}),children:k.map(a=>{let c,d;return(0,b.jsx)("option",{value:String(a),children:[(c=Math.floor(a/60))?`${c} h`:"",(d=a%60)?`${d} min`:""].filter(Boolean).join(" ")},a)})})})]}),(0,b.jsx)(f.O,{id:"mw-note",label:"Note (optional)",help:"Shown on the public status page if a monitor there is affected.",children:(0,b.jsx)("input",{id:"mw-note",className:f.S,value:s.note,maxLength:120,placeholder:"Moving DNS to Cloudflare",autoComplete:"off",onChange:a=>t({...s,note:a.target.value})})})]}),(0,b.jsxs)("div",{className:"flex flex-wrap items-center justify-end gap-2 border-t border-line px-[18px] py-3",children:[(0,b.jsx)(f.K,{onClick:()=>y(!1),disabled:w,children:"Cancel"}),(0,b.jsx)(f.K,{type:"submit",variant:"primary",disabled:w,children:w?"Saving…":"add"===a.mode?"Add window":"Save"})]})]})]})]})}],320518)},723355,a=>{var b=a.i(187924),c=a.i(572131),d=a.i(611619),e=a.i(188406),f=a.i(742680),g=a.i(405050);let h=(0,g.createServerReference)("40f25e830e97fac8e137e925ecd63e4b2dce3eb5ef",g.callServer,void 0,g.findSourceMapURL,"removeWindow");var i=a.i(320518);a.s(["MaintenanceMenu",0,function({win:a,options:g}){let[j,k]=(0,c.useState)(!1),[l,m]=(0,c.useState)(!1);return(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(e.RowMenu,{label:(0,f.J)(a.target,"window"),items:[{label:"Edit window",onSelect:()=>k(!0)},"---",{label:"Delete",danger:!0,onSelect:()=>m(!0)}]}),j&&(0,b.jsx)(i.MaintenanceDialog,{mode:"edit",win:a,options:g,open:!0,onOpenChange:k}),(0,b.jsx)(d.f,{open:l,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 b=await h(a.id);return{ok:b.ok,message:(b.ok?b.message:b.error)??""}}})]})}],723355)},642823,855771,a=>{var b=a.i(187924),c=a.i(614548),d=a.i(572131),e=a.i(823292),f=a.i(619089),g=a.i(507504),h=a.i(814574),i=a.i(880305),j=a.i(310412),k=a.i(405050);let l=(0,k.createServerReference)("602826465a3ca746fa351331f0e3a7ea1bd31c552a",k.callServer,void 0,k.findSourceMapURL,"addHeartbeat"),m=(0,k.createServerReference)("607e0bd6d06591e713882c962056be4fe9ce7f255d",k.callServer,void 0,k.findSourceMapURL,"addMonitor"),n=(0,k.createServerReference)("60ca5a4ba2c8c220a8f46b450c7dd2d44b41883bbc",k.callServer,void 0,k.findSourceMapURL,"editHeartbeat"),o=(0,k.createServerReference)("60d62d4e2d3d29f909e37c6283262a25e351729adb",k.callServer,void 0,k.findSourceMapURL,"editMonitor");var p=a.i(771378);function q(a){return null===a?{ok:!1,text:"Couldn't reach the console"}:a>=200&&a<300?{ok:!0,text:`OK \xb7 ${a}`}:404===a?{ok:!1,text:"Not found · 404"}:429===a?{ok:!1,text:"Too many pings · 429"}:{ok:!1,text:`Failed \xb7 ${a}`}}function r({name:a,url:i,onClose:j}){let k=null!==i,[l,m]=(0,d.useState)(!1),[n,o]=(0,d.useState)(null);async function s(){if(i)try{await navigator.clipboard.writeText(i),e.c.success("Copied.")}catch{e.c.error("Couldn't copy. Select the URL and copy it yourself.")}}async function t(a){let b,c=i?(b=/\/api\/ping\/(hb_[0-9a-f]{32})\/?$/.exec(i))?`/api/ping/${b[1]}${"fail"===a?"/fail":""}`:null:null;if(c&&!l){m(!0),o(null);try{let a=await fetch(c,{method:"GET",cache:"no-store"});o(q(a.status))}catch{o(q(null))}finally{m(!1)}}}function u(){o(null),j()}return(0,g.useHoldRefresh)(k),(0,b.jsx)(h.N,{open:k,onOpenChange:a=>{a||u()},children:(0,b.jsxs)(h.d,{className:"gap-0 p-0 sm:max-w-[640px]",showCloseButton:!1,children:[(0,b.jsxs)("div",{className:"flex items-start gap-3 px-[18px] pb-2 pt-4",children:[(0,b.jsx)("span",{className:"grid size-9 shrink-0 place-items-center rounded-lg bg-sunken text-ink-soft",children:(0,b.jsx)(c.f,{size:19})}),(0,b.jsxs)("div",{className:"min-w-0",children:[(0,b.jsxs)(h.F,{className:"text-base",children:["Ping URL for ",(0,b.jsx)(p.Masked,{kind:"text",real:a})]}),(0,b.jsx)(h.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,b.jsxs)("div",{className:"px-[18px] pt-2",children:[(0,b.jsxs)("div",{className:"mb-3 flex items-center gap-1.5",children:[(0,b.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:i&&(0,b.jsx)(p.Masked,{kind:"text",real:i,masked:i.replace(/(\/api\/ping\/).*/,"$1••••••")})}),(0,b.jsx)(f.K,{size:"sm",onClick:s,children:"Copy"})]}),(0,b.jsxs)("div",{className:"mb-3.5 flex flex-wrap items-center gap-2",children:[(0,b.jsx)(f.K,{size:"sm",disabled:l,onClick:()=>t("ok"),children:"Send test ping"}),(0,b.jsx)(f.K,{size:"sm",disabled:l,onClick:()=>t("fail"),children:"Test fail"}),(0,b.jsx)("span",{role:"status","aria-live":"polite",className:`text-[13px] ${n?n.ok?"text-ok":"text-err":"text-ink-soft"}`,children:l?"Sending…":n?.text??""})]}),(0,b.jsxs)("div",{className:"mb-3.5 rounded-lg border border-line bg-surface-2 px-3 py-2.5 text-[13px]",children:[(0,b.jsx)("b",{className:"font-medium",children:"From your job"}),(0,b.jsxs)("ul",{className:"mt-1 list-disc pl-[18px] text-ink-soft",children:[(0,b.jsxs)("li",{children:["When it succeeds: ",(0,b.jsx)("span",{className:"font-mono",children:"curl -fsS -m 10 <url>"})]}),(0,b.jsxs)("li",{children:["When it fails: add ",(0,b.jsx)("span",{className:"font-mono",children:"/fail"})," to the URL"]}),(0,b.jsxs)("li",{children:["When it starts (optional): add ",(0,b.jsx)("span",{className:"font-mono",children:"/start"})]})]})]})]}),(0,b.jsx)("div",{className:"flex justify-end gap-2 border-t border-line px-[18px] py-3",children:(0,b.jsx)(f.K,{variant:"primary",onClick:u,children:"Done"})})]})})}a.s(["f",0,r],855771);let s={name:"",periodS:"86400",graceS:"3600"},t=[["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 u(a){if("edit"===a.mode){let b=a.monitor;return{appId:"",kind:b.kind,url:"http"===b.kind?b.url:"",expectedStatus:String(b.expectedStatus),timeoutS:String(Math.round(b.timeoutMs/1e3)),bodyContains:b.bodyContains??"",jsonPath:b.jsonPath??"",jsonEquals:b.jsonEquals??"",name:b.name??"",periodS:String(b.periodS??s.periodS),graceS:String(b.graceS??s.graceS)}}let b=a.apps[0];return{appId:b?.id??"",kind:"http",url:b?`https://${b.domain}/api/health`:"",expectedStatus:"200",timeoutS:"5",bodyContains:"",jsonPath:"",jsonEquals:"",...s}}a.s(["MonitorDialog",0,function(a){let[k,p]=(0,d.useState)(!1),q="edit"===a.mode?a.open:k,[s,v]=(0,d.useState)(()=>u(a)),[w,x]=(0,d.useState)({}),[y,z]=(0,d.useTransition)(),[A,B]=(0,d.useState)(null);function C(b){b&&(v(u(a)),x({})),"edit"===a.mode?a.onOpenChange(b):p(b)}(0,g.useHoldRefresh)(q);let D="add"===a.mode?a.apps:[],E="add"===a.mode&&0===D.length,F="heartbeat"===s.kind,G="add"===a.mode?"HTTP checks run every minute from the collector. Heartbeats wait for your job to ping the console.":F?"Your job pings the console; nothing is fetched.":"Checked every minute from the collector.";return(0,b.jsxs)(b.Fragment,{children:[(0,b.jsxs)(h.N,{open:q,onOpenChange:a=>{y||C(a)},children:["add"===a.mode&&(E?(0,b.jsx)("span",{title:"Watch an app first, in Connections → Sync",className:"inline-flex",children:(0,b.jsx)(f.K,{variant:"primary",disabled:!0,children:"Add monitor"})}):(0,b.jsx)(h.a,{render:(0,b.jsx)(f.K,{variant:"primary",children:"Add monitor"})})),(0,b.jsxs)(h.d,{className:"gap-0 p-0 sm:max-w-[640px]",showCloseButton:!1,children:[(0,b.jsxs)("div",{className:"flex items-start gap-3 px-[18px] pb-2 pt-4",children:[(0,b.jsx)("span",{className:"grid size-9 shrink-0 place-items-center rounded-lg bg-sunken text-ink-soft",children:(0,b.jsx)(c.f,{size:19})}),(0,b.jsxs)("div",{children:[(0,b.jsx)(h.F,{className:"text-base",children:"add"===a.mode?"Add monitor":"Edit monitor"}),(0,b.jsx)(h.C,{className:"mt-0.5 text-[13px] text-ink-soft",children:G})]})]}),(0,b.jsxs)("form",{onSubmit:b=>{let c,d;b.preventDefault(),(d=(c="heartbeat"===s.kind)?(0,j.a)(s):(0,j.X)(s)).ok?(x({}),z(async()=>{let b=c?"add"===a.mode?await l(s.appId,s):await n(a.monitor.id,s):"add"===a.mode?await m(s.appId,s):await o(a.monitor.id,s);if(!b.ok){x(b.fieldErrors??{}),e.c.error(b.error);return}e.c.success("add"===a.mode?"Monitor added":"Monitor saved",{description:b.message}),C(!1);let d=b.data&&"pingUrl"in b.data?b.data.pingUrl:null;d&&B({name:s.name.trim(),url:d})})):x(d.fieldErrors)},children:[(0,b.jsxs)("div",{className:"px-[18px] pt-2",children:["add"===a.mode&&(0,b.jsxs)("fieldset",{className:"mb-3.5",children:[(0,b.jsx)("legend",{className:"mb-[5px] text-[13px] font-medium",children:"Type"}),(0,b.jsx)("div",{className:"overflow-hidden rounded-lg border border-line",children:t.map(([a,c,d])=>(0,b.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,b.jsx)("input",{type:"radio",name:"mon-kind",value:a,checked:s.kind===a,className:"mt-[3px] accent-brand",onChange:()=>{v({...s,kind:a}),x({})}}),(0,b.jsxs)("span",{children:[c,(0,b.jsx)("small",{className:"block text-xs text-ink-faint",children:d})]})]},a))})]}),(0,b.jsx)(f.O,{id:"mon-app",label:"Application",children:"add"===a.mode?(0,b.jsx)("select",{id:"mon-app",className:f.S,value:s.appId,onChange:a=>{let b=D.find(b=>b.id===a.target.value);v({...s,appId:a.target.value,url:b?`https://${b.domain}/`:s.url})},children:D.map(a=>(0,b.jsx)("option",{value:a.id,children:a.name},a.id))}):(0,b.jsx)("input",{id:"mon-app",className:f.S,value:a.monitor.appName,disabled:!0})}),F?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(f.O,{id:"hb-name",label:"Name",error:w.name,children:(0,b.jsx)("input",{id:"hb-name",className:f.S,value:s.name,placeholder:"backup job",maxLength:80,autoComplete:"off",onChange:a=>v({...s,name:a.target.value})})}),(0,b.jsxs)("div",{className:"grid grid-cols-1 gap-3 sm:grid-cols-2",children:[(0,b.jsx)(f.O,{id:"hb-every",label:"Expected every",error:w.periodS,children:(0,b.jsx)("select",{id:"hb-every",className:f.S,value:s.periodS,onChange:a=>v({...s,periodS:a.target.value}),children:i.Q.map(a=>(0,b.jsx)("option",{value:String(a),children:(0,i.v)(a)},a))})}),(0,b.jsx)(f.O,{id:"hb-grace",label:"Grace time",error:w.graceS,children:(0,b.jsx)("select",{id:"hb-grace",className:f.S,value:s.graceS,onChange:a=>v({...s,graceS:a.target.value}),children:i.q.map(a=>(0,b.jsx)("option",{value:String(a),children:(0,i.v)(a)},a))})})]}),(0,b.jsxs)("p",{className:"mb-3 text-[13px] text-ink-soft",children:["Late once the period passes, down after the grace time too.","add"===a.mode?" The ping URL is shown once after you add it.":""]})]}):(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(f.O,{id:"mon-url",label:"URL",help:"Must start with https://. A health route that touches nothing heavy works best.",error:w.url,children:(0,b.jsx)("input",{id:"mon-url",className:f.S,value:s.url,autoComplete:"off",spellCheck:!1,onChange:a=>v({...s,url:a.target.value})})}),(0,b.jsxs)("div",{className:"grid grid-cols-1 gap-3 sm:grid-cols-2",children:[(0,b.jsx)(f.O,{id:"mon-code",label:"Expected status",error:w.expectedStatus,children:(0,b.jsx)("input",{id:"mon-code",className:f.S,inputMode:"numeric",value:s.expectedStatus,onChange:a=>v({...s,expectedStatus:a.target.value})})}),(0,b.jsx)(f.O,{id:"mon-timeout",label:"Timeout",error:w.timeoutS,children:(0,b.jsx)("select",{id:"mon-timeout",className:f.S,value:s.timeoutS,onChange:a=>v({...s,timeoutS:a.target.value}),children:j.L.map(a=>(0,b.jsxs)("option",{value:String(a),children:[a," s"]},a))})})]}),(0,b.jsx)(f.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:w.bodyContains,children:(0,b.jsx)("input",{id:"mon-match",className:f.S,value:s.bodyContains??"",placeholder:'e.g. "status":"ok"',autoComplete:"off",spellCheck:!1,onChange:a=>v({...s,bodyContains:a.target.value})})}),(0,b.jsxs)("div",{className:"grid grid-cols-1 gap-3 sm:grid-cols-2",children:[(0,b.jsx)(f.O,{id:"mon-jpath",label:"Or JSON field (optional)",error:w.jsonPath,children:(0,b.jsx)("input",{id:"mon-jpath",className:`${f.S} font-mono`,value:s.jsonPath??"",placeholder:"status or checks.db",autoComplete:"off",spellCheck:!1,onChange:a=>v({...s,jsonPath:a.target.value})})}),(0,b.jsx)(f.O,{id:"mon-jeq",label:"Equals",error:w.jsonEquals,children:(0,b.jsx)("input",{id:"mon-jeq",className:`${f.S} font-mono`,value:s.jsonEquals??"",placeholder:"ok",autoComplete:"off",spellCheck:!1,onChange:a=>v({...s,jsonEquals:a.target.value})})})]}),(0,b.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,b.jsxs)("div",{className:"flex flex-wrap items-center justify-end gap-2 border-t border-line px-[18px] py-3",children:[(0,b.jsx)(f.K,{onClick:()=>C(!1),disabled:y,children:"Cancel"}),(0,b.jsx)(f.K,{type:"submit",variant:"primary",disabled:y,children:y?"Saving…":"add"===a.mode?"Add monitor":"Save"})]})]})]})]}),(0,b.jsx)(r,{name:A?.name??"",url:A?.url??null,onClose:()=>B(null)})]})}],642823)},788831,a=>{var b=a.i(187924),c=a.i(572131),d=a.i(823292),e=a.i(611619),f=a.i(188406),g=a.i(742680),h=a.i(405050);let i=(0,h.createServerReference)("40716b4558fcb72e1e63eb38ced27a6501349d1b8d",h.callServer,void 0,h.findSourceMapURL,"checkNow"),j=(0,h.createServerReference)("40d4d7c9e655aa51d2455ac3a36776fbe9abdf635a",h.callServer,void 0,h.findSourceMapURL,"newPingUrl"),k=(0,h.createServerReference)("60b8491b37eaff25b82364b9776c8338c2c59e4307",h.callServer,void 0,h.findSourceMapURL,"pauseMonitor"),l=(0,h.createServerReference)("60cda40dafb1d93d64dd747bf1a4fc15f8a3f9d918",h.callServer,void 0,h.findSourceMapURL,"recordTestPingAction"),m=(0,h.createServerReference)("407c5f7c5879989fde09f0c21a71fc50d728034984",h.callServer,void 0,h.findSourceMapURL,"removeMonitor");var n=a.i(642823),o=a.i(855771);a.s(["MonitorMenu",0,function({monitor:a}){let[h,p]=(0,c.useState)(!1),[q,r]=(0,c.useState)(!1),[s,t]=(0,c.useState)(!1),[u,v]=(0,c.useState)(null),[,w]=(0,c.useTransition)(),x=(0,c.useRef)(!1),y="heartbeat"===a.kind,z=y?`${a.appName} \xb7 ${a.path}`:`${a.appName}${a.path}`,A=(a,b)=>{if(x.current)return;x.current=!0;let c=b?d.c.loading(b):void 0;w(async()=>{try{let b=await a();b.ok?b.data?.passed===!1?d.c.warning(b.message??"",{id:c}):d.c.success(b.message??"",{id:c}):d.c.error(b.error,{id:c})}catch{d.c.error("Something went wrong. Try again.",{id:c})}finally{x.current=!1}})},B={label:a.ownerPaused?"Resume":"Pause",onSelect:()=>A(()=>k(a.id,!a.ownerPaused))},C=y?{label:"Show ping URL",onSelect:()=>t(!0)}:{label:"Check now",onSelect:()=>A(()=>i(a.id),`Checking ${z}…`)};return(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(f.RowMenu,{label:(0,g.J)(a.appName,a.path),items:[C,...y?[{label:"Record a test ping: OK",onSelect:()=>A(()=>l(a.id,"ok"))},{label:"Record a test ping: Fail",onSelect:()=>A(()=>l(a.id,"fail"))}]:[],{label:"Edit monitor",onSelect:()=>p(!0)},B,"---",{label:"Delete",danger:!0,onSelect:()=>r(!0)}]}),h&&(0,b.jsx)(n.MonitorDialog,{mode:"edit",monitor:a,open:!0,onOpenChange:p}),(0,b.jsx)(e.f,{open:q,onOpenChange:r,title:`Delete ${z}?`,body:y?"Its ping URL stops working. This can't be undone.":"This can't be undone.",cta:"Delete",danger:!0,onConfirm:async()=>{let b=await m(a.id);return{ok:b.ok,message:(b.ok?b.message:b.error)??""}}}),y&&(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(e.f,{open:s,onOpenChange:t,title:`New ping URL for ${a.path}?`,body:"Make a new ping URL? The old one stops working, so update your job.",cta:"Make a new URL",onConfirm:async()=>{let b=await j(a.id);return b.ok&&b.data?.pingUrl&&v(b.data.pingUrl),{ok:b.ok,message:(b.ok?b.message:b.error)??""}}}),(0,b.jsx)(o.f,{name:a.path,url:u,onClose:()=>v(null)})]})]})}],788831)}]})();
|
|
2
2
|
|
|
3
3
|
//# sourceMappingURL=src_app_%28console%29_uptime_1mnnkfi-2zv-k._.js.map
|
package/server/.next/server/chunks/ssr/src_app_(console)_vercel-actions_ts_0wpk1yo9v632d._.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
module.exports=[429852,a=>{"use strict";var b=a.i(137936),c=a.i(600079),d=a.i(109307),e=a.i(322145),f=a.i(915598),g=a.i(683439),h=a.i(75105),i=a.i(572134),j=a.i(657582),k=a.i(713095);let l={requireActionMember:d.g};async function m(a,b){return(0,c.F)("operator",async c=>(0,g.f)(a)&&"string"==typeof b&&f.T.test(b)?(0,f.B)(c,a,b):{ok:!1,error:h.w},l)}async function n(a,b){return(0,c.F)("operator",async c=>(0,g.f)(a)&&"string"==typeof b&&f.T.test(b)?(0,f.U)(c,a,b):{ok:!1,error:h.w},l)}async function o(a,b){return(0,c.F)("operator",async c=>{if(!(0,g.f)(a)||"string"!=typeof b||!f.T.test(b))return{ok:!1,error:h.w};let d=await (0,f.p)(c,"promote",a);if("string"==typeof d)return(0,e.W)((0,f.O)(d),c,"");let k=await (0,f.X)(d);if(!k.ok)return(0,e.W)((0,f.O)(k.error),c,d.t.account.id);if(k.data.currentId===b)return(0,e.W)((0,f.O)(f.f),c,d.t.account.id);let l=k.data.production.find(a=>a.id===b);if(!l||"staged"!==(0,j.U)(l,k.data.currentId,k.data.production))return(0,e.W)((0,f.O)(f.u),c,d.t.account.id);let m=(0,f.C)(l,b),n=await (0,i.u)(d.t.token,d.teamId,d.projectId,b);return(0,f.J)(d,n,{message:`Promoted ${m}. New pushes to ${d.app} go live again.`,audit:`Promoted \xb7 ${d.app} → ${m}`},`Promote failed \xb7 ${d.app} → ${m}`)},l)}async function p(a,b){return(0,c.F)("operator",async c=>{if(!(0,g.f)(a)||"string"!=typeof b||!f.T.test(b))return{ok:!1,error:h.w};let d=await (0,f.p)(c,"cancel",a);if("string"==typeof d)return(0,e.W)((0,f.O)(d),c,"");let j=await (0,i.S)(d.t.token,{id:d.teamId,slug:d.teamSlug,name:d.teamSlug},b);if(!j.ok)return(0,e.W)((0,f.O)(404===j.status?"Vercel can't find that build any more.":j.error),c,d.t.account.id);if(j.data.projectId!==d.projectId)return(0,e.W)((0,f.O)(h.w),c,d.t.account.id);if(!f.o.has(j.data.rawState))return(0,e.W)((0,f.O)("This build already finished."),c,d.t.account.id);let k=(0,f.C)(j.data,b),l=await (0,i.T)(d.t.token,d.teamId,b);return(0,f.J)(d,l,{message:"Build canceled. The current production deployment stays live.",audit:`Build canceled \xb7 ${d.app} \xb7 ${k}`},`Cancel failed \xb7 ${d.app} \xb7 ${k}`)},l)}async function q(a,b){return(0,c.F)("operator",async c=>{if(!(0,g.f)(a)||"string"!=typeof b||!f.T.test(b))return{ok:!1,error:h.w};let d=await (0,f.p)(c,"promote-preview",a);if("string"==typeof d)return(0,e.W)((0,f.O)(d),c,"");let k=await (0,i.S)(d.t.token,{id:d.teamId,slug:d.teamSlug,name:d.teamSlug},b);if(!k.ok)return(0,e.W)((0,f.O)(404===k.status?f.G:k.error),c,d.t.account.id);if(k.data.projectId!==d.projectId)return(0,e.W)((0,f.O)(h.w),c,d.t.account.id);if("preview"!==k.data.target||"READY"!==k.data.rawState)return(0,e.W)((0,f.O)(f.l),c,d.t.account.id);let l=await (0,f.X)(d);if(!l.ok)return(0,e.W)((0,f.O)(l.error),c,d.t.account.id);if(l.data.production.some(a=>"staged"===(0,j.U)(a,l.data.currentId,l.data.production)))return(0,e.W)((0,f.O)(f.S),c,d.t.account.id);let m=await (0,i.N)(d.t.token,d.teamId,d.projectId);if(!m.ok)return(0,e.W)((0,f.O)(m.error),c,d.t.account.id);if(m.data)return(0,e.W)((0,f.O)(`A production build of ${d.app} is already running.`),c,d.t.account.id);let n=(0,f.C)(k.data,b),o=await (0,i.l)(d.t.token,d.teamId,{projectId:d.projectId,name:l.data.name,deploymentId:b});return(0,f.J)(d,o,{message:`Promoting ${n} to production. Vercel is building ${d.app} with the production environment variables; it goes live when the build is ready.`,audit:`Preview promoted \xb7 ${d.app} \xb7 ${n}`},`Preview promote failed \xb7 ${d.app} \xb7 ${n}`)},l)}(0,k.ensureServerEntryExports)([m,n,o,p,q]),(0,b.registerServerReference)(m,"
|
|
1
|
+
module.exports=[429852,a=>{"use strict";var b=a.i(137936),c=a.i(600079),d=a.i(109307),e=a.i(322145),f=a.i(915598),g=a.i(683439),h=a.i(75105),i=a.i(572134),j=a.i(657582),k=a.i(713095);let l={requireActionMember:d.g};async function m(a,b){return(0,c.F)("operator",async c=>(0,g.f)(a)&&"string"==typeof b&&f.T.test(b)?(0,f.B)(c,a,b):{ok:!1,error:h.w},l)}async function n(a,b){return(0,c.F)("operator",async c=>(0,g.f)(a)&&"string"==typeof b&&f.T.test(b)?(0,f.U)(c,a,b):{ok:!1,error:h.w},l)}async function o(a,b){return(0,c.F)("operator",async c=>{if(!(0,g.f)(a)||"string"!=typeof b||!f.T.test(b))return{ok:!1,error:h.w};let d=await (0,f.p)(c,"promote",a);if("string"==typeof d)return(0,e.W)((0,f.O)(d),c,"");let k=await (0,f.X)(d);if(!k.ok)return(0,e.W)((0,f.O)(k.error),c,d.t.account.id);if(k.data.currentId===b)return(0,e.W)((0,f.O)(f.f),c,d.t.account.id);let l=k.data.production.find(a=>a.id===b);if(!l||"staged"!==(0,j.U)(l,k.data.currentId,k.data.production))return(0,e.W)((0,f.O)(f.u),c,d.t.account.id);let m=(0,f.C)(l,b),n=await (0,i.u)(d.t.token,d.teamId,d.projectId,b);return(0,f.J)(d,n,{message:`Promoted ${m}. New pushes to ${d.app} go live again.`,audit:`Promoted \xb7 ${d.app} → ${m}`},`Promote failed \xb7 ${d.app} → ${m}`)},l)}async function p(a,b){return(0,c.F)("operator",async c=>{if(!(0,g.f)(a)||"string"!=typeof b||!f.T.test(b))return{ok:!1,error:h.w};let d=await (0,f.p)(c,"cancel",a);if("string"==typeof d)return(0,e.W)((0,f.O)(d),c,"");let j=await (0,i.S)(d.t.token,{id:d.teamId,slug:d.teamSlug,name:d.teamSlug},b);if(!j.ok)return(0,e.W)((0,f.O)(404===j.status?"Vercel can't find that build any more.":j.error),c,d.t.account.id);if(j.data.projectId!==d.projectId)return(0,e.W)((0,f.O)(h.w),c,d.t.account.id);if(!f.o.has(j.data.rawState))return(0,e.W)((0,f.O)("This build already finished."),c,d.t.account.id);let k=(0,f.C)(j.data,b),l=await (0,i.T)(d.t.token,d.teamId,b);return(0,f.J)(d,l,{message:"Build canceled. The current production deployment stays live.",audit:`Build canceled \xb7 ${d.app} \xb7 ${k}`},`Cancel failed \xb7 ${d.app} \xb7 ${k}`)},l)}async function q(a,b){return(0,c.F)("operator",async c=>{if(!(0,g.f)(a)||"string"!=typeof b||!f.T.test(b))return{ok:!1,error:h.w};let d=await (0,f.p)(c,"promote-preview",a);if("string"==typeof d)return(0,e.W)((0,f.O)(d),c,"");let k=await (0,i.S)(d.t.token,{id:d.teamId,slug:d.teamSlug,name:d.teamSlug},b);if(!k.ok)return(0,e.W)((0,f.O)(404===k.status?f.G:k.error),c,d.t.account.id);if(k.data.projectId!==d.projectId)return(0,e.W)((0,f.O)(h.w),c,d.t.account.id);if("preview"!==k.data.target||"READY"!==k.data.rawState)return(0,e.W)((0,f.O)(f.l),c,d.t.account.id);let l=await (0,f.X)(d);if(!l.ok)return(0,e.W)((0,f.O)(l.error),c,d.t.account.id);if(l.data.production.some(a=>"staged"===(0,j.U)(a,l.data.currentId,l.data.production)))return(0,e.W)((0,f.O)(f.S),c,d.t.account.id);let m=await (0,i.N)(d.t.token,d.teamId,d.projectId);if(!m.ok)return(0,e.W)((0,f.O)(m.error),c,d.t.account.id);if(m.data)return(0,e.W)((0,f.O)(`A production build of ${d.app} is already running.`),c,d.t.account.id);let n=(0,f.C)(k.data,b),o=await (0,i.l)(d.t.token,d.teamId,{projectId:d.projectId,name:l.data.name,deploymentId:b});return(0,f.J)(d,o,{message:`Promoting ${n} to production. Vercel is building ${d.app} with the production environment variables; it goes live when the build is ready.`,audit:`Preview promoted \xb7 ${d.app} \xb7 ${n}`},`Preview promote failed \xb7 ${d.app} \xb7 ${n}`)},l)}(0,k.ensureServerEntryExports)([m,n,o,p,q]),(0,b.registerServerReference)(m,"60bd9f9504135c45447432463c5937b0d0ed02c686",null),(0,b.registerServerReference)(n,"604f882fb43dd09b09effb94531940a216059cba1f",null),(0,b.registerServerReference)(o,"606099ae89a34d41e35ca98354adcc6aff9f40fa75",null),(0,b.registerServerReference)(p,"609b96b36941d0c0b1f097f5c76f20e7f86699fc9c",null),(0,b.registerServerReference)(q,"60df4931f0a0816976207881d81c34c8852e770838",null),a.s(["x",0,p,"j",0,o,"Y",0,q,"t",0,m,"d",0,n])}];
|
|
2
2
|
|
|
3
3
|
//# sourceMappingURL=src_app_%28console%29_vercel-actions_ts_0wpk1yo9v632d._.js.map
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
module.exports=[829254,a=>{"use strict";var b=a.i(187924),c=a.i(572131),d=a.i(619089),e=a.i(405050);let f=(0,e.createServerReference)("
|
|
1
|
+
module.exports=[829254,a=>{"use strict";var b=a.i(187924),c=a.i(572131),d=a.i(619089),e=a.i(405050);let f=(0,e.createServerReference)("607039821ca40b7b79c5704da11debbc41ee434757",e.callServer,void 0,e.findSourceMapURL,"confirmMfaEnrollment"),g=(0,e.createServerReference)("00c867bc80b1ccab8f963bd7b305f5a5800bea372c",e.callServer,void 0,e.findSourceMapURL,"startMfaEnrollment");var h=a.i(756540);a.s(["SetupFlow",0,function(){let[a,e]=(0,c.useState)(null),[i,j]=(0,c.useTransition)(),[k,l,m]=(0,c.useActionState)(f,{status:"idle"});(0,h.f)(k);let n="done"===k.status;return a&&a.ok?(0,b.jsxs)("form",{action:l,children:[(0,b.jsxs)("ol",{className:"mb-3 list-decimal pl-5 text-[13px] text-ink-soft",children:[(0,b.jsx)("li",{children:"Scan this QR code with your authenticator app."}),(0,b.jsx)("li",{children:"Type the 6-digit code it shows."})]}),(0,b.jsx)("img",{src:a.qr,alt:"QR code for your authenticator app",className:"mx-auto mb-3 size-44 rounded-lg bg-white p-2"}),(0,b.jsxs)("p",{className:"mb-3 text-center text-[12.5px] text-ink-soft",children:["Can't scan? Enter this key: ",(0,b.jsx)("code",{className:"font-mono break-all text-ink",children:a.secret})]}),(0,b.jsx)("input",{type:"hidden",name:"factorId",value:a.factorId}),(0,b.jsx)(d.O,{id:"code",label:"Code",error:"error"===k.status?k.message:void 0,children:(0,b.jsx)("input",{id:"code",name:"code",inputMode:"numeric",autoComplete:"one-time-code",pattern:"[0-9 ]{6,7}",maxLength:7,required:!0,className:`${d.S} font-mono tracking-widest`,placeholder:"123456"})}),(0,b.jsx)(d.K,{type:"submit",variant:"primary",className:"w-full justify-center",disabled:m||n,children:n?"Opening the console…":m?"Checking…":"Turn on"})]}):(0,b.jsxs)(b.Fragment,{children:[a&&!a.ok&&(0,b.jsx)("div",{className:"mb-3",children:(0,b.jsx)(d.M,{tone:"danger",title:a.error})}),(0,b.jsx)(d.K,{variant:"primary",className:"w-full justify-center",disabled:i,onClick:()=>j(async()=>e(await g())),children:i?"Preparing…":"Set up authenticator"})]})}],829254)}];
|
|
2
2
|
|
|
3
3
|
//# sourceMappingURL=src_app_mfa_setup_setup-flow_tsx_1fpwygr2vdgnh._.js.map
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
module.exports=[779798,a=>{"use strict";var b=a.i(907997);a.i(570396);var c=a.i(673727),d=a.i(800717),e=a.i(252302),f=a.i(686251),g=a.i(149396),h=a.i(470253);async function
|
|
1
|
+
module.exports=[779798,a=>{"use strict";var b=a.i(907997);a.i(570396);var c=a.i(673727),d=a.i(800717),e=a.i(252302),f=a.i(686251),g=a.i(149396),h=a.i(470253),i=a.i(245710);async function j(){return[]}let k=(0,d.cache)(async a=>{let b=(0,h.P)(a);return b?(0,g.t)(b,new Date):null});async function l({params:a}){let b=await k((await a).slug);return{title:b?b.title:"Not found",robots:{index:!1,follow:!1}}}function m({state:a,title:c,children:d}){return(0,b.jsxs)("div",{className:"flex items-start gap-2.5 rounded-lg border border-brand/25 bg-brand-soft px-3.5 py-2.5",role:"status",children:[(0,b.jsx)("span",{className:"mt-px",children:(0,b.jsx)(f.Z,{state:a,size:18})}),(0,b.jsxs)("div",{children:[(0,b.jsx)("b",{className:"block font-medium",children:c}),d&&(0,b.jsx)("p",{className:"mt-0.5 text-[13px] text-ink-soft",children:d})]})]})}async function n({params:a}){let{slug:d}=await a,g=await k(d);g||(0,c.notFound)();let h=g.monitors[0];return(0,b.jsxs)("main",{className:"mx-auto flex max-w-[760px] flex-col gap-4 px-4 pb-12 pt-8",children:[(0,b.jsxs)("header",{className:"flex items-center gap-3",children:[(0,b.jsx)("span",{className:"grid size-7 shrink-0 place-items-center rounded-[7px] bg-brand font-mono text-xs font-semibold text-on-brand","aria-hidden":!0,children:"WB"}),(0,b.jsxs)("div",{className:"min-w-0",children:[(0,b.jsx)("h1",{className:"text-[20px]",children:g.title}),(0,b.jsxs)("p",{className:"mt-0.5 text-ink-soft",children:["Updated every minute · times in ",(0,i.D)()]})]})]}),g.announcement&&(0,b.jsx)(m,{state:"info",title:g.announcement}),g.maintenance.map((a,c)=>(0,b.jsxs)(m,{state:"maint",title:a.active?"Maintenance now":"Scheduled maintenance",children:[`${a.from}–${a.to} ${(0,i.D)()}.`,a.note&&` ${a.note}`]},c)),(0,b.jsxs)("section",{className:"min-w-0 rounded-lg border border-line bg-surface",children:[0===g.monitors.length&&(0,b.jsx)("p",{className:"px-[18px] py-4 text-ink-soft",children:"Nothing is shown on this page yet."}),g.monitors.map(a=>(0,b.jsxs)("div",{className:"grid grid-cols-[minmax(0,1fr)_auto] items-center gap-x-3 gap-y-1.5 border-t border-line px-[18px] py-3 first:border-t-0",children:[(0,b.jsx)("b",{className:"min-w-0 truncate font-medium",children:a.name}),(0,b.jsxs)("span",{className:"inline-flex items-center gap-2",children:[(0,b.jsx)(f.F,{state:a.state,children:a.label}),(0,b.jsx)("span",{className:"font-mono text-[12.5px] text-ink-faint",children:a.uptime})]}),(0,b.jsx)("div",{className:"col-span-full min-w-0 overflow-x-auto",children:(0,b.jsx)(e.n,{bars:a.bars.map((a,b)=>({day:String(b),tone:a.tone,title:a.title}))})})]},a.badge))]}),(0,b.jsxs)("p",{className:"m-0 text-[12.5px] text-ink-faint",children:["Last 90 days. Grey means no data, blue means maintenance (not counted).",h&&(0,b.jsxs)(b.Fragment,{children:[" Badge: ",(0,b.jsx)("img",{alt:`${h.name} uptime badge`,className:"inline align-middle",height:20,src:`/s/${d}/badge/${h.badge}.svg`})]})]})]})}a.s(["default",0,n,"dynamicParams",0,!0,"generateMetadata",0,l,"generateStaticParams",0,j,"revalidate",0,60])},475787,function(a){a.n(a.i(779798))}];
|
|
2
2
|
|
|
3
3
|
//# sourceMappingURL=src_app_s_%5Bslug%5D_page_tsx_0jjqe6py82mpb._.js.map
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
module.exports=[505281,a=>{"use strict";var b=a.i(187924),c=a.i(572131),d=a.i(619089),e=a.i(405050);let f=(0,e.createServerReference)("
|
|
1
|
+
module.exports=[505281,a=>{"use strict";var b=a.i(187924),c=a.i(572131),d=a.i(619089),e=a.i(405050);let f=(0,e.createServerReference)("600e5fbdb74dd4f7c0e42cbe5dd2d1668bcee74cb1",e.callServer,void 0,e.findSourceMapURL,"submitSetup");a.s(["SetupForm",0,function(){let[a,e,g]=(0,c.useActionState)(f,{status:"idle"}),h=b=>"error"===a.status&&a.field===b?a.message:void 0,i="error"===a.status?a:{code:"",email:""},j="error"!==a.status||a.field?void 0:a.message;return(0,b.jsxs)("form",{action:e,children:[(0,b.jsx)(d.O,{id:"code",label:"Setup code",error:h("code"),children:(0,b.jsx)("input",{id:"code",name:"code",autoComplete:"off",spellCheck:!1,defaultValue:i.code,placeholder:"XXXXX-XXXXX",maxLength:20,required:!0,className:`${d.S} font-mono uppercase tracking-widest`})}),(0,b.jsx)(d.O,{id:"email",label:"Email",error:h("email"),children:(0,b.jsx)("input",{id:"email",name:"email",type:"email",defaultValue:i.email,autoComplete:"email",placeholder:"name@example.com",required:!0,className:d.S})}),(0,b.jsx)(d.O,{id:"password",label:"Password",help:"At least 12 characters.",error:h("password"),children:(0,b.jsx)("input",{id:"password",name:"password",type:"password",autoComplete:"new-password",minLength:12,maxLength:200,required:!0,className:d.S})}),(0,b.jsx)(d.O,{id:"confirm",label:"Confirm password",error:h("confirm"),children:(0,b.jsx)("input",{id:"confirm",name:"confirm",type:"password",autoComplete:"new-password",minLength:12,maxLength:200,required:!0,className:d.S})}),j&&(0,b.jsx)("p",{className:"mb-3.5 text-[12.5px] text-err",role:"alert",children:j}),(0,b.jsx)(d.K,{type:"submit",variant:"primary",className:"w-full justify-center",disabled:g,children:g?"Creating…":"Create owner account"}),(0,b.jsx)("p",{className:"mt-4 text-[12.5px] text-ink-faint",children:"Next you'll add an authenticator app. Owners always sign in with a code."})]},"error"===a.status?`${a.message}:${i.code}:${i.email}`:"idle")}],505281)}];
|
|
2
2
|
|
|
3
3
|
//# sourceMappingURL=src_app_setup_setup-form_tsx_0izoagdur96e1._.js.map
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
(()=>{"use strict";module.exports=[
|
|
1
|
+
(()=>{"use strict";module.exports=[247351,a=>{var b=a.i(405050);let c=(0,b.createServerReference)("60b496f8b6d20396b7179d6c3cdf73ebf552b1103b",b.callServer,void 0,b.findSourceMapURL,"signInWithPassword");a.s(["f",0,c])},625104,a=>{var b=a.i(187924),c=a.i(572131),d=a.i(619089);let e="demo@west-solutions.web.id",f="watchbell-demo";var g=a.i(247351);a.s(["DemoSignInForm",0,function({next:a}){let[h,i,j]=(0,c.useActionState)(g.f,{status:"idle"}),k=(0,c.useRef)(null),l=(0,c.useRef)(null);return(0,b.jsxs)("form",{action:i,children:[(0,b.jsx)("h1",{className:"mb-1 text-xl",children:"Try the Watchbell demo"}),(0,b.jsx)("p",{className:"mb-[18px] text-ink-soft",children:"Sign in with the demo account to look around a console full of made-up data of your own."}),(0,b.jsxs)("div",{className:"mb-[18px] rounded-lg border border-line bg-sunken px-3.5 py-3",children:[(0,b.jsxs)("dl",{className:"mb-2.5 grid grid-cols-[auto_1fr] gap-x-3 gap-y-1 text-[13px]",children:[(0,b.jsx)("dt",{className:"text-ink-soft",children:"Email"}),(0,b.jsx)("dd",{className:"break-all font-mono",children:e}),(0,b.jsx)("dt",{className:"text-ink-soft",children:"Password"}),(0,b.jsx)("dd",{className:"font-mono",children:f})]}),(0,b.jsx)(d.K,{size:"sm",onClick:()=>{k.current&&(k.current.value=e),l.current&&(l.current.value=f),l.current?.focus()},children:"Use demo account"})]}),a&&(0,b.jsx)("input",{type:"hidden",name:"next",value:a}),(0,b.jsx)(d.O,{id:"email",label:"Email",error:"error"===h.status&&"email"===h.field?h.message:void 0,children:(0,b.jsx)("input",{ref:k,id:"email",name:"email",type:"email",autoComplete:"username",placeholder:"name@example.com",required:!0,maxLength:254,defaultValue:"error"===h.status?h.email:void 0,className:d.S})}),(0,b.jsx)(d.O,{id:"password",label:"Password",error:"error"===h.status&&"email"!==h.field?h.message:void 0,children:(0,b.jsx)("input",{ref:l,id:"password",name:"password",type:"password",autoComplete:"current-password",required:!0,maxLength:200,className:d.S})}),(0,b.jsx)(d.K,{type:"submit",variant:"primary",className:"w-full justify-center",disabled:j,children:j?"Signing in…":"Sign in"}),(0,b.jsx)("p",{className:"mt-4 text-[12.5px] text-ink-faint",children:"Or use any email and password. Every sign-in, the demo account too, gets its own made-up data."})]})}],625104)},318465,a=>{var b=a.i(187924),c=a.i(572131),d=a.i(619089),e=a.i(247351);a.s(["PasswordSignInForm",0,function({next:a}){let[f,g,h]=(0,c.useActionState)(e.f,{status:"idle"});return(0,b.jsxs)("form",{action:g,children:[(0,b.jsx)("h1",{className:"mb-1 text-xl",children:"Sign in to Watchbell"}),(0,b.jsx)("p",{className:"mb-[18px] text-ink-soft",children:"Use the email and password an owner set up for you."}),a&&(0,b.jsx)("input",{type:"hidden",name:"next",value:a}),(0,b.jsx)(d.O,{id:"email",label:"Email",children:(0,b.jsx)("input",{id:"email",name:"email",type:"email",autoComplete:"username",placeholder:"name@example.com",required:!0,defaultValue:"error"===f.status?f.email:void 0,className:d.S})}),(0,b.jsx)(d.O,{id:"password",label:"Password",error:"error"===f.status?f.message:void 0,children:(0,b.jsx)("input",{id:"password",name:"password",type:"password",autoComplete:"current-password",required:!0,maxLength:1024,className:d.S})}),(0,b.jsx)(d.K,{type:"submit",variant:"primary",className:"w-full justify-center",disabled:h,children:h?"Signing in…":"Sign in"}),(0,b.jsx)("p",{className:"mt-4 text-[12.5px] text-ink-faint",children:"Forgot your password? Ask an owner of this console."})]})}])},59558,a=>{var b=a.i(187924),c=a.i(572131),d=a.i(619089);let e="https://challenges.cloudflare.com/turnstile/v0/api.js?render=explicit";function f({siteKey:a}){let d=(0,c.useRef)(null),[g,h]=(0,c.useState)(!1);return((0,c.useEffect)(()=>{let b,c=!1;return(window.turnstile?Promise.resolve(window.turnstile):new Promise((a,b)=>{let c=document.querySelector(`script[src="${e}"]`);c||((c=document.createElement("script")).src=e,c.async=!0,document.head.appendChild(c));let d=c;d.addEventListener("load",()=>window.turnstile?a(window.turnstile):b(Error("turnstile"))),d.addEventListener("error",()=>{d.remove(),b(Error("turnstile"))})})).then(e=>{!c&&d.current&&(b=e.render(d.current,{sitekey:a,action:"signin",theme:"auto"}))}).catch(()=>{console.warn("bot check failed to load"),c||h(!0)}),()=>{c=!0,b&&window.turnstile&&window.turnstile.remove(b)}},[a]),g)?(0,b.jsx)("p",{role:"alert",className:"mb-3.5 text-[13px] text-err",children:"The bot check couldn't load. Check your connection and reload the page."}):(0,b.jsx)("div",{ref:d,className:"mb-3.5 min-h-[65px]"})}var g=a.i(405050);let h=(0,g.createServerReference)("601332f80d093884162eee1ef96f99acad956ef8bf",g.callServer,void 0,g.findSourceMapURL,"sendSignInLink");a.s(["SignInForm",0,function({siteKey:a}){let[e,g,i]=(0,c.useActionState)(h,{status:"idle"}),[j,k]=(0,c.useState)(!1),[l,m]=(0,c.useState)(0);return"sent"!==e.status||j?(0,b.jsxs)("form",{action:a=>{k(!1),m(a=>a+1),g(a)},children:[(0,b.jsx)("h1",{className:"mb-1 text-xl",children:"Sign in to Watchbell"}),(0,b.jsx)("p",{className:"mb-[18px] text-ink-soft",children:"We'll email you a sign-in link. Only invited people can get in."}),(0,b.jsx)(d.O,{id:"email",label:"Email",error:"error"===e.status?e.message:void 0,children:(0,b.jsx)("input",{id:"email",name:"email",type:"email",autoComplete:"email",placeholder:"name@example.com",required:!0,className:d.S})}),(0,b.jsx)(f,{siteKey:a},l),(0,b.jsx)(d.K,{type:"submit",variant:"primary",className:"w-full justify-center",disabled:i,children:i?"Sending…":"Send sign-in link"}),(0,b.jsx)("p",{className:"mt-4 text-[12.5px] text-ink-faint",children:"Can't get in? Ask an owner to invite you."})]}):(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("h1",{className:"mb-1 text-xl",children:"Check your email"}),(0,b.jsxs)("p",{className:"mb-[18px] text-ink-soft",children:["If ",e.email," is invited, a sign-in link is on its way. It works for 1 hour."]}),(0,b.jsx)(d.K,{className:"w-full justify-center",onClick:()=>k(!0),children:"Use a different email"})]})}],59558)}]})();
|
|
2
2
|
|
|
3
|
-
//# sourceMappingURL=
|
|
3
|
+
//# sourceMappingURL=src_app_signin_1y1xla7bcc5a1._.js.map
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
(()=>{"use strict";module.exports=[480761,a=>{var b=a.i(187924),c=a.i(572131),d=a.i(771378),e=a.i(728951),f=a.i(368114),g=a.i(50944),h=a.i(405050);let i=(0,h.createServerReference)("00e60637fc143fe8e39b447a5e5c976432903a8369",h.callServer,void 0,h.findSourceMapURL,"loadPaletteSource"),j=[{group:"Home",items:[{key:"overview",label:"Overview",href:"/overview",icon:"dashboard",stage:2},{key:"topology",label:"Topology",href:"/topology",icon:"topology",stage:4},{key:"events",label:"Events",href:"/events",icon:"activity",stage:2}]},{group:"Workloads",items:[{key:"apps",label:"Applications",href:"/apps",icon:"apps",stage:2},{key:"deployments",label:"Deployments",href:"/deployments",icon:"rocket",stage:2}]},{group:"GitHub",items:[{key:"repos",label:"Repositories",href:"/repos",icon:"github",stage:9}]},{group:"Network",items:[{key:"domains",label:"Domains",href:"/domains",icon:"world",stage:4},{key:"dns",label:"DNS records",href:"/dns",icon:"sitemap",stage:4}]},{group:"Databases",items:[{key:"supabase",label:"Supabase",href:"/supabase",icon:"bolt",stage:3},{key:"neon",label:"Neon",href:"/neon",icon:"database",stage:3},{key:"firebase",label:"Firebase",href:"/firebase",icon:"flame",stage:3},{key:"turso",label:"Turso",href:"/turso",icon:"database",stage:8},{key:"upstash",label:"Upstash Redis",href:"/upstash",icon:"bolt",stage:8},{key:"d1",label:"Cloudflare D1",href:"/d1",icon:"cloud",stage:8},{key:"sql",label:"SQL console",href:"/sql",icon:"terminal",stage:9,ownerOnly:!0},{key:"catalog",label:"Free databases",href:"/catalog",icon:"books",stage:7}]},{group:"Observe",items:[{key:"uptime",label:"Uptime",href:"/uptime",icon:"heartbeat",stage:2},{key:"alerts",label:"Alerts",href:"/alerts",icon:"bell",stage:5},{key:"logs",label:"Logs",href:"/logs",icon:"file",stage:5,hideForViewer:!0},{key:"status",label:"Provider status",href:"/status",icon:"broadcast",stage:5}]},{group:"Administration",items:[{key:"connections",label:"Connections",href:"/connections",icon:"plug",stage:1,ownerOnly:!0},{key:"backups",label:"Backups",href:"/backups",icon:"cloud-upload",stage:7,ownerOnly:!0},{key:"settings",label:"Settings",href:"/settings",icon:"settings",stage:1,ownerOnly:!0}]}],k={nav:[]};function l(a=k){let b=[...j];for(let c of a.nav){let a=b.findIndex(a=>a.group===c.after),d={group:c.group,items:c.items};a<0?b.push(d):b.splice(a+1,0,d)}return b}function m(a,b=k){return l(b).map(b=>({...b,items:b.items.filter(b=>b.ownerOnly?"owner"===a:!b.hideForViewer||"viewer"!==a)})).filter(a=>a.items.length>0)}function n(a,b){let c=b.trim().toLowerCase(),d=a.toLowerCase(),e=d.indexOf(c);if(e<0)return null;if(0===e)return 0;for(let a=d.indexOf(c);a>=0;a=d.indexOf(c,a+1))if(!/[a-z0-9]/.test(d[a-1]??" "))return 1;return 2}var o=a.i(424567),p=a.i(742089),q=a.i(449862);let r=(0,q.f)("outline","apps","Apps",[["path",{d:"M4 5a1 1 0 0 1 1 -1h4a1 1 0 0 1 1 1v4a1 1 0 0 1 -1 1h-4a1 1 0 0 1 -1 -1l0 -4",key:"svg-0"}],["path",{d:"M4 15a1 1 0 0 1 1 -1h4a1 1 0 0 1 1 1v4a1 1 0 0 1 -1 1h-4a1 1 0 0 1 -1 -1l0 -4",key:"svg-1"}],["path",{d:"M14 15a1 1 0 0 1 1 -1h4a1 1 0 0 1 1 1v4a1 1 0 0 1 -1 1h-4a1 1 0 0 1 -1 -1l0 -4",key:"svg-2"}],["path",{d:"M14 7l6 0",key:"svg-3"}],["path",{d:"M17 4l0 6",key:"svg-4"}]]);var s=a.i(896293),t=a.i(133004);let u=(0,q.f)("outline","books","Books",[["path",{d:"M5 5a1 1 0 0 1 1 -1h2a1 1 0 0 1 1 1v14a1 1 0 0 1 -1 1h-2a1 1 0 0 1 -1 -1l0 -14",key:"svg-0"}],["path",{d:"M9 5a1 1 0 0 1 1 -1h2a1 1 0 0 1 1 1v14a1 1 0 0 1 -1 1h-2a1 1 0 0 1 -1 -1l0 -14",key:"svg-1"}],["path",{d:"M5 8h4",key:"svg-2"}],["path",{d:"M9 16h4",key:"svg-3"}],["path",{d:"M13.803 4.56l2.184 -.53c.562 -.135 1.133 .19 1.282 .732l3.695 13.418a1.02 1.02 0 0 1 -.634 1.219l-.133 .041l-2.184 .53c-.562 .135 -1.133 -.19 -1.282 -.732l-3.695 -13.418a1.02 1.02 0 0 1 .634 -1.219l.133 -.041",key:"svg-4"}],["path",{d:"M14 9l4 -1",key:"svg-5"}],["path",{d:"M16 16l3.923 -.98",key:"svg-6"}]]);var v=a.i(36600);let w=(0,q.f)("outline","broadcast","Broadcast",[["path",{d:"M18.364 19.364a9 9 0 1 0 -12.728 0",key:"svg-0"}],["path",{d:"M15.536 16.536a5 5 0 1 0 -7.072 0",key:"svg-1"}],["path",{d:"M11 13a1 1 0 1 0 2 0a1 1 0 1 0 -2 0",key:"svg-2"}]]);var x=a.i(786581);let y=(0,q.f)("outline","cloud-upload","CloudUpload",[["path",{d:"M7 18a4.6 4.4 0 0 1 0 -9a5 4.5 0 0 1 11 2h1a3.5 3.5 0 0 1 0 7h-1",key:"svg-0"}],["path",{d:"M9 15l3 -3l3 3",key:"svg-1"}],["path",{d:"M12 12l0 9",key:"svg-2"}]]);var z=a.i(713352);let A=(0,q.f)("outline","file-text","FileText",[["path",{d:"M14 3v4a1 1 0 0 0 1 1h4",key:"svg-0"}],["path",{d:"M17 21h-10a2 2 0 0 1 -2 -2v-14a2 2 0 0 1 2 -2h7l5 5v11a2 2 0 0 1 -2 2",key:"svg-1"}],["path",{d:"M9 9l1 0",key:"svg-2"}],["path",{d:"M9 13l6 0",key:"svg-3"}],["path",{d:"M9 17l6 0",key:"svg-4"}]]);var B=a.i(471941),C=a.i(614548);let D=(0,q.f)("outline","hierarchy-3","Hierarchy3",[["path",{d:"M10 5a2 2 0 1 0 4 0a2 2 0 1 0 -4 0",key:"svg-0"}],["path",{d:"M6 12a2 2 0 1 0 4 0a2 2 0 1 0 -4 0",key:"svg-1"}],["path",{d:"M10 19a2 2 0 1 0 4 0a2 2 0 1 0 -4 0",key:"svg-2"}],["path",{d:"M18 19a2 2 0 1 0 4 0a2 2 0 1 0 -4 0",key:"svg-3"}],["path",{d:"M2 19a2 2 0 1 0 4 0a2 2 0 1 0 -4 0",key:"svg-4"}],["path",{d:"M14 12a2 2 0 1 0 4 0a2 2 0 1 0 -4 0",key:"svg-5"}],["path",{d:"M5 17l2 -3",key:"svg-6"}],["path",{d:"M9 10l2 -3",key:"svg-7"}],["path",{d:"M13 7l2 3",key:"svg-8"}],["path",{d:"M17 14l2 3",key:"svg-9"}],["path",{d:"M15 14l-2 3",key:"svg-10"}],["path",{d:"M9 14l2 3",key:"svg-11"}]]);var E=a.i(615016),F=a.i(335371);let G=(0,q.f)("outline","rocket","Rocket",[["path",{d:"M4 13a8 8 0 0 1 7 7a6 6 0 0 0 3 -5a9 9 0 0 0 6 -8a3 3 0 0 0 -3 -3a9 9 0 0 0 -8 6a6 6 0 0 0 -5 3",key:"svg-0"}],["path",{d:"M7 14a6 6 0 0 0 -3 6a6 6 0 0 0 6 -3",key:"svg-1"}],["path",{d:"M14 9a1 1 0 1 0 2 0a1 1 0 1 0 -2 0",key:"svg-2"}]]),H=(0,q.f)("outline","route-2","Route2",[["path",{d:"M3 19a2 2 0 1 0 4 0a2 2 0 0 0 -4 0",key:"svg-0"}],["path",{d:"M19 7a2 2 0 1 0 0 -4a2 2 0 0 0 0 4",key:"svg-1"}],["path",{d:"M14 5a2 2 0 0 0 -2 2v10a2 2 0 0 1 -2 2",key:"svg-2"}]]),I=(0,q.f)("outline","settings","Settings",[["path",{d:"M10.325 4.317c.426 -1.756 2.924 -1.756 3.35 0a1.724 1.724 0 0 0 2.573 1.066c1.543 -.94 3.31 .826 2.37 2.37a1.724 1.724 0 0 0 1.065 2.572c1.756 .426 1.756 2.924 0 3.35a1.724 1.724 0 0 0 -1.066 2.573c.94 1.543 -.826 3.31 -2.37 2.37a1.724 1.724 0 0 0 -2.572 1.065c-.426 1.756 -2.924 1.756 -3.35 0a1.724 1.724 0 0 0 -2.573 -1.066c-1.543 .94 -3.31 -.826 -2.37 -2.37a1.724 1.724 0 0 0 -1.065 -2.572c-1.756 -.426 -1.756 -2.924 0 -3.35a1.724 1.724 0 0 0 1.066 -2.573c-.94 -1.543 .826 -3.31 2.37 -2.37c1 .608 2.296 .07 2.572 -1.065",key:"svg-0"}],["path",{d:"M9 12a3 3 0 1 0 6 0a3 3 0 0 0 -6 0",key:"svg-1"}]]);var J=a.i(105084);let K=(0,q.f)("outline","terminal-2","Terminal2",[["path",{d:"M8 9l3 3l-3 3",key:"svg-0"}],["path",{d:"M13 15l3 0",key:"svg-1"}],["path",{d:"M3 6a2 2 0 0 1 2 -2h14a2 2 0 0 1 2 2v12a2 2 0 0 1 -2 2h-14a2 2 0 0 1 -2 -2l0 -12",key:"svg-2"}]]),L=(0,q.f)("outline","world","World",[["path",{d:"M3 12a9 9 0 1 0 18 0a9 9 0 0 0 -18 0",key:"svg-0"}],["path",{d:"M3.6 9h16.8",key:"svg-1"}],["path",{d:"M3.6 15h16.8",key:"svg-2"}],["path",{d:"M11.5 3a17 17 0 0 0 0 18",key:"svg-3"}],["path",{d:"M12.5 3a17 17 0 0 1 0 18",key:"svg-4"}]]),M={dashboard:E.f,topology:D,activity:o.f,apps:r,rocket:G,world:L,sitemap:J.f,bolt:t.f,database:z.f,flame:B.f,books:u,heartbeat:C.f,bell:s.f,file:A,broadcast:w,plug:F.f,"cloud-upload":y,cloud:x.f,settings:I,route:H,api:p.f,github:v.f,terminal:K};function N({role:a,ext:d,open:e,opener:f,onOpen:g,onClose:h}){let[j,k]=(0,c.useState)(null),[l,n]=(0,c.useState)(!1),o=(0,c.useRef)(!1);(0,c.useEffect)(()=>{function a(a){"k"!==a.key.toLowerCase()||!(a.ctrlKey||a.metaKey)||a.shiftKey||a.altKey||(a.preventDefault(),a.repeat||(e?h():g(document.activeElement)))}return window.addEventListener("keydown",a),()=>window.removeEventListener("keydown",a)},[e,g,h]),(0,c.useEffect)(()=>{e&&!o.current&&(o.current=!0,i().then(a=>{a.ok&&a.data?(k(a.data),n(!1)):n(!0)}).catch(()=>n(!0)).finally(()=>{o.current=!1}))},[e]);let p=(0,c.useMemo)(()=>(function(a,b,c={nav:[],palette:[]}){let d=m(a,c).flatMap(a=>a.items.map(b=>({id:`page:${b.key}`,label:b.label,hint:a.group,href:b.href,icon:b.icon}))),e="owner"!==a?[]:c.palette.filter(a=>!d.some(b=>b.href===a.href)).map(a=>{let b=c.nav.flatMap(a=>a.items.map(b=>({g:a,i:b}))).find(({i:b})=>a.href===b.href||a.href.startsWith(`${b.href}/`));return{id:`ext:${a.href}`,label:a.label,hint:b?`${b.g.group} \xb7 ${b.i.label}`:"Page",href:a.href,icon:b?.i.icon??"dashboard",keywords:a.keywords}}),f=[...d,...e];if(!b)return f;let g=b.apps.map(a=>({id:`app:${a.id}`,label:a.name,hint:a.domain,href:`/apps/${a.id}`,icon:"apps"})),h=b.monitors.map(a=>({id:`monitor:${a.id}`,label:`${a.appName}${a.path}`,hint:"Monitor",href:`/apps/${a.appId}`,icon:"heartbeat"}));return[...f,...g,...(b.domains??[]).map(a=>({id:`domain:${a.id}`,label:a.name,hint:"Domain",href:"/domains",icon:"world"})),...h]})(a,j,d),[a,j,d]);return e?(0,b.jsx)(O,{items:p,loading:null===j&&!l,opener:f,onClose:h}):null}function O({items:a,loading:e,opener:h=null,onClose:i}){let j=(0,g.useRouter)(),k=(0,c.useId)(),l=(0,c.useRef)(null),[m,o]=(0,c.useState)(""),[p,q]=(0,c.useState)(0),{shot:r}=(0,d.usePrivacy)(),s=(0,d.useMask)(),t=(0,c.useMemo)(()=>a.map(a=>a.id.startsWith("page:")?a:{...a,label:s("text",a.label),hint:s("text",a.hint)}),[a,s]),u=(0,c.useMemo)(()=>(function(a,b,c,d=20){if(!c.trim())return b.slice(0,d);let e=a=>(function(a,b){let c=n(a.label,b);if(null!==c)return c;let d=n(a.hint,b);if(null!==d)return d+3;let e=(a.keywords??[]).map(a=>n(a,b)).filter(a=>null!==a);return e.length?Math.min(...e)+6:null})(a,c),f=[];return a.forEach((a,c)=>{let d=e(a),g=e(b[c]),h=null===d?g:null===g?d:Math.min(d,g);null!==h&&f.push({item:b[c],score:h})}),f.sort((a,b)=>a.score-b.score).slice(0,d).map(a=>a.item)})(a,r?t:a,m),[a,t,r,m]),v=Math.min(p,Math.max(0,u.length-1)),w=a=>`${k}-opt-${a}`;function x(a){a&&(i(),j.push(a.href))}return(0,c.useEffect)(()=>{l.current?.focus()},[]),(0,c.useEffect)(()=>()=>{h instanceof HTMLElement&&h.isConnected&&h.focus()},[h]),(0,c.useEffect)(()=>{document.getElementById(`${k}-opt-${v}`)?.scrollIntoView?.({block:"nearest"})},[k,v,u]),(0,c.useEffect)(()=>{function a(a){"Escape"===a.key&&i(),"Tab"===a.key&&a.preventDefault()}return window.addEventListener("keydown",a),()=>window.removeEventListener("keydown",a)},[i]),(0,b.jsx)("div",{className:"fixed inset-0 z-[80] flex items-start justify-center bg-black/45 pt-[12vh]",onMouseDown:a=>{a.target===a.currentTarget&&i()},children:(0,b.jsxs)("div",{role:"dialog","aria-modal":"true","aria-label":"Search",onMouseDown:a=>{a.target!==l.current&&a.preventDefault()},className:"w-[560px] max-w-[calc(100vw-32px)] overflow-hidden rounded-[10px] border border-line-strong bg-surface shadow-[0_16px_48px_rgba(0,0,0,.25)]",children:[(0,b.jsx)("input",{ref:l,role:"combobox","aria-expanded":u.length>0,"aria-controls":u.length>0?`${k}-list`:void 0,"aria-activedescendant":u.length>0?w(v):void 0,"aria-autocomplete":"list","aria-label":"Search",autoComplete:"off",placeholder:"Jump to a page, app, database, or domain",value:m,onChange:a=>{o(a.target.value),q(0)},onKeyDown:function(a){a.nativeEvent.isComposing||("ArrowDown"===a.key&&(q(Math.min(v+1,u.length-1)),a.preventDefault()),"ArrowUp"===a.key&&(q(Math.max(v-1,0)),a.preventDefault()),"Enter"===a.key&&(x(u[v]),a.preventDefault()))},className:"w-full border-0 border-b border-line bg-transparent px-4 py-3.5 text-[15px] text-ink outline-none placeholder:text-ink-faint"}),u.length>0?(0,b.jsx)("ul",{id:`${k}-list`,role:"listbox","aria-label":"Results",className:"m-0 max-h-[360px] list-none overflow-y-auto p-1.5",children:u.map((a,c)=>{let d=M[a.icon];return(0,b.jsxs)("li",{id:w(c),role:"option","aria-selected":c===v,onMouseMove:()=>{c!==v&&q(c)},onClick:()=>x(a),className:(0,f.f)("flex cursor-pointer items-center gap-2.5 rounded-md px-2.5 py-2",c===v&&"bg-brand-soft"),children:[(0,b.jsx)(d,{size:17,className:"shrink-0 text-ink-faint"}),(0,b.jsx)("span",{className:"min-w-0 truncate",children:a.label}),(0,b.jsx)("small",{className:"ml-auto shrink-0 pl-3 text-[12.5px] text-ink-faint",children:a.hint})]},a.id)})}):(0,b.jsx)("p",{role:"status",className:"m-0 p-4 text-ink-soft",children:e&&m.trim()?"Loading apps…":"No matches"})]})})}function P(){return(0,b.jsx)("div",{role:"note",className:"border-b border-line bg-brand-soft px-6 py-1.5 text-[12.5px] text-nav-active-text max-[720px]:px-3.5",children:"Demo — data is made up and resets. Results of your actions can disappear when the demo restarts."})}let Q=(0,q.f)("outline","chevron-right","ChevronRight",[["path",{d:"M9 6l6 6l-6 6",key:"svg-0"}]]);var R=a.i(238246);let S={ok:"bg-ok",warn:"bg-warn-icon",err:"bg-err",idle:"bg-idle"};function T({initialLastRunAt:a,initialNow:d,demo:e=!1}){let[g,h]=(0,c.useState)(a),[i,j]=(0,c.useState)(d);(0,c.useEffect)(()=>{if(e)return;let a=()=>{fetch("/api/status",{cache:"no-store"}).then(a=>a.ok&&!a.redirected&&(a.headers.get("content-type")??"").includes("application/json")?a.json():null).then(a=>{a&&"object"==typeof a&&"lastRunAt"in a&&(h(a.lastRunAt??null),j(Date.now()))}).catch(()=>void 0)},b=()=>{"visible"===document.visibilityState&&a()},c=()=>{"visible"===document.visibilityState&&a()};b();let d=setInterval(()=>j(Date.now()),5e3),f=setInterval(b,3e4);return document.addEventListener("visibilitychange",c),()=>{clearInterval(d),clearInterval(f),document.removeEventListener("visibilitychange",c)}},[e]);let k=e?{state:"ok",text:"Demo · no live collector"}:function(a,b){if(!a)return{state:"idle",text:"Collector hasn't run yet"};let c=Math.max(0,Math.round((b.getTime()-a.getTime())/1e3)),d=Math.floor(c/60);return c<60?{state:"ok",text:`Collector ran ${c}s ago`}:c<120?{state:"ok",text:`Collector ran ${d} min ago`}:c<300?{state:"warn",text:`Collector late \xb7 ran ${d} min ago`}:{state:"err",text:`Collector stopped ${d} min ago`}}(g?new Date(g):null,new Date(i));return(0,b.jsxs)("div",{className:"flex items-center gap-2 border-t border-line px-4 py-3 text-xs text-ink-soft","aria-live":"off",children:[(0,b.jsx)("span",{className:(0,f.f)("size-2 shrink-0 rounded-full",S[k.state]),"aria-hidden":!0}),k.text]})}function U({role:a,ext:d,collector:e,alerts:h,mobileOpen:i,onNavigate:j,navRef:n}){let o=function(a,b=k){return function(a,b=k){let c="/"+(a.split("/").filter(Boolean)[0]??"");return l(b).flatMap(a=>a.items).find(a=>a.href===c)??null}(a,b)?.key??null}((0,g.usePathname)(),d),[p,q]=(0,c.useState)({});return(0,b.jsxs)("nav",{ref:n,tabIndex:-1,"aria-label":"Main navigation",className:(0,f.f)("sticky top-0 flex h-screen flex-col overflow-y-auto border-r border-line bg-nav focus:outline-none","max-[1000px]:fixed max-[1000px]:inset-y-0 max-[1000px]:left-0 max-[1000px]:z-50 max-[1000px]:w-[264px]",!i&&"max-[1000px]:invisible max-[1000px]:-translate-x-full"),children:[(0,b.jsxs)(R.default,{href:"/",className:"flex items-center gap-2.5 border-b border-line px-4 py-3.5 text-ink hover:no-underline",children:[(0,b.jsx)("span",{className:"grid size-7 place-items-center rounded-[7px] bg-brand font-mono text-xs font-semibold text-on-brand",children:"WB"}),(0,b.jsxs)("span",{children:[(0,b.jsx)("b",{className:"font-semibold",children:"Watchbell"}),(0,b.jsx)("small",{className:"block text-xs text-ink-faint",children:"Personal"})]})]}),(0,b.jsx)("div",{className:"flex-1 px-2 pb-4 pt-2",children:m(a,d).map(a=>{let c=!p[a.group];return(0,b.jsxs)("div",{className:"mt-1.5",children:[(0,b.jsxs)("button",{type:"button","aria-expanded":c,onClick:()=>q(b=>({...b,[a.group]:c})),className:"flex w-full items-center gap-1.5 rounded-md px-2 py-1.5 text-xs font-medium text-ink-faint hover:text-ink",children:[a.group,(0,b.jsx)(Q,{size:14,className:(0,f.f)("ml-auto transition-transform",c&&"rotate-90")})]}),c&&(0,b.jsx)("ul",{children:a.items.map(a=>{let c=M[a.icon],d=a.key===o;return(0,b.jsx)("li",{children:(0,b.jsxs)(R.default,{href:a.href,onClick:j,"aria-current":d?"page":void 0,className:(0,f.f)("flex items-center gap-2.5 rounded-md px-2.5 py-[7px] text-nav-text hover:bg-hover hover:no-underline",d&&"bg-nav-active font-medium text-nav-active-text"),children:[(0,b.jsx)(c,{size:17,className:d?"text-nav-active-text":"text-ink-faint"}),a.label,"alerts"===a.key&&h>0&&(0,b.jsxs)("span",{className:"ml-auto rounded-[10px] bg-err-soft px-1.5 font-mono text-[11px] font-medium text-err",children:[h,(0,b.jsx)("span",{className:"sr-only",children:" firing"})]})]})},a.key)})})]},a.group)})}),(0,b.jsx)(T,{initialLastRunAt:e.lastRunAt,initialNow:e.now,demo:e.demo})]})}let V=(0,q.f)("outline","eye","Eye",[["path",{d:"M10 12a2 2 0 1 0 4 0a2 2 0 0 0 -4 0",key:"svg-0"}],["path",{d:"M21 12c-2.4 4 -5.4 6 -9 6c-3.6 0 -6.6 -2 -9 -6c2.4 -4 5.4 -6 9 -6c3.6 0 6.6 2 9 6",key:"svg-1"}]]),W=(0,q.f)("outline","eye-off","EyeOff",[["path",{d:"M10.585 10.587a2 2 0 0 0 2.829 2.828",key:"svg-0"}],["path",{d:"M16.681 16.673a8.717 8.717 0 0 1 -4.681 1.327c-3.6 0 -6.6 -2 -9 -6c1.272 -2.12 2.712 -3.678 4.32 -4.674m2.86 -1.146a9.055 9.055 0 0 1 1.82 -.18c3.6 0 6.6 2 9 6c-.666 1.11 -1.379 2.067 -2.138 2.87",key:"svg-1"}],["path",{d:"M3 3l18 18",key:"svg-2"}]]),X=(0,q.f)("outline","layout-sidebar","LayoutSidebar",[["path",{d:"M4 6a2 2 0 0 1 2 -2h12a2 2 0 0 1 2 2v12a2 2 0 0 1 -2 2h-12a2 2 0 0 1 -2 -2l0 -12",key:"svg-0"}],["path",{d:"M9 4l0 16",key:"svg-1"}]]),Y=(0,q.f)("outline","search","Search",[["path",{d:"M3 10a7 7 0 1 0 14 0a7 7 0 1 0 -14 0",key:"svg-0"}],["path",{d:"M21 21l-6 -6",key:"svg-1"}]]),Z=(0,q.f)("outline","tag","Tag",[["path",{d:"M6.5 7.5a1 1 0 1 0 2 0a1 1 0 1 0 -2 0",key:"svg-0"}],["path",{d:"M3 6v5.172a2 2 0 0 0 .586 1.414l7.71 7.71a2.41 2.41 0 0 0 3.408 0l5.592 -5.592a2.41 2.41 0 0 0 0 -3.408l-7.71 -7.71a2 2 0 0 0 -1.414 -.586h-5.172a3 3 0 0 0 -3 3",key:"svg-1"}]]);var $=a.i(619089),_=a.i(507504),aa=a.i(403990);let ab=(0,q.f)("outline","sun","Sun",[["path",{d:"M8 12a4 4 0 1 0 8 0a4 4 0 1 0 -8 0",key:"svg-0"}],["path",{d:"M3 12h1m8 -9v1m8 8h1m-9 8v1m-6.4 -15.4l.7 .7m12.1 -.7l-.7 .7m0 11.4l.7 .7m-12.1 -.7l-.7 .7",key:"svg-1"}]]);var ac=a.i(678464);function ad(a){let b=new MutationObserver(a);return b.observe(document.documentElement,{attributes:!0,attributeFilter:["data-theme"]}),()=>b.disconnect()}function ae(){return"dark"===document.documentElement.dataset.theme?"dark":"light"}function af(){return"light"}function ag(){let a=(0,c.useSyncExternalStore)(ad,ae,af);return(0,b.jsx)("button",{type:"button",onClick:function(){let b=(0,ac.w)(a);document.documentElement.dataset.theme=b;try{localStorage.setItem(ac.K,b)}catch{}},"aria-label":"Toggle theme",title:"Toggle theme",className:"relative inline-grid size-[34px] place-items-center rounded-md text-ink-soft hover:bg-hover hover:text-ink focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-brand/40",children:"dark"===a?(0,b.jsx)(ab,{size:18}):(0,b.jsx)(aa.f,{size:18})})}var ah=a.i(740197),ai=a.i(521341),aj=a.i(768758),ak=a.i(505358),al=a.i(749867),am=a.i(532489);let an=(0,q.f)("outline","building-skyscraper","BuildingSkyscraper",[["path",{d:"M3 21l18 0",key:"svg-0"}],["path",{d:"M5 21v-14l8 -4v18",key:"svg-1"}],["path",{d:"M19 21v-10l-6 -4",key:"svg-2"}],["path",{d:"M9 9l0 .01",key:"svg-3"}],["path",{d:"M9 12l0 .01",key:"svg-4"}],["path",{d:"M9 15l0 .01",key:"svg-5"}],["path",{d:"M9 18l0 .01",key:"svg-6"}]]);var ao=a.i(851519);function ap({link:a}){let[d,e]=(0,c.useState)(!1);return(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)($._,{label:a.label,pressed:d,onClick:()=>e(!0),children:(0,b.jsx)(an,{size:18})}),(0,b.jsx)(ah.f.Root,{open:d,onOpenChange:e,children:(0,b.jsxs)(ai.f.Portal,{children:[(0,b.jsx)(aj.f.Backdrop,{className:"fixed inset-0 z-50 bg-black/10"}),(0,b.jsxs)(ak.f.Popup,{"aria-describedby":void 0,className:"fixed inset-y-0 right-0 z-50 flex w-1/2 min-w-[560px] flex-col border-l border-line bg-surface text-ink shadow-lg outline-none max-[900px]:w-full max-[900px]:min-w-0",children:[(0,b.jsxs)("div",{className:"flex h-[52px] shrink-0 items-center gap-3 border-b border-line px-4",children:[(0,b.jsx)(al.f.Title,{className:"text-[15px] font-semibold",children:a.title}),(0,b.jsx)(R.default,{href:a.href,onClick:()=>e(!1),className:"ml-auto text-[13px] font-medium text-brand hover:underline",children:a.openLabel}),(0,b.jsx)(am.f.Close,{"aria-label":"Close",title:"Close",className:"inline-grid size-[34px] place-items-center rounded-md text-ink-soft hover:bg-hover hover:text-ink focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-brand/40",children:(0,b.jsx)(ao.f,{size:18})})]}),(0,b.jsx)("iframe",{src:a.frame,title:a.title,className:"min-h-0 w-full flex-1 border-0"})]})]})})]})}var aq=a.i(657943),ar=a.i(335732);let as={owner:"Owner",operator:"Operator",viewer:"Viewer"};function at({email:a,role:e,hasPassword:f=!1}){let[g,h]=(0,c.useTransition)(),i=(0,d.useMask)()("email",a),j=i!==a;return(0,b.jsxs)(ar.G,{children:[(0,b.jsx)(ar.X,{"aria-label":"Account menu",className:"ml-1 grid size-[30px] place-items-center rounded-full border border-line bg-sunken font-mono text-[11px] font-medium uppercase focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-brand/40",children:j?"··":a.slice(0,2)}),(0,b.jsxs)(ar.L,{align:"end",className:"min-w-[200px]",children:[(0,b.jsx)(ar.P,{children:(0,b.jsxs)(ar.B,{children:[(0,b.jsx)("span",{className:"block truncate",children:i}),(0,b.jsx)("span",{className:"block text-xs font-normal text-ink-faint",children:as[e]})]})}),(0,b.jsx)(ar.U,{}),f&&(0,b.jsx)(ar.r,{render:(0,b.jsx)(R.default,{href:"/account/password"}),children:"Change password"}),(0,b.jsx)(ar.r,{className:"text-err",disabled:g,onClick:()=>h(()=>(0,aq.f)()),children:"Sign out"})]})]})}function au({user:a,office:c,alerts:f,onToggleNav:g,onOpenPalette:h,navButtonRef:i}){let{show:j,toggle:k}=(0,e.useSources)(),{shot:l,setShot:m}=(0,d.usePrivacy)();return(0,b.jsxs)("header",{className:"sticky top-0 z-20 flex h-[52px] items-center gap-2 border-b border-line bg-surface px-4",children:[(0,b.jsx)($._,{ref:i,label:"Toggle navigation",onClick:g,children:(0,b.jsx)(X,{size:18})}),(0,b.jsxs)("button",{type:"button",onClick:a=>h(a.currentTarget),"aria-label":"Search","aria-keyshortcuts":"Control+K Meta+K",className:"ml-2 flex w-[280px] items-center gap-2 whitespace-nowrap rounded-[7px] border border-line bg-surface-2 px-2.5 py-1.5 text-ink-faint max-[720px]:w-auto",children:[(0,b.jsx)(Y,{size:16}),(0,b.jsx)("span",{className:"max-[720px]:hidden",children:"Search apps, databases, pages"}),(0,b.jsx)("kbd",{className:"ml-auto rounded border border-line-strong px-[5px] font-mono text-[11px] text-ink-soft max-[720px]:hidden",children:"Ctrl K"})]}),(0,b.jsxs)("div",{className:"ml-auto flex items-center gap-0.5",children:[l&&(0,b.jsxs)("button",{type:"button",onClick:()=>m(!1),title:"Screenshot mode is on. Click to turn it off.","aria-label":"Screenshot mode is on. Turn it off",className:"mr-1.5 inline-flex items-center gap-1 whitespace-nowrap rounded-full border border-warn/40 bg-warn-soft px-2.5 py-0.5 text-[12.5px] font-medium text-ink focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-brand/40",children:[(0,b.jsx)(W,{size:14,"aria-hidden":!0,className:"text-warn-icon"}),(0,b.jsx)("span",{className:"max-[480px]:hidden",children:"Screenshot mode"})]}),(0,b.jsx)(_.LiveIndicator,{}),(0,b.jsx)($._,{label:"Show data sources",pressed:j,onClick:k,children:(0,b.jsx)(Z,{size:18})}),c&&"owner"===a.role&&(0,b.jsx)(ap,{link:c}),(0,b.jsx)($._,{label:"Screenshot mode",pressed:l,onClick:()=>m(!l),children:l?(0,b.jsx)(W,{size:18}):(0,b.jsx)(V,{size:18})}),(0,b.jsx)(ag,{}),(0,b.jsxs)(R.default,{href:"/alerts","aria-label":f?`Alerts, ${f} firing`:"Alerts",className:"relative inline-grid size-[34px] place-items-center rounded-md text-ink-soft hover:bg-hover hover:text-ink",children:[(0,b.jsx)(s.f,{size:18}),f>0&&(0,b.jsx)("span",{"aria-hidden":!0,className:"absolute right-0.5 top-[3px] rounded-[9px] bg-err px-1 font-mono text-[10px] font-medium leading-[15px] text-white",children:f})]}),(0,b.jsx)(at,{email:a.email,role:a.role,hasPassword:a.hasPassword})]})]})}let av={nav:[],palette:[]};a.s(["Shell",0,function({user:a,collector:g,alerts:h,book:i,shot:j,ext:k=av,children:l}){let[m,n]=(0,c.useState)(!1),[o,p]=(0,c.useState)(!1),[q,r]=(0,c.useState)(!1),[s,t]=(0,c.useState)(null),u=(0,c.useRef)(null),v=(0,c.useRef)(null),w=(0,c.useRef)(!1);function x(a){t(a),r(!0)}return(0,c.useEffect)(()=>{m?(w.current=!0,u.current?.focus()):w.current&&(w.current=!1,v.current?.focus())},[m]),(0,c.useEffect)(()=>{if(m)return window.addEventListener("keydown",a),()=>window.removeEventListener("keydown",a);function a(a){"Escape"===a.key&&n(!1)}},[m]),(0,b.jsx)(d.AliasProvider,{book:i,shot:j,children:(0,b.jsxs)(e.SourcesProvider,{children:[(0,b.jsxs)("div",{className:(0,f.f)("grid min-h-screen grid-cols-1",!o&&"min-[1001px]:grid-cols-[248px_minmax(0,1fr)]"),children:[(!o||m)&&(0,b.jsx)(U,{role:a.role,ext:k,collector:g,alerts:h,mobileOpen:m,onNavigate:()=>n(!1),navRef:u}),m&&(0,b.jsx)("button",{type:"button","aria-label":"Close navigation",className:"fixed inset-0 z-40 bg-black/45 min-[1001px]:hidden",onClick:()=>n(!1)}),(0,b.jsxs)("main",{className:"min-w-0",children:[g.demo&&(0,b.jsx)(P,{}),(0,b.jsx)(au,{user:a,office:k.office,alerts:h,onToggleNav:function(){window.matchMedia("(max-width: 1000px)").matches?n(a=>!a):p(a=>!a)},onOpenPalette:x,navButtonRef:v}),(0,b.jsx)("div",{className:"flex max-w-[1480px] flex-col gap-4 px-6 pb-10 pt-5 max-[720px]:px-3.5",children:l})]})]}),(0,b.jsx)(N,{role:a.role,ext:k,open:q,opener:s,onOpen:x,onClose:()=>r(!1)})]})})}],480761)},299233,a=>{var b=a.i(147474);a.s(["TimeZoneSync",0,function({zone:a}){return(0,b.k)(a),null}])}]})();
|
|
2
|
+
|
|
3
|
+
//# sourceMappingURL=src_components_11x625pqq9ovs._.js.map
|
package/server/.next/server/chunks/ssr/src_components_create_create-dialog_tsx_1s_9clly_m1ru._.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
module.exports=[929994,a=>{"use strict";var b=a.i(187924),c=a.i(817748),d=a.i(901615),e=a.i(572131),f=a.i(823292),g=a.i(405050);let h=(0,g.createServerReference)("60779bc245c7207e6e413d353f522faf4f4ad4372e",g.callServer,void 0,g.findSourceMapURL,"createOptionsAction"),i=(0,g.createServerReference)("000ca167b9ae1a511548315be6420e0273aa53b89c",g.callServer,void 0,g.findSourceMapURL,"disconnectGoogleCreate"),j=(0,g.createServerReference)("70a71115f775ca034130f1941695d35380db943528",g.callServer,void 0,g.findSourceMapURL,"requestCreateAction"),k=(0,g.createServerReference)("003d91a82f42bd1a4fb0082fcefee5fb9b8388da59",g.callServer,void 0,g.findSourceMapURL,"startGoogleCreateConnect");var l=a.i(771378),m=a.i(611619),n=a.i(619089),o=a.i(507504),p=a.i(814574);let q=["This asks Google for the cloud-platform permission: it is broad (it can manage every Google Cloud project you own), so the console uses it only to create a project and add Firebase to it after your approval, and never to change or delete anything.","Google shows an \"unverified app\" warning because Watchbell's OAuth client isn't verified for this scope. It is your own client for your own use: choose Advanced → Go to Watchbell.","While the OAuth consent screen is in Testing mode, Google ends this grant after 7 days; connect again when a create says so. Remove it any time in your Google Account → Security → Third-party access."];d.n.notSet("GOOGLE_CLIENT_ID and GOOGLE_CLIENT_SECRET",!0);var r=a.i(486583),s=a.i(620214);let t=(a,b=300)=>"string"==typeof a&&a.length<=b?a:"",u=(a,b)=>({ok:!1,field:a,error:b}),v=/^(?:\*|[a-z0-9_](?:[a-z0-9_-]{0,61}[a-z0-9_])?)$/,w=/^[a-z0-9][a-z0-9-]{0,62}$/,x=/^br-[a-z0-9-]{3,60}$/,y=[["ap-southeast-1","Southeast Asia (Singapore)"],["ap-northeast-1","Northeast Asia (Tokyo)"],["ap-northeast-2","Northeast Asia (Seoul)"],["ap-southeast-2","Oceania (Sydney)"],["ap-south-1","South Asia (Mumbai)"],["ap-east-1","East Asia (Hong Kong)"],["us-east-1","East US (North Virginia)"],["us-east-2","East US (Ohio)"],["us-west-1","West US (North California)"],["us-west-2","West US (Oregon)"],["ca-central-1","Canada (Central)"],["sa-east-1","South America (São Paulo)"],["eu-west-1","West EU (Ireland)"],["eu-west-2","West EU (London)"],["eu-west-3","West EU (Paris)"],["eu-north-1","North EU (Stockholm)"],["eu-central-1","Central EU (Frankfurt)"],["eu-central-2","Central EU (Zurich)"]],z=y.map(([a])=>a),A=/^[A-Za-z0-9][A-Za-z0-9 ._-]{0,62}$/,B=/^[\w-]{1,64}$/,C=/^[a-z][a-z0-9-]{4,28}[a-z0-9]$/,D=/^[A-Za-z0-9 '"!-]{4,30}$/;var E=a.i(762802);let F={dns_record:"The name must be new in this zone. Proxied is off unless you turn it on.",neon_branch:"The branch is created without a compute, so it uses no CU-hours until you wake it. Waking it later uses CU-hours (100 a month per project on the free plan).",supabase_project:"Only an organization on the free plan is allowed. The database password is generated when the Owner approves and shown once.",firebase_project:"A Google Cloud project without a billing account (the free Spark plan), then Firebase is added to it."};function G({type:a,target:c,targetName:d,onDone:g}){let i=(0,l.useMask)(),[k,m]=(0,e.useState)(null),[o,q]=(0,e.useState)(null),[y,E]=(0,e.useState)(c),[K,L]=(0,e.useState)({type:"CNAME",ttl:s.k,proxied:!1,region:"ap-southeast-1"}),[M,N]=(0,e.useState)(null),[O,P]=(0,e.useTransition)(),Q=(a,b)=>L(c=>({...c,[a]:b}));(0,e.useEffect)(()=>{let b=!0;return h(a,y).then(a=>{if(b)if(a.ok&&a.data){if(m(a.data),"neon_branch"===a.data.type){let b=(a.data.branches.find(a=>a.isDefault)??a.data.branches[0])?.id??"";L(a=>({...a,parentId:a.parentId??b}))}if("supabase_project"===a.data.type){a.data.accountId&&a.data.accountId!==y&&E(a.data.accountId);let b=a.data.orgs.find(a=>a.allowed);b&&L(a=>({...a,orgSlug:b.slug}))}}else q(a.ok?"Something went wrong.":a.error)}).catch(()=>b&&q("Couldn't load the choices. Try again.")),()=>{b=!1}},[a,y]);let R=a=>M?.field===a?M.text:void 0,S=k?.type==="firebase_project"&&(!k.envReady||!k.connected);return(0,b.jsxs)(b.Fragment,{children:[(0,b.jsxs)("div",{className:"px-[18px] pb-2 pt-4",children:[(0,b.jsx)(p.F,{className:"text-base",children:i("text",`New ${r.S[a]}${"dns_record"===a||"neon_branch"===a?` in ${d}`:""}`)}),(0,b.jsxs)(p.C,{className:"mt-0.5 text-[13px] text-ink-soft",children:[F[a]," This only asks: the Owner approves it with the authenticator code, then the console checks the free tier again and makes one create call at ",r.E[a],"."]})]}),(0,b.jsxs)("div",{className:"px-[18px] pt-1.5",children:[o&&(0,b.jsx)("div",{className:"mb-3",children:(0,b.jsx)(n.M,{tone:"danger",title:"Couldn't read the live choices",children:o})}),!k&&!o&&(0,b.jsx)("p",{className:"mb-3 text-[13px] text-ink-soft",children:"Reading the live choices…"}),"dns_record"===a&&(0,b.jsx)(H,{v:K,set:Q,fe:R,zone:d}),"neon_branch"===a&&k?.type==="neon_branch"&&(0,b.jsxs)(b.Fragment,{children:[(0,b.jsxs)("p",{className:"mb-3 text-[13px] text-ink-soft",children:[k.branches.length," of ",k.limit," branches used in this project."]}),(0,b.jsx)(n.O,{id:"cr-parent",label:"Copy from branch",error:R("parentId"),children:(0,b.jsx)("select",{id:"cr-parent",className:n.S,value:String(K.parentId??""),onChange:a=>Q("parentId",a.target.value),children:k.branches.map(a=>(0,b.jsxs)("option",{value:a.id,children:[i("text",a.name),a.isDefault?" (default)":""]},a.id))})}),(0,b.jsx)(n.O,{id:"cr-name",label:"New branch name",error:R("name"),help:"Lower-case letters, digits and hyphens, like preview-42.",children:(0,b.jsx)("input",{id:"cr-name",className:n.S,value:String(K.name??""),maxLength:63,spellCheck:!1,autoComplete:"off",onChange:a=>Q("name",a.target.value)})})]}),"supabase_project"===a&&k?.type==="supabase_project"&&(0,b.jsx)(I,{opts:k,v:K,set:Q,fe:R,account:y,setAccount:E}),"firebase_project"===a&&k?.type==="firebase_project"&&(0,b.jsx)(J,{opts:k,v:K,set:Q,fe:R}),M?.field==="form"&&(0,b.jsx)("p",{className:"mb-3 text-[12.5px] text-err",role:"alert",children:M.text})]}),(0,b.jsxs)("div",{className:"flex flex-wrap items-center justify-end gap-2 border-t border-line px-[18px] py-3",children:[(0,b.jsx)(n.K,{onClick:g,disabled:O,children:"Cancel"}),(0,b.jsx)(n.K,{variant:"primary",onClick:function(){let b;(b="dns_record"===a?function(a,b){let c=a??{},d=t(c.type,10);if(!s.j.includes(d))return u("type","Only A, AAAA, CNAME and TXT records can be added here.");let e=function(a,b){let c=b.trim().toLowerCase().replace(/\.$/,""),d=a.trim().toLowerCase().replace(/\.$/,"");if(!d||!c||("@"===d?d=c:d===c||d.endsWith(`.${c}`)||(d=`${d}.${c}`),d.length>253))return null;let e=d===c?"":d.slice(0,-(c.length+1));return e&&!e.split(".").every((a,b)=>v.test(a)&&("*"!==a||0===b))?null:d}(t(c.name,260),b);if(!e)return u("name",`The name must be a host in ${b}, like shop or shop.${b}.`);let f="number"==typeof c.ttl?c.ttl:s.k,g=(0,s.V)({type:d,name:e},{content:t(c.content,4096),ttl:f,proxied:!0===c.proxied});return g.ok?{ok:!0,inputs:{zoneName:b.toLowerCase(),type:d,name:e,content:g.values.content,ttl:g.values.ttl,proxied:g.values.proxied}}:u(g.field,g.error)}(K,d):"neon_branch"===a?function(a,b){let c=a??{},d=t(c.name,80).trim();if(!w.test(d))return u("name","Use 1 to 63 lower-case letters, digits and hyphens, starting with a letter or digit.");let e=t(c.parentId,80);return x.test(e)?{ok:!0,inputs:{projectName:b,parentId:e,name:d}}:u("parentId","Pick the branch to copy from.")}(K,d):"supabase_project"===a?function(a){let b=a??{},c=t(b.orgSlug,80);if(!B.test(c))return u("orgSlug","Pick an organization.");let d=t(b.name,80).trim();if(!A.test(d))return u("name","Use 1 to 63 letters, digits, spaces, dots, hyphens or underscores.");let e=t(b.region,30);return z.includes(e)?{ok:!0,inputs:{orgSlug:c,name:d,region:e}}:u("region","Pick a region from the list.")}(K):function(a){let b=a??{},c=t(b.projectId,40).trim();if(!C.test(c)||/google|ssl|undefined|null/.test(c))return u("projectId",'6 to 30 lower-case letters, digits and hyphens, starting with a letter (Google refuses ids with "google").');let d=t(b.displayName,40).trim()||c.slice(0,30);return D.test(d)?{ok:!0,inputs:{projectId:c,displayName:d}}:u("displayName","4 to 30 letters, digits, spaces, hyphens, quotes or exclamation marks.")}(K)).ok?N(null):N({field:b.field,text:b.error}),b.ok&&P(async()=>{try{let b=await j(a,"supabase_project"===a?y:c,K);if(b.ok)f.c.success(i("text",b.message??"Asked.")),g();else{let a=b.fieldErrors?Object.keys(b.fieldErrors)[0]:"form";N({field:a,text:i("text",b.error)})}}catch{N({field:"form",text:"Something went wrong. Try again."})}})},disabled:O||!k||S,children:O?"Checking…":"Check and ask for approval"})]})]})}function H({v:a,set:c,fe:d,zone:e}){let f="TXT"!==a.type;return(0,b.jsxs)(b.Fragment,{children:[(0,b.jsxs)("div",{className:"grid grid-cols-[120px_minmax(0,1fr)] gap-3 max-[560px]:grid-cols-1",children:[(0,b.jsx)(n.O,{id:"cr-type",label:"Type",error:d("type"),children:(0,b.jsx)("select",{id:"cr-type",className:n.S,value:String(a.type),onChange:a=>c("type",a.target.value),children:["A","AAAA","CNAME","TXT"].map(a=>(0,b.jsx)("option",{children:a},a))})}),(0,b.jsx)(n.O,{id:"cr-name",label:"Name",error:d("name"),help:`A host in ${e}: shop becomes shop.${e}.`,children:(0,b.jsx)("input",{id:"cr-name",className:n.S,value:String(a.name??""),maxLength:253,spellCheck:!1,autoComplete:"off",onChange:a=>c("name",a.target.value)})})]}),(0,b.jsx)(n.O,{id:"cr-content",label:"Content",error:d("content"),help:"CNAME"===a.type?"For Vercel, copy the value shown on the project's Domains page.":void 0,children:(0,b.jsx)("input",{id:"cr-content",className:n.S,value:String(a.content??""),maxLength:2048,spellCheck:!1,autoComplete:"off",onChange:a=>c("content",a.target.value)})}),(0,b.jsx)(n.O,{id:"cr-ttl",label:"TTL",error:d("ttl"),children:(0,b.jsx)("select",{id:"cr-ttl",className:n.S,value:a.proxied?s.k:Number(a.ttl),disabled:!0===a.proxied,onChange:a=>c("ttl",Number(a.target.value)),children:s.i.map(a=>(0,b.jsx)("option",{value:a,children:(0,E.f)(a)},a))})}),f&&(0,b.jsxs)("label",{className:"mb-3.5 flex items-center gap-2 text-[13px]",children:[(0,b.jsx)("input",{type:"checkbox",className:"accent-brand",checked:!0===a.proxied,onChange:a=>c("proxied",a.target.checked)}),"Proxied through Cloudflare (off by default; Vercel recommends DNS only)"]})]})}function I({opts:a,v:c,set:d,fe:e,account:f,setAccount:g}){let h=(0,l.useMask)(),i=a.active>=a.limit;return(0,b.jsxs)(b.Fragment,{children:[a.accounts.length>1&&(0,b.jsx)(n.O,{id:"cr-acc",label:"Supabase account",children:(0,b.jsx)("select",{id:"cr-acc",className:n.S,value:f,onChange:a=>g(a.target.value),children:a.accounts.map(a=>(0,b.jsx)("option",{value:a.id,children:h("account",a.label)},a.id))})}),0===a.accounts.length&&(0,b.jsx)("div",{className:"mb-3",children:(0,b.jsx)(n.M,{tone:"info",title:"No Supabase account connected",children:"Connect one in Connections first."})}),a.error&&(0,b.jsx)("div",{className:"mb-3",children:(0,b.jsx)(n.M,{tone:"danger",title:"Can't create with this token",children:a.error})}),(0,b.jsxs)("p",{className:"mb-3 text-[13px] text-ink-soft",children:[a.active," of ",a.limit," active free projects in use.",i?" Pause one first; paused projects don't count.":""]}),(0,b.jsx)(n.O,{id:"cr-org",label:"Organization",error:e("orgSlug"),help:"Paid or unknown plans are refused: a project there is billed from the first hour.",children:(0,b.jsx)("select",{id:"cr-org",className:n.S,value:String(c.orgSlug??""),onChange:a=>d("orgSlug",a.target.value),children:a.orgs.map(a=>(0,b.jsxs)("option",{value:a.slug,disabled:!a.allowed,children:[h("text",a.name)," · ",a.plan??"plan unknown",a.allowed?"":" (not allowed)"]},a.slug))})}),(0,b.jsx)(n.O,{id:"cr-name",label:"Project name",error:e("name"),children:(0,b.jsx)("input",{id:"cr-name",className:n.S,value:String(c.name??""),maxLength:63,autoComplete:"off",onChange:a=>d("name",a.target.value)})}),(0,b.jsx)(n.O,{id:"cr-region",label:"Region",error:e("region"),children:(0,b.jsx)("select",{id:"cr-region",className:n.S,value:String(c.region),onChange:a=>d("region",a.target.value),children:y.map(([a,c])=>(0,b.jsxs)("option",{value:a,children:[c," · ",a]},a))})}),(0,b.jsx)("p",{className:"mb-3 text-[12.5px] text-ink-soft",children:a.scopeNote})]})}function J({opts:a,v:c,set:e,fe:f}){return a.envReady?a.connected?(0,b.jsxs)(b.Fragment,{children:[a.error&&(0,b.jsx)("div",{className:"mb-3",children:(0,b.jsx)(n.M,{tone:"danger",title:"Google",children:a.error})}),null!==a.projects&&(0,b.jsxs)("p",{className:"mb-3 text-[13px] text-ink-soft",children:[a.projects," active Google Cloud project",1===a.projects?"":"s",". Google's project quota without a billing account is about ",a.quotaHint," and isn't readable by API; deleted projects count for 30 days."]}),(0,b.jsx)(n.O,{id:"cr-pid",label:"Project id",error:f("projectId"),help:"6 to 30 lower-case letters, digits and hyphens. Permanent and global: pick one nobody has.",children:(0,b.jsx)("input",{id:"cr-pid",className:n.S,value:String(c.projectId??""),maxLength:30,spellCheck:!1,autoComplete:"off",onChange:a=>e("projectId",a.target.value)})}),(0,b.jsx)(n.O,{id:"cr-pname",label:"Display name",error:f("displayName"),children:(0,b.jsx)("input",{id:"cr-pname",className:n.S,value:String(c.displayName??""),maxLength:30,autoComplete:"off",onChange:a=>e("displayName",a.target.value)})})]}):(0,b.jsxs)("div",{className:"mb-3 flex flex-col gap-2",children:[(0,b.jsx)(n.M,{tone:"info",title:"Connect Google (create projects) first",children:"The Firebase service accounts are viewer-only, so creating needs your own Google grant."}),(0,b.jsx)(K,{})]}):(0,b.jsx)("div",{className:"mb-3",children:(0,b.jsx)(n.M,{tone:"info",title:"Google OAuth isn't set up",children:d.n.notSet("GOOGLE_CLIENT_ID and GOOGLE_CLIENT_SECRET",!0)})})}function K({reconnect:a=!1}){return(0,b.jsx)(m.f,{trigger:(0,b.jsx)(n.K,{size:"sm",variant:"primary",children:a?"Reconnect Google (create projects)":"Connect Google (create projects)"}),title:"Connect Google (create projects)",body:(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("p",{className:"mb-2",children:"Google will ask you to approve one permission, separate from the Drive backup one:"}),(0,b.jsx)("p",{className:"mb-2 rounded-md border border-line bg-sunken px-3 py-2 text-ink-soft",children:"See, edit, configure, and delete your Google Cloud data (cloud-platform)."}),(0,b.jsx)("ul",{className:"list-disc space-y-1 pl-5 text-ink-soft",children:q.map(a=>(0,b.jsx)("li",{children:a},a))}),(0,b.jsxs)("p",{className:"mt-2 text-ink-soft",children:["Before the first connect, add this redirect URI to the OAuth client in the Google Cloud console: ",(0,b.jsx)("span",{className:"font-mono text-[12px]",children:"/auth/google/create/callback"})," on this site."]})]}),cta:"Continue to Google",onConfirm:async()=>{let a=await k();return a.ok&&a.data?(window.location.assign(a.data.url),{ok:!0,message:"Opening Google…"}):{ok:!1,message:a.ok?"Something went wrong. Try again.":a.error}}})}a.s(["CreateButton",0,function({type:a,target:d,targetName:f,label:g}){let[h,i]=(0,e.useState)(!1);return(0,o.useHoldRefresh)(h),(0,b.jsxs)(p.N,{open:h,onOpenChange:i,children:[(0,b.jsxs)(p.a,{render:(0,b.jsx)(n.K,{size:"sm"}),children:[(0,b.jsx)(c.f,{size:15,"aria-hidden":!0,className:"-ml-0.5 mr-1 inline"}),g]}),(0,b.jsx)(p.d,{className:"gap-0 p-0 sm:max-w-[560px]",showCloseButton:!1,children:h&&(0,b.jsx)(G,{type:a,target:d,targetName:f,onDone:()=>i(!1)})})]})},"DisconnectGoogleCreateButton",0,function(){return(0,b.jsx)(m.f,{trigger:(0,b.jsx)(n.K,{children:"Disconnect Google (create)"}),title:"Disconnect Google (create projects)?",body:"The console forgets the grant. Remove Watchbell's access in your Google Account → Security → Third-party access as well. Projects already created stay.",cta:"Disconnect",onConfirm:async()=>{let a=await i();return a.ok?{ok:!0,message:a.message??"Disconnected."}:{ok:!1,message:a.error}}})}],929994)}];
|
|
1
|
+
module.exports=[929994,a=>{"use strict";var b=a.i(187924),c=a.i(817748),d=a.i(901615),e=a.i(572131),f=a.i(823292),g=a.i(405050);let h=(0,g.createServerReference)("6010e9e012a8873c9f0df5429deaf2105e40cbf46c",g.callServer,void 0,g.findSourceMapURL,"createOptionsAction"),i=(0,g.createServerReference)("00b64366a8acf51e1c684e21a589e0cea8fba70979",g.callServer,void 0,g.findSourceMapURL,"disconnectGoogleCreate"),j=(0,g.createServerReference)("70d76dcebb37bcebbf88c9a7c811a37074f80efc1f",g.callServer,void 0,g.findSourceMapURL,"requestCreateAction"),k=(0,g.createServerReference)("00403b9270a08e35224bdef3c4e0724bad289b3739",g.callServer,void 0,g.findSourceMapURL,"startGoogleCreateConnect");var l=a.i(771378),m=a.i(611619),n=a.i(619089),o=a.i(507504),p=a.i(814574);let q=["This asks Google for the cloud-platform permission: it is broad (it can manage every Google Cloud project you own), so the console uses it only to create a project and add Firebase to it after your approval, and never to change or delete anything.","Google shows an \"unverified app\" warning because Watchbell's OAuth client isn't verified for this scope. It is your own client for your own use: choose Advanced → Go to Watchbell.","While the OAuth consent screen is in Testing mode, Google ends this grant after 7 days; connect again when a create says so. Remove it any time in your Google Account → Security → Third-party access."];d.n.notSet("GOOGLE_CLIENT_ID and GOOGLE_CLIENT_SECRET",!0);var r=a.i(486583),s=a.i(620214);let t=(a,b=300)=>"string"==typeof a&&a.length<=b?a:"",u=(a,b)=>({ok:!1,field:a,error:b}),v=/^(?:\*|[a-z0-9_](?:[a-z0-9_-]{0,61}[a-z0-9_])?)$/,w=/^[a-z0-9][a-z0-9-]{0,62}$/,x=/^br-[a-z0-9-]{3,60}$/,y=[["ap-southeast-1","Southeast Asia (Singapore)"],["ap-northeast-1","Northeast Asia (Tokyo)"],["ap-northeast-2","Northeast Asia (Seoul)"],["ap-southeast-2","Oceania (Sydney)"],["ap-south-1","South Asia (Mumbai)"],["ap-east-1","East Asia (Hong Kong)"],["us-east-1","East US (North Virginia)"],["us-east-2","East US (Ohio)"],["us-west-1","West US (North California)"],["us-west-2","West US (Oregon)"],["ca-central-1","Canada (Central)"],["sa-east-1","South America (São Paulo)"],["eu-west-1","West EU (Ireland)"],["eu-west-2","West EU (London)"],["eu-west-3","West EU (Paris)"],["eu-north-1","North EU (Stockholm)"],["eu-central-1","Central EU (Frankfurt)"],["eu-central-2","Central EU (Zurich)"]],z=y.map(([a])=>a),A=/^[A-Za-z0-9][A-Za-z0-9 ._-]{0,62}$/,B=/^[\w-]{1,64}$/,C=/^[a-z][a-z0-9-]{4,28}[a-z0-9]$/,D=/^[A-Za-z0-9 '"!-]{4,30}$/;var E=a.i(762802);let F={dns_record:"The name must be new in this zone. Proxied is off unless you turn it on.",neon_branch:"The branch is created without a compute, so it uses no CU-hours until you wake it. Waking it later uses CU-hours (100 a month per project on the free plan).",supabase_project:"Only an organization on the free plan is allowed. The database password is generated when the Owner approves and shown once.",firebase_project:"A Google Cloud project without a billing account (the free Spark plan), then Firebase is added to it."};function G({type:a,target:c,targetName:d,onDone:g}){let i=(0,l.useMask)(),[k,m]=(0,e.useState)(null),[o,q]=(0,e.useState)(null),[y,E]=(0,e.useState)(c),[K,L]=(0,e.useState)({type:"CNAME",ttl:s.k,proxied:!1,region:"ap-southeast-1"}),[M,N]=(0,e.useState)(null),[O,P]=(0,e.useTransition)(),Q=(a,b)=>L(c=>({...c,[a]:b}));(0,e.useEffect)(()=>{let b=!0;return h(a,y).then(a=>{if(b)if(a.ok&&a.data){if(m(a.data),"neon_branch"===a.data.type){let b=(a.data.branches.find(a=>a.isDefault)??a.data.branches[0])?.id??"";L(a=>({...a,parentId:a.parentId??b}))}if("supabase_project"===a.data.type){a.data.accountId&&a.data.accountId!==y&&E(a.data.accountId);let b=a.data.orgs.find(a=>a.allowed);b&&L(a=>({...a,orgSlug:b.slug}))}}else q(a.ok?"Something went wrong.":a.error)}).catch(()=>b&&q("Couldn't load the choices. Try again.")),()=>{b=!1}},[a,y]);let R=a=>M?.field===a?M.text:void 0,S=k?.type==="firebase_project"&&(!k.envReady||!k.connected);return(0,b.jsxs)(b.Fragment,{children:[(0,b.jsxs)("div",{className:"px-[18px] pb-2 pt-4",children:[(0,b.jsx)(p.F,{className:"text-base",children:i("text",`New ${r.S[a]}${"dns_record"===a||"neon_branch"===a?` in ${d}`:""}`)}),(0,b.jsxs)(p.C,{className:"mt-0.5 text-[13px] text-ink-soft",children:[F[a]," This only asks: the Owner approves it with the authenticator code, then the console checks the free tier again and makes one create call at ",r.E[a],"."]})]}),(0,b.jsxs)("div",{className:"px-[18px] pt-1.5",children:[o&&(0,b.jsx)("div",{className:"mb-3",children:(0,b.jsx)(n.M,{tone:"danger",title:"Couldn't read the live choices",children:o})}),!k&&!o&&(0,b.jsx)("p",{className:"mb-3 text-[13px] text-ink-soft",children:"Reading the live choices…"}),"dns_record"===a&&(0,b.jsx)(H,{v:K,set:Q,fe:R,zone:d}),"neon_branch"===a&&k?.type==="neon_branch"&&(0,b.jsxs)(b.Fragment,{children:[(0,b.jsxs)("p",{className:"mb-3 text-[13px] text-ink-soft",children:[k.branches.length," of ",k.limit," branches used in this project."]}),(0,b.jsx)(n.O,{id:"cr-parent",label:"Copy from branch",error:R("parentId"),children:(0,b.jsx)("select",{id:"cr-parent",className:n.S,value:String(K.parentId??""),onChange:a=>Q("parentId",a.target.value),children:k.branches.map(a=>(0,b.jsxs)("option",{value:a.id,children:[i("text",a.name),a.isDefault?" (default)":""]},a.id))})}),(0,b.jsx)(n.O,{id:"cr-name",label:"New branch name",error:R("name"),help:"Lower-case letters, digits and hyphens, like preview-42.",children:(0,b.jsx)("input",{id:"cr-name",className:n.S,value:String(K.name??""),maxLength:63,spellCheck:!1,autoComplete:"off",onChange:a=>Q("name",a.target.value)})})]}),"supabase_project"===a&&k?.type==="supabase_project"&&(0,b.jsx)(I,{opts:k,v:K,set:Q,fe:R,account:y,setAccount:E}),"firebase_project"===a&&k?.type==="firebase_project"&&(0,b.jsx)(J,{opts:k,v:K,set:Q,fe:R}),M?.field==="form"&&(0,b.jsx)("p",{className:"mb-3 text-[12.5px] text-err",role:"alert",children:M.text})]}),(0,b.jsxs)("div",{className:"flex flex-wrap items-center justify-end gap-2 border-t border-line px-[18px] py-3",children:[(0,b.jsx)(n.K,{onClick:g,disabled:O,children:"Cancel"}),(0,b.jsx)(n.K,{variant:"primary",onClick:function(){let b;(b="dns_record"===a?function(a,b){let c=a??{},d=t(c.type,10);if(!s.j.includes(d))return u("type","Only A, AAAA, CNAME and TXT records can be added here.");let e=function(a,b){let c=b.trim().toLowerCase().replace(/\.$/,""),d=a.trim().toLowerCase().replace(/\.$/,"");if(!d||!c||("@"===d?d=c:d===c||d.endsWith(`.${c}`)||(d=`${d}.${c}`),d.length>253))return null;let e=d===c?"":d.slice(0,-(c.length+1));return e&&!e.split(".").every((a,b)=>v.test(a)&&("*"!==a||0===b))?null:d}(t(c.name,260),b);if(!e)return u("name",`The name must be a host in ${b}, like shop or shop.${b}.`);let f="number"==typeof c.ttl?c.ttl:s.k,g=(0,s.V)({type:d,name:e},{content:t(c.content,4096),ttl:f,proxied:!0===c.proxied});return g.ok?{ok:!0,inputs:{zoneName:b.toLowerCase(),type:d,name:e,content:g.values.content,ttl:g.values.ttl,proxied:g.values.proxied}}:u(g.field,g.error)}(K,d):"neon_branch"===a?function(a,b){let c=a??{},d=t(c.name,80).trim();if(!w.test(d))return u("name","Use 1 to 63 lower-case letters, digits and hyphens, starting with a letter or digit.");let e=t(c.parentId,80);return x.test(e)?{ok:!0,inputs:{projectName:b,parentId:e,name:d}}:u("parentId","Pick the branch to copy from.")}(K,d):"supabase_project"===a?function(a){let b=a??{},c=t(b.orgSlug,80);if(!B.test(c))return u("orgSlug","Pick an organization.");let d=t(b.name,80).trim();if(!A.test(d))return u("name","Use 1 to 63 letters, digits, spaces, dots, hyphens or underscores.");let e=t(b.region,30);return z.includes(e)?{ok:!0,inputs:{orgSlug:c,name:d,region:e}}:u("region","Pick a region from the list.")}(K):function(a){let b=a??{},c=t(b.projectId,40).trim();if(!C.test(c)||/google|ssl|undefined|null/.test(c))return u("projectId",'6 to 30 lower-case letters, digits and hyphens, starting with a letter (Google refuses ids with "google").');let d=t(b.displayName,40).trim()||c.slice(0,30);return D.test(d)?{ok:!0,inputs:{projectId:c,displayName:d}}:u("displayName","4 to 30 letters, digits, spaces, hyphens, quotes or exclamation marks.")}(K)).ok?N(null):N({field:b.field,text:b.error}),b.ok&&P(async()=>{try{let b=await j(a,"supabase_project"===a?y:c,K);if(b.ok)f.c.success(i("text",b.message??"Asked.")),g();else{let a=b.fieldErrors?Object.keys(b.fieldErrors)[0]:"form";N({field:a,text:i("text",b.error)})}}catch{N({field:"form",text:"Something went wrong. Try again."})}})},disabled:O||!k||S,children:O?"Checking…":"Check and ask for approval"})]})]})}function H({v:a,set:c,fe:d,zone:e}){let f="TXT"!==a.type;return(0,b.jsxs)(b.Fragment,{children:[(0,b.jsxs)("div",{className:"grid grid-cols-[120px_minmax(0,1fr)] gap-3 max-[560px]:grid-cols-1",children:[(0,b.jsx)(n.O,{id:"cr-type",label:"Type",error:d("type"),children:(0,b.jsx)("select",{id:"cr-type",className:n.S,value:String(a.type),onChange:a=>c("type",a.target.value),children:["A","AAAA","CNAME","TXT"].map(a=>(0,b.jsx)("option",{children:a},a))})}),(0,b.jsx)(n.O,{id:"cr-name",label:"Name",error:d("name"),help:`A host in ${e}: shop becomes shop.${e}.`,children:(0,b.jsx)("input",{id:"cr-name",className:n.S,value:String(a.name??""),maxLength:253,spellCheck:!1,autoComplete:"off",onChange:a=>c("name",a.target.value)})})]}),(0,b.jsx)(n.O,{id:"cr-content",label:"Content",error:d("content"),help:"CNAME"===a.type?"For Vercel, copy the value shown on the project's Domains page.":void 0,children:(0,b.jsx)("input",{id:"cr-content",className:n.S,value:String(a.content??""),maxLength:2048,spellCheck:!1,autoComplete:"off",onChange:a=>c("content",a.target.value)})}),(0,b.jsx)(n.O,{id:"cr-ttl",label:"TTL",error:d("ttl"),children:(0,b.jsx)("select",{id:"cr-ttl",className:n.S,value:a.proxied?s.k:Number(a.ttl),disabled:!0===a.proxied,onChange:a=>c("ttl",Number(a.target.value)),children:s.i.map(a=>(0,b.jsx)("option",{value:a,children:(0,E.f)(a)},a))})}),f&&(0,b.jsxs)("label",{className:"mb-3.5 flex items-center gap-2 text-[13px]",children:[(0,b.jsx)("input",{type:"checkbox",className:"accent-brand",checked:!0===a.proxied,onChange:a=>c("proxied",a.target.checked)}),"Proxied through Cloudflare (off by default; Vercel recommends DNS only)"]})]})}function I({opts:a,v:c,set:d,fe:e,account:f,setAccount:g}){let h=(0,l.useMask)(),i=a.active>=a.limit;return(0,b.jsxs)(b.Fragment,{children:[a.accounts.length>1&&(0,b.jsx)(n.O,{id:"cr-acc",label:"Supabase account",children:(0,b.jsx)("select",{id:"cr-acc",className:n.S,value:f,onChange:a=>g(a.target.value),children:a.accounts.map(a=>(0,b.jsx)("option",{value:a.id,children:h("account",a.label)},a.id))})}),0===a.accounts.length&&(0,b.jsx)("div",{className:"mb-3",children:(0,b.jsx)(n.M,{tone:"info",title:"No Supabase account connected",children:"Connect one in Connections first."})}),a.error&&(0,b.jsx)("div",{className:"mb-3",children:(0,b.jsx)(n.M,{tone:"danger",title:"Can't create with this token",children:a.error})}),(0,b.jsxs)("p",{className:"mb-3 text-[13px] text-ink-soft",children:[a.active," of ",a.limit," active free projects in use.",i?" Pause one first; paused projects don't count.":""]}),(0,b.jsx)(n.O,{id:"cr-org",label:"Organization",error:e("orgSlug"),help:"Paid or unknown plans are refused: a project there is billed from the first hour.",children:(0,b.jsx)("select",{id:"cr-org",className:n.S,value:String(c.orgSlug??""),onChange:a=>d("orgSlug",a.target.value),children:a.orgs.map(a=>(0,b.jsxs)("option",{value:a.slug,disabled:!a.allowed,children:[h("text",a.name)," · ",a.plan??"plan unknown",a.allowed?"":" (not allowed)"]},a.slug))})}),(0,b.jsx)(n.O,{id:"cr-name",label:"Project name",error:e("name"),children:(0,b.jsx)("input",{id:"cr-name",className:n.S,value:String(c.name??""),maxLength:63,autoComplete:"off",onChange:a=>d("name",a.target.value)})}),(0,b.jsx)(n.O,{id:"cr-region",label:"Region",error:e("region"),children:(0,b.jsx)("select",{id:"cr-region",className:n.S,value:String(c.region),onChange:a=>d("region",a.target.value),children:y.map(([a,c])=>(0,b.jsxs)("option",{value:a,children:[c," · ",a]},a))})}),(0,b.jsx)("p",{className:"mb-3 text-[12.5px] text-ink-soft",children:a.scopeNote})]})}function J({opts:a,v:c,set:e,fe:f}){return a.envReady?a.connected?(0,b.jsxs)(b.Fragment,{children:[a.error&&(0,b.jsx)("div",{className:"mb-3",children:(0,b.jsx)(n.M,{tone:"danger",title:"Google",children:a.error})}),null!==a.projects&&(0,b.jsxs)("p",{className:"mb-3 text-[13px] text-ink-soft",children:[a.projects," active Google Cloud project",1===a.projects?"":"s",". Google's project quota without a billing account is about ",a.quotaHint," and isn't readable by API; deleted projects count for 30 days."]}),(0,b.jsx)(n.O,{id:"cr-pid",label:"Project id",error:f("projectId"),help:"6 to 30 lower-case letters, digits and hyphens. Permanent and global: pick one nobody has.",children:(0,b.jsx)("input",{id:"cr-pid",className:n.S,value:String(c.projectId??""),maxLength:30,spellCheck:!1,autoComplete:"off",onChange:a=>e("projectId",a.target.value)})}),(0,b.jsx)(n.O,{id:"cr-pname",label:"Display name",error:f("displayName"),children:(0,b.jsx)("input",{id:"cr-pname",className:n.S,value:String(c.displayName??""),maxLength:30,autoComplete:"off",onChange:a=>e("displayName",a.target.value)})})]}):(0,b.jsxs)("div",{className:"mb-3 flex flex-col gap-2",children:[(0,b.jsx)(n.M,{tone:"info",title:"Connect Google (create projects) first",children:"The Firebase service accounts are viewer-only, so creating needs your own Google grant."}),(0,b.jsx)(K,{})]}):(0,b.jsx)("div",{className:"mb-3",children:(0,b.jsx)(n.M,{tone:"info",title:"Google OAuth isn't set up",children:d.n.notSet("GOOGLE_CLIENT_ID and GOOGLE_CLIENT_SECRET",!0)})})}function K({reconnect:a=!1}){return(0,b.jsx)(m.f,{trigger:(0,b.jsx)(n.K,{size:"sm",variant:"primary",children:a?"Reconnect Google (create projects)":"Connect Google (create projects)"}),title:"Connect Google (create projects)",body:(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("p",{className:"mb-2",children:"Google will ask you to approve one permission, separate from the Drive backup one:"}),(0,b.jsx)("p",{className:"mb-2 rounded-md border border-line bg-sunken px-3 py-2 text-ink-soft",children:"See, edit, configure, and delete your Google Cloud data (cloud-platform)."}),(0,b.jsx)("ul",{className:"list-disc space-y-1 pl-5 text-ink-soft",children:q.map(a=>(0,b.jsx)("li",{children:a},a))}),(0,b.jsxs)("p",{className:"mt-2 text-ink-soft",children:["Before the first connect, add this redirect URI to the OAuth client in the Google Cloud console: ",(0,b.jsx)("span",{className:"font-mono text-[12px]",children:"/auth/google/create/callback"})," on this site."]})]}),cta:"Continue to Google",onConfirm:async()=>{let a=await k();return a.ok&&a.data?(window.location.assign(a.data.url),{ok:!0,message:"Opening Google…"}):{ok:!1,message:a.ok?"Something went wrong. Try again.":a.error}}})}a.s(["CreateButton",0,function({type:a,target:d,targetName:f,label:g}){let[h,i]=(0,e.useState)(!1);return(0,o.useHoldRefresh)(h),(0,b.jsxs)(p.N,{open:h,onOpenChange:i,children:[(0,b.jsxs)(p.a,{render:(0,b.jsx)(n.K,{size:"sm"}),children:[(0,b.jsx)(c.f,{size:15,"aria-hidden":!0,className:"-ml-0.5 mr-1 inline"}),g]}),(0,b.jsx)(p.d,{className:"gap-0 p-0 sm:max-w-[560px]",showCloseButton:!1,children:h&&(0,b.jsx)(G,{type:a,target:d,targetName:f,onDone:()=>i(!1)})})]})},"DisconnectGoogleCreateButton",0,function(){return(0,b.jsx)(m.f,{trigger:(0,b.jsx)(n.K,{children:"Disconnect Google (create)"}),title:"Disconnect Google (create projects)?",body:"The console forgets the grant. Remove Watchbell's access in your Google Account → Security → Third-party access as well. Projects already created stay.",cta:"Disconnect",onConfirm:async()=>{let a=await i();return a.ok?{ok:!0,message:a.message??"Disconnected."}:{ok:!1,message:a.error}}})}],929994)}];
|
|
2
2
|
|
|
3
3
|
//# sourceMappingURL=src_components_create_create-dialog_tsx_1s_9clly_m1ru._.js.map
|