watchbell 1.1.0 → 1.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/server/.next/BUILD_ID +1 -1
- package/server/.next/app-path-routes-manifest.json +1 -0
- package/server/.next/build-manifest.json +116 -105
- package/server/.next/prerender-manifest.json +3 -3
- package/server/.next/routes-manifest.json +6 -0
- 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 +11 -11
- package/server/.next/server/app/(console)/(private)/ai/agents/page.js +54 -52
- 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 +10 -10
- package/server/.next/server/app/(console)/(private)/ai/ask/page.js +54 -52
- 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 +9 -9
- package/server/.next/server/app/(console)/(private)/ai/connect/page.js +54 -52
- 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 +12 -12
- package/server/.next/server/app/(console)/(private)/ai/keys/page.js +54 -52
- 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 +10 -10
- package/server/.next/server/app/(console)/(private)/ai/logs/page.js +54 -52
- 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 +19 -19
- package/server/.next/server/app/(console)/(private)/ai/models/page.js +54 -52
- 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 +9 -9
- package/server/.next/server/app/(console)/(private)/ai/page.js +54 -52
- 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 +12 -12
- package/server/.next/server/app/(console)/(private)/ai/playground/page.js +54 -52
- 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 +15 -15
- package/server/.next/server/app/(console)/(private)/ai/providers/page.js +54 -52
- 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 +10 -10
- package/server/.next/server/app/(console)/(private)/ai/quota/page.js +54 -52
- 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 +10 -10
- package/server/.next/server/app/(console)/(private)/ai/usage/page.js +54 -52
- 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 +9 -9
- package/server/.next/server/app/(console)/(private)/api-docs/[[...op]]/page.js +54 -52
- 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 +10 -10
- package/server/.next/server/app/(console)/(private)/auto-actions/page.js +54 -52
- package/server/.next/server/app/(console)/(private)/auto-actions/page.js.nft.json +1 -1
- package/server/.next/server/app/(console)/(private)/auto-actions/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/(console)/[...slug]/page/build-manifest.json +3 -3
- package/server/.next/server/app/(console)/[...slug]/page/server-reference-manifest.json +9 -9
- package/server/.next/server/app/(console)/[...slug]/page.js +55 -53
- package/server/.next/server/app/(console)/[...slug]/page.js.nft.json +1 -1
- package/server/.next/server/app/(console)/[...slug]/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/(console)/alerts/page/build-manifest.json +3 -3
- package/server/.next/server/app/(console)/alerts/page/server-reference-manifest.json +22 -22
- package/server/.next/server/app/(console)/alerts/page.js +54 -52
- 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 +23 -23
- package/server/.next/server/app/(console)/apps/[id]/page.js +54 -52
- 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 +11 -11
- package/server/.next/server/app/(console)/apps/page.js +54 -52
- 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 +12 -12
- package/server/.next/server/app/(console)/backups/page.js +54 -52
- 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 +9 -9
- package/server/.next/server/app/(console)/catalog/page.js +54 -52
- 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 +54 -54
- package/server/.next/server/app/(console)/connections/page.js +60 -58
- 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 +9 -9
- package/server/.next/server/app/(console)/d1/page.js +54 -52
- 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 +14 -14
- package/server/.next/server/app/(console)/deployments/page.js +54 -52
- 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 +16 -16
- package/server/.next/server/app/(console)/dns/page.js +54 -52
- 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 +11 -11
- package/server/.next/server/app/(console)/domains/page.js +54 -52
- 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 +9 -9
- package/server/.next/server/app/(console)/events/page.js +54 -52
- 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 +15 -15
- package/server/.next/server/app/(console)/firebase/page.js +55 -53
- 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 +10 -10
- package/server/.next/server/app/(console)/logs/page.js +54 -52
- 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/app-paths-manifest.json +3 -0
- package/server/.next/server/app/(console)/manage/sections/page/build-manifest.json +22 -0
- package/server/.next/server/app/(console)/manage/sections/page/next-font-manifest.json +11 -0
- package/server/.next/server/app/(console)/manage/sections/page/react-loadable-manifest.json +1 -0
- package/server/.next/server/app/(console)/manage/sections/page/server-reference-manifest.json +105 -0
- package/server/.next/server/app/(console)/manage/sections/page.js +104 -0
- package/server/.next/server/app/(console)/manage/sections/page.js.nft.json +1 -0
- package/server/.next/server/app/(console)/manage/sections/page_client-reference-manifest.js +3 -0
- 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 +20 -20
- package/server/.next/server/app/(console)/neon/page.js +54 -52
- 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 +18 -18
- package/server/.next/server/app/(console)/overview/page.js +54 -52
- 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 +10 -10
- package/server/.next/server/app/(console)/repos/[id]/page.js +54 -52
- 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 +9 -9
- package/server/.next/server/app/(console)/repos/page.js +54 -52
- 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 +19 -19
- package/server/.next/server/app/(console)/settings/page.js +54 -52
- 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 +16 -16
- package/server/.next/server/app/(console)/sql/page.js +54 -52
- 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 +9 -9
- package/server/.next/server/app/(console)/status/page.js +54 -52
- 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 +29 -29
- package/server/.next/server/app/(console)/supabase/page.js +54 -52
- 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 +9 -9
- package/server/.next/server/app/(console)/topology/page.js +54 -52
- 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 +9 -9
- package/server/.next/server/app/(console)/turso/page.js +54 -52
- 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 +9 -9
- package/server/.next/server/app/(console)/upstash/page.js +54 -52
- 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 +22 -22
- package/server/.next/server/app/(console)/uptime/page.js +54 -52
- 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 +14 -14
- package/server/.next/server/app/(console)/welcome/page.js +55 -53
- package/server/.next/server/app/(console)/welcome/page.js.nft.json +1 -1
- package/server/.next/server/app/(console)/welcome/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/_global-error/page/build-manifest.json +3 -3
- package/server/.next/server/app/_global-error/page/server-reference-manifest.json +1 -1
- package/server/.next/server/app/_global-error/page.js.nft.json +1 -1
- package/server/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/_global-error.html +1 -1
- package/server/.next/server/app/_global-error.rsc +3 -3
- package/server/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +2 -2
- package/server/.next/server/app/_global-error.segments/_full.segment.rsc +3 -3
- package/server/.next/server/app/_global-error.segments/_tree.segment.rsc +2 -2
- package/server/.next/server/app/_not-found/page/build-manifest.json +3 -3
- package/server/.next/server/app/_not-found/page/server-reference-manifest.json +1 -1
- package/server/.next/server/app/_not-found/page.js.nft.json +1 -1
- package/server/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/_not-found.html +1 -1
- package/server/.next/server/app/_not-found.rsc +4 -4
- package/server/.next/server/app/_not-found.segments/_full.segment.rsc +4 -4
- package/server/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +3 -3
- package/server/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
- package/server/.next/server/app/account/password/page/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.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 +74 -71
- 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 +66 -63
- package/server/.next/server/app/api/daily/route.js.nft.json +1 -1
- package/server/.next/server/app/api/health/route.js.nft.json +1 -1
- package/server/.next/server/app/api/ping/[...parts]/route.js.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 +71 -68
- package/server/.next/server/app/api/telegram/webhook/route.js.nft.json +1 -1
- package/server/.next/server/app/api/v1/[[...rest]]/route.js.nft.json +1 -1
- package/server/.next/server/app/api/v1/advice/route.js +4 -4
- 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 +2 -2
- 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 +2 -2
- package/server/.next/server/app/api/v1/ai/models/route.js.nft.json +1 -1
- package/server/.next/server/app/api/v1/ai/questions/[id]/route.js +1 -1
- package/server/.next/server/app/api/v1/ai/questions/[id]/route.js.nft.json +1 -1
- package/server/.next/server/app/api/v1/ai/questions/route.js +5 -5
- 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 +5 -5
- package/server/.next/server/app/api/v1/mcp/route.js.nft.json +1 -1
- package/server/.next/server/app/api/v1/me/route.js +1 -1
- package/server/.next/server/app/api/v1/me/route.js.nft.json +1 -1
- package/server/.next/server/app/api/v1/openapi.json/route.js +1 -1
- package/server/.next/server/app/api/v1/openapi.json/route.js.nft.json +1 -1
- package/server/.next/server/app/api/v1/status/apps/[app]/route.js +4 -4
- 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 +4 -4
- package/server/.next/server/app/api/v1/status/route.js.nft.json +1 -1
- package/server/.next/server/app/api/watchdog/route.js +19 -18
- package/server/.next/server/app/api/watchdog/route.js.nft.json +1 -1
- package/server/.next/server/app/auth/confirm/route.js.nft.json +1 -1
- package/server/.next/server/app/auth/google/callback/route.js.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/favicon.ico/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.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.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.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.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.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.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.nft.json +1 -1
- package/server/.next/server/app/signin/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app-paths-manifest.json +1 -0
- package/server/.next/server/chunks/{[externals]__0fbnlnnial7w5._.js → [externals]__0qo8lpb70m87u._.js} +1 -1
- package/server/.next/server/chunks/{[externals]__1e0dmqhilgze5._.js → [externals]__100hq0n2xtenb._.js} +1 -1
- package/server/.next/server/chunks/{[externals]__1jhautmcwmgii._.js → [externals]__1irgb5qz1s3gv._.js} +1 -1
- package/server/.next/server/chunks/[root-of-the-server]__03276vwi4jgvk._.js +1 -1
- package/server/.next/server/chunks/[root-of-the-server]__049ykc067tlsv._.js +1 -1
- package/server/.next/server/chunks/[root-of-the-server]__04q-9779vl4kn._.js +3 -0
- package/server/.next/server/chunks/[root-of-the-server]__04rnior8cyxtx._.js +3 -0
- package/server/.next/server/chunks/{[root-of-the-server]__0hju4mctdmvz9._.js → [root-of-the-server]__06ek056i_j_uk._.js} +2 -2
- package/server/.next/server/chunks/[root-of-the-server]__06f9e4kpi0mw8._.js +1 -1
- package/server/.next/server/chunks/[root-of-the-server]__06jphm4auz_sh._.js +3 -0
- package/server/.next/server/chunks/{[root-of-the-server]__0rak0ce6prxwp._.js → [root-of-the-server]__06r-019fixp3f._.js} +1 -1
- package/server/.next/server/chunks/{[root-of-the-server]__1-q6_msattgcu._.js → [root-of-the-server]__07uknh5b-embq._.js} +1 -1
- package/server/.next/server/chunks/{[root-of-the-server]__0vctt_0kj1gz4._.js → [root-of-the-server]__07v5e0vzgl4n2._.js} +2 -2
- package/server/.next/server/chunks/{[root-of-the-server]__14zpwd7xntffk._.js → [root-of-the-server]__08fyoixg__c7n._.js} +1 -1
- package/server/.next/server/chunks/[root-of-the-server]__0_rfeg3389imx._.js +1 -1
- package/server/.next/server/chunks/[root-of-the-server]__0b2hzo6nez0we._.js +1 -1
- package/server/.next/server/chunks/[root-of-the-server]__0b9tciqdsctau._.js +3 -0
- package/server/.next/server/chunks/{[root-of-the-server]__15tt645jfx-br._.js → [root-of-the-server]__0b_4w-5x5u7ag._.js} +1 -1
- package/server/.next/server/chunks/{[root-of-the-server]__1-37ctpn8yw_m._.js → [root-of-the-server]__0bnasoi-x21jc._.js} +1 -1
- package/server/.next/server/chunks/{[root-of-the-server]__08i_or_xyqg4g._.js → [root-of-the-server]__0d8ypilha-el8._.js} +2 -2
- package/server/.next/server/chunks/{[root-of-the-server]__0f5l9--3_wjvx._.js → [root-of-the-server]__0flqwe7amc3mz._.js} +2 -2
- package/server/.next/server/chunks/{[root-of-the-server]__11kfkk5yxz4ge._.js → [root-of-the-server]__0fw19tsgp-vbq._.js} +2 -2
- package/server/.next/server/chunks/{[root-of-the-server]__1_l4gp3r2d-7x._.js → [root-of-the-server]__0fw7l5y58_xcd._.js} +2 -2
- package/server/.next/server/chunks/{[root-of-the-server]__0j68ia9q425ff._.js → [root-of-the-server]__0g1tldn4xjewd._.js} +2 -2
- package/server/.next/server/chunks/{[root-of-the-server]__03pc2mot62sow._.js → [root-of-the-server]__0h1qhdjpfq1d4._.js} +2 -2
- package/server/.next/server/chunks/{[root-of-the-server]__0hpdrg-m0n6ty._.js → [root-of-the-server]__0h4n81_nqdr4j._.js} +2 -2
- package/server/.next/server/chunks/{[root-of-the-server]__0i3n8l6ecdb4u._.js → [root-of-the-server]__0hty-wue10pro._.js} +2 -2
- package/server/.next/server/chunks/[root-of-the-server]__0jqgfbhrgi28s._.js +3 -0
- package/server/.next/server/chunks/[root-of-the-server]__0m7i0l3nkbdfm._.js +1 -1
- package/server/.next/server/chunks/[root-of-the-server]__0mwiq4mkf8pc5._.js +1 -1
- package/server/.next/server/chunks/{[root-of-the-server]__0mui3wh3lfb6m._.js → [root-of-the-server]__0npmbdrxybln5._.js} +1 -1
- package/server/.next/server/chunks/{[root-of-the-server]__010exlr_efe2h._.js → [root-of-the-server]__0nqw6z6fp8wad._.js} +2 -2
- package/server/.next/server/chunks/{[root-of-the-server]__0_iz9zh9e_mov._.js → [root-of-the-server]__0olmk-rbbhxlo._.js} +2 -2
- package/server/.next/server/chunks/{[root-of-the-server]__0nsie5dba69e6._.js → [root-of-the-server]__0owyb9lr5t5u-._.js} +2 -2
- package/server/.next/server/chunks/[root-of-the-server]__0p3lnkpxf2-xz._.js +1 -1
- package/server/.next/server/chunks/{[root-of-the-server]__0v1kcolrxwmob._.js → [root-of-the-server]__0si9k9jhdc0bm._.js} +2 -2
- package/server/.next/server/chunks/{[root-of-the-server]__0ul6-jnt2oco7._.js → [root-of-the-server]__0t8d8b4qkw3y-._.js} +1 -1
- package/server/.next/server/chunks/{[root-of-the-server]__0i1de88cj5y-p._.js → [root-of-the-server]__0tl5pxttllr4d._.js} +2 -2
- package/server/.next/server/chunks/{[root-of-the-server]__0m7_0rarf_x86._.js → [root-of-the-server]__0uyh4jgcd9092._.js} +2 -2
- package/server/.next/server/chunks/[root-of-the-server]__0v4-g6c-ls39_._.js +3 -0
- package/server/.next/server/chunks/[root-of-the-server]__0vgnlhvdoh3bn._.js +3 -0
- package/server/.next/server/chunks/[root-of-the-server]__0vp-x4ifpr3p9._.js +1 -1
- package/server/.next/server/chunks/{[root-of-the-server]__15j_u2bz3jc-a._.js → [root-of-the-server]__0wy38l7k36j6g._.js} +1 -1
- package/server/.next/server/chunks/{[root-of-the-server]__0j53mir12jire._.js → [root-of-the-server]__0xiz361p5kdhf._.js} +1 -1
- package/server/.next/server/chunks/{[root-of-the-server]__0ogbwvwpnlx0b._.js → [root-of-the-server]__0z-07azr3zk8s._.js} +1 -1
- package/server/.next/server/chunks/{[root-of-the-server]__0x0x6v75re5_e._.js → [root-of-the-server]__0zxyfd7u67hmv._.js} +1 -1
- package/server/.next/server/chunks/[root-of-the-server]__10c7apgidgs6x._.js +3 -0
- package/server/.next/server/chunks/{[root-of-the-server]__1czhdqbxj_3ov._.js → [root-of-the-server]__10x3lu8jeqgbt._.js} +2 -2
- package/server/.next/server/chunks/{[root-of-the-server]__0gs-x779qi1ba._.js → [root-of-the-server]__11-van59e9p2a._.js} +2 -2
- package/server/.next/server/chunks/[root-of-the-server]__110c-t3wz3nzm._.js +1 -1
- package/server/.next/server/chunks/[root-of-the-server]__116b4n13dv75t._.js +3 -0
- package/server/.next/server/chunks/[root-of-the-server]__11k46kam6tbia._.js +1 -1
- package/server/.next/server/chunks/[root-of-the-server]__11tte6au1b-z-._.js +3 -0
- package/server/.next/server/chunks/[root-of-the-server]__127dbd1prkw0n._.js +3 -0
- package/server/.next/server/chunks/[root-of-the-server]__12uj0887q1ayr._.js +1 -1
- package/server/.next/server/chunks/[root-of-the-server]__13_b24n_f4my4._.js +3 -0
- package/server/.next/server/chunks/[root-of-the-server]__13h--47xmg706._.js +5 -0
- package/server/.next/server/chunks/{[root-of-the-server]__1rf3slum5swk2._.js → [root-of-the-server]__145gadwk31inl._.js} +2 -2
- package/server/.next/server/chunks/{[root-of-the-server]__0qesn8t6k9y_n._.js → [root-of-the-server]__14luo1ecxoqh-._.js} +1 -1
- package/server/.next/server/chunks/{[root-of-the-server]__15ddlx_ma_1iu._.js → [root-of-the-server]__162cm9ds1c5y2._.js} +2 -2
- package/server/.next/server/chunks/[root-of-the-server]__19kwj690b37xf._.js +1 -1
- package/server/.next/server/chunks/[root-of-the-server]__19vsae2naddj5._.js +3 -0
- package/server/.next/server/chunks/[root-of-the-server]__1_l065umy451k._.js +3 -0
- package/server/.next/server/chunks/[root-of-the-server]__1_ow7lgy0u7st._.js +3 -0
- package/server/.next/server/chunks/[root-of-the-server]__1akvpmbiap6nf._.js +1 -1
- package/server/.next/server/chunks/{[root-of-the-server]__0292lwnmh4wtc._.js → [root-of-the-server]__1aza-7l2pl-pm._.js} +2 -2
- package/server/.next/server/chunks/[root-of-the-server]__1bsyavebtmd7w._.js +3 -0
- package/server/.next/server/chunks/[root-of-the-server]__1cju843cjyf1t._.js +3 -0
- package/server/.next/server/chunks/{[root-of-the-server]__1flvcyht5uk7h._.js → [root-of-the-server]__1cla4k3dqtcfb._.js} +2 -2
- package/server/.next/server/chunks/[root-of-the-server]__1fnsa-f0t7bxj._.js +3 -0
- package/server/.next/server/chunks/[root-of-the-server]__1g1176fer3j4e._.js +3 -0
- package/server/.next/server/chunks/[root-of-the-server]__1hqy35gww7ps2._.js +3 -0
- package/server/.next/server/chunks/[root-of-the-server]__1i92wg2yuvs4c._.js +3 -0
- package/server/.next/server/chunks/{[root-of-the-server]__03e141znq0hr-._.js → [root-of-the-server]__1iv6vg3z9ho81._.js} +1 -1
- package/server/.next/server/chunks/{[root-of-the-server]__1jh0el-zvg4hp._.js → [root-of-the-server]__1j3-sv7eqyhjb._.js} +2 -2
- package/server/.next/server/chunks/[root-of-the-server]__1j3w0-cp17tx4._.js +3 -0
- package/server/.next/server/chunks/{[root-of-the-server]__0alnp_0qkhzze._.js → [root-of-the-server]__1j_iy13gp2-on._.js} +2 -2
- package/server/.next/server/chunks/[root-of-the-server]__1kg91b3sadtoc._.js +3 -0
- package/server/.next/server/chunks/[root-of-the-server]__1kjndfodqqamq._.js +3 -0
- package/server/.next/server/chunks/[root-of-the-server]__1mami4vb3y5gd._.js +3 -0
- package/server/.next/server/chunks/[root-of-the-server]__1mse65-7gtj-n._.js +3 -0
- package/server/.next/server/chunks/[root-of-the-server]__1objhlwwrjfjk._.js +1 -1
- package/server/.next/server/chunks/[root-of-the-server]__1pscg7y0et34j._.js +3 -0
- package/server/.next/server/chunks/[root-of-the-server]__1rw0i4x2ake3x._.js +3 -0
- package/server/.next/server/chunks/[root-of-the-server]__1t9zp524wouer._.js +3 -0
- package/server/.next/server/chunks/[root-of-the-server]__1v-789ydxj30e._.js +3 -0
- package/server/.next/server/chunks/[root-of-the-server]__1vi0u2vkv3tk0._.js +1 -1
- package/server/.next/server/chunks/{[root-of-the-server]__1hw6s0e7p2-6g._.js → [root-of-the-server]__1w3svzao_gnxp._.js} +2 -2
- package/server/.next/server/chunks/[root-of-the-server]__1x7ucdyxuh2_k._.js +3 -0
- package/server/.next/server/chunks/{[root-of-the-server]__08l1x_plf4dil._.js → [root-of-the-server]__1xdi98xyay6bn._.js} +1 -1
- package/server/.next/server/chunks/{[root-of-the-server]__1qzor1nqajuyp._.js → [root-of-the-server]__20_1nfa6fiz-q._.js} +2 -2
- package/server/.next/server/chunks/[root-of-the-server]__20b_clyk74g5u._.js +3 -0
- package/server/.next/server/chunks/[root-of-the-server]__20ev6t8zggct2._.js +3 -0
- package/server/.next/server/chunks/_004c7-39glldb._.js +4 -4
- package/server/.next/server/chunks/_008zv66xvj7ey._.js +37 -0
- package/server/.next/server/chunks/{_12uzjq-fbcuvb._.js → _01s3_8ssosvqi._.js} +1 -1
- package/server/.next/server/chunks/_03qlijpos6a21._.js +3 -0
- package/server/.next/server/chunks/_09l75j3ey14tc._.js +1 -1
- package/server/.next/server/chunks/_0a7533vs89s78._.js +7 -0
- package/server/.next/server/chunks/_0ejcrge5k4quv._.js +1 -1
- package/server/.next/server/chunks/_0k4iqzwm6w5_c._.js +37 -0
- package/server/.next/server/chunks/_0kmhvts35imzs._.js +1 -1
- package/server/.next/server/chunks/_0m1ll2r1g77ii._.js +1 -1
- package/server/.next/server/chunks/_0n-wbmmvp4omq._.js +1 -1
- package/server/.next/server/chunks/_0nt4hve0bi30h._.js +37 -0
- package/server/.next/server/chunks/_0op74d4yyc3ma._.js +1 -1
- package/server/.next/server/chunks/_0pf2g5n_ko5dq._.js +3 -0
- package/server/.next/server/chunks/_0qmi54vmnlwdv._.js +1 -1
- package/server/.next/server/chunks/_0qr77omrkuewo._.js +3 -0
- package/server/.next/server/chunks/_0rjh9w2ih3j2h._.js +3 -0
- package/server/.next/server/chunks/_0sy878k2ywjbq._.js +3 -0
- package/server/.next/server/chunks/_0tz4o-qufnu3l._.js +4 -4
- package/server/.next/server/chunks/_0voowig3y32v1._.js +1 -1
- package/server/.next/server/chunks/_0wxm_716tjorj._.js +3 -0
- package/server/.next/server/chunks/_0xf7mtsrkgc9e._.js +1 -1
- package/server/.next/server/chunks/_0zkmkbrbc96-h._.js +3 -0
- package/server/.next/server/chunks/_1-pw7jw52sbti._.js +3 -0
- package/server/.next/server/chunks/_10vh_l3hht4_3._.js +4 -4
- package/server/.next/server/chunks/_14ymj3uzawde4._.js +7 -0
- package/server/.next/server/chunks/_15g-opioju_ju._.js +3 -0
- package/server/.next/server/chunks/_17aiz6zt-yv52._.js +1 -1
- package/server/.next/server/chunks/_1_son1yzo5xvl._.js +3 -0
- package/server/.next/server/chunks/_1b7pc6ohhqxs3._.js +1 -1
- package/server/.next/server/chunks/_1g_prqb_u33e3._.js +1 -1
- package/server/.next/server/chunks/_1i7qkrp3fnx1a._.js +37 -0
- package/server/.next/server/chunks/_1luzeov9x87mg._.js +7 -0
- package/server/.next/server/chunks/{_1jz6k3wy_s8br._.js → _1p0ced3sr0i_8._.js} +1 -1
- package/server/.next/server/chunks/_1v7q0xdxbqawm._.js +1 -1
- package/server/.next/server/chunks/_1zx_54or1pubb._.js +1 -1
- package/server/.next/server/chunks/node_modules_next_dist_1i-_xribpwttd._.js +313 -0
- package/server/.next/server/chunks/src_01jp2f5qmh8e2._.js +3 -0
- package/server/.next/server/chunks/src_063xvouojxyoa._.js +1 -1
- package/server/.next/server/chunks/src_088gmyaew7ds0._.js +3 -0
- package/server/.next/server/chunks/{src_08bzavsfds295._.js → src_0kwnhwi77unm7._.js} +2 -2
- package/server/.next/server/chunks/src_0xqorb3-ef3ub._.js +1 -1
- package/server/.next/server/chunks/src_0y_4gogmeu-2k._.js +3 -0
- package/server/.next/server/chunks/src_1-xw4hea2lvb3._.js +1 -1
- package/server/.next/server/chunks/src_1a5yibsjcy1ga._.js +1 -1
- package/server/.next/server/chunks/src_1bqzr81r3wkvi._.js +3 -0
- package/server/.next/server/chunks/{src_03umyw-p7jhaj._.js → src_1dsh9rzlos6-1._.js} +2 -2
- package/server/.next/server/chunks/src_1hy7u0jtydq_d._.js +3 -0
- package/server/.next/server/chunks/src_1j2o14j0-23xv._.js +3 -0
- package/server/.next/server/chunks/src_1j71dvub05y-4._.js +3 -0
- package/server/.next/server/chunks/{src_0k78ifotuztod._.js → src_1no_yh953mran._.js} +2 -2
- package/server/.next/server/chunks/src_1s7yll47_n_hy._.js +3 -0
- package/server/.next/server/chunks/src_1tux0n9_5b1kr._.js +3 -3
- package/server/.next/server/chunks/src_1wduh0eckiwl1._.js +3 -0
- package/server/.next/server/chunks/src_1wzm081p6qyre._.js +3 -3
- 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_0oz4gm8agoidh._.js +6 -0
- package/server/.next/server/chunks/src_lib_0s_txig7jm3ty._.js +3 -3
- package/server/.next/server/chunks/src_lib_0ta8sd9jeuw50._.js +15 -0
- package/server/.next/server/chunks/src_lib_0y-obfzqjj0c6._.js +6 -0
- package/server/.next/server/chunks/src_lib_10_w0ihgmx4e6._.js +6 -0
- package/server/.next/server/chunks/src_lib_15wd7ab4u5nrn._.js +3 -3
- package/server/.next/server/chunks/src_lib_1en6omqx66g9d._.js +15 -0
- package/server/.next/server/chunks/{src_lib_0vl2-zp4wzw7n._.js → src_lib_1p21oczr6lh5a._.js} +1 -1
- package/server/.next/server/chunks/src_lib_1qo6t00wwitz6._.js +15 -0
- package/server/.next/server/chunks/src_lib_1sz77jjn7xl7o._.js +1 -1
- package/server/.next/server/chunks/src_lib_1yewk45thnv1h._.js +1 -1
- package/server/.next/server/chunks/src_lib_1z73euz6d3tus._.js +6 -0
- package/server/.next/server/chunks/src_lib_collector_auth_ts_0lqx92__e4zij._.js +4 -4
- package/server/.next/server/chunks/src_lib_collector_runners_ts_12z4gtgikss74._.js +6 -6
- package/server/.next/server/chunks/src_lib_data_logs-db_ts_1ddw07do12mmk._.js +2 -2
- package/server/.next/server/chunks/src_lib_data_sections-db_ts_1ky6-o4z1mimq._.js +6 -0
- package/server/.next/server/chunks/src_lib_notify_lang_ts_1r2w02ctaky7e._.js +1 -1
- package/server/.next/server/chunks/src_lib_providers_info_ts_02x6g30rg2hsp._.js +3 -0
- package/server/.next/server/chunks/src_lib_view_databases_ts_0fdc7jkjvyrxi._.js +3 -0
- package/server/.next/server/chunks/src_private_ai_gateway_ts_04_5ao9914d0p._.js +1 -1
- package/server/.next/server/chunks/src_private_notes_notes-actions_ts_1g63g8u965fhc._.js +1 -1
- package/server/.next/server/chunks/ssr/1oeh_server_app_(console)_(private)_ai_agents_page_actions_1q6nc5chwn5k4.js +1 -1
- package/server/.next/server/chunks/ssr/1oeh_server_app_(console)_(private)_ai_models_page_actions_0n_anax2l1jpu.js +1 -1
- package/server/.next/server/chunks/ssr/1oeh_server_app_(console)_(private)_ai_playground_page_actions_1kyng_xuojdtb.js +1 -1
- package/server/.next/server/chunks/ssr/1oeh_server_app_(console)_(private)_ai_quota_page_actions_04r4ro6x7-p7p.js +1 -1
- package/server/.next/server/chunks/ssr/1oeh_server_app_(console)_(private)_ai_usage_page_actions_1fq9uugdpqa_l.js +1 -1
- package/server/.next/server/chunks/ssr/1oeh_server_app_(console)_(private)_auto-actions_page_actions_0mhtiq_5szpe0.js +1 -1
- package/server/.next/server/chunks/ssr/{[externals]__0vbbz7arebnub._.js → [externals]__0zvy4iicnrk95._.js} +1 -1
- package/server/.next/server/chunks/ssr/[root-of-the-server]__02qyxz9eh8_eh._.js +1 -1
- package/server/.next/server/chunks/ssr/[root-of-the-server]__04ovk2bqwu87z._.js +3 -0
- package/server/.next/server/chunks/ssr/{[root-of-the-server]__13rgl1h4g39l-._.js → [root-of-the-server]__052_cprs0alpy._.js} +1 -1
- package/server/.next/server/chunks/ssr/{[root-of-the-server]__18b1wk6-2gq4x._.js → [root-of-the-server]__0543ddliluvv3._.js} +2 -2
- package/server/.next/server/chunks/ssr/{[root-of-the-server]__168ahi_n-kf90._.js → [root-of-the-server]__08479d23kb1xv._.js} +1 -1
- package/server/.next/server/chunks/ssr/{[root-of-the-server]__1drr27jyyhw7p._.js → [root-of-the-server]__08fqg76puqdfr._.js} +1 -1
- package/server/.next/server/chunks/ssr/[root-of-the-server]__09-0oydof-7uw._.js +1 -1
- package/server/.next/server/chunks/ssr/[root-of-the-server]__09nm_hn1c8zhf._.js +3 -0
- package/server/.next/server/chunks/ssr/{[root-of-the-server]__07n1hb3mk44lt._.js → [root-of-the-server]__0acmauri7z1sg._.js} +1 -1
- package/server/.next/server/chunks/ssr/[root-of-the-server]__0ct71emqfru3b._.js +1 -1
- package/server/.next/server/chunks/ssr/{[root-of-the-server]__0ryl_hnreck66._.js → [root-of-the-server]__0e9m8up0h1qhl._.js} +2 -2
- package/server/.next/server/chunks/ssr/{[root-of-the-server]__1xa91qls2i3j4._.js → [root-of-the-server]__0h9gtpapca7i_._.js} +1 -1
- package/server/.next/server/chunks/ssr/[root-of-the-server]__0hln97a4qcziv._.js +3 -0
- package/server/.next/server/chunks/ssr/[root-of-the-server]__0ksvf4x4zcbpb._.js +1 -1
- package/server/.next/server/chunks/ssr/[root-of-the-server]__0lc7my3iqbrsu._.js +1 -1
- package/server/.next/server/chunks/ssr/[root-of-the-server]__0n7cj-oti5wct._.js +2 -2
- package/server/.next/server/chunks/ssr/[root-of-the-server]__0ncef7_34ta3-._.js +1 -1
- package/server/.next/server/chunks/ssr/[root-of-the-server]__0wcnxr_g-bd3r._.js +1 -1
- package/server/.next/server/chunks/ssr/[root-of-the-server]__1-o_iq-ed9vc8._.js +1 -1
- package/server/.next/server/chunks/ssr/[root-of-the-server]__10bkg3o65q6r4._.js +1 -1
- package/server/.next/server/chunks/ssr/[root-of-the-server]__12qymdfh83hht._.js +3 -0
- package/server/.next/server/chunks/ssr/[root-of-the-server]__13oi70jo-u731._.js +2 -2
- package/server/.next/server/chunks/ssr/[root-of-the-server]__146kj3-h6fkaq._.js +1 -1
- package/server/.next/server/chunks/ssr/{[root-of-the-server]__0hbk3gqja86zp._.js → [root-of-the-server]__15n-r12rnj61t._.js} +1 -1
- package/server/.next/server/chunks/ssr/[root-of-the-server]__16o4p3l21rdq3._.js +3 -0
- package/server/.next/server/chunks/ssr/[root-of-the-server]__17kocbnwlcw6d._.js +1 -1
- package/server/.next/server/chunks/ssr/[root-of-the-server]__19_nr6j2w-in_._.js +3 -0
- 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]__1gw6334w8y2my._.js +1 -1
- package/server/.next/server/chunks/ssr/[root-of-the-server]__1i69oli51is1u._.js +1 -1
- package/server/.next/server/chunks/ssr/{[root-of-the-server]__11y6b96ofb-c5._.js → [root-of-the-server]__1k1fmq0-rg3p0._.js} +2 -2
- package/server/.next/server/chunks/ssr/[root-of-the-server]__1lx2k37wgre3d._.js +1 -1
- package/server/.next/server/chunks/ssr/{[root-of-the-server]__1n1pq5j5p4_qn._.js → [root-of-the-server]__1owrn7crnsybx._.js} +1 -1
- package/server/.next/server/chunks/ssr/[root-of-the-server]__1w1472ukyh58r._.js +1 -1
- package/server/.next/server/chunks/ssr/[root-of-the-server]__20ht054m5-_d6._.js +1 -1
- package/server/.next/server/chunks/ssr/_0-uwh2rwm_dic._.js +2 -2
- package/server/.next/server/chunks/ssr/_026w_ig6vy9bt._.js +1 -1
- package/server/.next/server/chunks/ssr/{_1wu_8nu5allm0._.js → _05kq3r87s7p3q._.js} +1 -1
- package/server/.next/server/chunks/ssr/_06kwu83_fmex9._.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/_0_tr9fol2yq33._.js +1 -1
- package/server/.next/server/chunks/ssr/_0_ul4mlc_pj5i._.js +2 -2
- package/server/.next/server/chunks/ssr/_0a22b7zsckifp._.js +1 -1
- package/server/.next/server/chunks/ssr/_0azq3ml4gbn1d._.js +1 -1
- package/server/.next/server/chunks/ssr/_0cw4kz3d6kmb1._.js +1 -1
- package/server/.next/server/chunks/ssr/_0d702k82llasi._.js +1 -1
- package/server/.next/server/chunks/ssr/_0fnl7z-saj7nc._.js +1 -1
- package/server/.next/server/chunks/ssr/_0hykblvnwc2ar._.js +1 -1
- package/server/.next/server/chunks/ssr/_0i-e824vtomvg._.js +2 -2
- package/server/.next/server/chunks/ssr/_0jjoot3rhbde3._.js +2 -2
- package/server/.next/server/chunks/ssr/_0kn710rrv_o2t._.js +2 -2
- package/server/.next/server/chunks/ssr/_0m1ll2r1g77ii._.js +1 -1
- package/server/.next/server/chunks/ssr/_0mgclon6_oh87._.js +2 -2
- package/server/.next/server/chunks/ssr/{_08u2qnetu4ghm._.js → _0ooh0hh-r_12s._.js} +2 -2
- package/server/.next/server/chunks/ssr/_0oovfx_t_-u0k._.js +1 -1
- package/server/.next/server/chunks/ssr/{_06sp8cllu_ljh._.js → _0pn3dn9s9es51._.js} +2 -2
- package/server/.next/server/chunks/ssr/_0qnv1uc1_yv28._.js +2 -2
- package/server/.next/server/chunks/ssr/_0qo8tc43kjsf_._.js +1 -1
- package/server/.next/server/chunks/ssr/{_12348a3ug1-wo._.js → _0r04c1-snv6jw._.js} +2 -2
- package/server/.next/server/chunks/ssr/_0sotiqakj-6ci._.js +1 -1
- package/server/.next/server/chunks/ssr/_0tcmsw8hszixv._.js +1 -1
- package/server/.next/server/chunks/ssr/{_216rrmkts392q._.js → _0tnfblwwlyvq2._.js} +2 -2
- package/server/.next/server/chunks/ssr/_0uogspz6zrvwk._.js +2 -2
- package/server/.next/server/chunks/ssr/{_1exwj9ou5yh71._.js → _0x1vi7mal3bqd._.js} +2 -2
- package/server/.next/server/chunks/ssr/_1-6d1tm3r_qwg._.js +1 -1
- package/server/.next/server/chunks/ssr/_10bven6gb1vj0._.js +1 -1
- package/server/.next/server/chunks/ssr/_10pz3ggun9s5i._.js +2 -2
- package/server/.next/server/chunks/ssr/{_1ibagew7zj8y6._.js → _11w5w9dpxcf1w._.js} +2 -2
- package/server/.next/server/chunks/ssr/_12ddramfkd6o1._.js +2 -2
- package/server/.next/server/chunks/ssr/{_1p4i1e1kw70-_._.js → _14kop_5asppd8._.js} +2 -2
- package/server/.next/server/chunks/ssr/_15ft896zgt02e._.js +2 -2
- package/server/.next/server/chunks/ssr/_16t9k9e5cjvas._.js +1 -1
- package/server/.next/server/chunks/ssr/_18lgd6o04ugow._.js +2 -2
- package/server/.next/server/chunks/ssr/_19-3vzkc6rk97._.js +1 -1
- package/server/.next/server/chunks/ssr/_1_-o2s48aj4i7._.js +1 -1
- package/server/.next/server/chunks/ssr/_1b1ano88ar-gi._.js +2 -2
- package/server/.next/server/chunks/ssr/_1b4uqc9fwt4dy._.js +1 -1
- package/server/.next/server/chunks/ssr/_1boia2p3_0nsz._.js +2 -2
- package/server/.next/server/chunks/ssr/_1c28jitsyufnt._.js +1 -1
- package/server/.next/server/chunks/ssr/_1cl55h_h3q-b_._.js +1 -1
- package/server/.next/server/chunks/ssr/_1dx207la592b7._.js +2 -2
- package/server/.next/server/chunks/ssr/_1e24cpw3g7njr._.js +2 -2
- package/server/.next/server/chunks/ssr/_1flla16o7o9ba._.js +1 -1
- 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/_1i77n2n-wb98v._.js +2 -2
- package/server/.next/server/chunks/ssr/_1j9cka-44jd65._.js +1 -1
- package/server/.next/server/chunks/ssr/_1jh_o2i8hj2g5._.js +1 -1
- package/server/.next/server/chunks/ssr/_1nir32qtr99-r._.js +1 -1
- package/server/.next/server/chunks/ssr/_1sq12-1_02tzt._.js +2 -2
- package/server/.next/server/chunks/ssr/_1ybhu25y38395._.js +2 -2
- package/server/.next/server/chunks/ssr/_1ykxf4mi60jog._.js +2 -2
- package/server/.next/server/chunks/ssr/_1z6dy1k48mskn._.js +1 -1
- package/server/.next/server/chunks/ssr/_1zr0t31h18f2p._.js +3 -0
- package/server/.next/server/chunks/ssr/_210edglbxmcb3._.js +2 -2
- package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_(private)_ai_keys_page_actions_1910ocjt__nlh.js +1 -1
- package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_(private)_ai_logs_page_actions_136-s4sxl6nra.js +1 -1
- package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_alerts_page_actions_0f7cxitw-svnl.js +1 -1
- package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_apps_[id]_page_actions_14l8--w36mywn.js +1 -1
- package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_apps_page_actions_1uaicj0j8stji.js +1 -1
- package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_connections_page_actions_06a1fnrawxlh1.js +3 -0
- package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_dns_page_actions_1p2deebbgom7b.js +1 -1
- package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_domains_page_actions_0-wg58qcvu_rv.js +1 -1
- package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_firebase_page_actions_215m-kkv06r4z.js +1 -1
- package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_logs_page_actions_11-8xinblaop_.js +1 -1
- package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_manage_sections_page_actions_0ven9q46d3d7s.js +3 -0
- package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_settings_page_actions_1z3l1p4keed3m.js +1 -1
- package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_supabase_page_actions_1evatil08dntl.js +1 -1
- package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_uptime_page_actions_0k1237d-q3oc4.js +1 -1
- package/server/.next/server/chunks/ssr/_next-internal_server_app_account_password_page_actions_1v4e71_oifbx9.js +1 -1
- package/server/.next/server/chunks/ssr/_next-internal_server_app_signin_page_actions_11wzk446p6_zi.js +1 -1
- package/server/.next/server/chunks/ssr/node_modules_next_dist_0joxsz2q5dh6c._.js +2 -2
- package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0pz49shx663y1.js +3 -0
- package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1b0g9w0uow3x5.js +1 -1
- package/server/.next/server/chunks/ssr/src_00wh1gv_h2pjs._.js +1 -1
- package/server/.next/server/chunks/ssr/src_01jp2f5qmh8e2._.js +3 -0
- package/server/.next/server/chunks/ssr/src_025wo6h30c00a._.js +1 -1
- package/server/.next/server/chunks/ssr/src_06tjy8wljego8._.js +1 -1
- package/server/.next/server/chunks/ssr/src_084tdkx3c_yqi._.js +1 -1
- package/server/.next/server/chunks/ssr/src_09atx_ns_mlan._.js +1 -1
- package/server/.next/server/chunks/ssr/src_0_5_wl0sww-x7._.js +1 -1
- package/server/.next/server/chunks/ssr/src_0_kumjlw3o034._.js +1 -1
- package/server/.next/server/chunks/ssr/src_0abts6wp5ucc0._.js +1 -1
- package/server/.next/server/chunks/ssr/src_0dl7jkqqm313f._.js +3 -0
- package/server/.next/server/chunks/ssr/src_0f_ip1ke7i9r7._.js +1 -1
- package/server/.next/server/chunks/ssr/src_0fdfz--89117z._.js +1 -1
- package/server/.next/server/chunks/ssr/src_0ho313o5cu3-h._.js +1 -1
- package/server/.next/server/chunks/ssr/src_0iefnjvaszvw_._.js +1 -1
- package/server/.next/server/chunks/ssr/src_0loe22pbn4cuu._.js +1 -1
- package/server/.next/server/chunks/ssr/src_0nylfis4--x5j._.js +1 -1
- package/server/.next/server/chunks/ssr/src_0ohsn5qzqqds_._.js +1 -1
- package/server/.next/server/chunks/ssr/src_0p0fk07bj9gpq._.js +1 -1
- package/server/.next/server/chunks/ssr/src_0ph020gy78gi9._.js +1 -1
- package/server/.next/server/chunks/ssr/src_0t6-d5hmzrbp1._.js +1 -1
- package/server/.next/server/chunks/ssr/src_0uitfl3c1mdqb._.js +1 -1
- package/server/.next/server/chunks/ssr/src_0usxo7vu7o2cj._.js +1 -1
- package/server/.next/server/chunks/ssr/src_0widudneyf0oq._.js +1 -1
- package/server/.next/server/chunks/ssr/src_0xau6d5z5e_md._.js +1 -1
- package/server/.next/server/chunks/ssr/src_1-wu43p02yiel._.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_11iuy79j_finh._.js +3 -0
- package/server/.next/server/chunks/ssr/src_12x8sjp-qdw08._.js +1 -1
- package/server/.next/server/chunks/ssr/src_14aur12he3m2a._.js +1 -1
- package/server/.next/server/chunks/ssr/src_15aqc6akkqade._.js +1 -1
- package/server/.next/server/chunks/ssr/src_15zqi72ky6hi9._.js +1 -1
- package/server/.next/server/chunks/ssr/src_19evuexp67uty._.js +1 -1
- package/server/.next/server/chunks/ssr/src_1am4_ady64k2b._.js +1 -1
- package/server/.next/server/chunks/ssr/src_1cbawr4iw5h-x._.js +1 -1
- package/server/.next/server/chunks/ssr/src_1ccrc8twenijg._.js +1 -1
- package/server/.next/server/chunks/ssr/src_1ctx1an_a3k7g._.js +1 -1
- package/server/.next/server/chunks/ssr/src_1iyzhhf1u_gwo._.js +3 -0
- package/server/.next/server/chunks/ssr/{src_11_hakxhnybdd._.js → src_1ottjkdvhje3g._.js} +2 -2
- package/server/.next/server/chunks/ssr/src_1sdwdnblbiq_g._.js +1 -1
- package/server/.next/server/chunks/ssr/src_1xsg-zd4lt_d4._.js +1 -1
- package/server/.next/server/chunks/ssr/src_1y0xvj1obxu7i._.js +1 -1
- package/server/.next/server/chunks/ssr/src_1zpftf1xj-30l._.js +1 -1
- package/server/.next/server/chunks/ssr/src_20hs1ilkxmap0._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_agents_1fyhh1ldgm23z._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_agents_1lhfs18es1mqc._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_agents_loading_tsx_1qyzywm3br5h2._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_ask_06n-9cjmbb-vu._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_ask_ask-form_tsx_18ttm9nna_9y6._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_ask_loading_tsx_1niopfalguzs6._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_connect_loading_tsx_0q7g8dpf7-vgo._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_keys_04ypt31p11eq7._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_keys_loading_tsx_1hc7x_jx0xx0_._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_logs_0261l8yb2z9x1._.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_logs_loading_tsx_1dwhza0ud8asg._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_models_0ayzqn062pnv5._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_models_0hla-5y3iresx._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_models_loading_tsx_1qtp-lo_o41cr._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_playground_1o1z2qp3tik5x._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_playground_loading_tsx_02umaieh-00pu._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_playground_playground-view_tsx_18ua5zn_a0mar._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_providers_0jamu-nm6x-dh._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_providers_1ru-30x6-uwu4._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_providers_loading_tsx_0u2pi0tk7s3ch._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_quota_1kor9sy67qpiw._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_quota_limits-form_tsx_1vouaaf560z_x._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_quota_loading_tsx_1hhnum-g2eq3n._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_usage_1v003vrkwk19w._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_usage_limits-form_tsx_0sfk3ver58rqw._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_usage_loading_tsx_0pjvu-xuxbxmh._.js +1 -1
- package/server/.next/server/chunks/ssr/{src_app_(console)_1olpa0osy74mq._.js → src_app_(console)_1l7irblrb5fae._.js} +2 -2
- package/server/.next/server/chunks/ssr/src_app_(console)_[___slug]_page_tsx_0b007i3c1v_vg._.js +1 -1
- 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]_1sfvku9ui1le-._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_backups_actions_ts_1vpytsdh0wc1f._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_backups_drive-buttons_tsx_00cku5r_z3jkg._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_backups_page_tsx_0o082iagq_14b._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_catalog_page_tsx_1u2_-bv4yi5oo._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_connections_02upf_c41dauw._.js +3 -0
- 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 +3 -0
- 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_page_tsx_0g20hm13dvbc-._.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 +3 -0
- package/server/.next/server/chunks/ssr/src_app_(console)_manage_sections_section-switch_tsx_1mfs-o_357i22._.js +3 -0
- 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)_neon_1ubea__gt06o0._.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_16-sh45tpob8n._.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_148phfjye0539._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_uptime_1mnnkfi-2zv-k._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_vercel-actions_ts_0wpk1yo9v632d._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_welcome_page_tsx_1bw0x0riq-oem._.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_setup_setup-form_tsx_0izoagdur96e1._.js +1 -1
- package/server/.next/server/chunks/ssr/{src_app_signin_1y1xla7bcc5a1._.js → src_app_signin_1tg6pswa99jbe._.js} +2 -2
- package/server/.next/server/chunks/ssr/src_components_11x625pqq9ovs._.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_ui_dialog_tsx_1tn-i_6d3rhzt._.js +1 -1
- package/server/.next/server/chunks/ssr/src_lib_005l0kcpyu43o._.js +1 -1
- package/server/.next/server/chunks/ssr/{src_lib_0vl2-zp4wzw7n._.js → src_lib_1p21oczr6lh5a._.js} +1 -1
- package/server/.next/server/chunks/ssr/src_lib_1yewk45thnv1h._.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_copy_edition_ts_1y6lsdbj64t9p._.js +1 -1
- package/server/.next/server/chunks/ssr/src_lib_data_keep-active-db_ts_0p07g9b74uu3e._.js +1 -1
- package/server/.next/server/chunks/ssr/src_lib_data_logs-db_ts_1ddw07do12mmk._.js +2 -2
- package/server/.next/server/chunks/ssr/src_lib_data_sections-db_ts_1ky6-o4z1mimq._.js +6 -0
- package/server/.next/server/chunks/ssr/{src_lib_demo_20zjotuzm1lm8._.js → src_lib_demo_0hdl7pzdqejqx._.js} +2 -2
- package/server/.next/server/chunks/ssr/src_lib_providers_info_ts_02x6g30rg2hsp._.js +3 -0
- package/server/.next/server/chunks/ssr/src_private_0iy_wyg2p1jkn._.js +1 -1
- package/server/.next/server/chunks/ssr/src_private_actions_decide-form_tsx_1hngtxpyle3v8._.js +1 -1
- package/server/.next/server/chunks/ssr/src_private_ai_gateway_ts_04_5ao9914d0p._.js +1 -1
- package/server/.next/server/chunks/ssr/src_private_ai_providers_actions_ts_0wxa36ai6s5nn._.js +1 -1
- package/server/.next/server/chunks/ssr/src_private_assist_advisor-notes_ts_0qkpm5c3la7fo._.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 +116 -105
- package/server/.next/server/next-font-manifest.js +1 -1
- package/server/.next/server/next-font-manifest.json +4 -0
- package/server/.next/server/pages/404.html +1 -1
- package/server/.next/server/pages/500.html +1 -1
- package/server/.next/server/preview-props.json +3 -3
- package/server/.next/server/server-reference-manifest.js +1 -1
- package/server/.next/server/server-reference-manifest.json +212 -166
- package/server/.next/static/chunks/{3w445wy3mpp2f.js → 08dak2kh1c6_7.js} +1 -1
- package/server/.next/static/chunks/{2-8ra6gmaw_pb.js → 0b9slopuz4e8a.js} +1 -1
- package/server/.next/static/chunks/{3col9buetdxvh.js → 0dp-tuwkw7xf8.js} +2 -2
- package/server/.next/static/chunks/0fhj_pu5ntcfo.js +1 -0
- package/server/.next/static/chunks/{010bc8dzhxd_0.js → 0h9i512dn01kj.js} +1 -1
- package/server/.next/static/chunks/0ic6_-0gkd6p7.js +1 -0
- package/server/.next/static/chunks/{3s7hj7g12rmuh.js → 0icohez16w-ei.js} +1 -1
- package/server/.next/static/chunks/{08w0t5q93_9mu.js → 0j1wzqg4ukm70.js} +1 -1
- package/server/.next/static/chunks/{2cmw27buw9oce.js → 0kscmnb071fci.js} +1 -1
- package/server/.next/static/chunks/0ld78j1d4j201.js +1 -0
- package/server/.next/static/chunks/{1yb4_s_96v9tf.js → 0qlb-l1uyqku5.js} +1 -1
- package/server/.next/static/chunks/0udh0u8c6ovgf.css +3 -0
- package/server/.next/static/chunks/0y1ss0tjq0nq0.js +1 -0
- package/server/.next/static/chunks/{0dhgqjjm0zj6_.js → 1-oetq3mwlhds.js} +1 -1
- package/server/.next/static/chunks/{3uujo4bht1tqo.js → 11ywzwmfd_pt0.js} +1 -1
- package/server/.next/static/chunks/{1aoqsoecu-fy_.js → 1jaozq01v9r6e.js} +1 -1
- package/server/.next/static/chunks/1ky5exl-c1kbo.js +1 -0
- package/server/.next/static/chunks/{3o7se0ypyiqmz.js → 1lsu_fxiyaeiz.js} +1 -1
- package/server/.next/static/chunks/{1endj3d7bewa1.js → 1o3_amrh-sxr3.js} +1 -1
- package/server/.next/static/chunks/{1vi8tyc1ou2o3.js → 1w9o_jo_pejc5.js} +1 -1
- package/server/.next/static/chunks/{0nx0h-723nd_u.js → 1yvbs41m8_4nc.js} +2 -2
- package/server/.next/static/chunks/{0unx038_2rfsp.js → 22alexnun_rdm.js} +1 -1
- package/server/.next/static/chunks/{06lmwdlx-fkr8.js → 27qwmt1w6-iri.js} +1 -1
- package/server/.next/static/chunks/{02uvde7i-78p5.js → 29humkd2-_1oo.js} +1 -1
- package/server/.next/static/chunks/{0-7by9f00qb4d.js → 29j96yfhxsf41.js} +1 -1
- package/server/.next/static/chunks/{1483hxa9hair1.js → 29qnnsjsgsia6.js} +1 -1
- package/server/.next/static/chunks/{2pbnh717ldzfl.js → 2ii8j9xuvv604.js} +1 -1
- package/server/.next/static/chunks/{2ufr23d_eyosj.js → 2m0ftj__ody0m.js} +1 -1
- package/server/.next/static/chunks/{201zah03wlibg.js → 2q88116332v43.js} +1 -1
- package/server/.next/static/chunks/2rbtw3em5hkt4.js +1 -0
- package/server/.next/static/chunks/2sdyov_lz1uj4.js +1 -0
- package/server/.next/static/chunks/{1o4mdgq5lu1g_.js → 2toeyr9b_nk0e.js} +1 -1
- package/server/.next/static/chunks/{2zdjxqgm-44u1.js → 2w7qxt7ux-m1-.js} +1 -1
- package/server/.next/static/chunks/{18gwem_5y9wnt.js → 2zc1osymeruya.js} +1 -1
- package/server/.next/static/chunks/33fbppn5fotpk.js +1 -0
- package/server/.next/static/chunks/3auw1gobgv94g.js +1 -0
- package/server/.next/static/chunks/3b1p-xm7iow1_.js +1 -0
- package/server/.next/static/chunks/{2z6a725ntvlr6.js → 3gl2k6v182lli.js} +2 -2
- package/server/.next/static/chunks/{2lv5qmgi8nm4h.js → 3gurl_36kr7sg.js} +1 -1
- package/server/.next/static/chunks/{2n-h6_0i3mpxo.js → 3h-i_hcaaf7vs.js} +1 -1
- package/server/.next/static/chunks/{0dnjs3de2e_d1.js → 3kznplgmzot89.js} +1 -1
- package/server/.next/static/chunks/{0du6qnm4ee-qx.js → 3mb_v650fie_i.js} +1 -1
- package/server/.next/static/chunks/{1t2iu6ufyxecz.js → 3n_n6yeienmn-.js} +1 -1
- package/server/.next/static/chunks/{01oee9tptcjdb.js → 3nqciag05fif0.js} +1 -1
- package/server/.next/static/chunks/3r3mt51wqymgs.js +1 -0
- package/server/.next/static/chunks/3sg_npfod25zq.js +1 -0
- package/server/.next/static/chunks/{03fjh6klyhqv4.js → 3shbvizselyoq.js} +1 -1
- package/server/.next/static/chunks/3xxagngfonh62.js +1 -0
- package/server/.next/static/chunks/{3alfhqlczff2s.js → 3yv-enyk37whg.js} +1 -1
- package/server/node_modules/@next/env/package.json +1 -1
- package/server/node_modules/next/dist/build/analyze/snapshot.js +1 -1
- package/server/node_modules/next/dist/build/index.js +3 -3
- package/server/node_modules/next/dist/build/swc/index.js +1 -1
- package/server/node_modules/next/dist/build/turbopack-analyze/index.js +1 -1
- package/server/node_modules/next/dist/build/turbopack-build/impl.js +1 -1
- package/server/node_modules/next/dist/build/webpack-config.js +3 -3
- package/server/node_modules/next/dist/compiled/next-server/app-page-turbo-experimental.runtime.prod.js +2 -2
- package/server/node_modules/next/dist/compiled/next-server/app-page-turbo.runtime.prod.js +2 -2
- package/server/node_modules/next/dist/compiled/next-server/app-route-turbo.runtime.prod.js +1 -1
- package/server/node_modules/next/dist/lib/patch-incorrect-lockfile.js +3 -3
- package/server/node_modules/next/dist/server/app-render/async-local-storage.js +1 -1
- package/server/node_modules/next/dist/server/config.js +1 -1
- package/server/node_modules/next/dist/server/dev/hot-reloader-turbopack.js +2 -2
- package/server/node_modules/next/dist/server/dev/hot-reloader-webpack.js +1 -1
- package/server/node_modules/next/dist/server/lib/app-info-log.js +1 -1
- package/server/node_modules/next/dist/server/lib/generate-agent-files.js +3 -3
- package/server/node_modules/next/dist/server/lib/router-server.js +1 -1
- package/server/node_modules/next/dist/server/lib/start-server.js +1 -1
- package/server/node_modules/next/dist/server/lib/trace/tracer.js +1 -1
- package/server/node_modules/next/dist/server/typescript/rules/config.js +2 -2
- package/server/node_modules/next/dist/server/use-cache/use-cache-wrapper.js +1 -1
- package/server/node_modules/next/dist/telemetry/anonymous-meta.js +1 -1
- package/server/node_modules/next/dist/telemetry/events/swc-load-failure.js +1 -1
- package/server/node_modules/next/dist/telemetry/events/version.js +2 -2
- package/server/node_modules/next/package.json +11 -11
- package/server/.next/server/chunks/[root-of-the-server]__03zcy67tjxii8._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__08j1jeemvo-th._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__0abdjgj-muln9._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__0b_bj-_t8b0b-._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__0rxrv00e5e6fj._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__0xyzhdj3z_1ro._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__0zd61mh-juh2i._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__13scfgchwlitx._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__15zbj_ehkvv-n._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__16dyxwm6pzumx._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__16sp8qurcwsnf._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__18qf1s7o0ia89._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__1951xb3jdzdop._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__1_1-jgxiadvs0._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__1_2akhn6c9eqq._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__1a9cd4d9ohf69._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__1c2u-bg524-_w._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__1c8_e0jqh_8na._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__1g-be2zoiz2tf._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__1h96ebyza_vlh._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__1hxhj2o7lea8i._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__1i4bqqne6vibf._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__1i83m8i-3yn72._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__1jrcnhad_b53j._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__1ldcwvd42rpuz._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__1pgtip37umn35._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__1rl43iilsc-je._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__1sj7uwyq1gpet._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__1ta7-xvmtkjwr._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__1voiad6r-u931._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__1wlilsfzjqdw9._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__1wonw7ft4hset._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__202r0hxhr5bnu._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__2196hxm-s7u6e._.js +0 -3
- package/server/.next/server/chunks/_01vdbh009dk-w._.js +0 -5
- package/server/.next/server/chunks/_061mqfu1rkl7g._.js +0 -34
- package/server/.next/server/chunks/_0c_vrxu6rin-k._.js +0 -3
- package/server/.next/server/chunks/_0qawxzcf--lyq._.js +0 -4
- package/server/.next/server/chunks/_0qrn1v02iivm8._.js +0 -3
- package/server/.next/server/chunks/_0s30ac32b7prb._.js +0 -3
- package/server/.next/server/chunks/_0vfrh5u-u4mis._.js +0 -3
- package/server/.next/server/chunks/_0vgojnnkcf1vu._.js +0 -4
- package/server/.next/server/chunks/_0vz0de4gz70-e._.js +0 -4
- package/server/.next/server/chunks/_1-mixh9aeqh7f._.js +0 -3
- package/server/.next/server/chunks/_1b63jfweu0o04._.js +0 -3
- package/server/.next/server/chunks/_1i57ar6zvd7yb._.js +0 -34
- package/server/.next/server/chunks/_1k2cwp1_wt6qm._.js +0 -3
- package/server/.next/server/chunks/_1kj2yv4-wk2kp._.js +0 -34
- package/server/.next/server/chunks/_1l82x0z8bo4pt._.js +0 -3
- package/server/.next/server/chunks/_1ozrnl_on86u7._.js +0 -34
- package/server/.next/server/chunks/_1xeuk6g48m3_1._.js +0 -3
- package/server/.next/server/chunks/src_0d5xqe2zx_935._.js +0 -3
- package/server/.next/server/chunks/src_0v4pdrc1yxyl8._.js +0 -3
- package/server/.next/server/chunks/src_0vva87j3z99p9._.js +0 -3
- package/server/.next/server/chunks/src_1zo6so07lgcdj._.js +0 -3
- package/server/.next/server/chunks/src_db_rows_ts_15b286wn1kn1e._.js +0 -3
- package/server/.next/server/chunks/src_lib_0485hz-c7h7dr._.js +0 -15
- package/server/.next/server/chunks/src_lib_0qcyomi01xvf1._.js +0 -15
- package/server/.next/server/chunks/src_lib_1d6edz_ucj01w._.js +0 -3
- package/server/.next/server/chunks/src_lib_1ryt-36ohhnm6._.js +0 -15
- package/server/.next/server/chunks/src_lib_1suc_xwzxtuej._.js +0 -3
- package/server/.next/server/chunks/src_lib_1uh73ofc-pe92._.js +0 -3
- package/server/.next/server/chunks/src_private_1yzfhupl3rlpx._.js +0 -6
- package/server/.next/server/chunks/ssr/[root-of-the-server]__004r8ubf3fp_i._.js +0 -3
- package/server/.next/server/chunks/ssr/[root-of-the-server]__04a21b9fkrqs3._.js +0 -3
- package/server/.next/server/chunks/ssr/[root-of-the-server]__0q36f5xjkzf4z._.js +0 -3
- package/server/.next/server/chunks/ssr/[root-of-the-server]__0wf8q7-o-4n8y._.js +0 -3
- package/server/.next/server/chunks/ssr/[root-of-the-server]__1e-xqsuqsd4ub._.js +0 -3
- package/server/.next/server/chunks/ssr/[root-of-the-server]__204_t7bzma353._.js +0 -3
- package/server/.next/server/chunks/ssr/_04e0uk5aqrgc3._.js +0 -3
- package/server/.next/server/chunks/ssr/_11o43qq2eyx_r._.js +0 -3
- package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_connections_page_actions_03amng1-xhfd1.js +0 -3
- package/server/.next/server/chunks/ssr/src_0qu78tivj78-x._.js +0 -3
- package/server/.next/server/chunks/ssr/src_app_(console)_connections_0gm1y-wtw5gyd._.js +0 -3
- package/server/.next/server/chunks/ssr/src_app_(console)_connections_1qigx20w8bk53._.js +0 -3
- package/server/.next/server/chunks/ssr/src_lib_data_settings-db_ts_1to3jtggxlaz4._.js +0 -3
- package/server/.next/static/chunks/0anet8wttkax1.js +0 -1
- package/server/.next/static/chunks/0ao7kjrp6bp3l.js +0 -1
- package/server/.next/static/chunks/0b0rwd99q942r.js +0 -1
- package/server/.next/static/chunks/0dmi-v53phuqn.js +0 -1
- package/server/.next/static/chunks/0ilml-p3iktnr.js +0 -1
- package/server/.next/static/chunks/0y_0w1ek5fakj.js +0 -1
- package/server/.next/static/chunks/1fxuyn0k52n4v.css +0 -3
- package/server/.next/static/chunks/1k01h6men2hvb.js +0 -1
- package/server/.next/static/chunks/1mdaf7mwcfafr.js +0 -1
- package/server/.next/static/chunks/2mj8z5a9dz7bh.js +0 -1
- package/server/.next/static/chunks/2qltilq3pn4ia.js +0 -1
- package/server/.next/static/chunks/2wqgz94tksucm.js +0 -1
- package/server/.next/static/chunks/3ypdfkwyovory.js +0 -1
- /package/server/.next/static/{n3Kt7dFNHr9KDw7DgGz0m → 00CFAqN6pFBVkqJyXSd78}/_buildManifest.js +0 -0
- /package/server/.next/static/{n3Kt7dFNHr9KDw7DgGz0m → 00CFAqN6pFBVkqJyXSd78}/_clientMiddlewareManifest.js +0 -0
- /package/server/.next/static/{n3Kt7dFNHr9KDw7DgGz0m → 00CFAqN6pFBVkqJyXSd78}/_ssgManifest.js +0 -0
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
(()=>{"use strict";module.exports=[658266,211256,e=>{var t=e.i(278619),n=e.i(959408),r=e.i(867274),a=e.i(413230);let s=e=>Math.round(e).toLocaleString("en-US"),i=(e,t)=>Math.floor((e.getTime()-t.getTime())/864e5),l=(e,t)=>`${e} ${t}${1===e?"":"s"}`,o=e=>{try{let t=new URL(e);return`${t.host}${t.pathname}`}catch{return e}},u=e=>{try{return new URL(e).pathname}catch{return"/"}},d="Down · ",c=(e,t,n)=>({rule:e,subject:t,status:"unknown",resourceId:null,accountId:null,title:t,message:"",provider:null,sampleAt:null,...n}),p=e=>"firestore"===e.provider?"firebase":"d1"===e.provider?"cloudflare":e.provider,f=new Set(["turso","upstash","d1"]),m={MonitorDown:(e,t)=>e.monitors.map(e=>{let r=c("MonitorDown",e.id,{resourceId:e.appId,title:`${e.appName} ${"heartbeat"===e.kind?e.url:u(e.url)}`,provider:"vercel",sampleAt:e.lastCheckedAt}),a=t??3;if("heartbeat"===e.kind){let t;return{...r,status:"err"===e.state?"firing":"ok"===e.state?"ok":"unknown",message:`${e.appName} \xb7 ${e.url}: ${t=e.lastError,t?.startsWith(d)?t.slice(d.length):"no ping in time"}.`}}return e.failStreak>=a?{...r,status:"firing",message:(0,n.H)(e)?`${o(e.url)} failed its check (${(0,n.H)(e)}) on ${a} consecutive checks.`:`${o(e.url)} returned ${e.lastStatus?`HTTP ${e.lastStatus}`:"no answer"} on ${a} consecutive checks.`}:{...r,status:0===e.failStreak&&e.lastCheckedAt?"ok":"unknown",message:`${o(e.url)} answers again.`}}),CollectorStale:(e,t)=>{let n=e.lastMinuteRunAt;return[c("CollectorStale","collector",{status:!n||e.now.getTime()-n.getTime()>(t??5)*6e4?"firing":"ok",title:"collector",message:n?`The last minute run finished ${s((e.now.getTime()-n.getTime())/6e4)} min ago.`:"The collector hasn't finished a run yet."})]},HighLatency:(e,t)=>e.monitors.filter(e=>"http"===e.kind).map(e=>{let n=c("HighLatency",e.id,{resourceId:e.appId,title:`${e.appName} ${u(e.url)}`,provider:"vercel",sampleAt:e.lastCheckedAt});if(e.checksLast10<5||null===e.p95Last10)return n;let r=t??1500;return{...n,status:e.p95Last10>r?"firing":"ok",message:`p95 ${s(e.p95Last10)} ms over the last 10 minutes (limit ${s(r)} ms).`}}),DeploymentFailed:e=>e.apps.map(e=>{let t=c("DeploymentFailed",e.id,{resourceId:e.id,title:e.name,provider:"vercel"}),n=e.latestProduction;return n?"error"===n.state?{...t,status:"firing",message:`Production deployment ${n.sha?n.sha.slice(0,7):"(no commit)"} failed.`}:{...t,status:"building"===n.state?"unknown":"ok"}:{...t,status:"ok"}}),DatabasePaused:e=>e.dbs&&e.dbs.filter(e=>"supabase"===e.provider).map(e=>c("DatabasePaused",e.id,{resourceId:e.id,title:e.name,provider:"supabase",status:"unknown"===e.state?"unknown":"paused"===e.state?"firing":"ok",message:`Supabase project ${e.name} is paused.`})),CertExpiringSoon:(e,t)=>e.domains&&e.domains.map(n=>{let r=c("CertExpiringSoon",n.id,{resourceId:n.id,title:n.name,provider:"cloudflare"});if(!n.tlsNotAfter)return r;let a=i(n.tlsNotAfter,e.now);return{...r,status:a<(t??14)?"firing":"ok",message:`The TLS certificate of ${n.name} expires in ${l(a,"day")}.`}}),DomainExpiringSoon:(e,t)=>e.domains&&e.domains.map(n=>{let r=c("DomainExpiringSoon",n.id,{resourceId:n.id,title:n.name,provider:"cloudflare"});if(!n.expiresAt)return r;let a=i(n.expiresAt,e.now);return{...r,status:a<(t??30)?"firing":"ok",message:`${n.name} expires in ${l(a,"day")}.`}}),StorageAlmostFull:(e,t)=>e.dbs&&e.dbs.filter(e=>"firestore"!==e.provider).map(e=>{let n=c("StorageAlmostFull",e.id,{resourceId:e.id,title:e.name,provider:p(e)});if(null===e.sizeBytes||!e.sizeLimitBytes)return n;let r=e.sizeBytes/e.sizeLimitBytes*100;return{...n,status:r>(t??80)?"firing":"ok",message:`${e.name} uses ${s(e.sizeBytes/1e6)} MB of ${s(e.sizeLimitBytes/1e6)} MB (${s(r)}%).`}}),NeonComputeHigh:(e,t)=>e.dbs&&e.dbs.filter(e=>"neon"===e.provider).map(e=>{let n=c("NeonComputeHigh",e.id,{resourceId:e.id,title:e.name,provider:"neon"});return null===e.cuHours?n:{...n,status:e.cuHours>(t??80)?"firing":"ok",message:`${e.name} used ${s(e.cuHours)} of ${s(e.cuLimit??100)} CU-hours this month.`}}),FirestoreQuotaHigh:(e,t)=>e.dbs&&e.dbs.filter(e=>"firestore"===e.provider).map(e=>{let n=c("FirestoreQuotaHigh",e.id,{resourceId:e.id,title:e.name,provider:"firebase"});if(e.quotaExhausted)return{...n,status:"firing",message:`${e.name} hit a Firestore quota (RESOURCE_EXHAUSTED).`};if(null===e.readsToday||!e.readsLimit)return!1===e.quotaExhausted?{...n,status:"ok"}:n;let r=e.readsToday/e.readsLimit*100;return{...n,status:r>(t??80)?"firing":"ok",message:`${e.name} read ${s(e.readsToday)} of ${s(e.readsLimit)} documents today (${s(r)}%).`}}),AutoPauseRisk:(e,t)=>e.dbs&&e.dbs.filter(e=>"supabase"===e.provider).map(n=>{let r=c("AutoPauseRisk",n.id,{resourceId:n.id,title:n.name,provider:"supabase"});if("paused"===n.state)return{...r,status:"ok"};if(!n.lastApiAt)return r;let a=Math.floor((e.now.getTime()-n.lastApiAt.getTime())/864e5);return{...r,status:a>=(t??4)?"firing":"ok",message:`No API traffic for ${l(a,"day")}. Supabase pauses free projects after about 7 days.`}}),DnsProxiedToVercel:e=>e.dns&&e.dns.map(e=>c("DnsProxiedToVercel",e.id,{resourceId:e.resourceId,title:e.name,provider:"cloudflare",status:e.proxied&&e.pointsToVercel?"firing":"ok",message:`${e.name} points to Vercel through the Cloudflare proxy. Vercel recommends DNS only.`})),DbQuotaHigh:(e,t)=>e.dbs&&e.dbs.filter(e=>f.has(e.provider)).map(e=>{let n=c("DbQuotaHigh",e.id,{resourceId:e.id,title:e.name,provider:p(e)});return null==e.quotaPct?n:{...n,status:e.quotaPct>(t??80)?"firing":"ok",message:`${e.name}: ${e.quotaLabel??"usage"} at ${s(e.quotaPct)}% of the free plan.`}}),ComputeHigh:(e,t)=>e.compute?e.compute.map(n=>{let a=c("ComputeHigh",n.id,{resourceId:n.id,title:n.name,provider:"supabase",sampleAt:n.latest?new Date(n.latest.at):null}),s=(0,r.B)(n.latest,(0,r.V)(t),e.now);return null===s?a:{...a,status:s.length?"firing":"ok",message:s.length?`${n.name}: ${s.join(", ")}.`:`${n.name} compute is back under the limits.`}}):null,CredentialExpiring:(e,t)=>e.accounts.map(n=>{let r=c("CredentialExpiring",n.id,{accountId:n.id,title:`${n.provider} \xb7 ${n.label}`,provider:n.provider});if("drive"===n.provider&&"error"===n.status&&n.lastError?.includes("invalid_grant"))return{...r,status:"firing",message:"Google Drive access was removed (invalid_grant). Reconnect it."};if(!n.expiresAt)return{...r,status:"ok"};let a=i(n.expiresAt,e.now);return{...r,status:a<(t??14)?"firing":"ok",message:a<0?`The ${n.provider} credential ${n.label} has expired.`:`The ${n.provider} credential ${n.label} expires in ${l(a,"day")}.`}}),VulnerableDependency:e=>e.deps?e.deps.flatMap(t=>{let n=e.apps.find(e=>e.id===t.appId);if(!n)return[];let r=c("VulnerableDependency",t.appId,{resourceId:t.appId,title:n.name,provider:"github"});if(t.error)return[r];let s=(0,a.g)(t.vulns);return s?[{...r,status:"firing",message:(0,a.L)(t.vulns),..."critical"===s?{severity:"critical"}:{}}]:[{...r,status:"ok",message:`${n.name} has no high or critical dependency advisories.`}]}):null};e.s(["f",0,function(e,n,r){let a=[],s=new Set;for(let i of n){if(!i.enabled||r&&!r.includes(i.key)||!t._[i.key])continue;let n=m[i.key](e,i.threshold);n&&(s.add(i.key),a.push(...n))}return{observations:a,evaluated:s}}],658266);let h=["MonitorDown","HighLatency"],g=["telegram","discord"],y=e=>e.channels.some(e=>g.includes(e));function v(e,t){return t.collectorStale&&"CollectorStale"!==e.rule?"CollectorStale":e.resourceId&&h.includes(e.rule)?t.mutedApps.get(e.resourceId)??null:null}let k=(e,t)=>"critical"===t&&"warning"===e?"critical":e,b=(e,t)=>e.silencedUntilResolved||null!==e.silencedUntil&&e.silencedUntil.getTime()>t.getTime(),w=(e,t)=>`${e}|${t}`;e.s(["f",0,function(e,n,r,a,s){let i={open:[],touch:[],resolve:[]},l=new Map(a.map(e=>[e.key,e])),o=new Map(n.map(e=>[w(e.rule,e.subject),e])),u=new Set(e.map(e=>w(e.ruleKey,e.subject))),d=e=>i.resolve.push({id:e.id,pending:e.notifiedOpen?"resolve":null});for(let n of e){let e=l.get(n.ruleKey),a=o.get(w(n.ruleKey,n.subject));if(!e||!e.enabled){i.resolve.push({id:n.id,pending:null});continue}if(!r.has(n.ruleKey))continue;if(!a){i.resolve.push({id:n.id,pending:null});continue}if("unknown"===a.status)continue;let u=a.provider?s.incidents.get(a.provider)??null:null;if("firing"===a.status){let t=v(a,s),r=n.notifiedOpen&&null!==n.lastNotifiedAt&&s.now.getTime()-n.lastNotifiedAt.getTime()>=216e5,l={id:n.id,okStreak:0,lastSampleAt:a.sampleAt??n.lastSampleAt,lastSeenAt:s.now,message:a.message,causedBy:t,providerIncident:u},o=!n.notifiedOpen&&(!n.pendingSince||s.now.getTime()-n.pendingSince.getTime()>=216e5);(r||o)&&!b(n,s.now)&&!t&&null===n.pending&&y(e)&&(l.pending=r?"repeat":"open"),i.touch.push(l);continue}if(!t._[n.ruleKey].sampled||null===a.sampleAt){d(n);continue}if(!(null===n.lastSampleAt||a.sampleAt.getTime()>n.lastSampleAt.getTime()))continue;let c=n.okStreak+1;c>=2?d(n):i.touch.push({id:n.id,okStreak:c,lastSampleAt:a.sampleAt})}for(let e of n){if("firing"!==e.status||u.has(w(e.rule,e.subject))||s.maintenance.has(e.subject)||e.resourceId&&s.maintenance.has(e.resourceId))continue;let t=l.get(e.rule);if(!t)continue;let n=v(e,s);i.open.push({ruleKey:e.rule,subject:e.subject,resourceId:e.resourceId,accountId:e.accountId,severity:k(t.severity,e.severity),title:e.title,message:e.message,startedAt:s.now,lastSeenAt:s.now,lastSampleAt:e.sampleAt,causedBy:n,providerIncident:e.provider?s.incidents.get(e.provider)??null:null,pending:n||!y(t)?null:"open"})}return i}],211256)},582748,e=>{var t=e.i(89491),n=e.i(960063),r=e.i(800366),a=e.i(326003),s=e.i(843448),i=e.i(647006),l=e.i(328203);e.s(["d",0,function(e,i){let o={id:e.id,name:e.name,state:e.state,sizeBytes:null,sizeLimitBytes:null,lastApiAt:null,cuHours:null,cuLimit:null,readsToday:null,readsLimit:null,quotaExhausted:null};if("supabase_project"===e.kind){let t=(0,a.k)(a.B,e.data),n=(0,l.Z)(t.lastTrafficAt),r=(0,l.Z)(t.trafficAt),i=n??(r&&!t.trafficError?new Date(r.getTime()-6048e5):null);return{...o,provider:"supabase",sizeBytes:t.sizeBytes??null,sizeLimitBytes:s.R,lastApiAt:i}}if("neon_project"===e.kind){let t=(0,a.k)(a.s,e.data),n=(t.branches??[]).map(e=>e.logicalSize).filter(e=>"number"==typeof e);return{...o,provider:"neon",cuHours:null==t.computeSeconds?null:t.computeSeconds/3600,cuLimit:r.a.cuHours,sizeBytes:n.length?n.reduce((e,t)=>e+t,0):null,sizeLimitBytes:r.a.storageBytes}}if("firestore"===e.kind){let t=(0,a.k)(a.w,e.data),r=(0,l.Z)(t.opsAt),s=null!=t.reads&&r&&r.getTime()>=(0,n.a)(i).getTime()?t.reads:null,u=null!=t.latencyMs||null!=t.pingError;return{...o,provider:"firestore",readsToday:s,readsLimit:n.T.reads,quotaExhausted:u?"RESOURCE_EXHAUSTED"===t.pingReason:null}}if("turso_database"===e.kind){let n=(0,a.k)(a.N,e.data),r=(0,t.u)((0,t.G)(n,i));return{...o,provider:"turso",sizeBytes:n.orgStorageBytes??null,sizeLimitBytes:t.g.storageBytes,quotaPct:r?.pct??null,quotaLabel:r?`${r.label} ${r.text}`:null}}if("upstash_redis"===e.kind){let n=(0,a.k)(a.e,e.data),r=(0,t.u)((0,t.$)(n,i));return{...o,provider:"upstash",sizeBytes:n.storageBytes??null,sizeLimitBytes:t.W.storageBytes,quotaPct:r?.pct??null,quotaLabel:r?`${r.label} ${r.text}`:null}}if("d1_database"===e.kind){let n=(0,a.k)(a.x,e.data),r=(0,t.u)((0,t.I)(n,i));return{...o,provider:"d1",sizeBytes:n.sizeBytes??null,sizeLimitBytes:t.M.dbBytes,quotaPct:r?.pct??null,quotaLabel:r?`${r.label} ${r.text}`:null}}return null},"S",0,function(e,t){let n=e.filter(e=>Array.isArray(e.data.records));if(!n.length)return null;let r=e.map(e=>e.name),a=[];for(let e of n){let n=t.filter(t=>(0,l.J)(t.name,r)===e.name.toLowerCase().replace(/\.$/,"")),s=[...new Set(n.flatMap(e=>(0,i.q)(e.data).vercel?.recommendedIps??[]))];for(let t of(0,i.q)(e.data).records){if(!(0,l.l)(t,s))continue;let r=t.name.toLowerCase().replace(/\.$/,""),i=n.find(e=>e.name.toLowerCase().replace(/\.$/,"")===r);a.push({id:`${e.id}:${t.id}`,resourceId:i?.id??e.id,name:t.name,proxied:t.proxied,pointsToVercel:!0})}}return a},"r",0,function(e,t){return e.length||t.length?[...e.map(e=>({id:e.id,name:e.name,tlsNotAfter:null,expiresAt:(0,l.Z)((0,i.q)(e.data).rdap?.expiresAt)})),...t.map(e=>({id:e.id,name:e.name,tlsNotAfter:(0,l.Z)((0,i.q)(e.data).tls?.notAfter),expiresAt:null}))]:null}])},485647,e=>{var t=e.i(875225),n=e.i(349129),r=e.i(518899),a=e.i(924924),s=e.i(618916),i=e.i(582748),l=e.i(794713),o=e.i(662860),u=e.i(433609);async function d(){return(0,a.f)().select({appId:s.links.fromResourceId,dbId:s.links.toResourceId}).from(s.links).where((0,t.u)(s.links.kind,"uses_db")).limit(500)}async function c(e){let c=(0,t.b)((0,t.u)(s.resources.monitored,!0),(0,t.M)(s.resources.goneAt)),[p,f,m,h,g]=await Promise.all([(0,l.d)(),(0,l.D)(),(0,a.f)().select({m:s.monitors,appName:s.resources.name}).from(s.monitors).innerJoin(s.resources,(0,t.u)(s.resources.id,s.monitors.resourceId)).where((0,t.b)(c,(0,t.u)(s.monitors.paused,!1),(0,t.u)(s.monitors.ownerPaused,!1))),(0,a.f)().select({id:s.resources.id,name:s.resources.name}).from(s.resources).where((0,t.b)(c,(0,t.u)(s.resources.kind,"app"))),(0,a.f)().select({id:s.accounts.id,provider:s.accounts.provider,label:s.accounts.label,expiresAt:s.accounts.expiresAt,status:s.accounts.status,lastError:s.accounts.lastError}).from(s.accounts)]),y=m.map(e=>e.m.id),v=y.length?await (0,a.f)().select({id:s.checks.monitorId,n:r.B`count(*)::int`,p95:r.B`percentile_cont(0.95) within group (order by ${s.checks.latencyMs})::float8`}).from(s.checks).where((0,t.b)((0,t.y)(s.checks.monitorId,y),(0,t.B)(s.checks.at,new Date(e.getTime()-6e5)),(0,t.u)(s.checks.inMaintenance,!1))).groupBy(s.checks.monitorId):[],k=h.map(e=>e.id),b=k.length?await (0,a.f)().selectDistinctOn([s.deployments.resourceId],{appId:s.deployments.resourceId,state:s.deployments.state,sha:s.deployments.commitSha,createdAt:s.deployments.createdAtProvider}).from(s.deployments).where((0,t.b)((0,t.y)(s.deployments.resourceId,k),(0,t.u)(s.deployments.target,"production"))).orderBy(s.deployments.resourceId,(0,n.A)(s.deployments.createdAtProvider)):[],w=await (0,a.f)().select({id:s.resources.id,name:s.resources.name,kind:s.resources.kind,state:s.snapshots.state,data:s.snapshots.data}).from(s.resources).innerJoin(s.snapshots,(0,t.u)(s.snapshots.resourceId,s.resources.id)).where((0,t.b)(c,(0,t.y)(s.resources.kind,["supabase_project","neon_project","firestore","turso_database","upstash_redis","d1_database","zone","domain"]))),A=e=>w.filter(t=>t.kind===e),$=w.filter(e=>["supabase_project","neon_project","firestore","turso_database","upstash_redis","d1_database"].includes(e.kind)),I=A("zone"),S=A("domain"),x=await d(),V=await (0,o.Y)().catch(()=>null),_=k.length?await (0,u.a)(k).catch(()=>null):null;return{now:e,lastMinuteRunAt:p,lastAnyRunAt:f,monitors:m.map(({m:e,appName:t})=>{let n=v.find(t=>t.id===e.id),r="heartbeat"===e.kind;return{id:e.id,appId:e.resourceId,appName:t,url:r?e.name??"heartbeat":e.url,kind:r?"heartbeat":"http",state:e.state,failStreak:e.failStreak,lastStatus:e.lastStatus,lastError:e.lastError,lastCheckedAt:e.lastCheckedAt,p95Last10:n?.p95??null,checksLast10:n?.n??0}}),apps:h.map(e=>{let t=b.find(t=>t.appId===e.id);return{id:e.id,name:e.name,latestProduction:t?{state:t.state,sha:t.sha,createdAt:t.createdAt}:null}}),accounts:g,dbs:$.length?$.map(t=>(0,i.d)(t,e)).filter(e=>null!==e):null,domains:(0,i.r)(I,S),dns:(0,i.S)(I,S),links:x,compute:V,deps:_&&_.length?_:null}}e.s(["f",0,c])},532148,e=>{var t=e.i(875225),n=e.i(349129),r=e.i(518899),a=e.i(924924),s=e.i(618916),i=e.i(278619),l=e.i(658266),o=e.i(211256),u=e.i(275426),d=e.i(154491),c=e.i(485647),p=e.i(739886),f=e.i(111970);let m={vercel:"Vercel",supabase:"Supabase",neon:"Neon",cloudflare:"Cloudflare",firebase:"Firebase",gcp:"Google Cloud"};async function h(){return(await (0,a.f)().select().from(s.alertRules)).filter(e=>(0,i.h)(e.key)).map(e=>({key:e.key,severity:e.severity,threshold:e.threshold,enabled:e.enabled,channels:e.channels}))}async function g(e,n={}){let[r,y,v,k,b,w]=await Promise.all([(0,c.f)(e),h(),(0,a.f)().select().from(s.alerts).where((0,t.M)(s.alerts.resolvedAt)),(0,a.f)().select({provider:s.providerStatus.provider,state:s.providerStatus.state}).from(s.providerStatus),(0,p.f)(),(0,f.I)()]),A=new Map(r.accounts.map(e=>[e.id,e.provider])),$=v.filter(e=>!(0,d.O)(w,e.ruleKey,e.accountId?A.get(e.accountId):null)),I=(0,l.f)(r,y,n.only),S=I.evaluated,x=I.observations.filter(e=>!(0,d.O)(w,e.rule,e.provider)),V=y.find(e=>"CollectorStale"===e.key),_=void 0===r.lastAnyRunAt?r.lastMinuteRunAt:r.lastAnyRunAt,z=!!V?.enabled&&(!_||e.getTime()-_.getTime()>(V.threshold??5)*6e4),D=new Map((r.dbs??[]).filter(e=>"paused"===e.state).map(e=>[e.id,e.name])),R=new Map(r.links.filter(e=>D.has(e.dbId)).map(e=>[e.appId,`DatabasePaused \xb7 ${D.get(e.dbId)}`])),j=new Map(k.filter(e=>"warn"===e.state||"err"===e.state).map(e=>["gcp"===e.provider?"firebase":e.provider,m[e.provider]??e.provider])),B=(0,u.u)(b,r.monitors.map(e=>({id:e.id,appId:e.appId})),e,r.apps.map(e=>e.id)),T=$.filter(e=>(0,i.h)(e.ruleKey)).map(e=>({id:e.id,ruleKey:e.ruleKey,subject:e.subject,okStreak:e.okStreak,lastSampleAt:e.lastSampleAt,silencedUntil:e.silencedUntil,silencedUntilResolved:e.silencedUntilResolved,notifiedOpen:e.notifiedOpen,lastNotifiedAt:e.lastNotifiedAt,pending:e.pending,pendingSince:e.pendingSince})),M=(0,o.f)(T,x,S,y,{now:e,collectorStale:z,mutedApps:R,incidents:j,maintenance:B});return M.open.length||M.touch.length||M.resolve.length?(await (0,a.f)().transaction(async n=>{for(let t of M.open)await n.insert(s.alerts).values({...t,pendingSince:t.pending?e:null}).onConflictDoNothing();for(let r of M.touch){let{id:a,pending:i,...l}=r;await n.update(s.alerts).set({...l,...i?{pending:i,pendingSince:e}:{}}).where((0,t.b)((0,t.u)(s.alerts.id,a),(0,t.M)(s.alerts.resolvedAt)))}for(let r of M.resolve)await n.update(s.alerts).set({resolvedAt:e,pending:r.pending,pendingSince:r.pending?e:null}).where((0,t.b)((0,t.u)(s.alerts.id,r.id),(0,t.M)(s.alerts.resolvedAt)))}),{opened:M.open.length,resolved:M.resolve.length}):{opened:0,resolved:0}}let y=r.B`case ${s.alerts.severity} when 'critical' then 0 when 'warning' then 1 else 2 end`;async function v(e=new Set){return(await (0,a.f)().select({a:s.alerts,name:s.resources.name,kind:s.resources.kind}).from(s.alerts).leftJoin(s.resources,(0,t.u)(s.resources.id,s.alerts.resourceId)).where((0,t.b)((0,t.M)(s.alerts.resolvedAt),(0,f.s)(e))).orderBy(y,(0,n.A)(s.alerts.startedAt)).limit(200)).map(({a:e,name:t,kind:n})=>({...e,resourceName:t??null,resourceKind:n??null}))}async function k(e){return(await (0,a.f)().select({id:s.alerts.id,ruleKey:s.alerts.ruleKey,severity:s.alerts.severity,title:s.alerts.title,resourceId:s.alerts.resourceId,startedAt:s.alerts.startedAt,resolvedAt:s.alerts.resolvedAt}).from(s.alerts).where((0,t.b)((0,t.E)(s.alerts.resolvedAt),(0,t.B)(s.alerts.resolvedAt,new Date(e.getTime()-6048e5)))).orderBy((0,n.A)(s.alerts.resolvedAt)).limit(50)).flatMap(e=>e.resolvedAt?[{...e,resolvedAt:e.resolvedAt}]:[])}e.s(["$",0,g,"q",0,v,"I",0,k])},433609,455037,e=>{var t=e.i(90801),n=e.i(875225),r=e.i(349129),a=e.i(924924),s=e.i(618916),i=e.i(921991),l=e.i(547499),o=e.i(479301),u=e.i(32391),d=e.i(804581),c=e.i(891262),p=e.i(413230),f=e.i(455744),m=e.i(971724),h=e.i(105954),g=e.i(206033),y=e.i(180473);let v=e=>/^[A-Za-z0-9_.-]{1,100}\/[A-Za-z0-9_.-]{1,100}$/.test(e)&&!e.includes(".."),k=e=>e.split("/").map(encodeURIComponent).join("/");async function b(e,t,n,r="application/vnd.github+json"){let a,s=n.timeoutMs??5e3;try{a=await (n.fetch??fetch)(`https://api.github.com${e}`,{headers:{Authorization:`Bearer ${t}`,Accept:r,"X-GitHub-Api-Version":"2022-11-28","User-Agent":"Watchbell"},signal:AbortSignal.timeout(s),cache:"no-store"})}catch(e){return{ok:!1,kind:"transient",error:e instanceof DOMException&&("TimeoutError"===e.name||"AbortError"===e.name)?`GitHub didn't answer within ${Math.round(s/1e3)} seconds.`:"Couldn't reach GitHub."}}let i=await a.text().catch(()=>"");if(a.ok){let e=null;if(r.endsWith("+json")&&!r.includes(".raw"))try{e=JSON.parse(i)}catch{e=null}return{ok:!0,data:e,text:i,headers:a.headers}}let l=a.status;if(401===l)return{ok:!1,kind:"auth",status:l,error:"GitHub rejected this token (401). It may have expired or been revoked."};if((403===l||429===l)&&("0"===a.headers.get("x-ratelimit-remaining")||429===l)){let e=Number(a.headers.get("x-ratelimit-reset"));return{ok:!1,kind:"transient",status:l,retryAfterS:Number.isFinite(e)&&e>0?Math.max(1,e-Math.floor(Date.now()/1e3)):60,error:"GitHub's rate limit is used up for now. The next run tries again."}}return 403===l?{ok:!1,kind:"scope",status:l,error:"This token can't read that (403). It needs Metadata, Contents and Actions read on the repository."}:404===l?{ok:!1,kind:"missing",status:l,error:"GitHub doesn't show this to the token (404)."}:{ok:!1,kind:"transient",status:l,error:`GitHub returned an error (${l}).`}}let w=m.z.object({id:g.z.number(),name:h.z.string(),full_name:h.z.string(),owner:m.z.object({login:h.z.string()}),default_branch:h.z.string().nullish(),private:y.z.boolean(),archived:y.z.boolean().optional(),html_url:h.z.string().nullish(),pushed_at:h.z.string().nullish()}),A=e=>({ok:!1,kind:"format",error:`GitHub answered ${e} in a format the console doesn't recognise.`});async function $(e,t={}){let n=await b("/user",e,t);return n.ok?m.z.object({login:h.z.string()}).safeParse(n.data).success?{ok:!0,data:{expiresAt:function(e){let t=e.get("github-authentication-token-expiration")?.trim();if(!t)return null;let n=/^(\d{4}-\d{2}-\d{2})[ T](\d{2}:\d{2}:\d{2})\s*(UTC|Z|[+-]\d{2}:?\d{2})?$/.exec(t);if(!n)return null;let r=n[3]&&"UTC"!==n[3]&&"Z"!==n[3]?n[3].includes(":")?n[3]:`${n[3].slice(0,3)}:${n[3].slice(3)}`:"Z",a=new Date(`${n[1]}T${n[2]}${r}`);return Number.isNaN(a.getTime())?null:a}(n.headers)}}:A("the token check"):n}async function I(e,t={}){let n=[];for(let r=1;r<=3;r++){let a=await b(`/user/repos?per_page=100&page=${r}&sort=pushed&affiliation=owner,collaborator,organization_member`,e,t);if(!a.ok)return a;let s=f.z.array(w).safeParse(a.data);if(!s.success)return A("the repository list");for(let e of s.data){if(!v(e.full_name))continue;let t=e.pushed_at?new Date(e.pushed_at):null;n.push({id:String(e.id),owner:e.owner.login,name:e.name,fullName:e.full_name,defaultBranch:e.default_branch??null,private:e.private,archived:e.archived??!1,htmlUrl:e.html_url??null,pushedAt:t&&!Number.isNaN(t.getTime())?t:null})}if(s.data.length<100)return{ok:!0,data:{repos:n,truncated:!1}}}return{ok:!0,data:{repos:n,truncated:!0}}}async function S(e,t,n={}){if(!v(t))return{ok:!0,data:null};let r=await b(`/repos/${k(t)}/contents/package.json`,e,n,"application/vnd.github.raw+json");if(!r.ok)return"missing"===r.kind?{ok:!0,data:null}:r;if(r.text.length>262144)return{ok:!0,data:null};try{let e=JSON.parse(r.text).name;return{ok:!0,data:"string"==typeof e&&e.trim()&&e.length<=214?e.trim():null}}catch{return{ok:!0,data:null}}}let x=m.z.object({total_count:g.z.number(),workflow_runs:f.z.array(m.z.object({status:h.z.string().nullish(),conclusion:h.z.string().nullish(),name:h.z.string().nullish(),display_title:h.z.string().nullish(),head_branch:h.z.string().nullish(),head_sha:h.z.string().nullish(),html_url:h.z.string().nullish(),run_number:g.z.number().nullish(),updated_at:h.z.string().nullish(),created_at:h.z.string().nullish()}))});async function V(e,t,n,r={}){if(!v(t))return{ok:!1,kind:"format",error:"That isn't a repository name."};let a=new URLSearchParams({per_page:"1",exclude_pull_requests:"true",...n?{branch:n}:{}}),s=await b(`/repos/${k(t)}/actions/runs?${a}`,e,r);if(!s.ok)return s;let i=x.safeParse(s.data);if(!i.success)return A("the Actions runs");let l=i.data.workflow_runs[0];return l?{ok:!0,data:{status:l.status??"unknown",conclusion:l.conclusion??null,name:l.name??l.display_title??null,branch:l.head_branch??null,sha:l.head_sha??null,url:l.html_url?.startsWith("https://github.com/")?l.html_url:null,at:l.updated_at??l.created_at??null,runNumber:l.run_number??null}}:{ok:!0,data:{none:!0}}}let _=e=>/^[A-Za-z0-9._\/-]{1,200}$/.test(e)&&!e.includes("..")&&!e.startsWith("/")&&!e.endsWith("/");async function z(e,t,n,r,a,s={}){if(!v(t)||!_(r)||!n||n.split("/").includes("..")||n.startsWith("/"))return{ok:!1,kind:"format",error:"That isn't a file in a repository."};let i=n.split("/").map(encodeURIComponent).join("/"),l=await b(`/repos/${k(t)}/contents/${i}?ref=${encodeURIComponent(r)}`,e,s,"application/vnd.github.raw+json");return l.ok?Buffer.byteLength(l.text,"utf8")>a||l.text.includes("\0")||(l.text.match(/�/g)?.length??0)>8?{ok:!0,data:null}:{ok:!0,data:l.text}:l}async function D(e,t,n,r={}){if(!v(t)||!/^[0-9a-f]{40}$/.test(n))return{ok:!1,kind:"format",error:"That isn't a repository or commit."};let a=await b(`/repos/${k(t)}/actions/runs?head_sha=${n}&per_page=50`,e,r);if(!a.ok)return a;let s=m.z.object({workflow_runs:f.z.array(m.z.object({status:h.z.string().nullish(),conclusion:h.z.string().nullish()}))}).safeParse(a.data);return s.success?{ok:!0,data:s.data.workflow_runs.map(e=>({status:e.status??"queued",conclusion:e.conclusion??null}))}:A("the Actions runs")}m.z.object({sha:h.z.string().optional(),truncated:y.z.boolean().optional(),tree:f.z.array(m.z.object({path:h.z.string(),type:h.z.string(),size:g.z.number().optional()}))}),e.s(["$",0,262144,"V",0,z,"j",0,b,"k",0,$,"M",0,v,"c",0,_,"W",0,V,"o",0,I,"q",0,S,"f",0,k,"L",0,D],455037);let R=f.z.array(m.z.object({name:h.z.string(),type:h.z.string(),sha:h.z.string(),size:g.z.number().optional()}));async function j(e,t,n,r={}){if(!v(t)||!_(n))return{ok:!1,kind:"format",error:"That isn't a repository name or ref."};let a=await b(`/repos/${k(t)}/contents/?ref=${encodeURIComponent(n)}`,e,r);if(!a.ok)return a;let s=R.safeParse(a.data);return s.success?{ok:!0,data:s.data.filter(e=>"file"===e.type&&/^[0-9a-f]{40}$/.test(e.sha)).map(e=>({name:e.name,sha:e.sha,size:e.size??0}))}:{ok:!1,kind:"format",error:"GitHub answered the file list in a format the console doesn't recognise."}}function B(e,t,n,r,a,s={}){return z(e,t,n,r,a,s)}async function T(e,t,n={}){if(!v(t))return{ok:!1,kind:"format",error:"That isn't a repository name."};let r=await b(`/repos/${k(t)}/dependabot/alerts?state=open&ecosystem=npm&per_page=100`,e,n);if(!r.ok)return"scope"===r.kind||"missing"===r.kind?{ok:!0,data:{denied:!0}}:r;let a=(0,p.E)(r.data);return a?{ok:!0,data:{alerts:a}}:{ok:!1,kind:"format",error:"GitHub answered the Dependabot alerts in a format the console doesn't recognise."}}async function M(){let[e]=await (0,a.f)().select().from(s.accounts).where((0,n.u)(s.accounts.provider,"github")).orderBy((0,r.M)(s.accounts.createdAt)).limit(1);if(!e)return{error:"GitHub isn't connected."};let t=(0,i.V)({ciphertext:e.credentialCiphertext,iv:e.credentialIv},(0,l.f)().OPS_ENCRYPTION_KEY);return t?{token:t,accountId:e.id}:{error:"Can't read the stored GitHub credential. Replace it on Connections."}}async function C(){let[e]=await (0,a.f)().select({value:s.settings.value}).from(s.settings).where((0,n.u)(s.settings.key,"deps.scanAll")).limit(1);return e?.value===!0}async function E(){let e={id:s.githubRepos.id,fullName:s.githubRepos.fullName,defaultBranch:s.githubRepos.defaultBranch,scannedAt:s.dependencyScans.scannedAt},t=(0,n.b)((0,n.M)(s.githubRepos.goneAt),(0,n.u)(s.githubRepos.archived,!1)),r=await C()?await (0,a.f)().select(e).from(s.githubRepos).leftJoin(s.dependencyScans,(0,n.u)(s.dependencyScans.repoId,s.githubRepos.id)).where(t).limit(500):await (0,a.f)().selectDistinct(e).from(s.appRepos).innerJoin(s.githubRepos,(0,n.u)(s.githubRepos.id,s.appRepos.repoId)).leftJoin(s.dependencyScans,(0,n.u)(s.dependencyScans.repoId,s.githubRepos.id)).where(t).limit(500);return(0,p.M)(r)}let O=(e,t)=>e.length>t?`${e.slice(0,t-1)}…`:e;async function N(e,t){let n=new Date;await (0,a.f)().insert(s.dependencyScans).values({repoId:e,...t,updatedAt:n}).onConflictDoUpdate({target:s.dependencyScans.repoId,set:{...t,updatedAt:n}})}async function L(e){return(0,a.f)().select({id:s.dependencyVulns.id,package:s.dependencyVulns.package,installedVersion:s.dependencyVulns.installedVersion,vulnId:s.dependencyVulns.vulnId,severity:s.dependencyVulns.severity,fixedVersion:s.dependencyVulns.fixedVersion,summary:s.dependencyVulns.summary,aliases:s.dependencyVulns.aliases,dev:s.dependencyVulns.dev,direct:s.dependencyVulns.direct,source:s.dependencyVulns.source}).from(s.dependencyVulns).where((0,n.b)((0,n.u)(s.dependencyVulns.repoId,e),(0,n.M)(s.dependencyVulns.resolvedAt))).limit(2e3)}async function P(e,r,i,l={}){let o=()=>({...l,timeoutMs:Math.max(1e3,Math.min(i-Date.now(),1e4))}),f=async e=>(await N(r.id,{error:O(e,300),scannedAt:new Date}).catch(()=>void 0),{status:"failed",error:e}),m=r.defaultBranch??"HEAD",h=await j(e,r.fullName,m,o());if(!h.ok)return f(h.error);let g=function(e){for(let t of u.a){let n=e.find(e=>e.name===t.path);if(n)return{path:t.path,kind:t.kind,sha:n.sha}}return null}(h.data),y=h.data.find(e=>"package.json"===e.name)??null,v=g?g.sha:y?`pkg:${y.sha}`:null,[k]=await (0,a.f)().select().from(s.dependencyScans).where((0,n.u)(s.dependencyScans.repoId,r.id)).limit(1),b=new Date;if(!(0,p.U)(k??null,v,b,l.force))return{status:"unchanged"};if(!v){let e=await L(r.id);return e.length&&await (0,a.f)().update(s.dependencyVulns).set({resolvedAt:b}).where((0,n.y)(s.dependencyVulns.id,e.map(e=>e.id))),await N(r.id,{lockfilePath:null,lockfileSha:null,packageCount:0,scannedAt:b,queriedAt:b,error:null,note:"No package.json or lockfile at the repository root."}),{status:"scanned",vulns:0,packages:0,note:"no package.json"}}let w=y?await B(e,r.fullName,"package.json",m,262144,o()):null;if(w&&!w.ok)return f(w.error);let A=w?.ok&&w.data?(0,u.b)(w.data):null,$=null,I="package-json",S=null;if(g){if(2e3>i-Date.now())return f("Time budget used before the lockfile was read; the next run tries again.");let t=await B(e,r.fullName,g.path,m,0xf00000,{...l,timeoutMs:Math.max(1e3,Math.min(i-Date.now(),2e4))});if(!t.ok)return f(t.error);$=t.data?(0,u.D)(g.kind,t.data):null,I=g.kind,$||(S=`${g.path} couldn't be read; the versions come from package.json ranges (approximate).`)}if($){let e=(0,t.m)($,A);$=e.deps,e.stale.length&&(S=[S,(0,t.M)(e.stale)].filter(Boolean).join(" "))}else $=A?(0,u.e)(A):[],I="package-json",S??=g?null:"No lockfile: the versions come from package.json ranges (approximate).";let x=await L(r.id),V=[];if($.length){let e=await (0,c.K)($,{fetch:l.fetch,deadline:i});if(!e.ok)return f(e.error);let t=(0,p.A)(x,!0===l.force),n=await (0,c.J)((0,p.z)($,e.ids,t),{fetch:l.fetch,deadline:i});if(!n.ok)return f(n.error);V=(0,d.i)($,e.ids,n.map,t)}if(i-Date.now()>1500){let t=await T(e,r.fullName,o());t.ok&&"alerts"in t.data?V=(0,p.R)(V,t.data.alerts,$):t.ok&&(S=[S,"Dependabot alerts aren't readable with this token (optional: Dependabot alerts: Read)."].filter(Boolean).join(" "))}let _=(0,p.h)(x,V,(0,u.K)(A)),z=new Date;return await (0,a.f)().transaction(async e=>{for(let t of(_.insert.length&&await e.insert(s.dependencyVulns).values(_.insert.map(e=>({repoId:r.id,package:e.package,installedVersion:e.installedVersion,vulnId:e.vulnId,aliases:e.aliases,severity:e.severity,fixedVersion:e.fixedVersion,summary:e.summary,direct:e.direct,dev:e.dev,source:e.source,firstSeenAt:z,lastSeenAt:z}))).onConflictDoNothing(),_.update))await e.update(s.dependencyVulns).set({severity:t.severity,fixedVersion:t.fixedVersion,summary:t.summary,aliases:t.aliases,dev:t.dev,direct:t.direct,lastSeenAt:z}).where((0,n.u)(s.dependencyVulns.id,t.id));_.resolve.length&&await e.update(s.dependencyVulns).set({resolvedAt:z}).where((0,n.b)((0,n.y)(s.dependencyVulns.id,_.resolve),(0,n.M)(s.dependencyVulns.resolvedAt))),await e.insert(s.dependencyScans).values({repoId:r.id,lockfilePath:g?.path??(y?"package.json":null),lockfileSha:v,packageCount:$.length,scannedAt:z,queriedAt:z,error:null,note:S?O(S,300):null,updatedAt:z}).onConflictDoUpdate({target:s.dependencyScans.repoId,set:{lockfilePath:g?.path??(y?"package.json":null),lockfileSha:v,packageCount:$.length,scannedAt:z,queriedAt:z,error:null,note:S?O(S,300):null,updatedAt:z}})}),{status:"scanned",vulns:_.insert.length+_.update.length,packages:$.length,note:"package-json"===I?S:null}}async function H(e,t={}){let r=await M();if("error"in r)return{error:r.error};let i=await E(),l={scanned:0,unchanged:0,failed:[],left:0};for(let[n,a]of i.entries()){if(e-Date.now()<4e3){l.left=i.length-n;break}try{let n=await P(r.token,a,e,t);"scanned"===n.status?l.scanned++:"unchanged"===n.status?l.unchanged++:l.failed.push(`${a.fullName}: ${n.error}`)}catch(e){l.failed.push(`${a.fullName}: ${e instanceof Error?e.name:"error"}`)}}return await (0,a.f)().delete(s.dependencyVulns).where((0,n.b)((0,n.E)(s.dependencyVulns.resolvedAt),(0,n.S)(s.dependencyVulns.resolvedAt,new Date(Date.now()-7776e6)))).catch(()=>void 0),l}async function U(e){let[t]=await (0,a.f)().select({id:s.accounts.id}).from(s.accounts).where((0,n.u)(s.accounts.provider,"github")).limit(1);if(!t)return null;if(e-Date.now()<4e3)return console.info("deps: no time left today; the scan resumes tomorrow"),null;let r=await H(e);if("error"in r){let e;return(e=r.error,/didn't answer in time|no time left|time budget|rate limit/i.test(e))?null:r.error}let i=r.failed.filter(e=>!/didn't answer in time|no time left|time budget|rate limit/i.test(e)),l=r.failed.length-i.length+(r.left??0);l&&console.info(`deps: ${l} repositor${1===l?"y":"ies"} wait for the next run`);let o=i.slice(0,3);return i.length>3&&o.push(`+${i.length-3} more`),o.length?o.join("; "):null}async function q(e){let t=e.filter(o.f);if(!t.length)return[];let r=await (0,a.f)().select({appId:s.appRepos.appId,repoId:s.appRepos.repoId,error:s.dependencyScans.error}).from(s.appRepos).innerJoin(s.dependencyScans,(0,n.u)(s.dependencyScans.repoId,s.appRepos.repoId)).where((0,n.b)((0,n.y)(s.appRepos.appId,t),(0,n.E)(s.dependencyScans.scannedAt)));if(!r.length)return[];let i=await (0,a.f)().select({repoId:s.dependencyVulns.repoId,package:s.dependencyVulns.package,installedVersion:s.dependencyVulns.installedVersion,fixedVersion:s.dependencyVulns.fixedVersion,severity:s.dependencyVulns.severity,summary:s.dependencyVulns.summary,dev:s.dependencyVulns.dev}).from(s.dependencyVulns).where((0,n.b)((0,n.y)(s.dependencyVulns.repoId,[...new Set(r.map(e=>e.repoId))]),(0,n.M)(s.dependencyVulns.resolvedAt))).limit(1e4);return r.map(e=>({appId:e.appId,repoId:e.repoId,error:e.error,vulns:i.filter(t=>t.repoId===e.repoId).map(e=>({package:e.package,installedVersion:e.installedVersion,fixedVersion:e.fixedVersion,severity:e.severity,summary:e.summary,dev:e.dev}))}))}async function W(e){let t=e.filter(o.f),r=new Map;if(!t.length)return r;let i=await (0,a.f)().select({appId:s.appRepos.appId,repoId:s.appRepos.repoId}).from(s.appRepos).where((0,n.y)(s.appRepos.appId,t));if(!i.length)return r;let l=await (0,a.f)().select({repoId:s.dependencyVulns.repoId,package:s.dependencyVulns.package,installedVersion:s.dependencyVulns.installedVersion,fixedVersion:s.dependencyVulns.fixedVersion,vulnId:s.dependencyVulns.vulnId,aliases:s.dependencyVulns.aliases,severity:s.dependencyVulns.severity,direct:s.dependencyVulns.direct}).from(s.dependencyVulns).where((0,n.b)((0,n.y)(s.dependencyVulns.repoId,[...new Set(i.map(e=>e.repoId))]),(0,n.M)(s.dependencyVulns.resolvedAt),(0,n.u)(s.dependencyVulns.direct,!0),(0,n.E)(s.dependencyVulns.fixedVersion))).limit(2e3);for(let e of i)(0,p.B)(l.filter(t=>t.repoId===e.repoId)).length&&r.set(e.appId,e.repoId);return r}e.s(["R",0,4e4,"o",0,12e3,"e",0,U,"C",0,W,"a",0,q],433609)},111970,e=>{var t=e.i(875225),n=e.i(518899),r=e.i(347540),a=e.i(924924),s=e.i(473283),i=e.i(618916),l=e.i(659846),o=e.i(154491),u=e.i(960049);let d=["supabase_project","neon_project","firestore","turso_database","upstash_redis","d1_database"],c=e=>{if("string"!=typeof e)return e;try{return JSON.parse(e)}catch{return null}},p=(0,r.cache)(async()=>{let e=n.B.join(d.map(e=>n.B`${e}`),n.B`, `),t=await (0,a.f)().execute(n.B`select
|
|
2
|
+
(select coalesce(jsonb_agg(distinct ${i.accounts.provider}::text), '[]'::jsonb) from ${i.accounts}) as providers,
|
|
3
|
+
exists(select 1 from ${i.resources} where ${i.resources.kind}::text in (${e}) and ${i.resources.goneAt} is null) as databases,
|
|
4
|
+
${(0,u.W)()} as off`),[r]=(0,s.f)(t),p=c(r?.providers);return{providers:(Array.isArray(p)?p:[]).filter(e=>l.f.includes(e)),databases:r?.databases===!0||r?.databases==="t",off:(0,o.N)(c(r?.off))}});async function f(){try{return(0,o.I)((await p()).off)}catch{return new Set}}e.s(["s",0,function(e){let r=function(e){if(!e.size)return;let{ruleKeys:r,providers:a}=(0,o.s)(e),s=[];if(r.length&&s.push(n.B`${i.alerts.ruleKey} in (${n.B.join(r.map(e=>n.B`${e}`),n.B`, `)})`),a.length){let e=n.B.join(a.map(e=>n.B`${e}`),n.B`, `);s.push(n.B`(${i.alerts.ruleKey} = 'CredentialExpiring' and ${i.alerts.accountId} in (select ${i.accounts.id} from ${i.accounts} where ${i.accounts.provider}::text in (${e})))`)}return s.length?(0,t.F)(...s):void 0}(e);return r?(0,t.R)(r):void 0},"I",0,f])},960049,e=>{var t=e.i(875225),n=e.i(518899),r=e.i(924924),a=e.i(618916);e.i(154491);var s=e.i(273083);let i={checks:[3,7,14],rollupsHourly:[60,90,180],storedLogs:[3,7,14],deployments:[30,45,60,90],events:[60,90,180],alerts:[60,90,180],collectorRuns:[7,14,30],recommendationDismissals:[30,90,180]},l=Object.keys(i),o=(e,t)=>"number"==typeof t&&i[e].includes(t);async function u(e){let[n]=await (0,r.f)().select({value:a.settings.value}).from(a.settings).where((0,t.u)(a.settings.key,e)).limit(1);return n?.value??null}let d=async()=>(function(e){let t={...s.f};if(!e||"object"!=typeof e)return t;for(let n of l){let r=e[n];o(n,r)&&(t[n]=r)}return t})(await u("retention.days"));e.s(["l",0,()=>u("notify.language"),"J",0,d,"W",0,()=>n.B`(select ${a.settings.value} from ${a.settings} where ${a.settings.key} = ${"sections.off"})`],960049)},662860,e=>{var t=e.i(875225),n=e.i(924924),r=e.i(755776),a=e.i(618916),s=e.i(921991),i=e.i(867274),l=e.i(547499);let o="Supabase Metrics API",u=null,d={fetchMetrics:async function e(t,n,r={}){let a;if(!("string"==typeof t&&/^[a-z0-9]{8,40}$/.test(t)))return{ok:!1,kind:"format",error:"That isn't a Supabase project ref."};let s=r.timeoutMs??8e3;try{a=await (r.fetch??fetch)(`https://${t}.supabase.co/customer/v1/privileged/metrics`,{headers:{Authorization:`Basic ${Buffer.from(`service_role:${n}`).toString("base64")}`,Accept:"text/plain"},signal:AbortSignal.timeout(s),cache:"no-store",redirect:"manual"})}catch(e){return{ok:!1,kind:"transient",error:e instanceof DOMException&&("TimeoutError"===e.name||"AbortError"===e.name)?`${o} didn't answer within ${Math.round(s/1e3)} seconds.`:`Couldn't reach the ${o}.`}}if(401===a.status||403===a.status)return{ok:!1,kind:"auth",status:a.status,error:`Supabase rejected the metrics key (${a.status}). Replace it with a current Secret API key.`};if(404===a.status)return{ok:!1,kind:"missing",status:404,error:"Supabase has no metrics endpoint for this project (404)."};if(429===a.status)return{ok:!1,kind:"transient",status:429,retryAfterS:60,error:`${o} says there were too many requests.`};if(!a.ok)return{ok:!1,kind:"transient",status:a.status,error:`${o} returned an error (${a.status}).`};let i=await a.text().catch(()=>null);return null===i||i.length>4e6||!/^(#|[A-Za-z_:])/m.test(i)?{ok:!1,kind:"format",error:`${o} answered in a format the console doesn't recognise.`}:{ok:!0,data:i}},key:()=>(0,l.f)().OPS_ENCRYPTION_KEY},c=e=>e instanceof Error?e.name:"unknown";async function p(e,s,l=d){if(!(0,i.T)(e,u))return null;u=e.getTime();let o=0,f=0;try{for(let{k:i,ref:u,state:d}of(await (0,n.f)().select({k:r.A,ref:a.resources.externalId,state:a.snapshots.state}).from(r.A).innerJoin(a.resources,(0,t.u)(a.resources.id,r.A.resourceId)).leftJoin(a.snapshots,(0,t.u)(a.snapshots.resourceId,a.resources.id)).where((0,t.b)((0,t.u)(a.resources.kind,"supabase_project"),(0,t.u)(a.resources.monitored,!0),(0,t.M)(a.resources.goneAt))).limit(20))){let t=s-Date.now()-500;if(t<1e3)break;try{await m(i,u,d,e,Math.min(8e3,t),l)?o++:f++}catch(e){f++,console.warn("supabase-metrics: one project failed:",c(e))}}await (0,n.f)().delete(r.l).where((0,t.S)(r.l.hour,new Date(e.getTime()-24*i.x*36e5)))}catch(e){console.warn("supabase-metrics failed:",c(e))}return{scraped:o,failed:f}}async function f(e,a,s){return await (0,n.f)().update(r.A).set({lastTryAt:a,lastError:s.slice(0,300)}).where((0,t.u)(r.A.resourceId,e)),!1}async function m(e,a,l,o,u,d){if("paused"===l)return f(e.resourceId,o,"The project is paused.");let c=(0,s.V)({ciphertext:e.keyCiphertext,iv:e.keyIv},d.key());if(!c)return f(e.resourceId,o,"The stored key can't be read. Add it again.");let p=await d.fetchMetrics(a,c,{timeoutMs:u});if(!p.ok)return f(e.resourceId,o,p.error);let m=(0,i.E)(e.latest??null,(0,i.c)((0,i.a)(p.data),a),o);await (0,n.f)().update(r.A).set({latest:m,lastTryAt:o,lastOkAt:o,lastError:null}).where((0,t.u)(r.A.resourceId,e.resourceId));let h=(0,i.b)(o),[g]=await (0,n.f)().select().from(r.l).where((0,t.b)((0,t.u)(r.l.resourceId,e.resourceId),(0,t.u)(r.l.hour,h))).limit(1),y=(0,i.n)(g??null,m);return await (0,n.f)().insert(r.l).values({resourceId:e.resourceId,hour:h,...y}).onConflictDoUpdate({target:[r.l.resourceId,r.l.hour],set:y}),!0}async function h(){let e=await (0,n.f)().select({id:a.resources.id,name:a.resources.name,latest:r.A.latest}).from(r.A).innerJoin(a.resources,(0,t.u)(a.resources.id,r.A.resourceId)).where((0,t.b)((0,t.u)(a.resources.kind,"supabase_project"),(0,t.u)(a.resources.monitored,!0),(0,t.M)(a.resources.goneAt))).limit(20);return e.length?e.map(e=>({id:e.id,name:e.name,latest:e.latest??null})):null}e.s(["Y",0,h,"E",0,p],662860)},89491,e=>{let t={databases:100,storageBytes:0x140000000,rowsRead:5e8,rowsWritten:1e7},n={storageBytes:262144e3,monthlyCommands:5e5,monthlyBandwidthBytes:0x280000000},r={databases:10,dbBytes:524288e3,accountBytes:0x140000000,rowsReadPerDay:5e6,rowsWrittenPerDay:1e5},a=(e,t)=>Math.round(e/t*1e3)/10,s=(e,t)=>!!e&&e.slice(0,7)===t.toISOString().slice(0,7);e.s(["M",0,r,"g",0,t,"W",0,n,"I",0,function(e,t){let n=e.usageDay===t.toISOString().slice(0,10);return[...n&&null!=e.accountRowsRead?[{label:"Rows read today",pct:a(e.accountRowsRead,r.rowsReadPerDay),text:"of 5M (account)",kind:"quota"}]:[],...n&&null!=e.accountRowsWritten?[{label:"Rows written today",pct:a(e.accountRowsWritten,r.rowsWrittenPerDay),text:"of 100k (account)",kind:"quota"}]:[],...null!=e.sizeBytes?[{label:"Size",pct:a(e.sizeBytes,r.dbBytes),text:"of 500 MB",kind:"storage"}]:[]]},"c",0,function(e){return(e.accountRowsRead??0)>=r.rowsReadPerDay?{state:"err",label:"Daily rows-read limit reached"}:(e.accountRowsWritten??0)>=r.rowsWrittenPerDay?{state:"err",label:"Daily rows-written limit reached"}:{state:"ok",label:"Available"}},"u",0,function(e){return e.filter(e=>"quota"===e.kind&&null!==e.pct).sort((e,t)=>(t.pct??0)-(e.pct??0))[0]??null},"G",0,function(e,n){return s(e.usageAt,n)?[...null!=e.orgRowsRead?[{label:"Rows read",pct:a(e.orgRowsRead,t.rowsRead),text:"of 500M this month (org)",kind:"quota"}]:[],...null!=e.orgRowsWritten?[{label:"Rows written",pct:a(e.orgRowsWritten,t.rowsWritten),text:"of 10M this month (org)",kind:"quota"}]:[],...null!=e.orgStorageBytes?[{label:"Storage",pct:a(e.orgStorageBytes,t.storageBytes),text:"of 5 GB (org)",kind:"storage"}]:[]]:[]},"h",0,function(e){return e.blockReads||e.orgBlockedReads?{state:"err",label:"Reads blocked"}:e.blockWrites||e.orgBlockedWrites?{state:"err",label:"Writes blocked"}:{state:"ok",label:"Available"}},"$",0,function(e,t){let r=s(e.statsAt,t);return[...r&&null!=e.monthlyRequests?[{label:"Commands",pct:a(e.monthlyRequests,n.monthlyCommands),text:"of 500k this month",kind:"quota"}]:[],...r&&null!=e.monthlyBandwidthBytes?[{label:"Bandwidth",pct:a(e.monthlyBandwidthBytes,n.monthlyBandwidthBytes),text:"of 10 GB this month",kind:"quota"}]:[],...null!=e.storageBytes?[{label:"Data size",pct:a(e.storageBytes,n.storageBytes),text:"of 250 MB",kind:"storage"}]:[]]},"t",0,function(e){let t=(e??"").toLowerCase();return"active"===t?{state:"ok",label:"Active"}:t.includes("suspend")||t.includes("block")||t.includes("disabled")?{state:"err",label:"Suspended"}:t.includes("delet")?{state:"off",label:"Deleting"}:{state:"unknown",label:e?`State: ${e}`:"Unknown"}}])},960063,e=>{e.s(["T",0,{reads:5e4,writes:2e4,deletes:2e4},"g",0,function(e){var t;if(e.ok)return e.data.noDatabase?{state:"off",label:"No Firestore database"}:{state:"ok",label:`Reachable \xb7 ${e.data.latencyMs} ms`};return"RESOURCE_EXHAUSTED"===(t=e).reason?{state:"err",label:"Daily quota used up"}:"SERVICE_DISABLED"===t.reason?{state:"err",label:"Firestore API is off in this project"}:"scope"===t.kind||"PERMISSION_DENIED"===t.reason||"scope"===t.reason?{state:"err",label:"No access: needs datastore.viewer"}:{state:"unknown",label:"Unknown"}},"a",0,function(e){let t=new Intl.DateTimeFormat("en-US",{timeZone:"America/Los_Angeles",hour:"numeric",minute:"numeric",second:"numeric",hourCycle:"h23"}).formatToParts(e),n=e=>Number(t.find(t=>t.type===e)?.value??0),r=(3600*n("hour")+60*n("minute")+n("second"))*1e3+e.getUTCMilliseconds();return new Date(e.getTime()-r)}])},90801,479301,e=>{var t=e.i(250474),n=e.i(32391);let r=/^v?(\d+)\.(\d+)\.(\d+)(?:-[0-9A-Za-z.-]+)?(?:\+[0-9A-Za-z.-]+)?$/;function a(e,n){let a=r.exec(e.trim()),s=r.exec(n.trim());return!!a&&!!s&&a[1]===s[1]&&("0"!==a[1]||a[2]===s[2])&&(0,t.f)(n,e)>=0}e.s(["M",0,e=>`Lockfile tertinggal — jalankan npm install (${e.slice(0,5).join(", ")}${e.length>5?`, +${e.length-5}`:""}).`,"a",0,function(e,t,n){if(!e.length)return{ok:!1,why:"nothing"};let r=e.filter(e=>n.includes(e.severity));if(!r.length)return{ok:!1,why:"severity"};for(let e of r){let n=t.get(e.package);if(!n||!a(n,e.to))return{ok:!1,why:"major"}}return{ok:!0,upgrades:r}},"m",0,function(e,r){if(!r)return{deps:e,stale:[]};let a=[...Object.entries(r.dependencies).map(([e,t])=>[e,t,!1]),...Object.entries(r.optionalDependencies).map(([e,t])=>[e,t,!1]),...Object.entries(r.devDependencies).map(([e,t])=>[e,t,!0])],s=[...e],i=[];for(let[e,r,l]of a){let a=(0,n.Y)(r);if(!a||!(0,n.C)(a))continue;let o=s.filter(t=>t.name===e);!o.length||o.some(e=>(0,t.f)(e.version,a)>=0)||((s=s.filter(t=>t.name!==e)).push({name:e,version:a,dev:o.every(e=>e.dev)&&l}),i.push(e))}return{deps:s,stale:i}},"D",0,function(e){let n=new Map;for(let r of e){if(!r.direct)continue;let e=n.get(r.package);(!e||0>(0,t.f)(r.installedVersion,e))&&n.set(r.package,r.installedVersion)}return n},"U",0,function(e,t){for(let n of t){let t=function(e){if(e.packages?.length)return e.packages;let t=/^Watch(?:bell|post): update (\S+) (?:to|ke) /.exec(e.title);return t?[t[1]]:"all"}(n);if("all"===t||e.some(e=>t.includes(e)))return n}return null},"J",0,a],90801);let s=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;e.s(["f",0,e=>"string"==typeof e&&s.test(e)],479301)},891262,7494,267485,e=>{var t=e.i(442473);let n={CRITICAL:4,HIGH:3,MODERATE:2,LOW:1,UNKNOWN:0};function r(e){return[...e].sort((e,t)=>n[t.severity]-n[e.severity]||(e.id<t.id?-1:+(e.id>t.id)))}e.s(["t",0,function(e,t,r){let a=new Set((t?.findings??[]).map(e=>e.id));if("vulnerable"===r.status&&r.findings.length>0){let t;if(r.findings.every(e=>a.has(e.id)))return null;let s=r.findings.reduce((e,t)=>n[t.severity]>n[e]?t.severity:e,"UNKNOWN");return{kind:n[s]>=n.HIGH?"err":"warn",message:`${e} runs Next.js ${r.version} with ${t=r.findings.length,`${t} known vulnerabilit${1===t?"y":"ies"}`} (${s.toLowerCase()})`,detail:r.findings.map(e=>e.id).join(", ").slice(0,1e3)}}return"ok"===r.status&&a.size>0?{kind:"ok",message:`${e} no longer has known Next.js vulnerabilities (now ${r.version})`,detail:null}:null},"I",0,r],7494);var a=e.i(250474);let s=["CRITICAL","HIGH","MODERATE","LOW","UNKNOWN"],i=e=>"object"==typeof e&&null!==e&&!Array.isArray(e),l=e=>Array.isArray(e)?e:[],o=e=>"string"==typeof e&&e?e:null,u=e=>i(e.package)&&"next"===e.package.name&&"npm"===e.package.ecosystem,d="OSV.dev sent an answer we couldn't read";async function c(e,n={}){let m=n.timeoutMs??1e4,h=n.maxBytes??2097152,g=AbortSignal.timeout(m),y=(0,t.X)(g),v=`OSV.dev didn't answer within ${f(m)}`,k=[],b=null;for(let r=0;r<3;r++){var w;let r,a;try{r=await (n.fetch??fetch)("https://api.osv.dev/v1/query",{method:"POST",headers:{"content-type":"application/json","user-agent":"OpsConsole-Security/1.0 (+https://west-solutions.web.id)"},body:JSON.stringify({package:{name:"next",ecosystem:"npm"},version:e,...b?{page_token:b}:{}}),redirect:"error",cache:"no-store",signal:g})}catch(e){return{ok:!1,error:p(e)?v:"Couldn't reach OSV.dev"}}if(!r.ok)return await r.body?.cancel().catch(()=>void 0),{ok:!1,error:`OSV.dev answered HTTP ${r.status}`};try{let{bytes:e,truncated:n}=await (0,t.z)(r,h,y);if(n)return{ok:!1,error:"OSV.dev sent too large an answer"};a=JSON.parse(new TextDecoder().decode(e))}catch(e){return{ok:!1,error:p(e)?v:d}}let s=i(w=a)?void 0===w.vulns?[]:Array.isArray(w.vulns)?w.vulns:null:null;if(null===s)return{ok:!1,error:d};if(k.push(...s),!(b=i(a)?o(a.next_page_token):null))break}let A=function(e,t){let n=[],d=0;for(let r of e){if(!i(r))continue;let e=o(r.id);e&&(d++,r.withdrawn||n.push({id:e.slice(0,64),cve:l(r.aliases).map(o).find(e=>!!e&&/^CVE-\d{4}-\d+$/.test(e))??null,summary:(o(r.summary)??"").replace(/\s+/g," ").trim().slice(0,200),severity:function(e){let t=i(e.database_specific)?o(e.database_specific.severity)?.toUpperCase():void 0;return"MEDIUM"===t?"MODERATE":s.includes(t??"")?t:"UNKNOWN"}(r),fixed:function(e,t){let n=null;for(let r of l(e))if(i(r)&&u(r))for(let e of l(r.ranges)){if(!i(e)||"SEMVER"!==e.type&&"ECOSYSTEM"!==e.type)continue;let r=null;for(let s of l(e.events)){if(!i(s))continue;let e=o(s.introduced),l=o(s.fixed);e?r=e:l&&null!==r?((0,a.f)(t,r)>=0&&0>(0,a.f)(t,l)&&(null===n||0>(0,a.f)(l,n))&&(n=l),r=null):(o(s.last_affected)||o(s.limit))&&(r=null)}}return n}(r.affected,t)}))}return e.length>0&&0===d?null:r(n).slice(0,50)}(k,e);return null===A?{ok:!1,error:d}:{ok:!0,findings:A}}let p=e=>e instanceof DOMException&&("TimeoutError"===e.name||"AbortError"===e.name),f=e=>e<1e3?`${e} ms`:`${Math.round(e/1e3)} s`;e.s(["y",0,c,"t",0,p],267485);var m=e.i(804581);let h="OpsConsole-Deps/1.0 (+https://west-solutions.web.id)";async function g(e,t,n,r){let a=r.deadline-Date.now();if(a<500)return{ok:!1,error:"No time left for OSV.dev"};let s=AbortSignal.timeout(a);return v(e,{method:"POST",headers:{"content-type":"application/json","user-agent":h},body:JSON.stringify(t),signal:s},n,s,r)}async function y(e,t,n){let r=n.deadline-Date.now();if(r<500)return{ok:!1,error:"No time left for OSV.dev"};let a=AbortSignal.timeout(Math.min(r,8e3));return v(e,{method:"GET",headers:{"user-agent":h},signal:a},t,a,n)}async function v(e,n,r,a,s){let i;try{i=await (s.fetch??fetch)(e,{...n,redirect:"error",cache:"no-store"})}catch(e){return{ok:!1,error:p(e)?"OSV.dev didn't answer in time":"Couldn't reach OSV.dev"}}if(!i.ok)return await i.body?.cancel().catch(()=>void 0),{ok:!1,error:`OSV.dev answered HTTP ${i.status}`};try{let{bytes:e,truncated:n}=await (0,t.z)(i,r,(0,t.X)(a));if(n)return{ok:!1,error:"OSV.dev sent too large an answer"};return{ok:!0,body:JSON.parse(new TextDecoder().decode(e))}}catch(e){return{ok:!1,error:p(e)?"OSV.dev didn't answer in time":"OSV.dev sent an answer we couldn't read"}}}async function k(e,t){let n=[];for(let r of(0,m.f)(e)){let e=await g(m.n,r,4194304,t);if(!e.ok)return e;let a=(0,m.j)(e.body,r.queries.length);if(!a)return{ok:!1,error:"OSV.dev sent an answer we couldn't read"};n.push(...a)}return{ok:!0,ids:n}}async function b(e,t){let n=[...new Set(e)].filter(m.G);if(n.length>300)return{ok:!1,error:`Too many advisories to read in one scan (${n.length})`};let r=new Map,a=null;for(let e=0;e<n.length&&!a;e+=8)await Promise.all(n.slice(e,e+8).map(async e=>{let n=await y(`${m.W}${encodeURIComponent(e)}`,1048576,t),s=n.ok?(0,m.O)(n.body):null;s?r.set(e,s):a??=n.ok?"OSV.dev sent an advisory we couldn't read":n.error}));return a?{ok:!1,error:a}:{ok:!0,map:r}}e.s(["J",0,b,"K",0,k],891262)},804581,e=>{var t=e.i(250474);let n=e=>"object"==typeof e&&null!==e&&!Array.isArray(e),r=e=>Array.isArray(e)?e:[],a=e=>"string"==typeof e&&e?e:null,s=e=>/^[A-Za-z0-9][A-Za-z0-9._:-]{1,63}$/.test(e),i={CRITICAL:"critical",HIGH:"high",MODERATE:"moderate",MEDIUM:"moderate",LOW:"low"},l=e=>e>=9?"critical":e>=7?"high":e>=4?"moderate":e>0?"low":"unknown",o=(e,t)=>n(e.package)&&e.package.name===t&&"npm"===e.package.ecosystem;e.s(["S",0,20,"n",0,"https://api.osv.dev/v1/querybatch","W",0,"https://api.osv.dev/v1/vulns/","h",0,200,"f",0,function(e){let t=[];for(let n=0;n<e.length;n+=1e3)t.push({queries:e.slice(n,n+1e3).map(e=>({package:{name:e.name,ecosystem:"npm"},version:e.version}))});return t},"i",0,function(e,s,i,l=new Map){let u=[];return e.forEach((e,d)=>{for(let c of s[d]??[]){let s=l.get(`${e.name}@${e.version}|${c}`);if(s){u.push({...s,dev:e.dev});continue}let d=i.get(c);d&&!d.withdrawn&&u.push({package:e.name,installedVersion:e.version,vulnId:d.id,aliases:d.aliases,severity:d.severity,fixedVersion:function(e,s,i){let l=null;for(let u of r(e))if(n(u)&&o(u,s))for(let e of r(u.ranges)){if(!n(e)||"SEMVER"!==e.type&&"ECOSYSTEM"!==e.type)continue;let s=null;for(let o of r(e.events)){if(!n(o))continue;let e=a(o.introduced),r=a(o.fixed);e?s=e:r&&null!==s?((0,t.f)(i,s)>=0&&0>(0,t.f)(i,r)&&(null===l||0>(0,t.f)(r,l))&&(l=r),s=null):(a(o.last_affected)||a(o.limit))&&(s=null)}}return l}(d.affected,e.name,e.version),summary:d.summary,dev:e.dev,source:"osv"})}}),u},"G",0,s,"O",0,function(e){if(!n(e))return null;let t=a(e.id);return t&&s(t)?{id:t,aliases:[...new Set(r(e.aliases).map(a).filter(e=>!!e&&s(e)))].slice(0,20),summary:(a(e.summary)??a(e.details)?.split(/\n/)[0]??"").replace(/\s+/g," ").trim().slice(0,200),severity:function(e){let t=n(e.database_specific)?a(e.database_specific.severity)?.toUpperCase():null;if(t&&i[t])return i[t];for(let t of r(e.severity)){if(!n(t)||"CVSS_V3"!==t.type&&"CVSS_V31"!==t.type)continue;let e=a(t.score)?function(e){let t,n=/^CVSS:3\.[01]\/(.+)$/.exec(e.trim());if(!n)return null;let r={};for(let e of n[1].split("/")){let[t,n]=e.split(":");t&&n&&(r[t]=n)}let a={N:.85,A:.62,L:.55,P:.2},s={L:.77,H:.44},i={N:.85,R:.62},l={H:.56,L:.22,N:0},o="C"===r.S,u=o?{N:.85,L:.68,H:.5}:{N:.85,L:.62,H:.27};if(![a[r.AV],s[r.AC],u[r.PR],i[r.UI],l[r.C],l[r.I],l[r.A]].every(e=>"number"==typeof e)||"U"!==r.S&&"C"!==r.S)return null;let d=1-(1-l[r.C])*(1-l[r.I])*(1-l[r.A]),c=o?7.52*(d-.029)-3.25*(d-.02)**15:6.42*d,p=8.22*a[r.AV]*s[r.AC]*u[r.PR]*i[r.UI];return c<=0?0:(t=Math.round(1e5*Math.min(o?1.08*(c+p):c+p,10)))%1e4==0?t/1e5:(Math.floor(t/1e4)+1)/10}(a(t.score)):null;if(null!==e)return l(e)}return(a(e.id)??"").startsWith("MAL-")?"critical":"unknown"}(e),withdrawn:!!a(e.withdrawn),affected:e.affected}:null},"j",0,function(e,t){return n(e)&&Array.isArray(e.results)&&e.results.length===t?e.results.map(e=>n(e)?r(e.vulns).map(e=>n(e)?a(e.id):null).filter(e=>!!e&&s(e)):[]):null}])},413230,e=>{var t=e.i(250474),n=e.i(32391),r=e.i(804581);let a=["critical","high","moderate","low","unknown"],s=e=>a.indexOf(e),i=e=>"object"==typeof e&&null!==e&&!Array.isArray(e),l=e=>"string"==typeof e&&e?e:null,o={critical:"critical",high:"high",medium:"moderate",moderate:"moderate",low:"low"},u=e=>`${e.package}@${e.installedVersion}|${e.vulnId}`;e.s(["g",0,function(e){let t=e.filter(e=>!e.dev);return t.some(e=>{let t;return"critical"===e.severity||(t=e.summary,/\bRCE\b|remote code execution/i.test(t))})?"critical":t.some(e=>"high"===e.severity)?"warning":null},"L",0,function(e){let t=e.filter(e=>{let t;return!e.dev&&(s(e.severity)<=s("high")||(t=e.summary,/\bRCE\b|remote code execution/i.test(t)))}),n=[...t].sort((e,t)=>s(e.severity)-s(t.severity)||(e.package<t.package?-1:1)),r=[];for(let e of n){let t=`${e.package} ${e.installedVersion}${e.fixedVersion?` → ${e.fixedVersion}`:" (no fix yet)"}`;r.includes(t)||r.push(t)}let a=new Set(t.map(e=>e.package)).size,i=function(e){let t={critical:0,high:0,moderate:0,low:0,unknown:0};for(let n of e)t[n.severity]++;return t}(t),l=["critical","high","moderate","low","unknown"].filter(e=>i[e]>0).map(e=>`${i[e]} ${e}`).join(", "),o=`${a} vulnerable package${1===a?"":"s"} (${l}): ${r.slice(0,4).join(", ")}${r.length>4?`, +${r.length-4} more`:""}.`;return o.length>300?`${o.slice(0,299)}…`:o},"z",0,function(e,t,n){let r=new Set;return e.forEach((e,a)=>{for(let s of t[a]??[])n.has(`${e.name}@${e.version}|${s}`)||r.add(s)}),[...r]},"A",0,function(e,t){let n=new Map;if(t)return n;for(let t of e)t.fixedVersion&&"dependabot"!==t.source&&n.set(u(t),{package:t.package,installedVersion:t.installedVersion,vulnId:t.vulnId,aliases:t.aliases,severity:t.severity,fixedVersion:t.fixedVersion,summary:t.summary,dev:t.dev,source:"osv"});return n},"R",0,function(e,n,r){let a=[...e];for(let e of n)if(!a.some(t=>t.package===e.package&&(t.vulnId===e.ghsaId||t.aliases.includes(e.ghsaId)||null!==e.cveId&&t.aliases.includes(e.cveId)))&&e.range)for(let n of r)n.name===e.package&&function(e,n){let r=n.split(",").map(e=>e.trim()).filter(Boolean);return!!r.length&&r.every(n=>{let r=/^(<=|>=|<|>|=)\s*v?(\S+)$/.exec(n);if(!r)return!1;let a=(0,t.f)(e,r[2]);return"<"===r[1]?a<0:"<="===r[1]?a<=0:">"===r[1]?a>0:">="===r[1]?a>=0:0===a})}(n.version,e.range)&&a.push({package:e.package,installedVersion:n.version,vulnId:e.ghsaId,aliases:e.cveId?[e.cveId]:[],severity:e.severity,fixedVersion:e.fixed,summary:e.summary,dev:e.dev||n.dev,source:"dependabot"});return a},"E",0,function(e){if(!Array.isArray(e))return null;let t=[];for(let a of e){if(!i(a)||"open"!==a.state||!i(a.dependency)||!i(a.security_advisory))continue;let e=i(a.dependency.package)&&"npm"===a.dependency.package.ecosystem?l(a.dependency.package.name):null,s=l(a.security_advisory.ghsa_id);if(!e||!(0,n.L)(e)||!s||!(0,r.G)(s))continue;let u=i(a.security_vulnerability)?a.security_vulnerability:{},d=i(u.first_patched_version)?l(u.first_patched_version.identifier):null,c=l(a.security_advisory.cve_id);t.push({package:e,ghsaId:s,cveId:c&&/^CVE-\d{4}-\d+$/.test(c)?c:null,summary:(l(a.security_advisory.summary)??"").replace(/\s+/g," ").trim().slice(0,r.h),severity:o[(l(u.severity)??l(a.security_advisory.severity)??"").toLowerCase()]??"unknown",range:l(u.vulnerable_version_range),fixed:d&&d.length<=100?d:null,dev:"development"===a.dependency.scope})}return t},"h",0,function(e,t,n){let a=new Map(e.map(e=>[u(e),e])),s=new Set,i={insert:[],update:[],resolve:[]};for(let e of t){let t=u(e);if(s.has(t))continue;s.add(t);let l={...e,aliases:e.aliases.slice(0,r.S),summary:e.summary.slice(0,r.h),direct:n.has(e.package)},o=a.get(t);o?i.update.push({id:o.id,severity:l.severity,fixedVersion:l.fixedVersion,summary:l.summary,aliases:l.aliases,dev:l.dev,direct:l.direct}):i.insert.push(l)}return i.resolve=e.filter(e=>!s.has(u(e))).map(e=>e.id),i},"U",0,function(e,t,n,r=!1){return!!r||!e||!e.scannedAt||(e.error?n.getTime()-e.scannedAt.getTime()>=72e6||e.lockfileSha!==t:e.lockfileSha!==t||!e.queriedAt||n.getTime()-e.queriedAt.getTime()>=6048e5)},"M",0,function(e){return[...e].sort((e,t)=>(e.scannedAt?.getTime()??-1)-(t.scannedAt?.getTime()??-1)||(e.id<t.id?-1:1))},"B",0,function(e){let n=new Map;for(let r of e){if(!r.direct||!r.fixedVersion||0>=(0,t.f)(r.fixedVersion,r.installedVersion))continue;let e=n.get(r.package)??{package:r.package,to:r.fixedVersion,vulnIds:[],cves:[],severity:r.severity};for(let n of((0,t.f)(r.fixedVersion,e.to)>0&&(e.to=r.fixedVersion),e.vulnIds.includes(r.vulnId)||e.vulnIds.push(r.vulnId),r.aliases))/^CVE-/.test(n)&&!e.cves.includes(n)&&e.cves.push(n);s(r.severity)<s(e.severity)&&(e.severity=r.severity),n.set(r.package,e)}return[...n.values()].sort((e,t)=>s(e.severity)-s(t.severity)||(e.package<t.package?-1:1))}])},911191,e=>{let t=[[/(?:\b|(?<=%2F))hb(?:_|%5F)[0-9a-f]{32}\b/gi,"hb_[hidden]"],[/(\/api(?:\/|%2F)ping(?:\/|%2F))(?!hb_\[hidden\])[^/?#\s]+/gi,"$1[hidden]"],[/\b(postgres(?:ql)?|mysql|mongodb(?:\+srv)?|redis|rediss):\/\/\S+/gi,"$1://[hidden]"],[/\b(https?):\/\/[^\s/@:]+:[^\s/@]+@/gi,"$1://[hidden]@"],[/\b(Bearer|Basic)\s+[^\s"',;]+/gi,"$1 [hidden]"],[/\b((?:access_|refresh_|id_)?token|secret|password|passwd|pwd|api[_-]?key|apikey|authorization|cookie|session|private_key)(["']?\s*[:=]\s*["']?)(?!Bearer\b|Basic\b)([^\s"'&,;}]+)/gi,"$1$2[hidden]"],[/\beyJ[\w-]{8,}\.[\w-]{8,}\.[\w-]{8,}/g,"[jwt]"],[/\b[\w.+-]+@[\w-]+(?:\.[\w-]+)+\b/g,"[email]"],[/\b[A-Fa-f0-9]{40,}\b/g,"[redacted]"],[/\b(?=[A-Za-z0-9_-]*\d)(?=[A-Za-z0-9_-]*[A-Za-z])[A-Za-z0-9_-]{40,}\b/g,"[redacted]"]];function n(e,t){return e.length>t?`${e.slice(0,t-1)}…`:e}e.s(["l",0,n,"n",0,function(e){return null===e?null:n(e.split(/[?#]/)[0]||"/",512)},"h",0,function(e){return t.reduce((e,[t,n])=>e.replace(t,n),e)}])},659846,e=>{e.s(["f",0,["vercel","supabase","neon","firebase","turso","upstash","cloudflare","github","github_write"]],659846)},154491,e=>{let t=["home","hosting","database","devops","manage"],n=["hosting","database","devops"],r={vercel:"hosting",cloudflare:"hosting",supabase:"database",neon:"database",firebase:"database",turso:"database",upstash:"database",github:"devops",github_write:"devops"};function a(e){return Array.isArray(e)?t.filter(r=>"string"==typeof r&&t.includes(r)&&n.includes(r)&&e.includes(r)):[]}let s={MonitorDown:"hosting",HighLatency:"hosting",DeploymentFailed:"hosting",CertExpiringSoon:"hosting",DomainExpiringSoon:"hosting",DnsProxiedToVercel:"hosting",DatabasePaused:"database",StorageAlmostFull:"database",NeonComputeHigh:"database",FirestoreQuotaHigh:"database",AutoPauseRisk:"database",ComputeHigh:"database",DbQuotaHigh:"database",VulnerableDependency:"devops",CredentialExpiring:"account",CollectorStale:null},i=/^Log/;e.s(["D",0,r,"O",0,(e,t,n)=>{let a;if(!e.size)return!1;let l="account"===(a=s[t])?n?r[n]??null:null:void 0!==a?a:i.test(t)?"hosting":null;return null!==l&&e.has(l)},"N",0,a,"s",0,function(e){return{ruleKeys:Object.entries(s).filter(([,t])=>null!==t&&"account"!==t&&e.has(t)).map(([e])=>e),providers:Object.entries(r).filter(([,t])=>e.has(t)).map(([e])=>e)}},"I",0,e=>new Set(a(e))])},250474,32391,e=>{function t(e){let[t,...n]=e.trim().split("-"),r=t.split(".").map(e=>Number.parseInt(e,10)||0);return{nums:[r[0]??0,r[1]??0,r[2]??0],pre:n.length?n.join("-").split("."):[]}}e.s(["f",0,function(e,n){let r=t(e),a=t(n);for(let e=0;e<3;e++)if(r.nums[e]!==a.nums[e])return r.nums[e]-a.nums[e];return function(e,t){if(!e.length||!t.length)return e.length?-1:+!!t.length;for(let n=0;n<Math.max(e.length,t.length);n++){if(void 0===e[n])return -1;if(void 0===t[n])return 1;let r=/^\d+$/.test(e[n])?Number(e[n]):null,a=/^\d+$/.test(t[n])?Number(t[n]):null;if(null!==r&&null!==a){if(r!==a)return r-a}else if(null!==r||null!==a)return null!==r?-1:1;else if(e[n]!==t[n])return e[n]<t[n]?-1:1}return 0}(r.pre,a.pre)}],250474);let n=/^(?:@[a-z0-9][a-z0-9._~-]*\/)?[a-z0-9._~-][a-z0-9._~-]*$/i,r=/^\d+\.\d+\.\d+(?:-[0-9A-Za-z.-]+)?(?:\+[0-9A-Za-z.-]+)?$/,a=e=>e.length<=214&&n.test(e),s=e=>e.length<=100&&r.test(e),i=e=>"object"==typeof e&&null!==e&&!Array.isArray(e);function l(e){let t=new Map;for(let n of e){if(!a(n.name)||!s(n.version))continue;let e=`${n.name}@${n.version}`,r=t.get(e);if(r?r.dev=r.dev&&n.dev:t.set(e,{...n}),t.size>=1e4)break}return[...t.values()].sort((e,t)=>e.name===t.name?e.version<t.version?-1:1:e.name<t.name?-1:1)}function o(e){try{return JSON.parse(e)}catch{return null}}let u=e=>{let t=e.lastIndexOf("node_modules/");return t<0?null:e.slice(t+13)||null},d=e=>e.trim().replace(/^['"]|['"]$/g,""),c=e=>i(e)?Object.fromEntries(Object.entries(e).filter(e=>"string"==typeof e[1])):{};function p(e){let t=/^\s*(?:\^|~|>=|=|v)?\s*v?(\d+)(?:\.(\d+|x|\*))?(?:\.(\d+|x|\*))?(-[0-9A-Za-z.-]+)?\s*$/.exec(e);if(!t)return null;let n=e=>e&&/^\d+$/.test(e)?e:"0";return`${t[1]}.${n(t[2])}.${n(t[3])}${t[4]??""}`}e.s(["a",0,[{path:"package-lock.json",kind:"npm"},{path:"npm-shrinkwrap.json",kind:"npm"},{path:"pnpm-lock.yaml",kind:"pnpm"},{path:"yarn.lock",kind:"yarn"},{path:"bun.lock",kind:"bun"}],"e",0,function(e){let t=[],n=(e,n)=>{for(let[r,a]of Object.entries(e)){let e=p(a);e&&t.push({name:r,version:e,dev:n})}};return n(e.dependencies,!1),n(e.optionalDependencies,!1),n(e.devDependencies,!0),l(t)},"K",0,function(e){return e?new Set([...Object.keys(e.dependencies),...Object.keys(e.devDependencies),...Object.keys(e.optionalDependencies)]):new Set},"L",0,a,"C",0,s,"Y",0,p,"D",0,function(e,t){switch(e){case"npm":let n=o(t);if(!i(n))return null;let r=[];if(i(n.packages)){for(let[e,t]of Object.entries(n.packages)){if(!e||!i(t)||!0===t.link||"string"!=typeof t.version)continue;let n="string"==typeof t.name&&e.includes("node_modules/")?t.name:u(e);n&&r.push({name:n,version:t.version,dev:!0===t.dev})}return l(r)}if(i(n.dependencies)){let e=(t,n)=>{if(!(n>40))for(let[a,s]of Object.entries(t))i(s)&&("string"==typeof s.version&&r.push({name:a,version:s.version,dev:!0===s.dev}),i(s.dependencies)&&e(s.dependencies,n+1))};return e(n.dependencies,0),l(r)}return null;case"pnpm":return function(e){let t=e.split(/\r?\n/);if(!t.some(e=>/^lockfileVersion:/.test(e)))return null;let n=[],r=!1,s=null;for(let e of t){if(/^\S/.test(e)){r=/^packages:\s*$/.test(e),s=null;continue}if(!r)continue;let t=/^ {2}(\S.*?):\s*$/.exec(e);if(t){let e=function(e){let t=d(e).replace(/^\//,""),n=t.indexOf("(");n>0&&(t=t.slice(0,n));let r=t.lastIndexOf("@");if(r>0&&!t.slice(r+1).includes("/")&&a(t.slice(0,r)))return{name:t.slice(0,r),version:t.slice(r+1).split("_")[0]};let s=t.lastIndexOf("/");return s<=0?null:{name:t.slice(0,s),version:t.slice(s+1).split("_")[0]}}(t[1]);(s=e?{...e,dev:!1}:null)&&n.push(s);continue}s&&/^ {4}dev: true\s*$/.test(e)&&(s.dev=!0)}return l(n)}(t);case"yarn":return function(e){let t=e.split(/\r?\n/),n=[],r=null,a=!1;for(let e of t){if(!e.trim()||e.trimStart().startsWith("#"))continue;if(/^\S/.test(e)){let t=e.replace(/:\s*$/,"");r=t.startsWith("__metadata")||/@(?:workspace|link|portal|file):/.test(t)?null:function(e){let t=d(e),n=t.indexOf("@",+!!t.startsWith("@"));return n>0?t.slice(0,n):null}(t.split(/,\s*/)[0]),a=!0;continue}let t=/^ {2}version:?\s+"?([^"\s]+)"?\s*$/.exec(e);t&&r&&(n.push({name:r,version:t[1],dev:!1}),r=null)}return a?l(n):null}(t);case"bun":let s=o(t.replace(/,(\s*[}\]])/g,"$1"));if(!i(s)||!i(s.packages))return null;let c=[];for(let e of Object.values(s.packages)){if(!Array.isArray(e)||"string"!=typeof e[0])continue;let t=e[0],n=t.lastIndexOf("@");n<=0||c.push({name:t.slice(0,n),version:t.slice(n+1),dev:!1})}return l(c)}},"b",0,function(e){let t=o(e);return i(t)?{dependencies:c(t.dependencies),devDependencies:c(t.devDependencies),optionalDependencies:c(t.optionalDependencies)}:null}],32391)}]})();
|
|
5
|
+
|
|
6
|
+
//# sourceMappingURL=src_lib_0y-obfzqjj0c6._.js.map
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
(()=>{"use strict";module.exports=[658266,211256,e=>{var t=e.i(278619),n=e.i(959408),r=e.i(867274),a=e.i(413230);let s=e=>Math.round(e).toLocaleString("en-US"),i=(e,t)=>Math.floor((e.getTime()-t.getTime())/864e5),l=(e,t)=>`${e} ${t}${1===e?"":"s"}`,o=e=>{try{let t=new URL(e);return`${t.host}${t.pathname}`}catch{return e}},u=e=>{try{return new URL(e).pathname}catch{return"/"}},d="Down · ",c=(e,t,n)=>({rule:e,subject:t,status:"unknown",resourceId:null,accountId:null,title:t,message:"",provider:null,sampleAt:null,...n}),p=e=>"firestore"===e.provider?"firebase":"d1"===e.provider?"cloudflare":e.provider,f=new Set(["turso","upstash","d1"]),m={MonitorDown:(e,t)=>e.monitors.map(e=>{let r=c("MonitorDown",e.id,{resourceId:e.appId,title:`${e.appName} ${"heartbeat"===e.kind?e.url:u(e.url)}`,provider:"vercel",sampleAt:e.lastCheckedAt}),a=t??3;if("heartbeat"===e.kind){let t;return{...r,status:"err"===e.state?"firing":"ok"===e.state?"ok":"unknown",message:`${e.appName} \xb7 ${e.url}: ${t=e.lastError,t?.startsWith(d)?t.slice(d.length):"no ping in time"}.`}}return e.failStreak>=a?{...r,status:"firing",message:(0,n.H)(e)?`${o(e.url)} failed its check (${(0,n.H)(e)}) on ${a} consecutive checks.`:`${o(e.url)} returned ${e.lastStatus?`HTTP ${e.lastStatus}`:"no answer"} on ${a} consecutive checks.`}:{...r,status:0===e.failStreak&&e.lastCheckedAt?"ok":"unknown",message:`${o(e.url)} answers again.`}}),CollectorStale:(e,t)=>{let n=e.lastMinuteRunAt;return[c("CollectorStale","collector",{status:!n||e.now.getTime()-n.getTime()>(t??5)*6e4?"firing":"ok",title:"collector",message:n?`The last minute run finished ${s((e.now.getTime()-n.getTime())/6e4)} min ago.`:"The collector hasn't finished a run yet."})]},HighLatency:(e,t)=>e.monitors.filter(e=>"http"===e.kind).map(e=>{let n=c("HighLatency",e.id,{resourceId:e.appId,title:`${e.appName} ${u(e.url)}`,provider:"vercel",sampleAt:e.lastCheckedAt});if(e.checksLast10<5||null===e.p95Last10)return n;let r=t??1500;return{...n,status:e.p95Last10>r?"firing":"ok",message:`p95 ${s(e.p95Last10)} ms over the last 10 minutes (limit ${s(r)} ms).`}}),DeploymentFailed:e=>e.apps.map(e=>{let t=c("DeploymentFailed",e.id,{resourceId:e.id,title:e.name,provider:"vercel"}),n=e.latestProduction;return n?"error"===n.state?{...t,status:"firing",message:`Production deployment ${n.sha?n.sha.slice(0,7):"(no commit)"} failed.`}:{...t,status:"building"===n.state?"unknown":"ok"}:{...t,status:"ok"}}),DatabasePaused:e=>e.dbs&&e.dbs.filter(e=>"supabase"===e.provider).map(e=>c("DatabasePaused",e.id,{resourceId:e.id,title:e.name,provider:"supabase",status:"unknown"===e.state?"unknown":"paused"===e.state?"firing":"ok",message:`Supabase project ${e.name} is paused.`})),CertExpiringSoon:(e,t)=>e.domains&&e.domains.map(n=>{let r=c("CertExpiringSoon",n.id,{resourceId:n.id,title:n.name,provider:"cloudflare"});if(!n.tlsNotAfter)return r;let a=i(n.tlsNotAfter,e.now);return{...r,status:a<(t??14)?"firing":"ok",message:`The TLS certificate of ${n.name} expires in ${l(a,"day")}.`}}),DomainExpiringSoon:(e,t)=>e.domains&&e.domains.map(n=>{let r=c("DomainExpiringSoon",n.id,{resourceId:n.id,title:n.name,provider:"cloudflare"});if(!n.expiresAt)return r;let a=i(n.expiresAt,e.now);return{...r,status:a<(t??30)?"firing":"ok",message:`${n.name} expires in ${l(a,"day")}.`}}),StorageAlmostFull:(e,t)=>e.dbs&&e.dbs.filter(e=>"firestore"!==e.provider).map(e=>{let n=c("StorageAlmostFull",e.id,{resourceId:e.id,title:e.name,provider:p(e)});if(null===e.sizeBytes||!e.sizeLimitBytes)return n;let r=e.sizeBytes/e.sizeLimitBytes*100;return{...n,status:r>(t??80)?"firing":"ok",message:`${e.name} uses ${s(e.sizeBytes/1e6)} MB of ${s(e.sizeLimitBytes/1e6)} MB (${s(r)}%).`}}),NeonComputeHigh:(e,t)=>e.dbs&&e.dbs.filter(e=>"neon"===e.provider).map(e=>{let n=c("NeonComputeHigh",e.id,{resourceId:e.id,title:e.name,provider:"neon"});return null===e.cuHours?n:{...n,status:e.cuHours>(t??80)?"firing":"ok",message:`${e.name} used ${s(e.cuHours)} of ${s(e.cuLimit??100)} CU-hours this month.`}}),FirestoreQuotaHigh:(e,t)=>e.dbs&&e.dbs.filter(e=>"firestore"===e.provider).map(e=>{let n=c("FirestoreQuotaHigh",e.id,{resourceId:e.id,title:e.name,provider:"firebase"});if(e.quotaExhausted)return{...n,status:"firing",message:`${e.name} hit a Firestore quota (RESOURCE_EXHAUSTED).`};if(null===e.readsToday||!e.readsLimit)return!1===e.quotaExhausted?{...n,status:"ok"}:n;let r=e.readsToday/e.readsLimit*100;return{...n,status:r>(t??80)?"firing":"ok",message:`${e.name} read ${s(e.readsToday)} of ${s(e.readsLimit)} documents today (${s(r)}%).`}}),AutoPauseRisk:(e,t)=>e.dbs&&e.dbs.filter(e=>"supabase"===e.provider).map(n=>{let r=c("AutoPauseRisk",n.id,{resourceId:n.id,title:n.name,provider:"supabase"});if("paused"===n.state)return{...r,status:"ok"};if(!n.lastApiAt)return r;let a=Math.floor((e.now.getTime()-n.lastApiAt.getTime())/864e5);return{...r,status:a>=(t??4)?"firing":"ok",message:`No API traffic for ${l(a,"day")}. Supabase pauses free projects after about 7 days.`}}),DnsProxiedToVercel:e=>e.dns&&e.dns.map(e=>c("DnsProxiedToVercel",e.id,{resourceId:e.resourceId,title:e.name,provider:"cloudflare",status:e.proxied&&e.pointsToVercel?"firing":"ok",message:`${e.name} points to Vercel through the Cloudflare proxy. Vercel recommends DNS only.`})),DbQuotaHigh:(e,t)=>e.dbs&&e.dbs.filter(e=>f.has(e.provider)).map(e=>{let n=c("DbQuotaHigh",e.id,{resourceId:e.id,title:e.name,provider:p(e)});return null==e.quotaPct?n:{...n,status:e.quotaPct>(t??80)?"firing":"ok",message:`${e.name}: ${e.quotaLabel??"usage"} at ${s(e.quotaPct)}% of the free plan.`}}),ComputeHigh:(e,t)=>e.compute?e.compute.map(n=>{let a=c("ComputeHigh",n.id,{resourceId:n.id,title:n.name,provider:"supabase",sampleAt:n.latest?new Date(n.latest.at):null}),s=(0,r.B)(n.latest,(0,r.V)(t),e.now);return null===s?a:{...a,status:s.length?"firing":"ok",message:s.length?`${n.name}: ${s.join(", ")}.`:`${n.name} compute is back under the limits.`}}):null,CredentialExpiring:(e,t)=>e.accounts.map(n=>{let r=c("CredentialExpiring",n.id,{accountId:n.id,title:`${n.provider} \xb7 ${n.label}`,provider:n.provider});if("drive"===n.provider&&"error"===n.status&&n.lastError?.includes("invalid_grant"))return{...r,status:"firing",message:"Google Drive access was removed (invalid_grant). Reconnect it."};if(!n.expiresAt)return{...r,status:"ok"};let a=i(n.expiresAt,e.now);return{...r,status:a<(t??14)?"firing":"ok",message:a<0?`The ${n.provider} credential ${n.label} has expired.`:`The ${n.provider} credential ${n.label} expires in ${l(a,"day")}.`}}),VulnerableDependency:e=>e.deps?e.deps.flatMap(t=>{let n=e.apps.find(e=>e.id===t.appId);if(!n)return[];let r=c("VulnerableDependency",t.appId,{resourceId:t.appId,title:n.name,provider:"github"});if(t.error)return[r];let s=(0,a.g)(t.vulns);return s?[{...r,status:"firing",message:(0,a.L)(t.vulns),..."critical"===s?{severity:"critical"}:{}}]:[{...r,status:"ok",message:`${n.name} has no high or critical dependency advisories.`}]}):null};e.s(["f",0,function(e,n,r){let a=[],s=new Set;for(let i of n){if(!i.enabled||r&&!r.includes(i.key)||!t._[i.key])continue;let n=m[i.key](e,i.threshold);n&&(s.add(i.key),a.push(...n))}return{observations:a,evaluated:s}}],658266);let h=["MonitorDown","HighLatency"],g=["telegram","discord"],y=e=>e.channels.some(e=>g.includes(e));function v(e,t){return t.collectorStale&&"CollectorStale"!==e.rule?"CollectorStale":e.resourceId&&h.includes(e.rule)?t.mutedApps.get(e.resourceId)??null:null}let k=(e,t)=>"critical"===t&&"warning"===e?"critical":e,b=(e,t)=>e.silencedUntilResolved||null!==e.silencedUntil&&e.silencedUntil.getTime()>t.getTime(),w=(e,t)=>`${e}|${t}`;e.s(["f",0,function(e,n,r,a,s){let i={open:[],touch:[],resolve:[]},l=new Map(a.map(e=>[e.key,e])),o=new Map(n.map(e=>[w(e.rule,e.subject),e])),u=new Set(e.map(e=>w(e.ruleKey,e.subject))),d=e=>i.resolve.push({id:e.id,pending:e.notifiedOpen?"resolve":null});for(let n of e){let e=l.get(n.ruleKey),a=o.get(w(n.ruleKey,n.subject));if(!e||!e.enabled){i.resolve.push({id:n.id,pending:null});continue}if(!r.has(n.ruleKey))continue;if(!a){i.resolve.push({id:n.id,pending:null});continue}if("unknown"===a.status)continue;let u=a.provider?s.incidents.get(a.provider)??null:null;if("firing"===a.status){let t=v(a,s),r=n.notifiedOpen&&null!==n.lastNotifiedAt&&s.now.getTime()-n.lastNotifiedAt.getTime()>=216e5,l={id:n.id,okStreak:0,lastSampleAt:a.sampleAt??n.lastSampleAt,lastSeenAt:s.now,message:a.message,causedBy:t,providerIncident:u},o=!n.notifiedOpen&&(!n.pendingSince||s.now.getTime()-n.pendingSince.getTime()>=216e5);(r||o)&&!b(n,s.now)&&!t&&null===n.pending&&y(e)&&(l.pending=r?"repeat":"open"),i.touch.push(l);continue}if(!t._[n.ruleKey].sampled||null===a.sampleAt){d(n);continue}if(!(null===n.lastSampleAt||a.sampleAt.getTime()>n.lastSampleAt.getTime()))continue;let c=n.okStreak+1;c>=2?d(n):i.touch.push({id:n.id,okStreak:c,lastSampleAt:a.sampleAt})}for(let e of n){if("firing"!==e.status||u.has(w(e.rule,e.subject))||s.maintenance.has(e.subject)||e.resourceId&&s.maintenance.has(e.resourceId))continue;let t=l.get(e.rule);if(!t)continue;let n=v(e,s);i.open.push({ruleKey:e.rule,subject:e.subject,resourceId:e.resourceId,accountId:e.accountId,severity:k(t.severity,e.severity),title:e.title,message:e.message,startedAt:s.now,lastSeenAt:s.now,lastSampleAt:e.sampleAt,causedBy:n,providerIncident:e.provider?s.incidents.get(e.provider)??null:null,pending:n||!y(t)?null:"open"})}return i}],211256)},582748,e=>{var t=e.i(89491),n=e.i(960063),r=e.i(800366),a=e.i(326003),s=e.i(843448),i=e.i(647006),l=e.i(328203);e.s(["d",0,function(e,i){let o={id:e.id,name:e.name,state:e.state,sizeBytes:null,sizeLimitBytes:null,lastApiAt:null,cuHours:null,cuLimit:null,readsToday:null,readsLimit:null,quotaExhausted:null};if("supabase_project"===e.kind){let t=(0,a.k)(a.B,e.data),n=(0,l.Z)(t.lastTrafficAt),r=(0,l.Z)(t.trafficAt),i=n??(r&&!t.trafficError?new Date(r.getTime()-6048e5):null);return{...o,provider:"supabase",sizeBytes:t.sizeBytes??null,sizeLimitBytes:s.R,lastApiAt:i}}if("neon_project"===e.kind){let t=(0,a.k)(a.s,e.data),n=(t.branches??[]).map(e=>e.logicalSize).filter(e=>"number"==typeof e);return{...o,provider:"neon",cuHours:null==t.computeSeconds?null:t.computeSeconds/3600,cuLimit:r.a.cuHours,sizeBytes:n.length?n.reduce((e,t)=>e+t,0):null,sizeLimitBytes:r.a.storageBytes}}if("firestore"===e.kind){let t=(0,a.k)(a.w,e.data),r=(0,l.Z)(t.opsAt),s=null!=t.reads&&r&&r.getTime()>=(0,n.a)(i).getTime()?t.reads:null,u=null!=t.latencyMs||null!=t.pingError;return{...o,provider:"firestore",readsToday:s,readsLimit:n.T.reads,quotaExhausted:u?"RESOURCE_EXHAUSTED"===t.pingReason:null}}if("turso_database"===e.kind){let n=(0,a.k)(a.N,e.data),r=(0,t.u)((0,t.G)(n,i));return{...o,provider:"turso",sizeBytes:n.orgStorageBytes??null,sizeLimitBytes:t.g.storageBytes,quotaPct:r?.pct??null,quotaLabel:r?`${r.label} ${r.text}`:null}}if("upstash_redis"===e.kind){let n=(0,a.k)(a.e,e.data),r=(0,t.u)((0,t.$)(n,i));return{...o,provider:"upstash",sizeBytes:n.storageBytes??null,sizeLimitBytes:t.W.storageBytes,quotaPct:r?.pct??null,quotaLabel:r?`${r.label} ${r.text}`:null}}if("d1_database"===e.kind){let n=(0,a.k)(a.x,e.data),r=(0,t.u)((0,t.I)(n,i));return{...o,provider:"d1",sizeBytes:n.sizeBytes??null,sizeLimitBytes:t.M.dbBytes,quotaPct:r?.pct??null,quotaLabel:r?`${r.label} ${r.text}`:null}}return null},"S",0,function(e,t){let n=e.filter(e=>Array.isArray(e.data.records));if(!n.length)return null;let r=e.map(e=>e.name),a=[];for(let e of n){let n=t.filter(t=>(0,l.J)(t.name,r)===e.name.toLowerCase().replace(/\.$/,"")),s=[...new Set(n.flatMap(e=>(0,i.q)(e.data).vercel?.recommendedIps??[]))];for(let t of(0,i.q)(e.data).records){if(!(0,l.l)(t,s))continue;let r=t.name.toLowerCase().replace(/\.$/,""),i=n.find(e=>e.name.toLowerCase().replace(/\.$/,"")===r);a.push({id:`${e.id}:${t.id}`,resourceId:i?.id??e.id,name:t.name,proxied:t.proxied,pointsToVercel:!0})}}return a},"r",0,function(e,t){return e.length||t.length?[...e.map(e=>({id:e.id,name:e.name,tlsNotAfter:null,expiresAt:(0,l.Z)((0,i.q)(e.data).rdap?.expiresAt)})),...t.map(e=>({id:e.id,name:e.name,tlsNotAfter:(0,l.Z)((0,i.q)(e.data).tls?.notAfter),expiresAt:null}))]:null}])},485647,e=>{var t=e.i(875225),n=e.i(349129),r=e.i(518899),a=e.i(924924),s=e.i(618916),i=e.i(582748),l=e.i(794713),o=e.i(662860),u=e.i(433609);async function d(){return(0,a.f)().select({appId:s.links.fromResourceId,dbId:s.links.toResourceId}).from(s.links).where((0,t.u)(s.links.kind,"uses_db")).limit(500)}async function c(e){let c=(0,t.b)((0,t.u)(s.resources.monitored,!0),(0,t.M)(s.resources.goneAt)),[p,f,m,h,g]=await Promise.all([(0,l.d)(),(0,l.D)(),(0,a.f)().select({m:s.monitors,appName:s.resources.name}).from(s.monitors).innerJoin(s.resources,(0,t.u)(s.resources.id,s.monitors.resourceId)).where((0,t.b)(c,(0,t.u)(s.monitors.paused,!1),(0,t.u)(s.monitors.ownerPaused,!1))),(0,a.f)().select({id:s.resources.id,name:s.resources.name}).from(s.resources).where((0,t.b)(c,(0,t.u)(s.resources.kind,"app"))),(0,a.f)().select({id:s.accounts.id,provider:s.accounts.provider,label:s.accounts.label,expiresAt:s.accounts.expiresAt,status:s.accounts.status,lastError:s.accounts.lastError}).from(s.accounts)]),y=m.map(e=>e.m.id),v=y.length?await (0,a.f)().select({id:s.checks.monitorId,n:r.B`count(*)::int`,p95:r.B`percentile_cont(0.95) within group (order by ${s.checks.latencyMs})::float8`}).from(s.checks).where((0,t.b)((0,t.y)(s.checks.monitorId,y),(0,t.B)(s.checks.at,new Date(e.getTime()-6e5)),(0,t.u)(s.checks.inMaintenance,!1))).groupBy(s.checks.monitorId):[],k=h.map(e=>e.id),b=k.length?await (0,a.f)().selectDistinctOn([s.deployments.resourceId],{appId:s.deployments.resourceId,state:s.deployments.state,sha:s.deployments.commitSha,createdAt:s.deployments.createdAtProvider}).from(s.deployments).where((0,t.b)((0,t.y)(s.deployments.resourceId,k),(0,t.u)(s.deployments.target,"production"))).orderBy(s.deployments.resourceId,(0,n.A)(s.deployments.createdAtProvider)):[],w=await (0,a.f)().select({id:s.resources.id,name:s.resources.name,kind:s.resources.kind,state:s.snapshots.state,data:s.snapshots.data}).from(s.resources).innerJoin(s.snapshots,(0,t.u)(s.snapshots.resourceId,s.resources.id)).where((0,t.b)(c,(0,t.y)(s.resources.kind,["supabase_project","neon_project","firestore","turso_database","upstash_redis","d1_database","zone","domain"]))),A=e=>w.filter(t=>t.kind===e),$=w.filter(e=>["supabase_project","neon_project","firestore","turso_database","upstash_redis","d1_database"].includes(e.kind)),I=A("zone"),S=A("domain"),x=await d(),V=await (0,o.Y)().catch(()=>null),_=k.length?await (0,u.a)(k).catch(()=>null):null;return{now:e,lastMinuteRunAt:p,lastAnyRunAt:f,monitors:m.map(({m:e,appName:t})=>{let n=v.find(t=>t.id===e.id),r="heartbeat"===e.kind;return{id:e.id,appId:e.resourceId,appName:t,url:r?e.name??"heartbeat":e.url,kind:r?"heartbeat":"http",state:e.state,failStreak:e.failStreak,lastStatus:e.lastStatus,lastError:e.lastError,lastCheckedAt:e.lastCheckedAt,p95Last10:n?.p95??null,checksLast10:n?.n??0}}),apps:h.map(e=>{let t=b.find(t=>t.appId===e.id);return{id:e.id,name:e.name,latestProduction:t?{state:t.state,sha:t.sha,createdAt:t.createdAt}:null}}),accounts:g,dbs:$.length?$.map(t=>(0,i.d)(t,e)).filter(e=>null!==e):null,domains:(0,i.r)(I,S),dns:(0,i.S)(I,S),links:x,compute:V,deps:_&&_.length?_:null}}e.s(["f",0,c])},532148,e=>{var t=e.i(875225),n=e.i(349129),r=e.i(518899),a=e.i(924924),s=e.i(618916),i=e.i(278619),l=e.i(658266),o=e.i(211256),u=e.i(275426),d=e.i(154491),c=e.i(485647),p=e.i(739886),f=e.i(111970);let m={vercel:"Vercel",supabase:"Supabase",neon:"Neon",cloudflare:"Cloudflare",firebase:"Firebase",gcp:"Google Cloud"};async function h(){return(await (0,a.f)().select().from(s.alertRules)).filter(e=>(0,i.h)(e.key)).map(e=>({key:e.key,severity:e.severity,threshold:e.threshold,enabled:e.enabled,channels:e.channels}))}async function g(e,n={}){let[r,y,v,k,b,w]=await Promise.all([(0,c.f)(e),h(),(0,a.f)().select().from(s.alerts).where((0,t.M)(s.alerts.resolvedAt)),(0,a.f)().select({provider:s.providerStatus.provider,state:s.providerStatus.state}).from(s.providerStatus),(0,p.f)(),(0,f.I)()]),A=new Map(r.accounts.map(e=>[e.id,e.provider])),$=v.filter(e=>!(0,d.O)(w,e.ruleKey,e.accountId?A.get(e.accountId):null)),I=(0,l.f)(r,y,n.only),S=I.evaluated,x=I.observations.filter(e=>!(0,d.O)(w,e.rule,e.provider)),V=y.find(e=>"CollectorStale"===e.key),_=void 0===r.lastAnyRunAt?r.lastMinuteRunAt:r.lastAnyRunAt,z=!!V?.enabled&&(!_||e.getTime()-_.getTime()>(V.threshold??5)*6e4),D=new Map((r.dbs??[]).filter(e=>"paused"===e.state).map(e=>[e.id,e.name])),R=new Map(r.links.filter(e=>D.has(e.dbId)).map(e=>[e.appId,`DatabasePaused \xb7 ${D.get(e.dbId)}`])),j=new Map(k.filter(e=>"warn"===e.state||"err"===e.state).map(e=>["gcp"===e.provider?"firebase":e.provider,m[e.provider]??e.provider])),B=(0,u.u)(b,r.monitors.map(e=>({id:e.id,appId:e.appId})),e,r.apps.map(e=>e.id)),T=$.filter(e=>(0,i.h)(e.ruleKey)).map(e=>({id:e.id,ruleKey:e.ruleKey,subject:e.subject,okStreak:e.okStreak,lastSampleAt:e.lastSampleAt,silencedUntil:e.silencedUntil,silencedUntilResolved:e.silencedUntilResolved,notifiedOpen:e.notifiedOpen,lastNotifiedAt:e.lastNotifiedAt,pending:e.pending,pendingSince:e.pendingSince})),M=(0,o.f)(T,x,S,y,{now:e,collectorStale:z,mutedApps:R,incidents:j,maintenance:B});return M.open.length||M.touch.length||M.resolve.length?(await (0,a.f)().transaction(async n=>{for(let t of M.open)await n.insert(s.alerts).values({...t,pendingSince:t.pending?e:null}).onConflictDoNothing();for(let r of M.touch){let{id:a,pending:i,...l}=r;await n.update(s.alerts).set({...l,...i?{pending:i,pendingSince:e}:{}}).where((0,t.b)((0,t.u)(s.alerts.id,a),(0,t.M)(s.alerts.resolvedAt)))}for(let r of M.resolve)await n.update(s.alerts).set({resolvedAt:e,pending:r.pending,pendingSince:r.pending?e:null}).where((0,t.b)((0,t.u)(s.alerts.id,r.id),(0,t.M)(s.alerts.resolvedAt)))}),{opened:M.open.length,resolved:M.resolve.length}):{opened:0,resolved:0}}let y=r.B`case ${s.alerts.severity} when 'critical' then 0 when 'warning' then 1 else 2 end`;async function v(e=new Set){return(await (0,a.f)().select({a:s.alerts,name:s.resources.name,kind:s.resources.kind}).from(s.alerts).leftJoin(s.resources,(0,t.u)(s.resources.id,s.alerts.resourceId)).where((0,t.b)((0,t.M)(s.alerts.resolvedAt),(0,f.s)(e))).orderBy(y,(0,n.A)(s.alerts.startedAt)).limit(200)).map(({a:e,name:t,kind:n})=>({...e,resourceName:t??null,resourceKind:n??null}))}async function k(e){return(await (0,a.f)().select({id:s.alerts.id,ruleKey:s.alerts.ruleKey,severity:s.alerts.severity,title:s.alerts.title,resourceId:s.alerts.resourceId,startedAt:s.alerts.startedAt,resolvedAt:s.alerts.resolvedAt}).from(s.alerts).where((0,t.b)((0,t.E)(s.alerts.resolvedAt),(0,t.B)(s.alerts.resolvedAt,new Date(e.getTime()-6048e5)))).orderBy((0,n.A)(s.alerts.resolvedAt)).limit(50)).flatMap(e=>e.resolvedAt?[{...e,resolvedAt:e.resolvedAt}]:[])}e.s(["$",0,g,"q",0,v,"I",0,k])},433609,455037,e=>{var t=e.i(90801),n=e.i(875225),r=e.i(349129),a=e.i(924924),s=e.i(618916),i=e.i(921991),l=e.i(547499),o=e.i(479301),u=e.i(32391),d=e.i(804581),c=e.i(891262),p=e.i(413230),f=e.i(455744),m=e.i(971724),h=e.i(105954),g=e.i(206033),y=e.i(180473);let v=e=>/^[A-Za-z0-9_.-]{1,100}\/[A-Za-z0-9_.-]{1,100}$/.test(e)&&!e.includes(".."),k=e=>e.split("/").map(encodeURIComponent).join("/");async function b(e,t,n,r="application/vnd.github+json"){let a,s=n.timeoutMs??5e3;try{a=await (n.fetch??fetch)(`https://api.github.com${e}`,{headers:{Authorization:`Bearer ${t}`,Accept:r,"X-GitHub-Api-Version":"2022-11-28","User-Agent":"Watchbell"},signal:AbortSignal.timeout(s),cache:"no-store"})}catch(e){return{ok:!1,kind:"transient",error:e instanceof DOMException&&("TimeoutError"===e.name||"AbortError"===e.name)?`GitHub didn't answer within ${Math.round(s/1e3)} seconds.`:"Couldn't reach GitHub."}}let i=await a.text().catch(()=>"");if(a.ok){let e=null;if(r.endsWith("+json")&&!r.includes(".raw"))try{e=JSON.parse(i)}catch{e=null}return{ok:!0,data:e,text:i,headers:a.headers}}let l=a.status;if(401===l)return{ok:!1,kind:"auth",status:l,error:"GitHub rejected this token (401). It may have expired or been revoked."};if((403===l||429===l)&&("0"===a.headers.get("x-ratelimit-remaining")||429===l)){let e=Number(a.headers.get("x-ratelimit-reset"));return{ok:!1,kind:"transient",status:l,retryAfterS:Number.isFinite(e)&&e>0?Math.max(1,e-Math.floor(Date.now()/1e3)):60,error:"GitHub's rate limit is used up for now. The next run tries again."}}return 403===l?{ok:!1,kind:"scope",status:l,error:"This token can't read that (403). It needs Metadata, Contents and Actions read on the repository."}:404===l?{ok:!1,kind:"missing",status:l,error:"GitHub doesn't show this to the token (404)."}:{ok:!1,kind:"transient",status:l,error:`GitHub returned an error (${l}).`}}let w=m.z.object({id:g.z.number(),name:h.z.string(),full_name:h.z.string(),owner:m.z.object({login:h.z.string()}),default_branch:h.z.string().nullish(),private:y.z.boolean(),archived:y.z.boolean().optional(),html_url:h.z.string().nullish(),pushed_at:h.z.string().nullish()}),A=e=>({ok:!1,kind:"format",error:`GitHub answered ${e} in a format the console doesn't recognise.`});async function $(e,t={}){let n=await b("/user",e,t);return n.ok?m.z.object({login:h.z.string()}).safeParse(n.data).success?{ok:!0,data:{expiresAt:function(e){let t=e.get("github-authentication-token-expiration")?.trim();if(!t)return null;let n=/^(\d{4}-\d{2}-\d{2})[ T](\d{2}:\d{2}:\d{2})\s*(UTC|Z|[+-]\d{2}:?\d{2})?$/.exec(t);if(!n)return null;let r=n[3]&&"UTC"!==n[3]&&"Z"!==n[3]?n[3].includes(":")?n[3]:`${n[3].slice(0,3)}:${n[3].slice(3)}`:"Z",a=new Date(`${n[1]}T${n[2]}${r}`);return Number.isNaN(a.getTime())?null:a}(n.headers)}}:A("the token check"):n}async function I(e,t={}){let n=[];for(let r=1;r<=3;r++){let a=await b(`/user/repos?per_page=100&page=${r}&sort=pushed&affiliation=owner,collaborator,organization_member`,e,t);if(!a.ok)return a;let s=f.z.array(w).safeParse(a.data);if(!s.success)return A("the repository list");for(let e of s.data){if(!v(e.full_name))continue;let t=e.pushed_at?new Date(e.pushed_at):null;n.push({id:String(e.id),owner:e.owner.login,name:e.name,fullName:e.full_name,defaultBranch:e.default_branch??null,private:e.private,archived:e.archived??!1,htmlUrl:e.html_url??null,pushedAt:t&&!Number.isNaN(t.getTime())?t:null})}if(s.data.length<100)return{ok:!0,data:{repos:n,truncated:!1}}}return{ok:!0,data:{repos:n,truncated:!0}}}async function S(e,t,n={}){if(!v(t))return{ok:!0,data:null};let r=await b(`/repos/${k(t)}/contents/package.json`,e,n,"application/vnd.github.raw+json");if(!r.ok)return"missing"===r.kind?{ok:!0,data:null}:r;if(r.text.length>262144)return{ok:!0,data:null};try{let e=JSON.parse(r.text).name;return{ok:!0,data:"string"==typeof e&&e.trim()&&e.length<=214?e.trim():null}}catch{return{ok:!0,data:null}}}let x=m.z.object({total_count:g.z.number(),workflow_runs:f.z.array(m.z.object({status:h.z.string().nullish(),conclusion:h.z.string().nullish(),name:h.z.string().nullish(),display_title:h.z.string().nullish(),head_branch:h.z.string().nullish(),head_sha:h.z.string().nullish(),html_url:h.z.string().nullish(),run_number:g.z.number().nullish(),updated_at:h.z.string().nullish(),created_at:h.z.string().nullish()}))});async function V(e,t,n,r={}){if(!v(t))return{ok:!1,kind:"format",error:"That isn't a repository name."};let a=new URLSearchParams({per_page:"1",exclude_pull_requests:"true",...n?{branch:n}:{}}),s=await b(`/repos/${k(t)}/actions/runs?${a}`,e,r);if(!s.ok)return s;let i=x.safeParse(s.data);if(!i.success)return A("the Actions runs");let l=i.data.workflow_runs[0];return l?{ok:!0,data:{status:l.status??"unknown",conclusion:l.conclusion??null,name:l.name??l.display_title??null,branch:l.head_branch??null,sha:l.head_sha??null,url:l.html_url?.startsWith("https://github.com/")?l.html_url:null,at:l.updated_at??l.created_at??null,runNumber:l.run_number??null}}:{ok:!0,data:{none:!0}}}let _=e=>/^[A-Za-z0-9._\/-]{1,200}$/.test(e)&&!e.includes("..")&&!e.startsWith("/")&&!e.endsWith("/");async function z(e,t,n,r,a,s={}){if(!v(t)||!_(r)||!n||n.split("/").includes("..")||n.startsWith("/"))return{ok:!1,kind:"format",error:"That isn't a file in a repository."};let i=n.split("/").map(encodeURIComponent).join("/"),l=await b(`/repos/${k(t)}/contents/${i}?ref=${encodeURIComponent(r)}`,e,s,"application/vnd.github.raw+json");return l.ok?Buffer.byteLength(l.text,"utf8")>a||l.text.includes("\0")||(l.text.match(/�/g)?.length??0)>8?{ok:!0,data:null}:{ok:!0,data:l.text}:l}async function D(e,t,n,r={}){if(!v(t)||!/^[0-9a-f]{40}$/.test(n))return{ok:!1,kind:"format",error:"That isn't a repository or commit."};let a=await b(`/repos/${k(t)}/actions/runs?head_sha=${n}&per_page=50`,e,r);if(!a.ok)return a;let s=m.z.object({workflow_runs:f.z.array(m.z.object({status:h.z.string().nullish(),conclusion:h.z.string().nullish()}))}).safeParse(a.data);return s.success?{ok:!0,data:s.data.workflow_runs.map(e=>({status:e.status??"queued",conclusion:e.conclusion??null}))}:A("the Actions runs")}m.z.object({sha:h.z.string().optional(),truncated:y.z.boolean().optional(),tree:f.z.array(m.z.object({path:h.z.string(),type:h.z.string(),size:g.z.number().optional()}))}),e.s(["$",0,262144,"V",0,z,"j",0,b,"k",0,$,"M",0,v,"c",0,_,"W",0,V,"o",0,I,"q",0,S,"f",0,k,"L",0,D],455037);let R=f.z.array(m.z.object({name:h.z.string(),type:h.z.string(),sha:h.z.string(),size:g.z.number().optional()}));async function j(e,t,n,r={}){if(!v(t)||!_(n))return{ok:!1,kind:"format",error:"That isn't a repository name or ref."};let a=await b(`/repos/${k(t)}/contents/?ref=${encodeURIComponent(n)}`,e,r);if(!a.ok)return a;let s=R.safeParse(a.data);return s.success?{ok:!0,data:s.data.filter(e=>"file"===e.type&&/^[0-9a-f]{40}$/.test(e.sha)).map(e=>({name:e.name,sha:e.sha,size:e.size??0}))}:{ok:!1,kind:"format",error:"GitHub answered the file list in a format the console doesn't recognise."}}function B(e,t,n,r,a,s={}){return z(e,t,n,r,a,s)}async function T(e,t,n={}){if(!v(t))return{ok:!1,kind:"format",error:"That isn't a repository name."};let r=await b(`/repos/${k(t)}/dependabot/alerts?state=open&ecosystem=npm&per_page=100`,e,n);if(!r.ok)return"scope"===r.kind||"missing"===r.kind?{ok:!0,data:{denied:!0}}:r;let a=(0,p.E)(r.data);return a?{ok:!0,data:{alerts:a}}:{ok:!1,kind:"format",error:"GitHub answered the Dependabot alerts in a format the console doesn't recognise."}}async function M(){let[e]=await (0,a.f)().select().from(s.accounts).where((0,n.u)(s.accounts.provider,"github")).orderBy((0,r.M)(s.accounts.createdAt)).limit(1);if(!e)return{error:"GitHub isn't connected."};let t=(0,i.V)({ciphertext:e.credentialCiphertext,iv:e.credentialIv},(0,l.f)().OPS_ENCRYPTION_KEY);return t?{token:t,accountId:e.id}:{error:"Can't read the stored GitHub credential. Replace it on Connections."}}async function C(){let[e]=await (0,a.f)().select({value:s.settings.value}).from(s.settings).where((0,n.u)(s.settings.key,"deps.scanAll")).limit(1);return e?.value===!0}async function E(){let e={id:s.githubRepos.id,fullName:s.githubRepos.fullName,defaultBranch:s.githubRepos.defaultBranch,scannedAt:s.dependencyScans.scannedAt},t=(0,n.b)((0,n.M)(s.githubRepos.goneAt),(0,n.u)(s.githubRepos.archived,!1)),r=await C()?await (0,a.f)().select(e).from(s.githubRepos).leftJoin(s.dependencyScans,(0,n.u)(s.dependencyScans.repoId,s.githubRepos.id)).where(t).limit(500):await (0,a.f)().selectDistinct(e).from(s.appRepos).innerJoin(s.githubRepos,(0,n.u)(s.githubRepos.id,s.appRepos.repoId)).leftJoin(s.dependencyScans,(0,n.u)(s.dependencyScans.repoId,s.githubRepos.id)).where(t).limit(500);return(0,p.M)(r)}let O=(e,t)=>e.length>t?`${e.slice(0,t-1)}…`:e;async function N(e,t){let n=new Date;await (0,a.f)().insert(s.dependencyScans).values({repoId:e,...t,updatedAt:n}).onConflictDoUpdate({target:s.dependencyScans.repoId,set:{...t,updatedAt:n}})}async function L(e){return(0,a.f)().select({id:s.dependencyVulns.id,package:s.dependencyVulns.package,installedVersion:s.dependencyVulns.installedVersion,vulnId:s.dependencyVulns.vulnId,severity:s.dependencyVulns.severity,fixedVersion:s.dependencyVulns.fixedVersion,summary:s.dependencyVulns.summary,aliases:s.dependencyVulns.aliases,dev:s.dependencyVulns.dev,direct:s.dependencyVulns.direct,source:s.dependencyVulns.source}).from(s.dependencyVulns).where((0,n.b)((0,n.u)(s.dependencyVulns.repoId,e),(0,n.M)(s.dependencyVulns.resolvedAt))).limit(2e3)}async function P(e,r,i,l={}){let o=()=>({...l,timeoutMs:Math.max(1e3,Math.min(i-Date.now(),1e4))}),f=async e=>(await N(r.id,{error:O(e,300),scannedAt:new Date}).catch(()=>void 0),{status:"failed",error:e}),m=r.defaultBranch??"HEAD",h=await j(e,r.fullName,m,o());if(!h.ok)return f(h.error);let g=function(e){for(let t of u.a){let n=e.find(e=>e.name===t.path);if(n)return{path:t.path,kind:t.kind,sha:n.sha}}return null}(h.data),y=h.data.find(e=>"package.json"===e.name)??null,v=g?g.sha:y?`pkg:${y.sha}`:null,[k]=await (0,a.f)().select().from(s.dependencyScans).where((0,n.u)(s.dependencyScans.repoId,r.id)).limit(1),b=new Date;if(!(0,p.U)(k??null,v,b,l.force))return{status:"unchanged"};if(!v){let e=await L(r.id);return e.length&&await (0,a.f)().update(s.dependencyVulns).set({resolvedAt:b}).where((0,n.y)(s.dependencyVulns.id,e.map(e=>e.id))),await N(r.id,{lockfilePath:null,lockfileSha:null,packageCount:0,scannedAt:b,queriedAt:b,error:null,note:"No package.json or lockfile at the repository root."}),{status:"scanned",vulns:0,packages:0,note:"no package.json"}}let w=y?await B(e,r.fullName,"package.json",m,262144,o()):null;if(w&&!w.ok)return f(w.error);let A=w?.ok&&w.data?(0,u.b)(w.data):null,$=null,I="package-json",S=null;if(g){if(2e3>i-Date.now())return f("Time budget used before the lockfile was read; the next run tries again.");let t=await B(e,r.fullName,g.path,m,0xf00000,{...l,timeoutMs:Math.max(1e3,Math.min(i-Date.now(),2e4))});if(!t.ok)return f(t.error);$=t.data?(0,u.D)(g.kind,t.data):null,I=g.kind,$||(S=`${g.path} couldn't be read; the versions come from package.json ranges (approximate).`)}if($){let e=(0,t.m)($,A);$=e.deps,e.stale.length&&(S=[S,(0,t.M)(e.stale)].filter(Boolean).join(" "))}else $=A?(0,u.e)(A):[],I="package-json",S??=g?null:"No lockfile: the versions come from package.json ranges (approximate).";let x=await L(r.id),V=[];if($.length){let e=await (0,c.K)($,{fetch:l.fetch,deadline:i});if(!e.ok)return f(e.error);let t=(0,p.A)(x,!0===l.force),n=await (0,c.J)((0,p.z)($,e.ids,t),{fetch:l.fetch,deadline:i});if(!n.ok)return f(n.error);V=(0,d.i)($,e.ids,n.map,t)}if(i-Date.now()>1500){let t=await T(e,r.fullName,o());t.ok&&"alerts"in t.data?V=(0,p.R)(V,t.data.alerts,$):t.ok&&(S=[S,"Dependabot alerts aren't readable with this token (optional: Dependabot alerts: Read)."].filter(Boolean).join(" "))}let _=(0,p.h)(x,V,(0,u.K)(A)),z=new Date;return await (0,a.f)().transaction(async e=>{for(let t of(_.insert.length&&await e.insert(s.dependencyVulns).values(_.insert.map(e=>({repoId:r.id,package:e.package,installedVersion:e.installedVersion,vulnId:e.vulnId,aliases:e.aliases,severity:e.severity,fixedVersion:e.fixedVersion,summary:e.summary,direct:e.direct,dev:e.dev,source:e.source,firstSeenAt:z,lastSeenAt:z}))).onConflictDoNothing(),_.update))await e.update(s.dependencyVulns).set({severity:t.severity,fixedVersion:t.fixedVersion,summary:t.summary,aliases:t.aliases,dev:t.dev,direct:t.direct,lastSeenAt:z}).where((0,n.u)(s.dependencyVulns.id,t.id));_.resolve.length&&await e.update(s.dependencyVulns).set({resolvedAt:z}).where((0,n.b)((0,n.y)(s.dependencyVulns.id,_.resolve),(0,n.M)(s.dependencyVulns.resolvedAt))),await e.insert(s.dependencyScans).values({repoId:r.id,lockfilePath:g?.path??(y?"package.json":null),lockfileSha:v,packageCount:$.length,scannedAt:z,queriedAt:z,error:null,note:S?O(S,300):null,updatedAt:z}).onConflictDoUpdate({target:s.dependencyScans.repoId,set:{lockfilePath:g?.path??(y?"package.json":null),lockfileSha:v,packageCount:$.length,scannedAt:z,queriedAt:z,error:null,note:S?O(S,300):null,updatedAt:z}})}),{status:"scanned",vulns:_.insert.length+_.update.length,packages:$.length,note:"package-json"===I?S:null}}async function H(e,t={}){let r=await M();if("error"in r)return{error:r.error};let i=await E(),l={scanned:0,unchanged:0,failed:[],left:0};for(let[n,a]of i.entries()){if(e-Date.now()<4e3){l.left=i.length-n;break}try{let n=await P(r.token,a,e,t);"scanned"===n.status?l.scanned++:"unchanged"===n.status?l.unchanged++:l.failed.push(`${a.fullName}: ${n.error}`)}catch(e){l.failed.push(`${a.fullName}: ${e instanceof Error?e.name:"error"}`)}}return await (0,a.f)().delete(s.dependencyVulns).where((0,n.b)((0,n.E)(s.dependencyVulns.resolvedAt),(0,n.S)(s.dependencyVulns.resolvedAt,new Date(Date.now()-7776e6)))).catch(()=>void 0),l}async function U(e){let[t]=await (0,a.f)().select({id:s.accounts.id}).from(s.accounts).where((0,n.u)(s.accounts.provider,"github")).limit(1);if(!t)return null;if(e-Date.now()<4e3)return console.info("deps: no time left today; the scan resumes tomorrow"),null;let r=await H(e);if("error"in r){let e;return(e=r.error,/didn't answer in time|no time left|time budget|rate limit/i.test(e))?null:r.error}let i=r.failed.filter(e=>!/didn't answer in time|no time left|time budget|rate limit/i.test(e)),l=r.failed.length-i.length+(r.left??0);l&&console.info(`deps: ${l} repositor${1===l?"y":"ies"} wait for the next run`);let o=i.slice(0,3);return i.length>3&&o.push(`+${i.length-3} more`),o.length?o.join("; "):null}async function q(e){let t=e.filter(o.f);if(!t.length)return[];let r=await (0,a.f)().select({appId:s.appRepos.appId,repoId:s.appRepos.repoId,error:s.dependencyScans.error}).from(s.appRepos).innerJoin(s.dependencyScans,(0,n.u)(s.dependencyScans.repoId,s.appRepos.repoId)).where((0,n.b)((0,n.y)(s.appRepos.appId,t),(0,n.E)(s.dependencyScans.scannedAt)));if(!r.length)return[];let i=await (0,a.f)().select({repoId:s.dependencyVulns.repoId,package:s.dependencyVulns.package,installedVersion:s.dependencyVulns.installedVersion,fixedVersion:s.dependencyVulns.fixedVersion,severity:s.dependencyVulns.severity,summary:s.dependencyVulns.summary,dev:s.dependencyVulns.dev}).from(s.dependencyVulns).where((0,n.b)((0,n.y)(s.dependencyVulns.repoId,[...new Set(r.map(e=>e.repoId))]),(0,n.M)(s.dependencyVulns.resolvedAt))).limit(1e4);return r.map(e=>({appId:e.appId,repoId:e.repoId,error:e.error,vulns:i.filter(t=>t.repoId===e.repoId).map(e=>({package:e.package,installedVersion:e.installedVersion,fixedVersion:e.fixedVersion,severity:e.severity,summary:e.summary,dev:e.dev}))}))}async function W(e){let t=e.filter(o.f),r=new Map;if(!t.length)return r;let i=await (0,a.f)().select({appId:s.appRepos.appId,repoId:s.appRepos.repoId}).from(s.appRepos).where((0,n.y)(s.appRepos.appId,t));if(!i.length)return r;let l=await (0,a.f)().select({repoId:s.dependencyVulns.repoId,package:s.dependencyVulns.package,installedVersion:s.dependencyVulns.installedVersion,fixedVersion:s.dependencyVulns.fixedVersion,vulnId:s.dependencyVulns.vulnId,aliases:s.dependencyVulns.aliases,severity:s.dependencyVulns.severity,direct:s.dependencyVulns.direct}).from(s.dependencyVulns).where((0,n.b)((0,n.y)(s.dependencyVulns.repoId,[...new Set(i.map(e=>e.repoId))]),(0,n.M)(s.dependencyVulns.resolvedAt),(0,n.u)(s.dependencyVulns.direct,!0),(0,n.E)(s.dependencyVulns.fixedVersion))).limit(2e3);for(let e of i)(0,p.B)(l.filter(t=>t.repoId===e.repoId)).length&&r.set(e.appId,e.repoId);return r}e.s(["R",0,4e4,"o",0,12e3,"e",0,U,"C",0,W,"a",0,q],433609)},111970,e=>{var t=e.i(875225),n=e.i(518899),r=e.i(347540),a=e.i(924924),s=e.i(473283),i=e.i(618916),l=e.i(659846),o=e.i(154491),u=e.i(960049);let d=["supabase_project","neon_project","firestore","turso_database","upstash_redis","d1_database"],c=e=>{if("string"!=typeof e)return e;try{return JSON.parse(e)}catch{return null}},p=(0,r.cache)(async()=>{let e=n.B.join(d.map(e=>n.B`${e}`),n.B`, `),t=await (0,a.f)().execute(n.B`select
|
|
2
|
+
(select coalesce(jsonb_agg(distinct ${i.accounts.provider}::text), '[]'::jsonb) from ${i.accounts}) as providers,
|
|
3
|
+
exists(select 1 from ${i.resources} where ${i.resources.kind}::text in (${e}) and ${i.resources.goneAt} is null) as databases,
|
|
4
|
+
${(0,u.W)()} as off`),[r]=(0,s.f)(t),p=c(r?.providers);return{providers:(Array.isArray(p)?p:[]).filter(e=>l.f.includes(e)),databases:r?.databases===!0||r?.databases==="t",off:(0,o.N)(c(r?.off))}});async function f(){try{return(0,o.I)((await p()).off)}catch{return new Set}}e.s(["s",0,function(e){let r=function(e){if(!e.size)return;let{ruleKeys:r,providers:a}=(0,o.s)(e),s=[];if(r.length&&s.push(n.B`${i.alerts.ruleKey} in (${n.B.join(r.map(e=>n.B`${e}`),n.B`, `)})`),a.length){let e=n.B.join(a.map(e=>n.B`${e}`),n.B`, `);s.push(n.B`(${i.alerts.ruleKey} = 'CredentialExpiring' and ${i.alerts.accountId} in (select ${i.accounts.id} from ${i.accounts} where ${i.accounts.provider}::text in (${e})))`)}return s.length?(0,t.F)(...s):void 0}(e);return r?(0,t.R)(r):void 0},"I",0,f])},960049,e=>{var t=e.i(875225),n=e.i(518899),r=e.i(924924),a=e.i(618916);e.i(154491);var s=e.i(273083);let i={checks:[3,7,14],rollupsHourly:[60,90,180],storedLogs:[3,7,14],deployments:[30,45,60,90],events:[60,90,180],alerts:[60,90,180],collectorRuns:[7,14,30],recommendationDismissals:[30,90,180]},l=Object.keys(i),o=(e,t)=>"number"==typeof t&&i[e].includes(t);async function u(e){let[n]=await (0,r.f)().select({value:a.settings.value}).from(a.settings).where((0,t.u)(a.settings.key,e)).limit(1);return n?.value??null}let d=async()=>(function(e){let t={...s.f};if(!e||"object"!=typeof e)return t;for(let n of l){let r=e[n];o(n,r)&&(t[n]=r)}return t})(await u("retention.days"));e.s(["l",0,()=>u("notify.language"),"J",0,d,"W",0,()=>n.B`(select ${a.settings.value} from ${a.settings} where ${a.settings.key} = ${"sections.off"})`],960049)},662860,e=>{var t=e.i(875225),n=e.i(924924),r=e.i(755776),a=e.i(618916),s=e.i(921991),i=e.i(867274),l=e.i(547499);let o="Supabase Metrics API",u=null,d={fetchMetrics:async function e(t,n,r={}){let a;if(!("string"==typeof t&&/^[a-z0-9]{8,40}$/.test(t)))return{ok:!1,kind:"format",error:"That isn't a Supabase project ref."};let s=r.timeoutMs??8e3;try{a=await (r.fetch??fetch)(`https://${t}.supabase.co/customer/v1/privileged/metrics`,{headers:{Authorization:`Basic ${Buffer.from(`service_role:${n}`).toString("base64")}`,Accept:"text/plain"},signal:AbortSignal.timeout(s),cache:"no-store",redirect:"manual"})}catch(e){return{ok:!1,kind:"transient",error:e instanceof DOMException&&("TimeoutError"===e.name||"AbortError"===e.name)?`${o} didn't answer within ${Math.round(s/1e3)} seconds.`:`Couldn't reach the ${o}.`}}if(401===a.status||403===a.status)return{ok:!1,kind:"auth",status:a.status,error:`Supabase rejected the metrics key (${a.status}). Replace it with a current Secret API key.`};if(404===a.status)return{ok:!1,kind:"missing",status:404,error:"Supabase has no metrics endpoint for this project (404)."};if(429===a.status)return{ok:!1,kind:"transient",status:429,retryAfterS:60,error:`${o} says there were too many requests.`};if(!a.ok)return{ok:!1,kind:"transient",status:a.status,error:`${o} returned an error (${a.status}).`};let i=await a.text().catch(()=>null);return null===i||i.length>4e6||!/^(#|[A-Za-z_:])/m.test(i)?{ok:!1,kind:"format",error:`${o} answered in a format the console doesn't recognise.`}:{ok:!0,data:i}},key:()=>(0,l.f)().OPS_ENCRYPTION_KEY},c=e=>e instanceof Error?e.name:"unknown";async function p(e,s,l=d){if(!(0,i.T)(e,u))return null;u=e.getTime();let o=0,f=0;try{for(let{k:i,ref:u,state:d}of(await (0,n.f)().select({k:r.A,ref:a.resources.externalId,state:a.snapshots.state}).from(r.A).innerJoin(a.resources,(0,t.u)(a.resources.id,r.A.resourceId)).leftJoin(a.snapshots,(0,t.u)(a.snapshots.resourceId,a.resources.id)).where((0,t.b)((0,t.u)(a.resources.kind,"supabase_project"),(0,t.u)(a.resources.monitored,!0),(0,t.M)(a.resources.goneAt))).limit(20))){let t=s-Date.now()-500;if(t<1e3)break;try{await m(i,u,d,e,Math.min(8e3,t),l)?o++:f++}catch(e){f++,console.warn("supabase-metrics: one project failed:",c(e))}}await (0,n.f)().delete(r.l).where((0,t.S)(r.l.hour,new Date(e.getTime()-24*i.x*36e5)))}catch(e){console.warn("supabase-metrics failed:",c(e))}return{scraped:o,failed:f}}async function f(e,a,s){return await (0,n.f)().update(r.A).set({lastTryAt:a,lastError:s.slice(0,300)}).where((0,t.u)(r.A.resourceId,e)),!1}async function m(e,a,l,o,u,d){if("paused"===l)return f(e.resourceId,o,"The project is paused.");let c=(0,s.V)({ciphertext:e.keyCiphertext,iv:e.keyIv},d.key());if(!c)return f(e.resourceId,o,"The stored key can't be read. Add it again.");let p=await d.fetchMetrics(a,c,{timeoutMs:u});if(!p.ok)return f(e.resourceId,o,p.error);let m=(0,i.E)(e.latest??null,(0,i.c)((0,i.a)(p.data),a),o);await (0,n.f)().update(r.A).set({latest:m,lastTryAt:o,lastOkAt:o,lastError:null}).where((0,t.u)(r.A.resourceId,e.resourceId));let h=(0,i.b)(o),[g]=await (0,n.f)().select().from(r.l).where((0,t.b)((0,t.u)(r.l.resourceId,e.resourceId),(0,t.u)(r.l.hour,h))).limit(1),y=(0,i.n)(g??null,m);return await (0,n.f)().insert(r.l).values({resourceId:e.resourceId,hour:h,...y}).onConflictDoUpdate({target:[r.l.resourceId,r.l.hour],set:y}),!0}async function h(){let e=await (0,n.f)().select({id:a.resources.id,name:a.resources.name,latest:r.A.latest}).from(r.A).innerJoin(a.resources,(0,t.u)(a.resources.id,r.A.resourceId)).where((0,t.b)((0,t.u)(a.resources.kind,"supabase_project"),(0,t.u)(a.resources.monitored,!0),(0,t.M)(a.resources.goneAt))).limit(20);return e.length?e.map(e=>({id:e.id,name:e.name,latest:e.latest??null})):null}e.s(["Y",0,h,"E",0,p],662860)},89491,e=>{let t={databases:100,storageBytes:0x140000000,rowsRead:5e8,rowsWritten:1e7},n={storageBytes:262144e3,monthlyCommands:5e5,monthlyBandwidthBytes:0x280000000},r={databases:10,dbBytes:524288e3,accountBytes:0x140000000,rowsReadPerDay:5e6,rowsWrittenPerDay:1e5},a=(e,t)=>Math.round(e/t*1e3)/10,s=(e,t)=>!!e&&e.slice(0,7)===t.toISOString().slice(0,7);e.s(["M",0,r,"g",0,t,"W",0,n,"I",0,function(e,t){let n=e.usageDay===t.toISOString().slice(0,10);return[...n&&null!=e.accountRowsRead?[{label:"Rows read today",pct:a(e.accountRowsRead,r.rowsReadPerDay),text:"of 5M (account)",kind:"quota"}]:[],...n&&null!=e.accountRowsWritten?[{label:"Rows written today",pct:a(e.accountRowsWritten,r.rowsWrittenPerDay),text:"of 100k (account)",kind:"quota"}]:[],...null!=e.sizeBytes?[{label:"Size",pct:a(e.sizeBytes,r.dbBytes),text:"of 500 MB",kind:"storage"}]:[]]},"c",0,function(e){return(e.accountRowsRead??0)>=r.rowsReadPerDay?{state:"err",label:"Daily rows-read limit reached"}:(e.accountRowsWritten??0)>=r.rowsWrittenPerDay?{state:"err",label:"Daily rows-written limit reached"}:{state:"ok",label:"Available"}},"u",0,function(e){return e.filter(e=>"quota"===e.kind&&null!==e.pct).sort((e,t)=>(t.pct??0)-(e.pct??0))[0]??null},"G",0,function(e,n){return s(e.usageAt,n)?[...null!=e.orgRowsRead?[{label:"Rows read",pct:a(e.orgRowsRead,t.rowsRead),text:"of 500M this month (org)",kind:"quota"}]:[],...null!=e.orgRowsWritten?[{label:"Rows written",pct:a(e.orgRowsWritten,t.rowsWritten),text:"of 10M this month (org)",kind:"quota"}]:[],...null!=e.orgStorageBytes?[{label:"Storage",pct:a(e.orgStorageBytes,t.storageBytes),text:"of 5 GB (org)",kind:"storage"}]:[]]:[]},"h",0,function(e){return e.blockReads||e.orgBlockedReads?{state:"err",label:"Reads blocked"}:e.blockWrites||e.orgBlockedWrites?{state:"err",label:"Writes blocked"}:{state:"ok",label:"Available"}},"$",0,function(e,t){let r=s(e.statsAt,t);return[...r&&null!=e.monthlyRequests?[{label:"Commands",pct:a(e.monthlyRequests,n.monthlyCommands),text:"of 500k this month",kind:"quota"}]:[],...r&&null!=e.monthlyBandwidthBytes?[{label:"Bandwidth",pct:a(e.monthlyBandwidthBytes,n.monthlyBandwidthBytes),text:"of 10 GB this month",kind:"quota"}]:[],...null!=e.storageBytes?[{label:"Data size",pct:a(e.storageBytes,n.storageBytes),text:"of 250 MB",kind:"storage"}]:[]]},"t",0,function(e){let t=(e??"").toLowerCase();return"active"===t?{state:"ok",label:"Active"}:t.includes("suspend")||t.includes("block")||t.includes("disabled")?{state:"err",label:"Suspended"}:t.includes("delet")?{state:"off",label:"Deleting"}:{state:"unknown",label:e?`State: ${e}`:"Unknown"}}])},960063,e=>{e.s(["T",0,{reads:5e4,writes:2e4,deletes:2e4},"g",0,function(e){var t;if(e.ok)return e.data.noDatabase?{state:"off",label:"No Firestore database"}:{state:"ok",label:`Reachable \xb7 ${e.data.latencyMs} ms`};return"RESOURCE_EXHAUSTED"===(t=e).reason?{state:"err",label:"Daily quota used up"}:"SERVICE_DISABLED"===t.reason?{state:"err",label:"Firestore API is off in this project"}:"scope"===t.kind||"PERMISSION_DENIED"===t.reason||"scope"===t.reason?{state:"err",label:"No access: needs datastore.viewer"}:{state:"unknown",label:"Unknown"}},"a",0,function(e){let t=new Intl.DateTimeFormat("en-US",{timeZone:"America/Los_Angeles",hour:"numeric",minute:"numeric",second:"numeric",hourCycle:"h23"}).formatToParts(e),n=e=>Number(t.find(t=>t.type===e)?.value??0),r=(3600*n("hour")+60*n("minute")+n("second"))*1e3+e.getUTCMilliseconds();return new Date(e.getTime()-r)}])},90801,479301,e=>{var t=e.i(250474),n=e.i(32391);let r=/^v?(\d+)\.(\d+)\.(\d+)(?:-[0-9A-Za-z.-]+)?(?:\+[0-9A-Za-z.-]+)?$/;function a(e,n){let a=r.exec(e.trim()),s=r.exec(n.trim());return!!a&&!!s&&a[1]===s[1]&&("0"!==a[1]||a[2]===s[2])&&(0,t.f)(n,e)>=0}e.s(["M",0,e=>`Lockfile tertinggal — jalankan npm install (${e.slice(0,5).join(", ")}${e.length>5?`, +${e.length-5}`:""}).`,"a",0,function(e,t,n){if(!e.length)return{ok:!1,why:"nothing"};let r=e.filter(e=>n.includes(e.severity));if(!r.length)return{ok:!1,why:"severity"};for(let e of r){let n=t.get(e.package);if(!n||!a(n,e.to))return{ok:!1,why:"major"}}return{ok:!0,upgrades:r}},"m",0,function(e,r){if(!r)return{deps:e,stale:[]};let a=[...Object.entries(r.dependencies).map(([e,t])=>[e,t,!1]),...Object.entries(r.optionalDependencies).map(([e,t])=>[e,t,!1]),...Object.entries(r.devDependencies).map(([e,t])=>[e,t,!0])],s=[...e],i=[];for(let[e,r,l]of a){let a=(0,n.Y)(r);if(!a||!(0,n.C)(a))continue;let o=s.filter(t=>t.name===e);!o.length||o.some(e=>(0,t.f)(e.version,a)>=0)||((s=s.filter(t=>t.name!==e)).push({name:e,version:a,dev:o.every(e=>e.dev)&&l}),i.push(e))}return{deps:s,stale:i}},"D",0,function(e){let n=new Map;for(let r of e){if(!r.direct)continue;let e=n.get(r.package);(!e||0>(0,t.f)(r.installedVersion,e))&&n.set(r.package,r.installedVersion)}return n},"U",0,function(e,t){for(let n of t){let t=function(e){if(e.packages?.length)return e.packages;let t=/^Watch(?:bell|post): update (\S+) (?:to|ke) /.exec(e.title);return t?[t[1]]:"all"}(n);if("all"===t||e.some(e=>t.includes(e)))return n}return null},"J",0,a],90801);let s=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;e.s(["f",0,e=>"string"==typeof e&&s.test(e)],479301)},891262,7494,267485,e=>{var t=e.i(442473);let n={CRITICAL:4,HIGH:3,MODERATE:2,LOW:1,UNKNOWN:0};function r(e){return[...e].sort((e,t)=>n[t.severity]-n[e.severity]||(e.id<t.id?-1:+(e.id>t.id)))}e.s(["t",0,function(e,t,r){let a=new Set((t?.findings??[]).map(e=>e.id));if("vulnerable"===r.status&&r.findings.length>0){let t;if(r.findings.every(e=>a.has(e.id)))return null;let s=r.findings.reduce((e,t)=>n[t.severity]>n[e]?t.severity:e,"UNKNOWN");return{kind:n[s]>=n.HIGH?"err":"warn",message:`${e} runs Next.js ${r.version} with ${t=r.findings.length,`${t} known vulnerabilit${1===t?"y":"ies"}`} (${s.toLowerCase()})`,detail:r.findings.map(e=>e.id).join(", ").slice(0,1e3)}}return"ok"===r.status&&a.size>0?{kind:"ok",message:`${e} no longer has known Next.js vulnerabilities (now ${r.version})`,detail:null}:null},"I",0,r],7494);var a=e.i(250474);let s=["CRITICAL","HIGH","MODERATE","LOW","UNKNOWN"],i=e=>"object"==typeof e&&null!==e&&!Array.isArray(e),l=e=>Array.isArray(e)?e:[],o=e=>"string"==typeof e&&e?e:null,u=e=>i(e.package)&&"next"===e.package.name&&"npm"===e.package.ecosystem,d="OSV.dev sent an answer we couldn't read";async function c(e,n={}){let m=n.timeoutMs??1e4,h=n.maxBytes??2097152,g=AbortSignal.timeout(m),y=(0,t.X)(g),v=`OSV.dev didn't answer within ${f(m)}`,k=[],b=null;for(let r=0;r<3;r++){var w;let r,a;try{r=await (n.fetch??fetch)("https://api.osv.dev/v1/query",{method:"POST",headers:{"content-type":"application/json","user-agent":"OpsConsole-Security/1.0 (+https://west-solutions.web.id)"},body:JSON.stringify({package:{name:"next",ecosystem:"npm"},version:e,...b?{page_token:b}:{}}),redirect:"error",cache:"no-store",signal:g})}catch(e){return{ok:!1,error:p(e)?v:"Couldn't reach OSV.dev"}}if(!r.ok)return await r.body?.cancel().catch(()=>void 0),{ok:!1,error:`OSV.dev answered HTTP ${r.status}`};try{let{bytes:e,truncated:n}=await (0,t.z)(r,h,y);if(n)return{ok:!1,error:"OSV.dev sent too large an answer"};a=JSON.parse(new TextDecoder().decode(e))}catch(e){return{ok:!1,error:p(e)?v:d}}let s=i(w=a)?void 0===w.vulns?[]:Array.isArray(w.vulns)?w.vulns:null:null;if(null===s)return{ok:!1,error:d};if(k.push(...s),!(b=i(a)?o(a.next_page_token):null))break}let A=function(e,t){let n=[],d=0;for(let r of e){if(!i(r))continue;let e=o(r.id);e&&(d++,r.withdrawn||n.push({id:e.slice(0,64),cve:l(r.aliases).map(o).find(e=>!!e&&/^CVE-\d{4}-\d+$/.test(e))??null,summary:(o(r.summary)??"").replace(/\s+/g," ").trim().slice(0,200),severity:function(e){let t=i(e.database_specific)?o(e.database_specific.severity)?.toUpperCase():void 0;return"MEDIUM"===t?"MODERATE":s.includes(t??"")?t:"UNKNOWN"}(r),fixed:function(e,t){let n=null;for(let r of l(e))if(i(r)&&u(r))for(let e of l(r.ranges)){if(!i(e)||"SEMVER"!==e.type&&"ECOSYSTEM"!==e.type)continue;let r=null;for(let s of l(e.events)){if(!i(s))continue;let e=o(s.introduced),l=o(s.fixed);e?r=e:l&&null!==r?((0,a.f)(t,r)>=0&&0>(0,a.f)(t,l)&&(null===n||0>(0,a.f)(l,n))&&(n=l),r=null):(o(s.last_affected)||o(s.limit))&&(r=null)}}return n}(r.affected,t)}))}return e.length>0&&0===d?null:r(n).slice(0,50)}(k,e);return null===A?{ok:!1,error:d}:{ok:!0,findings:A}}let p=e=>e instanceof DOMException&&("TimeoutError"===e.name||"AbortError"===e.name),f=e=>e<1e3?`${e} ms`:`${Math.round(e/1e3)} s`;e.s(["y",0,c,"t",0,p],267485);var m=e.i(804581);let h="OpsConsole-Deps/1.0 (+https://west-solutions.web.id)";async function g(e,t,n,r){let a=r.deadline-Date.now();if(a<500)return{ok:!1,error:"No time left for OSV.dev"};let s=AbortSignal.timeout(a);return v(e,{method:"POST",headers:{"content-type":"application/json","user-agent":h},body:JSON.stringify(t),signal:s},n,s,r)}async function y(e,t,n){let r=n.deadline-Date.now();if(r<500)return{ok:!1,error:"No time left for OSV.dev"};let a=AbortSignal.timeout(Math.min(r,8e3));return v(e,{method:"GET",headers:{"user-agent":h},signal:a},t,a,n)}async function v(e,n,r,a,s){let i;try{i=await (s.fetch??fetch)(e,{...n,redirect:"error",cache:"no-store"})}catch(e){return{ok:!1,error:p(e)?"OSV.dev didn't answer in time":"Couldn't reach OSV.dev"}}if(!i.ok)return await i.body?.cancel().catch(()=>void 0),{ok:!1,error:`OSV.dev answered HTTP ${i.status}`};try{let{bytes:e,truncated:n}=await (0,t.z)(i,r,(0,t.X)(a));if(n)return{ok:!1,error:"OSV.dev sent too large an answer"};return{ok:!0,body:JSON.parse(new TextDecoder().decode(e))}}catch(e){return{ok:!1,error:p(e)?"OSV.dev didn't answer in time":"OSV.dev sent an answer we couldn't read"}}}async function k(e,t){let n=[];for(let r of(0,m.f)(e)){let e=await g(m.n,r,4194304,t);if(!e.ok)return e;let a=(0,m.j)(e.body,r.queries.length);if(!a)return{ok:!1,error:"OSV.dev sent an answer we couldn't read"};n.push(...a)}return{ok:!0,ids:n}}async function b(e,t){let n=[...new Set(e)].filter(m.G);if(n.length>300)return{ok:!1,error:`Too many advisories to read in one scan (${n.length})`};let r=new Map,a=null;for(let e=0;e<n.length&&!a;e+=8)await Promise.all(n.slice(e,e+8).map(async e=>{let n=await y(`${m.W}${encodeURIComponent(e)}`,1048576,t),s=n.ok?(0,m.O)(n.body):null;s?r.set(e,s):a??=n.ok?"OSV.dev sent an advisory we couldn't read":n.error}));return a?{ok:!1,error:a}:{ok:!0,map:r}}e.s(["J",0,b,"K",0,k],891262)},804581,e=>{var t=e.i(250474);let n=e=>"object"==typeof e&&null!==e&&!Array.isArray(e),r=e=>Array.isArray(e)?e:[],a=e=>"string"==typeof e&&e?e:null,s=e=>/^[A-Za-z0-9][A-Za-z0-9._:-]{1,63}$/.test(e),i={CRITICAL:"critical",HIGH:"high",MODERATE:"moderate",MEDIUM:"moderate",LOW:"low"},l=e=>e>=9?"critical":e>=7?"high":e>=4?"moderate":e>0?"low":"unknown",o=(e,t)=>n(e.package)&&e.package.name===t&&"npm"===e.package.ecosystem;e.s(["S",0,20,"n",0,"https://api.osv.dev/v1/querybatch","W",0,"https://api.osv.dev/v1/vulns/","h",0,200,"f",0,function(e){let t=[];for(let n=0;n<e.length;n+=1e3)t.push({queries:e.slice(n,n+1e3).map(e=>({package:{name:e.name,ecosystem:"npm"},version:e.version}))});return t},"i",0,function(e,s,i,l=new Map){let u=[];return e.forEach((e,d)=>{for(let c of s[d]??[]){let s=l.get(`${e.name}@${e.version}|${c}`);if(s){u.push({...s,dev:e.dev});continue}let d=i.get(c);d&&!d.withdrawn&&u.push({package:e.name,installedVersion:e.version,vulnId:d.id,aliases:d.aliases,severity:d.severity,fixedVersion:function(e,s,i){let l=null;for(let u of r(e))if(n(u)&&o(u,s))for(let e of r(u.ranges)){if(!n(e)||"SEMVER"!==e.type&&"ECOSYSTEM"!==e.type)continue;let s=null;for(let o of r(e.events)){if(!n(o))continue;let e=a(o.introduced),r=a(o.fixed);e?s=e:r&&null!==s?((0,t.f)(i,s)>=0&&0>(0,t.f)(i,r)&&(null===l||0>(0,t.f)(r,l))&&(l=r),s=null):(a(o.last_affected)||a(o.limit))&&(s=null)}}return l}(d.affected,e.name,e.version),summary:d.summary,dev:e.dev,source:"osv"})}}),u},"G",0,s,"O",0,function(e){if(!n(e))return null;let t=a(e.id);return t&&s(t)?{id:t,aliases:[...new Set(r(e.aliases).map(a).filter(e=>!!e&&s(e)))].slice(0,20),summary:(a(e.summary)??a(e.details)?.split(/\n/)[0]??"").replace(/\s+/g," ").trim().slice(0,200),severity:function(e){let t=n(e.database_specific)?a(e.database_specific.severity)?.toUpperCase():null;if(t&&i[t])return i[t];for(let t of r(e.severity)){if(!n(t)||"CVSS_V3"!==t.type&&"CVSS_V31"!==t.type)continue;let e=a(t.score)?function(e){let t,n=/^CVSS:3\.[01]\/(.+)$/.exec(e.trim());if(!n)return null;let r={};for(let e of n[1].split("/")){let[t,n]=e.split(":");t&&n&&(r[t]=n)}let a={N:.85,A:.62,L:.55,P:.2},s={L:.77,H:.44},i={N:.85,R:.62},l={H:.56,L:.22,N:0},o="C"===r.S,u=o?{N:.85,L:.68,H:.5}:{N:.85,L:.62,H:.27};if(![a[r.AV],s[r.AC],u[r.PR],i[r.UI],l[r.C],l[r.I],l[r.A]].every(e=>"number"==typeof e)||"U"!==r.S&&"C"!==r.S)return null;let d=1-(1-l[r.C])*(1-l[r.I])*(1-l[r.A]),c=o?7.52*(d-.029)-3.25*(d-.02)**15:6.42*d,p=8.22*a[r.AV]*s[r.AC]*u[r.PR]*i[r.UI];return c<=0?0:(t=Math.round(1e5*Math.min(o?1.08*(c+p):c+p,10)))%1e4==0?t/1e5:(Math.floor(t/1e4)+1)/10}(a(t.score)):null;if(null!==e)return l(e)}return(a(e.id)??"").startsWith("MAL-")?"critical":"unknown"}(e),withdrawn:!!a(e.withdrawn),affected:e.affected}:null},"j",0,function(e,t){return n(e)&&Array.isArray(e.results)&&e.results.length===t?e.results.map(e=>n(e)?r(e.vulns).map(e=>n(e)?a(e.id):null).filter(e=>!!e&&s(e)):[]):null}])},413230,e=>{var t=e.i(250474),n=e.i(32391),r=e.i(804581);let a=["critical","high","moderate","low","unknown"],s=e=>a.indexOf(e),i=e=>"object"==typeof e&&null!==e&&!Array.isArray(e),l=e=>"string"==typeof e&&e?e:null,o={critical:"critical",high:"high",medium:"moderate",moderate:"moderate",low:"low"},u=e=>`${e.package}@${e.installedVersion}|${e.vulnId}`;e.s(["g",0,function(e){let t=e.filter(e=>!e.dev);return t.some(e=>{let t;return"critical"===e.severity||(t=e.summary,/\bRCE\b|remote code execution/i.test(t))})?"critical":t.some(e=>"high"===e.severity)?"warning":null},"L",0,function(e){let t=e.filter(e=>{let t;return!e.dev&&(s(e.severity)<=s("high")||(t=e.summary,/\bRCE\b|remote code execution/i.test(t)))}),n=[...t].sort((e,t)=>s(e.severity)-s(t.severity)||(e.package<t.package?-1:1)),r=[];for(let e of n){let t=`${e.package} ${e.installedVersion}${e.fixedVersion?` → ${e.fixedVersion}`:" (no fix yet)"}`;r.includes(t)||r.push(t)}let a=new Set(t.map(e=>e.package)).size,i=function(e){let t={critical:0,high:0,moderate:0,low:0,unknown:0};for(let n of e)t[n.severity]++;return t}(t),l=["critical","high","moderate","low","unknown"].filter(e=>i[e]>0).map(e=>`${i[e]} ${e}`).join(", "),o=`${a} vulnerable package${1===a?"":"s"} (${l}): ${r.slice(0,4).join(", ")}${r.length>4?`, +${r.length-4} more`:""}.`;return o.length>300?`${o.slice(0,299)}…`:o},"z",0,function(e,t,n){let r=new Set;return e.forEach((e,a)=>{for(let s of t[a]??[])n.has(`${e.name}@${e.version}|${s}`)||r.add(s)}),[...r]},"A",0,function(e,t){let n=new Map;if(t)return n;for(let t of e)t.fixedVersion&&"dependabot"!==t.source&&n.set(u(t),{package:t.package,installedVersion:t.installedVersion,vulnId:t.vulnId,aliases:t.aliases,severity:t.severity,fixedVersion:t.fixedVersion,summary:t.summary,dev:t.dev,source:"osv"});return n},"R",0,function(e,n,r){let a=[...e];for(let e of n)if(!a.some(t=>t.package===e.package&&(t.vulnId===e.ghsaId||t.aliases.includes(e.ghsaId)||null!==e.cveId&&t.aliases.includes(e.cveId)))&&e.range)for(let n of r)n.name===e.package&&function(e,n){let r=n.split(",").map(e=>e.trim()).filter(Boolean);return!!r.length&&r.every(n=>{let r=/^(<=|>=|<|>|=)\s*v?(\S+)$/.exec(n);if(!r)return!1;let a=(0,t.f)(e,r[2]);return"<"===r[1]?a<0:"<="===r[1]?a<=0:">"===r[1]?a>0:">="===r[1]?a>=0:0===a})}(n.version,e.range)&&a.push({package:e.package,installedVersion:n.version,vulnId:e.ghsaId,aliases:e.cveId?[e.cveId]:[],severity:e.severity,fixedVersion:e.fixed,summary:e.summary,dev:e.dev||n.dev,source:"dependabot"});return a},"E",0,function(e){if(!Array.isArray(e))return null;let t=[];for(let a of e){if(!i(a)||"open"!==a.state||!i(a.dependency)||!i(a.security_advisory))continue;let e=i(a.dependency.package)&&"npm"===a.dependency.package.ecosystem?l(a.dependency.package.name):null,s=l(a.security_advisory.ghsa_id);if(!e||!(0,n.L)(e)||!s||!(0,r.G)(s))continue;let u=i(a.security_vulnerability)?a.security_vulnerability:{},d=i(u.first_patched_version)?l(u.first_patched_version.identifier):null,c=l(a.security_advisory.cve_id);t.push({package:e,ghsaId:s,cveId:c&&/^CVE-\d{4}-\d+$/.test(c)?c:null,summary:(l(a.security_advisory.summary)??"").replace(/\s+/g," ").trim().slice(0,r.h),severity:o[(l(u.severity)??l(a.security_advisory.severity)??"").toLowerCase()]??"unknown",range:l(u.vulnerable_version_range),fixed:d&&d.length<=100?d:null,dev:"development"===a.dependency.scope})}return t},"h",0,function(e,t,n){let a=new Map(e.map(e=>[u(e),e])),s=new Set,i={insert:[],update:[],resolve:[]};for(let e of t){let t=u(e);if(s.has(t))continue;s.add(t);let l={...e,aliases:e.aliases.slice(0,r.S),summary:e.summary.slice(0,r.h),direct:n.has(e.package)},o=a.get(t);o?i.update.push({id:o.id,severity:l.severity,fixedVersion:l.fixedVersion,summary:l.summary,aliases:l.aliases,dev:l.dev,direct:l.direct}):i.insert.push(l)}return i.resolve=e.filter(e=>!s.has(u(e))).map(e=>e.id),i},"U",0,function(e,t,n,r=!1){return!!r||!e||!e.scannedAt||(e.error?n.getTime()-e.scannedAt.getTime()>=72e6||e.lockfileSha!==t:e.lockfileSha!==t||!e.queriedAt||n.getTime()-e.queriedAt.getTime()>=6048e5)},"M",0,function(e){return[...e].sort((e,t)=>(e.scannedAt?.getTime()??-1)-(t.scannedAt?.getTime()??-1)||(e.id<t.id?-1:1))},"B",0,function(e){let n=new Map;for(let r of e){if(!r.direct||!r.fixedVersion||0>=(0,t.f)(r.fixedVersion,r.installedVersion))continue;let e=n.get(r.package)??{package:r.package,to:r.fixedVersion,vulnIds:[],cves:[],severity:r.severity};for(let n of((0,t.f)(r.fixedVersion,e.to)>0&&(e.to=r.fixedVersion),e.vulnIds.includes(r.vulnId)||e.vulnIds.push(r.vulnId),r.aliases))/^CVE-/.test(n)&&!e.cves.includes(n)&&e.cves.push(n);s(r.severity)<s(e.severity)&&(e.severity=r.severity),n.set(r.package,e)}return[...n.values()].sort((e,t)=>s(e.severity)-s(t.severity)||(e.package<t.package?-1:1))}])},911191,e=>{let t=[[/(?:\b|(?<=%2F))hb(?:_|%5F)[0-9a-f]{32}\b/gi,"hb_[hidden]"],[/(\/api(?:\/|%2F)ping(?:\/|%2F))(?!hb_\[hidden\])[^/?#\s]+/gi,"$1[hidden]"],[/\b(postgres(?:ql)?|mysql|mongodb(?:\+srv)?|redis|rediss):\/\/\S+/gi,"$1://[hidden]"],[/\b(https?):\/\/[^\s/@:]+:[^\s/@]+@/gi,"$1://[hidden]@"],[/\b(Bearer|Basic)\s+[^\s"',;]+/gi,"$1 [hidden]"],[/\b((?:access_|refresh_|id_)?token|secret|password|passwd|pwd|api[_-]?key|apikey|authorization|cookie|session|private_key)(["']?\s*[:=]\s*["']?)(?!Bearer\b|Basic\b)([^\s"'&,;}]+)/gi,"$1$2[hidden]"],[/\beyJ[\w-]{8,}\.[\w-]{8,}\.[\w-]{8,}/g,"[jwt]"],[/\b[\w.+-]+@[\w-]+(?:\.[\w-]+)+\b/g,"[email]"],[/\b[A-Fa-f0-9]{40,}\b/g,"[redacted]"],[/\b(?=[A-Za-z0-9_-]*\d)(?=[A-Za-z0-9_-]*[A-Za-z])[A-Za-z0-9_-]{40,}\b/g,"[redacted]"]];function n(e,t){return e.length>t?`${e.slice(0,t-1)}…`:e}e.s(["l",0,n,"n",0,function(e){return null===e?null:n(e.split(/[?#]/)[0]||"/",512)},"h",0,function(e){return t.reduce((e,[t,n])=>e.replace(t,n),e)}])},659846,e=>{e.s(["f",0,["vercel","supabase","neon","firebase","turso","upstash","cloudflare","github","github_write"]],659846)},154491,e=>{let t=["home","hosting","database","devops","manage"],n=["hosting","database","devops"],r={vercel:"hosting",cloudflare:"hosting",supabase:"database",neon:"database",firebase:"database",turso:"database",upstash:"database",github:"devops",github_write:"devops"};function a(e){return Array.isArray(e)?t.filter(r=>"string"==typeof r&&t.includes(r)&&n.includes(r)&&e.includes(r)):[]}let s={MonitorDown:"hosting",HighLatency:"hosting",DeploymentFailed:"hosting",CertExpiringSoon:"hosting",DomainExpiringSoon:"hosting",DnsProxiedToVercel:"hosting",DatabasePaused:"database",StorageAlmostFull:"database",NeonComputeHigh:"database",FirestoreQuotaHigh:"database",AutoPauseRisk:"database",ComputeHigh:"database",DbQuotaHigh:"database",VulnerableDependency:"devops",CredentialExpiring:"account",CollectorStale:null},i=/^Log/;e.s(["D",0,r,"O",0,(e,t,n)=>{let a;if(!e.size)return!1;let l="account"===(a=s[t])?n?r[n]??null:null:void 0!==a?a:i.test(t)?"hosting":null;return null!==l&&e.has(l)},"N",0,a,"s",0,function(e){return{ruleKeys:Object.entries(s).filter(([,t])=>null!==t&&"account"!==t&&e.has(t)).map(([e])=>e),providers:Object.entries(r).filter(([,t])=>e.has(t)).map(([e])=>e)}},"I",0,e=>new Set(a(e))])},250474,32391,e=>{function t(e){let[t,...n]=e.trim().split("-"),r=t.split(".").map(e=>Number.parseInt(e,10)||0);return{nums:[r[0]??0,r[1]??0,r[2]??0],pre:n.length?n.join("-").split("."):[]}}e.s(["f",0,function(e,n){let r=t(e),a=t(n);for(let e=0;e<3;e++)if(r.nums[e]!==a.nums[e])return r.nums[e]-a.nums[e];return function(e,t){if(!e.length||!t.length)return e.length?-1:+!!t.length;for(let n=0;n<Math.max(e.length,t.length);n++){if(void 0===e[n])return -1;if(void 0===t[n])return 1;let r=/^\d+$/.test(e[n])?Number(e[n]):null,a=/^\d+$/.test(t[n])?Number(t[n]):null;if(null!==r&&null!==a){if(r!==a)return r-a}else if(null!==r||null!==a)return null!==r?-1:1;else if(e[n]!==t[n])return e[n]<t[n]?-1:1}return 0}(r.pre,a.pre)}],250474);let n=/^(?:@[a-z0-9][a-z0-9._~-]*\/)?[a-z0-9._~-][a-z0-9._~-]*$/i,r=/^\d+\.\d+\.\d+(?:-[0-9A-Za-z.-]+)?(?:\+[0-9A-Za-z.-]+)?$/,a=e=>e.length<=214&&n.test(e),s=e=>e.length<=100&&r.test(e),i=e=>"object"==typeof e&&null!==e&&!Array.isArray(e);function l(e){let t=new Map;for(let n of e){if(!a(n.name)||!s(n.version))continue;let e=`${n.name}@${n.version}`,r=t.get(e);if(r?r.dev=r.dev&&n.dev:t.set(e,{...n}),t.size>=1e4)break}return[...t.values()].sort((e,t)=>e.name===t.name?e.version<t.version?-1:1:e.name<t.name?-1:1)}function o(e){try{return JSON.parse(e)}catch{return null}}let u=e=>{let t=e.lastIndexOf("node_modules/");return t<0?null:e.slice(t+13)||null},d=e=>e.trim().replace(/^['"]|['"]$/g,""),c=e=>i(e)?Object.fromEntries(Object.entries(e).filter(e=>"string"==typeof e[1])):{};function p(e){let t=/^\s*(?:\^|~|>=|=|v)?\s*v?(\d+)(?:\.(\d+|x|\*))?(?:\.(\d+|x|\*))?(-[0-9A-Za-z.-]+)?\s*$/.exec(e);if(!t)return null;let n=e=>e&&/^\d+$/.test(e)?e:"0";return`${t[1]}.${n(t[2])}.${n(t[3])}${t[4]??""}`}e.s(["a",0,[{path:"package-lock.json",kind:"npm"},{path:"npm-shrinkwrap.json",kind:"npm"},{path:"pnpm-lock.yaml",kind:"pnpm"},{path:"yarn.lock",kind:"yarn"},{path:"bun.lock",kind:"bun"}],"e",0,function(e){let t=[],n=(e,n)=>{for(let[r,a]of Object.entries(e)){let e=p(a);e&&t.push({name:r,version:e,dev:n})}};return n(e.dependencies,!1),n(e.optionalDependencies,!1),n(e.devDependencies,!0),l(t)},"K",0,function(e){return e?new Set([...Object.keys(e.dependencies),...Object.keys(e.devDependencies),...Object.keys(e.optionalDependencies)]):new Set},"L",0,a,"C",0,s,"Y",0,p,"D",0,function(e,t){switch(e){case"npm":let n=o(t);if(!i(n))return null;let r=[];if(i(n.packages)){for(let[e,t]of Object.entries(n.packages)){if(!e||!i(t)||!0===t.link||"string"!=typeof t.version)continue;let n="string"==typeof t.name&&e.includes("node_modules/")?t.name:u(e);n&&r.push({name:n,version:t.version,dev:!0===t.dev})}return l(r)}if(i(n.dependencies)){let e=(t,n)=>{if(!(n>40))for(let[a,s]of Object.entries(t))i(s)&&("string"==typeof s.version&&r.push({name:a,version:s.version,dev:!0===s.dev}),i(s.dependencies)&&e(s.dependencies,n+1))};return e(n.dependencies,0),l(r)}return null;case"pnpm":return function(e){let t=e.split(/\r?\n/);if(!t.some(e=>/^lockfileVersion:/.test(e)))return null;let n=[],r=!1,s=null;for(let e of t){if(/^\S/.test(e)){r=/^packages:\s*$/.test(e),s=null;continue}if(!r)continue;let t=/^ {2}(\S.*?):\s*$/.exec(e);if(t){let e=function(e){let t=d(e).replace(/^\//,""),n=t.indexOf("(");n>0&&(t=t.slice(0,n));let r=t.lastIndexOf("@");if(r>0&&!t.slice(r+1).includes("/")&&a(t.slice(0,r)))return{name:t.slice(0,r),version:t.slice(r+1).split("_")[0]};let s=t.lastIndexOf("/");return s<=0?null:{name:t.slice(0,s),version:t.slice(s+1).split("_")[0]}}(t[1]);(s=e?{...e,dev:!1}:null)&&n.push(s);continue}s&&/^ {4}dev: true\s*$/.test(e)&&(s.dev=!0)}return l(n)}(t);case"yarn":return function(e){let t=e.split(/\r?\n/),n=[],r=null,a=!1;for(let e of t){if(!e.trim()||e.trimStart().startsWith("#"))continue;if(/^\S/.test(e)){let t=e.replace(/:\s*$/,"");r=t.startsWith("__metadata")||/@(?:workspace|link|portal|file):/.test(t)?null:function(e){let t=d(e),n=t.indexOf("@",+!!t.startsWith("@"));return n>0?t.slice(0,n):null}(t.split(/,\s*/)[0]),a=!0;continue}let t=/^ {2}version:?\s+"?([^"\s]+)"?\s*$/.exec(e);t&&r&&(n.push({name:r,version:t[1],dev:!1}),r=null)}return a?l(n):null}(t);case"bun":let s=o(t.replace(/,(\s*[}\]])/g,"$1"));if(!i(s)||!i(s.packages))return null;let c=[];for(let e of Object.values(s.packages)){if(!Array.isArray(e)||"string"!=typeof e[0])continue;let t=e[0],n=t.lastIndexOf("@");n<=0||c.push({name:t.slice(0,n),version:t.slice(n+1),dev:!1})}return l(c)}},"b",0,function(e){let t=o(e);return i(t)?{dependencies:c(t.dependencies),devDependencies:c(t.devDependencies),optionalDependencies:c(t.optionalDependencies)}:null}],32391)}]})();
|
|
5
|
+
|
|
6
|
+
//# sourceMappingURL=src_lib_10_w0ihgmx4e6._.js.map
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
(()=>{"use strict";module.exports=[537622,e=>{var t=e.i(665044),a=e.i(77193);e.s(["f",0,function(e){if((0,a.r)())for(let a of new Set(e))try{let e;e=a,(0,t.revalidateTag)(e,{expire:0})}catch(e){console.warn(`cache: couldn't expire ${a}: ${e instanceof Error?e.message.slice(0,120):"unknown"}`)}}])},140318,977832,e=>{var t=e.i(875225),a=e.i(518899),r=e.i(924924),n=e.i(618916),s=e.i(390775),i=e.i(921991),o=e.i(656083),l=e.i(629955),u=e.i(497867);function d(e){if(!e)return null;if("unknown"!==e.state)return e.state;let t=e.data?.lastGoodState;return"string"==typeof t&&u.f.includes(t)?t:null}let c={turso_database:"Turso database",upstash_redis:"Upstash Redis",d1_database:"D1 database"};function f(e){let{prev:t,next:a}=e;if(null===t||"unknown"===t||"unknown"===a||t===a)return null;let r={resourceId:e.resourceId,type:"database",at:e.at};if("supabase_project"===e.kind)return"paused"===a?{...r,reason:"DatabasePaused",kind:"paused",message:"Supabase project paused",detail:"Status changed to INACTIVE"}:"ok"===a?{...r,reason:"DatabaseRestored",kind:"ok",message:"Supabase project active again",detail:"Status changed to ACTIVE_HEALTHY"}:"warn"===a?{...r,reason:"DatabaseUnhealthy",kind:"warn",message:"Supabase project unhealthy",detail:e.label}:"err"===a?{...r,reason:"DatabaseFailed",kind:"err",message:`Supabase project: ${e.label.toLowerCase()}`,detail:e.label}:null;if("neon_project"===e.kind)return"err"===a?{...r,reason:"NeonSuspended",kind:"err",message:"Neon compute suspended",detail:e.label}:"err"===t&&("ok"===a||"idle"===a)?{...r,reason:"NeonAvailable",kind:"ok",message:"Neon compute available again",detail:e.label}:null;let n=c[e.kind];if(n)return"err"===a?{...r,reason:"DatabaseFailed",kind:"err",message:`${n}: ${e.label.toLowerCase()}`,detail:e.label}:"off"===a?{...r,reason:"DatabaseMissing",kind:"off",message:`${n} missing`,detail:e.label}:"ok"===a&&("err"===t||"off"===t)?{...r,reason:"DatabaseRestored",kind:"ok",message:`${n} available again`,detail:e.label}:null;if("err"===a){let t="Daily quota used up"===e.label;return{...r,reason:t?"FirestoreQuotaUsedUp":"FirestoreUnreachable",kind:"err",message:t?"Firestore daily quota used up":"Firestore not reachable",detail:e.label}}return"off"===a?{...r,reason:"FirestoreMissing",kind:"off",message:"Firestore database missing",detail:e.label}:"ok"===a&&("err"===t||"off"===t)?{...r,reason:"FirestoreReachable",kind:"ok",message:"Firestore reachable again",detail:e.label}:null}function p(e,t){return"auth"===e.kind?"auth":"scope"===e.kind?t?"auth":"column":"missing"===e.kind?t?"unknown":"column":"unknown"}e.s(["t",0,p,"K",0,f,"F",0,d],977832);var w=e.i(960063),m=e.i(800366),g=e.i(326003),h=e.i(843448),b=e.i(547499),k=e.i(795194),y=e.i(780148),I=e.i(443917),v=e.i(342833),A=e.i(442473);let S="skipped the rest, time budget used";function $(e){let t=e.deadline-Date.now()-500;if(t<250)throw Error(S);return{timeoutMs:Math.min(5e3,t)}}async function D(e,t,a){let r=!1;return{out:await (0,A.P)(t,3,async t=>{let n;try{n=$(e)}catch{r=!0;return}return a(t,n)}),skipped:r}}function x(e){if(e)throw Error(S)}async function R(e){let a=await (0,r.f)().select().from(n.accounts).where((0,t.b)((0,t.u)(n.accounts.provider,e),(0,t.u)(n.accounts.status,"ok"))),s=(0,b.f)().OPS_ENCRYPTION_KEY;return a.map(e=>({acc:e,credential:(0,i.V)({ciphertext:e.credentialCiphertext,iv:e.credentialIv},s)}))}function M(e,a){return(0,r.f)().select({r:n.resources,s:n.snapshots}).from(n.resources).leftJoin(n.snapshots,(0,t.u)(n.snapshots.resourceId,n.resources.id)).where((0,t.b)((0,t.u)(n.resources.accountId,e),(0,t.u)(n.resources.kind,a),(0,t.u)(n.resources.monitored,!0),(0,t.M)(n.resources.goneAt))).limit(100)}let E=e=>a.B`${n.snapshots.data} || ${JSON.stringify(e)}::jsonb`;async function j(e,t,a){let s=d(e.s?{state:e.s.state,data:e.s.data}:null),i="unknown"===t.state,o=i?s?{lastGoodState:s}:{}:{...t.patch,lastGoodState:t.state},l=!i&&s!==t.state;return await (0,r.f)().insert(n.snapshots).values({resourceId:e.r.id,state:t.state,data:o,collectedAt:a,stateSince:a}).onConflictDoUpdate({target:n.snapshots.resourceId,set:{state:t.state,data:E(o),...i?{}:{collectedAt:a},...l?{stateSince:a}:{}}}),i?null:f({kind:e.r.kind,resourceId:e.r.id,prev:s,next:t.state,label:t.label,at:a})}async function P(e,a){await (0,r.f)().update(n.snapshots).set({data:E(a)}).where((0,t.u)(n.snapshots.resourceId,e.r.id))}let z=e=>(0,o.f)(e);async function N(e,a,i,o,l){if("auth"===p(o,!0)){let e=(0,s.E)({ok:!1,kind:"auth",error:o.error});e&&await (0,r.f)().update(n.accounts).set({...e,updatedAt:l.now}).where((0,t.u)(n.accounts.id,a.id))}for(let e of i)await j(e,{state:"unknown",label:"Unknown",patch:{}},l.now);l.errors.push(`${e}/${a.label}: ${o.error}`)}let B=e=>e.toISOString();async function O(e){return e.length?new Set((await (0,r.f)().select({app:n.links.fromResourceId,state:n.snapshots.state,data:n.snapshots.data}).from(n.links).innerJoin(n.resources,(0,t.u)(n.resources.id,n.links.toResourceId)).innerJoin(n.snapshots,(0,t.u)(n.snapshots.resourceId,n.resources.id)).where((0,t.b)((0,t.u)(n.links.kind,"uses_db"),(0,t.y)(n.links.fromResourceId,e),(0,t.u)(n.resources.monitored,!0),(0,t.M)(n.resources.goneAt)))).filter(e=>"paused"===e.state||"unknown"===e.state&&"paused"===e.data.lastGoodState).map(e=>e.app)):new Set}async function T(e){for(let{acc:t,credential:a}of(await R("supabase"))){if($(e),!a){e.errors.push(`supabase/${t.label}: credential can't be read`);continue}let r=await M(t.id,"supabase_project");if(!r.length)continue;let n=await (0,v.W)(a,$(e));if(!n.ok){await N("supabase",t,r,n,e);continue}let s=new Map(n.data.map(e=>[e.ref,e])),i=[];for(let t of r){let a=s.get(t.r.externalId);if(!a){i.push(await j(t,{state:"off",label:"Not found",patch:{status:"REMOVED"}},e.now));continue}let r=(0,h.P)(a.status),n=d(t.s?{state:t.s.state,data:t.s.data}:null),o={status:a.status,region:a.region,pgVersion:a.pgVersion,orgSlug:a.orgSlug};"paused"===r.state&&"paused"!==n&&(o.pausedBeforeSeen=null===n),i.push(await j(t,{state:r.state,label:r.label,patch:o},e.now))}await z(i);let o=new Map(r.map(e=>[e.r.externalId,e.r.id])),u=n.data.map(e=>({resourceId:o.get(e.ref)??null,accountId:t.id,status:e.status,orgSlug:e.orgSlug}));await (0,l.z)(e.now,u,e.deadline).catch(()=>{console.warn("auto-restore failed"),e.errors.push("auto-restore failed")})}}async function C(e){for(let{acc:t,credential:a}of(await R("supabase"))){if($(e),!a)continue;let r=await M(t.id,"supabase_project");if(!r.length)continue;let n=new Map(r.map(e=>[e.r.id,(0,g.k)(g.B,e.s?.data)])),s=new Map;for(let r of new Set([...n.values()].map(e=>e.orgSlug).filter(e=>!!e))){let n=await (0,v.K)(a,r,$(e));s.set(r,n.ok&&null!==n.data?"free"===n.data:null),n.ok||"scope"===n.kind||e.errors.push(`supabase/${t.label} plan: ${n.error}`)}let{skipped:i}=await D(e,r,async(t,r)=>{let i=n.get(t.r.id),o={freeOrg:i.orgSlug?s.get(i.orgSlug)??null:null};if((i.status??"").startsWith("ACTIVE_")){let[n,s]=await Promise.all([(0,v.F)(a,t.r.externalId,r),(0,v.Z)(a,t.r.externalId,r)]);n.ok?Object.assign(o,{health:n.data.map(({name:e,status:t})=>({name:e,status:t})),healthAt:B(e.now),healthError:null}):"column"===p(n,!1)?o.healthError=n.error:e.errors.push(`supabase/${t.r.name} health: ${n.error}`),s.ok?Object.assign(o,{lastTrafficAt:(0,h.H)(s.data)?.toISOString()??null,trafficAt:B(e.now),trafficError:null}):"column"===p(s,!1)?o.trafficError=s.error:e.errors.push(`supabase/${t.r.name} traffic: ${s.error}`)}await P(t,o)});x(i)}}async function W(e){for(let{acc:t,credential:a}of(await R("neon"))){if($(e),!a){e.errors.push(`neon/${t.label}: credential can't be read`);continue}let r=await M(t.id,"neon_project");if(!r.length)continue;let{out:n,skipped:s}=await D(e,r,(e,t)=>Promise.all([(0,I.Z)(a,e.r.externalId,t),(0,I.k)(a,e.r.externalId,t),(0,I.e)(a,e.r.externalId,t)])),i=n.flat().find(e=>void 0!==e&&!e.ok&&"auth"===e.kind);if(i){await N("neon",t,r,i,e);continue}let o=[];for(let[t,a]of r.entries()){let r=n[t];if(!r)continue;let[s,i,l]=r;if(!s.ok||!i.ok||!l.ok){let t=[s,i,l].find(e=>!e.ok);"missing"===t.kind?o.push(await j(a,{state:"off",label:"Not found",patch:{}},e.now)):(await j(a,{state:"unknown",label:"Unknown",patch:{}},e.now),e.errors.push(`neon/${a.r.name}: ${t.error}`));continue}let u=(0,m.p)({endpoints:i.data,computeSeconds:s.data.computeSeconds});o.push(await j(a,{state:u.state,label:u.label,patch:{region:s.data.region,pgVersion:s.data.pgVersion,computeSeconds:s.data.computeSeconds,transferBytes:s.data.transferBytes,activeSeconds:s.data.activeSeconds,periodStart:s.data.periodStart,periodEnd:s.data.periodEnd,endpoints:i.data,branches:l.data}},e.now))}await z(o),x(s)}}async function _(e){for(let{acc:t,credential:a}of(await R("firebase"))){$(e);let r=a?(0,y.p)(a):null;if(!r){e.errors.push(`firebase/${t.label}: credential can't be read`);continue}let n=await M(t.id,"firestore");if(!n.length)continue;let s=await (0,y.X)(r,$(e));if(!s.ok){await N("firebase",t,n,s,e);continue}let{out:i,skipped:o}=await D(e,n,(e,t)=>(0,k.G)(s.data,e.r.externalId,t)),l=[];for(let[t,a]of n.entries()){let r=i[t];if(!r)continue;let n=(0,w.g)(r);"unknown"!==n.state||r.ok||e.errors.push(`firebase/${a.r.name}: ${r.error}`);let s=r.ok?{latencyMs:r.data.latencyMs,pingError:null,pingReason:null,pingKind:null}:{pingError:r.error,pingReason:r.reason??null,pingKind:r.kind};l.push(await j(a,{...n,patch:s},e.now))}await z(l),x(o)}}async function U(e){for(let{acc:t,credential:a}of(await R("firebase"))){$(e);let r=a?(0,y.p)(a):null;if(!r)continue;let n=(await M(t.id,"firestore")).filter(e=>e.s?.state!=="off");if(!n.length)continue;let s=await (0,y.X)(r,$(e));if(!s.ok){e.errors.push(`firebase/${t.label}: ${s.error}`);continue}let i=(0,w.a)(e.now),{skipped:o}=await D(e,n,async(t,a)=>{let r=await (0,k.W)(s.data,t.r.externalId,i,e.now,a);r.ok?await P(t,{...r.data,opsAt:B(e.now),opsError:null}):"column"===p(r,!1)?await P(t,{reads:null,writes:null,deletes:null,opsAt:B(e.now),opsError:/requires billing/i.test(r.message??"")?"Not available on Spark: Firestore usage needs billing (Blaze plan)":"SERVICE_DISABLED"===r.reason?"Not readable: the Cloud Monitoring API is off in this project":"Not readable: the service account needs monitoring.viewer"}):e.errors.push(`firebase/${t.r.name} usage: ${r.error}`)});x(o)}}async function V(e){let t=Date.now()+2*Math.max(0,e.deadline-Date.now())/3,a=await F(()=>q({...e,deadline:t})),r=await F(()=>L(e));if(a)throw a;if(r)throw r}async function F(e){try{return await e(),null}catch(e){return e instanceof Error?e:Error(String(e))}}async function q(e){for(let{acc:t,credential:a}of(await R("supabase")))if($(e),a)for(let r of(await M(t.id,"supabase_project"))){let t=(0,g.k)(g.B,r.s?.data);if(!(0,h.z)({status:t.status??"",lastTrafficAt:t.lastTrafficAt?new Date(t.lastTrafficAt):null,sizeAt:t.sizeAt?new Date(t.sizeAt):null,now:e.now}))continue;let n=await (0,v.r)(a,r.r.externalId,$(e));n.ok?await P(r,{sizeBytes:n.data,sizeAt:B(e.now),sizeError:null}):"column"===p(n,!1)?await P(r,{sizeError:n.error}):e.errors.push(`supabase/${r.r.name} size: ${n.error}`)}}async function L(e){for(let{acc:t,credential:a}of(await R("firebase"))){$(e);let r=a?(0,y.p)(a):null;if(!r)continue;let n=(await M(t.id,"firestore")).filter(e=>e.s?.state!=="off");if(!n.length)continue;let s=await (0,y.X)(r,$(e));if(!s.ok){e.errors.push(`firebase/${t.label}: ${s.error}`);continue}let{skipped:i}=await D(e,n,async(t,a)=>{let r=await (0,k.q)(s.data,t.r.externalId,a);r.ok?await P(t,{authUsers:r.data,authAt:B(e.now),authError:null}):"column"===p(r,!1)?await P(t,{authError:"Not readable: the service account needs firebaseauth.viewer"}):e.errors.push(`firebase/${t.r.name} users: ${r.error}`)});x(i)}}e.s(["w",0,N,"O",0,R,"q",0,O,"T",0,D,"W",0,x,"M",0,z,"I",0,F,"f",0,V,"g",0,_,"x",0,U,"h",0,W,"N",0,T,"y",0,C,"e",0,M,"s",0,$,"a",0,j],140318)},956846,e=>{var t=e.i(875225),a=e.i(518899),r=e.i(924924),n=e.i(618916),s=e.i(390775),i=e.i(537622),o=e.i(749124),l=e.i(532148),u=e.i(988294),d=e.i(739886),c=e.i(656083),f=e.i(921991),p=e.i(381725),w=e.i(483100),m=e.i(948736),g=e.i(762504),h=e.i(547499),b=e.i(275426),k=e.i(177706),y=e.i(61926),I=e.i(140318),v=e.i(977832),A=e.i(89491),S=e.i(592951),$=e.i(691734),D=e.i(43790),x=e.i(11552);async function R(e){let t=[await (0,I.I)(()=>E(e)),await (0,I.I)(()=>P(e)),await (0,I.I)(()=>z(e))].find(e=>null!==e);if(t)throw t}let M=e=>e.toISOString();async function E(e){for(let{acc:t,credential:a}of(await (0,I.O)("turso"))){if((0,I.s)(e),!a){e.errors.push(`turso/${t.label}: credential can't be read`);continue}let r=await (0,I.e)(t.id,"turso_database");if(!r.length)continue;let n=await (0,$.u)(a,(0,I.s)(e));if(!n.ok){await (0,I.w)("turso",t,r,n,e);continue}let s=new Set(r.map(e=>String(e.r.meta.org??""))),i=[];for(let o of n.data.filter(e=>s.has(e.slug))){let[n,s]=await Promise.all([(0,$.X)(a,o.slug,(0,I.s)(e)),(0,$.d)(a,o.slug,(0,I.s)(e))]),l=r.filter(e=>e.r.meta.org===o.slug);if(!n.ok){for(let t of l)await (0,I.a)(t,{state:"unknown",label:"Unknown",patch:{}},e.now);e.errors.push(`turso/${t.label}: ${n.error}`);continue}let u=new Map(n.data.map(e=>[e.id,e]));for(let t of l)i.push(await j(t,u.get(t.r.externalId),o,s,e))}let o=new Set(n.data.map(e=>e.slug));for(let t of r.filter(e=>!o.has(String(e.r.meta.org??""))))i.push(await (0,I.a)(t,{state:"off",label:"Organization not visible to this token",patch:{}},e.now));await (0,I.M)(i)}}async function j(e,t,a,r,n){if(!t)return(0,I.a)(e,{state:"off",label:"Not found",patch:{}},n.now);let s=(0,A.h)({blockReads:t.blockReads,blockWrites:t.blockWrites,orgBlockedReads:a.blockedReads,orgBlockedWrites:a.blockedWrites}),i={org:a.slug,group:t.group,primaryRegion:t.primaryRegion,plan:a.plan,blockReads:t.blockReads,blockWrites:t.blockWrites};if(r.ok){let e=r.data.byDb.get(t.id);Object.assign(i,{rowsRead:e?.rowsRead??null,rowsWritten:e?.rowsWritten??null,storageBytes:e?.storageBytes??null,orgRowsRead:r.data.org.rowsRead,orgRowsWritten:r.data.org.rowsWritten,orgStorageBytes:r.data.org.storageBytes,orgDatabases:r.data.org.databases,usageAt:M(n.now),usageError:null})}else"column"===(0,v.t)(r,!1)?i.usageError=r.error:n.errors.push(`turso/${e.r.name} usage: ${r.error}`);return(0,I.a)(e,{...s,patch:i},n.now)}async function P(e){for(let{acc:t,credential:a}of(await (0,I.O)("upstash"))){(0,I.s)(e);let r=a?(0,D.L)(a):null;if(!r){e.errors.push(`upstash/${t.label}: credential can't be read`);continue}let n=await (0,I.e)(t.id,"upstash_redis");if(!n.length)continue;let s=await (0,D.M)(r,(0,I.s)(e));if(!s.ok){await (0,I.w)("upstash",t,n,s,e);continue}let i=new Map(s.data.map(e=>[e.id,e])),{out:o,skipped:l}=await (0,I.T)(e,n,(e,t)=>i.has(e.r.externalId)?(0,D.Z)(r,e.r.externalId,t):Promise.resolve(null)),u=[];for(let[t,a]of n.entries()){let r=i.get(a.r.externalId);if(!r){u.push(await (0,I.a)(a,{state:"off",label:"Not found",patch:{}},e.now));continue}let n=(0,A.t)(r.state),s={region:r.region,status:r.state,type:r.type},l=o[t];l?.ok?Object.assign(s,{...l.data,statsAt:M(e.now),statsError:null}):l&&"column"===(0,v.t)(l,!1)?s.statsError=l.error:l&&e.errors.push(`upstash/${a.r.name} stats: ${l.error}`),u.push(await (0,I.a)(a,{...n,patch:s},e.now))}await (0,I.M)(u),(0,I.W)(l)}}async function z(e){let t={};for(let{acc:a,credential:r}of(await (0,I.O)("cloudflare"))){if((0,I.s)(e),!r)continue;let n=await B(a.id,r,e);if(!n.length){t[a.id]={d1:"error",analytics:null,at:M(e.now),note:"No Cloudflare account found for this token"};continue}let s="ok",i=null;for(let t of n){let n=await (0,S.L)(r,t,(0,I.s)(e));if(!n.ok){"error"==(s="scope"===n.kind||"auth"===n.kind?"missing":"error")&&e.errors.push(`d1/${a.label}: ${n.error}`);continue}await O(a.id,t,n.data,e.now);let o=(await (0,I.e)(a.id,"d1_database")).filter(e=>e.r.meta.accountId===t);if(!o.length)continue;let l=await (0,S.t)(r,t,(0,S.Y)(e.now),(0,I.s)(e));i=l.ok?i??"ok":"scope"===l.kind?"missing":i??"error",l.ok||"scope"===l.kind||e.errors.push(`d1/${a.label} analytics: ${l.error}`);let{out:u,skipped:d}=await (0,I.T)(e,o,(e,a)=>(0,S.m)(r,t,e.r.externalId,a)),c=new Map((l.ok?l.data:[]).map(e=>[e.databaseId,e])),f=u.map(e=>e?.ok?e.data.sizeBytes??0:0),p={accountRowsRead:l.ok?l.data.reduce((e,t)=>e+t.rowsRead,0):null,accountRowsWritten:l.ok?l.data.reduce((e,t)=>e+t.rowsWritten,0):null,accountSizeBytes:u.every(e=>e?.ok)?f.reduce((e,t)=>e+t,0):null,accountDatabases:n.data.length},w=[];for(let[t,a]of o.entries()){let r=u[t];void 0!==r&&w.push(await N(a,r,c.get(a.r.externalId)??null,l.ok,l.ok?null:l.error,p,e))}await (0,I.M)(w),(0,I.W)(d)}t[a.id]={d1:s,analytics:i,at:M(e.now),note:null}}await (0,r.f)().insert(n.settings).values({key:x.f,value:t}).onConflictDoUpdate({target:n.settings.key,set:{value:t,updatedAt:e.now}})}async function N(e,t,a,r,n,s,i){let o={accountId:e.r.meta.accountId??null,createdAt:e.r.meta.createdAt??null,accountDatabases:s.accountDatabases};if(t.ok?Object.assign(o,{sizeBytes:t.data.sizeBytes,numTables:t.data.numTables,readReplication:t.data.readReplication,detailsAt:M(i.now),detailsError:null}):"scope"===t.kind?o.detailsError=t.error:i.errors.push(`d1/${e.r.name}: ${t.error}`),r?Object.assign(o,{rowsRead:a?.rowsRead??0,rowsWritten:a?.rowsWritten??0,readQueries:a?.readQueries??0,writeQueries:a?.writeQueries??0,accountRowsRead:s.accountRowsRead,accountRowsWritten:s.accountRowsWritten,usageDay:(0,S.Y)(i.now),usageAt:M(i.now),usageError:null}):o.usageError=n,null!==s.accountSizeBytes&&(o.accountSizeBytes=s.accountSizeBytes),!t.ok&&"transient"===t.kind)return(0,I.a)(e,{state:"unknown",label:"Unknown",patch:{}},i.now);let l=(0,A.c)(r?s:{accountRowsRead:null,accountRowsWritten:null});return(0,I.a)(e,{...l,patch:o},i.now)}async function B(e,a,s){let i=new Set,o=await (0,S.N)(a,(0,I.s)(s));if(o.ok)for(let e of o.data)i.add(e.id);for(let a of(await (0,r.f)().select({meta:n.resources.meta}).from(n.resources).where((0,t.b)((0,t.u)(n.resources.accountId,e),(0,t.u)(n.resources.kind,"zone"),(0,t.M)(n.resources.goneAt))).limit(200)))"string"==typeof a.meta.accountId&&/^[0-9a-f]{32}$/i.test(a.meta.accountId)&&i.add(a.meta.accountId);return[...i].slice(0,5)}async function O(e,a,s,i){let o=(await (0,r.f)().select({id:n.resources.id,externalId:n.resources.externalId,meta:n.resources.meta,goneAt:n.resources.goneAt}).from(n.resources).where((0,t.b)((0,t.u)(n.resources.accountId,e),(0,t.u)(n.resources.kind,"d1_database")))).filter(e=>e.meta.accountId===a),l=new Map(o.map(e=>[e.externalId,e])),u=new Set(s.map(e=>e.uuid));await (0,r.f)().transaction(async r=>{for(let o of s){let s={accountId:a,createdAt:o.createdAt},u=l.get(o.uuid);u?await r.update(n.resources).set({name:o.name,meta:s,lastSeenAt:i,goneAt:null,updatedAt:i}).where((0,t.u)(n.resources.id,u.id)):await r.insert(n.resources).values({accountId:e,kind:"d1_database",externalId:o.uuid,name:o.name,meta:s,monitored:!0,lastSeenAt:i}).onConflictDoNothing({target:[n.resources.accountId,n.resources.kind,n.resources.externalId]})}let d=o.filter(e=>!u.has(e.externalId)&&!e.goneAt).map(e=>e.id);d.length&&await r.update(n.resources).set({goneAt:i,updatedAt:i}).where((0,t.y)(n.resources.id,d))})}var T=e.i(442473),C=e.i(666680),W=e.i(473283),_=e.i(422067);async function U(e=new Date){let t=(0,C.randomUUID)(),n=new Date(e.getTime()+_.d).toISOString(),s=await (0,r.f)().execute(a.B`
|
|
1
|
+
(()=>{"use strict";module.exports=[537622,e=>{var t=e.i(665044),a=e.i(77193);e.s(["f",0,function(e){if((0,a.r)())for(let a of new Set(e))try{let e;e=a,(0,t.revalidateTag)(e,{expire:0})}catch(e){console.warn(`cache: couldn't expire ${a}: ${e instanceof Error?e.message.slice(0,120):"unknown"}`)}}])},140318,977832,e=>{var t=e.i(875225),a=e.i(518899),r=e.i(924924),n=e.i(618916),s=e.i(390775),i=e.i(921991),o=e.i(656083),l=e.i(629955),u=e.i(497867);function d(e){if(!e)return null;if("unknown"!==e.state)return e.state;let t=e.data?.lastGoodState;return"string"==typeof t&&u.f.includes(t)?t:null}let c={turso_database:"Turso database",upstash_redis:"Upstash Redis",d1_database:"D1 database"};function f(e){let{prev:t,next:a}=e;if(null===t||"unknown"===t||"unknown"===a||t===a)return null;let r={resourceId:e.resourceId,type:"database",at:e.at};if("supabase_project"===e.kind)return"paused"===a?{...r,reason:"DatabasePaused",kind:"paused",message:"Supabase project paused",detail:"Status changed to INACTIVE"}:"ok"===a?{...r,reason:"DatabaseRestored",kind:"ok",message:"Supabase project active again",detail:"Status changed to ACTIVE_HEALTHY"}:"warn"===a?{...r,reason:"DatabaseUnhealthy",kind:"warn",message:"Supabase project unhealthy",detail:e.label}:"err"===a?{...r,reason:"DatabaseFailed",kind:"err",message:`Supabase project: ${e.label.toLowerCase()}`,detail:e.label}:null;if("neon_project"===e.kind)return"err"===a?{...r,reason:"NeonSuspended",kind:"err",message:"Neon compute suspended",detail:e.label}:"err"===t&&("ok"===a||"idle"===a)?{...r,reason:"NeonAvailable",kind:"ok",message:"Neon compute available again",detail:e.label}:null;let n=c[e.kind];if(n)return"err"===a?{...r,reason:"DatabaseFailed",kind:"err",message:`${n}: ${e.label.toLowerCase()}`,detail:e.label}:"off"===a?{...r,reason:"DatabaseMissing",kind:"off",message:`${n} missing`,detail:e.label}:"ok"===a&&("err"===t||"off"===t)?{...r,reason:"DatabaseRestored",kind:"ok",message:`${n} available again`,detail:e.label}:null;if("err"===a){let t="Daily quota used up"===e.label;return{...r,reason:t?"FirestoreQuotaUsedUp":"FirestoreUnreachable",kind:"err",message:t?"Firestore daily quota used up":"Firestore not reachable",detail:e.label}}return"off"===a?{...r,reason:"FirestoreMissing",kind:"off",message:"Firestore database missing",detail:e.label}:"ok"===a&&("err"===t||"off"===t)?{...r,reason:"FirestoreReachable",kind:"ok",message:"Firestore reachable again",detail:e.label}:null}function p(e,t){return"auth"===e.kind?"auth":"scope"===e.kind?t?"auth":"column":"missing"===e.kind?t?"unknown":"column":"unknown"}e.s(["t",0,p,"K",0,f,"F",0,d],977832);var w=e.i(960063),g=e.i(800366),m=e.i(326003),h=e.i(843448),b=e.i(547499),y=e.i(795194),k=e.i(780148),I=e.i(443917),v=e.i(342833),A=e.i(442473);let S="skipped the rest, time budget used";function $(e){let t=e.deadline-Date.now()-500;if(t<250)throw Error(S);return{timeoutMs:Math.min(5e3,t)}}async function D(e,t,a){let r=!1;return{out:await (0,A.P)(t,3,async t=>{let n;try{n=$(e)}catch{r=!0;return}return a(t,n)}),skipped:r}}function x(e){if(e)throw Error(S)}async function R(e){let a=await (0,r.f)().select().from(n.accounts).where((0,t.b)((0,t.u)(n.accounts.provider,e),(0,t.u)(n.accounts.status,"ok"))),s=(0,b.f)().OPS_ENCRYPTION_KEY;return a.map(e=>({acc:e,credential:(0,i.V)({ciphertext:e.credentialCiphertext,iv:e.credentialIv},s)}))}function M(e,a){return(0,r.f)().select({r:n.resources,s:n.snapshots}).from(n.resources).leftJoin(n.snapshots,(0,t.u)(n.snapshots.resourceId,n.resources.id)).where((0,t.b)((0,t.u)(n.resources.accountId,e),(0,t.u)(n.resources.kind,a),(0,t.u)(n.resources.monitored,!0),(0,t.M)(n.resources.goneAt))).limit(100)}let E=e=>a.B`${n.snapshots.data} || ${JSON.stringify(e)}::jsonb`;async function j(e,t,a){let s=d(e.s?{state:e.s.state,data:e.s.data}:null),i="unknown"===t.state,o=i?s?{lastGoodState:s}:{}:{...t.patch,lastGoodState:t.state},l=!i&&s!==t.state;return await (0,r.f)().insert(n.snapshots).values({resourceId:e.r.id,state:t.state,data:o,collectedAt:a,stateSince:a}).onConflictDoUpdate({target:n.snapshots.resourceId,set:{state:t.state,data:E(o),...i?{}:{collectedAt:a},...l?{stateSince:a}:{}}}),i?null:f({kind:e.r.kind,resourceId:e.r.id,prev:s,next:t.state,label:t.label,at:a})}async function P(e,a){await (0,r.f)().update(n.snapshots).set({data:E(a)}).where((0,t.u)(n.snapshots.resourceId,e.r.id))}let O=e=>(0,o.f)(e);async function z(e,a,i,o,l){if("auth"===p(o,!0)){let e=(0,s.E)({ok:!1,kind:"auth",error:o.error});e&&await (0,r.f)().update(n.accounts).set({...e,updatedAt:l.now}).where((0,t.u)(n.accounts.id,a.id))}for(let e of i)await j(e,{state:"unknown",label:"Unknown",patch:{}},l.now);l.errors.push(`${e}/${a.label}: ${o.error}`)}let N=e=>e.toISOString();async function B(e){return e.length?new Set((await (0,r.f)().select({app:n.links.fromResourceId,state:n.snapshots.state,data:n.snapshots.data}).from(n.links).innerJoin(n.resources,(0,t.u)(n.resources.id,n.links.toResourceId)).innerJoin(n.snapshots,(0,t.u)(n.snapshots.resourceId,n.resources.id)).where((0,t.b)((0,t.u)(n.links.kind,"uses_db"),(0,t.y)(n.links.fromResourceId,e),(0,t.u)(n.resources.monitored,!0),(0,t.M)(n.resources.goneAt)))).filter(e=>"paused"===e.state||"unknown"===e.state&&"paused"===e.data.lastGoodState).map(e=>e.app)):new Set}async function T(e){if(!e.protectOnly||await (0,l.g)())for(let{acc:t,credential:a}of(await R("supabase"))){if($(e),!a){e.errors.push(`supabase/${t.label}: credential can't be read`);continue}let r=await M(t.id,"supabase_project");if(!r.length)continue;let n=await (0,v.W)(a,$(e));if(!n.ok){e.protectOnly?e.errors.push(`supabase/${t.label}: ${n.error}`):await z("supabase",t,r,n,e);continue}let s=new Map(n.data.map(e=>[e.ref,e])),i=[];for(let t of e.protectOnly?[]:r){let a=s.get(t.r.externalId);if(!a){i.push(await j(t,{state:"off",label:"Not found",patch:{status:"REMOVED"}},e.now));continue}let r=(0,h.P)(a.status),n=d(t.s?{state:t.s.state,data:t.s.data}:null),o={status:a.status,region:a.region,pgVersion:a.pgVersion,orgSlug:a.orgSlug};"paused"===r.state&&"paused"!==n&&(o.pausedBeforeSeen=null===n),i.push(await j(t,{state:r.state,label:r.label,patch:o},e.now))}await O(i);let o=new Map(r.map(e=>[e.r.externalId,e.r.id])),u=n.data.map(e=>({resourceId:o.get(e.ref)??null,accountId:t.id,status:e.status,orgSlug:e.orgSlug}));await (0,l.z)(e.now,u,e.deadline).catch(()=>{console.warn("auto-restore failed"),e.errors.push("auto-restore failed")})}}async function C(e){for(let{acc:t,credential:a}of(await R("supabase"))){if($(e),!a)continue;let r=await M(t.id,"supabase_project");if(!r.length)continue;let n=new Map(r.map(e=>[e.r.id,(0,m.k)(m.B,e.s?.data)])),s=new Map;for(let r of new Set([...n.values()].map(e=>e.orgSlug).filter(e=>!!e))){let n=await (0,v.K)(a,r,$(e));s.set(r,n.ok&&null!==n.data?"free"===n.data:null),n.ok||"scope"===n.kind||e.errors.push(`supabase/${t.label} plan: ${n.error}`)}let{skipped:i}=await D(e,r,async(t,r)=>{let i=n.get(t.r.id),o={freeOrg:i.orgSlug?s.get(i.orgSlug)??null:null};if((i.status??"").startsWith("ACTIVE_")){let[n,s]=await Promise.all([(0,v.F)(a,t.r.externalId,r),(0,v.Z)(a,t.r.externalId,r)]);n.ok?Object.assign(o,{health:n.data.map(({name:e,status:t})=>({name:e,status:t})),healthAt:N(e.now),healthError:null}):"column"===p(n,!1)?o.healthError=n.error:e.errors.push(`supabase/${t.r.name} health: ${n.error}`),s.ok?Object.assign(o,{lastTrafficAt:(0,h.H)(s.data)?.toISOString()??null,trafficAt:N(e.now),trafficError:null}):"column"===p(s,!1)?o.trafficError=s.error:e.errors.push(`supabase/${t.r.name} traffic: ${s.error}`)}await P(t,o)});x(i)}}async function W(e){for(let{acc:t,credential:a}of(await R("neon"))){if($(e),!a){e.errors.push(`neon/${t.label}: credential can't be read`);continue}let r=await M(t.id,"neon_project");if(!r.length)continue;let{out:n,skipped:s}=await D(e,r,(e,t)=>Promise.all([(0,I.Z)(a,e.r.externalId,t),(0,I.k)(a,e.r.externalId,t),(0,I.e)(a,e.r.externalId,t)])),i=n.flat().find(e=>void 0!==e&&!e.ok&&"auth"===e.kind);if(i){await z("neon",t,r,i,e);continue}let o=[];for(let[t,a]of r.entries()){let r=n[t];if(!r)continue;let[s,i,l]=r;if(!s.ok||!i.ok||!l.ok){let t=[s,i,l].find(e=>!e.ok);"missing"===t.kind?o.push(await j(a,{state:"off",label:"Not found",patch:{}},e.now)):(await j(a,{state:"unknown",label:"Unknown",patch:{}},e.now),e.errors.push(`neon/${a.r.name}: ${t.error}`));continue}let u=(0,g.p)({endpoints:i.data,computeSeconds:s.data.computeSeconds});o.push(await j(a,{state:u.state,label:u.label,patch:{region:s.data.region,pgVersion:s.data.pgVersion,computeSeconds:s.data.computeSeconds,transferBytes:s.data.transferBytes,activeSeconds:s.data.activeSeconds,periodStart:s.data.periodStart,periodEnd:s.data.periodEnd,endpoints:i.data,branches:l.data}},e.now))}await O(o),x(s)}}async function _(e){for(let{acc:t,credential:a}of(await R("firebase"))){$(e);let r=a?(0,k.p)(a):null;if(!r){e.errors.push(`firebase/${t.label}: credential can't be read`);continue}let n=await M(t.id,"firestore");if(!n.length)continue;let s=await (0,k.X)(r,$(e));if(!s.ok){await z("firebase",t,n,s,e);continue}let{out:i,skipped:o}=await D(e,n,(e,t)=>(0,y.G)(s.data,e.r.externalId,t)),l=[];for(let[t,a]of n.entries()){let r=i[t];if(!r)continue;let n=(0,w.g)(r);"unknown"!==n.state||r.ok||e.errors.push(`firebase/${a.r.name}: ${r.error}`);let s=r.ok?{latencyMs:r.data.latencyMs,pingError:null,pingReason:null,pingKind:null}:{pingError:r.error,pingReason:r.reason??null,pingKind:r.kind};l.push(await j(a,{...n,patch:s},e.now))}await O(l),x(o)}}async function U(e){for(let{acc:t,credential:a}of(await R("firebase"))){$(e);let r=a?(0,k.p)(a):null;if(!r)continue;let n=(await M(t.id,"firestore")).filter(e=>e.s?.state!=="off");if(!n.length)continue;let s=await (0,k.X)(r,$(e));if(!s.ok){e.errors.push(`firebase/${t.label}: ${s.error}`);continue}let i=(0,w.a)(e.now),{skipped:o}=await D(e,n,async(t,a)=>{let r=await (0,y.W)(s.data,t.r.externalId,i,e.now,a);r.ok?await P(t,{...r.data,opsAt:N(e.now),opsError:null}):"column"===p(r,!1)?await P(t,{reads:null,writes:null,deletes:null,opsAt:N(e.now),opsError:/requires billing/i.test(r.message??"")?"Not available on Spark: Firestore usage needs billing (Blaze plan)":"SERVICE_DISABLED"===r.reason?"Not readable: the Cloud Monitoring API is off in this project":"Not readable: the service account needs monitoring.viewer"}):e.errors.push(`firebase/${t.r.name} usage: ${r.error}`)});x(o)}}async function V(e){let t=Date.now()+2*Math.max(0,e.deadline-Date.now())/3,a=await F(()=>q({...e,deadline:t})),r=await F(()=>L(e));if(a)throw a;if(r)throw r}async function F(e){try{return await e(),null}catch(e){return e instanceof Error?e:Error(String(e))}}async function q(e){for(let{acc:t,credential:a}of(await R("supabase")))if($(e),a)for(let r of(await M(t.id,"supabase_project"))){let t=(0,m.k)(m.B,r.s?.data);if(!(0,h.z)({status:t.status??"",lastTrafficAt:t.lastTrafficAt?new Date(t.lastTrafficAt):null,sizeAt:t.sizeAt?new Date(t.sizeAt):null,now:e.now}))continue;let n=await (0,v.r)(a,r.r.externalId,$(e));n.ok?await P(r,{sizeBytes:n.data,sizeAt:N(e.now),sizeError:null}):"column"===p(n,!1)?await P(r,{sizeError:n.error}):e.errors.push(`supabase/${r.r.name} size: ${n.error}`)}}async function L(e){for(let{acc:t,credential:a}of(await R("firebase"))){$(e);let r=a?(0,k.p)(a):null;if(!r)continue;let n=(await M(t.id,"firestore")).filter(e=>e.s?.state!=="off");if(!n.length)continue;let s=await (0,k.X)(r,$(e));if(!s.ok){e.errors.push(`firebase/${t.label}: ${s.error}`);continue}let{skipped:i}=await D(e,n,async(t,a)=>{let r=await (0,y.q)(s.data,t.r.externalId,a);r.ok?await P(t,{authUsers:r.data,authAt:N(e.now),authError:null}):"column"===p(r,!1)?await P(t,{authError:"Not readable: the service account needs firebaseauth.viewer"}):e.errors.push(`firebase/${t.r.name} users: ${r.error}`)});x(i)}}e.s(["w",0,z,"O",0,R,"q",0,B,"T",0,D,"W",0,x,"M",0,O,"I",0,F,"f",0,V,"g",0,_,"x",0,U,"h",0,W,"N",0,T,"y",0,C,"e",0,M,"s",0,$,"a",0,j],140318)},956846,e=>{var t=e.i(875225),a=e.i(518899),r=e.i(924924),n=e.i(618916),s=e.i(390775),i=e.i(537622),o=e.i(749124),l=e.i(532148),u=e.i(988294),d=e.i(739886),c=e.i(656083),f=e.i(921991),p=e.i(381725),w=e.i(483100),g=e.i(111970),m=e.i(948736),h=e.i(762504),b=e.i(547499),y=e.i(275426),k=e.i(177706),I=e.i(61926),v=e.i(140318),A=e.i(977832),S=e.i(89491),$=e.i(592951),D=e.i(691734),x=e.i(43790),R=e.i(11552);async function M(e){let t=[await (0,v.I)(()=>j(e)),await (0,v.I)(()=>O(e)),await (0,v.I)(()=>z(e))].find(e=>null!==e);if(t)throw t}let E=e=>e.toISOString();async function j(e){for(let{acc:t,credential:a}of(await (0,v.O)("turso"))){if((0,v.s)(e),!a){e.errors.push(`turso/${t.label}: credential can't be read`);continue}let r=await (0,v.e)(t.id,"turso_database");if(!r.length)continue;let n=await (0,D.u)(a,(0,v.s)(e));if(!n.ok){await (0,v.w)("turso",t,r,n,e);continue}let s=new Set(r.map(e=>String(e.r.meta.org??""))),i=[];for(let o of n.data.filter(e=>s.has(e.slug))){let[n,s]=await Promise.all([(0,D.X)(a,o.slug,(0,v.s)(e)),(0,D.d)(a,o.slug,(0,v.s)(e))]),l=r.filter(e=>e.r.meta.org===o.slug);if(!n.ok){for(let t of l)await (0,v.a)(t,{state:"unknown",label:"Unknown",patch:{}},e.now);e.errors.push(`turso/${t.label}: ${n.error}`);continue}let u=new Map(n.data.map(e=>[e.id,e]));for(let t of l)i.push(await P(t,u.get(t.r.externalId),o,s,e))}let o=new Set(n.data.map(e=>e.slug));for(let t of r.filter(e=>!o.has(String(e.r.meta.org??""))))i.push(await (0,v.a)(t,{state:"off",label:"Organization not visible to this token",patch:{}},e.now));await (0,v.M)(i)}}async function P(e,t,a,r,n){if(!t)return(0,v.a)(e,{state:"off",label:"Not found",patch:{}},n.now);let s=(0,S.h)({blockReads:t.blockReads,blockWrites:t.blockWrites,orgBlockedReads:a.blockedReads,orgBlockedWrites:a.blockedWrites}),i={org:a.slug,group:t.group,primaryRegion:t.primaryRegion,plan:a.plan,blockReads:t.blockReads,blockWrites:t.blockWrites};if(r.ok){let e=r.data.byDb.get(t.id);Object.assign(i,{rowsRead:e?.rowsRead??null,rowsWritten:e?.rowsWritten??null,storageBytes:e?.storageBytes??null,orgRowsRead:r.data.org.rowsRead,orgRowsWritten:r.data.org.rowsWritten,orgStorageBytes:r.data.org.storageBytes,orgDatabases:r.data.org.databases,usageAt:E(n.now),usageError:null})}else"column"===(0,A.t)(r,!1)?i.usageError=r.error:n.errors.push(`turso/${e.r.name} usage: ${r.error}`);return(0,v.a)(e,{...s,patch:i},n.now)}async function O(e){for(let{acc:t,credential:a}of(await (0,v.O)("upstash"))){(0,v.s)(e);let r=a?(0,x.L)(a):null;if(!r){e.errors.push(`upstash/${t.label}: credential can't be read`);continue}let n=await (0,v.e)(t.id,"upstash_redis");if(!n.length)continue;let s=await (0,x.M)(r,(0,v.s)(e));if(!s.ok){await (0,v.w)("upstash",t,n,s,e);continue}let i=new Map(s.data.map(e=>[e.id,e])),{out:o,skipped:l}=await (0,v.T)(e,n,(e,t)=>i.has(e.r.externalId)?(0,x.Z)(r,e.r.externalId,t):Promise.resolve(null)),u=[];for(let[t,a]of n.entries()){let r=i.get(a.r.externalId);if(!r){u.push(await (0,v.a)(a,{state:"off",label:"Not found",patch:{}},e.now));continue}let n=(0,S.t)(r.state),s={region:r.region,status:r.state,type:r.type},l=o[t];l?.ok?Object.assign(s,{...l.data,statsAt:E(e.now),statsError:null}):l&&"column"===(0,A.t)(l,!1)?s.statsError=l.error:l&&e.errors.push(`upstash/${a.r.name} stats: ${l.error}`),u.push(await (0,v.a)(a,{...n,patch:s},e.now))}await (0,v.M)(u),(0,v.W)(l)}}async function z(e){let t={};for(let{acc:a,credential:r}of(await (0,v.O)("cloudflare"))){if((0,v.s)(e),!r)continue;let n=await B(a.id,r,e);if(!n.length){t[a.id]={d1:"error",analytics:null,at:E(e.now),note:"No Cloudflare account found for this token"};continue}let s="ok",i=null;for(let t of n){let n=await (0,$.L)(r,t,(0,v.s)(e));if(!n.ok){"error"==(s="scope"===n.kind||"auth"===n.kind?"missing":"error")&&e.errors.push(`d1/${a.label}: ${n.error}`);continue}await T(a.id,t,n.data,e.now);let o=(await (0,v.e)(a.id,"d1_database")).filter(e=>e.r.meta.accountId===t);if(!o.length)continue;let l=await (0,$.t)(r,t,(0,$.Y)(e.now),(0,v.s)(e));i=l.ok?i??"ok":"scope"===l.kind?"missing":i??"error",l.ok||"scope"===l.kind||e.errors.push(`d1/${a.label} analytics: ${l.error}`);let{out:u,skipped:d}=await (0,v.T)(e,o,(e,a)=>(0,$.m)(r,t,e.r.externalId,a)),c=new Map((l.ok?l.data:[]).map(e=>[e.databaseId,e])),f=u.map(e=>e?.ok?e.data.sizeBytes??0:0),p={accountRowsRead:l.ok?l.data.reduce((e,t)=>e+t.rowsRead,0):null,accountRowsWritten:l.ok?l.data.reduce((e,t)=>e+t.rowsWritten,0):null,accountSizeBytes:u.every(e=>e?.ok)?f.reduce((e,t)=>e+t,0):null,accountDatabases:n.data.length},w=[];for(let[t,a]of o.entries()){let r=u[t];void 0!==r&&w.push(await N(a,r,c.get(a.r.externalId)??null,l.ok,l.ok?null:l.error,p,e))}await (0,v.M)(w),(0,v.W)(d)}t[a.id]={d1:s,analytics:i,at:E(e.now),note:null}}await (0,r.f)().insert(n.settings).values({key:R.f,value:t}).onConflictDoUpdate({target:n.settings.key,set:{value:t,updatedAt:e.now}})}async function N(e,t,a,r,n,s,i){let o={accountId:e.r.meta.accountId??null,createdAt:e.r.meta.createdAt??null,accountDatabases:s.accountDatabases};if(t.ok?Object.assign(o,{sizeBytes:t.data.sizeBytes,numTables:t.data.numTables,readReplication:t.data.readReplication,detailsAt:E(i.now),detailsError:null}):"scope"===t.kind?o.detailsError=t.error:i.errors.push(`d1/${e.r.name}: ${t.error}`),r?Object.assign(o,{rowsRead:a?.rowsRead??0,rowsWritten:a?.rowsWritten??0,readQueries:a?.readQueries??0,writeQueries:a?.writeQueries??0,accountRowsRead:s.accountRowsRead,accountRowsWritten:s.accountRowsWritten,usageDay:(0,$.Y)(i.now),usageAt:E(i.now),usageError:null}):o.usageError=n,null!==s.accountSizeBytes&&(o.accountSizeBytes=s.accountSizeBytes),!t.ok&&"transient"===t.kind)return(0,v.a)(e,{state:"unknown",label:"Unknown",patch:{}},i.now);let l=(0,S.c)(r?s:{accountRowsRead:null,accountRowsWritten:null});return(0,v.a)(e,{...l,patch:o},i.now)}async function B(e,a,s){let i=new Set,o=await (0,$.N)(a,(0,v.s)(s));if(o.ok)for(let e of o.data)i.add(e.id);for(let a of(await (0,r.f)().select({meta:n.resources.meta}).from(n.resources).where((0,t.b)((0,t.u)(n.resources.accountId,e),(0,t.u)(n.resources.kind,"zone"),(0,t.M)(n.resources.goneAt))).limit(200)))"string"==typeof a.meta.accountId&&/^[0-9a-f]{32}$/i.test(a.meta.accountId)&&i.add(a.meta.accountId);return[...i].slice(0,5)}async function T(e,a,s,i){let o=(await (0,r.f)().select({id:n.resources.id,externalId:n.resources.externalId,meta:n.resources.meta,goneAt:n.resources.goneAt}).from(n.resources).where((0,t.b)((0,t.u)(n.resources.accountId,e),(0,t.u)(n.resources.kind,"d1_database")))).filter(e=>e.meta.accountId===a),l=new Map(o.map(e=>[e.externalId,e])),u=new Set(s.map(e=>e.uuid));await (0,r.f)().transaction(async r=>{for(let o of s){let s={accountId:a,createdAt:o.createdAt},u=l.get(o.uuid);u?await r.update(n.resources).set({name:o.name,meta:s,lastSeenAt:i,goneAt:null,updatedAt:i}).where((0,t.u)(n.resources.id,u.id)):await r.insert(n.resources).values({accountId:e,kind:"d1_database",externalId:o.uuid,name:o.name,meta:s,monitored:!0,lastSeenAt:i}).onConflictDoNothing({target:[n.resources.accountId,n.resources.kind,n.resources.externalId]})}let d=o.filter(e=>!u.has(e.externalId)&&!e.goneAt).map(e=>e.id);d.length&&await r.update(n.resources).set({goneAt:i,updatedAt:i}).where((0,t.y)(n.resources.id,d))})}var C=e.i(442473),W=e.i(666680),_=e.i(473283),U=e.i(422067);async function V(e=new Date){let t=(0,W.randomUUID)(),n=new Date(e.getTime()+U.d).toISOString(),s=await (0,r.f)().execute(a.B`
|
|
2
2
|
insert into ops.settings (key, value) values ('collector.lease', ${JSON.stringify({until:n,owner:t})}::jsonb)
|
|
3
3
|
on conflict (key) do update set value = excluded.value, updated_at = now()
|
|
4
4
|
where (ops.settings.value->>'until')::timestamptz < ${e.toISOString()}::timestamptz
|
|
5
|
-
returning key`);return(0,
|
|
5
|
+
returning key`);return(0,_.f)(s).length>0?t:null}async function F(e){await (0,r.f)().execute(a.B`
|
|
6
6
|
update ops.settings set value = jsonb_build_object('until', '1970-01-01T00:00:00Z'), updated_at = now()
|
|
7
|
-
where key = 'collector.lease' and value->>'owner' = ${e}`)}var F=e.i(679270),q=e.i(515743),L=e.i(336030),Y=e.i(905685),J=e.i(751762);e.i(794713);let K="collector.lastRun",X="vercel.backoffUntil",G="vercel.currentMiss",Q={supabase:I.N,supabaseUsage:I.y,neon:I.h,firebase:I.g,firebaseUsage:I.x,extraDbs:R};async function Z(){let[e]=await (0,r.f)().select().from(n.settings).where((0,t.u)(n.settings.key,K)).limit(1);return e?.value??{}}async function H(e){await (0,r.f)().insert(n.settings).values({key:K,value:e}).onConflictDoUpdate({target:n.settings.key,set:{value:e,updatedAt:new Date}})}let ee=e=>(0,c.f)(e);async function et(e,s,i,o,l=[]){let u=(await (0,r.f)().select({m:n.monitors,app:n.resources}).from(n.monitors).innerJoin(n.resources,(0,t.u)(n.resources.id,n.monitors.resourceId)).where((0,t.b)((0,t.u)(n.monitors.kind,"http"),(0,t.u)(n.monitors.paused,!1),(0,t.u)(n.monitors.ownerPaused,!1),(0,t.u)(n.resources.monitored,!0),(0,t.M)(n.resources.goneAt))).orderBy(a.B`${n.monitors.lastCheckedAt} asc nulls first`,n.monitors.id)).filter(({m:t})=>(0,_.B)(t.lastCheckedAt,e,o));if(!u.length)return 0;let d=await (0,T.P)(u,6,({m:e})=>{let t=(0,_.P)(e.timeoutMs,s,Date.now());return null===t?Promise.resolve(null):(0,T.b)(e.url,{expectedStatus:e.expectedStatus,timeoutMs:t,body:(0,q.C)(e)})}),c=u.flatMap((e,t)=>d[t]?[{...e,r:d[t]}]:[]);if(c.length<u.length&&i.push(`checks: ${u.length-c.length} monitors skipped, time budget used`),!c.length)return 0;let f=[];for(let t of c)await (0,L.f)(t.m,t.r,e)&&f.push(t);return f.length?(await (0,r.f)().insert(n.checks).values(f.map(({m:t,app:a,r})=>({monitorId:t.id,at:e,ok:r.ok,statusCode:r.statusCode,latencyMs:r.latencyMs,error:r.error,inMaintenance:null!==(0,b.x)(l,{monitorId:t.id,appId:a.id},e)}))),await ee(f.map(({m:t,app:a,r})=>(0,Y.F)({resourceId:a.id,path:(0,y.K)(t.url),prev:t.state,next:(0,Y.G)(t.failStreak,r).state,code:r.statusCode,error:r.error,at:e}))),f.length):0}let ea=["checks","heartbeats"];async function er(e,t,a=d.f){if(!ea.some(t=>e.includes(t)))return[];try{return await a()}catch(e){return t.push(`maintenance: ${(0,J.f)(e)}`),[]}}async function en(e){let[a]=await (0,r.f)().select().from(n.settings).where((0,t.u)(n.settings.key,X)).limit(1),s=a?.value?.until;return!!s&&e.getTime()<new Date(s).getTime()}async function es(e,t){if("transient"!==e.kind||!e.retryAfterS)return!1;let a={until:new Date(t.getTime()+1e3*Math.min(e.retryAfterS,3600)).toISOString()};return await (0,r.f)().insert(n.settings).values({key:X,value:a}).onConflictDoUpdate({target:n.settings.key,set:{value:a,updatedAt:t}}),!0}let ei=e=>a.B`coalesce(${n.deployments.externalId} = ${e}::text, false)`;async function eo(e,i,o){if(await en(e))return;let l=(0,h.f)().OPS_ENCRYPTION_KEY;for(let u of(await (0,r.f)().select().from(n.accounts).where((0,t.b)((0,t.u)(n.accounts.provider,"vercel"),(0,t.u)(n.accounts.status,"ok"))))){let d=(0,f.V)({ciphertext:u.credentialCiphertext,iv:u.credentialIv},l);if((0,s.A)(d)||!d){o.push(`vercel/${u.label}: credential can't be read`);continue}let c=await (0,r.f)().select().from(n.resources).where((0,t.b)((0,t.u)(n.resources.accountId,u.id),(0,t.u)(n.resources.kind,"app"),(0,t.u)(n.resources.monitored,!0),(0,t.M)(n.resources.goneAt)));if(!c.length)continue;let p=new Map(c.map(e=>[e.externalId,e])),w=await (0,k.X)(d);if(!w.ok){let a=(0,s.E)({ok:!1,kind:w.kind,error:w.error});if(a&&await (0,r.f)().update(n.accounts).set({...a,updatedAt:e}).where((0,t.u)(n.accounts.id,u.id)),o.push(`vercel/${u.label}: ${w.error}`),await es(w,e))return;continue}let m=new Set(c.map(e=>String(e.meta.teamId)));for(let s of w.data.filter(e=>m.has(e.id))){if(Date.now()>i)return void o.push("vercel: skipped remaining teams, time budget used");let[l,u]=await Promise.all([(0,k.W)(d,s),(0,k.K)(d,s,{since:e.getTime()-6048e5,limit:100})]);if(!l.ok||!u.ok){let t=l.ok?u:l;if(o.push(`vercel/${s.name}: ${t.error}`),await es(t,e))return;continue}let f=new Map(l.data.map(e=>[e.id,e.currentDeploymentId])),w=u.data.filter(e=>p.has(e.projectId)),m=new Map((w.length?await (0,r.f)().select({externalId:n.deployments.externalId,state:n.deployments.state,target:n.deployments.target,branch:n.deployments.branch,commitSha:n.deployments.commitSha,commitMessage:n.deployments.commitMessage,source:n.deployments.source,url:n.deployments.url,buildingAt:n.deployments.buildingAt,readyAt:n.deployments.readyAt}).from(n.deployments).where((0,t.y)(n.deployments.externalId,w.map(e=>e.id))):[]).map(e=>[e.externalId,e])),g=[];for(let t of w){let a=p.get(t.projectId),s=m.get(t.id),i={state:t.state,target:t.target,branch:t.branch,commitSha:t.sha,commitMessage:t.message,source:t.source,url:t.url,buildingAt:t.buildingAt,readyAt:t.readyAt};if((0,y.E)(s,i)){let s={resourceId:a.id,externalId:t.id,...i,createdAtProvider:t.createdAt,updatedAt:e};await (0,r.f)().insert(n.deployments).values(s).onConflictDoUpdate({target:n.deployments.externalId,set:s})}g.push((0,Y.L)(s?.state,t,a.id,e))}await ee(g);let h=c.filter(e=>String(e.meta.teamId)===s.id),b=await (0,r.f)().select({resourceId:n.deployments.resourceId,id:n.deployments.externalId,createdAt:n.deployments.createdAtProvider}).from(n.deployments).where((0,t.b)((0,t.y)(n.deployments.resourceId,h.map(e=>e.id)),(0,t.u)(n.deployments.target,"production"),(0,t.u)(n.deployments.state,"ready"))),[I]=await (0,r.f)().select().from(n.settings).where((0,t.u)(n.settings.key,G)).limit(1),v=[],A=()=>v.length?(0,r.f)().insert(n.settings).values({key:G,value:(0,y.Y)(I?.value,v,e)}).onConflictDoUpdate({target:n.settings.key,set:{value:(0,y.Y)(I?.value,v,e),updatedAt:e}}):Promise.resolve();for(let t of(0,y.Q)(h,f,b,(0,y.S)(I?.value,e))){if(Date.now()>i)break;let a=await (0,k.S)(d,s,t.deploymentId);if(!a.ok){if(o.push(`vercel/${s.name}: current deployment: ${a.error}`),await es(a,e))return void await A();v.push(t.deploymentId);continue}let l=a.data,u={resourceId:t.appId,externalId:l.id,state:l.state,target:l.target,branch:l.branch,commitSha:l.sha,commitMessage:l.message,source:l.source,url:l.url,buildingAt:l.buildingAt,readyAt:l.readyAt,createdAtProvider:l.createdAt,updatedAt:e};await (0,r.f)().insert(n.deployments).values(u).onConflictDoUpdate({target:n.deployments.externalId,set:u}),"ready"===l.state&&"production"===l.target?b.push({resourceId:t.appId,id:l.id,createdAt:l.createdAt}):v.push(t.deploymentId)}for(let s of(await A(),h)){let{currentId:i,previousId:o}=(0,y.a)(b.filter(e=>e.resourceId===s.id),f.get(s.externalId)??null);await (0,r.f)().update(n.deployments).set({isCurrent:ei(i),isPreviousProduction:ei(o),updatedAt:e}).where((0,t.b)((0,t.u)(n.deployments.resourceId,s.id),(0,t.F)(a.B`${n.deployments.isCurrent} is distinct from ${ei(i)}`,a.B`${n.deployments.isPreviousProduction} is distinct from ${ei(o)}`)))}}}}async function el(e){let s=await (0,r.f)().select().from(n.resources).where((0,t.b)((0,t.u)(n.resources.kind,"app"),(0,t.u)(n.resources.monitored,!0),(0,t.M)(n.resources.goneAt)));if(!s.length)return;let i=await (0,r.f)().select().from(n.monitors).where((0,t.b)((0,t.y)(n.monitors.resourceId,s.map(e=>e.id)),(0,t.u)(n.monitors.paused,!1),(0,t.u)(n.monitors.ownerPaused,!1))),o=new Set((await (0,r.f)().select({r:n.deployments.resourceId}).from(n.deployments).where((0,t.b)((0,t.y)(n.deployments.resourceId,s.map(e=>e.id)),(0,t.u)(n.deployments.target,"production"),(0,t.u)(n.deployments.state,"building"),(0,t.B)(n.deployments.createdAtProvider,new Date(e.getTime()-36e5))))).map(e=>e.r)),l=await (0,I.q)(s.map(e=>e.id)),u=new Map((await (0,r.f)().select().from(n.snapshots).where((0,t.y)(n.snapshots.resourceId,s.map(e=>e.id)))).map(e=>[e.resourceId,e]));for(let t of s){let s=i.filter(e=>e.resourceId===t.id),d=(0,Y.V)({monitors:s.map(e=>e.state),building:o.has(t.id),dbPaused:l.has(t.id)}),c=s.find(e=>"err"===e.state)??s.find(e=>"warn"===e.state),f={code:c?.lastStatus??null,latencyMs:s.find(e=>"heartbeat"!==e.kind)?.lastLatencyMs??null,dbPaused:l.has(t.id)},p=u.get(t.id);await (0,r.f)().insert(n.snapshots).values({resourceId:t.id,state:d,data:f,collectedAt:e,stateSince:e}).onConflictDoUpdate({target:n.snapshots.resourceId,set:{state:d,data:a.B`${n.snapshots.data} || ${JSON.stringify(f)}::jsonb`,collectedAt:e,...p?.state!==d?{stateSince:e}:{}}})}}async function eu(e,t={}){let a={writeLastRun:H,refreshApps:el,refreshNetwork:F.x,invalidate:i.f,...t};try{await a.writeLastRun({...e.lastRun,...Object.fromEntries(e.done.map(t=>[t,e.started.toISOString()]))});try{await a.refreshApps(new Date)}catch(t){e.errors.push(`app-snapshots: ${(0,J.f)(t)}`)}if(e.done.some(e=>F.p.includes(e)))try{await a.refreshNetwork(new Date)}catch(t){e.errors.push(`network-states: ${(0,J.f)(t)}`)}}finally{a.invalidate((0,o.o)(e.tried??e.done))}}async function ed(e,t,a,r={evaluate:l.$,deliver:w.q,digest:w.J}){let n=[];if(e.includes("alerts"))if(Date.now()>t)a.push("alerts: skipped, time budget used");else{let e=!0;try{await r.evaluate(new Date),console.info("collector alerts evaluated")}catch(t){e=!1,a.push(`alerts: ${(0,J.f)(t)}`)}try{await r.deliver(new Date,t),console.info("collector notifications delivered")}catch(t){e=!1,a.push(`notify: ${(0,J.f)(t)}`)}e&&n.push("alerts")}if(e.includes("digest")&&(0,_.z)("digest",t,Date.now()))try{await r.digest(new Date),console.info("collector digest done"),n.push("digest")}catch(e){a.push(`digest: ${(0,J.f)(e)}`)}return n}async function ec(e,t,a,r){let n=[],s=[];for(let i of e){if(Date.now()>t){a.push(`${i}: skipped, time budget used`);continue}if((0,_.z)(i,t,Date.now())){s.push(i);try{await r(i),n.push(i)}catch(e){a.push(`${i}: ${(0,J.f)(e)}`)}}}return{done:n,tried:s}}async function ef(e){let a,s=new Date,i=await U(s);if(!i)return{skipped:!0,ok:!0,tasks:[],checks:0,durationMs:0,errors:[]};try{[a]=await (0,r.f)().insert(n.collectorRuns).values({startedAt:s,trigger:"builtin"===e?"manual":e}).returning({id:n.collectorRuns.id})}catch(e){throw await V(i).catch(()=>void 0),e}let o=[],l=[],d=0,c=s.getTime()+_.p,f=e=>console.info(`collector ${e} +${Date.now()-s.getTime()}ms`);try{f("start");let t=await Z(),a="cron_job_org"!==e&&"builtin"!==e,r=(0,_.S)(t,s,a),n=r.filter(e=>_.u.includes(e)),i=n.includes("alerts")?c-_.X:c,w=await er(r,o);f(`due ${r.join(",")}`);let{done:h,tried:k}=await ec(r.filter(e=>!_.u.includes(e)),i,o,async e=>{if(f(`task ${e}`),"heartbeats"===e){let e=new Date;d+=await (0,u.r)(e,(t,a)=>null!==(0,b.x)(w,{monitorId:t,appId:a},e),a)}"checks"===e&&(d+=await et(new Date,i,o,a,w)),"vercel"===e&&await eo(new Date,i,o);let t=Q[e];t&&await t({now:new Date,deadline:i,errors:o}),"cloudflare"===e&&await (0,F.h)(new Date,i,o),"domains"===e&&await (0,F.H)(new Date,i,o),"tls"===e&&await (0,F.V)(new Date,i,o),"rdap"===e&&await (0,F.W)(new Date,i,o),"eol"===e&&await (0,F.i)(new Date,i,o),"status"===e&&await (0,g.i)(new Date),"logs"===e&&await (0,p._)(new Date,i,o),"pageviews"===e&&await (0,m.f)(new Date,i,o)});l.push(...h),f("main done"),await eu({lastRun:t,done:l,tried:k,started:s,errors:o}),f("settled");let y=await ed(n,c,o);f("post done"),y.length&&await H({...t,...Object.fromEntries([...l,...y].map(e=>[e,s.toISOString()]))}),l.push(...y)}catch(e){o.push(`run: ${(0,J.f)(e)}`)}finally{let e=Date.now()-s.getTime();await (0,r.f)().update(n.collectorRuns).set({finishedAt:new Date,ok:0===o.length,errorSummary:o.join("\n").slice(0,2e3)||null,durationMs:e,tasks:l,checks:d}).where((0,t.u)(n.collectorRuns.id,a.id)).catch(()=>void 0),await V(i).catch(()=>void 0)}return{skipped:!1,ok:0===o.length,tasks:l,checks:d,durationMs:Date.now()-s.getTime(),errors:o}}e.s(["f",0,ef],956846)},948736,e=>{var t=e.i(442473),a=e.i(381725),r=e.i(767512),n=e.i(971724),s=e.i(206033),i=e.i(455744),o=e.i(469755),l=e.i(105954),u=e.i(857897);let d=/not enabled/i,c=(e,t,a={})=>({ok:!1,kind:e,error:t,...a}),f="Vercel Web Analytics answered in a format the console doesn't recognise.",p=n.z.object({data:n.z.object({pageviews:s.z.number().finite().nonnegative(),visitors:s.z.number().finite().nonnegative()})}),w=n.z.object({data:i.z.array(o.z.unknown())}),m=n.z.object({timestamp:l.z.string().transform((e,t)=>{let a=Date.parse(e);return Number.isNaN(a)?(t.addIssue({code:"custom",message:"bad timestamp"}),u.z.NEVER):a}),pageviews:s.z.number().finite().nonnegative().nullish().catch(null)});async function g(e,a,r,n){let s=n.since.toISOString(),i=n.until.toISOString(),o=n.fetch??fetch,l=new AbortController,u=setTimeout(()=>l.abort(new DOMException("window","TimeoutError")),n.timeoutMs??8e3),g=n.signal?AbortSignal.any([l.signal,n.signal]):l.signal,h=(0,t.X)(g);async function b(t,u){let p=new URLSearchParams({projectId:r,teamId:a,...u,since:s,until:i});try{let a=await Promise.race([o(`https://api.vercel.com/v1/query/web-analytics/visits/${t}?${p}`,{headers:{Authorization:`Bearer ${e}`,Accept:"application/json"},signal:g,cache:"no-store"}),h]),r=null,n=!1;if(401===a.status||403===a.status)r=c("auth",`Vercel rejected this credential (${a.status}).`,{status:a.status});else if(429===a.status){let e=Number(a.headers.get("Retry-After"));r=c("transient","Vercel says there were too many requests.",{status:429,retryAfterS:Number.isFinite(e)&&e>0?e:60})}else if(400===a.status){let e=await Promise.race([a.text(),h]).catch(()=>"");d.test(e)?n=!0:r=c("transient","Vercel Web Analytics rejected the request (400).",{status:400})}else a.ok||(r=c("transient",`Vercel Web Analytics returned an error (${a.status}).`,{status:a.status}));if(n)return{kind:"off"};if(r)return await a.body?.cancel().catch(()=>void 0),{kind:"fail",fail:r};try{return{kind:"body",body:await Promise.race([a.json(),h])}}catch(e){if(g.aborted)throw e;return{kind:"fail",fail:c("format",f)}}}catch{return{kind:"fail",fail:g.aborted?l.signal.aborted&&!n.signal?.aborted?c("transient","Vercel Web Analytics didn't answer in time."):c("transient","Reading Vercel Web Analytics was cancelled."):c("transient","Couldn't reach Vercel Web Analytics.")}}}try{let[e,t]=await Promise.all([b("count",{}),b("aggregate",{by:"hour"})]);if("off"===e.kind||"off"===t.kind)return{ok:!0,enabled:!1};let a=[e,t].flatMap(e=>"fail"===e.kind?[e.fail]:[]),r=a.find(e=>"auth"===e.kind);if(r)return r;let n="body"===t.kind?w.safeParse(t.body):null,s="fail"===t.kind?t.fail:n?.success?null:c("format",f),i=a.find(e=>"transient"===e.kind);if(i)return i;if(s)return s;if(!n?.success)return c("format",f);let o="body"===e.kind?p.safeParse(e.body):null,l=n.data.data.flatMap(e=>{let t=m.safeParse(e);return t.success?[t.data]:[]});if(l.length>0&&l.every(e=>null==e.pageviews))return c("format",f);let u=new Map;for(let e of l){let t=36e5*Math.floor(e.timestamp/36e5);u.set(t,(u.get(t)??0)+(e.pageviews??0))}let d=[...u].sort((e,t)=>e[0]-t[0]).slice(-24).map(([e,t])=>({at:new Date(e),views:t}));if(o?.success)return{ok:!0,enabled:!0,total:o.data.data.pageviews,visitors:o.data.data.visitors,hourly:d};return{ok:!0,enabled:!0,total:d.reduce((e,t)=>e+t.views,0),visitors:null,hourly:d}}finally{clearTimeout(u),l.abort()}}var h=e.i(943816);async function b(e,n,s){let i=await (0,a.g)(null);if(!i.length)return;let o=new Date(36e5*Math.floor(e.getTime()/36e5)-828e5);await (0,t.P)(i,3,async t=>{if(Date.now()+8500>n)return;let a=await g(t.token,t.teamId,t.projectId,{since:o,until:e});if(!a.ok)return void s.push(`pageviews/${t.appName}: ${a.error}`);try{await (0,r.r)(t.appId,{pageviews:(0,h.Z)(a,e)},e)}catch{s.push(`pageviews/${t.appName}: couldn't save the page views`)}})}e.s(["f",0,b],948736)}]})();
|
|
7
|
+
where key = 'collector.lease' and value->>'owner' = ${e}`)}var q=e.i(679270),L=e.i(515743),Y=e.i(336030),J=e.i(905685),K=e.i(751762);e.i(794713);let X="collector.lastRun",G="vercel.backoffUntil",Q="vercel.currentMiss",Z={supabase:v.N,supabaseUsage:v.y,neon:v.h,firebase:v.g,firebaseUsage:v.x,extraDbs:M};async function H(){let[e]=await (0,r.f)().select().from(n.settings).where((0,t.u)(n.settings.key,X)).limit(1);return e?.value??{}}async function ee(e){await (0,r.f)().insert(n.settings).values({key:X,value:e}).onConflictDoUpdate({target:n.settings.key,set:{value:e,updatedAt:new Date}})}let et=e=>(0,c.f)(e);async function ea(e,s,i,o,l=[]){let u=(await (0,r.f)().select({m:n.monitors,app:n.resources}).from(n.monitors).innerJoin(n.resources,(0,t.u)(n.resources.id,n.monitors.resourceId)).where((0,t.b)((0,t.u)(n.monitors.kind,"http"),(0,t.u)(n.monitors.paused,!1),(0,t.u)(n.monitors.ownerPaused,!1),(0,t.u)(n.resources.monitored,!0),(0,t.M)(n.resources.goneAt))).orderBy(a.B`${n.monitors.lastCheckedAt} asc nulls first`,n.monitors.id)).filter(({m:t})=>(0,U.B)(t.lastCheckedAt,e,o));if(!u.length)return 0;let d=await (0,C.P)(u,6,({m:e})=>{let t=(0,U.P)(e.timeoutMs,s,Date.now());return null===t?Promise.resolve(null):(0,C.b)(e.url,{expectedStatus:e.expectedStatus,timeoutMs:t,body:(0,L.C)(e)})}),c=u.flatMap((e,t)=>d[t]?[{...e,r:d[t]}]:[]);if(c.length<u.length&&i.push(`checks: ${u.length-c.length} monitors skipped, time budget used`),!c.length)return 0;let f=[];for(let t of c)await (0,Y.f)(t.m,t.r,e)&&f.push(t);return f.length?(await (0,r.f)().insert(n.checks).values(f.map(({m:t,app:a,r})=>({monitorId:t.id,at:e,ok:r.ok,statusCode:r.statusCode,latencyMs:r.latencyMs,error:r.error,inMaintenance:null!==(0,y.x)(l,{monitorId:t.id,appId:a.id},e)}))),await et(f.map(({m:t,app:a,r})=>(0,J.F)({resourceId:a.id,path:(0,I.K)(t.url),prev:t.state,next:(0,J.G)(t.failStreak,r).state,code:r.statusCode,error:r.error,at:e}))),f.length):0}let er=["checks","heartbeats"];async function en(e,t,a=d.f){if(!er.some(t=>e.includes(t)))return[];try{return await a()}catch(e){return t.push(`maintenance: ${(0,K.f)(e)}`),[]}}async function es(e){let[a]=await (0,r.f)().select().from(n.settings).where((0,t.u)(n.settings.key,G)).limit(1),s=a?.value?.until;return!!s&&e.getTime()<new Date(s).getTime()}async function ei(e,t){if("transient"!==e.kind||!e.retryAfterS)return!1;let a={until:new Date(t.getTime()+1e3*Math.min(e.retryAfterS,3600)).toISOString()};return await (0,r.f)().insert(n.settings).values({key:G,value:a}).onConflictDoUpdate({target:n.settings.key,set:{value:a,updatedAt:t}}),!0}let eo=e=>a.B`coalesce(${n.deployments.externalId} = ${e}::text, false)`;async function el(e,i,o){if(await es(e))return;let l=(0,b.f)().OPS_ENCRYPTION_KEY;for(let u of(await (0,r.f)().select().from(n.accounts).where((0,t.b)((0,t.u)(n.accounts.provider,"vercel"),(0,t.u)(n.accounts.status,"ok"))))){let d=(0,f.V)({ciphertext:u.credentialCiphertext,iv:u.credentialIv},l);if((0,s.A)(d)||!d){o.push(`vercel/${u.label}: credential can't be read`);continue}let c=await (0,r.f)().select().from(n.resources).where((0,t.b)((0,t.u)(n.resources.accountId,u.id),(0,t.u)(n.resources.kind,"app"),(0,t.u)(n.resources.monitored,!0),(0,t.M)(n.resources.goneAt)));if(!c.length)continue;let p=new Map(c.map(e=>[e.externalId,e])),w=await (0,k.X)(d);if(!w.ok){let a=(0,s.E)({ok:!1,kind:w.kind,error:w.error});if(a&&await (0,r.f)().update(n.accounts).set({...a,updatedAt:e}).where((0,t.u)(n.accounts.id,u.id)),o.push(`vercel/${u.label}: ${w.error}`),await ei(w,e))return;continue}let g=new Set(c.map(e=>String(e.meta.teamId)));for(let s of w.data.filter(e=>g.has(e.id))){if(Date.now()>i)return void o.push("vercel: skipped remaining teams, time budget used");let[l,u]=await Promise.all([(0,k.W)(d,s),(0,k.K)(d,s,{since:e.getTime()-6048e5,limit:100})]);if(!l.ok||!u.ok){let t=l.ok?u:l;if(o.push(`vercel/${s.name}: ${t.error}`),await ei(t,e))return;continue}let f=new Map(l.data.map(e=>[e.id,e.currentDeploymentId])),w=u.data.filter(e=>p.has(e.projectId)),g=new Map((w.length?await (0,r.f)().select({externalId:n.deployments.externalId,state:n.deployments.state,target:n.deployments.target,branch:n.deployments.branch,commitSha:n.deployments.commitSha,commitMessage:n.deployments.commitMessage,source:n.deployments.source,url:n.deployments.url,buildingAt:n.deployments.buildingAt,readyAt:n.deployments.readyAt}).from(n.deployments).where((0,t.y)(n.deployments.externalId,w.map(e=>e.id))):[]).map(e=>[e.externalId,e])),m=[];for(let t of w){let a=p.get(t.projectId),s=g.get(t.id),i={state:t.state,target:t.target,branch:t.branch,commitSha:t.sha,commitMessage:t.message,source:t.source,url:t.url,buildingAt:t.buildingAt,readyAt:t.readyAt};if((0,I.E)(s,i)){let s={resourceId:a.id,externalId:t.id,...i,createdAtProvider:t.createdAt,updatedAt:e};await (0,r.f)().insert(n.deployments).values(s).onConflictDoUpdate({target:n.deployments.externalId,set:s})}m.push((0,J.L)(s?.state,t,a.id,e))}await et(m);let h=c.filter(e=>String(e.meta.teamId)===s.id),b=await (0,r.f)().select({resourceId:n.deployments.resourceId,id:n.deployments.externalId,createdAt:n.deployments.createdAtProvider}).from(n.deployments).where((0,t.b)((0,t.y)(n.deployments.resourceId,h.map(e=>e.id)),(0,t.u)(n.deployments.target,"production"),(0,t.u)(n.deployments.state,"ready"))),[y]=await (0,r.f)().select().from(n.settings).where((0,t.u)(n.settings.key,Q)).limit(1),v=[],A=()=>v.length?(0,r.f)().insert(n.settings).values({key:Q,value:(0,I.Y)(y?.value,v,e)}).onConflictDoUpdate({target:n.settings.key,set:{value:(0,I.Y)(y?.value,v,e),updatedAt:e}}):Promise.resolve();for(let t of(0,I.Q)(h,f,b,(0,I.S)(y?.value,e))){if(Date.now()>i)break;let a=await (0,k.S)(d,s,t.deploymentId);if(!a.ok){if(o.push(`vercel/${s.name}: current deployment: ${a.error}`),await ei(a,e))return void await A();v.push(t.deploymentId);continue}let l=a.data,u={resourceId:t.appId,externalId:l.id,state:l.state,target:l.target,branch:l.branch,commitSha:l.sha,commitMessage:l.message,source:l.source,url:l.url,buildingAt:l.buildingAt,readyAt:l.readyAt,createdAtProvider:l.createdAt,updatedAt:e};await (0,r.f)().insert(n.deployments).values(u).onConflictDoUpdate({target:n.deployments.externalId,set:u}),"ready"===l.state&&"production"===l.target?b.push({resourceId:t.appId,id:l.id,createdAt:l.createdAt}):v.push(t.deploymentId)}for(let s of(await A(),h)){let{currentId:i,previousId:o}=(0,I.a)(b.filter(e=>e.resourceId===s.id),f.get(s.externalId)??null);await (0,r.f)().update(n.deployments).set({isCurrent:eo(i),isPreviousProduction:eo(o),updatedAt:e}).where((0,t.b)((0,t.u)(n.deployments.resourceId,s.id),(0,t.F)(a.B`${n.deployments.isCurrent} is distinct from ${eo(i)}`,a.B`${n.deployments.isPreviousProduction} is distinct from ${eo(o)}`)))}}}}async function eu(e){let s=await (0,r.f)().select().from(n.resources).where((0,t.b)((0,t.u)(n.resources.kind,"app"),(0,t.u)(n.resources.monitored,!0),(0,t.M)(n.resources.goneAt)));if(!s.length)return;let i=await (0,r.f)().select().from(n.monitors).where((0,t.b)((0,t.y)(n.monitors.resourceId,s.map(e=>e.id)),(0,t.u)(n.monitors.paused,!1),(0,t.u)(n.monitors.ownerPaused,!1))),o=new Set((await (0,r.f)().select({r:n.deployments.resourceId}).from(n.deployments).where((0,t.b)((0,t.y)(n.deployments.resourceId,s.map(e=>e.id)),(0,t.u)(n.deployments.target,"production"),(0,t.u)(n.deployments.state,"building"),(0,t.B)(n.deployments.createdAtProvider,new Date(e.getTime()-36e5))))).map(e=>e.r)),l=await (0,v.q)(s.map(e=>e.id)),u=new Map((await (0,r.f)().select().from(n.snapshots).where((0,t.y)(n.snapshots.resourceId,s.map(e=>e.id)))).map(e=>[e.resourceId,e]));for(let t of s){let s=i.filter(e=>e.resourceId===t.id),d=(0,J.V)({monitors:s.map(e=>e.state),building:o.has(t.id),dbPaused:l.has(t.id)}),c=s.find(e=>"err"===e.state)??s.find(e=>"warn"===e.state),f={code:c?.lastStatus??null,latencyMs:s.find(e=>"heartbeat"!==e.kind)?.lastLatencyMs??null,dbPaused:l.has(t.id)},p=u.get(t.id);await (0,r.f)().insert(n.snapshots).values({resourceId:t.id,state:d,data:f,collectedAt:e,stateSince:e}).onConflictDoUpdate({target:n.snapshots.resourceId,set:{state:d,data:a.B`${n.snapshots.data} || ${JSON.stringify(f)}::jsonb`,collectedAt:e,...p?.state!==d?{stateSince:e}:{}}})}}async function ed(e,t={}){let a={writeLastRun:ee,refreshApps:eu,refreshNetwork:q.x,invalidate:i.f,...t};try{await a.writeLastRun({...e.lastRun,...Object.fromEntries(e.done.map(t=>[t,e.started.toISOString()]))});try{await a.refreshApps(new Date)}catch(t){e.errors.push(`app-snapshots: ${(0,K.f)(t)}`)}if(e.done.some(e=>q.p.includes(e)))try{await a.refreshNetwork(new Date)}catch(t){e.errors.push(`network-states: ${(0,K.f)(t)}`)}}finally{a.invalidate((0,o.o)(e.tried??e.done))}}async function ec(e,t,a,r={evaluate:l.$,deliver:w.q,digest:w.J}){let n=[];if(e.includes("alerts"))if(Date.now()>t)a.push("alerts: skipped, time budget used");else{let e=!0;try{await r.evaluate(new Date),console.info("collector alerts evaluated")}catch(t){e=!1,a.push(`alerts: ${(0,K.f)(t)}`)}try{await r.deliver(new Date,t),console.info("collector notifications delivered")}catch(t){e=!1,a.push(`notify: ${(0,K.f)(t)}`)}e&&n.push("alerts")}if(e.includes("digest")&&(0,U.z)("digest",t,Date.now()))try{await r.digest(new Date),console.info("collector digest done"),n.push("digest")}catch(e){a.push(`digest: ${(0,K.f)(e)}`)}return n}async function ef(e,t,a,r){let n=[],s=[];for(let i of e){if(Date.now()>t){a.push(`${i}: skipped, time budget used`);continue}if((0,U.z)(i,t,Date.now())){s.push(i);try{await r(i),n.push(i)}catch(e){a.push(`${i}: ${(0,K.f)(e)}`)}}}return{done:n,tried:s}}async function ep(e){let a,s=new Date,i=await V(s);if(!i)return{skipped:!0,ok:!0,tasks:[],checks:0,durationMs:0,errors:[]};try{[a]=await (0,r.f)().insert(n.collectorRuns).values({startedAt:s,trigger:"builtin"===e?"manual":e}).returning({id:n.collectorRuns.id})}catch(e){throw await F(i).catch(()=>void 0),e}let o=[],l=[],d=0,c=s.getTime()+U.p,f=e=>console.info(`collector ${e} +${Date.now()-s.getTime()}ms`);try{f("start");let t=await H(),a="cron_job_org"!==e&&"builtin"!==e,r=await (0,g.I)(),n=(0,U.S)(t,s,a,r),i=n.filter(e=>U.u.includes(e)),w=i.includes("alerts")?c-U.X:c,b=await en(n,o);f(`due ${n.join(",")}`);let{done:k,tried:I}=await ef(n.filter(e=>!U.u.includes(e)),w,o,async e=>{if(f(`task ${e}`),"heartbeats"===e){let e=new Date;d+=await (0,u.r)(e,(t,a)=>null!==(0,y.x)(b,{monitorId:t,appId:a},e),a)}"checks"===e&&(d+=await ea(new Date,w,o,a,b)),"vercel"===e&&await el(new Date,w,o);let t=Z[e];t&&await t({now:new Date,deadline:w,errors:o,protectOnly:(0,U.$)(e,r)}),"cloudflare"===e&&await (0,q.h)(new Date,w,o),"domains"===e&&await (0,q.H)(new Date,w,o),"tls"===e&&await (0,q.V)(new Date,w,o),"rdap"===e&&await (0,q.W)(new Date,w,o),"eol"===e&&await (0,q.i)(new Date,w,o),"status"===e&&await (0,h.i)(new Date),"logs"===e&&await (0,p._)(new Date,w,o),"pageviews"===e&&await (0,m.f)(new Date,w,o)});l.push(...k),f("main done"),await ed({lastRun:t,done:l,tried:I,started:s,errors:o}),f("settled");let v=await ec(i,c,o);f("post done"),v.length&&await ee({...t,...Object.fromEntries([...l,...v].map(e=>[e,s.toISOString()]))}),l.push(...v)}catch(e){o.push(`run: ${(0,K.f)(e)}`)}finally{let e=Date.now()-s.getTime();await (0,r.f)().update(n.collectorRuns).set({finishedAt:new Date,ok:0===o.length,errorSummary:o.join("\n").slice(0,2e3)||null,durationMs:e,tasks:l,checks:d}).where((0,t.u)(n.collectorRuns.id,a.id)).catch(()=>void 0),await F(i).catch(()=>void 0)}return{skipped:!1,ok:0===o.length,tasks:l,checks:d,durationMs:Date.now()-s.getTime(),errors:o}}e.s(["f",0,ep],956846)},948736,e=>{var t=e.i(442473),a=e.i(381725),r=e.i(767512),n=e.i(971724),s=e.i(206033),i=e.i(455744),o=e.i(469755),l=e.i(105954),u=e.i(857897);let d=/not enabled/i,c=(e,t,a={})=>({ok:!1,kind:e,error:t,...a}),f="Vercel Web Analytics answered in a format the console doesn't recognise.",p=n.z.object({data:n.z.object({pageviews:s.z.number().finite().nonnegative(),visitors:s.z.number().finite().nonnegative()})}),w=n.z.object({data:i.z.array(o.z.unknown())}),g=n.z.object({timestamp:l.z.string().transform((e,t)=>{let a=Date.parse(e);return Number.isNaN(a)?(t.addIssue({code:"custom",message:"bad timestamp"}),u.z.NEVER):a}),pageviews:s.z.number().finite().nonnegative().nullish().catch(null)});async function m(e,a,r,n){let s=n.since.toISOString(),i=n.until.toISOString(),o=n.fetch??fetch,l=new AbortController,u=setTimeout(()=>l.abort(new DOMException("window","TimeoutError")),n.timeoutMs??8e3),m=n.signal?AbortSignal.any([l.signal,n.signal]):l.signal,h=(0,t.X)(m);async function b(t,u){let p=new URLSearchParams({projectId:r,teamId:a,...u,since:s,until:i});try{let a=await Promise.race([o(`https://api.vercel.com/v1/query/web-analytics/visits/${t}?${p}`,{headers:{Authorization:`Bearer ${e}`,Accept:"application/json"},signal:m,cache:"no-store"}),h]),r=null,n=!1;if(401===a.status||403===a.status)r=c("auth",`Vercel rejected this credential (${a.status}).`,{status:a.status});else if(429===a.status){let e=Number(a.headers.get("Retry-After"));r=c("transient","Vercel says there were too many requests.",{status:429,retryAfterS:Number.isFinite(e)&&e>0?e:60})}else if(400===a.status){let e=await Promise.race([a.text(),h]).catch(()=>"");d.test(e)?n=!0:r=c("transient","Vercel Web Analytics rejected the request (400).",{status:400})}else a.ok||(r=c("transient",`Vercel Web Analytics returned an error (${a.status}).`,{status:a.status}));if(n)return{kind:"off"};if(r)return await a.body?.cancel().catch(()=>void 0),{kind:"fail",fail:r};try{return{kind:"body",body:await Promise.race([a.json(),h])}}catch(e){if(m.aborted)throw e;return{kind:"fail",fail:c("format",f)}}}catch{return{kind:"fail",fail:m.aborted?l.signal.aborted&&!n.signal?.aborted?c("transient","Vercel Web Analytics didn't answer in time."):c("transient","Reading Vercel Web Analytics was cancelled."):c("transient","Couldn't reach Vercel Web Analytics.")}}}try{let[e,t]=await Promise.all([b("count",{}),b("aggregate",{by:"hour"})]);if("off"===e.kind||"off"===t.kind)return{ok:!0,enabled:!1};let a=[e,t].flatMap(e=>"fail"===e.kind?[e.fail]:[]),r=a.find(e=>"auth"===e.kind);if(r)return r;let n="body"===t.kind?w.safeParse(t.body):null,s="fail"===t.kind?t.fail:n?.success?null:c("format",f),i=a.find(e=>"transient"===e.kind);if(i)return i;if(s)return s;if(!n?.success)return c("format",f);let o="body"===e.kind?p.safeParse(e.body):null,l=n.data.data.flatMap(e=>{let t=g.safeParse(e);return t.success?[t.data]:[]});if(l.length>0&&l.every(e=>null==e.pageviews))return c("format",f);let u=new Map;for(let e of l){let t=36e5*Math.floor(e.timestamp/36e5);u.set(t,(u.get(t)??0)+(e.pageviews??0))}let d=[...u].sort((e,t)=>e[0]-t[0]).slice(-24).map(([e,t])=>({at:new Date(e),views:t}));if(o?.success)return{ok:!0,enabled:!0,total:o.data.data.pageviews,visitors:o.data.data.visitors,hourly:d};return{ok:!0,enabled:!0,total:d.reduce((e,t)=>e+t.views,0),visitors:null,hourly:d}}finally{clearTimeout(u),l.abort()}}var h=e.i(943816);async function b(e,n,s){let i=await (0,a.g)(null);if(!i.length)return;let o=new Date(36e5*Math.floor(e.getTime()/36e5)-828e5);await (0,t.P)(i,3,async t=>{if(Date.now()+8500>n)return;let a=await m(t.token,t.teamId,t.projectId,{since:o,until:e});if(!a.ok)return void s.push(`pageviews/${t.appName}: ${a.error}`);try{await (0,r.r)(t.appId,{pageviews:(0,h.Z)(a,e)},e)}catch{s.push(`pageviews/${t.appName}: couldn't save the page views`)}})}e.s(["f",0,b],948736)}]})();
|
|
8
8
|
|
|
9
9
|
//# sourceMappingURL=src_lib_15wd7ab4u5nrn._.js.map
|