watchbell 1.6.1 → 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/{_1vlm9990gr64r._.js → _0kq3wqx86yyhb._.js} +2 -2
- package/server/.next/server/chunks/ssr/{_0c9_fa5ejth12._.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/{_18sg0ilz439y6._.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/{_0fl2-fao_ye7t._.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/{_19q2vj_ppgsu4._.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)_0ohoun7l5f2tb._.js → src_app_(console)_03s-e0b0zsqqr._.js} +2 -2
- package/server/.next/server/chunks/ssr/{src_app_(console)_0krr6t05xs2tn._.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_148phfjye0539._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_uptime_1mnnkfi-2zv-k._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_vercel-actions_ts_0wpk1yo9v632d._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_mfa_setup_setup-flow_tsx_1fpwygr2vdgnh._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_s_[slug]_page_tsx_0jjqe6py82mpb._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_setup_setup-form_tsx_0izoagdur96e1._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_signin_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/05c15dcfh7cxm.js +1 -0
- package/server/.next/static/chunks/{2-uaya1_uxlg8.js → 07_cb192ydsaj.js} +1 -1
- package/server/.next/static/chunks/{1c9eb592ho0-l.js → 0_xoojw9q_nof.js} +1 -1
- package/server/.next/static/chunks/{1truzt17f0fce.js → 0a9mqrzg8420n.js} +1 -1
- package/server/.next/static/chunks/{0mbt6eam4qr2f.js → 0dn6fty1ilg-n.js} +1 -1
- package/server/.next/static/chunks/{0dq-2wtk0h5u7.js → 0gxxyq5l_0rp2.js} +1 -1
- package/server/.next/static/chunks/0s00_-em3cj00.js +1 -0
- package/server/.next/static/chunks/{3m3vl3n5xs039.js → 0valedxcn7j8k.js} +2 -2
- package/server/.next/static/chunks/{2ze-y3he5_bb0.js → 0ynyx3s7s4mv7.js} +1 -1
- package/server/.next/static/chunks/{0matuoy08desx.js → 0zwq-z8jt5hpz.js} +1 -1
- package/server/.next/static/chunks/10y41_ed7ty6e.js +1 -0
- package/server/.next/static/chunks/{2-xolk9x48-v1.js → 1416wraxs5p8g.js} +1 -1
- package/server/.next/static/chunks/16gt7hkgltvf7.js +1 -0
- package/server/.next/static/chunks/{0l61-etojd65n.js → 1_uuog1-u6y0t.js} +1 -1
- package/server/.next/static/chunks/{3gmm9g54vx4w0.js → 1azdri14ocjgg.js} +11 -11
- package/server/.next/static/chunks/{3jqmm62dbykt1.js → 1cd-2y1kwqosv.js} +1 -1
- package/server/.next/static/chunks/{33_2mbxu9wufm.js → 1j_hduntj28ij.js} +1 -1
- package/server/.next/static/chunks/{1r99dm6-o5qw2.js → 1nqpnndfmw0tc.js} +1 -1
- package/server/.next/static/chunks/{3aou6xwhz8z6a.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/{2yc4qzglai5fq.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/{2am77mhkx46hz.js → 1yyigrxptb7jm.js} +2 -2
- package/server/.next/static/chunks/{0y99dm8mesqe9.js → 28_88x_e_ynaj.js} +1 -1
- package/server/.next/static/chunks/{0-o-4ilzkrd38.js → 28qjoy38cp5by.js} +1 -1
- package/server/.next/static/chunks/{2fvh4wg2kp4c2.js → 2azwg3my8wh40.js} +1 -1
- package/server/.next/static/chunks/2co8kv2tj776w.js +1 -0
- package/server/.next/static/chunks/{0ey7akdab5tu8.js → 2db0smm21dva_.js} +1 -1
- package/server/.next/static/chunks/{0v97o46v-74gw.js → 2gk24b05q4q57.js} +1 -1
- package/server/.next/static/chunks/{1935vuszybg7i.js → 2i5_2zcei6rqr.js} +1 -1
- package/server/.next/static/chunks/2jflssspiz3-i.js +1 -0
- package/server/.next/static/chunks/{01euc4zjlprz5.js → 2n198u7xx1koh.js} +1 -1
- package/server/.next/static/chunks/{3gkm-ynu4fq5u.js → 2sr03gtef27q0.js} +1 -1
- package/server/.next/static/chunks/{02kly5fiyvt77.js → 2txgb9zusks-w.js} +1 -1
- package/server/.next/static/chunks/{2m8-ctreu-y-r.js → 3-789qaoce7ff.js} +1 -1
- package/server/.next/static/chunks/3-us-wg44ohoc.js +1 -0
- package/server/.next/static/chunks/{2szchf79vnxgd.js → 31fs88f_h861n.js} +1 -1
- package/server/.next/static/chunks/36ykgce0otv4r.css +3 -0
- package/server/.next/static/chunks/{22ygzud_kp29f.js → 378ttzg87hows.js} +1 -1
- package/server/.next/static/chunks/{0xz55932e19r8.js → 3aglnkhgcl_kq.js} +1 -1
- package/server/.next/static/chunks/{0ge2nkna7o16p.js → 3bvj3-0xltkjo.js} +1 -1
- package/server/.next/static/chunks/{3e-0ejqqa7jwn.js → 3cti7pgg_jjlx.js} +1 -1
- package/server/.next/static/chunks/{0xlfzxnboj4f1.js → 3dktq-qmj2q5b.js} +1 -1
- package/server/.next/static/chunks/{3ursfc8kxp2ak.js → 3ic7ri5b4ifjp.js} +2 -2
- package/server/.next/static/chunks/{1pogexbz36ij8.js → 3ic9vbadne9of.js} +1 -1
- package/server/.next/static/chunks/{3dk6a5gl9glxo.js → 3lw5n6yzs0665.js} +1 -1
- package/server/.next/static/chunks/3mgd5b39ghc-w.js +1 -0
- package/server/.next/static/chunks/{1u8mo8jflotrt.js → 3n98m8tj20wcf.js} +1 -1
- package/server/.next/static/chunks/{2p8bv7d7t08z1.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_signin_12a3ifphkkcs7._.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/028g933xfv8jn.js +0 -1
- package/server/.next/static/chunks/0utjdzwgd7zw2.js +0 -1
- package/server/.next/static/chunks/1sa-1lde5_ikt.js +0 -1
- package/server/.next/static/chunks/1uk98c6r9i2bn.js +0 -1
- package/server/.next/static/chunks/2zzk4wxiacgja.css +0 -3
- package/server/.next/static/chunks/33avmrae70_xs.js +0 -1
- package/server/.next/static/chunks/363mcu9nd9znh.js +0 -1
- package/server/.next/static/chunks/3bwwwv3sp7uyn.js +0 -1
- package/server/.next/static/chunks/3lvz18snt6489.js +0 -1
- package/server/.next/static/chunks/3qv9klayap1tz.js +0 -1
- package/server/.next/static/chunks/3xkvsl4vbpm41.js +0 -1
- package/server/.next/static/chunks/3yu0azvye6wr_.js +0 -1
- /package/server/.next/static/{fogXXBSOhoHV3eIf8_j28 → NUZVcU60U-vXVedu_GB0w}/_buildManifest.js +0 -0
- /package/server/.next/static/{fogXXBSOhoHV3eIf8_j28 → NUZVcU60U-vXVedu_GB0w}/_clientMiddlewareManifest.js +0 -0
- /package/server/.next/static/{fogXXBSOhoHV3eIf8_j28 → NUZVcU60U-vXVedu_GB0w}/_ssgManifest.js +0 -0
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
module.exports=[888919,a=>{"use strict";var b=a.i(903769),c=a.i(760937),d=a.i(861600),e=a.i(294965),f=a.i(598513),g=a.i(929941),h=a.i(137936),i=a.i(118558),j=a.i(600079),k=a.i(109307),l=a.i(221084),m=a.i(976937),n=a.i(972123),o=a.i(713095);async function p(a){return(0,j.F)("owner",async b=>{let c="string"==typeof a?a.trim():"";if(c&&!(0,n.g)(c))return{ok:!1,error:"Write it as owner/name, for example yourname/watchbell-actions."};await (0,m.y)(c||null);try{await (0,l.f)({kind:"ok",message:c?`Lockfile via GitHub Actions: ${c}`:"Lockfile via GitHub Actions turned off",resourceId:null,actorUserId:b.userId})}catch{console.warn("audit event failed")}return(0,i.refresh)(),{ok:!0,message:c?"Saved. New update PRs send their lockfile job to this repository.":"Turned off."}},{requireActionMember:k.g})}(0,o.ensureServerEntryExports)([p]),(0,h.registerServerReference)(p,"40660b6f4e9806c23bcf6914fc945d4067cfcd277f",null);var q=a.i(93321),r=a.i(258261),s=a.i(351674),t=a.i(548734),u=a.i(837137),v=a.i(186133),w=a.i(19809),x=a.i(492665),y=a.i(473483),z=a.i(267767),A=a.i(371289),B=a.i(221246),C=a.i(711251),D=a.i(532971),E=a.i(245618),F=a.i(245710);let G={requireActionMember:k.g};async function H(a,b,c){await (0,l.f)({kind:"ok",message:b,resourceId:null,actorUserId:a,...c?{detail:c.slice(0,500)}:{}}).catch(()=>console.warn("settings audit failed"))}async function I(a){await a.execute(s.B`select pg_advisory_xact_lock(${z.v})`)}async function J(a){let[{n:b}]=await a.select({n:(0,r.H)()}).from(u.members).where((0,q.u)(u.members.role,"owner"));return b}async function K(a,b){return(0,j.F)("owner",async a=>{let c;if((0,A.W)())return{ok:!1,error:w.Y};if("selfhost"===(0,A.c)())return{ok:!1,error:"Use Add member on this console."};let d=(await (0,t.f)().select({e:u.members.email}).from(u.members)).map(a=>a.e),e=(await (0,t.f)().select({e:u.invites.email}).from(u.invites).where((0,q.M)(u.invites.acceptedAt))).map(a=>a.e),f=(0,z.e)({email:String(b.get("email")??""),role:String(b.get("role")??"")},{memberEmails:d,openInviteEmails:e});if(!f.ok)return{ok:!1,error:"Check the highlighted fields.",fieldErrors:f.fieldErrors};let{error:g}=await (c=(0,x.f)(),(0,E.f)(c.NEXT_PUBLIC_SUPABASE_URL,c.SUPABASE_SECRET_KEY,{auth:{persistSession:!1,autoRefreshToken:!1}})).auth.admin.createUser({email:f.email,email_confirm:!0});return g&&"exists"!==(0,z.w)(g)?{ok:!1,error:"Supabase couldn't create the login for this invite. Try again."}:(await (0,t.f)().insert(u.invites).values({email:f.email,role:f.role,invitedBy:a.id,expiresAt:new Date(Date.now()+864e5*z.H)}),await H(a.userId,`Invited ${f.email} as ${f.role}`),(0,i.revalidatePath)("/settings"),{ok:!0,message:(0,z.C)(f.email,(0,x.f)().SITE_URL)})},G)}async function L(a,b){return(0,j.F)("owner",async a=>{if((0,A.W)())return{ok:!1,error:w.Y};if("selfhost"!==(0,A.c)())return{ok:!1,error:"Use Invite user on this console."};let c=(await (0,t.f)().select({e:u.members.email}).from(u.members)).map(a=>a.e),d=(await (0,t.f)().select({e:u.localUsers.email}).from(u.localUsers)).map(a=>a.e),e=(0,z.e)({email:String(b.get("email")??""),role:String(b.get("role")??"")},{memberEmails:[...c,...d],openInviteEmails:[]});if(!e.ok)return{ok:!1,error:"Check the highlighted fields.",fieldErrors:e.fieldErrors};let f=(0,y.M)(),g=await (0,y.Z)(f);try{await (0,t.f)().transaction(async b=>{let[c]=await b.insert(u.localUsers).values({email:e.email,passwordHash:g,mustChangePassword:!0,tempPasswordExpiresAt:(0,y._)()}).returning({id:u.localUsers.id});await b.insert(u.members).values({userId:c.id,email:e.email,role:e.role,invitedBy:a.id})})}catch(a){if((a?.code??a?.cause?.code)==="23505")return{ok:!1,error:"Check the highlighted fields.",fieldErrors:{email:"That person is already a member."}};throw a}return await H(a.userId,`Added ${e.email} as ${e.role}`),(0,i.revalidatePath)("/settings"),{ok:!0,message:`${e.email} was added.`,data:{email:e.email,password:f}}},G)}async function M(a,b){return(0,j.F)("owner",async c=>{if(!B.r.includes(b))return{ok:!1,error:"Pick a role."};let d=await (0,t.f)().transaction(async c=>{await I(c);let[d]=await c.select().from(u.members).where((0,q.u)(u.members.id,a)).limit(1);if(!d)return{ok:!1,error:"That member no longer exists."};let e=(0,z.n)(d,b,await J(c));return e?{ok:!1,error:e}:(await c.update(u.members).set({role:b,updatedAt:new Date}).where((0,q.u)(u.members.id,a)),{ok:!0,data:{email:d.email,from:d.role}})});return d.ok?(await H(c.userId,`Role changed: ${d.data?.email} ${d.data?.from} → ${b}`),(0,i.revalidatePath)("/settings"),{ok:!0,message:`${d.data?.email} is now ${"owner"===b?"an Owner":"operator"===b?"an Operator":"a Viewer"}.`}):{ok:!1,error:d.error}},G)}async function N(a){return(0,j.F)("owner",async b=>{let c="selfhost"===(0,A.c)(),d=await (0,t.f)().transaction(async d=>{await I(d);let[e]=await d.select().from(u.members).where((0,q.u)(u.members.id,a)).limit(1);if(!e)return{ok:!1,error:"That member no longer exists."};let f=(0,z.D)(e,b,await J(d));return f?{ok:!1,error:f}:(await d.delete(u.members).where((0,q.u)(u.members.id,a)),c&&await d.delete(u.localUsers).where((0,q.u)(u.localUsers.id,e.userId)),{ok:!0,data:{email:e.email}})});if(!d.ok||!d.data)return{ok:!1,error:d.ok?"That didn't go through, and Watchbell couldn't tell why. Try again in a moment; if it keeps failing, the server log has the details.":d.error};let{email:e}=d.data;return c?(await H(b.userId,`Removed ${e} from the console and deleted their account`),(0,i.revalidatePath)("/settings"),{ok:!0,message:`${e} can't use the console anymore. Their account and sessions are deleted.`}):(await H(b.userId,`Removed ${e} from the console`),(0,i.revalidatePath)("/settings"),{ok:!0,message:`${e} can't use the console anymore. Their Supabase login is left alone; delete it in Supabase → Authentication if you want.`})},G)}async function O(a){return(0,j.F)("owner",async b=>{let c=await (0,t.f)().delete(u.invites).where((0,q.b)((0,q.u)(u.invites.id,a),(0,q.M)(u.invites.acceptedAt))).returning({email:u.invites.email});return((0,i.revalidatePath)("/settings"),c.length)?(await H(b.userId,`Invite withdrawn: ${c[0].email}`),{ok:!0,message:`Invite for ${c[0].email} withdrawn.`}):{ok:!1,error:"That invite is already used or gone."}},G)}async function P(a){return(0,j.F)("owner",async b=>{let c=(0,D.K)(a);if(!c.ok)return{ok:!1,error:c.error,fieldErrors:c.fieldErrors};let d=await (0,v.J)(),e=(0,D.b)(d,c.value);return e?(await (0,v.A)(c.value),await H(b.userId,"Settings: retention changed",e),(0,i.revalidatePath)("/settings"),{ok:!0,message:`Retention saved. The daily job uses it from its next run (${(0,F.G)()}).`}):{ok:!0,message:"Nothing changed."}},G,"local")}async function Q(a){return(0,j.F)("owner",async b=>{let c=(0,C.R)(a);if(!c.ok)return{ok:!1,error:c.error,fieldErrors:c.fieldErrors};let d=await (0,v.j)(),e=(0,C.S)(d,c.value);return e?(await (0,v.x)(c.value),await H(b.userId,"Settings: free tier limits changed",e),(0,i.revalidatePath)("/settings"),{ok:!0,message:"Free tier limits saved."}):{ok:!0,message:"Nothing changed."}},G,"local")}async function R(){return(0,j.F)("owner",async a=>{let b=await (0,v.j)(),c=(0,C.S)(b,C.o);return c?(await (0,v.x)(C.o),await H(a.userId,"Settings: free tier limits reset",c),(0,i.revalidatePath)("/settings"),{ok:!0,message:"Free tier limits reset to the published defaults."}):{ok:!0,message:"The limits are already the published defaults."}},G,"local")}(0,o.ensureServerEntryExports)([K,L,M,N,O,P,Q,R]),(0,h.registerServerReference)(K,"60194216e29d98f9b951cefecc8b1ccf3c9d43f737",null),(0,h.registerServerReference)(L,"60906eb3c120f6d6b9a75b642e8afcadf778594271",null),(0,h.registerServerReference)(M,"604e07f53520327c0f94626d9efed7438b71d066d6",null),(0,h.registerServerReference)(N,"40470ed16bf16270d86e8030aacce34c31b9f39a82",null),(0,h.registerServerReference)(O,"40ce7f6c5672a76989fc7ccbff46541d980dc05bbc",null),(0,h.registerServerReference)(P,"40d5b6227c8fa0b0f70d638b0549dddb68b9497ee8",null),(0,h.registerServerReference)(Q,"40f7351c10b4f8b50d1972441d8f178bdfd2c536ce",null),(0,h.registerServerReference)(R,"009aec1247f9f1a543e47b94a9d7f1f3b183c2ee3b",null);var S=a.i(149396),T=a.i(470253),U=a.i(312573),V=a.i(323878);let W={requireActionMember:k.g};async function X(a){return(0,j.F)("owner",async b=>{if(!a||"object"!=typeof a)return{ok:!1,error:"Something in that request wasn't valid."};let c=(0,T.M)(a);if(!c.ok)return{ok:!1,error:"Check the highlighted fields.",fieldErrors:c.fieldErrors};let d=await (0,V.C)(U.t.monitorWrite,b.id);if(!d.allowed)return{ok:!1,error:`Too many changes. Try again in ${(0,U.H)(d.retryAfter)}.`};let e=await (0,S.i)(c.value);if(!e.ok)return{ok:!1,error:e.error};try{await (0,l.f)({kind:"ok",...e.audit,actorUserId:b.userId})}catch{console.warn("audit event failed")}return(0,i.revalidatePath)(`/s/${c.value.slug}`),e.oldSlug&&(0,i.revalidatePath)(`/s/${e.oldSlug}`),(0,i.refresh)(),{ok:!0,message:e.message}},W,"local")}(0,o.ensureServerEntryExports)([X]),(0,h.registerServerReference)(X,"40368f5bf67aa3b5e509770ad2abe7df618205e848",null),a.s(["00019977cc003ec0e864e93e49cf0bd8858654523b",()=>c.f,"003af8e20edb88a8005b0d242ed031ab373ed81cb6",()=>g.f,"003afbab64a57225b913df055d5d72e449d1e5dcc8",()=>e.E,"00908e4a017a3eb1fa932c81866de507828f461d50",()=>b.f,"009aec1247f9f1a543e47b94a9d7f1f3b183c2ee3b",0,R,"4016d3ce861458774b9b53d561910c66236b187559",()=>d.B,"40368f5bf67aa3b5e509770ad2abe7df618205e848",0,X,"4045ab0f6392cfd7a6daf21944e8bfe84e3ffee07b",()=>e.T,"40470ed16bf16270d86e8030aacce34c31b9f39a82",0,N,"4050f8ca684811ba18b6f244eab2844c454d737da1",()=>f.G,"405c14883b08fd6ec71898868cad7f8b9581740a3e",()=>d.R,"40660b6f4e9806c23bcf6914fc945d4067cfcd277f",0,p,"409f6a210626dfe6ee3783c4b081fb30b2a4eb01f5",()=>f.F,"40c128fc4b268c78f7acd9047d78cd0175bff93568",()=>e.G,"40ce7f6c5672a76989fc7ccbff46541d980dc05bbc",0,O,"40d5b6227c8fa0b0f70d638b0549dddb68b9497ee8",0,P,"40e216785c0747805fe0ad3f9df87969d68a716704",()=>f.m,"40f7351c10b4f8b50d1972441d8f178bdfd2c536ce",0,Q,"60194216e29d98f9b951cefecc8b1ccf3c9d43f737",0,K,"604e07f53520327c0f94626d9efed7438b71d066d6",0,M,"60906eb3c120f6d6b9a75b642e8afcadf778594271",0,L],888919)}];
|
|
2
|
-
|
|
3
|
-
//# sourceMappingURL=_next-internal_server_app_%28console%29_settings_page_actions_12wgjpd0lbh12.js.map
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
(()=>{"use strict";module.exports=[75105,a=>{var b=a.i(312573);a.s(["w",0,"Something in that request wasn't valid.","G",0,"This changed since you opened it. Reload and try again.","z",0,function(a,c){return"member"===a?`Too many actions. Try again in ${(0,b.H)(c)}.`:"That was just done. Wait a minute before trying again."},"b",0,function(a,b){return"supabase"===a?"This token is read-only; replace it with one that has Project admin write.":"cloudflare"===a?'This Cloudflare token can\'t edit DNS; add "Zone → DNS → Edit" to it, or replace it with a token that has it.':"vercel"===a?`This token can't change projects in team ${b.team||"this team"}; replace it with one whose scope includes that team.`:`This API key can't manage project ${b.project||"this project"}; replace it with a personal or organization key, or a key for this project.`},"S",0,function(a){let b=a.replace(/\s+/g," ").trim();return b.length>200?`${b.slice(0,199)}…`:b}])},502330,a=>{let b="You are the assistant inside Watchbell, a console that monitors the owner's web apps. Answer only from the data in the user's message. Say so plainly when the data does not cover the question. Never invent names, numbers, dates or causes. Names such as db-a or account-1 are aliases of private names: use them as written and do not guess what they stand for. Be brief and concrete. Short markdown is fine; no HTML.";function c(a,b=300){let d=String(a??"").replace(/[a-z][a-z0-9+.-]*:\/\/\S*/gi,"[url]").replace(/\b(?:wp|hb)_[A-Za-z0-9]{6,}/g,"[secret]").replace(/\b(?:sk-|gsk_|AIza|AQ\.)[A-Za-z0-9_.-]{6,}/g,"[secret]").replace(/postgres(?:ql)?/gi,"[db]").replace(/@/g,"(at)").replace(/\s+/g," ").trim();return d.length>b?`${d.slice(0,b-1)}…`:d}function d(a){let b=[`App: ${c(a.id,80)}`,`State: ${c(a.state,20)}`,`Uptime, last 30 days: ${null===a.uptime30d?"unknown":`${Math.round(100*a.uptime30d)/100}%`}`,`Database: ${a.database?c(a.database,40):"none"}`,`Last deploy: ${a.lastDeploy?c(a.lastDeploy,40):"unknown"}`];return a.problems.length?(b.push("Problems:"),a.problems.slice(0,10).forEach((a,d)=>{b.push(`${d+1}. [${c(a.kind,30)}] ${c(a.where,120)}: ${c(a.what)}${a.fix?` What the console suggests: ${c(a.fix)}`:""}`)})):b.push("Problems: none reported."),b}a.s(["o",0,b,"R",0,function(a){let b=[`Why is the app "${c(a.id,80)}" ${c(a.state,20)}, and what should the owner do first? Answer in short markdown (under 1,500 characters), only from this data; say so if it does not cover the cause.`,"",...d(a)].join("\n");return b.length>2e3?`${b.slice(0,1999)}…`:b},"u",0,function(a,d){let e=JSON.stringify(function a(b,d=0){return"string"==typeof b?c(b):d>4?null:Array.isArray(b)?b.slice(0,50).map(b=>a(b,d+1)):b&&"object"==typeof b?Object.fromEntries(Object.entries(b).slice(0,30).map(([b,e])=>[c(b,40),a(e,d+1)])):"number"==typeof b||"boolean"==typeof b||null===b?b:null}(a),null,1);return[{role:"system",content:b},{role:"user",content:`Console data (scrubbed, generated ${c(a.generatedAt,40)}):
|
|
2
|
-
${e}
|
|
3
|
-
|
|
4
|
-
Question: ${c(d,2e3)}`}]},"O",0,c,"N",0,function(a){let d=a.slice(0,40).map(a=>`- [${c(a.severity,20)}] ${c(a.title)} (app: ${c(a.app,80)})`);return[{role:"system",content:b},{role:"user",content:[`Summarise these ${a.length} recommendations in two or three sentences, most urgent first. Name each app once.`,"",...d].join("\n")}]},"r",0,function(a){return[{role:"system",content:b},{role:"user",content:["Explain in at most five sentences what is likely going on with this app and what to do first.","",...d(a)].join("\n")}]}])}]})();
|
|
5
|
-
|
|
6
|
-
//# sourceMappingURL=src_1emolu5lrse98._.js.map
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
module.exports=[[829534,a=>{let b=(0,a.i(211857).registerClientReference)(function(){throw Error("Attempted to call ActionsRepoForm() from the server but ActionsRepoForm is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/src/app/(console)/settings/actions-repo-form.tsx","ActionsRepoForm");a.s(["ActionsRepoForm",0,b])},386180,a=>{var b=a.i(829534);a.n(b)},541088,a=>{let b=(0,a.i(211857).registerClientReference)(function(){throw Error("Attempted to call AddMemberDialog() from the server but AddMemberDialog is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/src/app/(console)/settings/add-member-dialog.tsx","AddMemberDialog");a.s(["AddMemberDialog",0,b])},120396,a=>{var b=a.i(541088);a.n(b)},933292,a=>{let b=(0,a.i(211857).registerClientReference)(function(){throw Error("Attempted to call BudgetForm() from the server but BudgetForm is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/src/app/(console)/settings/budget-form.tsx","BudgetForm");a.s(["BudgetForm",0,b])},285100,a=>{var b=a.i(933292);a.n(b)},915832,a=>{let b=(0,a.i(211857).registerClientReference)(function(){throw Error("Attempted to call InviteDialog() from the server but InviteDialog is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/src/app/(console)/settings/invite-dialog.tsx","InviteDialog");a.s(["InviteDialog",0,b])},173616,a=>{var b=a.i(915832);a.n(b)},7109,a=>{var b=a.i(211857);let c=(0,b.registerClientReference)(function(){throw Error("Attempted to call RemoveMember() from the server but RemoveMember is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/src/app/(console)/settings/member-actions.tsx","RemoveMember"),d=(0,b.registerClientReference)(function(){throw Error("Attempted to call RevokeInvite() from the server but RevokeInvite is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/src/app/(console)/settings/member-actions.tsx","RevokeInvite"),e=(0,b.registerClientReference)(function(){throw Error("Attempted to call RoleSelect() from the server but RoleSelect is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/src/app/(console)/settings/member-actions.tsx","RoleSelect");a.s(["RemoveMember",0,c,"RevokeInvite",0,d,"RoleSelect",0,e])},564326,a=>{var b=a.i(7109);a.n(b)},976739,a=>{var b=a.i(907997),c=a.i(803681),d=a.i(75148),e=a.i(473083),f=a.i(109307),g=a.i(534908),h=a.i(149396),i=a.i(492665),j=a.i(529960),k=a.i(686251),l=a.i(462820),m=a.i(976937),n=a.i(972123),o=a.i(386180);async function p(){let a=await (0,m.c)().catch(()=>null);return(0,b.jsxs)(c.N,{title:"Lockfile via GitHub Actions",meta:a?(0,b.jsx)(k.F,{state:"ok",children:"On"}):(0,b.jsx)(k.F,{state:"off",children:"Off"}),children:[(0,b.jsx)("p",{className:"text-[13px] text-ink-soft",children:l.K.lockfileIntro}),(0,b.jsxs)("ol",{className:"mt-2 flex list-decimal flex-col gap-3 pl-5 text-[13px]",children:[(0,b.jsxs)("li",{children:["Create a repository on GitHub, for example ",(0,b.jsx)("span",{className:"font-mono",children:"watchbell-actions"})," (private is fine)."]}),(0,b.jsxs)("li",{children:["Add the file ",(0,b.jsx)("span",{className:"font-mono",children:".github/workflows/watchbell-lockfile.yml"})," ",(0,b.jsx)(j.CopyButton,{text:".github/workflows/watchbell-lockfile.yml",label:"Copy path"})," with this content:",(0,b.jsx)("div",{className:"mt-1 flex justify-end",children:(0,b.jsx)(j.CopyButton,{text:n.G,label:"Copy workflow"})}),(0,b.jsx)("code",{className:"block overflow-x-auto rounded-md border border-line bg-surface-2 px-3 py-2 font-mono text-[12.5px] whitespace-pre mt-1 max-h-72",children:n.G})]}),(0,b.jsxs)("li",{children:["In that repository: Settings › Secrets and variables › Actions › New repository secret, name ",(0,b.jsx)("span",{className:"font-mono",children:"WATCHBELL_PR_TOKEN"})," ",(0,b.jsx)(j.CopyButton,{text:"WATCHBELL_PR_TOKEN",label:"Copy name"}),", value: your GitHub PR-write token (the same one on Connections)."]}),(0,b.jsx)("li",{children:"Give the PR-write token access to this new repository too (GitHub › Settings › Developer settings › your token › Repository access), with Contents: Read and write."}),(0,b.jsx)("li",{children:"Save the repository name here:"})]}),(0,b.jsx)("div",{className:"mt-2",children:(0,b.jsx)(o.ActionsRepoForm,{current:a})})]})}var q=a.i(791444),r=a.i(840784),s=a.i(186133),t=a.i(532620),u=a.i(655206),v=a.i(634418),w=a.i(688275),x=a.i(672319),y=a.i(711251),z=a.i(371289),A=a.i(245710);function B(a){return a>=86400&&a%86400==0?`every ${a/86400} day${86400===a?"":"s"}`:a>=3600&&a%3600==0?`every ${a/3600} h`:a>=60&&a%60==0?`every ${a/60} min`:`every ${a} s`}let C={heartbeats:"Heartbeat monitors: recompute from the last ping",checks:"HTTP uptime checks",vercel:"Vercel projects and deployments",supabase:"Supabase project status",supabaseUsage:"Supabase service health and traffic",neon:"Neon status and usage",firebase:"Firestore health read",firebaseUsage:"Firestore usage",extraDbs:"Turso, Upstash Redis and Cloudflare D1 status and usage",cloudflare:"Cloudflare zones and DNS",domains:"Vercel domain settings",tls:"TLS certificate expiry",rdap:"Domain expiry (RDAP)",eol:"Next.js end-of-life data",node:"Node.js security releases and end of life, for Watchbell's own runtime",status:"Provider status feeds",logs:"Copy of Vercel warning and error logs",pageviews:"Web Analytics page views",security:"Security check: Next.js versions and dependency advisories (also right after a production deploy)",alerts:"Alert rules and notices",digest:"Digest due check"},D={cron_job_org:"cron-job.org",qstash:"QStash",vercel_cron:"Vercel Cron",manual:"Refresh now"},E=v.t.checks,F="not read yet",G="not read",H=a=>Math.round(10*a)/10,I=a=>`${a} days`;var J=a.i(715208),K=a.i(285100);async function L(){let a=new Date,[d,e,f,g,h]=await Promise.all([(0,t.V)(),(0,t.R)("neon_project"),(0,t.e)(),(0,r.G)(a),(0,s.j)()]),i=g.filter(a=>!a.gone),j=function(a,b=y.o){let c,d=[],e=a=>null===a?"none":a>=b.errPct?"err":a>=b.warnPct?"warn":"ok";for(let b of(a.slots.length||d.push({key:"supabase",item:"Supabase free projects",limit:`${x.V} active projects per account`,use:"no Supabase account connected",pct:null,tone:"none"}),a.slots)){let a=H(b.used/b.total*100);d.push({key:`supabase-${b.account}`,item:`Supabase free projects \xb7 ${b.account}`,limit:`${b.total} active per account`,use:`${b.used} of ${b.total} used${b.planUnknown?" (plan not read for every org)":""}`,pct:a,tone:e(a)})}for(let b of(a.neon.length||d.push({key:"neon",item:"Neon CU-hours",limit:`${w.a.cuHours} CU-hours / month per project`,use:"no Neon project watched",pct:null,tone:"none"}),a.neon))d.push({key:`neon-${b.id}`,item:`Neon CU-hours \xb7 ${b.alias}`,limit:`${w.a.cuHours} CU-hours / month per project`,use:b.cu?`${b.cu.value} CU-hours`:F,pct:b.cu?.pct??null,tone:e(b.cu?.pct??null)});let f=H(288/b.qstashPerDay*100);return d.push({key:"qstash",item:"Upstash QStash messages",limit:`${b.qstashPerDay.toLocaleString("en-US")} / day`,use:`288 / day (watchdog ${B(300)})`,pct:f,tone:e(f)}),d.push({key:"cron",item:"cron-job.org runs",limit:"1 run / min (shortest free interval)",use:`1 run / min (${(86400/E).toLocaleString("en-US")} / day)`,pct:null,tone:"none"}),d.push({key:"vercel",item:"Vercel Hobby",limit:`${(c=b.vercelInvocations)>=1e6&&c%1e6==0?`${c/1e6}M`:c.toLocaleString("en-US")} invocations, ${b.vercelCpuHours} h CPU, ${b.vercelMemoryGbH} GB-h memory / month`,use:`${G} (Vercel dashboard → Usage)`,pct:null,tone:"none"}),d.push({key:"analytics",item:"Vercel Web Analytics",limit:`${b.webAnalyticsEvents.toLocaleString("en-US")} events / month`,use:0===a.apps.total?"no apps watched":0===a.apps.read?`${F} \xb7 events ${G}`:`${a.apps.enabled} of ${a.apps.total} app${1===a.apps.total?"":"s"} enabled \xb7 events ${G}`,pct:null,tone:"none"}),d}({slots:(0,J.d)(d),neon:(0,J.D)(e,a,f).map(a=>({id:a.id,alias:a.alias,cu:a.cu})),apps:{total:i.length,read:i.filter(a=>null!==a.pageViews).length,enabled:i.filter(a=>a.pageViews?.enabled===!0).length}},h);return(0,b.jsxs)("div",{className:"flex flex-col gap-4",children:[(0,b.jsx)(c.N,{title:"Free tier budget",flush:!0,meta:"Everything stays on free plans",children:(0,b.jsx)("div",{className:"overflow-x-auto",children:(0,b.jsxs)("table",{className:q.o,children:[(0,b.jsx)(q.U,{head:["Item","Free limit","Current use"]}),(0,b.jsx)("tbody",{children:j.map(a=>(0,b.jsxs)("tr",{children:[(0,b.jsx)("td",{className:q.z,children:a.item}),(0,b.jsx)("td",{className:`${q.z} text-ink-soft`,children:a.limit}),(0,b.jsxs)("td",{className:q.z,children:[(0,b.jsx)("span",{className:a.use.includes("not read")?"text-ink-soft":"font-mono text-[12.5px]",children:a.use}),null!==a.pct&&(0,b.jsx)(c.e,{pct:a.pct,tone:"warn"===a.tone||"err"===a.tone?a.tone:void 0})]})]},a.key))})]})})}),(0,b.jsx)(c.N,{title:"Free tier limits",meta:"Correct them here when a provider changes its free plan",children:(0,b.jsx)(K.BudgetForm,{saved:h})})]})}var M=a.i(530385),N=a.i(395936),O=a.i(701702),P=a.i(548734),Q=a.i(837137),R=a.i(50908),S=a.i(20060),T=a.i(556987),U=a.i(103493);async function V(){let a=await (0,P.f)().select({id:Q.collectorRuns.id,startedAt:Q.collectorRuns.startedAt,trigger:Q.collectorRuns.trigger,tasks:Q.collectorRuns.tasks,ok:Q.collectorRuns.ok,errorSummary:Q.collectorRuns.errorSummary,durationMs:Q.collectorRuns.durationMs}).from(Q.collectorRuns).orderBy((0,M.A)(Q.collectorRuns.startedAt)).limit(20),d=await (0,t.e)().catch(()=>T.a),e=function(a,b=a=>a){return a.map(a=>{var c;let d;return{id:a.id,at:`${(0,A.L)(a.startedAt)} ${(0,A.U)(a.startedAt)}`,trigger:D[a.trigger]??a.trigger,tasks:a.tasks.length?`${a.tasks.length} task${1===a.tasks.length?"":"s"}`:"none",duration:null===(c=a.durationMs)?"—":c<1e3?`${c} ms`:`${(c/1e3).toFixed(1)} s`,ok:a.ok,summary:null===a.ok?"Not finished":a.ok?"OK":(d=b(a.errorSummary?.trim()||"Finished with problems")).length<=80?d:`${d.slice(0,79).trimEnd()}…`}})}(a,a=>(0,T.J)(a,d)),f=function(a=(()=>{try{return"cloud"===(0,z.c)()}catch{return!1}})()){let b=(0,A.C)(),c=(0,A.J)(),d=a?"as a Vercel environment variable and redeploy":"in .env",e=(0,A.R)(),f=e?`${e} isn't a time zone; using ${b} (${c}). Set an IANA name such as Europe/Berlin ${d}.`:`Time zone: ${b} (${c}). To change it, set WATCHBELL_TIMEZONE ${d}.`;return{zone:b,label:c,text:f,follows:a?`Times and the digest (07:00) follow it. The daily job is Vercel Cron at 20:00 UTC (${(0,A.G)()}).`:"Times, the daily job (03:00) and the digest (07:00) follow it."}}(),g=await (0,R.i)().catch(()=>null),h=new Date,i=(0,S.s)(),j=(0,S.E)(process.version,g,h,i),l=i.off?`Not read: ${i.name} is set.`:g?.indexCheckedAt?`Read ${(0,A.$)(new Date(g.indexCheckedAt),h)}.`:"Not read yet.";return(0,b.jsxs)("div",{className:"flex flex-col gap-4",children:[(0,b.jsx)(U.f,{}),(0,b.jsxs)(c.N,{title:"What runs when",flush:!0,meta:"Per run, a task starts only when its interval has passed",children:[(0,b.jsx)("div",{className:"overflow-x-auto",children:(0,b.jsxs)("table",{className:q.o,children:[(0,b.jsx)(q.U,{head:["Task","Runs"]}),(0,b.jsx)("tbody",{children:(function(a=v.t){return Object.keys(a).map(b=>({task:b,label:C[b],every:B(a[b])}))})().map(a=>(0,b.jsxs)("tr",{children:[(0,b.jsxs)("td",{className:q.z,children:[a.label," ",(0,b.jsx)("span",{className:"ml-1 font-mono text-xs text-ink-soft",children:a.task})]}),(0,b.jsx)("td",{className:`${q.z} text-ink-soft`,children:a.every})]},a.task))})]})}),(0,b.jsxs)("div",{className:"grid grid-cols-[260px_minmax(0,1fr)] items-center gap-4 border-t border-line px-[18px] py-3 max-[720px]:grid-cols-1 max-[720px]:gap-1",children:[(0,b.jsxs)("div",{className:"font-medium",children:["Keep Supabase projects awake",(0,b.jsx)("span",{className:"mt-0.5 block text-[12.5px] font-normal text-ink-soft",children:"Off by default. Set per project on the Supabase page (Keep active, Auto-restore; owner only). Not offered for Neon, because staying awake would use up its CU-hours."})]}),(0,b.jsx)("span",{children:(0,b.jsx)(N.default,{href:"/supabase",className:(0,c.R)({size:"sm"}),children:"Open Supabase"})})]}),(0,b.jsxs)("div",{className:"grid grid-cols-[260px_minmax(0,1fr)] items-center gap-4 border-t border-line px-[18px] py-3 max-[720px]:grid-cols-1 max-[720px]:gap-1",children:[(0,b.jsxs)("div",{className:"font-medium",children:["Time zone",(0,b.jsx)("span",{className:"mt-0.5 block text-[12.5px] font-normal text-ink-soft",children:f.follows})]}),(0,b.jsx)("span",{className:"text-ink-soft",children:f.text})]}),(0,b.jsxs)("div",{className:"grid grid-cols-[260px_minmax(0,1fr)] items-center gap-4 border-t border-line px-[18px] py-3 max-[720px]:grid-cols-1 max-[720px]:gap-1",children:[(0,b.jsxs)("div",{className:"font-medium",children:["Watchbell runtime",(0,b.jsxs)("span",{className:"mt-0.5 block text-[12.5px] font-normal text-ink-soft",children:[(0,z.r)()?"The Node.js of Vercel's functions that run this console":"The Node.js of this machine",", against the security releases on nodejs.org and the end-of-life dates on endoflife.date, every 12 h. ",l]})]}),(0,b.jsxs)("span",{children:["unknown"===j.state||"off"===j.state?(0,b.jsx)("span",{className:"text-ink-faint",children:j.text}):(0,b.jsx)(k.F,{state:j.state,children:j.text}),j.note&&(0,b.jsx)("span",{className:"block text-[12px] text-ink-faint",children:j.note})]})]})]}),(0,b.jsx)(c.N,{title:"Last 20 runs",flush:!0,meta:`Times in ${(0,A.D)()}`,children:0===e.length?(0,b.jsx)("p",{className:"px-[18px] pb-4 text-ink-soft",children:"The collector hasn't run yet."}):(0,b.jsx)("div",{className:"overflow-x-auto",children:(0,b.jsxs)("table",{className:q.o,children:[(0,b.jsx)(q.U,{head:["Started","Trigger","Tasks","Duration","Result"]}),(0,b.jsx)("tbody",{children:e.map(a=>(0,b.jsxs)("tr",{children:[(0,b.jsx)("td",{className:`${q.z} font-mono text-[12.5px]`,children:a.at}),(0,b.jsx)("td",{className:q.z,children:a.trigger}),(0,b.jsx)("td",{className:q.z,children:a.tasks}),(0,b.jsx)("td",{className:`${q.z} font-mono text-[12.5px]`,children:a.duration}),(0,b.jsx)("td",{className:q.z,children:(0,b.jsx)(k.F,{state:null===a.ok?"build":a.ok?"ok":"warn",children:(0,b.jsx)(O.MaskedText,{text:a.summary})})})]},a.id))})]})})})]})}var W=a.i(532971),X=a.i(104195);async function Y(){let a=await (0,s.J)(),d=function(a=u.f){return[{kind:"Raw checks",keeps:I(a.checks),note:"Every HTTP check result; the hourly rollups below keep the history."},{kind:"Hourly rollups",keeps:I(a.rollupsHourly),note:"Uptime and response numbers per monitor and hour."},{kind:"Stored logs",keeps:I(a.storedLogs),note:"The copy of Vercel warning and error logs."},{kind:"Deployments",keeps:I(a.deployments),note:"Older ones only; the current and the previous production deployment are always kept."},{kind:"Events",keeps:I(a.events),note:"The activity feed."},{kind:"Alerts",keeps:I(a.alerts),note:"Resolved alerts only, counted from when they resolved; open alerts stay."},{kind:"Collector runs",keeps:I(a.collectorRuns),note:"The run history shown in the Collector tab."},{kind:"Advisor dismissals",keeps:I(a.recommendationDismissals),note:"A dismissal only matters for 30 days."}]}(a),e=W.L.map(a=>({key:a,kind:W.I[a],note:d.find(b=>b.kind===W.I[a])?.note??""}));return(0,b.jsxs)(c.N,{title:"Retention",flush:!0,meta:`Cleaned daily at ${(0,A.G)()}`,children:[(0,b.jsx)("p",{className:"px-[18px] pb-3 text-ink-soft",children:"Only the console's own history is deleted. Nothing is ever deleted at a provider. The monthly backup runs on the 1st, before the clean-up, and reads hourly rollups, events and alerts, which keep at least 60 days."}),(0,b.jsx)(X.RetentionForm,{saved:a,rows:e})]})}var Z=a.i(525826),$=a.i(93321),_=a.i(154756),aa=a.i(267767),ab=a.i(120396),ac=a.i(173616),ad=a.i(564326);async function ae({actorId:a}){let d=(0,z.F)(),e=await (0,P.f)().select().from(Q.members).orderBy((0,M.A)(Q.members.createdAt)),f=d?[]:await (0,P.f)().select().from(Q.invites).where((0,$.M)(Q.invites.acceptedAt)).orderBy((0,M.A)(Q.invites.createdAt)),g=new Date,h="border-y border-line bg-surface-2 px-3 py-2 text-left text-[12.5px] font-medium text-ink-soft first:pl-[18px]",i="border-b border-line px-3 py-[9px] whitespace-nowrap first:pl-[18px]";return(0,b.jsxs)(c.N,{flush:!0,children:[(0,b.jsx)("div",{className:"flex flex-wrap items-center gap-2 px-[18px] pb-3 pt-3.5",children:d?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("span",{className:"text-ink-soft",children:(0,z.W)()?"In the demo you are the only member. On a real install an owner adds people here.":"Members sign in with email and password. A new member gets a temporary password and picks their own at their first sign-in."}),!(0,z.W)()&&(0,b.jsx)(ab.AddMemberDialog,{})]}):(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("span",{className:"text-ink-soft",children:"Invite-only: people sign in with an email link, and only invited emails get in. Preview deployments stay behind Vercel Authentication."}),(0,b.jsx)(ac.InviteDialog,{})]})}),(0,b.jsx)("div",{className:"overflow-x-auto",children:(0,b.jsxs)("table",{className:"w-full border-collapse",children:[(0,b.jsx)("thead",{children:(0,b.jsxs)("tr",{children:[(0,b.jsx)("th",{className:h,children:"User"}),(0,b.jsx)("th",{className:h,children:"Role"}),(0,b.jsx)("th",{className:h,children:"Last seen"}),(0,b.jsx)("th",{className:h,children:"Status"}),(0,b.jsx)("th",{className:h})]})}),(0,b.jsxs)("tbody",{children:[e.map(c=>(0,b.jsxs)("tr",{className:"hover:bg-hover",children:[(0,b.jsx)("td",{className:i,children:(0,b.jsx)(_.F,{kind:"usr",name:c.email})}),(0,b.jsx)("td",{className:i,children:c.id===a?(0,b.jsx)("span",{className:"rounded-[5px] border border-line bg-surface-2 px-1.5 text-xs text-ink-soft",children:"Owner (you)"}):(0,b.jsx)(ad.RoleSelect,{memberId:c.id,email:c.email,role:c.role})}),(0,b.jsx)("td",{className:`${i} text-ink-soft`,children:(a=>{if(!a)return"never";let b=Math.round((Date.now()-a.getTime())/6e4);if(b<2)return"now";if(b<60)return`${b} min ago`;let c=Math.round(b/60);return c<48?`${c} h ago`:`${Math.round(c/24)} days ago`})(c.lastSeenAt)}),(0,b.jsx)("td",{className:i,children:(0,b.jsx)(k.F,{state:"ok",children:"Active"})}),(0,b.jsx)("td",{className:i,children:c.id!==a&&(0,b.jsx)(ad.RemoveMember,{memberId:c.id,email:c.email,deletesAccount:"selfhost"===(0,z.c)()})})]},c.id)),f.map(a=>{let c=(0,aa.R)(a,g);return(0,b.jsxs)("tr",{className:"hover:bg-hover",children:[(0,b.jsx)("td",{className:i,children:(0,b.jsx)(_.F,{kind:"usr",name:a.email})}),(0,b.jsx)("td",{className:i,children:(0,b.jsx)("span",{className:"rounded-[5px] border border-line bg-surface-2 px-1.5 text-xs text-ink-soft",children:a.role[0].toUpperCase()+a.role.slice(1)})}),(0,b.jsx)("td",{className:`${i} text-ink-soft`,children:"invited"}),(0,b.jsx)("td",{className:i,children:"open"===c?(0,b.jsx)(k.F,{state:"off",children:"Invited"}):(0,b.jsx)(k.F,{state:"warn",children:"Invite expired"})}),(0,b.jsx)("td",{className:i,children:(0,b.jsx)(ad.RevokeInvite,{inviteId:a.id,email:a.email})})]},a.id)})]})]})})]})}let af=["collector","budget","users","retention","status-page"];async function ag({searchParams:a}){let j=await (0,f.B)("owner");if(!j.ok)return(0,b.jsx)(d.f,{role:j.member.role});let[{tab:k},l]=await Promise.all([a,(0,h.a)()]),m=g.extensions.settingsTabs??[],n=!g.extensions.runner,o=[...af,...n?["lockfile"]:[],...m.map(a=>a.key)];return(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(c.L,{crumbs:[{label:"Manage"},{label:"Settings"}],title:"Settings"}),(0,b.jsxs)(e.Tabs,{defaultValue:k&&o.includes(k)?k:"users",className:"mt-3.5",children:[(0,b.jsxs)(e.TabsList,{variant:"line",children:[(0,b.jsx)(e.TabsTrigger,{value:"collector",children:"Collector"}),(0,b.jsx)(e.TabsTrigger,{value:"budget",children:"Free tier budget"}),(0,b.jsx)(e.TabsTrigger,{value:"users",children:"Users"}),(0,b.jsx)(e.TabsTrigger,{value:"retention",children:"Retention"}),(0,b.jsx)(e.TabsTrigger,{value:"status-page",children:"Status page"}),n&&(0,b.jsx)(e.TabsTrigger,{value:"lockfile",children:"Lockfile"}),m.map(a=>(0,b.jsx)(e.TabsTrigger,{value:a.key,children:a.label},a.key))]}),(0,b.jsx)(e.TabsContent,{value:"collector",className:"mt-4",children:(0,b.jsx)(V,{})}),(0,b.jsx)(e.TabsContent,{value:"budget",className:"mt-4",children:(0,b.jsx)(L,{})}),(0,b.jsx)(e.TabsContent,{value:"users",className:"mt-4",children:(0,b.jsx)(ae,{actorId:j.member.id})}),(0,b.jsx)(e.TabsContent,{value:"retention",className:"mt-4",children:(0,b.jsx)(Y,{})}),(0,b.jsx)(e.TabsContent,{value:"status-page",className:"mt-4",children:(0,b.jsx)(Z.StatusPageTab,{settings:l,siteUrl:(0,i.f)().SITE_URL})}),n&&(0,b.jsx)(e.TabsContent,{value:"lockfile",className:"mt-4",children:(0,b.jsx)(p,{})}),m.map(({key:a,Tab:c})=>(0,b.jsx)(e.TabsContent,{value:a,className:"mt-4",children:(0,b.jsx)(c,{})},a))]},k??"")]})}a.s(["default",0,ag],976739)},718121,a=>{let b=(0,a.i(211857).registerClientReference)(function(){throw Error("Attempted to call RetentionForm() from the server but RetentionForm is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/src/app/(console)/settings/retention-form.tsx","RetentionForm");a.s(["RetentionForm",0,b])},104195,a=>{var b=a.i(718121);a.n(b)},391022,a=>{let b=(0,a.i(211857).registerClientReference)(function(){throw Error("Attempted to call StatusPageTab() from the server but StatusPageTab is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/src/app/(console)/settings/status-page-tab.tsx","StatusPageTab");a.s(["StatusPageTab",0,b])},525826,a=>{var b=a.i(391022);a.n(b)},736935,a=>{let b=(0,a.i(211857).registerClientReference)(function(){throw Error("Attempted to call CopyButton() from the server but CopyButton is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/src/components/copy-button.tsx","CopyButton");a.s(["CopyButton",0,b])},529960,a=>{var b=a.i(736935);a.n(b)}],814659,function(a){a.n(a.i(976739))}];
|
|
2
|
-
|
|
3
|
-
//# sourceMappingURL=src_1sdwdnblbiq_g._.js.map
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
(()=>{"use strict";module.exports=[471011,a=>{var b=a.i(405050);let c=(0,b.createServerReference)("608fdc0f8f70507dd391ca52529a43f761fd3a28fc",b.callServer,void 0,b.findSourceMapURL,"signInWithPassword");a.s(["f",0,c])},625104,a=>{var b=a.i(187924),c=a.i(572131),d=a.i(619089);let e="demo@watchbell.west-solutions.web.id",f="watchbell-demo";var g=a.i(471011);a.s(["DemoSignInForm",0,function({next:a}){let[h,i,j]=(0,c.useActionState)(g.f,{status:"idle"}),k=(0,c.useRef)(null),l=(0,c.useRef)(null);return(0,b.jsxs)("form",{action:i,children:[(0,b.jsx)("h1",{className:"mb-1 text-xl",children:"Try the Watchbell demo"}),(0,b.jsx)("p",{className:"mb-[18px] text-ink-soft",children:"Sign in with the demo account to look around a console full of made-up data of your own."}),(0,b.jsxs)("div",{className:"mb-[18px] rounded-lg border border-line bg-sunken px-3.5 py-3",children:[(0,b.jsxs)("dl",{className:"mb-2.5 grid grid-cols-[auto_1fr] gap-x-3 gap-y-1 text-[13px]",children:[(0,b.jsx)("dt",{className:"text-ink-soft",children:"Email"}),(0,b.jsx)("dd",{className:"break-all font-mono",children:e}),(0,b.jsx)("dt",{className:"text-ink-soft",children:"Password"}),(0,b.jsx)("dd",{className:"font-mono",children:f})]}),(0,b.jsx)(d.K,{size:"sm",onClick:()=>{k.current&&(k.current.value=e),l.current&&(l.current.value=f),l.current?.focus()},children:"Use demo account"})]}),a&&(0,b.jsx)("input",{type:"hidden",name:"next",value:a}),(0,b.jsx)(d.O,{id:"email",label:"Email",error:"error"===h.status&&"email"===h.field?h.message:void 0,children:(0,b.jsx)("input",{ref:k,id:"email",name:"email",type:"email",autoComplete:"username",placeholder:"name@example.com",required:!0,maxLength:254,defaultValue:"error"===h.status?h.email:void 0,className:d.S})}),(0,b.jsx)(d.O,{id:"password",label:"Password",error:"error"===h.status&&"email"!==h.field?h.message:void 0,children:(0,b.jsx)("input",{ref:l,id:"password",name:"password",type:"password",autoComplete:"current-password",required:!0,maxLength:200,className:d.S})}),(0,b.jsx)(d.K,{type:"submit",variant:"primary",className:"w-full justify-center",disabled:j,children:j?"Signing in…":"Sign in"}),(0,b.jsx)("p",{className:"mt-4 text-[12.5px] text-ink-faint",children:"Or use any email and password. Every sign-in, the demo account too, gets its own made-up data."})]})}],625104)},318465,a=>{var b=a.i(187924),c=a.i(572131),d=a.i(619089),e=a.i(471011);a.s(["PasswordSignInForm",0,function({next:a}){let[f,g,h]=(0,c.useActionState)(e.f,{status:"idle"});return(0,b.jsxs)("form",{action:g,children:[(0,b.jsx)("h1",{className:"mb-1 text-xl",children:"Sign in to Watchbell"}),(0,b.jsx)("p",{className:"mb-[18px] text-ink-soft",children:"Use the email and password an owner set up for you."}),a&&(0,b.jsx)("input",{type:"hidden",name:"next",value:a}),(0,b.jsx)(d.O,{id:"email",label:"Email",children:(0,b.jsx)("input",{id:"email",name:"email",type:"email",autoComplete:"username",placeholder:"name@example.com",required:!0,defaultValue:"error"===f.status?f.email:void 0,className:d.S})}),(0,b.jsx)(d.O,{id:"password",label:"Password",error:"error"===f.status?f.message:void 0,children:(0,b.jsx)("input",{id:"password",name:"password",type:"password",autoComplete:"current-password",required:!0,maxLength:1024,className:d.S})}),(0,b.jsx)(d.K,{type:"submit",variant:"primary",className:"w-full justify-center",disabled:h,children:h?"Signing in…":"Sign in"}),(0,b.jsxs)("p",{className:"mt-4 text-[12.5px] text-ink-faint",children:["Forgot your password? Ask an owner to reset it. If you are the owner, stop Watchbell and run"," ",(0,b.jsx)("code",{className:"font-mono text-ink-soft",children:"watchbell reset-login you@example.com"})," on the machine it runs on (from an installer: ",(0,b.jsx)("code",{className:"font-mono text-ink-soft",children:"npm run reset-login -- you@example.com"})," in its app folder)."]})]})}])},59558,a=>{var b=a.i(187924),c=a.i(572131),d=a.i(619089);let e="https://challenges.cloudflare.com/turnstile/v0/api.js?render=explicit";function f({siteKey:a}){let d=(0,c.useRef)(null),[g,h]=(0,c.useState)(!1);return((0,c.useEffect)(()=>{let b,c=!1;return(window.turnstile?Promise.resolve(window.turnstile):new Promise((a,b)=>{let c=document.querySelector(`script[src="${e}"]`);c||((c=document.createElement("script")).src=e,c.async=!0,document.head.appendChild(c));let d=c;d.addEventListener("load",()=>window.turnstile?a(window.turnstile):b(Error("turnstile"))),d.addEventListener("error",()=>{d.remove(),b(Error("turnstile"))})})).then(e=>{!c&&d.current&&(b=e.render(d.current,{sitekey:a,action:"signin",theme:"auto"}))}).catch(()=>{console.warn("bot check failed to load"),c||h(!0)}),()=>{c=!0,b&&window.turnstile&&window.turnstile.remove(b)}},[a]),g)?(0,b.jsx)("p",{role:"alert",className:"mb-3.5 text-[13px] text-err",children:"The bot check couldn't load. Check your connection and reload the page."}):(0,b.jsx)("div",{ref:d,className:"mb-3.5 min-h-[65px]"})}var g=a.i(405050);let h=(0,g.createServerReference)("6029aee86c592085dfe9e9373fe41061725bc856d1",g.callServer,void 0,g.findSourceMapURL,"sendSignInLink");a.s(["SignInForm",0,function({siteKey:a}){let[e,g,i]=(0,c.useActionState)(h,{status:"idle"}),[j,k]=(0,c.useState)(!1),[l,m]=(0,c.useState)(0);return"sent"!==e.status||j?(0,b.jsxs)("form",{action:a=>{k(!1),m(a=>a+1),g(a)},children:[(0,b.jsx)("h1",{className:"mb-1 text-xl",children:"Sign in to Watchbell"}),(0,b.jsx)("p",{className:"mb-[18px] text-ink-soft",children:"We'll email you a sign-in link. Only invited people can get in."}),(0,b.jsx)(d.O,{id:"email",label:"Email",error:"error"===e.status?e.message:void 0,children:(0,b.jsx)("input",{id:"email",name:"email",type:"email",autoComplete:"email",placeholder:"name@example.com",required:!0,className:d.S})}),(0,b.jsx)(f,{siteKey:a},l),(0,b.jsx)(d.K,{type:"submit",variant:"primary",className:"w-full justify-center",disabled:i,children:i?"Sending…":"Send sign-in link"}),(0,b.jsx)("p",{className:"mt-4 text-[12.5px] text-ink-faint",children:"Can't get in? Ask an owner to invite you."})]}):(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("h1",{className:"mb-1 text-xl",children:"Check your email"}),(0,b.jsxs)("p",{className:"mb-[18px] text-ink-soft",children:["If ",e.email," is invited, a sign-in link is on its way. It works for 1 hour."]}),(0,b.jsx)(d.K,{className:"w-full justify-center",onClick:()=>k(!0),children:"Use a different email"})]})}],59558)}]})();
|
|
2
|
-
|
|
3
|
-
//# sourceMappingURL=src_app_signin_12a3ifphkkcs7._.js.map
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
(()=>{"use strict";module.exports=[192738,67890,a=>{var b=a.i(245710),c=a.i(708621);let d=a=>`${a} hari`,e=(a,b)=>0>Number(a)?`${b} udah habis.`:`${b} habis dalam ${d(a)}.`,f={"the job reported a failure":"job-nya lapor gagal","started but didn't finish":"udah mulai tapi nggak selesai","never pinged":"belum pernah ping","no ping in time":"nggak ada ping tepat waktu"},g={critical:"kritis",high:"tinggi",moderate:"sedang",low:"rendah",unknown:"nggak diketahui"},h={OsSecurityUpdate:[[/^On (.+?), no waiting security update fixes a CVE scored (\S+) or more, and the newest kernel runs\.$/,(a,b,c)=>`Di ${b} nggak ada update security yang nunggu buat CVE skor ${c} ke atas, dan kernel terbaru udah jalan.`],[/^On (.+?): (.+)\.$/,(a,b,c)=>`Di ${b}: ${c.replace(/ fixes /g," nambal ").replace(/ and (\d+) more\b/g," dan $1 lagi").replace(/\b(\d+) more packages\b/g,"$1 paket lagi").replace(/ waits for a reboot/g," nunggu reboot")}.`]],MonitorDown:[[/^(.+): no ping for (\d+ (?:min|h|days?))\.$/,(a,b,c)=>`${b}: nggak ada ping selama ${c.replace(/^(\d+) min$/,"$1 menit").replace(/^(\d+) h$/,"$1 jam").replace(/^(\d+) days?$/,"$1 hari")}.`],[/^(.+): (the job reported a failure|started but didn't finish|never pinged|no ping in time)\.$/,(a,b,c)=>`${b}: ${f[c]}.`],[/^(.+) failed its check \((.*)\) on (\d+) consecutive checks\.$/,(a,b,c,d)=>`${b}: ${d} cek gagal berturut-turut (${c}).`],[/^(.+) returned no answer on (\d+) consecutive checks\.$/,(a,b,c)=>`${b}: ${c} cek gagal berturut-turut (nggak ada jawaban).`],[/^(.+) returned (HTTP \d+) on (\d+) consecutive checks\.$/,(a,b,c,d)=>`${b}: ${d} cek gagal berturut-turut (${c}).`],[/^(.+) answers again\.$/,(a,b)=>`${b} udah jawab lagi.`],[/^(\S+) moved to (\S+); MonitorDomainMoved takes over\.$/,(a,b,c)=>`${b} pindah ke ${c}; MonitorDomainMoved yang ambil alih.`]],MonitorDomainMoved:[[/^(\S+) is no longer a domain of (.+); production is on (\S+)\.$/,(a,b,c,d)=>`${b} udah bukan domain ${c}; production sekarang di ${d}.`],[/^The monitor checks (\S+), a domain of (.+)\.$/,(a,b,c)=>`Monitor ngecek ${b}, domain ${c}.`]],CollectorStale:[[/^The collector hasn't finished a run yet\.$/,()=>"Collector belum pernah selesai jalan."],[/^The last minute run finished ([\d,]+) min ago\.$/,(a,b)=>`Collector terakhir selesai jalan ${b} menit lalu.`]],HighLatency:[[/^p95 ([\d,]+) ms over the last 10 minutes \(limit ([\d,]+) ms\)\.$/,(a,b,c)=>`p95 ${b} ms selama 10 menit terakhir (batas ${c} ms).`]],DeploymentFailed:[[/^Production deployment \(no commit\) failed\.$/,()=>"Deploy production (tanpa commit) gagal."],[/^Production deployment (\S+) failed\.$/,(a,b)=>`Deploy production ${b} gagal.`]],DatabasePaused:[[/^Supabase project (.+) is paused\.$/,(a,b)=>`Project Supabase ${b} lagi di-pause.`]],CertExpiringSoon:[[/^The TLS certificate of (.+) expires in (-?\d+) days?\.$/,(a,b,c)=>e(c,`Sertifikat TLS ${b}`)]],DomainExpiringSoon:[[/^(.+) expires in (-?\d+) days?\.$/,(a,b,c)=>e(c,b)]],StorageAlmostFull:[[/^(.+) uses ([\d,]+) MB of ([\d,]+) MB \(([\d,]+)%\)\.$/,(a,b,c,d,e)=>`${b} pakai ${c} MB dari ${d} MB (${e}%).`]],NeonComputeHigh:[[/^(.+) used ([\d,]+) of ([\d,]+) CU-hours this month\.$/,(a,b,c,d)=>`${b} udah pakai ${c} dari ${d} CU-hours bulan ini.`]],FirestoreQuotaHigh:[[/^(.+) hit a Firestore quota \(RESOURCE_EXHAUSTED\)\.$/,(a,b)=>`${b} kena kuota Firestore (RESOURCE_EXHAUSTED).`],[/^(.+) read ([\d,]+) of ([\d,]+) documents today \(([\d,]+)%\)\.$/,(a,b,c,d,e)=>`${b} udah baca ${c} dari ${d} dokumen hari ini (${e}%).`]],AutoPauseRisk:[[/^No API traffic for (\d+) days?\. Supabase pauses free projects after about 7 days\.$/,(a,b)=>`Nggak ada traffic API selama ${d(b)}. Supabase nge-pause project free setelah sekitar 7 hari.`]],DnsProxiedToVercel:[[/^(.+) points to Vercel through the Cloudflare proxy\. Vercel recommends DNS only\.$/,(a,b)=>`${b} ngarah ke Vercel lewat proxy Cloudflare. Vercel nyaranin DNS only.`]],DbQuotaHigh:[[/^(.+): (.+) at ([\d,]+)% of the free plan\.$/,(a,b,c,d)=>`${b}: ${c.replace(/^Rows read/,"baris dibaca").replace(/^Rows written/,"baris ditulis").replace(/^Commands/,"command").replace(/^usage$/,"pemakaian").replace(/ today\b/," hari ini").replace(/\bof ([^ ]+(?: [A-Z]+)?)\b/,"dari $1").replace(/ this month\b/," bulan ini").replace(/\(account\)/,"(akun)")} udah ${d}% dari kuota gratis.`]],ComputeHigh:[[/^(.+) compute is back under the limits\.$/,(a,b)=>`Compute ${b} udah balik di bawah batas.`],[/^(.+): ((?:CPU|RAM|disk|connections) .+)\.$/,(a,b,c)=>`${b}: ${c.replace(/ for (\d+) min/g," selama $1 menit").replace(/\(limit /g,"(batas ").replace(/\bconnections (\d+) of (\d+)/g,"koneksi $1 dari $2")}.`]],CredentialExpiring:[[/^Google Drive access was removed \(invalid_grant\)\. Reconnect it\.$/,()=>"Akses Google Drive dicabut (invalid_grant). Sambungin lagi ya."],[/^The (\S+) credential (.+) has expired\.$/,(a,b,c)=>`Credential ${b} ${c} udah kedaluwarsa.`],[/^The (\S+) credential (.+) expires in (-?\d+) days?\.$/,(a,b,c,d)=>e(d,`Credential ${b} ${c}`)]],VulnerableDependency:[[/^(.+) has no moderate, high or critical dependency advisories\.$/,(a,b)=>`${b} nggak punya advisory dependency sedang, tinggi atau kritis.`],[/^(.+) has no high or critical dependency advisories\.$/,(a,b)=>`${b} nggak punya advisory dependency tinggi atau kritis.`],[/^(\d+) vulnerable packages? \(([^)]*)\): (.*)$/,(a,b,c,d)=>`${b} paket rentan (${c.replace(/\b(critical|high|moderate|low|unknown)\b/g,a=>g[a])}): ${d.replace(/ \(no fix yet\)/g," (belum ada fix)").replace(/, \+(\d+) more\.$/,", +$1 lagi.")}`]],CiFailing:[[/^The latest (.+) run on (.+) (failed|passed)( \(run #\d+\))?\.$/,(a,b,c,d,e)=>`Run ${b} terbaru di ${"the default branch"===c?"branch default":c} ${"failed"===d?"gagal":"lolos"}${e??""}.`]],FrameworkVulnerable:[[/^(.+) runs Next\.js (.+) with no known advisories\.$/,(a,b,c)=>`${b} pakai Next.js ${c} tanpa advisory yang diketahui.`],[/^Next\.js (.+) has (\d+) known vulnerabilit(?:y|ies) \((critical|high|moderate|low|unknown)\), (?:fixed in (\S+)(?: \((one fix needs|some fixes need) Next\.js (\d+)\))?|no fix yet)\.$/,(a,b,c,d,e,f,h)=>`Next.js ${b} punya ${c} kerentanan yang diketahui (${g[d]}), ${e?`udah di-fix di ${e}${f?` (${"one fix needs"===f?"satu fix":"sebagian fix"} butuh Next.js ${h})`:""}`:"belum ada fix"}.`]]};function i(a,b){for(let[c,d]of Object.hasOwn(h,a)?h[a]:[]){let a=c.exec(b);if(a)return d(...a)}return b}a.s(["f",0,i],67890);let j={en:{open:"FIRING",repeat:"REPEAT",resolve:"RESOLVED"},id:{open:"MUNCUL",repeat:"ULANG",resolve:"PULIH"}},k={en:{critical:"critical",warning:"warning",info:"info"},id:{critical:"kritis",warning:"peringatan",info:"info"}},l={en:{firing:"firing",resolved:"resolved",since:"since",open:"Open alerts",more:"more on the Alerts page",causedBy:"caused by",incident:"reports an incident",step:"Next step",test:"test"},id:{firing:"aktif",resolved:"pulih",since:"sejak",open:"Buka Alerts",more:"lagi di halaman Alerts",causedBy:"karena",incident:"lagi ada insiden",step:"Yang perlu kamu lakukan",test:"tes"}},m=a=>a.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">"),n={critical:0,warning:1,info:2};function o(a,b){let c=a.filter(a=>"resolve"!==a.kind).length,d=a.length-c;return[c?`${c} ${l[b].firing}`:"",d?`${d} ${l[b].resolved}`:""].filter(Boolean).join(", ")}function p(a,b,c,d,e,f){let g=[...a].sort((a,b)=>("resolve"===a.kind)-("resolve"===b.kind)||n[a.severity]-n[b.severity]),h=[d],i=d.length+e.length+40;for(let a=0;a<g.length;a++){let d=c(g[a]);if(i+d.length+1>b){h.push(f(g.length-a));break}h.push(d),i+=d.length+1}return h.push(e),h.join("\n").slice(0,b)}let q={en:{CollectorStale:"the watchdog already runs the collector itself every 5 minutes. Check the job on cron-job.org and the latest Vercel deploy.",DomainExpiringSoon:"renew the domain at its registrar; Watchbell can't pay for it.",StorageAlmostFull:"delete old data or shorten retention in that database; the free tier can't add storage.",NeonComputeHigh:"cut queries or make Neon auto-suspend sooner; the quota resets at the start of the month.",FirestoreQuotaHigh:"cut Firestore reads (cache in the app); the quota resets daily.",DbQuotaHigh:"cut queries to that database until its quota resets.",ComputeHigh:"check the Pool card on the Supabase page (idle connections close automatically at 10 of 15); for CPU or disk, look for heavy queries.",DnsProxiedToVercel:"turn off the proxy (orange cloud) for that record in Cloudflare; Vercel needs DNS only.",CredentialExpiring:"create a new token and replace it in Settings → Connections before it expires.",FrameworkVulnerable:"if the app's GitHub repository isn't linked yet, link it on the app page to get an update PR from the office; or update next yourself.",CiFailing:"open the run on GitHub from the app page; Watchbell reads it once a day, so a fix shows after the next sync.",OsSecurityUpdate:"open DevOps › OS vulnerabilities for the command to copy (Watchbell never installs anything), run it on the machine, reboot for a new kernel, then Scan now.",MonitorDomainMoved:"press Update monitor on the Uptime page (or approve the proposal) so the monitor checks the new domain; the app itself is fine."},id:{CollectorStale:"watchdog udah jalanin collector sendiri tiap 5 menit. Cek job di cron-job.org dan deploy terakhir di Vercel.",DomainExpiringSoon:"perpanjang domain di registrar-nya, Watchbell nggak bisa bayar.",StorageAlmostFull:"hapus data lama atau pendekin retensi di database itu, free tier nggak bisa nambah storage.",NeonComputeHigh:"kurangin query atau percepat auto-suspend Neon, kuota reset awal bulan.",FirestoreQuotaHigh:"kurangin read Firestore (cache di app), kuota reset tiap hari.",DbQuotaHigh:"kurangin query ke database itu sampai kuotanya reset.",ComputeHigh:"cek kartu Pool di halaman Supabase (koneksi nganggur ditutup otomatis di 10 dari 15), kalau CPU/disk cari query yang berat.",DnsProxiedToVercel:"matiin proxy (awan oranye) record itu di Cloudflare, Vercel butuh DNS only.",CredentialExpiring:"bikin token baru dan ganti di Settings → Connections sebelum habis.",FrameworkVulnerable:"kalau repo GitHub app-nya belum di-link, link di halaman app biar office bikinin PR update; atau update next sendiri.",CiFailing:"buka run-nya di GitHub dari halaman app; Watchbell baca sekali sehari, jadi fix-nya kelihatan setelah sync berikutnya.",OsSecurityUpdate:"buka DevOps › OS vulnerabilities, copy perintahnya (Watchbell nggak install apa-apa sendiri), jalanin di mesinnya, reboot kalau ada kernel baru, terus Scan now.",MonitorDomainMoved:"pencet Update monitor di halaman Uptime (atau approve usulannya) biar monitor ngecek domain baru; app-nya sendiri aman."}},r=(a,b="en")=>Object.hasOwn(q[b],a)?q[b][a]??null:null;a.s(["Z",0,k,"l",0,function(a,d,e,f="en",g={},h={}){let n=`${e.replace(/\/+$/,"")}/alerts`,q=l[f],s=a=>`${j[f][a.kind]} \xb7 ${k[f][a.severity]} \xb7 `,t=a=>h.test?c.I[f]:"id"===f?i(a.ruleKey,a.message):a.message,u=h.test?`Watchbell (${q.test})`:"Watchbell",v=a=>"resolve"===a.kind?null:((a,b="en")=>{let c=r(a,b);return c?`${l[b].step}: ${c}`:null})(a.ruleKey,f),w=a=>[a.causedBy?`${q.causedBy} ${a.causedBy}`:"",a.provider?`${a.provider} ${q.incident}`:""].filter(Boolean).join(" · "),x=a=>`
|
|
2
|
-
+${a} ${q.more}`,y=(a,d)=>{let e=Object.hasOwn(g,a.ruleKey)?g[a.ruleKey]?.[f]:void 0;if(!e)return null;let[h="",...i]=(0,c.l)(e,{status:j[f][a.kind],severity:k[f][a.severity],rule:a.ruleKey,target:d(a.title),detail:d(t(a)),cause:d(w(a)),step:"resolve"===a.kind?"":r(a.ruleKey,f)??"",since:`${(0,b.U)(a.startedAt)} ${(0,b.J)(a.startedAt)}`,threshold:null==a.threshold?"":a.threshold.toLocaleString("en-US")}).split("\n");return[h,i.join("\n")]},z=a=>a.replace(/[*_`~|\[\]<>]/g,"");return{telegram:p(a,4096,a=>{let c=y(a,a=>a);return c?`
|
|
3
|
-
<b>${m(c[0])}</b>${c[1]?`
|
|
4
|
-
${m(c[1])}`:""}`:`
|
|
5
|
-
<b>${s(a)}${m(a.ruleKey)} \xb7 ${m(a.title)}</b>
|
|
6
|
-
${m(t(a))}${w(a)?`
|
|
7
|
-
<i>${m(w(a))}</i>`:""}${v(a)?`
|
|
8
|
-
👉 ${m(v(a))}`:""}
|
|
9
|
-
${q.since} ${(0,b.U)(a.startedAt)} ${(0,b.J)(a.startedAt)}`},`<b>${u}</b>: ${o(a,f)} \xb7 ${(0,b.U)(d)} ${(0,b.J)(d)}`,`
|
|
10
|
-
<a href="${m(n)}">${q.open}</a>`,x),discord:p(a,2e3,a=>{let b=y(a,z);return b?`
|
|
11
|
-
**${b[0]}**${b[1]?`
|
|
12
|
-
${b[1]}`:""}`:`
|
|
13
|
-
**${s(a)}${a.ruleKey} \xb7 ${z(a.title)}**
|
|
14
|
-
${z(t(a))}${w(a)?`
|
|
15
|
-
_${w(a)}_`:""}${v(a)?`
|
|
16
|
-
👉 ${v(a)}`:""}`},`**${u}**: ${o(a,f)} \xb7 ${(0,b.U)(d)} ${(0,b.J)(d)}`,`
|
|
17
|
-
${n}`,x)}},"H",0,m,"a",0,r],192738)},49146,a=>{var b=a.i(462820),c=a.i(93321),d=a.i(530385),e=a.i(351674),f=a.i(548734),g=a.i(837137),h=a.i(192738),i=a.i(358179),j=a.i(601219),k=a.i(455317),l=a.i(247730),m=a.i(396667),n=a.i(46396),o=a.i(492665),p=a.i(390626),q=a.i(755453),r=a.i(352595),s=a.i(80997),t=a.i(718025),u=a.i(552543),v=a.i(288879),w=a.i(204784),x=a.i(446914),y=a.i(71575),z=a.i(556987),A=a.i(245710),B=a.i(910697);let C="digest.lastSentDay",D="digest.state";async function E(a){let[b]=await (0,f.f)().select().from(g.channels).where((0,c.u)(g.channels.kind,a)).limit(1);if(!b)return null;try{return{row:b,config:JSON.parse((0,i.K)({ciphertext:b.configCiphertext,iv:b.configIv},(0,o.f)().OPS_ENCRYPTION_KEY))}}catch{return null}}async function F(a,b){let c=(0,i.l)(JSON.stringify(b),(0,o.f)().OPS_ENCRYPTION_KEY),d={configCiphertext:c.ciphertext,configIv:c.iv,keyVersion:c.keyVersion,enabled:!0,lastError:null,updatedAt:new Date};await (0,f.f)().insert(g.channels).values({kind:a,...d}).onConflictDoUpdate({target:g.channels.kind,set:d})}async function G(a,b){return(await (0,f.f)().update(g.channels).set({enabled:b,updatedAt:new Date}).where((0,c.u)(g.channels.kind,a)).returning({kind:g.channels.kind})).length>0}async function H(){let a=(0,t.f)(),[b,c,d,e]=await Promise.all([E("telegram"),E("discord"),E("webhook"),E("smtp")]),f=new Set;a.telegramToken&&b?.row.enabled&&b.config?.chatId&&f.add("telegram"),c?.row.enabled&&c.config?.url&&f.add("discord"),d?.row.enabled&&d.config?.url&&f.add("webhook"),e?.row.enabled&&e.config?.host&&f.add("smtp");let g=`${(0,o.f)().SITE_URL.replace(/\/+$/,"")}/alerts`;return{send:(f,h,i)=>"telegram"===f?(0,x.I)(a.telegramToken,b.config.chatId,h):"webhook"===f?(0,q.E)(d.config,(0,q.J)(h,i??[],new Date,g)):"smtp"===f?(0,r.r)(e.config,(h.split("\n")[0]??"").replace(/[*_`~]/g,"").slice(0,150)||"Watchbell alert",h.replace(/\*\*(.+?)\*\*/g,"$1").replace(/(^|[\s(])_(\S(?:.*?\S)?)_(?=[\s).,!?:;]|$)/gm,"$1$2").replace(/`([^`\n]+)`/g,"$1")):(0,p.$)(c.config.url,h),configured:f}}async function I(){let a=(0,t.f)().telegramToken;if(!a)return null;let b=await E("telegram");return b?.row.enabled&&b.config?.chatId?{token:a,chatId:b.config.chatId}:null}async function J(){let a=await E("discord");return a?.row.enabled&&a.config?.url?{url:a.config.url}:null}let K="notify.telegramThreads",L=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;async function M(a,b,c){let d=a.filter(a=>L.test(a));if(!d.length||!Number.isSafeInteger(b)||b<=0)return;let h=Object.fromEntries(d.map(a=>[a,{m:b,at:c.getTime()}])),i=c.getTime()-6048e5,j=e.B`case when jsonb_typeof(${g.settings.value}) = 'object' then ${g.settings.value} else '{}'::jsonb end`;await (0,f.f)().insert(g.settings).values({key:K,value:h}).onConflictDoUpdate({target:g.settings.key,set:{value:e.B`(select coalesce(jsonb_object_agg(e.key, e.value), '{}'::jsonb) from jsonb_each(${JSON.stringify(h)}::jsonb || ${j}) as e
|
|
18
|
-
where jsonb_typeof(e.value) = 'object' and (e.value->>'at') ~ '^[0-9]{1,15}$' and (e.value->>'at')::bigint > ${i})`,updatedAt:c}})}async function N(a){if(!a||!L.test(a))return null;try{let[b]=await (0,f.f)().select({value:g.settings.value}).from(g.settings).where((0,c.u)(g.settings.key,K)).limit(1),d=b?.value&&"object"==typeof b.value?b.value[a]:null;return"number"==typeof d?.m&&Number.isSafeInteger(d.m)&&d.m>0?d.m:null}catch{return null}}let O=()=>(0,l.f)().catch(()=>z.a);async function P(a,b,i={}){var j;if(b-Date.now()<6e3)return{sent:0,dropped:0};let l=await (0,m.I)(),n=await (0,f.f)().select({a:g.alerts,channels:g.alertRules.channels,threshold:g.alertRules.threshold}).from(g.alerts).innerJoin(g.alertRules,(0,c.u)(g.alertRules.key,g.alerts.ruleKey)).where((0,c.b)((0,c.E)(g.alerts.pending),e.B`(${g.alerts.pending} = 'resolve') = (${g.alerts.resolvedAt} is not null)`,(0,m.s)(l))).orderBy((0,d.M)(g.alerts.pendingSince)).limit(50);if(!n.length)return{sent:0,dropped:0};let p=new Set((await (0,f.f)().update(g.alerts).set({claimedAt:a}).where((j=n.map(a=>a.a.id),(0,c.b)((0,c.y)(g.alerts.id,j),(0,c.E)(g.alerts.pending),(0,c.F)((0,c.M)(g.alerts.claimedAt),(0,c.S)(g.alerts.claimedAt,new Date(a.getTime()-12e4)))))).returning({id:g.alerts.id})).map(a=>a.id)),q=n.filter(a=>p.has(a.a.id));if(!q.length)return{sent:0,dropped:0};let{send:r,configured:s}=i.sender??await H(),t=new Set(q.filter(({a:b})=>"resolve"!==b.pending&&(b.silencedUntilResolved||null!==b.silencedUntil&&b.silencedUntil.getTime()>a.getTime())).map(({a})=>a.id)),[v,w,x]=await Promise.all([O(),(0,u.B)(),(0,k.w)()]),y=new Set;for(let b of["telegram","discord","webhook","smtp"]){if(!s.has(b))continue;let d=q.filter(a=>a.channels.includes(b)&&!t.has(a.a.id));if(!d.length)continue;let e=d.map(({a,threshold:c})=>{let d="telegram"===b?a:(0,z.o)(a,v);return{kind:a.pending,ruleKey:a.ruleKey,severity:a.severity,title:d.title,message:d.message,startedAt:a.startedAt,causedBy:d.causedBy,provider:a.providerIncident,threshold:c}}),i=(0,h.l)(e,a,(0,o.f)().SITE_URL,"webhook"===b?"en":"smtp"===b?w.email:w[b],x),j=await r(b,(0,z.G)("telegram"===b?i.telegram:i.discord),"webhook"===b?e.map(a=>({...a,title:(0,z.G)(a.title),message:(0,z.G)(a.message)})):void 0);await (0,f.f)().update(g.channels).set(j.ok?{lastSentAt:a,lastError:null}:{lastError:j.error}).where((0,c.u)(g.channels.kind,b)),j.ok&&d.forEach(({a})=>y.add(a.id)),j.ok&&"telegram"===b&&j.messageId&&await M(d.filter(({a})=>"open"===a.pending).map(({a})=>a.id),j.messageId,a).catch(()=>console.warn("notify: remembering the Telegram message failed"))}let A=0,B=0,C=[];for(let{a:b,channels:d}of q){let e=d.some(a=>s.has(a)),h=null!==b.pendingSince&&a.getTime()-b.pendingSince.getTime()>18e5;y.has(b.id)?(A++,await (0,f.f)().update(g.alerts).set({pending:null,pendingSince:null,lastNotifiedAt:a,claimedAt:null,..."open"===b.pending?{notifiedOpen:!0}:{}}).where((0,c.u)(g.alerts.id,b.id))):t.has(b.id)||!e||h?(B++,await (0,f.f)().update(g.alerts).set({pending:null,claimedAt:null}).where((0,c.u)(g.alerts.id,b.id))):C.push(b.id)}return C.length&&await (0,f.f)().update(g.alerts).set({claimedAt:null}).where((0,c.y)(g.alerts.id,C)),{sent:A,dropped:B}}async function Q(a){let b=new Date(a.getTime()-864e5),h=await (0,m.I)(),i=e.B`case ${g.alerts.severity} when 'critical' then 0 when 'warning' then 1 else 2 end`,[j,k,l,o,p]=await Promise.all([(0,f.f)().select({ruleKey:g.alerts.ruleKey,severity:g.alerts.severity,title:g.alerts.title,message:g.alerts.message,resourceId:g.alerts.resourceId,startedAt:g.alerts.startedAt}).from(g.alerts).where((0,c.b)((0,c.M)(g.alerts.resolvedAt),(0,m.s)(h))).orderBy(i,(0,d.A)(g.alerts.startedAt)).limit(50),(0,f.f)().select({n:e.B`count(*)::int`}).from(g.alerts).where((0,c.B)(g.alerts.startedAt,b)),(0,f.f)().select({ruleKey:g.alerts.ruleKey,title:g.alerts.title,resourceId:g.alerts.resourceId,startedAt:g.alerts.startedAt,resolvedAt:g.alerts.resolvedAt}).from(g.alerts).where((0,c.b)((0,c.E)(g.alerts.resolvedAt),(0,c.B)(g.alerts.resolvedAt,b))).orderBy((0,d.A)(g.alerts.resolvedAt)).limit(20),(0,f.f)().select({id:g.resources.id,name:g.resources.name}).from(g.resources).where((0,c.b)((0,c.u)(g.resources.kind,"app"),(0,c.u)(g.resources.monitored,!0),(0,c.M)(g.resources.goneAt))).orderBy(g.resources.name).limit(B.O.apps),(0,n.h)(a)]),q=o.map(a=>a.id),[r,s]=q.length?await Promise.all([(0,f.f)().select({id:g.monitors.resourceId,total:e.B`count(*)::int`,bad:e.B`(count(*) filter (where not ${g.checks.ok}))::int`}).from(g.checks).innerJoin(g.monitors,(0,c.u)(g.monitors.id,g.checks.monitorId)).where((0,c.b)((0,c.y)(g.monitors.resourceId,q),(0,c.B)(g.checks.at,b),(0,c.u)(g.checks.inMaintenance,!1))).groupBy(g.monitors.resourceId),(0,f.f)().select({id:g.storedLogs.resourceId,n:e.B`count(*)::int`}).from(g.storedLogs).where((0,c.b)((0,c.y)(g.storedLogs.resourceId,q),(0,c.B)(g.storedLogs.at,b))).groupBy(g.storedLogs.resourceId)]):[[],[]],t=new Map(r.map(a=>[a.id,a])),u=new Map(s.map(a=>[a.id,a.n])),v=await O();return{now:a,opened:k[0]?.n??0,firing:j.map(({resourceId:a,...b})=>{let c=(0,z.o)({...b,resourceId:a,causedBy:null},v);return{...b,title:c.title,message:c.message}}),resolved:l.flatMap(a=>a.resolvedAt?[{ruleKey:a.ruleKey,title:(0,z.o)({title:a.title,message:"",causedBy:null,resourceId:a.resourceId},v).title,took:(0,y.M)(a.startedAt,a.resolvedAt)}]:[]),apps:o.map(a=>{let b=t.get(a.id);return{name:a.name,uptime:b&&b.total>0?(b.total-b.bad)/b.total*100:null,errors:u.get(a.id)??0}}),providers:p.filter(a=>"ok"!==a.state).map(a=>({label:a.label,text:a.text}))}}async function R(a,b,d){await (0,f.f)().update(g.channels).set(b.ok?{lastSentAt:d,lastError:null}:{lastError:b.error}).where((0,c.u)(g.channels.kind,a))}async function S(a){let[b,c]=await Promise.all([Q(a),(0,u.I)("email")]);return(0,s.J)({...b,siteUrl:(0,o.f)().SITE_URL},c)}async function T(a,c){let d=(0,t.f)();if(!d.resendKey||!d.digestFrom)return{ok:!1,kind:"config",error:b.n.notSet("RESEND_API_KEY or DIGEST_FROM")};let e=await E("email_digest");if(!e?.config?.to)return{ok:!1,kind:"config",error:"The daily email digest isn't connected."};let f=await S(a),g=await (0,w.f)(d.resendKey,{from:d.digestFrom,to:e.config.to,subject:f.subject,html:f.html,text:f.text,idempotencyKey:c});return await R("email_digest",g,a),g}async function U(a,b={}){let d=await (0,f.f)().select().from(g.settings).where((0,c.y)(g.settings.key,[C,D])),e=d.find(a=>a.key===C)?.value,h="string"==typeof e?e:null;if(!(0,s.A)(a,h))return;let i=(0,t.f)(),k=await E("email_digest");if(!i.resendKey||!i.digestFrom||!k?.row.enabled||!k.config?.to)return;let{resendKey:l,digestFrom:m}=i,n=k.config.to,o=(0,A.x)(a),p=await (0,s.K)(a,{lastSentDay:h,state:d.find(a=>a.key===D)?.value??null,build:b.build??(()=>S(a)),send:b.send??(a=>(0,w.f)(l,{from:m,to:n,...a,idempotencyKey:`digest-${o}`}))});p.acted&&(p.result&&await R("email_digest",p.result,a),p.state?await (0,f.f)().insert(g.settings).values({key:D,value:p.state}).onConflictDoUpdate({target:g.settings.key,set:{value:p.state,updatedAt:a}}):await (0,f.f)().delete(g.settings).where((0,c.u)(g.settings.key,D)),p.sentDay&&await (0,f.f)().insert(g.settings).values({key:C,value:p.sentDay}).onConflictDoUpdate({target:g.settings.key,set:{value:p.sentDay,updatedAt:a}}),p.event&&await (0,j.f)([{type:"system",kind:"warn",message:p.event.message,detail:p.event.detail,resourceId:null,reason:"DigestFailed",at:a}]))}let V={en:{title:"Test message",message:"If you can read this, alerts reach you here."},id:{title:"Pesan tes",message:"Kalau pesan ini kebaca, alert udah nyampe ke sini."}};async function W(a,b,c={}){if("email_digest"===a)return T(b,`test-${b.getTime()}`);let{send:d,configured:e}=c.sender??await H();if(!e.has(a))return X(a);let f="webhook"===a?"en":await (0,u.I)("smtp"===a?"email":a),g=(0,h.l)([{kind:"open",ruleKey:"Test",severity:"info",...V[f],startedAt:b,causedBy:null,provider:null}],b,(0,o.f)().SITE_URL,f),i=await d(a,"telegram"===a?g.telegram:g.discord);return await R(a,i,b),i}let X=a=>({ok:!1,kind:"config",error:"telegram"===a?`Telegram isn't connected, or ${b.n.notSet("TELEGRAM_BOT_TOKEN")}`:"webhook"===a?"The webhook isn't connected.":"smtp"===a?"Email (SMTP) isn't connected.":"Discord isn't connected."});async function Y(a,b,c,d,e={}){let{send:f,configured:g}=e.sender??await H(),i=await (0,u.B)(),j=[];for(let e of a){if(!g.has(e)){j.push({kind:e,result:X(e)});continue}let a=(0,h.l)([b],d,(0,o.f)().SITE_URL,"webhook"===e?"en":"smtp"===e?i.email:i[e],c,{test:!0}),k=await f(e,(0,z.G)("telegram"===e?a.telegram:a.discord),"webhook"===e?[b]:void 0);await R(e,k,d),j.push({kind:e,result:k})}return j}async function Z(){let a=(0,t.f)(),c={telegram:a.telegramToken?null:b.n.notSet("TELEGRAM_BOT_TOKEN"),discord:null,webhook:null,smtp:null,email_digest:a.resendKey&&a.digestFrom?null:b.n.notSet("RESEND_API_KEY or DIGEST_FROM")},[d,e,f,g,h]=await Promise.all([E("telegram"),E("discord"),E("webhook"),E("smtp"),E("email_digest")]),i=(a,b)=>({kind:a,connected:null!==b,enabled:b?.row.enabled??!1,hint:b?(0,v.t)(a,b.config):null,lastSentAt:b?.row.lastSentAt??null,lastError:b?.row.lastError??null,envMissing:c[a]});return[i("telegram",d),i("discord",e),i("webhook",f),i("smtp",g),i("email_digest",h)]}a.s(["k",0,Z,"q",0,P,"G",0,J,"u",0,E,"P",0,R,"_",0,Y,"L",0,W,"y",0,G,"J",0,U,"Q",0,I,"M",0,N,"Y",0,F])},390626,755453,288879,352595,80997,718025,a=>{var b=a.i(19809),c=a.i(371289);let d=/^https:\/\/(?:(?:canary|ptb)\.)?discord(?:app)?\.com\/api\/webhooks\/\d{5,25}\/[\w-]{20,}$/;function e(a){return d.test(a.trim())?null:"Paste the whole webhook URL from Discord."}async function f(a,d,g={}){let h;if((0,c.W)())return{ok:!1,kind:"config",error:b.Y};if(e(a))return{ok:!1,kind:"config",error:"The saved Discord webhook URL isn't valid."};try{h=await (g.fetch??fetch)(a,{method:"POST",headers:{"Content-Type":"application/json"},signal:AbortSignal.timeout(g.timeoutMs??5e3),cache:"no-store",body:JSON.stringify({content:d.slice(0,2e3),username:"Watchbell",allowed_mentions:{parse:[]}})})}catch{return{ok:!1,kind:"transient",error:"Discord didn't answer."}}if(204===h.status||h.ok)return{ok:!0};if(429===h.status){let a=await h.json().catch(()=>null),b=Math.ceil(a?.retry_after??5);return{ok:!1,kind:"transient",retryAfterS:b,error:`Discord asked us to wait ${b} s.`}}return 404===h.status||401===h.status?{ok:!1,kind:"config",error:"Discord says this webhook no longer exists."}:{ok:!1,kind:h.status>=500?"transient":"config",error:`Discord returned an error (${h.status}).`}}a.s(["$",0,f,"e",0,e],390626);var g=a.i(666680),h=a.i(300794),i=a.i(261283);function j(a){let b;try{b=new URL(a.trim())}catch{return"Paste the whole address, starting with https://."}let c=(0,i._)(b);return"scheme"===c?"Use an https:// address without a user name or password in it.":"blocked"===c?"Use an address on the public internet, on port 443. Watchbell doesn't post into private networks.":null}let k={open:"firing",repeat:"repeat",resolve:"resolved"};async function l(a){return(await (0,h.lookup)(a,{all:!0})).map(a=>a.address)}async function m(a,d,e={}){let f,h;if((0,c.W)())return{ok:!1,kind:"config",error:b.Y};if(j(a.url))return{ok:!1,kind:"config",error:"The saved webhook address isn't allowed any more."};let k=new URL(a.url.trim());try{let a=await (e.lookup??l)(k.hostname);if(!a.length||a.some(i.W))return{ok:!1,kind:"config",error:"The webhook host resolves to a private address; Watchbell won't post there."}}catch{return{ok:!1,kind:"transient",error:"The webhook host didn't resolve."}}let n=JSON.stringify(d),o=String(Math.floor(Date.parse(d.sentAt)/1e3)),p={"Content-Type":"application/json","User-Agent":"Watchbell-Webhook/1.0","X-Watchbell-Timestamp":o};a.secret&&(p["X-Watchbell-Signature"]=(h=a.secret,`sha256=${(0,g.createHmac)("sha256",h).update(`${o}.${n}`).digest("hex")}`));try{f=await (e.fetch??fetch)(k.toString(),{method:"POST",headers:p,body:n,redirect:"manual",cache:"no-store",signal:AbortSignal.timeout(e.timeoutMs??5e3)})}catch{return{ok:!1,kind:"transient",error:"The webhook didn't answer."}}if(await f.body?.cancel().catch(()=>void 0),f.ok)return{ok:!0};if(f.status>=300&&f.status<400)return{ok:!1,kind:"config",error:"The webhook answered with a redirect; Watchbell doesn't follow them. Use the final address."};if(429===f.status){let a=Math.min(600,Math.max(1,Number(f.headers.get("retry-after"))||30));return{ok:!1,kind:"transient",retryAfterS:a,error:`The webhook asked to wait ${a} s.`}}return{ok:!1,kind:f.status>=500?"transient":"config",error:`The webhook returned an error (${f.status}).`}}a.s(["k",0,function(a){return""===a||a.length>=16&&a.length<=200?null:"Use a secret of 16 to 200 characters, or leave it empty."},"E",0,m,"J",0,function(a,b,c,d){return{source:"watchbell",event:b.length?"alerts":"test",sentAt:c.toISOString(),text:a.slice(0,4e3),link:d,alerts:b.slice(0,20).map(a=>({status:k[a.kind],rule:a.ruleKey,severity:a.severity,title:a.title,message:a.message,startedAt:a.startedAt.toISOString(),causedBy:a.causedBy,provider:a.provider}))}},"I",0,j],755453);var n=a.i(761095),o=a.i(685560),p=a.i(61675);function q(a){let b=new Set;return a.split(/[\s,;]+/).filter(a=>a&&!b.has(a.toLowerCase())&&b.add(a.toLowerCase()))}a.s(["a",0,10,"t",0,function(a,b){if("telegram"===a)return`${b.chatLabel||"Chat"} \xb7 …${b.chatId.slice(-4)}`;if("discord"===a){let a=/\/webhooks\/(\d+)\//.exec(b.url)?.[1]??"";return`webhook …${a.slice(-4)}`}if("webhook"===a){let a="";try{a=new URL(b.url).hostname}catch{a="?"}return`${a}/…${b.secret?" · signed":""}`}if("smtp"===a){let a=q(b.to);return`${b.host}:${b.port} \xb7 to ${(a[0]??"").slice(0,2)}…@…${a.length>1?` +${a.length-1}`:""}`}return`${b.to.slice(0,2)}…@…`},"E",0,q],288879);let r=[465,587,2525],s=p.z.email();function t(a){let b={},c=a.host.trim().toLowerCase();/^[a-z0-9.-]{3,253}$/.test(c)&&c.includes(".")?(0,i.N)(c)&&(b.host="Use a mail server on the public internet. Watchbell doesn't connect into private networks."):b.host="Enter the server name, for example smtp.office365.com.",r.includes(a.port)||(b.port="Use port 587 (STARTTLS), 465 (TLS) or 2525."),(!a.user.trim()||a.user.length>200)&&(b.user="Enter the user name the server expects (often the whole address)."),(!a.pass||a.pass.length>500)&&(b.pass="Enter the password or app password."),s.safeParse(a.from.trim()).success||(b.from="Enter the address the mail comes from.");let d=q(a.to);if(d.length)if(d.length>10)b.to="Up to 10 addresses.";else{let a=d.find(a=>!s.safeParse(a).success);a&&(b.to=`${a} isn't a valid address.`)}else b.to="Enter the address that gets the alerts.";return b}class u{socket;buf;lines;ready;waiters;onData;constructor(a){this.socket=a,this.buf="",this.lines=[],this.ready=[],this.waiters=[],this.onData=a=>this.read(a),a.on("data",this.onData)}attach(a){this.socket.off("data",this.onData),this.socket=a,a.on("data",this.onData)}read(a){let b;for(this.buf+=a.toString("utf8");(b=this.buf.indexOf("\n"))>=0;){let a=this.buf.slice(0,b).replace(/\r$/,"");if(this.buf=this.buf.slice(b+1),this.lines.push(a),/^\d{3}( |$)/.test(a)){let b={code:Number(a.slice(0,3)),text:this.lines.join("\n")};this.lines=[];let c=this.waiters.shift();c?c(b):this.ready.push(b)}}}next(){let a=this.ready.shift();return a?Promise.resolve(a):new Promise(a=>this.waiters.push(a))}send(a){this.socket.write(`${a}\r
|
|
19
|
-
`)}}class v extends Error{kind;constructor(a,b){super(a),this.kind=b}}async function w(a,d,e,f={}){let j;if((0,c.W)())return{ok:!1,kind:"config",error:b.Y};if(Object.keys(t(a)).length)return{ok:!1,kind:"config",error:"The saved mail server settings aren't valid any more."};let k=a.host.trim().toLowerCase();try{let a=await (f.lookup??(async a=>(await (0,h.lookup)(a,{all:!0})).map(a=>a.address)))(k);if(!a.length||a.some(i.W))return{ok:!1,kind:"config",error:"The mail server resolves to a private address; Watchbell won't connect there."};j=a[0]}catch{return{ok:!1,kind:"transient",error:"The mail server's name didn't resolve."}}let l=465===a.port,m=null,p=new Promise((a,b)=>setTimeout(()=>b(new v("The mail server took too long to answer.","transient")),f.timeoutMs??15e3).unref?.()),r=async()=>{var b,c,h,i;let p,r;try{m=await (f.connect??((a,b,c,d)=>new Promise((e,f)=>{let g=d?o.default.connect({host:a,port:b,servername:c}):n.default.connect({host:a,port:b});g.once(d?"secureConnect":"connect",()=>e(g)),g.once("error",f)})))(j,a.port,k,l)}catch{throw new v(`Couldn't connect to ${k}:${a.port}.`,"transient")}let s=new u(m),t=async(a,b,c="config")=>{let d=await s.next();if(!a.includes(d.code))throw new v(`The mail server refused ${b} (${d.code}).`,d.code>=400&&d.code<500?"transient":c);return d};await t([220],"the connection","transient"),s.send("EHLO watchbell");let w=await t([250],"EHLO");if(!l){if(!/^250[- ]STARTTLS\b/im.test(w.text))throw new v("The mail server doesn't offer STARTTLS on this port, so the password would go in clear. Use port 465 or a server with STARTTLS.","config");s.send("STARTTLS"),await t([220],"STARTTLS"),m=await (f.upgrade??((a,b)=>new Promise((c,d)=>{let e=o.default.connect({socket:a,servername:b});e.once("secureConnect",()=>c(e)),e.once("error",d)})))(m,k),s.attach(m),s.send("EHLO watchbell"),w=await t([250],"EHLO after STARTTLS")}s.send(`AUTH PLAIN ${Buffer.from(`\0${a.user}\0${a.pass}`,"utf8").toString("base64")}`),await t([235],"the user name or password"),s.send(`MAIL FROM:<${a.from.trim()}>`),await t([250],"the sender address");let x=q(a.to);for(let[a,b]of x.entries())s.send(`RCPT TO:<${b}>`),await t([250,251],x.length>1?`recipient ${a+1} of ${x.length}`:"the recipient address");s.send("DATA"),await t([354],"the message"),m.write(`${(b=a,c=d,h=e,i=new Date,r=Buffer.from(h.replace(/\r?\n/g,"\r\n"),"utf8").toString("base64").replace(/.{1,76}/g,"$&\r\n"),[`From: Watchbell <${b.from.trim()}>`,`To: ${q(b.to).map(a=>`<${a}>`).join(", ")}`,`Subject: ${(p=c.replace(/[\r\n]+/g," ").slice(0,200),/^[\x20-\x7e]*$/.test(p)?p:`=?UTF-8?B?${Buffer.from(p,"utf8").toString("base64")}?=`)}`,`Date: ${i.toUTCString()}`,`Message-ID: <${(0,g.randomUUID)()}@watchbell>`,"MIME-Version: 1.0","Content-Type: text/plain; charset=utf-8","Content-Transfer-Encoding: base64","",r].join("\r\n"))}\r
|
|
20
|
-
.\r
|
|
21
|
-
`),await t([250],"the message"),s.send("QUIT"),await Promise.race([s.next(),new Promise(a=>setTimeout(a,2e3))])};try{return await Promise.race([r(),p]),{ok:!0}}catch(a){return a instanceof v?{ok:!1,kind:a.kind,error:a.message}:{ok:!1,kind:"transient",error:"The mail server closed the connection."}}finally{m?.destroy()}}a.s(["r",0,w,"t",0,t],352595);var x=a.i(192738),y=a.i(67890),z=a.i(245710),A=a.i(469762),B=a.i(556987);function C(a,b){return(0,z.M)(a,b)&&(0,z.z)(a).hour>=7}let D={en:{firing:"firing",opened:"opened",resolved:"resolved",last24:"in the last 24 hours.",stillHead:"Still firing",noFiring:"Nothing is firing.",resolvedHead:"Resolved",noResolved:"Nothing resolved.",appsHead:"Applications (24 h)",providersHead:"Providers",open:"Open alerts",after:"after",up:"up",took:a=>a,noChecks:"no checks",errors:a=>`${a} stored error${1===a?"":"s"}`},id:{firing:"aktif",opened:"baru",resolved:"pulih",last24:"dalam 24 jam terakhir.",stillHead:"Masih aktif",noFiring:"Nggak ada yang aktif.",resolvedHead:"Pulih",noResolved:"Nggak ada yang pulih.",appsHead:"Aplikasi (24 jam)",providersHead:"Provider",open:"Buka Alerts",after:"setelah",up:"aktif",took:a=>a.replace(/\b(\d+) min\b/g,"$1 menit").replace(/\b(\d+) h\b/g,"$1 jam").replace(/\b(\d+) d\b/g,"$1 hari"),noChecks:"belum ada cek",errors:a=>`${a} error tersimpan`}},E={May:"Mei",Aug:"Agu",Oct:"Okt",Dec:"Des"},F=[5,15,30,60];async function G(a,b){let c={acted:!1,state:b.state,sentDay:null,event:null,result:null};if(!C(a,b.lastSentDay))return c;let d=(0,z.x)(a),e=b.state&&b.state.day===d?b.state:null;if(e?.stopped)return{...c,state:e};if(e&&e.attempts>0){let b=(F[e.attempts-1]??F[F.length-1])*6e4;if(e.lastAttemptAt&&a.getTime()-new Date(e.lastAttemptAt).getTime()<b)return{...c,state:e}}e??={day:d,...await b.build(),attempts:0,lastAttemptAt:null,stopped:!1,lastError:null};let f=await b.send({subject:e.subject,html:e.html,text:e.text});if(f.ok)return{acted:!0,state:null,sentDay:d,event:null,result:f};let g=e.attempts+1,h="config"===f.kind||g>=5,i="config"===f.kind?`${f.error}. Fix it and the next digest goes out tomorrow.`:`${f.error} Gave up after ${g} attempts today.`;return{acted:!0,sentDay:null,result:f,state:{...e,attempts:g,lastAttemptAt:a.toISOString(),stopped:h,lastError:f.error},event:h?{message:"Daily digest not sent",detail:i}:null}}a.s(["J",0,function(a,b="en"){let c=D[b],d=`${a.siteUrl.replace(/\/+$/,"")}/alerts`,e=((a,b)=>{let{day:c,month:d}=(0,z.e)(a);return`${c} ${"id"===b?E[d]??d:d}`})(a.now,b),f=`${a.firing.length} ${c.firing}, ${a.opened} ${c.opened}, ${a.resolved.length} ${c.resolved}`,g=`Watchbell \xb7 ${e} \xb7 ${f}`,h=[...a.apps].sort((a,b)=>(a.uptime??101)-(b.uptime??101)||b.errors-a.errors||a.name.localeCompare(b.name)),i=a.firing.map(a=>`${x.Z[b][a.severity]} \xb7 ${a.ruleKey} \xb7 ${a.title}: ${"id"===b?(0,y.f)(a.ruleKey,a.message):a.message}`),j=a.resolved.map(a=>`${a.ruleKey} \xb7 ${a.title} (${c.after} ${c.took(a.took)})`),k=h.map(a=>`${a.name}: ${null===a.uptime?c.noChecks:`${(0,A.C)(a.uptime)} ${c.up}`}, ${c.errors(a.errors)}`),l=a.providers.map(a=>`${a.label}: ${a.text}`),m=[`Watchbell \xb7 ${e}`,`${f} ${c.last24}`,"",c.stillHead,...i.length?i.map(a=>`- ${a}`):[c.noFiring],"",c.resolvedHead,...j.length?j.map(a=>`- ${a}`):[c.noResolved],...k.length?["",c.appsHead,...k.map(a=>`- ${a}`)]:[],...l.length?["",c.providersHead,...l.map(a=>`- ${a}`)]:[],"",`${c.open}: ${d}`].join("\n"),n=a=>`<h3 style="font:600 14px system-ui,sans-serif;margin:18px 0 6px">${(0,x.H)(a)}</h3>`,o=(a,b)=>a.length?`<ul style="margin:0;padding-left:18px">${a.map(a=>`<li style="margin:2px 0">${(0,x.H)(a)}</li>`).join("")}</ul>`:`<p style="margin:0;color:#596170">${(0,x.H)(b)}</p>`,p=['<div style="font:14px/1.5 system-ui,sans-serif;color:#14171f;max-width:560px">',`<h2 style="font:600 16px system-ui,sans-serif;margin:0 0 4px">Watchbell \xb7 ${(0,x.H)(e)}</h2>`,`<p style="margin:0;color:#596170">${(0,x.H)(`${f} ${c.last24}`)}</p>`,n(c.stillHead),o(i,c.noFiring),n(c.resolvedHead),o(j,c.noResolved),...k.length?[n(c.appsHead),o(k,"")]:[],...l.length?[n(c.providersHead),o(l,"")]:[],`<p style="margin:18px 0 0"><a href="${(0,x.H)(d).replace(/"/g,""")}" style="color:#2f4372">${(0,x.H)(c.open)}</a></p>`,"</div>"].join("");return{subject:(0,B.G)(g),html:(0,B.G)(p),text:(0,B.G)(m)}},"A",0,C,"K",0,G],80997),a.s(["f",0,function(a=process.env){let b=a.TELEGRAM_BOT_TOKEN?.trim()??"",c=a.RESEND_API_KEY?.trim()??"",d=a.DIGEST_FROM?.trim()??"";return{telegramToken:/^\d+:[\w-]{20,}$/.test(b)?b:null,resendKey:c.startsWith("re_")?c:null,digestFrom:/<?[^\s<>@]+@[^\s<>@]+\.[^\s<>@]+>?$/.test(d)?d:null}}],718025)},552543,a=>{var b=a.i(186133);function c(a){let b=a&&"object"==typeof a?a:null,c=b?b.lang:a,d=a=>{var d;return"string"==typeof(d=b&&a in b?b[a]:c)&&"id"===d.trim().toLowerCase()?"id":"en"};return{telegram:d("telegram"),discord:d("discord"),email:d("email")}}async function d(){try{return c(await (0,b.l)())}catch{return c(null)}}async function e(a="telegram"){return(await d())[a]}a.s(["c",0,["telegram","discord","email"],"H",0,c,"I",0,e,"B",0,d,"t",0,function(a,b,c){return a[b][c]}])},204784,a=>{var b=a.i(19809),c=a.i(371289);async function d(a,e,f={}){let g;if((0,c.W)())return{ok:!1,kind:"config",error:b.Y};try{g=await (f.fetch??fetch)("https://api.resend.com/emails",{method:"POST",signal:AbortSignal.timeout(5e3),cache:"no-store",headers:{Authorization:`Bearer ${a}`,"Content-Type":"application/json","User-Agent":"OpsConsole/1.0","Idempotency-Key":e.idempotencyKey},body:JSON.stringify({from:e.from,to:[e.to],subject:e.subject,html:e.html,text:e.text})})}catch{return{ok:!1,kind:"transient",error:"Resend didn't answer."}}if(g.ok)return{ok:!0};let h=await g.json().catch(()=>null);return 429===g.status||g.status>=500?{ok:!1,kind:"transient",error:`Resend returned an error (${g.status}).`}:{ok:!1,kind:"config",error:`Resend: ${String(h?.message??g.status).slice(0,200)}`}}a.s(["f",0,d])},446914,a=>{var b=a.i(19809),c=a.i(462820),d=a.i(371289);async function e(a,c,f,g,h=5e3){let i;if((0,d.W)())return{ok:!1,code:null,description:b.Y,retryAfter:null};try{i=await g(`https://api.telegram.org/bot${a}/${c}`,{...f,signal:AbortSignal.timeout(h),cache:"no-store"})}catch{return{ok:!1,code:null,description:"Telegram didn't answer.",retryAfter:null}}let j=await i.json().catch(()=>null);return j?.ok?{ok:!0,result:j.result}:{ok:!1,code:j?.error_code??i.status,description:String(j?.description??`HTTP ${i.status}`).slice(0,200),retryAfter:j?.parameters?.retry_after??null}}async function f(a,b,c,d={}){let g="number"==typeof d.replyTo&&Number.isSafeInteger(d.replyTo)&&d.replyTo>0?{reply_parameters:{message_id:d.replyTo,allow_sending_without_reply:!0}}:{},h=await e(a,"sendMessage",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({chat_id:b,text:c,parse_mode:"HTML",link_preview_options:{is_disabled:!0},...d.replyMarkup?{reply_markup:d.replyMarkup}:{},...g})},d.fetch??fetch);if(h.ok){let a=h.result?.message_id;return"number"==typeof a&&Number.isSafeInteger(a)&&a>0?{ok:!0,messageId:a}:{ok:!0}}return 429===h.code?{ok:!1,kind:"transient",retryAfterS:h.retryAfter??30,error:`Telegram asked us to wait ${h.retryAfter??30} s.`}:null===h.code||h.code>=500?{ok:!1,kind:"transient",error:null===h.code?h.description:`Telegram returned an error (${h.code}).`}:{ok:!1,kind:"config",error:`Telegram: ${h.description}`}}async function g(a,b={}){let d=await e(a,"getUpdates?limit=20&timeout=0",{method:"GET"},b.fetch??fetch);if(!d.ok)return 409===d.code?{ok:!1,error:"This bot has a webhook set, so the console can't list chats. Remove the webhook or paste the chat id."}:401===d.code||404===d.code?{ok:!1,error:`Telegram rejected TELEGRAM_BOT_TOKEN. Check the value ${c.n.checkWhere}.`}:{ok:!1,error:"Couldn't reach Telegram. Try again."};let f=new Map;for(let a of Array.isArray(d.result)?d.result:[]){let b=a.message?.chat??a.my_chat_member?.chat??a.channel_post?.chat;b&&"number"==typeof b.id&&f.set(String(b.id),`${b.title??b.first_name??b.username??"Chat"} (${b.type??"chat"})`)}return{ok:!0,chats:[...f].map(([a,b])=>({id:a,label:b}))}}a.s(["N",0,g,"I",0,f,"z",0,e])}]})();
|
|
22
|
-
|
|
23
|
-
//# sourceMappingURL=src_lib_0nbad7vu413-f._.js.map
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
module.exports=[513701,a=>{"use strict";var b=a.i(93321),c=a.i(258261),d=a.i(351674),e=a.i(548734),f=a.i(837137),g=a.i(245710),h=a.i(968715),i=a.i(910697);let j=(a,b)=>"string"==typeof b?d.B`to_char(${a} at time zone ${b}, 'YYYY-MM-DD')`:d.B`to_char((${a} at time zone 'UTC') + ${d.B.raw(`interval '${Math.trunc(b.offsetMinutes)} minutes'`)}, 'YYYY-MM-DD')`,k=d.B.raw("2"),l=(a,b)=>d.B`(extract(epoch from date_bin(${d.B.raw(`'${a}'`)}::interval, ${b}, timestamptz '2000-01-01 00:00:00+00')) * 1000)::float8`,m=d.B`percentile_cont(0.95) within group (order by ${f.checks.latencyMs})`,n=d.B`percentile_cont(0.5) within group (order by ${f.checks.latencyMs})`,o=d.B`(count(*) filter (where not ${f.checks.ok}))::int`,p=(0,b.u)(f.checks.inMaintenance,!1),q=d.B`(count(*) filter (where ${f.checks.statusCode} >= 500))::int`,r=d.B`count(*)::int`;async function s(){let[a]=await (0,e.f)().select({h:(0,c.y)(f.rollupsHourly.hour)}).from(f.rollupsHourly);return a?.h?new Date(a.h.getTime()+36e5):null}async function t(a,b,c=(0,g.C)()){if(!a.length)return new Map;try{return await u(a,b,c)}catch(e){if(!function(a){let b=a;for(let a=0;a<4&&b&&"object"==typeof b;a++,b=b.cause){let{code:a,message:c}=b;if("22023"===a&&"string"==typeof c&&/time zone .* not recognized/i.test(c))return!0}return!1}(e))throw e;let d=globalThis;return d.__watchbellPgZoneWarned||(d.__watchbellPgZoneWarned=!0,console.warn(`Watchbell: the database doesn't know the time zone ${c}; uptime days use its current UTC offset instead.`)),u(a,b,{offsetMinutes:(0,g.c)(b)})}}async function u(a,c,l){let m=(0,g.y)((0,h.W)(c,h.F)[0]),n=await s(),o=new Date(Math.max(m.getTime(),n?.getTime()??0,c.getTime()-i.A.rawChecksMs)),p=j(f.rollupsHourly.hour,l),q=j(f.checks.at,l),[r,t]=await Promise.all([n?(0,e.f)().select({monitorId:f.rollupsHourly.monitorId,day:p,checks:d.B`sum(${f.rollupsHourly.checks})::int`,failures:d.B`sum(${f.rollupsHourly.failures})::int`,maint:d.B`sum(${f.rollupsHourly.maintenance})::int`}).from(f.rollupsHourly).where((0,b.b)((0,b.y)(f.rollupsHourly.monitorId,a),(0,b.B)(f.rollupsHourly.hour,m),(0,b.S)(f.rollupsHourly.hour,n))).groupBy(f.rollupsHourly.monitorId,k):Promise.resolve([]),(0,e.f)().select({monitorId:f.checks.monitorId,day:q,checks:d.B`(count(*) filter (where not ${f.checks.inMaintenance}))::int`,failures:d.B`(count(*) filter (where not ${f.checks.ok} and not ${f.checks.inMaintenance}))::int`,maint:d.B`(count(*) filter (where ${f.checks.inMaintenance}))::int`}).from(f.checks).where((0,b.b)((0,b.y)(f.checks.monitorId,a),(0,b.B)(f.checks.at,o))).groupBy(f.checks.monitorId,k)]);return(0,h.C)([...r,...t])}async function v(a,c){if(!a.length)return new Map;let d=i.A.responseHours,g=(0,h.D)(c,36e5,d),j=l("1 hour",f.checks.at),k=(0,b.b)((0,b.y)(f.monitors.resourceId,a),(0,b.B)(f.checks.at,new Date(g)),p),[o,q]=await Promise.all([(0,e.f)().select({appId:f.monitors.resourceId,t:j,v:m}).from(f.checks).innerJoin(f.monitors,(0,b.u)(f.monitors.id,f.checks.monitorId)).where(k).groupBy(f.monitors.resourceId,j),(0,e.f)().select({appId:f.monitors.resourceId,v:m,m:n}).from(f.checks).innerJoin(f.monitors,(0,b.u)(f.monitors.id,f.checks.monitorId)).where(k).groupBy(f.monitors.resourceId)]);return new Map(a.map(a=>[a,{hourly:(0,h.f)(o.filter(b=>b.appId===a),g,36e5,d),p95:q.find(b=>b.appId===a)?.v??null,p50:q.find(b=>b.appId===a)?.m??null}]))}async function w(a,c){let d=i.A.metricBuckets,g=(0,h.D)(c,18e5,d),j=l("30 minutes",f.checks.at),k=await (0,e.f)().select({t:j,p95:m,p50:n,s5xx:q}).from(f.checks).innerJoin(f.monitors,(0,b.u)(f.monitors.id,f.checks.monitorId)).where((0,b.b)((0,b.u)(f.monitors.resourceId,a),(0,b.B)(f.checks.at,new Date(g)),p)).groupBy(j);return{response:(0,h.f)(k.map(a=>({t:a.t,v:a.p95})),g,18e5,d),median:(0,h.f)(k.map(a=>({t:a.t,v:a.p50})),g,18e5,d),errors:(0,h.f)(k.map(a=>({t:a.t,v:a.s5xx})),g,18e5,d,0),first:g,sizeMs:18e5}}async function x(a,c){return(0,e.f)().select({at:f.deployments.createdAtProvider,sha:f.deployments.commitSha,state:f.deployments.state}).from(f.deployments).where((0,b.b)((0,b.u)(f.deployments.resourceId,a),(0,b.u)(f.deployments.target,"production"),(0,b.B)(f.deployments.createdAtProvider,c))).orderBy(f.deployments.createdAtProvider).limit(200)}async function y(a){let c=i.A.healthBuckets,d=(0,h.D)(a,288e4,c),g=new Date(d),j=(0,b.b)((0,b.u)(f.resources.monitored,!0),(0,b.M)(f.resources.goneAt)),k=l("48 minutes",f.checks.at),n=l("48 minutes",f.deployments.createdAtProvider),[s,[t],u]=await Promise.all([(0,e.f)().select({t:k,checks:r,failures:o,s5xx:q,p95:m}).from(f.checks).innerJoin(f.monitors,(0,b.u)(f.monitors.id,f.checks.monitorId)).innerJoin(f.resources,(0,b.u)(f.resources.id,f.monitors.resourceId)).where((0,b.b)(j,(0,b.B)(f.checks.at,g),p)).groupBy(k),(0,e.f)().select({checks:r,failures:o,s5xx:q,p95:m}).from(f.checks).innerJoin(f.monitors,(0,b.u)(f.monitors.id,f.checks.monitorId)).innerJoin(f.resources,(0,b.u)(f.resources.id,f.monitors.resourceId)).where((0,b.b)(j,(0,b.B)(f.checks.at,g),p)),(0,e.f)().select({t:n,n:r}).from(f.deployments).innerJoin(f.resources,(0,b.u)(f.resources.id,f.deployments.resourceId)).where((0,b.b)(j,(0,b.B)(f.deployments.createdAtProvider,g))).groupBy(n)]),v=(a,b)=>a?(a-b)/a*100:null;return{uptime:t?v(t.checks,t.failures):null,p95:t?.p95??null,s5xx:t?.s5xx??0,deploys:u.reduce((a,b)=>a+b.n,0),series:{uptime:(0,h.f)(s.map(a=>({t:a.t,v:v(a.checks,a.failures)})),d,288e4,c),p95:(0,h.f)(s.map(a=>({t:a.t,v:a.p95})),d,288e4,c),s5xx:(0,h.f)(s.map(a=>({t:a.t,v:a.s5xx})),d,288e4,c,0),deploys:(0,h.f)(u.map(a=>({t:a.t,v:a.n})),d,288e4,c,0)}}}a.s(["P",0,w,"Q",0,v,"j",0,y,"_",0,t,"M",0,x])}];
|
|
2
|
-
|
|
3
|
-
//# sourceMappingURL=src_lib_data_metrics-db_ts_0zp7x6l28a2ep._.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
(()=>{"use strict";(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,531219,e=>{let t=(0,e.i(33550).f)("outline","filter-off","FilterOff",[["path",{d:"M8 4h12v2.172a2 2 0 0 1 -.586 1.414l-3.914 3.914m-.5 3.5v4l-6 2v-8.5l-4.48 -4.928a2 2 0 0 1 -.52 -1.345v-2.227",key:"svg-0"}],["path",{d:"M3 3l18 18",key:"svg-1"}]]);e.s(["f",0,t],531219)},518716,e=>{let t=(0,e.i(33550).f)("outline","refresh","Refresh",[["path",{d:"M20 11a8.1 8.1 0 0 0 -15.5 -2m-.5 -4v4h4",key:"svg-0"}],["path",{d:"M4 13a8.1 8.1 0 0 0 15.5 2m.5 4v-4h-4",key:"svg-1"}]]);e.s(["f",0,t],518716)},225913,e=>{var t=e.i(207670);let n=e=>"boolean"==typeof e?`${e}`:0===e?"0":e,r=t.f;e.s(["f",0,(e,t)=>a=>{var i;if((null==t?void 0:t.variants)==null)return r(e,null==a?void 0:a.class,null==a?void 0:a.className);let{variants:s,defaultVariants:o}=t,l=Object.keys(s).map(e=>{let t=null==a?void 0:a[e],r=null==o?void 0:o[e];if(null===t)return null;let i=n(t)||n(r);return s[e][i]}),d=a&&Object.entries(a).reduce((e,t)=>{let[n,r]=t;return void 0===r||(e[n]=r),e},{});return r(e,l,null==t||null==(i=t.compoundVariants)?void 0:i.reduce((e,t)=>{let{class:n,className:r,...a}=t;return Object.entries(a).every(e=>{let[t,n]=e;return Array.isArray(n)?n.includes({...o,...d}[t]):({...o,...d})[t]===n})?[...e,n,r]:e},[]),null==a?void 0:a.class,null==a?void 0:a.className)}])},475432,e=>{var t=e.i(843476),n=e.i(618566),r=e.i(271645),a=e.i(846696),i=e.i(54131),s=e.i(799589),o=e.i(177106),l=e.i(856033),d=e.i(452842),u=e.i(24667),c=e.i(95187);let p=(0,c.createServerReference)("4071fce6bee49c92d3d566cbcb0e2a0c6bff81185e",c.callServer,void 0,c.findSourceMapURL,"redeployCurrentAction");var f=e.i(651626);e.s(["AppMenu",0,function({app:e}){var c;let h,[,g]=(0,r.useTransition)(),m=(0,f.f)(),x=(0,n.useRouter)(),b=(0,i.useMask)(),v=(0,s.W)(),y=(h=[{label:"Redeploy",onSelect:(c={redeploy:()=>v.open({...(0,l.f)("Redeploy",b("app",e.name),""),run:()=>p(e.id)}),viewLogs:()=>{let t;return x.push((t=e.id,`/apps/${t}?tab=logs`))},togglePause:()=>m(()=>new Promise(t=>g(async()=>{try{let t=await (0,u.f)(e.id,!e.paused);t.ok?a.c.success(t.message??""):a.c.error(t.error)}catch{a.c.error("Watchbell didn't answer. Check that it's still running, then try again.")}finally{t()}})))}).redeploy},...e.siteUrl?[{label:"Open site",href:e.siteUrl}]:[],{label:"View logs",onSelect:c.viewLogs}],e.monitorCount>0&&h.push({label:e.paused?"Resume monitors":"Pause monitors",onSelect:c.togglePause}),h);return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(o.RowMenu,{items:y,label:(0,d.J)(e.name)}),v.dialog]})}],475432)},24667,651626,e=>{var t=e.i(95187);let n=(0,t.createServerReference)("60515e1bdb1f6b213b0fc55a9702b436d7ee442857",t.callServer,void 0,t.findSourceMapURL,"pauseAppMonitors");e.s(["f",0,n],24667);var r=e.i(271645);e.s(["f",0,function(){let e=(0,r.useRef)(!1);return t=>!e.current&&(e.current=!0,t().catch(()=>void 0).finally(()=>{e.current=!1}),!0)}],651626)},46200,e=>{var t=e.i(843476),n=e.i(146874),r=e.i(239692),a=e.i(271645),i=e.i(846696),s=e.i(428325),o=e.i(500443),l=e.i(776639);e.s(["f",0,function({trigger:e,open:d,onOpenChange:u,title:c,body:p,cta:f,danger:h=!1,onConfirm:g}){let[m,x]=(0,a.useState)(!1),b=d??m,[v,y]=(0,a.useTransition)();function k(e){void 0===d&&x(e),u?.(e)}return(0,o.useHoldRefresh)(b),(0,t.jsxs)(l.N,{open:b,onOpenChange:e=>{v||k(e)},children:[void 0!==e&&((0,a.isValidElement)(e)?(0,t.jsx)(l.a,{render:e}):(0,t.jsx)(l.a,{children:e})),(0,t.jsxs)(l.d,{className:"gap-0 p-0 sm:max-w-[640px]",showCloseButton:!1,children:[(0,t.jsxs)("div",{className:"flex items-start gap-3 px-[18px] pb-2 pt-4",children:[(0,t.jsx)("span",{className:`grid size-9 shrink-0 place-items-center rounded-lg bg-sunken ${h?"text-err":"text-ink-soft"}`,children:h?(0,t.jsx)(n.f,{size:19}):(0,t.jsx)(r.f,{size:19})}),(0,t.jsxs)("div",{children:[(0,t.jsx)(l.F,{className:"text-base",children:c}),(0,t.jsx)(l.C,{className:"mt-0.5 text-[13px] text-ink-soft",children:p})]})]}),(0,t.jsxs)("div",{className:"flex flex-wrap items-center justify-end gap-2 border-t border-line px-[18px] py-3",children:[(0,t.jsx)(s.K,{onClick:()=>k(!1),disabled:v,children:"Keep as is"}),(0,t.jsx)(s.K,{variant:h?"danger":"primary",onClick:function(){y(async()=>{try{let e=await g();e.ok?(i.c.success(e.message),k(!1)):i.c.error(e.message)}catch{i.c.error("Watchbell didn't answer. Check that it's still running, then try again.")}})},disabled:v,children:v?"Working…":f})]})]})]})}])},374931,e=>{var t=e.i(843476),n=e.i(531219),r=e.i(357772),a=e.i(271645),i=e.i(54131),s=e.i(428325),o=e.i(541299),l=e.i(691106),d=e.i(975157),u=e.i(322534),c=e.i(495784);e.s(["ListFilter",0,function({placeholder:e,states:p,groups:f,head:h,rows:g,chips:m}){var x,b;let v,[y,k]=(0,a.useState)(""),[j,w]=(0,a.useState)(""),[N,S]=(0,a.useState)(""),[$,C]=(0,a.useState)(""),[R,M]=(0,a.useState)(1),z=(0,i.useMask)(),P=(x=g.map(e=>({...e,text:`${e.text} ${z("text",e.text)}`})),v=(b={text:y,state:j,group:$,tag:N}).text.trim().toLowerCase(),x.filter(e=>(!b.state||e.state===b.state)&&(!b.group||e.group===b.group)&&(!b.tag||(e.tags??[]).includes(b.tag))&&(!v||e.text.toLowerCase().includes(v)))),A=(0,c.$)(P,R),O=A.rows;A.page!==R&&M(A.page);let _=p?.find(([e])=>e===j)?.[1];return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)("div",{className:"flex flex-wrap items-center gap-2 px-[18px] pb-3 pt-3.5 max-[720px]:px-3.5",children:[(0,t.jsx)("input",{className:(0,d.f)(s.S,"w-[240px] max-[720px]:w-full"),placeholder:e,"aria-label":e,value:y,onChange:e=>{k(e.target.value),M(1)}}),p&&(0,t.jsxs)("select",{className:(0,d.f)(s.S,"w-auto"),"aria-label":"State",value:j,onChange:e=>{w(e.target.value),M(1)},children:[(0,t.jsx)("option",{value:"",children:"All states"}),p.map(([e,n])=>(0,t.jsx)("option",{value:e,children:n},e))]}),f&&f.length>1&&(0,t.jsxs)("select",{className:(0,d.f)(s.S,"w-auto"),"aria-label":"Account",value:$,onChange:e=>{C(e.target.value),M(1)},children:[(0,t.jsx)("option",{value:"",children:"All accounts"}),f.map(e=>(0,t.jsx)("option",{value:e,children:z("account",e)},e))]}),m?.map(([e,n])=>(0,t.jsx)("button",{type:"button","aria-pressed":N===e,onClick:()=>{S(N===e?"":e),M(1)},className:(0,d.f)("rounded-[5px] border px-2 py-0.5 text-[12.5px]",N===e?"border-brand bg-brand-soft text-brand":"border-line text-ink-soft hover:bg-hover"),children:n},e)),_&&(0,t.jsxs)("span",{className:"inline-flex items-center gap-1 rounded-[5px] bg-brand-soft py-px pl-2 pr-1 text-[12.5px] text-brand",children:["State: ",_,(0,t.jsx)("button",{type:"button","aria-label":"Remove filter",className:"px-0.5",onClick:()=>{w(""),M(1)},children:(0,t.jsx)(r.f,{size:13})})]}),$&&(0,t.jsxs)("span",{className:"inline-flex items-center gap-1 rounded-[5px] bg-brand-soft py-px pl-2 pr-1 text-[12.5px] text-brand",children:["Account: ",(0,t.jsx)(i.Masked,{kind:"account",real:$}),(0,t.jsx)("button",{type:"button","aria-label":"Remove account filter",className:"px-0.5",onClick:()=>{C(""),M(1)},children:(0,t.jsx)(r.f,{size:13})})]}),(0,t.jsx)("span",{role:"status",className:"ml-auto text-[12.5px] text-ink-soft",children:(0,u.O)(P.length)})]}),(0,t.jsx)("div",{className:"overflow-x-auto",children:(0,t.jsxs)("table",{className:l.o,children:[(0,t.jsx)(l.U,{head:h}),(0,t.jsx)("tbody",{children:O.map(e=>(0,t.jsx)(a.Fragment,{children:e.row},e.key))})]})}),0===P.length&&g.length>0&&(0,t.jsxs)(s.k,{icon:n.f,title:"No results",children:["Nothing matches these filters."," ",(0,t.jsx)("button",{type:"button",className:"text-brand hover:underline",onClick:()=>{k(""),w(""),C(""),S(""),M(1)},children:"Clear filters"})]}),(0,t.jsx)(o.f,{page:A.page,pages:A.pages,text:(0,c.z)(A),onPage:M})]})}],374931)},541299,495784,e=>{var t=e.i(843476),n=e.i(271645),r=e.i(428325),a=e.i(975157);function i(e,t,n=25){let r=e.length,a=Math.max(1,Math.ceil(r/n)),s=Math.min(Math.max(Number.isFinite(t)?Math.floor(t):1,1),a),o=(s-1)*n,l=e.slice(o,o+n);return{rows:l,page:s,pages:a,from:0===r?0:o+1,to:o+l.length,total:r}}e.s(["f",0,function({page:e,pages:i,text:s,onPage:o,bleed:l=!1}){let d=(0,n.useRef)(null),u=(0,n.useRef)(null);if((0,n.useEffect)(()=>{null!==u.current&&(d.current?.querySelectorAll("button")[u.current]?.focus(),u.current=null)},[e]),i<=1)return null;let c=(e,t)=>{(e<=1||e>=i)&&(u.current=t),o(e)};return(0,t.jsxs)("div",{className:(0,a.f)("flex items-center gap-2 border-t border-line px-[18px] py-2.5 text-[12.5px] text-ink-soft",l?"-mx-[18px] -mb-4 mt-2":"max-[720px]:px-3.5"),children:[(0,t.jsx)("span",{role:"status",children:s}),(0,t.jsxs)("span",{ref:d,className:"ml-auto flex gap-1.5",children:[(0,t.jsx)(r.K,{size:"sm",className:"disabled:hover:bg-surface","aria-label":"Previous page",disabled:e<=1,onClick:()=>c(e-1,1),children:"‹ Previous"}),(0,t.jsx)(r.K,{size:"sm",className:"disabled:hover:bg-surface","aria-label":"Next page",disabled:e>=i,onClick:()=>c(e+1,0),children:"Next ›"})]})]})}],541299),e.s(["k",0,function(e,t,n,r){return r<=1?null:t>0&&null!==n?n:e[0]?.id??null},"$",0,i,"f",0,function(e,t,n,r=25){let a=null===n?0:Math.max(0,e.findIndex(e=>e.id===n)),s=i(e.slice(a),t,r);return 0===a||s.page>1?{...s,shift:a}:{...i(e,1,r),shift:0}},"z",0,function(e,t=0,n=e.total){return`${e.from+t}–${e.to+t} of ${n}`}],495784)},799589,225794,e=>{var t=e.i(843476),n=e.i(271645),r=e.i(54131),a=e.i(46200),i=e.i(428325);function s(e,t=e=>e){return e.ok?{ok:!0,message:t(e.message??"Done.")}:{ok:!1,message:t(e.error)}}function o(){let e=(0,r.useMask)();return t=>s(t,t=>e("text",t))}e.s(["f",0,s],225794),e.s(["p",0,function({label:e,title:n,body:r,cta:s,danger:l=!1,run:d}){let u=o();return(0,t.jsx)(a.f,{trigger:(0,t.jsx)(i.K,{variant:l?"danger":"secondary",children:e}),title:n,body:r,cta:s,danger:l,onConfirm:async()=>u(await d())})},"W",0,function(){let[e,r]=(0,n.useState)(null),i=o(),s=e?(0,t.jsx)(a.f,{open:!0,onOpenChange:e=>{e||r(null)},title:e.title,body:e.body,cta:e.cta,danger:e.danger,onConfirm:async()=>i(await e.run())}):null;return{open:r,dialog:s}}],799589)},149039,e=>{var t=e.i(843476),n=e.i(518716),r=e.i(271645),a=e.i(846696),i=e.i(95187);let s=(0,i.createServerReference)("0050a28052a20295116dac611f11f587a8fcd042df",i.callServer,void 0,i.findSourceMapURL,"refreshNow");var o=e.i(428325);e.s(["RefreshButton",0,function(){let[e,i]=(0,r.useTransition)();return(0,t.jsxs)(o.K,{disabled:e,onClick:()=>i(async()=>{let e=await s();e.ok?a.c.success("Action sent",{description:e.message}):a.c.error(e.error)}),children:[(0,t.jsx)(n.f,{size:16,"aria-hidden":!0}),e?"Refreshing…":"Refresh now"]})}],149039)},177106,e=>{var t=e.i(843476),n=e.i(33550);let r=(0,n.f)("outline","chevron-down","ChevronDown",[["path",{d:"M6 9l6 6l6 -6",key:"svg-0"}]]),a=(0,n.f)("outline","dots-vertical","DotsVertical",[["path",{d:"M11 12a1 1 0 1 0 2 0a1 1 0 1 0 -2 0",key:"svg-0"}],["path",{d:"M11 19a1 1 0 1 0 2 0a1 1 0 1 0 -2 0",key:"svg-1"}],["path",{d:"M11 5a1 1 0 1 0 2 0a1 1 0 1 0 -2 0",key:"svg-2"}]]);var i=e.i(271645),s=e.i(428325),o=e.i(500443),l=e.i(755146);e.s(["RowMenu",0,function({items:e,button:n=!1,label:d="Actions"}){let[u,c]=(0,i.useState)(!1);return(0,o.useHoldRefresh)(u),(0,t.jsxs)(l.G,{open:u,onOpenChange:c,children:[n?(0,t.jsxs)(l.X,{className:(0,s.R)(),children:[d," ",(0,t.jsx)(r,{size:16,"aria-hidden":!0})]}):(0,t.jsx)(l.X,{"aria-label":d,className:"rounded-[5px] px-1.5 py-1 text-ink-faint hover:bg-sunken hover:text-ink focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-brand/40",children:(0,t.jsx)(a,{size:17})}),(0,t.jsx)(l.L,{align:"end",className:"min-w-[200px] rounded-[8px] border border-line-strong bg-surface p-1 shadow-[0_8px_24px_rgba(0,0,0,.14)] ring-0",children:e.map((e,n)=>"---"===e?(0,t.jsx)(l.U,{},`sep-${n}`):(0,t.jsxs)(l.r,{disabled:void 0!==e.disabled,variant:e.danger?"destructive":"default",className:"rounded-[5px] px-2.5 py-[7px]",onClick:()=>{e.href?window.open(e.href,"_blank","noopener,noreferrer"):e.onSelect?.()},children:[e.label,void 0!==e.disabled&&(0,t.jsx)("span",{className:"ml-auto pl-3 text-[11px] text-ink-faint",children:e.disabled})]},e.label))})]})}],177106)},776639,998218,152744,e=>{var t=e.i(843476),n=e.i(526323),r=e.i(828376);e.s(["f",0,r],998218);var r=r,a=e.i(209977),i=e.i(921637),s=e.i(141708),o=e.i(593480),l=e.i(309169),d=r;e.s(["f",0,d],152744);var d=r,u=e.i(975157),c=e.i(271645),p=e.i(540886),f=e.i(552245);let h=c.forwardRef(function(e,t){let{render:n,className:r,disabled:a=!1,focusableWhenDisabled:i=!1,nativeButton:s=!0,style:o,...l}=e,{getButtonProps:d,buttonRef:u}=(0,p.f)({disabled:a,focusableWhenDisabled:i,native:s});return(0,f.a)("button",e,{state:{disabled:a},ref:[t,u],props:[l,d]})}),g=(0,e.i(225913).f)("group/button inline-flex shrink-0 items-center justify-center rounded-lg border border-transparent bg-clip-padding text-sm font-medium whitespace-nowrap transition-all outline-none select-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 active:not-aria-[haspopup]:translate-y-px disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",{variants:{variant:{default:"bg-primary text-primary-foreground hover:bg-primary/80",outline:"border-border bg-background hover:bg-muted hover:text-foreground aria-expanded:bg-muted aria-expanded:text-foreground dark:border-input dark:bg-input/30 dark:hover:bg-input/50",secondary:"bg-secondary text-secondary-foreground hover:bg-[color-mix(in_oklch,var(--secondary),var(--foreground)_5%)] aria-expanded:bg-secondary aria-expanded:text-secondary-foreground",ghost:"hover:bg-muted hover:text-foreground aria-expanded:bg-muted aria-expanded:text-foreground dark:hover:bg-muted/50",destructive:"bg-destructive/10 text-destructive hover:bg-destructive/20 focus-visible:border-destructive/40 focus-visible:ring-destructive/20 dark:bg-destructive/20 dark:hover:bg-destructive/30 dark:focus-visible:ring-destructive/40",link:"text-primary underline-offset-4 hover:underline"},size:{default:"h-8 gap-1.5 px-2.5 has-data-[icon=inline-end]:pr-2 has-data-[icon=inline-start]:pl-2",xs:"h-6 gap-1 rounded-[min(var(--radius-md),10px)] px-2 text-xs in-data-[slot=button-group]:rounded-lg has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [&_svg:not([class*='size-'])]:size-3",sm:"h-7 gap-1 rounded-[min(var(--radius-md),12px)] px-2.5 text-[0.8rem] in-data-[slot=button-group]:rounded-lg has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [&_svg:not([class*='size-'])]:size-3.5",lg:"h-9 gap-1.5 px-2.5 has-data-[icon=inline-end]:pr-2 has-data-[icon=inline-start]:pl-2",icon:"size-8","icon-xs":"size-6 rounded-[min(var(--radius-md),10px)] in-data-[slot=button-group]:rounded-lg [&_svg:not([class*='size-'])]:size-3","icon-sm":"size-7 rounded-[min(var(--radius-md),12px)] in-data-[slot=button-group]:rounded-lg","icon-lg":"size-9"}},defaultVariants:{variant:"default",size:"default"}});function m({className:e,variant:n="default",size:r="default",...a}){return(0,t.jsx)(h,{"data-slot":"button",className:(0,u.f)(g({variant:n,size:r,className:e})),...a})}var x=e.i(456420);let b={name:"x",size:24,node:[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]]};b.node;let v=(0,x.f)(b);function y({...e}){return(0,t.jsx)(a.f.Portal,{"data-slot":"dialog-portal",...e})}function k({className:e,...n}){return(0,t.jsx)(s.f.Backdrop,{"data-slot":"dialog-overlay",className:(0,u.f)("fixed inset-0 isolate z-50 bg-black/40 duration-100 data-open:animate-in data-open:fade-in-0 data-closed:animate-out data-closed:fade-out-0",e),...n})}e.s(["N",0,function({...e}){return(0,t.jsx)(n.f.Root,{"data-slot":"dialog",...e})},"d",0,function({className:e,children:n,showCloseButton:r=!0,...a}){return(0,t.jsxs)(y,{children:[(0,t.jsx)(k,{}),(0,t.jsxs)(o.f.Popup,{"data-slot":"dialog-content",className:(0,u.f)("fixed top-1/2 left-1/2 z-50 grid w-full grid-cols-[minmax(0,1fr)] max-w-[calc(100%-2rem)] -translate-x-1/2 -translate-y-1/2 gap-4 rounded-xl bg-popover p-4 text-sm text-popover-foreground ring-1 ring-foreground/10 duration-100 outline-none sm:max-w-sm data-open:animate-in data-open:fade-in-0 data-closed:animate-out data-closed:fade-out-0",e),...a,children:[n,r&&(0,t.jsxs)(i.f.Close,{"data-slot":"dialog-close",render:(0,t.jsx)(m,{variant:"ghost",className:"absolute top-2 right-2",size:"icon-sm"}),children:[(0,t.jsx)(v,{}),(0,t.jsx)("span",{className:"sr-only",children:"Close"})]})]})]})},"C",0,function({className:e,...n}){return(0,t.jsx)(d.Description,{"data-slot":"dialog-description",className:(0,u.f)("text-sm text-muted-foreground *:[a]:underline *:[a]:underline-offset-3 *:[a]:hover:text-foreground",e),...n})},"F",0,function({className:e,...n}){return(0,t.jsx)(l.f.Title,{"data-slot":"dialog-title",className:(0,u.f)("font-heading text-base leading-none font-medium",e),...n})},"a",0,function({...e}){return(0,t.jsx)(r.Trigger,{"data-slot":"dialog-trigger",...e})}],776639)},70528,876195,e=>{let t=/^[A-Za-z_$][\w$]*(?:\.[A-Za-z_$][\w$]*|\[\d{1,6}\])*$/,n=new Set(["__proto__","prototype","constructor"]),r=[300,3600,86400,604800],a=[300,3600,21600];e.s(["q",0,a,"Q",0,r,"v",0,function(e){return e%604800==0?604800===e?"1 week":`${e/604800} weeks`:e%86400==0?86400===e?"1 day":`${e/86400} days`:e%3600==0?`${e/3600} h`:`${Math.max(1,Math.round(e/60))} min`}],876195);let i=/^(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})$/;function s(e){let t=i.exec(e);if(!t)return null;let n=t.slice(1).map(Number);return n.every(e=>e<=255)?n:null}function o([e,t,n]){return 0===e||10===e||127===e||e>=224||100===e&&t>=64&&t<=127||169===e&&254===t||172===e&&t>=16&&t<=31||192===e&&0===t&&0===n||192===e&&168===t||198===e&&(18===t||19===t)}function l(e){return"https:"!==e.protocol||e.username||e.password?"scheme":""!==e.port&&"443"!==e.port?"blocked":!function(e){let t=e.trim().toLowerCase();if(t.startsWith("[")&&t.endsWith("]")){let e=function(e){let t=e.split("%")[0].toLowerCase();if(!t.includes(":"))return null;if(-1!==t.lastIndexOf(".")){let e=t.lastIndexOf(":"),n=s(t.slice(e+1));if(!n)return null;t=`${t.slice(0,e+1)}${(n[0]<<8|n[1]).toString(16)}:${(n[2]<<8|n[3]).toString(16)}`}let n=t.split("::");if(n.length>2)return null;let r=e=>""===e?[]:e.split(":"),a=r(n[0]),i=2===n.length?r(n[1]):[],o=8-a.length-i.length;if(1===n.length?0!==o:o<1)return null;let l=[...a,...Array(2===n.length?o:0).fill("0"),...i];return 8===l.length&&l.every(e=>/^[0-9a-f]{1,4}$/.test(e))?l.map(e=>parseInt(e,16)):null}(t.slice(1,-1));return!e||function(e){if(e.slice(0,6).every(e=>0===e)||e.slice(0,5).every(e=>0===e)&&65535===e[5]||e.slice(0,4).every(e=>0===e)&&65535===e[4]&&0===e[5]||100===e[0]&&65435===e[1]&&e.slice(2,6).every(e=>0===e)||100===e[0]&&65435===e[1]&&1===e[2])return!0;if(8194===e[0]){let t,n;return o([(t=e[1])>>8,255&t,(n=e[2])>>8,255&n])}return(65024&e[0])==64512||(65472&e[0])==65152||(65472&e[0])==65216||(65280&e[0])==65280}(e)}if(t.endsWith(".")&&(t=t.slice(0,-1)),!t)return!0;let n=s(t);if(n)return o(n);let r=t.slice(t.lastIndexOf(".")+1);return!(!/^(\d+|0x[0-9a-f]*)$/.test(r)&&t.includes("."))||"localhost"===t||/\.(localhost|local|internal)$/.test(t)||t.endsWith(".home.arpa")}(e.hostname)?null:"blocked"}e.i(684496);let d=[3,5,10],u=/[\u0000-\u001f\u007f-\u009f]/,c=/[----]/;e.s(["L",0,d,"G",0,function(e){return null!==e.lastStatus&&e.lastError&&!/^HTTP \d{3}( · DEPLOYMENT_NOT_FOUND)?$/.test(e.lastError)?e.lastError:null},"a",0,function(e){let t={},n=String(e?.name??""),i=n.trim().replace(/\s+/g," ");!/[\p{L}\p{N}]/u.test(i)||u.test(i)||c.test(n)?t.name="Name the job, like backup job.":i.length>60&&(t.name="Keep the name to 60 characters.");let s=Number(e?.periodS);r.includes(s)||(t.periodS="Pick how often the job runs.");let o=Number(e?.graceS);return(a.includes(o)||(t.graceS="Pick a grace time."),Object.keys(t).length)?{ok:!1,fieldErrors:t}:{ok:!0,value:{name:i,periodS:s,graceS:o}}},"X",0,function(e){let r={},a=String(e?.url??"").trim(),i=null;try{i=new URL(a)}catch{i=null}i&&i.hostname&&!(a.length>2048)&&"scheme"!==l(i)?"blocked"===l(i)&&(r.url="Use a public https address."):r.url="Enter a full https:// address.";let s=String(e?.expectedStatus??"").trim();/^[1-5]\d\d$/.test(s)||(r.expectedStatus="Enter an HTTP status between 100 and 599.");let o=Number(e?.timeoutS);d.includes(o)||(r.timeoutS="Pick a timeout.");let u=String(e?.bodyContains??"").trim(),c=String(e?.jsonPath??"").trim(),p=String(e?.jsonEquals??"").trim();return(u.length>200&&(r.bodyContains="Keep the keyword under 200 characters."),!c&&p&&(r.jsonPath="Add a JSON path for the value."),c&&(c.length>100||!function(e){if(!t.test(e))return null;let r=[];for(let t of e.matchAll(/([A-Za-z_$][\w$]*)|\[(\d+)\]/g))r.push(void 0!==t[1]?t[1]:Number(t[2]));return r.some(e=>"string"==typeof e&&n.has(e))?null:r}(c)?r.jsonPath="Use dots and [0] only, like checks.db or items[0].state.":p?p.length>200&&(r.jsonEquals="Keep the value under 200 characters."):r.jsonEquals="Enter the value it must equal.",u&&!r.bodyContains&&(r.bodyContains="Use either a keyword or a JSON field.")),Object.keys(r).length||!i)?{ok:!1,fieldErrors:r}:(i.hash="",{ok:!0,value:{url:i.toString(),expectedStatus:Number(s),timeoutMs:1e3*o,bodyContains:u||null,jsonPath:c||null,jsonEquals:c?p:null}})}],70528)},856033,e=>{e.s(["f",0,function(e,t,n){switch(e){case"Redeploy":return{title:`Redeploy ${t}?`,cta:"Redeploy",danger:!1,body:"Vercel builds the current production deployment again (same commit, today's environment variables) and makes it live when the build is ready. It counts toward the 100 deployments a day on Hobby."};case"Roll back":return{title:`Roll back ${t}?`,cta:"Roll back",danger:!0,body:"Production goes back to the previous production deployment. Hobby can't go further back. Vercel then stops sending new pushes to production until you promote one again."};case"Roll back to this":return{title:`Roll back ${t} to ${n||"this deployment"}?`,cta:"Roll back",danger:!0,body:"Production goes back to this deployment. Hobby only allows the previous production deployment. Vercel then stops sending new pushes to production until you promote one again."};case"Promote":return{title:`Promote ${t} ${n}?`.replace(" ?","?"),cta:"Promote",danger:!1,body:"Production traffic moves to this production deployment and new pushes go live again (this undoes a roll back). Nothing is rebuilt."};case"Promote to production":return{title:`Promote ${t} ${n} to production?`.replace(" "," "),cta:"Promote to production",danger:!0,body:"Vercel builds this preview's commit again as a production deployment, with the production environment variables (preview-only values aren't used), and makes it live when the build is ready. It counts toward the 100 deployments a day on Hobby."};case"Cancel":return{title:"Cancel this build?",cta:"Cancel build",danger:!0,body:`The running build of ${`${t} ${n}`.trim()} stops. The current production deployment stays live.`}}}])},322534,e=>{e.i(684496),e.s(["O",0,e=>`${e} item${1===e?"":"s"}`,"J",0,function(e,t){let n=Math.max(0,t.getTime()-e.getTime());return n<6e4?"now":n<36e5?`${Math.floor(n/6e4)} min ago`:n<864e5?`${Math.floor(n/36e5)} h ago`:`${Math.floor(n/864e5)} d ago`}])},452842,e=>{e.i(203709),e.i(70528),e.i(684496),e.i(322534),e.s(["p",0,[["deployment","Deployment"],["monitor","Monitor"],["database","Database"],["system","System"],["action","Action"]],"X",0,{ok:"healthy",warn:"degraded",err:"down",idle:"idle",build:"building",paused:"paused",info:"info",fail:"failed",off:"off",unknown:"unknown",maint:"maintenance"},"J",0,(...e)=>`Actions for ${e.filter(Boolean).join(" ")}`],452842)}])})();
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
(()=>{"use strict";(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,225913,e=>{var t=e.i(207670);let n=e=>"boolean"==typeof e?`${e}`:0===e?"0":e,r=t.f;e.s(["f",0,(e,t)=>a=>{var i;if((null==t?void 0:t.variants)==null)return r(e,null==a?void 0:a.class,null==a?void 0:a.className);let{variants:o,defaultVariants:s}=t,l=Object.keys(o).map(e=>{let t=null==a?void 0:a[e],r=null==s?void 0:s[e];if(null===t)return null;let i=n(t)||n(r);return o[e][i]}),d=a&&Object.entries(a).reduce((e,t)=>{let[n,r]=t;return void 0===r||(e[n]=r),e},{});return r(e,l,null==t||null==(i=t.compoundVariants)?void 0:i.reduce((e,t)=>{let{class:n,className:r,...a}=t;return Object.entries(a).every(e=>{let[t,n]=e;return Array.isArray(n)?n.includes({...s,...d}[t]):({...s,...d})[t]===n})?[...e,n,r]:e},[]),null==a?void 0:a.class,null==a?void 0:a.className)}])},475432,e=>{var t=e.i(843476),n=e.i(618566),r=e.i(271645),a=e.i(846696),i=e.i(54131),o=e.i(799589),s=e.i(177106),l=e.i(856033),d=e.i(452842),u=e.i(24667),c=e.i(95187);let p=(0,c.createServerReference)("4071fce6bee49c92d3d566cbcb0e2a0c6bff81185e",c.callServer,void 0,c.findSourceMapURL,"redeployCurrentAction");var f=e.i(651626);e.s(["AppMenu",0,function({app:e}){var c;let g,[,h]=(0,r.useTransition)(),m=(0,f.f)(),b=(0,n.useRouter)(),v=(0,i.useMask)(),x=(0,o.W)(),y=(g=[{label:"Redeploy",onSelect:(c={redeploy:()=>x.open({...(0,l.f)("Redeploy",v("app",e.name),""),run:()=>p(e.id)}),viewLogs:()=>{let t;return b.push((t=e.id,`/apps/${t}?tab=logs`))},togglePause:()=>m(()=>new Promise(t=>h(async()=>{try{let t=await (0,u.f)(e.id,!e.paused);t.ok?a.c.success(t.message??""):a.c.error(t.error)}catch{a.c.error("Watchbell didn't answer. Check that it's still running, then try again.")}finally{t()}})))}).redeploy},...e.siteUrl?[{label:"Open site",href:e.siteUrl}]:[],{label:"View logs",onSelect:c.viewLogs}],e.monitorCount>0&&g.push({label:e.paused?"Resume monitors":"Pause monitors",onSelect:c.togglePause}),g);return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(s.RowMenu,{items:y,label:(0,d.J)(e.name)}),x.dialog]})}],475432)},24667,651626,e=>{var t=e.i(95187);let n=(0,t.createServerReference)("60515e1bdb1f6b213b0fc55a9702b436d7ee442857",t.callServer,void 0,t.findSourceMapURL,"pauseAppMonitors");e.s(["f",0,n],24667);var r=e.i(271645);e.s(["f",0,function(){let e=(0,r.useRef)(!1);return t=>!e.current&&(e.current=!0,t().catch(()=>void 0).finally(()=>{e.current=!1}),!0)}],651626)},46200,e=>{var t=e.i(843476),n=e.i(146874),r=e.i(239692),a=e.i(271645),i=e.i(846696),o=e.i(428325),s=e.i(500443),l=e.i(776639);e.s(["f",0,function({trigger:e,open:d,onOpenChange:u,title:c,body:p,cta:f,danger:g=!1,onConfirm:h}){let[m,b]=(0,a.useState)(!1),v=d??m,[x,y]=(0,a.useTransition)();function k(e){void 0===d&&b(e),u?.(e)}return(0,s.useHoldRefresh)(v),(0,t.jsxs)(l.N,{open:v,onOpenChange:e=>{x||k(e)},children:[void 0!==e&&((0,a.isValidElement)(e)?(0,t.jsx)(l.a,{render:e}):(0,t.jsx)(l.a,{children:e})),(0,t.jsxs)(l.d,{className:"gap-0 p-0 sm:max-w-[640px]",showCloseButton:!1,children:[(0,t.jsxs)("div",{className:"flex items-start gap-3 px-[18px] pb-2 pt-4",children:[(0,t.jsx)("span",{className:`grid size-9 shrink-0 place-items-center rounded-lg bg-sunken ${g?"text-err":"text-ink-soft"}`,children:g?(0,t.jsx)(n.f,{size:19}):(0,t.jsx)(r.f,{size:19})}),(0,t.jsxs)("div",{children:[(0,t.jsx)(l.F,{className:"text-base",children:c}),(0,t.jsx)(l.C,{className:"mt-0.5 text-[13px] text-ink-soft",children:p})]})]}),(0,t.jsxs)("div",{className:"flex flex-wrap items-center justify-end gap-2 border-t border-line px-[18px] py-3",children:[(0,t.jsx)(o.K,{onClick:()=>k(!1),disabled:x,children:"Keep as is"}),(0,t.jsx)(o.K,{variant:g?"danger":"primary",onClick:function(){y(async()=>{try{let e=await h();e.ok?(i.c.success(e.message),k(!1)):i.c.error(e.message)}catch{i.c.error("Watchbell didn't answer. Check that it's still running, then try again.")}})},disabled:x,children:x?"Working…":f})]})]})]})}])},541299,495784,e=>{var t=e.i(843476),n=e.i(271645),r=e.i(428325),a=e.i(975157);function i(e,t,n=25){let r=e.length,a=Math.max(1,Math.ceil(r/n)),o=Math.min(Math.max(Number.isFinite(t)?Math.floor(t):1,1),a),s=(o-1)*n,l=e.slice(s,s+n);return{rows:l,page:o,pages:a,from:0===r?0:s+1,to:s+l.length,total:r}}e.s(["f",0,function({page:e,pages:i,text:o,onPage:s,bleed:l=!1}){let d=(0,n.useRef)(null),u=(0,n.useRef)(null);if((0,n.useEffect)(()=>{null!==u.current&&(d.current?.querySelectorAll("button")[u.current]?.focus(),u.current=null)},[e]),i<=1)return null;let c=(e,t)=>{(e<=1||e>=i)&&(u.current=t),s(e)};return(0,t.jsxs)("div",{className:(0,a.f)("flex items-center gap-2 border-t border-line px-[18px] py-2.5 text-[12.5px] text-ink-soft",l?"-mx-[18px] -mb-4 mt-2":"max-[720px]:px-3.5"),children:[(0,t.jsx)("span",{role:"status",children:o}),(0,t.jsxs)("span",{ref:d,className:"ml-auto flex gap-1.5",children:[(0,t.jsx)(r.K,{size:"sm",className:"disabled:hover:bg-surface","aria-label":"Previous page",disabled:e<=1,onClick:()=>c(e-1,1),children:"‹ Previous"}),(0,t.jsx)(r.K,{size:"sm",className:"disabled:hover:bg-surface","aria-label":"Next page",disabled:e>=i,onClick:()=>c(e+1,0),children:"Next ›"})]})]})}],541299),e.s(["k",0,function(e,t,n,r){return r<=1?null:t>0&&null!==n?n:e[0]?.id??null},"$",0,i,"f",0,function(e,t,n,r=25){let a=null===n?0:Math.max(0,e.findIndex(e=>e.id===n)),o=i(e.slice(a),t,r);return 0===a||o.page>1?{...o,shift:a}:{...i(e,1,r),shift:0}},"z",0,function(e,t=0,n=e.total){return`${e.from+t}–${e.to+t} of ${n}`}],495784)},799589,225794,e=>{var t=e.i(843476),n=e.i(271645),r=e.i(54131),a=e.i(46200),i=e.i(428325);function o(e,t=e=>e){return e.ok?{ok:!0,message:t(e.message??"Done.")}:{ok:!1,message:t(e.error)}}function s(){let e=(0,r.useMask)();return t=>o(t,t=>e("text",t))}e.s(["f",0,o],225794),e.s(["p",0,function({label:e,title:n,body:r,cta:o,danger:l=!1,run:d}){let u=s();return(0,t.jsx)(a.f,{trigger:(0,t.jsx)(i.K,{variant:l?"danger":"secondary",children:e}),title:n,body:r,cta:o,danger:l,onConfirm:async()=>u(await d())})},"W",0,function(){let[e,r]=(0,n.useState)(null),i=s(),o=e?(0,t.jsx)(a.f,{open:!0,onOpenChange:e=>{e||r(null)},title:e.title,body:e.body,cta:e.cta,danger:e.danger,onConfirm:async()=>i(await e.run())}):null;return{open:r,dialog:o}}],799589)},177106,e=>{var t=e.i(843476),n=e.i(33550);let r=(0,n.f)("outline","chevron-down","ChevronDown",[["path",{d:"M6 9l6 6l6 -6",key:"svg-0"}]]),a=(0,n.f)("outline","dots-vertical","DotsVertical",[["path",{d:"M11 12a1 1 0 1 0 2 0a1 1 0 1 0 -2 0",key:"svg-0"}],["path",{d:"M11 19a1 1 0 1 0 2 0a1 1 0 1 0 -2 0",key:"svg-1"}],["path",{d:"M11 5a1 1 0 1 0 2 0a1 1 0 1 0 -2 0",key:"svg-2"}]]);var i=e.i(271645),o=e.i(428325),s=e.i(500443),l=e.i(755146);e.s(["RowMenu",0,function({items:e,button:n=!1,label:d="Actions"}){let[u,c]=(0,i.useState)(!1);return(0,s.useHoldRefresh)(u),(0,t.jsxs)(l.G,{open:u,onOpenChange:c,children:[n?(0,t.jsxs)(l.X,{className:(0,o.R)(),children:[d," ",(0,t.jsx)(r,{size:16,"aria-hidden":!0})]}):(0,t.jsx)(l.X,{"aria-label":d,className:"rounded-[5px] px-1.5 py-1 text-ink-faint hover:bg-sunken hover:text-ink focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-brand/40",children:(0,t.jsx)(a,{size:17})}),(0,t.jsx)(l.L,{align:"end",className:"min-w-[200px] rounded-[8px] border border-line-strong bg-surface p-1 shadow-[0_8px_24px_rgba(0,0,0,.14)] ring-0",children:e.map((e,n)=>"---"===e?(0,t.jsx)(l.U,{},`sep-${n}`):(0,t.jsxs)(l.r,{disabled:void 0!==e.disabled,variant:e.danger?"destructive":"default",className:"rounded-[5px] px-2.5 py-[7px]",onClick:()=>{e.href?window.open(e.href,"_blank","noopener,noreferrer"):e.onSelect?.()},children:[e.label,void 0!==e.disabled&&(0,t.jsx)("span",{className:"ml-auto pl-3 text-[11px] text-ink-faint",children:e.disabled})]},e.label))})]})}],177106)},776639,998218,152744,e=>{var t=e.i(843476),n=e.i(526323),r=e.i(828376);e.s(["f",0,r],998218);var r=r,a=e.i(209977),i=e.i(921637),o=e.i(141708),s=e.i(593480),l=e.i(309169),d=r;e.s(["f",0,d],152744);var d=r,u=e.i(975157),c=e.i(271645),p=e.i(540886),f=e.i(552245);let g=c.forwardRef(function(e,t){let{render:n,className:r,disabled:a=!1,focusableWhenDisabled:i=!1,nativeButton:o=!0,style:s,...l}=e,{getButtonProps:d,buttonRef:u}=(0,p.f)({disabled:a,focusableWhenDisabled:i,native:o});return(0,f.a)("button",e,{state:{disabled:a},ref:[t,u],props:[l,d]})}),h=(0,e.i(225913).f)("group/button inline-flex shrink-0 items-center justify-center rounded-lg border border-transparent bg-clip-padding text-sm font-medium whitespace-nowrap transition-all outline-none select-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 active:not-aria-[haspopup]:translate-y-px disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",{variants:{variant:{default:"bg-primary text-primary-foreground hover:bg-primary/80",outline:"border-border bg-background hover:bg-muted hover:text-foreground aria-expanded:bg-muted aria-expanded:text-foreground dark:border-input dark:bg-input/30 dark:hover:bg-input/50",secondary:"bg-secondary text-secondary-foreground hover:bg-[color-mix(in_oklch,var(--secondary),var(--foreground)_5%)] aria-expanded:bg-secondary aria-expanded:text-secondary-foreground",ghost:"hover:bg-muted hover:text-foreground aria-expanded:bg-muted aria-expanded:text-foreground dark:hover:bg-muted/50",destructive:"bg-destructive/10 text-destructive hover:bg-destructive/20 focus-visible:border-destructive/40 focus-visible:ring-destructive/20 dark:bg-destructive/20 dark:hover:bg-destructive/30 dark:focus-visible:ring-destructive/40",link:"text-primary underline-offset-4 hover:underline"},size:{default:"h-8 gap-1.5 px-2.5 has-data-[icon=inline-end]:pr-2 has-data-[icon=inline-start]:pl-2",xs:"h-6 gap-1 rounded-[min(var(--radius-md),10px)] px-2 text-xs in-data-[slot=button-group]:rounded-lg has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [&_svg:not([class*='size-'])]:size-3",sm:"h-7 gap-1 rounded-[min(var(--radius-md),12px)] px-2.5 text-[0.8rem] in-data-[slot=button-group]:rounded-lg has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [&_svg:not([class*='size-'])]:size-3.5",lg:"h-9 gap-1.5 px-2.5 has-data-[icon=inline-end]:pr-2 has-data-[icon=inline-start]:pl-2",icon:"size-8","icon-xs":"size-6 rounded-[min(var(--radius-md),10px)] in-data-[slot=button-group]:rounded-lg [&_svg:not([class*='size-'])]:size-3","icon-sm":"size-7 rounded-[min(var(--radius-md),12px)] in-data-[slot=button-group]:rounded-lg","icon-lg":"size-9"}},defaultVariants:{variant:"default",size:"default"}});function m({className:e,variant:n="default",size:r="default",...a}){return(0,t.jsx)(g,{"data-slot":"button",className:(0,u.f)(h({variant:n,size:r,className:e})),...a})}var b=e.i(456420);let v={name:"x",size:24,node:[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]]};v.node;let x=(0,b.f)(v);function y({...e}){return(0,t.jsx)(a.f.Portal,{"data-slot":"dialog-portal",...e})}function k({className:e,...n}){return(0,t.jsx)(o.f.Backdrop,{"data-slot":"dialog-overlay",className:(0,u.f)("fixed inset-0 isolate z-50 bg-black/40 duration-100 data-open:animate-in data-open:fade-in-0 data-closed:animate-out data-closed:fade-out-0",e),...n})}e.s(["N",0,function({...e}){return(0,t.jsx)(n.f.Root,{"data-slot":"dialog",...e})},"d",0,function({className:e,children:n,showCloseButton:r=!0,...a}){return(0,t.jsxs)(y,{children:[(0,t.jsx)(k,{}),(0,t.jsxs)(s.f.Popup,{"data-slot":"dialog-content",className:(0,u.f)("fixed top-1/2 left-1/2 z-50 grid w-full grid-cols-[minmax(0,1fr)] max-w-[calc(100%-2rem)] -translate-x-1/2 -translate-y-1/2 gap-4 rounded-xl bg-popover p-4 text-sm text-popover-foreground ring-1 ring-foreground/10 duration-100 outline-none sm:max-w-sm data-open:animate-in data-open:fade-in-0 data-closed:animate-out data-closed:fade-out-0",e),...a,children:[n,r&&(0,t.jsxs)(i.f.Close,{"data-slot":"dialog-close",render:(0,t.jsx)(m,{variant:"ghost",className:"absolute top-2 right-2",size:"icon-sm"}),children:[(0,t.jsx)(x,{}),(0,t.jsx)("span",{className:"sr-only",children:"Close"})]})]})]})},"C",0,function({className:e,...n}){return(0,t.jsx)(d.Description,{"data-slot":"dialog-description",className:(0,u.f)("text-sm text-muted-foreground *:[a]:underline *:[a]:underline-offset-3 *:[a]:hover:text-foreground",e),...n})},"F",0,function({className:e,...n}){return(0,t.jsx)(l.f.Title,{"data-slot":"dialog-title",className:(0,u.f)("font-heading text-base leading-none font-medium",e),...n})},"a",0,function({...e}){return(0,t.jsx)(r.Trigger,{"data-slot":"dialog-trigger",...e})}],776639)},70528,876195,e=>{let t=/^[A-Za-z_$][\w$]*(?:\.[A-Za-z_$][\w$]*|\[\d{1,6}\])*$/,n=new Set(["__proto__","prototype","constructor"]),r=[300,3600,86400,604800],a=[300,3600,21600];e.s(["q",0,a,"Q",0,r,"v",0,function(e){return e%604800==0?604800===e?"1 week":`${e/604800} weeks`:e%86400==0?86400===e?"1 day":`${e/86400} days`:e%3600==0?`${e/3600} h`:`${Math.max(1,Math.round(e/60))} min`}],876195);let i=/^(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})$/;function o(e){let t=i.exec(e);if(!t)return null;let n=t.slice(1).map(Number);return n.every(e=>e<=255)?n:null}function s([e,t,n]){return 0===e||10===e||127===e||e>=224||100===e&&t>=64&&t<=127||169===e&&254===t||172===e&&t>=16&&t<=31||192===e&&0===t&&0===n||192===e&&168===t||198===e&&(18===t||19===t)}function l(e){return"https:"!==e.protocol||e.username||e.password?"scheme":""!==e.port&&"443"!==e.port?"blocked":!function(e){let t=e.trim().toLowerCase();if(t.startsWith("[")&&t.endsWith("]")){let e=function(e){let t=e.split("%")[0].toLowerCase();if(!t.includes(":"))return null;if(-1!==t.lastIndexOf(".")){let e=t.lastIndexOf(":"),n=o(t.slice(e+1));if(!n)return null;t=`${t.slice(0,e+1)}${(n[0]<<8|n[1]).toString(16)}:${(n[2]<<8|n[3]).toString(16)}`}let n=t.split("::");if(n.length>2)return null;let r=e=>""===e?[]:e.split(":"),a=r(n[0]),i=2===n.length?r(n[1]):[],s=8-a.length-i.length;if(1===n.length?0!==s:s<1)return null;let l=[...a,...Array(2===n.length?s:0).fill("0"),...i];return 8===l.length&&l.every(e=>/^[0-9a-f]{1,4}$/.test(e))?l.map(e=>parseInt(e,16)):null}(t.slice(1,-1));return!e||function(e){if(e.slice(0,6).every(e=>0===e)||e.slice(0,5).every(e=>0===e)&&65535===e[5]||e.slice(0,4).every(e=>0===e)&&65535===e[4]&&0===e[5]||100===e[0]&&65435===e[1]&&e.slice(2,6).every(e=>0===e)||100===e[0]&&65435===e[1]&&1===e[2])return!0;if(8194===e[0]){let t,n;return s([(t=e[1])>>8,255&t,(n=e[2])>>8,255&n])}return(65024&e[0])==64512||(65472&e[0])==65152||(65472&e[0])==65216||(65280&e[0])==65280}(e)}if(t.endsWith(".")&&(t=t.slice(0,-1)),!t)return!0;let n=o(t);if(n)return s(n);let r=t.slice(t.lastIndexOf(".")+1);return!(!/^(\d+|0x[0-9a-f]*)$/.test(r)&&t.includes("."))||"localhost"===t||/\.(localhost|local|internal)$/.test(t)||t.endsWith(".home.arpa")}(e.hostname)?null:"blocked"}e.i(684496);let d=[3,5,10],u=/[\u0000-\u001f\u007f-\u009f]/,c=/[----]/;e.s(["L",0,d,"G",0,function(e){return null!==e.lastStatus&&e.lastError&&!/^HTTP \d{3}( · DEPLOYMENT_NOT_FOUND)?$/.test(e.lastError)?e.lastError:null},"a",0,function(e){let t={},n=String(e?.name??""),i=n.trim().replace(/\s+/g," ");!/[\p{L}\p{N}]/u.test(i)||u.test(i)||c.test(n)?t.name="Name the job, like backup job.":i.length>60&&(t.name="Keep the name to 60 characters.");let o=Number(e?.periodS);r.includes(o)||(t.periodS="Pick how often the job runs.");let s=Number(e?.graceS);return(a.includes(s)||(t.graceS="Pick a grace time."),Object.keys(t).length)?{ok:!1,fieldErrors:t}:{ok:!0,value:{name:i,periodS:o,graceS:s}}},"X",0,function(e){let r={},a=String(e?.url??"").trim(),i=null;try{i=new URL(a)}catch{i=null}i&&i.hostname&&!(a.length>2048)&&"scheme"!==l(i)?"blocked"===l(i)&&(r.url="Use a public https address."):r.url="Enter a full https:// address.";let o=String(e?.expectedStatus??"").trim();/^[1-5]\d\d$/.test(o)||(r.expectedStatus="Enter an HTTP status between 100 and 599.");let s=Number(e?.timeoutS);d.includes(s)||(r.timeoutS="Pick a timeout.");let u=String(e?.bodyContains??"").trim(),c=String(e?.jsonPath??"").trim(),p=String(e?.jsonEquals??"").trim();return(u.length>200&&(r.bodyContains="Keep the keyword under 200 characters."),!c&&p&&(r.jsonPath="Add a JSON path for the value."),c&&(c.length>100||!function(e){if(!t.test(e))return null;let r=[];for(let t of e.matchAll(/([A-Za-z_$][\w$]*)|\[(\d+)\]/g))r.push(void 0!==t[1]?t[1]:Number(t[2]));return r.some(e=>"string"==typeof e&&n.has(e))?null:r}(c)?r.jsonPath="Use dots and [0] only, like checks.db or items[0].state.":p?p.length>200&&(r.jsonEquals="Keep the value under 200 characters."):r.jsonEquals="Enter the value it must equal.",u&&!r.bodyContains&&(r.bodyContains="Use either a keyword or a JSON field.")),Object.keys(r).length||!i)?{ok:!1,fieldErrors:r}:(i.hash="",{ok:!0,value:{url:i.toString(),expectedStatus:Number(o),timeoutMs:1e3*s,bodyContains:u||null,jsonPath:c||null,jsonEquals:c?p:null}})}],70528)},856033,e=>{e.s(["f",0,function(e,t,n){switch(e){case"Redeploy":return{title:`Redeploy ${t}?`,cta:"Redeploy",danger:!1,body:"Vercel builds the current production deployment again (same commit, today's environment variables) and makes it live when the build is ready. It counts toward the 100 deployments a day on Hobby."};case"Roll back":return{title:`Roll back ${t}?`,cta:"Roll back",danger:!0,body:"Production goes back to the previous production deployment. Hobby can't go further back. Vercel then stops sending new pushes to production until you promote one again."};case"Roll back to this":return{title:`Roll back ${t} to ${n||"this deployment"}?`,cta:"Roll back",danger:!0,body:"Production goes back to this deployment. Hobby only allows the previous production deployment. Vercel then stops sending new pushes to production until you promote one again."};case"Promote":return{title:`Promote ${t} ${n}?`.replace(" ?","?"),cta:"Promote",danger:!1,body:"Production traffic moves to this production deployment and new pushes go live again (this undoes a roll back). Nothing is rebuilt."};case"Promote to production":return{title:`Promote ${t} ${n} to production?`.replace(" "," "),cta:"Promote to production",danger:!0,body:"Vercel builds this preview's commit again as a production deployment, with the production environment variables (preview-only values aren't used), and makes it live when the build is ready. It counts toward the 100 deployments a day on Hobby."};case"Cancel":return{title:"Cancel this build?",cta:"Cancel build",danger:!0,body:`The running build of ${`${t} ${n}`.trim()} stops. The current production deployment stays live.`}}}])},322534,e=>{e.i(684496),e.s(["O",0,e=>`${e} item${1===e?"":"s"}`,"J",0,function(e,t){let n=Math.max(0,t.getTime()-e.getTime());return n<6e4?"now":n<36e5?`${Math.floor(n/6e4)} min ago`:n<864e5?`${Math.floor(n/36e5)} h ago`:`${Math.floor(n/864e5)} d ago`}])},452842,e=>{e.i(203709),e.i(70528),e.i(684496),e.i(322534),e.s(["p",0,[["deployment","Deployment"],["monitor","Monitor"],["database","Database"],["system","System"],["action","Action"]],"X",0,{ok:"healthy",warn:"degraded",err:"down",idle:"idle",build:"building",paused:"paused",info:"info",fail:"failed",off:"off",unknown:"unknown",maint:"maintenance"},"J",0,(...e)=>`Actions for ${e.filter(Boolean).join(" ")}`],452842)}])})();
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
(()=>{"use strict";(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,469472,e=>{let a=(0,e.i(33550).f)("outline","user-plus","UserPlus",[["path",{d:"M8 7a4 4 0 1 0 8 0a4 4 0 0 0 -8 0",key:"svg-0"}],["path",{d:"M16 19h6",key:"svg-1"}],["path",{d:"M19 16v6",key:"svg-2"}],["path",{d:"M6 21v-2a4 4 0 0 1 4 -4h4",key:"svg-3"}]]);e.s(["f",0,a],469472)},239430,e=>{var a=e.i(843476),s=e.i(271645),r=e.i(846696),t=e.i(428325),n=e.i(95187);let i=(0,n.createServerReference)("40660b6f4e9806c23bcf6914fc945d4067cfcd277f",n.callServer,void 0,n.findSourceMapURL,"setActionsRepoAction");e.s(["ActionsRepoForm",0,function({current:e}){let[n,l]=(0,s.useState)(e??""),[o,c]=(0,s.useTransition)();return(0,a.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,a.jsx)("input",{className:`${t.S} w-72 font-mono`,placeholder:"yourname/watchbell-actions",value:n,onChange:e=>l(e.target.value),"aria-label":"Actions repository"}),(0,a.jsx)(t.K,{size:"sm",onClick:()=>c(async()=>{let e=await i(n);e.ok?r.c.success(e.message??"Saved."):r.c.error(e.error)}),disabled:o||n.trim()===(e??""),children:o?"Saving…":"Save"})]})}],239430)},211032,e=>{var a=e.i(843476),s=e.i(469472),r=e.i(271645),t=e.i(846696),n=e.i(428325),i=e.i(776639),l=e.i(95187);let o=(0,l.createServerReference)("60906eb3c120f6d6b9a75b642e8afcadf778594271",l.callServer,void 0,l.findSourceMapURL,"addMember"),c=[["owner","Owner","Everything, including connections, users, and settings"],["operator","Operator","Sees everything and can redeploy, restore, wake, and silence alerts"],["viewer","Viewer","Read-only. No logs and no actions"]];function d({added:e,onDone:s}){let[l,o]=(0,r.useState)(!1),c=async()=>{try{await navigator.clipboard.writeText(e.password),o(!0)}catch{t.c.error("Couldn't copy. Select the password and copy it yourself.")}};return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsxs)("div",{className:"px-[18px] pb-2 pt-4",children:[(0,a.jsxs)(i.F,{className:"text-base",children:[e.email," was added"]}),(0,a.jsx)(i.C,{className:"mt-0.5 text-[13px] text-ink-soft",children:"Share this temporary password with them privately (not in a group chat or a ticket). It is shown only now and works for 7 days; they choose their own at their first sign-in."})]}),(0,a.jsx)("div",{className:"px-[18px] pb-3.5 pt-1.5",children:(0,a.jsxs)("div",{className:"flex items-center gap-2 rounded-lg border border-line bg-surface-2 px-3 py-2",children:[(0,a.jsx)("code",{className:"flex-1 select-all break-all font-mono text-[14px] tracking-wide","aria-label":"Temporary password",children:e.password}),(0,a.jsx)(n.K,{size:"sm",onClick:c,children:l?"Copied":"Copy"})]})}),(0,a.jsx)("div",{className:"flex justify-end gap-2 border-t border-line px-[18px] py-3",children:(0,a.jsx)(n.K,{variant:"primary",onClick:s,children:"Done"})})]})}function m({onDone:e}){let[l,p,x]=(0,r.useActionState)(async(e,a)=>{let s=await o(e,a);return s.ok||s.fieldErrors||t.c.error(s.error),s},null);if(l?.ok&&l.data)return(0,a.jsx)(d,{added:l.data,onDone:e});let h=l&&!l.ok?l.fieldErrors??{}:{};return(0,a.jsxs)("form",{action:p,children:[(0,a.jsxs)("div",{className:"flex items-start gap-3 px-[18px] pb-2 pt-4",children:[(0,a.jsx)("span",{className:"grid size-9 shrink-0 place-items-center rounded-lg bg-sunken text-ink-soft",children:(0,a.jsx)(s.f,{size:19})}),(0,a.jsxs)("div",{children:[(0,a.jsx)(i.F,{className:"text-base",children:"Add member"}),(0,a.jsx)(i.C,{className:"mt-0.5 text-[13px] text-ink-soft",children:"This creates their account with a temporary password, shown once on the next screen."})]})]}),(0,a.jsxs)("div",{className:"px-[18px] pt-1.5",children:[(0,a.jsx)(n.O,{id:"add-email",label:"Email",error:h.email,children:(0,a.jsx)("input",{id:"add-email",name:"email",type:"email",placeholder:"name@example.com",className:n.S})}),(0,a.jsxs)("fieldset",{className:"mb-3.5",children:[(0,a.jsx)("legend",{className:"mb-[5px] text-[13px] font-medium",children:"Role"}),(0,a.jsx)("div",{className:"overflow-hidden rounded-lg border border-line",children:c.map(([e,s,r])=>(0,a.jsxs)("label",{className:"flex cursor-pointer items-start gap-2.5 border-t border-line px-3 py-[9px] first:border-t-0 hover:bg-hover",children:[(0,a.jsx)("input",{type:"radio",name:"role",value:e,defaultChecked:"viewer"===e,className:"mt-[3px] accent-brand"}),(0,a.jsxs)("span",{children:[s,(0,a.jsx)("small",{className:"block text-xs text-ink-faint",children:r})]})]},e))}),h.role&&(0,a.jsx)("span",{className:"text-[12.5px] text-err",role:"alert",children:h.role})]})]}),(0,a.jsxs)("div",{className:"flex justify-end gap-2 border-t border-line px-[18px] py-3",children:[(0,a.jsx)(n.K,{onClick:e,disabled:x,children:"Cancel"}),(0,a.jsx)(n.K,{type:"submit",variant:"primary",disabled:x,children:x?"Adding…":"Add member"})]})]})}e.s(["AddMemberDialog",0,function(){let[e,s]=(0,r.useState)(!1);return(0,a.jsxs)(i.N,{open:e,onOpenChange:s,children:[(0,a.jsx)(i.a,{render:(0,a.jsx)(n.K,{variant:"primary",size:"sm",className:"ml-auto"}),children:"Add member"}),(0,a.jsx)(i.d,{className:"gap-0 p-0 sm:max-w-[640px]",showCloseButton:!1,children:(0,a.jsx)(m,{onDone:()=>s(!1)})})]})}],211032)},92267,e=>{var a=e.i(843476),s=e.i(271645),r=e.i(846696),t=e.i(46200),n=e.i(428325);let i={qstashPerDay:1e3,webAnalyticsEvents:5e4,vercelInvocations:1e6,vercelCpuHours:4,vercelMemoryGbH:360,warnPct:70,errPct:90},l=[{key:"qstashPerDay",label:"Upstash QStash messages",unit:"a day",min:1,max:1e7},{key:"webAnalyticsEvents",label:"Vercel Web Analytics events",unit:"a month",min:1,max:1e8},{key:"vercelInvocations",label:"Vercel function invocations",unit:"a month",min:1,max:1e9},{key:"vercelCpuHours",label:"Vercel active CPU",unit:"hours a month",min:1,max:1e4},{key:"vercelMemoryGbH",label:"Vercel provisioned memory",unit:"GB-hours a month",min:1,max:1e5},{key:"warnPct",label:"Warn from",unit:"% used",min:10,max:99},{key:"errPct",label:"Alarm from",unit:"% used",min:11,max:100}];var o=e.i(975157),c=e.i(95187);let d=(0,c.createServerReference)("009aec1247f9f1a543e47b94a9d7f1f3b183c2ee3b",c.callServer,void 0,c.findSourceMapURL,"resetBudget"),m=(0,c.createServerReference)("40f7351c10b4f8b50d1972441d8f178bdfd2c536ce",c.callServer,void 0,c.findSourceMapURL,"saveBudget"),p=e=>Object.fromEntries(l.map(a=>[a.key,String(e[a.key])]));e.s(["BudgetForm",0,function({saved:e}){let[c,x]=(0,s.useState)(p(e)),[h,u]=(0,s.useState)({}),[g,f]=(0,s.useTransition)(),v=l.some(a=>c[a.key]!==String(e[a.key])),b=l.every(a=>e[a.key]===i[a.key]);return(0,a.jsxs)("div",{children:[l.map(e=>(0,a.jsxs)("div",{className:"grid grid-cols-[260px_minmax(0,1fr)] items-center gap-4 border-b border-line py-2.5 last:border-b-0 max-[720px]:grid-cols-1 max-[720px]:gap-1",children:[(0,a.jsxs)("label",{htmlFor:`bud-${e.key}`,className:"font-medium",children:[e.label,(0,a.jsxs)("span",{className:"mt-0.5 block text-[12.5px] font-normal text-ink-soft",children:["Published free limit: ",i[e.key].toLocaleString("en-US")," ",e.unit]})]}),(0,a.jsxs)("div",{className:"min-w-0",children:[(0,a.jsxs)("span",{className:"flex items-center gap-2",children:[(0,a.jsx)("input",{id:`bud-${e.key}`,inputMode:"numeric",className:(0,o.f)(n.S,"w-[160px] font-mono text-[12.5px]"),value:c[e.key],"aria-invalid":!!h[e.key],onChange:a=>x(s=>({...s,[e.key]:a.target.value}))}),(0,a.jsx)("span",{className:"text-[12.5px] text-ink-soft",children:e.unit})]}),h[e.key]&&(0,a.jsx)("span",{className:"mt-1 block text-[12.5px] text-err",role:"alert",children:h[e.key]})]})]},e.key)),(0,a.jsxs)("div",{className:"flex flex-wrap items-center gap-2 pt-3",children:[(0,a.jsx)(n.K,{variant:"primary",onClick:function(){f(async()=>{let e=await m(c);u(e.ok?{}:e.fieldErrors??{}),e.ok?r.c.success(e.message??"Saved."):r.c.error(e.error)})},disabled:g||!v,children:g?"Saving…":"Save"}),v&&(0,a.jsx)(n.K,{variant:"ghost",onClick:()=>{x(p(e)),u({})},children:"Cancel"}),!b&&(0,a.jsx)(t.f,{trigger:(0,a.jsx)(n.K,{children:"Reset to defaults"}),title:"Reset the free tier limits?",body:"The table goes back to the published free plans as last checked.",cta:"Reset",onConfirm:async()=>{let e=await d();return e.ok&&x(p(i)),{ok:e.ok,message:(e.ok?e.message:e.error)??""}}})]})]})}],92267)},178059,e=>{var a=e.i(843476),s=e.i(469472),r=e.i(271645),t=e.i(846696),n=e.i(428325),i=e.i(776639),l=e.i(95187);let o=(0,l.createServerReference)("60194216e29d98f9b951cefecc8b1ccf3c9d43f737",l.callServer,void 0,l.findSourceMapURL,"inviteUser"),c=[["owner","Owner","Everything, including connections, users, and settings"],["operator","Operator","Sees everything and can redeploy, restore, wake, and silence alerts"],["viewer","Viewer","Read-only. No logs and no actions"]];function d({onDone:e}){let[l,m,p]=(0,r.useActionState)(async(a,s)=>{let r=await o(a,s);return r.ok?(t.c.success(r.message??"Invite saved."),e()):r.fieldErrors||t.c.error(r.error),r},null),x=l&&!l.ok?l.fieldErrors??{}:{};return(0,a.jsxs)("form",{action:m,children:[(0,a.jsxs)("div",{className:"flex items-start gap-3 px-[18px] pb-2 pt-4",children:[(0,a.jsx)("span",{className:"grid size-9 shrink-0 place-items-center rounded-lg bg-sunken text-ink-soft",children:(0,a.jsx)(s.f,{size:19})}),(0,a.jsxs)("div",{children:[(0,a.jsx)(i.F,{className:"text-base",children:"Invite user"}),(0,a.jsx)(i.C,{className:"mt-0.5 text-[13px] text-ink-soft",children:"They sign in at the console's sign-in page with this email. The invite lasts 7 days."})]})]}),(0,a.jsxs)("div",{className:"px-[18px] pt-1.5",children:[(0,a.jsx)(n.O,{id:"inv-email",label:"Email",error:x.email,children:(0,a.jsx)("input",{id:"inv-email",name:"email",type:"email",placeholder:"name@example.com",className:n.S})}),(0,a.jsxs)("fieldset",{className:"mb-3.5",children:[(0,a.jsx)("legend",{className:"mb-[5px] text-[13px] font-medium",children:"Role"}),(0,a.jsx)("div",{className:"overflow-hidden rounded-lg border border-line",children:c.map(([e,s,r])=>(0,a.jsxs)("label",{className:"flex cursor-pointer items-start gap-2.5 border-t border-line px-3 py-[9px] first:border-t-0 hover:bg-hover",children:[(0,a.jsx)("input",{type:"radio",name:"role",value:e,defaultChecked:"viewer"===e,className:"mt-[3px] accent-brand"}),(0,a.jsxs)("span",{children:[s,(0,a.jsx)("small",{className:"block text-xs text-ink-faint",children:r})]})]},e))}),x.role&&(0,a.jsx)("span",{className:"text-[12.5px] text-err",role:"alert",children:x.role})]})]}),(0,a.jsxs)("div",{className:"flex justify-end gap-2 border-t border-line px-[18px] py-3",children:[(0,a.jsx)(n.K,{onClick:e,disabled:p,children:"Cancel"}),(0,a.jsx)(n.K,{type:"submit",variant:"primary",disabled:p,children:p?"Saving…":"Save invite"})]})]})}e.s(["InviteDialog",0,function(){let[e,s]=(0,r.useState)(!1);return(0,a.jsxs)(i.N,{open:e,onOpenChange:s,children:[(0,a.jsx)(i.a,{render:(0,a.jsx)(n.K,{variant:"primary",size:"sm",className:"ml-auto"}),children:"Invite user"}),(0,a.jsx)(i.d,{className:"gap-0 p-0 sm:max-w-[640px]",showCloseButton:!1,children:(0,a.jsx)(d,{onDone:()=>s(!1)})})]})}],178059)},471169,e=>{var a=e.i(843476),s=e.i(271645),r=e.i(46200),t=e.i(428325);let n={owner:"Owner",operator:"Operator",viewer:"Viewer"};var i=e.i(95187);let l=(0,i.createServerReference)("604e07f53520327c0f94626d9efed7438b71d066d6",i.callServer,void 0,i.findSourceMapURL,"changeRole"),o=(0,i.createServerReference)("40470ed16bf16270d86e8030aacce34c31b9f39a82",i.callServer,void 0,i.findSourceMapURL,"removeMember"),c=(0,i.createServerReference)("40ce7f6c5672a76989fc7ccbff46541d980dc05bbc",i.callServer,void 0,i.findSourceMapURL,"revokeInvite"),d=e=>({ok:e.ok,message:(e.ok?e.message:e.error)??""});e.s(["RemoveMember",0,function({memberId:e,email:s,deletesAccount:n=!1}){return(0,a.jsx)(r.f,{trigger:(0,a.jsx)(t.K,{size:"sm",children:"Remove"}),title:`Remove ${s}?`,body:n?"They lose access right away. Their account and sessions are deleted.":"They lose access right away. Nothing else changes.",cta:"Remove",danger:!0,onConfirm:async()=>d(await o(e))})},"RevokeInvite",0,function({inviteId:e,email:s}){return(0,a.jsx)(r.f,{trigger:(0,a.jsx)(t.K,{size:"sm",children:"Withdraw"}),title:`Withdraw the invite for ${s}?`,body:"They can no longer join with the email they received.",cta:"Withdraw",danger:!0,onConfirm:async()=>d(await c(e))})},"RoleSelect",0,function({memberId:e,email:i,role:o}){let c,[m,p]=(0,s.useState)(o),x=(c={owner:"Owners can manage connections, users, and settings, including removing other owners.",operator:"They can redeploy, restore, wake, and silence alerts. They can't change connections, users, or settings.",viewer:"They become read-only, with no logs and no actions."},{title:"owner"===m?`Make ${i} an Owner?`:`Change ${i} to ${n[m]}?`,body:"owner"===o?`They lose access to connections, users, and settings. ${c[m]}`:c[m],cta:"owner"===m?"Make Owner":`Change to ${n[m]}`,danger:"owner"===m||"owner"===o});return(0,a.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,a.jsxs)("select",{"aria-label":`Role for ${i}`,value:m,className:"rounded-md border border-line-strong bg-surface px-2 py-1 text-[13px]",onChange:e=>p(e.target.value),children:[(0,a.jsx)("option",{value:"owner",children:"Owner"}),(0,a.jsx)("option",{value:"operator",children:"Operator"}),(0,a.jsx)("option",{value:"viewer",children:"Viewer"})]}),m!==o&&(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(r.f,{trigger:(0,a.jsx)(t.K,{size:"sm",variant:"primary",children:"Save"}),title:x.title,body:x.body,cta:x.cta,danger:x.danger,onConfirm:async()=>d(await l(e,m))}),(0,a.jsx)(t.K,{size:"sm",variant:"ghost",onClick:()=>p(o),children:"Cancel"})]})]})}],471169)},544661,e=>{var a=e.i(843476),s=e.i(271645),r=e.i(846696),t=e.i(428325),n=e.i(691106);let i={checks:[3,7,14],rollupsHourly:[60,90,180],storedLogs:[3,7,14],deployments:[30,45,60,90],events:[60,90,180],alerts:[60,90,180],collectorRuns:[7,14,30],recommendationDismissals:[30,90,180]},l=Object.keys(i);var o=e.i(975157),c=e.i(95187);let d=(0,c.createServerReference)("40d5b6227c8fa0b0f70d638b0549dddb68b9497ee8",c.callServer,void 0,c.findSourceMapURL,"saveRetention");e.s(["RetentionForm",0,function({saved:e,rows:c}){let[m,p]=(0,s.useState)(e),[x,h]=(0,s.useState)({}),[u,g]=(0,s.useTransition)(),f=l.some(a=>m[a]!==e[a]);return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)("div",{className:"overflow-x-auto",children:(0,a.jsxs)("table",{className:n.o,children:[(0,a.jsx)(n.U,{head:["Data","Kept for","Notes"]}),(0,a.jsx)("tbody",{children:c.map(e=>(0,a.jsxs)("tr",{children:[(0,a.jsx)("td",{className:n.z,children:(0,a.jsx)("label",{htmlFor:`ret-${e.key}`,children:e.kind})}),(0,a.jsxs)("td",{className:n.z,children:[(0,a.jsx)("select",{id:`ret-${e.key}`,className:(0,o.f)(t.S,"w-[130px]"),value:m[e.key],"aria-invalid":!!x[e.key],onChange:a=>p(s=>({...s,[e.key]:Number(a.target.value)})),children:i[e.key].map(e=>(0,a.jsxs)("option",{value:e,children:[e," days"]},e))}),x[e.key]&&(0,a.jsx)("span",{className:"mt-1 block text-[12.5px] text-err",role:"alert",children:x[e.key]})]}),(0,a.jsx)("td",{className:`${n.z} whitespace-normal text-ink-soft`,children:e.note})]},e.key))})]})}),(0,a.jsxs)("div",{className:"flex items-center gap-2 px-[18px] py-3",children:[(0,a.jsx)(t.K,{variant:"primary",onClick:function(){g(async()=>{let e=await d(Object.fromEntries(l.map(e=>[e,String(m[e])])));h(e.ok?{}:e.fieldErrors??{}),e.ok?r.c.success(e.message??"Saved."):r.c.error(e.error)})},disabled:u||!f,children:u?"Saving…":"Save"}),f&&(0,a.jsx)(t.K,{variant:"ghost",onClick:()=>{p(e),h({})},children:"Cancel"})]})]})}],544661)},486927,e=>{var a=e.i(843476),s=e.i(271645),r=e.i(846696),t=e.i(54131),n=e.i(428325),i=e.i(364440),l=e.i(691106),o=e.i(789279);let c=/^[a-z0-9-]{3,40}$/;function d(e){return e.toLowerCase().normalize("NFKD").replace(/[^a-z0-9]+/g,"-").replace(/^-+/,"").slice(0,40).replace(/-+$/,"")||"monitor"}var m=e.i(975157),p=e.i(95187);let x=(0,p.createServerReference)("40368f5bf67aa3b5e509770ad2abe7df618205e848",p.callServer,void 0,p.findSourceMapURL,"saveStatusPageSettings"),h="min-w-0 overflow-x-auto whitespace-nowrap rounded-md border border-line bg-sunken px-2 py-1.5 font-mono text-[12.5px]";function u({id:e,label:s,help:r,error:t,children:n}){return(0,a.jsxs)("div",{className:"grid grid-cols-[260px_minmax(0,1fr)] items-center gap-4 border-b border-line py-3 last:border-b-0 max-[720px]:grid-cols-1 max-[720px]:gap-1",children:[(0,a.jsxs)("label",{htmlFor:e,className:"font-medium",children:[s,r&&(0,a.jsx)("span",{className:"mt-0.5 block text-[12.5px] font-normal text-ink-soft",children:r})]}),(0,a.jsxs)("div",{className:"min-w-0",children:[n,t&&(0,a.jsx)("span",{className:"mt-1 block text-[12.5px] text-err",role:"alert",children:t})]})]})}e.s(["StatusPageTab",0,function({settings:e,siteUrl:p}){let g=e.page,[f,v]=(0,s.useState)(g?.published??!1),[b,y]=(0,s.useState)(g?.slug??""),[j,k]=(0,s.useState)(g?.title??""),[w,N]=(0,s.useState)(g?.announcement??""),[S,C]=(0,s.useState)(e.monitors),[R,M]=(0,s.useState)({}),[T,A]=(0,s.useTransition)(),z=p.replace(/\/+$/,""),$=`${z}/s/${b||"{slug}"}`,K=S.find(e=>e.shown&&e.displayName.trim()),O=`${$}/badge/${K?d(K.displayName):"{name}"}.svg`,U=(e,a)=>C(s=>s.map(s=>s.id===e?{...s,...a}:s));return(0,a.jsxs)("div",{className:"flex flex-col gap-4",children:[(0,a.jsxs)(n.N,{title:"Public status page",children:[(0,a.jsx)(u,{id:"sp-published",label:"Status page",help:"The console's only page without sign-in. It shows the names you choose, the current state, 90-day bars and maintenance. Never addresses, error text or provider names.",children:(0,a.jsxs)("label",{className:"inline-flex items-center gap-1.5",children:[(0,a.jsx)("input",{id:"sp-published",type:"checkbox",className:"size-4 accent-brand",checked:f,onChange:e=>v(e.target.checked)}),"Published"]})}),(0,a.jsx)(u,{id:"sp-slug",label:"Address",help:"3–40 lowercase letters, digits or dashes.",error:R.slug,children:(0,a.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,a.jsx)("input",{id:"sp-slug",className:(0,m.f)(n.S,"max-w-[200px] font-mono text-[12.5px]"),value:b,maxLength:40,placeholder:"my-apps",autoComplete:"off",spellCheck:!1,"aria-invalid":!!R.slug,onChange:e=>y(e.target.value.toLowerCase())}),(0,a.jsx)("code",{className:h,children:(0,a.jsx)(t.MaskedText,{text:$})}),g?.published&&(0,a.jsx)("a",{className:(0,n.R)({size:"sm"}),href:`/s/${g.slug}`,target:"_blank",rel:"noopener noreferrer",children:"Preview"})]})}),(0,a.jsx)(u,{id:"sp-title",label:"Title",error:R.title,children:(0,a.jsx)("input",{id:"sp-title",className:(0,m.f)(n.S,"max-w-[320px]"),value:j,maxLength:80,placeholder:"e.g. My apps","aria-invalid":!!R.title,onChange:e=>k(e.target.value)})}),(0,a.jsx)(u,{id:"sp-note",label:"Announcement",help:"Optional. Shown at the top until you clear it.",children:(0,a.jsx)("input",{id:"sp-note",className:(0,m.f)(n.S,"max-w-[420px]"),value:w,maxLength:200,placeholder:"e.g. Moving to a new database tonight",onChange:e=>N(e.target.value)})}),(0,a.jsx)(u,{label:"Badges",help:"Uptime badge per monitor, for READMEs. Cached 5 minutes.",children:(0,a.jsx)("code",{className:(0,m.f)(h,"block"),children:(0,a.jsx)(t.MaskedText,{text:O})})})]}),(0,a.jsxs)(n.N,{title:"Monitors on the page",flush:!0,meta:`${S.filter(e=>e.shown).length} shown`,children:[(0,a.jsx)("p",{className:"px-[18px] pb-2.5 text-[12.5px] text-ink-soft",children:"Visitors see only the public name, never the app, its address or its database. The page lists them in this order."}),R.monitors&&(0,a.jsx)("p",{className:"px-[18px] pb-2.5 text-[12.5px] text-err",role:"alert",children:R.monitors}),0===S.length?(0,a.jsx)("p",{className:"px-[18px] pb-4 text-ink-soft",children:"No monitors yet. Add one on the Uptime page first."}):(0,a.jsx)("div",{className:"overflow-x-auto",children:(0,a.jsxs)("table",{className:l.o,children:[(0,a.jsx)(l.U,{head:["Show","Monitor","Public name"]}),(0,a.jsx)("tbody",{children:S.map(e=>(0,a.jsxs)("tr",{children:[(0,a.jsx)("td",{className:(0,m.f)(l.z,"w-[60px]"),children:(0,a.jsx)("input",{type:"checkbox",className:"size-4 accent-brand",checked:e.shown,"aria-label":`Show ${e.path} on the public page`,onChange:a=>U(e.id,{shown:a.target.checked})})}),(0,a.jsx)("td",{className:l.z,children:(0,a.jsxs)("span",{className:"inline-flex items-center gap-[7px]",children:[(0,a.jsx)(i.f,{kind:"mon"}),(0,a.jsxs)("span",{children:[(0,a.jsx)(t.Masked,{kind:"app",real:e.appName}),(0,a.jsx)("span",{className:"text-ink-faint",children:"heartbeat"===e.kind?` \xb7 ${e.path}`:e.path})]}),"heartbeat"===e.kind&&(0,a.jsx)(n.E,{children:"Heartbeat"})]})}),(0,a.jsx)("td",{className:l.z,children:(0,a.jsx)("input",{className:(0,m.f)(n.S,"w-[220px]"),value:e.displayName,maxLength:60,placeholder:e.shown?"Public name":"","aria-label":"Public name",disabled:!e.shown,onChange:a=>U(e.id,{displayName:a.target.value})})})]},e.id))})]})}),(0,a.jsx)("div",{className:"px-[18px] py-3",children:(0,a.jsx)(n.K,{variant:"primary",onClick:function(){var e;let a,s,t,n,i,l,m,p={slug:b,title:j,announcement:w,published:f,monitors:S.filter(e=>e.shown).map(e=>({monitorId:e.id,displayName:e.displayName}))},h=(a=p&&"object"==typeof p&&!Array.isArray(p)?p:{},s={},(t="string"==typeof(e=a.slug)&&c.test(e)?e:null)||(s.slug="Use 3–40 lowercase letters, digits or dashes."),(n=("string"==typeof a.title?a.title:"").trim().slice(0,80))||(s.title="Give the page a title."),i=("string"==typeof a.announcement?a.announcement:"").trim().slice(0,200)||null,m=((l=Array.isArray(a.monitors)?a.monitors:void 0===a.monitors?[]:null)??[]).map((e,a)=>{let s=e&&"object"==typeof e?e:{};return{monitorId:"string"==typeof s.monitorId?s.monitorId:"",displayName:("string"==typeof s.displayName?s.displayName:"").trim().slice(0,60),position:a}}),(!l||m.some(e=>!(0,o.f)(e.monitorId)||!e.displayName)?s.monitors="Every monitor needs a public name.":m.length>30?s.monitors="A status page can show at most 30 monitors.":new Set(m.map(e=>e.monitorId)).size!==m.length?s.monitors="A monitor can be on the page only once.":new Set(m.map(e=>d(e.displayName))).size!==m.length&&(s.monitors="Two monitors can't share a public name."),Object.keys(s).length||!t)?{ok:!1,fieldErrors:s}:{ok:!0,value:{slug:t,title:n,announcement:i,published:!0===a.published,monitors:m}});h.ok?(M({}),A(async()=>{let e=await x(p);if(!e.ok){M(e.fieldErrors??{}),r.c.error(e.error);return}r.c.success(e.message??"Status page saved. It updates within a minute.")})):M(h.fieldErrors)},disabled:T,children:T?"Saving…":"Save"})})]})]})}],486927)}])})();
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
(()=>{"use strict";(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,33550,e=>{var t=e.i(271645),r={outline:{xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},filled:{xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"currentColor",stroke:"none"}};e.s(["f",0,(e,a,n,i)=>{let s=(0,t.forwardRef)(({color:n="currentColor",size:s=24,stroke:l=2,title:o,className:d,children:c,...f},h)=>(0,t.createElement)("svg",{ref:h,...r[e],width:s,height:s,className:["tabler-icon",`tabler-icon-${a}`,d].filter(Boolean).join(" "),..."filled"===e?{fill:n}:{strokeWidth:l,stroke:n},...f},[o&&(0,t.createElement)("title",{key:"svg-title"},o),...i.map(([e,r])=>(0,t.createElement)(e,r)),...Array.isArray(c)?c:[c]]));return s.displayName=`${n}`,s}],33550)},344423,e=>{let t=(0,e.i(33550).f)("outline","alert-circle","AlertCircle",[["path",{d:"M3 12a9 9 0 1 0 18 0a9 9 0 0 0 -18 0",key:"svg-0"}],["path",{d:"M12 8v4",key:"svg-1"}],["path",{d:"M12 16h.01",key:"svg-2"}]]);e.s(["f",0,t],344423)},146874,e=>{let t=(0,e.i(33550).f)("outline","alert-triangle","AlertTriangle",[["path",{d:"M12 9v4",key:"svg-0"}],["path",{d:"M10.363 3.591l-8.106 13.534a1.914 1.914 0 0 0 1.636 2.871h16.214a1.914 1.914 0 0 0 1.636 -2.87l-8.106 -13.536a1.914 1.914 0 0 0 -3.274 0",key:"svg-1"}],["path",{d:"M12 16h.01",key:"svg-2"}]]);e.s(["f",0,t],146874)},785642,396455,802480,802874,e=>{var t=e.i(33550);let r=(0,t.f)("outline","circle-check","CircleCheck",[["path",{d:"M3 12a9 9 0 1 0 18 0a9 9 0 1 0 -18 0",key:"svg-0"}],["path",{d:"M9 12l2 2l4 -4",key:"svg-1"}]]);e.s(["f",0,r],785642);let a=(0,t.f)("outline","circle-dashed","CircleDashed",[["path",{d:"M8.56 3.69a9 9 0 0 0 -2.92 1.95",key:"svg-0"}],["path",{d:"M3.69 8.56a9 9 0 0 0 -.69 3.44",key:"svg-1"}],["path",{d:"M3.69 15.44a9 9 0 0 0 1.95 2.92",key:"svg-2"}],["path",{d:"M8.56 20.31a9 9 0 0 0 3.44 .69",key:"svg-3"}],["path",{d:"M15.44 20.31a9 9 0 0 0 2.92 -1.95",key:"svg-4"}],["path",{d:"M20.31 15.44a9 9 0 0 0 .69 -3.44",key:"svg-5"}],["path",{d:"M20.31 8.56a9 9 0 0 0 -1.95 -2.92",key:"svg-6"}],["path",{d:"M15.44 3.69a9 9 0 0 0 -3.44 -.69",key:"svg-7"}]]);e.s(["f",0,a],396455);let n=(0,t.f)("outline","circle-x","CircleX",[["path",{d:"M3 12a9 9 0 1 0 18 0a9 9 0 1 0 -18 0",key:"svg-0"}],["path",{d:"M10 10l4 4m0 -4l-4 4",key:"svg-1"}]]);e.s(["f",0,n],802480);let i=(0,t.f)("outline","hammer","Hammer",[["path",{d:"M11.414 10l-7.383 7.418a2.091 2.091 0 0 0 0 2.967a2.11 2.11 0 0 0 2.976 0l7.407 -7.385",key:"svg-0"}],["path",{d:"M18.121 15.293l2.586 -2.586a1 1 0 0 0 0 -1.414l-7.586 -7.586a1 1 0 0 0 -1.414 0l-2.586 2.586a1 1 0 0 0 0 1.414l7.586 7.586a1 1 0 0 0 1.414 0",key:"svg-1"}]]);e.s(["f",0,i],802874)},239692,e=>{let t=(0,e.i(33550).f)("outline","help-circle","HelpCircle",[["path",{d:"M3 12a9 9 0 1 0 18 0a9 9 0 0 0 -18 0",key:"svg-0"}],["path",{d:"M12 16v.01",key:"svg-1"}],["path",{d:"M12 13a2 2 0 0 0 .914 -3.782a1.98 1.98 0 0 0 -2.414 .483",key:"svg-2"}]]);e.s(["f",0,t],239692)},39622,e=>{let t=(0,e.i(33550).f)("outline","info-circle","InfoCircle",[["path",{d:"M3 12a9 9 0 1 0 18 0a9 9 0 0 0 -18 0",key:"svg-0"}],["path",{d:"M12 9h.01",key:"svg-1"}],["path",{d:"M11 12h1v4h1",key:"svg-2"}]]);e.s(["f",0,t],39622)},513932,e=>{let t=(0,e.i(33550).f)("outline","loader-2","Loader2",[["path",{d:"M12 3a9 9 0 1 0 9 9",key:"svg-0"}]]);e.s(["f",0,t],513932)},95187,(e,t,r)=>{Object.defineProperty(r,"__esModule",{value:!0});var a={callServer:function(){return i.callServer},createServerReference:function(){return l.createServerReference},findSourceMapURL:function(){return s.findSourceMapURL}};for(var n in a)Object.defineProperty(r,n,{enumerable:!0,get:a[n]});let i=e.r(132120),s=e.r(92245),l=e.r(235326)},982680,e=>{var t=e.i(95187);let r=(0,t.createServerReference)("00908e4a017a3eb1fa932c81866de507828f461d50",t.callServer,void 0,t.findSourceMapURL,"signOut");e.s(["f",0,r])},758298,e=>{var t=e.i(843476),r=e.i(16340),a=e.i(516171);e.s(["default",0,function({error:e,retry:n}){return(0,t.jsx)("main",{className:"grid min-h-screen place-items-center px-4 py-6",children:(0,t.jsx)("div",{className:"w-[460px] max-w-full",children:(0,t.jsx)(r.f,{digest:e.digest,retry:n,withSignOut:!0,notice:(0,a.f)(e.digest)??void 0})})})}])},16340,e=>{var t=e.i(843476),r=e.i(146874),a=e.i(982680),n=e.i(428325);e.s(["f",0,function({digest:e,retry:i,withSignOut:s=!1,note:l,notice:o}){return(0,t.jsx)(n.N,{children:(0,t.jsxs)(n.k,{icon:r.f,title:o?"Try again soon":"This page didn't load",action:(0,t.jsxs)("div",{className:"flex flex-wrap justify-center gap-2",children:[(0,t.jsx)(n.K,{variant:"primary",onClick:()=>i(),children:"Try again"}),s&&(0,t.jsx)("form",{action:a.f,children:(0,t.jsx)(n.K,{type:"submit",children:"Sign out"})})]}),children:[o??"Watchbell couldn't read its database, or a setting is missing. It keeps retrying on its own; the server log has the details (reference below).",l&&(0,t.jsx)("p",{className:"mt-2 text-xs text-ink-soft",role:"status",children:l}),e&&!o&&(0,t.jsxs)("p",{className:"mt-2 font-mono text-xs text-ink-faint",children:["Reference ",e]})]})})}])},428325,e=>{var t=e.i(843476);let r=(0,e.i(33550).f)("outline","inbox","Inbox",[["path",{d:"M4 6a2 2 0 0 1 2 -2h12a2 2 0 0 1 2 2v12a2 2 0 0 1 -2 2h-12a2 2 0 0 1 -2 -2l0 -12",key:"svg-0"}],["path",{d:"M4 13h3l3 3h4l3 -3h3",key:"svg-1"}]]);e.i(522016);var a=e.i(54131),n=e.i(220806),i=e.i(975157);function s({variant:e="secondary",size:t="md"}={}){return(0,i.f)("inline-flex items-center gap-1.5 whitespace-nowrap rounded-md border transition-colors disabled:cursor-not-allowed disabled:opacity-60 hover:no-underline focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-brand/40","sm"===t?"px-[9px] py-[3px] text-[13px]":"px-3 py-1.5","primary"===e&&"border-brand bg-brand text-on-brand hover:bg-brand-hover","secondary"===e&&"border-line-strong bg-surface text-ink hover:bg-hover","ghost"===e&&"border-transparent bg-transparent text-brand hover:bg-brand-soft","danger"===e&&"border-err bg-err text-on-brand hover:brightness-95")}let l={danger:{box:"bg-err-soft border-err/30",state:"err"},warning:{box:"bg-warn-soft border-warn-icon/35",state:"warn"},info:{box:"bg-brand-soft border-brand/25",state:"info"}},o=(e,r)=>"string"==typeof e?(0,t.jsx)(a.MaskedText,{text:e,inLink:r}):e;e.s(["M",0,function({tone:e,title:r,children:a,action:s}){let d=l[e];return(0,t.jsxs)("div",{className:(0,i.f)("flex items-start gap-2.5 rounded-lg border px-3.5 py-2.5",d.box),role:"danger"===e?"alert":"status",children:[(0,t.jsx)("span",{className:"mt-px",children:(0,t.jsx)(n.Z,{state:d.state,size:18})}),(0,t.jsxs)("div",{children:[(0,t.jsx)("b",{className:"block font-medium",children:o(r)}),a&&(0,t.jsx)("p",{className:"mt-0.5 text-[13px] text-ink-soft",children:o(a)})]}),s&&(0,t.jsx)("div",{className:"ml-auto",children:s})]})},"K",0,function({variant:e,size:r,className:a,type:n="button",...l}){return(0,t.jsx)("button",{type:n,className:(0,i.f)(s({variant:e,size:r}),a),...l})},"N",0,function({title:e,meta:r,flush:a,className:n,children:s}){return(0,t.jsxs)("section",{className:(0,i.f)("min-w-0 rounded-lg border border-line bg-surface",n),children:[e&&(0,t.jsxs)("div",{className:(0,i.f)("flex flex-wrap items-center gap-2 px-[18px] pt-3.5",a?"pb-2.5":"pb-1.5"),children:[(0,t.jsx)("h2",{className:"text-[15px]",children:e}),r&&(0,t.jsx)("span",{className:"ml-auto flex items-center gap-1.5 text-[12.5px] text-ink-soft",children:r})]}),a?s:(0,t.jsx)("div",{className:"px-[18px] pb-4 pt-2",children:s})]})},"k",0,function({icon:e=r,title:a,children:n,action:i}){return(0,t.jsxs)("div",{className:"px-4 py-7 text-center text-ink-soft",children:[(0,t.jsx)(e,{size:28,"aria-hidden":!0,className:"mx-auto text-ink-faint"}),(0,t.jsx)("b",{className:"mb-0.5 mt-1.5 block font-medium text-ink",children:a}),n,i&&(0,t.jsx)("div",{className:"mt-3",children:i})]})},"O",0,function({id:e,label:r,help:a,error:n,children:i}){return(0,t.jsxs)("div",{className:"mb-3.5 flex flex-col gap-[5px]",children:[(0,t.jsx)("label",{htmlFor:e,className:"text-[13px] font-medium",children:r}),i,a&&(0,t.jsx)("span",{className:"text-[12.5px] text-ink-soft",children:a}),n&&(0,t.jsx)("span",{className:"text-[12.5px] text-err",role:"alert",children:n})]})},"_",0,function({label:e,pressed:r,children:a,...n}){return(0,t.jsx)("button",{type:"button","aria-label":e,title:e,"aria-pressed":r,className:(0,i.f)("relative inline-grid size-[34px] shrink-0 place-items-center rounded-md text-ink-soft hover:bg-hover hover:text-ink focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-brand/40",r&&"bg-brand-soft text-brand"),...n,children:a})},"E",0,function({children:e}){return(0,t.jsx)("span",{className:"mr-1 inline-block rounded-[5px] border border-line bg-surface-2 px-1.5 text-xs text-ink-soft",children:e})},"R",0,s,"S",0,"w-full rounded-md border border-line-strong bg-surface px-2.5 py-1.5 text-ink outline-none focus:border-brand focus:ring-2 focus:ring-brand/40"],428325)},220806,914552,615884,e=>{var t=e.i(843476),r=e.i(344423),a=e.i(146874),n=e.i(785642),i=e.i(396455),s=e.i(802480),l=e.i(802874),o=e.i(239692),d=e.i(39622),c=e.i(513932),f=e.i(33550);let h=(0,f.f)("outline","moon","Moon",[["path",{d:"M12 3c.132 0 .263 0 .393 0a7.5 7.5 0 0 0 7.92 12.446a9 9 0 1 1 -8.313 -12.454l0 .008",key:"svg-0"}]]);e.s(["f",0,h],914552);let x=(0,f.f)("outline","player-pause","PlayerPause",[["path",{d:"M6 6a1 1 0 0 1 1 -1h2a1 1 0 0 1 1 1v12a1 1 0 0 1 -1 1h-2a1 1 0 0 1 -1 -1l0 -12",key:"svg-0"}],["path",{d:"M14 6a1 1 0 0 1 1 -1h2a1 1 0 0 1 1 1v12a1 1 0 0 1 -1 1h-2a1 1 0 0 1 -1 -1l0 -12",key:"svg-1"}]]),p=(0,f.f)("outline","tool","Tool",[["path",{d:"M7 10h3v-3l-3.5 -3.5a6 6 0 0 1 8 8l6 6a2 2 0 0 1 -3 3l-6 -6a6 6 0 0 1 -8 -8l3.5 3.5",key:"svg-0"}]]);e.s(["f",0,p],615884);let u={ok:"text-ok",warn:"text-warn-icon",paused:"text-warn-icon",err:"text-err",fail:"text-err",idle:"text-idle",off:"text-idle",unknown:"text-idle",build:"text-brand",info:"text-brand",maint:"text-brand"};var g=e.i(975157);let b={ok:n.f,warn:a.f,err:r.f,idle:h,build:c.f,paused:x,info:d.f,fail:s.f,off:i.f,unknown:o.f,maint:p};function m({state:e,size:r=17,still:a=!1}){let n=a&&"build"===e?l.f:b[e];return(0,t.jsx)(n,{size:r,"aria-hidden":!0,className:(0,g.f)("shrink-0",u[e],"build"===e&&!a&&"animate-spin")})}e.s(["Z",0,m,"F",0,function({state:e,children:r}){return(0,t.jsxs)("span",{className:"inline-flex items-center gap-1.5 whitespace-nowrap",children:[(0,t.jsx)(m,{state:e}),(0,t.jsx)("span",{children:r})]})}],220806)},516171,e=>{let t=new Map([["watchbell-demo-busy","The demo is busy right now. Try again in a minute."],["watchbell-demo-too-many","Too many new demo sessions from your network. Try again in a few minutes."]]);new Map([...t].map(([e,t])=>[t,e])),e.s(["f",0,function(e){return"string"==typeof e?t.get(e)??null:null}])}])})();
|