watchbell 1.2.1 → 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/README.md +34 -11
- package/bin/watchbell.mjs +735 -45
- package/package.json +1 -1
- package/scripts/node-runtime.mjs +166 -0
- package/scripts/selfhost-log.mjs +116 -0
- package/server/.next/BUILD_ID +1 -1
- package/server/.next/build-manifest.json +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 +76 -74
- 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 +75 -73
- 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 +75 -73
- 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 +75 -73
- 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 +75 -73
- 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 +75 -73
- 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 +75 -73
- 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 +75 -73
- 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 +76 -74
- 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 +77 -75
- 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 +79 -76
- 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 +75 -73
- 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 +75 -73
- 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 +78 -75
- 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 +81 -79
- 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 +77 -75
- 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 +78 -76
- 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 +76 -74
- 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 +79 -77
- 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 +77 -75
- 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 +77 -75
- 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 +80 -78
- 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 +79 -77
- 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 +76 -74
- 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 +78 -76
- 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 +75 -73
- 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 +75 -73
- 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 +80 -78
- 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 +46 -36
- package/server/.next/server/app/(console)/overview/page.js +84 -82
- 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 +78 -76
- 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 +75 -73
- 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 +76 -74
- package/server/.next/server/app/(console)/settings/page.js.nft.json +1 -1
- package/server/.next/server/app/(console)/settings/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/(console)/sql/page/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 +75 -73
- 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 +78 -75
- 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 +68 -58
- package/server/.next/server/app/(console)/supabase/page.js +85 -84
- 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 +77 -75
- 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 +76 -74
- 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 +76 -74
- 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 +78 -76
- 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 +75 -73
- 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 +4 -4
- package/server/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +3 -3
- package/server/.next/server/app/_global-error.segments/_full.segment.rsc +4 -4
- package/server/.next/server/app/_global-error.segments/_tree.segment.rsc +2 -2
- package/server/.next/server/app/_not-found/page/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 +29 -24
- package/server/.next/server/app/_not-found.segments/_full.segment.rsc +29 -24
- package/server/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +27 -24
- 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 +24 -24
- package/server/.next/server/app/api/collect/route.js.nft.json +1 -1
- package/server/.next/server/app/api/daily/route/server-reference-manifest.json +7 -7
- package/server/.next/server/app/api/daily/route.js +24 -24
- package/server/.next/server/app/api/daily/route.js.nft.json +1 -1
- package/server/.next/server/app/api/ping/[...parts]/route.js.nft.json +1 -1
- package/server/.next/server/app/api/status/route.js.nft.json +1 -1
- package/server/.next/server/app/api/telegram/webhook/route/server-reference-manifest.json +7 -7
- package/server/.next/server/app/api/telegram/webhook/route.js +23 -23
- package/server/.next/server/app/api/telegram/webhook/route.js.nft.json +1 -1
- package/server/.next/server/app/api/v1/advice/route.js +3 -3
- package/server/.next/server/app/api/v1/advice/route.js.nft.json +1 -1
- package/server/.next/server/app/api/v1/ai/chat/completions/route.js +1 -1
- package/server/.next/server/app/api/v1/ai/chat/completions/route.js.nft.json +1 -1
- package/server/.next/server/app/api/v1/ai/models/route.js +1 -1
- package/server/.next/server/app/api/v1/ai/models/route.js.nft.json +1 -1
- package/server/.next/server/app/api/v1/ai/questions/[id]/route.js.nft.json +1 -1
- package/server/.next/server/app/api/v1/ai/questions/route.js +3 -3
- package/server/.next/server/app/api/v1/ai/questions/route.js.nft.json +1 -1
- package/server/.next/server/app/api/v1/mcp/route.js +2 -2
- package/server/.next/server/app/api/v1/mcp/route.js.nft.json +1 -1
- package/server/.next/server/app/api/v1/me/route.js.nft.json +1 -1
- package/server/.next/server/app/api/v1/openapi.json/route.js.nft.json +1 -1
- package/server/.next/server/app/api/v1/status/apps/[app]/route.js +3 -3
- package/server/.next/server/app/api/v1/status/apps/[app]/route.js.nft.json +1 -1
- package/server/.next/server/app/api/v1/status/route.js +3 -3
- package/server/.next/server/app/api/v1/status/route.js.nft.json +1 -1
- package/server/.next/server/app/api/watchdog/route.js +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 +2 -2
- package/server/.next/server/app/auth/google/callback/route.js.nft.json +1 -1
- package/server/.next/server/app/auth/google/create/callback/route.js.nft.json +1 -1
- package/server/.next/server/app/auth/not-member/route.js.nft.json +1 -1
- package/server/.next/server/app/auth/session-ended/route.js.nft.json +1 -1
- package/server/.next/server/app/invite/page/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/{[externals]__0dolpidprtypa._.js → [externals]__0y_x27mdj85p4._.js} +1 -1
- package/server/.next/server/chunks/{[externals]__0pfohce9kbhcc._.js → [externals]__1fzfzd0ia0sk6._.js} +1 -1
- package/server/.next/server/chunks/{[externals]__1ou2ofma806s1._.js → [externals]__1qqyrxnupegg3._.js} +1 -1
- package/server/.next/server/chunks/{[root-of-the-server]__0wbhuhlkn_ueu._.js → [root-of-the-server]__0-ytbad9hn7uc._.js} +2 -2
- package/server/.next/server/chunks/{[root-of-the-server]__1cbg6fvn16har._.js → [root-of-the-server]__0032rbj2s87zo._.js} +2 -2
- package/server/.next/server/chunks/{[root-of-the-server]__1-bvfylgbkjso._.js → [root-of-the-server]__02n6y6aa6qp1b._.js} +2 -2
- package/server/.next/server/chunks/{[root-of-the-server]__163-eo1vkbzx1._.js → [root-of-the-server]__03i6yscmtbhhg._.js} +2 -2
- package/server/.next/server/chunks/{[root-of-the-server]__1x9u88f9545aa._.js → [root-of-the-server]__05qcc-0e8z1u8._.js} +2 -2
- package/server/.next/server/chunks/{[root-of-the-server]__1p1k8nq50cwfy._.js → [root-of-the-server]__07bw6o0jc31yr._.js} +2 -2
- package/server/.next/server/chunks/{[root-of-the-server]__14pgqdfdkuopi._.js → [root-of-the-server]__07eo--c90cju2._.js} +2 -2
- package/server/.next/server/chunks/{[root-of-the-server]__0iysztx_xio84._.js → [root-of-the-server]__07mzeijv31avl._.js} +2 -2
- package/server/.next/server/chunks/{[root-of-the-server]__05ht00n_eiksb._.js → [root-of-the-server]__090in165mp6av._.js} +1 -1
- package/server/.next/server/chunks/{[root-of-the-server]__02s57amypj_ye._.js → [root-of-the-server]__09odxyho_9vk_._.js} +2 -2
- package/server/.next/server/chunks/{[root-of-the-server]__0403hy52a1qcu._.js → [root-of-the-server]__0bmyll20mg_gf._.js} +1 -1
- package/server/.next/server/chunks/{[root-of-the-server]__08k886n7y6f_3._.js → [root-of-the-server]__0btybbrsr4abf._.js} +1 -1
- package/server/.next/server/chunks/{[root-of-the-server]__0hvejly8-nlkq._.js → [root-of-the-server]__0c-33noc8yn1-._.js} +1 -1
- package/server/.next/server/chunks/{[root-of-the-server]__1xrt934xl5wbd._.js → [root-of-the-server]__0d99wclm2suox._.js} +2 -2
- package/server/.next/server/chunks/{[root-of-the-server]__0b136ghrklbbn._.js → [root-of-the-server]__0dsy-9ts8s-pn._.js} +1 -1
- package/server/.next/server/chunks/{[root-of-the-server]__01estsu5k8l4t._.js → [root-of-the-server]__0g1cifa7hd790._.js} +1 -1
- package/server/.next/server/chunks/{[root-of-the-server]__0pwn8go30dm_3._.js → [root-of-the-server]__0gox66sv0bx47._.js} +2 -2
- package/server/.next/server/chunks/{[root-of-the-server]__0w8qhgmo5c23i._.js → [root-of-the-server]__0hblpf7wqke-j._.js} +2 -2
- package/server/.next/server/chunks/{[root-of-the-server]__0kgmy-sltdtb_._.js → [root-of-the-server]__0hlyn_aj72sn5._.js} +2 -2
- package/server/.next/server/chunks/{[root-of-the-server]__0cskq__p3tja8._.js → [root-of-the-server]__0hnljrh9qi9t-._.js} +2 -2
- package/server/.next/server/chunks/{[root-of-the-server]__0xgl1cg3z00iz._.js → [root-of-the-server]__0hrtz5c_46jkw._.js} +1 -1
- package/server/.next/server/chunks/[root-of-the-server]__0iicsi0n7tfa5._.js +3 -0
- package/server/.next/server/chunks/{[root-of-the-server]__0dc0pz57q73va._.js → [root-of-the-server]__0kp0yx909wtab._.js} +1 -1
- package/server/.next/server/chunks/{[root-of-the-server]__04ruh9diphqtp._.js → [root-of-the-server]__0ku7nva3gxa9p._.js} +2 -2
- package/server/.next/server/chunks/{[root-of-the-server]__1w-yk3b07wcf1._.js → [root-of-the-server]__0l6_iao04u72h._.js} +2 -2
- package/server/.next/server/chunks/{[root-of-the-server]__1yzaj148hs9a1._.js → [root-of-the-server]__0l9ja3579qrju._.js} +2 -2
- package/server/.next/server/chunks/{[root-of-the-server]__0_64c807n6q9e._.js → [root-of-the-server]__0noc6l63d3l9w._.js} +2 -2
- package/server/.next/server/chunks/[root-of-the-server]__0nqbue6i0l3qs._.js +3 -0
- package/server/.next/server/chunks/{[root-of-the-server]__04zuzs7oruu3o._.js → [root-of-the-server]__0nrg8zzqizk69._.js} +2 -2
- package/server/.next/server/chunks/{[root-of-the-server]__1lbmzw1j9jufm._.js → [root-of-the-server]__0oy0hcm48kl-q._.js} +2 -2
- package/server/.next/server/chunks/{[root-of-the-server]__0l5v9itfv9nhr._.js → [root-of-the-server]__0r1men25anfgb._.js} +1 -1
- package/server/.next/server/chunks/{[root-of-the-server]__05jzukkrp2pvu._.js → [root-of-the-server]__0s5b-tdq7rndj._.js} +2 -2
- package/server/.next/server/chunks/{[root-of-the-server]__1ry92m8xlcebk._.js → [root-of-the-server]__0v-gc-c_e8pwl._.js} +2 -2
- package/server/.next/server/chunks/[root-of-the-server]__0wp6j3irilu76._.js +3 -0
- package/server/.next/server/chunks/{[root-of-the-server]__0t9o5ca5bzg0p._.js → [root-of-the-server]__0x487cn6dsn12._.js} +2 -2
- package/server/.next/server/chunks/{[root-of-the-server]__11qvos_7nf8z8._.js → [root-of-the-server]__0yuyew8m9dc6-._.js} +1 -1
- package/server/.next/server/chunks/{[root-of-the-server]__1w9hei9xe1odr._.js → [root-of-the-server]__0zni_2pv2fdgb._.js} +2 -2
- package/server/.next/server/chunks/{[root-of-the-server]__10mob-6xfy8b0._.js → [root-of-the-server]__125fkw52kl2ty._.js} +2 -2
- package/server/.next/server/chunks/[root-of-the-server]__13hrm9c61i7uk._.js +3 -0
- package/server/.next/server/chunks/{[root-of-the-server]__0m9648az7bkus._.js → [root-of-the-server]__16lfk1wg0ejaa._.js} +2 -2
- package/server/.next/server/chunks/{[root-of-the-server]__1vmls0bkau925._.js → [root-of-the-server]__16waq6rapvngp._.js} +2 -2
- package/server/.next/server/chunks/[root-of-the-server]__18eg-mk5loj_8._.js +3 -0
- package/server/.next/server/chunks/[root-of-the-server]__19ylbgd65iej4._.js +3 -0
- package/server/.next/server/chunks/{[root-of-the-server]__1vutb2z9gw8el._.js → [root-of-the-server]__1adw_bv2u89kc._.js} +1 -1
- package/server/.next/server/chunks/[root-of-the-server]__1c653f_8qzrpd._.js +3 -0
- package/server/.next/server/chunks/{[root-of-the-server]__00wz8qo4hgq2i._.js → [root-of-the-server]__1c78cu7kb9vkl._.js} +2 -2
- package/server/.next/server/chunks/[root-of-the-server]__1d5y0cc5mg_07._.js +3 -0
- package/server/.next/server/chunks/[root-of-the-server]__1e1l75cf48ph2._.js +3 -0
- package/server/.next/server/chunks/[root-of-the-server]__1eu2_f44as742._.js +3 -0
- package/server/.next/server/chunks/[root-of-the-server]__1hv3hk5182t-o._.js +3 -0
- package/server/.next/server/chunks/[root-of-the-server]__1j6xniw630fg0._.js +3 -0
- package/server/.next/server/chunks/{[root-of-the-server]__1cwr95yi8preu._.js → [root-of-the-server]__1jsf0jf_ljpsm._.js} +2 -2
- package/server/.next/server/chunks/{[root-of-the-server]__1fj8d0drhw1yx._.js → [root-of-the-server]__1lerees-l5-6c._.js} +2 -2
- package/server/.next/server/chunks/{[root-of-the-server]__1sb8d4e5b5pdl._.js → [root-of-the-server]__1lj1f2w2-w8nw._.js} +2 -2
- package/server/.next/server/chunks/[root-of-the-server]__1nu5isiy7d832._.js +3 -0
- package/server/.next/server/chunks/{[root-of-the-server]__0sfnhgc5reef1._.js → [root-of-the-server]__1ooxluowhatjt._.js} +2 -2
- package/server/.next/server/chunks/[root-of-the-server]__1pvx0izh1m_0_._.js +3 -0
- package/server/.next/server/chunks/{[root-of-the-server]__0i3bs_98vlttu._.js → [root-of-the-server]__1rpgddeg42i-q._.js} +2 -2
- package/server/.next/server/chunks/{[root-of-the-server]__1r9j5o80kocvz._.js → [root-of-the-server]__1s4bwjevs4hd-._.js} +2 -2
- package/server/.next/server/chunks/[root-of-the-server]__1uox9a0td-o0-._.js +3 -0
- package/server/.next/server/chunks/[root-of-the-server]__1vvg0ur3_7o0p._.js +3 -0
- package/server/.next/server/chunks/[root-of-the-server]__1vwz2r58cojht._.js +3 -0
- package/server/.next/server/chunks/{[root-of-the-server]__1zcp6yrat15t5._.js → [root-of-the-server]__1wpdlr4uh1un4._.js} +2 -2
- package/server/.next/server/chunks/[root-of-the-server]__1x7en4waq21dd._.js +3 -0
- package/server/.next/server/chunks/[root-of-the-server]__1x813cg-b9rls._.js +3 -0
- package/server/.next/server/chunks/{[root-of-the-server]__1147qf6sf3ru4._.js → [root-of-the-server]__1xl6_spngp6k3._.js} +2 -2
- package/server/.next/server/chunks/{[root-of-the-server]__1lfidps4tcfkg._.js → [root-of-the-server]__1y2qf8ltxhk0o._.js} +2 -2
- package/server/.next/server/chunks/[root-of-the-server]__1z_0gt-w6bx9v._.js +3 -0
- package/server/.next/server/chunks/{[root-of-the-server]__1w_wtn9h9eu93._.js → [root-of-the-server]__1zvoez8iapsem._.js} +2 -2
- package/server/.next/server/chunks/[root-of-the-server]__209g3_0l-y67u._.js +3 -0
- package/server/.next/server/chunks/[root-of-the-server]__20pu-tixzpeev._.js +3 -0
- package/server/.next/server/chunks/_0-fp57b-utmuw._.js +1 -1
- package/server/.next/server/chunks/_004c7-39glldb._.js +4 -4
- 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/_09l75j3ey14tc._.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 +46 -0
- package/server/.next/server/chunks/_0gz8ldqeokdtn._.js +1 -1
- package/server/.next/server/chunks/_0kmhvts35imzs._.js +4 -4
- package/server/.next/server/chunks/_0l_hz-8cj94r7._.js +3 -0
- package/server/.next/server/chunks/_0n-wbmmvp4omq._.js +1 -1
- package/server/.next/server/chunks/_0ofzzim090ezo._.js +1 -1
- package/server/.next/server/chunks/_0q3ygdztfvqq6._.js +3 -0
- package/server/.next/server/chunks/{_1msi9fy888xna._.js → _0q9a3ettj_h2s._.js} +2 -2
- package/server/.next/server/chunks/_0qmi54vmnlwdv._.js +7 -7
- package/server/.next/server/chunks/_0qyupoc7u5hr7._.js +3 -0
- package/server/.next/server/chunks/_0rwuppwyvemfj._.js +4 -4
- package/server/.next/server/chunks/{_1z8__gxixw-z-._.js → _0ry4553j-m5fp._.js} +3 -3
- package/server/.next/server/chunks/_0s2odl9xacsg0._.js +1 -1
- package/server/.next/server/chunks/_0sy878k2ywjbq._.js +1 -1
- package/server/.next/server/chunks/_0tz4o-qufnu3l._.js +4 -4
- package/server/.next/server/chunks/_0voowig3y32v1._.js +4 -4
- package/server/.next/server/chunks/_0wtlf0x_depae._.js +3 -0
- package/server/.next/server/chunks/_0xf7mtsrkgc9e._.js +2 -2
- package/server/.next/server/chunks/_0zj10_al6r59j._.js +26 -26
- package/server/.next/server/chunks/_1-pcsy2hkg0il._.js +3 -0
- package/server/.next/server/chunks/_1-pw7jw52sbti._.js +1 -1
- package/server/.next/server/chunks/_10vh_l3hht4_3._.js +4 -4
- package/server/.next/server/chunks/_113ebzq_9i756._.js +46 -0
- package/server/.next/server/chunks/{_219klbycazlx_._.js → _16urxazbgm48y._.js} +3 -3
- 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/_1a5vma58w9ytn._.js +4 -4
- package/server/.next/server/chunks/_1e_rbkrukj0x9._.js +26 -26
- package/server/.next/server/chunks/{_060yqv0qyo-lp._.js → _1g8r-7wcf8sy3._.js} +3 -3
- package/server/.next/server/chunks/_1g_prqb_u33e3._.js +7 -7
- package/server/.next/server/chunks/_1h73gul79s8pi._.js +1 -1
- package/server/.next/server/chunks/_1ihndlef8r00f._.js +46 -0
- package/server/.next/server/chunks/_1mwb214-ablfo._.js +46 -0
- package/server/.next/server/chunks/_1ngkjn56qmi2x._.js +3 -0
- package/server/.next/server/chunks/_1v7q0xdxbqawm._.js +4 -4
- package/server/.next/server/chunks/_1xs2ya_n7kb04._.js +4 -4
- package/server/.next/server/chunks/node_modules_drizzle-orm_entity_1-0q2stnw2ab8.js +1 -1
- package/server/.next/server/chunks/node_modules_zod_v4_classic_external_01k1rek7hgd0j.js +4 -4
- package/server/.next/server/chunks/src_0--qn984h6czu._.js +1 -1
- package/server/.next/server/chunks/{src_0lcm1yhnzhn2d._.js → src_00ixvrjrk_2h4._.js} +2 -2
- package/server/.next/server/chunks/src_063xvouojxyoa._.js +1 -1
- package/server/.next/server/chunks/src_088gmyaew7ds0._.js +1 -1
- package/server/.next/server/chunks/{src_0v67kw2p2wd_c._.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_0390zcofy42lg._.js → src_10vyvp9vy_69h._.js} +2 -2
- package/server/.next/server/chunks/{src_1v3tf1ye2jzyk._.js → src_13n1vi7uew4iu._.js} +2 -2
- package/server/.next/server/chunks/src_1a5yibsjcy1ga._.js +1 -1
- package/server/.next/server/chunks/src_1bqzr81r3wkvi._.js +1 -1
- package/server/.next/server/chunks/{src_07vqa8fdgu9ah._.js → src_1il7wg_qjxny7._.js} +2 -2
- package/server/.next/server/chunks/src_1tux0n9_5b1kr._.js +7 -4
- package/server/.next/server/chunks/src_1u-olt84z63rx._.js +1 -1
- package/server/.next/server/chunks/src_1wduh0eckiwl1._.js +1 -1
- package/server/.next/server/chunks/src_1wzm081p6qyre._.js +7 -4
- package/server/.next/server/chunks/src_20ilndq84j3b3._.js +3 -0
- package/server/.next/server/chunks/src_lib_0ayxuk4ftzf2f._.js +6 -0
- package/server/.next/server/chunks/src_lib_0ds7lhpop_adf._.js +1 -1
- package/server/.next/server/chunks/src_lib_0glcfed-uogyd._.js +1 -1
- package/server/.next/server/chunks/src_lib_0krdzz8eu9xh3._.js +6 -0
- package/server/.next/server/chunks/src_lib_0ta8sd9jeuw50._.js +15 -9
- package/server/.next/server/chunks/src_lib_1-u7dbsavbtb0._.js +6 -0
- package/server/.next/server/chunks/src_lib_103kimc1xvc_0._.js +9 -0
- package/server/.next/server/chunks/src_lib_1en6omqx66g9d._.js +15 -9
- package/server/.next/server/chunks/src_lib_1qo6t00wwitz6._.js +15 -9
- package/server/.next/server/chunks/src_lib_1sdusf16f07x-._.js +9 -0
- package/server/.next/server/chunks/src_lib_1sz77jjn7xl7o._.js +1 -1
- package/server/.next/server/chunks/src_lib_1xwavi_m_li7p._.js +1 -1
- package/server/.next/server/chunks/src_lib_206j7lyff31-g._.js +6 -0
- package/server/.next/server/chunks/src_lib_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 +5 -5
- package/server/.next/server/chunks/src_lib_data_advisor-db_ts_0rl1ug3iana24._.js +1 -1
- package/server/.next/server/chunks/src_lib_data_apps-db_ts_02ovqtci8e7o6._.js +1 -1
- package/server/.next/server/chunks/src_lib_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_domain-move_ts_04stiet1-xpe2._.js +1 -1
- package/server/.next/server/chunks/src_lib_local-auth_setup_ts_10d8-k_e6pvft._.js +2 -2
- package/server/.next/server/chunks/src_lib_notify_telegram-bot_ts_18y40dkchmcqd._.js +1 -1
- package/server/.next/server/chunks/src_lib_view_databases_ts_1ovdbo8spjhf9._.js +1 -1
- package/server/.next/server/chunks/src_lib_view_display-name_ts_0xoimm6j7bwnf._.js +1 -1
- package/server/.next/server/chunks/src_lib_view_labels_ts_1uxs84z7vclz5._.js +1 -1
- package/server/.next/server/chunks/src_private_1_nggk_wre7qf._.js +2 -2
- package/server/.next/server/chunks/src_private_ai_gateway_ts_04_5ao9914d0p._.js +1 -1
- package/server/.next/server/chunks/src_private_ai_gateway_ts_1qtr4nyb8kgnd._.js +2 -2
- package/server/.next/server/chunks/src_private_assist_provider-answer_ts_10qv42t-5046y._.js +1 -1
- package/server/.next/server/chunks/src_private_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]__0jv_q8g96gubg._.js → [externals]__00tbi838eotwu._.js} +1 -1
- package/server/.next/server/chunks/ssr/{[externals]__1hqh7fi0-rtlc._.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]__0yzs5m5hot2o2._.js → [externals]__0i0hmh-a743jn._.js} +1 -1
- package/server/.next/server/chunks/ssr/{[externals]__0et8619os7o06._.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]__0oayb8dm0iu8k._.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]__050d99bknjdvq._.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]__00wwav5k7xmy0._.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]__0ojywxj06986-._.js → [root-of-the-server]__0k29b_kblv6sv._.js} +1 -1
- package/server/.next/server/chunks/ssr/{[root-of-the-server]__0ejxk0jlgi4eb._.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]__11ham42w_feik._.js → [root-of-the-server]__0o0cpvobd-u0n._.js} +1 -1
- package/server/.next/server/chunks/ssr/{[root-of-the-server]__0kr_tvfgqtb-o._.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]__0bn_thc_vtf_i._.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]__04tkts7c9ylma._.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]__10rhqv5xq9jaj._.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]__1096-q3_trmm9._.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]__12ymdwm8dphvu._.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]__1kieqcc6kdywx._.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/_0_rtyc4t9xcdo._.js +1 -1
- package/server/.next/server/chunks/ssr/_0a22b7zsckifp._.js +1 -1
- package/server/.next/server/chunks/ssr/_0azq3ml4gbn1d._.js +1 -1
- package/server/.next/server/chunks/ssr/_0bd4cxnpnnq2u._.js +1 -1
- package/server/.next/server/chunks/ssr/{_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/{_14n2368190qms._.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/{_022u_nnwo1yb4._.js → _0kxkg0dbp42ai._.js} +2 -2
- package/server/.next/server/chunks/ssr/_0lmcrl8r9dg49._.js +1 -1
- package/server/.next/server/chunks/ssr/_0mp5aext18ijx._.js +3 -0
- package/server/.next/server/chunks/ssr/_0ns_087lx5abm._.js +1 -1
- package/server/.next/server/chunks/ssr/_0oovfx_t_-u0k._.js +1 -1
- package/server/.next/server/chunks/ssr/{_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/_0qyupoc7u5hr7._.js +3 -0
- 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 +5 -5
- 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/_1dqf3jmb24s37._.js +1 -1
- 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/node_modules_zod_v4_classic_external_01k1rek7hgd0j.js +4 -4
- 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_0oagnv9_4qww7._.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 +6 -3
- 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_0uitfl3c1mdqb._.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_1nse4o3frj33x._.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_1sdwdnblbiq_g._.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 +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_sql_1icfsti04djqe._.js +2 -2
- package/server/.next/server/chunks/ssr/src_app_(console)_sql_actions_ts_1oqco02hw-3vp._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_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_06v-xlrxfp079._.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 -1
- package/server/.next/server/chunks/ssr/src_lib_0f_4mvf4-xxst._.js +1 -1
- package/server/.next/server/chunks/ssr/src_lib_1xwavi_m_li7p._.js +1 -1
- package/server/.next/server/chunks/ssr/src_lib_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 +3 -3
- 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_apps-db_ts_02ovqtci8e7o6._.js +1 -1
- 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_15okweo0amos4._.js → src_lib_demo_07uq47fhms-3d._.js} +2 -2
- package/server/.next/server/chunks/ssr/src_lib_domain-move_ts_04stiet1-xpe2._.js +1 -1
- package/server/.next/server/chunks/ssr/src_lib_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_display-name_ts_0xoimm6j7bwnf._.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_04omlb_sgy-_r._.js +1 -1
- package/server/.next/server/chunks/ssr/src_private_0iy_wyg2p1jkn._.js +1 -1
- package/server/.next/server/chunks/ssr/src_private_actions_decide-form_tsx_1hngtxpyle3v8._.js +1 -1
- package/server/.next/server/chunks/ssr/src_private_actions_telegram-approvals_ts_14gvz6qi_j4aa._.js +1 -1
- package/server/.next/server/chunks/ssr/src_private_ai_gateway_ts_04_5ao9914d0p._.js +1 -1
- package/server/.next/server/chunks/ssr/src_private_ai_providers_actions_ts_0wxa36ai6s5nn._.js +1 -1
- package/server/.next/server/chunks/ssr/src_private_assist_advisor-notes_ts_0qkpm5c3la7fo._.js +6 -6
- package/server/.next/server/chunks/ssr/src_private_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 +860 -674
- 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/{3zaeh5nbkqpyj.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/0iyozrryj1w49.js +1 -0
- package/server/.next/static/chunks/{0r2z8zg4n43pd.js → 0jf5lpzwq4vh1.js} +1 -1
- package/server/.next/static/chunks/0p6hja9octhrd.js +1 -0
- package/server/.next/static/chunks/{2wd8yh_ni0lqj.js → 0qoql97izcn4l.js} +1 -1
- package/server/.next/static/chunks/0qsk0bb1x81nc.js +1 -0
- package/server/.next/static/chunks/{22ierqxhqtwn6.js → 0wkv5e-c430ea.js} +2 -2
- 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/{0foc_dy1j2x52.js → 12bbufru1ui37.js} +1 -1
- package/server/.next/static/chunks/{25r6-t40ok5s9.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/{16lnw4itnfhw-.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/23b9tctw1mn5a.js +76 -0
- package/server/.next/static/chunks/292uz-rsh422k.js +1 -0
- package/server/.next/static/chunks/{11gctw6uutyd7.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/{2aerfowxsf234.js → 2l4upq4bwgvvu.js} +1 -1
- package/server/.next/static/chunks/{177dd6kiifsoi.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/{1rt5heq1xn_az.js → 315s21b2dd7lg.js} +1 -1
- 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/{04lzxilmq17f_.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/{22h4lj0gp_6n5.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]__0ych1y0j6e38k._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__0zhzy29i2vylk._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__0zwe7i-isx08p._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__10ee5dhzx78ne._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__10q3dc485yp4l._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__10u93zgn0-c5a._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__115yxhfn37r-k._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__14mz6mbk2m_e0._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__15y82djobfhof._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__165qlmqwvxmzr._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__1acps2oi9s0i7._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__1erq9v_t5jwp5._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__1ip0gr1i080kn._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__1mrpvwofqktnv._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__1ppnnpydkrs93._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__1qdo_hgivrawk._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__1qp_dvfy4vvsm._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__1rk6wb8qem46d._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__1s20vd1etiird._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__1s9_nmhp7chvj._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__1yc_xjjam78sg._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__2067x8gf07f-i._.js +0 -3
- package/server/.next/server/chunks/_0beox3lp9z58-._.js +0 -3
- package/server/.next/server/chunks/_0gobsd0_oxj5v._.js +0 -3
- package/server/.next/server/chunks/_0vwctvzwde-sz._.js +0 -37
- package/server/.next/server/chunks/_0yzmfi6iwa_sk._.js +0 -3
- package/server/.next/server/chunks/_1c3ksp22eq0rw._.js +0 -37
- package/server/.next/server/chunks/_1cjfskikk32wj._.js +0 -37
- package/server/.next/server/chunks/_1d9mf39gz0bv4._.js +0 -3
- package/server/.next/server/chunks/_1dlvqnaceqr-_._.js +0 -3
- package/server/.next/server/chunks/_1jveb9aojczvg._.js +0 -3
- package/server/.next/server/chunks/_1qw43v448l9e7._.js +0 -37
- package/server/.next/server/chunks/src_0yve3gn52i_mn._.js +0 -3
- package/server/.next/server/chunks/src_lib_0cbh80jxsdx3n._.js +0 -6
- package/server/.next/server/chunks/src_lib_0s_txig7jm3ty._.js +0 -9
- package/server/.next/server/chunks/src_lib_15wd7ab4u5nrn._.js +0 -9
- package/server/.next/server/chunks/src_lib_15y0kwcot_7u0._.js +0 -6
- package/server/.next/server/chunks/src_lib_16y1secb8t9fj._.js +0 -6
- package/server/.next/server/chunks/src_lib_1iwyh213u9xts._.js +0 -6
- package/server/.next/server/chunks/ssr/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]__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/[externals]__1thdbok76xtof._.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]__0p7d9dfmuhnvv._.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]__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/_0i2a_ziqzhyq-._.js +0 -3
- 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/_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/_1dlvqnaceqr-_._.js +0 -3
- 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/_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/_1wssvwkmxcdn5._.js +0 -3
- package/server/.next/server/chunks/ssr/_1ybhu25y38395._.js +0 -4
- package/server/.next/server/chunks/ssr/_20gx4od4pnj8d._.js +0 -3
- 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_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_0vi30frvjgri2._.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)_05mlxmavgli8_._.js +0 -3
- package/server/.next/server/chunks/ssr/src_app_(console)_0u1ec16rmzze6._.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/static/chunks/01mhc6kz81iwf.js +0 -1
- package/server/.next/static/chunks/02byu0sw5d0g9.js +0 -1
- package/server/.next/static/chunks/02e07gc948zdh.js +0 -1
- package/server/.next/static/chunks/04yl9t4cn6zwm.js +0 -1
- package/server/.next/static/chunks/08oksl0raetg5.js +0 -1
- package/server/.next/static/chunks/0d556cjlmwiq4.js +0 -1
- package/server/.next/static/chunks/0jm8a63677590.js +0 -1
- package/server/.next/static/chunks/0lcmy-_tdtrqk.js +0 -1
- package/server/.next/static/chunks/0ld0vtd027il_.js +0 -1
- package/server/.next/static/chunks/0qciunoy58a03.js +0 -7
- package/server/.next/static/chunks/0r-2mywc7qkb_.js +0 -1
- package/server/.next/static/chunks/0xwz6ps1581qa.js +0 -1
- package/server/.next/static/chunks/1-zyqj42cr9hy.css +0 -3
- package/server/.next/static/chunks/12l7tr29-a97t.js +0 -1
- package/server/.next/static/chunks/160mk2sltxl3e.js +0 -1
- package/server/.next/static/chunks/1bn-7bluoi2vi.js +0 -1
- package/server/.next/static/chunks/1d0mukiro5klq.js +0 -1
- package/server/.next/static/chunks/1jc8ghvf721gg.js +0 -76
- package/server/.next/static/chunks/1nfofl7nhy6fx.js +0 -1
- package/server/.next/static/chunks/1x8bgprfjtt59.js +0 -1
- package/server/.next/static/chunks/1yctclvh0qaxz.js +0 -1
- package/server/.next/static/chunks/1zyyqxguxs96l.js +0 -1
- package/server/.next/static/chunks/23scyaimkowfl.js +0 -1
- package/server/.next/static/chunks/2lfa16b0tlnvj.js +0 -1
- package/server/.next/static/chunks/2onhuya5-n3-e.js +0 -1
- package/server/.next/static/chunks/2pn16qmann41d.js +0 -1
- package/server/.next/static/chunks/2szlo15y09085.js +0 -1
- package/server/.next/static/chunks/2v_f39dz8sa3-.js +0 -1
- package/server/.next/static/chunks/2xhx4rma6gx5o.js +0 -1
- package/server/.next/static/chunks/37f1rjolzxbiv.js +0 -1
- package/server/.next/static/chunks/38c9rnljzl6iw.js +0 -1
- package/server/.next/static/chunks/3_erdlvi2tz19.js +0 -1
- package/server/.next/static/chunks/3qbk8r6jm8udo.js +0 -5
- package/server/.next/static/chunks/3sg_npfod25zq.js +0 -1
- package/server/.next/static/chunks/3tl9dgour-h9l.js +0 -1
- package/server/.next/static/chunks/3vbz762vgy3dx.js +0 -1
- package/server/.next/static/chunks/3wi43ltm1e5iy.js +0 -1
- package/server/.next/static/chunks/3yljsdgzvrkdf.js +0 -1
- package/server/.next/static/chunks/42z3imsp11da1.js +0 -1
- /package/server/.next/static/{ZGhdfWFNBWLdWW4UhJrAO → rBXBlxKpaOHcc5KZDIhAL}/_buildManifest.js +0 -0
- /package/server/.next/static/{ZGhdfWFNBWLdWW4UhJrAO → rBXBlxKpaOHcc5KZDIhAL}/_clientMiddlewareManifest.js +0 -0
- /package/server/.next/static/{ZGhdfWFNBWLdWW4UhJrAO → rBXBlxKpaOHcc5KZDIhAL}/_ssgManifest.js +0 -0
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
(()=>{"use strict";module.exports=[630718,a=>{var b=a.i(187924),c=a.i(218024),d=a.i(572131),e=a.i(823292),f=a.i(405050);let g=(0,f.createServerReference)("
|
|
1
|
+
(()=>{"use strict";module.exports=[630718,a=>{var b=a.i(187924),c=a.i(218024),d=a.i(572131),e=a.i(823292),f=a.i(405050);let g=(0,f.createServerReference)("60c04f091fbfce86e5a1c87b235513d18ac94e6b2d",f.callServer,void 0,f.findSourceMapURL,"approveCreateAction"),h=(0,f.createServerReference)("402b4798d2559a41e061dd4b02a9d6749773008251",f.callServer,void 0,f.findSourceMapURL,"rejectCreateAction");var i=a.i(771378),j=a.i(611619),k=a.i(619089),l=a.i(507504),m=a.i(814574),n=a.i(486583);let o=new Set(["requested","approved","running"]),p=a=>o.has(a.status);var q=a.i(147474),r=a.i(368114);let s={requested:"Waiting for approval",approved:"Approved",running:"Creating…",done:"Created",failed:"Failed",rejected:"Rejected",expired:"Expired"};function t({items:a,owner:c,focus:d,quiet:e}){let f=(0,i.useMask)();return(0,b.jsx)("ul",{className:"divide-y divide-line",children:a.map(a=>{var g;let h;return(0,b.jsxs)("li",{id:`create-${a.id}`,className:(0,r.f)("flex flex-wrap items-center gap-x-3 gap-y-1.5 px-[18px] py-2.5",e&&"py-2 text-[13px]",d===a.id&&"bg-brand-soft"),children:[(0,b.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,b.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,b.jsx)("b",{className:(0,r.f)("font-medium",e&&"text-ink-soft"),children:n.S[a.type]}),(0,b.jsx)(k.E,{children:n.E[a.type]}),(0,b.jsx)("span",{className:(0,r.f)("text-[12.5px]","failed"===a.status?"text-err":"text-ink-soft"),children:s[a.status]})]}),(0,b.jsx)("p",{className:"font-mono text-[12.5px] text-ink-soft [overflow-wrap:anywhere]",children:f("text",a.summary)}),"requested"===a.status&&(0,b.jsxs)("p",{className:"text-[12px] text-ink-faint",children:[a.mine?"You asked":"Another member asked"," · expires ",(g=new Date(a.expiresAt),h=(0,q.e)(g),`${h.day} ${h.month} ${h.year}, ${(0,q.U)(g)}`)]}),a.error&&"requested"!==a.status&&(0,b.jsx)("p",{className:"text-[12.5px] text-err",children:f("text",a.error)}),a.result?.id&&"done"===a.status&&(0,b.jsxs)("p",{className:"text-[12px] text-ink-faint",children:["Created: ",(0,b.jsx)("span",{className:"font-mono",children:f("text",a.result.id)}),"firebase-pending"===a.result.note?" · Firebase still needs adding in the Firebase console":""]})]}),c&&"requested"===a.status&&(0,b.jsxs)("div",{className:"flex gap-1.5",children:[(0,b.jsx)(u,{item:a}),(0,b.jsx)(v,{item:a})]})]},a.id)})})}function u({item:a}){return(0,b.jsx)(j.f,{trigger:(0,b.jsx)(k.K,{size:"sm",children:"Reject"}),title:`Reject this ${n.S[a.type]}?`,body:"Nothing is created. The person who asked can ask again.",cta:"Reject",onConfirm:async()=>{let b=await h(a.id);return b.ok?{ok:!0,message:b.message??"Rejected."}:{ok:!1,message:b.error}}})}function v({item:a}){let[c,e]=(0,d.useState)(!1);return(0,l.useHoldRefresh)(c),(0,b.jsxs)(m.N,{open:c,onOpenChange:e,children:[(0,b.jsx)(m.a,{render:(0,b.jsx)(k.K,{size:"sm",variant:"primary"}),children:"Approve…"}),(0,b.jsx)(m.d,{className:"gap-0 p-0 sm:max-w-[560px]",showCloseButton:!1,children:c&&(0,b.jsx)(w,{item:a,onDone:()=>e(!1)})})]})}function w({item:a,onDone:c}){let f=(0,i.useMask)(),[h,j]=(0,d.useState)(""),[l,o]=(0,d.useState)(null),[p,q]=(0,d.useState)(null),[r,s]=(0,d.useState)(null),[t,u]=(0,d.useTransition)();return p?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsxs)("div",{className:"px-[18px] pb-2 pt-4",children:[(0,b.jsx)(m.F,{className:"text-base",children:"Copy the database password now"}),(0,b.jsxs)(m.C,{className:"mt-0.5 text-[13px] text-ink-soft",children:[r," It is shown only here, only once."]})]}),(0,b.jsxs)("div",{className:"px-[18px] pt-1.5",children:[(0,b.jsx)(x,{value:p}),(0,b.jsx)("div",{className:"mb-3",children:(0,b.jsx)(k.M,{tone:"warning",title:"The console doesn't keep it",children:"Save it in your password manager. If it's lost, reset it in Supabase → Project settings → Database."})})]}),(0,b.jsx)("div",{className:"flex justify-end gap-2 border-t border-line px-[18px] py-3",children:(0,b.jsx)(k.K,{variant:"primary",onClick:()=>{q(null),c()},children:"I've saved it"})})]}):(0,b.jsxs)(b.Fragment,{children:[(0,b.jsxs)("div",{className:"px-[18px] pb-2 pt-4",children:[(0,b.jsx)(m.F,{className:"text-base",children:f("text",`Create ${n.S[a.type]} ${a.confirmName}?`)}),(0,b.jsxs)(m.C,{className:"mt-0.5 text-[13px] text-ink-soft",children:["The console checks the free tier at ",n.E[a.type]," again now, then makes one create call. ",(0,n.d)(a.type)]})]}),(0,b.jsxs)("div",{className:"px-[18px] pt-2",children:[(0,b.jsx)("p",{className:"mb-3 rounded-md border border-line bg-sunken px-3 py-2 font-mono text-[12.5px] [overflow-wrap:anywhere]",children:f("text",a.summary)}),(0,b.jsx)(k.O,{id:`ap-${a.id}`,label:(0,b.jsxs)(b.Fragment,{children:["Type ",(0,b.jsx)("span",{className:"font-mono",children:f("text",a.confirmName)})," to approve"]}),error:l??void 0,children:(0,b.jsx)("input",{id:`ap-${a.id}`,className:k.S,value:h,autoComplete:"off",spellCheck:!1,onChange:a=>j(a.target.value)})})]}),(0,b.jsxs)("div",{className:"flex justify-end gap-2 border-t border-line px-[18px] py-3",children:[(0,b.jsx)(k.K,{onClick:c,disabled:t,children:"Cancel"}),(0,b.jsx)(k.K,{variant:"primary",onClick:function(){u(async()=>{try{let b=await g(a.id,h);if(!b.ok)return o(f("text",b.error));o(null),b.data?.secret?(q(b.data.secret),s(f("text",b.message??"Created."))):(e.c.success(f("text",b.message??"Created.")),c())}catch{o("Something went wrong. Check the provider's dashboard before trying again.")}})},disabled:t||h.trim()!==a.confirmName,children:t?"Checking and creating…":"Approve and create"})]})]})}function x({value:a}){let[f,g]=(0,d.useState)(!1),{shot:h}=(0,i.usePrivacy)(),[j,l]=(0,d.useState)(!1);return(0,b.jsxs)("div",{className:"mb-3 flex items-center gap-2 rounded-md border border-line-strong bg-sunken px-3 py-2",children:[h&&!j?(0,b.jsx)("button",{type:"button",className:"min-w-0 flex-1 text-left text-[13px] text-ink-soft",onClick:()=>l(!0),children:"Hidden in screenshot mode. Click to show it."}):(0,b.jsx)("code",{className:"min-w-0 flex-1 select-all font-mono text-[13px] [overflow-wrap:anywhere]",children:a}),(0,b.jsxs)(k.K,{size:"sm",onClick:()=>{navigator.clipboard.writeText(a).then(()=>g(!0),()=>e.c.error("Copy didn't work; select the text and copy it."))},children:[(0,b.jsx)(c.f,{size:14,"aria-hidden":!0,className:"mr-1 inline"}),f?"Copied":"Copy"]})]})}a.s(["CreateRequestList",0,function({items:a,owner:c,focus:d,title:e="Waiting for approval"}){let{pending:f,finished:g}={pending:a.filter(p),finished:a.filter(a=>!p(a))};if(!f.length&&!g.length)return null;let h=f.filter(a=>"requested"===a.status).length;return(0,b.jsxs)(b.Fragment,{children:[f.length>0&&(0,b.jsx)(k.N,{title:e,meta:h?`${h} waiting`:void 0,flush:!0,children:(0,b.jsx)(t,{items:f,owner:c,focus:d})}),g.length>0&&(0,b.jsx)(k.N,{title:"Recent requests",flush:!0,children:(0,b.jsx)(t,{items:g,owner:!1,focus:d,quiet:!0})})]})}],630718)},486583,a=>{let b={dns_record:"Cloudflare",neon_branch:"Neon",supabase_project:"Supabase",firebase_project:"Firebase"};a.s(["E",0,b,"S",0,{dns_record:"DNS record",neon_branch:"Neon branch",supabase_project:"Supabase project",firebase_project:"Firebase project"},"d",0,a=>`The console can't remove this later; remove it in ${b[a]}'s dashboard.`])}]})();
|
|
2
2
|
|
|
3
3
|
//# sourceMappingURL=src_0ph020gy78gi9._.js.map
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
(()=>{"use strict";module.exports=[534908,a=>{let b;var c,d,e=a.i(462820),f=a.i(411350),g=a.i(61017),h=a.i(330863),i=a.i(779704);async function j(a){await (0,i.E)(a,{force:!1})}var k=a.i(907997),l=a.i(109307),m=a.i(920274);let n=(0,a.i(377269).f)("outline","notes","Notes",[["path",{d:"M5 5a2 2 0 0 1 2 -2h10a2 2 0 0 1 2 2v14a2 2 0 0 1 -2 2h-10a2 2 0 0 1 -2 -2l0 -14",key:"svg-0"}],["path",{d:"M9 7l6 0",key:"svg-1"}],["path",{d:"M9 11l6 0",key:"svg-2"}],["path",{d:"M9 15l4 0",key:"svg-3"}]]);var o=a.i(701702),p=a.i(245710),q=a.i(668495),r=a.i(191397),s=a.i(791450);let t={crit:"err",warn:"warn",info:"brand"};function u({note:a,now:b,showApp:c}){let d=["AI note",`from ${a.from}`,a.model,(0,p.$)(a.at,b),c&&a.appName?a.appName:null,"written by an agent, can be wrong"].filter(Boolean).join(" · ");return(0,k.jsxs)(r.f,{icon:(0,k.jsx)(n,{size:18,"aria-hidden":!0}),tone:t[a.severity]??"brand",meta:d,action:(0,k.jsx)(s.DismissNoteButton,{id:a.id}),children:[(0,k.jsx)("b",{className:"font-medium",children:(0,k.jsx)(o.MaskedText,{text:a.title})}),(0,k.jsx)(q.f,{source:a.body})]})}async function v({appId:a}){let{ok:b}=await (0,l.B)("owner");if(!b)return null;let c=new Date,d=await (0,m.N)(a,c).catch(()=>[]);return d.length?(0,k.jsx)("div",{className:"mb-3 flex flex-col gap-2.5",children:d.map(b=>(0,k.jsx)(u,{note:b,now:c,showApp:void 0===a},b.id))}):null}var w=a.i(694874),x=a.i(395936),y=a.i(86657),z=a.i(185538);async function A({count:a}){let{ok:b}=await (0,l.B)("owner");if(!b)return null;if(!await y.f.provider().catch(()=>null))return(await (0,m.N)(void 0,new Date).catch(()=>[])).length?null:(0,k.jsxs)("p",{className:"mb-3 flex items-center gap-1.5 text-[13px] text-ink-soft",children:[(0,k.jsx)(n,{size:16,"aria-hidden":!0,className:"text-ink-faint"}),(0,k.jsx)(x.default,{href:"/ai/connect",children:e.v.recConnect})]});if(0===a)return null;let c=await (0,i.h)().catch(()=>null);if(!c)return(0,k.jsxs)("p",{className:"mb-3 flex items-center gap-1.5 text-[13px] text-ink-soft",children:[(0,k.jsx)(w.f,{size:16,"aria-hidden":!0,className:"text-ink-faint"}),"No AI summary yet. ",(0,k.jsx)(z.RegenerateButton,{label:"Summarise"})]});let d=new Date;return(0,k.jsxs)(r.f,{className:"mb-3",icon:(0,k.jsx)(w.f,{size:18,"aria-hidden":!0}),meta:(0,k.jsxs)(k.Fragment,{children:[`AI \xb7 ${c.model} \xb7 ${(0,p.$)(new Date(c.at),d)} \xb7 from ${c.count} items, names aliased \xb7 can be wrong, check the items below \xb7 `,(0,k.jsx)(z.RegenerateButton,{label:"Regenerate"})]}),children:[(0,k.jsx)("b",{className:"font-medium",children:"Summary"}),(0,k.jsx)(q.f,{source:c.text})]})}var B=a.i(918962),C=a.i(962230),D=a.i(976517);async function E({appId:a}){let{ok:b}=await (0,l.B)("owner");if(!b)return null;let c=new Date,[d,e,f]=await Promise.all([y.f.provider().catch(()=>null),(0,C.N)("app",a,c).catch(()=>null),(0,B.c)(c).catch(()=>null)]),g=e?{...e,createdAt:e.createdAt.toISOString(),answeredAt:e.answeredAt?.toISOString()??null}:null;return(0,k.jsx)(D.WhyAi,{appId:a,provider:d?{model:d.model}:null,question:g,nowMs:c.getTime(),agConnected:f?.agConnected??!1})}var F=a.i(243446),G=a.i(803681),H=a.i(581156),I=a.i(411642),J=a.i(65932),K=a.i(94473),L=a.i(188282);let M={recheck:"Runs the monitor's check once, like Check now on the monitor.",neon_wake:"Wakes a suspended Neon compute, like Wake on the database page.",supabase_keepalive:"Sends one keep-alive query to a Supabase project close to auto-pause, like Keep active.",supabase_restore:"Restores a paused Supabase project.",vercel_redeploy:"Redeploys the current production deployment.",vercel_rollback:"Rolls production back to the previous ready deployment.",github_bump_pr:"Opens a pull request on a new branch that raises vulnerable packages to their fixed versions (needs the GitHub PR-write token).",daily_rerun:"Calls the console's daily job again when its heartbeat is down. Always asks for approval.",domain_recheck:"Re-reads a domain's TLS certificate and expiry when its certificate looks close to expiry, like Re-check on Domains.",monitor_update_url:"Points an uptime monitor at its app's new domain when the app moved, keeping the path, like Update monitor on Uptime."};async function N(){let[a,b,c]=await Promise.all([(0,K.I)(),(0,K.K)(),(0,K.X)()]),d=[10,15,20,30,45,60,90,120].filter(a=>a>=K.l&&a<=K.n),e=K.r.map(a=>({kind:a,label:L.H[a].label,risky:"risky"===L.H[a].risk,what:M[a]}));return(0,k.jsxs)(G.N,{title:"Auto-actions",flush:!0,meta:"All off by default",children:[(0,k.jsxs)("p",{className:"px-[18px] pb-3 text-ink-soft",children:["When a firing alert brings a proposal for one of these actions, a switched-on kind runs without asking and you get a short Telegram line afterwards. Everything else waits for you on ",(0,k.jsx)(x.default,{href:"/auto-actions",children:"Auto-actions"}),". Auto-run only does what the console button does, through the same checks, and every run is in the audit log (Events)."]}),(0,k.jsx)(H.AutoRunForm,{saved:a,rows:e}),(0,k.jsxs)("div",{className:"border-t border-line px-[18px] pb-4 pt-3.5",children:[(0,k.jsx)("h3",{className:"mb-1.5 text-[14px]",children:"Auto-rollback after a bad deploy"}),(0,k.jsxs)("p",{className:"mb-2.5 text-ink-soft",children:["Off by default. When on, a new production deploy that breaks the app is rolled back to the previous one without asking. Only ",(0,k.jsx)("span",{className:"font-mono text-[12.5px]",children:"vercel_rollback"}),", only within the first N minutes after a new production deploy goes live, only when a monitor is down or the logs show an error spike, at most once per deployment (and never twice for one app within 2 hours), and every run is reported on Telegram and in Events. Failed builds never go live on Vercel, so this is for builds that succeed but break at runtime."]}),(0,k.jsx)(I.AutoRollbackForm,{saved:b,choices:d})]}),(0,k.jsxs)("div",{className:"border-t border-line px-[18px] pb-4 pt-3.5",children:[(0,k.jsx)("h3",{className:"mb-1.5 text-[14px]",children:"Automatic security fixes"}),(0,k.jsx)("p",{className:"mb-2 text-ink-soft",children:"On by default. When a dependency scan finds a critical, high or moderate advisory with a fix, Watchbell fixes it end to end (the scan and the Next.js check run every 6 hours and right after each production deploy):"}),(0,k.jsxs)("ol",{className:"mb-2.5 list-decimal pl-5 text-ink-soft [&_li]:mt-0.5",children:[(0,k.jsx)("li",{children:"opens the update PR itself (package.json only, on a new watchpost/deps-… branch), only for direct packages that stay in their major version, never twice for the same package while a PR is open;"}),(0,k.jsx)("li",{children:"waits for GitHub's checks (all green), then Vercel's preview of the PR (READY);"}),(0,k.jsx)("li",{children:'tests the preview: "/" and up to 3 monitor paths must answer 200–399 within 15 s (behind Vercel Authentication: 3 minutes without error lines in the preview\'s logs);'}),(0,k.jsx)("li",{children:"squash-merges it, only while auto-rollback is on: the production deploy then runs on Vercel and auto-rollback guards its first minutes."})]}),(0,k.jsx)("p",{className:"mb-2.5 text-ink-soft",children:'Anything failing, or not done within 45 minutes, leaves the PR open marked "needs a look". A major update, a transitive package or a severity you switched off waits for your approval on Auto-actions, as before. Every PR opened and every merge or stop is sent to Telegram and logged in Events. Needs the GitHub PR-write token on Connections.'}),(0,k.jsx)(J.AutoSecurityForm,{saved:c,rollbackOn:b.enabled})]})]})}var O=a.i(93321),P=a.i(530385),Q=a.i(548734),R=a.i(837137),S=a.i(247730),T=a.i(221084),U=a.i(396667),V=a.i(976937),W=a.i(736780),X=a.i(944571),Y=a.i(322145),Z=a.i(664892),$=a.i(521050),_=a.i(760417),aa=a.i(812092),ab=a.i(572134),ac=a.i(658739),ad=a.i(556987),ae=a.i(142754),af=a.i(342634),ag=a.i(381544);async function ah(a){let b=Date.now();try{let c=await fetch(a,{redirect:"manual",signal:AbortSignal.timeout(Z.w),cache:"no-store",headers:{"User-Agent":"Watchbell smoke test"}}),d=401===c.status||403===c.status?(await c.text().catch(()=>"")).slice(0,8192):"";return{status:c.status,ms:Date.now()-b,authWall:(0,Z.S)(c.status,d,c.headers)}}catch{return{status:null,ms:Date.now()-b,authWall:!1}}}async function ai(b,c){let{extensions:d}=await a.A(414785);return await d.runner?.lockfileJobActive(b,c).catch(()=>!1)??!1}let aj=null;async function ak(a,b){let c=(0,$.Q)(b.meta?.rootDirectory),d=(0,$.H)(c,"package.json"),e=b.lockfilePath??(0,$.H)(c,"package-lock.json");if(aj?.token!==a){let b=await (0,aa.z)(a);if(!b.ok)return null;aj={token:a,login:b.data}}let f=aj.login,[g,h]=await Promise.all([(0,aa.O)(a,b.fullName,b.number),(0,aa.P)(a,b.fullName,b.number)]);if(!g.ok||!h.ok)return null;let i=[];for(let c of h.data.slice(0,Z.y+1)){let d=null!==c.login&&c.login.toLowerCase()===f.toLowerCase()?null:await (0,aa.h)(a,b.fullName,c.sha);if(d&&!d.ok)return null;i.push({...c,files:d?d.data:null})}let[j,k]=await Promise.all([(0,aa.E)(a,b.fullName,b.baseBranch,{},d),(0,aa.E)(a,b.fullName,b.headSha,{},d)]);if(!j.ok||!k.ok)return null;let l=j.data&&k.data?(0,Z.C)(j.data.text,k.data.text,b.packages):"unexpected change: package.json is missing",m=null;if(e!==d&&g.data.some(a=>a.filename===e||a.previous===e))if((0,aa.$)(e)){let[c,d]=await Promise.all([(0,aa.l)(a,b.fullName,b.baseBranch,e),(0,aa.l)(a,b.fullName,b.headSha,e)]);if(!c.ok||!d.ok)return null;m=(0,Z.T)(c.data,d.data,e)}else m=`unexpected lockfile change ${e} (only package-lock.json can be checked)`;return{manifest:d,lockfile:e,lockfileRequired:!!b.lockfilePath,manifestProblem:l,lockfileProblem:m,headSha:b.headSha,tokenLogin:f,files:g.data,commits:i}}let al={rows:async()=>await (0,Q.f)().select({id:R.dependencyPrs.id,repoId:R.dependencyPrs.repoId,appId:R.dependencyPrs.appId,proposalId:R.dependencyPrs.proposalId,number:R.dependencyPrs.number,branch:R.dependencyPrs.branch,baseBranch:R.dependencyPrs.baseBranch,headSha:R.dependencyPrs.headSha,title:R.dependencyPrs.title,packages:R.dependencyPrs.packages,auto:R.dependencyPrs.auto,stage:R.dependencyPrs.stage,smokeMode:R.dependencyPrs.smokeMode,previewReadyAt:R.dependencyPrs.previewReadyAt,openedAt:R.dependencyPrs.openedAt,fullName:R.githubRepos.fullName,appName:R.resources.name,meta:R.resources.meta,lockfilePath:R.dependencyScans.lockfilePath}).from(R.dependencyPrs).innerJoin(R.githubRepos,(0,O.u)(R.githubRepos.id,R.dependencyPrs.repoId)).leftJoin(R.resources,(0,O.u)(R.resources.id,R.dependencyPrs.appId)).leftJoin(R.dependencyScans,(0,O.u)(R.dependencyScans.repoId,R.dependencyPrs.repoId)).where((0,O.y)(R.dependencyPrs.stage,[...Z.X])).orderBy((0,P.M)(R.dependencyPrs.openedAt)).limit(10),security:K.X,rollback:K.K,writeToken:async()=>{let a=await (0,W.G)();return a&&"unreadable"!==a?a.token:null},readToken:async a=>{let b=await (0,X.l)(a);return b.ok?b.token:null},vercel:async a=>{let b=await (0,Y.p)(a,"app"),c=b?.resource.meta.teamId;return b&&"string"==typeof c&&b.resource.externalId?{token:b.token,teamId:c,projectId:b.resource.externalId}:null},monitorUrls:async a=>(await (0,Q.f)().select({url:R.monitors.url}).from(R.monitors).where((0,O.b)((0,O.u)(R.monitors.resourceId,a),(0,O.u)(R.monitors.kind,"http"))).limit(10)).map(a=>a.url),pull:aa.b,checks:aa.s,runs:_.L,previews:ab.C,probe:ah,errorLogs:async(a,b,c,d)=>{let e=await (0,ac.f)(a.token,a.teamId,a.projectId,{since:c,until:d,now:d,deploymentId:b,levels:["error","fatal"],maxRows:20,timeoutMs:8e3});return e.ok?e.lines.length:null},merge:aa.C,review:ak,save:async(a,b,c,d)=>{await (0,Q.f)().update(R.dependencyPrs).set({...b,stageText:d,checkedAt:new Date}).where((0,O.u)(R.dependencyPrs.id,a)),c&&await (0,Q.f)().update(ae.O).set({result:d}).where((0,O.u)(ae.O.id,c)).catch(()=>void 0)},notify:a=>(0,ag.y)(a),lockfileBusy:async(a,b,c)=>await ai(a,b)||await (0,V.W)(c,b),audit:(a,b)=>(0,T.f)({kind:"ok",message:a,resourceId:b,actorUserId:null}),book:()=>(0,S.f)()};async function am(a,b,c=al){let d={watched:0,merged:0,stopped:0},e=()=>b-Date.now(),f=await c.rows();if(!f.length)return d;let[g,h,i]=await Promise.all([c.security().catch(()=>null),c.rollback().catch(()=>null),c.writeToken().catch(()=>null)]);if(!i)return d;let j=await c.book().catch(()=>ad.a);for(let b of f){if(15e3>e())break;if(b.auto||g?.enabled)try{let e=await an(b,a,i,h?.enabled===!0,c);if(!e)continue;d.watched++;let f=b.appName?(0,ad.r)(j,b.appName):"app";await ao(b,e,f,h?.windowMin??30,a,i,c,d)}catch(a){console.warn("deps/watch failed:",a instanceof Error?a.name:"error")}}return d}async function an(a,b,c,d,e){let f=await e.pull(c,a.fullName,a.number);if(!f.ok)return null;let g=await e.checks(c,a.fullName,f.data.headSha),h=null;if(g.ok&&null===g.data.checkRuns&&a.appId){let b=await e.readToken(a.appId),c=b?await e.runs(b,a.fullName,f.data.headSha):null;h=c?.ok?c.data:null}g.ok||(g={ok:!0,data:{checkRuns:[{status:"queued",conclusion:null}],combined:null}});let i=(0,Z.j)({...g.data,actionRuns:h}),j={state:null,readyAt:null},k=null,l=a.appId?await e.vercel(a.appId):null;if(l&&"success"===i&&f.data.headSha===a.headSha){let c=await e.previews(l.token,l.teamId,l.projectId,f.data.headSha),d=c.ok?c.data.find(a=>"preview"===a.target)??c.data[0]??null:null;if(d&&(j={state:d.state,readyAt:d.readyAt??("ready"===d.state?b:null)},"ready"===d.state&&d.url)){let c=a.previewReadyAt??j.readyAt??b;if("logs"!==a.smokeMode){let b=(0,Z.E)(a.appId?await e.monitorUrls(a.appId):[]),c=await Promise.all(b.map(async a=>({path:a,...await e.probe(`https://${d.url}${a}`)})));k=(0,Z.L)(c)}k||(k=(0,Z.n)(c,b,await e.errorLogs(l,d.id,c,b).catch(()=>null))),j.readyAt=c}}return{step:(0,Z.M)({now:b,openedAt:a.openedAt,pr:{state:f.data.state,merged:f.data.merged,mergeable:f.data.mergeable,headSha:f.data.headSha,base:f.data.base},recordedSha:a.headSha,recordedBase:a.baseBranch,checks:i,preview:j,smoke:k,autoRollbackOn:d}),smoke:k,previewReadyAt:j.readyAt,headSha:f.data.headSha}}async function ao(a,b,c,d,e,f,g,h){let{step:i}=b,j=b.smoke?{smokeMode:b.smoke.mode}:{},k=b.previewReadyAt?{previewReadyAt:b.previewReadyAt}:{},l={app:c,number:a.number,packages:a.packages};if("wait"===i.kind)return void await g.save(a.id,{stage:i.stage,...j,...k,...i.resetSha?{headSha:i.resetSha,previewReadyAt:null,smokeMode:null}:{}},a.proposalId,(0,Z.m)(a.number,i.stage,i.reason));if("done"===i.kind)return void await g.save(a.id,{stage:i.stage,finishedAt:e},a.proposalId,(0,Z.m)(a.number,i.stage));if("stop"===i.kind&&("CI gagal"===i.reason||"CI failed"===i.reason)&&await g.lockfileBusy?.(a.repoId,a.branch,a.fullName).catch(()=>!1))return void await g.save(a.id,{stage:"checks"},a.proposalId,(0,Z.m)(a.number,"checks","waiting for the lockfile from the runner"));if("stop"===i.kind){await g.save(a.id,{stage:i.stage,finishedAt:e,...j},a.proposalId,(0,Z.m)(a.number,i.stage,"ready-manual"===i.stage?null:i.reason)),h.stopped++,await g.notify({...l,kind:"ready-manual"===i.stage?"ready-manual":"stopped",reason:i.reason}).catch(()=>void 0);return}let m=await g.review(f,a).catch(()=>null);if(!m)return;let n=(0,Z.k)(m);if(!n&&(0,Z.H)(m)&&e.getTime()-a.openedAt.getTime()>Z.R){let b="the lockfile wasn't added within 45 minutes";await g.save(a.id,{stage:"timeout",finishedAt:e,...j},a.proposalId,(0,Z.m)(a.number,"timeout",b)),h.stopped++,await g.notify({...l,kind:"stopped",reason:b}).catch(()=>void 0);return}if(!n&&(0,Z.H)(m))return void await g.save(a.id,{stage:"checks"},a.proposalId,(0,Z.m)(a.number,"checks","waiting for the lockfile"));if(n){await g.save(a.id,{stage:"failed",finishedAt:e,...j},a.proposalId,(0,Z.m)(a.number,"failed",n)),h.stopped++,await g.notify({...l,kind:"stopped",reason:n}).catch(()=>void 0);return}await g.save(a.id,{stage:"merging",...j,...k},a.proposalId,(0,Z.m)(a.number,"merging"));let o=await g.merge(f,a.fullName,a.number,a.branch,a.baseBranch,a.headSha,a.title);if(o.ok){await g.save(a.id,{stage:"merged",mergedSha:o.data.sha,finishedAt:e},a.proposalId,(0,Z.m)(a.number,"merged")),h.merged++,await g.audit(`${af.v}PR #${a.number} merged \xb7 ${a.packages.join(", ")}`.slice(0,200),a.appId).catch(()=>void 0),await g.notify({...l,kind:"merged",windowMin:d}).catch(()=>void 0);return}if(409===o.status)return void await g.save(a.id,{stage:"checks"},a.proposalId,(0,Z.m)(a.number,"checks","new commit on the PR branch, checking again"));let p=405===o.status?"GitHub refused the merge (cannot be merged)":`merge failed: ${o.error}`.slice(0,150);await g.save(a.id,{stage:"failed",finishedAt:e},a.proposalId,(0,Z.m)(a.number,"failed",p)),h.stopped++,await g.notify({...l,kind:"stopped",reason:p}).catch(()=>void 0)}let ap=null;async function aq(a,b,c=U.I){if((0,Z.f)(a,ap)&&!(await c()).has("devops")){ap=a.getTime();try{let c=await am(a,b?.deadline??a.getTime()+5e4);c.watched&&console.log(`deps/watch: ${c.watched} PR, ${c.merged} merged, ${c.stopped} stopped`)}catch(a){console.warn("deps/watch failed:",a instanceof Error?a.name:"error")}}}var ar=a.i(691100),as=a.i(624065);let at={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",...e.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"]}]},au={dailySteps:[{name:"ai-usage-retention",run:g.$}]},av={WhyAiSlot:E,RecSummarySlot:A,AiNotesSlot:v,dailySteps:[{name:"advisor-summary",run:j}],minuteSteps:[{name:"advisor-notes",run:h.I}]},aw={dailySteps:[{name:"ai-notes-retention",run:F.v}]},ax={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:ar.t}],minuteSteps:[{name:"auto-actions",run:ar.Z},{name:"deps-pr-watch",run:aq}],settingsTabs:[{key:"office-auto-run",label:"Auto-actions",Tab:N}]},ay={telegramCallback:as.proposalCallback},az=function(...a){let b={nav:[],palette:[]};for(let c of a){for(let a of c.nav??[]){let c=b.nav.find(b=>b.section===a.section&&b.after===a.after);c?c.items=[...c.items,...a.items]:b.nav.push({...a,items:[...a.items]})}b.palette.push(...c.palette??[]),c.dailySteps?.length&&(b.dailySteps=[...b.dailySteps??[],...c.dailySteps]),c.minuteSteps?.length&&(b.minuteSteps=[...b.minuteSteps??[],...c.minuteSteps]),c.WhyAiSlot&&(b.WhyAiSlot=c.WhyAiSlot),c.RecSummarySlot&&(b.RecSummarySlot=c.RecSummarySlot),c.AiNotesSlot&&(b.AiNotesSlot=c.AiNotesSlot),c.DevNotesSlot&&(b.DevNotesSlot=c.DevNotesSlot),c.office&&(b.office=c.office),c.settingsTabs?.length&&(b.settingsTabs=[...b.settingsTabs??[],...c.settingsTabs]),c.telegramCallback&&(b.telegramCallback=c.telegramCallback),c.runner&&(b.runner=c.runner),c.RepoPreviewSlot&&(b.RepoPreviewSlot=c.RepoPreviewSlot)}return b}({...at,palette:(c=at.palette??[],d={label:"Ask AI",href:"/ai/ask",keywords:["ask","question","answer"]},(b=c.findIndex(a=>"/ai"===a.href))<0?[...c,d]:[...c.slice(0,b+1),d,...c.slice(b+1)])},{dailySteps:[{name:"ai-agents-prune",run:()=>(0,f.w)()}]},au,{},{},aw,ax,av,ay);a.s(["extensions",0,az],534908)},285138,a=>{let b=(0,a.i(211857).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");a.s(["AutoRollbackForm",0,b])},411642,a=>{var b=a.i(285138);a.n(b)},305093,a=>{let b=(0,a.i(211857).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");a.s(["AutoRunForm",0,b])},581156,a=>{var b=a.i(305093);a.n(b)},173666,a=>{let b=(0,a.i(211857).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");a.s(["AutoSecurityForm",0,b])},65932,a=>{var b=a.i(173666);a.n(b)},140025,a=>{let b=(0,a.i(211857).registerClientReference)(function(){throw Error("Attempted to call DismissNoteButton() from the server but DismissNoteButton 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/slots/dismiss-note-button.tsx","DismissNoteButton");a.s(["DismissNoteButton",0,b])},791450,a=>{var b=a.i(140025);a.n(b)},581542,a=>{let b=(0,a.i(211857).registerClientReference)(function(){throw Error("Attempted to call RegenerateButton() from the server but RegenerateButton 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/slots/regenerate-button.tsx","RegenerateButton");a.s(["RegenerateButton",0,b])},185538,a=>{var b=a.i(581542);a.n(b)},402242,a=>{let b=(0,a.i(211857).registerClientReference)(function(){throw Error("Attempted to call WhyAi() from the server but WhyAi 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/slots/why-ai.tsx","WhyAi");a.s(["WhyAi",0,b])},976517,a=>{var b=a.i(402242);a.n(b)}]})();
|
|
1
|
+
(()=>{"use strict";module.exports=[534908,a=>{let b;var c,d,e=a.i(462820),f=a.i(411350),g=a.i(61017),h=a.i(330863),i=a.i(779704);async function j(a){await (0,i.E)(a,{force:!1})}var k=a.i(907997),l=a.i(109307),m=a.i(920274);let n=(0,a.i(377269).f)("outline","notes","Notes",[["path",{d:"M5 5a2 2 0 0 1 2 -2h10a2 2 0 0 1 2 2v14a2 2 0 0 1 -2 2h-10a2 2 0 0 1 -2 -2l0 -14",key:"svg-0"}],["path",{d:"M9 7l6 0",key:"svg-1"}],["path",{d:"M9 11l6 0",key:"svg-2"}],["path",{d:"M9 15l4 0",key:"svg-3"}]]);var o=a.i(701702),p=a.i(245710),q=a.i(668495),r=a.i(191397),s=a.i(791450);let t={crit:"err",warn:"warn",info:"brand"};function u({note:a,now:b,showApp:c}){let d=["AI note",`from ${a.from}`,a.model,(0,p.$)(a.at,b),c&&a.appName?a.appName:null,"written by an agent, can be wrong"].filter(Boolean).join(" · ");return(0,k.jsxs)(r.f,{icon:(0,k.jsx)(n,{size:18,"aria-hidden":!0}),tone:t[a.severity]??"brand",meta:d,action:(0,k.jsx)(s.DismissNoteButton,{id:a.id}),children:[(0,k.jsx)("b",{className:"font-medium",children:(0,k.jsx)(o.MaskedText,{text:a.title})}),(0,k.jsx)(q.f,{source:a.body})]})}async function v({appId:a}){let{ok:b}=await (0,l.B)("owner");if(!b)return null;let c=new Date,d=await (0,m.N)(a,c).catch(()=>[]);return d.length?(0,k.jsx)("div",{className:"mb-3 flex flex-col gap-2.5",children:d.map(b=>(0,k.jsx)(u,{note:b,now:c,showApp:void 0===a},b.id))}):null}var w=a.i(694874),x=a.i(395936),y=a.i(86657),z=a.i(185538);async function A({count:a}){let{ok:b}=await (0,l.B)("owner");if(!b)return null;if(!await y.f.provider().catch(()=>null))return(await (0,m.N)(void 0,new Date).catch(()=>[])).length?null:(0,k.jsxs)("p",{className:"mb-3 flex items-center gap-1.5 text-[13px] text-ink-soft",children:[(0,k.jsx)(n,{size:16,"aria-hidden":!0,className:"text-ink-faint"}),(0,k.jsx)(x.default,{href:"/ai/connect",children:e.v.recConnect})]});if(0===a)return null;let c=await (0,i.h)().catch(()=>null);if(!c)return(0,k.jsxs)("p",{className:"mb-3 flex items-center gap-1.5 text-[13px] text-ink-soft",children:[(0,k.jsx)(w.f,{size:16,"aria-hidden":!0,className:"text-ink-faint"}),"No AI summary yet. ",(0,k.jsx)(z.RegenerateButton,{label:"Summarise"})]});let d=new Date;return(0,k.jsxs)(r.f,{className:"mb-3",icon:(0,k.jsx)(w.f,{size:18,"aria-hidden":!0}),meta:(0,k.jsxs)(k.Fragment,{children:[`AI \xb7 ${c.model} \xb7 ${(0,p.$)(new Date(c.at),d)} \xb7 from ${c.count} items, names aliased \xb7 can be wrong, check the items below \xb7 `,(0,k.jsx)(z.RegenerateButton,{label:"Regenerate"})]}),children:[(0,k.jsx)("b",{className:"font-medium",children:"Summary"}),(0,k.jsx)(q.f,{source:c.text})]})}var B=a.i(918962),C=a.i(962230),D=a.i(976517);async function E({appId:a}){let{ok:b}=await (0,l.B)("owner");if(!b)return null;let c=new Date,[d,e,f]=await Promise.all([y.f.provider().catch(()=>null),(0,C.N)("app",a,c).catch(()=>null),(0,B.c)(c).catch(()=>null)]),g=e?{...e,createdAt:e.createdAt.toISOString(),answeredAt:e.answeredAt?.toISOString()??null}:null;return(0,k.jsx)(D.WhyAi,{appId:a,provider:d?{model:d.model}:null,question:g,nowMs:c.getTime(),agConnected:f?.agConnected??!1})}var F=a.i(243446),G=a.i(803681),H=a.i(581156),I=a.i(411642),J=a.i(65932),K=a.i(94473),L=a.i(188282);let M={recheck:"Runs the monitor's check once, like Check now on the monitor.",neon_wake:"Wakes a suspended Neon compute, like Wake on the database page.",supabase_keepalive:"Sends one keep-alive query to a Supabase project close to auto-pause, like Keep active.",supabase_restore:"Restores a paused Supabase project.",vercel_redeploy:"Redeploys the current production deployment.",vercel_rollback:"Rolls production back to the previous ready deployment.",github_bump_pr:"Opens a pull request on a new branch that raises vulnerable packages to their fixed versions (needs the GitHub PR-write token).",daily_rerun:"Calls the console's daily job again when its heartbeat is down. Always asks for approval.",domain_recheck:"Re-reads a domain's TLS certificate and expiry when its certificate looks close to expiry, like Re-check on Domains.",monitor_update_url:"Points an uptime monitor at its app's new domain when the app moved, keeping the path, like Update monitor on Uptime."};async function N(){let[a,b,c]=await Promise.all([(0,K.I)(),(0,K.K)(),(0,K.X)()]),d=[10,15,20,30,45,60,90,120].filter(a=>a>=K.l&&a<=K.n),e=K.r.map(a=>({kind:a,label:L.H[a].label,risky:"risky"===L.H[a].risk,what:M[a]}));return(0,k.jsxs)(G.N,{title:"Auto-actions",flush:!0,meta:"All off by default",children:[(0,k.jsxs)("p",{className:"px-[18px] pb-3 text-ink-soft",children:["When a firing alert brings a proposal for one of these actions, a switched-on kind runs without asking and you get a short Telegram line afterwards. Everything else waits for you on ",(0,k.jsx)(x.default,{href:"/auto-actions",children:"Auto-actions"}),". Auto-run only does what the console button does, through the same checks, and every run is in the audit log (Events)."]}),(0,k.jsx)(H.AutoRunForm,{saved:a,rows:e}),(0,k.jsxs)("div",{className:"border-t border-line px-[18px] pb-4 pt-3.5",children:[(0,k.jsx)("h3",{className:"mb-1.5 text-[14px]",children:"Auto-rollback after a bad deploy"}),(0,k.jsxs)("p",{className:"mb-2.5 text-ink-soft",children:["Off by default. When on, a new production deploy that breaks the app is rolled back to the previous one without asking. Only ",(0,k.jsx)("span",{className:"font-mono text-[12.5px]",children:"vercel_rollback"}),", only within the first N minutes after a new production deploy goes live, only when a monitor is down or the logs show an error spike, at most once per deployment (and never twice for one app within 2 hours), and every run is reported on Telegram and in Events. Failed builds never go live on Vercel, so this is for builds that succeed but break at runtime."]}),(0,k.jsx)(I.AutoRollbackForm,{saved:b,choices:d})]}),(0,k.jsxs)("div",{className:"border-t border-line px-[18px] pb-4 pt-3.5",children:[(0,k.jsx)("h3",{className:"mb-1.5 text-[14px]",children:"Automatic security fixes"}),(0,k.jsx)("p",{className:"mb-2 text-ink-soft",children:"On by default. When a dependency scan finds a critical, high or moderate advisory with a fix, Watchbell fixes it end to end (the scan and the Next.js check run every 6 hours and right after each production deploy):"}),(0,k.jsxs)("ol",{className:"mb-2.5 list-decimal pl-5 text-ink-soft [&_li]:mt-0.5",children:[(0,k.jsx)("li",{children:"opens the update PR itself (package.json only, on a new watchpost/deps-… branch), only for direct packages that stay in their major version, never twice for the same package while a PR is open;"}),(0,k.jsx)("li",{children:"waits for GitHub's checks (all green), then Vercel's preview of the PR (READY);"}),(0,k.jsx)("li",{children:'tests the preview: "/" and up to 3 monitor paths must answer 200–399 within 15 s (behind Vercel Authentication: 3 minutes without error lines in the preview\'s logs);'}),(0,k.jsx)("li",{children:"squash-merges it, only while auto-rollback is on: the production deploy then runs on Vercel and auto-rollback guards its first minutes."})]}),(0,k.jsx)("p",{className:"mb-2.5 text-ink-soft",children:'Anything failing, or not done within 45 minutes, leaves the PR open marked "needs a look". A major update, a transitive package or a severity you switched off waits for your approval on Auto-actions, as before. Every PR opened and every merge or stop is sent to Telegram and logged in Events. Needs the GitHub PR-write token on Connections.'}),(0,k.jsx)(J.AutoSecurityForm,{saved:c,rollbackOn:b.enabled})]})]})}var O=a.i(93321),P=a.i(530385),Q=a.i(548734),R=a.i(837137),S=a.i(247730),T=a.i(221084),U=a.i(396667),V=a.i(976937),W=a.i(736780),X=a.i(944571),Y=a.i(322145),Z=a.i(664892),$=a.i(751263),_=a.i(521050),aa=a.i(760417),ab=a.i(812092),ac=a.i(572134),ad=a.i(658739),ae=a.i(556987),af=a.i(142754),ag=a.i(342634),ah=a.i(381544);let ai="waiting: Vercel didn't say which deployment is live";async function aj(a){let b=Date.now();try{let c=await fetch(a,{redirect:"manual",signal:AbortSignal.timeout(Z.w),cache:"no-store",headers:{"User-Agent":"Watchbell smoke test"}}),d=401===c.status||403===c.status?(await c.text().catch(()=>"")).slice(0,8192):"";return{status:c.status,ms:Date.now()-b,authWall:(0,Z.S)(c.status,d,c.headers)}}catch{return{status:null,ms:Date.now()-b,authWall:!1}}}async function ak(b,c){let{extensions:d}=await a.A(414785);return await d.runner?.lockfileJobActive(b,c).catch(()=>!1)??!1}let al=null;async function am(a,b){let c=(0,_.Q)(b.meta?.rootDirectory),d=(0,_.H)(c,"package.json"),e=b.lockfilePath??(0,_.H)(c,"package-lock.json");if(al?.token!==a){let b=await (0,ab.z)(a);if(!b.ok)return null;al={token:a,login:b.data}}let f=al.login,[g,h]=await Promise.all([(0,ab.O)(a,b.fullName,b.number),(0,ab.P)(a,b.fullName,b.number)]);if(!g.ok||!h.ok)return null;let i=[];for(let c of h.data.slice(0,Z.y+1)){let d=null!==c.login&&c.login.toLowerCase()===f.toLowerCase()?null:await (0,ab.h)(a,b.fullName,c.sha);if(d&&!d.ok)return null;i.push({...c,files:d?d.data:null})}let[j,k]=await Promise.all([(0,ab.E)(a,b.fullName,b.baseBranch,{},d),(0,ab.E)(a,b.fullName,b.headSha,{},d)]);if(!j.ok||!k.ok)return null;let l=j.data&&k.data?(0,Z.C)(j.data.text,k.data.text,b.packages):"unexpected change: package.json is missing",m=null;if(e!==d&&g.data.some(a=>a.filename===e||a.previous===e))if((0,ab.$)(e)){let[c,d]=await Promise.all([(0,ab.l)(a,b.fullName,b.baseBranch,e),(0,ab.l)(a,b.fullName,b.headSha,e)]);if(!c.ok||!d.ok)return null;m=(0,Z.T)(c.data,d.data,e)}else m=`unexpected lockfile change ${e} (only package-lock.json can be checked)`;return{manifest:d,lockfile:e,lockfileRequired:!!b.lockfilePath,manifestProblem:l,lockfileProblem:m,headSha:b.headSha,tokenLogin:f,files:g.data,commits:i}}async function an(a,b={}){let c=await (b.vercel??ao.vercel)(a);if(!c)return null;let d=await (b.serving??ac.k)(c.token,c.teamId,c.projectId);if(!d.ok)return null;let e=d.data.currentId,f=null;if(!e){let a=d.data.latest?.readyState??null;if("ERROR"!==a&&"CANCELED"!==a)return null;let g=await (b.running??ac.N)(c.token,c.teamId,c.projectId);if(!g.ok||g.data)return null;let h=await (b.ready??ac.r)(c.token,c.teamId,c.projectId);if(!h.ok)return null;let i=[...h.data].sort((a,b)=>b.createdAt.getTime()-a.createdAt.getTime()),j=d.data.promote;j?(f=i.find(a=>a.createdAt.getTime()>j.requestedAt)??null)||(e=j.toDeploymentId):f=i[0]??null}if(!f&&e){let a=await (b.deployment??ac.S)(c.token,{id:c.teamId,slug:c.teamId,name:c.teamId},e);if(!a.ok)return null;f=a.data}return f?{source:(0,$.s)({source:f.source,branch:f.branch,sha:f.sha,branchFrom:f.branchFrom??null,gitDirty:!0===f.gitDirty})}:null}let ao={rows:async()=>await (0,Q.f)().select({id:R.dependencyPrs.id,repoId:R.dependencyPrs.repoId,appId:R.dependencyPrs.appId,proposalId:R.dependencyPrs.proposalId,number:R.dependencyPrs.number,branch:R.dependencyPrs.branch,baseBranch:R.dependencyPrs.baseBranch,headSha:R.dependencyPrs.headSha,title:R.dependencyPrs.title,packages:R.dependencyPrs.packages,auto:R.dependencyPrs.auto,stage:R.dependencyPrs.stage,smokeMode:R.dependencyPrs.smokeMode,previewReadyAt:R.dependencyPrs.previewReadyAt,openedAt:R.dependencyPrs.openedAt,fullName:R.githubRepos.fullName,appName:R.resources.name,meta:R.resources.meta,lockfilePath:R.dependencyScans.lockfilePath,appMonitored:R.resources.monitored,appGone:R.resources.goneAt,stageText:R.dependencyPrs.stageText}).from(R.dependencyPrs).innerJoin(R.githubRepos,(0,O.u)(R.githubRepos.id,R.dependencyPrs.repoId)).leftJoin(R.resources,(0,O.u)(R.resources.id,R.dependencyPrs.appId)).leftJoin(R.dependencyScans,(0,O.u)(R.dependencyScans.repoId,R.dependencyPrs.repoId)).where((0,O.y)(R.dependencyPrs.stage,[...Z.X])).orderBy((0,P.M)(R.dependencyPrs.openedAt)).limit(10),security:K.X,rollback:K.K,writeToken:async()=>{let a=await (0,W.G)();return a&&"unreadable"!==a?a.token:null},readToken:async a=>{let b=await (0,X.l)(a);return b.ok?b.token:null},vercel:async a=>{let b=await (0,Y.p)(a,"app"),c=b?.resource.meta.teamId;return b&&"string"==typeof c&&b.resource.externalId?{token:b.token,teamId:c,projectId:b.resource.externalId}:null},monitorUrls:async a=>(await (0,Q.f)().select({url:R.monitors.url}).from(R.monitors).where((0,O.b)((0,O.u)(R.monitors.resourceId,a),(0,O.u)(R.monitors.kind,"http"))).limit(10)).map(a=>a.url),pull:ab.b,checks:ab.s,runs:aa.L,previews:ac.C,probe:aj,errorLogs:async(a,b,c,d)=>{let e=await (0,ad.f)(a.token,a.teamId,a.projectId,{since:c,until:d,now:d,deploymentId:b,levels:["error","fatal"],maxRows:20,timeoutMs:8e3});return e.ok?e.lines.length:null},merge:ab.C,review:am,save:async(a,b,c,d)=>{await (0,Q.f)().update(R.dependencyPrs).set({...b,stageText:d,checkedAt:new Date}).where((0,O.u)(R.dependencyPrs.id,a)),c&&await (0,Q.f)().update(af.O).set({result:d}).where((0,O.u)(af.O.id,c)).catch(()=>void 0)},notify:a=>(0,ah.y)(a),liveSource:a=>an(a),lockfileBusy:async(a,b,c)=>await ak(a,b)||await (0,V.W)(c,b),audit:(a,b)=>(0,T.f)({kind:"ok",message:a,resourceId:b,actorUserId:null}),book:()=>(0,S.f)()};async function ap(a,b,c=ao){let d={watched:0,merged:0,stopped:0},e=()=>b-Date.now(),f=await c.rows();if(!f.length)return d;let[g,h,i]=await Promise.all([c.security().catch(()=>null),c.rollback().catch(()=>null),c.writeToken().catch(()=>null)]);if(!i)return d;let j=await c.book().catch(()=>ae.a);for(let b of f){if(15e3>e())break;if(b.auto||g?.enabled)try{let e=await aq(b,a,i,h?.enabled===!0,c);if(!e)continue;d.watched++;let f=b.appName?(0,ae.r)(j,b.appName):"app";await as(b,e,f,h?.windowMin??30,a,i,c,d)}catch(a){console.warn("deps/watch failed:",a instanceof Error?a.name:"error")}}return d}async function aq(a,b,c,d,e){let f=await e.pull(c,a.fullName,a.number);if(!f.ok)return null;let g=await e.checks(c,a.fullName,f.data.headSha),h=null;if(g.ok&&null===g.data.checkRuns&&a.appId){let b=await e.readToken(a.appId),c=b?await e.runs(b,a.fullName,f.data.headSha):null;h=c?.ok?c.data:null}g.ok||(g={ok:!0,data:{checkRuns:[{status:"queued",conclusion:null}],combined:null}});let i=(0,Z.j)({...g.data,actionRuns:h}),j={state:null,readyAt:null},k=null,l=a.appId?await e.vercel(a.appId):null;if(l&&"success"===i&&f.data.headSha===a.headSha){let c=await e.previews(l.token,l.teamId,l.projectId,f.data.headSha),d=c.ok?c.data.find(a=>"preview"===a.target)??c.data[0]??null:null;if(d&&(j={state:d.state,readyAt:d.readyAt??("ready"===d.state?b:null)},"ready"===d.state&&d.url)){let c=a.previewReadyAt??j.readyAt??b;if("logs"!==a.smokeMode){let b=(0,Z.E)(a.appId?await e.monitorUrls(a.appId):[]),c=await Promise.all(b.map(async a=>({path:a,...await e.probe(`https://${d.url}${a}`)})));k=(0,Z.L)(c)}k||(k=(0,Z.n)(c,b,await e.errorLogs(l,d.id,c,b).catch(()=>null))),j.readyAt=c}}return{step:(0,Z.M)({now:b,openedAt:a.openedAt,pr:{state:f.data.state,merged:f.data.merged,mergeable:f.data.mergeable,headSha:f.data.headSha,base:f.data.base},recordedSha:a.headSha,recordedBase:a.baseBranch,checks:i,preview:j,smoke:k,autoRollbackOn:d}),smoke:k,previewReadyAt:j.readyAt,headSha:f.data.headSha}}function ar(a,b){if(!a.appId||!1===a.appMonitored||a.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 c=(0,$.B)(a.meta?.productionSource,a.baseBranch,b);if(c)return c;let d=(0,$.O)(a.meta?.productionSource),e=a.meta?.productionBranch;return d?.kind==="git"&&d.ref===a.baseBranch&&"string"==typeof e&&e!==a.baseBranch?`Merging into ${a.baseBranch} won't deploy to production by itself: production was promoted from a ${a.baseBranch} preview. Merge, then promote the new preview.`:null}async function as(a,b,c,d,e,f,g,h){let{step:i}=b,j=b.smoke?{smokeMode:b.smoke.mode}:{},k=b.previewReadyAt?{previewReadyAt:b.previewReadyAt}:{},l={app:c,number:a.number,packages:a.packages};if("wait"===i.kind)return void await g.save(a.id,{stage:i.stage,...j,...k,...i.resetSha?{headSha:i.resetSha,previewReadyAt:null,smokeMode:null}:{}},a.proposalId,(0,Z.m)(a.number,i.stage,i.reason));if("done"===i.kind)return void await g.save(a.id,{stage:i.stage,finishedAt:e},a.proposalId,(0,Z.m)(a.number,i.stage));if("stop"===i.kind&&("CI gagal"===i.reason||"CI failed"===i.reason)&&await g.lockfileBusy?.(a.repoId,a.branch,a.fullName).catch(()=>!1))return void await g.save(a.id,{stage:"checks"},a.proposalId,(0,Z.m)(a.number,"checks","waiting for the lockfile from the runner"));let m=async b=>{await g.save(a.id,{stage:"failed",finishedAt:e,...j},a.proposalId,(0,Z.m)(a.number,"failed",b)),h.stopped++,await g.notify({...l,kind:"stopped",reason:b.replace(/\.$/,"")}).catch(()=>void 0)},n="merge"===i.kind||"stop"===i.kind&&"ready-manual"===i.stage?ar(a,e):null;if(n)return m(n);let o=async()=>{let c=a.appId?await g.liveSource(a.appId).catch(()=>null):null;if(!c){let c=b.previewReadyAt??a.previewReadyAt??a.openedAt;if((a.stageText??"").includes(ai)&&e.getTime()-c.getTime()>Z.R)return await m("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 d="checks"===a.stage||"preview"===a.stage||"smoke"===a.stage?a.stage:"smoke";return await g.save(a.id,{stage:d,...j,...k},a.proposalId,(0,Z.m)(a.number,d,ai)),!0}let d=c.source?ar({...a,meta:{...a.meta??{},productionSource:{...c.source,at:e.toISOString()}}},e):`Watchbell can't confirm what production is built from (Vercel names no branch for it). Merging this PR could deploy ${a.baseBranch} to production and replace what is live.`;return!!d&&(await m(d),!0)};if("stop"===i.kind&&"ready-manual"===i.stage&&await o())return;if("stop"===i.kind){await g.save(a.id,{stage:i.stage,finishedAt:e,...j},a.proposalId,(0,Z.m)(a.number,i.stage,"ready-manual"===i.stage?null:i.reason)),h.stopped++,await g.notify({...l,kind:"ready-manual"===i.stage?"ready-manual":"stopped",reason:i.reason}).catch(()=>void 0);return}let p=await g.review(f,a).catch(()=>null);if(!p)return;let q=(0,Z.k)(p);if(!q&&(0,Z.H)(p)&&e.getTime()-a.openedAt.getTime()>Z.R){let b="the lockfile wasn't added within 45 minutes";await g.save(a.id,{stage:"timeout",finishedAt:e,...j},a.proposalId,(0,Z.m)(a.number,"timeout",b)),h.stopped++,await g.notify({...l,kind:"stopped",reason:b}).catch(()=>void 0);return}if(!q&&(0,Z.H)(p))return void await g.save(a.id,{stage:"checks"},a.proposalId,(0,Z.m)(a.number,"checks","waiting for the lockfile"));if(q){await g.save(a.id,{stage:"failed",finishedAt:e,...j},a.proposalId,(0,Z.m)(a.number,"failed",q)),h.stopped++,await g.notify({...l,kind:"stopped",reason:q}).catch(()=>void 0);return}if(await o())return;await g.save(a.id,{stage:"merging",...j,...k},a.proposalId,(0,Z.m)(a.number,"merging"));let r=await g.merge(f,a.fullName,a.number,a.branch,a.baseBranch,a.headSha,a.title);if(r.ok){await g.save(a.id,{stage:"merged",mergedSha:r.data.sha,finishedAt:e},a.proposalId,(0,Z.m)(a.number,"merged")),h.merged++,await g.audit(`${ag.v}PR #${a.number} merged \xb7 ${a.packages.join(", ")}`.slice(0,200),a.appId).catch(()=>void 0),await g.notify({...l,kind:"merged",windowMin:d}).catch(()=>void 0);return}if(409===r.status)return void await g.save(a.id,{stage:"checks"},a.proposalId,(0,Z.m)(a.number,"checks","new commit on the PR branch, checking again"));let s=405===r.status?"GitHub refused the merge (cannot be merged)":`merge failed: ${r.error}`.slice(0,150);await g.save(a.id,{stage:"failed",finishedAt:e},a.proposalId,(0,Z.m)(a.number,"failed",s)),h.stopped++,await g.notify({...l,kind:"stopped",reason:s}).catch(()=>void 0)}let at=null;async function au(a,b,c=U.I){if((0,Z.f)(a,at)&&!(await c()).has("devops")){at=a.getTime();try{let c=await ap(a,b?.deadline??a.getTime()+5e4);c.watched&&console.log(`deps/watch: ${c.watched} PR, ${c.merged} merged, ${c.stopped} stopped`)}catch(a){console.warn("deps/watch failed:",a instanceof Error?a.name:"error")}}}var av=a.i(691100),aw=a.i(624065);let ax={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",...e.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"]}]},ay={dailySteps:[{name:"ai-usage-retention",run:g.$}]},az={WhyAiSlot:E,RecSummarySlot:A,AiNotesSlot:v,dailySteps:[{name:"advisor-summary",run:j}],minuteSteps:[{name:"advisor-notes",run:h.I}]},aA={dailySteps:[{name:"ai-notes-retention",run:F.v}]},aB={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:av.t}],minuteSteps:[{name:"auto-actions",run:av.Z},{name:"deps-pr-watch",run:au}],settingsTabs:[{key:"office-auto-run",label:"Auto-actions",Tab:N}]},aC={telegramCallback:aw.proposalCallback},aD=function(...a){let b={nav:[],palette:[]};for(let c of a){for(let a of c.nav??[]){let c=b.nav.find(b=>b.section===a.section&&b.after===a.after);c?c.items=[...c.items,...a.items]:b.nav.push({...a,items:[...a.items]})}b.palette.push(...c.palette??[]),c.dailySteps?.length&&(b.dailySteps=[...b.dailySteps??[],...c.dailySteps]),c.minuteSteps?.length&&(b.minuteSteps=[...b.minuteSteps??[],...c.minuteSteps]),c.WhyAiSlot&&(b.WhyAiSlot=c.WhyAiSlot),c.RecSummarySlot&&(b.RecSummarySlot=c.RecSummarySlot),c.AiNotesSlot&&(b.AiNotesSlot=c.AiNotesSlot),c.DevNotesSlot&&(b.DevNotesSlot=c.DevNotesSlot),c.office&&(b.office=c.office),c.settingsTabs?.length&&(b.settingsTabs=[...b.settingsTabs??[],...c.settingsTabs]),c.telegramCallback&&(b.telegramCallback=c.telegramCallback),c.runner&&(b.runner=c.runner),c.RepoPreviewSlot&&(b.RepoPreviewSlot=c.RepoPreviewSlot)}return b}({...ax,palette:(c=ax.palette??[],d={label:"Ask AI",href:"/ai/ask",keywords:["ask","question","answer"]},(b=c.findIndex(a=>"/ai"===a.href))<0?[...c,d]:[...c.slice(0,b+1),d,...c.slice(b+1)])},{dailySteps:[{name:"ai-agents-prune",run:()=>(0,f.w)()}]},ay,{},{},aA,aB,az,aC);a.s(["extensions",0,aD],534908)},285138,a=>{let b=(0,a.i(211857).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");a.s(["AutoRollbackForm",0,b])},411642,a=>{var b=a.i(285138);a.n(b)},305093,a=>{let b=(0,a.i(211857).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");a.s(["AutoRunForm",0,b])},581156,a=>{var b=a.i(305093);a.n(b)},173666,a=>{let b=(0,a.i(211857).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");a.s(["AutoSecurityForm",0,b])},65932,a=>{var b=a.i(173666);a.n(b)},140025,a=>{let b=(0,a.i(211857).registerClientReference)(function(){throw Error("Attempted to call DismissNoteButton() from the server but DismissNoteButton 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/slots/dismiss-note-button.tsx","DismissNoteButton");a.s(["DismissNoteButton",0,b])},791450,a=>{var b=a.i(140025);a.n(b)},581542,a=>{let b=(0,a.i(211857).registerClientReference)(function(){throw Error("Attempted to call RegenerateButton() from the server but RegenerateButton 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/slots/regenerate-button.tsx","RegenerateButton");a.s(["RegenerateButton",0,b])},185538,a=>{var b=a.i(581542);a.n(b)},402242,a=>{let b=(0,a.i(211857).registerClientReference)(function(){throw Error("Attempted to call WhyAi() from the server but WhyAi 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/slots/why-ai.tsx","WhyAi");a.s(["WhyAi",0,b])},976517,a=>{var b=a.i(402242);a.n(b)}]})();
|
|
2
2
|
|
|
3
3
|
//# sourceMappingURL=src_0uitfl3c1mdqb._.js.map
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
(()=>{"use strict";module.exports=[745374,a=>{var b=a.i(211857);let c=(0,b.registerClientReference)(function(){throw Error("Attempted to call AutoRefresh() from the server but AutoRefresh 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/live.tsx","AutoRefresh");(0,b.registerClientReference)(function(){throw Error("Attempted to call LiveIndicator() from the server but LiveIndicator 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/live.tsx","LiveIndicator"),(0,b.registerClientReference)(function(){throw Error("Attempted to call holdCount() from the server but holdCount 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/live.tsx","holdCount"),(0,b.registerClientReference)(function(){throw Error("Attempted to call holdRefresh() from the server but holdRefresh 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/live.tsx","holdRefresh"),(0,b.registerClientReference)(function(){throw Error("Attempted to call holdWhile() from the server but holdWhile 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/live.tsx","holdWhile"),(0,b.registerClientReference)(function(){throw Error("Attempted to call useHoldRefresh() from the server but useHoldRefresh 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/live.tsx","useHoldRefresh"),a.s(["AutoRefresh",0,c])},685865,a=>{var b=a.i(745374);a.n(b)},393746,a=>{var b=a.i(245710);let c=a=>(0,b.T)(a);a.s(["a",0,function(a){return null===a?"—":a>=1e6?`${Math.round(a/1e5)/10}M`.replace(".0M","M"):a>=1e3?`${Math.round(a/1024)}k`:String(a)},"J",0,a=>a<1e3?`${Math.round(a)} ms`:`${(a/1e3).toFixed(1)} s`,"r",0,(a,b)=>null===a&&null===b?"—":`${null===a?"—":a.toLocaleString("en-US")} / ${null===b?"—":b.toLocaleString("en-US")}`,"n",0,function(a,d){return(0,b.x)(a)===(0,b.x)(d)?c(a):`${(0,b.x)(a).slice(5)} ${c(a)}`},"m",0,function(a){return a<400?"ok":429===a?"warn":"err"},"_",0,function(a){return"mcp"===a.kind?`MCP \xb7 ${a.tool??"initialize"}`:a.model??(a.tool?a.tool:"—")},"s",0,function(a){let b=a.filter(a=>a.enabled);if(0===b.length)return{tone:"off",title:"Not connected",detail:null};let c=b.find(a=>a.isDefault)??b[0],d=a=>null!==a.lastTestStatus&&a.lastTestStatus>=400,e=b.filter(a=>a!==c),f=e.filter(a=>!d(a)),g=[...c.isDefault?["Default"]:[],...f.length?[`${f.map(a=>a.name).join(", ")} also on`]:[],...e.filter(d).map(a=>`${a.name} needs attention`)];return{tone:d(c)?"err":"ok",title:c.name,detail:g.length?g.join(" · "):null}},"P",0,function(a,b=2){let c=a.flatMap(a=>a.rows.map(b=>({group:a.group,...b}))),d=c.filter(a=>/daily/i.test(a.label));return[...d,...c.filter(a=>!d.includes(a))].slice(0,b)},"z",0,a=>`${(0,b.x)(a)} ${c(a)}`])}]})();
|
|
1
|
+
(()=>{"use strict";module.exports=[745374,a=>{var b=a.i(211857);let c=(0,b.registerClientReference)(function(){throw Error("Attempted to call AutoRefresh() from the server but AutoRefresh 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/live.tsx","AutoRefresh");(0,b.registerClientReference)(function(){throw Error("Attempted to call LiveIndicator() from the server but LiveIndicator 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/live.tsx","LiveIndicator"),(0,b.registerClientReference)(function(){throw Error("Attempted to call holdCount() from the server but holdCount 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/live.tsx","holdCount"),(0,b.registerClientReference)(function(){throw Error("Attempted to call holdRefresh() from the server but holdRefresh 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/live.tsx","holdRefresh"),(0,b.registerClientReference)(function(){throw Error("Attempted to call holdWhile() from the server but holdWhile 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/live.tsx","holdWhile"),(0,b.registerClientReference)(function(){throw Error("Attempted to call markCollectorRun() from the server but markCollectorRun 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/live.tsx","markCollectorRun"),(0,b.registerClientReference)(function(){throw Error("Attempted to call setRefreshChoice() from the server but setRefreshChoice 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/live.tsx","setRefreshChoice"),(0,b.registerClientReference)(function(){throw Error("Attempted to call useHoldRefresh() from the server but useHoldRefresh 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/live.tsx","useHoldRefresh"),a.s(["AutoRefresh",0,c])},685865,a=>{var b=a.i(745374);a.n(b)},393746,a=>{var b=a.i(245710);let c=a=>(0,b.T)(a);a.s(["a",0,function(a){return null===a?"—":a>=1e6?`${Math.round(a/1e5)/10}M`.replace(".0M","M"):a>=1e3?`${Math.round(a/1024)}k`:String(a)},"J",0,a=>a<1e3?`${Math.round(a)} ms`:`${(a/1e3).toFixed(1)} s`,"r",0,(a,b)=>null===a&&null===b?"—":`${null===a?"—":a.toLocaleString("en-US")} / ${null===b?"—":b.toLocaleString("en-US")}`,"n",0,function(a,d){return(0,b.x)(a)===(0,b.x)(d)?c(a):`${(0,b.x)(a).slice(5)} ${c(a)}`},"m",0,function(a){return a<400?"ok":429===a?"warn":"err"},"_",0,function(a){return"mcp"===a.kind?`MCP \xb7 ${a.tool??"initialize"}`:a.model??(a.tool?a.tool:"—")},"s",0,function(a){let b=a.filter(a=>a.enabled);if(0===b.length)return{tone:"off",title:"Not connected",detail:null};let c=b.find(a=>a.isDefault)??b[0],d=a=>null!==a.lastTestStatus&&a.lastTestStatus>=400,e=b.filter(a=>a!==c),f=e.filter(a=>!d(a)),g=[...c.isDefault?["Default"]:[],...f.length?[`${f.map(a=>a.name).join(", ")} also on`]:[],...e.filter(d).map(a=>`${a.name} needs attention`)];return{tone:d(c)?"err":"ok",title:c.name,detail:g.length?g.join(" · "):null}},"P",0,function(a,b=2){let c=a.flatMap(a=>a.rows.map(b=>({group:a.group,...b}))),d=c.filter(a=>/daily/i.test(a.label));return[...d,...c.filter(a=>!d.includes(a))].slice(0,b)},"z",0,a=>`${(0,b.x)(a)} ${c(a)}`])}]})();
|
|
2
2
|
|
|
3
3
|
//# sourceMappingURL=src_0xh3xicmff6ws._.js.map
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
(()=>{"use strict";module.exports=[455317,912283,876808,569057,751263,930270,a=>{var b=a.i(93321),c=a.i(530385),d=a.i(351674),e=a.i(548734),f=a.i(837137),g=a.i(927262),h=a.i(201516),i=a.i(273133),j=a.i(120213),k=a.i(84979),l=a.i(84877),m=a.i(679662);let n=/^v?(\d+)\.(\d+)\.(\d+)(?:-[0-9A-Za-z.-]+)?(?:\+[0-9A-Za-z.-]+)?$/;function o(a,b){let c=n.exec(a.trim()),d=n.exec(b.trim());return!!c&&!!d&&c[1]===d[1]&&("0"!==c[1]||c[2]===d[2])&&(0,l.f)(b,a)>=0}let p=/^Watch(?:bell|post): update (?:\S+ (?:to|ke) \S+|\d+ vulnerable packages) in ((?:[A-Za-z0-9._-]+\/){0,3}[A-Za-z0-9._-]+) \(/,q=a=>p.exec(a)?.[1]??null;function r(a,b){if(!b)return{deps:a,stale:[]};let c=[...Object.entries(b.dependencies).map(([a,b])=>[a,b,!1]),...Object.entries(b.optionalDependencies).map(([a,b])=>[a,b,!1]),...Object.entries(b.devDependencies).map(([a,b])=>[a,b,!0])],d=[...a],e=[];for(let[a,b,f]of c){let c=(0,m.Y)(b);if(!c||!(0,m.C)(c))continue;let g=d.filter(b=>b.name===a);!g.length||g.some(a=>(0,l.f)(a.version,c)>=0)||((d=d.filter(b=>b.name!==a)).push({name:a,version:c,dev:g.every(a=>a.dev)&&f}),e.push(a))}return{deps:d,stale:e}}let s=a=>`Lockfile tertinggal — jalankan npm install (${a.slice(0,5).join(", ")}${a.length>5?`, +${a.length-5}`:""}).`;a.s(["M",0,s,"a",0,function(a,b,c){if(!a.length)return{ok:!1,why:"nothing"};let d=a.filter(a=>c.includes(a.severity)&&!("moderate"===a.severity&&a.dev));if(!d.length)return{ok:!1,why:"severity"};for(let a of d){let c=b.get(a.package);if(!c||!o(c,a.to))return{ok:!1,why:"major"}}return{ok:!0,upgrades:d}},"m",0,r,"D",0,function(a){let b=new Map;for(let c of a){if(!c.direct)continue;let a=b.get(c.package);(!a||0>(0,l.f)(c.installedVersion,a))&&b.set(c.package,c.installedVersion)}return b},"U",0,function(a,b,c=null){for(let d of b){if(q(d.title)!==c)continue;let b=function(a){if(a.packages?.length)return a.packages;let b=/^Watch(?:bell|post): update (\S+) (?:to|ke) /.exec(a.title);return b?[b[1]]:"all"}(d);if("all"===b||a.some(a=>b.includes(a)))return d}return null},"J",0,o],912283);let t=["next","eslint-config-next"],u={CRITICAL:"critical",HIGH:"high",MODERATE:"moderate",LOW:"low",UNKNOWN:"unknown"};function v(a,b){if(!a||!(0,m.C)(a))return null;let c=b.map(a=>a.fixed).filter(b=>!!b&&(0,m.C)(b)&&(0,l.f)(b,a)>0);if(!c.length)return null;let d=c.filter(b=>o(a,b));return(d.length?d:c).reduce((a,b)=>(0,l.f)(b,a)>0?b:a)}function w(a,b){let c=v(a,b),d=c?b.map(a=>a.fixed).filter(a=>!!a&&(0,m.C)(a)&&(0,l.f)(a,c)>0):[],e=d.reduce((a,b)=>null===a||(0,l.f)(b,a)>0?b:a,null),f=e?` (${1===d.length?"one fix needs":"some fixes need"} Next.js ${e.split(".")[0]})`:"";return`Next.js ${a??"(unknown version)"} has ${(0,k.q)(b.length)} (${(0,k.N)(b).toLowerCase()}), ${c?`fixed in ${c}${f}`:"no fix yet"}.`}a.s(["P",0,w,"p",0,function(a){if(!a||"vulnerable"!==a.status||!a.findings.length||!a.version)return null;let b=v(a.version,a.findings);if(!b)return null;let c=u[(0,k.N)(a.findings)],d=[...new Set(a.findings.map(a=>a.id))],e=[...new Set(a.findings.flatMap(a=>a.cve?[a.cve]:[]))];return{from:a.version,to:b,upgrades:[{package:"next",to:b,vulnIds:d,cves:e,severity:c},{package:"eslint-config-next",to:b,vulnIds:[],cves:[],severity:c,companionOf:"next"}],installed:new Map(t.map(b=>[b,a.version]))}},"F",0,function(a){let b=a.find(a=>"next"===a.package&&!a.companionOf);return!b||a.some(a=>"eslint-config-next"===a.package)?a:[...a,{package:"eslint-config-next",to:b.to,vulnIds:[],cves:[],severity:b.severity,companionOf:"next"}]}],876808);let x=a=>Math.round(a).toLocaleString("en-US"),y=(a,b)=>Math.floor((a.getTime()-b.getTime())/864e5),z=(a,b)=>`${a} ${b}${1===a?"":"s"}`,A=a=>{try{let b=new URL(a);return`${b.host}${b.pathname}`}catch{return a}},B=a=>{try{return new URL(a).host}catch{return a}},C=a=>{try{return new URL(a).pathname}catch{return"/"}},D="Down · ",E=(a,b,c)=>({rule:a,subject:b,status:"unknown",resourceId:null,accountId:null,title:b,message:"",provider:null,sampleAt:null,...c}),F=a=>"firestore"===a.provider?"firebase":"d1"===a.provider?"cloudflare":a.provider,G=new Set(["turso","upstash","d1"]),H={MonitorDown:(a,b)=>a.monitors.map(a=>{let c=E("MonitorDown",a.id,{resourceId:a.appId,title:`${a.appName} ${"heartbeat"===a.kind?a.url:C(a.url)}`,provider:"vercel",sampleAt:a.lastCheckedAt}),d=b??3;if("heartbeat"===a.kind){let b;return{...c,status:"err"===a.state?"firing":"ok"===a.state?"ok":"unknown",message:`${a.appName} \xb7 ${a.url}: ${b=a.lastError,b?.startsWith(D)?b.slice(D.length):"no ping in time"}.`}}return a.movedTo?{...c,status:"ok",message:`${B(a.url)} moved to ${a.movedTo}; MonitorDomainMoved takes over.`}:a.failStreak>=d?{...c,status:"firing",message:(0,h.H)(a)?`${A(a.url)} failed its check (${(0,h.H)(a)}) on ${d} consecutive checks.`:`${A(a.url)} returned ${a.lastStatus?`HTTP ${a.lastStatus}`:"no answer"} on ${d} consecutive checks.`}:{...c,status:0===a.failStreak&&a.lastCheckedAt?"ok":"unknown",message:`${A(a.url)} answers again.`}}),MonitorDomainMoved:a=>a.monitors.filter(a=>"http"===a.kind).map(a=>{let b=E("MonitorDomainMoved",a.id,{resourceId:a.appId,title:`${a.appName} ${C(a.url)}`,provider:"vercel"});return a.movedTo?{...b,status:"firing",message:`${B(a.url)} is no longer a domain of ${a.appName}; production is on ${a.movedTo}.`}:{...b,status:"ok",message:`The monitor checks ${B(a.url)}, a domain of ${a.appName}.`}}),CollectorStale:(a,b)=>{let c=a.lastMinuteRunAt;return[E("CollectorStale","collector",{status:!c||a.now.getTime()-c.getTime()>(b??5)*6e4?"firing":"ok",title:"collector",message:c?`The last minute run finished ${x((a.now.getTime()-c.getTime())/6e4)} min ago.`:"The collector hasn't finished a run yet."})]},HighLatency:(a,b)=>a.monitors.filter(a=>"http"===a.kind).map(a=>{let c=E("HighLatency",a.id,{resourceId:a.appId,title:`${a.appName} ${C(a.url)}`,provider:"vercel",sampleAt:a.lastCheckedAt});if(a.checksLast10<5||null===a.p95Last10)return c;let d=b??1500;return{...c,status:a.p95Last10>d?"firing":"ok",message:`p95 ${x(a.p95Last10)} ms over the last 10 minutes (limit ${x(d)} ms).`}}),DeploymentFailed:a=>a.apps.map(a=>{let b=E("DeploymentFailed",a.id,{resourceId:a.id,title:a.name,provider:"vercel"}),c=a.latestProduction;return c?"error"===c.state?{...b,status:"firing",message:`Production deployment ${c.sha?c.sha.slice(0,7):"(no commit)"} failed.`}:{...b,status:"building"===c.state?"unknown":"ok"}:{...b,status:"ok"}}),DatabasePaused:a=>a.dbs&&a.dbs.filter(a=>"supabase"===a.provider).map(a=>E("DatabasePaused",a.id,{resourceId:a.id,title:a.name,provider:"supabase",status:"unknown"===a.state?"unknown":"paused"===a.state?"firing":"ok",message:`Supabase project ${a.name} is paused.`})),CertExpiringSoon:(a,b)=>a.domains&&a.domains.map(c=>{let d=E("CertExpiringSoon",c.id,{resourceId:c.id,title:c.name,provider:"cloudflare"});if(!c.tlsNotAfter)return d;let e=y(c.tlsNotAfter,a.now);return{...d,status:e<(b??14)?"firing":"ok",message:`The TLS certificate of ${c.name} expires in ${z(e,"day")}.`}}),DomainExpiringSoon:(a,b)=>a.domains&&a.domains.map(c=>{let d=E("DomainExpiringSoon",c.id,{resourceId:c.id,title:c.name,provider:"cloudflare"});if(!c.expiresAt)return d;let e=y(c.expiresAt,a.now);return{...d,status:e<(b??30)?"firing":"ok",message:`${c.name} expires in ${z(e,"day")}.`}}),StorageAlmostFull:(a,b)=>a.dbs&&a.dbs.filter(a=>"firestore"!==a.provider).map(a=>{let c=E("StorageAlmostFull",a.id,{resourceId:a.id,title:a.name,provider:F(a)});if(null===a.sizeBytes||!a.sizeLimitBytes)return c;let d=a.sizeBytes/a.sizeLimitBytes*100;return{...c,status:d>(b??80)?"firing":"ok",message:`${a.name} uses ${x(a.sizeBytes/1e6)} MB of ${x(a.sizeLimitBytes/1e6)} MB (${x(d)}%).`}}),NeonComputeHigh:(a,b)=>a.dbs&&a.dbs.filter(a=>"neon"===a.provider).map(a=>{let c=E("NeonComputeHigh",a.id,{resourceId:a.id,title:a.name,provider:"neon"});return null===a.cuHours?c:{...c,status:a.cuHours>(b??80)?"firing":"ok",message:`${a.name} used ${x(a.cuHours)} of ${x(a.cuLimit??100)} CU-hours this month.`}}),FirestoreQuotaHigh:(a,b)=>a.dbs&&a.dbs.filter(a=>"firestore"===a.provider).map(a=>{let c=E("FirestoreQuotaHigh",a.id,{resourceId:a.id,title:a.name,provider:"firebase"});if(a.quotaExhausted)return{...c,status:"firing",message:`${a.name} hit a Firestore quota (RESOURCE_EXHAUSTED).`};if(null===a.readsToday||!a.readsLimit)return!1===a.quotaExhausted?{...c,status:"ok"}:c;let d=a.readsToday/a.readsLimit*100;return{...c,status:d>(b??80)?"firing":"ok",message:`${a.name} read ${x(a.readsToday)} of ${x(a.readsLimit)} documents today (${x(d)}%).`}}),AutoPauseRisk:(a,b)=>a.dbs&&a.dbs.filter(a=>"supabase"===a.provider).map(c=>{let d=E("AutoPauseRisk",c.id,{resourceId:c.id,title:c.name,provider:"supabase"});if("paused"===c.state)return{...d,status:"ok"};if(!c.lastApiAt)return d;let e=Math.floor((a.now.getTime()-c.lastApiAt.getTime())/864e5);return{...d,status:e>=(b??4)?"firing":"ok",message:`No API traffic for ${z(e,"day")}. Supabase pauses free projects after about 7 days.`}}),DnsProxiedToVercel:a=>a.dns&&a.dns.map(a=>E("DnsProxiedToVercel",a.id,{resourceId:a.resourceId,title:a.name,provider:"cloudflare",status:a.proxied&&a.pointsToVercel?"firing":"ok",message:`${a.name} points to Vercel through the Cloudflare proxy. Vercel recommends DNS only.`})),DbQuotaHigh:(a,b)=>a.dbs&&a.dbs.filter(a=>G.has(a.provider)).map(a=>{let c=E("DbQuotaHigh",a.id,{resourceId:a.id,title:a.name,provider:F(a)});return null==a.quotaPct?c:{...c,status:a.quotaPct>(b??80)?"firing":"ok",message:`${a.name}: ${a.quotaLabel??"usage"} at ${x(a.quotaPct)}% of the free plan.`}}),ComputeHigh:(a,b)=>a.compute?a.compute.map(c=>{let d=E("ComputeHigh",c.id,{resourceId:c.id,title:c.name,provider:"supabase",sampleAt:c.latest?new Date(c.latest.at):null}),e=(0,i.B)(c.latest,(0,i.V)(b),a.now);return null===e?d:{...d,status:e.length?"firing":"ok",message:e.length?`${c.name}: ${e.join(", ")}.`:`${c.name} compute is back under the limits.`}}):null,CredentialExpiring:(a,b)=>a.accounts.map(c=>{let d=E("CredentialExpiring",c.id,{accountId:c.id,title:`${c.provider} \xb7 ${c.label}`,provider:c.provider});if("drive"===c.provider&&"error"===c.status&&c.lastError?.includes("invalid_grant"))return{...d,status:"firing",message:"Google Drive access was removed (invalid_grant). Reconnect it."};if(!c.expiresAt)return{...d,status:"ok"};let e=y(c.expiresAt,a.now);return{...d,status:e<(b??14)?"firing":"ok",message:e<0?`The ${c.provider} credential ${c.label} has expired.`:`The ${c.provider} credential ${c.label} expires in ${z(e,"day")}.`}}),VulnerableDependency:a=>a.deps?a.deps.flatMap(b=>{let c=a.apps.find(a=>a.id===b.appId);if(!c)return[];let d=E("VulnerableDependency",b.appId,{resourceId:b.appId,title:c.name,provider:"github"});if(b.error)return[d];let e=(0,j.g)(b.vulns);return e?[{...d,status:"firing",message:(0,j.L)(b.vulns),..."critical"===e?{severity:"critical"}:{}}]:[{...d,status:"ok",message:`${c.name} has no moderate, high or critical dependency advisories.`}]}):null,FrameworkVulnerable:a=>a.frameworks?a.frameworks.flatMap(b=>{let c=a.apps.find(a=>a.id===b.appId);if(!c)return[];let d=E("FrameworkVulnerable",b.appId,{resourceId:b.appId,title:c.name});return"ok"===b.status?[{...d,status:"ok",message:`${c.name} runs Next.js ${b.version??"(unknown version)"} with no known advisories.`}]:"vulnerable"===b.status&&b.findings.length?[{...d,status:"firing",message:w(b.version,b.findings),..."CRITICAL"===(0,k.N)(b.findings)?{severity:"critical"}:{}}]:[d]}):null},I=["MonitorDown","HighLatency"],J=["telegram","discord"],K=a=>a.channels.some(a=>J.includes(a));function L(a,b){return b.collectorStale&&"CollectorStale"!==a.rule?"CollectorStale":a.resourceId&&I.includes(a.rule)?b.mutedApps.get(a.resourceId)??null:null}let M=(a,b)=>"critical"===b&&"warning"===a?"critical":a,N=(a,b)=>a.silencedUntilResolved||null!==a.silencedUntil&&a.silencedUntil.getTime()>b.getTime(),O=(a,b)=>`${a}|${b}`;var P=a.i(519051),Q=a.i(160147),R=a.i(71575),S=a.i(639271),T=a.i(656298),U=a.i(688275),V=a.i(893893),W=a.i(672319),X=a.i(188546),Y=a.i(233711);async function Z(){let[a]=await (0,e.f)().select({at:f.collectorRuns.finishedAt}).from(f.collectorRuns).where((0,b.b)((0,b.E)(f.collectorRuns.finishedAt),(0,b.y)(f.collectorRuns.trigger,["cron_job_org","qstash","manual"]))).orderBy((0,c.A)(f.collectorRuns.finishedAt)).limit(1);return a?.at??null}async function $(){let[a]=await (0,e.f)().select({at:f.collectorRuns.finishedAt}).from(f.collectorRuns).where((0,b.b)((0,b.E)(f.collectorRuns.finishedAt),(0,b.y)(f.collectorRuns.trigger,["cron_job_org","manual"]))).orderBy((0,c.A)(f.collectorRuns.finishedAt)).limit(1);return a?.at??null}a.s(["D",0,Z,"d",0,$],569057);var _=a.i(367247),aa=a.i(436357),ab=a.i(358179),ac=a.i(492665),ad=a.i(683439),ae=a.i(852539),af=a.i(33135),ag=a.i(533957);let ah="OpsConsole-Deps/1.0 (+https://watchbell.west-solutions.web.id)";async function ai(a,b,c,d){let e=d.deadline-Date.now();if(e<500)return{ok:!1,error:"No time left for OSV.dev"};let f=AbortSignal.timeout(e);return ak(a,{method:"POST",headers:{"content-type":"application/json","user-agent":ah},body:JSON.stringify(b),signal:f},c,f,d)}async function aj(a,b,c){let d=c.deadline-Date.now();if(d<500)return{ok:!1,error:"No time left for OSV.dev"};let e=AbortSignal.timeout(Math.min(d,8e3));return ak(a,{method:"GET",headers:{"user-agent":ah},signal:e},b,e,c)}async function ak(a,b,c,d,e){let f;try{f=await (e.fetch??fetch)(a,{...b,redirect:"error",cache:"no-store"})}catch(a){return{ok:!1,error:(0,ag.t)(a)?"OSV.dev didn't answer in time":"Couldn't reach OSV.dev"}}if(!f.ok)return await f.body?.cancel().catch(()=>void 0),{ok:!1,error:`OSV.dev answered HTTP ${f.status}`};try{let{bytes:a,truncated:b}=await (0,af.z)(f,c,(0,af.X)(d));if(b)return{ok:!1,error:"OSV.dev sent too large an answer"};return{ok:!0,body:JSON.parse(new TextDecoder().decode(a))}}catch(a){return{ok:!1,error:(0,ag.t)(a)?"OSV.dev didn't answer in time":"OSV.dev sent an answer we couldn't read"}}}async function al(a,b){let c=[];for(let d of(0,ae.f)(a)){let a=await ai(ae.n,d,4194304,b);if(!a.ok)return a;let e=(0,ae.j)(a.body,d.queries.length);if(!e)return{ok:!1,error:"OSV.dev sent an answer we couldn't read"};c.push(...e)}return{ok:!0,ids:c}}async function am(a,b){let c=[...new Set(a)].filter(ae.G);if(c.length>300)return{ok:!1,error:`Too many advisories to read in one scan (${c.length})`};let d=new Map,e=null;for(let a=0;a<c.length&&!e;a+=8)await Promise.all(c.slice(a,a+8).map(async a=>{let c=await aj(`${ae.W}${encodeURIComponent(a)}`,1048576,b),f=c.ok?(0,ae.O)(c.body):null;f?d.set(a,f):e??=c.ok?"OSV.dev sent an advisory we couldn't read":c.error}));return e?{ok:!1,error:e}:{ok:!0,map:d}}var an=a.i(521050),ao=a.i(689963),ap=a.i(26972),aq=a.i(427221),ar=a.i(811365),as=a.i(760417);let at=ao.z.array(ap.z.object({name:aq.z.string(),type:aq.z.string(),sha:aq.z.string(),size:ar.z.number().optional()}));async function au(a,b,c,d={},e=null){if(!(0,as.M)(b)||!(0,as.c)(c))return{ok:!1,kind:"format",error:"That isn't a repository name or ref."};if(null!==e&&(0,an.Q)(e)!==e)return{ok:!1,kind:"format",error:"That isn't a folder in a repository."};let f=e?e.split("/").map(encodeURIComponent).join("/"):"",g=await (0,as.j)(`/repos/${(0,as.f)(b)}/contents/${f}?ref=${encodeURIComponent(c)}`,a,d);if(!g.ok)return g;let h=at.safeParse(g.data);return h.success?{ok:!0,data:h.data.filter(a=>"file"===a.type&&/^[0-9a-f]{40}$/.test(a.sha)).map(a=>({name:a.name,sha:a.sha,size:a.size??0}))}:{ok:!1,kind:"format",error:"GitHub answered the file list in a format the console doesn't recognise."}}async function av(a,b,c,d={}){if(!(0,as.M)(b)||!(0,as.c)(c))return{ok:!1,kind:"format",error:"That isn't a repository name or branch."};let e=await (0,as.j)(`/repos/${(0,as.f)(b)}/git/ref/heads/${c.split("/").map(encodeURIComponent).join("/")}`,a,d);return e.ok?{ok:!0,data:!0}:"missing"===e.kind?{ok:!0,data:!1}:e}function aw(a,b,c,d,e,f={}){return(0,as.V)(a,b,c,d,e,f)}async function ax(a,b,c={}){if(!(0,as.M)(b))return{ok:!1,kind:"format",error:"That isn't a repository name."};let d=await (0,as.j)(`/repos/${(0,as.f)(b)}/dependabot/alerts?state=open&ecosystem=npm&per_page=100`,a,c);if(!d.ok)return"scope"===d.kind||"missing"===d.kind?{ok:!0,data:{denied:!0}}:d;let e=(0,j.E)(d.data);return e?{ok:!0,data:{alerts:e}}:{ok:!1,kind:"format",error:"GitHub answered the Dependabot alerts in a format the console doesn't recognise."}}function ay(a,b){return"string"==typeof a&&a!==b&&(0,as.c)(a)?a:null}async function az(){let[a]=await (0,e.f)().select().from(f.accounts).where((0,b.u)(f.accounts.provider,"github")).orderBy((0,c.M)(f.accounts.createdAt)).limit(1);if(!a)return{error:"GitHub isn't connected."};let d=(0,ab.V)({ciphertext:a.credentialCiphertext,iv:a.credentialIv},(0,ac.f)().OPS_ENCRYPTION_KEY);return d?{token:d,accountId:a.id}:{error:"Can't read the stored GitHub credential. Replace it on Connections."}}async function aA(){let[a]=await (0,e.f)().select({value:f.settings.value}).from(f.settings).where((0,b.u)(f.settings.key,"deps.scanAll")).limit(1);return a?.value===!0}a.s(["f",0,ay],751263);let aB=a=>({dir:(0,an.Q)((a??{}).rootDirectory),unsupported:(0,an.l)((a??{}).rootDirectoryUnsupported),branch:ay((a??{}).productionBranch,null)});async function aC(a){let c=[...new Set(a.filter(ad.f))],d=new Map;if(!c.length)return d;let g=await (0,e.f)().select({repoId:f.appRepos.repoId,name:f.resources.name,monitored:f.resources.monitored,meta:f.resources.meta}).from(f.appRepos).innerJoin(f.resources,(0,b.u)(f.resources.id,f.appRepos.appId)).where((0,b.b)((0,b.y)(f.appRepos.repoId,c),(0,b.M)(f.resources.goneAt))).limit(1e3);for(let a of(g.sort((a,b)=>Number(!!b.monitored)-Number(!!a.monitored)||(a.name<b.name?-1:+(a.name>b.name))),g))d.has(a.repoId)||d.set(a.repoId,aB(a.meta));return d}async function aD(){let a={id:f.githubRepos.id,fullName:f.githubRepos.fullName,defaultBranch:f.githubRepos.defaultBranch,scannedAt:f.dependencyScans.scannedAt},c=(0,b.b)((0,b.M)(f.githubRepos.goneAt),(0,b.u)(f.githubRepos.archived,!1)),d=await aA()?await (0,e.f)().select(a).from(f.githubRepos).leftJoin(f.dependencyScans,(0,b.u)(f.dependencyScans.repoId,f.githubRepos.id)).where(c).limit(500):await (0,e.f)().selectDistinct(a).from(f.appRepos).innerJoin(f.githubRepos,(0,b.u)(f.githubRepos.id,f.appRepos.repoId)).leftJoin(f.dependencyScans,(0,b.u)(f.dependencyScans.repoId,f.githubRepos.id)).where(c).limit(500),g=d.length?await aC(d.map(a=>a.id)):new Map;return(0,j.M)(d.map(a=>({...a,rootDir:g.get(a.id)?.dir??null,rootDirUnsupported:g.get(a.id)?.unsupported??null,prodBranch:g.get(a.id)?.branch??null})))}let aE=(a,b)=>a.length>b?`${a.slice(0,b-1)}…`:a;async function aF(a,b){let c=new Date;await (0,e.f)().insert(f.dependencyScans).values({repoId:a,...b,updatedAt:c}).onConflictDoUpdate({target:f.dependencyScans.repoId,set:{...b,updatedAt:c}})}async function aG(a){return(0,e.f)().select({id:f.dependencyVulns.id,package:f.dependencyVulns.package,installedVersion:f.dependencyVulns.installedVersion,vulnId:f.dependencyVulns.vulnId,severity:f.dependencyVulns.severity,fixedVersion:f.dependencyVulns.fixedVersion,summary:f.dependencyVulns.summary,aliases:f.dependencyVulns.aliases,dev:f.dependencyVulns.dev,direct:f.dependencyVulns.direct,source:f.dependencyVulns.source}).from(f.dependencyVulns).where((0,b.b)((0,b.u)(f.dependencyVulns.repoId,a),(0,b.M)(f.dependencyVulns.resolvedAt))).limit(2e3)}function aH(a,b){for(let c of m.a){let d=a.find(a=>a.name===c.path);if(d)return{path:(0,an.H)(b,c.path),kind:c.kind,sha:d.sha}}return null}async function aI(a,c,d,g={}){let h=()=>({...g,timeoutMs:Math.max(1e3,Math.min(d-Date.now(),1e4))}),i=async a=>(await aF(c.id,{error:aE(a,300),scannedAt:new Date}).catch(()=>void 0),{status:"failed",error:a}),k=c.defaultBranch??"HEAD",l=ay(c.prodBranch,c.defaultBranch),n=!1;if(l){let b=await av(a,c.fullName,l,h());if(!b.ok)return i(b.error);b.data&&(k=l,n=!0)}let o=n?`Scanned ${l}, the branch Vercel deploys to production.`:null,p=(0,an.Q)(c.rootDir),q=p?null:(0,an.l)(c.rootDirUnsupported),t=q?`The Vercel Root Directory "${q}" couldn't be used (Watchbell reads plain folder names, at most 4 deep); scanned the repository root.`:null,u=await au(a,c.fullName,k,h(),p);if(!u.ok)return i(p&&"missing"===u.kind?`The folder ${(0,an.x)(p)} isn't in ${c.fullName} on ${k}.`:u.error);let v=aH(u.data,p),w=u.data.find(a=>"package.json"===a.name)??null,x=!1,y=null;if(p&&w&&!v){let b=await au(a,c.fullName,k,h());if(!b.ok)return i(b.error);x=null!==(v=aH(y=b.data,null))}let z=v?v.sha:w?`pkg:${w.sha}`:null,A=z&&p?`${p}:${z}${x&&w?`+${w.sha}`:""}`:z&&q?`odd:${z}`:z,B=A&&n?`br:${l}:${A}`:A,[C]=await (0,e.f)().select().from(f.dependencyScans).where((0,b.u)(f.dependencyScans.repoId,c.id)).limit(1),D=new Date;if(!(0,j.U)(C??null,B,D,g.force))return{status:"unchanged"};if(!B){let a=await aG(c.id);return a.length&&await (0,e.f)().update(f.dependencyVulns).set({resolvedAt:D}).where((0,b.y)(f.dependencyVulns.id,a.map(a=>a.id))),await aF(c.id,{lockfilePath:null,lockfileSha:null,packageCount:0,scannedAt:D,queriedAt:D,error:null,note:aE([o,t,`No package.json or lockfile ${p?"in":"at"} ${(0,an.x)(p)}.`].filter(Boolean).join(" "),300)}),{status:"scanned",vulns:0,packages:0,note:"no package.json"}}let E=(0,an.H)(p,"package.json"),F=w?await aw(a,c.fullName,E,k,as.$,h()):null;if(F&&!F.ok)return i(F.error);let G=F?.ok&&F.data?(0,m.b)(F.data):null,H=null,I="package-json",J=x&&v?`Scanned ${(0,an.x)(p)} with the repository root's ${v.path} (workspaces).`:null;if(v){if(2e3>d-Date.now())return i("Time budget used before the lockfile was read; the next run tries again.");let b=await aw(a,c.fullName,v.path,k,0xf00000,{...g,timeoutMs:Math.max(1e3,Math.min(d-Date.now(),2e4))});if(!b.ok)return i(b.error);let e=!0;if(x&&p&&b.data&&!(0,an.p)(v.kind,b.data,p)){let b=y?.some(a=>"package.json"===a.name)?await aw(a,c.fullName,"package.json",k,as.$,h()):null;if(b&&!b.ok)return i(b.error);e=(0,an.F)(b?.data??null,p)}e?(H=b.data?(0,m.D)(v.kind,b.data):null,I=v.kind,H||(J=[J,`${v.path} couldn't be read; the versions come from package.json ranges (approximate).`].filter(Boolean).join(" "))):(J=`The repository root's ${v.path} isn't a workspace that includes ${p}, so the versions come from ${E} ranges (approximate).`,v=null)}if(H){let a=r(H,G);H=a.deps,a.stale.length&&(J=[J,s(a.stale)].filter(Boolean).join(" "))}else H=G?(0,m.e)(G):[],I="package-json",J??=v?null:"No lockfile: the versions come from package.json ranges (approximate).";let K=await aG(c.id),L=[];if(H.length){let a=await al(H,{fetch:g.fetch,deadline:d});if(!a.ok)return i(a.error);let b=(0,j.A)(K,!0===g.force),c=await am((0,j.z)(H,a.ids,b),{fetch:g.fetch,deadline:d});if(!c.ok)return i(c.error);L=(0,ae.i)(H,a.ids,c.map,b)}if(d-Date.now()>1500){let b=await ax(a,c.fullName,h());b.ok&&"alerts"in b.data?L=(0,j.R)(L,b.data.alerts,H):b.ok&&(J=[J,"Dependabot alerts aren't readable with this token (optional: Dependabot alerts: Read)."].filter(Boolean).join(" "))}let M=(0,j.h)(K,L,(0,m.K)(G));J=[o,t,J].filter(Boolean).join(" ")||null;let N=new Date;return await (0,e.f)().transaction(async a=>{for(let d of(M.insert.length&&await a.insert(f.dependencyVulns).values(M.insert.map(a=>({repoId:c.id,package:a.package,installedVersion:a.installedVersion,vulnId:a.vulnId,aliases:a.aliases,severity:a.severity,fixedVersion:a.fixedVersion,summary:a.summary,direct:a.direct,dev:a.dev,source:a.source,firstSeenAt:N,lastSeenAt:N}))).onConflictDoNothing(),M.update))await a.update(f.dependencyVulns).set({severity:d.severity,fixedVersion:d.fixedVersion,summary:d.summary,aliases:d.aliases,dev:d.dev,direct:d.direct,lastSeenAt:N}).where((0,b.u)(f.dependencyVulns.id,d.id));M.resolve.length&&await a.update(f.dependencyVulns).set({resolvedAt:N}).where((0,b.b)((0,b.y)(f.dependencyVulns.id,M.resolve),(0,b.M)(f.dependencyVulns.resolvedAt))),await a.insert(f.dependencyScans).values({repoId:c.id,lockfilePath:v?.path??(w?E:null),lockfileSha:B,packageCount:H.length,scannedAt:N,queriedAt:N,error:null,note:J?aE(J,300):null,updatedAt:N}).onConflictDoUpdate({target:f.dependencyScans.repoId,set:{lockfilePath:v?.path??(w?E:null),lockfileSha:B,packageCount:H.length,scannedAt:N,queriedAt:N,error:null,note:J?aE(J,300):null,updatedAt:N}})}),{status:"scanned",vulns:M.insert.length+M.update.length,packages:H.length,note:"package-json"===I?J:null}}async function aJ(a,c={}){var d,g;let h,i,j,k,l=await az();if("error"in l)return{error:l.error};let{first:m,only:n,skip:o,...p}=c,q=(d=await aD(),h=(g={first:m,only:n,skip:o}).only?new Set(g.only):null,i=new Set(g.skip??[]),j=(h?d.filter(a=>h.has(a.id)):d).filter(a=>!i.has(a.id)),k=new Set(g.first??[]),[...j.filter(a=>k.has(a.id)),...j.filter(a=>!k.has(a.id))]),r={scanned:0,unchanged:0,failed:[],left:0,done:[],listed:q.map(a=>a.id)};for(let[b,c]of q.entries()){if(a-Date.now()<4e3){r.left=q.length-b;break}r.done.push(c.id);try{let b=await aI(l.token,c,a,p);"scanned"===b.status?r.scanned++:"unchanged"===b.status?r.unchanged++:r.failed.push(`${c.fullName}: ${b.error}`)}catch(a){r.failed.push(`${c.fullName}: ${a instanceof Error?a.name:"error"}`)}}return await (0,e.f)().delete(f.dependencyVulns).where((0,b.b)((0,b.E)(f.dependencyVulns.resolvedAt),(0,b.S)(f.dependencyVulns.resolvedAt,new Date(Date.now()-7776e6)))).catch(()=>void 0),r}let aK=async()=>(await (0,e.f)().select({id:f.accounts.id}).from(f.accounts).where((0,b.u)(f.accounts.provider,"github")).limit(1)).length>0;async function aL(a,c,d={}){let g,h,i,{marked:j,onlyMarked:k}=c;if(!await aK())return{problem:null,settled:[...j],done:[],complete:!0};let l=j.filter(ad.f),m=l.length?await (0,e.f)().select({appId:f.appRepos.appId,repoId:f.appRepos.repoId}).from(f.appRepos).where((0,b.y)(f.appRepos.appId,l)).limit(5*l.length):[],n=[...new Set(m.map(a=>a.repoId))],o=a=>m.filter(b=>b.appId===a).map(a=>a.repoId),p=j.filter(a=>!o(a).length);if(k&&!n.length)return{problem:null,settled:[...j],done:[],complete:!0};if(a-Date.now()<4e3)return{problem:null,settled:p,done:[],complete:!1};let q=(c.skip??[]).filter(a=>!n.includes(a)),r=await aJ(a,{...d,first:n,...k?{only:n}:{skip:q}});if("error"in r){let a;return{problem:(a=r.error,/didn't answer in time|no time left|time budget|rate limit/i.test(a))?null:r.error,settled:[...j],done:[],complete:!0}}let s=new Set([...r.done,...n.filter(a=>!r.listed.includes(a))]);return{problem:(g=r.failed.filter(a=>!/didn't answer in time|no time left|time budget|rate limit/i.test(a)),(h=r.failed.length-g.length+(r.left??0))&&console.info(`deps: ${h} repositor${1===h?"y":"ies"} wait for the next run`),i=g.slice(0,3),g.length>3&&i.push(`+${g.length-3} more`),i.length?i.join("; "):null),settled:j.filter(a=>o(a).every(a=>s.has(a))),done:r.done,complete:0===r.left}}async function aM(a){let d={repo:null,scan:null,vulns:[],writeConnected:!1};if(!(0,ad.f)(a))return d;let[g]=await (0,e.f)().select({id:f.githubRepos.id,fullName:f.githubRepos.fullName}).from(f.appRepos).innerJoin(f.githubRepos,(0,b.u)(f.githubRepos.id,f.appRepos.repoId)).where((0,b.u)(f.appRepos.appId,a)).limit(1);if(!g)return d;let[[h],i,[k]]=await Promise.all([(0,e.f)().select({scannedAt:f.dependencyScans.scannedAt,lockfilePath:f.dependencyScans.lockfilePath,packageCount:f.dependencyScans.packageCount,error:f.dependencyScans.error,note:f.dependencyScans.note}).from(f.dependencyScans).where((0,b.u)(f.dependencyScans.repoId,g.id)).limit(1),(0,e.f)().select({package:f.dependencyVulns.package,installedVersion:f.dependencyVulns.installedVersion,vulnId:f.dependencyVulns.vulnId,severity:f.dependencyVulns.severity,fixedVersion:f.dependencyVulns.fixedVersion,summary:f.dependencyVulns.summary,aliases:f.dependencyVulns.aliases,dev:f.dependencyVulns.dev,direct:f.dependencyVulns.direct,firstSeenAt:f.dependencyVulns.firstSeenAt}).from(f.dependencyVulns).where((0,b.b)((0,b.u)(f.dependencyVulns.repoId,g.id),(0,b.M)(f.dependencyVulns.resolvedAt))).limit(2e3),(0,e.f)().select({id:f.accounts.id}).from(f.accounts).where((0,b.u)(f.accounts.provider,"github_write")).limit(1)]);i.sort((a,b)=>(0,j.t)(a.severity)-(0,j.t)(b.severity)||(a.package<b.package?-1:+(a.package>b.package))||(a.vulnId<b.vulnId?-1:1));let l=await (0,e.f)().select({number:f.dependencyPrs.number,stage:f.dependencyPrs.stage,stageText:f.dependencyPrs.stageText,openedAt:f.dependencyPrs.openedAt}).from(f.dependencyPrs).where((0,b.b)((0,b.u)(f.dependencyPrs.repoId,g.id),(0,b.B)(f.dependencyPrs.openedAt,new Date(Date.now()-12096e5)))).orderBy((0,c.A)(f.dependencyPrs.openedAt)).limit(5).catch(()=>[]);return{repo:g,scan:h??null,vulns:i,writeConnected:!!k,prs:(l??[]).map(a=>({...a,fullName:g.fullName}))}}async function aN(a,c={}){if(!(0,ad.f)(a))return{ok:!1,error:"That app no longer exists."};let[g]=await (0,e.f)().select({app:f.resources.name,id:f.githubRepos.id,fullName:f.githubRepos.fullName,defaultBranch:f.githubRepos.defaultBranch,goneAt:f.githubRepos.goneAt,meta:f.resources.meta}).from(f.appRepos).innerJoin(f.githubRepos,(0,b.u)(f.githubRepos.id,f.appRepos.repoId)).innerJoin(f.resources,(0,b.u)(f.resources.id,f.appRepos.appId)).where((0,b.u)(f.appRepos.appId,a)).limit(1);if(!g)return{ok:!1,error:"Link a repository first."};if(g.goneAt)return{ok:!1,error:"That repository is no longer shared with the GitHub token."};let h=await az();if("error"in h)return{ok:!1,error:h.error};let i=aB(g.meta),j=await aI(h.token,{id:g.id,fullName:g.fullName,defaultBranch:g.defaultBranch,scannedAt:null,rootDir:i.dir,rootDirUnsupported:i.unsupported,prodBranch:i.branch},Date.now()+4e4,{...c,force:!0});if("failed"===j.status)return{ok:!1,error:`The scan failed: ${j.error}`};let[k]=await (0,e.f)().select({n:d.B`count(*)::int`}).from(f.dependencyVulns).where((0,b.b)((0,b.u)(f.dependencyVulns.repoId,g.id),(0,b.M)(f.dependencyVulns.resolvedAt))),l=k?.n??0;return{ok:!0,app:g.app,repo:g.fullName,vulns:l,message:l?`${l} known vulnerabilit${1===l?"y":"ies"} in ${j.packages??0} packages.`:`No known vulnerabilities in ${j.packages??0} packages.`}}async function aO(a){let c=a.filter(ad.f);if(!c.length)return[];let d=await (0,e.f)().select({appId:f.appRepos.appId,repoId:f.appRepos.repoId,error:f.dependencyScans.error}).from(f.appRepos).innerJoin(f.dependencyScans,(0,b.u)(f.dependencyScans.repoId,f.appRepos.repoId)).where((0,b.b)((0,b.y)(f.appRepos.appId,c),(0,b.E)(f.dependencyScans.scannedAt)));if(!d.length)return[];let g=await (0,e.f)().select({repoId:f.dependencyVulns.repoId,package:f.dependencyVulns.package,installedVersion:f.dependencyVulns.installedVersion,fixedVersion:f.dependencyVulns.fixedVersion,severity:f.dependencyVulns.severity,summary:f.dependencyVulns.summary,dev:f.dependencyVulns.dev,direct:f.dependencyVulns.direct}).from(f.dependencyVulns).where((0,b.b)((0,b.y)(f.dependencyVulns.repoId,[...new Set(d.map(a=>a.repoId))]),(0,b.M)(f.dependencyVulns.resolvedAt))).limit(1e4);return d.map(a=>({appId:a.appId,repoId:a.repoId,error:a.error,vulns:g.filter(b=>b.repoId===a.repoId).map(a=>({package:a.package,installedVersion:a.installedVersion,fixedVersion:a.fixedVersion,severity:a.severity,summary:a.summary,dev:a.dev,direct:a.direct}))}))}async function aP(a,c=new Set){let g=a.filter(ad.f),h=new Map;if(!g.length)return h;let i=await (0,e.f)().select({appId:f.appRepos.appId,repoId:f.appRepos.repoId}).from(f.appRepos).where((0,b.y)(f.appRepos.appId,g));if(!i.length)return h;let k=await (0,e.f)().select({repoId:f.dependencyVulns.repoId,package:f.dependencyVulns.package,installedVersion:f.dependencyVulns.installedVersion,fixedVersion:f.dependencyVulns.fixedVersion,vulnId:f.dependencyVulns.vulnId,aliases:f.dependencyVulns.aliases,severity:f.dependencyVulns.severity,direct:f.dependencyVulns.direct}).from(f.dependencyVulns).where((0,b.b)((0,b.y)(f.dependencyVulns.repoId,[...new Set(i.map(a=>a.repoId))]),(0,b.M)(f.dependencyVulns.resolvedAt),(0,b.u)(f.dependencyVulns.direct,!0),(0,b.E)(f.dependencyVulns.fixedVersion))).limit(2e3),l=k.some(a=>"next"===a.package)?new Set((await (0,e.f)().selectDistinct({appId:f.dependencyPrs.appId}).from(f.dependencyPrs).where((0,b.b)((0,b.y)(f.dependencyPrs.appId,g),(0,b.$)(f.dependencyPrs.stage,["merged","closed"]),(0,b.B)(f.dependencyPrs.openedAt,new Date(Date.now()-12096e5)),d.B`${f.dependencyPrs.packages} @> '["next"]'::jsonb`)).limit(g.length)).map(a=>a.appId)):new Set;for(let a of i){let b=c.has(a.appId)||l.has(a.appId);(0,j.B)(k.filter(c=>c.repoId===a.repoId&&!(b&&"next"===c.package))).length&&h.set(a.appId,a.repoId)}return h}a.s(["o",0,12e3,"d",0,4e3,"j",0,aM,"O",0,aL,"C",0,aP,"a",0,aO,"h",0,aN],930270);var aQ=a.i(242605);async function aR(){return(0,e.f)().select({appId:f.links.fromResourceId,dbId:f.links.toResourceId}).from(f.links).where((0,b.u)(f.links.kind,"uses_db")).limit(500)}async function aS(a){let g=(0,b.b)((0,b.u)(f.resources.monitored,!0),(0,b.M)(f.resources.goneAt)),[h,i,j,k,l]=await Promise.all([$(),Z(),(0,e.f)().select({m:f.monitors,appName:f.resources.name,appMeta:f.resources.meta}).from(f.monitors).innerJoin(f.resources,(0,b.u)(f.resources.id,f.monitors.resourceId)).where((0,b.b)(g,(0,b.u)(f.monitors.paused,!1),(0,b.u)(f.monitors.ownerPaused,!1))),(0,e.f)().select({id:f.resources.id,name:f.resources.name,meta:f.resources.meta}).from(f.resources).where((0,b.b)(g,(0,b.u)(f.resources.kind,"app"))),(0,e.f)().select({id:f.accounts.id,provider:f.accounts.provider,label:f.accounts.label,expiresAt:f.accounts.expiresAt,status:f.accounts.status,lastError:f.accounts.lastError}).from(f.accounts)]),m=j.map(a=>a.m.id),n=m.length?await (0,e.f)().select({id:f.checks.monitorId,n:d.B`count(*)::int`,p95:d.B`percentile_cont(0.95) within group (order by ${f.checks.latencyMs})::float8`}).from(f.checks).where((0,b.b)((0,b.y)(f.checks.monitorId,m),(0,b.B)(f.checks.at,new Date(a.getTime()-6e5)),(0,b.u)(f.checks.inMaintenance,!1))).groupBy(f.checks.monitorId):[],o=k.map(a=>a.id),p=o.length?await (0,e.f)().selectDistinctOn([f.deployments.resourceId],{appId:f.deployments.resourceId,state:f.deployments.state,sha:f.deployments.commitSha,createdAt:f.deployments.createdAtProvider}).from(f.deployments).where((0,b.b)((0,b.y)(f.deployments.resourceId,o),(0,b.u)(f.deployments.target,"production"))).orderBy(f.deployments.resourceId,(0,c.A)(f.deployments.createdAtProvider)):[],q=await (0,e.f)().select({id:f.resources.id,name:f.resources.name,kind:f.resources.kind,state:f.snapshots.state,data:f.snapshots.data}).from(f.resources).innerJoin(f.snapshots,(0,b.u)(f.snapshots.resourceId,f.resources.id)).where((0,b.b)(g,(0,b.y)(f.resources.kind,["supabase_project","neon_project","firestore","turso_database","upstash_redis","d1_database","zone","domain"]))),r=a=>q.filter(b=>b.kind===a),s=q.filter(a=>["supabase_project","neon_project","firestore","turso_database","upstash_redis","d1_database"].includes(a.kind)),t=r("zone"),u=r("domain"),v=await aR(),w=await (0,_.Y)().catch(()=>null),x=o.length?await aO(o).catch(()=>null):null,y=o.length?await (0,aQ.F)(o).catch(()=>null):null;return{now:a,lastMinuteRunAt:h,lastAnyRunAt:i,monitors:j.map(({m:a,appName:b,appMeta:c})=>{let d=n.find(b=>b.id===a.id),e="heartbeat"===a.kind;return{id:a.id,appId:a.resourceId,appName:b,url:e?a.name??"heartbeat":a.url,kind:e?"heartbeat":"http",state:a.state,failStreak:a.failStreak,lastStatus:a.lastStatus,lastError:a.lastError,lastCheckedAt:a.lastCheckedAt,p95Last10:d?.p95??null,checksLast10:d?.n??0,movedTo:e?null:(0,aa.u)(a.url,{name:b,meta:c},k.filter(b=>b.id!==a.resourceId),{lastError:a.lastError})?.to??null}}),apps:k.map(a=>{let b=p.find(b=>b.appId===a.id);return{id:a.id,name:a.name,latestProduction:b?{state:b.state,sha:b.sha,createdAt:b.createdAt}:null}}),accounts:l,dbs:s.length?s.map(b=>(function(a,b){let c={id:a.id,name:a.name,state:a.state,sizeBytes:null,sizeLimitBytes:null,lastApiAt:null,cuHours:null,cuLimit:null,readsToday:null,readsLimit:null,quotaExhausted:null};if("supabase_project"===a.kind){let b=(0,V.k)(V.B,a.data),d=(0,Y.Z)(b.lastTrafficAt),e=(0,Y.Z)(b.trafficAt),f=d??(e&&!b.trafficError?new Date(e.getTime()-6048e5):null);return{...c,provider:"supabase",sizeBytes:b.sizeBytes??null,sizeLimitBytes:W.R,lastApiAt:f}}if("neon_project"===a.kind){let b=(0,V.k)(V.s,a.data),d=(b.branches??[]).map(a=>a.logicalSize).filter(a=>"number"==typeof a);return{...c,provider:"neon",cuHours:null==b.computeSeconds?null:b.computeSeconds/3600,cuLimit:U.a.cuHours,sizeBytes:d.length?d.reduce((a,b)=>a+b,0):null,sizeLimitBytes:U.a.storageBytes}}if("firestore"===a.kind){let d=(0,V.k)(V.w,a.data),e=(0,Y.Z)(d.opsAt),f=null!=d.reads&&e&&e.getTime()>=(0,T.a)(b).getTime()?d.reads:null,g=null!=d.latencyMs||null!=d.pingError;return{...c,provider:"firestore",readsToday:f,readsLimit:T.T.reads,quotaExhausted:g?"RESOURCE_EXHAUSTED"===d.pingReason:null}}if("turso_database"===a.kind){let d=(0,V.k)(V.N,a.data),e=(0,S.u)((0,S.G)(d,b));return{...c,provider:"turso",sizeBytes:d.orgStorageBytes??null,sizeLimitBytes:S.g.storageBytes,quotaPct:e?.pct??null,quotaLabel:e?`${e.label} ${e.text}`:null}}if("upstash_redis"===a.kind){let d=(0,V.k)(V.e,a.data),e=(0,S.u)((0,S.$)(d,b));return{...c,provider:"upstash",sizeBytes:d.storageBytes??null,sizeLimitBytes:S.W.storageBytes,quotaPct:e?.pct??null,quotaLabel:e?`${e.label} ${e.text}`:null}}if("d1_database"===a.kind){let d=(0,V.k)(V.x,a.data),e=(0,S.u)((0,S.I)(d,b));return{...c,provider:"d1",sizeBytes:d.sizeBytes??null,sizeLimitBytes:S.M.dbBytes,quotaPct:e?.pct??null,quotaLabel:e?`${e.label} ${e.text}`:null}}return null})(b,a)).filter(a=>null!==a):null,domains:t.length||u.length?[...t.map(a=>({id:a.id,name:a.name,tlsNotAfter:null,expiresAt:(0,Y.Z)((0,X.q)(a.data).rdap?.expiresAt)})),...u.map(a=>({id:a.id,name:a.name,tlsNotAfter:(0,Y.Z)((0,X.q)(a.data).tls?.notAfter),expiresAt:null}))]:null,dns:function(a,b){let c=a.filter(a=>Array.isArray(a.data.records));if(!c.length)return null;let d=a.map(a=>a.name),e=[];for(let a of c){let c=b.filter(b=>(0,Y.J)(b.name,d)===a.name.toLowerCase().replace(/\.$/,"")),f=[...new Set(c.flatMap(a=>(0,X.q)(a.data).vercel?.recommendedIps??[]))];for(let b of(0,X.q)(a.data).records){if(!(0,Y.l)(b,f))continue;let d=b.name.toLowerCase().replace(/\.$/,""),g=c.find(a=>a.name.toLowerCase().replace(/\.$/,"")===d);e.push({id:`${a.id}:${b.id}`,resourceId:g?.id??a.id,name:b.name,proxied:b.proxied,pointsToVercel:!0})}}return e}(t,u),links:v,compute:w,deps:x&&x.length?x:null,frameworks:y&&y.length?y:null}}var aT=a.i(714530),aU=a.i(396667);let aV={vercel:"Vercel",supabase:"Supabase",neon:"Neon",cloudflare:"Cloudflare",firebase:"Firebase",gcp:"Google Cloud"};async function aW(){return(await (0,e.f)().select().from(f.alertRules)).filter(a=>(0,g.h)(a.key)).map(a=>({key:a.key,severity:a.severity,threshold:a.threshold,enabled:a.enabled,channels:a.channels}))}async function aX(a,c={}){let[d,h,i,j,k,l]=await Promise.all([aS(a),aW(),(0,e.f)().select().from(f.alerts).where((0,b.M)(f.alerts.resolvedAt)),(0,e.f)().select({provider:f.providerStatus.provider,state:f.providerStatus.state}).from(f.providerStatus),(0,aT.w)(),(0,aU.I)()]),m=new Map(d.accounts.map(a=>[a.id,a.provider])),n=i.filter(a=>!(0,Q.O)(l,a.ruleKey,a.accountId?m.get(a.accountId):null)),o=function(a,b,c){let d=[],e=new Set;for(let f of b){if(!f.enabled||c&&!c.includes(f.key)||!g._[f.key])continue;let b=H[f.key](a,f.threshold);b&&(e.add(f.key),d.push(...b))}return{observations:d,evaluated:e}}(d,h,c.only),p=o.evaluated,q=o.observations.filter(a=>!(0,Q.O)(l,a.rule,a.provider)),r=h.find(a=>"CollectorStale"===a.key),s=void 0===d.lastAnyRunAt?d.lastMinuteRunAt:d.lastAnyRunAt,t=!!r?.enabled&&(!s||a.getTime()-s.getTime()>(r.threshold??5)*6e4),u=new Map((d.dbs??[]).filter(a=>"paused"===a.state).map(a=>[a.id,a.name])),v=new Map(d.links.filter(a=>u.has(a.dbId)).map(a=>[a.appId,`DatabasePaused \xb7 ${u.get(a.dbId)}`])),w=new Map(j.filter(a=>"warn"===a.state||"err"===a.state).map(a=>["gcp"===a.provider?"firebase":a.provider,aV[a.provider]??a.provider])),x=(0,P.u)(k,d.monitors.map(a=>({id:a.id,appId:a.appId})),a,d.apps.map(a=>a.id)),y=function(a,b,c,d,e){let f={open:[],touch:[],resolve:[]},h=new Map(d.map(a=>[a.key,a])),i=new Map(b.map(a=>[O(a.rule,a.subject),a])),j=new Set(a.map(a=>O(a.ruleKey,a.subject))),k=a=>f.resolve.push({id:a.id,pending:a.notifiedOpen?"resolve":null});for(let b of a){let a=h.get(b.ruleKey),d=i.get(O(b.ruleKey,b.subject));if(!a||!a.enabled){f.resolve.push({id:b.id,pending:null});continue}if(!c.has(b.ruleKey))continue;if(!d){f.resolve.push({id:b.id,pending:null});continue}if("unknown"===d.status)continue;let j=d.provider?e.incidents.get(d.provider)??null:null;if("firing"===d.status){let c=L(d,e),g=b.notifiedOpen&&null!==b.lastNotifiedAt&&e.now.getTime()-b.lastNotifiedAt.getTime()>=216e5,h={id:b.id,okStreak:0,lastSampleAt:d.sampleAt??b.lastSampleAt,lastSeenAt:e.now,message:d.message,causedBy:c,providerIncident:j},i=!b.notifiedOpen&&(!b.pendingSince||e.now.getTime()-b.pendingSince.getTime()>=216e5);(g||i)&&!N(b,e.now)&&!c&&null===b.pending&&K(a)&&(h.pending=g?"repeat":"open"),f.touch.push(h);continue}if(!g._[b.ruleKey].sampled||null===d.sampleAt){k(b);continue}if(!(null===b.lastSampleAt||d.sampleAt.getTime()>b.lastSampleAt.getTime()))continue;let l=b.okStreak+1;l>=2?k(b):f.touch.push({id:b.id,okStreak:l,lastSampleAt:d.sampleAt})}for(let a of b){if("firing"!==a.status||j.has(O(a.rule,a.subject))||e.maintenance.has(a.subject)||a.resourceId&&e.maintenance.has(a.resourceId))continue;let b=h.get(a.rule);if(!b)continue;let c=L(a,e);f.open.push({ruleKey:a.rule,subject:a.subject,resourceId:a.resourceId,accountId:a.accountId,severity:M(b.severity,a.severity),title:a.title,message:a.message,startedAt:e.now,lastSeenAt:e.now,lastSampleAt:a.sampleAt,causedBy:c,providerIncident:a.provider?e.incidents.get(a.provider)??null:null,pending:c||!K(b)?null:"open"})}return f}(n.filter(a=>(0,g.h)(a.ruleKey)).map(a=>({id:a.id,ruleKey:a.ruleKey,subject:a.subject,okStreak:a.okStreak,lastSampleAt:a.lastSampleAt,silencedUntil:a.silencedUntil,silencedUntilResolved:a.silencedUntilResolved,notifiedOpen:a.notifiedOpen,lastNotifiedAt:a.lastNotifiedAt,pending:a.pending,pendingSince:a.pendingSince})),q,p,h,{now:a,collectorStale:t,mutedApps:v,incidents:w,maintenance:x});return y.open.length||y.touch.length||y.resolve.length?(await (0,e.f)().transaction(async c=>{for(let b of y.open)await c.insert(f.alerts).values({...b,pendingSince:b.pending?a:null}).onConflictDoNothing();for(let d of y.touch){let{id:e,pending:g,...h}=d;await c.update(f.alerts).set({...h,...g?{pending:g,pendingSince:a}:{}}).where((0,b.b)((0,b.u)(f.alerts.id,e),(0,b.M)(f.alerts.resolvedAt)))}for(let d of y.resolve)await c.update(f.alerts).set({resolvedAt:a,pending:d.pending,pendingSince:d.pending?a:null}).where((0,b.b)((0,b.u)(f.alerts.id,d.id),(0,b.M)(f.alerts.resolvedAt)))}),{opened:y.open.length,resolved:y.resolve.length}):{opened:0,resolved:0}}async function aY(){let[a,c]=await Promise.all([(0,aU.I)(),(0,e.f)().select({ruleKey:f.alerts.ruleKey,provider:f.accounts.provider,n:d.B`count(*)::int`}).from(f.alerts).leftJoin(f.accounts,(0,b.u)(f.accounts.id,f.alerts.accountId)).where((0,b.b)((0,b.M)(f.alerts.resolvedAt),(0,b.y)(f.alerts.severity,["critical","warning"]))).groupBy(f.alerts.ruleKey,f.accounts.provider)]);return c.reduce((b,c)=>b+((0,Q.O)(a,c.ruleKey,c.provider)?0:Number(c.n)),0)}let aZ=d.B`case ${f.alerts.severity} when 'critical' then 0 when 'warning' then 1 else 2 end`;async function a$(a=new Set){return(await (0,e.f)().select({a:f.alerts,name:f.resources.name,kind:f.resources.kind}).from(f.alerts).leftJoin(f.resources,(0,b.u)(f.resources.id,f.alerts.resourceId)).where((0,b.b)((0,b.M)(f.alerts.resolvedAt),(0,aU.s)(a))).orderBy(aZ,(0,c.A)(f.alerts.startedAt)).limit(200)).map(({a,name:b,kind:c})=>({...a,resourceName:b??null,resourceKind:c??null}))}async function a_(){return a$(await (0,aU.I)())}async function a0(a){return(await (0,e.f)().select({id:f.alerts.id,ruleKey:f.alerts.ruleKey,severity:f.alerts.severity,title:f.alerts.title,resourceId:f.alerts.resourceId,startedAt:f.alerts.startedAt,resolvedAt:f.alerts.resolvedAt}).from(f.alerts).where((0,b.b)((0,b.E)(f.alerts.resolvedAt),(0,b.B)(f.alerts.resolvedAt,new Date(a.getTime()-6048e5)))).orderBy((0,c.A)(f.alerts.resolvedAt)).limit(50)).flatMap(a=>a.resolvedAt?[{...a,resolvedAt:a.resolvedAt}]:[])}async function a1(){let[a,c,h]=await Promise.all([aW(),(0,e.f)().select({key:f.alerts.ruleKey,n:d.B`count(*)::int`}).from(f.alerts).where((0,b.M)(f.alerts.resolvedAt)).groupBy(f.alerts.ruleKey),(0,e.f)().select({kind:f.resources.kind}).from(f.resources).innerJoin(f.snapshots,(0,b.u)(f.snapshots.resourceId,f.resources.id)).where((0,b.b)((0,b.u)(f.resources.monitored,!0),(0,b.M)(f.resources.goneAt))).groupBy(f.resources.kind)]),i=new Set(h.map(a=>a.kind)),j={databases:["supabase_project","neon_project","firestore"].some(a=>i.has(a)),domains:i.has("domain")||i.has("zone"),dns:i.has("zone")};return g.u.flatMap(b=>{let d=a.find(a=>a.key===b);if(!d)return[];let e=g._[b].needs;return[{rule:d,firing:c.find(a=>a.key===b)?.n??0,hasData:null===e||j[e]}]})}async function a2(a,c,d,g){let h="off"===c?{silencedUntil:null,silencedUntilResolved:!1,silencedBy:null}:{...(0,R.A)(c,g),silencedBy:d},[i]=await (0,e.f)().update(f.alerts).set(h).where((0,b.b)((0,b.u)(f.alerts.id,a),(0,b.M)(f.alerts.resolvedAt))).returning({ruleKey:f.alerts.ruleKey,title:f.alerts.title,resourceId:f.alerts.resourceId});return i??null}async function a3(a,c){return(await (0,e.f)().update(f.alertRules).set({...c,updatedAt:new Date}).where((0,b.u)(f.alertRules.key,a)).returning({key:f.alertRules.key})).length>0}a.s(["$",0,aX,"q",0,a$,"I",0,a0,"i",0,a_,"X",0,aY,"y",0,a1,"z",0,a3,"N",0,a2],455317)},425238,a=>{var b=a.i(609007),c=a.i(556987);let d=/(?<![\p{L}\p{N}_])(?:w[bp]_[A-Za-z0-9]{6,}|hb_[0-9a-f]{6,}|sk-[A-Za-z0-9_-]{6,}|gsk_[A-Za-z0-9]{6,}|AIza[0-9A-Za-z_-]{8,}|AQ\.[A-Za-z0-9_-]{8,})/gu,e=/\b[a-z][a-z0-9+.-]*:\/\/[^\s/?#"'<>)]*(\/[^\s?#"'<>)]*)?(?:[?#][^\s"'<>)]*)?/gi,f="[\\p{L}\\p{N}_-]",g=a=>a.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),h=new WeakMap,i=[RegExp(d.source,"u"),/\b(?:Bearer|Basic)\s+[A-Za-z0-9._~+/=-]{12,}/i,/\beyJ[\w-]{8,}\.[\w-]{8,}\.[\w-]{8,}/,/\b[a-z][a-z0-9+.-]*:\/\/[^\s/@:]+:[^\s/@]+@/i,/\b[A-Fa-f0-9]{40,}\b/,/\b(?=[A-Za-z0-9_-]*\d)(?=[A-Za-z0-9_-]*[A-Za-z])[A-Za-z0-9_-]{40,}\b/];a.s(["G",0,function(a){return i.some(b=>b.test(a))},"F",0,function(a,i){let j=(0,b.h)(a);j=(0,c.J)(j,i);let k=function(a){if(h.has(a))return h.get(a);let b=new Map((a.account??[]).filter(a=>a.name.trim().length>=2).map(a=>[a.name.toLowerCase(),a.alias])),c=[...b.keys()].sort((a,b)=>b.length-a.length),d=c.length?{re:RegExp(`(?<!${f})(?:${c.map(g).join("|")})(?!${f})`,"giu"),alias:b}:null;return h.set(a,d),d}(i);return k&&(j=j.replace(k.re,a=>k.alias.get(a.toLowerCase())??a)),(j=(j=(j=j.replace(d,"[hidden]")).replace(/hb_\[hidden\]/g,"[hidden]")).replace(e,(a,b)=>b??"[url]")).replace(/@/g,"(at)")}])}]})();
|
|
1
|
+
(()=>{"use strict";module.exports=[455317,912283,876808,569057,930270,a=>{var b=a.i(93321),c=a.i(530385),d=a.i(351674),e=a.i(548734),f=a.i(837137),g=a.i(927262),h=a.i(201516),i=a.i(273133),j=a.i(120213),k=a.i(84979),l=a.i(84877),m=a.i(679662);let n=/^v?(\d+)\.(\d+)\.(\d+)(?:-[0-9A-Za-z.-]+)?(?:\+[0-9A-Za-z.-]+)?$/;function o(a,b){let c=n.exec(a.trim()),d=n.exec(b.trim());return!!c&&!!d&&c[1]===d[1]&&("0"!==c[1]||c[2]===d[2])&&(0,l.f)(b,a)>=0}let p=/^Watch(?:bell|post): update (?:\S+ (?:to|ke) \S+|\d+ vulnerable packages) in ((?:[A-Za-z0-9._-]+\/){0,3}[A-Za-z0-9._-]+) \(/,q=a=>p.exec(a)?.[1]??null;function r(a,b){if(!b)return{deps:a,stale:[]};let c=[...Object.entries(b.dependencies).map(([a,b])=>[a,b,!1]),...Object.entries(b.optionalDependencies).map(([a,b])=>[a,b,!1]),...Object.entries(b.devDependencies).map(([a,b])=>[a,b,!0])],d=[...a],e=[];for(let[a,b,f]of c){let c=(0,m.Y)(b);if(!c||!(0,m.C)(c))continue;let g=d.filter(b=>b.name===a);!g.length||g.some(a=>(0,l.f)(a.version,c)>=0)||((d=d.filter(b=>b.name!==a)).push({name:a,version:c,dev:g.every(a=>a.dev)&&f}),e.push(a))}return{deps:d,stale:e}}let s=a=>`Lockfile tertinggal — jalankan npm install (${a.slice(0,5).join(", ")}${a.length>5?`, +${a.length-5}`:""}).`;a.s(["M",0,s,"a",0,function(a,b,c){if(!a.length)return{ok:!1,why:"nothing"};let d=a.filter(a=>c.includes(a.severity)&&!("moderate"===a.severity&&a.dev));if(!d.length)return{ok:!1,why:"severity"};for(let a of d){let c=b.get(a.package);if(!c||!o(c,a.to))return{ok:!1,why:"major"}}return{ok:!0,upgrades:d}},"m",0,r,"D",0,function(a){let b=new Map;for(let c of a){if(!c.direct)continue;let a=b.get(c.package);(!a||0>(0,l.f)(c.installedVersion,a))&&b.set(c.package,c.installedVersion)}return b},"U",0,function(a,b,c=null){for(let d of b){if(q(d.title)!==c)continue;let b=function(a){if(a.packages?.length)return a.packages;let b=/^Watch(?:bell|post): update (\S+) (?:to|ke) /.exec(a.title);return b?[b[1]]:"all"}(d);if("all"===b||a.some(a=>b.includes(a)))return d}return null},"J",0,o],912283);let t=["next","eslint-config-next"],u={CRITICAL:"critical",HIGH:"high",MODERATE:"moderate",LOW:"low",UNKNOWN:"unknown"};function v(a,b){if(!a||!(0,m.C)(a))return null;let c=b.map(a=>a.fixed).filter(b=>!!b&&(0,m.C)(b)&&(0,l.f)(b,a)>0);if(!c.length)return null;let d=c.filter(b=>o(a,b));return(d.length?d:c).reduce((a,b)=>(0,l.f)(b,a)>0?b:a)}function w(a,b){let c=v(a,b),d=c?b.map(a=>a.fixed).filter(a=>!!a&&(0,m.C)(a)&&(0,l.f)(a,c)>0):[],e=d.reduce((a,b)=>null===a||(0,l.f)(b,a)>0?b:a,null),f=e?` (${1===d.length?"one fix needs":"some fixes need"} Next.js ${e.split(".")[0]})`:"";return`Next.js ${a??"(unknown version)"} has ${(0,k.q)(b.length)} (${(0,k.N)(b).toLowerCase()}), ${c?`fixed in ${c}${f}`:"no fix yet"}.`}a.s(["P",0,w,"p",0,function(a){if(!a||"vulnerable"!==a.status||!a.findings.length||!a.version)return null;let b=v(a.version,a.findings);if(!b)return null;let c=u[(0,k.N)(a.findings)],d=[...new Set(a.findings.map(a=>a.id))],e=[...new Set(a.findings.flatMap(a=>a.cve?[a.cve]:[]))];return{from:a.version,to:b,upgrades:[{package:"next",to:b,vulnIds:d,cves:e,severity:c},{package:"eslint-config-next",to:b,vulnIds:[],cves:[],severity:c,companionOf:"next"}],installed:new Map(t.map(b=>[b,a.version]))}},"F",0,function(a){let b=a.find(a=>"next"===a.package&&!a.companionOf);return!b||a.some(a=>"eslint-config-next"===a.package)?a:[...a,{package:"eslint-config-next",to:b.to,vulnIds:[],cves:[],severity:b.severity,companionOf:"next"}]}],876808);let x=a=>Math.round(a).toLocaleString("en-US"),y=(a,b)=>Math.floor((a.getTime()-b.getTime())/864e5),z=(a,b)=>`${a} ${b}${1===a?"":"s"}`,A=a=>{try{let b=new URL(a);return`${b.host}${b.pathname}`}catch{return a}},B=a=>{try{return new URL(a).host}catch{return a}},C=a=>{try{return new URL(a).pathname}catch{return"/"}},D="Down · ",E=(a,b,c)=>({rule:a,subject:b,status:"unknown",resourceId:null,accountId:null,title:b,message:"",provider:null,sampleAt:null,...c}),F=a=>"firestore"===a.provider?"firebase":"d1"===a.provider?"cloudflare":a.provider,G=new Set(["turso","upstash","d1"]),H={MonitorDown:(a,b)=>a.monitors.map(a=>{let c=E("MonitorDown",a.id,{resourceId:a.appId,title:`${a.appName} ${"heartbeat"===a.kind?a.url:C(a.url)}`,provider:"vercel",sampleAt:a.lastCheckedAt}),d=b??3;if("heartbeat"===a.kind){let b;return{...c,status:"err"===a.state?"firing":"ok"===a.state?"ok":"unknown",message:`${a.appName} \xb7 ${a.url}: ${b=a.lastError,b?.startsWith(D)?b.slice(D.length):"no ping in time"}.`}}return a.movedTo?{...c,status:"ok",message:`${B(a.url)} moved to ${a.movedTo}; MonitorDomainMoved takes over.`}:a.failStreak>=d?{...c,status:"firing",message:(0,h.H)(a)?`${A(a.url)} failed its check (${(0,h.H)(a)}) on ${d} consecutive checks.`:`${A(a.url)} returned ${a.lastStatus?`HTTP ${a.lastStatus}`:"no answer"} on ${d} consecutive checks.`}:{...c,status:0===a.failStreak&&a.lastCheckedAt?"ok":"unknown",message:`${A(a.url)} answers again.`}}),MonitorDomainMoved:a=>a.monitors.filter(a=>"http"===a.kind).map(a=>{let b=E("MonitorDomainMoved",a.id,{resourceId:a.appId,title:`${a.appName} ${C(a.url)}`,provider:"vercel"});return a.movedTo?{...b,status:"firing",message:`${B(a.url)} is no longer a domain of ${a.appName}; production is on ${a.movedTo}.`}:{...b,status:"ok",message:`The monitor checks ${B(a.url)}, a domain of ${a.appName}.`}}),CollectorStale:(a,b)=>{let c=a.lastMinuteRunAt;return[E("CollectorStale","collector",{status:!c||a.now.getTime()-c.getTime()>(b??5)*6e4?"firing":"ok",title:"collector",message:c?`The last minute run finished ${x((a.now.getTime()-c.getTime())/6e4)} min ago.`:"The collector hasn't finished a run yet."})]},HighLatency:(a,b)=>a.monitors.filter(a=>"http"===a.kind).map(a=>{let c=E("HighLatency",a.id,{resourceId:a.appId,title:`${a.appName} ${C(a.url)}`,provider:"vercel",sampleAt:a.lastCheckedAt});if(a.checksLast10<5||null===a.p95Last10)return c;let d=b??1500;return{...c,status:a.p95Last10>d?"firing":"ok",message:`p95 ${x(a.p95Last10)} ms over the last 10 minutes (limit ${x(d)} ms).`}}),DeploymentFailed:a=>a.apps.map(a=>{let b=E("DeploymentFailed",a.id,{resourceId:a.id,title:a.name,provider:"vercel"}),c=a.latestProduction;return c?"error"===c.state?{...b,status:"firing",message:`Production deployment ${c.sha?c.sha.slice(0,7):"(no commit)"} failed.`}:{...b,status:"building"===c.state?"unknown":"ok"}:{...b,status:"ok"}}),DatabasePaused:a=>a.dbs&&a.dbs.filter(a=>"supabase"===a.provider).map(a=>E("DatabasePaused",a.id,{resourceId:a.id,title:a.name,provider:"supabase",status:"unknown"===a.state?"unknown":"paused"===a.state?"firing":"ok",message:`Supabase project ${a.name} is paused.`})),CertExpiringSoon:(a,b)=>a.domains&&a.domains.map(c=>{let d=E("CertExpiringSoon",c.id,{resourceId:c.id,title:c.name,provider:"cloudflare"});if(!c.tlsNotAfter)return d;let e=y(c.tlsNotAfter,a.now);return{...d,status:e<(b??14)?"firing":"ok",message:`The TLS certificate of ${c.name} expires in ${z(e,"day")}.`}}),DomainExpiringSoon:(a,b)=>a.domains&&a.domains.map(c=>{let d=E("DomainExpiringSoon",c.id,{resourceId:c.id,title:c.name,provider:"cloudflare"});if(!c.expiresAt)return d;let e=y(c.expiresAt,a.now);return{...d,status:e<(b??30)?"firing":"ok",message:`${c.name} expires in ${z(e,"day")}.`}}),StorageAlmostFull:(a,b)=>a.dbs&&a.dbs.filter(a=>"firestore"!==a.provider).map(a=>{let c=E("StorageAlmostFull",a.id,{resourceId:a.id,title:a.name,provider:F(a)});if(null===a.sizeBytes||!a.sizeLimitBytes)return c;let d=a.sizeBytes/a.sizeLimitBytes*100;return{...c,status:d>(b??80)?"firing":"ok",message:`${a.name} uses ${x(a.sizeBytes/1e6)} MB of ${x(a.sizeLimitBytes/1e6)} MB (${x(d)}%).`}}),NeonComputeHigh:(a,b)=>a.dbs&&a.dbs.filter(a=>"neon"===a.provider).map(a=>{let c=E("NeonComputeHigh",a.id,{resourceId:a.id,title:a.name,provider:"neon"});return null===a.cuHours?c:{...c,status:a.cuHours>(b??80)?"firing":"ok",message:`${a.name} used ${x(a.cuHours)} of ${x(a.cuLimit??100)} CU-hours this month.`}}),FirestoreQuotaHigh:(a,b)=>a.dbs&&a.dbs.filter(a=>"firestore"===a.provider).map(a=>{let c=E("FirestoreQuotaHigh",a.id,{resourceId:a.id,title:a.name,provider:"firebase"});if(a.quotaExhausted)return{...c,status:"firing",message:`${a.name} hit a Firestore quota (RESOURCE_EXHAUSTED).`};if(null===a.readsToday||!a.readsLimit)return!1===a.quotaExhausted?{...c,status:"ok"}:c;let d=a.readsToday/a.readsLimit*100;return{...c,status:d>(b??80)?"firing":"ok",message:`${a.name} read ${x(a.readsToday)} of ${x(a.readsLimit)} documents today (${x(d)}%).`}}),AutoPauseRisk:(a,b)=>a.dbs&&a.dbs.filter(a=>"supabase"===a.provider).map(c=>{let d=E("AutoPauseRisk",c.id,{resourceId:c.id,title:c.name,provider:"supabase"});if("paused"===c.state)return{...d,status:"ok"};if(!c.lastApiAt)return d;let e=Math.floor((a.now.getTime()-c.lastApiAt.getTime())/864e5);return{...d,status:e>=(b??4)?"firing":"ok",message:`No API traffic for ${z(e,"day")}. Supabase pauses free projects after about 7 days.`}}),DnsProxiedToVercel:a=>a.dns&&a.dns.map(a=>E("DnsProxiedToVercel",a.id,{resourceId:a.resourceId,title:a.name,provider:"cloudflare",status:a.proxied&&a.pointsToVercel?"firing":"ok",message:`${a.name} points to Vercel through the Cloudflare proxy. Vercel recommends DNS only.`})),DbQuotaHigh:(a,b)=>a.dbs&&a.dbs.filter(a=>G.has(a.provider)).map(a=>{let c=E("DbQuotaHigh",a.id,{resourceId:a.id,title:a.name,provider:F(a)});return null==a.quotaPct?c:{...c,status:a.quotaPct>(b??80)?"firing":"ok",message:`${a.name}: ${a.quotaLabel??"usage"} at ${x(a.quotaPct)}% of the free plan.`}}),ComputeHigh:(a,b)=>a.compute?a.compute.map(c=>{let d=E("ComputeHigh",c.id,{resourceId:c.id,title:c.name,provider:"supabase",sampleAt:c.latest?new Date(c.latest.at):null}),e=(0,i.B)(c.latest,(0,i.V)(b),a.now);return null===e?d:{...d,status:e.length?"firing":"ok",message:e.length?`${c.name}: ${e.join(", ")}.`:`${c.name} compute is back under the limits.`}}):null,CredentialExpiring:(a,b)=>a.accounts.map(c=>{let d=E("CredentialExpiring",c.id,{accountId:c.id,title:`${c.provider} \xb7 ${c.label}`,provider:c.provider});if("drive"===c.provider&&"error"===c.status&&c.lastError?.includes("invalid_grant"))return{...d,status:"firing",message:"Google Drive access was removed (invalid_grant). Reconnect it."};if(!c.expiresAt)return{...d,status:"ok"};let e=y(c.expiresAt,a.now);return{...d,status:e<(b??14)?"firing":"ok",message:e<0?`The ${c.provider} credential ${c.label} has expired.`:`The ${c.provider} credential ${c.label} expires in ${z(e,"day")}.`}}),VulnerableDependency:a=>a.deps?a.deps.flatMap(b=>{let c=a.apps.find(a=>a.id===b.appId);if(!c)return[];let d=E("VulnerableDependency",b.appId,{resourceId:b.appId,title:c.name,provider:"github"});if(b.error)return[d];let e=(0,j.g)(b.vulns);return e?[{...d,status:"firing",message:(0,j.L)(b.vulns),..."critical"===e?{severity:"critical"}:{}}]:[{...d,status:"ok",message:`${c.name} has no moderate, high or critical dependency advisories.`}]}):null,FrameworkVulnerable:a=>a.frameworks?a.frameworks.flatMap(b=>{let c=a.apps.find(a=>a.id===b.appId);if(!c)return[];let d=E("FrameworkVulnerable",b.appId,{resourceId:b.appId,title:c.name});return"ok"===b.status?[{...d,status:"ok",message:`${c.name} runs Next.js ${b.version??"(unknown version)"} with no known advisories.`}]:"vulnerable"===b.status&&b.findings.length?[{...d,status:"firing",message:w(b.version,b.findings),..."CRITICAL"===(0,k.N)(b.findings)?{severity:"critical"}:{}}]:[d]}):null},I=["MonitorDown","HighLatency"],J=["telegram","discord","webhook","smtp"],K=a=>a.channels.some(a=>J.includes(a));function L(a,b){return b.collectorStale&&"CollectorStale"!==a.rule?"CollectorStale":a.resourceId&&I.includes(a.rule)?b.mutedApps.get(a.resourceId)??null:null}let M=(a,b)=>"critical"===b&&"warning"===a?"critical":a,N=(a,b)=>a.silencedUntilResolved||null!==a.silencedUntil&&a.silencedUntil.getTime()>b.getTime(),O=(a,b)=>`${a}|${b}`;var P=a.i(519051),Q=a.i(160147),R=a.i(71575),S=a.i(639271),T=a.i(656298),U=a.i(688275),V=a.i(893893),W=a.i(672319),X=a.i(188546),Y=a.i(233711);async function Z(){let[a]=await (0,e.f)().select({at:f.collectorRuns.finishedAt}).from(f.collectorRuns).where((0,b.b)((0,b.E)(f.collectorRuns.finishedAt),(0,b.y)(f.collectorRuns.trigger,["cron_job_org","qstash","manual"]))).orderBy((0,c.A)(f.collectorRuns.finishedAt)).limit(1);return a?.at??null}async function $(){let[a]=await (0,e.f)().select({at:f.collectorRuns.finishedAt}).from(f.collectorRuns).where((0,b.b)((0,b.E)(f.collectorRuns.finishedAt),(0,b.y)(f.collectorRuns.trigger,["cron_job_org","manual"]))).orderBy((0,c.A)(f.collectorRuns.finishedAt)).limit(1);return a?.at??null}a.s(["D",0,Z,"d",0,$],569057);var _=a.i(367247),aa=a.i(436357),ab=a.i(358179),ac=a.i(492665),ad=a.i(683439),ae=a.i(852539),af=a.i(33135),ag=a.i(533957);let ah="OpsConsole-Deps/1.0 (+https://watchbell.west-solutions.web.id)";async function ai(a,b,c,d){let e=d.deadline-Date.now();if(e<500)return{ok:!1,error:"No time left for OSV.dev"};let f=AbortSignal.timeout(e);return ak(a,{method:"POST",headers:{"content-type":"application/json","user-agent":ah},body:JSON.stringify(b),signal:f},c,f,d)}async function aj(a,b,c){let d=c.deadline-Date.now();if(d<500)return{ok:!1,error:"No time left for OSV.dev"};let e=AbortSignal.timeout(Math.min(d,8e3));return ak(a,{method:"GET",headers:{"user-agent":ah},signal:e},b,e,c)}async function ak(a,b,c,d,e){let f;try{f=await (e.fetch??fetch)(a,{...b,redirect:"error",cache:"no-store"})}catch(a){return{ok:!1,error:(0,ag.t)(a)?"OSV.dev didn't answer in time":"Couldn't reach OSV.dev"}}if(!f.ok)return await f.body?.cancel().catch(()=>void 0),{ok:!1,error:`OSV.dev answered HTTP ${f.status}`};try{let{bytes:a,truncated:b}=await (0,af.z)(f,c,(0,af.X)(d));if(b)return{ok:!1,error:"OSV.dev sent too large an answer"};return{ok:!0,body:JSON.parse(new TextDecoder().decode(a))}}catch(a){return{ok:!1,error:(0,ag.t)(a)?"OSV.dev didn't answer in time":"OSV.dev sent an answer we couldn't read"}}}async function al(a,b){let c=[];for(let d of(0,ae.f)(a)){let a=await ai(ae.n,d,4194304,b);if(!a.ok)return a;let e=(0,ae.j)(a.body,d.queries.length);if(!e)return{ok:!1,error:"OSV.dev sent an answer we couldn't read"};c.push(...e)}return{ok:!0,ids:c}}async function am(a,b){let c=[...new Set(a)].filter(ae.G);if(c.length>300)return{ok:!1,error:`Too many advisories to read in one scan (${c.length})`};let d=new Map,e=null;for(let a=0;a<c.length&&!e;a+=8)await Promise.all(c.slice(a,a+8).map(async a=>{let c=await aj(`${ae.W}${encodeURIComponent(a)}`,1048576,b),f=c.ok?(0,ae.O)(c.body):null;f?d.set(a,f):e??=c.ok?"OSV.dev sent an advisory we couldn't read":c.error}));return e?{ok:!1,error:e}:{ok:!0,map:d}}var an=a.i(521050),ao=a.i(689963),ap=a.i(26972),aq=a.i(427221),ar=a.i(811365),as=a.i(760417);let at=ao.z.array(ap.z.object({name:aq.z.string(),type:aq.z.string(),sha:aq.z.string(),size:ar.z.number().optional()}));async function au(a,b,c,d={},e=null){if(!(0,as.M)(b)||!(0,as.c)(c))return{ok:!1,kind:"format",error:"That isn't a repository name or ref."};if(null!==e&&(0,an.Q)(e)!==e)return{ok:!1,kind:"format",error:"That isn't a folder in a repository."};let f=e?e.split("/").map(encodeURIComponent).join("/"):"",g=await (0,as.j)(`/repos/${(0,as.f)(b)}/contents/${f}?ref=${encodeURIComponent(c)}`,a,d);if(!g.ok)return g;let h=at.safeParse(g.data);return h.success?{ok:!0,data:h.data.filter(a=>"file"===a.type&&/^[0-9a-f]{40}$/.test(a.sha)).map(a=>({name:a.name,sha:a.sha,size:a.size??0}))}:{ok:!1,kind:"format",error:"GitHub answered the file list in a format the console doesn't recognise."}}async function av(a,b,c,d={}){if(!(0,as.M)(b)||!(0,as.c)(c))return{ok:!1,kind:"format",error:"That isn't a repository name or branch."};let e=await (0,as.j)(`/repos/${(0,as.f)(b)}/git/ref/heads/${c.split("/").map(encodeURIComponent).join("/")}`,a,d);return e.ok?{ok:!0,data:!0}:"missing"===e.kind?{ok:!0,data:!1}:e}function aw(a,b,c,d,e,f={}){return(0,as.V)(a,b,c,d,e,f)}async function ax(a,b,c={}){if(!(0,as.M)(b))return{ok:!1,kind:"format",error:"That isn't a repository name."};let d=await (0,as.j)(`/repos/${(0,as.f)(b)}/dependabot/alerts?state=open&ecosystem=npm&per_page=100`,a,c);if(!d.ok)return"scope"===d.kind||"missing"===d.kind?{ok:!0,data:{denied:!0}}:d;let e=(0,j.E)(d.data);return e?{ok:!0,data:{alerts:e}}:{ok:!1,kind:"format",error:"GitHub answered the Dependabot alerts in a format the console doesn't recognise."}}var ay=a.i(751263);async function az(){let[a]=await (0,e.f)().select().from(f.accounts).where((0,b.u)(f.accounts.provider,"github")).orderBy((0,c.M)(f.accounts.createdAt)).limit(1);if(!a)return{error:"GitHub isn't connected."};let d=(0,ab.V)({ciphertext:a.credentialCiphertext,iv:a.credentialIv},(0,ac.f)().OPS_ENCRYPTION_KEY);return d?{token:d,accountId:a.id}:{error:"Can't read the stored GitHub credential. Replace it on Connections."}}async function aA(){let[a]=await (0,e.f)().select({value:f.settings.value}).from(f.settings).where((0,b.u)(f.settings.key,"deps.scanAll")).limit(1);return a?.value===!0}let aB=a=>{let b=(0,ay.w)(a);return{dir:(0,an.Q)((a??{}).rootDirectory),unsupported:(0,an.l)((a??{}).rootDirectoryUnsupported),branch:(0,ay.i)((0,ay.V)(a),null),...b?{fallback:b}:{}}};async function aC(a){let c=[...new Set(a.filter(ad.f))],d=new Map;if(!c.length)return d;let g=await (0,e.f)().select({repoId:f.appRepos.repoId,name:f.resources.name,monitored:f.resources.monitored,meta:f.resources.meta}).from(f.appRepos).innerJoin(f.resources,(0,b.u)(f.resources.id,f.appRepos.appId)).where((0,b.b)((0,b.y)(f.appRepos.repoId,c),(0,b.M)(f.resources.goneAt))).limit(1e3);for(let a of(g.sort((a,b)=>Number(!!b.monitored)-Number(!!a.monitored)||(a.name<b.name?-1:+(a.name>b.name))),g))d.has(a.repoId)||d.set(a.repoId,aB(a.meta));return d}async function aD(){let a={id:f.githubRepos.id,fullName:f.githubRepos.fullName,defaultBranch:f.githubRepos.defaultBranch,scannedAt:f.dependencyScans.scannedAt},c=(0,b.b)((0,b.M)(f.githubRepos.goneAt),(0,b.u)(f.githubRepos.archived,!1)),d=await aA()?await (0,e.f)().select(a).from(f.githubRepos).leftJoin(f.dependencyScans,(0,b.u)(f.dependencyScans.repoId,f.githubRepos.id)).where(c).limit(500):await (0,e.f)().selectDistinct(a).from(f.appRepos).innerJoin(f.githubRepos,(0,b.u)(f.githubRepos.id,f.appRepos.repoId)).leftJoin(f.dependencyScans,(0,b.u)(f.dependencyScans.repoId,f.githubRepos.id)).where(c).limit(500),g=d.length?await aC(d.map(a=>a.id)):new Map;return(0,j.M)(d.map(a=>{let b=g.get(a.id);return{...a,rootDir:b?.dir??null,rootDirUnsupported:b?.unsupported??null,prodBranch:b?.branch??null,...b?.fallback?{prodFallback:b.fallback}:{}}}))}let aE=(a,b)=>a.length>b?`${a.slice(0,b-1)}…`:a;async function aF(a,b){let c=new Date;await (0,e.f)().insert(f.dependencyScans).values({repoId:a,...b,updatedAt:c}).onConflictDoUpdate({target:f.dependencyScans.repoId,set:{...b,updatedAt:c}})}async function aG(a){return(0,e.f)().select({id:f.dependencyVulns.id,package:f.dependencyVulns.package,installedVersion:f.dependencyVulns.installedVersion,vulnId:f.dependencyVulns.vulnId,severity:f.dependencyVulns.severity,fixedVersion:f.dependencyVulns.fixedVersion,summary:f.dependencyVulns.summary,aliases:f.dependencyVulns.aliases,dev:f.dependencyVulns.dev,direct:f.dependencyVulns.direct,source:f.dependencyVulns.source}).from(f.dependencyVulns).where((0,b.b)((0,b.u)(f.dependencyVulns.repoId,a),(0,b.M)(f.dependencyVulns.resolvedAt))).limit(2e3)}function aH(a,b){for(let c of m.a){let d=a.find(a=>a.name===c.path);if(d)return{path:(0,an.H)(b,c.path),kind:c.kind,sha:d.sha}}return null}async function aI(a,c,d,g={}){let h=()=>({...g,timeoutMs:Math.max(1e3,Math.min(d-Date.now(),1e4))}),i=async a=>(await aF(c.id,{error:aE(a,300),scannedAt:new Date}).catch(()=>void 0),{status:"failed",error:a}),k=c.defaultBranch??"HEAD",l=null;for(let b of[c.prodBranch,c.prodFallback]){if(b&&b===c.defaultBranch)break;let d=(0,ay.i)(b,c.defaultBranch);if(!d)continue;let e=await av(a,c.fullName,d,h());if(!e.ok)return i(e.error);if(e.data){l=d;break}}let n=null!==l;l&&(k=l);let o=n?`Scanned ${l}, the branch production is built from.`:null,p=(0,an.Q)(c.rootDir),q=p?null:(0,an.l)(c.rootDirUnsupported),t=q?`The Vercel Root Directory "${q}" couldn't be used (Watchbell reads plain folder names, at most 4 deep); scanned the repository root.`:null,u=await au(a,c.fullName,k,h(),p);if(!u.ok)return i(p&&"missing"===u.kind?`The folder ${(0,an.x)(p)} isn't in ${c.fullName} on ${k}.`:u.error);let v=aH(u.data,p),w=u.data.find(a=>"package.json"===a.name)??null,x=!1,y=null;if(p&&w&&!v){let b=await au(a,c.fullName,k,h());if(!b.ok)return i(b.error);x=null!==(v=aH(y=b.data,null))}let z=v?v.sha:w?`pkg:${w.sha}`:null,A=z&&p?`${p}:${z}${x&&w?`+${w.sha}`:""}`:z&&q?`odd:${z}`:z,B=A&&n?`br:${l}:${A}`:A,[C]=await (0,e.f)().select().from(f.dependencyScans).where((0,b.u)(f.dependencyScans.repoId,c.id)).limit(1),D=new Date;if(!(0,j.U)(C??null,B,D,g.force))return{status:"unchanged"};if(!B){let a=await aG(c.id);return a.length&&await (0,e.f)().update(f.dependencyVulns).set({resolvedAt:D}).where((0,b.y)(f.dependencyVulns.id,a.map(a=>a.id))),await aF(c.id,{lockfilePath:null,lockfileSha:null,packageCount:0,scannedAt:D,queriedAt:D,error:null,note:aE([o,t,`No package.json or lockfile ${p?"in":"at"} ${(0,an.x)(p)}.`].filter(Boolean).join(" "),300)}),{status:"scanned",vulns:0,packages:0,note:"no package.json"}}let E=(0,an.H)(p,"package.json"),F=w?await aw(a,c.fullName,E,k,as.$,h()):null;if(F&&!F.ok)return i(F.error);let G=F?.ok&&F.data?(0,m.b)(F.data):null,H=null,I="package-json",J=x&&v?`Scanned ${(0,an.x)(p)} with the repository root's ${v.path} (workspaces).`:null;if(v){if(2e3>d-Date.now())return i("Time budget used before the lockfile was read; the next run tries again.");let b=await aw(a,c.fullName,v.path,k,0xf00000,{...g,timeoutMs:Math.max(1e3,Math.min(d-Date.now(),2e4))});if(!b.ok)return i(b.error);let e=!0;if(x&&p&&b.data&&!(0,an.p)(v.kind,b.data,p)){let b=y?.some(a=>"package.json"===a.name)?await aw(a,c.fullName,"package.json",k,as.$,h()):null;if(b&&!b.ok)return i(b.error);e=(0,an.F)(b?.data??null,p)}e?(H=b.data?(0,m.D)(v.kind,b.data):null,I=v.kind,H||(J=[J,`${v.path} couldn't be read; the versions come from package.json ranges (approximate).`].filter(Boolean).join(" "))):(J=`The repository root's ${v.path} isn't a workspace that includes ${p}, so the versions come from ${E} ranges (approximate).`,v=null)}if(H){let a=r(H,G);H=a.deps,a.stale.length&&(J=[J,s(a.stale)].filter(Boolean).join(" "))}else H=G?(0,m.e)(G):[],I="package-json",J??=v?null:"No lockfile: the versions come from package.json ranges (approximate).";let K=await aG(c.id),L=[];if(H.length){let a=await al(H,{fetch:g.fetch,deadline:d});if(!a.ok)return i(a.error);let b=(0,j.A)(K,!0===g.force),c=await am((0,j.z)(H,a.ids,b),{fetch:g.fetch,deadline:d});if(!c.ok)return i(c.error);L=(0,ae.i)(H,a.ids,c.map,b)}if(d-Date.now()>1500){let b=await ax(a,c.fullName,h());b.ok&&"alerts"in b.data?L=(0,j.R)(L,b.data.alerts,H):b.ok&&(J=[J,"Dependabot alerts aren't readable with this token (optional: Dependabot alerts: Read)."].filter(Boolean).join(" "))}let M=(0,j.h)(K,L,(0,m.K)(G));J=[o,t,J].filter(Boolean).join(" ")||null;let N=new Date;return await (0,e.f)().transaction(async a=>{for(let d of(M.insert.length&&await a.insert(f.dependencyVulns).values(M.insert.map(a=>({repoId:c.id,package:a.package,installedVersion:a.installedVersion,vulnId:a.vulnId,aliases:a.aliases,severity:a.severity,fixedVersion:a.fixedVersion,summary:a.summary,direct:a.direct,dev:a.dev,source:a.source,firstSeenAt:N,lastSeenAt:N}))).onConflictDoNothing(),M.update))await a.update(f.dependencyVulns).set({severity:d.severity,fixedVersion:d.fixedVersion,summary:d.summary,aliases:d.aliases,dev:d.dev,direct:d.direct,lastSeenAt:N}).where((0,b.u)(f.dependencyVulns.id,d.id));M.resolve.length&&await a.update(f.dependencyVulns).set({resolvedAt:N}).where((0,b.b)((0,b.y)(f.dependencyVulns.id,M.resolve),(0,b.M)(f.dependencyVulns.resolvedAt))),await a.insert(f.dependencyScans).values({repoId:c.id,lockfilePath:v?.path??(w?E:null),lockfileSha:B,packageCount:H.length,scannedAt:N,queriedAt:N,error:null,note:J?aE(J,300):null,updatedAt:N}).onConflictDoUpdate({target:f.dependencyScans.repoId,set:{lockfilePath:v?.path??(w?E:null),lockfileSha:B,packageCount:H.length,scannedAt:N,queriedAt:N,error:null,note:J?aE(J,300):null,updatedAt:N}})}),{status:"scanned",vulns:M.insert.length+M.update.length,packages:H.length,note:"package-json"===I?J:null}}async function aJ(a,c={}){var d,g;let h,i,j,k,l=await az();if("error"in l)return{error:l.error};let{first:m,only:n,skip:o,...p}=c,q=(d=await aD(),h=(g={first:m,only:n,skip:o}).only?new Set(g.only):null,i=new Set(g.skip??[]),j=(h?d.filter(a=>h.has(a.id)):d).filter(a=>!i.has(a.id)),k=new Set(g.first??[]),[...j.filter(a=>k.has(a.id)),...j.filter(a=>!k.has(a.id))]),r={scanned:0,unchanged:0,failed:[],left:0,done:[],listed:q.map(a=>a.id)};for(let[b,c]of q.entries()){if(a-Date.now()<4e3){r.left=q.length-b;break}r.done.push(c.id);try{let b=await aI(l.token,c,a,p);"scanned"===b.status?r.scanned++:"unchanged"===b.status?r.unchanged++:r.failed.push(`${c.fullName}: ${b.error}`)}catch(a){r.failed.push(`${c.fullName}: ${a instanceof Error?a.name:"error"}`)}}return await (0,e.f)().delete(f.dependencyVulns).where((0,b.b)((0,b.E)(f.dependencyVulns.resolvedAt),(0,b.S)(f.dependencyVulns.resolvedAt,new Date(Date.now()-7776e6)))).catch(()=>void 0),r}let aK=async()=>(await (0,e.f)().select({id:f.accounts.id}).from(f.accounts).where((0,b.u)(f.accounts.provider,"github")).limit(1)).length>0;async function aL(a,c,d={}){let g,h,i,{marked:j,onlyMarked:k}=c;if(!await aK())return{problem:null,settled:[...j],done:[],complete:!0};let l=j.filter(ad.f),m=l.length?await (0,e.f)().select({appId:f.appRepos.appId,repoId:f.appRepos.repoId}).from(f.appRepos).where((0,b.y)(f.appRepos.appId,l)).limit(5*l.length):[],n=[...new Set(m.map(a=>a.repoId))],o=a=>m.filter(b=>b.appId===a).map(a=>a.repoId),p=j.filter(a=>!o(a).length);if(k&&!n.length)return{problem:null,settled:[...j],done:[],complete:!0};if(a-Date.now()<4e3)return{problem:null,settled:p,done:[],complete:!1};let q=(c.skip??[]).filter(a=>!n.includes(a)),r=await aJ(a,{...d,first:n,...k?{only:n}:{skip:q}});if("error"in r){let a;return{problem:(a=r.error,/didn't answer in time|no time left|time budget|rate limit/i.test(a))?null:r.error,settled:[...j],done:[],complete:!0}}let s=new Set([...r.done,...n.filter(a=>!r.listed.includes(a))]);return{problem:(g=r.failed.filter(a=>!/didn't answer in time|no time left|time budget|rate limit/i.test(a)),(h=r.failed.length-g.length+(r.left??0))&&console.info(`deps: ${h} repositor${1===h?"y":"ies"} wait for the next run`),i=g.slice(0,3),g.length>3&&i.push(`+${g.length-3} more`),i.length?i.join("; "):null),settled:j.filter(a=>o(a).every(a=>s.has(a))),done:r.done,complete:0===r.left}}async function aM(a){let d={repo:null,scan:null,vulns:[],writeConnected:!1};if(!(0,ad.f)(a))return d;let[g]=await (0,e.f)().select({id:f.githubRepos.id,fullName:f.githubRepos.fullName}).from(f.appRepos).innerJoin(f.githubRepos,(0,b.u)(f.githubRepos.id,f.appRepos.repoId)).where((0,b.u)(f.appRepos.appId,a)).limit(1);if(!g)return d;let[[h],i,[k]]=await Promise.all([(0,e.f)().select({scannedAt:f.dependencyScans.scannedAt,lockfilePath:f.dependencyScans.lockfilePath,packageCount:f.dependencyScans.packageCount,error:f.dependencyScans.error,note:f.dependencyScans.note}).from(f.dependencyScans).where((0,b.u)(f.dependencyScans.repoId,g.id)).limit(1),(0,e.f)().select({package:f.dependencyVulns.package,installedVersion:f.dependencyVulns.installedVersion,vulnId:f.dependencyVulns.vulnId,severity:f.dependencyVulns.severity,fixedVersion:f.dependencyVulns.fixedVersion,summary:f.dependencyVulns.summary,aliases:f.dependencyVulns.aliases,dev:f.dependencyVulns.dev,direct:f.dependencyVulns.direct,firstSeenAt:f.dependencyVulns.firstSeenAt}).from(f.dependencyVulns).where((0,b.b)((0,b.u)(f.dependencyVulns.repoId,g.id),(0,b.M)(f.dependencyVulns.resolvedAt))).limit(2e3),(0,e.f)().select({id:f.accounts.id}).from(f.accounts).where((0,b.u)(f.accounts.provider,"github_write")).limit(1)]);i.sort((a,b)=>(0,j.t)(a.severity)-(0,j.t)(b.severity)||(a.package<b.package?-1:+(a.package>b.package))||(a.vulnId<b.vulnId?-1:1));let l=await (0,e.f)().select({number:f.dependencyPrs.number,stage:f.dependencyPrs.stage,stageText:f.dependencyPrs.stageText,openedAt:f.dependencyPrs.openedAt}).from(f.dependencyPrs).where((0,b.b)((0,b.u)(f.dependencyPrs.repoId,g.id),(0,b.B)(f.dependencyPrs.openedAt,new Date(Date.now()-12096e5)))).orderBy((0,c.A)(f.dependencyPrs.openedAt)).limit(5).catch(()=>[]);return{repo:g,scan:h??null,vulns:i,writeConnected:!!k,prs:(l??[]).map(a=>({...a,fullName:g.fullName}))}}async function aN(a,c={}){if(!(0,ad.f)(a))return{ok:!1,error:"That app no longer exists."};let[g]=await (0,e.f)().select({app:f.resources.name,id:f.githubRepos.id,fullName:f.githubRepos.fullName,defaultBranch:f.githubRepos.defaultBranch,goneAt:f.githubRepos.goneAt,meta:f.resources.meta}).from(f.appRepos).innerJoin(f.githubRepos,(0,b.u)(f.githubRepos.id,f.appRepos.repoId)).innerJoin(f.resources,(0,b.u)(f.resources.id,f.appRepos.appId)).where((0,b.u)(f.appRepos.appId,a)).limit(1);if(!g)return{ok:!1,error:"Link a repository first."};if(g.goneAt)return{ok:!1,error:"That repository is no longer shared with the GitHub token."};let h=await az();if("error"in h)return{ok:!1,error:h.error};let i=aB(g.meta),j=await aI(h.token,{id:g.id,fullName:g.fullName,defaultBranch:g.defaultBranch,scannedAt:null,rootDir:i.dir,rootDirUnsupported:i.unsupported,prodBranch:i.branch,prodFallback:i.fallback??null},Date.now()+4e4,{...c,force:!0});if("failed"===j.status)return{ok:!1,error:`The scan failed: ${j.error}`};let[k]=await (0,e.f)().select({n:d.B`count(*)::int`}).from(f.dependencyVulns).where((0,b.b)((0,b.u)(f.dependencyVulns.repoId,g.id),(0,b.M)(f.dependencyVulns.resolvedAt))),l=k?.n??0;return{ok:!0,app:g.app,repo:g.fullName,vulns:l,message:l?`${l} known vulnerabilit${1===l?"y":"ies"} in ${j.packages??0} packages.`:`No known vulnerabilities in ${j.packages??0} packages.`}}async function aO(a){let c=a.filter(ad.f);if(!c.length)return[];let d=await (0,e.f)().select({appId:f.appRepos.appId,repoId:f.appRepos.repoId,error:f.dependencyScans.error}).from(f.appRepos).innerJoin(f.dependencyScans,(0,b.u)(f.dependencyScans.repoId,f.appRepos.repoId)).where((0,b.b)((0,b.y)(f.appRepos.appId,c),(0,b.E)(f.dependencyScans.scannedAt)));if(!d.length)return[];let g=await (0,e.f)().select({repoId:f.dependencyVulns.repoId,package:f.dependencyVulns.package,installedVersion:f.dependencyVulns.installedVersion,fixedVersion:f.dependencyVulns.fixedVersion,severity:f.dependencyVulns.severity,summary:f.dependencyVulns.summary,dev:f.dependencyVulns.dev,direct:f.dependencyVulns.direct}).from(f.dependencyVulns).where((0,b.b)((0,b.y)(f.dependencyVulns.repoId,[...new Set(d.map(a=>a.repoId))]),(0,b.M)(f.dependencyVulns.resolvedAt))).limit(1e4);return d.map(a=>({appId:a.appId,repoId:a.repoId,error:a.error,vulns:g.filter(b=>b.repoId===a.repoId).map(a=>({package:a.package,installedVersion:a.installedVersion,fixedVersion:a.fixedVersion,severity:a.severity,summary:a.summary,dev:a.dev,direct:a.direct}))}))}async function aP(a,c=new Set){let g=a.filter(ad.f),h=new Map;if(!g.length)return h;let i=await (0,e.f)().select({appId:f.appRepos.appId,repoId:f.appRepos.repoId}).from(f.appRepos).where((0,b.y)(f.appRepos.appId,g));if(!i.length)return h;let k=await (0,e.f)().select({repoId:f.dependencyVulns.repoId,package:f.dependencyVulns.package,installedVersion:f.dependencyVulns.installedVersion,fixedVersion:f.dependencyVulns.fixedVersion,vulnId:f.dependencyVulns.vulnId,aliases:f.dependencyVulns.aliases,severity:f.dependencyVulns.severity,direct:f.dependencyVulns.direct}).from(f.dependencyVulns).where((0,b.b)((0,b.y)(f.dependencyVulns.repoId,[...new Set(i.map(a=>a.repoId))]),(0,b.M)(f.dependencyVulns.resolvedAt),(0,b.u)(f.dependencyVulns.direct,!0),(0,b.E)(f.dependencyVulns.fixedVersion))).limit(2e3),l=k.some(a=>"next"===a.package)?new Set((await (0,e.f)().selectDistinct({appId:f.dependencyPrs.appId}).from(f.dependencyPrs).where((0,b.b)((0,b.y)(f.dependencyPrs.appId,g),(0,b.$)(f.dependencyPrs.stage,["merged","closed"]),(0,b.B)(f.dependencyPrs.openedAt,new Date(Date.now()-12096e5)),d.B`${f.dependencyPrs.packages} @> '["next"]'::jsonb`)).limit(g.length)).map(a=>a.appId)):new Set;for(let a of i){let b=c.has(a.appId)||l.has(a.appId);(0,j.B)(k.filter(c=>c.repoId===a.repoId&&!(b&&"next"===c.package))).length&&h.set(a.appId,a.repoId)}return h}a.s(["o",0,12e3,"d",0,4e3,"j",0,aM,"O",0,aL,"C",0,aP,"a",0,aO,"h",0,aN],930270);var aQ=a.i(242605);async function aR(){return(0,e.f)().select({appId:f.links.fromResourceId,dbId:f.links.toResourceId}).from(f.links).where((0,b.u)(f.links.kind,"uses_db")).limit(500)}async function aS(a){let g=(0,b.b)((0,b.u)(f.resources.monitored,!0),(0,b.M)(f.resources.goneAt)),[h,i,j,k,l]=await Promise.all([$(),Z(),(0,e.f)().select({m:f.monitors,appName:f.resources.name,appMeta:f.resources.meta}).from(f.monitors).innerJoin(f.resources,(0,b.u)(f.resources.id,f.monitors.resourceId)).where((0,b.b)(g,(0,b.u)(f.monitors.paused,!1),(0,b.u)(f.monitors.ownerPaused,!1))),(0,e.f)().select({id:f.resources.id,name:f.resources.name,meta:f.resources.meta}).from(f.resources).where((0,b.b)(g,(0,b.u)(f.resources.kind,"app"))),(0,e.f)().select({id:f.accounts.id,provider:f.accounts.provider,label:f.accounts.label,expiresAt:f.accounts.expiresAt,status:f.accounts.status,lastError:f.accounts.lastError}).from(f.accounts)]),m=j.map(a=>a.m.id),n=m.length?await (0,e.f)().select({id:f.checks.monitorId,n:d.B`count(*)::int`,p95:d.B`percentile_cont(0.95) within group (order by ${f.checks.latencyMs})::float8`}).from(f.checks).where((0,b.b)((0,b.y)(f.checks.monitorId,m),(0,b.B)(f.checks.at,new Date(a.getTime()-6e5)),(0,b.u)(f.checks.inMaintenance,!1))).groupBy(f.checks.monitorId):[],o=k.map(a=>a.id),p=o.length?await (0,e.f)().selectDistinctOn([f.deployments.resourceId],{appId:f.deployments.resourceId,state:f.deployments.state,sha:f.deployments.commitSha,createdAt:f.deployments.createdAtProvider}).from(f.deployments).where((0,b.b)((0,b.y)(f.deployments.resourceId,o),(0,b.u)(f.deployments.target,"production"))).orderBy(f.deployments.resourceId,(0,c.A)(f.deployments.createdAtProvider)):[],q=await (0,e.f)().select({id:f.resources.id,name:f.resources.name,kind:f.resources.kind,state:f.snapshots.state,data:f.snapshots.data}).from(f.resources).innerJoin(f.snapshots,(0,b.u)(f.snapshots.resourceId,f.resources.id)).where((0,b.b)(g,(0,b.y)(f.resources.kind,["supabase_project","neon_project","firestore","turso_database","upstash_redis","d1_database","zone","domain"]))),r=a=>q.filter(b=>b.kind===a),s=q.filter(a=>["supabase_project","neon_project","firestore","turso_database","upstash_redis","d1_database"].includes(a.kind)),t=r("zone"),u=r("domain"),v=await aR(),w=await (0,_.Y)().catch(()=>null),x=o.length?await aO(o).catch(()=>null):null,y=o.length?await (0,aQ.F)(o).catch(()=>null):null;return{now:a,lastMinuteRunAt:h,lastAnyRunAt:i,monitors:j.map(({m:a,appName:b,appMeta:c})=>{let d=n.find(b=>b.id===a.id),e="heartbeat"===a.kind;return{id:a.id,appId:a.resourceId,appName:b,url:e?a.name??"heartbeat":a.url,kind:e?"heartbeat":"http",state:a.state,failStreak:a.failStreak,lastStatus:a.lastStatus,lastError:a.lastError,lastCheckedAt:a.lastCheckedAt,p95Last10:d?.p95??null,checksLast10:d?.n??0,movedTo:e?null:(0,aa.u)(a.url,{name:b,meta:c},k.filter(b=>b.id!==a.resourceId),{lastError:a.lastError})?.to??null}}),apps:k.map(a=>{let b=p.find(b=>b.appId===a.id);return{id:a.id,name:a.name,latestProduction:b?{state:b.state,sha:b.sha,createdAt:b.createdAt}:null}}),accounts:l,dbs:s.length?s.map(b=>(function(a,b){let c={id:a.id,name:a.name,state:a.state,sizeBytes:null,sizeLimitBytes:null,lastApiAt:null,cuHours:null,cuLimit:null,readsToday:null,readsLimit:null,quotaExhausted:null};if("supabase_project"===a.kind){let b=(0,V.k)(V.B,a.data),d=(0,Y.Z)(b.lastTrafficAt),e=(0,Y.Z)(b.trafficAt),f=d??(e&&!b.trafficError?new Date(e.getTime()-6048e5):null);return{...c,provider:"supabase",sizeBytes:b.sizeBytes??null,sizeLimitBytes:W.R,lastApiAt:f}}if("neon_project"===a.kind){let b=(0,V.k)(V.s,a.data),d=(b.branches??[]).map(a=>a.logicalSize).filter(a=>"number"==typeof a);return{...c,provider:"neon",cuHours:null==b.computeSeconds?null:b.computeSeconds/3600,cuLimit:U.a.cuHours,sizeBytes:d.length?d.reduce((a,b)=>a+b,0):null,sizeLimitBytes:U.a.storageBytes}}if("firestore"===a.kind){let d=(0,V.k)(V.w,a.data),e=(0,Y.Z)(d.opsAt),f=null!=d.reads&&e&&e.getTime()>=(0,T.a)(b).getTime()?d.reads:null,g=null!=d.latencyMs||null!=d.pingError;return{...c,provider:"firestore",readsToday:f,readsLimit:T.T.reads,quotaExhausted:g?"RESOURCE_EXHAUSTED"===d.pingReason:null}}if("turso_database"===a.kind){let d=(0,V.k)(V.N,a.data),e=(0,S.u)((0,S.G)(d,b));return{...c,provider:"turso",sizeBytes:d.orgStorageBytes??null,sizeLimitBytes:S.g.storageBytes,quotaPct:e?.pct??null,quotaLabel:e?`${e.label} ${e.text}`:null}}if("upstash_redis"===a.kind){let d=(0,V.k)(V.e,a.data),e=(0,S.u)((0,S.$)(d,b));return{...c,provider:"upstash",sizeBytes:d.storageBytes??null,sizeLimitBytes:S.W.storageBytes,quotaPct:e?.pct??null,quotaLabel:e?`${e.label} ${e.text}`:null}}if("d1_database"===a.kind){let d=(0,V.k)(V.x,a.data),e=(0,S.u)((0,S.I)(d,b));return{...c,provider:"d1",sizeBytes:d.sizeBytes??null,sizeLimitBytes:S.M.dbBytes,quotaPct:e?.pct??null,quotaLabel:e?`${e.label} ${e.text}`:null}}return null})(b,a)).filter(a=>null!==a):null,domains:t.length||u.length?[...t.map(a=>({id:a.id,name:a.name,tlsNotAfter:null,expiresAt:(0,Y.Z)((0,X.q)(a.data).rdap?.expiresAt)})),...u.map(a=>({id:a.id,name:a.name,tlsNotAfter:(0,Y.Z)((0,X.q)(a.data).tls?.notAfter),expiresAt:null}))]:null,dns:function(a,b){let c=a.filter(a=>Array.isArray(a.data.records));if(!c.length)return null;let d=a.map(a=>a.name),e=[];for(let a of c){let c=b.filter(b=>(0,Y.J)(b.name,d)===a.name.toLowerCase().replace(/\.$/,"")),f=[...new Set(c.flatMap(a=>(0,X.q)(a.data).vercel?.recommendedIps??[]))];for(let b of(0,X.q)(a.data).records){if(!(0,Y.l)(b,f))continue;let d=b.name.toLowerCase().replace(/\.$/,""),g=c.find(a=>a.name.toLowerCase().replace(/\.$/,"")===d);e.push({id:`${a.id}:${b.id}`,resourceId:g?.id??a.id,name:b.name,proxied:b.proxied,pointsToVercel:!0})}}return e}(t,u),links:v,compute:w,deps:x&&x.length?x:null,frameworks:y&&y.length?y:null}}var aT=a.i(714530),aU=a.i(396667);let aV={vercel:"Vercel",supabase:"Supabase",neon:"Neon",cloudflare:"Cloudflare",firebase:"Firebase",gcp:"Google Cloud"};async function aW(){return(await (0,e.f)().select().from(f.alertRules)).filter(a=>(0,g.h)(a.key)).map(a=>({key:a.key,severity:a.severity,threshold:a.threshold,enabled:a.enabled,channels:a.channels}))}async function aX(a,c={}){let[d,h,i,j,k,l]=await Promise.all([aS(a),aW(),(0,e.f)().select().from(f.alerts).where((0,b.M)(f.alerts.resolvedAt)),(0,e.f)().select({provider:f.providerStatus.provider,state:f.providerStatus.state}).from(f.providerStatus),(0,aT.w)(),(0,aU.I)()]),m=new Map(d.accounts.map(a=>[a.id,a.provider])),n=i.filter(a=>!(0,Q.O)(l,a.ruleKey,a.accountId?m.get(a.accountId):null)),o=function(a,b,c){let d=[],e=new Set;for(let f of b){if(!f.enabled||c&&!c.includes(f.key)||!g._[f.key])continue;let b=H[f.key](a,f.threshold);b&&(e.add(f.key),d.push(...b))}return{observations:d,evaluated:e}}(d,h,c.only),p=o.evaluated,q=o.observations.filter(a=>!(0,Q.O)(l,a.rule,a.provider)),r=h.find(a=>"CollectorStale"===a.key),s=void 0===d.lastAnyRunAt?d.lastMinuteRunAt:d.lastAnyRunAt,t=!!r?.enabled&&(!s||a.getTime()-s.getTime()>(r.threshold??5)*6e4),u=new Map((d.dbs??[]).filter(a=>"paused"===a.state).map(a=>[a.id,a.name])),v=new Map(d.links.filter(a=>u.has(a.dbId)).map(a=>[a.appId,`DatabasePaused \xb7 ${u.get(a.dbId)}`])),w=new Map(j.filter(a=>"warn"===a.state||"err"===a.state).map(a=>["gcp"===a.provider?"firebase":a.provider,aV[a.provider]??a.provider])),x=(0,P.u)(k,d.monitors.map(a=>({id:a.id,appId:a.appId})),a,d.apps.map(a=>a.id)),y=function(a,b,c,d,e){let f={open:[],touch:[],resolve:[]},h=new Map(d.map(a=>[a.key,a])),i=new Map(b.map(a=>[O(a.rule,a.subject),a])),j=new Set(a.map(a=>O(a.ruleKey,a.subject))),k=a=>f.resolve.push({id:a.id,pending:a.notifiedOpen?"resolve":null});for(let b of a){let a=h.get(b.ruleKey),d=i.get(O(b.ruleKey,b.subject));if(!a||!a.enabled){f.resolve.push({id:b.id,pending:null});continue}if(!c.has(b.ruleKey))continue;if(!d){f.resolve.push({id:b.id,pending:null});continue}if("unknown"===d.status)continue;let j=d.provider?e.incidents.get(d.provider)??null:null;if("firing"===d.status){let c=L(d,e),g=b.notifiedOpen&&null!==b.lastNotifiedAt&&e.now.getTime()-b.lastNotifiedAt.getTime()>=216e5,h={id:b.id,okStreak:0,lastSampleAt:d.sampleAt??b.lastSampleAt,lastSeenAt:e.now,message:d.message,causedBy:c,providerIncident:j},i=!b.notifiedOpen&&(!b.pendingSince||e.now.getTime()-b.pendingSince.getTime()>=216e5);(g||i)&&!N(b,e.now)&&!c&&null===b.pending&&K(a)&&(h.pending=g?"repeat":"open"),f.touch.push(h);continue}if(!g._[b.ruleKey].sampled||null===d.sampleAt){k(b);continue}if(!(null===b.lastSampleAt||d.sampleAt.getTime()>b.lastSampleAt.getTime()))continue;let l=b.okStreak+1;l>=2?k(b):f.touch.push({id:b.id,okStreak:l,lastSampleAt:d.sampleAt})}for(let a of b){if("firing"!==a.status||j.has(O(a.rule,a.subject))||e.maintenance.has(a.subject)||a.resourceId&&e.maintenance.has(a.resourceId))continue;let b=h.get(a.rule);if(!b)continue;let c=L(a,e);f.open.push({ruleKey:a.rule,subject:a.subject,resourceId:a.resourceId,accountId:a.accountId,severity:M(b.severity,a.severity),title:a.title,message:a.message,startedAt:e.now,lastSeenAt:e.now,lastSampleAt:a.sampleAt,causedBy:c,providerIncident:a.provider?e.incidents.get(a.provider)??null:null,pending:c||!K(b)?null:"open"})}return f}(n.filter(a=>(0,g.h)(a.ruleKey)).map(a=>({id:a.id,ruleKey:a.ruleKey,subject:a.subject,okStreak:a.okStreak,lastSampleAt:a.lastSampleAt,silencedUntil:a.silencedUntil,silencedUntilResolved:a.silencedUntilResolved,notifiedOpen:a.notifiedOpen,lastNotifiedAt:a.lastNotifiedAt,pending:a.pending,pendingSince:a.pendingSince})),q,p,h,{now:a,collectorStale:t,mutedApps:v,incidents:w,maintenance:x});return y.open.length||y.touch.length||y.resolve.length?(await (0,e.f)().transaction(async c=>{for(let b of y.open)await c.insert(f.alerts).values({...b,pendingSince:b.pending?a:null}).onConflictDoNothing();for(let d of y.touch){let{id:e,pending:g,...h}=d;await c.update(f.alerts).set({...h,...g?{pending:g,pendingSince:a}:{}}).where((0,b.b)((0,b.u)(f.alerts.id,e),(0,b.M)(f.alerts.resolvedAt)))}for(let d of y.resolve)await c.update(f.alerts).set({resolvedAt:a,pending:d.pending,pendingSince:d.pending?a:null}).where((0,b.b)((0,b.u)(f.alerts.id,d.id),(0,b.M)(f.alerts.resolvedAt)))}),{opened:y.open.length,resolved:y.resolve.length}):{opened:0,resolved:0}}async function aY(){let[a,c]=await Promise.all([(0,aU.I)(),(0,e.f)().select({ruleKey:f.alerts.ruleKey,provider:f.accounts.provider,n:d.B`count(*)::int`}).from(f.alerts).leftJoin(f.accounts,(0,b.u)(f.accounts.id,f.alerts.accountId)).where((0,b.b)((0,b.M)(f.alerts.resolvedAt),(0,b.y)(f.alerts.severity,["critical","warning"]))).groupBy(f.alerts.ruleKey,f.accounts.provider)]);return c.reduce((b,c)=>b+((0,Q.O)(a,c.ruleKey,c.provider)?0:Number(c.n)),0)}let aZ=d.B`case ${f.alerts.severity} when 'critical' then 0 when 'warning' then 1 else 2 end`;async function a$(a=new Set){return(await (0,e.f)().select({a:f.alerts,name:f.resources.name,kind:f.resources.kind}).from(f.alerts).leftJoin(f.resources,(0,b.u)(f.resources.id,f.alerts.resourceId)).where((0,b.b)((0,b.M)(f.alerts.resolvedAt),(0,aU.s)(a))).orderBy(aZ,(0,c.A)(f.alerts.startedAt)).limit(200)).map(({a,name:b,kind:c})=>({...a,resourceName:b??null,resourceKind:c??null}))}async function a_(){return a$(await (0,aU.I)())}async function a0(a){return(await (0,e.f)().select({id:f.alerts.id,ruleKey:f.alerts.ruleKey,severity:f.alerts.severity,title:f.alerts.title,resourceId:f.alerts.resourceId,startedAt:f.alerts.startedAt,resolvedAt:f.alerts.resolvedAt}).from(f.alerts).where((0,b.b)((0,b.E)(f.alerts.resolvedAt),(0,b.B)(f.alerts.resolvedAt,new Date(a.getTime()-6048e5)))).orderBy((0,c.A)(f.alerts.resolvedAt)).limit(50)).flatMap(a=>a.resolvedAt?[{...a,resolvedAt:a.resolvedAt}]:[])}async function a1(){let[a,c,h]=await Promise.all([aW(),(0,e.f)().select({key:f.alerts.ruleKey,n:d.B`count(*)::int`}).from(f.alerts).where((0,b.M)(f.alerts.resolvedAt)).groupBy(f.alerts.ruleKey),(0,e.f)().select({kind:f.resources.kind}).from(f.resources).innerJoin(f.snapshots,(0,b.u)(f.snapshots.resourceId,f.resources.id)).where((0,b.b)((0,b.u)(f.resources.monitored,!0),(0,b.M)(f.resources.goneAt))).groupBy(f.resources.kind)]),i=new Set(h.map(a=>a.kind)),j={databases:["supabase_project","neon_project","firestore"].some(a=>i.has(a)),domains:i.has("domain")||i.has("zone"),dns:i.has("zone")};return g.u.flatMap(b=>{let d=a.find(a=>a.key===b);if(!d)return[];let e=g._[b].needs;return[{rule:d,firing:c.find(a=>a.key===b)?.n??0,hasData:null===e||j[e]}]})}async function a2(a,c,d,g){let h="off"===c?{silencedUntil:null,silencedUntilResolved:!1,silencedBy:null}:{...(0,R.A)(c,g),silencedBy:d},[i]=await (0,e.f)().update(f.alerts).set(h).where((0,b.b)((0,b.u)(f.alerts.id,a),(0,b.M)(f.alerts.resolvedAt))).returning({ruleKey:f.alerts.ruleKey,title:f.alerts.title,resourceId:f.alerts.resourceId});return i??null}async function a3(a,c){return(await (0,e.f)().update(f.alertRules).set({...c,updatedAt:new Date}).where((0,b.u)(f.alertRules.key,a)).returning({key:f.alertRules.key})).length>0}a.s(["$",0,aX,"q",0,a$,"I",0,a0,"i",0,a_,"X",0,aY,"y",0,a1,"z",0,a3,"N",0,a2],455317)},425238,a=>{var b=a.i(609007),c=a.i(556987);let d=/(?<![\p{L}\p{N}_])(?:w[bp]_[A-Za-z0-9]{6,}|hb_[0-9a-f]{6,}|sk-[A-Za-z0-9_-]{6,}|gsk_[A-Za-z0-9]{6,}|AIza[0-9A-Za-z_-]{8,}|AQ\.[A-Za-z0-9_-]{8,})/gu,e=/\b[a-z][a-z0-9+.-]*:\/\/[^\s/?#"'<>)]*(\/[^\s?#"'<>)]*)?(?:[?#][^\s"'<>)]*)?/gi,f="[\\p{L}\\p{N}_-]",g=a=>a.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),h=new WeakMap,i=[RegExp(d.source,"u"),/\b(?:Bearer|Basic)\s+[A-Za-z0-9._~+/=-]{12,}/i,/\beyJ[\w-]{8,}\.[\w-]{8,}\.[\w-]{8,}/,/\b[a-z][a-z0-9+.-]*:\/\/[^\s/@:]+:[^\s/@]+@/i,/\b[A-Fa-f0-9]{40,}\b/,/\b(?=[A-Za-z0-9_-]*\d)(?=[A-Za-z0-9_-]*[A-Za-z])[A-Za-z0-9_-]{40,}\b/];a.s(["G",0,function(a){return i.some(b=>b.test(a))},"F",0,function(a,i){let j=(0,b.h)(a);j=(0,c.J)(j,i);let k=function(a){if(h.has(a))return h.get(a);let b=new Map((a.account??[]).filter(a=>a.name.trim().length>=2).map(a=>[a.name.toLowerCase(),a.alias])),c=[...b.keys()].sort((a,b)=>b.length-a.length),d=c.length?{re:RegExp(`(?<!${f})(?:${c.map(g).join("|")})(?!${f})`,"giu"),alias:b}:null;return h.set(a,d),d}(i);return k&&(j=j.replace(k.re,a=>k.alias.get(a.toLowerCase())??a)),(j=(j=(j=j.replace(d,"[hidden]")).replace(/hb_\[hidden\]/g,"[hidden]")).replace(e,(a,b)=>b??"[url]")).replace(/@/g,"(at)")}])}]})();
|
|
2
2
|
|
|
3
3
|
//# sourceMappingURL=src_1-xw4hea2lvb3._.js.map
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
(()=>{"use strict";module.exports=[992861,a=>{var b=a.i(187924),c=a.i(101169),d=a.i(218024),e=a.i(196790),f=a.i(817748),g=a.i(901615),h=a.i(238246),i=a.i(572131),j=a.i(823292),k=a.i(619089),l=a.i(507504),m=a.i(814574),n=a.i(405050);let o=(0,n.createServerReference)("40948136eed2a922228716c6373be30c67246ea12f",n.callServer,void 0,n.findSourceMapURL,"createKeyAction");function p({scopes:a}){return(0,b.jsx)(b.Fragment,{children:a.map(a=>(0,b.jsx)("span",{className:"mr-1 inline-block whitespace-nowrap rounded-[4px] border border-line bg-surface-2 px-[5px] font-mono text-xs text-ink-soft",children:a},a))})}var q=a.i(136476);function r({icon:a,title:c,sub:d}){return(0,b.jsxs)("div",{className:"flex items-start gap-3 px-[18px] pb-2 pt-4",children:[(0,b.jsx)("span",{className:"grid size-9 shrink-0 place-items-center rounded-lg bg-sunken text-ink-soft",children:a}),(0,b.jsxs)("div",{children:[(0,b.jsx)(m.F,{className:"text-base",children:c}),(0,b.jsx)(m.C,{className:"mt-0.5 text-[13px] text-ink-soft",children:d})]})]})}function s({onCreated:a,onCancel:c}){let[d,f]=(0,i.useState)(""),[h,l]=(0,i.useState)(q.J),[m,n]=(0,i.useState)(q.j),[t,u]=(0,i.useState)(String(q.D)),[v,w]=(0,i.useState)({}),[x,y]=(0,i.useState)(""),[z,A]=(0,i.useTransition)();return(0,b.jsxs)("form",{onSubmit:function(b){b.preventDefault(),A(async()=>{w({}),y("");try{let b=await o({name:d.trim(),scopes:q.B.filter(a=>h.includes(a)),expiry:m,ratePerMin:t.trim()});b.ok&&b.data?(j.c.success(b.message??"Key created."),a(b.data)):b.ok||(b.fieldErrors?w(b.fieldErrors):y(b.error))}catch{y("Something went wrong. Try again.")}})},noValidate:!0,children:[(0,b.jsx)(r,{icon:(0,b.jsx)(e.f,{size:19}),title:"Create API key",sub:"For one app or agent. Shown once."}),(0,b.jsxs)("div",{className:"px-[18px] pt-1.5",children:[(0,b.jsx)(k.O,{id:"key-name",label:"Name",help:"Lowercase letters, digits and dashes. Agents and Logs show it.",error:v.name,children:(0,b.jsx)("input",{id:"key-name",value:d,onChange:a=>f(a.target.value),placeholder:g.C.namePlaceholder,autoComplete:"off",autoCapitalize:"none",spellCheck:!1,className:k.S})}),(0,b.jsxs)("fieldset",{className:"mb-3.5",children:[(0,b.jsx)("legend",{className:"mb-[5px] text-[13px] font-medium",children:"Scopes"}),(0,b.jsx)("div",{className:"flex flex-col gap-1.5",children:q.B.map(a=>(0,b.jsxs)("label",{className:"flex cursor-pointer items-start gap-2",children:[(0,b.jsx)("input",{type:"checkbox",checked:h.includes(a),onChange:()=>l(b=>b.includes(a)?b.filter(b=>b!==a):[...b,a]),className:"mt-[3px] accent-brand"}),(0,b.jsxs)("span",{children:[(0,b.jsx)(p,{scopes:[a]})," ",(0,b.jsx)("span",{className:"text-[13px] text-ink-soft",children:q.h[a].short})]})]},a))}),v.scopes&&(0,b.jsx)("span",{className:"text-[12.5px] text-err",role:"alert",children:v.scopes})]}),(0,b.jsxs)("div",{className:"grid grid-cols-2 gap-3 max-[560px]:grid-cols-1",children:[(0,b.jsx)(k.O,{id:"key-expiry",label:"Expires",error:v.expiry,children:(0,b.jsx)("select",{id:"key-expiry",value:m,onChange:a=>n(a.target.value),className:k.S,children:q.W.map(a=>(0,b.jsx)("option",{value:a,children:q.o[a]},a))})}),(0,b.jsx)(k.O,{id:"key-rate",label:"Rate limit",help:"Requests per minute, 1–600. Applies before the provider's own limits.",error:v.ratePerMin,children:(0,b.jsx)("input",{id:"key-rate",inputMode:"numeric",value:t,onChange:a=>u(a.target.value),className:`${k.S} font-mono`})})]}),x&&(0,b.jsx)("p",{className:"mb-3 text-[13px] text-err",role:"alert",children:x})]}),(0,b.jsxs)("div",{className:"flex justify-end gap-2 border-t border-line px-[18px] py-3",children:[(0,b.jsx)(k.K,{onClick:c,disabled:z,children:"Cancel"}),(0,b.jsx)(k.K,{type:"submit",variant:"primary",disabled:z,children:z?"Creating…":"Create key"})]})]})}function t({created:a,onDone:e}){async function f(){try{await navigator.clipboard.writeText(a.key),j.c.success("Copied.")}catch{j.c.error("Couldn't copy. Select the key and copy it by hand.")}}return(0,b.jsxs)("div",{children:[(0,b.jsx)(r,{icon:(0,b.jsx)(c.f,{size:19}),title:`Key ${a.name} created`,sub:"Copy it now."}),(0,b.jsxs)("div",{className:"px-[18px] pb-3 pt-1.5",children:[(0,b.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,b.jsx)("code",{className:"min-w-0 flex-1 overflow-x-auto whitespace-nowrap rounded-md border border-line bg-sunken px-2 py-1.5 font-mono text-[12.5px]","data-testid":"new-key",children:a.key}),(0,b.jsxs)(k.K,{size:"sm",onClick:f,children:[(0,b.jsx)(d.f,{size:15,"aria-hidden":!0}),"Copy"]})]}),(0,b.jsx)("p",{className:"mt-2.5 rounded-md border border-warn-icon bg-warn-soft px-2.5 py-2 text-[13px] text-warn",children:"Watchbell keeps only a SHA-256 hash of this key, so it can't show it again. Lost it? Revoke it and create a new one."}),(0,b.jsxs)("p",{className:"mb-0 mt-3 text-[13px] text-ink-soft",children:["Next: put it in the app's environment as ",(0,b.jsx)("span",{className:"font-mono",children:"WATCHBELL_API_KEY"}),", then follow ",(0,b.jsx)(h.default,{href:"/ai",className:"text-brand",children:"Quick start"})," or ",(0,b.jsx)(h.default,{href:"/ai/connect",className:"text-brand",children:"Connect an agent"}),"."]})]}),(0,b.jsx)("div",{className:"flex justify-end gap-2 border-t border-line px-[18px] py-3",children:(0,b.jsx)(k.K,{variant:"primary",onClick:e,children:"Done"})})]})}a.s(["CreateKeyDialog",0,function(){let[a,c]=(0,i.useState)(!1),[d,e]=(0,i.useState)(null);function g(a){c(a),a||e(null)}return(0,l.useHoldRefresh)(a),(0,b.jsxs)(m.N,{open:a,onOpenChange:g,children:[(0,b.jsxs)(m.a,{render:(0,b.jsx)(k.K,{variant:"primary"}),children:[(0,b.jsx)(f.f,{size:16,"aria-hidden":!0}),"Create key"]}),(0,b.jsx)(m.d,{className:"gap-0 p-0 sm:max-w-[640px]",showCloseButton:!1,children:d?(0,b.jsx)(t,{created:d,onDone:()=>g(!1)}):(0,b.jsx)(s,{onCreated:e,onCancel:()=>g(!1)})})]})}],992861)},659526,a=>{var b=a.i(187924),c=a.i(572131),d=a.i(823292),e=a.i(611619),f=a.i(619089),g=a.i(507504),h=a.i(188406),i=a.i(814574),j=a.i(405050);let k=(0,j.createServerReference)("609faa6c55e28176835c56bcd48c58aaa78c9300fc",j.callServer,void 0,j.findSourceMapURL,"changeKeyAction"),l=(0,j.createServerReference)("403bd0eeb1d1f106eca711a4dc9ec9298aa944e03b",j.callServer,void 0,j.findSourceMapURL,"revokeKeyAction");var m=a.i(136476);let n={rename:{title:a=>`Rename ${a}`,sub:"Agents and Logs show the name. Lowercase letters, digits and dashes.",cta:"Save name"},rate:{title:()=>"Change rate limit",sub:"Requests per minute, 1–600. Applies before the provider's own limits, within a minute.",cta:"Save limit"},expiry:{title:()=>"Change expiry",sub:"Counted from today. The key stops working at that date.",cta:"Save expiry"},routing:{title:()=>"Change routing",sub:"Pin this key to one provider and, if you like, one model. Without a pin it uses the default provider.",cta:"Save routing"}};function o({mode:a,k:e,providers:g,onDone:h}){let[j,l]=(0,c.useState)(e.name),[p,q]=(0,c.useState)(String(e.ratePerMin)),[r,s]=(0,c.useState)(e.expiresAt?"90d":"never"),[t,u]=(0,c.useState)(e.providerId??""),[v,w]=(0,c.useState)(e.model??""),[x,y]=(0,c.useState)({}),[z,A]=(0,c.useState)(""),[B,C]=(0,c.useTransition)(),D=n[a];return(0,b.jsxs)("form",{onSubmit:function(b){b.preventDefault(),C(async()=>{y({}),A("");try{let b=await k(e.id,"rename"===a?{kind:"rename",name:j.trim()}:"rate"===a?{kind:"rate",ratePerMin:p.trim()}:"expiry"===a?{kind:"expiry",expiry:r}:{kind:"routing",providerId:t||null,model:t?v.trim():null});b.ok?(d.c.success(b.message??"Key updated."),h()):b.fieldErrors?y(b.fieldErrors):A(b.error)}catch{A("Something went wrong. Try again.")}})},noValidate:!0,children:[(0,b.jsxs)("div",{className:"px-[18px] pb-2 pt-4",children:[(0,b.jsx)(i.F,{className:"text-base",children:D.title(e.name)}),(0,b.jsx)(i.C,{className:"mt-0.5 text-[13px] text-ink-soft",children:D.sub})]}),(0,b.jsxs)("div",{className:"px-[18px] pt-1.5",children:["rename"===a&&(0,b.jsx)(f.O,{id:"edit-name",label:"Name",error:x.name,children:(0,b.jsx)("input",{id:"edit-name",value:j,onChange:a=>l(a.target.value),autoComplete:"off",autoCapitalize:"none",spellCheck:!1,className:f.S})}),"rate"===a&&(0,b.jsx)(f.O,{id:"edit-rate",label:"Rate limit",help:"Requests per minute.",error:x.ratePerMin,children:(0,b.jsx)("input",{id:"edit-rate",inputMode:"numeric",value:p,onChange:a=>q(a.target.value),className:`${f.S} font-mono`})}),"expiry"===a&&(0,b.jsx)(f.O,{id:"edit-expiry",label:"Expires",error:x.expiry,children:(0,b.jsx)("select",{id:"edit-expiry",value:r,onChange:a=>s(a.target.value),className:f.S,children:m.W.map(a=>(0,b.jsx)("option",{value:a,children:m.o[a]},a))})}),"routing"===a&&(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(f.O,{id:"edit-provider",label:"Provider",help:g.length?void 0:"No provider is connected yet. Until one is, this key has nothing to pin to.",error:x.providerId,children:(0,b.jsxs)("select",{id:"edit-provider",value:t,onChange:a=>u(a.target.value),className:f.S,children:[(0,b.jsx)("option",{value:"",children:"No pin (default provider)"}),g.map(a=>(0,b.jsxs)("option",{value:a.id,children:[a.name,a.enabled?"":" (off)"]},a.id))]})}),(0,b.jsx)(f.O,{id:"edit-model",label:"Model",help:"Optional. A Gemini model id, for example gemini-3.8-flash. Empty uses the provider's default.",error:x.model,children:(0,b.jsx)("input",{id:"edit-model",value:v,onChange:a=>w(a.target.value),disabled:!t,placeholder:"gemini-3.8-flash",autoComplete:"off",autoCapitalize:"none",spellCheck:!1,className:`${f.S} font-mono`})})]}),z&&(0,b.jsx)("p",{className:"mb-3 text-[13px] text-err",role:"alert",children:z})]}),(0,b.jsxs)("div",{className:"flex justify-end gap-2 border-t border-line px-[18px] py-3",children:[(0,b.jsx)(f.K,{onClick:h,disabled:B,children:"Cancel"}),(0,b.jsx)(f.K,{type:"submit",variant:"primary",disabled:B,children:B?"Saving…":D.cta})]})]})}a.s(["KeyActions",0,function({k:a,providers:d}){let[j,k]=(0,c.useState)(null);return(0,g.useHoldRefresh)(null!==j),(0,b.jsxs)("span",{className:"inline-flex items-center gap-1",children:[(0,b.jsx)(e.f,{trigger:(0,b.jsx)(f.K,{size:"sm",children:"Revoke"}),title:`Revoke ${a.name}?`,body:`Calls with ${a.prefix}… answer 401 within a minute. Agents using it show "Key revoked". This can't be undone; create a new key instead.`,cta:"Revoke key",danger:!0,onConfirm:async()=>{let b=await l(a.id);return{ok:b.ok,message:(b.ok?b.message:b.error)??""}}}),(0,b.jsx)(h.RowMenu,{label:`Actions for ${a.name}`,items:[{label:"Rename",onSelect:()=>k("rename")},{label:"Change rate limit",onSelect:()=>k("rate")},{label:"Change expiry",onSelect:()=>k("expiry")},{label:"Change routing",onSelect:()=>k("routing")}]}),(0,b.jsx)(i.N,{open:null!==j,onOpenChange:a=>{a||k(null)},children:(0,b.jsx)(i.d,{className:"gap-0 p-0 sm:max-w-[520px]",showCloseButton:!1,children:j&&(0,b.jsx)(o,{mode:j,k:a,providers:d,onDone:()=>k(null)})})})]})}],659526)},136476,a=>{let b={"ai:invoke":{short:"models",long:"Chat completions and the model list through your provider connections."},"read:status":{short:"console data, MCP",long:"Read-only console data: GET /api/v1/status and the MCP server. Database names are aliases; no URLs, emails or secrets."},"write:notes":{short:"post AI notes",long:a.i(901615).C.writeNotesLong}};a.s(["j",0,"90d","D",0,20,"J",0,["ai:invoke"],"W",0,["7d","30d","90d","1y","never"],"o",0,{"7d":"In 7 days","30d":"In 30 days","90d":"In 90 days","1y":"In 1 year",never:"Never"},"B",0,["ai:invoke","read:status","write:notes"],"h",0,b])}]})();
|
|
1
|
+
(()=>{"use strict";module.exports=[992861,a=>{var b=a.i(187924),c=a.i(101169),d=a.i(218024),e=a.i(196790),f=a.i(817748),g=a.i(901615),h=a.i(238246),i=a.i(572131),j=a.i(823292),k=a.i(619089),l=a.i(507504),m=a.i(814574),n=a.i(405050);let o=(0,n.createServerReference)("400e9e58c43612f0b851fba979cfe5b47df30f1639",n.callServer,void 0,n.findSourceMapURL,"createKeyAction");function p({scopes:a}){return(0,b.jsx)(b.Fragment,{children:a.map(a=>(0,b.jsx)("span",{className:"mr-1 inline-block whitespace-nowrap rounded-[4px] border border-line bg-surface-2 px-[5px] font-mono text-xs text-ink-soft",children:a},a))})}var q=a.i(136476);function r({icon:a,title:c,sub:d}){return(0,b.jsxs)("div",{className:"flex items-start gap-3 px-[18px] pb-2 pt-4",children:[(0,b.jsx)("span",{className:"grid size-9 shrink-0 place-items-center rounded-lg bg-sunken text-ink-soft",children:a}),(0,b.jsxs)("div",{children:[(0,b.jsx)(m.F,{className:"text-base",children:c}),(0,b.jsx)(m.C,{className:"mt-0.5 text-[13px] text-ink-soft",children:d})]})]})}function s({onCreated:a,onCancel:c}){let[d,f]=(0,i.useState)(""),[h,l]=(0,i.useState)(q.J),[m,n]=(0,i.useState)(q.j),[t,u]=(0,i.useState)(String(q.D)),[v,w]=(0,i.useState)({}),[x,y]=(0,i.useState)(""),[z,A]=(0,i.useTransition)();return(0,b.jsxs)("form",{onSubmit:function(b){b.preventDefault(),A(async()=>{w({}),y("");try{let b=await o({name:d.trim(),scopes:q.B.filter(a=>h.includes(a)),expiry:m,ratePerMin:t.trim()});b.ok&&b.data?(j.c.success(b.message??"Key created."),a(b.data)):b.ok||(b.fieldErrors?w(b.fieldErrors):y(b.error))}catch{y("Watchbell didn't answer. Check that it's still running, then try again.")}})},noValidate:!0,children:[(0,b.jsx)(r,{icon:(0,b.jsx)(e.f,{size:19}),title:"Create API key",sub:"For one app or agent. Shown once."}),(0,b.jsxs)("div",{className:"px-[18px] pt-1.5",children:[(0,b.jsx)(k.O,{id:"key-name",label:"Name",help:"Lowercase letters, digits and dashes. Agents and Logs show it.",error:v.name,children:(0,b.jsx)("input",{id:"key-name",value:d,onChange:a=>f(a.target.value),placeholder:g.C.namePlaceholder,autoComplete:"off",autoCapitalize:"none",spellCheck:!1,className:k.S})}),(0,b.jsxs)("fieldset",{className:"mb-3.5",children:[(0,b.jsx)("legend",{className:"mb-[5px] text-[13px] font-medium",children:"Scopes"}),(0,b.jsx)("div",{className:"flex flex-col gap-1.5",children:q.B.map(a=>(0,b.jsxs)("label",{className:"flex cursor-pointer items-start gap-2",children:[(0,b.jsx)("input",{type:"checkbox",checked:h.includes(a),onChange:()=>l(b=>b.includes(a)?b.filter(b=>b!==a):[...b,a]),className:"mt-[3px] accent-brand"}),(0,b.jsxs)("span",{children:[(0,b.jsx)(p,{scopes:[a]})," ",(0,b.jsx)("span",{className:"text-[13px] text-ink-soft",children:q.h[a].short})]})]},a))}),v.scopes&&(0,b.jsx)("span",{className:"text-[12.5px] text-err",role:"alert",children:v.scopes})]}),(0,b.jsxs)("div",{className:"grid grid-cols-2 gap-3 max-[560px]:grid-cols-1",children:[(0,b.jsx)(k.O,{id:"key-expiry",label:"Expires",error:v.expiry,children:(0,b.jsx)("select",{id:"key-expiry",value:m,onChange:a=>n(a.target.value),className:k.S,children:q.W.map(a=>(0,b.jsx)("option",{value:a,children:q.o[a]},a))})}),(0,b.jsx)(k.O,{id:"key-rate",label:"Rate limit",help:"Requests per minute, 1–600. Applies before the provider's own limits.",error:v.ratePerMin,children:(0,b.jsx)("input",{id:"key-rate",inputMode:"numeric",value:t,onChange:a=>u(a.target.value),className:`${k.S} font-mono`})})]}),x&&(0,b.jsx)("p",{className:"mb-3 text-[13px] text-err",role:"alert",children:x})]}),(0,b.jsxs)("div",{className:"flex justify-end gap-2 border-t border-line px-[18px] py-3",children:[(0,b.jsx)(k.K,{onClick:c,disabled:z,children:"Cancel"}),(0,b.jsx)(k.K,{type:"submit",variant:"primary",disabled:z,children:z?"Creating…":"Create key"})]})]})}function t({created:a,onDone:e}){async function f(){try{await navigator.clipboard.writeText(a.key),j.c.success("Copied.")}catch{j.c.error("Couldn't copy. Select the key and copy it by hand.")}}return(0,b.jsxs)("div",{children:[(0,b.jsx)(r,{icon:(0,b.jsx)(c.f,{size:19}),title:`Key ${a.name} created`,sub:"Copy it now."}),(0,b.jsxs)("div",{className:"px-[18px] pb-3 pt-1.5",children:[(0,b.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,b.jsx)("code",{className:"min-w-0 flex-1 overflow-x-auto whitespace-nowrap rounded-md border border-line bg-sunken px-2 py-1.5 font-mono text-[12.5px]","data-testid":"new-key",children:a.key}),(0,b.jsxs)(k.K,{size:"sm",onClick:f,children:[(0,b.jsx)(d.f,{size:15,"aria-hidden":!0}),"Copy"]})]}),(0,b.jsx)("p",{className:"mt-2.5 rounded-md border border-warn-icon bg-warn-soft px-2.5 py-2 text-[13px] text-warn",children:"Watchbell keeps only a SHA-256 hash of this key, so it can't show it again. Lost it? Revoke it and create a new one."}),(0,b.jsxs)("p",{className:"mb-0 mt-3 text-[13px] text-ink-soft",children:["Next: put it in the app's environment as ",(0,b.jsx)("span",{className:"font-mono",children:"WATCHBELL_API_KEY"}),", then follow ",(0,b.jsx)(h.default,{href:"/ai",className:"text-brand",children:"Quick start"})," or ",(0,b.jsx)(h.default,{href:"/ai/connect",className:"text-brand",children:"Connect an agent"}),"."]})]}),(0,b.jsx)("div",{className:"flex justify-end gap-2 border-t border-line px-[18px] py-3",children:(0,b.jsx)(k.K,{variant:"primary",onClick:e,children:"Done"})})]})}a.s(["CreateKeyDialog",0,function(){let[a,c]=(0,i.useState)(!1),[d,e]=(0,i.useState)(null);function g(a){c(a),a||e(null)}return(0,l.useHoldRefresh)(a),(0,b.jsxs)(m.N,{open:a,onOpenChange:g,children:[(0,b.jsxs)(m.a,{render:(0,b.jsx)(k.K,{variant:"primary"}),children:[(0,b.jsx)(f.f,{size:16,"aria-hidden":!0}),"Create key"]}),(0,b.jsx)(m.d,{className:"gap-0 p-0 sm:max-w-[640px]",showCloseButton:!1,children:d?(0,b.jsx)(t,{created:d,onDone:()=>g(!1)}):(0,b.jsx)(s,{onCreated:e,onCancel:()=>g(!1)})})]})}],992861)},659526,a=>{var b=a.i(187924),c=a.i(572131),d=a.i(823292),e=a.i(611619),f=a.i(619089),g=a.i(507504),h=a.i(188406),i=a.i(814574),j=a.i(405050);let k=(0,j.createServerReference)("6020e59199a30862bae197bf0471c3fb991856d0eb",j.callServer,void 0,j.findSourceMapURL,"changeKeyAction"),l=(0,j.createServerReference)("40669b05b0fb9e0a616a7c26198bc1c1ada2f354bd",j.callServer,void 0,j.findSourceMapURL,"revokeKeyAction");var m=a.i(136476);let n={rename:{title:a=>`Rename ${a}`,sub:"Agents and Logs show the name. Lowercase letters, digits and dashes.",cta:"Save name"},rate:{title:()=>"Change rate limit",sub:"Requests per minute, 1–600. Applies before the provider's own limits, within a minute.",cta:"Save limit"},expiry:{title:()=>"Change expiry",sub:"Counted from today. The key stops working at that date.",cta:"Save expiry"},routing:{title:()=>"Change routing",sub:"Pin this key to one provider and, if you like, one model. Without a pin it uses the default provider.",cta:"Save routing"}};function o({mode:a,k:e,providers:g,onDone:h}){let[j,l]=(0,c.useState)(e.name),[p,q]=(0,c.useState)(String(e.ratePerMin)),[r,s]=(0,c.useState)(e.expiresAt?"90d":"never"),[t,u]=(0,c.useState)(e.providerId??""),[v,w]=(0,c.useState)(e.model??""),[x,y]=(0,c.useState)({}),[z,A]=(0,c.useState)(""),[B,C]=(0,c.useTransition)(),D=n[a];return(0,b.jsxs)("form",{onSubmit:function(b){b.preventDefault(),C(async()=>{y({}),A("");try{let b=await k(e.id,"rename"===a?{kind:"rename",name:j.trim()}:"rate"===a?{kind:"rate",ratePerMin:p.trim()}:"expiry"===a?{kind:"expiry",expiry:r}:{kind:"routing",providerId:t||null,model:t?v.trim():null});b.ok?(d.c.success(b.message??"Key updated."),h()):b.fieldErrors?y(b.fieldErrors):A(b.error)}catch{A("Watchbell didn't answer. Check that it's still running, then try again.")}})},noValidate:!0,children:[(0,b.jsxs)("div",{className:"px-[18px] pb-2 pt-4",children:[(0,b.jsx)(i.F,{className:"text-base",children:D.title(e.name)}),(0,b.jsx)(i.C,{className:"mt-0.5 text-[13px] text-ink-soft",children:D.sub})]}),(0,b.jsxs)("div",{className:"px-[18px] pt-1.5",children:["rename"===a&&(0,b.jsx)(f.O,{id:"edit-name",label:"Name",error:x.name,children:(0,b.jsx)("input",{id:"edit-name",value:j,onChange:a=>l(a.target.value),autoComplete:"off",autoCapitalize:"none",spellCheck:!1,className:f.S})}),"rate"===a&&(0,b.jsx)(f.O,{id:"edit-rate",label:"Rate limit",help:"Requests per minute.",error:x.ratePerMin,children:(0,b.jsx)("input",{id:"edit-rate",inputMode:"numeric",value:p,onChange:a=>q(a.target.value),className:`${f.S} font-mono`})}),"expiry"===a&&(0,b.jsx)(f.O,{id:"edit-expiry",label:"Expires",error:x.expiry,children:(0,b.jsx)("select",{id:"edit-expiry",value:r,onChange:a=>s(a.target.value),className:f.S,children:m.W.map(a=>(0,b.jsx)("option",{value:a,children:m.o[a]},a))})}),"routing"===a&&(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(f.O,{id:"edit-provider",label:"Provider",help:g.length?void 0:"No provider is connected yet. Until one is, this key has nothing to pin to.",error:x.providerId,children:(0,b.jsxs)("select",{id:"edit-provider",value:t,onChange:a=>u(a.target.value),className:f.S,children:[(0,b.jsx)("option",{value:"",children:"No pin (default provider)"}),g.map(a=>(0,b.jsxs)("option",{value:a.id,children:[a.name,a.enabled?"":" (off)"]},a.id))]})}),(0,b.jsx)(f.O,{id:"edit-model",label:"Model",help:"Optional. A Gemini model id, for example gemini-3.8-flash. Empty uses the provider's default.",error:x.model,children:(0,b.jsx)("input",{id:"edit-model",value:v,onChange:a=>w(a.target.value),disabled:!t,placeholder:"gemini-3.8-flash",autoComplete:"off",autoCapitalize:"none",spellCheck:!1,className:`${f.S} font-mono`})})]}),z&&(0,b.jsx)("p",{className:"mb-3 text-[13px] text-err",role:"alert",children:z})]}),(0,b.jsxs)("div",{className:"flex justify-end gap-2 border-t border-line px-[18px] py-3",children:[(0,b.jsx)(f.K,{onClick:h,disabled:B,children:"Cancel"}),(0,b.jsx)(f.K,{type:"submit",variant:"primary",disabled:B,children:B?"Saving…":D.cta})]})]})}a.s(["KeyActions",0,function({k:a,providers:d}){let[j,k]=(0,c.useState)(null);return(0,g.useHoldRefresh)(null!==j),(0,b.jsxs)("span",{className:"inline-flex items-center gap-1",children:[(0,b.jsx)(e.f,{trigger:(0,b.jsx)(f.K,{size:"sm",children:"Revoke"}),title:`Revoke ${a.name}?`,body:`Calls with ${a.prefix}… answer 401 within a minute. Agents using it show "Key revoked". This can't be undone; create a new key instead.`,cta:"Revoke key",danger:!0,onConfirm:async()=>{let b=await l(a.id);return{ok:b.ok,message:(b.ok?b.message:b.error)??""}}}),(0,b.jsx)(h.RowMenu,{label:`Actions for ${a.name}`,items:[{label:"Rename",onSelect:()=>k("rename")},{label:"Change rate limit",onSelect:()=>k("rate")},{label:"Change expiry",onSelect:()=>k("expiry")},{label:"Change routing",onSelect:()=>k("routing")}]}),(0,b.jsx)(i.N,{open:null!==j,onOpenChange:a=>{a||k(null)},children:(0,b.jsx)(i.d,{className:"gap-0 p-0 sm:max-w-[520px]",showCloseButton:!1,children:j&&(0,b.jsx)(o,{mode:j,k:a,providers:d,onDone:()=>k(null)})})})]})}],659526)},136476,a=>{let b={"ai:invoke":{short:"models",long:"Chat completions and the model list through your provider connections."},"read:status":{short:"console data, MCP",long:"Read-only console data: GET /api/v1/status and the MCP server. Database names are aliases; no URLs, emails or secrets."},"write:notes":{short:"post AI notes",long:a.i(901615).C.writeNotesLong}};a.s(["j",0,"90d","D",0,20,"J",0,["ai:invoke"],"W",0,["7d","30d","90d","1y","never"],"o",0,{"7d":"In 7 days","30d":"In 30 days","90d":"In 90 days","1y":"In 1 year",never:"Never"},"B",0,["ai:invoke","read:status","write:notes"],"h",0,b])}]})();
|
|
2
2
|
|
|
3
3
|
//# sourceMappingURL=src_10zavgy86u3us._.js.map
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
(()=>{"use strict";module.exports=[150908,a=>{var b=a.i(211857);let c=(0,b.registerClientReference)(function(){throw Error("Attempted to call DnsRecordActions() from the server but DnsRecordActions is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/src/app/(console)/dns/record-actions.tsx","DnsRecordActions"),d=(0,b.registerClientReference)(function(){throw Error("Attempted to call SetDnsOnlyButton() from the server but SetDnsOnlyButton is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/src/app/(console)/dns/record-actions.tsx","SetDnsOnlyButton");a.s(["DnsRecordActions",0,c,"SetDnsOnlyButton",0,d])},98988,a=>{var b=a.i(150908);a.n(b)},110434,a=>{let b=(0,a.i(211857).registerClientReference)(function(){throw Error("Attempted to call ListFilter() from the server but ListFilter 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/list-filter.tsx","ListFilter");a.s(["ListFilter",0,b])},959581,a=>{var b=a.i(110434);a.n(b)},745374,a=>{var b=a.i(211857);let c=(0,b.registerClientReference)(function(){throw Error("Attempted to call AutoRefresh() from the server but AutoRefresh 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/live.tsx","AutoRefresh");(0,b.registerClientReference)(function(){throw Error("Attempted to call LiveIndicator() from the server but LiveIndicator 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/live.tsx","LiveIndicator"),(0,b.registerClientReference)(function(){throw Error("Attempted to call holdCount() from the server but holdCount 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/live.tsx","holdCount"),(0,b.registerClientReference)(function(){throw Error("Attempted to call holdRefresh() from the server but holdRefresh 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/live.tsx","holdRefresh"),(0,b.registerClientReference)(function(){throw Error("Attempted to call holdWhile() from the server but holdWhile 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/live.tsx","holdWhile"),(0,b.registerClientReference)(function(){throw Error("Attempted to call useHoldRefresh() from the server but useHoldRefresh 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/live.tsx","useHoldRefresh"),a.s(["AutoRefresh",0,c])},685865,a=>{var b=a.i(745374);a.n(b)}
|
|
1
|
+
(()=>{"use strict";module.exports=[150908,a=>{var b=a.i(211857);let c=(0,b.registerClientReference)(function(){throw Error("Attempted to call DnsRecordActions() from the server but DnsRecordActions is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/src/app/(console)/dns/record-actions.tsx","DnsRecordActions"),d=(0,b.registerClientReference)(function(){throw Error("Attempted to call SetDnsOnlyButton() from the server but SetDnsOnlyButton is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/src/app/(console)/dns/record-actions.tsx","SetDnsOnlyButton");a.s(["DnsRecordActions",0,c,"SetDnsOnlyButton",0,d])},98988,a=>{var b=a.i(150908);a.n(b)},110434,a=>{let b=(0,a.i(211857).registerClientReference)(function(){throw Error("Attempted to call ListFilter() from the server but ListFilter 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/list-filter.tsx","ListFilter");a.s(["ListFilter",0,b])},959581,a=>{var b=a.i(110434);a.n(b)},745374,a=>{var b=a.i(211857);let c=(0,b.registerClientReference)(function(){throw Error("Attempted to call AutoRefresh() from the server but AutoRefresh 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/live.tsx","AutoRefresh");(0,b.registerClientReference)(function(){throw Error("Attempted to call LiveIndicator() from the server but LiveIndicator 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/live.tsx","LiveIndicator"),(0,b.registerClientReference)(function(){throw Error("Attempted to call holdCount() from the server but holdCount 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/live.tsx","holdCount"),(0,b.registerClientReference)(function(){throw Error("Attempted to call holdRefresh() from the server but holdRefresh 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/live.tsx","holdRefresh"),(0,b.registerClientReference)(function(){throw Error("Attempted to call holdWhile() from the server but holdWhile 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/live.tsx","holdWhile"),(0,b.registerClientReference)(function(){throw Error("Attempted to call markCollectorRun() from the server but markCollectorRun 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/live.tsx","markCollectorRun"),(0,b.registerClientReference)(function(){throw Error("Attempted to call setRefreshChoice() from the server but setRefreshChoice 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/live.tsx","setRefreshChoice"),(0,b.registerClientReference)(function(){throw Error("Attempted to call useHoldRefresh() from the server but useHoldRefresh 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/live.tsx","useHoldRefresh"),a.s(["AutoRefresh",0,c])},685865,a=>{var b=a.i(745374);a.n(b)}]})();
|
|
2
2
|
|
|
3
|
-
//# sourceMappingURL=
|
|
3
|
+
//# sourceMappingURL=src_1751lvujjc-tz._.js.map
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
(()=>{"use strict";module.exports=[745374,a=>{var b=a.i(211857);let c=(0,b.registerClientReference)(function(){throw Error("Attempted to call AutoRefresh() from the server but AutoRefresh 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/live.tsx","AutoRefresh");(0,b.registerClientReference)(function(){throw Error("Attempted to call LiveIndicator() from the server but LiveIndicator 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/live.tsx","LiveIndicator"),(0,b.registerClientReference)(function(){throw Error("Attempted to call holdCount() from the server but holdCount 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/live.tsx","holdCount"),(0,b.registerClientReference)(function(){throw Error("Attempted to call holdRefresh() from the server but holdRefresh 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/live.tsx","holdRefresh"),(0,b.registerClientReference)(function(){throw Error("Attempted to call holdWhile() from the server but holdWhile 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/live.tsx","holdWhile"),(0,b.registerClientReference)(function(){throw Error("Attempted to call markCollectorRun() from the server but markCollectorRun 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/live.tsx","markCollectorRun"),(0,b.registerClientReference)(function(){throw Error("Attempted to call setRefreshChoice() from the server but setRefreshChoice 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/live.tsx","setRefreshChoice"),(0,b.registerClientReference)(function(){throw Error("Attempted to call useHoldRefresh() from the server but useHoldRefresh 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/live.tsx","useHoldRefresh"),a.s(["AutoRefresh",0,c])},685865,a=>{var b=a.i(745374);a.n(b)},916056,912459,a=>{let b=async()=>"none",c=async()=>null,d=async()=>null;a.s(["A",0,()=>null,"C",0,()=>null,"t",0,{sub:"What each provider did through Watchbell, and each console key's own limit.",sourceNote:null},"V",0,()=>null,"L",0,()=>null,"T",0,c,"Q",0,b,"K",0,d],916056);var e=a.i(245710);a.s(["L",0,function(a,b){let c=Math.max(0,Math.round((b.getTime()-a.getTime())/1e3));if(c<60)return"just now";let d=Math.round(c/60);if(d<60)return`${d} min ago`;let e=Math.round(d/60);return e<48?`${e} h ago`:`${Math.round(e/24)} days ago`},"_",0,function(a){let b=Math.max(0,Math.round(a/1e3));if(b<60)return`${b} s`;let c=Math.floor(b/60);return b%60?`${c} min ${b%60} s`:`${c} min`},"X",0,function(a,b){let c=b=>(0,e.I)("en-GB",b).format(a),d=c({hour:"2-digit",minute:"2-digit",hour12:!1});return(0,e.x)(a)===(0,e.x)(b)?`${d} ${(0,e.J)(a)}`:`${c({day:"numeric",month:"short"})} ${d} ${(0,e.J)(a)}`}],912459)}]})();
|
|
2
|
+
|
|
3
|
+
//# sourceMappingURL=src_1f1x6508qetmp._.js.map
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
module.exports=[461750,a=>{a.v(b=>Promise.all(["server/chunks/ssr/[root-of-the-server]
|
|
1
|
+
module.exports=[461750,a=>{a.v(b=>Promise.all(["server/chunks/ssr/[root-of-the-server]__0an0wsglj2bhh._.js","server/chunks/ssr/src_db_pglite_ts_0r1r9wqxilnam._.js","server/chunks/ssr/node_modules_0vppy-p56c35f._.js","server/chunks/ssr/node_modules_@electric-sql_pglite_dist_0j1fzsq3ed7ph._.js"].map(b=>a.l(b))).then(()=>b(614755)))},73710,a=>{a.v(b=>Promise.all(["server/chunks/ssr/src_lib_demo_cookie_ts_0a12-0n1novgh._.js"].map(b=>a.l(b))).then(()=>b(716983)))},871289,a=>{a.v(b=>Promise.all(["server/chunks/ssr/[root-of-the-server]__0paolyy3xkow9._.js","server/chunks/ssr/node_modules_0vppy-p56c35f._.js","server/chunks/ssr/node_modules_@electric-sql_pglite_dist_0j1fzsq3ed7ph._.js"].map(b=>a.l(b))).then(()=>b(204048)))},522169,a=>{a.v(b=>Promise.all(["server/chunks/ssr/src_lib_demo_seed_members_ts_0pz2fa9295pvm._.js"].map(b=>a.l(b))).then(()=>b(615089)))},372153,a=>{a.v(b=>Promise.all(["server/chunks/ssr/src_lib_demo_session_ts_0rwvb3aun41zx._.js","server/chunks/ssr/src_lib_demo_0mr090huk17s8._.js"].map(b=>a.l(b))).then(()=>b(765161)))}];
|
|
2
2
|
|
|
3
|
-
//# sourceMappingURL=
|
|
3
|
+
//# sourceMappingURL=src_1fomo1_as1-ea._.js.map
|