watchbell 1.2.2 → 1.2.3
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/bin/watchbell.mjs +5 -2
- package/package.json +1 -1
- package/server/.next/BUILD_ID +1 -1
- package/server/.next/build-manifest.json +105 -105
- package/server/.next/prerender-manifest.json +4 -4
- package/server/.next/server/app/(console)/(private)/ai/agents/page/build-manifest.json +3 -3
- package/server/.next/server/app/(console)/(private)/ai/agents/page/server-reference-manifest.json +32 -22
- package/server/.next/server/app/(console)/(private)/ai/agents/page.js +73 -72
- 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/build-manifest.json +3 -3
- package/server/.next/server/app/(console)/(private)/ai/ask/page/server-reference-manifest.json +30 -20
- 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/build-manifest.json +3 -3
- package/server/.next/server/app/(console)/(private)/ai/connect/page/server-reference-manifest.json +28 -18
- 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/build-manifest.json +3 -3
- package/server/.next/server/app/(console)/(private)/ai/keys/page/server-reference-manifest.json +34 -24
- 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/build-manifest.json +3 -3
- package/server/.next/server/app/(console)/(private)/ai/logs/page/server-reference-manifest.json +30 -20
- 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/build-manifest.json +3 -3
- package/server/.next/server/app/(console)/(private)/ai/models/page/server-reference-manifest.json +48 -38
- 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/build-manifest.json +3 -3
- package/server/.next/server/app/(console)/(private)/ai/page/server-reference-manifest.json +28 -18
- 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/build-manifest.json +3 -3
- package/server/.next/server/app/(console)/(private)/ai/playground/page/server-reference-manifest.json +34 -24
- 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/build-manifest.json +3 -3
- package/server/.next/server/app/(console)/(private)/ai/providers/page/server-reference-manifest.json +40 -30
- package/server/.next/server/app/(console)/(private)/ai/providers/page.js +73 -72
- 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/build-manifest.json +3 -3
- package/server/.next/server/app/(console)/(private)/ai/quota/page/server-reference-manifest.json +30 -20
- package/server/.next/server/app/(console)/(private)/ai/quota/page.js +74 -73
- 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/build-manifest.json +3 -3
- package/server/.next/server/app/(console)/(private)/ai/usage/page/server-reference-manifest.json +30 -20
- package/server/.next/server/app/(console)/(private)/ai/usage/page.js +76 -74
- 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/build-manifest.json +3 -3
- package/server/.next/server/app/(console)/(private)/api-docs/[[...op]]/page/server-reference-manifest.json +28 -18
- 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/build-manifest.json +3 -3
- package/server/.next/server/app/(console)/(private)/auto-actions/page/server-reference-manifest.json +30 -20
- 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/build-manifest.json +3 -3
- package/server/.next/server/app/(console)/alerts/page/server-reference-manifest.json +74 -44
- package/server/.next/server/app/(console)/alerts/page.js +75 -73
- 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/build-manifest.json +3 -3
- package/server/.next/server/app/(console)/apps/[id]/page/server-reference-manifest.json +62 -52
- package/server/.next/server/app/(console)/apps/[id]/page.js +78 -77
- 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/build-manifest.json +3 -3
- package/server/.next/server/app/(console)/apps/page/server-reference-manifest.json +34 -24
- package/server/.next/server/app/(console)/apps/page.js +74 -73
- 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/build-manifest.json +3 -3
- package/server/.next/server/app/(console)/backups/page/server-reference-manifest.json +34 -24
- package/server/.next/server/app/(console)/backups/page.js +75 -74
- 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/build-manifest.json +3 -3
- package/server/.next/server/app/(console)/catalog/page/server-reference-manifest.json +28 -18
- package/server/.next/server/app/(console)/catalog/page.js +73 -72
- 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/build-manifest.json +3 -3
- package/server/.next/server/app/(console)/connections/page/server-reference-manifest.json +50 -40
- package/server/.next/server/app/(console)/connections/page.js +76 -75
- package/server/.next/server/app/(console)/connections/page.js.nft.json +1 -1
- package/server/.next/server/app/(console)/connections/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/(console)/d1/page/build-manifest.json +3 -3
- package/server/.next/server/app/(console)/d1/page/server-reference-manifest.json +28 -18
- package/server/.next/server/app/(console)/d1/page.js +74 -73
- package/server/.next/server/app/(console)/d1/page.js.nft.json +1 -1
- package/server/.next/server/app/(console)/d1/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/(console)/deployments/page/build-manifest.json +3 -3
- package/server/.next/server/app/(console)/deployments/page/server-reference-manifest.json +40 -30
- package/server/.next/server/app/(console)/deployments/page.js +74 -73
- 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/build-manifest.json +3 -3
- package/server/.next/server/app/(console)/dns/page/server-reference-manifest.json +42 -32
- package/server/.next/server/app/(console)/dns/page.js +77 -76
- 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/build-manifest.json +3 -3
- package/server/.next/server/app/(console)/domains/page/server-reference-manifest.json +32 -22
- package/server/.next/server/app/(console)/domains/page.js +76 -75
- 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/build-manifest.json +3 -3
- package/server/.next/server/app/(console)/events/page/server-reference-manifest.json +28 -18
- package/server/.next/server/app/(console)/events/page.js +73 -72
- 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/build-manifest.json +3 -3
- package/server/.next/server/app/(console)/firebase/page/server-reference-manifest.json +42 -32
- package/server/.next/server/app/(console)/firebase/page.js +75 -74
- 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/build-manifest.json +3 -3
- package/server/.next/server/app/(console)/logs/page/server-reference-manifest.json +30 -20
- 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/build-manifest.json +3 -3
- package/server/.next/server/app/(console)/manage/sections/page/server-reference-manifest.json +30 -20
- 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/build-manifest.json +3 -3
- package/server/.next/server/app/(console)/neon/page/server-reference-manifest.json +50 -40
- package/server/.next/server/app/(console)/neon/page.js +77 -76
- package/server/.next/server/app/(console)/neon/page.js.nft.json +1 -1
- package/server/.next/server/app/(console)/neon/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/(console)/overview/page/build-manifest.json +3 -3
- package/server/.next/server/app/(console)/overview/page/server-reference-manifest.json +44 -34
- package/server/.next/server/app/(console)/overview/page.js +81 -80
- package/server/.next/server/app/(console)/overview/page.js.nft.json +1 -1
- package/server/.next/server/app/(console)/overview/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/(console)/repos/[id]/page/build-manifest.json +3 -3
- package/server/.next/server/app/(console)/repos/[id]/page/server-reference-manifest.json +30 -20
- package/server/.next/server/app/(console)/repos/[id]/page.js +75 -74
- 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/build-manifest.json +3 -3
- package/server/.next/server/app/(console)/repos/page/server-reference-manifest.json +28 -18
- 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/build-manifest.json +3 -3
- package/server/.next/server/app/(console)/settings/page/server-reference-manifest.json +48 -38
- package/server/.next/server/app/(console)/settings/page.js +73 -72
- 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/build-manifest.json +3 -3
- package/server/.next/server/app/(console)/sql/page/server-reference-manifest.json +42 -32
- 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/build-manifest.json +3 -3
- package/server/.next/server/app/(console)/status/page/server-reference-manifest.json +28 -18
- package/server/.next/server/app/(console)/status/page.js +75 -73
- 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/build-manifest.json +3 -3
- package/server/.next/server/app/(console)/supabase/page/server-reference-manifest.json +66 -56
- package/server/.next/server/app/(console)/supabase/page.js +82 -82
- 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/build-manifest.json +3 -3
- package/server/.next/server/app/(console)/topology/page/server-reference-manifest.json +28 -18
- package/server/.next/server/app/(console)/topology/page.js +74 -73
- 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/build-manifest.json +3 -3
- package/server/.next/server/app/(console)/turso/page/server-reference-manifest.json +28 -18
- package/server/.next/server/app/(console)/turso/page.js +73 -72
- 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/build-manifest.json +3 -3
- package/server/.next/server/app/(console)/upstash/page/server-reference-manifest.json +28 -18
- package/server/.next/server/app/(console)/upstash/page.js +73 -72
- 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/build-manifest.json +3 -3
- package/server/.next/server/app/(console)/uptime/page/server-reference-manifest.json +56 -46
- package/server/.next/server/app/(console)/uptime/page.js +75 -74
- 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/build-manifest.json +3 -3
- package/server/.next/server/app/(console)/welcome/page/server-reference-manifest.json +38 -28
- 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/build-manifest.json +3 -3
- package/server/.next/server/app/_global-error/page/server-reference-manifest.json +1 -1
- package/server/.next/server/app/_global-error/page.js.nft.json +1 -1
- package/server/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/_global-error.html +1 -1
- package/server/.next/server/app/_global-error.rsc +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/build-manifest.json +3 -3
- package/server/.next/server/app/_not-found/page/server-reference-manifest.json +1 -1
- package/server/.next/server/app/_not-found/page.js +14 -11
- 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 +28 -23
- package/server/.next/server/app/_not-found.segments/_full.segment.rsc +28 -23
- package/server/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +26 -23
- package/server/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
- package/server/.next/server/app/account/password/page/build-manifest.json +3 -3
- package/server/.next/server/app/account/password/page/server-reference-manifest.json +2 -2
- package/server/.next/server/app/account/password/page.js +17 -18
- package/server/.next/server/app/account/password/page.js.nft.json +1 -1
- package/server/.next/server/app/account/password/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/api/collect/route/server-reference-manifest.json +7 -7
- package/server/.next/server/app/api/collect/route.js +1 -1
- package/server/.next/server/app/api/collect/route.js.nft.json +1 -1
- package/server/.next/server/app/api/daily/route/server-reference-manifest.json +7 -7
- package/server/.next/server/app/api/daily/route.js +1 -1
- package/server/.next/server/app/api/daily/route.js.nft.json +1 -1
- package/server/.next/server/app/api/ping/[...parts]/route.js.nft.json +1 -1
- package/server/.next/server/app/api/status/route.js.nft.json +1 -1
- package/server/.next/server/app/api/telegram/webhook/route/server-reference-manifest.json +7 -7
- package/server/.next/server/app/api/telegram/webhook/route.js +1 -1
- package/server/.next/server/app/api/telegram/webhook/route.js.nft.json +1 -1
- package/server/.next/server/app/api/v1/advice/route.js.nft.json +1 -1
- package/server/.next/server/app/api/v1/ai/chat/completions/route.js.nft.json +1 -1
- package/server/.next/server/app/api/v1/ai/models/route.js.nft.json +1 -1
- package/server/.next/server/app/api/v1/ai/questions/[id]/route.js.nft.json +1 -1
- package/server/.next/server/app/api/v1/ai/questions/route.js.nft.json +1 -1
- package/server/.next/server/app/api/v1/mcp/route.js.nft.json +1 -1
- package/server/.next/server/app/api/v1/me/route.js.nft.json +1 -1
- package/server/.next/server/app/api/v1/openapi.json/route.js.nft.json +1 -1
- package/server/.next/server/app/api/v1/status/apps/[app]/route.js.nft.json +1 -1
- package/server/.next/server/app/api/v1/status/route.js.nft.json +1 -1
- package/server/.next/server/app/api/watchdog/route.js +13 -13
- package/server/.next/server/app/api/watchdog/route.js.nft.json +1 -1
- package/server/.next/server/app/auth/confirm/route.js.nft.json +1 -1
- package/server/.next/server/app/auth/google/callback/route.js.nft.json +1 -1
- package/server/.next/server/app/auth/google/create/callback/route.js.nft.json +1 -1
- package/server/.next/server/app/auth/not-member/route.js.nft.json +1 -1
- package/server/.next/server/app/auth/session-ended/route.js.nft.json +1 -1
- package/server/.next/server/app/invite/page/build-manifest.json +3 -3
- package/server/.next/server/app/invite/page/server-reference-manifest.json +2 -2
- package/server/.next/server/app/invite/page.js +22 -22
- 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/build-manifest.json +3 -3
- package/server/.next/server/app/mfa/page/server-reference-manifest.json +2 -2
- package/server/.next/server/app/mfa/page.js +31 -32
- 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/build-manifest.json +3 -3
- package/server/.next/server/app/mfa/setup/page/server-reference-manifest.json +3 -3
- package/server/.next/server/app/mfa/setup/page.js +31 -32
- 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/build-manifest.json +3 -3
- package/server/.next/server/app/page/server-reference-manifest.json +1 -1
- package/server/.next/server/app/page.js +14 -11
- package/server/.next/server/app/page.js.nft.json +1 -1
- package/server/.next/server/app/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/s/[slug]/badge/[file]/route.js.nft.json +1 -1
- package/server/.next/server/app/s/[slug]/page/build-manifest.json +3 -3
- package/server/.next/server/app/s/[slug]/page/server-reference-manifest.json +1 -1
- package/server/.next/server/app/s/[slug]/page.js +21 -20
- 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/build-manifest.json +3 -3
- package/server/.next/server/app/setup/page/server-reference-manifest.json +2 -2
- package/server/.next/server/app/setup/page.js +20 -18
- 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/build-manifest.json +3 -3
- package/server/.next/server/app/signin/page/server-reference-manifest.json +3 -3
- package/server/.next/server/app/signin/page.js +28 -28
- package/server/.next/server/app/signin/page.js.nft.json +1 -1
- package/server/.next/server/app/signin/page_client-reference-manifest.js +1 -1
- package/server/.next/server/chunks/{[root-of-the-server]__1xxmlb3soqzom._.js → [root-of-the-server]__02n6y6aa6qp1b._.js} +2 -2
- package/server/.next/server/chunks/{[root-of-the-server]__1w7dv8zm-k_oa._.js → [root-of-the-server]__09odxyho_9vk_._.js} +2 -2
- package/server/.next/server/chunks/{[root-of-the-server]__0_nljmqhjcept._.js → [root-of-the-server]__0bmyll20mg_gf._.js} +1 -1
- package/server/.next/server/chunks/{[root-of-the-server]__14ou3bydfm0ms._.js → [root-of-the-server]__0btybbrsr4abf._.js} +1 -1
- package/server/.next/server/chunks/{[root-of-the-server]__0awtaloe4_8am._.js → [root-of-the-server]__0c-33noc8yn1-._.js} +1 -1
- package/server/.next/server/chunks/{[root-of-the-server]__15dhjj384tuw_._.js → [root-of-the-server]__0d99wclm2suox._.js} +2 -2
- package/server/.next/server/chunks/{[root-of-the-server]__10wbld2tja51-._.js → [root-of-the-server]__0gox66sv0bx47._.js} +2 -2
- package/server/.next/server/chunks/{[root-of-the-server]__0u3un538__ca5._.js → [root-of-the-server]__0ku7nva3gxa9p._.js} +2 -2
- package/server/.next/server/chunks/{[root-of-the-server]__1mim39ea6-dm1._.js → [root-of-the-server]__0nqbue6i0l3qs._.js} +2 -2
- package/server/.next/server/chunks/[root-of-the-server]__0s5b-tdq7rndj._.js +3 -0
- package/server/.next/server/chunks/{[root-of-the-server]__0zmvf4j8e2gno._.js → [root-of-the-server]__0wp6j3irilu76._.js} +1 -1
- package/server/.next/server/chunks/{[root-of-the-server]__1dh4di29mjq9y._.js → [root-of-the-server]__16lfk1wg0ejaa._.js} +2 -2
- package/server/.next/server/chunks/{[root-of-the-server]__0q-x05ekhpohj._.js → [root-of-the-server]__1c653f_8qzrpd._.js} +1 -1
- package/server/.next/server/chunks/{[root-of-the-server]__1v4i7ytwadml8._.js → [root-of-the-server]__1hv3hk5182t-o._.js} +1 -1
- package/server/.next/server/chunks/{[root-of-the-server]__1p0zd1rtbkj9r._.js → [root-of-the-server]__1j6xniw630fg0._.js} +1 -1
- package/server/.next/server/chunks/{[root-of-the-server]__1zg653esm3__p._.js → [root-of-the-server]__1nu5isiy7d832._.js} +2 -2
- package/server/.next/server/chunks/{[root-of-the-server]__0lu91s5izfu0p._.js → [root-of-the-server]__1s4bwjevs4hd-._.js} +2 -2
- package/server/.next/server/chunks/{[root-of-the-server]__0s8vjz6urzn76._.js → [root-of-the-server]__1uox9a0td-o0-._.js} +1 -1
- package/server/.next/server/chunks/{[root-of-the-server]__1dbz126yujh44._.js → [root-of-the-server]__1wpdlr4uh1un4._.js} +2 -2
- package/server/.next/server/chunks/{[root-of-the-server]__1brl5otpkvgd3._.js → [root-of-the-server]__1y2qf8ltxhk0o._.js} +2 -2
- package/server/.next/server/chunks/{[root-of-the-server]__0ihedjvt-l2-u._.js → [root-of-the-server]__1z_0gt-w6bx9v._.js} +2 -2
- package/server/.next/server/chunks/_0-fp57b-utmuw._.js +1 -1
- package/server/.next/server/chunks/_004j-wbs3yn84._.js +1 -1
- package/server/.next/server/chunks/_03qlijpos6a21._.js +1 -1
- package/server/.next/server/chunks/_06lf75x-xhl7v._.js +1 -1
- package/server/.next/server/chunks/_0brb2454uen18._.js +1 -1
- package/server/.next/server/chunks/_0dkhprw6wsizx._.js +1 -1
- package/server/.next/server/chunks/_0duxuj4kmjibl._.js +13 -8
- package/server/.next/server/chunks/{_0if5sw58tii_3._.js → _0q9a3ettj_h2s._.js} +2 -2
- package/server/.next/server/chunks/_0qmi54vmnlwdv._.js +1 -1
- package/server/.next/server/chunks/_0ry4553j-m5fp._.js +2 -2
- package/server/.next/server/chunks/_0s2odl9xacsg0._.js +1 -1
- package/server/.next/server/chunks/_0sy878k2ywjbq._.js +1 -1
- package/server/.next/server/chunks/_0xf7mtsrkgc9e._.js +2 -2
- package/server/.next/server/chunks/_0zj10_al6r59j._.js +1 -1
- package/server/.next/server/chunks/_1-pw7jw52sbti._.js +1 -1
- package/server/.next/server/chunks/_113ebzq_9i756._.js +13 -8
- package/server/.next/server/chunks/_16urxazbgm48y._.js +2 -2
- package/server/.next/server/chunks/_17aiz6zt-yv52._.js +2 -2
- package/server/.next/server/chunks/_18p-vw2zmdx9f._.js +1 -1
- package/server/.next/server/chunks/_1_son1yzo5xvl._.js +1 -1
- package/server/.next/server/chunks/_1_xsrlijknnh3._.js +1 -1
- package/server/.next/server/chunks/_1e_rbkrukj0x9._.js +1 -1
- package/server/.next/server/chunks/_1g8r-7wcf8sy3._.js +2 -2
- package/server/.next/server/chunks/_1g_prqb_u33e3._.js +1 -1
- package/server/.next/server/chunks/_1h73gul79s8pi._.js +1 -1
- package/server/.next/server/chunks/_1ihndlef8r00f._.js +13 -8
- package/server/.next/server/chunks/_1mwb214-ablfo._.js +13 -8
- package/server/.next/server/chunks/node_modules_drizzle-orm_entity_1-0q2stnw2ab8.js +1 -1
- package/server/.next/server/chunks/{src_09cgjvch02173._.js → src_00ixvrjrk_2h4._.js} +2 -2
- package/server/.next/server/chunks/src_088gmyaew7ds0._.js +1 -1
- package/server/.next/server/chunks/{src_0c7qu5adpm3gv._.js → src_0tdn7mun5rvc6._.js} +2 -2
- package/server/.next/server/chunks/src_0y_4gogmeu-2k._.js +1 -1
- package/server/.next/server/chunks/src_1-xw4hea2lvb3._.js +1 -1
- package/server/.next/server/chunks/src_1bqzr81r3wkvi._.js +1 -1
- package/server/.next/server/chunks/src_1tux0n9_5b1kr._.js +1 -1
- package/server/.next/server/chunks/src_1wduh0eckiwl1._.js +1 -1
- package/server/.next/server/chunks/src_1wzm081p6qyre._.js +1 -1
- package/server/.next/server/chunks/src_lib_0ayxuk4ftzf2f._.js +1 -1
- package/server/.next/server/chunks/src_lib_0glcfed-uogyd._.js +1 -1
- package/server/.next/server/chunks/src_lib_0krdzz8eu9xh3._.js +1 -1
- package/server/.next/server/chunks/src_lib_0ta8sd9jeuw50._.js +16 -11
- package/server/.next/server/chunks/src_lib_1-u7dbsavbtb0._.js +1 -1
- package/server/.next/server/chunks/src_lib_103kimc1xvc_0._.js +3 -3
- package/server/.next/server/chunks/src_lib_1en6omqx66g9d._.js +16 -11
- package/server/.next/server/chunks/src_lib_1qo6t00wwitz6._.js +16 -11
- package/server/.next/server/chunks/src_lib_1sdusf16f07x-._.js +3 -3
- package/server/.next/server/chunks/src_lib_206j7lyff31-g._.js +1 -1
- package/server/.next/server/chunks/src_lib_alerts_catalog_ts_1ndg28acul64q._.js +1 -1
- package/server/.next/server/chunks/src_lib_auth_ts_11yt3pae6wy-o._.js +1 -1
- package/server/.next/server/chunks/src_lib_collector_runners_ts_12z4gtgikss74._.js +4 -4
- package/server/.next/server/chunks/src_lib_data_provider-status-db_ts_09oo6p4m7x7te._.js +1 -1
- package/server/.next/server/chunks/src_lib_demo_pool_ts_17xz9bk-d5uic._.js +6 -6
- package/server/.next/server/chunks/src_lib_local-auth_setup_ts_10d8-k_e6pvft._.js +2 -2
- package/server/.next/server/chunks/src_lib_view_databases_ts_1ovdbo8spjhf9._.js +1 -1
- package/server/.next/server/chunks/src_lib_view_labels_ts_1uxs84z7vclz5._.js +1 -1
- package/server/.next/server/chunks/src_private_assist_questions-db_ts_1l-wvmlexd7tr._.js +1 -1
- package/server/.next/server/chunks/src_private_assist_questions-db_ts_1pc4g504t-qmu._.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 +3 -0
- package/server/.next/server/chunks/ssr/1oeh_server_app_(console)_(private)_ai_models_page_actions_0rvlzfa8rjyz_.js +3 -0
- package/server/.next/server/chunks/ssr/1oeh_server_app_(console)_(private)_ai_playground_page_actions_01ejc1xilpuh4.js +4 -0
- package/server/.next/server/chunks/ssr/1oeh_server_app_(console)_(private)_ai_quota_page_actions_0iki29gyi8cwa.js +3 -0
- package/server/.next/server/chunks/ssr/1oeh_server_app_(console)_(private)_ai_usage_page_actions_1c99h-kwdnep7.js +3 -0
- package/server/.next/server/chunks/ssr/1oeh_server_app_(console)_(private)_auto-actions_page_actions_1kw4ce6-efkr1.js +3 -0
- package/server/.next/server/chunks/ssr/{[externals]__0et8619os7o06._.js → [externals]__00tbi838eotwu._.js} +1 -1
- package/server/.next/server/chunks/ssr/{[externals]__0jv_q8g96gubg._.js → [externals]__01kgu896o9-9t._.js} +1 -1
- package/server/.next/server/chunks/ssr/{[externals]__1neu6qld_ilyx._.js → [externals]__078uqm46tk5mo._.js} +1 -1
- package/server/.next/server/chunks/ssr/{[externals]__1d_fn156y1kzg._.js → [externals]__0i0hmh-a743jn._.js} +1 -1
- package/server/.next/server/chunks/ssr/{[externals]__0yzs5m5hot2o2._.js → [externals]__0qc7l-41h018j._.js} +1 -1
- package/server/.next/server/chunks/ssr/[externals]__194b54tqm6qaq._.js +3 -0
- package/server/.next/server/chunks/ssr/[externals]__1_ttbfsdm3x1-._.js +3 -0
- package/server/.next/server/chunks/ssr/{[externals]__0x50_fipcza3k._.js → [externals]__1devsqn7ez77y._.js} +1 -1
- package/server/.next/server/chunks/ssr/[externals]__1prfp5pzeoflz._.js +3 -0
- package/server/.next/server/chunks/ssr/[externals]__1zxtjc2qr2epg._.js +3 -0
- package/server/.next/server/chunks/ssr/{[root-of-the-server]__0p7d9dfmuhnvv._.js → [root-of-the-server]__004q78ed0nf0_._.js} +2 -2
- package/server/.next/server/chunks/ssr/[root-of-the-server]__01zthkv8nrlct._.js +3 -0
- package/server/.next/server/chunks/ssr/{[root-of-the-server]__00wwav5k7xmy0._.js → [root-of-the-server]__04_prmhm_cts4._.js} +2 -2
- package/server/.next/server/chunks/ssr/{[root-of-the-server]__0-jx3t8dg8n5t._.js → [root-of-the-server]__04nc91kiy757l._.js} +2 -2
- package/server/.next/server/chunks/ssr/{[root-of-the-server]__1xwqrik2sugmi._.js → [root-of-the-server]__09blzlbsxqvy9._.js} +2 -2
- package/server/.next/server/chunks/ssr/{[root-of-the-server]__0-o5i-5pqjk5v._.js → [root-of-the-server]__0_6on4a5w76va._.js} +1 -1
- package/server/.next/server/chunks/ssr/{[root-of-the-server]__1tco2ec6ha1k6._.js → [root-of-the-server]__0a3n6wzq8xui9._.js} +2 -2
- package/server/.next/server/chunks/ssr/{[root-of-the-server]__0ptdec0sozaqm._.js → [root-of-the-server]__0an0wsglj2bhh._.js} +2 -2
- package/server/.next/server/chunks/ssr/{[root-of-the-server]__18xb7pbdmiyiz._.js → [root-of-the-server]__0ban7lwqlko9y._.js} +2 -2
- package/server/.next/server/chunks/ssr/{[root-of-the-server]__0khp_gsot3jh_._.js → [root-of-the-server]__0c_q6tvcmsmt9._.js} +2 -2
- package/server/.next/server/chunks/ssr/{[root-of-the-server]__050d99bknjdvq._.js → [root-of-the-server]__0ct4apye0sfmc._.js} +2 -2
- package/server/.next/server/chunks/ssr/{[root-of-the-server]__15keslh0ov5mv._.js → [root-of-the-server]__0d2ry7-u1cv8c._.js} +2 -2
- package/server/.next/server/chunks/ssr/[root-of-the-server]__0e8ya6wyy2plv._.js +3 -0
- package/server/.next/server/chunks/ssr/[root-of-the-server]__0h0txd7z3sxq7._.js +3 -0
- package/server/.next/server/chunks/ssr/{[root-of-the-server]__08w3ad-xux1g4._.js → [root-of-the-server]__0h1vffivfh242._.js} +1 -1
- package/server/.next/server/chunks/ssr/{[root-of-the-server]__05hw89gap74cw._.js → [root-of-the-server]__0i0_6dnnf0hov._.js} +2 -2
- package/server/.next/server/chunks/ssr/{[root-of-the-server]__0khvq0xdah931._.js → [root-of-the-server]__0jgapr1cnvhi6._.js} +2 -2
- package/server/.next/server/chunks/ssr/{[root-of-the-server]__0_1130gx52k-9._.js → [root-of-the-server]__0jn0o2e32mwcp._.js} +2 -2
- package/server/.next/server/chunks/ssr/{[root-of-the-server]__11ham42w_feik._.js → [root-of-the-server]__0k29b_kblv6sv._.js} +1 -1
- package/server/.next/server/chunks/ssr/{[root-of-the-server]__0bn_thc_vtf_i._.js → [root-of-the-server]__0keo0-hwsnkw9._.js} +2 -2
- package/server/.next/server/chunks/ssr/[root-of-the-server]__0klc2dyzyjeba._.js +3 -0
- package/server/.next/server/chunks/ssr/{[root-of-the-server]__16jkttbe1yoai._.js → [root-of-the-server]__0l50vsk8enxzj._.js} +2 -2
- package/server/.next/server/chunks/ssr/[root-of-the-server]__0nlfip3wc3l2z._.js +2 -2
- package/server/.next/server/chunks/ssr/{[root-of-the-server]__0y84mqfn13ss4._.js → [root-of-the-server]__0o0cpvobd-u0n._.js} +1 -1
- package/server/.next/server/chunks/ssr/{[root-of-the-server]__10rhqv5xq9jaj._.js → [root-of-the-server]__0paolyy3xkow9._.js} +2 -2
- package/server/.next/server/chunks/ssr/[root-of-the-server]__0qnly-gjvfntd._.js +3 -0
- package/server/.next/server/chunks/ssr/[root-of-the-server]__0qqcz9ynsgmgl._.js +3 -0
- package/server/.next/server/chunks/ssr/{[root-of-the-server]__1k_hi9mbd4_by._.js → [root-of-the-server]__0qwds8dkahd2_._.js} +1 -1
- package/server/.next/server/chunks/ssr/{[root-of-the-server]__0ejxk0jlgi4eb._.js → [root-of-the-server]__0rdf04ziqasfz._.js} +2 -2
- package/server/.next/server/chunks/ssr/{[root-of-the-server]__0_677ii9bahoy._.js → [root-of-the-server]__0ronqmm1xpldk._.js} +2 -2
- package/server/.next/server/chunks/ssr/[root-of-the-server]__0rrdzb9wowemv._.js +3 -0
- package/server/.next/server/chunks/ssr/[root-of-the-server]__0uxychcp_pldy._.js +3 -0
- package/server/.next/server/chunks/ssr/[root-of-the-server]__0vnfx03nb5vku._.js +3 -0
- package/server/.next/server/chunks/ssr/[root-of-the-server]__0x7w-5h8or6qr._.js +3 -0
- package/server/.next/server/chunks/ssr/{[root-of-the-server]__15wwi1pda8ims._.js → [root-of-the-server]__0xpkzaqer75i-._.js} +2 -2
- package/server/.next/server/chunks/ssr/[root-of-the-server]__0y6psx1_d7fkt._.js +3 -0
- package/server/.next/server/chunks/ssr/{[root-of-the-server]__04klr3-4qi7-t._.js → [root-of-the-server]__107gjehjdhw8p._.js} +2 -2
- package/server/.next/server/chunks/ssr/[root-of-the-server]__10kuehp7saz8h._.js +3 -0
- package/server/.next/server/chunks/ssr/[root-of-the-server]__113zn8es2wp67._.js +3 -0
- package/server/.next/server/chunks/ssr/{[root-of-the-server]__0p5znbfo0wgsu._.js → [root-of-the-server]__13fabu66slkfb._.js} +2 -2
- package/server/.next/server/chunks/ssr/[root-of-the-server]__14ept-_l8j32m._.js +1 -1
- package/server/.next/server/chunks/ssr/[root-of-the-server]__15s9onrf73-k8._.js +3 -0
- package/server/.next/server/chunks/ssr/{[root-of-the-server]__0kr_tvfgqtb-o._.js → [root-of-the-server]__191t_hhtr-k27._.js} +2 -2
- package/server/.next/server/chunks/ssr/[root-of-the-server]__19l_r5vy3kxo1._.js +3 -0
- package/server/.next/server/chunks/ssr/{[root-of-the-server]__1kieqcc6kdywx._.js → [root-of-the-server]__1_b_k8wgqyxy7._.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]__0exp042uqhyqs._.js → [root-of-the-server]__1a7x--bos5pv8._.js} +2 -2
- package/server/.next/server/chunks/ssr/[root-of-the-server]__1adcmllk9wt5l._.js +3 -0
- package/server/.next/server/chunks/ssr/[root-of-the-server]__1d5tbv79yjhqm._.js +3 -0
- package/server/.next/server/chunks/ssr/[root-of-the-server]__1fj33_xkainxk._.js +2 -2
- package/server/.next/server/chunks/ssr/[root-of-the-server]__1itgt83qo1e77._.js +3 -0
- package/server/.next/server/chunks/ssr/{[root-of-the-server]__0ua-p_wz8epv9._.js → [root-of-the-server]__1mumjk3h0om80._.js} +2 -2
- package/server/.next/server/chunks/ssr/[root-of-the-server]__1nat8lbog5imr._.js +1 -1
- package/server/.next/server/chunks/ssr/[root-of-the-server]__1p2oghl9lfgmk._.js +3 -0
- package/server/.next/server/chunks/ssr/{[root-of-the-server]__1tcu4-eowz9vt._.js → [root-of-the-server]__1pwd99rch8xyl._.js} +2 -2
- package/server/.next/server/chunks/ssr/{[root-of-the-server]__0llh-w4ta1qbp._.js → [root-of-the-server]__1sw2q1p1t59y8._.js} +2 -2
- package/server/.next/server/chunks/ssr/{[root-of-the-server]__06uaa_2zbg57p._.js → [root-of-the-server]__1tj-iwvrxfd1a._.js} +2 -2
- package/server/.next/server/chunks/ssr/{[root-of-the-server]__12-a3tcnfdcyq._.js → [root-of-the-server]__1u_13nhw3kuz3._.js} +2 -2
- package/server/.next/server/chunks/ssr/{[root-of-the-server]__0tjab3yn0asf7._.js → [root-of-the-server]__1uojs0x42k86p._.js} +1 -1
- package/server/.next/server/chunks/ssr/{[root-of-the-server]__1096-q3_trmm9._.js → [root-of-the-server]__1yx8ayym979jd._.js} +2 -2
- package/server/.next/server/chunks/ssr/[root-of-the-server]__1zmavjo5fhryp._.js +3 -0
- package/server/.next/server/chunks/ssr/[root-of-the-server]__20of6xa16fwqa._.js +1 -1
- package/server/.next/server/chunks/ssr/_0-wc6f6p0c8lv._.js +3 -0
- package/server/.next/server/chunks/ssr/{_04ltmruop4rt3._.js → _02eudwc8ieb2r._.js} +3 -3
- package/server/.next/server/chunks/ssr/_034fv8o7kws2k._.js +3 -0
- package/server/.next/server/chunks/ssr/_03od6e8ibcxtf._.js +3 -0
- package/server/.next/server/chunks/ssr/_042ow6smd_1gj._.js +3 -0
- package/server/.next/server/chunks/ssr/{_090fib2x989oc._.js → _08xqk3eibu5aw._.js} +2 -2
- package/server/.next/server/chunks/ssr/{_01irlde8uxva8._.js → _0_8v3-nq-b4ug._.js} +2 -2
- 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/_0azq3ml4gbn1d._.js +1 -1
- package/server/.next/server/chunks/ssr/_0bd4cxnpnnq2u._.js +1 -1
- package/server/.next/server/chunks/ssr/{_1ag8axv14phju._.js → _0cbbks0ms7i_u._.js} +3 -3
- package/server/.next/server/chunks/ssr/_0cukja7zcxh7e._.js +1 -1
- package/server/.next/server/chunks/ssr/_0cw4kz3d6kmb1._.js +1 -1
- package/server/.next/server/chunks/ssr/_0d2d527wcx-lf._.js +4 -0
- package/server/.next/server/chunks/ssr/_0d702k82llasi._.js +1 -1
- package/server/.next/server/chunks/ssr/{_1gk334l49puy-._.js → _0fq8thje0tuch._.js} +2 -2
- package/server/.next/server/chunks/ssr/_0gl-ewvbhb677._.js +4 -0
- package/server/.next/server/chunks/ssr/_0i04zoixa2iup._.js +4 -0
- package/server/.next/server/chunks/ssr/_0idbg-ok0so2h._.js +4 -0
- package/server/.next/server/chunks/ssr/{_0tqc0bsnybvva._.js → _0ipnb60-_660b._.js} +2 -2
- package/server/.next/server/chunks/ssr/_0kdn56_ow-x_s._.js +3 -0
- package/server/.next/server/chunks/ssr/{_1_gydx19bikgo._.js → _0kxkg0dbp42ai._.js} +2 -2
- package/server/.next/server/chunks/ssr/_0mp5aext18ijx._.js +3 -0
- package/server/.next/server/chunks/ssr/_0oovfx_t_-u0k._.js +1 -1
- package/server/.next/server/chunks/ssr/{_18lgd6o04ugow._.js → _0oub-njkja8gu._.js} +3 -3
- package/server/.next/server/chunks/ssr/_0pqkexxo7rts_._.js +4 -0
- package/server/.next/server/chunks/ssr/_0qhvl_fw4qetx._.js +1 -1
- package/server/.next/server/chunks/ssr/_0qo8tc43kjsf_._.js +1 -1
- package/server/.next/server/chunks/ssr/_0tnd528j0i1i4._.js +4 -0
- package/server/.next/server/chunks/ssr/_0uwkwcgucqgcf._.js +4 -0
- package/server/.next/server/chunks/ssr/_0v6v5w16qxwke._.js +1 -1
- package/server/.next/server/chunks/ssr/_0wb79bnj96x0g._.js +3 -0
- package/server/.next/server/chunks/ssr/_0wo-lpqf7hr1y._.js +2 -2
- package/server/.next/server/chunks/ssr/_0zixhhc1lheoi._.js +4 -0
- 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/_11llsmv578p2i._.js +3 -0
- package/server/.next/server/chunks/ssr/_12makqwatfke-._.js +4 -0
- package/server/.next/server/chunks/ssr/_19-3vzkc6rk97._.js +1 -1
- package/server/.next/server/chunks/ssr/_1_-o2s48aj4i7._.js +1 -1
- package/server/.next/server/chunks/ssr/_1_xsrlijknnh3._.js +1 -1
- package/server/.next/server/chunks/ssr/_1c7jkkvkvzj_u._.js +4 -0
- package/server/.next/server/chunks/ssr/_1cl55h_h3q-b_._.js +1 -1
- package/server/.next/server/chunks/ssr/_1de6e6l7599fp._.js +1 -1
- package/server/.next/server/chunks/ssr/_1dlo17ba9g-f9._.js +4 -0
- package/server/.next/server/chunks/ssr/_1e47r3tlad52r._.js +3 -0
- package/server/.next/server/chunks/ssr/_1fc8k_0p8l00c._.js +4 -0
- package/server/.next/server/chunks/ssr/{_1w_rq6clcs0ft._.js → _1fuywfexex2s8._.js} +3 -3
- package/server/.next/server/chunks/ssr/_1g2zbl_-4z_hg._.js +1 -1
- package/server/.next/server/chunks/ssr/_1gl78598hz_ku._.js +1 -1
- package/server/.next/server/chunks/ssr/_1h93joqd_-1og._.js +1 -1
- package/server/.next/server/chunks/ssr/_1he21-bt45k8z._.js +4 -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 +4 -0
- package/server/.next/server/chunks/ssr/{_0hmxyfx7su4uk._.js → _1m4km_w39x5e9._.js} +2 -2
- package/server/.next/server/chunks/ssr/_1pp1o361lgpwu._.js +4 -0
- package/server/.next/server/chunks/ssr/_1qdox4yn1u4pc._.js +1 -1
- package/server/.next/server/chunks/ssr/_1qdqc9j_skd1q._.js +1 -1
- package/server/.next/server/chunks/ssr/_1r7o1vx4875hu._.js +1 -1
- package/server/.next/server/chunks/ssr/_1yh3k88t_kh4h._.js +4 -0
- package/server/.next/server/chunks/ssr/_1z6dy1k48mskn._.js +1 -1
- package/server/.next/server/chunks/ssr/_20wy2moxkzhf0._.js +3 -0
- package/server/.next/server/chunks/ssr/{_026w_ig6vy9bt._.js → _218164gkxgum_._.js} +2 -2
- package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_(private)_ai_keys_page_actions_181-3r4e_0yb5.js +3 -0
- package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_(private)_ai_logs_page_actions_1ryb93n6khky3.js +3 -0
- package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_alerts_page_actions_06_3gmyq3jtvi.js +3 -0
- package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_apps_[id]_page_actions_0y5m8cul6d7kk.js +3 -0
- package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_apps_page_actions_0ksau5eicvycc.js +3 -0
- package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_connections_page_actions_1fgolmmpxrouc.js +3 -0
- package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_dns_page_actions_17d_lvhl-u_4w.js +3 -0
- package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_domains_page_actions_1yv3fj_fh-n-5.js +3 -0
- package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_firebase_page_actions_00wuues_v_j3r.js +3 -0
- package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_logs_page_actions_0oqh51t2rx6q0.js +3 -0
- package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_manage_sections_page_actions_1sb2ldu57uj32.js +3 -0
- package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_settings_page_actions_12wgjpd0lbh12.js +3 -0
- package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_supabase_page_actions_1f3a_tpkwjo8z.js +3 -0
- package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_uptime_page_actions_1ylbdz0-ykfh6.js +3 -0
- 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_0bqq4kab3lt4c._.js +3 -0
- package/server/.next/server/chunks/ssr/{node_modules_05z64qbskywkh._.js → node_modules_1-uce_v-roeci._.js} +1 -1
- package/server/.next/server/chunks/ssr/node_modules_@base-ui_react_dialog_index_parts_mjs_0wvx70_xziwkw._.js +3 -0
- package/server/.next/server/chunks/ssr/node_modules_next_dist_client_components_0p8s4lhdi0ir6._.js +3 -0
- package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0-kkewzcx4540.js +3 -0
- package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_00t5_cu_8xco2.js +3 -0
- package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_028rm32yw9745.js +3 -0
- package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_02tytjla8gfpw.js +3 -0
- package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_05tff2l0grv3d.js +3 -0
- package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_08qavwdx-gipt.js +3 -0
- package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_09jdr97vksmwk.js +3 -0
- package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0c3z69fbbz6-a.js +3 -0
- package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0d4hxwzkts-8z.js +3 -0
- package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0dq-zslzf2s94.js +3 -0
- package/server/.next/server/chunks/ssr/{node_modules_next_dist_esm_build_templates_app-page_1q_82vyl-q7u6.js → node_modules_next_dist_esm_build_templates_app-page_0e-rjmezj0qkk.js} +2 -2
- package/server/.next/server/chunks/ssr/{node_modules_next_dist_esm_build_templates_app-page_0ivgh76j_tu2x.js → node_modules_next_dist_esm_build_templates_app-page_0e50mslm8ys4t.js} +2 -2
- package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0esqulnipbhj7.js +3 -0
- package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0icasmc2qvtfa.js +3 -0
- package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0idohkgskbja5.js +3 -0
- package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0ii2a6tud83pj.js +3 -0
- package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0ivr2dcq7hh5t.js +3 -0
- package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0mcwghl-di24f.js +3 -0
- package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0n05qgf2t9o6n.js +3 -0
- package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0ntej2bo95ns3.js +3 -0
- package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0o1l93c0tj-p8.js +3 -0
- package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0ollx_iq739y6.js +3 -0
- package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0v16m5nv0x43b.js +3 -0
- package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0wa_9ywaoqxrf.js +3 -0
- package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0y94b-zvw0vrq.js +3 -0
- package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0ydzswpddtx9q.js +3 -0
- package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0zwpkpyuh6z99.js +3 -0
- package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_14t5-0abqp0sm.js +3 -0
- package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_18h3ke4tl-fzl.js +3 -0
- package/server/.next/server/chunks/ssr/{node_modules_next_dist_esm_build_templates_app-page_14-4y3i6c1vxc.js → node_modules_next_dist_esm_build_templates_app-page_19kqs-fc2i0zv.js} +2 -2
- package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1_s_25znkg8mz.js +3 -0
- package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1_ysa6fs0tt59.js +3 -0
- package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1b4hixza89i52.js +3 -0
- package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1brrqdx4msjzf.js +3 -0
- package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1e74o7dar2z12.js +3 -0
- package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1eqpqmdz9jgs0.js +3 -0
- package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1f3932777ye1o.js +3 -0
- package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1kx1n5-wqjvko.js +3 -0
- package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1l6umnmh89nvy.js +3 -0
- package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1mdyuengydtxm.js +3 -0
- package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1qmm1wm-dfm_v.js +3 -0
- package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1t-fn8blx1hp8.js +3 -0
- package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1tf9xiz17b3cq.js +3 -0
- package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1tffdbiasnszd.js +3 -0
- package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1uisz6sszlhwp.js +3 -0
- package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1umag21mbk-rs.js +3 -0
- package/server/.next/server/chunks/ssr/{node_modules_next_dist_esm_build_templates_app-page_0i3p3qfjihm3f.js → node_modules_next_dist_esm_build_templates_app-page_1vakvu0qtsn07.js} +2 -2
- package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1wmviw4zw6t_r.js +3 -0
- package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1xq449tjypb4s.js +3 -0
- package/server/.next/server/chunks/ssr/src_02ynbzyh8nn02._.js +3 -0
- package/server/.next/server/chunks/ssr/src_0330uf9pdfco9._.js +3 -0
- package/server/.next/server/chunks/ssr/{src_1nse4o3frj33x._.js → src_05kvmrkq5nfyh._.js} +2 -2
- 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_0905fjqu0qv57._.js → src_097wa6oc_utgr._.js} +2 -2
- package/server/.next/server/chunks/ssr/src_0_5_wl0sww-x7._.js +1 -1
- package/server/.next/server/chunks/ssr/src_0abts6wp5ucc0._.js +1 -1
- package/server/.next/server/chunks/ssr/src_0etvjdinp5urq._.js +3 -0
- package/server/.next/server/chunks/ssr/src_0ph020gy78gi9._.js +1 -1
- package/server/.next/server/chunks/ssr/src_0xh3xicmff6ws._.js +1 -1
- package/server/.next/server/chunks/ssr/src_1-xw4hea2lvb3._.js +1 -1
- package/server/.next/server/chunks/ssr/src_10zavgy86u3us._.js +1 -1
- package/server/.next/server/chunks/ssr/{src_071xsnvnzlvj8._.js → src_1751lvujjc-tz._.js} +2 -2
- package/server/.next/server/chunks/ssr/src_1f1x6508qetmp._.js +3 -0
- package/server/.next/server/chunks/ssr/{src_0oagnv9_4qww7._.js → src_1fomo1_as1-ea._.js} +2 -2
- package/server/.next/server/chunks/ssr/src_1koc8y1nfdlw3._.js +1 -1
- package/server/.next/server/chunks/ssr/src_1pd5lqhm1x4yf._.js +1 -1
- package/server/.next/server/chunks/ssr/src_1q-jgpnd3lbcu._.js +1 -1
- package/server/.next/server/chunks/ssr/src_1sv5tf2pk5-pn._.js +3 -0
- package/server/.next/server/chunks/ssr/{src_0widudneyf0oq._.js → src_1wnx8vxv7nd04._.js} +2 -2
- 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 +2 -2
- 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)_0p2-zm5eewkqo._.js +3 -0
- package/server/.next/server/chunks/ssr/src_app_(console)_1za4o0--zhso5._.js +3 -0
- package/server/.next/server/chunks/ssr/src_app_(console)_alerts_0j5xlt68kwg8x._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_alerts_1t61z2wktki-v._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_apps_[id]_1jme7fm7ej_lr._.js +3 -0
- package/server/.next/server/chunks/ssr/src_app_(console)_apps_[id]_1sfvku9ui1le-._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_backups_actions_ts_1vpytsdh0wc1f._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_backups_drive-buttons_tsx_00cku5r_z3jkg._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_connections_02upf_c41dauw._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_connections_1fahc65-97qla._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_connections_1fmp_anbkapur._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_connections_actions_ts_103blv4gzq76z._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_create_actions_ts_05-86qr6kfjey._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_d1_page_tsx_167hwnq_9uh81._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_dns_0d1uyir4fe7pc._.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)_domains_1ut499n11u8_r._.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_17htk-vea5fna._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_manage_sections_section-switch_tsx_1mfs-o_357i22._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_monitor-actions_ts_10w3h7myk2ppi._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_overview_page_tsx_0se3f3ln9q-42._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_palette-action_ts_0zyw9a9imev6p._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_repos_[id]_page_tsx_1nkxthc4ethrj._.js +2 -2
- 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)_status_page_tsx_1zvj799nv4kah._.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_1ofufib3-zzt-._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_supabase_pool-actions_ts_0nzd4vwy_9zzx._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_uptime_1mnnkfi-2zv-k._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_vercel-actions_ts_0wpk1yo9v632d._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_mfa_setup_setup-flow_tsx_1fpwygr2vdgnh._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_s_[slug]_page_tsx_0jjqe6py82mpb._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_setup_setup-form_tsx_0izoagdur96e1._.js +1 -1
- package/server/.next/server/chunks/ssr/{src_app_signin_0hb58isfg-2yx._.js → src_app_signin_11vigmz4xm91m._.js} +2 -2
- package/server/.next/server/chunks/ssr/src_components_0-x11r8_844pu._.js +1 -1
- package/server/.next/server/chunks/ssr/src_components_08d78uqnnmrrh._.js +1 -1
- package/server/.next/server/chunks/ssr/src_components_0_xymno8nakru._.js +3 -0
- package/server/.next/server/chunks/ssr/src_components_0ozvphxxwb7d-._.js +3 -0
- package/server/.next/server/chunks/ssr/src_components_0tmtbf2etsx03._.js +1 -1
- package/server/.next/server/chunks/ssr/src_components_charts_tsx_0u0c5sxi3-7ug._.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_components_live_tsx_1p2s3b807w0jt._.js +1 -1
- package/server/.next/server/chunks/ssr/src_components_ui_dialog_tsx_1tn-i_6d3rhzt._.js +1 -1
- package/server/.next/server/chunks/ssr/src_lib_005l0kcpyu43o._.js +7 -2
- package/server/.next/server/chunks/ssr/src_lib_1zgor_vrwl5kt._.js +5 -0
- package/server/.next/server/chunks/ssr/src_lib_alerts_catalog_ts_1ndg28acul64q._.js +1 -1
- package/server/.next/server/chunks/ssr/src_lib_auth_ts_11yt3pae6wy-o._.js +1 -1
- package/server/.next/server/chunks/ssr/src_lib_collector_run_ts_0-q8is8s0y9cq._.js +1 -1
- package/server/.next/server/chunks/ssr/src_lib_collector_self-update_ts_18m5vmptpjhtg._.js +3 -0
- package/server/.next/server/chunks/ssr/src_lib_data_github-db_ts_02xuh84m-__8z._.js +1 -1
- package/server/.next/server/chunks/ssr/src_lib_data_provider-status-db_ts_09oo6p4m7x7te._.js +1 -1
- package/server/.next/server/chunks/ssr/{src_lib_demo_1wu-a6lubzph6._.js → src_lib_demo_07uq47fhms-3d._.js} +2 -2
- package/server/.next/server/chunks/ssr/src_lib_local-auth_setup_ts_05zj7z33ne4f5._.js +1 -1
- package/server/.next/server/chunks/ssr/src_lib_security_node-runtime_ts_1jei00s21d6v0._.js +3 -0
- package/server/.next/server/chunks/ssr/src_lib_view_databases_ts_1ovdbo8spjhf9._.js +1 -1
- package/server/.next/server/chunks/ssr/src_lib_view_labels_ts_1uxs84z7vclz5._.js +1 -1
- package/server/.next/server/chunks/ssr/src_lib_view_network_ts_0toa7t-gw9cup._.js +1 -1
- package/server/.next/server/chunks/ssr/src_private_0iy_wyg2p1jkn._.js +1 -1
- package/server/.next/server/chunks/ssr/src_private_actions_decide-form_tsx_1hngtxpyle3v8._.js +1 -1
- package/server/.next/server/chunks/ssr/src_private_ai_providers_actions_ts_0wxa36ai6s5nn._.js +1 -1
- package/server/.next/server/chunks/ssr/src_private_assist_questions-db_ts_1l-wvmlexd7tr._.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 +105 -105
- 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 +858 -672
- package/server/.next/static/chunks/04ospu_w--6p9.js +1 -0
- package/server/.next/static/chunks/06a83nde7riq-.js +1 -0
- package/server/.next/static/chunks/088c6cw88jmlb.js +7 -0
- package/server/.next/static/chunks/08f1euchlacye.js +1 -0
- package/server/.next/static/chunks/09e-vdlax9bp6.js +1 -0
- package/server/.next/static/chunks/{0rgn3-cks0udn.js → 0a-rekt06v0sv.js} +1 -1
- package/server/.next/static/chunks/{3u3h2mlon2qu7.js → 0a4b85ckxbprh.js} +1 -1
- package/server/.next/static/chunks/0buwzrf7dpagn.js +1 -0
- package/server/.next/static/chunks/0dmql-jz-o69o.js +1 -0
- package/server/.next/static/chunks/{3xo5igjfumqip.js → 0jf5lpzwq4vh1.js} +1 -1
- package/server/.next/static/chunks/0p6hja9octhrd.js +1 -0
- package/server/.next/static/chunks/{3orhi-m-n-ra4.js → 0qoql97izcn4l.js} +1 -1
- package/server/.next/static/chunks/0qsk0bb1x81nc.js +1 -0
- package/server/.next/static/chunks/0wkv5e-c430ea.js +33 -0
- package/server/.next/static/chunks/0x41o1ud_ksl1.js +1 -0
- package/server/.next/static/chunks/0x_wb_w6fgkyt.js +1 -0
- package/server/.next/static/chunks/{319s97ka6eaex.js → 12bbufru1ui37.js} +1 -1
- package/server/.next/static/chunks/{1pre7l9hmk-b6.js → 12zasgv1xisb5.js} +1 -1
- package/server/.next/static/chunks/{2yjh4ytp-sedv.js → 149lk0boxihnl.js} +1 -1
- package/server/.next/static/chunks/17lwu-2id6c_-.js +1 -0
- package/server/.next/static/chunks/{36js6cf9c-53b.js → 1_93oj1b-nrla.js} +1 -1
- package/server/.next/static/chunks/1bt81ubbahkh6.js +1 -0
- package/server/.next/static/chunks/1c0s-ejiwfy2u.js +1 -0
- package/server/.next/static/chunks/1g_kip3m3h9q6.js +1 -0
- package/server/.next/static/chunks/1i8i1ieoh738i.js +1 -0
- package/server/.next/static/chunks/1s0s32oqy-54t.js +1 -0
- package/server/.next/static/chunks/1ss-6-h8nloc9.js +1 -0
- package/server/.next/static/chunks/1t8fe3w70uapo.js +1 -0
- package/server/.next/static/chunks/1t9f2pdc3crnr.js +1 -0
- package/server/.next/static/chunks/1urtw14pwufsv.js +1 -0
- package/server/.next/static/chunks/1wh-ps6a57yj1.js +1 -0
- package/server/.next/static/chunks/20ujg0hz_need.js +1 -0
- package/server/.next/static/chunks/{05p62k_8g05pm.js → 23b9tctw1mn5a.js} +11 -11
- package/server/.next/static/chunks/292uz-rsh422k.js +1 -0
- package/server/.next/static/chunks/{12fo0pcbpv7lw.js → 29xg947lkf4-x.js} +1 -1
- package/server/.next/static/chunks/2ac9gyn8mzqp4.js +1 -0
- package/server/.next/static/chunks/2fze_cnwk8j76.js +1 -0
- package/server/.next/static/chunks/2g9dossbqnlr7.js +1 -0
- package/server/.next/static/chunks/{0i8-ofb4wfcch.js → 2l4upq4bwgvvu.js} +1 -1
- package/server/.next/static/chunks/{0a5vchcarwyam.js → 2pi0r5spn0slc.js} +1 -1
- package/server/.next/static/chunks/2rpa_j81h_45y.js +1 -0
- package/server/.next/static/chunks/2szc6dvuj3gxy.js +1 -0
- package/server/.next/static/chunks/2u3iceaxpiiws.js +1 -0
- package/server/.next/static/chunks/2z21xxtcmsmhe.js +1 -0
- package/server/.next/static/chunks/315s21b2dd7lg.js +1 -0
- package/server/.next/static/chunks/35to2q1uretcv.js +1 -0
- package/server/.next/static/chunks/{2q88116332v43.js → 37zqf9hef7g0k.js} +1 -1
- package/server/.next/static/chunks/38-ay595f3xie.js +1 -0
- package/server/.next/static/chunks/38ao1jq4zw-nd.js +1 -0
- package/server/.next/static/chunks/38conxv_f-pgo.js +1 -0
- package/server/.next/static/chunks/3cyesi3hi6l1g.js +5 -0
- package/server/.next/static/chunks/{1qxc6cck2xkbs.js → 3efi_dyz4y0lj.js} +1 -1
- package/server/.next/static/chunks/3qjirj3rjf5mu.js +1 -0
- package/server/.next/static/chunks/3vpy-ra0rib9m.js +1 -0
- package/server/.next/static/chunks/{1o1lidcbrrh92.js → 3xxcpv79l5tnh.js} +1 -1
- package/server/.next/static/chunks/3ybb15n1q3f-o.css +3 -0
- package/server/drizzle-selfhost/0007_webhook_channel.sql +5 -0
- package/server/drizzle-selfhost/meta/_journal.json +7 -0
- package/tools/reset-login.mjs +1 -1
- package/server/.next/server/chunks/[root-of-the-server]__0hedtycoyydoc._.js +0 -3
- package/server/.next/server/chunks/ssr/1oeh_server_app_(console)_(private)_ai_agents_page_actions_1q6nc5chwn5k4.js +0 -3
- package/server/.next/server/chunks/ssr/1oeh_server_app_(console)_(private)_ai_models_page_actions_0n_anax2l1jpu.js +0 -3
- package/server/.next/server/chunks/ssr/1oeh_server_app_(console)_(private)_ai_playground_page_actions_1kyng_xuojdtb.js +0 -4
- package/server/.next/server/chunks/ssr/1oeh_server_app_(console)_(private)_ai_quota_page_actions_04r4ro6x7-p7p.js +0 -3
- package/server/.next/server/chunks/ssr/1oeh_server_app_(console)_(private)_ai_usage_page_actions_1fq9uugdpqa_l.js +0 -3
- package/server/.next/server/chunks/ssr/1oeh_server_app_(console)_(private)_auto-actions_page_actions_0mhtiq_5szpe0.js +0 -3
- package/server/.next/server/chunks/ssr/[externals]__1hqh7fi0-rtlc._.js +0 -3
- package/server/.next/server/chunks/ssr/[externals]__1mmmc4yhx5fm6._.js +0 -3
- package/server/.next/server/chunks/ssr/[externals]__1nv-uycpa6_lh._.js +0 -3
- package/server/.next/server/chunks/ssr/[externals]__1p5zuqwmfkoo1._.js +0 -3
- package/server/.next/server/chunks/ssr/[root-of-the-server]__01mgajn73iwc7._.js +0 -5
- package/server/.next/server/chunks/ssr/[root-of-the-server]__05q-laapy00sk._.js +0 -3
- package/server/.next/server/chunks/ssr/[root-of-the-server]__0dd9rci1isdjf._.js +0 -3
- package/server/.next/server/chunks/ssr/[root-of-the-server]__0lehuiyzxp78t._.js +0 -3
- package/server/.next/server/chunks/ssr/[root-of-the-server]__0tp9vtckbkk9o._.js +0 -3
- package/server/.next/server/chunks/ssr/[root-of-the-server]__0wcnxr_g-bd3r._.js +0 -3
- package/server/.next/server/chunks/ssr/[root-of-the-server]__10y2ig7dg3f-k._.js +0 -3
- package/server/.next/server/chunks/ssr/[root-of-the-server]__194546bqpq02e._.js +0 -3
- package/server/.next/server/chunks/ssr/[root-of-the-server]__1bvp2ia3h9qbs._.js +0 -3
- package/server/.next/server/chunks/ssr/[root-of-the-server]__1dyjzbqwy6o12._.js +0 -3
- package/server/.next/server/chunks/ssr/[root-of-the-server]__1l695djsioelp._.js +0 -3
- package/server/.next/server/chunks/ssr/[root-of-the-server]__1pfk0fqey3ipf._.js +0 -3
- package/server/.next/server/chunks/ssr/[root-of-the-server]__1pgpryg9lkmoz._.js +0 -3
- package/server/.next/server/chunks/ssr/[root-of-the-server]__1rvdnoxnu0ddf._.js +0 -3
- package/server/.next/server/chunks/ssr/[root-of-the-server]__1t4thrxlv4zre._.js +0 -3
- package/server/.next/server/chunks/ssr/[root-of-the-server]__1tuftf7fags7x._.js +0 -5
- package/server/.next/server/chunks/ssr/[root-of-the-server]__1vyste6xyyu37._.js +0 -3
- package/server/.next/server/chunks/ssr/[root-of-the-server]__1yf4_oyl-3xp7._.js +0 -3
- package/server/.next/server/chunks/ssr/_0-uwh2rwm_dic._.js +0 -4
- package/server/.next/server/chunks/ssr/_06kn13xh_13da._.js +0 -3
- package/server/.next/server/chunks/ssr/_06kwu83_fmex9._.js +0 -4
- package/server/.next/server/chunks/ssr/_0i-e824vtomvg._.js +0 -4
- package/server/.next/server/chunks/ssr/_0jjoot3rhbde3._.js +0 -4
- package/server/.next/server/chunks/ssr/_0kn710rrv_o2t._.js +0 -4
- package/server/.next/server/chunks/ssr/_0mgclon6_oh87._.js +0 -4
- package/server/.next/server/chunks/ssr/_0qcvpnwa1u3vr._.js +0 -3
- package/server/.next/server/chunks/ssr/_0sotiqakj-6ci._.js +0 -3
- package/server/.next/server/chunks/ssr/_0uogspz6zrvwk._.js +0 -4
- package/server/.next/server/chunks/ssr/_0wzg8e30al7bu._.js +0 -3
- package/server/.next/server/chunks/ssr/_0ymtfa6vo-yz5._.js +0 -3
- package/server/.next/server/chunks/ssr/_0yn1xeumiigj0._.js +0 -3
- package/server/.next/server/chunks/ssr/_10pz3ggun9s5i._.js +0 -4
- package/server/.next/server/chunks/ssr/_12ddramfkd6o1._.js +0 -4
- package/server/.next/server/chunks/ssr/_15ft896zgt02e._.js +0 -4
- package/server/.next/server/chunks/ssr/_1b1ano88ar-gi._.js +0 -4
- package/server/.next/server/chunks/ssr/_1boia2p3_0nsz._.js +0 -4
- package/server/.next/server/chunks/ssr/_1e24cpw3g7njr._.js +0 -4
- package/server/.next/server/chunks/ssr/_1e5zfwgdf0mm5._.js +0 -3
- package/server/.next/server/chunks/ssr/_1gvbcfoah__sl._.js +0 -3
- package/server/.next/server/chunks/ssr/_1h5tfqxzqd2tz._.js +0 -3
- package/server/.next/server/chunks/ssr/_1i77n2n-wb98v._.js +0 -4
- package/server/.next/server/chunks/ssr/_1k8rjvzlscs56._.js +0 -3
- package/server/.next/server/chunks/ssr/_1l-vlfiltmzu3._.js +0 -3
- package/server/.next/server/chunks/ssr/_1rf_mwfkk_9oa._.js +0 -3
- package/server/.next/server/chunks/ssr/_1ybhu25y38395._.js +0 -4
- package/server/.next/server/chunks/ssr/_210edglbxmcb3._.js +0 -4
- package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_(private)_ai_keys_page_actions_1910ocjt__nlh.js +0 -3
- package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_(private)_ai_logs_page_actions_136-s4sxl6nra.js +0 -3
- package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_alerts_page_actions_0f7cxitw-svnl.js +0 -3
- package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_apps_[id]_page_actions_14l8--w36mywn.js +0 -3
- package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_apps_page_actions_1zw_mdh2ep6vs.js +0 -3
- package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_connections_page_actions_06a1fnrawxlh1.js +0 -3
- package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_dns_page_actions_1p2deebbgom7b.js +0 -3
- package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_domains_page_actions_0-wg58qcvu_rv.js +0 -3
- package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_firebase_page_actions_217-u-dmlzx6a.js +0 -3
- package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_logs_page_actions_11-8xinblaop_.js +0 -3
- package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_manage_sections_page_actions_0ven9q46d3d7s.js +0 -3
- package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_settings_page_actions_1z3l1p4keed3m.js +0 -3
- package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_supabase_page_actions_1evatil08dntl.js +0 -3
- package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_uptime_page_actions_0k1237d-q3oc4.js +0 -3
- package/server/.next/server/chunks/ssr/node_modules_1_u5afwqp6brs._.js +0 -3
- package/server/.next/server/chunks/ssr/node_modules_next_dist_client_components_0wpq8j32_ibz4._.js +0 -3
- package/server/.next/server/chunks/ssr/node_modules_next_dist_client_components_builtin_forbidden_0symwr9mbf-fh.js +0 -3
- package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0-kg_ige9ehqj.js +0 -3
- package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_00k37tbaia8dh.js +0 -3
- package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_00z_p6szkga15.js +0 -3
- package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_01-utr59mtfg1.js +0 -3
- package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_055hw7kwif935.js +0 -3
- package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_06fg_efdkc3kx.js +0 -3
- package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_08f3d08smwt6_.js +0 -3
- package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_08lcfro9qovjn.js +0 -3
- package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0c8wd69fns_0d.js +0 -3
- package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0cha-3kg99u4h.js +0 -3
- package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0d_0he72lzkh9.js +0 -3
- package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0f6chw8z5cuyg.js +0 -3
- package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0j9-_xhs21abp.js +0 -3
- package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0kwpdjujljna-.js +0 -3
- package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0rer2akuum5r-.js +0 -3
- package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0umt_achusjjb.js +0 -3
- package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0un7wq602mt3n.js +0 -3
- package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0vrdl9n7guitd.js +0 -3
- package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0vse2cboy4cms.js +0 -3
- package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0x7ey4_8b48_o.js +0 -3
- package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0z8l8t55t65t_.js +0 -3
- package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0zap6p0vuv-fp.js +0 -3
- package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1-m49cfu6a7gl.js +0 -3
- package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1-w3hswsbrppl.js +0 -3
- package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1167zbjp4ys_a.js +0 -3
- package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_129serqqq3xyq.js +0 -3
- package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_12en3pdvxu0dy.js +0 -3
- package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1596hk9t3r1a5.js +0 -3
- package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_17us24ry0om-z.js +0 -3
- package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1_8xi22-aoxu1.js +0 -3
- package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1_l32aoya75_m.js +0 -3
- package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1ar0v26274uhj.js +0 -3
- package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1dkgfjoaf_1g3.js +0 -3
- package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1eg14m09zdg__.js +0 -3
- package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1h_y671y1la_8.js +0 -3
- package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1mkokmyyp47hd.js +0 -3
- package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1msjiuu45famw.js +0 -3
- package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1mw7isdchouml.js +0 -3
- package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1n4cotiug2a_r.js +0 -3
- package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1njl24pr6dwrt.js +0 -3
- package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1o1_3bydb-3j5.js +0 -3
- package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1pjor42_s9imf.js +0 -3
- package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1qta4yeufzpz7.js +0 -3
- package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1qxbl6k6dji0s.js +0 -3
- package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_21a3kf8buivxw.js +0 -3
- package/server/.next/server/chunks/ssr/src_0f_ip1ke7i9r7._.js +0 -3
- package/server/.next/server/chunks/ssr/src_0jdurlhzhcg5x._.js +0 -3
- package/server/.next/server/chunks/ssr/src_0ley8c3htc2q9._.js +0 -3
- package/server/.next/server/chunks/ssr/src_0p0fk07bj9gpq._.js +0 -3
- package/server/.next/server/chunks/ssr/src_0ubtruqmercw2._.js +0 -3
- package/server/.next/server/chunks/ssr/src_12sdm7skn8fr1._.js +0 -3
- package/server/.next/server/chunks/ssr/src_16lx0qdi44evh._.js +0 -3
- package/server/.next/server/chunks/ssr/src_17yq6_bqlwgvy._.js +0 -3
- package/server/.next/server/chunks/ssr/src_1n-6pz04odixj._.js +0 -3
- package/server/.next/server/chunks/ssr/src_app_(console)_08pmfte22v8vg._.js +0 -3
- package/server/.next/server/chunks/ssr/src_app_(console)_1rx84pcbevbbk._.js +0 -3
- package/server/.next/server/chunks/ssr/src_components_11x625pqq9ovs._.js +0 -3
- package/server/.next/server/chunks/ssr/src_components_1yp2m9j9dnsv-._.js +0 -3
- package/server/.next/server/chunks/ssr/src_components_ui_dropdown-menu_tsx_1xyz_k6bpdu_5._.js +0 -3
- package/server/.next/server/chunks/ssr/src_lib_collector_node-runtime_ts_0778fef3fi3zj._.js +0 -3
- package/server/.next/static/chunks/0-_zjfssid86w.js +0 -33
- package/server/.next/static/chunks/02-edmd1oolf2.css +0 -3
- package/server/.next/static/chunks/02e07gc948zdh.js +0 -1
- package/server/.next/static/chunks/073u0a0mfexc8.js +0 -1
- package/server/.next/static/chunks/09fx7h5vm68up.js +0 -1
- package/server/.next/static/chunks/0ao7_ov9mlvqp.js +0 -1
- package/server/.next/static/chunks/0cvmbpyjages7.js +0 -5
- package/server/.next/static/chunks/0hnhf3barhk90.js +0 -1
- package/server/.next/static/chunks/0id261ol_gl6f.js +0 -1
- package/server/.next/static/chunks/0q2ogu5cn9q9p.js +0 -1
- package/server/.next/static/chunks/0z_fqwq62_95p.js +0 -1
- package/server/.next/static/chunks/12l7tr29-a97t.js +0 -1
- package/server/.next/static/chunks/16d1ws92me6_q.js +0 -1
- package/server/.next/static/chunks/1__8cm_-lydee.js +0 -1
- package/server/.next/static/chunks/1hmur12m0hx3z.js +0 -1
- package/server/.next/static/chunks/205s3z3_jvp5m.js +0 -1
- package/server/.next/static/chunks/20cpkauaj8e6x.js +0 -7
- package/server/.next/static/chunks/23scyaimkowfl.js +0 -1
- package/server/.next/static/chunks/25meucm7i1e7b.js +0 -1
- package/server/.next/static/chunks/2oy7awlquezq_.js +0 -1
- package/server/.next/static/chunks/2pj8subq20y-_.js +0 -1
- package/server/.next/static/chunks/2qcurt9u9shwc.js +0 -1
- package/server/.next/static/chunks/2scf40c-_g_q1.js +0 -1
- package/server/.next/static/chunks/2tnx5isef9ryw.js +0 -1
- package/server/.next/static/chunks/2v_f39dz8sa3-.js +0 -1
- package/server/.next/static/chunks/2whojv56qi3ke.js +0 -1
- package/server/.next/static/chunks/2wlen-jacsbqv.js +0 -1
- package/server/.next/static/chunks/36bqhxadlfbfn.js +0 -1
- package/server/.next/static/chunks/372gugw4ldy47.js +0 -1
- package/server/.next/static/chunks/39n_1gky-xh0a.js +0 -1
- package/server/.next/static/chunks/3fv862m8cvcoe.js +0 -1
- package/server/.next/static/chunks/3g73nar6-7bqk.js +0 -1
- package/server/.next/static/chunks/3sg_npfod25zq.js +0 -1
- package/server/.next/static/chunks/3vacue9vhoqag.js +0 -1
- package/server/.next/static/chunks/3x8-w_p0n-gsd.js +0 -1
- package/server/.next/static/chunks/3yljsdgzvrkdf.js +0 -1
- package/server/.next/static/chunks/415ijq-anmr2o.js +0 -1
- package/server/.next/static/chunks/43wm4_0-0-eej.js +0 -1
- package/server/.next/static/chunks/44bizq7fli9cp.js +0 -1
- /package/server/.next/static/{90CuiGzddaxNn9lvRkGlH → rBXBlxKpaOHcc5KZDIhAL}/_buildManifest.js +0 -0
- /package/server/.next/static/{90CuiGzddaxNn9lvRkGlH → rBXBlxKpaOHcc5KZDIhAL}/_clientMiddlewareManifest.js +0 -0
- /package/server/.next/static/{90CuiGzddaxNn9lvRkGlH → rBXBlxKpaOHcc5KZDIhAL}/_ssgManifest.js +0 -0
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
module.exports=[[132245,(e,t,r)=>{function s(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,r=new WeakMap;return(s=function(e){return e?r:t})(e)}r._=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};var r=s(t);if(r&&r.has(e))return r.get(e);var n={__proto__:null},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var i in e)if("default"!==i&&Object.prototype.hasOwnProperty.call(e,i)){var o=a?Object.getOwnPropertyDescriptor(e,i):null;o&&(o.get||o.set)?Object.defineProperty(n,i,o):n[i]=e[i]}return n.default=e,r&&r.set(e,n),n}},738458,(e,t,r)=>{let s;Object.defineProperty(r,"__esModule",{value:!0}),r.parseCookie=d,r.parse=d,r.stringifyCookie=function(e,t){let r=t?.encode||encodeURIComponent,s=[];for(let t of Object.keys(e)){let i=e[t];if(void 0===i)continue;if(!n.test(t))throw TypeError(`cookie name is invalid: ${t}`);let o=r(i);if(!a.test(o))throw TypeError(`cookie val is invalid: ${i}`);s.push(`${t}=${o}`)}return s.join("; ")},r.stringifySetCookie=h,r.serialize=h,r.parseSetCookie=function(e,t){let r=t?.decode||g,s=e.length,n=p(e,0,s),a=f(e,0,n),i=-1===a?{name:"",value:r(m(e,0,n))}:{name:m(e,0,a),value:r(m(e,a+1,n))},o=n+1;for(;o<s;){let t=p(e,o,s),r=f(e,o,t),n=-1===r?m(e,o,t):m(e,o,r),a=-1===r?void 0:m(e,r+1,t);switch(n.toLowerCase()){case"httponly":i.httpOnly=!0;break;case"secure":i.secure=!0;break;case"partitioned":i.partitioned=!0;break;case"domain":i.domain=a;break;case"path":i.path=a;break;case"max-age":a&&l.test(a)&&(i.maxAge=Number(a));break;case"expires":if(!a)break;let c=new Date(a);Number.isFinite(c.valueOf())&&(i.expires=c);break;case"priority":if(!a)break;let u=a.toLowerCase();("low"===u||"medium"===u||"high"===u)&&(i.priority=u);break;case"samesite":if(!a)break;let d=a.toLowerCase();("lax"===d||"strict"===d||"none"===d)&&(i.sameSite=d)}o=t+1}return i},r.stringifySetCookie=h,r.serialize=h;let n=/^[\u0021-\u003A\u003C\u003E-\u007E]+$/,a=/^[\u0021-\u003A\u003C-\u007E]*$/,i=/^([.]?[a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?)([.][a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?)*$/i,o=/^[\u0020-\u003A\u003D-\u007E]*$/,l=/^-?\d+$/,c=Object.prototype.toString,u=((s=function(){}).prototype=Object.create(null),s);function d(e,t){let r=new u,s=e.length;if(s<2)return r;let n=t?.decode||g,a=0;do{let t=f(e,a,s);if(-1===t)break;let i=p(e,a,s);if(t>i){a=e.lastIndexOf(";",t-1)+1;continue}let o=m(e,a,t);void 0===r[o]&&(r[o]=n(m(e,t+1,i))),a=i+1}while(a<s)return r}function h(e,t,r){let s="object"==typeof e?e:{...r,name:e,value:String(t)},l=("object"==typeof t?t:r)?.encode||encodeURIComponent;if(!n.test(s.name))throw TypeError(`argument name is invalid: ${s.name}`);let u=s.value?l(s.value):"";if(!a.test(u))throw TypeError(`argument val is invalid: ${s.value}`);let d=s.name+"="+u;if(void 0!==s.maxAge){if(!Number.isInteger(s.maxAge))throw TypeError(`option maxAge is invalid: ${s.maxAge}`);d+="; Max-Age="+s.maxAge}if(s.domain){if(!i.test(s.domain))throw TypeError(`option domain is invalid: ${s.domain}`);d+="; Domain="+s.domain}if(s.path){if(!o.test(s.path))throw TypeError(`option path is invalid: ${s.path}`);d+="; Path="+s.path}if(s.expires){var h;if(h=s.expires,"[object Date]"!==c.call(h)||!Number.isFinite(s.expires.valueOf()))throw TypeError(`option expires is invalid: ${s.expires}`);d+="; Expires="+s.expires.toUTCString()}if(s.httpOnly&&(d+="; HttpOnly"),s.secure&&(d+="; Secure"),s.partitioned&&(d+="; Partitioned"),s.priority)switch("string"==typeof s.priority?s.priority.toLowerCase():void 0){case"low":d+="; Priority=Low";break;case"medium":d+="; Priority=Medium";break;case"high":d+="; Priority=High";break;default:throw TypeError(`option priority is invalid: ${s.priority}`)}if(s.sameSite)switch("string"==typeof s.sameSite?s.sameSite.toLowerCase():s.sameSite){case!0:case"strict":d+="; SameSite=Strict";break;case"lax":d+="; SameSite=Lax";break;case"none":d+="; SameSite=None";break;default:throw TypeError(`option sameSite is invalid: ${s.sameSite}`)}return d}function p(e,t,r){let s=e.indexOf(";",t);return -1===s?r:s}function f(e,t,r){let s=e.indexOf("=",t);return s<r?s:-1}function m(e,t,r){let s=t,n=r;do{let t=e.charCodeAt(s);if(32!==t&&9!==t)break}while(++s<n)for(;n>s;){let t=e.charCodeAt(n-1);if(32!==t&&9!==t)break;n--}return e.slice(s,n)}function g(e){if(-1===e.indexOf("%"))return e;try{return decodeURIComponent(e)}catch(t){return e}}},63493,e=>{var t=e.i(31194);e.n(t)},133791,(e,t,r)=>{Object.defineProperty(r,"__esModule",{value:!0});var s={default:function(){return l},useLinkStatus:function(){return o.useLinkStatus}};for(var n in s)Object.defineProperty(r,n,{enumerable:!0,get:s[n]});let a=e.r(132245),i=e.r(133210),o=a._(e.r(63493));function l(e){let t=e.legacyBehavior,r="string"==typeof e.children||"number"==typeof e.children||"string"==typeof e.children?.type,s=e.children?.type?.$$typeof===Symbol.for("react.client.reference");return!t||r||s||(e.children?.type?.$$typeof===Symbol.for("react.lazy")?console.error("Using a Lazy Component as a direct child of `<Link legacyBehavior>` from a Server Component is not supported. If you need legacyBehavior, wrap your Lazy Component in a Client Component that renders the Link's `<a>` tag."):console.error("Using a Server Component as a direct child of `<Link legacyBehavior>` is not supported. If you need legacyBehavior, wrap your Server Component in a Client Component that renders the Link's `<a>` tag.")),(0,i.jsx)(o.default,{...e})}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},385585,(e,t,r)=>{Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"after",{enumerable:!0,get:function(){return a}});let s=e.r(556704),n=e.r(832319);function a(e){let t=s.workAsyncStorage.getStore(),r=n.workUnitAsyncStorage.getStore();if(!t||!r)throw Error("`after` was called outside a request scope. Read more: https://nextjs.org/docs/messages/next-dynamic-api-wrong-context");let{afterContext:a}=t;return a.after(e,r)}},910473,(e,t,r)=>{var s,n;Object.defineProperty(r,"__esModule",{value:!0}),s=e.r(385585),n=r,Object.keys(s).forEach(function(e){"default"===e||Object.prototype.hasOwnProperty.call(n,e)||Object.defineProperty(n,e,{enumerable:!0,get:function(){return s[e]}})})},476550,(e,t,r)=>{Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"connection",{enumerable:!0,get:function(){return d}});let s=e.r(556704),n=e.r(832319),a=e.r(258200),i=e.r(183589),o=e.r(225176),l=e.r(679847);e.r(865832);let c=e.r(585346),u=e.r(748448);function d(){let e=s.workAsyncStorage.getStore(),t=n.workUnitAsyncStorage.getStore();if(e){if(t&&!(0,l.isRequestApiAllowedInCurrentPhase)(t))throw Error(`Route ${e.route} used \`connection()\` inside \`after()\` while rendering. The \`connection()\` function is used to indicate the subsequent code must only run when there is an actual Request, but \`after()\` executes after the request, so this function is not allowed in this scope. See more info here: https://nextjs.org/docs/app/api-reference/functions/after`);if(e.forceStatic)return Promise.resolve(void 0);if(e.dynamicShouldError)throw new i.StaticGenBailoutError(`Route ${e.route} with \`dynamic = "error"\` couldn't be rendered statically because it used \`connection()\`. See more info here: https://nextjs.org/docs/app/building-your-application/rendering/static-and-dynamic#dynamic-rendering`);if(t)switch(t.type){case"cache":{let t=(0,u.createConnectionInPublicUseCacheError)(e.route);throw Error.captureStackTrace(t,d),(0,o.applyOwnerStack)(t),e.invalidDynamicUsageError??=t,t}case"private-cache":{let t=(0,u.createConnectionInPrivateUseCacheError)(e.route);throw Error.captureStackTrace(t,d),(0,o.applyOwnerStack)(t),e.invalidDynamicUsageError??=t,t}case"unstable-cache":throw(0,u.createConnectionInUnstableCacheError)(e.route);case"build-time-generator":throw Error(`Route ${e.route} used \`connection()\` inside \`${t.functionName}\`. This is not supported because \`${t.functionName}\` runs at build time without an HTTP request. Read more: https://nextjs.org/docs/messages/next-dynamic-api-wrong-context`);case"prerender":case"prerender-client":case"prerender-runtime":return(0,o.makeDynamicHangingPromise)(t.renderSignal,e.route,"`connection()`");case"validation-client":{let e="`connection`";throw new c.InvariantError(`${e} must not be used within a Client Component. Next.js should be preventing ${e} from being included in Client Components statically, but did not in this case.`)}case"prerender-legacy":return(0,a.throwToInterruptStaticGeneration)("connection",e,t);case"request":if((0,a.trackDynamicDataInDynamicRender)(t),t.asyncApiPromises)return t.asyncApiPromises.connection;return Promise.resolve(void 0)}}(0,n.throwForMissingRequestStore)("connection")}},133210,(e,t,r)=>{t.exports=e.r(307450).vendored["react-rsc"].ReactJsxRuntime},310086,(e,t,r)=>{t.exports=e.r(307450).vendored["react-rsc"].ReactServerDOMTurbopackServer},853702,(e,t,r)=>{function s(){throw Error('ImageResponse moved from "next/server" to "next/og" since Next.js 14, please import from "next/og" instead')}Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"ImageResponse",{enumerable:!0,get:function(){return s}})},628661,(e,t,r)=>{Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"NextResponse",{enumerable:!0,get:function(){return d}});let s=e.r(86547),n=e.r(723866),a=e.r(287790),i=e.r(770956),o=e.r(86547),l=Symbol("internal response"),c=new Set([301,302,303,307,308]);function u(e,t){var r;if(null==e||null==(r=e.request)?void 0:r.headers){if(!(e.request.headers instanceof Headers))throw Error("request.headers must be an instance of Headers");let r=[];for(let[s,n]of e.request.headers)t.set("x-middleware-request-"+s,n),r.push(s);t.set("x-middleware-override-headers",r.join(","))}}class d extends Response{constructor(e,t={}){super(e,t);let r=this.headers,c=new Proxy(new o.ResponseCookies(r),{get(e,n,a){switch(n){case"delete":case"set":return(...a)=>{let i=Reflect.apply(e[n],e,a),l=new Headers(r);return i instanceof o.ResponseCookies&&r.set("x-middleware-set-cookie",i.getAll().map(e=>(0,s.stringifyCookie)(e)).join(",")),u(t,l),i};default:return i.ReflectAdapter.get(e,n,a)}}});this[l]={cookies:c,url:t.url?new n.NextURL(t.url,{headers:(0,a.toNodeOutgoingHttpHeaders)(r),nextConfig:t.nextConfig}):void 0}}[Symbol.for("edge-runtime.inspect.custom")](){return{cookies:this.cookies,url:this.url,body:this.body,bodyUsed:this.bodyUsed,headers:Object.fromEntries(this.headers),ok:this.ok,redirected:this.redirected,status:this.status,statusText:this.statusText,type:this.type}}get cookies(){return this[l].cookies}static json(e,t){let r=Response.json(e,t);return new d(r.body,r)}static redirect(e,t){let r="number"==typeof t?t:(null==t?void 0:t.status)??307;if(!c.has(r))throw RangeError('Failed to execute "redirect" on "response": Invalid status code');let s="object"==typeof t?t:{},n=new Headers(null==s?void 0:s.headers);return n.set("Location",(0,a.validateURL)(e)),new d(null,{...s,headers:n,status:r})}static rewrite(e,t){let r=new Headers(null==t?void 0:t.headers);return r.set("x-middleware-rewrite",(0,a.validateURL)(e)),u(t,r),new d(null,{...t,headers:r})}static next(e){let t=new Headers(null==e?void 0:e.headers);return t.set("x-middleware-next","1"),u(e,t),new d(null,{...e,headers:t})}}},374644,(e,t,r)=>{Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"URLPattern",{enumerable:!0,get:function(){return s}});let s="u"<typeof URLPattern?void 0:URLPattern},276870,(e,t,r)=>{Object.defineProperty(r,"__esModule",{value:!0});var s,n={isBot:function(){return o},userAgent:function(){return c},userAgentFromString:function(){return l}};for(var a in n)Object.defineProperty(r,a,{enumerable:!0,get:n[a]});let i=(s=e.r(547850))&&s.__esModule?s:{default:s};function o(e){return/Googlebot|Mediapartners-Google|AdsBot-Google|googleweblight|Storebot-Google|Google-PageRenderer|Google-InspectionTool|Bingbot|BingPreview|Slurp|DuckDuckBot|baiduspider|yandex|sogou|LinkedInBot|bitlybot|tumblr|vkShare|quora link preview|facebookexternalhit|facebookcatalog|Twitterbot|applebot|redditbot|Slackbot|Discordbot|WhatsApp|SkypeUriPreview|ia_archiver|GPTBot/i.test(e)}function l(e){return{...(0,i.default)(e),isBot:void 0!==e&&o(e)}}function c({headers:e}){return l(e.get("user-agent")||void 0)}},352565,e=>{var t=e.i(310086);(0,t.registerClientReference)(function(){throw Error("Attempted to call AliasProvider() from the server but AliasProvider 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/alias.tsx","AliasProvider"),(0,t.registerClientReference)(function(){throw Error("Attempted to call DbName() from the server but DbName 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/alias.tsx","DbName"),(0,t.registerClientReference)(function(){throw Error("Attempted to call Masked() from the server but Masked 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/alias.tsx","Masked");let r=(0,t.registerClientReference)(function(){throw Error("Attempted to call MaskedText() from the server but MaskedText 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/alias.tsx","MaskedText");(0,t.registerClientReference)(function(){throw Error("Attempted to call Reveal() from the server but Reveal 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/alias.tsx","Reveal"),(0,t.registerClientReference)(function(){throw Error("Attempted to call maskedValue() from the server but maskedValue 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/alias.tsx","maskedValue"),(0,t.registerClientReference)(function(){throw Error("Attempted to call useAliasBook() from the server but useAliasBook 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/alias.tsx","useAliasBook"),(0,t.registerClientReference)(function(){throw Error("Attempted to call useMask() from the server but useMask 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/alias.tsx","useMask"),(0,t.registerClientReference)(function(){throw Error("Attempted to call usePrivacy() from the server but usePrivacy 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/alias.tsx","usePrivacy"),e.s(["MaskedText",0,r])},639307,e=>{var t=e.i(352565);e.n(t)},455891,e=>{var t=e.i(336763),r=e.i(75064),s=e.i(492973),n=e.i(79322),a=e.i(909592),i=e.i(406212),o=e.i(530298),l=e.i(27479),c=e.i(728335);let u=e=>{let t=(0,c.calendarDate)(e);return`${t.day} ${t.month} ${t.year}`},d=c.dayKey;var h=e.i(857799),p=e.i(123076),f=e.i(70377),m=e.i(586307),g=e.i(827439);let b="advisor.latest",y=r.z.object({key:s.z.string(),severity:n.z.enum(["warning","info"]),appId:s.z.string().nullable(),subject:s.z.string(),title:s.z.string(),why:s.z.string(),fix:s.z.string(),href:s.z.string()}),w=r.z.object({at:s.z.string(),items:a.z.array(y)});async function v(e){let r=(0,t.and)((0,t.eq)(o.resources.kind,"app"),(0,t.eq)(o.resources.monitored,!0),(0,t.isNull)(o.resources.goneAt)),s=await (0,g.P)(),n=await (0,m.V)(),[a,c,u,d,b]=await Promise.all([(0,i.db)().select({id:o.monitors.id,appId:o.monitors.resourceId,appName:o.resources.name,url:o.monitors.url,kind:o.monitors.kind,name:o.monitors.name,paused:o.monitors.paused,ownerPaused:o.monitors.ownerPaused,lastStatus:o.monitors.lastStatus,expectedStatus:o.monitors.expectedStatus,lastPingAt:o.monitors.lastPingAt,createdAt:o.monitors.createdAt}).from(o.monitors).innerJoin(o.resources,(0,t.eq)(o.resources.id,o.monitors.resourceId)).where(r).orderBy(o.resources.name,o.monitors.url).limit(f.O.monitors),(0,i.db)().select({id:o.resources.id,name:o.resources.name,version:o.appSecurity.version}).from(o.resources).innerJoin(o.appSecurity,(0,t.eq)(o.appSecurity.resourceId,o.resources.id)).where(r).orderBy(o.resources.name).limit(f.O.apps),(0,i.db)().select({id:o.resources.id,name:o.resources.name,kind:o.resources.kind,accountId:o.resources.accountId,accountLabel:o.accounts.label,state:o.snapshots.state}).from(o.resources).innerJoin(o.accounts,(0,t.eq)(o.accounts.id,o.resources.accountId)).leftJoin(o.snapshots,(0,t.eq)(o.snapshots.resourceId,o.resources.id)).where((0,t.and)((0,t.inArray)(o.resources.kind,[...h.H]),(0,t.eq)(o.resources.monitored,!0),(0,t.isNull)(o.resources.goneAt))).orderBy(o.resources.name).limit(f.O.databases),(0,i.db)().select({appId:o.links.fromResourceId,dbId:o.links.toResourceId}).from(o.links).where((0,t.eq)(o.links.kind,"uses_db")).limit(f.O.apps),(0,i.db)().select({id:o.accounts.id,provider:o.accounts.provider,label:o.accounts.label,expiresAt:o.accounts.expiresAt,scopeNote:o.accounts.scopeNote}).from(o.accounts).orderBy(o.accounts.label).limit(200)]);return{now:e,monitors:a.map(e=>({id:e.id,appId:e.appId,appName:e.appName,path:"heartbeat"===e.kind?e.url:(0,l.K)(e.url),kind:e.kind,name:e.name,paused:e.paused||e.ownerPaused,lastStatus:e.lastStatus,expectedStatus:e.expectedStatus,lastPingAt:e.lastPingAt,createdAt:e.createdAt})),eol:function(e,t){if(!t)return null;let r=t.cycles.find(e=>!e.isEol)?.latest??null,s=[];for(let n of e){let e=n.version?.split(".")[0],a=e?t.cycles.find(t=>t.name===e):void 0;a&&s.push({appId:n.id,appName:n.name,cycle:a.name,eolFrom:a.eolFrom?new Date(`${a.eolFrom}T00:00:00Z`):null,latest:r})}return s}(c,s),headers:null,dbs:u.map(e=>({id:e.id,name:e.name,provider:(0,h.Z)(e.kind),accountId:e.accountId,accountLabel:e.accountLabel,state:e.state??"unknown"})),slots:(0,p.f)(n).map(e=>({account:e.account,used:e.used,total:e.total,planUnknown:e.planUnknown})),links:d,accounts:b}}async function k(e){let t=function(e){let t=[];for(let r of e.eol??[]){if(!r.eolFrom||r.eolFrom.getTime()-e.now.getTime()>2592e6)continue;let s=r.eolFrom.getTime()<=e.now.getTime(),n=r.latest?.split(".")[0];t.push({key:`next-eol:${r.appId}:${r.cycle}`,severity:"warning",appId:r.appId,subject:r.appName,title:`Next.js ${r.cycle} ${s?"reached":"reaches"} end of life on ${u(r.eolFrom)}`,why:`No security fixes after that date.${r.latest?` Latest is ${r.latest}.`:""}`,fix:n?`Upgrade to Next.js ${n}.`:"Upgrade Next.js.",href:"https://endoflife.date/nextjs"})}for(let r of e.monitors)!r.paused&&("heartbeat"===r.kind&&!r.lastPingAt&&e.now.getTime()-r.createdAt.getTime()>864e5&&t.push({key:`hb-silent:${r.id}`,severity:"warning",appId:r.appId,subject:r.appName,title:`${r.name??"A heartbeat"} has never pinged`,why:"It was added more than a day ago and no job has called its URL.",fix:"Add the ping to the job, or delete the monitor.",href:"/uptime"}),"http"===r.kind&&"/"===r.path&&200===r.expectedStatus&&null!==r.lastStatus&&[401,403,404].includes(r.lastStatus)&&t.push({key:`monitor-root:${r.id}:${r.lastStatus}`,severity:"info",appId:r.appId,subject:r.appName,title:`The monitor on / answers ${r.lastStatus}`,why:`A login or missing page answering ${r.lastStatus} makes the monitor look down.`,fix:`Point the monitor at a public health route, or expect ${r.lastStatus}.`,href:"/uptime"}));for(let r of e.headers??[]){if(!r.missing.length)continue;let e=[...r.missing].sort();t.push({key:`headers:${r.appId}:${e.join(",")}`,severity:"info",appId:r.appId,subject:r.appName,title:`Missing security headers: ${e.join(", ")}`,why:"Browsers use them to block clickjacking, sniffing and downgrade attacks.",fix:"Add them in next.config headers().",href:"https://developer.mozilla.org/en-US/observatory"})}for(let r of e.slots??[])r.used<r.total||t.push({key:`no-slot:${r.account}`,severity:"warning",appId:null,subject:`supabase \xb7 ${r.account}`,title:`Account ${r.account} has no free slot`,why:r.planUnknown?"Two projects are active. If this account is on the free plan (it couldn't be read), a paused one can't be restored here.":"Both free projects are active, so a paused one can't be restored here.",fix:"Pause one project, or move one to another account.",href:"/supabase"});if(e.dbs&&e.links){let r=new Set(e.links.map(e=>e.dbId));for(let s of e.dbs.filter(e=>!r.has(e.id)))t.push({key:`db-unlinked:${s.id}`,severity:"info",appId:null,subject:s.name,title:"Database isn't linked to any app",why:"Topology and the app status can't use it.",fix:"Link it from the app page.",href:"/apps"})}for(let r of e.accounts)"supabase"===r.provider&&r.scopeNote&&/all[- ]access/i.test(r.scopeNote)&&t.push({key:`broad-cred:${r.id}`,severity:"info",appId:null,subject:`supabase \xb7 ${r.label}`,title:`${r.label} uses an all-access token`,why:"The console only reads; a broader token is a bigger risk if it ever leaks.",fix:"Replace it with a read-only token in Connections, then revoke the old one in Supabase.",href:"/connections"});for(let r of e.accounts){if(!r.expiresAt)continue;let s=r.expiresAt.getTime()-e.now.getTime();s>=12096e5&&s<=5184e6&&t.push({key:`cred-60:${r.id}:${d(r.expiresAt)}`,severity:"info",appId:null,subject:`${r.provider} \xb7 ${r.label}`,title:`The ${r.provider} credential ${r.label} expires on ${(0,c.dayMonth)(r.expiresAt)}`,why:"An expired credential stops every reading from that account.",fix:"Create a new one and use Replace credential in Connections.",href:"/connections"})}return t.map((e,t)=>({r:e,i:t})).sort((e,t)=>("warning"!==e.r.severity)-("warning"!==t.r.severity)||e.i-t.i).map(({r:e})=>e).slice(0,50)}(await v(e)),r={at:e.toISOString(),items:t};return await (0,i.db)().insert(o.settings).values({key:b,value:r}).onConflictDoUpdate({target:o.settings.key,set:{value:r,updatedAt:e}}),t}async function _(e){let[r]=await (0,i.db)().select({value:o.settings.value}).from(o.settings).where((0,t.eq)(o.settings.key,b)).limit(1),s=w.safeParse(r?.value);return s.success?s.data.items:k(e)}async function S(e,r){var s;let n=await _(e);if(!n.length)return[];let a=await (0,i.db)().select({key:o.recommendationDismissals.key,dismissedAt:o.recommendationDismissals.dismissedAt}).from(o.recommendationDismissals).where((0,t.inArray)(o.recommendationDismissals.key,n.map(e=>e.key))).limit(50),l=(s=new Map(a.map(e=>[e.key,e.dismissedAt])),n.filter(t=>{let r=s.get(t.key);return!r||e.getTime()-r.getTime()>=2592e6}));return r?l.filter(e=>e.appId===r):l}e.s(["T",0,S,"O",0,k],455891)},42784,464161,e=>{var t=e.i(336763),r=e.i(396918),s=e.i(533102),n=e.i(406212),a=e.i(530298),i=e.i(978196),o=e.i(736337),l=e.i(667378),c=e.i(412948),u=e.i(178233),d=e.i(785194),h=e.i(70377),p=e.i(586307),f=e.i(764266);e.i(333407);var m=e.i(706959),g=e.i(706539),b=e.i(380719),y=e.i(584820);let w=e=>"string"==typeof e&&e?e:null;async function v(e,v){let k=await (0,n.db)().select({r:a.resources,s:a.snapshots,sec:a.appSecurity,accStatus:a.accounts.status}).from(a.resources).leftJoin(a.accounts,(0,t.eq)(a.accounts.id,a.resources.accountId)).leftJoin(a.snapshots,(0,t.eq)(a.snapshots.resourceId,a.resources.id)).leftJoin(a.appSecurity,(0,t.eq)(a.appSecurity.resourceId,a.resources.id)).where((0,t.and)((0,t.eq)(a.resources.kind,"app"),(0,t.eq)(a.resources.monitored,!0),v?(0,t.eq)(a.resources.id,v):void 0)).orderBy(a.resources.name).limit(h.O.apps);if(!k.length)return[];let _=k.map(e=>e.r.id),S=(await (0,n.db)().select().from(a.monitors).where((0,t.inArray)(a.monitors.resourceId,_)).orderBy(a.monitors.createdAt).limit(h.O.monitors)).map(b.M),x=await (0,n.db)().selectDistinctOn([a.deployments.resourceId]).from(a.deployments).where((0,t.and)((0,t.inArray)(a.deployments.resourceId,_),(0,t.eq)(a.deployments.target,"production"),(0,t.or)((0,t.eq)(a.deployments.isCurrent,!0),(0,t.ne)(a.deployments.state,"ready"),s.sql`${a.deployments.resourceId} not in (select serving.resource_id from ${a.deployments} as serving where serving.target = 'production' and serving.is_current)`))).orderBy(a.deployments.resourceId,(0,r.desc)(a.deployments.createdAtProvider)),A=await (0,g._)(S.map(e=>e.id),e),T=new Map(k.map(e=>[e.r.id,e.r])),R=await (0,b.J)(S.map(e=>({id:e.id,kind:e.kind,url:e.url,appId:e.appId,appName:T.get(e.appId)?.name??"",appMeta:T.get(e.appId)?.meta,lastError:e.lastError}))),E=new Map;for(let e of(await (0,n.db)().select({parentId:a.resources.parentId,name:a.resources.name,meta:a.resources.meta}).from(a.resources).where((0,t.and)((0,t.eq)(a.resources.kind,"domain"),(0,t.inArray)(a.resources.parentId,_),(0,t.isNull)(a.resources.goneAt))))){if(!e.parentId)continue;let t=E.get(e.parentId)??{};t[e.name.toLowerCase()]={redirect:w(e.meta.redirect),verified:!1!==e.meta.verified},E.set(e.parentId,t)}let I=await (0,g.P)(_,e),j=await (0,p.F)(_),O=S.length?await (0,m.f)():[];return k.map(({r:t,s:r,sec:s,accStatus:n})=>{let a=S.filter(e=>e.appId===t.id).map(t=>({...t,maintUntil:(0,f.x)(O,{monitorId:t.id,appId:t.appId},e)?.end??null,move:R.get(t.id)??null})),p=w(t.meta.createdAt),m=x.find(e=>e.resourceId===t.id);return{id:t.id,name:t.name,gone:null!==t.goneAt,state:r?.state??"unknown",stateSince:r?.stateSince??null,domain:(0,i.Y)(t.meta)?.primaryDomain??(0,c.m)(t.name,a.map(e=>e.url)),domainLines:(0,l.f)(t.meta,E.get(t.id)??{},(0,i.Y)(t.meta)?.primaryDomain??(0,c.m)(t.name,a.map(e=>e.url))),framework:w(t.meta.framework),productionBranch:w(t.meta.productionBranch),productionSource:(0,o.O)(t.meta.productionSource),createdAt:p?new Date(p):null,teamName:w(t.meta.teamName),teamSlug:w(t.meta.teamSlug),repo:w(t.meta.repo),repoType:w(t.meta.repoType),functionRegions:Array.isArray(t.meta.functionRegions)?t.meta.functionRegions.filter(e=>"string"==typeof e):[],monitors:a,lastDeploy:m?{id:m.id,externalId:m.externalId,state:m.state,target:m.target,branch:m.branch,commitSha:m.commitSha,commitMessage:m.commitMessage,url:m.url,createdAt:m.createdAtProvider,buildingAt:m.buildingAt,readyAt:m.readyAt,isCurrent:m.isCurrent,isPreviousProduction:m.isPreviousProduction}:null,uptime30:(0,d.Y)(a.flatMap(t=>(0,d.w)(A.get(t.id),e,d.I))),response:I.get(t.id)??{hourly:Array.from({length:h.A.responseHours},()=>null),p95:null,p50:null},days:new Map(a.flatMap(e=>{let t=A.get(e.id);return t?[[e.id,t]]:[]})),security:s?(0,y.Z)(s):null,database:j.get(t.id)??null,dbPaused:r?.data.dbPaused===!0,pageViews:(0,u.G)(r?.data),pageViewsNote:(0,u.R)({gone:null!==t.goneAt,teamId:w(t.meta.teamId),accountOk:"ok"===n,hasProductionDeploy:void 0!==m})}})}e.s(["f",0,v],42784),s.sql`coalesce(${a.events.lastAt}, ${a.events.at})`,e.s([],464161)},328586,e=>{var t=e.i(336763),r=e.i(396918),s=e.i(406212),n=e.i(530298),a=e.i(112515),i=e.i(803237),o=e.i(93387);let l=e=>e.trim().toLowerCase();var c=e.i(802641),u=e.i(958948);async function d(e){let l=e?(0,t.and)((0,t.eq)(n.accounts.id,e),(0,t.eq)(n.accounts.provider,"github")):(0,t.eq)(n.accounts.provider,"github"),[c]=await (0,s.db)().select().from(n.accounts).where(l).orderBy((0,r.asc)(n.accounts.createdAt)).limit(1);if(!c)return null;let u=(0,i.V)({ciphertext:c.credentialCiphertext,iv:c.credentialIv},(0,o.serverEnv)().OPS_ENCRYPTION_KEY);return{account:c,token:u,problem:(0,a.A)(u)}}async function h(e,t,r){let s=0;for(let n=0;n<e.length&&!(Date.now()>t);n+=5){let t=e.slice(n,n+5);s+=t.length,await Promise.allSettled(t.map(r))}return s}async function p(e,r,i={}){var o,c;let m,g,b=await d(e);if(!b)return{ok:!1,error:"GitHub isn't connected."};let{account:y,token:w,problem:v}=b;if(v||!w)return{ok:!1,error:v??"The credential can't be read."};let k=await (0,u.o)(w,i);if(!k.ok){let e=(0,a.E)({ok:!1,kind:"scope"===k.kind?"auth":"missing"===k.kind?"transient":k.kind,error:k.error});return e&&await (0,s.db)().update(n.accounts).set({...e,updatedAt:new Date}).where((0,t.eq)(n.accounts.id,y.id)),{ok:!1,error:k.error}}let _=new Date,S=(o=await (0,s.db)().select({id:n.githubRepos.id,externalId:n.githubRepos.externalId,goneAt:n.githubRepos.goneAt}).from(n.githubRepos).where((0,t.eq)(n.githubRepos.accountId,y.id)).limit(1e3),c=k.data.repos,m=new Map(o.map(e=>[e.externalId,e])),g=new Set(c.map(e=>e.id)),{insert:c.filter(e=>!m.has(e.id)),update:c.filter(e=>m.has(e.id)).map(e=>({id:m.get(e.id).id,repo:e})),gone:o.filter(e=>!g.has(e.externalId)&&!e.goneAt).map(e=>e.id)}),x=e=>({owner:e.owner,name:e.name,fullName:e.fullName,defaultBranch:e.defaultBranch,private:e.private,archived:e.archived,htmlUrl:e.htmlUrl,pushedAt:e.pushedAt});await (0,s.db)().transaction(async e=>{for(let r of S.update)await e.update(n.githubRepos).set({...x(r.repo),lastSeenAt:_,goneAt:null,updatedAt:_}).where((0,t.eq)(n.githubRepos.id,r.id));S.insert.length&&await e.insert(n.githubRepos).values(S.insert.map(e=>({accountId:y.id,externalId:e.id,...x(e)}))).onConflictDoNothing({target:[n.githubRepos.accountId,n.githubRepos.externalId]}),S.gone.length&&await e.update(n.githubRepos).set({goneAt:_,updatedAt:_}).where((0,t.and)((0,t.inArray)(n.githubRepos.id,S.gone),(0,t.isNull)(n.githubRepos.goneAt)))});let A=await (0,s.db)().select().from(n.githubRepos).where((0,t.eq)(n.githubRepos.accountId,y.id)).limit(1e3),T=[];k.data.truncated&&T.push("Only the 300 most recently pushed repositories are listed.");let R=!1;await h(A.filter(e=>!e.archived&&!e.goneAt&&(!e.packageCheckedAt||null!==e.pushedAt&&e.pushedAt>e.packageCheckedAt)).sort((e,t)=>(t.pushedAt?.getTime()??0)-(e.pushedAt?.getTime()??0)).slice(0,10),r,async e=>{let r=await (0,u.q)(w,e.fullName,i);r.ok?await (0,s.db)().update(n.githubRepos).set({packageName:r.data,packageCheckedAt:new Date,updatedAt:new Date}).where((0,t.eq)(n.githubRepos.id,e.id)):"scope"===r.kind&&(R=!0)}),R&&T.push("Some package.json files can't be read: give the token Contents read on those repositories.");let E=await (0,s.db)().select({id:n.resources.id,name:n.resources.name,meta:n.resources.meta}).from(n.resources).where((0,t.and)((0,t.eq)(n.resources.kind,"app"),(0,t.isNull)(n.resources.goneAt))).limit(500),I=await (0,s.db)().select({appId:n.appRepos.appId,repoId:n.appRepos.repoId,source:n.appRepos.source}).from(n.appRepos).limit(500),j=e=>"string"==typeof e&&e?e:null,O=function(e,t,r){let s=new Map(t.filter(e=>!e.goneAt).map(e=>[l(e.fullName),e.id])),n=new Map(r.map(e=>[e.appId,e])),a=[];for(let t of e){if("github"!==t.repoType||!t.repo)continue;let e=s.get(l(t.repo));if(!e)continue;let r=n.get(t.id);r?.source!=="manual"&&r?.repoId!==e&&a.push({appId:t.id,repoId:e})}return a}(E.map(e=>({id:e.id,name:e.name,repo:j(e.meta.repo),repoType:j(e.meta.repoType)})),A,I);for(let e of O)await (0,s.db)().insert(n.appRepos).values({appId:e.appId,repoId:e.repoId,source:"vercel"}).onConflictDoUpdate({target:n.appRepos.appId,set:{repoId:e.repoId,source:"vercel",updatedAt:new Date},setWhere:(0,t.ne)(n.appRepos.source,"manual")});let C=await (0,s.db)().selectDistinct({id:n.githubRepos.id,fullName:n.githubRepos.fullName,defaultBranch:n.githubRepos.defaultBranch}).from(n.appRepos).innerJoin(n.githubRepos,(0,t.eq)(n.githubRepos.id,n.appRepos.repoId)).where((0,t.and)((0,t.eq)(n.githubRepos.accountId,y.id),(0,t.isNull)(n.githubRepos.goneAt))).limit(500),$=!1,P=await h(C,r,async e=>{let t=await (0,u.W)(w,e.fullName,e.defaultBranch,i);t.ok?await f(e.id,t.data):"scope"===t.kind&&($=!0)});$&&T.push("Some Actions runs can't be read: give the token Actions read on those repositories."),P<C.length&&T.push(`${C.length-P} Actions status${C.length-P==1?"":"es"} left for the next run, time budget used.`);let N=await (0,u.k)(w,i);return await (0,s.db)().update(n.accounts).set({lastSyncAt:_,status:"ok",lastError:null,updatedAt:_,...N.ok?{expiresAt:N.data.expiresAt}:{}}).where((0,t.eq)(n.accounts.id,y.id)),{ok:!0,repos:A.filter(e=>!e.goneAt).length,linked:C.length,newLinks:O.length,notes:T}}async function f(e,r){await (0,s.db)().update(n.githubRepos).set({actions:r,actionsCheckedAt:new Date,updatedAt:new Date}).where((0,t.eq)(n.githubRepos.id,e))}async function m(e){let[r]=await (0,s.db)().select({id:n.accounts.id}).from(n.accounts).where((0,t.eq)(n.accounts.provider,"github")).limit(1);if(!r)return null;if(Date.now()>e)return"left for the next run, time budget used";let a=await p(r.id,e);return a.ok?null:a.error}async function g(e){if(!(0,c.f)(e))return{ok:!1,reason:"no-repo",error:"That app no longer exists."};let[r]=await (0,s.db)().select({r:n.githubRepos}).from(n.appRepos).innerJoin(n.githubRepos,(0,t.eq)(n.githubRepos.id,n.appRepos.repoId)).where((0,t.and)((0,t.eq)(n.appRepos.appId,e),(0,t.isNull)(n.githubRepos.goneAt))).limit(1);if(!r)return{ok:!1,reason:"no-repo",error:"This app isn't linked to a GitHub repository yet."};let a=await d(r.r.accountId);return a?.token?{ok:!0,fullName:r.r.fullName,defaultBranch:r.r.defaultBranch,token:a.token}:{ok:!1,reason:"no-token",error:"The GitHub token can't be read; check the GitHub connection."}}e.s(["D",0,m,"l",0,g],328586)},451682,313903,205746,e=>{var t=e.i(336763),r=e.i(157406),s=e.i(533102),n=e.i(406212),a=e.i(530298),i=e.i(122603),o=e.i(803237),l=e.i(333407),c=e.i(93387),u=e.i(765503),d=e.i(666680),h=e.i(75064),p=e.i(909592),f=e.i(932378),m=e.i(246517),g=e.i(492973),b=e.i(794588);e.s(["z",0,b],313903);var b=b,y=e.i(260417);let w=["debug","info","warning","error","fatal","trace"],v=h.z.object({rows:p.z.array(f.z.unknown()).catch([]),hasMoreRows:m.z.boolean().catch(!1)}),k=h.z.object({requestId:g.z.string().min(1),timestamp:g.z.string().transform((e,t)=>{let r=Date.parse(e);return Number.isNaN(r)?(t.addIssue({code:"custom",message:"bad timestamp"}),b.NEVER):new Date(r)}),deploymentId:g.z.string().nullish().catch(null),requestMethod:g.z.string().nullish().catch(null),requestPath:g.z.string().nullish().catch(null),statusCode:y.z.number().nullish().catch(null),logs:p.z.array(f.z.unknown()).nullish().catch(null),events:p.z.array(f.z.unknown()).nullish().catch(null)}),_=h.z.object({level:g.z.string().nullish().catch(null),message:g.z.string().nullish().catch(null)}),S=h.z.object({source:g.z.string().nullish().catch(null)}),x=(e,t)=>(0,d.createHash)("sha1").update(`${e}
|
|
1
|
+
module.exports=[[132245,(e,t,r)=>{function s(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,r=new WeakMap;return(s=function(e){return e?r:t})(e)}r._=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};var r=s(t);if(r&&r.has(e))return r.get(e);var n={__proto__:null},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var i in e)if("default"!==i&&Object.prototype.hasOwnProperty.call(e,i)){var o=a?Object.getOwnPropertyDescriptor(e,i):null;o&&(o.get||o.set)?Object.defineProperty(n,i,o):n[i]=e[i]}return n.default=e,r&&r.set(e,n),n}},738458,(e,t,r)=>{let s;Object.defineProperty(r,"__esModule",{value:!0}),r.parseCookie=d,r.parse=d,r.stringifyCookie=function(e,t){let r=t?.encode||encodeURIComponent,s=[];for(let t of Object.keys(e)){let i=e[t];if(void 0===i)continue;if(!n.test(t))throw TypeError(`cookie name is invalid: ${t}`);let o=r(i);if(!a.test(o))throw TypeError(`cookie val is invalid: ${i}`);s.push(`${t}=${o}`)}return s.join("; ")},r.stringifySetCookie=h,r.serialize=h,r.parseSetCookie=function(e,t){let r=t?.decode||g,s=e.length,n=p(e,0,s),a=f(e,0,n),i=-1===a?{name:"",value:r(m(e,0,n))}:{name:m(e,0,a),value:r(m(e,a+1,n))},o=n+1;for(;o<s;){let t=p(e,o,s),r=f(e,o,t),n=-1===r?m(e,o,t):m(e,o,r),a=-1===r?void 0:m(e,r+1,t);switch(n.toLowerCase()){case"httponly":i.httpOnly=!0;break;case"secure":i.secure=!0;break;case"partitioned":i.partitioned=!0;break;case"domain":i.domain=a;break;case"path":i.path=a;break;case"max-age":a&&l.test(a)&&(i.maxAge=Number(a));break;case"expires":if(!a)break;let c=new Date(a);Number.isFinite(c.valueOf())&&(i.expires=c);break;case"priority":if(!a)break;let u=a.toLowerCase();("low"===u||"medium"===u||"high"===u)&&(i.priority=u);break;case"samesite":if(!a)break;let d=a.toLowerCase();("lax"===d||"strict"===d||"none"===d)&&(i.sameSite=d)}o=t+1}return i},r.stringifySetCookie=h,r.serialize=h;let n=/^[\u0021-\u003A\u003C\u003E-\u007E]+$/,a=/^[\u0021-\u003A\u003C-\u007E]*$/,i=/^([.]?[a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?)([.][a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?)*$/i,o=/^[\u0020-\u003A\u003D-\u007E]*$/,l=/^-?\d+$/,c=Object.prototype.toString,u=((s=function(){}).prototype=Object.create(null),s);function d(e,t){let r=new u,s=e.length;if(s<2)return r;let n=t?.decode||g,a=0;do{let t=f(e,a,s);if(-1===t)break;let i=p(e,a,s);if(t>i){a=e.lastIndexOf(";",t-1)+1;continue}let o=m(e,a,t);void 0===r[o]&&(r[o]=n(m(e,t+1,i))),a=i+1}while(a<s)return r}function h(e,t,r){let s="object"==typeof e?e:{...r,name:e,value:String(t)},l=("object"==typeof t?t:r)?.encode||encodeURIComponent;if(!n.test(s.name))throw TypeError(`argument name is invalid: ${s.name}`);let u=s.value?l(s.value):"";if(!a.test(u))throw TypeError(`argument val is invalid: ${s.value}`);let d=s.name+"="+u;if(void 0!==s.maxAge){if(!Number.isInteger(s.maxAge))throw TypeError(`option maxAge is invalid: ${s.maxAge}`);d+="; Max-Age="+s.maxAge}if(s.domain){if(!i.test(s.domain))throw TypeError(`option domain is invalid: ${s.domain}`);d+="; Domain="+s.domain}if(s.path){if(!o.test(s.path))throw TypeError(`option path is invalid: ${s.path}`);d+="; Path="+s.path}if(s.expires){var h;if(h=s.expires,"[object Date]"!==c.call(h)||!Number.isFinite(s.expires.valueOf()))throw TypeError(`option expires is invalid: ${s.expires}`);d+="; Expires="+s.expires.toUTCString()}if(s.httpOnly&&(d+="; HttpOnly"),s.secure&&(d+="; Secure"),s.partitioned&&(d+="; Partitioned"),s.priority)switch("string"==typeof s.priority?s.priority.toLowerCase():void 0){case"low":d+="; Priority=Low";break;case"medium":d+="; Priority=Medium";break;case"high":d+="; Priority=High";break;default:throw TypeError(`option priority is invalid: ${s.priority}`)}if(s.sameSite)switch("string"==typeof s.sameSite?s.sameSite.toLowerCase():s.sameSite){case!0:case"strict":d+="; SameSite=Strict";break;case"lax":d+="; SameSite=Lax";break;case"none":d+="; SameSite=None";break;default:throw TypeError(`option sameSite is invalid: ${s.sameSite}`)}return d}function p(e,t,r){let s=e.indexOf(";",t);return -1===s?r:s}function f(e,t,r){let s=e.indexOf("=",t);return s<r?s:-1}function m(e,t,r){let s=t,n=r;do{let t=e.charCodeAt(s);if(32!==t&&9!==t)break}while(++s<n)for(;n>s;){let t=e.charCodeAt(n-1);if(32!==t&&9!==t)break;n--}return e.slice(s,n)}function g(e){if(-1===e.indexOf("%"))return e;try{return decodeURIComponent(e)}catch(t){return e}}},63493,e=>{var t=e.i(31194);e.n(t)},133791,(e,t,r)=>{Object.defineProperty(r,"__esModule",{value:!0});var s={default:function(){return l},useLinkStatus:function(){return o.useLinkStatus}};for(var n in s)Object.defineProperty(r,n,{enumerable:!0,get:s[n]});let a=e.r(132245),i=e.r(133210),o=a._(e.r(63493));function l(e){let t=e.legacyBehavior,r="string"==typeof e.children||"number"==typeof e.children||"string"==typeof e.children?.type,s=e.children?.type?.$$typeof===Symbol.for("react.client.reference");return!t||r||s||(e.children?.type?.$$typeof===Symbol.for("react.lazy")?console.error("Using a Lazy Component as a direct child of `<Link legacyBehavior>` from a Server Component is not supported. If you need legacyBehavior, wrap your Lazy Component in a Client Component that renders the Link's `<a>` tag."):console.error("Using a Server Component as a direct child of `<Link legacyBehavior>` is not supported. If you need legacyBehavior, wrap your Server Component in a Client Component that renders the Link's `<a>` tag.")),(0,i.jsx)(o.default,{...e})}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},385585,(e,t,r)=>{Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"after",{enumerable:!0,get:function(){return a}});let s=e.r(556704),n=e.r(832319);function a(e){let t=s.workAsyncStorage.getStore(),r=n.workUnitAsyncStorage.getStore();if(!t||!r)throw Error("`after` was called outside a request scope. Read more: https://nextjs.org/docs/messages/next-dynamic-api-wrong-context");let{afterContext:a}=t;return a.after(e,r)}},910473,(e,t,r)=>{var s,n;Object.defineProperty(r,"__esModule",{value:!0}),s=e.r(385585),n=r,Object.keys(s).forEach(function(e){"default"===e||Object.prototype.hasOwnProperty.call(n,e)||Object.defineProperty(n,e,{enumerable:!0,get:function(){return s[e]}})})},476550,(e,t,r)=>{Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"connection",{enumerable:!0,get:function(){return d}});let s=e.r(556704),n=e.r(832319),a=e.r(258200),i=e.r(183589),o=e.r(225176),l=e.r(679847);e.r(865832);let c=e.r(585346),u=e.r(748448);function d(){let e=s.workAsyncStorage.getStore(),t=n.workUnitAsyncStorage.getStore();if(e){if(t&&!(0,l.isRequestApiAllowedInCurrentPhase)(t))throw Error(`Route ${e.route} used \`connection()\` inside \`after()\` while rendering. The \`connection()\` function is used to indicate the subsequent code must only run when there is an actual Request, but \`after()\` executes after the request, so this function is not allowed in this scope. See more info here: https://nextjs.org/docs/app/api-reference/functions/after`);if(e.forceStatic)return Promise.resolve(void 0);if(e.dynamicShouldError)throw new i.StaticGenBailoutError(`Route ${e.route} with \`dynamic = "error"\` couldn't be rendered statically because it used \`connection()\`. See more info here: https://nextjs.org/docs/app/building-your-application/rendering/static-and-dynamic#dynamic-rendering`);if(t)switch(t.type){case"cache":{let t=(0,u.createConnectionInPublicUseCacheError)(e.route);throw Error.captureStackTrace(t,d),(0,o.applyOwnerStack)(t),e.invalidDynamicUsageError??=t,t}case"private-cache":{let t=(0,u.createConnectionInPrivateUseCacheError)(e.route);throw Error.captureStackTrace(t,d),(0,o.applyOwnerStack)(t),e.invalidDynamicUsageError??=t,t}case"unstable-cache":throw(0,u.createConnectionInUnstableCacheError)(e.route);case"build-time-generator":throw Error(`Route ${e.route} used \`connection()\` inside \`${t.functionName}\`. This is not supported because \`${t.functionName}\` runs at build time without an HTTP request. Read more: https://nextjs.org/docs/messages/next-dynamic-api-wrong-context`);case"prerender":case"prerender-client":case"prerender-runtime":return(0,o.makeDynamicHangingPromise)(t.renderSignal,e.route,"`connection()`");case"validation-client":{let e="`connection`";throw new c.InvariantError(`${e} must not be used within a Client Component. Next.js should be preventing ${e} from being included in Client Components statically, but did not in this case.`)}case"prerender-legacy":return(0,a.throwToInterruptStaticGeneration)("connection",e,t);case"request":if((0,a.trackDynamicDataInDynamicRender)(t),t.asyncApiPromises)return t.asyncApiPromises.connection;return Promise.resolve(void 0)}}(0,n.throwForMissingRequestStore)("connection")}},133210,(e,t,r)=>{t.exports=e.r(307450).vendored["react-rsc"].ReactJsxRuntime},310086,(e,t,r)=>{t.exports=e.r(307450).vendored["react-rsc"].ReactServerDOMTurbopackServer},853702,(e,t,r)=>{function s(){throw Error('ImageResponse moved from "next/server" to "next/og" since Next.js 14, please import from "next/og" instead')}Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"ImageResponse",{enumerable:!0,get:function(){return s}})},628661,(e,t,r)=>{Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"NextResponse",{enumerable:!0,get:function(){return d}});let s=e.r(86547),n=e.r(723866),a=e.r(287790),i=e.r(770956),o=e.r(86547),l=Symbol("internal response"),c=new Set([301,302,303,307,308]);function u(e,t){var r;if(null==e||null==(r=e.request)?void 0:r.headers){if(!(e.request.headers instanceof Headers))throw Error("request.headers must be an instance of Headers");let r=[];for(let[s,n]of e.request.headers)t.set("x-middleware-request-"+s,n),r.push(s);t.set("x-middleware-override-headers",r.join(","))}}class d extends Response{constructor(e,t={}){super(e,t);let r=this.headers,c=new Proxy(new o.ResponseCookies(r),{get(e,n,a){switch(n){case"delete":case"set":return(...a)=>{let i=Reflect.apply(e[n],e,a),l=new Headers(r);return i instanceof o.ResponseCookies&&r.set("x-middleware-set-cookie",i.getAll().map(e=>(0,s.stringifyCookie)(e)).join(",")),u(t,l),i};default:return i.ReflectAdapter.get(e,n,a)}}});this[l]={cookies:c,url:t.url?new n.NextURL(t.url,{headers:(0,a.toNodeOutgoingHttpHeaders)(r),nextConfig:t.nextConfig}):void 0}}[Symbol.for("edge-runtime.inspect.custom")](){return{cookies:this.cookies,url:this.url,body:this.body,bodyUsed:this.bodyUsed,headers:Object.fromEntries(this.headers),ok:this.ok,redirected:this.redirected,status:this.status,statusText:this.statusText,type:this.type}}get cookies(){return this[l].cookies}static json(e,t){let r=Response.json(e,t);return new d(r.body,r)}static redirect(e,t){let r="number"==typeof t?t:(null==t?void 0:t.status)??307;if(!c.has(r))throw RangeError('Failed to execute "redirect" on "response": Invalid status code');let s="object"==typeof t?t:{},n=new Headers(null==s?void 0:s.headers);return n.set("Location",(0,a.validateURL)(e)),new d(null,{...s,headers:n,status:r})}static rewrite(e,t){let r=new Headers(null==t?void 0:t.headers);return r.set("x-middleware-rewrite",(0,a.validateURL)(e)),u(t,r),new d(null,{...t,headers:r})}static next(e){let t=new Headers(null==e?void 0:e.headers);return t.set("x-middleware-next","1"),u(e,t),new d(null,{...e,headers:t})}}},374644,(e,t,r)=>{Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"URLPattern",{enumerable:!0,get:function(){return s}});let s="u"<typeof URLPattern?void 0:URLPattern},276870,(e,t,r)=>{Object.defineProperty(r,"__esModule",{value:!0});var s,n={isBot:function(){return o},userAgent:function(){return c},userAgentFromString:function(){return l}};for(var a in n)Object.defineProperty(r,a,{enumerable:!0,get:n[a]});let i=(s=e.r(547850))&&s.__esModule?s:{default:s};function o(e){return/Googlebot|Mediapartners-Google|AdsBot-Google|googleweblight|Storebot-Google|Google-PageRenderer|Google-InspectionTool|Bingbot|BingPreview|Slurp|DuckDuckBot|baiduspider|yandex|sogou|LinkedInBot|bitlybot|tumblr|vkShare|quora link preview|facebookexternalhit|facebookcatalog|Twitterbot|applebot|redditbot|Slackbot|Discordbot|WhatsApp|SkypeUriPreview|ia_archiver|GPTBot/i.test(e)}function l(e){return{...(0,i.default)(e),isBot:void 0!==e&&o(e)}}function c({headers:e}){return l(e.get("user-agent")||void 0)}},352565,e=>{var t=e.i(310086);(0,t.registerClientReference)(function(){throw Error("Attempted to call AliasProvider() from the server but AliasProvider 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/alias.tsx","AliasProvider"),(0,t.registerClientReference)(function(){throw Error("Attempted to call DbName() from the server but DbName 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/alias.tsx","DbName"),(0,t.registerClientReference)(function(){throw Error("Attempted to call Masked() from the server but Masked 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/alias.tsx","Masked");let r=(0,t.registerClientReference)(function(){throw Error("Attempted to call MaskedText() from the server but MaskedText 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/alias.tsx","MaskedText");(0,t.registerClientReference)(function(){throw Error("Attempted to call Reveal() from the server but Reveal 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/alias.tsx","Reveal"),(0,t.registerClientReference)(function(){throw Error("Attempted to call maskedValue() from the server but maskedValue 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/alias.tsx","maskedValue"),(0,t.registerClientReference)(function(){throw Error("Attempted to call useAliasBook() from the server but useAliasBook 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/alias.tsx","useAliasBook"),(0,t.registerClientReference)(function(){throw Error("Attempted to call useMask() from the server but useMask 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/alias.tsx","useMask"),(0,t.registerClientReference)(function(){throw Error("Attempted to call usePrivacy() from the server but usePrivacy 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/alias.tsx","usePrivacy"),e.s(["MaskedText",0,r])},639307,e=>{var t=e.i(352565);e.n(t)},455891,e=>{var t=e.i(336763),r=e.i(75064),s=e.i(492973),n=e.i(79322),a=e.i(909592),i=e.i(406212),o=e.i(530298),l=e.i(27479),c=e.i(728335);let u=e=>{let t=(0,c.calendarDate)(e);return`${t.day} ${t.month} ${t.year}`},d=c.dayKey;var h=e.i(857799),p=e.i(123076),f=e.i(70377),m=e.i(586307),g=e.i(827439);let b="advisor.latest",y=r.z.object({key:s.z.string(),severity:n.z.enum(["warning","info"]),appId:s.z.string().nullable(),subject:s.z.string(),title:s.z.string(),why:s.z.string(),fix:s.z.string(),href:s.z.string()}),w=r.z.object({at:s.z.string(),items:a.z.array(y)});async function v(e){let r=(0,t.and)((0,t.eq)(o.resources.kind,"app"),(0,t.eq)(o.resources.monitored,!0),(0,t.isNull)(o.resources.goneAt)),s=await (0,g.P)(),n=await (0,m.V)(),[a,c,u,d,b]=await Promise.all([(0,i.db)().select({id:o.monitors.id,appId:o.monitors.resourceId,appName:o.resources.name,url:o.monitors.url,kind:o.monitors.kind,name:o.monitors.name,paused:o.monitors.paused,ownerPaused:o.monitors.ownerPaused,lastStatus:o.monitors.lastStatus,expectedStatus:o.monitors.expectedStatus,lastPingAt:o.monitors.lastPingAt,createdAt:o.monitors.createdAt}).from(o.monitors).innerJoin(o.resources,(0,t.eq)(o.resources.id,o.monitors.resourceId)).where(r).orderBy(o.resources.name,o.monitors.url).limit(f.O.monitors),(0,i.db)().select({id:o.resources.id,name:o.resources.name,version:o.appSecurity.version}).from(o.resources).innerJoin(o.appSecurity,(0,t.eq)(o.appSecurity.resourceId,o.resources.id)).where(r).orderBy(o.resources.name).limit(f.O.apps),(0,i.db)().select({id:o.resources.id,name:o.resources.name,kind:o.resources.kind,accountId:o.resources.accountId,accountLabel:o.accounts.label,state:o.snapshots.state}).from(o.resources).innerJoin(o.accounts,(0,t.eq)(o.accounts.id,o.resources.accountId)).leftJoin(o.snapshots,(0,t.eq)(o.snapshots.resourceId,o.resources.id)).where((0,t.and)((0,t.inArray)(o.resources.kind,[...h.H]),(0,t.eq)(o.resources.monitored,!0),(0,t.isNull)(o.resources.goneAt))).orderBy(o.resources.name).limit(f.O.databases),(0,i.db)().select({appId:o.links.fromResourceId,dbId:o.links.toResourceId}).from(o.links).where((0,t.eq)(o.links.kind,"uses_db")).limit(f.O.apps),(0,i.db)().select({id:o.accounts.id,provider:o.accounts.provider,label:o.accounts.label,expiresAt:o.accounts.expiresAt,scopeNote:o.accounts.scopeNote}).from(o.accounts).orderBy(o.accounts.label).limit(200)]);return{now:e,monitors:a.map(e=>({id:e.id,appId:e.appId,appName:e.appName,path:"heartbeat"===e.kind?e.url:(0,l.K)(e.url),kind:e.kind,name:e.name,paused:e.paused||e.ownerPaused,lastStatus:e.lastStatus,expectedStatus:e.expectedStatus,lastPingAt:e.lastPingAt,createdAt:e.createdAt})),eol:function(e,t){if(!t)return null;let r=t.cycles.find(e=>!e.isEol)?.latest??null,s=[];for(let n of e){let e=n.version?.split(".")[0],a=e?t.cycles.find(t=>t.name===e):void 0;a&&s.push({appId:n.id,appName:n.name,cycle:a.name,eolFrom:a.eolFrom?new Date(`${a.eolFrom}T00:00:00Z`):null,latest:r})}return s}(c,s),headers:null,dbs:u.map(e=>({id:e.id,name:e.name,provider:(0,h.Z)(e.kind),accountId:e.accountId,accountLabel:e.accountLabel,state:e.state??"unknown"})),slots:(0,p.f)(n).map(e=>({account:e.account,used:e.used,total:e.total,planUnknown:e.planUnknown})),links:d,accounts:b}}async function k(e){let t=function(e){let t=[];for(let r of e.eol??[]){if(!r.eolFrom||r.eolFrom.getTime()-e.now.getTime()>2592e6)continue;let s=r.eolFrom.getTime()<=e.now.getTime(),n=r.latest?.split(".")[0];t.push({key:`next-eol:${r.appId}:${r.cycle}`,severity:"warning",appId:r.appId,subject:r.appName,title:`Next.js ${r.cycle} ${s?"reached":"reaches"} end of life on ${u(r.eolFrom)}`,why:`No security fixes after that date.${r.latest?` Latest is ${r.latest}.`:""}`,fix:n?`Upgrade to Next.js ${n}.`:"Upgrade Next.js.",href:"https://endoflife.date/nextjs"})}for(let r of e.monitors)!r.paused&&("heartbeat"===r.kind&&!r.lastPingAt&&e.now.getTime()-r.createdAt.getTime()>864e5&&t.push({key:`hb-silent:${r.id}`,severity:"warning",appId:r.appId,subject:r.appName,title:`${r.name??"A heartbeat"} has never pinged`,why:"It was added more than a day ago and no job has called its URL.",fix:"Add the ping to the job, or delete the monitor.",href:"/uptime"}),"http"===r.kind&&"/"===r.path&&200===r.expectedStatus&&null!==r.lastStatus&&[401,403,404].includes(r.lastStatus)&&t.push({key:`monitor-root:${r.id}:${r.lastStatus}`,severity:"info",appId:r.appId,subject:r.appName,title:`The monitor on / answers ${r.lastStatus}`,why:`A login or missing page answering ${r.lastStatus} makes the monitor look down.`,fix:`Point the monitor at a public health route, or expect ${r.lastStatus}.`,href:"/uptime"}));for(let r of e.headers??[]){if(!r.missing.length)continue;let e=[...r.missing].sort();t.push({key:`headers:${r.appId}:${e.join(",")}`,severity:"info",appId:r.appId,subject:r.appName,title:`Missing security headers: ${e.join(", ")}`,why:"Browsers use them to block clickjacking, sniffing and downgrade attacks.",fix:"Add them in next.config headers().",href:"https://developer.mozilla.org/en-US/observatory"})}for(let r of e.slots??[])r.used<r.total||t.push({key:`no-slot:${r.account}`,severity:"warning",appId:null,subject:`supabase \xb7 ${r.account}`,title:`Account ${r.account} has no free slot`,why:r.planUnknown?"Two projects are active. If this account is on the free plan (it couldn't be read), a paused one can't be restored here.":"Both free projects are active, so a paused one can't be restored here.",fix:"Pause one project, or move one to another account.",href:"/supabase"});if(e.dbs&&e.links){let r=new Set(e.links.map(e=>e.dbId));for(let s of e.dbs.filter(e=>!r.has(e.id)))t.push({key:`db-unlinked:${s.id}`,severity:"info",appId:null,subject:s.name,title:"Database isn't linked to any app",why:"Topology and the app status can't use it.",fix:"Link it from the app page.",href:"/apps"})}for(let r of e.accounts)"supabase"===r.provider&&r.scopeNote&&/all[- ]access/i.test(r.scopeNote)&&t.push({key:`broad-cred:${r.id}`,severity:"info",appId:null,subject:`supabase \xb7 ${r.label}`,title:`${r.label} uses an all-access token`,why:"The console only reads; a broader token is a bigger risk if it ever leaks.",fix:"Replace it with a read-only token in Connections, then revoke the old one in Supabase.",href:"/connections"});for(let r of e.accounts){if(!r.expiresAt)continue;let s=r.expiresAt.getTime()-e.now.getTime();s>=12096e5&&s<=5184e6&&t.push({key:`cred-60:${r.id}:${d(r.expiresAt)}`,severity:"info",appId:null,subject:`${r.provider} \xb7 ${r.label}`,title:`The ${r.provider} credential ${r.label} expires on ${(0,c.dayMonth)(r.expiresAt)}`,why:"An expired credential stops every reading from that account.",fix:"Create a new one and use Replace credential in Connections.",href:"/connections"})}return t.map((e,t)=>({r:e,i:t})).sort((e,t)=>("warning"!==e.r.severity)-("warning"!==t.r.severity)||e.i-t.i).map(({r:e})=>e).slice(0,50)}(await v(e)),r={at:e.toISOString(),items:t};return await (0,i.db)().insert(o.settings).values({key:b,value:r}).onConflictDoUpdate({target:o.settings.key,set:{value:r,updatedAt:e}}),t}async function _(e){let[r]=await (0,i.db)().select({value:o.settings.value}).from(o.settings).where((0,t.eq)(o.settings.key,b)).limit(1),s=w.safeParse(r?.value);return s.success?s.data.items:k(e)}async function S(e,r){var s;let n=await _(e);if(!n.length)return[];let a=await (0,i.db)().select({key:o.recommendationDismissals.key,dismissedAt:o.recommendationDismissals.dismissedAt}).from(o.recommendationDismissals).where((0,t.inArray)(o.recommendationDismissals.key,n.map(e=>e.key))).limit(50),l=(s=new Map(a.map(e=>[e.key,e.dismissedAt])),n.filter(t=>{let r=s.get(t.key);return!r||e.getTime()-r.getTime()>=2592e6}));return r?l.filter(e=>e.appId===r):l}e.s(["T",0,S,"O",0,k],455891)},42784,464161,e=>{var t=e.i(336763),r=e.i(396918),s=e.i(533102),n=e.i(406212),a=e.i(530298),i=e.i(978196),o=e.i(736337),l=e.i(667378),c=e.i(412948),u=e.i(178233),d=e.i(785194),h=e.i(70377),p=e.i(586307),f=e.i(764266);e.i(333407);var m=e.i(706959),g=e.i(706539),b=e.i(380719),y=e.i(584820);let w=e=>"string"==typeof e&&e?e:null;async function v(e,v){let k=await (0,n.db)().select({r:a.resources,s:a.snapshots,sec:a.appSecurity,accStatus:a.accounts.status}).from(a.resources).leftJoin(a.accounts,(0,t.eq)(a.accounts.id,a.resources.accountId)).leftJoin(a.snapshots,(0,t.eq)(a.snapshots.resourceId,a.resources.id)).leftJoin(a.appSecurity,(0,t.eq)(a.appSecurity.resourceId,a.resources.id)).where((0,t.and)((0,t.eq)(a.resources.kind,"app"),(0,t.eq)(a.resources.monitored,!0),v?(0,t.eq)(a.resources.id,v):void 0)).orderBy(a.resources.name).limit(h.O.apps);if(!k.length)return[];let _=k.map(e=>e.r.id),S=(await (0,n.db)().select().from(a.monitors).where((0,t.inArray)(a.monitors.resourceId,_)).orderBy(a.monitors.createdAt).limit(h.O.monitors)).map(b.M),x=await (0,n.db)().selectDistinctOn([a.deployments.resourceId]).from(a.deployments).where((0,t.and)((0,t.inArray)(a.deployments.resourceId,_),(0,t.eq)(a.deployments.target,"production"),(0,t.or)((0,t.eq)(a.deployments.isCurrent,!0),(0,t.ne)(a.deployments.state,"ready"),s.sql`${a.deployments.resourceId} not in (select serving.resource_id from ${a.deployments} as serving where serving.target = 'production' and serving.is_current)`))).orderBy(a.deployments.resourceId,(0,r.desc)(a.deployments.createdAtProvider)),A=await (0,g._)(S.map(e=>e.id),e),T=new Map(k.map(e=>[e.r.id,e.r])),R=await (0,b.J)(S.map(e=>({id:e.id,kind:e.kind,url:e.url,appId:e.appId,appName:T.get(e.appId)?.name??"",appMeta:T.get(e.appId)?.meta,lastError:e.lastError}))),E=new Map;for(let e of(await (0,n.db)().select({parentId:a.resources.parentId,name:a.resources.name,meta:a.resources.meta}).from(a.resources).where((0,t.and)((0,t.eq)(a.resources.kind,"domain"),(0,t.inArray)(a.resources.parentId,_),(0,t.isNull)(a.resources.goneAt))))){if(!e.parentId)continue;let t=E.get(e.parentId)??{};t[e.name.toLowerCase()]={redirect:w(e.meta.redirect),verified:!1!==e.meta.verified},E.set(e.parentId,t)}let I=await (0,g.P)(_,e),j=await (0,p.F)(_),O=S.length?await (0,m.f)():[];return k.map(({r:t,s:r,sec:s,accStatus:n})=>{let a=S.filter(e=>e.appId===t.id).map(t=>({...t,maintUntil:(0,f.x)(O,{monitorId:t.id,appId:t.appId},e)?.end??null,move:R.get(t.id)??null})),p=w(t.meta.createdAt),m=x.find(e=>e.resourceId===t.id);return{id:t.id,name:t.name,gone:null!==t.goneAt,state:r?.state??"unknown",stateSince:r?.stateSince??null,domain:(0,i.Y)(t.meta)?.primaryDomain??(0,c.m)(t.name,a.map(e=>e.url)),domainLines:(0,l.f)(t.meta,E.get(t.id)??{},(0,i.Y)(t.meta)?.primaryDomain??(0,c.m)(t.name,a.map(e=>e.url))),framework:w(t.meta.framework),productionBranch:w(t.meta.productionBranch),productionSource:(0,o.O)(t.meta.productionSource),createdAt:p?new Date(p):null,teamName:w(t.meta.teamName),teamSlug:w(t.meta.teamSlug),repo:w(t.meta.repo),repoType:w(t.meta.repoType),functionRegions:Array.isArray(t.meta.functionRegions)?t.meta.functionRegions.filter(e=>"string"==typeof e):[],monitors:a,lastDeploy:m?{id:m.id,externalId:m.externalId,state:m.state,target:m.target,branch:m.branch,commitSha:m.commitSha,commitMessage:m.commitMessage,url:m.url,createdAt:m.createdAtProvider,buildingAt:m.buildingAt,readyAt:m.readyAt,isCurrent:m.isCurrent,isPreviousProduction:m.isPreviousProduction}:null,uptime30:(0,d.Y)(a.flatMap(t=>(0,d.w)(A.get(t.id),e,d.I))),response:I.get(t.id)??{hourly:Array.from({length:h.A.responseHours},()=>null),p95:null,p50:null},days:new Map(a.flatMap(e=>{let t=A.get(e.id);return t?[[e.id,t]]:[]})),security:s?(0,y.Z)(s):null,database:j.get(t.id)??null,dbPaused:r?.data.dbPaused===!0,pageViews:(0,u.G)(r?.data),pageViewsNote:(0,u.R)({gone:null!==t.goneAt,teamId:w(t.meta.teamId),accountOk:"ok"===n,hasProductionDeploy:void 0!==m})}})}e.s(["f",0,v],42784),s.sql`coalesce(${a.events.lastAt}, ${a.events.at})`,e.s([],464161)},328586,e=>{var t=e.i(336763),r=e.i(396918),s=e.i(406212),n=e.i(530298),a=e.i(112515),i=e.i(803237),o=e.i(93387);let l=e=>e.trim().toLowerCase();var c=e.i(802641),u=e.i(958948);async function d(e){let l=e?(0,t.and)((0,t.eq)(n.accounts.id,e),(0,t.eq)(n.accounts.provider,"github")):(0,t.eq)(n.accounts.provider,"github"),[c]=await (0,s.db)().select().from(n.accounts).where(l).orderBy((0,r.asc)(n.accounts.createdAt)).limit(1);if(!c)return null;let u=(0,i.V)({ciphertext:c.credentialCiphertext,iv:c.credentialIv},(0,o.serverEnv)().OPS_ENCRYPTION_KEY);return{account:c,token:u,problem:(0,a.A)(u)}}async function h(e,t,r){let s=0;for(let n=0;n<e.length&&!(Date.now()>t);n+=5){let t=e.slice(n,n+5);s+=t.length,await Promise.allSettled(t.map(r))}return s}async function p(e,r,i={}){var o,c;let m,g,b,y=await d(e);if(!y)return{ok:!1,error:"GitHub isn't connected."};let{account:w,token:v,problem:k}=y;if(k||!v)return{ok:!1,error:k??"The credential can't be read."};let _=await (0,u.o)(v,i);if(!_.ok){let e=(0,a.E)({ok:!1,kind:"scope"===_.kind?"auth":"missing"===_.kind?"transient":_.kind,error:_.error});return e&&await (0,s.db)().update(n.accounts).set({...e,updatedAt:new Date}).where((0,t.eq)(n.accounts.id,w.id)),{ok:!1,error:_.error}}let S=new Date,x=(o=await (0,s.db)().select({id:n.githubRepos.id,externalId:n.githubRepos.externalId,goneAt:n.githubRepos.goneAt}).from(n.githubRepos).where((0,t.eq)(n.githubRepos.accountId,w.id)).limit(1e3),c=_.data.repos,m=new Map(o.map(e=>[e.externalId,e])),g=new Set(c.map(e=>e.id)),{insert:c.filter(e=>!m.has(e.id)),update:c.filter(e=>m.has(e.id)).map(e=>({id:m.get(e.id).id,repo:e})),gone:o.filter(e=>!g.has(e.externalId)&&!e.goneAt).map(e=>e.id)}),A=e=>({owner:e.owner,name:e.name,fullName:e.fullName,defaultBranch:e.defaultBranch,private:e.private,archived:e.archived,htmlUrl:e.htmlUrl,pushedAt:e.pushedAt});await (0,s.db)().transaction(async e=>{for(let r of x.update)await e.update(n.githubRepos).set({...A(r.repo),lastSeenAt:S,goneAt:null,updatedAt:S}).where((0,t.eq)(n.githubRepos.id,r.id));x.insert.length&&await e.insert(n.githubRepos).values(x.insert.map(e=>({accountId:w.id,externalId:e.id,...A(e)}))).onConflictDoNothing({target:[n.githubRepos.accountId,n.githubRepos.externalId]}),x.gone.length&&await e.update(n.githubRepos).set({goneAt:S,updatedAt:S}).where((0,t.and)((0,t.inArray)(n.githubRepos.id,x.gone),(0,t.isNull)(n.githubRepos.goneAt)))});let T=await (0,s.db)().select().from(n.githubRepos).where((0,t.eq)(n.githubRepos.accountId,w.id)).limit(1e3),R=[];_.data.truncated&&R.push("Only the 300 most recently pushed repositories are listed.");let E=0;await h(T.filter(e=>!e.archived&&!e.goneAt&&(!e.packageCheckedAt||null!==e.pushedAt&&e.pushedAt>e.packageCheckedAt)).sort((e,t)=>(t.pushedAt?.getTime()??0)-(e.pushedAt?.getTime()??0)).slice(0,10),r,async e=>{let r=await (0,u.q)(v,e.fullName,i);r.ok?await (0,s.db)().update(n.githubRepos).set({packageName:r.data,packageCheckedAt:new Date,updatedAt:new Date}).where((0,t.eq)(n.githubRepos.id,e.id)):"scope"===r.kind&&E++}),E&&R.push("Some package.json files can't be read: give the token Contents read on those repositories.");let I=await (0,s.db)().select({id:n.resources.id,name:n.resources.name,meta:n.resources.meta}).from(n.resources).where((0,t.and)((0,t.eq)(n.resources.kind,"app"),(0,t.isNull)(n.resources.goneAt))).limit(500),j=await (0,s.db)().select({appId:n.appRepos.appId,repoId:n.appRepos.repoId,source:n.appRepos.source}).from(n.appRepos).limit(500),O=e=>"string"==typeof e&&e?e:null,C=function(e,t,r){let s=new Map(t.filter(e=>!e.goneAt).map(e=>[l(e.fullName),e.id])),n=new Map(r.map(e=>[e.appId,e])),a=[];for(let t of e){if("github"!==t.repoType||!t.repo)continue;let e=s.get(l(t.repo));if(!e)continue;let r=n.get(t.id);r?.source!=="manual"&&r?.repoId!==e&&a.push({appId:t.id,repoId:e})}return a}(I.map(e=>({id:e.id,name:e.name,repo:O(e.meta.repo),repoType:O(e.meta.repoType)})),T,j);for(let e of C)await (0,s.db)().insert(n.appRepos).values({appId:e.appId,repoId:e.repoId,source:"vercel"}).onConflictDoUpdate({target:n.appRepos.appId,set:{repoId:e.repoId,source:"vercel",updatedAt:new Date},setWhere:(0,t.ne)(n.appRepos.source,"manual")});let $=await (0,s.db)().selectDistinct({id:n.githubRepos.id,fullName:n.githubRepos.fullName,defaultBranch:n.githubRepos.defaultBranch}).from(n.appRepos).innerJoin(n.githubRepos,(0,t.eq)(n.githubRepos.id,n.appRepos.repoId)).where((0,t.and)((0,t.eq)(n.githubRepos.accountId,w.id),(0,t.isNull)(n.githubRepos.goneAt))).limit(500),P=0,N=await h($,r,async e=>{let t=await (0,u.W)(v,e.fullName,e.defaultBranch,i);t.ok?await f(e.id,t.data):"scope"===t.kind&&P++});P&&R.push("Some Actions runs can't be read: give the token Actions read on those repositories."),N<$.length&&R.push(`${$.length-N} Actions status${$.length-N==1?"":"es"} left for the next run, time budget used.`);let D=await (0,u.k)(v,i);await (0,s.db)().update(n.accounts).set({lastSyncAt:S,status:"ok",lastError:null,updatedAt:S,...D.ok?{expiresAt:D.data.expiresAt}:{}}).where((0,t.eq)(n.accounts.id,w.id));let L={at:S.toISOString(),actionsDenied:P,contentsDenied:E};return await (0,s.db)().insert(n.settings).values({key:(b=w.id,`github.readGaps.${b}`),value:L}).onConflictDoUpdate({target:n.settings.key,set:{value:L,updatedAt:S}}),{ok:!0,repos:T.filter(e=>!e.goneAt).length,linked:$.length,newLinks:C.length,notes:R}}async function f(e,r){await (0,s.db)().update(n.githubRepos).set({actions:r,actionsCheckedAt:new Date,updatedAt:new Date}).where((0,t.eq)(n.githubRepos.id,e))}async function m(e){let[r]=await (0,s.db)().select({id:n.accounts.id}).from(n.accounts).where((0,t.eq)(n.accounts.provider,"github")).limit(1);if(!r)return null;if(Date.now()>e)return"left for the next run, time budget used";let a=await p(r.id,e);return a.ok?null:a.error}async function g(e){if(!(0,c.f)(e))return{ok:!1,reason:"no-repo",error:"That app no longer exists."};let[r]=await (0,s.db)().select({r:n.githubRepos}).from(n.appRepos).innerJoin(n.githubRepos,(0,t.eq)(n.githubRepos.id,n.appRepos.repoId)).where((0,t.and)((0,t.eq)(n.appRepos.appId,e),(0,t.isNull)(n.githubRepos.goneAt))).limit(1);if(!r)return{ok:!1,reason:"no-repo",error:"This app isn't linked to a GitHub repository yet."};let a=await d(r.r.accountId);return a?.token?{ok:!0,fullName:r.r.fullName,defaultBranch:r.r.defaultBranch,token:a.token}:{ok:!1,reason:"no-token",error:"The GitHub token can't be read; check the GitHub connection."}}e.s(["D",0,m,"l",0,g],328586)},451682,313903,205746,e=>{var t=e.i(336763),r=e.i(157406),s=e.i(533102),n=e.i(406212),a=e.i(530298),i=e.i(122603),o=e.i(803237),l=e.i(333407),c=e.i(93387),u=e.i(765503),d=e.i(666680),h=e.i(75064),p=e.i(909592),f=e.i(932378),m=e.i(246517),g=e.i(492973),b=e.i(794588);e.s(["z",0,b],313903);var b=b,y=e.i(260417);let w=["debug","info","warning","error","fatal","trace"],v=h.z.object({rows:p.z.array(f.z.unknown()).catch([]),hasMoreRows:m.z.boolean().catch(!1)}),k=h.z.object({requestId:g.z.string().min(1),timestamp:g.z.string().transform((e,t)=>{let r=Date.parse(e);return Number.isNaN(r)?(t.addIssue({code:"custom",message:"bad timestamp"}),b.NEVER):new Date(r)}),deploymentId:g.z.string().nullish().catch(null),requestMethod:g.z.string().nullish().catch(null),requestPath:g.z.string().nullish().catch(null),statusCode:y.z.number().nullish().catch(null),logs:p.z.array(f.z.unknown()).nullish().catch(null),events:p.z.array(f.z.unknown()).nullish().catch(null)}),_=h.z.object({level:g.z.string().nullish().catch(null),message:g.z.string().nullish().catch(null)}),S=h.z.object({source:g.z.string().nullish().catch(null)}),x=(e,t)=>(0,d.createHash)("sha1").update(`${e}
|
|
2
2
|
${t}`).digest("hex").slice(0,8),A=(e,t,r={})=>({ok:!1,kind:e,error:t,...r});async function T(e,t,r,s){let n=(s.now??new Date).getTime(),a=Math.max(s.since.getTime(),n-864e5),o=s.until.getTime();if(a>=o)return{ok:!0,lines:[],more:!1};let l=s.maxRows??300,c=s.levels?new Set(s.levels):null,u=e=>!c||c.has(e),d=s.levels?[...new Set(s.levels.map(e=>"fatal"===e?"error":e))]:[],h=s.fetch??fetch,p=new AbortController,f=setTimeout(()=>p.abort(new DOMException("window","TimeoutError")),s.timeoutMs??8e3),m=s.signal?AbortSignal.any([p.signal,s.signal]):p.signal,g=(0,i.X)(m),b=()=>p.signal.aborted&&!s.signal?.aborted?A("transient","Vercel's log history didn't answer in time."):A("transient","Reading Vercel's log history was cancelled."),y=[],T=!1;try{for(let n=0;n<3;n++){let i,c=new URLSearchParams({projectId:r,ownerId:t,page:String(n),startDate:String(a),endDate:String(o)});s.deploymentId&&c.set("deploymentId",s.deploymentId),s.environment&&c.set("environment",s.environment),d.length&&c.set("level",d.join(","));let p=null;try{let t=await Promise.race([h(`https://vercel.com/api/logs/request-logs?${c}`,{headers:{Authorization:`Bearer ${e}`,Accept:"application/json"},signal:m,cache:"no-store"}),g]);if(401===t.status||403===t.status)p=A("auth",`Vercel rejected this credential (${t.status}).`,{status:t.status});else if(429===t.status){let e=Number(t.headers.get("Retry-After"));p=A("transient","Vercel says there were too many requests.",{status:429,retryAfterS:Number.isFinite(e)&&e>0?e:60})}else if(400===t.status)p=A("transient","Vercel's log history didn't answer (400); the range may be past retention.",{status:400});else if(t.ok)try{i=await Promise.race([t.json(),g])}catch(e){if(m.aborted)throw e;p=A("format","Vercel's log history answered in a format the console doesn't recognise.")}else p=A("transient",`Vercel's log history returned an error (${t.status}).`,{status:t.status});p&&await t.body?.cancel().catch(()=>void 0)}catch{p=m.aborted?b():A("transient","Couldn't reach Vercel's log history.")}if(!p){let e=v.safeParse(i),t=e.success&&i&&"object"==typeof i?Object.keys(i):[];if(!e.success||t.includes("rows")||t.includes("hasMoreRows"))if(e.success){for(let t of e.data.rows)y.push(...function(e,t,r=!1){let s=k.safeParse(e);if(!s.success)return[];let n=s.data,a={at:n.timestamp,requestMethod:n.requestMethod??null,requestPath:n.requestPath??null,statusCode:n.statusCode??null,deploymentId:n.deploymentId??null,source:(n.events??[]).map(e=>S.safeParse(e)).find(e=>e.success&&e.data.source)?.data?.source??null},i=[],o=new Map;for(let e of n.logs??[]){let r=_.safeParse(e);if(!r.success||!r.data.message)continue;let s=function(e){let t=(e??"").toLowerCase();return"warn"===t?"warning":w.includes(t)?t:"info"}(r.data.level),l=x(s,r.data.message),c=o.get(l)??0;o.set(l,c+1),t(s)&&i.push({rowId:`${n.requestId}:${l}${c?`#${c}`:""}`,level:s,message:r.data.message,...a})}if(null!=n.statusCode&&n.statusCode>=500&&t("error")&&!i.some(e=>"error"===e.level||"fatal"===e.level)&&i.push({rowId:`${n.requestId}:status`,level:"error",message:`${n.requestMethod??"GET"} ${n.requestPath??"/"} → ${n.statusCode}`,...a}),r&&0===i.length){let e=n.statusCode??0,r=e>=500?"error":e>=400?"warning":"info";t(r)&&i.push({rowId:`${n.requestId}:request`,level:r,message:`${n.requestMethod??"GET"} ${n.requestPath??"/"}${e>0?` → ${e}`:""}`,...a})}return i}(t,u,s.requests));if(!(T=e.data.hasMoreRows)||y.length>=l)break}else p=A("format","Vercel's log history answered in a format the console doesn't recognise.");else p=A("transient","Vercel's log format changed: the answer has neither rows nor hasMoreRows.")}if(p){if(0===n)return p;T=!0;break}}}finally{clearTimeout(f),p.abort()}return y.sort((e,t)=>e.at.getTime()-t.at.getTime()),y.length>l&&(y.splice(0,y.length-l),T=!0),{ok:!0,lines:y,more:T}}e.s(["f",0,T],205746);var R=e.i(728335);let E=["warning","error","fatal"],I="logs_read_cursor";async function j(e){let[r]=await (0,n.db)().select().from(a.accounts).where((0,t.and)((0,t.eq)(a.accounts.provider,"vercel"),(0,t.eq)(a.accounts.status,"ok"))).limit(1),s=r?(0,o.V)({ciphertext:r.credentialCiphertext,iv:r.credentialIv},(0,c.serverEnv)().OPS_ENCRYPTION_KEY):null;return r&&s?(await (0,n.db)().select({appId:a.resources.id,appName:a.resources.name,projectId:a.resources.externalId,meta:a.resources.meta,deploymentId:a.deployments.externalId}).from(a.deployments).innerJoin(a.resources,(0,t.eq)(a.resources.id,a.deployments.resourceId)).where((0,t.and)((0,t.eq)(a.deployments.isCurrent,!0),(0,t.eq)(a.resources.accountId,r.id),(0,t.eq)(a.resources.monitored,!0),(0,t.isNull)(a.resources.goneAt),...e?[(0,t.eq)(a.resources.id,e)]:[]))).map(e=>({appId:e.appId,appName:e.appName,projectId:e.projectId,deploymentId:e.deploymentId,teamId:String(e.meta.teamId??""),token:s})):[]}let O=(e,t)=>({resourceId:e.appId,deploymentId:t.deploymentId??e.deploymentId,rowId:t.rowId,at:t.at,level:t.level,message:(0,u.l)((0,u.h)(t.message),2e3),requestMethod:t.requestMethod,requestPath:(0,u.n)(t.requestPath?(0,u.h)(t.requestPath):null),statusCode:t.statusCode,source:t.source});async function C(e,o,c){let u,[d]=await (0,n.db)().select().from(a.settings).where((0,t.eq)(a.settings.key,"logs.disabled")).limit(1);if(d?.value===!0)return;let h=await j(null);if(!h.length)return;let p=(0,R.dayStart)((0,R.dayKey)(e)),f=new Map((await (0,n.db)().select({id:a.storedLogs.resourceId,n:s.sql`count(*)::int`}).from(a.storedLogs).where((0,t.and)((0,t.inArray)(a.storedLogs.resourceId,h.map(e=>e.appId)),(0,t.gte)(a.storedLogs.at,p))).groupBy(a.storedLogs.resourceId)).map(e=>[e.id,e.n])),m=new Map((await (0,n.db)().select({id:a.storedLogs.resourceId,at:(0,r.max)(a.storedLogs.at)}).from(a.storedLogs).where((0,t.inArray)(a.storedLogs.resourceId,h.map(e=>e.appId))).groupBy(a.storedLogs.resourceId)).map(e=>[e.id,e.at])),[g]=await (0,n.db)().select().from(a.settings).where((0,t.eq)(a.settings.key,I)).limit(1),b=(u=g?.value)&&"object"==typeof u&&!Array.isArray(u)?Object.fromEntries(Object.entries(u).filter(e=>"string"==typeof e[1]&&!Number.isNaN(Date.parse(e[1])))):{},y=e.getTime()-864e5,w=await (0,i.P)(h,3,t=>{if(Date.now()+8500>o)return Promise.resolve(null);let r=[m.get(t.appId)?.getTime(),b[t.appId]?Date.parse(b[t.appId]):void 0].filter(e=>void 0!==e),s=new Date(Math.max(r.length?Math.max(...r)-3e5:y,y));return T(t.token,t.teamId,t.projectId,{since:s,until:e,now:e,levels:E,environment:"production",maxRows:300})}),v=h.map((e,t)=>{let r=w[t];return r?r.ok?(r.more&&c.push(`logs/${e.appName}: more than 300 log lines since the last read; the oldest were skipped`),r.lines.filter(e=>E.includes(e.level))):(c.push(`logs/${e.appName}: ${r.error}`),[]):[]}),k=v.flat().map(e=>e.rowId),_=new Set(k.length?(await (0,n.db)().select({rowId:a.storedLogs.rowId}).from(a.storedLogs).where((0,t.inArray)(a.storedLogs.rowId,k))).map(e=>e.rowId):[]),S=[];for(let[e,t]of h.entries()){let r=v[e].filter(e=>!_.has(e.rowId));if(!r.length)continue;let s=f.get(t.appId)??0,i=Math.max(0,1e3-s),o=(i>=r.length?r:r.slice(r.length-i)).map(e=>O(t,e));o.length&&await (0,n.db)().insert(a.storedLogs).values(o).onConflictDoNothing({target:a.storedLogs.rowId}),s+r.length>=1e3&&S.push(t.appId)}let x=h.filter((e,t)=>w[t]?.ok);if(x.length){let t={};for(let e of h)b[e.appId]&&(t[e.appId]=b[e.appId]);for(let r of x)t[r.appId]=e.toISOString();await (0,n.db)().insert(a.settings).values({key:I,value:t}).onConflictDoUpdate({target:a.settings.key,set:{value:t,updatedAt:new Date}})}await (0,l.f)(S.map(e=>({resourceId:e,type:"system",kind:"warn",message:"Stored-log limit reached",detail:"More than 1000 warnings and errors today; the rest stay in Vercel only for its short log history (about a day on Hobby).",reason:"LogCapReached"})))}e.s(["g",0,j,"_",0,C],451682)},486118,e=>{let t;var r,s,n=e.i(547963),a=e.i(804308),i=e.i(515683),o=e.i(25734),l=e.i(27626),c=e.i(64858),u=e.i(248744),d=e.i(379593),h=e.i(423660),p=e.i(717799),f=e.i(336763),m=e.i(396918),g=e.i(406212),b=e.i(530298),y=e.i(503313),w=e.i(595262),v=e.i(638809),k=e.i(732077),_=e.i(908223),S=e.i(328586),x=e.i(406197),A=e.i(964964),T=e.i(736337),R=e.i(974034),E=e.i(958948),I=e.i(348657),j=e.i(198552),O=e.i(205746),C=e.i(760859),$=e.i(518581),P=e.i(633075),N=e.i(108621),D=e.i(809303);let L="waiting: Vercel didn't say which deployment is live";async function U(e){let t=Date.now();try{let r=await fetch(e,{redirect:"manual",signal:AbortSignal.timeout(A.w),cache:"no-store",headers:{"User-Agent":"Watchbell smoke test"}}),s=401===r.status||403===r.status?(await r.text().catch(()=>"")).slice(0,8192):"";return{status:r.status,ms:Date.now()-t,authWall:(0,A.S)(r.status,s,r.headers)}}catch{return{status:null,ms:Date.now()-t,authWall:!1}}}async function q(t,r){let{extensions:s}=await e.A(27505);return await s.runner?.lockfileJobActive(t,r).catch(()=>!1)??!1}let M=null;async function B(e,t){let r=(0,R.Q)(t.meta?.rootDirectory),s=(0,R.H)(r,"package.json"),n=t.lockfilePath??(0,R.H)(r,"package-lock.json");if(M?.token!==e){let t=await (0,I.z)(e);if(!t.ok)return null;M={token:e,login:t.data}}let a=M.login,[i,o]=await Promise.all([(0,I.O)(e,t.fullName,t.number),(0,I.P)(e,t.fullName,t.number)]);if(!i.ok||!o.ok)return null;let l=[];for(let r of o.data.slice(0,A.y+1)){let s=null!==r.login&&r.login.toLowerCase()===a.toLowerCase()?null:await (0,I.h)(e,t.fullName,r.sha);if(s&&!s.ok)return null;l.push({...r,files:s?s.data:null})}let[c,u]=await Promise.all([(0,I.E)(e,t.fullName,t.baseBranch,{},s),(0,I.E)(e,t.fullName,t.headSha,{},s)]);if(!c.ok||!u.ok)return null;let d=c.data&&u.data?(0,A.C)(c.data.text,u.data.text,t.packages):"unexpected change: package.json is missing",h=null;if(n!==s&&i.data.some(e=>e.filename===n||e.previous===n))if((0,I.$)(n)){let[r,s]=await Promise.all([(0,I.l)(e,t.fullName,t.baseBranch,n),(0,I.l)(e,t.fullName,t.headSha,n)]);if(!r.ok||!s.ok)return null;h=(0,A.T)(r.data,s.data,n)}else h=`unexpected lockfile change ${n} (only package-lock.json can be checked)`;return{manifest:s,lockfile:n,lockfileRequired:!!t.lockfilePath,manifestProblem:d,lockfileProblem:h,headSha:t.headSha,tokenLogin:a,files:i.data,commits:l}}async function z(e,t={}){let r=await (t.vercel??F.vercel)(e);if(!r)return null;let s=await (t.serving??j.k)(r.token,r.teamId,r.projectId);if(!s.ok)return null;let n=s.data.currentId,a=null;if(!n){let e=s.data.latest?.readyState??null;if("ERROR"!==e&&"CANCELED"!==e)return null;let i=await (t.running??j.N)(r.token,r.teamId,r.projectId);if(!i.ok||i.data)return null;let o=await (t.ready??j.r)(r.token,r.teamId,r.projectId);if(!o.ok)return null;let l=[...o.data].sort((e,t)=>t.createdAt.getTime()-e.createdAt.getTime()),c=s.data.promote;c?(a=l.find(e=>e.createdAt.getTime()>c.requestedAt)??null)||(n=c.toDeploymentId):a=l[0]??null}if(!a&&n){let e=await (t.deployment??j.S)(r.token,{id:r.teamId,slug:r.teamId,name:r.teamId},n);if(!e.ok)return null;a=e.data}return a?{source:(0,T.s)({source:a.source,branch:a.branch,sha:a.sha,branchFrom:a.branchFrom??null,gitDirty:!0===a.gitDirty})}:null}let F={rows:async()=>await (0,g.db)().select({id:b.dependencyPrs.id,repoId:b.dependencyPrs.repoId,appId:b.dependencyPrs.appId,proposalId:b.dependencyPrs.proposalId,number:b.dependencyPrs.number,branch:b.dependencyPrs.branch,baseBranch:b.dependencyPrs.baseBranch,headSha:b.dependencyPrs.headSha,title:b.dependencyPrs.title,packages:b.dependencyPrs.packages,auto:b.dependencyPrs.auto,stage:b.dependencyPrs.stage,smokeMode:b.dependencyPrs.smokeMode,previewReadyAt:b.dependencyPrs.previewReadyAt,openedAt:b.dependencyPrs.openedAt,fullName:b.githubRepos.fullName,appName:b.resources.name,meta:b.resources.meta,lockfilePath:b.dependencyScans.lockfilePath,appMonitored:b.resources.monitored,appGone:b.resources.goneAt,stageText:b.dependencyPrs.stageText}).from(b.dependencyPrs).innerJoin(b.githubRepos,(0,f.eq)(b.githubRepos.id,b.dependencyPrs.repoId)).leftJoin(b.resources,(0,f.eq)(b.resources.id,b.dependencyPrs.appId)).leftJoin(b.dependencyScans,(0,f.eq)(b.dependencyScans.repoId,b.dependencyPrs.repoId)).where((0,f.inArray)(b.dependencyPrs.stage,[...A.X])).orderBy((0,m.asc)(b.dependencyPrs.openedAt)).limit(10),security:D.X,rollback:D.K,writeToken:async()=>{let e=await (0,_.G)();return e&&"unreadable"!==e?e.token:null},readToken:async e=>{let t=await (0,S.l)(e);return t.ok?t.token:null},vercel:async e=>{let t=await (0,x.p)(e,"app"),r=t?.resource.meta.teamId;return t&&"string"==typeof r&&t.resource.externalId?{token:t.token,teamId:r,projectId:t.resource.externalId}:null},monitorUrls:async e=>(await (0,g.db)().select({url:b.monitors.url}).from(b.monitors).where((0,f.and)((0,f.eq)(b.monitors.resourceId,e),(0,f.eq)(b.monitors.kind,"http"))).limit(10)).map(e=>e.url),pull:I.b,checks:I.s,runs:E.L,previews:j.C,probe:U,errorLogs:async(e,t,r,s)=>{let n=await (0,O.f)(e.token,e.teamId,e.projectId,{since:r,until:s,now:s,deploymentId:t,levels:["error","fatal"],maxRows:20,timeoutMs:8e3});return n.ok?n.lines.length:null},merge:I.C,review:B,save:async(e,t,r,s)=>{await (0,g.db)().update(b.dependencyPrs).set({...t,stageText:s,checkedAt:new Date}).where((0,f.eq)(b.dependencyPrs.id,e)),r&&await (0,g.db)().update($.O).set({result:s}).where((0,f.eq)($.O.id,r)).catch(()=>void 0)},notify:e=>(0,N.y)(e),liveSource:e=>z(e),lockfileBusy:async(e,t,r)=>await q(e,t)||await (0,k.W)(r,t),audit:(e,t)=>(0,w.f)({kind:"ok",message:e,resourceId:t,actorUserId:null}),book:()=>(0,y.f)()};async function W(e,t,r=F){let s={watched:0,merged:0,stopped:0},n=()=>t-Date.now(),a=await r.rows();if(!a.length)return s;let[i,o,l]=await Promise.all([r.security().catch(()=>null),r.rollback().catch(()=>null),r.writeToken().catch(()=>null)]);if(!l)return s;let c=await r.book().catch(()=>C.a);for(let t of a){if(15e3>n())break;if(t.auto||i?.enabled)try{let n=await H(t,e,l,o?.enabled===!0,r);if(!n)continue;s.watched++;let a=t.appName?(0,C.r)(c,t.appName):"app";await K(t,n,a,o?.windowMin??30,e,l,r,s)}catch(e){console.warn("deps/watch failed:",e instanceof Error?e.name:"error")}}return s}async function H(e,t,r,s,n){let a=await n.pull(r,e.fullName,e.number);if(!a.ok)return null;let i=await n.checks(r,e.fullName,a.data.headSha),o=null;if(i.ok&&null===i.data.checkRuns&&e.appId){let t=await n.readToken(e.appId),r=t?await n.runs(t,e.fullName,a.data.headSha):null;o=r?.ok?r.data:null}i.ok||(i={ok:!0,data:{checkRuns:[{status:"queued",conclusion:null}],combined:null}});let l=(0,A.j)({...i.data,actionRuns:o}),c={state:null,readyAt:null},u=null,d=e.appId?await n.vercel(e.appId):null;if(d&&"success"===l&&a.data.headSha===e.headSha){let r=await n.previews(d.token,d.teamId,d.projectId,a.data.headSha),s=r.ok?r.data.find(e=>"preview"===e.target)??r.data[0]??null:null;if(s&&(c={state:s.state,readyAt:s.readyAt??("ready"===s.state?t:null)},"ready"===s.state&&s.url)){let r=e.previewReadyAt??c.readyAt??t;if("logs"!==e.smokeMode){let t=(0,A.E)(e.appId?await n.monitorUrls(e.appId):[]),r=await Promise.all(t.map(async e=>({path:e,...await n.probe(`https://${s.url}${e}`)})));u=(0,A.L)(r)}u||(u=(0,A.n)(r,t,await n.errorLogs(d,s.id,r,t).catch(()=>null))),c.readyAt=r}}return{step:(0,A.M)({now:t,openedAt:e.openedAt,pr:{state:a.data.state,merged:a.data.merged,mergeable:a.data.mergeable,headSha:a.data.headSha,base:a.data.base},recordedSha:e.headSha,recordedBase:e.baseBranch,checks:l,preview:c,smoke:u,autoRollbackOn:s}),smoke:u,previewReadyAt:c.readyAt,headSha:a.data.headSha}}function G(e,t){if(!e.appId||!1===e.appMonitored||e.appGone)return"the app is gone or no longer watched, so Watchbell can't confirm what production is built from. Merging this PR could replace what is live";let r=(0,T.B)(e.meta?.productionSource,e.baseBranch,t);if(r)return r;let s=(0,T.O)(e.meta?.productionSource),n=e.meta?.productionBranch;return s?.kind==="git"&&s.ref===e.baseBranch&&"string"==typeof n&&n!==e.baseBranch?`Merging into ${e.baseBranch} won't deploy to production by itself: production was promoted from a ${e.baseBranch} preview. Merge, then promote the new preview.`:null}async function K(e,t,r,s,n,a,i,o){let{step:l}=t,c=t.smoke?{smokeMode:t.smoke.mode}:{},u=t.previewReadyAt?{previewReadyAt:t.previewReadyAt}:{},d={app:r,number:e.number,packages:e.packages};if("wait"===l.kind)return void await i.save(e.id,{stage:l.stage,...c,...u,...l.resetSha?{headSha:l.resetSha,previewReadyAt:null,smokeMode:null}:{}},e.proposalId,(0,A.m)(e.number,l.stage,l.reason));if("done"===l.kind)return void await i.save(e.id,{stage:l.stage,finishedAt:n},e.proposalId,(0,A.m)(e.number,l.stage));if("stop"===l.kind&&("CI gagal"===l.reason||"CI failed"===l.reason)&&await i.lockfileBusy?.(e.repoId,e.branch,e.fullName).catch(()=>!1))return void await i.save(e.id,{stage:"checks"},e.proposalId,(0,A.m)(e.number,"checks","waiting for the lockfile from the runner"));let h=async t=>{await i.save(e.id,{stage:"failed",finishedAt:n,...c},e.proposalId,(0,A.m)(e.number,"failed",t)),o.stopped++,await i.notify({...d,kind:"stopped",reason:t.replace(/\.$/,"")}).catch(()=>void 0)},p="merge"===l.kind||"stop"===l.kind&&"ready-manual"===l.stage?G(e,n):null;if(p)return h(p);let f=async()=>{let r=e.appId?await i.liveSource(e.appId).catch(()=>null):null;if(!r){let r=t.previewReadyAt??e.previewReadyAt??e.openedAt;if((e.stageText??"").includes(L)&&n.getTime()-r.getTime()>A.R)return await h("Vercel didn't say which deployment is live for 45 minutes, so Watchbell can't confirm what production is built from. Check it, then merge yourself"),!0;let s="checks"===e.stage||"preview"===e.stage||"smoke"===e.stage?e.stage:"smoke";return await i.save(e.id,{stage:s,...c,...u},e.proposalId,(0,A.m)(e.number,s,L)),!0}let s=r.source?G({...e,meta:{...e.meta??{},productionSource:{...r.source,at:n.toISOString()}}},n):`Watchbell can't confirm what production is built from (Vercel names no branch for it). Merging this PR could deploy ${e.baseBranch} to production and replace what is live.`;return!!s&&(await h(s),!0)};if("stop"===l.kind&&"ready-manual"===l.stage&&await f())return;if("stop"===l.kind){await i.save(e.id,{stage:l.stage,finishedAt:n,...c},e.proposalId,(0,A.m)(e.number,l.stage,"ready-manual"===l.stage?null:l.reason)),o.stopped++,await i.notify({...d,kind:"ready-manual"===l.stage?"ready-manual":"stopped",reason:l.reason}).catch(()=>void 0);return}let m=await i.review(a,e).catch(()=>null);if(!m)return;let g=(0,A.k)(m);if(!g&&(0,A.H)(m)&&n.getTime()-e.openedAt.getTime()>A.R){let t="the lockfile wasn't added within 45 minutes";await i.save(e.id,{stage:"timeout",finishedAt:n,...c},e.proposalId,(0,A.m)(e.number,"timeout",t)),o.stopped++,await i.notify({...d,kind:"stopped",reason:t}).catch(()=>void 0);return}if(!g&&(0,A.H)(m))return void await i.save(e.id,{stage:"checks"},e.proposalId,(0,A.m)(e.number,"checks","waiting for the lockfile"));if(g){await i.save(e.id,{stage:"failed",finishedAt:n,...c},e.proposalId,(0,A.m)(e.number,"failed",g)),o.stopped++,await i.notify({...d,kind:"stopped",reason:g}).catch(()=>void 0);return}if(await f())return;await i.save(e.id,{stage:"merging",...c,...u},e.proposalId,(0,A.m)(e.number,"merging"));let b=await i.merge(a,e.fullName,e.number,e.branch,e.baseBranch,e.headSha,e.title);if(b.ok){await i.save(e.id,{stage:"merged",mergedSha:b.data.sha,finishedAt:n},e.proposalId,(0,A.m)(e.number,"merged")),o.merged++,await i.audit(`${P.v}PR #${e.number} merged \xb7 ${e.packages.join(", ")}`.slice(0,200),e.appId).catch(()=>void 0),await i.notify({...d,kind:"merged",windowMin:s}).catch(()=>void 0);return}if(409===b.status)return void await i.save(e.id,{stage:"checks"},e.proposalId,(0,A.m)(e.number,"checks","new commit on the PR branch, checking again"));let y=405===b.status?"GitHub refused the merge (cannot be merged)":`merge failed: ${b.error}`.slice(0,150);await i.save(e.id,{stage:"failed",finishedAt:n},e.proposalId,(0,A.m)(e.number,"failed",y)),o.stopped++,await i.notify({...d,kind:"stopped",reason:y}).catch(()=>void 0)}let J=null;async function V(e,t,r=v.I){if((0,A.f)(e,J)&&!(await r()).has("devops")){J=e.getTime();try{let r=await W(e,t?.deadline??e.getTime()+5e4);r.watched&&console.log(`deps/watch: ${r.watched} PR, ${r.merged} merged, ${r.stopped} stopped`)}catch(e){console.warn("deps/watch failed:",e instanceof Error?e.name:"error")}}}var Y=e.i(653587),X=e.i(452475);let Z={nav:[{section:"manage",after:"settings",items:[{key:"ai",label:"AI Gateway",href:"/ai",icon:"route",stage:5,ownerOnly:!0},{key:"api-docs",label:"API explorer",href:"/api-docs",icon:"api",stage:5,ownerOnly:!0}]}],palette:[{label:"AI Gateway",href:"/ai",keywords:["ai","gateway","overview"]},{label:"API keys",href:"/ai/keys",keywords:["key","token","wb_","wp_"]},{label:"Agents",href:"/ai/agents",keywords:["agent","client","mcp"]},{label:"Connect an agent",href:"/ai/connect",keywords:["mcp",...n.I.palette.connectKeywords,"gemini cli","quick start"]},{label:"Bring your own key",href:"/ai/providers",keywords:["provider","byok","cloudflare","groq","openrouter","gemini"]},{label:"Quota",href:"/ai/quota",keywords:["limit","usage","rate"]},{label:"AI logs",href:"/ai/logs",keywords:["logs","requests","usage"]},{label:"Models",href:"/ai/models",keywords:["model","llm"]},{label:"Playground",href:"/ai/playground",keywords:["chat","try","prompt"]},{label:"API explorer",href:"/api-docs",keywords:["openapi","swagger","api","v1"]}]},Q={dailySteps:[{name:"ai-usage-retention",run:i.$}]},ee={WhyAiSlot:d.f,RecSummarySlot:u.f,AiNotesSlot:c.f,dailySteps:[{name:"advisor-summary",run:l.f}],minuteSteps:[{name:"advisor-notes",run:o.f}]},et={dailySteps:[{name:"ai-notes-retention",run:h.v}]},er={nav:[{section:"manage",after:"alerts",items:[{key:"auto-actions",label:"Auto-actions",href:"/auto-actions",icon:"bolt",stage:9,ownerOnly:!0}]}],palette:[{label:"Auto-actions",href:"/auto-actions",keywords:["proposal","approve","reject","auto-run","rollback"]}],dailySteps:[{name:"auto-actions-retention",run:Y.t}],minuteSteps:[{name:"auto-actions",run:Y.Z},{name:"deps-pr-watch",run:V}],settingsTabs:[{key:"office-auto-run",label:"Auto-actions",Tab:p.f}]},es={telegramCallback:X.proposalCallback},en=function(...e){let t={nav:[],palette:[]};for(let r of e){for(let e of r.nav??[]){let r=t.nav.find(t=>t.section===e.section&&t.after===e.after);r?r.items=[...r.items,...e.items]:t.nav.push({...e,items:[...e.items]})}t.palette.push(...r.palette??[]),r.dailySteps?.length&&(t.dailySteps=[...t.dailySteps??[],...r.dailySteps]),r.minuteSteps?.length&&(t.minuteSteps=[...t.minuteSteps??[],...r.minuteSteps]),r.WhyAiSlot&&(t.WhyAiSlot=r.WhyAiSlot),r.RecSummarySlot&&(t.RecSummarySlot=r.RecSummarySlot),r.AiNotesSlot&&(t.AiNotesSlot=r.AiNotesSlot),r.DevNotesSlot&&(t.DevNotesSlot=r.DevNotesSlot),r.office&&(t.office=r.office),r.settingsTabs?.length&&(t.settingsTabs=[...t.settingsTabs??[],...r.settingsTabs]),r.telegramCallback&&(t.telegramCallback=r.telegramCallback),r.runner&&(t.runner=r.runner),r.RepoPreviewSlot&&(t.RepoPreviewSlot=r.RepoPreviewSlot)}return t}({...Z,palette:(r=Z.palette??[],s={label:"Ask AI",href:"/ai/ask",keywords:["ask","question","answer"]},(t=r.findIndex(e=>"/ai"===e.href))<0?[...r,s]:[...r.slice(0,t+1),s,...r.slice(t+1)])},{dailySteps:[{name:"ai-agents-prune",run:()=>(0,a.f)()}]},Q,{},{},et,er,ee,es);e.s(["extensions",0,en],486118)},667378,e=>{var t=e.i(978196);e.s(["f",0,function(e,r,s){let n=(0,t.Y)(e);if(!n)return{lines:[{name:s,tag:null,target:null}],more:0};let a=[n.primaryDomain,...n.domains.filter(e=>e!==n.primaryDomain)].filter((e,t,r)=>r.indexOf(e)===t),i=[...new Set(n.pastDomains)].filter(e=>!a.includes(e)).reverse(),o=a.map((e,t)=>{let s=r[e],n={name:e,target:s?.redirect?s.redirect.replace(/^https?:\/\//i,"").replace(/\/.*$/,"").toLowerCase():null};return 0===t?{...n,tag:a.length>1||i.length?"primary":null}:{...n,tag:s?.redirect?"redirect":s&&!s.verified?"pending":null}});return o.push(...i.slice(0,3).map(e=>({name:e,tag:"former",target:null}))),{lines:o,more:Math.max(0,i.length-3)}}])},178233,e=>{let t=e=>"number"==typeof e&&Number.isFinite(e)&&e>=0?e:null;e.s(["G",0,function(e){let r=e&&"object"==typeof e?e.pageviews:null;if(!r||"object"!=typeof r)return null;let s="string"==typeof r.readAt?Date.parse(r.readAt):0/0;if(Number.isNaN(s)||"boolean"!=typeof r.enabled)return null;if(!r.enabled)return{enabled:!1,readAt:new Date(s)};let n=t(r.total24h),a=null===r.visitors24h?null:t(r.visitors24h);if(null===n||null===a&&null!==r.visitors24h)return null;let i=36e5*Math.floor(s/36e5),o=new Map;for(let e of Array.isArray(r.hourly)?r.hourly:[]){if(!Array.isArray(e))continue;let r="string"==typeof e[0]?Date.parse(e[0]):0/0,s=t(e[1]);if(Number.isNaN(r)||null===s)continue;let n=36e5*Math.floor(r/36e5);o.set(n,(o.get(n)??0)+s)}return{enabled:!0,total:n,visitors:a,hours:Array.from({length:24},(e,t)=>{let r=i-(23-t)*36e5;return{at:new Date(r),views:o.get(r)??0}}),readAt:new Date(s)}},"R",0,function(e){return!e.gone&&e.teamId&&e.accountOk?e.hasProductionDeploy?null:"Not read: this app has no production deployment yet.":"Not read: this app isn't in a connected Vercel account."},"Z",0,function(e,t){return e.enabled?{enabled:!0,total24h:e.total,visitors24h:e.visitors,readAt:t.toISOString(),hourly:e.hourly.slice(-24).map(e=>[e.at.toISOString(),e.views])}:{enabled:!1,readAt:t.toISOString()}}])},530831,e=>{let t=(0,e.i(310086).registerClientReference)(function(){throw Error("Attempted to call AutoRollbackForm() from the server but AutoRollbackForm 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/private/actions/auto-rollback-form.tsx","AutoRollbackForm");e.s(["AutoRollbackForm",0,t])},657753,e=>{var t=e.i(530831);e.n(t)},842941,e=>{let t=(0,e.i(310086).registerClientReference)(function(){throw Error("Attempted to call AutoRunForm() from the server but AutoRunForm 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/private/actions/auto-run-form.tsx","AutoRunForm");e.s(["AutoRunForm",0,t])},27295,e=>{var t=e.i(842941);e.n(t)},699286,e=>{let t=(0,e.i(310086).registerClientReference)(function(){throw Error("Attempted to call AutoSecurityForm() from the server but AutoSecurityForm 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/private/actions/auto-security-form.tsx","AutoSecurityForm");e.s(["AutoSecurityForm",0,t])},783671,e=>{var t=e.i(699286);e.n(t)},804308,515683,585585,e=>{let t,r,s,n,a;var i=e.i(533102),o=e.i(406212);e.i(333407);var l=e.i(518581);async function c(){await (0,o.db)().execute(i.sql`
|
|
3
3
|
delete from ops.ai_agents where id in (select id from ops.ai_agents order by last_seen_at desc offset ${2e3})
|
|
4
4
|
`)}e.s(["f",0,c],804308);var u=e.i(885298);let d={name:"watchpost-console",version:"5c",via:"console",userAgent:"Watchbell console"},h=i.sql.raw("'00000000-0000-0000-0000-000000000000'::uuid");async function p(e,t){let r=e.client,s=e.tool??e.model,n=e.tokensIn??0,a=e.tokensOut??0,l=JSON.stringify(t.map(e=>({provider_id:e.providerId,scope:e.scope.slice(0,100),metric:e.metric.slice(0,40),used:e.used,limit:e.limit,remaining:e.remaining,reset_at:e.resetAt?.toISOString()??null,source:e.source}))),c=e.at.toISOString();await (0,o.db)().execute(i.sql`
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
module.exports=[[351996,e=>{var r=e.i(861600),s=e.i(294965),
|
|
2
|
-
Read more: https://nextjs.org/docs/messages/invalid-use-server-value`)}}Object.defineProperty(s,"__esModule",{value:!0}),Object.defineProperty(s,"ensureServerEntryExports",{enumerable:!0,get:function(){return
|
|
1
|
+
module.exports=[[351996,e=>{var r=e.i(861600),s=e.i(294965),_=e.i(598513);e.S([r,"40b0ce655c0681626e752e62358c10d306b0bf5257,f",0,s,"001d08e453355a3f2241c931434d36370cb57de0fb,E,40897270d6ec77924246d2272743a9fa4ecf9d3802,G,4094e9c43ee87cabbecf3b14126faa1e3b261ce49e,T",0,_,"406972d62782d8e1ec665c4e7ca6e3867070de1292,F,40c536aff6913436b6a80ddcddb13e41d66967f1d2,G,40f4156ffba9539fa10ee82bae7d0947bfae40d620,m"],351996)},713095,(e,r,s)=>{function _(e){for(let r=0;r<e.length;r++){let s=e[r];if("function"!=typeof s)throw Error(`A "use server" file can only export async functions, found ${typeof s}.
|
|
2
|
+
Read more: https://nextjs.org/docs/messages/invalid-use-server-value`)}}Object.defineProperty(s,"__esModule",{value:!0}),Object.defineProperty(s,"ensureServerEntryExports",{enumerable:!0,get:function(){return _}})},137936,(e,r,s)=>{Object.defineProperty(s,"__esModule",{value:!0}),Object.defineProperty(s,"registerServerReference",{enumerable:!0,get:function(){return _.registerServerReference}});let _=e.r(211857)}],461750,e=>{e.v(r=>Promise.all(["server/chunks/[root-of-the-server]__1ooxluowhatjt._.js","server/chunks/src_db_pglite_ts_0r1r9wqxilnam._.js","server/chunks/node_modules_0vppy-p56c35f._.js","server/chunks/node_modules_@electric-sql_pglite_dist_0j1fzsq3ed7ph._.js"].map(r=>e.l(r))).then(()=>r(614755)))},73710,e=>{e.v(r=>Promise.all(["server/chunks/src_lib_demo_cookie_ts_0a12-0n1novgh._.js"].map(r=>e.l(r))).then(()=>r(716983)))},871289,e=>{e.v(r=>Promise.all(["server/chunks/[root-of-the-server]__07mzeijv31avl._.js","server/chunks/node_modules_0vppy-p56c35f._.js","server/chunks/node_modules_@electric-sql_pglite_dist_0j1fzsq3ed7ph._.js"].map(r=>e.l(r))).then(()=>r(204048)))},522169,e=>{e.v(r=>Promise.all(["server/chunks/src_lib_demo_seed_members_ts_0pz2fa9295pvm._.js"].map(r=>e.l(r))).then(()=>r(615089)))},372153,e=>{e.v(r=>Promise.all(["server/chunks/src_lib_demo_session_ts_0rwvb3aun41zx._.js","server/chunks/src_lib_demo_0a5wqvhuj5hjh._.js"].map(r=>e.l(r))).then(()=>r(765161)))}];
|
|
3
3
|
|
|
4
4
|
//# sourceMappingURL=_1g8r-7wcf8sy3._.js.map
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
module.exports=[[871198,(e,t,r)=>{function o(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,r=new WeakMap;return(o=function(e){return e?r:t})(e)}r._=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};var r=o(t);if(r&&r.has(e))return r.get(e);var a={__proto__:null},n=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var s in e)if("default"!==s&&Object.prototype.hasOwnProperty.call(e,s)){var i=n?Object.getOwnPropertyDescriptor(e,s):null;i&&(i.get||i.set)?Object.defineProperty(a,s,i):a[s]=e[s]}return a.default=e,r&&r.set(e,a),a}},963679,e=>{var t=e.i(845656);e.n(t)},287568,(e,t,r)=>{Object.defineProperty(r,"__esModule",{value:!0});var o={default:function(){return l},useLinkStatus:function(){return i.useLinkStatus}};for(var a in o)Object.defineProperty(r,a,{enumerable:!0,get:o[a]});let n=e.r(871198),s=e.r(222260),i=n._(e.r(963679));function l(e){let t=e.legacyBehavior,r="string"==typeof e.children||"number"==typeof e.children||"string"==typeof e.children?.type,o=e.children?.type?.$$typeof===Symbol.for("react.client.reference");return!t||r||o||(e.children?.type?.$$typeof===Symbol.for("react.lazy")?console.error("Using a Lazy Component as a direct child of `<Link legacyBehavior>` from a Server Component is not supported. If you need legacyBehavior, wrap your Lazy Component in a Client Component that renders the Link's `<a>` tag."):console.error("Using a Server Component as a direct child of `<Link legacyBehavior>` is not supported. If you need legacyBehavior, wrap your Server Component in a Client Component that renders the Link's `<a>` tag.")),(0,s.jsx)(i.default,{...e})}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},222260,(e,t,r)=>{t.exports=e.r(442315).vendored["react-rsc"].ReactJsxRuntime},997953,(e,t,r)=>{t.exports=e.r(442315).vendored["react-rsc"].ReactServerDOMTurbopackServer},595935,e=>{var t=e.i(997953);(0,t.registerClientReference)(function(){throw Error("Attempted to call AliasProvider() from the server but AliasProvider 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/alias.tsx","AliasProvider"),(0,t.registerClientReference)(function(){throw Error("Attempted to call DbName() from the server but DbName 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/alias.tsx","DbName"),(0,t.registerClientReference)(function(){throw Error("Attempted to call Masked() from the server but Masked 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/alias.tsx","Masked");let r=(0,t.registerClientReference)(function(){throw Error("Attempted to call MaskedText() from the server but MaskedText 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/alias.tsx","MaskedText");(0,t.registerClientReference)(function(){throw Error("Attempted to call Reveal() from the server but Reveal 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/alias.tsx","Reveal"),(0,t.registerClientReference)(function(){throw Error("Attempted to call maskedValue() from the server but maskedValue 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/alias.tsx","maskedValue"),(0,t.registerClientReference)(function(){throw Error("Attempted to call useAliasBook() from the server but useAliasBook 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/alias.tsx","useAliasBook"),(0,t.registerClientReference)(function(){throw Error("Attempted to call useMask() from the server but useMask 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/alias.tsx","useMask"),(0,t.registerClientReference)(function(){throw Error("Attempted to call usePrivacy() from the server but usePrivacy 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/alias.tsx","usePrivacy"),e.s(["MaskedText",0,r])},646822,e=>{var t=e.i(595935);e.n(t)},13733,e=>{var t=e.i(875225),r=e.i(349129),o=e.i(924924),a=e.i(618916),n=e.i(390775),s=e.i(921991),i=e.i(547499);let l=e=>e.trim().toLowerCase();var d=e.i(479301),c=e.i(455037);async function p(e){let l=e?(0,t.b)((0,t.u)(a.accounts.id,e),(0,t.u)(a.accounts.provider,"github")):(0,t.u)(a.accounts.provider,"github"),[d]=await (0,o.f)().select().from(a.accounts).where(l).orderBy((0,r.M)(a.accounts.createdAt)).limit(1);if(!d)return null;let c=(0,s.V)({ciphertext:d.credentialCiphertext,iv:d.credentialIv},(0,i.f)().OPS_ENCRYPTION_KEY);return{account:d,token:c,problem:(0,n.A)(c)}}async function u(e,t,r){let o=0;for(let a=0;a<e.length&&!(Date.now()>t);a+=5){let t=e.slice(a,a+5);o+=t.length,await Promise.allSettled(t.map(r))}return o}async function m(e,r,s={}){var i,d;let h,b,g=await p(e);if(!g)return{ok:!1,error:"GitHub isn't connected."};let{account:w,token:y,problem:k}=g;if(k||!y)return{ok:!1,error:k??"The credential can't be read."};let v=await (0,c.o)(y,s);if(!v.ok){let e=(0,n.E)({ok:!1,kind:"scope"===v.kind?"auth":"missing"===v.kind?"transient":v.kind,error:v.error});return e&&await (0,o.f)().update(a.accounts).set({...e,updatedAt:new Date}).where((0,t.u)(a.accounts.id,w.id)),{ok:!1,error:v.error}}let x=new Date,A=(i=await (0,o.f)().select({id:a.githubRepos.id,externalId:a.githubRepos.externalId,goneAt:a.githubRepos.goneAt}).from(a.githubRepos).where((0,t.u)(a.githubRepos.accountId,w.id)).limit(1e3),d=v.data.repos,h=new Map(i.map(e=>[e.externalId,e])),b=new Set(d.map(e=>e.id)),{insert:d.filter(e=>!h.has(e.id)),update:d.filter(e=>h.has(e.id)).map(e=>({id:h.get(e.id).id,repo:e})),gone:i.filter(e=>!b.has(e.externalId)&&!e.goneAt).map(e=>e.id)}),j=e=>({owner:e.owner,name:e.name,fullName:e.fullName,defaultBranch:e.defaultBranch,private:e.private,archived:e.archived,htmlUrl:e.htmlUrl,pushedAt:e.pushedAt});await (0,o.f)().transaction(async e=>{for(let r of A.update)await e.update(a.githubRepos).set({...j(r.repo),lastSeenAt:x,goneAt:null,updatedAt:x}).where((0,t.u)(a.githubRepos.id,r.id));A.insert.length&&await e.insert(a.githubRepos).values(A.insert.map(e=>({accountId:w.id,externalId:e.id,...j(e)}))).onConflictDoNothing({target:[a.githubRepos.accountId,a.githubRepos.externalId]}),A.gone.length&&await e.update(a.githubRepos).set({goneAt:x,updatedAt:x}).where((0,t.b)((0,t.y)(a.githubRepos.id,A.gone),(0,t.M)(a.githubRepos.goneAt)))});let I=await (0,o.f)().select().from(a.githubRepos).where((0,t.u)(a.githubRepos.accountId,w.id)).limit(1e3),R=[];v.data.truncated&&R.push("Only the 300 most recently pushed repositories are listed.");let C=!1;await u(I.filter(e=>!e.archived&&!e.goneAt&&(!e.packageCheckedAt||null!==e.pushedAt&&e.pushedAt>e.packageCheckedAt)).sort((e,t)=>(t.pushedAt?.getTime()??0)-(e.pushedAt?.getTime()??0)).slice(0,10),r,async e=>{let r=await (0,c.q)(y,e.fullName,s);r.ok?await (0,o.f)().update(a.githubRepos).set({packageName:r.data,packageCheckedAt:new Date,updatedAt:new Date}).where((0,t.u)(a.githubRepos.id,e.id)):"scope"===r.kind&&(C=!0)}),C&&R.push("Some package.json files can't be read: give the token Contents read on those repositories.");let S=await (0,o.f)().select({id:a.resources.id,name:a.resources.name,meta:a.resources.meta}).from(a.resources).where((0,t.b)((0,t.u)(a.resources.kind,"app"),(0,t.M)(a.resources.goneAt))).limit(500),N=await (0,o.f)().select({appId:a.appRepos.appId,repoId:a.appRepos.repoId,source:a.appRepos.source}).from(a.appRepos).limit(500),M=e=>"string"==typeof e&&e?e:null,z=function(e,t,r){let o=new Map(t.filter(e=>!e.goneAt).map(e=>[l(e.fullName),e.id])),a=new Map(r.map(e=>[e.appId,e])),n=[];for(let t of e){if("github"!==t.repoType||!t.repo)continue;let e=o.get(l(t.repo));if(!e)continue;let r=a.get(t.id);r?.source!=="manual"&&r?.repoId!==e&&n.push({appId:t.id,repoId:e})}return n}(S.map(e=>({id:e.id,name:e.name,repo:M(e.meta.repo),repoType:M(e.meta.repoType)})),I,N);for(let e of z)await (0,o.f)().insert(a.appRepos).values({appId:e.appId,repoId:e.repoId,source:"vercel"}).onConflictDoUpdate({target:a.appRepos.appId,set:{repoId:e.repoId,source:"vercel",updatedAt:new Date},setWhere:(0,t.c)(a.appRepos.source,"manual")});let P=await (0,o.f)().selectDistinct({id:a.githubRepos.id,fullName:a.githubRepos.fullName,defaultBranch:a.githubRepos.defaultBranch}).from(a.appRepos).innerJoin(a.githubRepos,(0,t.u)(a.githubRepos.id,a.appRepos.repoId)).where((0,t.b)((0,t.u)(a.githubRepos.accountId,w.id),(0,t.M)(a.githubRepos.goneAt))).limit(500),O=!1,$=await u(P,r,async e=>{let t=await (0,c.W)(y,e.fullName,e.defaultBranch,s);t.ok?await f(e.id,t.data):"scope"===t.kind&&(O=!0)});O&&R.push("Some Actions runs can't be read: give the token Actions read on those repositories."),$<P.length&&R.push(`${P.length-$} Actions status${P.length-$==1?"":"es"} left for the next run, time budget used.`);let T=await (0,c.k)(y,s);return await (0,o.f)().update(a.accounts).set({lastSyncAt:x,status:"ok",lastError:null,updatedAt:x,...T.ok?{expiresAt:T.data.expiresAt}:{}}).where((0,t.u)(a.accounts.id,w.id)),{ok:!0,repos:I.filter(e=>!e.goneAt).length,linked:P.length,newLinks:z.length,notes:R}}async function f(e,r){await (0,o.f)().update(a.githubRepos).set({actions:r,actionsCheckedAt:new Date,updatedAt:new Date}).where((0,t.u)(a.githubRepos.id,e))}async function h(e){let[r]=await (0,o.f)().select({id:a.accounts.id}).from(a.accounts).where((0,t.u)(a.accounts.provider,"github")).limit(1);if(!r)return null;if(Date.now()>e)return"left for the next run, time budget used";let n=await m(r.id,e);return n.ok?null:n.error}async function b(e){if(!(0,d.f)(e))return{ok:!1,reason:"no-repo",error:"That app no longer exists."};let[r]=await (0,o.f)().select({r:a.githubRepos}).from(a.appRepos).innerJoin(a.githubRepos,(0,t.u)(a.githubRepos.id,a.appRepos.repoId)).where((0,t.b)((0,t.u)(a.appRepos.appId,e),(0,t.M)(a.githubRepos.goneAt))).limit(1);if(!r)return{ok:!1,reason:"no-repo",error:"This app isn't linked to a GitHub repository yet."};let n=await p(r.r.accountId);return n?.token?{ok:!0,fullName:r.r.fullName,defaultBranch:r.r.defaultBranch,token:n.token}:{ok:!1,reason:"no-token",error:"The GitHub token can't be read; check the GitHub connection."}}e.s(["D",0,h,"l",0,b],13733)},310603,e=>{let t;var r,o,a=e.i(313931),n=e.i(597420),s=e.i(121232),i=e.i(613394),l=e.i(486400),d=e.i(643801),c=e.i(972857),p=e.i(316957),u=e.i(778504),m=e.i(130078),f=e.i(875225),h=e.i(349129),b=e.i(924924),g=e.i(618916),w=e.i(209576),y=e.i(407602),k=e.i(111970),v=e.i(825895),x=e.i(582931),A=e.i(13733),j=e.i(472832),I=e.i(256662),R=e.i(502240),C=e.i(581321),S=e.i(455037),N=e.i(267841),M=e.i(177706),z=e.i(36995),P=e.i(298397),O=e.i(291029),$=e.i(377489),T=e.i(442565),B=e.i(570191);let D="waiting: Vercel didn't say which deployment is live";async function W(e){let t=Date.now();try{let r=await fetch(e,{redirect:"manual",signal:AbortSignal.timeout(I.w),cache:"no-store",headers:{"User-Agent":"Watchbell smoke test"}}),o=401===r.status||403===r.status?(await r.text().catch(()=>"")).slice(0,8192):"";return{status:r.status,ms:Date.now()-t,authWall:(0,I.S)(r.status,o,r.headers)}}catch{return{status:null,ms:Date.now()-t,authWall:!1}}}async function _(t,r){let{extensions:o}=await e.A(774810);return await o.runner?.lockfileJobActive(t,r).catch(()=>!1)??!1}let E=null;async function L(e,t){let r=(0,C.Q)(t.meta?.rootDirectory),o=(0,C.H)(r,"package.json"),a=t.lockfilePath??(0,C.H)(r,"package-lock.json");if(E?.token!==e){let t=await (0,N.z)(e);if(!t.ok)return null;E={token:e,login:t.data}}let n=E.login,[s,i]=await Promise.all([(0,N.O)(e,t.fullName,t.number),(0,N.P)(e,t.fullName,t.number)]);if(!s.ok||!i.ok)return null;let l=[];for(let r of i.data.slice(0,I.y+1)){let o=null!==r.login&&r.login.toLowerCase()===n.toLowerCase()?null:await (0,N.h)(e,t.fullName,r.sha);if(o&&!o.ok)return null;l.push({...r,files:o?o.data:null})}let[d,c]=await Promise.all([(0,N.E)(e,t.fullName,t.baseBranch,{},o),(0,N.E)(e,t.fullName,t.headSha,{},o)]);if(!d.ok||!c.ok)return null;let p=d.data&&c.data?(0,I.C)(d.data.text,c.data.text,t.packages):"unexpected change: package.json is missing",u=null;if(a!==o&&s.data.some(e=>e.filename===a||e.previous===a))if((0,N.$)(a)){let[r,o]=await Promise.all([(0,N.l)(e,t.fullName,t.baseBranch,a),(0,N.l)(e,t.fullName,t.headSha,a)]);if(!r.ok||!o.ok)return null;u=(0,I.T)(r.data,o.data,a)}else u=`unexpected lockfile change ${a} (only package-lock.json can be checked)`;return{manifest:o,lockfile:a,lockfileRequired:!!t.lockfilePath,manifestProblem:p,lockfileProblem:u,headSha:t.headSha,tokenLogin:n,files:s.data,commits:l}}async function G(e,t={}){let r=await (t.vercel??F.vercel)(e);if(!r)return null;let o=await (t.serving??M.k)(r.token,r.teamId,r.projectId);if(!o.ok)return null;let a=o.data.currentId,n=null;if(!a){let e=o.data.latest?.readyState??null;if("ERROR"!==e&&"CANCELED"!==e)return null;let s=await (t.running??M.N)(r.token,r.teamId,r.projectId);if(!s.ok||s.data)return null;let i=await (t.ready??M.r)(r.token,r.teamId,r.projectId);if(!i.ok)return null;let l=[...i.data].sort((e,t)=>t.createdAt.getTime()-e.createdAt.getTime()),d=o.data.promote;d?(n=l.find(e=>e.createdAt.getTime()>d.requestedAt)??null)||(a=d.toDeploymentId):n=l[0]??null}if(!n&&a){let e=await (t.deployment??M.S)(r.token,{id:r.teamId,slug:r.teamId,name:r.teamId},a);if(!e.ok)return null;n=e.data}return n?{source:(0,R.s)({source:n.source,branch:n.branch,sha:n.sha,branchFrom:n.branchFrom??null,gitDirty:!0===n.gitDirty})}:null}let F={rows:async()=>await (0,b.f)().select({id:g.dependencyPrs.id,repoId:g.dependencyPrs.repoId,appId:g.dependencyPrs.appId,proposalId:g.dependencyPrs.proposalId,number:g.dependencyPrs.number,branch:g.dependencyPrs.branch,baseBranch:g.dependencyPrs.baseBranch,headSha:g.dependencyPrs.headSha,title:g.dependencyPrs.title,packages:g.dependencyPrs.packages,auto:g.dependencyPrs.auto,stage:g.dependencyPrs.stage,smokeMode:g.dependencyPrs.smokeMode,previewReadyAt:g.dependencyPrs.previewReadyAt,openedAt:g.dependencyPrs.openedAt,fullName:g.githubRepos.fullName,appName:g.resources.name,meta:g.resources.meta,lockfilePath:g.dependencyScans.lockfilePath,appMonitored:g.resources.monitored,appGone:g.resources.goneAt,stageText:g.dependencyPrs.stageText}).from(g.dependencyPrs).innerJoin(g.githubRepos,(0,f.u)(g.githubRepos.id,g.dependencyPrs.repoId)).leftJoin(g.resources,(0,f.u)(g.resources.id,g.dependencyPrs.appId)).leftJoin(g.dependencyScans,(0,f.u)(g.dependencyScans.repoId,g.dependencyPrs.repoId)).where((0,f.y)(g.dependencyPrs.stage,[...I.X])).orderBy((0,h.M)(g.dependencyPrs.openedAt)).limit(10),security:B.X,rollback:B.K,writeToken:async()=>{let e=await (0,x.G)();return e&&"unreadable"!==e?e.token:null},readToken:async e=>{let t=await (0,A.l)(e);return t.ok?t.token:null},vercel:async e=>{let t=await (0,j.p)(e,"app"),r=t?.resource.meta.teamId;return t&&"string"==typeof r&&t.resource.externalId?{token:t.token,teamId:r,projectId:t.resource.externalId}:null},monitorUrls:async e=>(await (0,b.f)().select({url:g.monitors.url}).from(g.monitors).where((0,f.b)((0,f.u)(g.monitors.resourceId,e),(0,f.u)(g.monitors.kind,"http"))).limit(10)).map(e=>e.url),pull:N.b,checks:N.s,runs:S.L,previews:M.C,probe:W,errorLogs:async(e,t,r,o)=>{let a=await (0,z.f)(e.token,e.teamId,e.projectId,{since:r,until:o,now:o,deploymentId:t,levels:["error","fatal"],maxRows:20,timeoutMs:8e3});return a.ok?a.lines.length:null},merge:N.C,review:L,save:async(e,t,r,o)=>{await (0,b.f)().update(g.dependencyPrs).set({...t,stageText:o,checkedAt:new Date}).where((0,f.u)(g.dependencyPrs.id,e)),r&&await (0,b.f)().update(O.O).set({result:o}).where((0,f.u)(O.O.id,r)).catch(()=>void 0)},notify:e=>(0,T.y)(e),liveSource:e=>G(e),lockfileBusy:async(e,t,r)=>await _(e,t)||await (0,v.W)(r,t),audit:(e,t)=>(0,y.f)({kind:"ok",message:e,resourceId:t,actorUserId:null}),book:()=>(0,w.f)()};async function H(e,t,r=F){let o={watched:0,merged:0,stopped:0},a=()=>t-Date.now(),n=await r.rows();if(!n.length)return o;let[s,i,l]=await Promise.all([r.security().catch(()=>null),r.rollback().catch(()=>null),r.writeToken().catch(()=>null)]);if(!l)return o;let d=await r.book().catch(()=>P.a);for(let t of n){if(15e3>a())break;if(t.auto||s?.enabled)try{let a=await q(t,e,l,i?.enabled===!0,r);if(!a)continue;o.watched++;let n=t.appName?(0,P.r)(d,t.appName):"app";await V(t,a,n,i?.windowMin??30,e,l,r,o)}catch(e){console.warn("deps/watch failed:",e instanceof Error?e.name:"error")}}return o}async function q(e,t,r,o,a){let n=await a.pull(r,e.fullName,e.number);if(!n.ok)return null;let s=await a.checks(r,e.fullName,n.data.headSha),i=null;if(s.ok&&null===s.data.checkRuns&&e.appId){let t=await a.readToken(e.appId),r=t?await a.runs(t,e.fullName,n.data.headSha):null;i=r?.ok?r.data:null}s.ok||(s={ok:!0,data:{checkRuns:[{status:"queued",conclusion:null}],combined:null}});let l=(0,I.j)({...s.data,actionRuns:i}),d={state:null,readyAt:null},c=null,p=e.appId?await a.vercel(e.appId):null;if(p&&"success"===l&&n.data.headSha===e.headSha){let r=await a.previews(p.token,p.teamId,p.projectId,n.data.headSha),o=r.ok?r.data.find(e=>"preview"===e.target)??r.data[0]??null:null;if(o&&(d={state:o.state,readyAt:o.readyAt??("ready"===o.state?t:null)},"ready"===o.state&&o.url)){let r=e.previewReadyAt??d.readyAt??t;if("logs"!==e.smokeMode){let t=(0,I.E)(e.appId?await a.monitorUrls(e.appId):[]),r=await Promise.all(t.map(async e=>({path:e,...await a.probe(`https://${o.url}${e}`)})));c=(0,I.L)(r)}c||(c=(0,I.n)(r,t,await a.errorLogs(p,o.id,r,t).catch(()=>null))),d.readyAt=r}}return{step:(0,I.M)({now:t,openedAt:e.openedAt,pr:{state:n.data.state,merged:n.data.merged,mergeable:n.data.mergeable,headSha:n.data.headSha,base:n.data.base},recordedSha:e.headSha,recordedBase:e.baseBranch,checks:l,preview:d,smoke:c,autoRollbackOn:o}),smoke:c,previewReadyAt:d.readyAt,headSha:n.data.headSha}}function U(e,t){if(!e.appId||!1===e.appMonitored||e.appGone)return"the app is gone or no longer watched, so Watchbell can't confirm what production is built from. Merging this PR could replace what is live";let r=(0,R.B)(e.meta?.productionSource,e.baseBranch,t);if(r)return r;let o=(0,R.O)(e.meta?.productionSource),a=e.meta?.productionBranch;return o?.kind==="git"&&o.ref===e.baseBranch&&"string"==typeof a&&a!==e.baseBranch?`Merging into ${e.baseBranch} won't deploy to production by itself: production was promoted from a ${e.baseBranch} preview. Merge, then promote the new preview.`:null}async function V(e,t,r,o,a,n,s,i){let{step:l}=t,d=t.smoke?{smokeMode:t.smoke.mode}:{},c=t.previewReadyAt?{previewReadyAt:t.previewReadyAt}:{},p={app:r,number:e.number,packages:e.packages};if("wait"===l.kind)return void await s.save(e.id,{stage:l.stage,...d,...c,...l.resetSha?{headSha:l.resetSha,previewReadyAt:null,smokeMode:null}:{}},e.proposalId,(0,I.m)(e.number,l.stage,l.reason));if("done"===l.kind)return void await s.save(e.id,{stage:l.stage,finishedAt:a},e.proposalId,(0,I.m)(e.number,l.stage));if("stop"===l.kind&&("CI gagal"===l.reason||"CI failed"===l.reason)&&await s.lockfileBusy?.(e.repoId,e.branch,e.fullName).catch(()=>!1))return void await s.save(e.id,{stage:"checks"},e.proposalId,(0,I.m)(e.number,"checks","waiting for the lockfile from the runner"));let u=async t=>{await s.save(e.id,{stage:"failed",finishedAt:a,...d},e.proposalId,(0,I.m)(e.number,"failed",t)),i.stopped++,await s.notify({...p,kind:"stopped",reason:t.replace(/\.$/,"")}).catch(()=>void 0)},m="merge"===l.kind||"stop"===l.kind&&"ready-manual"===l.stage?U(e,a):null;if(m)return u(m);let f=async()=>{let r=e.appId?await s.liveSource(e.appId).catch(()=>null):null;if(!r){let r=t.previewReadyAt??e.previewReadyAt??e.openedAt;if((e.stageText??"").includes(D)&&a.getTime()-r.getTime()>I.R)return await u("Vercel didn't say which deployment is live for 45 minutes, so Watchbell can't confirm what production is built from. Check it, then merge yourself"),!0;let o="checks"===e.stage||"preview"===e.stage||"smoke"===e.stage?e.stage:"smoke";return await s.save(e.id,{stage:o,...d,...c},e.proposalId,(0,I.m)(e.number,o,D)),!0}let o=r.source?U({...e,meta:{...e.meta??{},productionSource:{...r.source,at:a.toISOString()}}},a):`Watchbell can't confirm what production is built from (Vercel names no branch for it). Merging this PR could deploy ${e.baseBranch} to production and replace what is live.`;return!!o&&(await u(o),!0)};if("stop"===l.kind&&"ready-manual"===l.stage&&await f())return;if("stop"===l.kind){await s.save(e.id,{stage:l.stage,finishedAt:a,...d},e.proposalId,(0,I.m)(e.number,l.stage,"ready-manual"===l.stage?null:l.reason)),i.stopped++,await s.notify({...p,kind:"ready-manual"===l.stage?"ready-manual":"stopped",reason:l.reason}).catch(()=>void 0);return}let h=await s.review(n,e).catch(()=>null);if(!h)return;let b=(0,I.k)(h);if(!b&&(0,I.H)(h)&&a.getTime()-e.openedAt.getTime()>I.R){let t="the lockfile wasn't added within 45 minutes";await s.save(e.id,{stage:"timeout",finishedAt:a,...d},e.proposalId,(0,I.m)(e.number,"timeout",t)),i.stopped++,await s.notify({...p,kind:"stopped",reason:t}).catch(()=>void 0);return}if(!b&&(0,I.H)(h))return void await s.save(e.id,{stage:"checks"},e.proposalId,(0,I.m)(e.number,"checks","waiting for the lockfile"));if(b){await s.save(e.id,{stage:"failed",finishedAt:a,...d},e.proposalId,(0,I.m)(e.number,"failed",b)),i.stopped++,await s.notify({...p,kind:"stopped",reason:b}).catch(()=>void 0);return}if(await f())return;await s.save(e.id,{stage:"merging",...d,...c},e.proposalId,(0,I.m)(e.number,"merging"));let g=await s.merge(n,e.fullName,e.number,e.branch,e.baseBranch,e.headSha,e.title);if(g.ok){await s.save(e.id,{stage:"merged",mergedSha:g.data.sha,finishedAt:a},e.proposalId,(0,I.m)(e.number,"merged")),i.merged++,await s.audit(`${$.v}PR #${e.number} merged \xb7 ${e.packages.join(", ")}`.slice(0,200),e.appId).catch(()=>void 0),await s.notify({...p,kind:"merged",windowMin:o}).catch(()=>void 0);return}if(409===g.status)return void await s.save(e.id,{stage:"checks"},e.proposalId,(0,I.m)(e.number,"checks","new commit on the PR branch, checking again"));let w=405===g.status?"GitHub refused the merge (cannot be merged)":`merge failed: ${g.error}`.slice(0,150);await s.save(e.id,{stage:"failed",finishedAt:a},e.proposalId,(0,I.m)(e.number,"failed",w)),i.stopped++,await s.notify({...p,kind:"stopped",reason:w}).catch(()=>void 0)}let J=null;async function K(e,t,r=k.I){if((0,I.f)(e,J)&&!(await r()).has("devops")){J=e.getTime();try{let r=await H(e,t?.deadline??e.getTime()+5e4);r.watched&&console.log(`deps/watch: ${r.watched} PR, ${r.merged} merged, ${r.stopped} stopped`)}catch(e){console.warn("deps/watch failed:",e instanceof Error?e.name:"error")}}}var X=e.i(447933),Y=e.i(610514);let Q={nav:[{section:"manage",after:"settings",items:[{key:"ai",label:"AI Gateway",href:"/ai",icon:"route",stage:5,ownerOnly:!0},{key:"api-docs",label:"API explorer",href:"/api-docs",icon:"api",stage:5,ownerOnly:!0}]}],palette:[{label:"AI Gateway",href:"/ai",keywords:["ai","gateway","overview"]},{label:"API keys",href:"/ai/keys",keywords:["key","token","wb_","wp_"]},{label:"Agents",href:"/ai/agents",keywords:["agent","client","mcp"]},{label:"Connect an agent",href:"/ai/connect",keywords:["mcp",...a.I.palette.connectKeywords,"gemini cli","quick start"]},{label:"Bring your own key",href:"/ai/providers",keywords:["provider","byok","cloudflare","groq","openrouter","gemini"]},{label:"Quota",href:"/ai/quota",keywords:["limit","usage","rate"]},{label:"AI logs",href:"/ai/logs",keywords:["logs","requests","usage"]},{label:"Models",href:"/ai/models",keywords:["model","llm"]},{label:"Playground",href:"/ai/playground",keywords:["chat","try","prompt"]},{label:"API explorer",href:"/api-docs",keywords:["openapi","swagger","api","v1"]}]},Z={dailySteps:[{name:"ai-usage-retention",run:s.$}]},ee={WhyAiSlot:p.f,RecSummarySlot:c.f,AiNotesSlot:d.f,dailySteps:[{name:"advisor-summary",run:l.f}],minuteSteps:[{name:"advisor-notes",run:i.f}]},et={dailySteps:[{name:"ai-notes-retention",run:u.v}]},er={nav:[{section:"manage",after:"alerts",items:[{key:"auto-actions",label:"Auto-actions",href:"/auto-actions",icon:"bolt",stage:9,ownerOnly:!0}]}],palette:[{label:"Auto-actions",href:"/auto-actions",keywords:["proposal","approve","reject","auto-run","rollback"]}],dailySteps:[{name:"auto-actions-retention",run:X.t}],minuteSteps:[{name:"auto-actions",run:X.Z},{name:"deps-pr-watch",run:K}],settingsTabs:[{key:"office-auto-run",label:"Auto-actions",Tab:m.f}]},eo={telegramCallback:Y.proposalCallback},ea=function(...e){let t={nav:[],palette:[]};for(let r of e){for(let e of r.nav??[]){let r=t.nav.find(t=>t.section===e.section&&t.after===e.after);r?r.items=[...r.items,...e.items]:t.nav.push({...e,items:[...e.items]})}t.palette.push(...r.palette??[]),r.dailySteps?.length&&(t.dailySteps=[...t.dailySteps??[],...r.dailySteps]),r.minuteSteps?.length&&(t.minuteSteps=[...t.minuteSteps??[],...r.minuteSteps]),r.WhyAiSlot&&(t.WhyAiSlot=r.WhyAiSlot),r.RecSummarySlot&&(t.RecSummarySlot=r.RecSummarySlot),r.AiNotesSlot&&(t.AiNotesSlot=r.AiNotesSlot),r.DevNotesSlot&&(t.DevNotesSlot=r.DevNotesSlot),r.office&&(t.office=r.office),r.settingsTabs?.length&&(t.settingsTabs=[...t.settingsTabs??[],...r.settingsTabs]),r.telegramCallback&&(t.telegramCallback=r.telegramCallback),r.runner&&(t.runner=r.runner),r.RepoPreviewSlot&&(t.RepoPreviewSlot=r.RepoPreviewSlot)}return t}({...Q,palette:(r=Q.palette??[],o={label:"Ask AI",href:"/ai/ask",keywords:["ask","question","answer"]},(t=r.findIndex(e=>"/ai"===e.href))<0?[...r,o]:[...r.slice(0,t+1),o,...r.slice(t+1)])},{dailySteps:[{name:"ai-agents-prune",run:()=>(0,n.f)()}]},Z,{},{},et,er,ee,eo);e.s(["extensions",0,ea],310603)},627925,e=>{let t=(0,e.i(997953).registerClientReference)(function(){throw Error("Attempted to call AutoRollbackForm() from the server but AutoRollbackForm 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/private/actions/auto-rollback-form.tsx","AutoRollbackForm");e.s(["AutoRollbackForm",0,t])},909743,e=>{var t=e.i(627925);e.n(t)},336799,e=>{let t=(0,e.i(997953).registerClientReference)(function(){throw Error("Attempted to call AutoRunForm() from the server but AutoRunForm 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/private/actions/auto-run-form.tsx","AutoRunForm");e.s(["AutoRunForm",0,t])},482272,e=>{var t=e.i(336799);e.n(t)},405692,e=>{let t=(0,e.i(997953).registerClientReference)(function(){throw Error("Attempted to call AutoSecurityForm() from the server but AutoSecurityForm 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/private/actions/auto-security-form.tsx","AutoSecurityForm");e.s(["AutoSecurityForm",0,t])},979898,e=>{var t=e.i(405692);e.n(t)},597420,613394,486400,643801,972857,316957,130078,e=>{let t,r,o,a,n;var s,i=e.i(518899),l=e.i(924924);e.i(656083);var d=e.i(291029);async function c(){await (0,l.f)().execute(i.B`
|
|
1
|
+
module.exports=[[871198,(e,t,r)=>{function o(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,r=new WeakMap;return(o=function(e){return e?r:t})(e)}r._=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};var r=o(t);if(r&&r.has(e))return r.get(e);var a={__proto__:null},n=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var s in e)if("default"!==s&&Object.prototype.hasOwnProperty.call(e,s)){var i=n?Object.getOwnPropertyDescriptor(e,s):null;i&&(i.get||i.set)?Object.defineProperty(a,s,i):a[s]=e[s]}return a.default=e,r&&r.set(e,a),a}},963679,e=>{var t=e.i(845656);e.n(t)},287568,(e,t,r)=>{Object.defineProperty(r,"__esModule",{value:!0});var o={default:function(){return l},useLinkStatus:function(){return i.useLinkStatus}};for(var a in o)Object.defineProperty(r,a,{enumerable:!0,get:o[a]});let n=e.r(871198),s=e.r(222260),i=n._(e.r(963679));function l(e){let t=e.legacyBehavior,r="string"==typeof e.children||"number"==typeof e.children||"string"==typeof e.children?.type,o=e.children?.type?.$$typeof===Symbol.for("react.client.reference");return!t||r||o||(e.children?.type?.$$typeof===Symbol.for("react.lazy")?console.error("Using a Lazy Component as a direct child of `<Link legacyBehavior>` from a Server Component is not supported. If you need legacyBehavior, wrap your Lazy Component in a Client Component that renders the Link's `<a>` tag."):console.error("Using a Server Component as a direct child of `<Link legacyBehavior>` is not supported. If you need legacyBehavior, wrap your Server Component in a Client Component that renders the Link's `<a>` tag.")),(0,s.jsx)(i.default,{...e})}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},222260,(e,t,r)=>{t.exports=e.r(442315).vendored["react-rsc"].ReactJsxRuntime},997953,(e,t,r)=>{t.exports=e.r(442315).vendored["react-rsc"].ReactServerDOMTurbopackServer},595935,e=>{var t=e.i(997953);(0,t.registerClientReference)(function(){throw Error("Attempted to call AliasProvider() from the server but AliasProvider 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/alias.tsx","AliasProvider"),(0,t.registerClientReference)(function(){throw Error("Attempted to call DbName() from the server but DbName 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/alias.tsx","DbName"),(0,t.registerClientReference)(function(){throw Error("Attempted to call Masked() from the server but Masked 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/alias.tsx","Masked");let r=(0,t.registerClientReference)(function(){throw Error("Attempted to call MaskedText() from the server but MaskedText 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/alias.tsx","MaskedText");(0,t.registerClientReference)(function(){throw Error("Attempted to call Reveal() from the server but Reveal 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/alias.tsx","Reveal"),(0,t.registerClientReference)(function(){throw Error("Attempted to call maskedValue() from the server but maskedValue 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/alias.tsx","maskedValue"),(0,t.registerClientReference)(function(){throw Error("Attempted to call useAliasBook() from the server but useAliasBook 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/alias.tsx","useAliasBook"),(0,t.registerClientReference)(function(){throw Error("Attempted to call useMask() from the server but useMask 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/alias.tsx","useMask"),(0,t.registerClientReference)(function(){throw Error("Attempted to call usePrivacy() from the server but usePrivacy 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/alias.tsx","usePrivacy"),e.s(["MaskedText",0,r])},646822,e=>{var t=e.i(595935);e.n(t)},13733,e=>{var t=e.i(875225),r=e.i(349129),o=e.i(924924),a=e.i(618916),n=e.i(390775),s=e.i(921991),i=e.i(547499);let l=e=>e.trim().toLowerCase();var d=e.i(479301),c=e.i(455037);async function p(e){let l=e?(0,t.b)((0,t.u)(a.accounts.id,e),(0,t.u)(a.accounts.provider,"github")):(0,t.u)(a.accounts.provider,"github"),[d]=await (0,o.f)().select().from(a.accounts).where(l).orderBy((0,r.M)(a.accounts.createdAt)).limit(1);if(!d)return null;let c=(0,s.V)({ciphertext:d.credentialCiphertext,iv:d.credentialIv},(0,i.f)().OPS_ENCRYPTION_KEY);return{account:d,token:c,problem:(0,n.A)(c)}}async function u(e,t,r){let o=0;for(let a=0;a<e.length&&!(Date.now()>t);a+=5){let t=e.slice(a,a+5);o+=t.length,await Promise.allSettled(t.map(r))}return o}async function m(e,r,s={}){var i,d;let h,b,g,w=await p(e);if(!w)return{ok:!1,error:"GitHub isn't connected."};let{account:y,token:k,problem:v}=w;if(v||!k)return{ok:!1,error:v??"The credential can't be read."};let x=await (0,c.o)(k,s);if(!x.ok){let e=(0,n.E)({ok:!1,kind:"scope"===x.kind?"auth":"missing"===x.kind?"transient":x.kind,error:x.error});return e&&await (0,o.f)().update(a.accounts).set({...e,updatedAt:new Date}).where((0,t.u)(a.accounts.id,y.id)),{ok:!1,error:x.error}}let A=new Date,j=(i=await (0,o.f)().select({id:a.githubRepos.id,externalId:a.githubRepos.externalId,goneAt:a.githubRepos.goneAt}).from(a.githubRepos).where((0,t.u)(a.githubRepos.accountId,y.id)).limit(1e3),d=x.data.repos,h=new Map(i.map(e=>[e.externalId,e])),b=new Set(d.map(e=>e.id)),{insert:d.filter(e=>!h.has(e.id)),update:d.filter(e=>h.has(e.id)).map(e=>({id:h.get(e.id).id,repo:e})),gone:i.filter(e=>!b.has(e.externalId)&&!e.goneAt).map(e=>e.id)}),I=e=>({owner:e.owner,name:e.name,fullName:e.fullName,defaultBranch:e.defaultBranch,private:e.private,archived:e.archived,htmlUrl:e.htmlUrl,pushedAt:e.pushedAt});await (0,o.f)().transaction(async e=>{for(let r of j.update)await e.update(a.githubRepos).set({...I(r.repo),lastSeenAt:A,goneAt:null,updatedAt:A}).where((0,t.u)(a.githubRepos.id,r.id));j.insert.length&&await e.insert(a.githubRepos).values(j.insert.map(e=>({accountId:y.id,externalId:e.id,...I(e)}))).onConflictDoNothing({target:[a.githubRepos.accountId,a.githubRepos.externalId]}),j.gone.length&&await e.update(a.githubRepos).set({goneAt:A,updatedAt:A}).where((0,t.b)((0,t.y)(a.githubRepos.id,j.gone),(0,t.M)(a.githubRepos.goneAt)))});let R=await (0,o.f)().select().from(a.githubRepos).where((0,t.u)(a.githubRepos.accountId,y.id)).limit(1e3),C=[];x.data.truncated&&C.push("Only the 300 most recently pushed repositories are listed.");let S=0;await u(R.filter(e=>!e.archived&&!e.goneAt&&(!e.packageCheckedAt||null!==e.pushedAt&&e.pushedAt>e.packageCheckedAt)).sort((e,t)=>(t.pushedAt?.getTime()??0)-(e.pushedAt?.getTime()??0)).slice(0,10),r,async e=>{let r=await (0,c.q)(k,e.fullName,s);r.ok?await (0,o.f)().update(a.githubRepos).set({packageName:r.data,packageCheckedAt:new Date,updatedAt:new Date}).where((0,t.u)(a.githubRepos.id,e.id)):"scope"===r.kind&&S++}),S&&C.push("Some package.json files can't be read: give the token Contents read on those repositories.");let N=await (0,o.f)().select({id:a.resources.id,name:a.resources.name,meta:a.resources.meta}).from(a.resources).where((0,t.b)((0,t.u)(a.resources.kind,"app"),(0,t.M)(a.resources.goneAt))).limit(500),M=await (0,o.f)().select({appId:a.appRepos.appId,repoId:a.appRepos.repoId,source:a.appRepos.source}).from(a.appRepos).limit(500),z=e=>"string"==typeof e&&e?e:null,P=function(e,t,r){let o=new Map(t.filter(e=>!e.goneAt).map(e=>[l(e.fullName),e.id])),a=new Map(r.map(e=>[e.appId,e])),n=[];for(let t of e){if("github"!==t.repoType||!t.repo)continue;let e=o.get(l(t.repo));if(!e)continue;let r=a.get(t.id);r?.source!=="manual"&&r?.repoId!==e&&n.push({appId:t.id,repoId:e})}return n}(N.map(e=>({id:e.id,name:e.name,repo:z(e.meta.repo),repoType:z(e.meta.repoType)})),R,M);for(let e of P)await (0,o.f)().insert(a.appRepos).values({appId:e.appId,repoId:e.repoId,source:"vercel"}).onConflictDoUpdate({target:a.appRepos.appId,set:{repoId:e.repoId,source:"vercel",updatedAt:new Date},setWhere:(0,t.c)(a.appRepos.source,"manual")});let O=await (0,o.f)().selectDistinct({id:a.githubRepos.id,fullName:a.githubRepos.fullName,defaultBranch:a.githubRepos.defaultBranch}).from(a.appRepos).innerJoin(a.githubRepos,(0,t.u)(a.githubRepos.id,a.appRepos.repoId)).where((0,t.b)((0,t.u)(a.githubRepos.accountId,y.id),(0,t.M)(a.githubRepos.goneAt))).limit(500),$=0,T=await u(O,r,async e=>{let t=await (0,c.W)(k,e.fullName,e.defaultBranch,s);t.ok?await f(e.id,t.data):"scope"===t.kind&&$++});$&&C.push("Some Actions runs can't be read: give the token Actions read on those repositories."),T<O.length&&C.push(`${O.length-T} Actions status${O.length-T==1?"":"es"} left for the next run, time budget used.`);let B=await (0,c.k)(k,s);await (0,o.f)().update(a.accounts).set({lastSyncAt:A,status:"ok",lastError:null,updatedAt:A,...B.ok?{expiresAt:B.data.expiresAt}:{}}).where((0,t.u)(a.accounts.id,y.id));let D={at:A.toISOString(),actionsDenied:$,contentsDenied:S};return await (0,o.f)().insert(a.settings).values({key:(g=y.id,`github.readGaps.${g}`),value:D}).onConflictDoUpdate({target:a.settings.key,set:{value:D,updatedAt:A}}),{ok:!0,repos:R.filter(e=>!e.goneAt).length,linked:O.length,newLinks:P.length,notes:C}}async function f(e,r){await (0,o.f)().update(a.githubRepos).set({actions:r,actionsCheckedAt:new Date,updatedAt:new Date}).where((0,t.u)(a.githubRepos.id,e))}async function h(e){let[r]=await (0,o.f)().select({id:a.accounts.id}).from(a.accounts).where((0,t.u)(a.accounts.provider,"github")).limit(1);if(!r)return null;if(Date.now()>e)return"left for the next run, time budget used";let n=await m(r.id,e);return n.ok?null:n.error}async function b(e){if(!(0,d.f)(e))return{ok:!1,reason:"no-repo",error:"That app no longer exists."};let[r]=await (0,o.f)().select({r:a.githubRepos}).from(a.appRepos).innerJoin(a.githubRepos,(0,t.u)(a.githubRepos.id,a.appRepos.repoId)).where((0,t.b)((0,t.u)(a.appRepos.appId,e),(0,t.M)(a.githubRepos.goneAt))).limit(1);if(!r)return{ok:!1,reason:"no-repo",error:"This app isn't linked to a GitHub repository yet."};let n=await p(r.r.accountId);return n?.token?{ok:!0,fullName:r.r.fullName,defaultBranch:r.r.defaultBranch,token:n.token}:{ok:!1,reason:"no-token",error:"The GitHub token can't be read; check the GitHub connection."}}e.s(["D",0,h,"l",0,b],13733)},310603,e=>{let t;var r,o,a=e.i(313931),n=e.i(597420),s=e.i(121232),i=e.i(613394),l=e.i(486400),d=e.i(643801),c=e.i(972857),p=e.i(316957),u=e.i(778504),m=e.i(130078),f=e.i(875225),h=e.i(349129),b=e.i(924924),g=e.i(618916),w=e.i(209576),y=e.i(407602),k=e.i(111970),v=e.i(825895),x=e.i(582931),A=e.i(13733),j=e.i(472832),I=e.i(256662),R=e.i(502240),C=e.i(581321),S=e.i(455037),N=e.i(267841),M=e.i(177706),z=e.i(36995),P=e.i(298397),O=e.i(291029),$=e.i(377489),T=e.i(442565),B=e.i(570191);let D="waiting: Vercel didn't say which deployment is live";async function W(e){let t=Date.now();try{let r=await fetch(e,{redirect:"manual",signal:AbortSignal.timeout(I.w),cache:"no-store",headers:{"User-Agent":"Watchbell smoke test"}}),o=401===r.status||403===r.status?(await r.text().catch(()=>"")).slice(0,8192):"";return{status:r.status,ms:Date.now()-t,authWall:(0,I.S)(r.status,o,r.headers)}}catch{return{status:null,ms:Date.now()-t,authWall:!1}}}async function _(t,r){let{extensions:o}=await e.A(774810);return await o.runner?.lockfileJobActive(t,r).catch(()=>!1)??!1}let E=null;async function L(e,t){let r=(0,C.Q)(t.meta?.rootDirectory),o=(0,C.H)(r,"package.json"),a=t.lockfilePath??(0,C.H)(r,"package-lock.json");if(E?.token!==e){let t=await (0,N.z)(e);if(!t.ok)return null;E={token:e,login:t.data}}let n=E.login,[s,i]=await Promise.all([(0,N.O)(e,t.fullName,t.number),(0,N.P)(e,t.fullName,t.number)]);if(!s.ok||!i.ok)return null;let l=[];for(let r of i.data.slice(0,I.y+1)){let o=null!==r.login&&r.login.toLowerCase()===n.toLowerCase()?null:await (0,N.h)(e,t.fullName,r.sha);if(o&&!o.ok)return null;l.push({...r,files:o?o.data:null})}let[d,c]=await Promise.all([(0,N.E)(e,t.fullName,t.baseBranch,{},o),(0,N.E)(e,t.fullName,t.headSha,{},o)]);if(!d.ok||!c.ok)return null;let p=d.data&&c.data?(0,I.C)(d.data.text,c.data.text,t.packages):"unexpected change: package.json is missing",u=null;if(a!==o&&s.data.some(e=>e.filename===a||e.previous===a))if((0,N.$)(a)){let[r,o]=await Promise.all([(0,N.l)(e,t.fullName,t.baseBranch,a),(0,N.l)(e,t.fullName,t.headSha,a)]);if(!r.ok||!o.ok)return null;u=(0,I.T)(r.data,o.data,a)}else u=`unexpected lockfile change ${a} (only package-lock.json can be checked)`;return{manifest:o,lockfile:a,lockfileRequired:!!t.lockfilePath,manifestProblem:p,lockfileProblem:u,headSha:t.headSha,tokenLogin:n,files:s.data,commits:l}}async function G(e,t={}){let r=await (t.vercel??F.vercel)(e);if(!r)return null;let o=await (t.serving??M.k)(r.token,r.teamId,r.projectId);if(!o.ok)return null;let a=o.data.currentId,n=null;if(!a){let e=o.data.latest?.readyState??null;if("ERROR"!==e&&"CANCELED"!==e)return null;let s=await (t.running??M.N)(r.token,r.teamId,r.projectId);if(!s.ok||s.data)return null;let i=await (t.ready??M.r)(r.token,r.teamId,r.projectId);if(!i.ok)return null;let l=[...i.data].sort((e,t)=>t.createdAt.getTime()-e.createdAt.getTime()),d=o.data.promote;d?(n=l.find(e=>e.createdAt.getTime()>d.requestedAt)??null)||(a=d.toDeploymentId):n=l[0]??null}if(!n&&a){let e=await (t.deployment??M.S)(r.token,{id:r.teamId,slug:r.teamId,name:r.teamId},a);if(!e.ok)return null;n=e.data}return n?{source:(0,R.s)({source:n.source,branch:n.branch,sha:n.sha,branchFrom:n.branchFrom??null,gitDirty:!0===n.gitDirty})}:null}let F={rows:async()=>await (0,b.f)().select({id:g.dependencyPrs.id,repoId:g.dependencyPrs.repoId,appId:g.dependencyPrs.appId,proposalId:g.dependencyPrs.proposalId,number:g.dependencyPrs.number,branch:g.dependencyPrs.branch,baseBranch:g.dependencyPrs.baseBranch,headSha:g.dependencyPrs.headSha,title:g.dependencyPrs.title,packages:g.dependencyPrs.packages,auto:g.dependencyPrs.auto,stage:g.dependencyPrs.stage,smokeMode:g.dependencyPrs.smokeMode,previewReadyAt:g.dependencyPrs.previewReadyAt,openedAt:g.dependencyPrs.openedAt,fullName:g.githubRepos.fullName,appName:g.resources.name,meta:g.resources.meta,lockfilePath:g.dependencyScans.lockfilePath,appMonitored:g.resources.monitored,appGone:g.resources.goneAt,stageText:g.dependencyPrs.stageText}).from(g.dependencyPrs).innerJoin(g.githubRepos,(0,f.u)(g.githubRepos.id,g.dependencyPrs.repoId)).leftJoin(g.resources,(0,f.u)(g.resources.id,g.dependencyPrs.appId)).leftJoin(g.dependencyScans,(0,f.u)(g.dependencyScans.repoId,g.dependencyPrs.repoId)).where((0,f.y)(g.dependencyPrs.stage,[...I.X])).orderBy((0,h.M)(g.dependencyPrs.openedAt)).limit(10),security:B.X,rollback:B.K,writeToken:async()=>{let e=await (0,x.G)();return e&&"unreadable"!==e?e.token:null},readToken:async e=>{let t=await (0,A.l)(e);return t.ok?t.token:null},vercel:async e=>{let t=await (0,j.p)(e,"app"),r=t?.resource.meta.teamId;return t&&"string"==typeof r&&t.resource.externalId?{token:t.token,teamId:r,projectId:t.resource.externalId}:null},monitorUrls:async e=>(await (0,b.f)().select({url:g.monitors.url}).from(g.monitors).where((0,f.b)((0,f.u)(g.monitors.resourceId,e),(0,f.u)(g.monitors.kind,"http"))).limit(10)).map(e=>e.url),pull:N.b,checks:N.s,runs:S.L,previews:M.C,probe:W,errorLogs:async(e,t,r,o)=>{let a=await (0,z.f)(e.token,e.teamId,e.projectId,{since:r,until:o,now:o,deploymentId:t,levels:["error","fatal"],maxRows:20,timeoutMs:8e3});return a.ok?a.lines.length:null},merge:N.C,review:L,save:async(e,t,r,o)=>{await (0,b.f)().update(g.dependencyPrs).set({...t,stageText:o,checkedAt:new Date}).where((0,f.u)(g.dependencyPrs.id,e)),r&&await (0,b.f)().update(O.O).set({result:o}).where((0,f.u)(O.O.id,r)).catch(()=>void 0)},notify:e=>(0,T.y)(e),liveSource:e=>G(e),lockfileBusy:async(e,t,r)=>await _(e,t)||await (0,v.W)(r,t),audit:(e,t)=>(0,y.f)({kind:"ok",message:e,resourceId:t,actorUserId:null}),book:()=>(0,w.f)()};async function H(e,t,r=F){let o={watched:0,merged:0,stopped:0},a=()=>t-Date.now(),n=await r.rows();if(!n.length)return o;let[s,i,l]=await Promise.all([r.security().catch(()=>null),r.rollback().catch(()=>null),r.writeToken().catch(()=>null)]);if(!l)return o;let d=await r.book().catch(()=>P.a);for(let t of n){if(15e3>a())break;if(t.auto||s?.enabled)try{let a=await q(t,e,l,i?.enabled===!0,r);if(!a)continue;o.watched++;let n=t.appName?(0,P.r)(d,t.appName):"app";await V(t,a,n,i?.windowMin??30,e,l,r,o)}catch(e){console.warn("deps/watch failed:",e instanceof Error?e.name:"error")}}return o}async function q(e,t,r,o,a){let n=await a.pull(r,e.fullName,e.number);if(!n.ok)return null;let s=await a.checks(r,e.fullName,n.data.headSha),i=null;if(s.ok&&null===s.data.checkRuns&&e.appId){let t=await a.readToken(e.appId),r=t?await a.runs(t,e.fullName,n.data.headSha):null;i=r?.ok?r.data:null}s.ok||(s={ok:!0,data:{checkRuns:[{status:"queued",conclusion:null}],combined:null}});let l=(0,I.j)({...s.data,actionRuns:i}),d={state:null,readyAt:null},c=null,p=e.appId?await a.vercel(e.appId):null;if(p&&"success"===l&&n.data.headSha===e.headSha){let r=await a.previews(p.token,p.teamId,p.projectId,n.data.headSha),o=r.ok?r.data.find(e=>"preview"===e.target)??r.data[0]??null:null;if(o&&(d={state:o.state,readyAt:o.readyAt??("ready"===o.state?t:null)},"ready"===o.state&&o.url)){let r=e.previewReadyAt??d.readyAt??t;if("logs"!==e.smokeMode){let t=(0,I.E)(e.appId?await a.monitorUrls(e.appId):[]),r=await Promise.all(t.map(async e=>({path:e,...await a.probe(`https://${o.url}${e}`)})));c=(0,I.L)(r)}c||(c=(0,I.n)(r,t,await a.errorLogs(p,o.id,r,t).catch(()=>null))),d.readyAt=r}}return{step:(0,I.M)({now:t,openedAt:e.openedAt,pr:{state:n.data.state,merged:n.data.merged,mergeable:n.data.mergeable,headSha:n.data.headSha,base:n.data.base},recordedSha:e.headSha,recordedBase:e.baseBranch,checks:l,preview:d,smoke:c,autoRollbackOn:o}),smoke:c,previewReadyAt:d.readyAt,headSha:n.data.headSha}}function U(e,t){if(!e.appId||!1===e.appMonitored||e.appGone)return"the app is gone or no longer watched, so Watchbell can't confirm what production is built from. Merging this PR could replace what is live";let r=(0,R.B)(e.meta?.productionSource,e.baseBranch,t);if(r)return r;let o=(0,R.O)(e.meta?.productionSource),a=e.meta?.productionBranch;return o?.kind==="git"&&o.ref===e.baseBranch&&"string"==typeof a&&a!==e.baseBranch?`Merging into ${e.baseBranch} won't deploy to production by itself: production was promoted from a ${e.baseBranch} preview. Merge, then promote the new preview.`:null}async function V(e,t,r,o,a,n,s,i){let{step:l}=t,d=t.smoke?{smokeMode:t.smoke.mode}:{},c=t.previewReadyAt?{previewReadyAt:t.previewReadyAt}:{},p={app:r,number:e.number,packages:e.packages};if("wait"===l.kind)return void await s.save(e.id,{stage:l.stage,...d,...c,...l.resetSha?{headSha:l.resetSha,previewReadyAt:null,smokeMode:null}:{}},e.proposalId,(0,I.m)(e.number,l.stage,l.reason));if("done"===l.kind)return void await s.save(e.id,{stage:l.stage,finishedAt:a},e.proposalId,(0,I.m)(e.number,l.stage));if("stop"===l.kind&&("CI gagal"===l.reason||"CI failed"===l.reason)&&await s.lockfileBusy?.(e.repoId,e.branch,e.fullName).catch(()=>!1))return void await s.save(e.id,{stage:"checks"},e.proposalId,(0,I.m)(e.number,"checks","waiting for the lockfile from the runner"));let u=async t=>{await s.save(e.id,{stage:"failed",finishedAt:a,...d},e.proposalId,(0,I.m)(e.number,"failed",t)),i.stopped++,await s.notify({...p,kind:"stopped",reason:t.replace(/\.$/,"")}).catch(()=>void 0)},m="merge"===l.kind||"stop"===l.kind&&"ready-manual"===l.stage?U(e,a):null;if(m)return u(m);let f=async()=>{let r=e.appId?await s.liveSource(e.appId).catch(()=>null):null;if(!r){let r=t.previewReadyAt??e.previewReadyAt??e.openedAt;if((e.stageText??"").includes(D)&&a.getTime()-r.getTime()>I.R)return await u("Vercel didn't say which deployment is live for 45 minutes, so Watchbell can't confirm what production is built from. Check it, then merge yourself"),!0;let o="checks"===e.stage||"preview"===e.stage||"smoke"===e.stage?e.stage:"smoke";return await s.save(e.id,{stage:o,...d,...c},e.proposalId,(0,I.m)(e.number,o,D)),!0}let o=r.source?U({...e,meta:{...e.meta??{},productionSource:{...r.source,at:a.toISOString()}}},a):`Watchbell can't confirm what production is built from (Vercel names no branch for it). Merging this PR could deploy ${e.baseBranch} to production and replace what is live.`;return!!o&&(await u(o),!0)};if("stop"===l.kind&&"ready-manual"===l.stage&&await f())return;if("stop"===l.kind){await s.save(e.id,{stage:l.stage,finishedAt:a,...d},e.proposalId,(0,I.m)(e.number,l.stage,"ready-manual"===l.stage?null:l.reason)),i.stopped++,await s.notify({...p,kind:"ready-manual"===l.stage?"ready-manual":"stopped",reason:l.reason}).catch(()=>void 0);return}let h=await s.review(n,e).catch(()=>null);if(!h)return;let b=(0,I.k)(h);if(!b&&(0,I.H)(h)&&a.getTime()-e.openedAt.getTime()>I.R){let t="the lockfile wasn't added within 45 minutes";await s.save(e.id,{stage:"timeout",finishedAt:a,...d},e.proposalId,(0,I.m)(e.number,"timeout",t)),i.stopped++,await s.notify({...p,kind:"stopped",reason:t}).catch(()=>void 0);return}if(!b&&(0,I.H)(h))return void await s.save(e.id,{stage:"checks"},e.proposalId,(0,I.m)(e.number,"checks","waiting for the lockfile"));if(b){await s.save(e.id,{stage:"failed",finishedAt:a,...d},e.proposalId,(0,I.m)(e.number,"failed",b)),i.stopped++,await s.notify({...p,kind:"stopped",reason:b}).catch(()=>void 0);return}if(await f())return;await s.save(e.id,{stage:"merging",...d,...c},e.proposalId,(0,I.m)(e.number,"merging"));let g=await s.merge(n,e.fullName,e.number,e.branch,e.baseBranch,e.headSha,e.title);if(g.ok){await s.save(e.id,{stage:"merged",mergedSha:g.data.sha,finishedAt:a},e.proposalId,(0,I.m)(e.number,"merged")),i.merged++,await s.audit(`${$.v}PR #${e.number} merged \xb7 ${e.packages.join(", ")}`.slice(0,200),e.appId).catch(()=>void 0),await s.notify({...p,kind:"merged",windowMin:o}).catch(()=>void 0);return}if(409===g.status)return void await s.save(e.id,{stage:"checks"},e.proposalId,(0,I.m)(e.number,"checks","new commit on the PR branch, checking again"));let w=405===g.status?"GitHub refused the merge (cannot be merged)":`merge failed: ${g.error}`.slice(0,150);await s.save(e.id,{stage:"failed",finishedAt:a},e.proposalId,(0,I.m)(e.number,"failed",w)),i.stopped++,await s.notify({...p,kind:"stopped",reason:w}).catch(()=>void 0)}let J=null;async function K(e,t,r=k.I){if((0,I.f)(e,J)&&!(await r()).has("devops")){J=e.getTime();try{let r=await H(e,t?.deadline??e.getTime()+5e4);r.watched&&console.log(`deps/watch: ${r.watched} PR, ${r.merged} merged, ${r.stopped} stopped`)}catch(e){console.warn("deps/watch failed:",e instanceof Error?e.name:"error")}}}var X=e.i(447933),Y=e.i(610514);let Q={nav:[{section:"manage",after:"settings",items:[{key:"ai",label:"AI Gateway",href:"/ai",icon:"route",stage:5,ownerOnly:!0},{key:"api-docs",label:"API explorer",href:"/api-docs",icon:"api",stage:5,ownerOnly:!0}]}],palette:[{label:"AI Gateway",href:"/ai",keywords:["ai","gateway","overview"]},{label:"API keys",href:"/ai/keys",keywords:["key","token","wb_","wp_"]},{label:"Agents",href:"/ai/agents",keywords:["agent","client","mcp"]},{label:"Connect an agent",href:"/ai/connect",keywords:["mcp",...a.I.palette.connectKeywords,"gemini cli","quick start"]},{label:"Bring your own key",href:"/ai/providers",keywords:["provider","byok","cloudflare","groq","openrouter","gemini"]},{label:"Quota",href:"/ai/quota",keywords:["limit","usage","rate"]},{label:"AI logs",href:"/ai/logs",keywords:["logs","requests","usage"]},{label:"Models",href:"/ai/models",keywords:["model","llm"]},{label:"Playground",href:"/ai/playground",keywords:["chat","try","prompt"]},{label:"API explorer",href:"/api-docs",keywords:["openapi","swagger","api","v1"]}]},Z={dailySteps:[{name:"ai-usage-retention",run:s.$}]},ee={WhyAiSlot:p.f,RecSummarySlot:c.f,AiNotesSlot:d.f,dailySteps:[{name:"advisor-summary",run:l.f}],minuteSteps:[{name:"advisor-notes",run:i.f}]},et={dailySteps:[{name:"ai-notes-retention",run:u.v}]},er={nav:[{section:"manage",after:"alerts",items:[{key:"auto-actions",label:"Auto-actions",href:"/auto-actions",icon:"bolt",stage:9,ownerOnly:!0}]}],palette:[{label:"Auto-actions",href:"/auto-actions",keywords:["proposal","approve","reject","auto-run","rollback"]}],dailySteps:[{name:"auto-actions-retention",run:X.t}],minuteSteps:[{name:"auto-actions",run:X.Z},{name:"deps-pr-watch",run:K}],settingsTabs:[{key:"office-auto-run",label:"Auto-actions",Tab:m.f}]},eo={telegramCallback:Y.proposalCallback},ea=function(...e){let t={nav:[],palette:[]};for(let r of e){for(let e of r.nav??[]){let r=t.nav.find(t=>t.section===e.section&&t.after===e.after);r?r.items=[...r.items,...e.items]:t.nav.push({...e,items:[...e.items]})}t.palette.push(...r.palette??[]),r.dailySteps?.length&&(t.dailySteps=[...t.dailySteps??[],...r.dailySteps]),r.minuteSteps?.length&&(t.minuteSteps=[...t.minuteSteps??[],...r.minuteSteps]),r.WhyAiSlot&&(t.WhyAiSlot=r.WhyAiSlot),r.RecSummarySlot&&(t.RecSummarySlot=r.RecSummarySlot),r.AiNotesSlot&&(t.AiNotesSlot=r.AiNotesSlot),r.DevNotesSlot&&(t.DevNotesSlot=r.DevNotesSlot),r.office&&(t.office=r.office),r.settingsTabs?.length&&(t.settingsTabs=[...t.settingsTabs??[],...r.settingsTabs]),r.telegramCallback&&(t.telegramCallback=r.telegramCallback),r.runner&&(t.runner=r.runner),r.RepoPreviewSlot&&(t.RepoPreviewSlot=r.RepoPreviewSlot)}return t}({...Q,palette:(r=Q.palette??[],o={label:"Ask AI",href:"/ai/ask",keywords:["ask","question","answer"]},(t=r.findIndex(e=>"/ai"===e.href))<0?[...r,o]:[...r.slice(0,t+1),o,...r.slice(t+1)])},{dailySteps:[{name:"ai-agents-prune",run:()=>(0,n.f)()}]},Z,{},{},et,er,ee,eo);e.s(["extensions",0,ea],310603)},627925,e=>{let t=(0,e.i(997953).registerClientReference)(function(){throw Error("Attempted to call AutoRollbackForm() from the server but AutoRollbackForm 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/private/actions/auto-rollback-form.tsx","AutoRollbackForm");e.s(["AutoRollbackForm",0,t])},909743,e=>{var t=e.i(627925);e.n(t)},336799,e=>{let t=(0,e.i(997953).registerClientReference)(function(){throw Error("Attempted to call AutoRunForm() from the server but AutoRunForm 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/private/actions/auto-run-form.tsx","AutoRunForm");e.s(["AutoRunForm",0,t])},482272,e=>{var t=e.i(336799);e.n(t)},405692,e=>{let t=(0,e.i(997953).registerClientReference)(function(){throw Error("Attempted to call AutoSecurityForm() from the server but AutoSecurityForm 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/private/actions/auto-security-form.tsx","AutoSecurityForm");e.s(["AutoSecurityForm",0,t])},979898,e=>{var t=e.i(405692);e.n(t)},597420,613394,486400,643801,972857,316957,130078,e=>{let t,r,o,a,n;var s,i=e.i(518899),l=e.i(924924);e.i(656083);var d=e.i(291029);async function c(){await (0,l.f)().execute(i.B`
|
|
2
2
|
delete from ops.ai_agents where id in (select id from ops.ai_agents order by last_seen_at desc offset ${2e3})
|
|
3
3
|
`)}e.s(["f",0,c],597420);var p=e.i(875225),u=e.i(473283),m=e.i(618916),f=e.i(185284),h=e.i(477660),b=e.i(28357),g=e.i(778504),w=e.i(971724),y=e.i(105954),k=e.i(604147),v=e.i(218331),x=e.i(76482);let A={enabled:!0,model:null};function j(e){let{hour:t,minute:r}=(0,v.z)(e);return 7!==t&&19!==t||r>=15?null:`${(0,v.x)(e)}T${String(t).padStart(2,"0")}`}let I=e=>"string"==typeof e?e.toLowerCase():"",R=w.z.object({app:y.z.string().trim().min(1).max(80),severity:k.z.enum(["info","warn","crit"]),title:y.z.string().trim().min(3).max(79),body:y.z.string().trim().min(10).max(600)}),C=/\b(?:[a-z0-9-]+\.)+(?:com|net|org|io|app|dev|id|co|xyz|cloud|site|me|ai)\b/i,S=e=>e.split(/(?<=[.!?])\s+/).filter(e=>e.trim().length>0).length,N="watchpost";async function M(){let[e]=await (0,l.f)().select({value:m.settings.value}).from(m.settings).where((0,p.u)(m.settings.key,"ai.advisorNotes")).limit(1);var t=e?.value;if(!t||"object"!=typeof t||Array.isArray(t))return A;let r="string"==typeof t.model&&t.model.trim()&&t.model.length<=200?t.model.trim():null;return{enabled:!1!==t.enabled,model:r}}async function z(e,t){let r=t.toISOString(),o=await (0,l.f)().execute(i.B`
|
|
4
4
|
insert into ops.settings (key, value, created_at, updated_at)
|