watchbell 1.6.0 → 1.7.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/package.json +1 -1
- package/server/.next/BUILD_ID +1 -1
- package/server/.next/app-path-routes-manifest.json +3 -0
- package/server/.next/build-manifest.json +14 -3
- package/server/.next/prerender-manifest.json +3 -3
- package/server/.next/required-server-files.json +1 -1
- package/server/.next/routes-manifest.json +20 -0
- package/server/.next/server/app/(console)/(private)/ai/agents/page/server-reference-manifest.json +13 -13
- package/server/.next/server/app/(console)/(private)/ai/agents/page.js +72 -71
- 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 +12 -12
- package/server/.next/server/app/(console)/(private)/ai/ask/page.js +72 -71
- 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 +11 -11
- package/server/.next/server/app/(console)/(private)/ai/connect/page.js +72 -71
- 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 +14 -14
- package/server/.next/server/app/(console)/(private)/ai/keys/page.js +72 -71
- 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 +12 -12
- package/server/.next/server/app/(console)/(private)/ai/logs/page.js +72 -71
- 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 +21 -21
- package/server/.next/server/app/(console)/(private)/ai/models/page.js +72 -71
- 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 +11 -11
- package/server/.next/server/app/(console)/(private)/ai/page.js +72 -71
- 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 +14 -14
- package/server/.next/server/app/(console)/(private)/ai/playground/page.js +72 -71
- 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 +17 -17
- package/server/.next/server/app/(console)/(private)/ai/providers/page.js +72 -71
- 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 +12 -12
- package/server/.next/server/app/(console)/(private)/ai/quota/page.js +72 -71
- 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 +12 -12
- package/server/.next/server/app/(console)/(private)/ai/usage/page.js +72 -71
- 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 +11 -11
- package/server/.next/server/app/(console)/(private)/api-docs/[[...op]]/page.js +72 -71
- 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 +12 -12
- package/server/.next/server/app/(console)/(private)/auto-actions/page.js +72 -71
- package/server/.next/server/app/(console)/(private)/auto-actions/page.js.nft.json +1 -1
- package/server/.next/server/app/(console)/(private)/auto-actions/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/(console)/alerts/page/server-reference-manifest.json +27 -27
- package/server/.next/server/app/(console)/alerts/page.js +72 -71
- 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 +34 -34
- package/server/.next/server/app/(console)/apps/[id]/page.js +72 -71
- 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 +14 -14
- package/server/.next/server/app/(console)/apps/page.js +72 -71
- 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 +14 -14
- package/server/.next/server/app/(console)/backups/page.js +72 -71
- 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 +11 -11
- package/server/.next/server/app/(console)/catalog/page.js +72 -71
- 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 +22 -22
- package/server/.next/server/app/(console)/connections/page.js +72 -71
- 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)/containers/page/server-reference-manifest.json +14 -14
- package/server/.next/server/app/(console)/containers/page.js +72 -71
- package/server/.next/server/app/(console)/containers/page.js.nft.json +1 -1
- package/server/.next/server/app/(console)/containers/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/(console)/d1/page/server-reference-manifest.json +11 -11
- package/server/.next/server/app/(console)/d1/page.js +72 -71
- 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)/deploy/page/server-reference-manifest.json +11 -11
- package/server/.next/server/app/(console)/deploy/page.js +72 -71
- package/server/.next/server/app/(console)/deploy/page.js.nft.json +1 -1
- package/server/.next/server/app/(console)/deploy/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/(console)/deployments/page/server-reference-manifest.json +19 -19
- package/server/.next/server/app/(console)/deployments/page.js +72 -71
- 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 +18 -18
- package/server/.next/server/app/(console)/dns/page.js +72 -71
- 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 +13 -13
- package/server/.next/server/app/(console)/domains/page.js +72 -71
- 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 +11 -11
- package/server/.next/server/app/(console)/events/page.js +72 -71
- 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 +18 -18
- package/server/.next/server/app/(console)/firebase/page.js +72 -71
- 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 +12 -12
- package/server/.next/server/app/(console)/logs/page.js +72 -71
- package/server/.next/server/app/(console)/logs/page.js.nft.json +1 -1
- package/server/.next/server/app/(console)/logs/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/(console)/manage/sections/page/server-reference-manifest.json +12 -12
- package/server/.next/server/app/(console)/manage/sections/page.js +72 -71
- package/server/.next/server/app/(console)/manage/sections/page.js.nft.json +1 -1
- package/server/.next/server/app/(console)/manage/sections/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/(console)/neon/page/server-reference-manifest.json +22 -22
- package/server/.next/server/app/(console)/neon/page.js +72 -71
- 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)/os/page/server-reference-manifest.json +12 -12
- package/server/.next/server/app/(console)/os/page.js +72 -71
- package/server/.next/server/app/(console)/os/page.js.nft.json +1 -1
- package/server/.next/server/app/(console)/os/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/(console)/overview/page/server-reference-manifest.json +21 -21
- package/server/.next/server/app/(console)/overview/page.js +72 -71
- 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)/reports/[id]/pdf/route/app-paths-manifest.json +3 -0
- package/server/.next/server/app/(console)/reports/[id]/pdf/route/build-manifest.json +12 -0
- package/server/.next/server/app/(console)/reports/[id]/pdf/route/server-reference-manifest.json +4 -0
- package/server/.next/server/app/(console)/reports/[id]/pdf/route.js +26 -0
- package/server/.next/server/app/(console)/reports/[id]/pdf/route.js.nft.json +1 -0
- package/server/.next/server/app/(console)/reports/[id]/pdf/route_client-reference-manifest.js +3 -0
- package/server/.next/server/app/(console)/reports/page/app-paths-manifest.json +3 -0
- package/server/.next/server/app/(console)/reports/page/build-manifest.json +22 -0
- package/server/.next/server/app/(console)/reports/page/next-font-manifest.json +11 -0
- package/server/.next/server/app/(console)/reports/page/react-loadable-manifest.json +1 -0
- package/server/.next/server/app/(console)/reports/page/server-reference-manifest.json +155 -0
- package/server/.next/server/app/(console)/reports/page.js +121 -0
- package/server/.next/server/app/(console)/reports/page.js.nft.json +1 -0
- package/server/.next/server/app/(console)/reports/page_client-reference-manifest.js +3 -0
- package/server/.next/server/app/(console)/repos/[id]/page/server-reference-manifest.json +12 -12
- package/server/.next/server/app/(console)/repos/[id]/page.js +72 -71
- 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 +11 -11
- package/server/.next/server/app/(console)/repos/page.js +72 -71
- 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 +62 -42
- package/server/.next/server/app/(console)/settings/page.js +75 -74
- 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 +18 -18
- package/server/.next/server/app/(console)/sql/page.js +72 -71
- 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 +11 -11
- package/server/.next/server/app/(console)/status/page.js +72 -71
- 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 +32 -32
- package/server/.next/server/app/(console)/supabase/page.js +72 -71
- 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 +11 -11
- package/server/.next/server/app/(console)/topology/page.js +72 -71
- 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 +11 -11
- package/server/.next/server/app/(console)/turso/page.js +72 -71
- 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 +11 -11
- package/server/.next/server/app/(console)/upstash/page.js +72 -71
- 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 +25 -25
- package/server/.next/server/app/(console)/uptime/page.js +72 -71
- 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 +16 -16
- package/server/.next/server/app/(console)/welcome/page.js +72 -71
- 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 +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 +3 -3
- package/server/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +2 -2
- package/server/.next/server/app/_global-error.segments/_full.segment.rsc +3 -3
- package/server/.next/server/app/_global-error.segments/_tree.segment.rsc +2 -2
- package/server/.next/server/app/_not-found/page/server-reference-manifest.json +1 -1
- package/server/.next/server/app/_not-found/page.js.nft.json +1 -1
- package/server/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/_not-found.html +1 -1
- package/server/.next/server/app/_not-found.rsc +4 -4
- package/server/.next/server/app/_not-found.segments/_full.segment.rsc +4 -4
- package/server/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +3 -3
- package/server/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
- package/server/.next/server/app/account/password/page/server-reference-manifest.json +2 -2
- package/server/.next/server/app/account/password/page.js.nft.json +1 -1
- package/server/.next/server/app/account/password/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/api/collect/route/server-reference-manifest.json +8 -8
- package/server/.next/server/app/api/collect/route.js +90 -84
- 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 +8 -8
- package/server/.next/server/app/api/daily/route.js +95 -89
- package/server/.next/server/app/api/daily/route.js.nft.json +1 -1
- package/server/.next/server/app/api/health/route.js.nft.json +1 -1
- package/server/.next/server/app/api/ping/[...parts]/route.js +9 -8
- package/server/.next/server/app/api/ping/[...parts]/route.js.nft.json +1 -1
- package/server/.next/server/app/api/status/route.js +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 +8 -8
- package/server/.next/server/app/api/telegram/webhook/route.js +85 -80
- package/server/.next/server/app/api/telegram/webhook/route.js.nft.json +1 -1
- package/server/.next/server/app/api/v1/[[...rest]]/route.js.nft.json +1 -1
- package/server/.next/server/app/api/v1/advice/route.js +27 -23
- package/server/.next/server/app/api/v1/advice/route.js.nft.json +1 -1
- package/server/.next/server/app/api/v1/ai/chat/completions/route.js +1 -1
- package/server/.next/server/app/api/v1/ai/chat/completions/route.js.nft.json +1 -1
- package/server/.next/server/app/api/v1/ai/models/route.js +1 -1
- package/server/.next/server/app/api/v1/ai/models/route.js.nft.json +1 -1
- package/server/.next/server/app/api/v1/ai/questions/[id]/route.js +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 +31 -27
- 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 +28 -24
- package/server/.next/server/app/api/v1/mcp/route.js.nft.json +1 -1
- package/server/.next/server/app/api/v1/me/route.js +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 +1 -1
- package/server/.next/server/app/api/v1/openapi.json/route.js.nft.json +1 -1
- package/server/.next/server/app/api/v1/status/apps/[app]/route.js +27 -23
- 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 +27 -23
- package/server/.next/server/app/api/v1/status/route.js.nft.json +1 -1
- package/server/.next/server/app/api/watchdog/route.js +27 -21
- package/server/.next/server/app/api/watchdog/route.js.nft.json +1 -1
- package/server/.next/server/app/auth/confirm/route.js +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 +16 -15
- 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 +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 +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 +1 -1
- package/server/.next/server/app/auth/session-ended/route.js.nft.json +1 -1
- package/server/.next/server/app/brand-icon/route/app-paths-manifest.json +3 -0
- package/server/.next/server/app/brand-icon/route/build-manifest.json +12 -0
- package/server/.next/server/app/brand-icon/route/server-reference-manifest.json +4 -0
- package/server/.next/server/app/brand-icon/route.js +15 -0
- package/server/.next/server/app/brand-icon/route.js.nft.json +1 -0
- package/server/.next/server/app/brand-icon/route_client-reference-manifest.js +3 -0
- package/server/.next/server/app/icon.svg/route.js.nft.json +1 -1
- package/server/.next/server/app/invite/page/server-reference-manifest.json +2 -2
- package/server/.next/server/app/invite/page.js.nft.json +1 -1
- package/server/.next/server/app/invite/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/mfa/page/server-reference-manifest.json +2 -2
- package/server/.next/server/app/mfa/page.js +33 -31
- 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 +33 -31
- 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 +10 -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 +10 -10
- 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 +1 -1
- 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 +38 -36
- 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/app-paths-manifest.json +3 -0
- package/server/.next/server/chunks/{[externals]__0n4j2emxdv20_._.js → [externals]__0oqc6ym5k457v._.js} +1 -1
- package/server/.next/server/chunks/{[externals]__1hwo1oo04do39._.js → [externals]__1aervsuoo1qe_._.js} +1 -1
- package/server/.next/server/chunks/{[externals]__1k12utcf9tvqg._.js → [externals]__1oag9t_9gex2-._.js} +1 -1
- package/server/.next/server/chunks/{[root-of-the-server]__1avuwg9wmyh48._.js → [root-of-the-server]__0-ytbad9hn7uc._.js} +1 -1
- package/server/.next/server/chunks/[root-of-the-server]__00s0famyfjv1y._.js +3 -0
- package/server/.next/server/chunks/{[root-of-the-server]__09l9icaspfmoh._.js → [root-of-the-server]__016wnct3b5iby._.js} +2 -2
- package/server/.next/server/chunks/[root-of-the-server]__01dj-ln12bcmb._.js +1 -1
- package/server/.next/server/chunks/[root-of-the-server]__029099rqwqwff._.js +3 -0
- package/server/.next/server/chunks/{[root-of-the-server]__03589rgm1a3ks._.js → [root-of-the-server]__02ctwy1u4z3fj._.js} +2 -2
- package/server/.next/server/chunks/[root-of-the-server]__02v25dn1cwxz6._.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]__06kp2_zqpttyd._.js → [root-of-the-server]__03y8yvaulshnn._.js} +2 -2
- package/server/.next/server/chunks/[root-of-the-server]__03z520-siwkv_._.js +3 -0
- package/server/.next/server/chunks/{[root-of-the-server]__06l038ifglbqy._.js → [root-of-the-server]__04ogdmf82__0g._.js} +1 -1
- package/server/.next/server/chunks/[root-of-the-server]__05qcc-0e8z1u8._.js +1 -1
- package/server/.next/server/chunks/{[root-of-the-server]__09msxcjw3tlue._.js → [root-of-the-server]__05s9-538s47_e._.js} +1 -1
- package/server/.next/server/chunks/{[root-of-the-server]__1xdi98xyay6bn._.js → [root-of-the-server]__05vm5cxqq2-pg._.js} +1 -1
- package/server/.next/server/chunks/[root-of-the-server]__06od3qx7q00rc._.js +3 -0
- package/server/.next/server/chunks/{[root-of-the-server]__0uz_r72zdnwdd._.js → [root-of-the-server]__06rlokvpk450w._.js} +2 -2
- package/server/.next/server/chunks/{[root-of-the-server]__0ao4b2jjkcvo1._.js → [root-of-the-server]__070v8547b4qpa._.js} +1 -1
- package/server/.next/server/chunks/[root-of-the-server]__07eo--c90cju2._.js +1 -1
- package/server/.next/server/chunks/{[root-of-the-server]__0fii83nfm0bsk._.js → [root-of-the-server]__07gjmfv5mi33j._.js} +1 -1
- package/server/.next/server/chunks/[root-of-the-server]__07u2g5ccvst94._.js +3 -0
- package/server/.next/server/chunks/{[root-of-the-server]__205cmd-k6g2kc._.js → [root-of-the-server]__096q5ufradttx._.js} +1 -1
- package/server/.next/server/chunks/[root-of-the-server]__09bwtkv2iniyt._.js +3 -0
- package/server/.next/server/chunks/[root-of-the-server]__0_2fr1g7uby1m._.js +3 -0
- package/server/.next/server/chunks/{[root-of-the-server]__0g0rd65zoitrb._.js → [root-of-the-server]__0aazgg7203ez1._.js} +1 -1
- package/server/.next/server/chunks/{[root-of-the-server]__0ebkmgcs7v0c8._.js → [root-of-the-server]__0afpn-tk2qlu0._.js} +2 -2
- package/server/.next/server/chunks/[root-of-the-server]__0b7xflnrk4amk._.js +3 -0
- package/server/.next/server/chunks/[root-of-the-server]__0bb8xnocnnbt8._.js +3 -0
- package/server/.next/server/chunks/[root-of-the-server]__0bxqqjjy9ckvm._.js +3 -0
- package/server/.next/server/chunks/[root-of-the-server]__0c0drtvym6hf4._.js +3 -0
- package/server/.next/server/chunks/{[root-of-the-server]__0c_mpay_m5kbm._.js → [root-of-the-server]__0erdelc9_06nk._.js} +1 -1
- package/server/.next/server/chunks/{[root-of-the-server]__0ww7a-9fnx2rv._.js → [root-of-the-server]__0eyd4kffoz9ex._.js} +1 -1
- package/server/.next/server/chunks/[root-of-the-server]__0frz3wu-qcv-d._.js +3 -0
- package/server/.next/server/chunks/{[root-of-the-server]__0uyc9w7f_r10u._.js → [root-of-the-server]__0g0-q56cumuup._.js} +1 -1
- package/server/.next/server/chunks/[root-of-the-server]__0gb4uz-gv3va0._.js +1 -1
- package/server/.next/server/chunks/[root-of-the-server]__0gqye-fi-f3zk._.js +1 -1
- package/server/.next/server/chunks/{[root-of-the-server]__0s3b61ttgb9if._.js → [root-of-the-server]__0gv3v5775wfmw._.js} +2 -2
- package/server/.next/server/chunks/{[root-of-the-server]__1y9gsf61fh1fv._.js → [root-of-the-server]__0hm-azhxs9ted._.js} +2 -2
- package/server/.next/server/chunks/{[root-of-the-server]__0vdm37x30hr6p._.js → [root-of-the-server]__0ieq7-dtcg06b._.js} +1 -1
- package/server/.next/server/chunks/{[root-of-the-server]__0r0zrp3s_n614._.js → [root-of-the-server]__0iicsi0n7tfa5._.js} +1 -1
- package/server/.next/server/chunks/{[root-of-the-server]__1tlivd99uri0t._.js → [root-of-the-server]__0jevd1p5unnre._.js} +2 -2
- package/server/.next/server/chunks/{[root-of-the-server]__0vclan952l_ty._.js → [root-of-the-server]__0jz91oppmwtiq._.js} +2 -2
- package/server/.next/server/chunks/[root-of-the-server]__0kk-m8_ul4f4k._.js +1 -1
- package/server/.next/server/chunks/{[root-of-the-server]__10d4a34z0js-f._.js → [root-of-the-server]__0mg6rmq22tf26._.js} +1 -1
- package/server/.next/server/chunks/[root-of-the-server]__0n-u6p8-hd-89._.js +3 -0
- package/server/.next/server/chunks/{[root-of-the-server]__20qirklw1sgj0._.js → [root-of-the-server]__0ng-t81zeeipc._.js} +2 -2
- package/server/.next/server/chunks/{[root-of-the-server]__1r2ei065xk141._.js → [root-of-the-server]__0nkfi6x2c4c5p._.js} +1 -1
- package/server/.next/server/chunks/{[root-of-the-server]__192br5y94wzhx._.js → [root-of-the-server]__0nyxfjn368366._.js} +1 -1
- package/server/.next/server/chunks/[root-of-the-server]__0o6q27cnw6-77._.js +1 -1
- package/server/.next/server/chunks/[root-of-the-server]__0p2n1_qp53y51._.js +3 -0
- package/server/.next/server/chunks/[root-of-the-server]__0p8j8b2tg73dq._.js +3 -0
- package/server/.next/server/chunks/[root-of-the-server]__0p955ekgdwy_c._.js +3 -0
- package/server/.next/server/chunks/{[root-of-the-server]__0g3v-ty9-xstp._.js → [root-of-the-server]__0p_rkszoindlf._.js} +1 -1
- package/server/.next/server/chunks/{[root-of-the-server]__1tefe1f5835t_._.js → [root-of-the-server]__0pammm8f5qxtv._.js} +2 -2
- package/server/.next/server/chunks/{[root-of-the-server]__0c41pzboxtjvz._.js → [root-of-the-server]__0pm83e1a3wwlw._.js} +1 -1
- package/server/.next/server/chunks/[root-of-the-server]__0q9s7rbt0e-cf._.js +3 -0
- package/server/.next/server/chunks/{[root-of-the-server]__1mbm_bvk1oat7._.js → [root-of-the-server]__0qhyj1r9qcxp3._.js} +2 -2
- package/server/.next/server/chunks/[root-of-the-server]__0ra3lgjt0yuyy._.js +3 -0
- package/server/.next/server/chunks/{[root-of-the-server]__1z1fgf8k8icw8._.js → [root-of-the-server]__0ra_bw8zg6kmk._.js} +2 -2
- package/server/.next/server/chunks/[root-of-the-server]__0sgumm0843o2j._.js +3 -0
- package/server/.next/server/chunks/{[root-of-the-server]__0016p4j5uh74t._.js → [root-of-the-server]__0t6rge6laz89-._.js} +2 -2
- package/server/.next/server/chunks/{[root-of-the-server]__04v42ls1mfjd2._.js → [root-of-the-server]__0tsly874_mafr._.js} +2 -2
- package/server/.next/server/chunks/{[root-of-the-server]__1iruoalu93dg7._.js → [root-of-the-server]__0u4o6oo428rvf._.js} +2 -2
- package/server/.next/server/chunks/{[root-of-the-server]__0a7moaa91ctod._.js → [root-of-the-server]__0ux78ppoct5b_._.js} +2 -2
- package/server/.next/server/chunks/[root-of-the-server]__0vg5zp6z094qr._.js +3 -0
- package/server/.next/server/chunks/{[root-of-the-server]__1ji_xmb_m6fam._.js → [root-of-the-server]__0vhq-__j8umfu._.js} +1 -1
- package/server/.next/server/chunks/[root-of-the-server]__0vjvvirn6-fx-._.js +3 -0
- package/server/.next/server/chunks/[root-of-the-server]__0vp-x4ifpr3p9._.js +1 -1
- package/server/.next/server/chunks/{[root-of-the-server]__10ts7p_9fu3ge._.js → [root-of-the-server]__0vuirlylhcyzm._.js} +2 -2
- package/server/.next/server/chunks/{[root-of-the-server]__06zmu7jjyw1qw._.js → [root-of-the-server]__0w1iqt-rpp_3h._.js} +1 -1
- package/server/.next/server/chunks/[root-of-the-server]__0welpj78704um._.js +3 -0
- package/server/.next/server/chunks/{[root-of-the-server]__20056vw370xom._.js → [root-of-the-server]__0xd_bgjy5_tr5._.js} +1 -1
- package/server/.next/server/chunks/[root-of-the-server]__0xnag1k7mnvoh._.js +3 -0
- package/server/.next/server/chunks/[root-of-the-server]__0yhki59n8zyjb._.js +1 -1
- package/server/.next/server/chunks/[root-of-the-server]__0ymf9ppvpsffe._.js +3 -0
- package/server/.next/server/chunks/[root-of-the-server]__0zpo6n_av-p7a._.js +3 -0
- package/server/.next/server/chunks/{[root-of-the-server]__1hrcyozojb6ot._.js → [root-of-the-server]__0zs-wkvv1cs0i._.js} +1 -1
- package/server/.next/server/chunks/[root-of-the-server]__0zxrhqtvpoio4._.js +3 -0
- package/server/.next/server/chunks/[root-of-the-server]__1-9vvc9y0qqhf._.js +3 -0
- package/server/.next/server/chunks/[root-of-the-server]__1-bbb_srnbm5x._.js +3 -0
- package/server/.next/server/chunks/[root-of-the-server]__10-4cctiab73h._.js +3 -0
- package/server/.next/server/chunks/[root-of-the-server]__11300e77grhx6._.js +3 -0
- package/server/.next/server/chunks/{[root-of-the-server]__0tshehtsx7229._.js → [root-of-the-server]__11a8fxlpahjy2._.js} +1 -1
- package/server/.next/server/chunks/[root-of-the-server]__11tzj3jzqzk6v._.js +3 -0
- package/server/.next/server/chunks/{[root-of-the-server]__1ghx3ayy7tm73._.js → [root-of-the-server]__11yn1ky7yixd7._.js} +2 -2
- package/server/.next/server/chunks/[root-of-the-server]__12m0p1vyef6d5._.js +3 -0
- package/server/.next/server/chunks/[root-of-the-server]__12w6gylk59cym._.js +3 -0
- package/server/.next/server/chunks/[root-of-the-server]__13-qqkdecmwba._.js +3 -0
- package/server/.next/server/chunks/{[root-of-the-server]__19jalyhtntk8p._.js → [root-of-the-server]__135cn1pmljq9j._.js} +1 -1
- package/server/.next/server/chunks/[root-of-the-server]__13i4zx_j8zugt._.js +3 -0
- package/server/.next/server/chunks/[root-of-the-server]__1412kx9qb_j46._.js +3 -0
- package/server/.next/server/chunks/[root-of-the-server]__1420nm1i823v8._.js +3 -0
- package/server/.next/server/chunks/[root-of-the-server]__1426to_m4prqh._.js +1 -1
- package/server/.next/server/chunks/{[root-of-the-server]__1a563imf6ya2l._.js → [root-of-the-server]__14bynsn7eae8y._.js} +1 -1
- package/server/.next/server/chunks/[root-of-the-server]__14cb1pomeg0x7._.js +3 -0
- package/server/.next/server/chunks/[root-of-the-server]__177l2p7kcj-16._.js +1 -1
- package/server/.next/server/chunks/[root-of-the-server]__1_iy7tzpesarf._.js +3 -0
- package/server/.next/server/chunks/[root-of-the-server]__1akvpmbiap6nf._.js +1 -1
- package/server/.next/server/chunks/[root-of-the-server]__1c78cu7kb9vkl._.js +1 -1
- package/server/.next/server/chunks/[root-of-the-server]__1cnmxehqzmqq_._.js +3 -0
- package/server/.next/server/chunks/[root-of-the-server]__1d1zkp1q80t6q._.js +3 -0
- package/server/.next/server/chunks/[root-of-the-server]__1f84fftr_6_6n._.js +3 -0
- package/server/.next/server/chunks/[root-of-the-server]__1fteaav9qn2kq._.js +3 -0
- package/server/.next/server/chunks/{[root-of-the-server]__10-v22hv1sxrv._.js → [root-of-the-server]__1gl0-1oziw-g0._.js} +2 -2
- package/server/.next/server/chunks/{[root-of-the-server]__02y9yjf7lp37-._.js → [root-of-the-server]__1gufo2kz88z04._.js} +1 -1
- package/server/.next/server/chunks/{[root-of-the-server]__1ons16gam6qb7._.js → [root-of-the-server]__1hcn00gn9mapd._.js} +2 -2
- package/server/.next/server/chunks/[root-of-the-server]__1i_vd8w3df3i6._.js +3 -0
- package/server/.next/server/chunks/{[root-of-the-server]__0x5vp_8n6xvpw._.js → [root-of-the-server]__1ia-rts7ilt7c._.js} +2 -2
- package/server/.next/server/chunks/[root-of-the-server]__1igmx9-fdh2wd._.js +3 -0
- package/server/.next/server/chunks/[root-of-the-server]__1io5zo7iam532._.js +1 -1
- package/server/.next/server/chunks/[root-of-the-server]__1jcr8cc_tlvfc._.js +3 -0
- package/server/.next/server/chunks/[root-of-the-server]__1kp2wois-47bg._.js +3 -0
- package/server/.next/server/chunks/{[root-of-the-server]__0qlf-so9k6401._.js → [root-of-the-server]__1kr6f03r82mk6._.js} +1 -1
- package/server/.next/server/chunks/[root-of-the-server]__1lcszcm98v484._.js +3 -0
- package/server/.next/server/chunks/[root-of-the-server]__1le7r_1_00km1._.js +3 -0
- package/server/.next/server/chunks/{[root-of-the-server]__0exruft64u1hg._.js → [root-of-the-server]__1lvf4tk_1td0a._.js} +2 -2
- package/server/.next/server/chunks/[root-of-the-server]__1mqv7anx5l3yq._.js +3 -0
- package/server/.next/server/chunks/[root-of-the-server]__1mufebnwyxlwx._.js +3 -0
- package/server/.next/server/chunks/[root-of-the-server]__1o0lvy6ek0v5d._.js +3 -0
- package/server/.next/server/chunks/[root-of-the-server]__1ozfk4_3lx1o7._.js +1 -1
- package/server/.next/server/chunks/{[root-of-the-server]__09yvavo991rdd._.js → [root-of-the-server]__1p1e6x-mb7ro2._.js} +2 -2
- package/server/.next/server/chunks/[root-of-the-server]__1pu84qy7loc8o._.js +3 -0
- package/server/.next/server/chunks/{[root-of-the-server]__0_vtp19_2frgj._.js → [root-of-the-server]__1pyc-ezfujjcp._.js} +1 -1
- package/server/.next/server/chunks/{[root-of-the-server]__1yxxfmyk3649a._.js → [root-of-the-server]__1pyhos8be90-4._.js} +1 -1
- package/server/.next/server/chunks/[root-of-the-server]__1qelr0qe50xap._.js +3 -0
- package/server/.next/server/chunks/[root-of-the-server]__1qqdsrhuw0z-w._.js +3 -0
- package/server/.next/server/chunks/[root-of-the-server]__1qwy7s_95k9k-._.js +3 -0
- package/server/.next/server/chunks/{[root-of-the-server]__0vb1_m_h5hi0z._.js → [root-of-the-server]__1qxm3lqqdbyy7._.js} +2 -2
- package/server/.next/server/chunks/[root-of-the-server]__1rusbj8ktmzj0._.js +3 -0
- package/server/.next/server/chunks/[root-of-the-server]__1rxaooz-d8jfs._.js +3 -0
- package/server/.next/server/chunks/[root-of-the-server]__1s8f1ovcj5r99._.js +3 -0
- package/server/.next/server/chunks/[root-of-the-server]__1tdb11b6vn4qm._.js +3 -0
- package/server/.next/server/chunks/[root-of-the-server]__1ti5-6okt7fur._.js +3 -0
- package/server/.next/server/chunks/{[root-of-the-server]__1cdt67d022uf1._.js → [root-of-the-server]__1ugnox9gcdhvm._.js} +2 -2
- package/server/.next/server/chunks/{[root-of-the-server]__090n04cg_br7j._.js → [root-of-the-server]__1vvg0ur3_7o0p._.js} +1 -1
- package/server/.next/server/chunks/[root-of-the-server]__1w_ga9n2lj53n._.js +3 -0
- package/server/.next/server/chunks/{[root-of-the-server]__0vsafetdvsfhj._.js → [root-of-the-server]__1wjsjh-1i-sn6._.js} +1 -1
- package/server/.next/server/chunks/[root-of-the-server]__1x4u0cdsl_81t._.js +3 -0
- package/server/.next/server/chunks/[root-of-the-server]__1xe_98y-j38aq._.js +3 -0
- package/server/.next/server/chunks/[root-of-the-server]__1xku6cma1a_kb._.js +3 -0
- package/server/.next/server/chunks/{[root-of-the-server]__0pi_camvun8ak._.js → [root-of-the-server]__1xnqsy7nud--q._.js} +2 -2
- package/server/.next/server/chunks/[root-of-the-server]__1yk1psrx0yy4n._.js +3 -0
- package/server/.next/server/chunks/{[root-of-the-server]__19o-a03uklyrw._.js → [root-of-the-server]__1ywvdsk_bmws0._.js} +2 -2
- package/server/.next/server/chunks/[root-of-the-server]__1z9kl-irij2lu._.js +3 -0
- package/server/.next/server/chunks/[root-of-the-server]__1zmoy4u_xb_yi._.js +3 -0
- package/server/.next/server/chunks/[root-of-the-server]__1zq2zv2ogn3ot._.js +3 -0
- package/server/.next/server/chunks/[root-of-the-server]__202mmzv3u-hk1._.js +3 -0
- package/server/.next/server/chunks/[root-of-the-server]__20dehd8e5-v9y._.js +1 -1
- package/server/.next/server/chunks/[root-of-the-server]__20tvyorpg49kd._.js +3 -0
- package/server/.next/server/chunks/{[root-of-the-server]__1i841w7a3057h._.js → [root-of-the-server]__212_l7y-180xi._.js} +1 -1
- package/server/.next/server/chunks/{[root-of-the-server]__1vfvw1pmssxww._.js → [root-of-the-server]__217jp1b3psyq_._.js} +1 -1
- package/server/.next/server/chunks/_0-sqv2nbaba7h._.js +3 -0
- package/server/.next/server/chunks/_00t02v1a9nfr1._.js +3 -0
- package/server/.next/server/chunks/_01epotkqa90nv._.js +3 -0
- package/server/.next/server/chunks/_04oi0m63biyjd._.js +3 -0
- package/server/.next/server/chunks/_05kxcc393c_0z._.js +3 -0
- package/server/.next/server/chunks/_08q7x7rdbiaql._.js +49 -0
- package/server/.next/server/chunks/_0apakqacgawy4._.js +3 -0
- package/server/.next/server/chunks/_0bki3kju_1u1f._.js +3 -0
- package/server/.next/server/chunks/_0d29nzne5jrwy._.js +49 -0
- package/server/.next/server/chunks/_0djze-128wsu0._.js +3 -0
- package/server/.next/server/chunks/_0dq_vw-kky70h._.js +3 -0
- package/server/.next/server/chunks/_0hm72d9am2vfs._.js +3 -0
- package/server/.next/server/chunks/_0huryxihjw6tl._.js +49 -0
- package/server/.next/server/chunks/{_0ehqx1pkh20px._.js → _0lboyl6w4kfx4._.js} +3 -3
- package/server/.next/server/chunks/_0n-wbmmvp4omq._.js +1 -1
- package/server/.next/server/chunks/_0ou2tylxx1ltw._.js +10 -0
- package/server/.next/server/chunks/_0rqil_klxfz3j._.js +3 -0
- package/server/.next/server/chunks/_10mj3f1wis1ld._.js +3 -0
- package/server/.next/server/chunks/_15f0c7f46zkh3._.js +3 -0
- package/server/.next/server/chunks/_17u84tg9ibxp9._.js +3 -0
- package/server/.next/server/chunks/_1e4rch26scbhq._.js +49 -0
- package/server/.next/server/chunks/_1g-4oov0uynv-._.js +3 -0
- package/server/.next/server/chunks/_1iugpfonxri3e._.js +3 -0
- package/server/.next/server/chunks/_1iunyzyr-tfdj._.js +31 -0
- package/server/.next/server/chunks/{_0zj8nj1f2phf5._.js → _1n4labwyv5msc._.js} +1 -1
- package/server/.next/server/chunks/_1nuny071s602h._.js +3 -0
- package/server/.next/server/chunks/_1ohb_bmawpjlz._.js +10 -0
- package/server/.next/server/chunks/_1qcal07c71omr._.js +3 -0
- package/server/.next/server/chunks/_1sx70w_rurjin._.js +3 -0
- package/server/.next/server/chunks/_1tl0532dffdm-._.js +3 -0
- package/server/.next/server/chunks/{_0jiq3ns7681pv._.js → _1txqs5b7jg9so._.js} +3 -3
- package/server/.next/server/chunks/{_1t46m15axa4b4._.js → _1w9di5m91vtjk._.js} +3 -3
- package/server/.next/server/chunks/_20ounk93z_b6h._.js +3 -0
- package/server/.next/server/chunks/_next-internal_server_app_(console)_reports_[id]_pdf_route_actions_1z8w14-7mvvj9.js +3 -0
- package/server/.next/server/chunks/_next-internal_server_app_brand-icon_route_actions_1d7gd59j_572y.js +3 -0
- package/server/.next/server/chunks/{node_modules_drizzle-orm_0p2-_xghnn-0j._.js → node_modules_drizzle-orm_0ac-0bknpndrl._.js} +2 -2
- package/server/.next/server/chunks/{node_modules_drizzle-orm_0pxdj1u-i8py9._.js → node_modules_drizzle-orm_0k-yqdh9heao6._.js} +2 -2
- package/server/.next/server/chunks/{node_modules_drizzle-orm_15o96osca_ezd._.js → node_modules_drizzle-orm_0k7__h1lfq5ug._.js} +2 -2
- package/server/.next/server/chunks/{node_modules_drizzle-orm_1hvomr2ymp14o._.js → node_modules_drizzle-orm_0pv-kejmwhhk-._.js} +2 -2
- package/server/.next/server/chunks/node_modules_drizzle-orm_1emqi6ca48q0m._.js +4 -0
- package/server/.next/server/chunks/node_modules_drizzle-orm_entity_1-0q2stnw2ab8.js +3 -3
- package/server/.next/server/chunks/src_0--qn984h6czu._.js +1 -1
- package/server/.next/server/chunks/src_0-s0huszb29pj._.js +3 -0
- package/server/.next/server/chunks/src_05jrvcsgaq5ek._.js +1 -1
- package/server/.next/server/chunks/src_06tyytf_c_hlu._.js +1 -1
- package/server/.next/server/chunks/src_0_9n02bmhtk4z._.js +1 -1
- package/server/.next/server/chunks/src_0c-owt8q0lyj3._.js +1 -1
- package/server/.next/server/chunks/src_0dxbyz8iemj_5._.js +1 -1
- package/server/.next/server/chunks/src_0frmhaaejchbk._.js +3 -0
- package/server/.next/server/chunks/src_0kihmyo3yghxy._.js +3 -0
- package/server/.next/server/chunks/src_0qnh_ndxnflja._.js +3 -0
- package/server/.next/server/chunks/src_0r3j66vbc5g4f._.js +3 -0
- package/server/.next/server/chunks/src_0u2zbz77uh__q._.js +1 -1
- package/server/.next/server/chunks/src_0ud2mqnh4emxz._.js +1 -1
- package/server/.next/server/chunks/src_10vyvp9vy_69h._.js +1 -1
- package/server/.next/server/chunks/src_16t2uefmdlh8d._.js +3 -0
- package/server/.next/server/chunks/src_17j4dgvb7rx7k._.js +3 -0
- package/server/.next/server/chunks/{src_05be6wzefzaky._.js → src_1_y0pxtbr6e04._.js} +2 -2
- package/server/.next/server/chunks/src_1a5yibsjcy1ga._.js +1 -1
- package/server/.next/server/chunks/src_1cvp6ubs-3z6l._.js +1 -1
- package/server/.next/server/chunks/src_1d-0nhc193soh._.js +3 -0
- package/server/.next/server/chunks/src_1d1ewqrujfp03._.js +3 -0
- package/server/.next/server/chunks/src_1il7wg_qjxny7._.js +1 -1
- package/server/.next/server/chunks/{src_0cdn5fuk8f_x2._.js → src_1mwttl5ainte0._.js} +2 -2
- package/server/.next/server/chunks/src_1s913pql1_n-f._.js +3 -0
- package/server/.next/server/chunks/src_1tux0n9_5b1kr._.js +1 -1
- package/server/.next/server/chunks/src_1u-olt84z63rx._.js +1 -1
- package/server/.next/server/chunks/src_1wmb2yl3tn-dd._.js +1 -1
- package/server/.next/server/chunks/src_1wzm081p6qyre._.js +1 -1
- package/server/.next/server/chunks/src_20xyhmuf0y6_v._.js +3 -0
- package/server/.next/server/chunks/src_db_client_ts_0vckux1-linlc._.js +23 -0
- package/server/.next/server/chunks/src_lib_02-wqy78_rn85._.js +3 -0
- package/server/.next/server/chunks/src_lib_0ds7lhpop_adf._.js +1 -1
- package/server/.next/server/chunks/src_lib_0eqv8l-v8d5ze._.js +1 -1
- package/server/.next/server/chunks/src_lib_0glcfed-uogyd._.js +1 -1
- package/server/.next/server/chunks/src_lib_0hw2g5g295xx0._.js +12 -0
- package/server/.next/server/chunks/src_lib_0iqdlrya6vfc_._.js +3 -0
- package/server/.next/server/chunks/src_lib_0kjik9nmtqlf5._.js +7 -0
- package/server/.next/server/chunks/src_lib_0krbxej8kykyp._.js +7 -0
- package/server/.next/server/chunks/src_lib_0o9m8m1sm5759._.js +5 -0
- package/server/.next/server/chunks/src_lib_0pyyxm3m1rttg._.js +1 -1
- package/server/.next/server/chunks/src_lib_0sd9c_cjgc4ro._.js +3 -0
- package/server/.next/server/chunks/src_lib_0ta8sd9jeuw50._.js +17 -17
- package/server/.next/server/chunks/src_lib_0xfwnbkxb4z5s._.js +7 -0
- package/server/.next/server/chunks/src_lib_11ky6rv8zte7m._.js +7 -0
- package/server/.next/server/chunks/src_lib_13irheo9qqhgx._.js +1 -1
- package/server/.next/server/chunks/src_lib_1550ey8j96v9n._.js +1 -1
- package/server/.next/server/chunks/src_lib_1hveabvnpk83x._.js +12 -0
- package/server/.next/server/chunks/src_lib_1n_d25awwz8ga._.js +3 -0
- package/server/.next/server/chunks/src_lib_1onr7b4_kglpt._.js +1 -1
- package/server/.next/server/chunks/src_lib_1qo6t00wwitz6._.js +17 -17
- package/server/.next/server/chunks/src_lib_1sz77jjn7xl7o._.js +1 -1
- package/server/.next/server/chunks/src_lib_alerts_catalog_ts_1ndg28acul64q._.js +1 -1
- package/server/.next/server/chunks/src_lib_branding_ts_03ns4y_8z0-6e._.js +3 -0
- package/server/.next/server/chunks/src_lib_branding_ts_0jfv9nur5alvy._.js +3 -0
- package/server/.next/server/chunks/src_lib_collector_auth_ts_0lqx92__e4zij._.js +6 -3
- package/server/.next/server/chunks/src_lib_collector_deploy-days_ts_087kwe68m4i93._.js +3 -0
- package/server/.next/server/chunks/src_lib_data_report-db_ts_0b5f4dpxn08gk._.js +3 -0
- 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 +11 -11
- package/server/.next/server/chunks/src_lib_demo_pool_ts_17xz9bk-d5uic._.js +11 -11
- package/server/.next/server/chunks/src_lib_demo_pool_ts_210g_on8zx_-n._.js +11 -11
- package/server/.next/server/chunks/src_lib_local-auth_proxy_ts_1g9krhdh2rnt2._.js +1 -21
- package/server/.next/server/chunks/src_lib_maintenance_ts_0voja6l8yogbf._.js +3 -0
- package/server/.next/server/chunks/src_lib_notify_lang_ts_1r2w02ctaky7e._.js +1 -1
- package/server/.next/server/chunks/src_lib_rate-limit_ts_09dzyftcadggh._.js +1 -1
- package/server/.next/server/chunks/src_lib_rate-limit_ts_0r-eu6to05vyx._.js +1 -1
- package/server/.next/server/chunks/src_lib_rate-limit_ts_1ahtm4quu2rri._.js +1 -1
- package/server/.next/server/chunks/src_lib_sections_ts_0r8u4nvlpdkgq._.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_21atz5tidps07.js +1 -1
- package/server/.next/server/chunks/ssr/1oeh_server_app_(console)_(private)_ai_models_page_actions_0rvlzfa8rjyz_.js +1 -1
- package/server/.next/server/chunks/ssr/1oeh_server_app_(console)_(private)_ai_playground_page_actions_01ejc1xilpuh4.js +1 -1
- package/server/.next/server/chunks/ssr/1oeh_server_app_(console)_(private)_ai_quota_page_actions_0iki29gyi8cwa.js +1 -1
- package/server/.next/server/chunks/ssr/1oeh_server_app_(console)_(private)_ai_usage_page_actions_1c99h-kwdnep7.js +1 -1
- package/server/.next/server/chunks/ssr/1oeh_server_app_(console)_(private)_auto-actions_page_actions_1kw4ce6-efkr1.js +1 -1
- package/server/.next/server/chunks/ssr/{[externals]__0summv9f9jkob._.js → [externals]__02peoq6kft9oz._.js} +1 -1
- package/server/.next/server/chunks/ssr/{[externals]__1q1drb4oske-9._.js → [externals]__0byytapt83qke._.js} +1 -1
- package/server/.next/server/chunks/ssr/{[externals]__00hge8tjqv73a._.js → [externals]__0gb_9a2m3eqk5._.js} +1 -1
- package/server/.next/server/chunks/ssr/{[externals]__1jdljyrzmqoz0._.js → [externals]__1baveo0r8_hf1._.js} +1 -1
- package/server/.next/server/chunks/ssr/[root-of-the-server]__001mglelq4wpc._.js +1 -1
- package/server/.next/server/chunks/ssr/{[root-of-the-server]__12t9_ndr9z-2d._.js → [root-of-the-server]__004q78ed0nf0_._.js} +1 -1
- package/server/.next/server/chunks/ssr/[root-of-the-server]__01o65-2jgmg9x._.js +3 -0
- package/server/.next/server/chunks/ssr/{[root-of-the-server]__157kjredkf1pa._.js → [root-of-the-server]__041mpme_x36vq._.js} +1 -1
- package/server/.next/server/chunks/ssr/{[root-of-the-server]__0n4bkq-45z4aa._.js → [root-of-the-server]__04_prmhm_cts4._.js} +1 -1
- package/server/.next/server/chunks/ssr/{[root-of-the-server]__1a5760tg4iits._.js → [root-of-the-server]__05uxv6qwfpp79._.js} +2 -2
- package/server/.next/server/chunks/ssr/{[root-of-the-server]__0423qjo9c2t9-._.js → [root-of-the-server]__077-acap7g4ck._.js} +1 -1
- package/server/.next/server/chunks/ssr/[root-of-the-server]__09blzlbsxqvy9._.js +1 -1
- package/server/.next/server/chunks/ssr/{[root-of-the-server]__05s2n35zn4go-._.js → [root-of-the-server]__0ct4apye0sfmc._.js} +1 -1
- package/server/.next/server/chunks/ssr/{[root-of-the-server]__139ya3ejh6htx._.js → [root-of-the-server]__0hgf7si8htevx._.js} +1 -1
- package/server/.next/server/chunks/ssr/[root-of-the-server]__0jgapr1cnvhi6._.js +1 -1
- package/server/.next/server/chunks/ssr/[root-of-the-server]__0keo0-hwsnkw9._.js +1 -1
- package/server/.next/server/chunks/ssr/[root-of-the-server]__0l50vsk8enxzj._.js +1 -1
- package/server/.next/server/chunks/ssr/[root-of-the-server]__0mvauw9r_4qss._.js +1 -1
- package/server/.next/server/chunks/ssr/{[root-of-the-server]__07zuxj3veqm14._.js → [root-of-the-server]__0q7rssq_3unbc._.js} +1 -1
- package/server/.next/server/chunks/ssr/{[root-of-the-server]__13phmsw9wsyrs._.js → [root-of-the-server]__0qhbs-or7q-om._.js} +1 -1
- package/server/.next/server/chunks/ssr/[root-of-the-server]__0rdf04ziqasfz._.js +1 -1
- package/server/.next/server/chunks/ssr/[root-of-the-server]__0rrdzb9wowemv._.js +1 -1
- package/server/.next/server/chunks/ssr/{[root-of-the-server]__02lkybw6gg3ln._.js → [root-of-the-server]__0rrnk3_fb0l_9._.js} +2 -2
- package/server/.next/server/chunks/ssr/[root-of-the-server]__0u-o_v_v6y58o._.js +3 -0
- package/server/.next/server/chunks/ssr/{[root-of-the-server]__10r0u-q18z71i._.js → [root-of-the-server]__0uxychcp_pldy._.js} +1 -1
- package/server/.next/server/chunks/ssr/{[root-of-the-server]__16jfs8j29r4b5._.js → [root-of-the-server]__0vqae5m2ntd34._.js} +2 -2
- package/server/.next/server/chunks/ssr/{[root-of-the-server]__1nk87bg9lne35._.js → [root-of-the-server]__10y2ig7dg3f-k._.js} +1 -1
- package/server/.next/server/chunks/ssr/[root-of-the-server]__11yadiuejywcz._.js +3 -0
- package/server/.next/server/chunks/ssr/[root-of-the-server]__12c2r19g75dyy._.js +3 -0
- package/server/.next/server/chunks/ssr/{[root-of-the-server]__1iqedr7nfvayk._.js → [root-of-the-server]__13x0qmv4fm_1p._.js} +1 -1
- package/server/.next/server/chunks/ssr/[root-of-the-server]__18dcfrlpoapw9._.js +3 -0
- package/server/.next/server/chunks/ssr/{[root-of-the-server]__183_36tj3p645._.js → [root-of-the-server]__1_axyb404w3bf._.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]__1_q3kww244pif._.js +3 -0
- package/server/.next/server/chunks/ssr/[root-of-the-server]__1ev5rocipbkjw._.js +3 -0
- package/server/.next/server/chunks/ssr/[root-of-the-server]__1g6kynby65m0v._.js +3 -0
- package/server/.next/server/chunks/ssr/{[root-of-the-server]__0z5ucbis8ik32._.js → [root-of-the-server]__1gkcoq0cmmax1._.js} +2 -2
- package/server/.next/server/chunks/ssr/{[root-of-the-server]__07_efq7yhxfj-._.js → [root-of-the-server]__1itgt83qo1e77._.js} +1 -1
- package/server/.next/server/chunks/ssr/{[root-of-the-server]__1d1ksu1dlha3r._.js → [root-of-the-server]__1k8mxdm-cxfg_._.js} +2 -2
- package/server/.next/server/chunks/ssr/{[root-of-the-server]__0no6c0whevi73._.js → [root-of-the-server]__1mbb917mrz5c-._.js} +1 -1
- package/server/.next/server/chunks/ssr/{[root-of-the-server]__1knbzqo0nba_q._.js → [root-of-the-server]__1n-rcmbkk7duv._.js} +2 -2
- package/server/.next/server/chunks/ssr/[root-of-the-server]__1pafj7m_b8m14._.js +3 -0
- package/server/.next/server/chunks/ssr/{[root-of-the-server]__1mah0p09qrkpu._.js → [root-of-the-server]__1pr-neo8jutji._.js} +2 -2
- package/server/.next/server/chunks/ssr/{[root-of-the-server]__14e0j38785glf._.js → [root-of-the-server]__1q6iypbn6yagc._.js} +2 -2
- package/server/.next/server/chunks/ssr/[root-of-the-server]__1rzolbt5ior_s._.js +3 -0
- package/server/.next/server/chunks/ssr/{[root-of-the-server]__18gw74mr2vto3._.js → [root-of-the-server]__1sw2q1p1t59y8._.js} +2 -2
- package/server/.next/server/chunks/ssr/[root-of-the-server]__1u_13nhw3kuz3._.js +1 -1
- package/server/.next/server/chunks/ssr/[root-of-the-server]__1vgliw2256_6l._.js +4 -0
- package/server/.next/server/chunks/ssr/{[root-of-the-server]__0gyvfp6c-_edw._.js → [root-of-the-server]__1xkfr7qk7oxjf._.js} +2 -2
- package/server/.next/server/chunks/ssr/[root-of-the-server]__1z3vauqrf2l-_._.js +3 -0
- package/server/.next/server/chunks/ssr/{[root-of-the-server]__06bgklzuef-ya._.js → [root-of-the-server]__1z_pt3d8lty_n._.js} +2 -2
- package/server/.next/server/chunks/ssr/{[root-of-the-server]__092gsphy4oz6k._.js → [root-of-the-server]__1zsqu1mecqptt._.js} +2 -2
- package/server/.next/server/chunks/ssr/_008i8a0_8skrp._.js +1 -1
- package/server/.next/server/chunks/ssr/_02eudwc8ieb2r._.js +2 -2
- package/server/.next/server/chunks/ssr/_08xqk3eibu5aw._.js +1 -1
- package/server/.next/server/chunks/ssr/_09s2unlb4r6yf._.js +3 -0
- package/server/.next/server/chunks/ssr/_0_oc9q0vqkynd._.js +1 -1
- package/server/.next/server/chunks/ssr/_0a22b7zsckifp._.js +1 -1
- package/server/.next/server/chunks/ssr/_0bd4cxnpnnq2u._.js +1 -1
- package/server/.next/server/chunks/ssr/_0cbbks0ms7i_u._.js +2 -2
- package/server/.next/server/chunks/ssr/_0cw4kz3d6kmb1._.js +1 -1
- package/server/.next/server/chunks/ssr/_0d2d527wcx-lf._.js +2 -2
- package/server/.next/server/chunks/ssr/_0d702k82llasi._.js +1 -1
- package/server/.next/server/chunks/ssr/_0gl-ewvbhb677._.js +2 -2
- package/server/.next/server/chunks/ssr/_0gmw45sb1llld._.js +1 -1
- package/server/.next/server/chunks/ssr/_0hqya_yuov5jw._.js +3 -0
- package/server/.next/server/chunks/ssr/_0i04zoixa2iup._.js +2 -2
- package/server/.next/server/chunks/ssr/_0idbg-ok0so2h._.js +2 -2
- package/server/.next/server/chunks/ssr/_0iy27gi4y9-fe._.js +1 -1
- package/server/.next/server/chunks/ssr/{_0rsh9v4b3yj0b._.js → _0j_qqta7rirh5._.js} +1 -1
- package/server/.next/server/chunks/ssr/_0kdn56_ow-x_s._.js +1 -1
- package/server/.next/server/chunks/ssr/_0kk0of-t4vhyh._.js +4 -0
- package/server/.next/server/chunks/ssr/{_08rjac8cutbcs._.js → _0kq3wqx86yyhb._.js} +2 -2
- package/server/.next/server/chunks/ssr/{_1ykegy3wzl3mu._.js → _0lg6_we0pe3nk._.js} +2 -2
- package/server/.next/server/chunks/ssr/_0oovfx_t_-u0k._.js +1 -1
- package/server/.next/server/chunks/ssr/_0oub-njkja8gu._.js +2 -2
- package/server/.next/server/chunks/ssr/_0pqkexxo7rts_._.js +2 -2
- package/server/.next/server/chunks/ssr/_0r7_a5m55a1jy._.js +3 -0
- package/server/.next/server/chunks/ssr/_0rqil_klxfz3j._.js +3 -0
- package/server/.next/server/chunks/ssr/_0tnd528j0i1i4._.js +2 -2
- package/server/.next/server/chunks/ssr/_0uwkwcgucqgcf._.js +2 -2
- package/server/.next/server/chunks/ssr/_0uz60lk-7e_cj._.js +2 -2
- package/server/.next/server/chunks/ssr/_0wo-lpqf7hr1y._.js +2 -2
- package/server/.next/server/chunks/ssr/{_17tabyg0mhxlx._.js → _0xkl4rb1wydtd._.js} +2 -2
- package/server/.next/server/chunks/ssr/_0xmud7u5hdnqu._.js +2 -2
- package/server/.next/server/chunks/ssr/_1-4401bfn50mf._.js +1 -1
- 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/_118h21qua_4o3._.js +1 -1
- package/server/.next/server/chunks/ssr/_12makqwatfke-._.js +2 -2
- package/server/.next/server/chunks/ssr/{_0u5_d3o0i72tq._.js → _170okt24rw1yx._.js} +2 -2
- package/server/.next/server/chunks/ssr/_19-3vzkc6rk97._.js +1 -1
- package/server/.next/server/chunks/ssr/_19dldpcnzhkuw._.js +1 -1
- package/server/.next/server/chunks/ssr/_1_-o2s48aj4i7._.js +1 -1
- package/server/.next/server/chunks/ssr/_1bijvrgqfyij6._.js +5 -0
- package/server/.next/server/chunks/ssr/_1c7jkkvkvzj_u._.js +2 -2
- package/server/.next/server/chunks/ssr/_1cl55h_h3q-b_._.js +1 -1
- package/server/.next/server/chunks/ssr/_1dlo17ba9g-f9._.js +2 -2
- package/server/.next/server/chunks/ssr/_1dp5bgqob29-f._.js +1 -1
- package/server/.next/server/chunks/ssr/_1fc8k_0p8l00c._.js +2 -2
- package/server/.next/server/chunks/ssr/_1fuywfexex2s8._.js +2 -2
- package/server/.next/server/chunks/ssr/_1g2zbl_-4z_hg._.js +1 -1
- package/server/.next/server/chunks/ssr/{_13bpjk3g0tp2e._.js → _1ge8mluhma23o._.js} +2 -2
- package/server/.next/server/chunks/ssr/_1he21-bt45k8z._.js +2 -2
- package/server/.next/server/chunks/ssr/_1ioq9f389jnco._.js +3 -0
- package/server/.next/server/chunks/ssr/_1iugpfonxri3e._.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/_1ln6o3a9quwxo._.js +2 -2
- package/server/.next/server/chunks/ssr/_1m4km_w39x5e9._.js +1 -1
- package/server/.next/server/chunks/ssr/_1ong0a252wcvc._.js +13 -0
- package/server/.next/server/chunks/ssr/_1pp1o361lgpwu._.js +2 -2
- package/server/.next/server/chunks/ssr/_1q0i7-4d4iyye._.js +3 -0
- package/server/.next/server/chunks/ssr/_1q3fi6a4gklq6._.js +1 -1
- package/server/.next/server/chunks/ssr/_1qcal07c71omr._.js +3 -0
- package/server/.next/server/chunks/ssr/_1r2516zqb3e67._.js +3 -0
- package/server/.next/server/chunks/ssr/_1ul3og9l7vp32._.js +2 -2
- package/server/.next/server/chunks/ssr/_1yh3k88t_kh4h._.js +2 -2
- package/server/.next/server/chunks/ssr/_1z6dy1k48mskn._.js +1 -1
- package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_(private)_ai_keys_page_actions_181-3r4e_0yb5.js +1 -1
- package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_(private)_ai_logs_page_actions_1ryb93n6khky3.js +1 -1
- package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_alerts_page_actions_06_3gmyq3jtvi.js +1 -1
- package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_apps_[id]_page_actions_1myo_rodrlg3a.js +2 -2
- package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_apps_page_actions_0ksau5eicvycc.js +1 -1
- package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_connections_page_actions_1fgolmmpxrouc.js +1 -1
- package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_containers_page_actions_1ainjsbrnl360.js +1 -1
- package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_dns_page_actions_17d_lvhl-u_4w.js +1 -1
- package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_domains_page_actions_1yv3fj_fh-n-5.js +1 -1
- package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_firebase_page_actions_00wuues_v_j3r.js +1 -1
- package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_logs_page_actions_0oqh51t2rx6q0.js +1 -1
- package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_manage_sections_page_actions_1sb2ldu57uj32.js +1 -1
- package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_settings_page_actions_1363m-cfkgyvr.js +3 -0
- package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_supabase_page_actions_1f3a_tpkwjo8z.js +1 -1
- package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_uptime_page_actions_1ylbdz0-ykfh6.js +1 -1
- package/server/.next/server/chunks/ssr/_next-internal_server_app_account_password_page_actions_1v4e71_oifbx9.js +1 -1
- package/server/.next/server/chunks/ssr/_next-internal_server_app_signin_page_actions_11wzk446p6_zi.js +1 -1
- package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1kr0-100zz257.js +3 -0
- package/server/.next/server/chunks/ssr/src_0330uf9pdfco9._.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_0jxjbvkvg0bjg._.js → src_09q8lx_19nta6._.js} +2 -2
- package/server/.next/server/chunks/ssr/src_0abts6wp5ucc0._.js +1 -1
- package/server/.next/server/chunks/ssr/src_0etvjdinp5urq._.js +1 -1
- package/server/.next/server/chunks/ssr/src_0kls100c13ocf._.js +3 -0
- package/server/.next/server/chunks/ssr/src_0ovx2ogvlz2eh._.js +1 -1
- package/server/.next/server/chunks/ssr/src_0ph020gy78gi9._.js +1 -1
- package/server/.next/server/chunks/ssr/src_10zavgy86u3us._.js +1 -1
- package/server/.next/server/chunks/ssr/src_18m06fg8u7_73._.js +3 -0
- package/server/.next/server/chunks/ssr/{src_1_9q6-wstn038._.js → src_18ofj2_oxqb0g._.js} +2 -2
- package/server/.next/server/chunks/ssr/{src_0632mrev4i__u._.js → src_1ldp01vcphvw5._.js} +2 -2
- package/server/.next/server/chunks/ssr/src_1maoe8g5gnv0u._.js +1 -1
- package/server/.next/server/chunks/ssr/src_1q-jgpnd3lbcu._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_agents_1fyhh1ldgm23z._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_ask_ask-form_tsx_18ttm9nna_9y6._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_logs_export-button_tsx_1k-crb88n1za_._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_models_0ayzqn062pnv5._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_playground_playground-view_tsx_18ua5zn_a0mar._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_providers_1ru-30x6-uwu4._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_quota_limits-form_tsx_1vouaaf560z_x._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_usage_limits-form_tsx_0sfk3ver58rqw._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_03s-e0b0zsqqr._.js +3 -0
- package/server/.next/server/chunks/ssr/{src_app_(console)_0gw9o1og9hq_4._.js → src_app_(console)_0eh38ymzn-s-m._.js} +2 -2
- package/server/.next/server/chunks/ssr/src_app_(console)_alerts_0j5xlt68kwg8x._.js +2 -2
- package/server/.next/server/chunks/ssr/src_app_(console)_apps_[id]_08in-j3xp5mbn._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_backups_actions_ts_1vpytsdh0wc1f._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_backups_drive-buttons_tsx_00cku5r_z3jkg._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_connections_1fahc65-97qla._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_connections_1fmp_anbkapur._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_connections_actions_ts_103blv4gzq76z._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_containers_containers-view_tsx_1xkcrw5gx53xo._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_create_actions_ts_05-86qr6kfjey._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_dns_actions_ts_1jzn58xzwbukz._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_dns_record-actions_tsx_0cqmz51zcuebv._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_firebase_row-menu_tsx_0hssoq3pqjl-n._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_logs_log-viewer_tsx_0v3e4cflfk14w._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_manage_sections_section-switch_tsx_1mfs-o_357i22._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_monitor-actions_ts_10w3h7myk2ppi._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_os_os-view_tsx_0xr69f5vtstls._.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)_reports_reports-view_tsx_1l0apba6g810q._.js +3 -0
- package/server/.next/server/chunks/ssr/src_app_(console)_sql_1icfsti04djqe._.js +2 -2
- package/server/.next/server/chunks/ssr/src_app_(console)_sql_actions_ts_1oqco02hw-3vp._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_supabase_0ib3m2ch9gu-4._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_supabase_pool-actions_ts_0nzd4vwy_9zzx._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_uptime_1mnnkfi-2zv-k._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_vercel-actions_ts_0wpk1yo9v632d._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_mfa_setup_setup-flow_tsx_1fpwygr2vdgnh._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_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_1-h17es4-y1-k._.js +3 -0
- package/server/.next/server/chunks/ssr/src_app_signin_1_sp0qx8_z7c9._.js +1 -1
- package/server/.next/server/chunks/ssr/src_components_create_create-dialog_tsx_1s_9clly_m1ru._.js +1 -1
- package/server/.next/server/chunks/ssr/src_lib_0eqv8l-v8d5ze._.js +1 -1
- package/server/.next/server/chunks/ssr/src_lib_0etkz1wbvfw-k._.js +3 -0
- package/server/.next/server/chunks/ssr/src_lib_0jnv54-8idu07._.js +3 -0
- package/server/.next/server/chunks/ssr/{src_lib_1zgor_vrwl5kt._.js → src_lib_0o9m8m1sm5759._.js} +2 -2
- package/server/.next/server/chunks/ssr/src_lib_1eioo4oodq-8h._.js +1 -1
- package/server/.next/server/chunks/ssr/src_lib_1myex-iv3tu5w._.js +23 -0
- package/server/.next/server/chunks/ssr/src_lib_1x__dvajr3xvs._.js +3 -0
- package/server/.next/server/chunks/ssr/src_lib_alerts_catalog_ts_1ndg28acul64q._.js +1 -1
- package/server/.next/server/chunks/ssr/src_lib_branding_ts_03ns4y_8z0-6e._.js +3 -0
- package/server/.next/server/chunks/ssr/src_lib_collector_self-update_ts_18m5vmptpjhtg._.js +1 -1
- package/server/.next/server/chunks/ssr/{src_lib_demo_15e3gnqzod0tj._.js → src_lib_demo_0r3c3k5102jja._.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_network_dns-edit_ts_0xtxlbd-uwncx._.js +1 -1
- package/server/.next/server/chunks/ssr/src_lib_rate-limit_ts_0r-eu6to05vyx._.js +1 -1
- package/server/.next/server/chunks/ssr/src_lib_sections_ts_0r8u4nvlpdkgq._.js +1 -1
- package/server/.next/server/chunks/ssr/src_private_0iy_wyg2p1jkn._.js +1 -1
- package/server/.next/server/chunks/ssr/src_private_1yzfhupl3rlpx._.js +6 -0
- 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_providers_actions_ts_0wxa36ai6s5nn._.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 +14 -3
- package/server/.next/server/middleware.js +1 -1
- package/server/.next/server/next-font-manifest.js +1 -1
- package/server/.next/server/next-font-manifest.json +4 -0
- 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 +279 -175
- package/server/.next/static/chunks/{00e1aosyzj6rl.js → 05c15dcfh7cxm.js} +1 -1
- package/server/.next/static/chunks/{3u2qewigse-a4.js → 07_cb192ydsaj.js} +1 -1
- package/server/.next/static/chunks/{3_6-4h_qltoii.js → 0_xoojw9q_nof.js} +1 -1
- package/server/.next/static/chunks/{0viea3-xdb4uv.js → 0a9mqrzg8420n.js} +1 -1
- package/server/.next/static/chunks/{2-ijilf6lbw4f.js → 0dn6fty1ilg-n.js} +1 -1
- package/server/.next/static/chunks/{2kmw3ug2__8y3.js → 0gxxyq5l_0rp2.js} +1 -1
- package/server/.next/static/chunks/0s00_-em3cj00.js +1 -0
- package/server/.next/static/chunks/{308vk5n0anqam.js → 0valedxcn7j8k.js} +2 -2
- package/server/.next/static/chunks/{28fzu8z0ofyw0.js → 0ynyx3s7s4mv7.js} +1 -1
- package/server/.next/static/chunks/{3lc-hq-bpg71u.js → 0zwq-z8jt5hpz.js} +1 -1
- package/server/.next/static/chunks/10y41_ed7ty6e.js +1 -0
- package/server/.next/static/chunks/{11r8k-t1ijjkn.js → 1416wraxs5p8g.js} +1 -1
- package/server/.next/static/chunks/16gt7hkgltvf7.js +1 -0
- package/server/.next/static/chunks/{3w5rrc-0xud6m.js → 1_uuog1-u6y0t.js} +1 -1
- package/server/.next/static/chunks/{0cc9ahw1xs0ny.js → 1azdri14ocjgg.js} +11 -11
- package/server/.next/static/chunks/{1fk-rtgxvtdso.js → 1cd-2y1kwqosv.js} +1 -1
- package/server/.next/static/chunks/{1d4i_v63pyozl.js → 1j_hduntj28ij.js} +1 -1
- package/server/.next/static/chunks/{17zst1h7smcce.js → 1nqpnndfmw0tc.js} +1 -1
- package/server/.next/static/chunks/{0hths0sijlql2.js → 1nv_9c1bate-f.js} +1 -1
- package/server/.next/static/chunks/1sjgdu3r0baj-.js +1 -0
- package/server/.next/static/chunks/1velx-cd3d5y1.js +1 -0
- package/server/.next/static/chunks/{0v-0yvs2o_ibn.js → 1vt_t7dg_-pyu.js} +1 -1
- package/server/.next/static/chunks/1w51uxl19faw3.js +1 -0
- package/server/.next/static/chunks/1xydxxektmjgr.js +1 -0
- package/server/.next/static/chunks/{3f1selgoqszyq.js → 1yyigrxptb7jm.js} +2 -2
- package/server/.next/static/chunks/{0rblb2d9s6x__.js → 28_88x_e_ynaj.js} +1 -1
- package/server/.next/static/chunks/{1kyz-ah3_ho6c.js → 28qjoy38cp5by.js} +1 -1
- package/server/.next/static/chunks/{2crsj9_2h2nzh.js → 2azwg3my8wh40.js} +1 -1
- package/server/.next/static/chunks/{1y_o3hc2z85sh.js → 2co8kv2tj776w.js} +1 -1
- package/server/.next/static/chunks/{26exu0f7ok41j.js → 2db0smm21dva_.js} +1 -1
- package/server/.next/static/chunks/{1a0rdqp6soc92.js → 2gk24b05q4q57.js} +1 -1
- package/server/.next/static/chunks/{3xulo5x1hbsw-.js → 2i5_2zcei6rqr.js} +1 -1
- package/server/.next/static/chunks/2jflssspiz3-i.js +1 -0
- package/server/.next/static/chunks/{356b00huilj4q.js → 2n198u7xx1koh.js} +1 -1
- package/server/.next/static/chunks/{1qjg48qu3j1w4.js → 2sr03gtef27q0.js} +1 -1
- package/server/.next/static/chunks/{2k4z-oed_6g2l.js → 2txgb9zusks-w.js} +1 -1
- package/server/.next/static/chunks/3-789qaoce7ff.js +1 -0
- package/server/.next/static/chunks/{1rgved8vjyay2.js → 3-us-wg44ohoc.js} +1 -1
- package/server/.next/static/chunks/{1fh3cq_v5nqtp.js → 31fs88f_h861n.js} +1 -1
- package/server/.next/static/chunks/36ykgce0otv4r.css +3 -0
- package/server/.next/static/chunks/{1a7zdd51t9mil.js → 378ttzg87hows.js} +1 -1
- package/server/.next/static/chunks/{3wfyge_-2qnyj.js → 3aglnkhgcl_kq.js} +1 -1
- package/server/.next/static/chunks/3bvj3-0xltkjo.js +1 -0
- package/server/.next/static/chunks/{1d5651gcd0bfq.js → 3cti7pgg_jjlx.js} +1 -1
- package/server/.next/static/chunks/{14f5pn2krqoyh.js → 3dktq-qmj2q5b.js} +1 -1
- package/server/.next/static/chunks/{2-vu-7596xgz-.js → 3ic7ri5b4ifjp.js} +2 -2
- package/server/.next/static/chunks/{3ezef0voy5xju.js → 3ic9vbadne9of.js} +1 -1
- package/server/.next/static/chunks/{2pa65sxfnzj4k.js → 3lw5n6yzs0665.js} +1 -1
- package/server/.next/static/chunks/3mgd5b39ghc-w.js +1 -0
- package/server/.next/static/chunks/{3g0ywdith98z2.js → 3n98m8tj20wcf.js} +1 -1
- package/server/.next/static/chunks/{44hkyor0suthy.js → 3u1v2wpzthilq.js} +1 -1
- package/server/drizzle-selfhost/0011_reports.sql +56 -0
- package/server/drizzle-selfhost/0012_report_send_rule.sql +2 -0
- package/server/drizzle-selfhost/meta/_journal.json +14 -0
- package/server/server.js +1 -1
- package/server/src/lib/report/fonts/Geist-Regular.ttf +0 -0
- package/server/src/lib/report/fonts/Geist-SemiBold.ttf +0 -0
- package/server/src/lib/report/fonts/GeistMono-Regular.ttf +0 -0
- package/server/src/lib/report/fonts/OFL.txt +92 -0
- package/tools/reset-login.mjs +2 -0
- package/server/.next/server/chunks/[root-of-the-server]__00oxbw3nfl_kd._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__04q-9779vl4kn._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__04u9e45_g1jdi._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__05b18nw2k-7-4._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__06nrq_1pbp3z-._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__06uaa_2zbg57p._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__081hh3_un4awi._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__09gla7jgbw2bs._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__0a0st8-rftztn._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__0at6fxe9efr-x._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__0dfx2psnngcys._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__0di45l_tnq1pm._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__0ej4hdoyogtji._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__0eqrtvr3uqlqf._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__0g81f_2ecmg8a._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__0glhrm7zmrvi2._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__0jma907r441wi._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__0jpktq0f88rvz._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__0myf9g_uv3bia._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__0puji-hw0xtk7._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__0ruici82tzf0w._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__0t0dd5t5rch1i._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__0ty2qkszfdr5t._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__0ugx1i8km15fl._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__0ux1hi2fgqxu7._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__12tmfv427e9cb._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__1481y3utu_a_o._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__14e0j38785glf._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__14yq_wf4xemgd._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__1_0vd5-tvmsg8._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__1_goy0uhapvk9._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__1ac-dzt5bffr2._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__1ajyr5xvo1-x5._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__1ey2qia7rofoc._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__1hlvqq0azku2x._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__1hrviq7s700td._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__1ifov-udw6__d._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__1ig0p-frprcbm._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__1ksyvvsf32jfg._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__1kzi1du1sliqb._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__1mvibnqor6lx_._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__1o-zo4qebuqwy._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__1po33h2u2o4e_._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__1qps9ushddgwe._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__1qrj37m-5y-56._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__1qyz1wi13rxxb._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__1r8mzvf7_9d2k._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__1rxke2_vpd7np._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__1sjp750034q4j._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__1wbnule0tzwdu._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__1wcnj2xtesyd9._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__1won_frdj9jms._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__1wvp6wau5ueb9._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__1yxudc_keazqo._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__1z_l9mj3s_6tu._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__1zvy7u_y3fzbz._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__208znvanagmpr._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__20qdu-env7wgt._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__212-4r-w6a9sm._.js +0 -3
- package/server/.next/server/chunks/_0-5pjvqu672_v._.js +0 -49
- package/server/.next/server/chunks/_02qrz1g8sdvhe._.js +0 -49
- package/server/.next/server/chunks/_03qlijpos6a21._.js +0 -3
- package/server/.next/server/chunks/_06gv0srpbf_lk._.js +0 -3
- package/server/.next/server/chunks/_06lf75x-xhl7v._.js +0 -3
- package/server/.next/server/chunks/_0cbxgnkxr1uj8._.js +0 -3
- package/server/.next/server/chunks/_0sy878k2ywjbq._.js +0 -3
- package/server/.next/server/chunks/_0vjggb8yo5b9f._.js +0 -3
- package/server/.next/server/chunks/_0wval7co8z-pk._.js +0 -3
- package/server/.next/server/chunks/_103ai6ybnpq1k._.js +0 -3
- package/server/.next/server/chunks/_108e86rhye0o1._.js +0 -3
- package/server/.next/server/chunks/_12g2m3a5e94_5._.js +0 -3
- package/server/.next/server/chunks/_1_son1yzo5xvl._.js +0 -3
- package/server/.next/server/chunks/_1ap0upnvy5i_1._.js +0 -49
- package/server/.next/server/chunks/_1b-88djuoexz1._.js +0 -49
- package/server/.next/server/chunks/_1ctwjh8q__6_g._.js +0 -3
- package/server/.next/server/chunks/_1f14qy3kb8iac._.js +0 -3
- package/server/.next/server/chunks/_1fj4vzjpusyn8._.js +0 -5
- package/server/.next/server/chunks/_1i8u10u8nrzy2._.js +0 -3
- package/server/.next/server/chunks/_1k3v1-vgvzm_o._.js +0 -3
- package/server/.next/server/chunks/_1kcmwgs544mo-._.js +0 -3
- package/server/.next/server/chunks/_1ptcxyn1tzm9r._.js +0 -3
- package/server/.next/server/chunks/_1rskctyr7yt-b._.js +0 -3
- package/server/.next/server/chunks/node_modules_drizzle-orm_1oeq7sl_gbxs5._.js +0 -4
- package/server/.next/server/chunks/node_modules_drizzle-orm_1tmqw7vk5a4ik._.js +0 -4
- package/server/.next/server/chunks/src_063xvouojxyoa._.js +0 -3
- package/server/.next/server/chunks/src_088gmyaew7ds0._.js +0 -3
- package/server/.next/server/chunks/src_08fq45_-8xq5o._.js +0 -3
- package/server/.next/server/chunks/src_0hx0sol2clocu._.js +0 -3
- package/server/.next/server/chunks/src_0j84o_hkkaeg-._.js +0 -3
- package/server/.next/server/chunks/src_0y_4gogmeu-2k._.js +0 -3
- package/server/.next/server/chunks/src_1-6a00bmwlymu._.js +0 -3
- package/server/.next/server/chunks/src_13n1vi7uew4iu._.js +0 -3
- package/server/.next/server/chunks/src_1_fnzi0em_6er._.js +0 -3
- package/server/.next/server/chunks/src_1bqzr81r3wkvi._.js +0 -3
- package/server/.next/server/chunks/src_1wduh0eckiwl1._.js +0 -3
- package/server/.next/server/chunks/src_lib_0-fln6xaazo-9._.js +0 -12
- package/server/.next/server/chunks/src_lib_0ma36vqcze7a9._.js +0 -7
- package/server/.next/server/chunks/src_lib_0ps7mu81f-6s1._.js +0 -7
- package/server/.next/server/chunks/src_lib_14grv5a5_n9o0._.js +0 -7
- package/server/.next/server/chunks/src_lib_1en6omqx66g9d._.js +0 -23
- package/server/.next/server/chunks/src_lib_1jlvdx5ho171c._.js +0 -12
- package/server/.next/server/chunks/src_lib_1znb-e7g8dkgc._.js +0 -7
- package/server/.next/server/chunks/src_lib_collector_runners_ts_12z4gtgikss74._.js +0 -21
- package/server/.next/server/chunks/src_lib_data_metrics-db_ts_0zp7x6l28a2ep._.js +0 -3
- package/server/.next/server/chunks/src_lib_demo_11p30f_ci6ie2._.js +0 -3
- package/server/.next/server/chunks/ssr/[root-of-the-server]__03xevz8n-mc20._.js +0 -4
- package/server/.next/server/chunks/ssr/[root-of-the-server]__0de1senl_kfo5._.js +0 -3
- package/server/.next/server/chunks/ssr/[root-of-the-server]__0y6psx1_d7fkt._.js +0 -3
- package/server/.next/server/chunks/ssr/[root-of-the-server]__19twn3g5nv5q1._.js +0 -3
- package/server/.next/server/chunks/ssr/[root-of-the-server]__19wvac83zh5-9._.js +0 -3
- package/server/.next/server/chunks/ssr/[root-of-the-server]__1m38od9tgaroe._.js +0 -3
- package/server/.next/server/chunks/ssr/[root-of-the-server]__1mxpszbk1aup8._.js +0 -4
- package/server/.next/server/chunks/ssr/[root-of-the-server]__1tj-iwvrxfd1a._.js +0 -3
- package/server/.next/server/chunks/ssr/[root-of-the-server]__1zmuaump_n9c1._.js +0 -3
- package/server/.next/server/chunks/ssr/_01n29sxn-py3x._.js +0 -3
- package/server/.next/server/chunks/ssr/_03d3sxmob-gr7._.js +0 -3
- package/server/.next/server/chunks/ssr/_0c8kew3jsb-yb._.js +0 -3
- package/server/.next/server/chunks/ssr/_0qhvl_fw4qetx._.js +0 -4
- package/server/.next/server/chunks/ssr/_0rw2pberdmaa5._.js +0 -3
- package/server/.next/server/chunks/ssr/_0zkmkbrbc96-h._.js +0 -3
- package/server/.next/server/chunks/ssr/_16vvfyez78u5k._.js +0 -3
- package/server/.next/server/chunks/ssr/_1d0anr0hjs5k5._.js +0 -3
- package/server/.next/server/chunks/ssr/_1fj4vzjpusyn8._.js +0 -5
- package/server/.next/server/chunks/ssr/_1rskctyr7yt-b._.js +0 -3
- package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_settings_page_actions_12wgjpd0lbh12.js +0 -3
- package/server/.next/server/chunks/ssr/src_1emolu5lrse98._.js +0 -6
- package/server/.next/server/chunks/ssr/src_1sdwdnblbiq_g._.js +0 -3
- package/server/.next/server/chunks/ssr/src_app_(console)_0_odx13qcz9o1._.js +0 -3
- package/server/.next/server/chunks/ssr/src_app_signin_1u2md84o5b6td._.js +0 -3
- package/server/.next/server/chunks/ssr/src_lib_0nbad7vu413-f._.js +0 -23
- package/server/.next/server/chunks/ssr/src_lib_data_metrics-db_ts_0zp7x6l28a2ep._.js +0 -3
- package/server/.next/static/chunks/0hzw1rqyz-ith.js +0 -1
- package/server/.next/static/chunks/0ps76fyk0mlud.js +0 -1
- package/server/.next/static/chunks/1qmrzxeff7esb.js +0 -1
- package/server/.next/static/chunks/1yjrm8ekqlzfy.js +0 -1
- package/server/.next/static/chunks/2d7luax7loip3.js +0 -1
- package/server/.next/static/chunks/2j24hsy45xi-u.js +0 -1
- package/server/.next/static/chunks/2zzk4wxiacgja.css +0 -3
- package/server/.next/static/chunks/35vilzb1p9yjf.js +0 -1
- package/server/.next/static/chunks/39a3uxexc-wqm.js +0 -1
- package/server/.next/static/chunks/3a9toq_3nqe93.js +0 -1
- package/server/.next/static/chunks/3qudv985iqmz7.js +0 -1
- /package/server/.next/static/{g_rE0bq_ZZa-pl4RulWXV → NUZVcU60U-vXVedu_GB0w}/_buildManifest.js +0 -0
- /package/server/.next/static/{g_rE0bq_ZZa-pl4RulWXV → NUZVcU60U-vXVedu_GB0w}/_clientMiddlewareManifest.js +0 -0
- /package/server/.next/static/{g_rE0bq_ZZa-pl4RulWXV → NUZVcU60U-vXVedu_GB0w}/_ssgManifest.js +0 -0
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
module.exports=[653353,a=>{"use strict";var b=a.i(187924),c=a.i(834295),d=a.i(122127),e=a.i(572131),f=a.i(546615),g=a.i(619089),h=a.i(368114);let i={CRITICAL:"Critical",HIGH:"High",MODERATE:"Moderate",LOW:"Low",UNKNOWN:"Unknown"},j={CRITICAL:"bg-err-soft text-err",HIGH:"bg-err-soft text-err",MODERATE:"bg-warn-soft text-warn",LOW:"bg-brand-soft text-brand",UNKNOWN:"bg-brand-soft text-brand"};function k({severity:a}){return(0,b.jsx)("span",{className:(0,h.f)("inline-block whitespace-nowrap rounded-[5px] px-2 py-px text-xs font-medium",j[a]),children:i[a]})}j.CRITICAL,j.MODERATE,j.LOW;var l=a.i(286597),m=a.i(462007);let n=a=>/^USN-\d+-\d+$/.test(a)?`https://ubuntu.com/security/notices/${a}`:null;function o(a){let b=a.trim(),c=0,d=b.indexOf(":");d>0&&/^\d+$/.test(b.slice(0,d))&&(c=Number(b.slice(0,d)),b=b.slice(d+1));let e=b.lastIndexOf("-");return e>=0?[c,b.slice(0,e),b.slice(e+1)]:[c,b,""]}function p(a){return void 0===a?0:"~"===a?-1:/[A-Za-z]/.test(a)?a.charCodeAt(0):a.charCodeAt(0)+256}function q(a,b){let c=0,d=0;for(;c<a.length||d<b.length;){for(;c<a.length&&!/\d/.test(a[c])||d<b.length&&!/\d/.test(b[d]);){let e=c<a.length&&!/\d/.test(a[c])?a[c]:void 0,f=d<b.length&&!/\d/.test(b[d])?b[d]:void 0,g=p(e)-p(f);if(0!==g)return g;void 0!==e&&c++,void 0!==f&&d++}let e="",f="";for(;c<a.length&&/\d/.test(a[c]);)e+=a[c++];for(;d<b.length&&/\d/.test(b[d]);)f+=b[d++];if(e=e.replace(/^0+/,""),f=f.replace(/^0+/,""),e.length!==f.length)return e.length-f.length;if(e!==f)return e<f?-1:1}return 0}function r(a){let b=[...new Set(a.flatMap(a=>a.binaries))].sort();return b.length?`sudo apt update && sudo apt install --only-upgrade ${b.join(" ")}`:null}let s=a=>/^CVE-\d{4}-\d{4,}$/.test(a)?`https://nvd.nist.gov/vuln/detail/${a}`:null,t=a=>"number"==typeof a&&Number.isFinite(a)?a.toFixed(1):null;var u=a.i(147474),v=a.i(405050);let w=(0,v.createServerReference)("005fdb78e3ecc8e19374e751aafc535ee0843fc49b",v.callServer,void 0,v.findSourceMapURL,"scanNowAction"),x="grid grid-cols-[170px_minmax(0,1fr)] gap-x-4 gap-y-2 max-[720px]:grid-cols-1 max-[720px]:gap-y-1 [&_dt]:text-ink-soft",y="font-mono text-[12.5px]",z={target:"_blank",rel:"noopener noreferrer"};function A({text:a}){return(0,b.jsxs)("div",{className:"flex min-w-0 items-start gap-2 rounded-md bg-code-bg px-3 py-2",children:[(0,b.jsx)("code",{className:"min-w-0 flex-1 font-mono text-[12px] text-code-text [overflow-wrap:anywhere]",children:a}),(0,b.jsx)(f.CopyButton,{text:a})]})}function B({u:a}){return(0,b.jsxs)("li",{className:"grid gap-2 border-t border-line px-[18px] py-3",children:[(0,b.jsxs)("div",{className:"flex flex-wrap items-baseline gap-x-3 gap-y-0.5",children:[(0,b.jsx)("b",{className:"font-medium",children:a.source}),(0,b.jsxs)("span",{className:(0,h.f)(y,"text-ink-faint [overflow-wrap:anywhere]"),children:[a.installed," → ",a.candidate]}),a.security&&(0,b.jsx)("span",{className:"text-[12px] text-ink-soft",children:"Ubuntu security update"})]}),a.error?(0,b.jsxs)("p",{className:"flex items-start gap-1.5 text-[13px] text-ink-soft",children:[(0,b.jsx)(l.Z,{state:"warn"}),(0,b.jsxs)("span",{children:["Fixed CVEs couldn't be read: ",a.error]})]}):0===a.fixes.length?(0,b.jsx)("p",{className:"text-[13px] text-ink-soft",children:"No CVE listed for this update."}):(0,b.jsx)("ul",{className:"grid gap-2",children:a.fixes.map(a=>{let c,d;return(0,b.jsxs)("li",{className:"min-w-0 rounded-md border border-line px-3 py-2",children:[(0,b.jsxs)("div",{className:"flex flex-wrap items-center gap-1.5",children:[(0,b.jsx)(k,{severity:null===(c=a.cvss3)?"UNKNOWN":c>=9?"CRITICAL":c>=7?"HIGH":c>=4?"MODERATE":c>0?"LOW":"UNKNOWN"}),t(a.cvss3)&&(0,b.jsx)("span",{className:(0,h.f)(y,"font-medium"),title:"CVSS v3 base score",children:t(a.cvss3)}),(0,b.jsx)("a",{href:(d=a.cve,`https://ubuntu.com/security/${d}`),...z,className:(0,h.f)(y,"text-brand hover:underline"),children:a.cve}),a.priority&&(0,b.jsxs)("span",{className:"text-[12px] text-ink-faint",children:["Ubuntu priority: ",a.priority]})]}),a.summary&&(0,b.jsx)("p",{className:"mt-1 text-[13px] text-ink-soft",children:a.summary}),(0,b.jsxs)("div",{className:"mt-1 flex flex-wrap gap-x-3 text-[12.5px]",children:[a.usns.map(a=>n(a)&&(0,b.jsx)("a",{href:n(a),...z,className:"text-brand hover:underline",children:a},a)),s(a.cve)&&(0,b.jsx)("a",{href:s(a.cve),...z,className:"text-brand hover:underline",children:"NVD"})]})]},a.cve)})}),(0,b.jsx)(A,{text:`sudo apt update && sudo apt install --only-upgrade ${[...a.binaries].sort().join(" ")}`})]})}a.s(["OsView",0,function({initial:a,owner:f,demo:i,now:j}){var k,n;let p,s,[t,v]=(0,e.useState)(a),[C,D]=(0,e.useState)(null),[E,F]=(0,e.useTransition)(),G=j??new Date,H=f&&!i?(0,b.jsx)(g.K,{size:"sm",variant:t?"secondary":"primary",onClick:()=>F(async()=>{try{let a=await w();a.ok&&a.data?(v(a.data),D(null)):D(a.ok?"No answer.":a.error)}catch{D("Watchbell didn't answer. Check that it's still running, then try again.")}}),disabled:E,children:E?"Scanning… (up to a minute)":"Scan now"}):null;if(!t)return(0,b.jsx)(g.N,{flush:!0,children:(0,b.jsxs)(g.k,{icon:d.f,title:"Not scanned yet",action:H,children:[f?"The daily job scans this machine; Scan now does it right away.":"The daily job scans this machine; the owner can scan now.",C&&(0,b.jsx)("p",{className:"mt-2 text-err",children:C})]})});let{security:I,other:J}=(k=t.updates,p=a=>a.security||a.fixes.length>0||null!==a.error,{security:k.filter(p),other:k.filter(a=>!p(a))}),K=r(I),L=t.kernel?!(n=t.kernel).running||n.runningVersion||n.newestInstalled?n.newestInstalled&&n.runningVersion&&function(a,b){let[c,d,e]=o(a),[f,g,h]=o(b);return c!==f?c-f:q(d,g)||q(e,h)}(n.newestInstalled,n.runningVersion)>0?{state:"warn",text:`Kernel ${n.newestInstalled} is installed, but ${n.runningVersion} is still running. Reboot to run it.`,command:"sudo reboot"}:n.update?{state:"warn",text:`A kernel update is waiting (${n.update.package} ${n.update.candidate}). Install it, then reboot.`,command:"sudo apt update && sudo apt full-upgrade"}:n.reboot.needed?{state:"warn",text:`An update waits for a reboot${n.reboot.packages.length?` (${n.reboot.packages.join(", ")})`:""}.`,command:"sudo reboot"}:{state:"ok",text:"The newest installed kernel is running.",command:null}:{state:"ok",text:`The running kernel (${n.running}) isn't from an Ubuntu package: the host it runs on updates it.`,command:null}:null,M=Object.entries(t.backlog.counts).sort((a,b)=>b[1]-a[1]),N=new Set(I.flatMap(a=>a.fixes.map(a=>a.cve))).size;return(0,b.jsxs)(b.Fragment,{children:[i&&(0,b.jsx)(g.M,{tone:"info",title:"Made-up data: the demo doesn't scan."}),C&&(0,b.jsx)(g.M,{tone:"danger",title:"Scan now failed",children:C}),t.failedAt&&t.error&&(0,b.jsx)(g.M,{tone:"warning",title:`The last scan failed ${(0,u.$)(new Date(t.failedAt),G)}`,children:`${t.error} These are the results from ${(0,u.$)(new Date(t.scannedAt),G)}.`}),"unsupported"===t.status&&(0,b.jsx)(g.M,{tone:"info",title:"This machine isn't checked",children:t.error??""}),"error"===t.status&&(0,b.jsx)(g.M,{tone:"danger",title:"The scan failed",children:t.error??"Unknown error."}),(0,b.jsx)(g.N,{title:"This machine",meta:H,children:(0,b.jsxs)("dl",{className:x,children:[(0,b.jsx)("dt",{children:"System"}),(0,b.jsx)("dd",{children:t.system??"Unknown"}),(0,b.jsx)("dt",{children:"Packages"}),(0,b.jsxs)("dd",{children:[t.packages.toLocaleString("en-US")," installed"]}),(0,b.jsx)("dt",{children:"Last scan"}),(0,b.jsx)("dd",{children:(0,u.$)(new Date(t.scannedAt),G)}),null!==t.aptListsAgeHours&&(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("dt",{children:"apt package lists"}),(0,b.jsxs)("dd",{className:t.aptListsAgeHours>48?"text-warn-icon":void 0,children:["updated ",t.aptListsAgeHours<1?"within the hour":`${t.aptListsAgeHours} h ago`,t.aptListsAgeHours>48?": run sudo apt update, or updates may be missing here":""]})]}),!t.failedAt&&"ok"===t.status&&t.error&&(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("dt",{children:"Note"}),(0,b.jsx)("dd",{className:"text-ink-soft",children:t.error})]})]})}),"ok"===t.status&&(0,b.jsxs)(b.Fragment,{children:[t.kernel&&L&&(0,b.jsxs)(g.N,{title:"Kernel",meta:(0,b.jsxs)("a",{href:(s=t.codename??"jammy",`https://ubuntu.com/security/notices?release=${encodeURIComponent(s)}&details=linux`),...z,className:"inline-flex items-center gap-1 text-brand hover:underline",children:["What Ubuntu's kernel updates fix ",(0,b.jsx)(c.f,{size:13,"aria-hidden":!0})]}),children:[(0,b.jsxs)("p",{className:"flex items-start gap-1.5",children:[(0,b.jsx)(l.Z,{state:L.state}),(0,b.jsx)("span",{children:L.text})]}),(0,b.jsxs)("dl",{className:(0,h.f)(x,"mt-2"),children:[(0,b.jsx)("dt",{children:"Running"}),(0,b.jsxs)("dd",{className:y,children:[t.kernel.running??"Unknown",t.kernel.runningVersion?` (${t.kernel.runningVersion})`:""]}),(0,b.jsx)("dt",{children:"Newest installed"}),(0,b.jsx)("dd",{className:y,children:t.kernel.newestInstalled??"Unknown"})]}),L.command&&(0,b.jsx)("div",{className:"mt-2.5",children:(0,b.jsx)(A,{text:L.command})}),(0,b.jsx)("p",{className:"mt-2 text-[12.5px] text-ink-faint",children:"Ubuntu tracks thousands of kernel CVEs; running the newest kernel it ships is how they get fixed, so Watchbell doesn't list them one by one."})]}),(0,b.jsx)(g.N,{title:I.length?`Security updates waiting (${I.length})`:"Security updates",meta:I.length?`${N} CVE${1===N?"":"s"} fixed by them`:void 0,flush:!0,children:I.length?(0,b.jsxs)(b.Fragment,{children:[K&&(0,b.jsxs)("div",{className:"px-[18px] pb-3",children:[(0,b.jsx)("p",{className:"mb-1.5 text-[13px] text-ink-soft",children:"Install them all at once:"}),(0,b.jsx)(A,{text:K})]}),(0,b.jsx)("ul",{"aria-label":"Security updates waiting",children:I.map(a=>(0,b.jsx)(B,{u:a},a.source))})]}):(0,b.jsxs)("p",{className:"flex items-start gap-1.5 px-[18px] pb-4",children:[(0,b.jsx)(l.Z,{state:"ok"}),(0,b.jsx)("span",{children:"No security update is waiting."})]})}),J.length>0&&(0,b.jsx)(g.N,{flush:!0,children:(0,b.jsxs)("details",{className:"px-[18px] py-3",children:[(0,b.jsxs)("summary",{className:"cursor-pointer select-none font-medium",children:["Other updates (",J.length,")"]}),(0,b.jsx)("p",{className:"mt-1 text-[13px] text-ink-soft",children:"Bug fixes and updates from other repositories; not listed as security fixes."}),(0,b.jsx)("ul",{className:"mt-2 grid gap-1 text-[13px]",children:J.map(a=>(0,b.jsxs)("li",{children:[(0,b.jsx)("b",{className:"font-medium",children:a.source})," ",(0,b.jsxs)("span",{className:(0,h.f)(y,"text-ink-faint"),children:[a.installed," → ",a.candidate]})]},a.source))}),(0,b.jsx)("div",{className:"mt-2.5",children:(0,b.jsx)(A,{text:r(J)??""})})]})}),(0,b.jsx)(g.N,{flush:!0,children:(0,b.jsxs)("details",{className:"px-[18px] py-3",children:[(0,b.jsxs)("summary",{className:"cursor-pointer select-none font-medium",children:["No fix yet (",t.backlog.error?"couldn't be read":`${t.backlog.total.toLocaleString("en-US")} advisories in ${M.length} packages`,")"]}),(0,b.jsx)("p",{className:"mt-1 text-[13px] text-ink-soft",children:"Advisories OSV.dev lists for the installed packages without a fix it knows of: often low priority, deferred, or in universe packages Ubuntu doesn't support. Packages with an update waiting are left out (see above). OSV can lag Ubuntu, so open a package to see Ubuntu's current status."}),t.backlog.error?(0,b.jsx)("p",{className:"mt-2 text-ink-soft",children:t.backlog.error}):(0,b.jsxs)("div",{className:"mt-2 overflow-x-auto",children:[(0,b.jsxs)("table",{className:m.o,children:[(0,b.jsx)(m.U,{head:["Package","Advisories",""]}),(0,b.jsx)("tbody",{children:M.slice(0,25).map(([a,d])=>{let e;return(0,b.jsxs)("tr",{className:m.C,children:[(0,b.jsx)("td",{className:(0,h.f)(m.z,y),children:a}),(0,b.jsx)("td",{className:m.z,children:d.toLocaleString("en-US")}),(0,b.jsx)("td",{className:m.z,children:(0,b.jsxs)("a",{href:(e=t.codename??"jammy",`https://ubuntu.com/security/cves?package=${encodeURIComponent(a)}&version=${encodeURIComponent(e)}`),...z,className:"inline-flex items-center gap-1 text-brand hover:underline",children:["Ubuntu's tracker ",(0,b.jsx)(c.f,{size:13,"aria-hidden":!0})]})})]},a)})})]}),M.length>25&&(0,b.jsxs)("p",{className:"mt-1.5 text-[12.5px] text-ink-faint",children:["And ",M.length-25," more packages."]})]})]})})]})]})}],653353)}];
|
|
1
|
+
module.exports=[653353,a=>{"use strict";var b=a.i(187924),c=a.i(834295),d=a.i(122127),e=a.i(572131),f=a.i(546615),g=a.i(619089),h=a.i(368114);let i={CRITICAL:"Critical",HIGH:"High",MODERATE:"Moderate",LOW:"Low",UNKNOWN:"Unknown"},j={CRITICAL:"bg-err-soft text-err",HIGH:"bg-err-soft text-err",MODERATE:"bg-warn-soft text-warn",LOW:"bg-brand-soft text-brand",UNKNOWN:"bg-brand-soft text-brand"};function k({severity:a}){return(0,b.jsx)("span",{className:(0,h.f)("inline-block whitespace-nowrap rounded-[5px] px-2 py-px text-xs font-medium",j[a]),children:i[a]})}j.CRITICAL,j.MODERATE,j.LOW;var l=a.i(286597),m=a.i(462007);let n=a=>/^USN-\d+-\d+$/.test(a)?`https://ubuntu.com/security/notices/${a}`:null;function o(a){let b=a.trim(),c=0,d=b.indexOf(":");d>0&&/^\d+$/.test(b.slice(0,d))&&(c=Number(b.slice(0,d)),b=b.slice(d+1));let e=b.lastIndexOf("-");return e>=0?[c,b.slice(0,e),b.slice(e+1)]:[c,b,""]}function p(a){return void 0===a?0:"~"===a?-1:/[A-Za-z]/.test(a)?a.charCodeAt(0):a.charCodeAt(0)+256}function q(a,b){let c=0,d=0;for(;c<a.length||d<b.length;){for(;c<a.length&&!/\d/.test(a[c])||d<b.length&&!/\d/.test(b[d]);){let e=c<a.length&&!/\d/.test(a[c])?a[c]:void 0,f=d<b.length&&!/\d/.test(b[d])?b[d]:void 0,g=p(e)-p(f);if(0!==g)return g;void 0!==e&&c++,void 0!==f&&d++}let e="",f="";for(;c<a.length&&/\d/.test(a[c]);)e+=a[c++];for(;d<b.length&&/\d/.test(b[d]);)f+=b[d++];if(e=e.replace(/^0+/,""),f=f.replace(/^0+/,""),e.length!==f.length)return e.length-f.length;if(e!==f)return e<f?-1:1}return 0}function r(a){let b=[...new Set(a.flatMap(a=>a.binaries))].sort();return b.length?`sudo apt update && sudo apt install --only-upgrade ${b.join(" ")}`:null}let s=a=>/^CVE-\d{4}-\d{4,}$/.test(a)?`https://nvd.nist.gov/vuln/detail/${a}`:null,t=a=>"number"==typeof a&&Number.isFinite(a)?a.toFixed(1):null;var u=a.i(147474),v=a.i(405050);let w=(0,v.createServerReference)("004e2055ecb5d2fdaba6a734c95672ac23bef5186a",v.callServer,void 0,v.findSourceMapURL,"scanNowAction"),x="grid grid-cols-[170px_minmax(0,1fr)] gap-x-4 gap-y-2 max-[720px]:grid-cols-1 max-[720px]:gap-y-1 [&_dt]:text-ink-soft",y="font-mono text-[12.5px]",z={target:"_blank",rel:"noopener noreferrer"};function A({text:a}){return(0,b.jsxs)("div",{className:"flex min-w-0 items-start gap-2 rounded-md bg-code-bg px-3 py-2",children:[(0,b.jsx)("code",{className:"min-w-0 flex-1 font-mono text-[12px] text-code-text [overflow-wrap:anywhere]",children:a}),(0,b.jsx)(f.CopyButton,{text:a})]})}function B({u:a}){return(0,b.jsxs)("li",{className:"grid gap-2 border-t border-line px-[18px] py-3",children:[(0,b.jsxs)("div",{className:"flex flex-wrap items-baseline gap-x-3 gap-y-0.5",children:[(0,b.jsx)("b",{className:"font-medium",children:a.source}),(0,b.jsxs)("span",{className:(0,h.f)(y,"text-ink-faint [overflow-wrap:anywhere]"),children:[a.installed," → ",a.candidate]}),a.security&&(0,b.jsx)("span",{className:"text-[12px] text-ink-soft",children:"Ubuntu security update"})]}),a.error?(0,b.jsxs)("p",{className:"flex items-start gap-1.5 text-[13px] text-ink-soft",children:[(0,b.jsx)(l.Z,{state:"warn"}),(0,b.jsxs)("span",{children:["Fixed CVEs couldn't be read: ",a.error]})]}):0===a.fixes.length?(0,b.jsx)("p",{className:"text-[13px] text-ink-soft",children:"No CVE listed for this update."}):(0,b.jsx)("ul",{className:"grid gap-2",children:a.fixes.map(a=>{let c,d;return(0,b.jsxs)("li",{className:"min-w-0 rounded-md border border-line px-3 py-2",children:[(0,b.jsxs)("div",{className:"flex flex-wrap items-center gap-1.5",children:[(0,b.jsx)(k,{severity:null===(c=a.cvss3)?"UNKNOWN":c>=9?"CRITICAL":c>=7?"HIGH":c>=4?"MODERATE":c>0?"LOW":"UNKNOWN"}),t(a.cvss3)&&(0,b.jsx)("span",{className:(0,h.f)(y,"font-medium"),title:"CVSS v3 base score",children:t(a.cvss3)}),(0,b.jsx)("a",{href:(d=a.cve,`https://ubuntu.com/security/${d}`),...z,className:(0,h.f)(y,"text-brand hover:underline"),children:a.cve}),a.priority&&(0,b.jsxs)("span",{className:"text-[12px] text-ink-faint",children:["Ubuntu priority: ",a.priority]})]}),a.summary&&(0,b.jsx)("p",{className:"mt-1 text-[13px] text-ink-soft",children:a.summary}),(0,b.jsxs)("div",{className:"mt-1 flex flex-wrap gap-x-3 text-[12.5px]",children:[a.usns.map(a=>n(a)&&(0,b.jsx)("a",{href:n(a),...z,className:"text-brand hover:underline",children:a},a)),s(a.cve)&&(0,b.jsx)("a",{href:s(a.cve),...z,className:"text-brand hover:underline",children:"NVD"})]})]},a.cve)})}),(0,b.jsx)(A,{text:`sudo apt update && sudo apt install --only-upgrade ${[...a.binaries].sort().join(" ")}`})]})}a.s(["OsView",0,function({initial:a,owner:f,demo:i,now:j}){var k,n;let p,s,[t,v]=(0,e.useState)(a),[C,D]=(0,e.useState)(null),[E,F]=(0,e.useTransition)(),G=j??new Date,H=f&&!i?(0,b.jsx)(g.K,{size:"sm",variant:t?"secondary":"primary",onClick:()=>F(async()=>{try{let a=await w();a.ok&&a.data?(v(a.data),D(null)):D(a.ok?"No answer.":a.error)}catch{D("Watchbell didn't answer. Check that it's still running, then try again.")}}),disabled:E,children:E?"Scanning… (up to a minute)":"Scan now"}):null;if(!t)return(0,b.jsx)(g.N,{flush:!0,children:(0,b.jsxs)(g.k,{icon:d.f,title:"Not scanned yet",action:H,children:[f?"The daily job scans this machine; Scan now does it right away.":"The daily job scans this machine; the owner can scan now.",C&&(0,b.jsx)("p",{className:"mt-2 text-err",children:C})]})});let{security:I,other:J}=(k=t.updates,p=a=>a.security||a.fixes.length>0||null!==a.error,{security:k.filter(p),other:k.filter(a=>!p(a))}),K=r(I),L=t.kernel?!(n=t.kernel).running||n.runningVersion||n.newestInstalled?n.newestInstalled&&n.runningVersion&&function(a,b){let[c,d,e]=o(a),[f,g,h]=o(b);return c!==f?c-f:q(d,g)||q(e,h)}(n.newestInstalled,n.runningVersion)>0?{state:"warn",text:`Kernel ${n.newestInstalled} is installed, but ${n.runningVersion} is still running. Reboot to run it.`,command:"sudo reboot"}:n.update?{state:"warn",text:`A kernel update is waiting (${n.update.package} ${n.update.candidate}). Install it, then reboot.`,command:"sudo apt update && sudo apt full-upgrade"}:n.reboot.needed?{state:"warn",text:`An update waits for a reboot${n.reboot.packages.length?` (${n.reboot.packages.join(", ")})`:""}.`,command:"sudo reboot"}:{state:"ok",text:"The newest installed kernel is running.",command:null}:{state:"ok",text:`The running kernel (${n.running}) isn't from an Ubuntu package: the host it runs on updates it.`,command:null}:null,M=Object.entries(t.backlog.counts).sort((a,b)=>b[1]-a[1]),N=new Set(I.flatMap(a=>a.fixes.map(a=>a.cve))).size;return(0,b.jsxs)(b.Fragment,{children:[i&&(0,b.jsx)(g.M,{tone:"info",title:"Made-up data: the demo doesn't scan."}),C&&(0,b.jsx)(g.M,{tone:"danger",title:"Scan now failed",children:C}),t.failedAt&&t.error&&(0,b.jsx)(g.M,{tone:"warning",title:`The last scan failed ${(0,u.$)(new Date(t.failedAt),G)}`,children:`${t.error} These are the results from ${(0,u.$)(new Date(t.scannedAt),G)}.`}),"unsupported"===t.status&&(0,b.jsx)(g.M,{tone:"info",title:"This machine isn't checked",children:t.error??""}),"error"===t.status&&(0,b.jsx)(g.M,{tone:"danger",title:"The scan failed",children:t.error??"Unknown error."}),(0,b.jsx)(g.N,{title:"This machine",meta:H,children:(0,b.jsxs)("dl",{className:x,children:[(0,b.jsx)("dt",{children:"System"}),(0,b.jsx)("dd",{children:t.system??"Unknown"}),(0,b.jsx)("dt",{children:"Packages"}),(0,b.jsxs)("dd",{children:[t.packages.toLocaleString("en-US")," installed"]}),(0,b.jsx)("dt",{children:"Last scan"}),(0,b.jsx)("dd",{children:(0,u.$)(new Date(t.scannedAt),G)}),null!==t.aptListsAgeHours&&(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("dt",{children:"apt package lists"}),(0,b.jsxs)("dd",{className:t.aptListsAgeHours>48?"text-warn-icon":void 0,children:["updated ",t.aptListsAgeHours<1?"within the hour":`${t.aptListsAgeHours} h ago`,t.aptListsAgeHours>48?": run sudo apt update, or updates may be missing here":""]})]}),!t.failedAt&&"ok"===t.status&&t.error&&(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("dt",{children:"Note"}),(0,b.jsx)("dd",{className:"text-ink-soft",children:t.error})]})]})}),"ok"===t.status&&(0,b.jsxs)(b.Fragment,{children:[t.kernel&&L&&(0,b.jsxs)(g.N,{title:"Kernel",meta:(0,b.jsxs)("a",{href:(s=t.codename??"jammy",`https://ubuntu.com/security/notices?release=${encodeURIComponent(s)}&details=linux`),...z,className:"inline-flex items-center gap-1 text-brand hover:underline",children:["What Ubuntu's kernel updates fix ",(0,b.jsx)(c.f,{size:13,"aria-hidden":!0})]}),children:[(0,b.jsxs)("p",{className:"flex items-start gap-1.5",children:[(0,b.jsx)(l.Z,{state:L.state}),(0,b.jsx)("span",{children:L.text})]}),(0,b.jsxs)("dl",{className:(0,h.f)(x,"mt-2"),children:[(0,b.jsx)("dt",{children:"Running"}),(0,b.jsxs)("dd",{className:y,children:[t.kernel.running??"Unknown",t.kernel.runningVersion?` (${t.kernel.runningVersion})`:""]}),(0,b.jsx)("dt",{children:"Newest installed"}),(0,b.jsx)("dd",{className:y,children:t.kernel.newestInstalled??"Unknown"})]}),L.command&&(0,b.jsx)("div",{className:"mt-2.5",children:(0,b.jsx)(A,{text:L.command})}),(0,b.jsx)("p",{className:"mt-2 text-[12.5px] text-ink-faint",children:"Ubuntu tracks thousands of kernel CVEs; running the newest kernel it ships is how they get fixed, so Watchbell doesn't list them one by one."})]}),(0,b.jsx)(g.N,{title:I.length?`Security updates waiting (${I.length})`:"Security updates",meta:I.length?`${N} CVE${1===N?"":"s"} fixed by them`:void 0,flush:!0,children:I.length?(0,b.jsxs)(b.Fragment,{children:[K&&(0,b.jsxs)("div",{className:"px-[18px] pb-3",children:[(0,b.jsx)("p",{className:"mb-1.5 text-[13px] text-ink-soft",children:"Install them all at once:"}),(0,b.jsx)(A,{text:K})]}),(0,b.jsx)("ul",{"aria-label":"Security updates waiting",children:I.map(a=>(0,b.jsx)(B,{u:a},a.source))})]}):(0,b.jsxs)("p",{className:"flex items-start gap-1.5 px-[18px] pb-4",children:[(0,b.jsx)(l.Z,{state:"ok"}),(0,b.jsx)("span",{children:"No security update is waiting."})]})}),J.length>0&&(0,b.jsx)(g.N,{flush:!0,children:(0,b.jsxs)("details",{className:"px-[18px] py-3",children:[(0,b.jsxs)("summary",{className:"cursor-pointer select-none font-medium",children:["Other updates (",J.length,")"]}),(0,b.jsx)("p",{className:"mt-1 text-[13px] text-ink-soft",children:"Bug fixes and updates from other repositories; not listed as security fixes."}),(0,b.jsx)("ul",{className:"mt-2 grid gap-1 text-[13px]",children:J.map(a=>(0,b.jsxs)("li",{children:[(0,b.jsx)("b",{className:"font-medium",children:a.source})," ",(0,b.jsxs)("span",{className:(0,h.f)(y,"text-ink-faint"),children:[a.installed," → ",a.candidate]})]},a.source))}),(0,b.jsx)("div",{className:"mt-2.5",children:(0,b.jsx)(A,{text:r(J)??""})})]})}),(0,b.jsx)(g.N,{flush:!0,children:(0,b.jsxs)("details",{className:"px-[18px] py-3",children:[(0,b.jsxs)("summary",{className:"cursor-pointer select-none font-medium",children:["No fix yet (",t.backlog.error?"couldn't be read":`${t.backlog.total.toLocaleString("en-US")} advisories in ${M.length} packages`,")"]}),(0,b.jsx)("p",{className:"mt-1 text-[13px] text-ink-soft",children:"Advisories OSV.dev lists for the installed packages without a fix it knows of: often low priority, deferred, or in universe packages Ubuntu doesn't support. Packages with an update waiting are left out (see above). OSV can lag Ubuntu, so open a package to see Ubuntu's current status."}),t.backlog.error?(0,b.jsx)("p",{className:"mt-2 text-ink-soft",children:t.backlog.error}):(0,b.jsxs)("div",{className:"mt-2 overflow-x-auto",children:[(0,b.jsxs)("table",{className:m.o,children:[(0,b.jsx)(m.U,{head:["Package","Advisories",""]}),(0,b.jsx)("tbody",{children:M.slice(0,25).map(([a,d])=>{let e;return(0,b.jsxs)("tr",{className:m.C,children:[(0,b.jsx)("td",{className:(0,h.f)(m.z,y),children:a}),(0,b.jsx)("td",{className:m.z,children:d.toLocaleString("en-US")}),(0,b.jsx)("td",{className:m.z,children:(0,b.jsxs)("a",{href:(e=t.codename??"jammy",`https://ubuntu.com/security/cves?package=${encodeURIComponent(a)}&version=${encodeURIComponent(e)}`),...z,className:"inline-flex items-center gap-1 text-brand hover:underline",children:["Ubuntu's tracker ",(0,b.jsx)(c.f,{size:13,"aria-hidden":!0})]})})]},a)})})]}),M.length>25&&(0,b.jsxs)("p",{className:"mt-1.5 text-[12.5px] text-ink-faint",children:["And ",M.length-25," more packages."]})]})]})})]})]})}],653353)}];
|
|
2
2
|
|
|
3
3
|
//# sourceMappingURL=src_app_%28console%29_os_os-view_tsx_0xr69f5vtstls._.js.map
|
package/server/.next/server/chunks/ssr/src_app_(console)_palette-action_ts_0zyw9a9imev6p._.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
module.exports=[760937,929941,a=>{"use strict";var b=a.i(137936),c=a.i(600079),d=a.i(109307),e=a.i(93321),f=a.i(548734),g=a.i(837137),h=a.i(646324),i=a.i(469762),j=a.i(910697);async function k(){let a=await (0,f.f)().select({id:g.resources.id,name:g.resources.name}).from(g.resources).where((0,e.b)((0,e.u)(g.resources.kind,"app"),(0,e.u)(g.resources.monitored,!0))).orderBy(g.resources.name).limit(j.O.apps),b=await (0,f.f)().select({id:g.resources.id,name:g.resources.name,parentId:g.resources.parentId}).from(g.resources).where((0,e.b)((0,e.u)(g.resources.kind,"domain"),(0,e.u)(g.resources.monitored,!0),(0,e.M)(g.resources.goneAt))).orderBy(g.resources.name).limit(j.O.domains),c=new Set(a.map(a=>a.id)),d=b.filter(a=>!a.parentId||c.has(a.parentId)).map(a=>({id:a.id,name:a.name}));if(!a.length)return{apps:[],monitors:[],domains:d};let k=await (0,f.f)().select({id:g.monitors.id,appId:g.monitors.resourceId,url:g.monitors.url,kind:g.monitors.kind,name:g.monitors.name}).from(g.monitors).where((0,e.y)(g.monitors.resourceId,a.map(a=>a.id))).orderBy(g.monitors.createdAt).limit(j.O.monitors),l=new Map(a.map(a=>[a.id,a.name]));return{domains:d,apps:a.map(a=>({...a,domain:(0,i.m)(a.name,k.filter(b=>b.appId===a.id).map(a=>a.url))})),monitors:k.map(a=>({id:a.id,appId:a.appId,appName:l.get(a.appId)??"",path:"heartbeat"===a.kind?` \xb7 ${a.name??"heartbeat"}`:(0,h.K)(a.url)}))}}var l=a.i(713095);async function m(){return(0,c.F)("viewer",async()=>({ok:!0,data:await k()}),{requireActionMember:d.g},"local")}(0,l.ensureServerEntryExports)([m]),(0,b.registerServerReference)(m,"
|
|
1
|
+
module.exports=[760937,929941,a=>{"use strict";var b=a.i(137936),c=a.i(600079),d=a.i(109307),e=a.i(93321),f=a.i(548734),g=a.i(837137),h=a.i(646324),i=a.i(469762),j=a.i(910697);async function k(){let a=await (0,f.f)().select({id:g.resources.id,name:g.resources.name}).from(g.resources).where((0,e.b)((0,e.u)(g.resources.kind,"app"),(0,e.u)(g.resources.monitored,!0))).orderBy(g.resources.name).limit(j.O.apps),b=await (0,f.f)().select({id:g.resources.id,name:g.resources.name,parentId:g.resources.parentId}).from(g.resources).where((0,e.b)((0,e.u)(g.resources.kind,"domain"),(0,e.u)(g.resources.monitored,!0),(0,e.M)(g.resources.goneAt))).orderBy(g.resources.name).limit(j.O.domains),c=new Set(a.map(a=>a.id)),d=b.filter(a=>!a.parentId||c.has(a.parentId)).map(a=>({id:a.id,name:a.name}));if(!a.length)return{apps:[],monitors:[],domains:d};let k=await (0,f.f)().select({id:g.monitors.id,appId:g.monitors.resourceId,url:g.monitors.url,kind:g.monitors.kind,name:g.monitors.name}).from(g.monitors).where((0,e.y)(g.monitors.resourceId,a.map(a=>a.id))).orderBy(g.monitors.createdAt).limit(j.O.monitors),l=new Map(a.map(a=>[a.id,a.name]));return{domains:d,apps:a.map(a=>({...a,domain:(0,i.m)(a.name,k.filter(b=>b.appId===a.id).map(a=>a.url))})),monitors:k.map(a=>({id:a.id,appId:a.appId,appName:l.get(a.appId)??"",path:"heartbeat"===a.kind?` \xb7 ${a.name??"heartbeat"}`:(0,h.K)(a.url)}))}}var l=a.i(713095);async function m(){return(0,c.F)("viewer",async()=>({ok:!0,data:await k()}),{requireActionMember:d.g},"local")}(0,l.ensureServerEntryExports)([m]),(0,b.registerServerReference)(m,"0082e8013ce3c6c11b41993dbfc378f3bac5382a89",null),a.s(["f",0,m],760937);var n=a.i(118558),o=a.i(288950);let p={requireActionMember:d.g};async function q(){return(0,c.F)("owner",async()=>(await (0,o.z)(),(0,n.refresh)(),{ok:!0,message:"Got it."}),p)}(0,l.ensureServerEntryExports)([q]),(0,b.registerServerReference)(q,"00ec2572038f20c5fed1e849885bd0554898e8595a",null),a.s(["f",0,q],929941)}];
|
|
2
2
|
|
|
3
3
|
//# sourceMappingURL=src_app_%28console%29_palette-action_ts_0zyw9a9imev6p._.js.map
|
package/server/.next/server/chunks/ssr/src_app_(console)_reports_reports-view_tsx_1l0apba6g810q._.js
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
module.exports=[588544,a=>{"use strict";var b=a.i(187924),c=a.i(470938),d=a.i(572131),e=a.i(823292),f=a.i(611619),g=a.i(619089),h=a.i(814574),i=a.i(368114),j=a.i(405050);let k=(0,j.createServerReference)("401811f9941d0d8acc9e057afb17b5aeb5bd3fc377",j.callServer,void 0,j.findSourceMapURL,"deleteReportAction"),l=(0,j.createServerReference)("60bc03947a8b7f3228cd3bff0d3acc44cdef519e75",j.callServer,void 0,j.findSourceMapURL,"saveReportContent"),m=(0,j.createServerReference)("60b0b2e9e7f89edadb708330a6fbbd24c45933e720",j.callServer,void 0,j.findSourceMapURL,"saveReportDelivery"),n=(0,j.createServerReference)("600fd1e9e23d538e0b8517d3981eb00f29e31e763a",j.callServer,void 0,j.findSourceMapURL,"sendTestReport"),o={id:"Indonesian",en:"English"};function p({r:a,months:c,role:h,onEdit:j,onDelivery:l}){let m=c.filter(a=>!a.label.endsWith("(so far)")),[q,r]=(0,d.useState)(m[0]?.value??c[0]?.value??""),[s,t]=(0,d.useState)(a.lang),[u,v]=(0,d.useTransition)(),[w,x]=(0,d.useState)(!1),y=function(a){let b;if(!a.lastSend)return null;let c=(b=a.lastSend.month,new Intl.DateTimeFormat("en-GB",{month:"long",year:"numeric",timeZone:"UTC"}).format(new Date(`${b}-15T12:00:00Z`)));return"sent"===a.lastSend.status?`${c} sent`:"failed"===a.lastSend.status?`${c} not sent: ${a.lastSend.lastError??"unknown reason"}`:`${c} waiting for a retry${a.lastSend.lastError?` (${a.lastSend.lastError})`:""}`}(a),z=async()=>{let b=await k(a.id);return b.ok?{ok:!0,message:b.message??"Report deleted."}:{ok:!1,message:b.error}};return(0,b.jsxs)(g.N,{title:a.clientName,meta:(0,b.jsx)(g.E,{children:o[a.lang]}),children:[(0,b.jsxs)("div",{className:"flex flex-col gap-3 text-[13px]",children:[(0,b.jsxs)("div",{className:"text-ink-soft",children:[a.title?`${a.title} \xb7 `:"",a.sites.length?a.sites.map(a=>a.displayName).join(", "):"No websites yet"]}),(0,b.jsxs)("div",{className:"text-ink-soft",children:[function(a){if(!a.autoSend)return"Automatic sending is off";let b=a.recipients.length;return`Emailed on the 1st to ${b} address${1===b?"":"es"}`}(a),y&&(0,b.jsxs)(b.Fragment,{children:[" · ",(0,b.jsx)("span",{className:(0,i.f)(a.lastSend?.status==="failed"&&"text-err"),children:y})]})]}),(0,b.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,b.jsx)("select",{"aria-label":"Month",className:(0,i.f)(g.S,"w-auto"),value:q,onChange:a=>r(a.target.value),children:c.map(a=>(0,b.jsx)("option",{value:a.value,children:a.label},a.value))}),(0,b.jsxs)("select",{"aria-label":"Language of this download",className:(0,i.f)(g.S,"w-auto"),value:s,onChange:a=>t(a.target.value),children:[(0,b.jsx)("option",{value:"id",children:"Indonesian"}),(0,b.jsx)("option",{value:"en",children:"English"})]}),q&&a.sites.length>0?(0,b.jsx)("a",{className:(0,g.R)({variant:"primary",size:"sm"}),href:`/reports/${a.id}/pdf?month=${q}&lang=${s}`,download:!0,children:"Download PDF"}):(0,b.jsx)("span",{className:"text-ink-faint",children:"Add a website to download a PDF."}),"viewer"!==h&&(0,b.jsx)(g.K,{size:"sm",onClick:()=>v(async()=>{let b=await n(a.id,q);b.ok?e.c.success(b.message??"Test sent."):e.c.error(b.error)}),disabled:u||!a.sites.length,children:"Send test"}),"viewer"!==h&&(0,b.jsx)(g.K,{size:"sm",onClick:j,children:"Edit"}),"owner"===h&&(0,b.jsx)(g.K,{size:"sm",onClick:l,children:"Delivery"}),"owner"===h&&(0,b.jsx)(g.K,{size:"sm",variant:"ghost",onClick:()=>x(!0),disabled:u,children:"Delete"})]})]}),"owner"===h&&(0,b.jsx)(f.f,{open:w,onOpenChange:x,title:`Delete the report for ${a.clientName}?`,body:"The report and its send history go. The monitoring data stays.",cta:"Delete",danger:!0,onConfirm:z})]})}function q({label:a,help:c,error:d,children:e}){return(0,b.jsxs)("label",{className:"flex flex-col gap-1 text-[13px]",children:[(0,b.jsxs)("span",{className:"font-medium",children:[a,c&&(0,b.jsx)("span",{className:"block text-[12px] font-normal text-ink-soft",children:c})]}),e,d&&(0,b.jsx)("span",{className:"text-[12.5px] text-err",role:"alert",children:d})]})}function r({report:a,monitors:c,onClose:f}){let[j,k]=(0,d.useState)(a?.clientName??""),[m,n]=(0,d.useState)(a?.title??""),[o,p]=(0,d.useState)(a?.lang??"id"),[s,t]=(0,d.useState)(a?.note??""),[u,v]=(0,d.useState)(a?.emailOpening??""),[w,x]=(0,d.useState)(Object.fromEntries((a?.sites??[]).map(a=>[a.monitorId,a.displayName]))),[y,z]=(0,d.useState)({}),[A,B]=(0,d.useTransition)();return(0,b.jsx)(h.N,{open:!0,onOpenChange:a=>!a&&f(),children:(0,b.jsxs)(h.d,{className:"max-h-[90vh] overflow-y-auto sm:max-w-[560px]",children:[(0,b.jsx)(h.F,{className:"text-base",children:a?`Edit ${a.clientName}`:"New report"}),(0,b.jsx)(h.C,{children:"What the client reads. Website names are yours to choose; the PDF never shows an address."}),(0,b.jsxs)("div",{className:"flex flex-col gap-3",children:[(0,b.jsx)(q,{label:"Client",error:y.clientName,children:(0,b.jsx)("input",{className:g.S,value:j,maxLength:120,onChange:a=>k(a.target.value),placeholder:"e.g. PT Kopi Sejahtera"})}),(0,b.jsx)(q,{label:"Title",help:"Blank: Website monitoring report / Laporan pemantauan website.",children:(0,b.jsx)("input",{className:g.S,value:m,maxLength:120,onChange:a=>n(a.target.value)})}),(0,b.jsx)(q,{label:"Language",error:y.lang,children:(0,b.jsxs)("select",{className:g.S,value:o,onChange:a=>p(a.target.value),children:[(0,b.jsx)("option",{value:"id",children:"Indonesian"}),(0,b.jsx)("option",{value:"en",children:"English"})]})}),(0,b.jsxs)("div",{className:"flex flex-col gap-1 text-[13px]",children:[(0,b.jsxs)("span",{className:"font-medium",children:["Websites",(0,b.jsx)("span",{className:"block text-[12px] font-normal text-ink-soft",children:"Tick the uptime monitors to include and give each the name the client knows."})]}),c.map(a=>(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsx)("input",{type:"checkbox",className:"size-4 accent-brand","aria-label":`Include ${a.label}`,checked:a.id in w,onChange:b=>x(c=>{let d={...c};return b.target.checked?d[a.id]=d[a.id]??"":delete d[a.id],d})}),(0,b.jsx)("span",{className:"w-[42%] truncate text-ink-soft",title:a.label,children:a.label}),a.id in w&&(0,b.jsx)("input",{className:(0,i.f)(g.S,"flex-1"),value:w[a.id],maxLength:80,placeholder:"Name in the report","aria-label":`Name for ${a.label}`,onChange:b=>x(c=>({...c,[a.id]:b.target.value}))})]},a.id)),!c.length&&(0,b.jsx)("span",{className:"text-ink-faint",children:"No uptime monitors yet. Add one under Hosting › Uptime."}),y.sites&&(0,b.jsx)("span",{className:"text-[12.5px] text-err",role:"alert",children:y.sites})]}),(0,b.jsx)(q,{label:"Note for the client",help:"Optional. Printed on page 2 of every report until you change it.",children:(0,b.jsx)("textarea",{className:g.S,rows:3,maxLength:1e3,value:s,onChange:a=>t(a.target.value)})}),(0,b.jsx)(q,{label:"Email opening",help:"Optional. Blank: a short greeting in the report's language.",children:(0,b.jsx)("input",{className:g.S,value:u,maxLength:500,onChange:a=>v(a.target.value),placeholder:"e.g. Halo Pak Budi,"})})]}),(0,b.jsxs)("div",{className:"mt-2 flex justify-end gap-2",children:[(0,b.jsx)(g.K,{onClick:f,children:"Cancel"}),(0,b.jsx)(g.K,{variant:"primary",onClick:()=>B(async()=>{let b=[...new Set([...a?.sites.map(a=>a.monitorId)??[],...c.map(a=>a.id)])].filter(a=>a in w).map(a=>({monitorId:a,displayName:w[a]})),d=await l(a?.id??null,{clientName:j,title:m,lang:o,note:s,emailOpening:u,sites:b});if(!d.ok){z(d.fieldErrors??{}),e.c.error(d.error);return}e.c.success(d.message??"Report saved."),f()}),disabled:A,children:A?"Saving…":"Save"})]})]})})}function s({report:a,senders:c,onClose:f}){let[j,k]=(0,d.useState)(a.recipients.join("\n")),[l,n]=(0,d.useState)(a.autoSend),[o,p]=(0,d.useState)(a.sender??(c.smtp?"smtp":c.resend?"resend":"")),[r,t]=(0,d.useState)({}),[u,v]=(0,d.useTransition)();return(0,b.jsx)(h.N,{open:!0,onOpenChange:a=>!a&&f(),children:(0,b.jsxs)(h.d,{className:"sm:max-w-[520px]",children:[(0,b.jsxs)(h.F,{className:"text-base",children:["Delivery: ",a.clientName]}),(0,b.jsx)(h.C,{children:"Who gets the report by email on the 1st of each month. Only owners can change this."}),(0,b.jsxs)("div",{className:"flex flex-col gap-3",children:[(0,b.jsx)(q,{label:"Recipients",help:"Up to 5 addresses, one per line.",error:r.recipients,children:(0,b.jsx)("textarea",{className:(0,i.f)(g.S,"font-mono text-[12.5px]"),rows:4,value:j,onChange:a=>k(a.target.value),spellCheck:!1})}),(0,b.jsx)(q,{label:"Sent through",error:r.sender,children:(0,b.jsxs)("select",{className:g.S,value:o,onChange:a=>p(a.target.value),children:[(0,b.jsx)("option",{value:"",children:"Pick one"}),(0,b.jsxs)("option",{value:"smtp",disabled:!c.smtp,children:["Email (SMTP) channel",c.smtp?"":" — not connected"]}),(0,b.jsxs)("option",{value:"resend",disabled:!c.resend,children:["Resend",c.resend?"":" — not set up"]})]})}),(0,b.jsxs)("label",{className:"inline-flex items-center gap-2 text-[13px]",children:[(0,b.jsx)("input",{type:"checkbox",className:"size-4 accent-brand",checked:l,onChange:a=>n(a.target.checked)}),"Email it automatically on the 1st (retried on the 2nd and 3rd)"]})]}),(0,b.jsxs)("div",{className:"mt-2 flex justify-end gap-2",children:[(0,b.jsx)(g.K,{onClick:f,children:"Cancel"}),(0,b.jsx)(g.K,{variant:"primary",onClick:()=>v(async()=>{let b=await m(a.id,{recipients:j,autoSend:l,sender:o||null});if(!b.ok){t(b.fieldErrors??{}),e.c.error(b.error);return}e.c.success(b.message??"Saved."),f()}),disabled:u,children:u?"Saving…":"Save"})]})]})})}a.s(["ReportsView",0,function({reports:a,months:e,monitors:f,senders:h,role:i}){let[j,k]=(0,d.useState)(null),[l,m]=(0,d.useState)(null);return(0,b.jsxs)("div",{className:"flex flex-col gap-4",children:["viewer"!==i&&(0,b.jsx)("div",{children:(0,b.jsx)(g.K,{variant:"primary",onClick:()=>k("new"),children:"New report"})}),!a.length&&(0,b.jsx)(g.N,{children:(0,b.jsx)(g.k,{icon:c.f,title:"No reports yet",children:"A report is a two-page PDF for one client: the month's uptime as a calendar, incidents in plain words, response times and updates. Download it any time, or have it emailed on the 1st of each month."})}),a.map(a=>(0,b.jsx)(p,{r:a,months:e,role:i,onEdit:()=>k(a),onDelivery:()=>m(a)},a.id)),j&&(0,b.jsx)(r,{report:"new"===j?null:j,monitors:f,onClose:()=>k(null)}),l&&(0,b.jsx)(s,{report:l,senders:h,onClose:()=>m(null)})]})}],588544)}];
|
|
2
|
+
|
|
3
|
+
//# sourceMappingURL=src_app_%28console%29_reports_reports-view_tsx_1l0apba6g810q._.js.map
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
(()=>{"use strict";module.exports=[258401,a=>{var b=a.i(187924),c=a.i(908161),d=a.i(817748),e=a.i(851519),f=a.i(572131),g=a.i(619089),h=a.i(246059),i=a.i(998868),j=a.i(861954),k=a.i(57441),k=k,l=a.i(332485),m=k,n=k,o=k,m=k,k=k;h.z.object({error:h.z.object({status:i.z.string().optional(),message:i.z.string().optional(),details:j.z.array(m.looseObject({reason:i.z.string().optional()})).optional()})}),h.z.object({message:i.z.string()}),h.z.object({missing_permissions:j.z.array(i.z.string()).min(1)}),h.z.object({error:k.enum(["invalid_grant","invalid_client","unauthorized_client"])});let p={"==":"EQUAL","!=":"NOT_EQUAL","<":"LESS_THAN","<=":"LESS_THAN_OR_EQUAL",">":"GREATER_THAN",">=":"GREATER_THAN_OR_EQUAL","array-contains":"ARRAY_CONTAINS",in:"IN","not-in":"NOT_IN","array-contains-any":"ARRAY_CONTAINS_ANY"},q=["string","number","boolean","null"],r=/^(?:__name__|[A-Za-z_][A-Za-z0-9_]{0,99}(?:\.[A-Za-z_][A-Za-z0-9_]{0,99}){0,9})$/;h.z.object({collection:i.z.string().regex(/^(?!__.*__$)(?!\.\.?$)[^/\s][^/]{0,199}$/),where:j.z.array(h.z.object({field:i.z.string().regex(r),op:k.enum(Object.keys(p)),type:k.enum(q),value:i.z.string().max(500)})).max(5),orderBy:h.z.object({field:i.z.string().regex(r),dir:k.enum(["asc","desc"])}).nullable(),limit:l.z.number().int().min(1).max(100)}),j.z.array(m.looseObject({document:h.z.object({name:i.z.string(),fields:n.record(i.z.string(),o.unknown()).optional()}).optional()}));var s=a.i(368114),t=a.i(405050);let u=(0,t.createServerReference)("
|
|
1
|
+
(()=>{"use strict";module.exports=[258401,a=>{var b=a.i(187924),c=a.i(908161),d=a.i(817748),e=a.i(851519),f=a.i(572131),g=a.i(619089),h=a.i(246059),i=a.i(998868),j=a.i(861954),k=a.i(57441),k=k,l=a.i(332485),m=k,n=k,o=k,m=k,k=k;h.z.object({error:h.z.object({status:i.z.string().optional(),message:i.z.string().optional(),details:j.z.array(m.looseObject({reason:i.z.string().optional()})).optional()})}),h.z.object({message:i.z.string()}),h.z.object({missing_permissions:j.z.array(i.z.string()).min(1)}),h.z.object({error:k.enum(["invalid_grant","invalid_client","unauthorized_client"])});let p={"==":"EQUAL","!=":"NOT_EQUAL","<":"LESS_THAN","<=":"LESS_THAN_OR_EQUAL",">":"GREATER_THAN",">=":"GREATER_THAN_OR_EQUAL","array-contains":"ARRAY_CONTAINS",in:"IN","not-in":"NOT_IN","array-contains-any":"ARRAY_CONTAINS_ANY"},q=["string","number","boolean","null"],r=/^(?:__name__|[A-Za-z_][A-Za-z0-9_]{0,99}(?:\.[A-Za-z_][A-Za-z0-9_]{0,99}){0,9})$/;h.z.object({collection:i.z.string().regex(/^(?!__.*__$)(?!\.\.?$)[^/\s][^/]{0,199}$/),where:j.z.array(h.z.object({field:i.z.string().regex(r),op:k.enum(Object.keys(p)),type:k.enum(q),value:i.z.string().max(500)})).max(5),orderBy:h.z.object({field:i.z.string().regex(r),dir:k.enum(["asc","desc"])}).nullable(),limit:l.z.number().int().min(1).max(100)}),j.z.array(m.looseObject({document:h.z.object({name:i.z.string(),fields:n.record(i.z.string(),o.unknown()).optional()}).optional()}));var s=a.i(368114),t=a.i(405050);let u=(0,t.createServerReference)("40656a94b15c91b20a4bbb92bdfe2fd03edf47e960",t.callServer,void 0,t.findSourceMapURL,"firestoreCollectionsAction"),v=(0,t.createServerReference)("60dbfcf4aa0fe7c9746ad6f8056f8021de2b191d41",t.callServer,void 0,t.findSourceMapURL,"firestoreQueryAction");a.s(["FirestoreConsole",0,function({targets:a}){let[h,i]=(0,f.useState)(a[0]?.id??""),[j,k]=(0,f.useState)(null),[l,m]=(0,f.useState)(!1),[n,o]=(0,f.useState)(""),[r,t]=(0,f.useState)([]),[w,x]=(0,f.useState)(""),[y,z]=(0,f.useState)("asc"),[A,B]=(0,f.useState)(20),[C,D]=(0,f.useState)(null),[E,F]=(0,f.useState)(null),[G,H]=(0,f.useTransition)(),I=a.find(a=>a.id===h),J=(a,b)=>t(c=>c.map(c=>c.key===a?{...c,...b}:c));return(0,b.jsxs)("div",{className:"flex flex-col gap-3",children:[(0,b.jsxs)(g.M,{tone:"warning",title:"Every query costs Firestore reads",children:["One read per document returned (at least one per query), from the free 50,000 a day. Listing collections costs one read.",I?.readsToday!=null?` This project has used ${I.readsToday.toLocaleString("en")} today.`:""]}),(0,b.jsxs)("div",{className:"flex flex-wrap items-end gap-2",children:[(0,b.jsxs)("label",{className:"flex flex-col gap-1 text-[13px] font-medium",children:["Project",(0,b.jsx)("select",{className:(0,s.f)(g.S,"w-56"),value:h,onChange:a=>{i(a.target.value),k(null),o(""),D(null)},children:a.map(a=>(0,b.jsx)("option",{value:a.id,children:a.alias},a.id))})]}),(0,b.jsxs)("label",{className:"flex flex-col gap-1 text-[13px] font-medium",children:["Collection",j?(0,b.jsxs)("select",{className:(0,s.f)(g.S,"w-56 font-mono"),value:n,onChange:a=>o(a.target.value),children:[0===j.length&&(0,b.jsx)("option",{value:"",children:"No collections"}),j.map(a=>(0,b.jsx)("option",{value:a,children:a},a))]}):(0,b.jsx)(g.K,{onClick:function(){H(async()=>{try{let a=await u(h);if(!a.ok)return void F(a.error);k(a.data?.collections??[]),m(!!a.data?.more),o(a.data?.collections?.[0]??""),F(null)}catch{F("Watchbell didn't answer. Check that it's still running, then try again.")}})},disabled:G||!h,children:G?"Loading…":"List root collections"})]}),(0,b.jsxs)("label",{className:"flex flex-col gap-1 text-[13px] font-medium",children:["Order by",(0,b.jsx)("input",{className:(0,s.f)(g.S,"w-40 font-mono"),placeholder:"field (optional)",value:w,onChange:a=>x(a.target.value)})]}),(0,b.jsxs)("select",{"aria-label":"Direction",className:(0,s.f)(g.S,"w-24"),value:y,onChange:a=>z("desc"===a.target.value?"desc":"asc"),children:[(0,b.jsx)("option",{value:"asc",children:"asc"}),(0,b.jsx)("option",{value:"desc",children:"desc"})]}),(0,b.jsxs)("label",{className:"flex flex-col gap-1 text-[13px] font-medium",children:["Limit",(0,b.jsx)("input",{type:"number",min:1,max:100,className:(0,s.f)(g.S,"w-20 font-mono"),value:A,onChange:a=>B(Math.max(1,Math.min(100,Math.round(Number(a.target.value)||1))))})]}),(0,b.jsxs)(g.K,{variant:"primary",className:"ml-auto",onClick:function(){H(async()=>{try{let a=await v(h,{collection:n,where:r.map(({field:a,op:b,type:c,value:d})=>({field:a.trim(),op:b,type:c,value:d})),orderBy:w.trim()?{field:w.trim(),dir:y}:null,limit:A});if(!a.ok){F(a.error),D(null);return}D(a.data?.run??null),F(null)}catch{F("Watchbell didn't answer. Check that it's still running, then try again.")}})},disabled:G||!n,children:[(0,b.jsx)(c.f,{size:15})," ",G?"Running…":"Run query"]})]}),l&&(0,b.jsx)("p",{className:"text-[12.5px] text-ink-soft",children:"Showing the first 100 collections."}),(0,b.jsxs)("div",{className:"flex flex-col gap-2",children:[r.map(a=>(0,b.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,b.jsx)("span",{className:"w-12 text-[12.5px] text-ink-soft",children:"where"}),(0,b.jsx)("input",{"aria-label":"Field",className:(0,s.f)(g.S,"w-44 font-mono"),placeholder:"field",value:a.field,onChange:b=>J(a.key,{field:b.target.value})}),(0,b.jsx)("select",{"aria-label":"Operator",className:(0,s.f)(g.S,"w-44 font-mono"),value:a.op,onChange:b=>J(a.key,{op:b.target.value}),children:Object.keys(p).map(a=>(0,b.jsx)("option",{value:a,children:a},a))}),(0,b.jsx)("select",{"aria-label":"Value type",className:(0,s.f)(g.S,"w-28"),value:a.type,onChange:b=>J(a.key,{type:b.target.value}),children:q.map(a=>(0,b.jsx)("option",{value:a,children:a},a))}),(0,b.jsx)("input",{"aria-label":"Value",className:(0,s.f)(g.S,"w-56 font-mono"),disabled:"null"===a.type,placeholder:"in"===a.op||"not-in"===a.op||"array-contains-any"===a.op?"a, b, c":"value",value:a.value,onChange:b=>J(a.key,{value:b.target.value})}),(0,b.jsx)(g.K,{size:"sm",variant:"ghost","aria-label":"Remove condition",onClick:()=>t(b=>b.filter(b=>b.key!==a.key)),children:(0,b.jsx)(e.f,{size:14})})]},a.key)),r.length<5&&(0,b.jsx)("div",{children:(0,b.jsxs)(g.K,{size:"sm",variant:"ghost",onClick:()=>t(a=>[...a,{key:Date.now(),field:"",op:"==",type:"string",value:""}]),children:[(0,b.jsx)(d.f,{size:14})," Add where"]})})]}),E&&(0,b.jsx)(g.M,{tone:"danger",title:"The query didn't run",children:E}),C&&(0,b.jsxs)("div",{className:"flex flex-col gap-2",children:[(0,b.jsxs)("div",{className:"flex flex-wrap gap-3 text-[12.5px] text-ink-soft",children:[(0,b.jsxs)("span",{children:[(0,b.jsx)("b",{className:"font-mono font-medium text-ink",children:C.docs.length})," document",1===C.docs.length?"":"s"]}),(0,b.jsxs)("span",{children:[(0,b.jsx)("b",{className:"font-mono font-medium text-ink",children:C.reads})," read",1===C.reads?"":"s"," used"]}),(0,b.jsxs)("span",{children:[(0,b.jsx)("b",{className:"font-mono font-medium text-ink",children:C.durationMs})," ms"]}),C.truncated&&(0,b.jsx)("span",{className:"rounded border border-warn-icon/40 bg-warn-soft px-1.5 text-ink",children:"Truncated"})]}),(0,b.jsx)("div",{className:"max-h-[520px] overflow-auto rounded-md border border-line",children:0===C.docs.length?(0,b.jsx)("p",{className:"px-3 py-2 text-[13px] text-ink-soft",children:"No documents matched."}):C.docs.map(a=>(0,b.jsxs)("div",{className:"border-b border-line px-3 py-2 last:border-b-0",children:[(0,b.jsx)("div",{className:"font-mono text-[12.5px] font-medium text-ink",children:a.id}),(0,b.jsx)("pre",{className:"mt-1 overflow-x-auto whitespace-pre-wrap break-all font-mono text-[12px] text-ink-soft",children:a.json})]},a.id))})]})]})}],258401)},366550,a=>{var b=a.i(187924),c=a.i(908161),d=a.i(572131),e=a.i(823292),f=a.i(611619),g=a.i(619089),h=a.i(462007),i=a.i(368114);let j=[{id:"tables-by-size",label:"Tables by size",sql:`select n.nspname as schema, c.relname as table,
|
|
2
2
|
pg_size_pretty(pg_total_relation_size(c.oid)) as total,
|
|
3
3
|
pg_size_pretty(pg_relation_size(c.oid)) as data,
|
|
4
4
|
pg_total_relation_size(c.oid) as bytes
|
|
@@ -30,6 +30,6 @@ from pg_statio_user_indexes`},{id:"row-estimates",label:"Row counts (estimate)",
|
|
|
30
30
|
last_autoanalyze, last_autovacuum
|
|
31
31
|
from pg_stat_user_tables
|
|
32
32
|
order by n_live_tup desc
|
|
33
|
-
limit 100`}],k="watchpost.sql.snippets.v1";var l=a.i(746097),m=a.i(405050);let n=(0,m.createServerReference)("
|
|
33
|
+
limit 100`}],k="watchpost.sql.snippets.v1";var l=a.i(746097),m=a.i(405050);let n=(0,m.createServerReference)("70855ed3c422861a9a710fac0f9a7da6b222491517",m.callServer,void 0,m.findSourceMapURL,"runSqlAction");function o(a){try{return window.localStorage.setItem(k,JSON.stringify(a)),!0}catch{return!1}}let p=a=>null===a?"NULL":"string"==typeof a?a:String(a);function q({run:a}){return(0,b.jsxs)("div",{className:"flex flex-col gap-2",children:[(0,b.jsxs)("div",{className:"flex flex-wrap items-center gap-3 text-[12.5px] text-ink-soft",children:[(0,b.jsxs)("span",{children:[(0,b.jsx)("b",{className:"font-mono font-medium text-ink",children:a.rowCount})," row",1===a.rowCount?"":"s"]}),(0,b.jsxs)("span",{children:[(0,b.jsx)("b",{className:"font-mono font-medium text-ink",children:a.durationMs})," ms"]}),a.truncated&&(0,b.jsx)("span",{className:"rounded border border-warn-icon/40 bg-warn-soft px-1.5 text-ink",children:"Truncated: more rows or data than the console shows"})]}),0===a.columns.length?(0,b.jsx)("p",{className:"text-[13px] text-ink-soft",children:"The statement returned no columns."}):(0,b.jsx)("div",{className:"max-h-[520px] overflow-auto rounded-md border border-line",children:(0,b.jsxs)("table",{className:(0,i.f)(h.o,"font-mono text-[12.5px]"),children:[(0,b.jsx)(h.U,{head:a.columns}),(0,b.jsx)("tbody",{children:a.rows.map((a,c)=>(0,b.jsx)("tr",{children:a.map((a,c)=>(0,b.jsx)("td",{className:(0,i.f)(h.z,"max-w-[420px] overflow-hidden text-ellipsis",null===a&&"text-ink-faint"),title:p(a).length>60?p(a):void 0,children:p(a)},c))},c))})]})})]})}a.s(["SqlConsole",0,function({targets:a}){let[h,m]=(0,d.useState)(a[0]?.id??""),[p,r]=(0,d.useState)(j[0].sql),[s,t]=(0,d.useState)([]),[u,v]=(0,d.useState)(null),[w,x]=(0,d.useState)(null),[y,z]=(0,d.useState)(!1),[A,B]=(0,d.useTransition)();(0,d.useEffect)(()=>{let a=setTimeout(()=>t(function(){try{var a=window.localStorage.getItem(k);if(!a)return[];try{let b=JSON.parse(a);if(!Array.isArray(b))return[];return b.filter(a=>!!a&&"object"==typeof a&&"string"==typeof a.id&&"string"==typeof a.label&&"string"==typeof a.sql).slice(0,30).map(a=>({id:a.id.slice(0,40),label:a.label.slice(0,60),sql:a.sql.slice(0,2e4)}))}catch{return[]}}catch{return[]}}()),0);return()=>clearTimeout(a)},[]);let C=a.find(a=>a.id===h);async function D(a){let b=await n(h,p,a);return b.ok&&b.data?.run?(v(b.data.run),x(null),{ok:!0,message:`${b.data.run.rowCount} row${1===b.data.run.rowCount?"":"s"} in ${b.data.run.durationMs} ms`}):!b.ok&&b.data?.needsWake?(z(!0),{ok:!1,message:l.f}):(v(null),x(b.ok?"No result.":b.error),{ok:!1,message:b.ok?"No result.":b.error})}function E(){if(h&&p.trim()&&!A){if(C?.provider==="neon"&&"active"!==C.wake)return void z(!0);B(async()=>{try{await D(!1)}catch{x("Watchbell didn't answer. Check that it's still running, then try again.")}})}}let F=[...j,...s];return(0,b.jsxs)("div",{className:"flex flex-col gap-3",children:[(0,b.jsxs)("div",{className:"flex flex-wrap items-end gap-2",children:[(0,b.jsxs)("label",{className:"flex flex-col gap-1 text-[13px] font-medium",children:["Database",(0,b.jsx)("select",{className:(0,i.f)(g.S,"w-56"),value:h,onChange:a=>{m(a.target.value),v(null),x(null)},children:a.map(a=>(0,b.jsxs)("option",{value:a.id,children:[a.alias," · ","supabase"===a.provider?"Supabase":"Neon","idle"===a.wake?" (idle)":""]},a.id))})]}),(0,b.jsxs)("label",{className:"flex flex-col gap-1 text-[13px] font-medium",children:["Snippet",(0,b.jsxs)("select",{className:(0,i.f)(g.S,"w-64"),value:"",onChange:a=>{let b=F.find(b=>b.id===a.target.value);b&&r(b.sql)},children:[(0,b.jsx)("option",{value:"",disabled:!0,children:"Insert a snippet…"}),(0,b.jsx)("optgroup",{label:"Built in",children:j.map(a=>(0,b.jsx)("option",{value:a.id,children:a.label},a.id))}),s.length>0&&(0,b.jsx)("optgroup",{label:"Saved in this browser",children:s.map(a=>(0,b.jsx)("option",{value:a.id,children:a.label},a.id))})]})]}),(0,b.jsxs)("div",{className:"ml-auto flex gap-2",children:[(0,b.jsx)(g.K,{size:"sm",variant:"ghost",onClick:function(){let a=window.prompt("Name this snippet (saved in this browser only)")?.trim();if(!a)return;let b=[{id:`local-${Date.now()}`,label:a.slice(0,60),sql:p},...s].slice(0,30);o(b)?(t(b),e.c.success("Snippet saved in this browser")):e.c.error("This browser didn't let the console save it.")},disabled:!p.trim(),children:"Save as snippet"}),(0,b.jsxs)(g.K,{variant:"primary",onClick:E,disabled:A||!h||!p.trim(),children:[(0,b.jsx)(c.f,{size:15})," ",A?"Running…":"Run"]})]})]}),(0,b.jsx)("textarea",{"aria-label":"SQL query",spellCheck:!1,rows:10,value:p,className:(0,i.f)(g.S,"min-h-[180px] resize-y font-mono text-[13px] leading-relaxed"),onChange:a=>r(a.target.value),onKeyDown:a=>{"Enter"===a.key&&(a.ctrlKey||a.metaKey)&&(a.preventDefault(),E())}}),(0,b.jsxs)("p",{className:"text-[12.5px] text-ink-soft",children:["One SELECT, WITH, EXPLAIN, SHOW or TABLE statement. It runs in a read-only transaction that is always rolled back, with a 5 s timeout and at most ",500," rows. Ctrl+Enter runs it. 20 runs per 10 minutes."]}),s.length>0&&(0,b.jsxs)("div",{className:"flex flex-wrap gap-1.5 text-[12.5px] text-ink-soft",children:["Saved here:",s.map(a=>(0,b.jsxs)("span",{className:"inline-flex items-center gap-1 rounded border border-line px-1.5",children:[(0,b.jsx)("button",{type:"button",className:"text-ink hover:underline",onClick:()=>r(a.sql),children:a.label}),(0,b.jsx)("button",{type:"button","aria-label":`Delete snippet ${a.label}`,className:"text-ink-faint hover:text-err",onClick:()=>{var b;let c;return b=a.id,void(o(c=s.filter(a=>a.id!==b))&&t(c))},children:"×"})]},a.id))]}),w&&(0,b.jsx)(g.M,{tone:"danger",title:"The query didn't run",children:w}),u&&(0,b.jsx)(q,{run:u}),(0,b.jsx)(f.f,{open:y,onOpenChange:z,title:`Wake ${C?.alias??"the database"}?`,cta:"Run anyway",body:l.f,onConfirm:async()=>{try{return await D(!0)}catch{return{ok:!1,message:"Watchbell didn't answer. Check that it's still running, then try again."}}}})]})}],366550)}]})();
|
|
34
34
|
|
|
35
35
|
//# sourceMappingURL=src_app_%28console%29_sql_1icfsti04djqe._.js.map
|
|
@@ -2,6 +2,6 @@ module.exports=[719825,a=>{"use strict";var b=a.i(137936),c=a.i(118558),d=a.i(60
|
|
|
2
2
|
begin
|
|
3
3
|
${a.map(a=>` ${a}`).join("\n")}
|
|
4
4
|
end
|
|
5
|
-
$watchpost$;`,ac=[`revoke select on all tables in schema public from ${X};`,`alter default privileges for role postgres in schema public revoke select on tables from ${X};`,`revoke usage on schema public from ${X};`,`revoke connect on database postgres from ${X};`,`revoke pg_read_all_stats from ${X};`,`alter role ${X} nologin;`].map(a=>`begin ${a} exception when others then null; end;`);var ad=a.i(367623);let ae={target:async function(a){let b=await (0,ad.i)(a);if(!b||"supabase"!==b.provider)return null;let c=await (0,P.p)(a,"supabase_project");return c&&c.resource.externalId===b.externalId?{ref:b.externalId,token:c.token,paused:"paused"===b.state}:null},pooler:(a,b)=>V(a,b),run:(a,b,c,d)=>T(a,b,c,d),access:(a,b)=>W(a,b),save:(a,b,c)=>(0,ad.o)(a,b,!1,c),alias:async a=>(0,I.X)(await (0,J.e)(),a),password:()=>(function(a=g.randomBytes){return a(32).toString("base64url")})(),verifier:a=>(function(a,b=(0,g.randomBytes)(16),c=4096){let d=(0,g.pbkdf2Sync)(a.normalize("NFKC"),b,c,32,"sha256"),e=(0,g.createHash)("sha256").update(_(d,"Client Key")).digest(),f=_(d,"Server Key");return`SCRAM-SHA-256$${c}:${b.toString("base64")}$${e.toString("base64")}:${f.toString("base64")}`})(a),sleep:a=>new Promise(b=>setTimeout(b,a))},af="That Supabase project is no longer watched, or its token can't be read.",ag="This project is paused. Restore it first, then add SQL access.",ah=new Set([{code:"28P01"},{code:"08006"},{code:"CONNECT_TIMEOUT"}].map(Y.E));function ai(a){if("scope"===a.kind){let b;return b=a.missing??["database_write"],`This project's token can't set the role up (missing ${b.join(", ")}). It needs Database: Read-write and Connection pooling: Read; replace the token on Connections, or create the role by hand below.`}return a.error}async function aj(a,b=ae){if(!(0,n.f)(a))return{can:!1,reason:"other",error:"Something in that request wasn't valid."};let c=await b.target(a);return c?c.paused?{can:!1,reason:"other",error:ag}:b.access(c.token,c.ref):{can:!1,reason:"other",error:af}}async function ak(a,b,c=ae){if(!(0,n.f)(a))return{ok:!1,error:"Something in that request wasn't valid."};let d=await c.target(a);if(!d)return{ok:!1,error:af};if(d.paused)return{ok:!1,error:ag};let e=await c.pooler(d.token,d.ref);if(!e.ok)return{ok:!1,error:ai(e)};let f=c.password(),g=function(a,b,c){if(!Z.k.test(b))return{ok:!1,error:"This project's ref doesn't look right."};if(!$.test(c))return{ok:!1,error:"The generated password isn't valid."};let d=a.filter(a=>!a.database_type||"PRIMARY"===a.database_type),e=d.map(a=>(a.db_host??"").toLowerCase()).find(a=>Z.J.test(a));if(!e)return{ok:!1,error:"This project has no shared Supavisor pooler host (…pooler.supabase.com). Use the manual steps."};let f=d.find(a=>a.db_name&&/^[A-Za-z_][A-Za-z0-9_]{0,62}$/.test(a.db_name))?.db_name??"postgres";return{ok:!0,dsn:`postgresql://${X}.${b}:${encodeURIComponent(c)}@${e}:6543/${f}?sslmode=require`}}(e.data,d.ref,f);if(!g.ok)return{ok:!1,error:g.error};let h=await c.alias(a),i={kind:"err",message:`SQL access automatic setup failed \xb7 ${h}`,resourceId:a},j=async()=>(await c.run(d.token,d.ref,ab(ac),!1)).ok,k=await c.run(d.token,d.ref,ab(function(a){if(!aa.test(a))throw Error("bad verifier");return[`if not exists (select 1 from pg_catalog.pg_roles where rolname = '${X}') then create role ${X} login password '${a}'; else alter role ${X} with login password '${a}'; end if;`,`alter role ${X} set default_transaction_read_only = on;`,`alter role ${X} set statement_timeout = '5s';`,`grant connect on database postgres to ${X};`,`grant usage on schema public to ${X};`,`grant select on all tables in schema public to ${X};`,`alter default privileges for role postgres in schema public grant select on tables to ${X};`,`begin grant pg_read_all_stats to ${X}; exception when others then null; end;`]}(c.verifier(f))),!1);if(!k.ok){if("transient"===k.kind&&void 0===k.status){let a=await j();return{ok:!1,error:`${k.error} ${a?"Any grants it may have given were revoked.":`Check the ${X} role in the Supabase SQL Editor.`}`,audit:i}}return{ok:!1,error:ai(k),audit:i}}let l={ok:!1,error:"Not checked."};for(let d=0;d<3&&(d>0&&await c.sleep(2e3),!(l=await c.save(a,g.dsn,b)).ok&&ah.has(l.error));d++);if(!l.ok){let a=await j();return{ok:!1,error:`The new role didn't pass the read-only check, so nothing was saved: ${l.error} ${a?`Its grants were revoked and its login turned off (the role ${X} stays; nothing was dropped).`:`Revoking its grants failed too: run "revoke all on all tables in schema public from ${X}; alter role ${X} nologin;" in the Supabase SQL Editor.`}`,audit:i}}return{ok:!0,message:`SQL access created for ${h}: read-only role ${X} checked and saved.`,audit:{kind:"ok",message:`SQL access created automatically for ${h} (read-only role ${X})`,resourceId:a}}}var al=a.i(75105),am=a.i(312573),an=a.i(323878),ao=a.i(530175),ap=a.i(713095);let aq={requireActionMember:e.g};async function ar(a,b){if(a)try{await (0,f.f)({kind:a.kind,message:a.message,detail:a.detail,resourceId:a.resourceId,actorUserId:b.userId})}catch{console.warn("audit event failed")}}let as=(a,b,c)=>async()=>{let d=await (0,an.C)(a,b.id);return d.allowed?null:`Too many ${c}. Try again in ${(0,am.H)(d.retryAfter)}.`};async function at(a,b,c){return(0,d.F)("owner",async d=>{if(!(0,n.f)(a)||"boolean"!=typeof c)return{ok:!1,error:al.w};let e=(0,ao.E)(b);if(!e.ok)return{ok:!1,error:e.error,fieldErrors:{sql:e.error}};let f=await (0,ad.A)(a,e.text,c,as(am.t.sqlRun,d,"runs"));if(await ar(f.audit,d),!f.ok)return{ok:!1,error:f.error,...f.needsWake?{data:{needsWake:!0}}:{}};let{columns:g,rows:h,rowCount:i,truncated:j,durationMs:k}=f.result;return{ok:!0,data:{run:{columns:g,rows:h,rowCount:i,truncated:j,durationMs:k}}}},aq)}async function au(a,b){if(!a.ok)return{ok:!1,error:a.error,..."needsWake"in a&&a.needsWake?{data:{needsWake:!0}}:{}};if(a.audit)try{await (0,f.f)({kind:"ok",...a.audit,actorUserId:b.userId})}catch{console.warn("audit event failed")}return(0,c.refresh)(),{ok:!0,message:a.message}}async function av(a,b,c){return(0,d.F)("owner",async d=>{if(!(0,n.f)(a)||"string"!=typeof b||"boolean"!=typeof c)return{ok:!1,error:al.w};if(!b.trim())return{ok:!1,error:"Paste a connection string.",fieldErrors:{dsn:"Paste a connection string."}};let e=await as(am.t.credential,d,"connection tests")();return e?{ok:!1,error:e}:au(await (0,ad.o)(a,b,c,d.userId),d)},aq)}async function aw(a){return(0,d.F)("owner",async b=>{if(!(0,n.f)(a))return{ok:!1,error:al.w};let c=await as(am.t.credential,b,"connection tests")();return c?{ok:!1,error:c}:{ok:!0,data:await aj(a)}},aq)}async function ax(a){return(0,d.F)("owner",async b=>{if(!(0,n.f)(a))return{ok:!1,error:al.w};let d=await (0,P.q)(b.id,"sql-auto",a);if(d)return{ok:!1,error:d};let e=await ak(a,b.userId);if(e.audit)try{await (0,f.f)({kind:e.audit.kind,message:e.audit.message,resourceId:e.audit.resourceId,actorUserId:b.userId})}catch{console.warn("audit event failed")}return e.ok?((0,c.refresh)(),{ok:!0,message:e.message}):{ok:!1,error:e.error}},aq)}async function ay(a){return(0,d.F)("owner",async b=>{if(!(0,n.f)(a))return{ok:!1,error:al.w};let c=await as(am.t.monitorWrite,b,"changes")();return c?{ok:!1,error:c}:au(await (0,ad.y)(a),b)},aq)}async function az(a){return(0,d.F)("owner",async b=>{if(!(0,n.f)(a))return{ok:!1,error:al.w};let c=await as(am.t.firestoreQuery,b,"Firestore queries")();if(c)return{ok:!1,error:c};let d=await N(a);return d.ok?{ok:!0,data:{collections:d.ids,more:d.more}}:{ok:!1,error:d.error}},aq)}async function aA(a,b){return(0,d.F)("owner",async c=>{if(!(0,n.f)(a))return{ok:!1,error:al.w};let d=await O(a,b,as(am.t.firestoreQuery,c,"Firestore queries"));return await ar(d.audit,c),d.ok?{ok:!0,data:{run:d.result}}:{ok:!1,error:d.error}},aq)}(0,ap.ensureServerEntryExports)([at,av,aw,ax,ay,az,aA]),(0,b.registerServerReference)(at,"
|
|
5
|
+
$watchpost$;`,ac=[`revoke select on all tables in schema public from ${X};`,`alter default privileges for role postgres in schema public revoke select on tables from ${X};`,`revoke usage on schema public from ${X};`,`revoke connect on database postgres from ${X};`,`revoke pg_read_all_stats from ${X};`,`alter role ${X} nologin;`].map(a=>`begin ${a} exception when others then null; end;`);var ad=a.i(367623);let ae={target:async function(a){let b=await (0,ad.i)(a);if(!b||"supabase"!==b.provider)return null;let c=await (0,P.p)(a,"supabase_project");return c&&c.resource.externalId===b.externalId?{ref:b.externalId,token:c.token,paused:"paused"===b.state}:null},pooler:(a,b)=>V(a,b),run:(a,b,c,d)=>T(a,b,c,d),access:(a,b)=>W(a,b),save:(a,b,c)=>(0,ad.o)(a,b,!1,c),alias:async a=>(0,I.X)(await (0,J.e)(),a),password:()=>(function(a=g.randomBytes){return a(32).toString("base64url")})(),verifier:a=>(function(a,b=(0,g.randomBytes)(16),c=4096){let d=(0,g.pbkdf2Sync)(a.normalize("NFKC"),b,c,32,"sha256"),e=(0,g.createHash)("sha256").update(_(d,"Client Key")).digest(),f=_(d,"Server Key");return`SCRAM-SHA-256$${c}:${b.toString("base64")}$${e.toString("base64")}:${f.toString("base64")}`})(a),sleep:a=>new Promise(b=>setTimeout(b,a))},af="That Supabase project is no longer watched, or its token can't be read.",ag="This project is paused. Restore it first, then add SQL access.",ah=new Set([{code:"28P01"},{code:"08006"},{code:"CONNECT_TIMEOUT"}].map(Y.E));function ai(a){if("scope"===a.kind){let b;return b=a.missing??["database_write"],`This project's token can't set the role up (missing ${b.join(", ")}). It needs Database: Read-write and Connection pooling: Read; replace the token on Connections, or create the role by hand below.`}return a.error}async function aj(a,b=ae){if(!(0,n.f)(a))return{can:!1,reason:"other",error:"Something in that request wasn't valid."};let c=await b.target(a);return c?c.paused?{can:!1,reason:"other",error:ag}:b.access(c.token,c.ref):{can:!1,reason:"other",error:af}}async function ak(a,b,c=ae){if(!(0,n.f)(a))return{ok:!1,error:"Something in that request wasn't valid."};let d=await c.target(a);if(!d)return{ok:!1,error:af};if(d.paused)return{ok:!1,error:ag};let e=await c.pooler(d.token,d.ref);if(!e.ok)return{ok:!1,error:ai(e)};let f=c.password(),g=function(a,b,c){if(!Z.k.test(b))return{ok:!1,error:"This project's ref doesn't look right."};if(!$.test(c))return{ok:!1,error:"The generated password isn't valid."};let d=a.filter(a=>!a.database_type||"PRIMARY"===a.database_type),e=d.map(a=>(a.db_host??"").toLowerCase()).find(a=>Z.J.test(a));if(!e)return{ok:!1,error:"This project has no shared Supavisor pooler host (…pooler.supabase.com). Use the manual steps."};let f=d.find(a=>a.db_name&&/^[A-Za-z_][A-Za-z0-9_]{0,62}$/.test(a.db_name))?.db_name??"postgres";return{ok:!0,dsn:`postgresql://${X}.${b}:${encodeURIComponent(c)}@${e}:6543/${f}?sslmode=require`}}(e.data,d.ref,f);if(!g.ok)return{ok:!1,error:g.error};let h=await c.alias(a),i={kind:"err",message:`SQL access automatic setup failed \xb7 ${h}`,resourceId:a},j=async()=>(await c.run(d.token,d.ref,ab(ac),!1)).ok,k=await c.run(d.token,d.ref,ab(function(a){if(!aa.test(a))throw Error("bad verifier");return[`if not exists (select 1 from pg_catalog.pg_roles where rolname = '${X}') then create role ${X} login password '${a}'; else alter role ${X} with login password '${a}'; end if;`,`alter role ${X} set default_transaction_read_only = on;`,`alter role ${X} set statement_timeout = '5s';`,`grant connect on database postgres to ${X};`,`grant usage on schema public to ${X};`,`grant select on all tables in schema public to ${X};`,`alter default privileges for role postgres in schema public grant select on tables to ${X};`,`begin grant pg_read_all_stats to ${X}; exception when others then null; end;`]}(c.verifier(f))),!1);if(!k.ok){if("transient"===k.kind&&void 0===k.status){let a=await j();return{ok:!1,error:`${k.error} ${a?"Any grants it may have given were revoked.":`Check the ${X} role in the Supabase SQL Editor.`}`,audit:i}}return{ok:!1,error:ai(k),audit:i}}let l={ok:!1,error:"Not checked."};for(let d=0;d<3&&(d>0&&await c.sleep(2e3),!(l=await c.save(a,g.dsn,b)).ok&&ah.has(l.error));d++);if(!l.ok){let a=await j();return{ok:!1,error:`The new role didn't pass the read-only check, so nothing was saved: ${l.error} ${a?`Its grants were revoked and its login turned off (the role ${X} stays; nothing was dropped).`:`Revoking its grants failed too: run "revoke all on all tables in schema public from ${X}; alter role ${X} nologin;" in the Supabase SQL Editor.`}`,audit:i}}return{ok:!0,message:`SQL access created for ${h}: read-only role ${X} checked and saved.`,audit:{kind:"ok",message:`SQL access created automatically for ${h} (read-only role ${X})`,resourceId:a}}}var al=a.i(75105),am=a.i(312573),an=a.i(323878),ao=a.i(530175),ap=a.i(713095);let aq={requireActionMember:e.g};async function ar(a,b){if(a)try{await (0,f.f)({kind:a.kind,message:a.message,detail:a.detail,resourceId:a.resourceId,actorUserId:b.userId})}catch{console.warn("audit event failed")}}let as=(a,b,c)=>async()=>{let d=await (0,an.C)(a,b.id);return d.allowed?null:`Too many ${c}. Try again in ${(0,am.H)(d.retryAfter)}.`};async function at(a,b,c){return(0,d.F)("owner",async d=>{if(!(0,n.f)(a)||"boolean"!=typeof c)return{ok:!1,error:al.w};let e=(0,ao.E)(b);if(!e.ok)return{ok:!1,error:e.error,fieldErrors:{sql:e.error}};let f=await (0,ad.A)(a,e.text,c,as(am.t.sqlRun,d,"runs"));if(await ar(f.audit,d),!f.ok)return{ok:!1,error:f.error,...f.needsWake?{data:{needsWake:!0}}:{}};let{columns:g,rows:h,rowCount:i,truncated:j,durationMs:k}=f.result;return{ok:!0,data:{run:{columns:g,rows:h,rowCount:i,truncated:j,durationMs:k}}}},aq)}async function au(a,b){if(!a.ok)return{ok:!1,error:a.error,..."needsWake"in a&&a.needsWake?{data:{needsWake:!0}}:{}};if(a.audit)try{await (0,f.f)({kind:"ok",...a.audit,actorUserId:b.userId})}catch{console.warn("audit event failed")}return(0,c.refresh)(),{ok:!0,message:a.message}}async function av(a,b,c){return(0,d.F)("owner",async d=>{if(!(0,n.f)(a)||"string"!=typeof b||"boolean"!=typeof c)return{ok:!1,error:al.w};if(!b.trim())return{ok:!1,error:"Paste a connection string.",fieldErrors:{dsn:"Paste a connection string."}};let e=await as(am.t.credential,d,"connection tests")();return e?{ok:!1,error:e}:au(await (0,ad.o)(a,b,c,d.userId),d)},aq)}async function aw(a){return(0,d.F)("owner",async b=>{if(!(0,n.f)(a))return{ok:!1,error:al.w};let c=await as(am.t.credential,b,"connection tests")();return c?{ok:!1,error:c}:{ok:!0,data:await aj(a)}},aq)}async function ax(a){return(0,d.F)("owner",async b=>{if(!(0,n.f)(a))return{ok:!1,error:al.w};let d=await (0,P.q)(b.id,"sql-auto",a);if(d)return{ok:!1,error:d};let e=await ak(a,b.userId);if(e.audit)try{await (0,f.f)({kind:e.audit.kind,message:e.audit.message,resourceId:e.audit.resourceId,actorUserId:b.userId})}catch{console.warn("audit event failed")}return e.ok?((0,c.refresh)(),{ok:!0,message:e.message}):{ok:!1,error:e.error}},aq)}async function ay(a){return(0,d.F)("owner",async b=>{if(!(0,n.f)(a))return{ok:!1,error:al.w};let c=await as(am.t.monitorWrite,b,"changes")();return c?{ok:!1,error:c}:au(await (0,ad.y)(a),b)},aq)}async function az(a){return(0,d.F)("owner",async b=>{if(!(0,n.f)(a))return{ok:!1,error:al.w};let c=await as(am.t.firestoreQuery,b,"Firestore queries")();if(c)return{ok:!1,error:c};let d=await N(a);return d.ok?{ok:!0,data:{collections:d.ids,more:d.more}}:{ok:!1,error:d.error}},aq)}async function aA(a,b){return(0,d.F)("owner",async c=>{if(!(0,n.f)(a))return{ok:!1,error:al.w};let d=await O(a,b,as(am.t.firestoreQuery,c,"Firestore queries"));return await ar(d.audit,c),d.ok?{ok:!0,data:{run:d.result}}:{ok:!1,error:d.error}},aq)}(0,ap.ensureServerEntryExports)([at,av,aw,ax,ay,az,aA]),(0,b.registerServerReference)(at,"70855ed3c422861a9a710fac0f9a7da6b222491517",null),(0,b.registerServerReference)(av,"70d672ee391b3883d092a2ab5848e0779b0b3aebda",null),(0,b.registerServerReference)(aw,"40f9247183d83cbe3553a55e3b51ea56a7fe26bf35",null),(0,b.registerServerReference)(ax,"400031faa26cb3d5f578f49e4d707b5af821503220",null),(0,b.registerServerReference)(ay,"40e7d5aea933aaf0d3b673e487d23161f13193978d",null),(0,b.registerServerReference)(az,"40656a94b15c91b20a4bbb92bdfe2fd03edf47e960",null),(0,b.registerServerReference)(aA,"60dbfcf4aa0fe7c9746ad6f8056f8021de2b191d41",null),a.s(["u",0,ax,"o",0,ay,"L",0,az,"n",0,aA,"S",0,at,"$",0,av,"M",0,aw],719825)}];
|
|
6
6
|
|
|
7
7
|
//# sourceMappingURL=src_app_%28console%29_sql_actions_ts_1oqco02hw-3vp._.js.map
|
|
@@ -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)("40c4e43fce53f423d0e7305269e39b72b97be4c9e7",j.callServer,void 0,j.findSourceMapURL,"deleteMetricsKey"),l=(0,j.createServerReference)("70373ebf1b3c56b299303a54e318cf1a0e0f2a3947",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("Watchbell didn't answer. Check that it's still running, then 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)("608171e37500c5cb285ff50f95c8d7975d98a1a71a",m.callServer,void 0,m.findSourceMapURL,"checkServicesAction"),o=(0,m.createServerReference)("6053b1877d8c2fff35d1015c2cf99b75b934dd9e64",m.callServer,void 0,m.findSourceMapURL,"pauseAction"),p=(0,m.createServerReference)("605f5acf249ee4a0d48c8250ca95061b146d1c63b0",m.callServer,void 0,m.findSourceMapURL,"restoreAction"),q=(0,m.createServerReference)("60fb27d85be3269221d0769ecab06b528ba42a4467",m.callServer,void 0,m.findSourceMapURL,"setAutoRestore"),r=(0,m.createServerReference)("606f05605455e3ffd047972dd4aa1feba01777ac5c",m.callServer,void 0,m.findSourceMapURL,"setKeepActive");var s=a.i(28358);function t({alias:a,account:g,choices:j}){let[k,m]=(0,d.useState)(!1),[n,p]=(0,d.useState)(j.at(-1)?.id??""),[q,r]=(0,d.useTransition)(),s=(0,f.useMask)();(0,i.useHoldRefresh)(k);let u=j.find(a=>a.id===n);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:n===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=>s("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 o(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("Watchbell didn't answer. Check that it's still running, then try again.")}})},children:q?"Working…":"Pause selected"})]})]})]})}let u={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:f,label:g,metrics:h,dashboard:i=!0}){let{open:l,dialog:m}=(0,j.W)(),[p,q]=(0,d.useState)(!1);return(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(k.RowMenu,{label:g,items:[...i?[{label:"Open in Supabase",href:`https://supabase.com/dashboard/project/${encodeURIComponent(c)}`}]:[],{label:"Check services",onSelect:()=>{let b;return b=e.c.loading(`Checking ${f}'s services…`),void n(a,c).then(a=>a.ok?e.c.success(`${f}: services healthy`,{id:b,description:a.message}):e.c.error(`${f}: services`,{id:b,description:a.error})).catch(()=>e.c.error("Watchbell didn't answer. Check that it's still running, then try again.",{id:b}))}},...h?[{label:h.hasKey?"Replace metrics key":"Add metrics key",onSelect:()=>q(!0)}]:[],"---",{label:"Pause project",danger:!0,onSelect:()=>l({title:`Pause ${f}?`,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 ${f}. It takes about 2 minutes.`,a=>a.ok?{ok:!0,message:b}:a)(await o(a,c))}})}]}),m,h&&(0,b.jsx)(s.MetricsKeyDialog,{id:a,projectRef:c,alias:f,hasKey:h.hasKey,open:p,onOpenChange:q})]})},"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?r:q)(a,f);if(!b.ok){k(j),e.c.error(b.error);return}e.c.success("Keep active saved",{description:u[d](c,f)})}catch{k(j),e.c.error("Watchbell didn't answer. Check that it's still running, then 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 p(a,c);return b.ok?{ok:!0,message:`Restoring ${d}. It takes about 2 minutes.`}:{ok:!1,message:b.error}}}):(0,b.jsx)(t,{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)("40a4648c60d28bb1491b7dcde7122cea6b1fe4ae6a",j.callServer,void 0,j.findSourceMapURL,"deleteMetricsKey"),l=(0,j.createServerReference)("7072a83be0a679d0ab6c74d1df4cf9cad7233b07fa",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("Watchbell didn't answer. Check that it's still running, then 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)("60e720b75d66defd3a08b803242dba7571f7b88e88",m.callServer,void 0,m.findSourceMapURL,"checkServicesAction"),o=(0,m.createServerReference)("60c1c1b895d6e10e5f490136e6eb73d14d03ceb609",m.callServer,void 0,m.findSourceMapURL,"pauseAction"),p=(0,m.createServerReference)("60219d84741eb3cd2f55b09aa712979e77d25768e7",m.callServer,void 0,m.findSourceMapURL,"restoreAction"),q=(0,m.createServerReference)("603eb3f27494f712f1bff001cf0cfbb02add147eca",m.callServer,void 0,m.findSourceMapURL,"setAutoRestore"),r=(0,m.createServerReference)("600650c70421c607b22cd865cbdfd825b37bea6017",m.callServer,void 0,m.findSourceMapURL,"setKeepActive");var s=a.i(28358);function t({alias:a,account:g,choices:j}){let[k,m]=(0,d.useState)(!1),[n,p]=(0,d.useState)(j.at(-1)?.id??""),[q,r]=(0,d.useTransition)(),s=(0,f.useMask)();(0,i.useHoldRefresh)(k);let u=j.find(a=>a.id===n);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:n===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=>s("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 o(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("Watchbell didn't answer. Check that it's still running, then try again.")}})},children:q?"Working…":"Pause selected"})]})]})]})}let u={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:f,label:g,metrics:h,dashboard:i=!0}){let{open:l,dialog:m}=(0,j.W)(),[p,q]=(0,d.useState)(!1);return(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(k.RowMenu,{label:g,items:[...i?[{label:"Open in Supabase",href:`https://supabase.com/dashboard/project/${encodeURIComponent(c)}`}]:[],{label:"Check services",onSelect:()=>{let b;return b=e.c.loading(`Checking ${f}'s services…`),void n(a,c).then(a=>a.ok?e.c.success(`${f}: services healthy`,{id:b,description:a.message}):e.c.error(`${f}: services`,{id:b,description:a.error})).catch(()=>e.c.error("Watchbell didn't answer. Check that it's still running, then try again.",{id:b}))}},...h?[{label:h.hasKey?"Replace metrics key":"Add metrics key",onSelect:()=>q(!0)}]:[],"---",{label:"Pause project",danger:!0,onSelect:()=>l({title:`Pause ${f}?`,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 ${f}. It takes about 2 minutes.`,a=>a.ok?{ok:!0,message:b}:a)(await o(a,c))}})}]}),m,h&&(0,b.jsx)(s.MetricsKeyDialog,{id:a,projectRef:c,alias:f,hasKey:h.hasKey,open:p,onOpenChange:q})]})},"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?r:q)(a,f);if(!b.ok){k(j),e.c.error(b.error);return}e.c.success("Keep active saved",{description:u[d](c,f)})}catch{k(j),e.c.error("Watchbell didn't answer. Check that it's still running, then 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 p(a,c);return b.ok?{ok:!0,message:`Restoring ${d}. It takes about 2 minutes.`}:{ok:!1,message:b.error}}}):(0,b.jsx)(t,{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,"009fe5a55a4b622bd0a6428c30c0eebbaf306f925c",null),(0,b.registerServerReference)(t,"00b2ec98dfd5226839cc26dbccff17db502d9b9b05",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
|
-
(()=>{"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)("40dcd024fbf0c7841a651ab0572394b17f750e2633",m.callServer,void 0,m.findSourceMapURL,"addWindow"),o=(0,m.createServerReference)("6032e9ec4f907a165588a372f4ac3359ab7a366a88",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)("4068be1b87bdd6631eddacec8dba1439d8fbec3efb",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)("60650a072f60efed81c3c4833ef9542033cb1da121",k.callServer,void 0,k.findSourceMapURL,"addHeartbeat"),m=(0,k.createServerReference)("60a916ba5e15ee168e48fd323ff9314e894f7d57f7",k.callServer,void 0,k.findSourceMapURL,"addMonitor"),n=(0,k.createServerReference)("60ce54b293ac7e3ab5018830c2f14488da8efb6e80",k.callServer,void 0,k.findSourceMapURL,"editHeartbeat"),o=(0,k.createServerReference)("60d8bb33f9e1121c6d26cf0c1f27ccf0a526035d2a",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.jsxs)("span",{className:"inline-flex items-center gap-2",children:[(0,b.jsx)(f.K,{variant:"primary",disabled:!0,children:"Add monitor"}),(0,b.jsx)("span",{className:"text-[12.5px] text-ink-faint",children:"Watch an app first: Connections, then Sync."})]}):(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)("4013ff3ce1a8040fc11d3024f4caa47193e38a0744",h.callServer,void 0,h.findSourceMapURL,"checkNow"),j=(0,h.createServerReference)("401f8ed372a610b9fdb16728951317faf1f09bcb10",h.callServer,void 0,h.findSourceMapURL,"newPingUrl"),k=(0,h.createServerReference)("60ea68310b2ab8936ea6389bad2cef38ab8a818bdf",h.callServer,void 0,h.findSourceMapURL,"pauseMonitor"),l=(0,h.createServerReference)("60ad82449d52336fa55d24417fd32564fdfc6e35da",h.callServer,void 0,h.findSourceMapURL,"recordTestPingAction"),m=(0,h.createServerReference)("409736e5001a6fc7aaa3ce5bc56f5cdfba93361d41",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("Watchbell didn't answer. Check that it's still running, then 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)("40d2fe77bffafc290224ab85280eee18170cc16d9b",m.callServer,void 0,m.findSourceMapURL,"addWindow"),o=(0,m.createServerReference)("603eb5a87e1a20ef3abcad4342470a6992781fc38b",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)("40125b849b419ffdc41971aae56dec1e41fb94b896",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)("60189c84d4b272b4dd9644a63fc47b6edb3919f9b5",k.callServer,void 0,k.findSourceMapURL,"addHeartbeat"),m=(0,k.createServerReference)("600ef5a170e41848ac11c0112d7f5c0f032859a641",k.callServer,void 0,k.findSourceMapURL,"addMonitor"),n=(0,k.createServerReference)("602eb595a61683220c689aa664d55cc826b40e1da9",k.callServer,void 0,k.findSourceMapURL,"editHeartbeat"),o=(0,k.createServerReference)("606d8d80afa74fa6b414e98729168622e9b6b2abfa",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.jsxs)("span",{className:"inline-flex items-center gap-2",children:[(0,b.jsx)(f.K,{variant:"primary",disabled:!0,children:"Add monitor"}),(0,b.jsx)("span",{className:"text-[12.5px] text-ink-faint",children:"Watch an app first: Connections, then Sync."})]}):(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)("40bdd41fce85dce472e32367f2d409f315937a843d",h.callServer,void 0,h.findSourceMapURL,"checkNow"),j=(0,h.createServerReference)("4095dad3dd3c55ade3cdfdaf3eb86797df6667ad79",h.callServer,void 0,h.findSourceMapURL,"newPingUrl"),k=(0,h.createServerReference)("60b47e03f4cb52e439708ea31ac94249d500ae3056",h.callServer,void 0,h.findSourceMapURL,"pauseMonitor"),l=(0,h.createServerReference)("607974134e5bb197ba0af9063d285b04a33a630a24",h.callServer,void 0,h.findSourceMapURL,"recordTestPingAction"),m=(0,h.createServerReference)("409b6668a310d58a3f7d82b875d708316e0f57cfbe",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("Watchbell didn't answer. Check that it's still running, then 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(858806),f=a.i(322145),g=a.i(93321),h=a.i(530385),i=a.i(548734),j=a.i(837137),k=a.i(930270),l=a.i(589856);let m={async deployment(a,b){let[c]=await (0,i.f)().select({commitSha:j.deployments.commitSha,createdAt:j.deployments.createdAtProvider}).from(j.deployments).where((0,g.b)((0,g.u)(j.deployments.resourceId,a),(0,g.u)(j.deployments.externalId,b),(0,g.u)(j.deployments.target,"production"))).limit(1);return c??null},async previous(a,b){let[c]=await (0,i.f)().select({commitSha:j.deployments.commitSha}).from(j.deployments).where((0,g.b)((0,g.u)(j.deployments.resourceId,a),(0,g.u)(j.deployments.target,"production"),(0,g.u)(j.deployments.state,"ready"),(0,g.E)(j.deployments.commitSha),(0,g.S)(j.deployments.createdAtProvider,b))).orderBy((0,h.A)(j.deployments.createdAtProvider)).limit(1);return c?.commitSha?{commitSha:c.commitSha}:null},async repo(a){let[b]=await (0,i.f)().select({fullName:j.githubRepos.fullName}).from(j.appRepos).innerJoin(j.githubRepos,(0,g.u)(j.githubRepos.id,j.appRepos.repoId)).where((0,g.u)(j.appRepos.appId,a)).limit(1);return b??null},async githubToken(){let a=await (0,k.M)();return"token"in a?a.token:null},compare:(a,b,c,d)=>(0,l.e)(a,b,c,d)},n=(a,b,c)=>({from:a,to:b,commits:[],total:0,cut:!1,note:c});async function o(a,b,c=m){let d=await c.deployment(a,b);if(!d)return{ok:!1,error:"That deployment isn't a production deployment of this app."};if(!d.commitSha)return{ok:!0,data:n(null,"","This deployment wasn't built from a Git commit.")};let e=await c.previous(a,d.createdAt);if(!e)return{ok:!0,data:n(null,d.commitSha,"This is the first production deployment the console has seen.")};if(e.commitSha===d.commitSha)return{ok:!0,data:n(e.commitSha,d.commitSha,"Same commit as the previous production deployment (a redeploy).")};let f=await c.repo(a);if(!f)return{ok:!1,error:"Link a repository to see what changed."};let g=await c.githubToken();if(!g)return{ok:!1,error:"GitHub isn't connected, or its token can't be read."};let h=await c.compare(g,f.fullName,e.commitSha,d.commitSha);return h.ok?{ok:!0,data:{from:e.commitSha,to:d.commitSha,commits:h.data.commits.slice(0,50),total:h.data.total,cut:h.data.total>50||h.data.commits.length>50,note:null}}:{ok:!1,error:"missing"===h.kind?"GitHub can't compare these commits (the history may have been rewritten).":`Couldn't read the commits: ${h.error}`}}var p=a.i(915598),q=a.i(534908),r=a.i(683439),s=a.i(75105),t=a.i(572134),u=a.i(288666);let v={truncated:!1,lines:[{at:null,kind:"delimiter",text:"Running build in Washington, D.C., USA (East) – iad1"},{at:null,kind:"stdout",text:"Cloning github.com/example/shop (Branch: main, Commit: 4f2a9c1)"},{at:null,kind:"command",text:"npm install"},{at:null,kind:"stdout",text:"added 412 packages in 18s"},{at:null,kind:"command",text:"npm run build"},{at:null,kind:"stdout",text:"> next build"},{at:null,kind:"stdout",text:" ▲ Next.js 16.4.1"},{at:null,kind:"stdout",text:" Creating an optimized production build ..."},{at:null,kind:"stderr",text:"Failed to compile."},{at:null,kind:"stderr",text:"./app/checkout/page.tsx:12:7"},{at:null,kind:"stderr",text:"Type error: Property 'total' does not exist on type 'Cart'."},{at:null,kind:"stderr",text:'Error: Command "npm run build" exited with 1'}]},w={text:"The checkout page reads cart.total, but the Cart type has no total field.\nFix: add total to Cart in types/cart.ts, or compute it from the items where the page needs it.\nFile: app/checkout/page.tsx, line 12.",model:"demo"},x=["stdout","stderr","command","delimiter"],y=/\u001b\[[0-9;?]*[A-Za-z]/g,z=a=>a&&"object"==typeof a&&!Array.isArray(a)?a:null;async function A(a,b,c,d={}){let e=new URLSearchParams({teamId:b,builds:"1",direction:"backward",limit:String(2e3)}),f=await (0,u.R)("Vercel",`https://api.vercel.com/v3/deployments/${encodeURIComponent(c)}/events?${e}`,{token:a},{timeoutMs:1e4,...d});if(!f.ok)return f;let g=function(a){if(!Array.isArray(a))return null;let b=[];for(let c of a){let a=z(c);if(!a||!x.includes(a.type))continue;let d=z(a.payload),e="string"==typeof d?.text?d.text:"string"==typeof a.text?a.text:null;if(null===e)continue;let f="number"==typeof a.created?a.created:"number"==typeof d?.date?d.date:null,g=e.replace(y,"").replace(/\r/g,"").split("\n");for(let c of(g.length>1&&""===g.at(-1)&&g.pop(),g))b.push({at:f,kind:a.type,text:c})}return b}(f.data);if(!g||!Array.isArray(f.data))return(0,u.t)("Vercel","the build log");let h=function(a,b=2e3){return a.length>b?{lines:a.slice(a.length-b),truncated:!0}:{lines:a,truncated:!1}}(g.every(a=>null!==a.at)?g.map((a,b)=>({l:a,i:b})).sort((a,b)=>a.l.at-b.l.at||a.i-b.i).map(a=>a.l):[...g].reverse());return{ok:!0,data:{lines:h.lines,truncated:h.truncated||f.data.length>=2e3}}}var B=a.i(657582),C=a.i(86539),D=a.i(713095);let E={requireActionMember:d.g};async function F(a,b){return(0,c.F)("operator",async c=>(0,r.f)(a)&&"string"==typeof b&&p.T.test(b)?(0,p.B)(c,a,b):{ok:!1,error:s.w},E)}async function G(a){return(0,c.F)("operator",async b=>{if(!(0,r.f)(a))return{ok:!1,error:s.w};let c=await (0,e.R)(a);return c?(0,p.B)(b,a,c):{ok:!1,error:"No current production deployment"}},E)}async function H(a,b){return(0,c.F)("operator",async()=>{if(!(0,r.f)(a)||"string"!=typeof b||!p.T.test(b)||!await (0,e.C)(a,b))return{ok:!1,error:s.w};let c=await (0,f.p)(a,"app"),d=c?.resource.meta.teamId;if(!c||"string"!=typeof d||!d)return{ok:!1,error:p.u};let g=await A(c.token,d,b);return g.ok?{ok:!0,data:g.data}:{ok:!1,error:`Couldn't read the build log: ${g.error}`}},E,async()=>({ok:!0,data:v}))}let I=new Set;async function J(a,b){return(0,c.F)("owner",async c=>{if(!(0,r.f)(a)||"string"!=typeof b||!p.T.test(b))return{ok:!1,error:s.w};let d=q.extensions.explainBuild;if(!d)return{ok:!1,error:"Explain with AI needs the AI gateway."};let g=await (0,e.p)(a,b);if(!g)return{ok:!1,error:s.w};if("error"!==g)return{ok:!1,error:"Only a failed build can be explained."};let h=await (0,f.p)(a,"app"),i=h?.resource.meta.teamId;if(!h||"string"!=typeof i||!i)return{ok:!1,error:p.u};let j=await A(h.token,i,b);if(!j.ok)return{ok:!1,error:`Couldn't read the build log: ${j.error}`};let k=`${c.id}:${b}`;if(I.has(k))return{ok:!1,error:"That build is already being explained. Try again in a moment."};I.add(k);try{let a=await d({app:h.resource.name,lines:j.data.lines,memberId:c.id});return a.ok?{ok:!0,data:{text:a.text,model:a.model}}:{ok:!1,error:a.error}}finally{I.delete(k)}},E,async()=>({ok:!0,data:w}))}async function K(a,b){return(0,c.F)("operator",async()=>{if(!(0,r.f)(a)||"string"!=typeof b||!p.T.test(b))return{ok:!1,error:s.w};let c=await o(a,b);return c.ok?{ok:!0,data:c.data}:{ok:!1,error:c.error}},E,async()=>({ok:!0,data:C.T}))}async function L(a,b){return(0,c.F)("operator",async c=>(0,r.f)(a)&&"string"==typeof b&&p.T.test(b)?(0,p.U)(c,a,b):{ok:!1,error:s.w},E)}async function M(a,b){return(0,c.F)("operator",async c=>{if(!(0,r.f)(a)||"string"!=typeof b||!p.T.test(b))return{ok:!1,error:s.w};let d=await (0,p.p)(c,"promote",a);if("string"==typeof d)return(0,f.W)((0,p.O)(d),c,"");let e=await (0,p.X)(d);if(!e.ok)return(0,f.W)((0,p.O)(e.error),c,d.t.account.id);if(e.data.currentId===b)return(0,f.W)((0,p.O)(p.f),c,d.t.account.id);let g=e.data.production.find(a=>a.id===b);if(!g||"staged"!==(0,B.U)(g,e.data.currentId,e.data.production))return(0,f.W)((0,p.O)(p.v),c,d.t.account.id);let h=(0,p.C)(g,b),i=await (0,t.u)(d.t.token,d.teamId,d.projectId,b);return(0,p.J)(d,i,{message:`Promoted ${h}. New pushes to ${d.app} go live again.`,audit:`Promoted \xb7 ${d.app} → ${h}`},`Promote failed \xb7 ${d.app} → ${h}`)},E)}async function N(a,b){return(0,c.F)("operator",async c=>{if(!(0,r.f)(a)||"string"!=typeof b||!p.T.test(b))return{ok:!1,error:s.w};let d=await (0,p.p)(c,"cancel",a);if("string"==typeof d)return(0,f.W)((0,p.O)(d),c,"");let e=await (0,t.S)(d.t.token,{id:d.teamId,slug:d.teamSlug,name:d.teamSlug},b);if(!e.ok)return(0,f.W)((0,p.O)(404===e.status?"Vercel can't find that build any more.":e.error),c,d.t.account.id);if(e.data.projectId!==d.projectId)return(0,f.W)((0,p.O)(s.w),c,d.t.account.id);if(!p.o.has(e.data.rawState))return(0,f.W)((0,p.O)("This build already finished."),c,d.t.account.id);let g=(0,p.C)(e.data,b),h=await (0,t.T)(d.t.token,d.teamId,b);return(0,p.J)(d,h,{message:"Build canceled. The current production deployment stays live.",audit:`Build canceled \xb7 ${d.app} \xb7 ${g}`},`Cancel failed \xb7 ${d.app} \xb7 ${g}`)},E)}async function O(a,b){return(0,c.F)("operator",async c=>{if(!(0,r.f)(a)||"string"!=typeof b||!p.T.test(b))return{ok:!1,error:s.w};let d=await (0,p.p)(c,"promote-preview",a);if("string"==typeof d)return(0,f.W)((0,p.O)(d),c,"");let e=await (0,t.S)(d.t.token,{id:d.teamId,slug:d.teamSlug,name:d.teamSlug},b);if(!e.ok)return(0,f.W)((0,p.O)(404===e.status?p.G:e.error),c,d.t.account.id);if(e.data.projectId!==d.projectId)return(0,f.W)((0,p.O)(s.w),c,d.t.account.id);if("preview"!==e.data.target||"READY"!==e.data.rawState)return(0,f.W)((0,p.O)(p.l),c,d.t.account.id);let g=await (0,p.X)(d);if(!g.ok)return(0,f.W)((0,p.O)(g.error),c,d.t.account.id);if(g.data.production.some(a=>"staged"===(0,B.U)(a,g.data.currentId,g.data.production)))return(0,f.W)((0,p.O)(p.S),c,d.t.account.id);let h=await (0,t.N)(d.t.token,d.teamId,d.projectId);if(!h.ok)return(0,f.W)((0,p.O)(h.error),c,d.t.account.id);if(h.data)return(0,f.W)((0,p.O)(`A production build of ${d.app} is already running.`),c,d.t.account.id);let i=(0,p.C)(e.data,b),j=await (0,t.l)(d.t.token,d.teamId,{projectId:d.projectId,name:g.data.name,deploymentId:b});return(0,p.J)(d,j,{message:`Promoting ${i} 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 ${i}`},`Preview promote failed \xb7 ${d.app} \xb7 ${i}`)},E)}(0,D.ensureServerEntryExports)([F,G,H,J,K,L,M,N,O]),(0,b.registerServerReference)(F,"60a20982334c43ac54b2ff6fd4c85209f9d6b6ac0f",null),(0,b.registerServerReference)(G,"40d76f8669a4c31ada2c11b627249a2c9f772d2b67",null),(0,b.registerServerReference)(H,"60d1853bc13fd990f5b6c49dc1a19e3151d3af44a7",null),(0,b.registerServerReference)(J,"60b7d362a164ec4410ee95696addb7ff611b64b467",null),(0,b.registerServerReference)(K,"60afa6d69baa013614b274a7ce4615c7819d14871a",null),(0,b.registerServerReference)(L,"60363cb2e0040463e2b28a2c5080250fae55ede48e",null),(0,b.registerServerReference)(M,"60d2b4999b2d9b5b7ebaa28ed6444a865e5461a33b",null),(0,b.registerServerReference)(N,"6068e28948c23eb5c59b2b9306456c2795dbcbb036",null),(0,b.registerServerReference)(O,"6055fd72675c60fa5f8d197da962fefae333a9e57d",null),a.s(["m",0,H,"x",0,N,"y",0,J,"j",0,M,"Y",0,O,"t",0,F,"n",0,G,"r",0,K,"d",0,L],429852)}];
|
|
1
|
+
module.exports=[429852,a=>{"use strict";var b=a.i(137936),c=a.i(600079),d=a.i(109307),e=a.i(858806),f=a.i(322145),g=a.i(93321),h=a.i(530385),i=a.i(548734),j=a.i(837137),k=a.i(930270),l=a.i(589856);let m={async deployment(a,b){let[c]=await (0,i.f)().select({commitSha:j.deployments.commitSha,createdAt:j.deployments.createdAtProvider}).from(j.deployments).where((0,g.b)((0,g.u)(j.deployments.resourceId,a),(0,g.u)(j.deployments.externalId,b),(0,g.u)(j.deployments.target,"production"))).limit(1);return c??null},async previous(a,b){let[c]=await (0,i.f)().select({commitSha:j.deployments.commitSha}).from(j.deployments).where((0,g.b)((0,g.u)(j.deployments.resourceId,a),(0,g.u)(j.deployments.target,"production"),(0,g.u)(j.deployments.state,"ready"),(0,g.E)(j.deployments.commitSha),(0,g.S)(j.deployments.createdAtProvider,b))).orderBy((0,h.A)(j.deployments.createdAtProvider)).limit(1);return c?.commitSha?{commitSha:c.commitSha}:null},async repo(a){let[b]=await (0,i.f)().select({fullName:j.githubRepos.fullName}).from(j.appRepos).innerJoin(j.githubRepos,(0,g.u)(j.githubRepos.id,j.appRepos.repoId)).where((0,g.u)(j.appRepos.appId,a)).limit(1);return b??null},async githubToken(){let a=await (0,k.M)();return"token"in a?a.token:null},compare:(a,b,c,d)=>(0,l.e)(a,b,c,d)},n=(a,b,c)=>({from:a,to:b,commits:[],total:0,cut:!1,note:c});async function o(a,b,c=m){let d=await c.deployment(a,b);if(!d)return{ok:!1,error:"That deployment isn't a production deployment of this app."};if(!d.commitSha)return{ok:!0,data:n(null,"","This deployment wasn't built from a Git commit.")};let e=await c.previous(a,d.createdAt);if(!e)return{ok:!0,data:n(null,d.commitSha,"This is the first production deployment the console has seen.")};if(e.commitSha===d.commitSha)return{ok:!0,data:n(e.commitSha,d.commitSha,"Same commit as the previous production deployment (a redeploy).")};let f=await c.repo(a);if(!f)return{ok:!1,error:"Link a repository to see what changed."};let g=await c.githubToken();if(!g)return{ok:!1,error:"GitHub isn't connected, or its token can't be read."};let h=await c.compare(g,f.fullName,e.commitSha,d.commitSha);return h.ok?{ok:!0,data:{from:e.commitSha,to:d.commitSha,commits:h.data.commits.slice(0,50),total:h.data.total,cut:h.data.total>50||h.data.commits.length>50,note:null}}:{ok:!1,error:"missing"===h.kind?"GitHub can't compare these commits (the history may have been rewritten).":`Couldn't read the commits: ${h.error}`}}var p=a.i(915598),q=a.i(534908),r=a.i(683439),s=a.i(75105),t=a.i(572134),u=a.i(288666);let v={truncated:!1,lines:[{at:null,kind:"delimiter",text:"Running build in Washington, D.C., USA (East) – iad1"},{at:null,kind:"stdout",text:"Cloning github.com/example/shop (Branch: main, Commit: 4f2a9c1)"},{at:null,kind:"command",text:"npm install"},{at:null,kind:"stdout",text:"added 412 packages in 18s"},{at:null,kind:"command",text:"npm run build"},{at:null,kind:"stdout",text:"> next build"},{at:null,kind:"stdout",text:" ▲ Next.js 16.4.1"},{at:null,kind:"stdout",text:" Creating an optimized production build ..."},{at:null,kind:"stderr",text:"Failed to compile."},{at:null,kind:"stderr",text:"./app/checkout/page.tsx:12:7"},{at:null,kind:"stderr",text:"Type error: Property 'total' does not exist on type 'Cart'."},{at:null,kind:"stderr",text:'Error: Command "npm run build" exited with 1'}]},w={text:"The checkout page reads cart.total, but the Cart type has no total field.\nFix: add total to Cart in types/cart.ts, or compute it from the items where the page needs it.\nFile: app/checkout/page.tsx, line 12.",model:"demo"},x=["stdout","stderr","command","delimiter"],y=/\u001b\[[0-9;?]*[A-Za-z]/g,z=a=>a&&"object"==typeof a&&!Array.isArray(a)?a:null;async function A(a,b,c,d={}){let e=new URLSearchParams({teamId:b,builds:"1",direction:"backward",limit:String(2e3)}),f=await (0,u.R)("Vercel",`https://api.vercel.com/v3/deployments/${encodeURIComponent(c)}/events?${e}`,{token:a},{timeoutMs:1e4,...d});if(!f.ok)return f;let g=function(a){if(!Array.isArray(a))return null;let b=[];for(let c of a){let a=z(c);if(!a||!x.includes(a.type))continue;let d=z(a.payload),e="string"==typeof d?.text?d.text:"string"==typeof a.text?a.text:null;if(null===e)continue;let f="number"==typeof a.created?a.created:"number"==typeof d?.date?d.date:null,g=e.replace(y,"").replace(/\r/g,"").split("\n");for(let c of(g.length>1&&""===g.at(-1)&&g.pop(),g))b.push({at:f,kind:a.type,text:c})}return b}(f.data);if(!g||!Array.isArray(f.data))return(0,u.t)("Vercel","the build log");let h=function(a,b=2e3){return a.length>b?{lines:a.slice(a.length-b),truncated:!0}:{lines:a,truncated:!1}}(g.every(a=>null!==a.at)?g.map((a,b)=>({l:a,i:b})).sort((a,b)=>a.l.at-b.l.at||a.i-b.i).map(a=>a.l):[...g].reverse());return{ok:!0,data:{lines:h.lines,truncated:h.truncated||f.data.length>=2e3}}}var B=a.i(657582),C=a.i(86539),D=a.i(713095);let E={requireActionMember:d.g};async function F(a,b){return(0,c.F)("operator",async c=>(0,r.f)(a)&&"string"==typeof b&&p.T.test(b)?(0,p.B)(c,a,b):{ok:!1,error:s.w},E)}async function G(a){return(0,c.F)("operator",async b=>{if(!(0,r.f)(a))return{ok:!1,error:s.w};let c=await (0,e.R)(a);return c?(0,p.B)(b,a,c):{ok:!1,error:"No current production deployment"}},E)}async function H(a,b){return(0,c.F)("operator",async()=>{if(!(0,r.f)(a)||"string"!=typeof b||!p.T.test(b)||!await (0,e.C)(a,b))return{ok:!1,error:s.w};let c=await (0,f.p)(a,"app"),d=c?.resource.meta.teamId;if(!c||"string"!=typeof d||!d)return{ok:!1,error:p.u};let g=await A(c.token,d,b);return g.ok?{ok:!0,data:g.data}:{ok:!1,error:`Couldn't read the build log: ${g.error}`}},E,async()=>({ok:!0,data:v}))}let I=new Set;async function J(a,b){return(0,c.F)("owner",async c=>{if(!(0,r.f)(a)||"string"!=typeof b||!p.T.test(b))return{ok:!1,error:s.w};let d=q.extensions.explainBuild;if(!d)return{ok:!1,error:"Explain with AI needs the AI gateway."};let g=await (0,e.p)(a,b);if(!g)return{ok:!1,error:s.w};if("error"!==g)return{ok:!1,error:"Only a failed build can be explained."};let h=await (0,f.p)(a,"app"),i=h?.resource.meta.teamId;if(!h||"string"!=typeof i||!i)return{ok:!1,error:p.u};let j=await A(h.token,i,b);if(!j.ok)return{ok:!1,error:`Couldn't read the build log: ${j.error}`};let k=`${c.id}:${b}`;if(I.has(k))return{ok:!1,error:"That build is already being explained. Try again in a moment."};I.add(k);try{let a=await d({app:h.resource.name,lines:j.data.lines,memberId:c.id});return a.ok?{ok:!0,data:{text:a.text,model:a.model}}:{ok:!1,error:a.error}}finally{I.delete(k)}},E,async()=>({ok:!0,data:w}))}async function K(a,b){return(0,c.F)("operator",async()=>{if(!(0,r.f)(a)||"string"!=typeof b||!p.T.test(b))return{ok:!1,error:s.w};let c=await o(a,b);return c.ok?{ok:!0,data:c.data}:{ok:!1,error:c.error}},E,async()=>({ok:!0,data:C.T}))}async function L(a,b){return(0,c.F)("operator",async c=>(0,r.f)(a)&&"string"==typeof b&&p.T.test(b)?(0,p.U)(c,a,b):{ok:!1,error:s.w},E)}async function M(a,b){return(0,c.F)("operator",async c=>{if(!(0,r.f)(a)||"string"!=typeof b||!p.T.test(b))return{ok:!1,error:s.w};let d=await (0,p.p)(c,"promote",a);if("string"==typeof d)return(0,f.W)((0,p.O)(d),c,"");let e=await (0,p.X)(d);if(!e.ok)return(0,f.W)((0,p.O)(e.error),c,d.t.account.id);if(e.data.currentId===b)return(0,f.W)((0,p.O)(p.f),c,d.t.account.id);let g=e.data.production.find(a=>a.id===b);if(!g||"staged"!==(0,B.U)(g,e.data.currentId,e.data.production))return(0,f.W)((0,p.O)(p.v),c,d.t.account.id);let h=(0,p.C)(g,b),i=await (0,t.u)(d.t.token,d.teamId,d.projectId,b);return(0,p.J)(d,i,{message:`Promoted ${h}. New pushes to ${d.app} go live again.`,audit:`Promoted \xb7 ${d.app} → ${h}`},`Promote failed \xb7 ${d.app} → ${h}`)},E)}async function N(a,b){return(0,c.F)("operator",async c=>{if(!(0,r.f)(a)||"string"!=typeof b||!p.T.test(b))return{ok:!1,error:s.w};let d=await (0,p.p)(c,"cancel",a);if("string"==typeof d)return(0,f.W)((0,p.O)(d),c,"");let e=await (0,t.S)(d.t.token,{id:d.teamId,slug:d.teamSlug,name:d.teamSlug},b);if(!e.ok)return(0,f.W)((0,p.O)(404===e.status?"Vercel can't find that build any more.":e.error),c,d.t.account.id);if(e.data.projectId!==d.projectId)return(0,f.W)((0,p.O)(s.w),c,d.t.account.id);if(!p.o.has(e.data.rawState))return(0,f.W)((0,p.O)("This build already finished."),c,d.t.account.id);let g=(0,p.C)(e.data,b),h=await (0,t.T)(d.t.token,d.teamId,b);return(0,p.J)(d,h,{message:"Build canceled. The current production deployment stays live.",audit:`Build canceled \xb7 ${d.app} \xb7 ${g}`},`Cancel failed \xb7 ${d.app} \xb7 ${g}`)},E)}async function O(a,b){return(0,c.F)("operator",async c=>{if(!(0,r.f)(a)||"string"!=typeof b||!p.T.test(b))return{ok:!1,error:s.w};let d=await (0,p.p)(c,"promote-preview",a);if("string"==typeof d)return(0,f.W)((0,p.O)(d),c,"");let e=await (0,t.S)(d.t.token,{id:d.teamId,slug:d.teamSlug,name:d.teamSlug},b);if(!e.ok)return(0,f.W)((0,p.O)(404===e.status?p.G:e.error),c,d.t.account.id);if(e.data.projectId!==d.projectId)return(0,f.W)((0,p.O)(s.w),c,d.t.account.id);if("preview"!==e.data.target||"READY"!==e.data.rawState)return(0,f.W)((0,p.O)(p.l),c,d.t.account.id);let g=await (0,p.X)(d);if(!g.ok)return(0,f.W)((0,p.O)(g.error),c,d.t.account.id);if(g.data.production.some(a=>"staged"===(0,B.U)(a,g.data.currentId,g.data.production)))return(0,f.W)((0,p.O)(p.S),c,d.t.account.id);let h=await (0,t.N)(d.t.token,d.teamId,d.projectId);if(!h.ok)return(0,f.W)((0,p.O)(h.error),c,d.t.account.id);if(h.data)return(0,f.W)((0,p.O)(`A production build of ${d.app} is already running.`),c,d.t.account.id);let i=(0,p.C)(e.data,b),j=await (0,t.l)(d.t.token,d.teamId,{projectId:d.projectId,name:g.data.name,deploymentId:b});return(0,p.J)(d,j,{message:`Promoting ${i} 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 ${i}`},`Preview promote failed \xb7 ${d.app} \xb7 ${i}`)},E)}(0,D.ensureServerEntryExports)([F,G,H,J,K,L,M,N,O]),(0,b.registerServerReference)(F,"6039ee8f5be515b1c179704a7502bc1eb8427232e9",null),(0,b.registerServerReference)(G,"401a9f285e7423917501868650bd5dc963179d6e28",null),(0,b.registerServerReference)(H,"601b652c632727432a23d7d87b2fad44676f76119c",null),(0,b.registerServerReference)(J,"603a39ca361b891f07890fcc44aed4302cb46e488a",null),(0,b.registerServerReference)(K,"60ae0e10257929cf5ba61cb815591eee6059b20faf",null),(0,b.registerServerReference)(L,"604e9312735cbb643509f24bc94e1740bb2d2ae7ee",null),(0,b.registerServerReference)(M,"60ff9b1575f1296edb05f83e2766844a12005e4f6f",null),(0,b.registerServerReference)(N,"60eb82fd1c21cc597a6f8d0eec97005a558265f158",null),(0,b.registerServerReference)(O,"60086dc2c60f0d91334393d80f73b796ae9e95aeae",null),a.s(["m",0,H,"x",0,N,"y",0,J,"j",0,M,"Y",0,O,"t",0,F,"n",0,G,"r",0,K,"d",0,L],429852)}];
|
|
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)("603891c28e9d92194c6ed347933fc8f44368de397e",e.callServer,void 0,e.findSourceMapURL,"confirmMfaEnrollment"),g=(0,e.createServerReference)("00a9b365db59ef9a010831721d67aeaf021200d1b6",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),c=a.i(
|
|
1
|
+
module.exports=[779798,a=>{"use strict";var b=a.i(907997),c=a.i(592708),d=a.i(617084),e=a.i(196081);a.i(570396);var f=a.i(673727),g=a.i(800717),h=a.i(252302),i=a.i(686251),j=a.i(149396),k=a.i(470253),l=a.i(245710);async function m(){return[]}let n=(0,g.cache)(async a=>{let b=(0,k.P)(a);return b?(0,j.t)(b,new Date):null});async function o({params:a}){let b=await n((await a).slug);return{title:b?b.title:"No status page here",robots:{index:!1,follow:!1}}}function p({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)(i.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 q({params:a}){let{slug:g}=await a,[j,m]=await Promise.all([n(g),(0,e.X)().catch(()=>d.l)]);j||(0,f.notFound)();let o=(0,k.W)(j.monitors);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)(c.f,{name:(0,d.X)(m),hasLogo:m.hasLogo}),(0,b.jsxs)("div",{className:"min-w-0",children:[m.name&&(0,b.jsx)("p",{className:"m-0 text-[12.5px] font-medium text-ink-soft",children:m.name}),(0,b.jsx)("h1",{className:"text-[20px]",children:j.title}),(0,b.jsxs)("p",{className:"mt-0.5 text-ink-soft",children:["Updated every minute · times in ",(0,l.D)()]})]})]}),o&&(0,b.jsxs)("p",{className:"m-0 flex items-center gap-2 text-[17px] font-medium",role:"status",children:[(0,b.jsx)(i.Z,{state:o.state,size:20}),o.text]}),j.announcement&&(0,b.jsx)(p,{state:"info",title:j.announcement}),j.maintenance.map((a,c)=>(0,b.jsxs)(p,{state:"maint",title:a.active?"Maintenance now":"Scheduled maintenance",children:[`${a.from}–${a.to} ${(0,l.D)()}.`,a.note&&` ${a.note}`]},c)),(0,b.jsxs)("section",{className:"min-w-0 rounded-lg border border-line bg-surface",children:[0===j.monitors.length&&(0,b.jsx)("p",{className:"px-[18px] py-4 text-ink-soft",children:"No services on this page yet."}),j.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)(i.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)(h.n,{bars:a.bars.map((a,b)=>({day:String(b),tone:a.tone,title:a.title}))})})]},a.badge))]}),(0,b.jsx)("p",{className:"m-0 text-[12.5px] text-ink-faint",children:"Last 90 days. Grey means no data, blue means maintenance (not counted)."}),m.name&&m.poweredBy&&(0,b.jsx)("p",{className:"m-0 text-[11.5px] text-ink-faint",children:"Powered by Watchbell"})]})}a.s(["default",0,q,"dynamicParams",0,!0,"generateMetadata",0,o,"generateStaticParams",0,m,"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
|