watchbell 1.6.1 → 1.7.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/server/.next/BUILD_ID +1 -1
- package/server/.next/app-path-routes-manifest.json +3 -0
- package/server/.next/build-manifest.json +14 -3
- package/server/.next/prerender-manifest.json +3 -3
- package/server/.next/required-server-files.json +1 -1
- package/server/.next/routes-manifest.json +20 -0
- package/server/.next/server/app/(console)/(private)/ai/agents/page/server-reference-manifest.json +13 -13
- package/server/.next/server/app/(console)/(private)/ai/agents/page.js +71 -69
- package/server/.next/server/app/(console)/(private)/ai/agents/page.js.nft.json +1 -1
- package/server/.next/server/app/(console)/(private)/ai/agents/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/(console)/(private)/ai/ask/page/server-reference-manifest.json +12 -12
- package/server/.next/server/app/(console)/(private)/ai/ask/page.js +71 -69
- package/server/.next/server/app/(console)/(private)/ai/ask/page.js.nft.json +1 -1
- package/server/.next/server/app/(console)/(private)/ai/ask/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/(console)/(private)/ai/connect/page/server-reference-manifest.json +11 -11
- package/server/.next/server/app/(console)/(private)/ai/connect/page.js +71 -69
- package/server/.next/server/app/(console)/(private)/ai/connect/page.js.nft.json +1 -1
- package/server/.next/server/app/(console)/(private)/ai/connect/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/(console)/(private)/ai/keys/page/server-reference-manifest.json +14 -14
- package/server/.next/server/app/(console)/(private)/ai/keys/page.js +71 -69
- package/server/.next/server/app/(console)/(private)/ai/keys/page.js.nft.json +1 -1
- package/server/.next/server/app/(console)/(private)/ai/keys/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/(console)/(private)/ai/logs/page/server-reference-manifest.json +12 -12
- package/server/.next/server/app/(console)/(private)/ai/logs/page.js +71 -69
- package/server/.next/server/app/(console)/(private)/ai/logs/page.js.nft.json +1 -1
- package/server/.next/server/app/(console)/(private)/ai/logs/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/(console)/(private)/ai/models/page/server-reference-manifest.json +21 -21
- package/server/.next/server/app/(console)/(private)/ai/models/page.js +71 -69
- package/server/.next/server/app/(console)/(private)/ai/models/page.js.nft.json +1 -1
- package/server/.next/server/app/(console)/(private)/ai/models/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/(console)/(private)/ai/page/server-reference-manifest.json +11 -11
- package/server/.next/server/app/(console)/(private)/ai/page.js +71 -69
- package/server/.next/server/app/(console)/(private)/ai/page.js.nft.json +1 -1
- package/server/.next/server/app/(console)/(private)/ai/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/(console)/(private)/ai/playground/page/server-reference-manifest.json +14 -14
- package/server/.next/server/app/(console)/(private)/ai/playground/page.js +71 -69
- package/server/.next/server/app/(console)/(private)/ai/playground/page.js.nft.json +1 -1
- package/server/.next/server/app/(console)/(private)/ai/playground/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/(console)/(private)/ai/providers/page/server-reference-manifest.json +17 -17
- package/server/.next/server/app/(console)/(private)/ai/providers/page.js +71 -69
- package/server/.next/server/app/(console)/(private)/ai/providers/page.js.nft.json +1 -1
- package/server/.next/server/app/(console)/(private)/ai/providers/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/(console)/(private)/ai/quota/page/server-reference-manifest.json +12 -12
- package/server/.next/server/app/(console)/(private)/ai/quota/page.js +71 -69
- package/server/.next/server/app/(console)/(private)/ai/quota/page.js.nft.json +1 -1
- package/server/.next/server/app/(console)/(private)/ai/quota/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/(console)/(private)/ai/usage/page/server-reference-manifest.json +12 -12
- package/server/.next/server/app/(console)/(private)/ai/usage/page.js +71 -69
- package/server/.next/server/app/(console)/(private)/ai/usage/page.js.nft.json +1 -1
- package/server/.next/server/app/(console)/(private)/ai/usage/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/(console)/(private)/api-docs/[[...op]]/page/server-reference-manifest.json +11 -11
- package/server/.next/server/app/(console)/(private)/api-docs/[[...op]]/page.js +71 -69
- package/server/.next/server/app/(console)/(private)/api-docs/[[...op]]/page.js.nft.json +1 -1
- package/server/.next/server/app/(console)/(private)/api-docs/[[...op]]/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/(console)/(private)/auto-actions/page/server-reference-manifest.json +12 -12
- package/server/.next/server/app/(console)/(private)/auto-actions/page.js +71 -69
- package/server/.next/server/app/(console)/(private)/auto-actions/page.js.nft.json +1 -1
- package/server/.next/server/app/(console)/(private)/auto-actions/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/(console)/alerts/page/server-reference-manifest.json +27 -27
- package/server/.next/server/app/(console)/alerts/page.js +71 -69
- package/server/.next/server/app/(console)/alerts/page.js.nft.json +1 -1
- package/server/.next/server/app/(console)/alerts/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/(console)/apps/[id]/page/server-reference-manifest.json +34 -34
- package/server/.next/server/app/(console)/apps/[id]/page.js +71 -69
- package/server/.next/server/app/(console)/apps/[id]/page.js.nft.json +1 -1
- package/server/.next/server/app/(console)/apps/[id]/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/(console)/apps/page/server-reference-manifest.json +14 -14
- package/server/.next/server/app/(console)/apps/page.js +71 -69
- package/server/.next/server/app/(console)/apps/page.js.nft.json +1 -1
- package/server/.next/server/app/(console)/apps/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/(console)/backups/page/server-reference-manifest.json +14 -14
- package/server/.next/server/app/(console)/backups/page.js +71 -69
- package/server/.next/server/app/(console)/backups/page.js.nft.json +1 -1
- package/server/.next/server/app/(console)/backups/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/(console)/catalog/page/server-reference-manifest.json +11 -11
- package/server/.next/server/app/(console)/catalog/page.js +71 -69
- package/server/.next/server/app/(console)/catalog/page.js.nft.json +1 -1
- package/server/.next/server/app/(console)/catalog/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/(console)/connections/page/server-reference-manifest.json +22 -22
- package/server/.next/server/app/(console)/connections/page.js +71 -69
- package/server/.next/server/app/(console)/connections/page.js.nft.json +1 -1
- package/server/.next/server/app/(console)/connections/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/(console)/containers/page/server-reference-manifest.json +14 -14
- package/server/.next/server/app/(console)/containers/page.js +71 -69
- package/server/.next/server/app/(console)/containers/page.js.nft.json +1 -1
- package/server/.next/server/app/(console)/containers/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/(console)/d1/page/server-reference-manifest.json +11 -11
- package/server/.next/server/app/(console)/d1/page.js +71 -69
- package/server/.next/server/app/(console)/d1/page.js.nft.json +1 -1
- package/server/.next/server/app/(console)/d1/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/(console)/deploy/page/server-reference-manifest.json +11 -11
- package/server/.next/server/app/(console)/deploy/page.js +71 -69
- package/server/.next/server/app/(console)/deploy/page.js.nft.json +1 -1
- package/server/.next/server/app/(console)/deploy/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/(console)/deployments/page/server-reference-manifest.json +19 -19
- package/server/.next/server/app/(console)/deployments/page.js +71 -69
- package/server/.next/server/app/(console)/deployments/page.js.nft.json +1 -1
- package/server/.next/server/app/(console)/deployments/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/(console)/dns/page/server-reference-manifest.json +18 -18
- package/server/.next/server/app/(console)/dns/page.js +71 -69
- package/server/.next/server/app/(console)/dns/page.js.nft.json +1 -1
- package/server/.next/server/app/(console)/dns/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/(console)/domains/page/server-reference-manifest.json +13 -13
- package/server/.next/server/app/(console)/domains/page.js +71 -69
- package/server/.next/server/app/(console)/domains/page.js.nft.json +1 -1
- package/server/.next/server/app/(console)/domains/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/(console)/events/page/server-reference-manifest.json +11 -11
- package/server/.next/server/app/(console)/events/page.js +71 -69
- package/server/.next/server/app/(console)/events/page.js.nft.json +1 -1
- package/server/.next/server/app/(console)/events/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/(console)/firebase/page/server-reference-manifest.json +18 -18
- package/server/.next/server/app/(console)/firebase/page.js +71 -69
- package/server/.next/server/app/(console)/firebase/page.js.nft.json +1 -1
- package/server/.next/server/app/(console)/firebase/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/(console)/logs/page/server-reference-manifest.json +12 -12
- package/server/.next/server/app/(console)/logs/page.js +71 -69
- package/server/.next/server/app/(console)/logs/page.js.nft.json +1 -1
- package/server/.next/server/app/(console)/logs/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/(console)/manage/sections/page/server-reference-manifest.json +12 -12
- package/server/.next/server/app/(console)/manage/sections/page.js +71 -69
- package/server/.next/server/app/(console)/manage/sections/page.js.nft.json +1 -1
- package/server/.next/server/app/(console)/manage/sections/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/(console)/neon/page/server-reference-manifest.json +22 -22
- package/server/.next/server/app/(console)/neon/page.js +71 -69
- package/server/.next/server/app/(console)/neon/page.js.nft.json +1 -1
- package/server/.next/server/app/(console)/neon/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/(console)/os/page/server-reference-manifest.json +12 -12
- package/server/.next/server/app/(console)/os/page.js +71 -69
- package/server/.next/server/app/(console)/os/page.js.nft.json +1 -1
- package/server/.next/server/app/(console)/os/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/(console)/overview/page/server-reference-manifest.json +21 -21
- package/server/.next/server/app/(console)/overview/page.js +71 -69
- package/server/.next/server/app/(console)/overview/page.js.nft.json +1 -1
- package/server/.next/server/app/(console)/overview/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/(console)/reports/[id]/pdf/route/app-paths-manifest.json +3 -0
- package/server/.next/server/app/(console)/reports/[id]/pdf/route/build-manifest.json +12 -0
- package/server/.next/server/app/(console)/reports/[id]/pdf/route/server-reference-manifest.json +4 -0
- package/server/.next/server/app/(console)/reports/[id]/pdf/route.js +26 -0
- package/server/.next/server/app/(console)/reports/[id]/pdf/route.js.nft.json +1 -0
- package/server/.next/server/app/(console)/reports/[id]/pdf/route_client-reference-manifest.js +3 -0
- package/server/.next/server/app/(console)/reports/page/app-paths-manifest.json +3 -0
- package/server/.next/server/app/(console)/reports/page/build-manifest.json +22 -0
- package/server/.next/server/app/(console)/reports/page/next-font-manifest.json +11 -0
- package/server/.next/server/app/(console)/reports/page/react-loadable-manifest.json +1 -0
- package/server/.next/server/app/(console)/reports/page/server-reference-manifest.json +175 -0
- package/server/.next/server/app/(console)/reports/page.js +122 -0
- package/server/.next/server/app/(console)/reports/page.js.nft.json +1 -0
- package/server/.next/server/app/(console)/reports/page_client-reference-manifest.js +3 -0
- package/server/.next/server/app/(console)/repos/[id]/page/server-reference-manifest.json +12 -12
- package/server/.next/server/app/(console)/repos/[id]/page.js +71 -69
- package/server/.next/server/app/(console)/repos/[id]/page.js.nft.json +1 -1
- package/server/.next/server/app/(console)/repos/[id]/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/(console)/repos/page/server-reference-manifest.json +11 -11
- package/server/.next/server/app/(console)/repos/page.js +71 -69
- package/server/.next/server/app/(console)/repos/page.js.nft.json +1 -1
- package/server/.next/server/app/(console)/repos/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/(console)/settings/page/server-reference-manifest.json +62 -42
- package/server/.next/server/app/(console)/settings/page.js +74 -72
- package/server/.next/server/app/(console)/settings/page.js.nft.json +1 -1
- package/server/.next/server/app/(console)/settings/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/(console)/sql/page/server-reference-manifest.json +18 -18
- package/server/.next/server/app/(console)/sql/page.js +71 -69
- package/server/.next/server/app/(console)/sql/page.js.nft.json +1 -1
- package/server/.next/server/app/(console)/sql/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/(console)/status/page/server-reference-manifest.json +11 -11
- package/server/.next/server/app/(console)/status/page.js +71 -69
- package/server/.next/server/app/(console)/status/page.js.nft.json +1 -1
- package/server/.next/server/app/(console)/status/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/(console)/supabase/page/server-reference-manifest.json +32 -32
- package/server/.next/server/app/(console)/supabase/page.js +71 -69
- package/server/.next/server/app/(console)/supabase/page.js.nft.json +1 -1
- package/server/.next/server/app/(console)/supabase/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/(console)/topology/page/server-reference-manifest.json +11 -11
- package/server/.next/server/app/(console)/topology/page.js +71 -69
- package/server/.next/server/app/(console)/topology/page.js.nft.json +1 -1
- package/server/.next/server/app/(console)/topology/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/(console)/turso/page/server-reference-manifest.json +11 -11
- package/server/.next/server/app/(console)/turso/page.js +71 -69
- package/server/.next/server/app/(console)/turso/page.js.nft.json +1 -1
- package/server/.next/server/app/(console)/turso/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/(console)/upstash/page/server-reference-manifest.json +11 -11
- package/server/.next/server/app/(console)/upstash/page.js +71 -69
- package/server/.next/server/app/(console)/upstash/page.js.nft.json +1 -1
- package/server/.next/server/app/(console)/upstash/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/(console)/uptime/page/server-reference-manifest.json +25 -25
- package/server/.next/server/app/(console)/uptime/page.js +71 -69
- package/server/.next/server/app/(console)/uptime/page.js.nft.json +1 -1
- package/server/.next/server/app/(console)/uptime/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/(console)/welcome/page/server-reference-manifest.json +16 -16
- package/server/.next/server/app/(console)/welcome/page.js +71 -69
- package/server/.next/server/app/(console)/welcome/page.js.nft.json +1 -1
- package/server/.next/server/app/(console)/welcome/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/_global-error/page/server-reference-manifest.json +1 -1
- package/server/.next/server/app/_global-error/page.js +1 -1
- package/server/.next/server/app/_global-error/page.js.nft.json +1 -1
- package/server/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/_global-error.html +1 -1
- package/server/.next/server/app/_global-error.rsc +3 -3
- package/server/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +2 -2
- package/server/.next/server/app/_global-error.segments/_full.segment.rsc +3 -3
- package/server/.next/server/app/_global-error.segments/_tree.segment.rsc +2 -2
- package/server/.next/server/app/_not-found/page/server-reference-manifest.json +1 -1
- package/server/.next/server/app/_not-found/page.js.nft.json +1 -1
- package/server/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/_not-found.html +1 -1
- package/server/.next/server/app/_not-found.rsc +4 -4
- package/server/.next/server/app/_not-found.segments/_full.segment.rsc +4 -4
- package/server/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +3 -3
- package/server/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
- package/server/.next/server/app/account/password/page/server-reference-manifest.json +2 -2
- package/server/.next/server/app/account/password/page.js.nft.json +1 -1
- package/server/.next/server/app/account/password/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/api/collect/route/server-reference-manifest.json +8 -8
- package/server/.next/server/app/api/collect/route.js +91 -85
- package/server/.next/server/app/api/collect/route.js.nft.json +1 -1
- package/server/.next/server/app/api/daily/route/server-reference-manifest.json +8 -8
- package/server/.next/server/app/api/daily/route.js +92 -86
- 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 +8 -7
- package/server/.next/server/app/api/ping/[...parts]/route.js.nft.json +1 -1
- package/server/.next/server/app/api/status/route.js +1 -1
- package/server/.next/server/app/api/status/route.js.nft.json +1 -1
- package/server/.next/server/app/api/telegram/webhook/route/server-reference-manifest.json +8 -8
- package/server/.next/server/app/api/telegram/webhook/route.js +84 -78
- 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 +26 -22
- package/server/.next/server/app/api/v1/advice/route.js.nft.json +1 -1
- package/server/.next/server/app/api/v1/ai/chat/completions/route.js +1 -1
- package/server/.next/server/app/api/v1/ai/chat/completions/route.js.nft.json +1 -1
- package/server/.next/server/app/api/v1/ai/models/route.js +1 -1
- package/server/.next/server/app/api/v1/ai/models/route.js.nft.json +1 -1
- package/server/.next/server/app/api/v1/ai/questions/[id]/route.js +1 -1
- package/server/.next/server/app/api/v1/ai/questions/[id]/route.js.nft.json +1 -1
- package/server/.next/server/app/api/v1/ai/questions/route.js +30 -26
- package/server/.next/server/app/api/v1/ai/questions/route.js.nft.json +1 -1
- package/server/.next/server/app/api/v1/mcp/route.js +28 -24
- package/server/.next/server/app/api/v1/mcp/route.js.nft.json +1 -1
- package/server/.next/server/app/api/v1/me/route.js +1 -1
- package/server/.next/server/app/api/v1/me/route.js.nft.json +1 -1
- package/server/.next/server/app/api/v1/openapi.json/route.js +1 -1
- package/server/.next/server/app/api/v1/openapi.json/route.js.nft.json +1 -1
- package/server/.next/server/app/api/v1/status/apps/[app]/route.js +29 -25
- 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 +29 -25
- package/server/.next/server/app/api/v1/status/route.js.nft.json +1 -1
- package/server/.next/server/app/api/watchdog/route.js +27 -21
- package/server/.next/server/app/api/watchdog/route.js.nft.json +1 -1
- package/server/.next/server/app/auth/confirm/route.js +1 -1
- package/server/.next/server/app/auth/confirm/route.js.nft.json +1 -1
- package/server/.next/server/app/auth/google/callback/route.js +16 -15
- package/server/.next/server/app/auth/google/callback/route.js.nft.json +1 -1
- package/server/.next/server/app/auth/google/create/callback/route.js +1 -1
- package/server/.next/server/app/auth/google/create/callback/route.js.nft.json +1 -1
- package/server/.next/server/app/auth/not-member/route.js +1 -1
- package/server/.next/server/app/auth/not-member/route.js.nft.json +1 -1
- package/server/.next/server/app/auth/session-ended/route.js +1 -1
- package/server/.next/server/app/auth/session-ended/route.js.nft.json +1 -1
- package/server/.next/server/app/brand-icon/route/app-paths-manifest.json +3 -0
- package/server/.next/server/app/brand-icon/route/build-manifest.json +12 -0
- package/server/.next/server/app/brand-icon/route/server-reference-manifest.json +4 -0
- package/server/.next/server/app/brand-icon/route.js +15 -0
- package/server/.next/server/app/brand-icon/route.js.nft.json +1 -0
- package/server/.next/server/app/brand-icon/route_client-reference-manifest.js +3 -0
- package/server/.next/server/app/icon.svg/route.js.nft.json +1 -1
- package/server/.next/server/app/invite/page/server-reference-manifest.json +2 -2
- package/server/.next/server/app/invite/page.js.nft.json +1 -1
- package/server/.next/server/app/invite/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/mfa/page/server-reference-manifest.json +2 -2
- package/server/.next/server/app/mfa/page.js +34 -31
- package/server/.next/server/app/mfa/page.js.nft.json +1 -1
- package/server/.next/server/app/mfa/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/mfa/setup/page/server-reference-manifest.json +3 -3
- package/server/.next/server/app/mfa/setup/page.js +34 -31
- package/server/.next/server/app/mfa/setup/page.js.nft.json +1 -1
- package/server/.next/server/app/mfa/setup/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/page/server-reference-manifest.json +1 -1
- package/server/.next/server/app/page.js.nft.json +1 -1
- package/server/.next/server/app/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/s/[slug]/badge/[file]/route.js +10 -8
- package/server/.next/server/app/s/[slug]/badge/[file]/route.js.nft.json +1 -1
- package/server/.next/server/app/s/[slug]/page/server-reference-manifest.json +1 -1
- package/server/.next/server/app/s/[slug]/page.js +10 -10
- package/server/.next/server/app/s/[slug]/page.js.nft.json +1 -1
- package/server/.next/server/app/s/[slug]/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/setup/page/server-reference-manifest.json +2 -2
- package/server/.next/server/app/setup/page.js +1 -1
- package/server/.next/server/app/setup/page.js.nft.json +1 -1
- package/server/.next/server/app/setup/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app/signin/page/server-reference-manifest.json +3 -3
- package/server/.next/server/app/signin/page.js +40 -37
- package/server/.next/server/app/signin/page.js.nft.json +1 -1
- package/server/.next/server/app/signin/page_client-reference-manifest.js +1 -1
- package/server/.next/server/app-paths-manifest.json +3 -0
- package/server/.next/server/chunks/{[externals]__0n4j2emxdv20_._.js → [externals]__0ws552tlu2170._.js} +1 -1
- package/server/.next/server/chunks/{[externals]__1hwo1oo04do39._.js → [externals]__14rgrk9t-kxa1._.js} +1 -1
- package/server/.next/server/chunks/{[externals]__1k12utcf9tvqg._.js → [externals]__1pdwh-htbnox8._.js} +1 -1
- package/server/.next/server/chunks/[root-of-the-server]__0-amtx67pqi56._.js +3 -0
- package/server/.next/server/chunks/{[root-of-the-server]__1avuwg9wmyh48._.js → [root-of-the-server]__0-ytbad9hn7uc._.js} +1 -1
- package/server/.next/server/chunks/[root-of-the-server]__01dj-ln12bcmb._.js +1 -1
- package/server/.next/server/chunks/[root-of-the-server]__01nlh4ps9u-65._.js +3 -0
- package/server/.next/server/chunks/{[root-of-the-server]__09l9icaspfmoh._.js → [root-of-the-server]__01ur0kf75ampv._.js} +2 -2
- package/server/.next/server/chunks/{[root-of-the-server]__1tlivd99uri0t._.js → [root-of-the-server]__028m_6oqyqmyy._.js} +2 -2
- package/server/.next/server/chunks/[root-of-the-server]__02v25dn1cwxz6._.js +1 -1
- package/server/.next/server/chunks/{[root-of-the-server]__0vclan952l_ty._.js → [root-of-the-server]__02wzui3ksepqf._.js} +2 -2
- package/server/.next/server/chunks/[root-of-the-server]__0326wv5xmnp48._.js +3 -0
- package/server/.next/server/chunks/[root-of-the-server]__03276vwi4jgvk._.js +1 -1
- package/server/.next/server/chunks/{[root-of-the-server]__06kp2_zqpttyd._.js → [root-of-the-server]__03537tx7cun49._.js} +2 -2
- package/server/.next/server/chunks/{[root-of-the-server]__03589rgm1a3ks._.js → [root-of-the-server]__0400g-0wvq3uf._.js} +2 -2
- package/server/.next/server/chunks/{[root-of-the-server]__0at6fxe9efr-x._.js → [root-of-the-server]__04htuwoulmp21._.js} +1 -1
- package/server/.next/server/chunks/{[root-of-the-server]__06l038ifglbqy._.js → [root-of-the-server]__04ogdmf82__0g._.js} +1 -1
- package/server/.next/server/chunks/[root-of-the-server]__05qcc-0e8z1u8._.js +1 -1
- package/server/.next/server/chunks/{[root-of-the-server]__1xdi98xyay6bn._.js → [root-of-the-server]__05vm5cxqq2-pg._.js} +1 -1
- package/server/.next/server/chunks/{[root-of-the-server]__0a7moaa91ctod._.js → [root-of-the-server]__06bn4cfh-g8-d._.js} +2 -2
- package/server/.next/server/chunks/{[root-of-the-server]__0uz_r72zdnwdd._.js → [root-of-the-server]__06rlokvpk450w._.js} +2 -2
- package/server/.next/server/chunks/{[root-of-the-server]__0x5vp_8n6xvpw._.js → [root-of-the-server]__06ty1ktg427pm._.js} +2 -2
- package/server/.next/server/chunks/{[root-of-the-server]__20qirklw1sgj0._.js → [root-of-the-server]__076yrld-lo25r._.js} +2 -2
- package/server/.next/server/chunks/[root-of-the-server]__07eo--c90cju2._.js +1 -1
- package/server/.next/server/chunks/[root-of-the-server]__07u2g5ccvst94._.js +3 -0
- package/server/.next/server/chunks/{[root-of-the-server]__09yvavo991rdd._.js → [root-of-the-server]__081k4lp976vd7._.js} +2 -2
- package/server/.next/server/chunks/{[root-of-the-server]__00oxbw3nfl_kd._.js → [root-of-the-server]__08i6b8tzxads4._.js} +1 -1
- package/server/.next/server/chunks/{[root-of-the-server]__205cmd-k6g2kc._.js → [root-of-the-server]__096q5ufradttx._.js} +1 -1
- package/server/.next/server/chunks/{[root-of-the-server]__0myf9g_uv3bia._.js → [root-of-the-server]__09oipjf2ew_pn._.js} +2 -2
- package/server/.next/server/chunks/[root-of-the-server]__0_c_c1bv7sopk._.js +3 -0
- package/server/.next/server/chunks/{[root-of-the-server]__0ww7a-9fnx2rv._.js → [root-of-the-server]__0a34twsor45ml._.js} +1 -1
- package/server/.next/server/chunks/{[root-of-the-server]__09msxcjw3tlue._.js → [root-of-the-server]__0bjh2kw90a-m_._.js} +1 -1
- package/server/.next/server/chunks/[root-of-the-server]__0bxqqjjy9ckvm._.js +3 -0
- package/server/.next/server/chunks/{[root-of-the-server]__0ebkmgcs7v0c8._.js → [root-of-the-server]__0dahxh87cvyn2._.js} +2 -2
- package/server/.next/server/chunks/[root-of-the-server]__0dd4hulw1w-4i._.js +3 -0
- package/server/.next/server/chunks/{[root-of-the-server]__0uyc9w7f_r10u._.js → [root-of-the-server]__0dfkxg4ax2hqz._.js} +1 -1
- package/server/.next/server/chunks/[root-of-the-server]__0e3hcgbyb09-p._.js +3 -0
- package/server/.next/server/chunks/{[root-of-the-server]__0c_mpay_m5kbm._.js → [root-of-the-server]__0erdelc9_06nk._.js} +1 -1
- package/server/.next/server/chunks/{[root-of-the-server]__0s3b61ttgb9if._.js → [root-of-the-server]__0fk1609_5zg7g._.js} +2 -2
- package/server/.next/server/chunks/[root-of-the-server]__0fl1uspuemkzr._.js +3 -0
- package/server/.next/server/chunks/[root-of-the-server]__0gb4uz-gv3va0._.js +1 -1
- package/server/.next/server/chunks/[root-of-the-server]__0gqye-fi-f3zk._.js +1 -1
- package/server/.next/server/chunks/{[root-of-the-server]__1mbm_bvk1oat7._.js → [root-of-the-server]__0hm5-0_rh9r6m._.js} +2 -2
- package/server/.next/server/chunks/{[root-of-the-server]__10-v22hv1sxrv._.js → [root-of-the-server]__0hwm4j4o2v8nc._.js} +2 -2
- package/server/.next/server/chunks/{[root-of-the-server]__0vdm37x30hr6p._.js → [root-of-the-server]__0ieq7-dtcg06b._.js} +1 -1
- package/server/.next/server/chunks/{[root-of-the-server]__0r0zrp3s_n614._.js → [root-of-the-server]__0iicsi0n7tfa5._.js} +1 -1
- package/server/.next/server/chunks/[root-of-the-server]__0k73a-s2lcpoz._.js +3 -0
- package/server/.next/server/chunks/[root-of-the-server]__0kk-m8_ul4f4k._.js +1 -1
- package/server/.next/server/chunks/{[root-of-the-server]__1z1fgf8k8icw8._.js → [root-of-the-server]__0kzgu06ee59vd._.js} +2 -2
- package/server/.next/server/chunks/{[root-of-the-server]__0puji-hw0xtk7._.js → [root-of-the-server]__0mrbo2p5fy4ji._.js} +1 -1
- package/server/.next/server/chunks/{[root-of-the-server]__1r2ei065xk141._.js → [root-of-the-server]__0nkfi6x2c4c5p._.js} +1 -1
- package/server/.next/server/chunks/{[root-of-the-server]__0ruici82tzf0w._.js → [root-of-the-server]__0nw8jgr3bsi8b._.js} +2 -2
- package/server/.next/server/chunks/{[root-of-the-server]__10d4a34z0js-f._.js → [root-of-the-server]__0o4e39mvq8_el._.js} +1 -1
- package/server/.next/server/chunks/[root-of-the-server]__0o6q27cnw6-77._.js +1 -1
- package/server/.next/server/chunks/[root-of-the-server]__0opds07bp1fnb._.js +3 -0
- package/server/.next/server/chunks/{[root-of-the-server]__1tefe1f5835t_._.js → [root-of-the-server]__0pammm8f5qxtv._.js} +2 -2
- package/server/.next/server/chunks/{[root-of-the-server]__0ao4b2jjkcvo1._.js → [root-of-the-server]__0pfcnbr0br6li._.js} +1 -1
- package/server/.next/server/chunks/{[root-of-the-server]__04v42ls1mfjd2._.js → [root-of-the-server]__0pi9id-ywuq6g._.js} +2 -2
- package/server/.next/server/chunks/{[root-of-the-server]__0g0rd65zoitrb._.js → [root-of-the-server]__0s3zxs-_ayd-6._.js} +1 -1
- package/server/.next/server/chunks/{[root-of-the-server]__192br5y94wzhx._.js → [root-of-the-server]__0sgy49rgsxyvy._.js} +1 -1
- package/server/.next/server/chunks/{[root-of-the-server]__05b18nw2k-7-4._.js → [root-of-the-server]__0sp5xoed3-994._.js} +1 -1
- package/server/.next/server/chunks/[root-of-the-server]__0swji6flwxtbv._.js +3 -0
- package/server/.next/server/chunks/{[root-of-the-server]__0fii83nfm0bsk._.js → [root-of-the-server]__0tyilr06jn8nb._.js} +1 -1
- package/server/.next/server/chunks/[root-of-the-server]__0uss50b85q1j1._.js +3 -0
- package/server/.next/server/chunks/{[root-of-the-server]__0g3v-ty9-xstp._.js → [root-of-the-server]__0vco1v37du1ez._.js} +1 -1
- package/server/.next/server/chunks/[root-of-the-server]__0vg5zp6z094qr._.js +3 -0
- package/server/.next/server/chunks/{[root-of-the-server]__1ji_xmb_m6fam._.js → [root-of-the-server]__0vhq-__j8umfu._.js} +1 -1
- package/server/.next/server/chunks/[root-of-the-server]__0vp-x4ifpr3p9._.js +1 -1
- package/server/.next/server/chunks/{[root-of-the-server]__06zmu7jjyw1qw._.js → [root-of-the-server]__0w_hiz5nrm8-4._.js} +1 -1
- package/server/.next/server/chunks/{[root-of-the-server]__20056vw370xom._.js → [root-of-the-server]__0xd_bgjy5_tr5._.js} +1 -1
- package/server/.next/server/chunks/[root-of-the-server]__0xzl28izr2tiq._.js +3 -0
- package/server/.next/server/chunks/[root-of-the-server]__0xzreqng-t2g8._.js +3 -0
- package/server/.next/server/chunks/[root-of-the-server]__0yhki59n8zyjb._.js +1 -1
- package/server/.next/server/chunks/{[root-of-the-server]__0glhrm7zmrvi2._.js → [root-of-the-server]__0z9of310ruzug._.js} +2 -2
- package/server/.next/server/chunks/[root-of-the-server]__0zpo6n_av-p7a._.js +3 -0
- package/server/.next/server/chunks/{[root-of-the-server]__1hrcyozojb6ot._.js → [root-of-the-server]__0zs-wkvv1cs0i._.js} +1 -1
- package/server/.next/server/chunks/{[root-of-the-server]__1wcnj2xtesyd9._.js → [root-of-the-server]__0zu1odpvrptrt._.js} +1 -1
- package/server/.next/server/chunks/[root-of-the-server]__1-3u16rnk101p._.js +3 -0
- package/server/.next/server/chunks/[root-of-the-server]__1-pe9ipc3y6rn._.js +3 -0
- package/server/.next/server/chunks/[root-of-the-server]__1-tqm3jzny4zd._.js +3 -0
- package/server/.next/server/chunks/[root-of-the-server]__108g59p2fl8tw._.js +3 -0
- package/server/.next/server/chunks/{[root-of-the-server]__0tshehtsx7229._.js → [root-of-the-server]__11a8fxlpahjy2._.js} +1 -1
- package/server/.next/server/chunks/[root-of-the-server]__12_wmn5mkj9v7._.js +3 -0
- package/server/.next/server/chunks/{[root-of-the-server]__10ts7p_9fu3ge._.js → [root-of-the-server]__12bo9op0qkw9d._.js} +2 -2
- package/server/.next/server/chunks/[root-of-the-server]__12tontjm90s-j._.js +3 -0
- package/server/.next/server/chunks/[root-of-the-server]__13-qqkdecmwba._.js +3 -0
- package/server/.next/server/chunks/{[root-of-the-server]__19jalyhtntk8p._.js → [root-of-the-server]__135cn1pmljq9j._.js} +1 -1
- package/server/.next/server/chunks/{[root-of-the-server]__1iruoalu93dg7._.js → [root-of-the-server]__140ixflf83vxj._.js} +2 -2
- package/server/.next/server/chunks/[root-of-the-server]__1412kx9qb_j46._.js +3 -0
- package/server/.next/server/chunks/[root-of-the-server]__1426to_m4prqh._.js +1 -1
- package/server/.next/server/chunks/{[root-of-the-server]__1a563imf6ya2l._.js → [root-of-the-server]__14bynsn7eae8y._.js} +1 -1
- package/server/.next/server/chunks/[root-of-the-server]__152e1b97gc8hw._.js +3 -0
- package/server/.next/server/chunks/[root-of-the-server]__153lxhkj8-_vf._.js +3 -0
- package/server/.next/server/chunks/[root-of-the-server]__15tr3yx8k9lyt._.js +3 -0
- package/server/.next/server/chunks/[root-of-the-server]__16-0nul8mfe2m._.js +3 -0
- package/server/.next/server/chunks/{[root-of-the-server]__1ons16gam6qb7._.js → [root-of-the-server]__172vz80sdr5ny._.js} +2 -2
- package/server/.next/server/chunks/[root-of-the-server]__177l2p7kcj-16._.js +1 -1
- package/server/.next/server/chunks/{[root-of-the-server]__0vb1_m_h5hi0z._.js → [root-of-the-server]__17bz0jxsns742._.js} +2 -2
- package/server/.next/server/chunks/{[root-of-the-server]__14yq_wf4xemgd._.js → [root-of-the-server]__17jjm80vttqmq._.js} +2 -2
- package/server/.next/server/chunks/[root-of-the-server]__18eqxi2vwpdjm._.js +3 -0
- package/server/.next/server/chunks/[root-of-the-server]__194y_mcnn0zs3._.js +3 -0
- package/server/.next/server/chunks/[root-of-the-server]__1_iy7tzpesarf._.js +3 -0
- package/server/.next/server/chunks/[root-of-the-server]__1_vfu21n1zq17._.js +3 -0
- package/server/.next/server/chunks/[root-of-the-server]__1akvpmbiap6nf._.js +2 -2
- package/server/.next/server/chunks/[root-of-the-server]__1c78cu7kb9vkl._.js +1 -1
- package/server/.next/server/chunks/[root-of-the-server]__1cy1k8jbwoull._.js +3 -0
- package/server/.next/server/chunks/[root-of-the-server]__1d1zkp1q80t6q._.js +3 -0
- package/server/.next/server/chunks/{[root-of-the-server]__1z_l9mj3s_6tu._.js → [root-of-the-server]__1d4wmw2wohveb._.js} +1 -1
- package/server/.next/server/chunks/[root-of-the-server]__1dp_mz2p02ze6._.js +3 -0
- package/server/.next/server/chunks/{[root-of-the-server]__1ghx3ayy7tm73._.js → [root-of-the-server]__1eng6c6q52y-6._.js} +2 -2
- package/server/.next/server/chunks/{[root-of-the-server]__0eqrtvr3uqlqf._.js → [root-of-the-server]__1etg41llk7f09._.js} +1 -1
- package/server/.next/server/chunks/[root-of-the-server]__1f-rkijnm8me7._.js +3 -0
- package/server/.next/server/chunks/[root-of-the-server]__1fteaav9qn2kq._.js +3 -0
- package/server/.next/server/chunks/{[root-of-the-server]__0016p4j5uh74t._.js → [root-of-the-server]__1gfuhug61s-qy._.js} +2 -2
- package/server/.next/server/chunks/{[root-of-the-server]__19o-a03uklyrw._.js → [root-of-the-server]__1git7o20yf9nn._.js} +2 -2
- package/server/.next/server/chunks/[root-of-the-server]__1h496oc8wu4s6._.js +3 -0
- package/server/.next/server/chunks/[root-of-the-server]__1hertcbqi_w97._.js +3 -0
- package/server/.next/server/chunks/[root-of-the-server]__1io5zo7iam532._.js +1 -1
- package/server/.next/server/chunks/[root-of-the-server]__1j-nkcwy3w6sy._.js +3 -0
- package/server/.next/server/chunks/[root-of-the-server]__1jcr8cc_tlvfc._.js +3 -0
- package/server/.next/server/chunks/{[root-of-the-server]__0qlf-so9k6401._.js → [root-of-the-server]__1kr6f03r82mk6._.js} +1 -1
- package/server/.next/server/chunks/[root-of-the-server]__1l3uz57-1a35s._.js +3 -0
- package/server/.next/server/chunks/{[root-of-the-server]__0jpktq0f88rvz._.js → [root-of-the-server]__1l9pn8y-o6xyp._.js} +2 -2
- package/server/.next/server/chunks/[root-of-the-server]__1lp_rypkkdjp9._.js +3 -0
- package/server/.next/server/chunks/[root-of-the-server]__1m-z1ne4p7pi5._.js +3 -0
- package/server/.next/server/chunks/[root-of-the-server]__1ma2tpf6wh9p6._.js +3 -0
- package/server/.next/server/chunks/[root-of-the-server]__1nohrxjajgm5c._.js +3 -0
- package/server/.next/server/chunks/[root-of-the-server]__1o2km61kftkj1._.js +3 -0
- package/server/.next/server/chunks/[root-of-the-server]__1ozfk4_3lx1o7._.js +1 -1
- package/server/.next/server/chunks/[root-of-the-server]__1pn773t93gvn-._.js +3 -0
- package/server/.next/server/chunks/{[root-of-the-server]__0_vtp19_2frgj._.js → [root-of-the-server]__1pyc-ezfujjcp._.js} +1 -1
- package/server/.next/server/chunks/{[root-of-the-server]__1yxxfmyk3649a._.js → [root-of-the-server]__1pyhos8be90-4._.js} +1 -1
- package/server/.next/server/chunks/[root-of-the-server]__1q0h-x-7ob6cu._.js +3 -0
- package/server/.next/server/chunks/[root-of-the-server]__1q2e13halne9s._.js +3 -0
- package/server/.next/server/chunks/[root-of-the-server]__1q7xy_u4inf4h._.js +3 -0
- package/server/.next/server/chunks/[root-of-the-server]__1qtorf4s2dfeg._.js +3 -0
- package/server/.next/server/chunks/{[root-of-the-server]__20qdu-env7wgt._.js → [root-of-the-server]__1sm4p209f_yie._.js} +1 -1
- package/server/.next/server/chunks/{[root-of-the-server]__1cdt67d022uf1._.js → [root-of-the-server]__1ugnox9gcdhvm._.js} +2 -2
- package/server/.next/server/chunks/{[root-of-the-server]__1wbnule0tzwdu._.js → [root-of-the-server]__1uhgqik99k1y6._.js} +2 -2
- package/server/.next/server/chunks/[root-of-the-server]__1uq4f0bdphqs2._.js +3 -0
- package/server/.next/server/chunks/{[root-of-the-server]__02y9yjf7lp37-._.js → [root-of-the-server]__1usilhckla3wj._.js} +1 -1
- package/server/.next/server/chunks/[root-of-the-server]__1v_8mu8mt1n5i._.js +3 -0
- package/server/.next/server/chunks/[root-of-the-server]__1vtlx_63lj4tg._.js +3 -0
- package/server/.next/server/chunks/{[root-of-the-server]__090n04cg_br7j._.js → [root-of-the-server]__1vvg0ur3_7o0p._.js} +1 -1
- package/server/.next/server/chunks/{[root-of-the-server]__0vsafetdvsfhj._.js → [root-of-the-server]__1wjsjh-1i-sn6._.js} +1 -1
- package/server/.next/server/chunks/[root-of-the-server]__1wxj0f-l93gkh._.js +3 -0
- package/server/.next/server/chunks/[root-of-the-server]__1x4u0cdsl_81t._.js +3 -0
- package/server/.next/server/chunks/{[root-of-the-server]__0exruft64u1hg._.js → [root-of-the-server]__1x7en4waq21dd._.js} +1 -1
- package/server/.next/server/chunks/[root-of-the-server]__1xku6cma1a_kb._.js +3 -0
- package/server/.next/server/chunks/{[root-of-the-server]__0pi_camvun8ak._.js → [root-of-the-server]__1xnqsy7nud--q._.js} +2 -2
- package/server/.next/server/chunks/[root-of-the-server]__1xzg_370-w-6t._.js +3 -0
- package/server/.next/server/chunks/[root-of-the-server]__20dehd8e5-v9y._.js +1 -1
- package/server/.next/server/chunks/{[root-of-the-server]__1i841w7a3057h._.js → [root-of-the-server]__212_l7y-180xi._.js} +1 -1
- package/server/.next/server/chunks/{[root-of-the-server]__1vfvw1pmssxww._.js → [root-of-the-server]__217jp1b3psyq_._.js} +1 -1
- package/server/.next/server/chunks/_0-sqv2nbaba7h._.js +3 -0
- package/server/.next/server/chunks/_00t02v1a9nfr1._.js +3 -0
- package/server/.next/server/chunks/_01epotkqa90nv._.js +3 -0
- package/server/.next/server/chunks/_03wces6vk33l0._.js +3 -0
- package/server/.next/server/chunks/_05kxcc393c_0z._.js +3 -0
- package/server/.next/server/chunks/_08q7x7rdbiaql._.js +49 -0
- package/server/.next/server/chunks/_09iin0yvuppj0._.js +3 -0
- package/server/.next/server/chunks/_0apakqacgawy4._.js +3 -0
- package/server/.next/server/chunks/{_1t46m15axa4b4._.js → _0buibatfr6-k_._.js} +3 -3
- package/server/.next/server/chunks/_0d29nzne5jrwy._.js +49 -0
- package/server/.next/server/chunks/_0dq_vw-kky70h._.js +3 -0
- package/server/.next/server/chunks/{_0jiq3ns7681pv._.js → _0hekve2tk2eyv._.js} +3 -3
- package/server/.next/server/chunks/_0huryxihjw6tl._.js +49 -0
- package/server/.next/server/chunks/_0n-wbmmvp4omq._.js +1 -1
- package/server/.next/server/chunks/_0ou2tylxx1ltw._.js +10 -0
- package/server/.next/server/chunks/_0rqil_klxfz3j._.js +3 -0
- package/server/.next/server/chunks/{_0ehqx1pkh20px._.js → _0s_2fgaxby9fy._.js} +3 -3
- package/server/.next/server/chunks/_0z4b07-oa6ms9._.js +3 -0
- package/server/.next/server/chunks/_10mj3f1wis1ld._.js +3 -0
- package/server/.next/server/chunks/_139_9h76gakgh._.js +3 -0
- package/server/.next/server/chunks/_14jiq00zwwqdl._.js +3 -0
- package/server/.next/server/chunks/_15f0c7f46zkh3._.js +3 -0
- package/server/.next/server/chunks/_17u84tg9ibxp9._.js +3 -0
- package/server/.next/server/chunks/_1e4rch26scbhq._.js +49 -0
- package/server/.next/server/chunks/_1g-4oov0uynv-._.js +3 -0
- package/server/.next/server/chunks/_1iugpfonxri3e._.js +3 -0
- package/server/.next/server/chunks/_1iunyzyr-tfdj._.js +31 -0
- package/server/.next/server/chunks/_1jor4_sz1x8mt._.js +3 -0
- package/server/.next/server/chunks/_1m3zrm9-rc926._.js +3 -0
- package/server/.next/server/chunks/_1mwwg18ni-phb._.js +3 -0
- package/server/.next/server/chunks/{_0zj8nj1f2phf5._.js → _1n4labwyv5msc._.js} +1 -1
- package/server/.next/server/chunks/_1ohb_bmawpjlz._.js +10 -0
- package/server/.next/server/chunks/_1qcal07c71omr._.js +3 -0
- package/server/.next/server/chunks/_20ounk93z_b6h._.js +3 -0
- package/server/.next/server/chunks/_next-internal_server_app_(console)_reports_[id]_pdf_route_actions_1z8w14-7mvvj9.js +3 -0
- package/server/.next/server/chunks/_next-internal_server_app_brand-icon_route_actions_1d7gd59j_572y.js +3 -0
- package/server/.next/server/chunks/{node_modules_drizzle-orm_0p2-_xghnn-0j._.js → node_modules_drizzle-orm_0ac-0bknpndrl._.js} +2 -2
- package/server/.next/server/chunks/{node_modules_drizzle-orm_0pxdj1u-i8py9._.js → node_modules_drizzle-orm_0k-yqdh9heao6._.js} +2 -2
- package/server/.next/server/chunks/{node_modules_drizzle-orm_15o96osca_ezd._.js → node_modules_drizzle-orm_0k7__h1lfq5ug._.js} +2 -2
- package/server/.next/server/chunks/{node_modules_drizzle-orm_1hvomr2ymp14o._.js → node_modules_drizzle-orm_0pv-kejmwhhk-._.js} +2 -2
- package/server/.next/server/chunks/node_modules_drizzle-orm_1emqi6ca48q0m._.js +4 -0
- package/server/.next/server/chunks/node_modules_drizzle-orm_entity_1-0q2stnw2ab8.js +3 -3
- package/server/.next/server/chunks/src_0--qn984h6czu._.js +1 -1
- package/server/.next/server/chunks/src_0-s0huszb29pj._.js +3 -0
- package/server/.next/server/chunks/src_0071b0w5aco6_._.js +3 -0
- package/server/.next/server/chunks/src_05jrvcsgaq5ek._.js +1 -1
- package/server/.next/server/chunks/src_06tyytf_c_hlu._.js +1 -1
- package/server/.next/server/chunks/src_0_9n02bmhtk4z._.js +1 -1
- package/server/.next/server/chunks/src_0c-owt8q0lyj3._.js +1 -1
- package/server/.next/server/chunks/src_0dxbyz8iemj_5._.js +1 -1
- package/server/.next/server/chunks/src_0qnh_ndxnflja._.js +3 -0
- package/server/.next/server/chunks/src_0r3j66vbc5g4f._.js +3 -0
- package/server/.next/server/chunks/src_0u2zbz77uh__q._.js +1 -1
- package/server/.next/server/chunks/src_0ud2mqnh4emxz._.js +1 -1
- package/server/.next/server/chunks/src_1-dy6ie3_ezvm._.js +3 -0
- package/server/.next/server/chunks/src_10vyvp9vy_69h._.js +1 -1
- package/server/.next/server/chunks/src_13ij0feyzy7me._.js +3 -0
- package/server/.next/server/chunks/{src_05be6wzefzaky._.js → src_14vh1kj98t0xu._.js} +2 -2
- package/server/.next/server/chunks/src_1_s_jyur8tzy3._.js +3 -0
- package/server/.next/server/chunks/src_1a5yibsjcy1ga._.js +1 -1
- package/server/.next/server/chunks/src_1cvp6ubs-3z6l._.js +1 -1
- package/server/.next/server/chunks/src_1d-0nhc193soh._.js +3 -0
- package/server/.next/server/chunks/src_1d1ewqrujfp03._.js +3 -0
- package/server/.next/server/chunks/src_1dio7z4_so000._.js +3 -0
- package/server/.next/server/chunks/src_1hpbxjbqlnuob._.js +3 -0
- package/server/.next/server/chunks/src_1il7wg_qjxny7._.js +1 -1
- package/server/.next/server/chunks/src_1tux0n9_5b1kr._.js +1 -1
- package/server/.next/server/chunks/src_1u-olt84z63rx._.js +1 -1
- package/server/.next/server/chunks/src_1wmb2yl3tn-dd._.js +1 -1
- package/server/.next/server/chunks/src_1wzm081p6qyre._.js +1 -1
- package/server/.next/server/chunks/{src_0cdn5fuk8f_x2._.js → src_20eae99bkrgpt._.js} +2 -2
- package/server/.next/server/chunks/src_db_client_ts_0vckux1-linlc._.js +23 -0
- package/server/.next/server/chunks/src_lib_02-wqy78_rn85._.js +3 -0
- package/server/.next/server/chunks/src_lib_0ds7lhpop_adf._.js +1 -1
- package/server/.next/server/chunks/src_lib_0eqv8l-v8d5ze._.js +1 -1
- package/server/.next/server/chunks/src_lib_0glcfed-uogyd._.js +1 -1
- package/server/.next/server/chunks/src_lib_0iqdlrya6vfc_._.js +3 -0
- package/server/.next/server/chunks/src_lib_0kjik9nmtqlf5._.js +7 -0
- package/server/.next/server/chunks/src_lib_0krbxej8kykyp._.js +7 -0
- package/server/.next/server/chunks/src_lib_0o9m8m1sm5759._.js +5 -0
- package/server/.next/server/chunks/src_lib_0pyyxm3m1rttg._.js +1 -1
- package/server/.next/server/chunks/src_lib_0sd9c_cjgc4ro._.js +3 -0
- package/server/.next/server/chunks/src_lib_0ta8sd9jeuw50._.js +17 -17
- package/server/.next/server/chunks/src_lib_0xfwnbkxb4z5s._.js +7 -0
- package/server/.next/server/chunks/src_lib_11ky6rv8zte7m._.js +7 -0
- package/server/.next/server/chunks/src_lib_13irheo9qqhgx._.js +1 -1
- package/server/.next/server/chunks/src_lib_1550ey8j96v9n._.js +1 -1
- package/server/.next/server/chunks/src_lib_1n_d25awwz8ga._.js +3 -0
- package/server/.next/server/chunks/src_lib_1onr7b4_kglpt._.js +1 -1
- package/server/.next/server/chunks/src_lib_1qo6t00wwitz6._.js +17 -17
- package/server/.next/server/chunks/src_lib_1sz77jjn7xl7o._.js +1 -1
- package/server/.next/server/chunks/src_lib_alerts_catalog_ts_1ndg28acul64q._.js +1 -1
- package/server/.next/server/chunks/src_lib_branding_ts_03ns4y_8z0-6e._.js +3 -0
- package/server/.next/server/chunks/src_lib_branding_ts_0jfv9nur5alvy._.js +3 -0
- package/server/.next/server/chunks/src_lib_collector_auth_ts_0lqx92__e4zij._.js +6 -3
- package/server/.next/server/chunks/src_lib_data_report-db_ts_0b5f4dpxn08gk._.js +3 -0
- package/server/.next/server/chunks/src_lib_data_sections-db_ts_1ky6-o4z1mimq._.js +4 -4
- package/server/.next/server/chunks/src_lib_data_settings-db_ts_1to3jtggxlaz4._.js +3 -0
- package/server/.next/server/chunks/src_lib_data_settings-db_ts_2060-w9nbvitr._.js +3 -0
- package/server/.next/server/chunks/src_lib_demo_pool_ts_0fpn8acsdk64i._.js +9 -9
- package/server/.next/server/chunks/src_lib_demo_pool_ts_14rjvkgozh1d4._.js +11 -11
- package/server/.next/server/chunks/src_lib_demo_pool_ts_17xz9bk-d5uic._.js +11 -11
- package/server/.next/server/chunks/src_lib_demo_pool_ts_210g_on8zx_-n._.js +11 -11
- package/server/.next/server/chunks/src_lib_local-auth_proxy_ts_1g9krhdh2rnt2._.js +1 -21
- package/server/.next/server/chunks/src_lib_maintenance_ts_0voja6l8yogbf._.js +3 -0
- package/server/.next/server/chunks/src_lib_rate-limit_ts_09dzyftcadggh._.js +1 -1
- package/server/.next/server/chunks/src_lib_rate-limit_ts_0r-eu6to05vyx._.js +1 -1
- package/server/.next/server/chunks/src_lib_rate-limit_ts_1ahtm4quu2rri._.js +1 -1
- package/server/.next/server/chunks/src_lib_sections_ts_0r8u4nvlpdkgq._.js +1 -1
- package/server/.next/server/chunks/src_private_notes_notes-actions_ts_1g63g8u965fhc._.js +1 -1
- package/server/.next/server/chunks/ssr/1oeh_server_app_(console)_(private)_ai_agents_page_actions_21atz5tidps07.js +1 -1
- package/server/.next/server/chunks/ssr/1oeh_server_app_(console)_(private)_ai_models_page_actions_0rvlzfa8rjyz_.js +1 -1
- package/server/.next/server/chunks/ssr/1oeh_server_app_(console)_(private)_ai_playground_page_actions_01ejc1xilpuh4.js +1 -1
- package/server/.next/server/chunks/ssr/1oeh_server_app_(console)_(private)_ai_quota_page_actions_0iki29gyi8cwa.js +1 -1
- package/server/.next/server/chunks/ssr/1oeh_server_app_(console)_(private)_ai_usage_page_actions_1c99h-kwdnep7.js +1 -1
- package/server/.next/server/chunks/ssr/1oeh_server_app_(console)_(private)_auto-actions_page_actions_1kw4ce6-efkr1.js +1 -1
- package/server/.next/server/chunks/ssr/{[externals]__1q1drb4oske-9._.js → [externals]__1299yq-rye4ww._.js} +1 -1
- package/server/.next/server/chunks/ssr/{[externals]__0summv9f9jkob._.js → [externals]__134px-n77ygse._.js} +1 -1
- package/server/.next/server/chunks/ssr/{[externals]__1jdljyrzmqoz0._.js → [externals]__1s9zy_6f7xfd5._.js} +1 -1
- package/server/.next/server/chunks/ssr/{[externals]__00hge8tjqv73a._.js → [externals]__1t5grpj1lrsbr._.js} +1 -1
- package/server/.next/server/chunks/ssr/[root-of-the-server]__001mglelq4wpc._.js +1 -1
- package/server/.next/server/chunks/ssr/{[root-of-the-server]__12t9_ndr9z-2d._.js → [root-of-the-server]__004q78ed0nf0_._.js} +1 -1
- package/server/.next/server/chunks/ssr/{[root-of-the-server]__1a5760tg4iits._.js → [root-of-the-server]__03iw2anbe7pxg._.js} +2 -2
- package/server/.next/server/chunks/ssr/{[root-of-the-server]__0n4bkq-45z4aa._.js → [root-of-the-server]__04_prmhm_cts4._.js} +1 -1
- package/server/.next/server/chunks/ssr/{[root-of-the-server]__183_36tj3p645._.js → [root-of-the-server]__059q8f4tia03z._.js} +2 -2
- package/server/.next/server/chunks/ssr/{[root-of-the-server]__1mah0p09qrkpu._.js → [root-of-the-server]__05ot6j41b9i8j._.js} +2 -2
- package/server/.next/server/chunks/ssr/{[root-of-the-server]__0423qjo9c2t9-._.js → [root-of-the-server]__077-acap7g4ck._.js} +1 -1
- package/server/.next/server/chunks/ssr/[root-of-the-server]__09blzlbsxqvy9._.js +1 -1
- package/server/.next/server/chunks/ssr/[root-of-the-server]__0_wsm-adqpmgy._.js +3 -0
- package/server/.next/server/chunks/ssr/[root-of-the-server]__0buxkrf7nrji8._.js +3 -0
- package/server/.next/server/chunks/ssr/{[root-of-the-server]__05s2n35zn4go-._.js → [root-of-the-server]__0ct4apye0sfmc._.js} +1 -1
- package/server/.next/server/chunks/ssr/{[root-of-the-server]__157kjredkf1pa._.js → [root-of-the-server]__0f6ao2fs70kab._.js} +1 -1
- package/server/.next/server/chunks/ssr/{[root-of-the-server]__02lkybw6gg3ln._.js → [root-of-the-server]__0f8ibnqfh_mp0._.js} +2 -2
- package/server/.next/server/chunks/ssr/[root-of-the-server]__0h8-rlmhjyebb._.js +3 -0
- package/server/.next/server/chunks/ssr/{[root-of-the-server]__139ya3ejh6htx._.js → [root-of-the-server]__0hgf7si8htevx._.js} +1 -1
- package/server/.next/server/chunks/ssr/[root-of-the-server]__0jgapr1cnvhi6._.js +1 -1
- package/server/.next/server/chunks/ssr/[root-of-the-server]__0kejvdc7h-pgz._.js +3 -0
- package/server/.next/server/chunks/ssr/[root-of-the-server]__0keo0-hwsnkw9._.js +1 -1
- package/server/.next/server/chunks/ssr/[root-of-the-server]__0kjdpn_g9gvwr._.js +3 -0
- package/server/.next/server/chunks/ssr/[root-of-the-server]__0l50vsk8enxzj._.js +1 -1
- package/server/.next/server/chunks/ssr/{[root-of-the-server]__0z5ucbis8ik32._.js → [root-of-the-server]__0msczl_qf2eml._.js} +2 -2
- package/server/.next/server/chunks/ssr/[root-of-the-server]__0mvauw9r_4qss._.js +1 -1
- package/server/.next/server/chunks/ssr/[root-of-the-server]__0rdf04ziqasfz._.js +1 -1
- package/server/.next/server/chunks/ssr/[root-of-the-server]__0rrdzb9wowemv._.js +1 -1
- package/server/.next/server/chunks/ssr/{[root-of-the-server]__1d1ksu1dlha3r._.js → [root-of-the-server]__0s9z1kusbxvae._.js} +2 -2
- package/server/.next/server/chunks/ssr/[root-of-the-server]__0u-o_v_v6y58o._.js +3 -0
- package/server/.next/server/chunks/ssr/{[root-of-the-server]__10r0u-q18z71i._.js → [root-of-the-server]__0uxychcp_pldy._.js} +1 -1
- package/server/.next/server/chunks/ssr/{[root-of-the-server]__1iqedr7nfvayk._.js → [root-of-the-server]__0wlctoz_-yuyh._.js} +1 -1
- package/server/.next/server/chunks/ssr/{[root-of-the-server]__092gsphy4oz6k._.js → [root-of-the-server]__0yr0heg1b0y5t._.js} +2 -2
- package/server/.next/server/chunks/ssr/[root-of-the-server]__0yvm5q_auexh3._.js +3 -0
- package/server/.next/server/chunks/ssr/{[root-of-the-server]__13phmsw9wsyrs._.js → [root-of-the-server]__0zgo5h9mstjc8._.js} +1 -1
- package/server/.next/server/chunks/ssr/{[root-of-the-server]__0no6c0whevi73._.js → [root-of-the-server]__107qfgl2c58q0._.js} +1 -1
- package/server/.next/server/chunks/ssr/[root-of-the-server]__10ahcnczmy5hx._.js +3 -0
- package/server/.next/server/chunks/ssr/{[root-of-the-server]__1nk87bg9lne35._.js → [root-of-the-server]__10y2ig7dg3f-k._.js} +1 -1
- package/server/.next/server/chunks/ssr/{[root-of-the-server]__1knbzqo0nba_q._.js → [root-of-the-server]__12cdcpj45tu6j._.js} +2 -2
- package/server/.next/server/chunks/ssr/[root-of-the-server]__18dcfrlpoapw9._.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]__0gyvfp6c-_edw._.js → [root-of-the-server]__1a3_aiqflmt4f._.js} +2 -2
- package/server/.next/server/chunks/ssr/{[root-of-the-server]__16jfs8j29r4b5._.js → [root-of-the-server]__1brzt_134_2iy._.js} +2 -2
- package/server/.next/server/chunks/ssr/[root-of-the-server]__1g6kynby65m0v._.js +3 -0
- package/server/.next/server/chunks/ssr/{[root-of-the-server]__07_efq7yhxfj-._.js → [root-of-the-server]__1itgt83qo1e77._.js} +1 -1
- package/server/.next/server/chunks/ssr/[root-of-the-server]__1pafj7m_b8m14._.js +3 -0
- package/server/.next/server/chunks/ssr/[root-of-the-server]__1rzolbt5ior_s._.js +3 -0
- package/server/.next/server/chunks/ssr/{[root-of-the-server]__18gw74mr2vto3._.js → [root-of-the-server]__1sw2q1p1t59y8._.js} +2 -2
- package/server/.next/server/chunks/ssr/[root-of-the-server]__1t9_ue4abugtn._.js +3 -0
- package/server/.next/server/chunks/ssr/[root-of-the-server]__1u_13nhw3kuz3._.js +1 -1
- package/server/.next/server/chunks/ssr/[root-of-the-server]__1vgliw2256_6l._.js +4 -0
- package/server/.next/server/chunks/ssr/{[root-of-the-server]__06bgklzuef-ya._.js → [root-of-the-server]__1zki66ic3cluq._.js} +2 -2
- package/server/.next/server/chunks/ssr/_008i8a0_8skrp._.js +1 -1
- package/server/.next/server/chunks/ssr/_02eudwc8ieb2r._.js +2 -2
- package/server/.next/server/chunks/ssr/_08xqk3eibu5aw._.js +1 -1
- package/server/.next/server/chunks/ssr/_09s2unlb4r6yf._.js +3 -0
- package/server/.next/server/chunks/ssr/_0_oc9q0vqkynd._.js +1 -1
- package/server/.next/server/chunks/ssr/_0a22b7zsckifp._.js +1 -1
- package/server/.next/server/chunks/ssr/_0bd4cxnpnnq2u._.js +1 -1
- package/server/.next/server/chunks/ssr/_0cbbks0ms7i_u._.js +2 -2
- package/server/.next/server/chunks/ssr/_0cw4kz3d6kmb1._.js +1 -1
- package/server/.next/server/chunks/ssr/_0d2d527wcx-lf._.js +2 -2
- package/server/.next/server/chunks/ssr/_0d702k82llasi._.js +1 -1
- package/server/.next/server/chunks/ssr/_0gl-ewvbhb677._.js +2 -2
- package/server/.next/server/chunks/ssr/_0gmw45sb1llld._.js +1 -1
- package/server/.next/server/chunks/ssr/_0hqya_yuov5jw._.js +3 -0
- package/server/.next/server/chunks/ssr/_0i04zoixa2iup._.js +2 -2
- package/server/.next/server/chunks/ssr/_0idbg-ok0so2h._.js +2 -2
- package/server/.next/server/chunks/ssr/_0iy27gi4y9-fe._.js +1 -1
- package/server/.next/server/chunks/ssr/{_18sg0ilz439y6._.js → _0k6kbi721s28p._.js} +2 -2
- package/server/.next/server/chunks/ssr/_0kdn56_ow-x_s._.js +1 -1
- package/server/.next/server/chunks/ssr/_0kk0of-t4vhyh._.js +4 -0
- package/server/.next/server/chunks/ssr/{_0c9_fa5ejth12._.js → _0l0eho21fo-8l._.js} +2 -2
- package/server/.next/server/chunks/ssr/_0oovfx_t_-u0k._.js +1 -1
- package/server/.next/server/chunks/ssr/_0oub-njkja8gu._.js +2 -2
- package/server/.next/server/chunks/ssr/_0pqkexxo7rts_._.js +2 -2
- package/server/.next/server/chunks/ssr/_0r7_a5m55a1jy._.js +3 -0
- package/server/.next/server/chunks/ssr/_0rqil_klxfz3j._.js +3 -0
- package/server/.next/server/chunks/ssr/_0tnd528j0i1i4._.js +2 -2
- package/server/.next/server/chunks/ssr/_0uwkwcgucqgcf._.js +2 -2
- package/server/.next/server/chunks/ssr/_0uz60lk-7e_cj._.js +2 -2
- package/server/.next/server/chunks/ssr/_0wo-lpqf7hr1y._.js +2 -2
- package/server/.next/server/chunks/ssr/{_19q2vj_ppgsu4._.js → _0x4ybc829r3ta._.js} +2 -2
- package/server/.next/server/chunks/ssr/_0xmud7u5hdnqu._.js +2 -2
- package/server/.next/server/chunks/ssr/_1-4401bfn50mf._.js +1 -1
- package/server/.next/server/chunks/ssr/_1-6d1tm3r_qwg._.js +1 -1
- package/server/.next/server/chunks/ssr/_10bven6gb1vj0._.js +1 -1
- package/server/.next/server/chunks/ssr/_118h21qua_4o3._.js +1 -1
- package/server/.next/server/chunks/ssr/_12makqwatfke-._.js +2 -2
- package/server/.next/server/chunks/ssr/_19-3vzkc6rk97._.js +1 -1
- package/server/.next/server/chunks/ssr/_19dldpcnzhkuw._.js +1 -1
- package/server/.next/server/chunks/ssr/_1_-o2s48aj4i7._.js +1 -1
- package/server/.next/server/chunks/ssr/_1bijvrgqfyij6._.js +5 -0
- package/server/.next/server/chunks/ssr/_1c7jkkvkvzj_u._.js +2 -2
- package/server/.next/server/chunks/ssr/{_1vlm9990gr64r._.js → _1cdlzhw6tkrhd._.js} +2 -2
- package/server/.next/server/chunks/ssr/_1cl55h_h3q-b_._.js +1 -1
- package/server/.next/server/chunks/ssr/_1dlo17ba9g-f9._.js +2 -2
- package/server/.next/server/chunks/ssr/_1dp5bgqob29-f._.js +1 -1
- package/server/.next/server/chunks/ssr/_1fc8k_0p8l00c._.js +2 -2
- package/server/.next/server/chunks/ssr/_1fuywfexex2s8._.js +2 -2
- package/server/.next/server/chunks/ssr/_1g2zbl_-4z_hg._.js +1 -1
- package/server/.next/server/chunks/ssr/_1he21-bt45k8z._.js +2 -2
- package/server/.next/server/chunks/ssr/_1ioq9f389jnco._.js +3 -0
- package/server/.next/server/chunks/ssr/_1iugpfonxri3e._.js +3 -0
- package/server/.next/server/chunks/ssr/_1j9cka-44jd65._.js +1 -1
- package/server/.next/server/chunks/ssr/_1jh_o2i8hj2g5._.js +1 -1
- package/server/.next/server/chunks/ssr/_1ln6o3a9quwxo._.js +2 -2
- package/server/.next/server/chunks/ssr/_1m4km_w39x5e9._.js +1 -1
- package/server/.next/server/chunks/ssr/_1ong0a252wcvc._.js +13 -0
- package/server/.next/server/chunks/ssr/_1pp1o361lgpwu._.js +2 -2
- package/server/.next/server/chunks/ssr/_1q0i7-4d4iyye._.js +3 -0
- package/server/.next/server/chunks/ssr/_1q3fi6a4gklq6._.js +1 -1
- package/server/.next/server/chunks/ssr/_1qcal07c71omr._.js +3 -0
- package/server/.next/server/chunks/ssr/_1r2516zqb3e67._.js +3 -0
- package/server/.next/server/chunks/ssr/_1ul3og9l7vp32._.js +2 -2
- package/server/.next/server/chunks/ssr/_1yh3k88t_kh4h._.js +2 -2
- package/server/.next/server/chunks/ssr/_1z6dy1k48mskn._.js +1 -1
- package/server/.next/server/chunks/ssr/{_0fl2-fao_ye7t._.js → _1zsfeuyrhcwmh._.js} +2 -2
- package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_(private)_ai_keys_page_actions_181-3r4e_0yb5.js +1 -1
- package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_(private)_ai_logs_page_actions_1ryb93n6khky3.js +1 -1
- package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_alerts_page_actions_06_3gmyq3jtvi.js +1 -1
- package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_apps_[id]_page_actions_1myo_rodrlg3a.js +2 -2
- package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_apps_page_actions_0ksau5eicvycc.js +1 -1
- package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_connections_page_actions_1fgolmmpxrouc.js +1 -1
- package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_containers_page_actions_1ainjsbrnl360.js +1 -1
- package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_dns_page_actions_17d_lvhl-u_4w.js +1 -1
- package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_domains_page_actions_1yv3fj_fh-n-5.js +1 -1
- package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_firebase_page_actions_00wuues_v_j3r.js +1 -1
- package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_logs_page_actions_0oqh51t2rx6q0.js +1 -1
- package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_manage_sections_page_actions_1sb2ldu57uj32.js +1 -1
- package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_settings_page_actions_1363m-cfkgyvr.js +3 -0
- package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_supabase_page_actions_1f3a_tpkwjo8z.js +1 -1
- package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_uptime_page_actions_1ylbdz0-ykfh6.js +1 -1
- package/server/.next/server/chunks/ssr/_next-internal_server_app_account_password_page_actions_1v4e71_oifbx9.js +1 -1
- package/server/.next/server/chunks/ssr/_next-internal_server_app_signin_page_actions_11wzk446p6_zi.js +1 -1
- package/server/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1kr0-100zz257.js +3 -0
- package/server/.next/server/chunks/ssr/{[root-of-the-server]__14e0j38785glf._.js → src_000iv6actp3t_._.js} +2 -2
- package/server/.next/server/chunks/ssr/src_0330uf9pdfco9._.js +1 -1
- package/server/.next/server/chunks/ssr/src_06tjy8wljego8._.js +1 -1
- package/server/.next/server/chunks/ssr/src_084tdkx3c_yqi._.js +1 -1
- package/server/.next/server/chunks/ssr/src_0abts6wp5ucc0._.js +1 -1
- package/server/.next/server/chunks/ssr/src_0etvjdinp5urq._.js +1 -1
- package/server/.next/server/chunks/ssr/src_0kls100c13ocf._.js +3 -0
- package/server/.next/server/chunks/ssr/src_0ovx2ogvlz2eh._.js +1 -1
- package/server/.next/server/chunks/ssr/src_0ph020gy78gi9._.js +1 -1
- package/server/.next/server/chunks/ssr/{src_1_9q6-wstn038._.js → src_0torilf0s7p-e._.js} +2 -2
- package/server/.next/server/chunks/ssr/src_10zavgy86u3us._.js +1 -1
- package/server/.next/server/chunks/ssr/src_18m06fg8u7_73._.js +3 -0
- package/server/.next/server/chunks/ssr/{src_0632mrev4i__u._.js → src_1_b884ul0envr._.js} +2 -2
- package/server/.next/server/chunks/ssr/src_1maoe8g5gnv0u._.js +1 -1
- package/server/.next/server/chunks/ssr/src_1q-jgpnd3lbcu._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_agents_1fyhh1ldgm23z._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_ask_ask-form_tsx_18ttm9nna_9y6._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_logs_export-button_tsx_1k-crb88n1za_._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_models_0ayzqn062pnv5._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_playground_playground-view_tsx_18ua5zn_a0mar._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_providers_1ru-30x6-uwu4._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_quota_limits-form_tsx_1vouaaf560z_x._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_(private)_ai_usage_limits-form_tsx_0sfk3ver58rqw._.js +1 -1
- package/server/.next/server/chunks/ssr/{src_app_(console)_0krr6t05xs2tn._.js → src_app_(console)_0e1l3e9r_60s4._.js} +2 -2
- package/server/.next/server/chunks/ssr/{src_app_(console)_0ohoun7l5f2tb._.js → src_app_(console)_124kgxvmqm7j4._.js} +2 -2
- package/server/.next/server/chunks/ssr/src_app_(console)_alerts_0j5xlt68kwg8x._.js +2 -2
- package/server/.next/server/chunks/ssr/src_app_(console)_apps_[id]_08in-j3xp5mbn._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_backups_actions_ts_1vpytsdh0wc1f._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_backups_drive-buttons_tsx_00cku5r_z3jkg._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_connections_1fahc65-97qla._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_connections_1fmp_anbkapur._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_connections_actions_ts_103blv4gzq76z._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_containers_containers-view_tsx_1xkcrw5gx53xo._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_create_actions_ts_05-86qr6kfjey._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_dns_actions_ts_1jzn58xzwbukz._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_dns_record-actions_tsx_0cqmz51zcuebv._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_firebase_row-menu_tsx_0hssoq3pqjl-n._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_logs_log-viewer_tsx_0v3e4cflfk14w._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_manage_sections_section-switch_tsx_1mfs-o_357i22._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_monitor-actions_ts_10w3h7myk2ppi._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_os_os-view_tsx_0xr69f5vtstls._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_palette-action_ts_0zyw9a9imev6p._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_reports_reports-view_tsx_1l0apba6g810q._.js +3 -0
- package/server/.next/server/chunks/ssr/src_app_(console)_sql_1icfsti04djqe._.js +2 -2
- package/server/.next/server/chunks/ssr/src_app_(console)_sql_actions_ts_1oqco02hw-3vp._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_supabase_0ib3m2ch9gu-4._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_(console)_supabase_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_mfa_setup_setup-flow_tsx_1fpwygr2vdgnh._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_s_[slug]_page_tsx_0jjqe6py82mpb._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_setup_setup-form_tsx_0izoagdur96e1._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_signin_1_sp0qx8_z7c9._.js +1 -1
- package/server/.next/server/chunks/ssr/src_app_signin_1qq0_77_vdutm._.js +3 -0
- package/server/.next/server/chunks/ssr/src_components_create_create-dialog_tsx_1s_9clly_m1ru._.js +1 -1
- package/server/.next/server/chunks/ssr/src_lib_0eqv8l-v8d5ze._.js +1 -1
- package/server/.next/server/chunks/ssr/src_lib_0etkz1wbvfw-k._.js +3 -0
- package/server/.next/server/chunks/ssr/src_lib_0jnv54-8idu07._.js +3 -0
- package/server/.next/server/chunks/ssr/{src_lib_1zgor_vrwl5kt._.js → src_lib_0o9m8m1sm5759._.js} +2 -2
- package/server/.next/server/chunks/ssr/src_lib_1eioo4oodq-8h._.js +1 -1
- package/server/.next/server/chunks/ssr/src_lib_1myex-iv3tu5w._.js +23 -0
- package/server/.next/server/chunks/ssr/src_lib_1x__dvajr3xvs._.js +3 -0
- package/server/.next/server/chunks/ssr/src_lib_alerts_catalog_ts_1ndg28acul64q._.js +1 -1
- package/server/.next/server/chunks/ssr/src_lib_branding_ts_03ns4y_8z0-6e._.js +3 -0
- package/server/.next/server/chunks/ssr/src_lib_branding_ts_1p22ju9pii41w._.js +3 -0
- package/server/.next/server/chunks/ssr/src_lib_collector_self-update_ts_18m5vmptpjhtg._.js +1 -1
- package/server/.next/server/chunks/ssr/src_lib_data_sections-db_ts_1ky6-o4z1mimq._.js +2 -2
- package/server/.next/server/chunks/ssr/src_lib_data_settings-db_ts_1to3jtggxlaz4._.js +3 -0
- package/server/.next/server/chunks/ssr/{src_lib_demo_15e3gnqzod0tj._.js → src_lib_demo_03sepqqjq9usk._.js} +2 -2
- package/server/.next/server/chunks/ssr/src_lib_demo_pool_ts_0fpn8acsdk64i._.js +9 -9
- package/server/.next/server/chunks/ssr/src_lib_network_dns-edit_ts_0xtxlbd-uwncx._.js +1 -1
- package/server/.next/server/chunks/ssr/src_lib_rate-limit_ts_0r-eu6to05vyx._.js +1 -1
- package/server/.next/server/chunks/ssr/src_lib_sections_ts_0r8u4nvlpdkgq._.js +1 -1
- package/server/.next/server/chunks/ssr/src_lib_view_usage_ts_1h1tj0m3n2vul._.js +1 -1
- package/server/.next/server/chunks/ssr/src_private_0iy_wyg2p1jkn._.js +1 -1
- package/server/.next/server/chunks/ssr/src_private_1yzfhupl3rlpx._.js +6 -0
- package/server/.next/server/chunks/ssr/src_private_actions_decide-form_tsx_1hngtxpyle3v8._.js +1 -1
- package/server/.next/server/chunks/ssr/src_private_ai_providers_actions_ts_0wxa36ai6s5nn._.js +1 -1
- package/server/.next/server/chunks/ssr/src_private_notes_notes-actions_ts_1g63g8u965fhc._.js +1 -1
- package/server/.next/server/middleware-build-manifest.js +14 -3
- package/server/.next/server/middleware.js +1 -1
- package/server/.next/server/next-font-manifest.js +1 -1
- package/server/.next/server/next-font-manifest.json +4 -0
- package/server/.next/server/pages/404.html +1 -1
- package/server/.next/server/pages/500.html +1 -1
- package/server/.next/server/preview-props.json +3 -3
- package/server/.next/server/server-reference-manifest.js +1 -1
- package/server/.next/server/server-reference-manifest.json +299 -175
- package/server/.next/static/chunks/0-v128fmc05bf.js +1 -0
- package/server/.next/static/chunks/{2-xolk9x48-v1.js → 02db293pqegsb.js} +1 -1
- package/server/.next/static/chunks/{1935vuszybg7i.js → 03t36gu4t__cw.js} +1 -1
- package/server/.next/static/chunks/{0ge2nkna7o16p.js → 07p13q6tuqr2r.js} +1 -1
- package/server/.next/static/chunks/{1pogexbz36ij8.js → 09qtiybhnydd3.js} +1 -1
- package/server/.next/static/chunks/{02kly5fiyvt77.js → 0_5leiwhgv7d6.js} +1 -1
- package/server/.next/static/chunks/{3aou6xwhz8z6a.js → 0_ebioh9utve_.js} +1 -1
- package/server/.next/static/chunks/{0l61-etojd65n.js → 0_hd-kx6h59a8.js} +1 -1
- package/server/.next/static/chunks/{2fvh4wg2kp4c2.js → 0if7r4ximmzwb.js} +1 -1
- package/server/.next/static/chunks/{01euc4zjlprz5.js → 0ohm_qoe5thrr.js} +1 -1
- package/server/.next/static/chunks/0ssmmtio659vh.js +1 -0
- package/server/.next/static/chunks/{2-uaya1_uxlg8.js → 0t0igs6uqhbf0.js} +1 -1
- package/server/.next/static/chunks/{0matuoy08desx.js → 0ut06v9sng9g4.js} +1 -1
- package/server/.next/static/chunks/0w--mj7tf-9f-.js +1 -0
- package/server/.next/static/chunks/131egbz-4xsjl.js +1 -0
- package/server/.next/static/chunks/{3ursfc8kxp2ak.js → 14dbn6_jif37v.js} +2 -2
- package/server/.next/static/chunks/{2yc4qzglai5fq.js → 15l58okvbrc4_.js} +1 -1
- package/server/.next/static/chunks/{22ygzud_kp29f.js → 1_nuygyg_kes5.js} +2 -2
- package/server/.next/static/chunks/1bsq3x1wh49bp.js +1 -0
- package/server/.next/static/chunks/{1u8mo8jflotrt.js → 1esunqtpnjwkw.js} +1 -1
- package/server/.next/static/chunks/{33_2mbxu9wufm.js → 1gizey8idqrkt.js} +1 -1
- package/server/.next/static/chunks/{0dq-2wtk0h5u7.js → 1itgjll79qm1l.js} +1 -1
- package/server/.next/static/chunks/{0xlfzxnboj4f1.js → 1o27sfcuph25w.js} +1 -1
- package/server/.next/static/chunks/{2szchf79vnxgd.js → 1pz19kzjaj8uw.js} +1 -1
- package/server/.next/static/chunks/{1truzt17f0fce.js → 1qzun1-bna-sy.js} +1 -1
- package/server/.next/static/chunks/1ugo5ye01racz.js +1 -0
- package/server/.next/static/chunks/{0v97o46v-74gw.js → 1z5s55o29xqyu.js} +1 -1
- package/server/.next/static/chunks/{1uk98c6r9i2bn.js → 21gu7xcv8ix3_.js} +1 -1
- package/server/.next/static/chunks/{0xz55932e19r8.js → 21p4xz6ysy8mv.js} +1 -1
- package/server/.next/static/chunks/{2ze-y3he5_bb0.js → 22bdke6t-doqh.js} +1 -1
- package/server/.next/static/chunks/{1r99dm6-o5qw2.js → 28ljlwfuuz5a1.js} +1 -1
- package/server/.next/static/chunks/{363mcu9nd9znh.js → 29lr_ae0uli9o.js} +1 -1
- package/server/.next/static/chunks/{2am77mhkx46hz.js → 2jkqfajf-i0r6.js} +2 -2
- package/server/.next/static/chunks/{3gkm-ynu4fq5u.js → 2mhli3hpy5vr9.js} +1 -1
- package/server/.next/static/chunks/{2p8bv7d7t08z1.js → 2ns8p-8ngmi9h.js} +1 -1
- package/server/.next/static/chunks/{3m3vl3n5xs039.js → 2vdwhg5fnxmu-.js} +2 -2
- package/server/.next/static/chunks/{3gmm9g54vx4w0.js → 2xgya43mybqsr.js} +1 -1
- package/server/.next/static/chunks/{3e-0ejqqa7jwn.js → 2yv02i0h6tppe.js} +1 -1
- package/server/.next/static/chunks/{2m8-ctreu-y-r.js → 31gsdl-_t96jr.js} +1 -1
- package/server/.next/static/chunks/36ykgce0otv4r.css +3 -0
- package/server/.next/static/chunks/{0ey7akdab5tu8.js → 3_lq_n61v4j3r.js} +1 -1
- package/server/.next/static/chunks/{1c9eb592ho0-l.js → 3a11wypkvc5ey.js} +1 -1
- package/server/.next/static/chunks/{0mbt6eam4qr2f.js → 3g0p8ugqre9ft.js} +1 -1
- package/server/.next/static/chunks/{0y99dm8mesqe9.js → 3jq1ae0_9wu-o.js} +1 -1
- package/server/.next/static/chunks/3o358k-0653gr.js +1 -0
- package/server/.next/static/chunks/3pnzdk7snuzti.js +1 -0
- package/server/.next/static/chunks/{3bwwwv3sp7uyn.js → 4114b2ynqr24j.js} +1 -1
- package/server/.next/static/chunks/{0-o-4ilzkrd38.js → 41r6z31pmixbr.js} +1 -1
- package/server/.next/static/chunks/{3dk6a5gl9glxo.js → 43wc7pgukn2dp.js} +1 -1
- package/server/.next/static/chunks/{3jqmm62dbykt1.js → 4451kr05p691g.js} +1 -1
- package/server/.next/static/chunks/44t_7rpq23-bz.js +1 -0
- package/server/drizzle-selfhost/0011_reports.sql +56 -0
- package/server/drizzle-selfhost/0012_report_send_rule.sql +2 -0
- package/server/drizzle-selfhost/meta/_journal.json +14 -0
- package/server/server.js +1 -1
- package/server/src/lib/report/fonts/Geist-Regular.ttf +0 -0
- package/server/src/lib/report/fonts/Geist-SemiBold.ttf +0 -0
- package/server/src/lib/report/fonts/GeistMono-Regular.ttf +0 -0
- package/server/src/lib/report/fonts/OFL.txt +92 -0
- package/tools/reset-login.mjs +2 -0
- package/server/.next/server/chunks/[root-of-the-server]__04q-9779vl4kn._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__04u9e45_g1jdi._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__06nrq_1pbp3z-._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__06uaa_2zbg57p._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__081hh3_un4awi._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__09gla7jgbw2bs._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__0a0st8-rftztn._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__0dfx2psnngcys._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__0di45l_tnq1pm._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__0ej4hdoyogtji._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__0g81f_2ecmg8a._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__0jma907r441wi._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__0t0dd5t5rch1i._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__0ty2qkszfdr5t._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__0ugx1i8km15fl._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__0ux1hi2fgqxu7._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__12tmfv427e9cb._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__1481y3utu_a_o._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__14e0j38785glf._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__1_0vd5-tvmsg8._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__1_goy0uhapvk9._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__1ac-dzt5bffr2._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__1ajyr5xvo1-x5._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__1ey2qia7rofoc._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__1hlvqq0azku2x._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__1hrviq7s700td._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__1ifov-udw6__d._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__1ig0p-frprcbm._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__1ksyvvsf32jfg._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__1kzi1du1sliqb._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__1mvibnqor6lx_._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__1o-zo4qebuqwy._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__1po33h2u2o4e_._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__1qps9ushddgwe._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__1qrj37m-5y-56._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__1qyz1wi13rxxb._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__1r8mzvf7_9d2k._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__1rxke2_vpd7np._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__1sjp750034q4j._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__1won_frdj9jms._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__1wvp6wau5ueb9._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__1y9gsf61fh1fv._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__1yxudc_keazqo._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__1zvy7u_y3fzbz._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__208znvanagmpr._.js +0 -3
- package/server/.next/server/chunks/[root-of-the-server]__212-4r-w6a9sm._.js +0 -3
- package/server/.next/server/chunks/_0-5pjvqu672_v._.js +0 -49
- package/server/.next/server/chunks/_02qrz1g8sdvhe._.js +0 -49
- package/server/.next/server/chunks/_03qlijpos6a21._.js +0 -3
- package/server/.next/server/chunks/_06gv0srpbf_lk._.js +0 -3
- package/server/.next/server/chunks/_06lf75x-xhl7v._.js +0 -3
- package/server/.next/server/chunks/_0cbxgnkxr1uj8._.js +0 -3
- package/server/.next/server/chunks/_0sy878k2ywjbq._.js +0 -3
- package/server/.next/server/chunks/_0vjggb8yo5b9f._.js +0 -3
- package/server/.next/server/chunks/_0wval7co8z-pk._.js +0 -3
- package/server/.next/server/chunks/_103ai6ybnpq1k._.js +0 -3
- package/server/.next/server/chunks/_108e86rhye0o1._.js +0 -3
- package/server/.next/server/chunks/_12g2m3a5e94_5._.js +0 -3
- package/server/.next/server/chunks/_1_son1yzo5xvl._.js +0 -3
- package/server/.next/server/chunks/_1ap0upnvy5i_1._.js +0 -49
- package/server/.next/server/chunks/_1b-88djuoexz1._.js +0 -49
- package/server/.next/server/chunks/_1ctwjh8q__6_g._.js +0 -3
- package/server/.next/server/chunks/_1f14qy3kb8iac._.js +0 -3
- package/server/.next/server/chunks/_1fj4vzjpusyn8._.js +0 -5
- package/server/.next/server/chunks/_1i8u10u8nrzy2._.js +0 -3
- package/server/.next/server/chunks/_1k3v1-vgvzm_o._.js +0 -3
- package/server/.next/server/chunks/_1kcmwgs544mo-._.js +0 -3
- package/server/.next/server/chunks/_1ptcxyn1tzm9r._.js +0 -3
- package/server/.next/server/chunks/_1rskctyr7yt-b._.js +0 -3
- package/server/.next/server/chunks/node_modules_drizzle-orm_1oeq7sl_gbxs5._.js +0 -4
- package/server/.next/server/chunks/node_modules_drizzle-orm_1tmqw7vk5a4ik._.js +0 -4
- package/server/.next/server/chunks/src_063xvouojxyoa._.js +0 -3
- package/server/.next/server/chunks/src_088gmyaew7ds0._.js +0 -3
- package/server/.next/server/chunks/src_08fq45_-8xq5o._.js +0 -3
- package/server/.next/server/chunks/src_0hx0sol2clocu._.js +0 -3
- package/server/.next/server/chunks/src_0j84o_hkkaeg-._.js +0 -3
- package/server/.next/server/chunks/src_0y_4gogmeu-2k._.js +0 -3
- package/server/.next/server/chunks/src_13n1vi7uew4iu._.js +0 -3
- package/server/.next/server/chunks/src_1_fnzi0em_6er._.js +0 -3
- package/server/.next/server/chunks/src_1bqzr81r3wkvi._.js +0 -3
- package/server/.next/server/chunks/src_1wduh0eckiwl1._.js +0 -3
- package/server/.next/server/chunks/src_lib_0ma36vqcze7a9._.js +0 -7
- package/server/.next/server/chunks/src_lib_0ps7mu81f-6s1._.js +0 -7
- package/server/.next/server/chunks/src_lib_14grv5a5_n9o0._.js +0 -7
- package/server/.next/server/chunks/src_lib_1en6omqx66g9d._.js +0 -23
- package/server/.next/server/chunks/src_lib_1znb-e7g8dkgc._.js +0 -7
- package/server/.next/server/chunks/src_lib_collector_runners_ts_12z4gtgikss74._.js +0 -21
- package/server/.next/server/chunks/src_lib_data_metrics-db_ts_0zp7x6l28a2ep._.js +0 -3
- package/server/.next/server/chunks/src_lib_demo_11p30f_ci6ie2._.js +0 -3
- package/server/.next/server/chunks/src_lib_notify_lang_ts_1r2w02ctaky7e._.js +0 -3
- package/server/.next/server/chunks/ssr/[root-of-the-server]__03xevz8n-mc20._.js +0 -4
- package/server/.next/server/chunks/ssr/[root-of-the-server]__07zuxj3veqm14._.js +0 -3
- package/server/.next/server/chunks/ssr/[root-of-the-server]__0de1senl_kfo5._.js +0 -3
- package/server/.next/server/chunks/ssr/[root-of-the-server]__19twn3g5nv5q1._.js +0 -3
- package/server/.next/server/chunks/ssr/[root-of-the-server]__19wvac83zh5-9._.js +0 -3
- package/server/.next/server/chunks/ssr/[root-of-the-server]__1m38od9tgaroe._.js +0 -3
- package/server/.next/server/chunks/ssr/[root-of-the-server]__1mxpszbk1aup8._.js +0 -4
- package/server/.next/server/chunks/ssr/[root-of-the-server]__1tj-iwvrxfd1a._.js +0 -3
- package/server/.next/server/chunks/ssr/[root-of-the-server]__1zmuaump_n9c1._.js +0 -3
- package/server/.next/server/chunks/ssr/_01n29sxn-py3x._.js +0 -3
- package/server/.next/server/chunks/ssr/_03d3sxmob-gr7._.js +0 -3
- package/server/.next/server/chunks/ssr/_0c8kew3jsb-yb._.js +0 -3
- package/server/.next/server/chunks/ssr/_0qhvl_fw4qetx._.js +0 -4
- package/server/.next/server/chunks/ssr/_0rsh9v4b3yj0b._.js +0 -3
- package/server/.next/server/chunks/ssr/_0rw2pberdmaa5._.js +0 -3
- package/server/.next/server/chunks/ssr/_0zkmkbrbc96-h._.js +0 -3
- package/server/.next/server/chunks/ssr/_16vvfyez78u5k._.js +0 -3
- package/server/.next/server/chunks/ssr/_1d0anr0hjs5k5._.js +0 -3
- package/server/.next/server/chunks/ssr/_1fj4vzjpusyn8._.js +0 -5
- package/server/.next/server/chunks/ssr/_1rskctyr7yt-b._.js +0 -3
- package/server/.next/server/chunks/ssr/_next-internal_server_app_(console)_settings_page_actions_12wgjpd0lbh12.js +0 -3
- package/server/.next/server/chunks/ssr/src_0jxjbvkvg0bjg._.js +0 -3
- package/server/.next/server/chunks/ssr/src_1emolu5lrse98._.js +0 -6
- package/server/.next/server/chunks/ssr/src_1sdwdnblbiq_g._.js +0 -3
- package/server/.next/server/chunks/ssr/src_app_signin_12a3ifphkkcs7._.js +0 -3
- package/server/.next/server/chunks/ssr/src_lib_0nbad7vu413-f._.js +0 -23
- package/server/.next/server/chunks/ssr/src_lib_data_metrics-db_ts_0zp7x6l28a2ep._.js +0 -3
- package/server/.next/static/chunks/028g933xfv8jn.js +0 -1
- package/server/.next/static/chunks/0utjdzwgd7zw2.js +0 -1
- package/server/.next/static/chunks/1sa-1lde5_ikt.js +0 -1
- package/server/.next/static/chunks/2zzk4wxiacgja.css +0 -3
- package/server/.next/static/chunks/33avmrae70_xs.js +0 -1
- package/server/.next/static/chunks/3lvz18snt6489.js +0 -1
- package/server/.next/static/chunks/3qv9klayap1tz.js +0 -1
- package/server/.next/static/chunks/3xkvsl4vbpm41.js +0 -1
- package/server/.next/static/chunks/3yu0azvye6wr_.js +0 -1
- /package/server/.next/static/{fogXXBSOhoHV3eIf8_j28 → GBOxoOLq1PhjMCzrjHGdg}/_buildManifest.js +0 -0
- /package/server/.next/static/{fogXXBSOhoHV3eIf8_j28 → GBOxoOLq1PhjMCzrjHGdg}/_clientMiddlewareManifest.js +0 -0
- /package/server/.next/static/{fogXXBSOhoHV3eIf8_j28 → GBOxoOLq1PhjMCzrjHGdg}/_ssgManifest.js +0 -0
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
(()=>{"use strict";module.exports=[658266,618127,211256,e=>{var t=e.i(278619),n=e.i(959408),r=e.i(867274),s=e.i(413230),a=e.i(7494),i=e.i(250474),o=e.i(90801),l=e.i(32391);let u=["next","eslint-config-next"],d={CRITICAL:"critical",HIGH:"high",MODERATE:"moderate",LOW:"low",UNKNOWN:"unknown"};function c(e,t){if(!e||!(0,l.C)(e))return null;let n=t.map(e=>e.fixed).filter(t=>!!t&&(0,l.C)(t)&&(0,i.f)(t,e)>0);if(!n.length)return null;let r=n.filter(t=>(0,o.J)(e,t));return(r.length?r:n).reduce((e,t)=>(0,i.f)(t,e)>0?t:e)}function p(e,t){let n=c(e,t),r=n?t.map(e=>e.fixed).filter(e=>!!e&&(0,l.C)(e)&&(0,i.f)(e,n)>0):[],s=r.reduce((e,t)=>null===e||(0,i.f)(t,e)>0?t:e,null),o=s?` (${1===r.length?"one fix needs":"some fixes need"} Next.js ${s.split(".")[0]})`:"";return`Next.js ${e??"(unknown version)"} has ${(0,a.q)(t.length)} (${(0,a.N)(t).toLowerCase()}), ${n?`fixed in ${n}${o}`:"no fix yet"}.`}e.s(["P",0,p,"p",0,function(e){if(!e||"vulnerable"!==e.status||!e.findings.length||!e.version)return null;let t=c(e.version,e.findings);if(!t)return null;let n=d[(0,a.N)(e.findings)],r=[...new Set(e.findings.map(e=>e.id))],s=[...new Set(e.findings.flatMap(e=>e.cve?[e.cve]:[]))];return{from:e.version,to:t,upgrades:[{package:"next",to:t,vulnIds:r,cves:s,severity:n},{package:"eslint-config-next",to:t,vulnIds:[],cves:[],severity:n,companionOf:"next"}],installed:new Map(u.map(t=>[t,e.version]))}},"F",0,function(e){let t=e.find(e=>"next"===e.package&&!e.companionOf);return!t||e.some(e=>"eslint-config-next"===e.package)?e:[...e,{package:"eslint-config-next",to:t.to,vulnIds:[],cves:[],severity:t.severity,companionOf:"next"}]}],618127);let f=e=>Math.round(e).toLocaleString("en-US"),m=(e,t)=>Math.floor((e.getTime()-t.getTime())/864e5),h=(e,t)=>`${e} ${t}${1===e?"":"s"}`,g=e=>{try{let t=new URL(e);return`${t.host}${t.pathname}`}catch{return e}},y=e=>{try{return new URL(e).host}catch{return e}},v=e=>{try{return new URL(e).pathname}catch{return"/"}},k="Down · ",w=new Set(["failure","timed_out","startup_failure"]),b=(e,t,n)=>({rule:e,subject:t,status:"unknown",resourceId:null,accountId:null,title:t,message:"",provider:null,sampleAt:null,...n}),$=e=>"firestore"===e.provider?"firebase":"d1"===e.provider?"cloudflare":e.provider,A=new Set(["turso","upstash","d1"]),I={MonitorDown:(e,t)=>e.monitors.map(e=>{let r=b("MonitorDown",e.id,{resourceId:e.appId,title:`${e.appName} ${"heartbeat"===e.kind?e.url:v(e.url)}`,provider:"vercel",sampleAt:e.lastCheckedAt}),s=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(k)?t.slice(k.length):"no ping in time"}.`}}return e.movedTo?{...r,status:"ok",message:`${y(e.url)} moved to ${e.movedTo}; MonitorDomainMoved takes over.`}:e.failStreak>=s?{...r,status:"firing",message:(0,n.H)(e)?`${g(e.url)} failed its check (${(0,n.H)(e)}) on ${s} consecutive checks.`:`${g(e.url)} returned ${e.lastStatus?`HTTP ${e.lastStatus}`:"no answer"} on ${s} consecutive checks.`}:{...r,status:0===e.failStreak&&e.lastCheckedAt?"ok":"unknown",message:`${g(e.url)} answers again.`}}),MonitorDomainMoved:e=>e.monitors.filter(e=>"http"===e.kind).map(e=>{let t=b("MonitorDomainMoved",e.id,{resourceId:e.appId,title:`${e.appName} ${v(e.url)}`,provider:"vercel"});return e.movedTo?{...t,status:"firing",message:`${y(e.url)} is no longer a domain of ${e.appName}; production is on ${e.movedTo}.`}:{...t,status:"ok",message:`The monitor checks ${y(e.url)}, a domain of ${e.appName}.`}}),CollectorStale:(e,t)=>{let n=e.lastMinuteRunAt;return[b("CollectorStale","collector",{status:!n||e.now.getTime()-n.getTime()>(t??5)*6e4?"firing":"ok",title:"collector",message:n?`The last minute run finished ${f((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=b("HighLatency",e.id,{resourceId:e.appId,title:`${e.appName} ${v(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 ${f(e.p95Last10)} ms over the last 10 minutes (limit ${f(r)} ms).`}}),DeploymentFailed:e=>e.apps.map(e=>{let t=b("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=>b("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=b("CertExpiringSoon",n.id,{resourceId:n.id,title:n.name,provider:"cloudflare"});if(!n.tlsNotAfter)return r;let s=m(n.tlsNotAfter,e.now);return{...r,status:s<(t??14)?"firing":"ok",message:`The TLS certificate of ${n.name} expires in ${h(s,"day")}.`}}),DomainExpiringSoon:(e,t)=>e.domains&&e.domains.map(n=>{let r=b("DomainExpiringSoon",n.id,{resourceId:n.id,title:n.name,provider:"cloudflare"});if(!n.expiresAt)return r;let s=m(n.expiresAt,e.now);return{...r,status:s<(t??30)?"firing":"ok",message:`${n.name} expires in ${h(s,"day")}.`}}),StorageAlmostFull:(e,t)=>e.dbs&&e.dbs.filter(e=>"firestore"!==e.provider).map(e=>{let n=b("StorageAlmostFull",e.id,{resourceId:e.id,title:e.name,provider:$(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 ${f(e.sizeBytes/1e6)} MB of ${f(e.sizeLimitBytes/1e6)} MB (${f(r)}%).`}}),NeonComputeHigh:(e,t)=>e.dbs&&e.dbs.filter(e=>"neon"===e.provider).map(e=>{let n=b("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 ${f(e.cuHours)} of ${f(e.cuLimit??100)} CU-hours this month.`}}),FirestoreQuotaHigh:(e,t)=>e.dbs&&e.dbs.filter(e=>"firestore"===e.provider).map(e=>{let n=b("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 ${f(e.readsToday)} of ${f(e.readsLimit)} documents today (${f(r)}%).`}}),AutoPauseRisk:(e,t)=>e.dbs&&e.dbs.filter(e=>"supabase"===e.provider).map(n=>{let r=b("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 s=Math.floor((e.now.getTime()-n.lastApiAt.getTime())/864e5);return{...r,status:s>=(t??4)?"firing":"ok",message:`No API traffic for ${h(s,"day")}. Supabase pauses free projects after about 7 days.`}}),DnsProxiedToVercel:e=>e.dns&&e.dns.map(e=>b("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=>A.has(e.provider)).map(e=>{let n=b("DbQuotaHigh",e.id,{resourceId:e.id,title:e.name,provider:$(e)});return null==e.quotaPct?n:{...n,status:e.quotaPct>(t??80)?"firing":"ok",message:`${e.name}: ${e.quotaLabel??"usage"} at ${f(e.quotaPct)}% of the free plan.`}}),ComputeHigh:(e,t)=>e.compute?e.compute.map(n=>{let s=b("ComputeHigh",n.id,{resourceId:n.id,title:n.name,provider:"supabase",sampleAt:n.latest?new Date(n.latest.at):null}),a=(0,r.B)(n.latest,(0,r.V)(t),e.now);return null===a?s:{...s,status:a.length?"firing":"ok",message:a.length?`${n.name}: ${a.join(", ")}.`:`${n.name} compute is back under the limits.`}}):null,CredentialExpiring:(e,t)=>e.accounts.map(n=>{let r=b("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 s=m(n.expiresAt,e.now);return{...r,status:s<(t??14)?"firing":"ok",message:s<0?`The ${n.provider} credential ${n.label} has expired.`:`The ${n.provider} credential ${n.label} expires in ${h(s,"day")}.`}}),VulnerableDependency:e=>e.deps?e.deps.flatMap(t=>{let n=e.apps.find(e=>e.id===t.appId);if(!n)return[];let r=b("VulnerableDependency",t.appId,{resourceId:t.appId,title:n.name,provider:"github"});if(t.error)return[r];let a=(0,s.g)(t.vulns);return a?[{...r,status:"firing",message:(0,s.L)(t.vulns),..."critical"===a?{severity:"critical"}:{}}]:[{...r,status:"ok",message:`${n.name} has no moderate, high or critical dependency advisories.`}]}):null,FrameworkVulnerable:e=>e.frameworks?e.frameworks.flatMap(t=>{let n=e.apps.find(e=>e.id===t.appId);if(!n)return[];let r=b("FrameworkVulnerable",t.appId,{resourceId:t.appId,title:n.name});return"ok"===t.status?[{...r,status:"ok",message:`${n.name} runs Next.js ${t.version??"(unknown version)"} with no known advisories.`}]:"vulnerable"===t.status&&t.findings.length?[{...r,status:"firing",message:p(t.version,t.findings),..."CRITICAL"===(0,a.N)(t.findings)?{severity:"critical"}:{}}]:[r]}):null,CiFailing:e=>e.ci?.length?e.ci.flatMap(t=>{let n=e.apps.find(e=>e.id===t.appId);if(!n)return[];let r=b("CiFailing",t.appId,{resourceId:t.appId,title:n.name,provider:"github"});if(!t.run||"none"in t.run||"completed"!==t.run.status)return[r];let s=`The latest ${t.run.name??"Actions"} run on ${t.run.branch??t.branch??"the default branch"}`;return"success"===t.run.conclusion?[{...r,status:"ok",message:`${s} passed.`}]:w.has(t.run.conclusion??"")?[{...r,status:"firing",message:`${s} failed${t.run.runNumber?` (run #${t.run.runNumber})`:""}.`}]:[r]}):null,OsSecurityUpdate:(e,t)=>(function(e,t){if(!e.os)return null;let n=t??7,r=e.os.system,s=e.os.updates.filter(e=>null!==e.score&&e.score>=n).sort((e,t)=>(t.score??0)-(e.score??0)),a=s.slice(0,3).map(e=>`${e.source} fixes ${e.cves[0]} (${e.score.toFixed(1)})${e.cves.length>1?` and ${e.cves.length-1} more`:""}`);s.length>3&&a.push(`${s.length-3} more packages`),e.os.kernelWaiting&&a.push(`kernel ${e.os.kernelWaiting.installed} waits for a reboot`);let i=b("OsSecurityUpdate","os",{title:r});return!a.length&&e.os.partial?[i]:a.length?[{...i,status:"firing",message:`On ${r}: ${a.join("; ")}.`,...s.some(e=>(e.score??0)>=9)?{severity:"critical"}:{}}]:[{...i,status:"ok",message:`On ${r}, no waiting security update fixes a CVE scored ${n.toFixed(1)} or more, and the newest kernel runs.`}]})(e,t)};e.s(["f",0,function(e,n,r){let s=[],a=new Set;for(let i of n){if(!i.enabled||r&&!r.includes(i.key)||!t._[i.key])continue;let n=I[i.key](e,i.threshold);n&&(a.add(i.key),s.push(...n))}return{observations:s,evaluated:a}}],658266);let S=["MonitorDown","HighLatency"],x=["telegram","discord","webhook","smtp"],V=e=>e.channels.some(e=>x.includes(e));function D(e,t){return t.collectorStale&&"CollectorStale"!==e.rule?"CollectorStale":e.resourceId&&S.includes(e.rule)?t.mutedApps.get(e.resourceId)??null:null}let R=(e,t)=>"critical"===t&&"warning"===e?"critical":e,M=(e,t)=>e.silencedUntilResolved||null!==e.silencedUntil&&e.silencedUntil.getTime()>t.getTime(),C=(e,t)=>`${e}|${t}`;e.s(["f",0,function(e,n,r,s,a){let i={open:[],touch:[],resolve:[]},o=new Map(s.map(e=>[e.key,e])),l=new Map(n.map(e=>[C(e.rule,e.subject),e])),u=new Set(e.map(e=>C(e.ruleKey,e.subject))),d=e=>i.resolve.push({id:e.id,pending:e.notifiedOpen?"resolve":null});for(let n of e){let e=o.get(n.ruleKey),s=l.get(C(n.ruleKey,n.subject));if(!e||!e.enabled){i.resolve.push({id:n.id,pending:null});continue}if(!r.has(n.ruleKey))continue;if(!s){i.resolve.push({id:n.id,pending:null});continue}if("unknown"===s.status)continue;let u=s.provider?a.incidents.get(s.provider)??null:null;if("firing"===s.status){let t=D(s,a),r=n.notifiedOpen&&null!==n.lastNotifiedAt&&a.now.getTime()-n.lastNotifiedAt.getTime()>=216e5,o={id:n.id,okStreak:0,lastSampleAt:s.sampleAt??n.lastSampleAt,lastSeenAt:a.now,message:s.message,causedBy:t,providerIncident:u},l=!n.notifiedOpen&&(!n.pendingSince||a.now.getTime()-n.pendingSince.getTime()>=216e5);(r||l)&&!M(n,a.now)&&!t&&null===n.pending&&V(e)&&(o.pending=r?"repeat":"open"),i.touch.push(o);continue}if(!t._[n.ruleKey].sampled||null===s.sampleAt){d(n);continue}if(!(null===n.lastSampleAt||s.sampleAt.getTime()>n.lastSampleAt.getTime()))continue;let c=n.okStreak+1;c>=2?d(n):i.touch.push({id:n.id,okStreak:c,lastSampleAt:s.sampleAt})}for(let e of n){if("firing"!==e.status||u.has(C(e.rule,e.subject))||a.maintenance.has(e.subject)||e.resourceId&&a.maintenance.has(e.resourceId))continue;let t=o.get(e.rule);if(!t)continue;let n=D(e,a);i.open.push({ruleKey:e.rule,subject:e.subject,resourceId:e.resourceId,accountId:e.accountId,severity:R(t.severity,e.severity),title:e.title,message:e.message,startedAt:a.now,lastSeenAt:a.now,lastSampleAt:e.sampleAt,causedBy:n,providerIncident:e.provider?a.incidents.get(e.provider)??null:null,pending:n||!V(t)?null:"open"})}return i}],211256)},582748,e=>{var t=e.i(89491),n=e.i(960063),r=e.i(800366),s=e.i(326003),a=e.i(843448),i=e.i(647006),o=e.i(328203);e.s(["d",0,function(e,i){let l={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,s.k)(s.B,e.data),n=(0,o.Z)(t.lastTrafficAt),r=(0,o.Z)(t.trafficAt),i=n??(r&&!t.trafficError?new Date(r.getTime()-6048e5):null);return{...l,provider:"supabase",sizeBytes:t.sizeBytes??null,sizeLimitBytes:a.R,lastApiAt:i}}if("neon_project"===e.kind){let t=(0,s.k)(s.s,e.data),n=(t.branches??[]).map(e=>e.logicalSize).filter(e=>"number"==typeof e);return{...l,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,s.k)(s.w,e.data),r=(0,o.Z)(t.opsAt),a=null!=t.reads&&r&&r.getTime()>=(0,n.a)(i).getTime()?t.reads:null,u=null!=t.latencyMs||null!=t.pingError;return{...l,provider:"firestore",readsToday:a,readsLimit:n.T.reads,quotaExhausted:u?"RESOURCE_EXHAUSTED"===t.pingReason:null}}if("turso_database"===e.kind){let n=(0,s.k)(s.N,e.data),r=(0,t.u)((0,t.G)(n,i));return{...l,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,s.k)(s.e,e.data),r=(0,t.u)((0,t.$)(n,i));return{...l,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,s.k)(s.x,e.data),r=(0,t.u)((0,t.I)(n,i));return{...l,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),s=[];for(let e of n){let n=t.filter(t=>(0,o.J)(t.name,r)===e.name.toLowerCase().replace(/\.$/,"")),a=[...new Set(n.flatMap(e=>(0,i.q)(e.data).vercel?.recommendedIps??[]))];for(let t of(0,i.q)(e.data).records){if(!(0,o.l)(t,a))continue;let r=t.name.toLowerCase().replace(/\.$/,""),i=n.find(e=>e.name.toLowerCase().replace(/\.$/,"")===r);s.push({id:`${e.id}:${t.id}`,resourceId:i?.id??e.id,name:t.name,proxied:t.proxied,pointsToVercel:!0})}}return s},"r",0,function(e,t){return e.length||t.length?[...e.map(e=>({id:e.id,name:e.name,tlsNotAfter:null,expiresAt:(0,o.Z)((0,i.q)(e.data).rdap?.expiresAt)})),...t.map(e=>({id:e.id,name:e.name,tlsNotAfter:(0,o.Z)((0,i.q)(e.data).tls?.notAfter),expiresAt:null}))]:null}])},293857,e=>{let t=["status","severity","rule","target","detail","cause","step","since","threshold"],n=["id","en"],r=/\{([a-zA-Z_]+)\}/g;e.s(["I",0,{en:"Test message: Watchbell's sentence about what it saw goes here.",id:"Pesan tes: di sini nanti kalimat Watchbell soal apa yang dilihatnya."},"z",0,"alerts.messageTemplates","_",0,function(e){if(!e||"object"!=typeof e||Array.isArray(e))return{};let s={};for(let[a,i]of Object.entries(e)){if(!i||"object"!=typeof i)continue;let e={};for(let s of n){let n=i[s];"string"==typeof n&&n.trim()&&null===function(e){if(e.length>1e3)return`Keep it under ${1e3.toLocaleString("en-US")} characters.`;for(let[,n]of e.matchAll(r))if(!t.includes(n))return`{${n}} isn't a field. Use ${t.map(e=>`{${e}}`).join(", ")}.`;return null}(n)&&(e[s]=n)}Object.keys(e).length&&(s[a]=e)}return s},"l",0,function(e,t){return e.replace(/\r\n?/g,"\n").replace(/[ \t]+$/gm,"").trim().split("\n").flatMap(e=>{let n=[...e.matchAll(r)].map(e=>e[1]).filter(e=>Object.hasOwn(t,e));return n.length&&n.every(e=>!t[e].trim())?[]:[e.replace(r,(e,n)=>Object.hasOwn(t,n)?t[n]:e)]}).join("\n").replace(/\n{3,}/g,"\n\n").trim()}])},485647,e=>{var t=e.i(875225),n=e.i(349129),r=e.i(518899),s=e.i(924924),a=e.i(618916),i=e.i(582748),o=e.i(794713),l=e.i(274991),u=e.i(826148),d=e.i(390163),c=e.i(662860),p=e.i(764766),f=e.i(433609),m=e.i(800523);async function h(){return(0,s.f)().select({appId:a.links.fromResourceId,dbId:a.links.toResourceId}).from(a.links).where((0,t.u)(a.links.kind,"uses_db")).limit(500)}async function g(e){let g=(0,t.b)((0,t.u)(a.resources.monitored,!0),(0,t.M)(a.resources.goneAt)),[y,v,k,w,b]=await Promise.all([(0,o.d)(),(0,o.D)(),(0,s.f)().select({m:a.monitors,appName:a.resources.name,appMeta:a.resources.meta}).from(a.monitors).innerJoin(a.resources,(0,t.u)(a.resources.id,a.monitors.resourceId)).where((0,t.b)(g,(0,t.u)(a.monitors.paused,!1),(0,t.u)(a.monitors.ownerPaused,!1))),(0,s.f)().select({id:a.resources.id,name:a.resources.name,meta:a.resources.meta}).from(a.resources).where((0,t.b)(g,(0,t.u)(a.resources.kind,"app"))),(0,s.f)().select({id:a.accounts.id,provider:a.accounts.provider,label:a.accounts.label,expiresAt:a.accounts.expiresAt,status:a.accounts.status,lastError:a.accounts.lastError}).from(a.accounts)]),$=k.map(e=>e.m.id),A=$.length?await (0,s.f)().select({id:a.checks.monitorId,n:r.B`count(*)::int`,p95:r.B`percentile_cont(0.95) within group (order by ${a.checks.latencyMs})::float8`}).from(a.checks).where((0,t.b)((0,t.y)(a.checks.monitorId,$),(0,t.B)(a.checks.at,new Date(e.getTime()-6e5)),(0,t.u)(a.checks.inMaintenance,!1))).groupBy(a.checks.monitorId):[],I=w.map(e=>e.id),S=I.length?await (0,s.f)().selectDistinctOn([a.deployments.resourceId],{appId:a.deployments.resourceId,state:a.deployments.state,sha:a.deployments.commitSha,createdAt:a.deployments.createdAtProvider}).from(a.deployments).where((0,t.b)((0,t.y)(a.deployments.resourceId,I),(0,t.u)(a.deployments.target,"production"))).orderBy(a.deployments.resourceId,(0,n.A)(a.deployments.createdAtProvider)):[],x=await (0,s.f)().select({id:a.resources.id,name:a.resources.name,kind:a.resources.kind,state:a.snapshots.state,data:a.snapshots.data}).from(a.resources).innerJoin(a.snapshots,(0,t.u)(a.snapshots.resourceId,a.resources.id)).where((0,t.b)(g,(0,t.y)(a.resources.kind,["supabase_project","neon_project","firestore","turso_database","upstash_redis","d1_database","zone","domain"]))),V=e=>x.filter(t=>t.kind===e),D=x.filter(e=>["supabase_project","neon_project","firestore","turso_database","upstash_redis","d1_database"].includes(e.kind)),R=V("zone"),M=V("domain"),C=await h(),O=await (0,c.Y)().catch(()=>null),T=I.length?await (0,f.a)(I).catch(()=>null):null,B=I.length?await (0,m.F)(I).catch(()=>null):null,N=I.length?await (0,l.f)(I).catch(()=>null):null,E="on"===(0,u.C)()?(0,d.f)(await (0,u.y)().catch(()=>null)):null;return{now:e,lastMinuteRunAt:y,lastAnyRunAt:v,monitors:k.map(({m:e,appName:t,appMeta:n})=>{let r=A.find(t=>t.id===e.id),s="heartbeat"===e.kind;return{id:e.id,appId:e.resourceId,appName:t,url:s?e.name??"heartbeat":e.url,kind:s?"heartbeat":"http",state:e.state,failStreak:e.failStreak,lastStatus:e.lastStatus,lastError:e.lastError,lastCheckedAt:e.lastCheckedAt,p95Last10:r?.p95??null,checksLast10:r?.n??0,movedTo:s?null:(0,p.u)(e.url,{name:t,meta:n},w.filter(t=>t.id!==e.resourceId),{lastError:e.lastError})?.to??null}}),apps:w.map(e=>{let t=S.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:b,dbs:D.length?D.map(t=>(0,i.d)(t,e)).filter(e=>null!==e):null,domains:(0,i.r)(R,M),dns:(0,i.S)(R,M),links:C,compute:O,deps:T&&T.length?T:null,frameworks:B&&B.length?B:null,ci:N&&N.length?N:null,os:E}}e.s(["f",0,g])},532148,e=>{var t=e.i(875225),n=e.i(349129),r=e.i(518899),s=e.i(924924),a=e.i(618916),i=e.i(278619),o=e.i(658266),l=e.i(211256),u=e.i(293857),d=e.i(275426),c=e.i(154491),p=e.i(485647),f=e.i(739886),m=e.i(111970);let h={vercel:"Vercel",supabase:"Supabase",neon:"Neon",cloudflare:"Cloudflare",firebase:"Firebase",gcp:"Google Cloud"};async function g(){return(await (0,s.f)().select().from(a.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 y(e,n={}){let[r,u,v,k,w,b]=await Promise.all([(0,p.f)(e),g(),(0,s.f)().select().from(a.alerts).where((0,t.M)(a.alerts.resolvedAt)),(0,s.f)().select({provider:a.providerStatus.provider,state:a.providerStatus.state}).from(a.providerStatus),(0,f.f)(),(0,m.I)()]),$=new Map(r.accounts.map(e=>[e.id,e.provider])),A=v.filter(e=>!(0,c.O)(b,e.ruleKey,e.accountId?$.get(e.accountId):null)),I=(0,o.f)(r,u,n.only),S=I.evaluated,x=I.observations.filter(e=>!(0,c.O)(b,e.rule,e.provider)),V=u.find(e=>"CollectorStale"===e.key),D=void 0===r.lastAnyRunAt?r.lastMinuteRunAt:r.lastAnyRunAt,R=!!V?.enabled&&(!D||e.getTime()-D.getTime()>(V.threshold??5)*6e4),M=new Map((r.dbs??[]).filter(e=>"paused"===e.state).map(e=>[e.id,e.name])),C=new Map(r.links.filter(e=>M.has(e.dbId)).map(e=>[e.appId,`DatabasePaused \xb7 ${M.get(e.dbId)}`])),O=new Map(k.filter(e=>"warn"===e.state||"err"===e.state).map(e=>["gcp"===e.provider?"firebase":e.provider,h[e.provider]??e.provider])),T=(0,d.u)(w,r.monitors.map(e=>({id:e.id,appId:e.appId})),e,r.apps.map(e=>e.id)),B=A.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})),N=(0,l.f)(B,x,S,u,{now:e,collectorStale:R,mutedApps:C,incidents:O,maintenance:T});return N.open.length||N.touch.length||N.resolve.length?(await (0,s.f)().transaction(async n=>{for(let t of N.open)await n.insert(a.alerts).values({...t,pendingSince:t.pending?e:null}).onConflictDoNothing();for(let r of N.touch){let{id:s,pending:i,...o}=r;await n.update(a.alerts).set({...o,...i?{pending:i,pendingSince:e}:{}}).where((0,t.b)((0,t.u)(a.alerts.id,s),(0,t.M)(a.alerts.resolvedAt)))}for(let r of N.resolve)await n.update(a.alerts).set({resolvedAt:e,pending:r.pending,pendingSince:r.pending?e:null}).where((0,t.b)((0,t.u)(a.alerts.id,r.id),(0,t.M)(a.alerts.resolvedAt)))}),{opened:N.open.length,resolved:N.resolve.length}):{opened:0,resolved:0}}let v=r.B`case ${a.alerts.severity} when 'critical' then 0 when 'warning' then 1 else 2 end`;async function k(e=new Set){return(await (0,s.f)().select({a:a.alerts,name:a.resources.name,kind:a.resources.kind}).from(a.alerts).leftJoin(a.resources,(0,t.u)(a.resources.id,a.alerts.resourceId)).where((0,t.b)((0,t.M)(a.alerts.resolvedAt),(0,m.s)(e))).orderBy(v,(0,n.A)(a.alerts.startedAt)).limit(200)).map(({a:e,name:t,kind:n})=>({...e,resourceName:t??null,resourceKind:n??null}))}async function w(){return k(await (0,m.I)())}async function b(e){return(await (0,s.f)().select({id:a.alerts.id,ruleKey:a.alerts.ruleKey,severity:a.alerts.severity,title:a.alerts.title,resourceId:a.alerts.resourceId,startedAt:a.alerts.startedAt,resolvedAt:a.alerts.resolvedAt}).from(a.alerts).where((0,t.b)((0,t.E)(a.alerts.resolvedAt),(0,t.B)(a.alerts.resolvedAt,new Date(e.getTime()-6048e5)))).orderBy((0,n.A)(a.alerts.resolvedAt)).limit(50)).flatMap(e=>e.resolvedAt?[{...e,resolvedAt:e.resolvedAt}]:[])}async function $(){try{let[e]=await (0,s.f)().select({value:a.settings.value}).from(a.settings).where((0,t.u)(a.settings.key,u.z)).limit(1);return(0,u._)(e?.value)}catch{return{}}}e.s(["$",0,y,"q",0,k,"I",0,b,"i",0,w,"w",0,$])},274991,e=>{var t=e.i(875225),n=e.i(924924),r=e.i(618916),s=e.i(479301);async function a(e,i=new Date){var o;let l=e.filter(s.f);return l.length?(o=await (0,n.f)().select({appId:r.appRepos.appId,repo:r.githubRepos.fullName,branch:r.githubRepos.defaultBranch,run:r.githubRepos.actions,checkedAt:r.githubRepos.actionsCheckedAt,goneAt:r.githubRepos.goneAt}).from(r.appRepos).innerJoin(r.githubRepos,(0,t.u)(r.githubRepos.id,r.appRepos.repoId)).where((0,t.y)(r.appRepos.appId,l)),o.filter(e=>e.run&&!e.goneAt).map(e=>({appId:e.appId,repo:e.repo,branch:e.branch,run:e.checkedAt&&i.getTime()-e.checkedAt.getTime()<=1728e5?e.run:null}))):[]}e.s(["f",0,a])},433609,751762,970465,800523,e=>{var t=e.i(90801),n=e.i(875225),r=e.i(349129),s=e.i(518899),a=e.i(924924),i=e.i(618916),o=e.i(921991),l=e.i(547499),u=e.i(479301),d=e.i(32391),c=e.i(804581),p=e.i(891262),f=e.i(581321),m=e.i(413230),h=e.i(455744),g=e.i(971724),y=e.i(105954),v=e.i(206033),k=e.i(455037);let w=h.z.array(g.z.object({name:y.z.string(),type:y.z.string(),sha:y.z.string(),size:v.z.number().optional()}));async function b(e,t,n,r={},s=null){if(!(0,k.M)(t)||!(0,k.c)(n))return{ok:!1,kind:"format",error:"That isn't a repository name or ref."};if(null!==s&&(0,f.Q)(s)!==s)return{ok:!1,kind:"format",error:"That isn't a folder in a repository."};let a=s?s.split("/").map(encodeURIComponent).join("/"):"",i=await (0,k.j)(`/repos/${(0,k.f)(t)}/contents/${a}?ref=${encodeURIComponent(n)}`,e,r);if(!i.ok)return i;let o=w.safeParse(i.data);return o.success?{ok:!0,data:o.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."}}async function $(e,t,n,r={}){if(!(0,k.M)(t)||!(0,k.c)(n))return{ok:!1,kind:"format",error:"That isn't a repository name or branch."};let s=await (0,k.j)(`/repos/${(0,k.f)(t)}/git/ref/heads/${n.split("/").map(encodeURIComponent).join("/")}`,e,r);return s.ok?{ok:!0,data:!0}:"missing"===s.kind?{ok:!0,data:!1}:s}function A(e,t,n,r,s,a={}){return(0,k.V)(e,t,n,r,s,a)}async function I(e,t,n={}){if(!(0,k.M)(t))return{ok:!1,kind:"format",error:"That isn't a repository name."};let r=await (0,k.j)(`/repos/${(0,k.f)(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 s=(0,m.E)(r.data);return s?{ok:!0,data:{alerts:s}}:{ok:!1,kind:"format",error:"GitHub answered the Dependabot alerts in a format the console doesn't recognise."}}var S=e.i(502240);async function x(){let[e]=await (0,a.f)().select().from(i.accounts).where((0,n.u)(i.accounts.provider,"github")).orderBy((0,r.M)(i.accounts.createdAt)).limit(1);if(!e)return{error:"GitHub isn't connected."};let t=(0,o.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 V(){let[e]=await (0,a.f)().select({value:i.settings.value}).from(i.settings).where((0,n.u)(i.settings.key,"deps.scanAll")).limit(1);return e?.value===!0}let D=e=>{let t=(0,S.w)(e);return{dir:(0,f.Q)((e??{}).rootDirectory),unsupported:(0,f.l)((e??{}).rootDirectoryUnsupported),branch:(0,S.i)((0,S.V)(e),null),...t?{fallback:t}:{}}};async function R(e){let t=[...new Set(e.filter(u.f))],r=new Map;if(!t.length)return r;let s=await (0,a.f)().select({repoId:i.appRepos.repoId,name:i.resources.name,monitored:i.resources.monitored,meta:i.resources.meta}).from(i.appRepos).innerJoin(i.resources,(0,n.u)(i.resources.id,i.appRepos.appId)).where((0,n.b)((0,n.y)(i.appRepos.repoId,t),(0,n.M)(i.resources.goneAt))).limit(1e3);for(let e of(s.sort((e,t)=>Number(!!t.monitored)-Number(!!e.monitored)||(e.name<t.name?-1:+(e.name>t.name))),s))r.has(e.repoId)||r.set(e.repoId,D(e.meta));return r}async function M(){let e={id:i.githubRepos.id,fullName:i.githubRepos.fullName,defaultBranch:i.githubRepos.defaultBranch,scannedAt:i.dependencyScans.scannedAt},t=(0,n.b)((0,n.M)(i.githubRepos.goneAt),(0,n.u)(i.githubRepos.archived,!1)),r=await V()?await (0,a.f)().select(e).from(i.githubRepos).leftJoin(i.dependencyScans,(0,n.u)(i.dependencyScans.repoId,i.githubRepos.id)).where(t).limit(500):await (0,a.f)().selectDistinct(e).from(i.appRepos).innerJoin(i.githubRepos,(0,n.u)(i.githubRepos.id,i.appRepos.repoId)).leftJoin(i.dependencyScans,(0,n.u)(i.dependencyScans.repoId,i.githubRepos.id)).where(t).limit(500),s=r.length?await R(r.map(e=>e.id)):new Map;return(0,m.M)(r.map(e=>{let t=s.get(e.id);return{...e,rootDir:t?.dir??null,rootDirUnsupported:t?.unsupported??null,prodBranch:t?.branch??null,...t?.fallback?{prodFallback:t.fallback}:{}}}))}let C=(e,t)=>e.length>t?`${e.slice(0,t-1)}…`:e;async function O(e,t){let n=new Date;await (0,a.f)().insert(i.dependencyScans).values({repoId:e,...t,updatedAt:n}).onConflictDoUpdate({target:i.dependencyScans.repoId,set:{...t,updatedAt:n}})}async function T(e){return(0,a.f)().select({id:i.dependencyVulns.id,package:i.dependencyVulns.package,installedVersion:i.dependencyVulns.installedVersion,vulnId:i.dependencyVulns.vulnId,severity:i.dependencyVulns.severity,fixedVersion:i.dependencyVulns.fixedVersion,summary:i.dependencyVulns.summary,aliases:i.dependencyVulns.aliases,dev:i.dependencyVulns.dev,direct:i.dependencyVulns.direct,source:i.dependencyVulns.source}).from(i.dependencyVulns).where((0,n.b)((0,n.u)(i.dependencyVulns.repoId,e),(0,n.M)(i.dependencyVulns.resolvedAt))).limit(2e3)}function B(e,t){for(let n of d.a){let r=e.find(e=>e.name===n.path);if(r)return{path:(0,f.H)(t,n.path),kind:n.kind,sha:r.sha}}return null}async function N(e,r,s,o={}){let l=()=>({...o,timeoutMs:Math.max(1e3,Math.min(s-Date.now(),1e4))}),u=async e=>(await O(r.id,{error:C(e,300),scannedAt:new Date}).catch(()=>void 0),{status:"failed",error:e}),h=r.defaultBranch??"HEAD",g=null;for(let t of[r.prodBranch,r.prodFallback]){if(t&&t===r.defaultBranch)break;let n=(0,S.i)(t,r.defaultBranch);if(!n)continue;let s=await $(e,r.fullName,n,l());if(!s.ok)return u(s.error);if(s.data){g=n;break}}let y=null!==g;g&&(h=g);let v=y?`Scanned ${g}, the branch production is built from.`:null,w=(0,f.Q)(r.rootDir),x=w?null:(0,f.l)(r.rootDirUnsupported),V=x?`The Vercel Root Directory "${x}" couldn't be used (Watchbell reads plain folder names, at most 4 deep); scanned the repository root.`:null,D=await b(e,r.fullName,h,l(),w);if(!D.ok)return u(w&&"missing"===D.kind?`The folder ${(0,f.x)(w)} isn't in ${r.fullName} on ${h}.`:D.error);let R=B(D.data,w),M=D.data.find(e=>"package.json"===e.name)??null,E=!1,_=null;if(w&&M&&!R){let t=await b(e,r.fullName,h,l());if(!t.ok)return u(t.error);E=null!==(R=B(_=t.data,null))}let j=R?R.sha:M?`pkg:${M.sha}`:null,L=j&&w?`${w}:${j}${E&&M?`+${M.sha}`:""}`:j&&x?`odd:${j}`:j,P=L&&y?`br:${g}:${L}`:L,[U]=await (0,a.f)().select().from(i.dependencyScans).where((0,n.u)(i.dependencyScans.repoId,r.id)).limit(1),z=new Date;if(!(0,m.U)(U??null,P,z,o.force))return{status:"unchanged"};if(!P){let e=await T(r.id);return e.length&&await (0,a.f)().update(i.dependencyVulns).set({resolvedAt:z}).where((0,n.y)(i.dependencyVulns.id,e.map(e=>e.id))),await O(r.id,{lockfilePath:null,lockfileSha:null,packageCount:0,scannedAt:z,queriedAt:z,error:null,note:C([v,V,`No package.json or lockfile ${w?"in":"at"} ${(0,f.x)(w)}.`].filter(Boolean).join(" "),300)}),{status:"scanned",vulns:0,packages:0,note:"no package.json"}}let H=(0,f.H)(w,"package.json"),q=M?await A(e,r.fullName,H,h,k.$,l()):null;if(q&&!q.ok)return u(q.error);let W=q?.ok&&q.data?(0,d.b)(q.data):null,F=null,J="package-json",K=E&&R?`Scanned ${(0,f.x)(w)} with the repository root's ${R.path} (workspaces).`:null;if(R){if(2e3>s-Date.now())return u("Time budget used before the lockfile was read; the next run tries again.");let t=await A(e,r.fullName,R.path,h,0xf00000,{...o,timeoutMs:Math.max(1e3,Math.min(s-Date.now(),2e4))});if(!t.ok)return u(t.error);let n=!0;if(E&&w&&t.data&&!(0,f.p)(R.kind,t.data,w)){let t=_?.some(e=>"package.json"===e.name)?await A(e,r.fullName,"package.json",h,k.$,l()):null;if(t&&!t.ok)return u(t.error);n=(0,f.F)(t?.data??null,w)}n?(F=t.data?(0,d.D)(R.kind,t.data):null,J=R.kind,F||(K=[K,`${R.path} couldn't be read; the versions come from package.json ranges (approximate).`].filter(Boolean).join(" "))):(K=`The repository root's ${R.path} isn't a workspace that includes ${w}, so the versions come from ${H} ranges (approximate).`,R=null)}if(F){let e=(0,t.m)(F,W);F=e.deps,e.stale.length&&(K=[K,(0,t.M)(e.stale)].filter(Boolean).join(" "))}else F=W?(0,d.e)(W):[],J="package-json",K??=R?null:"No lockfile: the versions come from package.json ranges (approximate).";let Z=await T(r.id),G=[];if(F.length){let e=await (0,p.K)(F,{fetch:o.fetch,deadline:s});if(!e.ok)return u(e.error);let t=(0,m.A)(Z,!0===o.force),n=await (0,p.J)((0,m.z)(F,e.ids,t),{fetch:o.fetch,deadline:s});if(!n.ok)return u(n.error);G=(0,c.i)(F,e.ids,n.map,t)}if(s-Date.now()>1500){let t=await I(e,r.fullName,l());t.ok&&"alerts"in t.data?G=(0,m.R)(G,t.data.alerts,F):t.ok&&(K=[K,"Dependabot alerts aren't readable with this token (optional: Dependabot alerts: Read)."].filter(Boolean).join(" "))}let Y=(0,m.h)(Z,G,(0,d.K)(W));K=[v,V,K].filter(Boolean).join(" ")||null;let Q=new Date;return await (0,a.f)().transaction(async e=>{for(let t of(Y.insert.length&&await e.insert(i.dependencyVulns).values(Y.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:Q,lastSeenAt:Q}))).onConflictDoNothing(),Y.update))await e.update(i.dependencyVulns).set({severity:t.severity,fixedVersion:t.fixedVersion,summary:t.summary,aliases:t.aliases,dev:t.dev,direct:t.direct,lastSeenAt:Q}).where((0,n.u)(i.dependencyVulns.id,t.id));Y.resolve.length&&await e.update(i.dependencyVulns).set({resolvedAt:Q}).where((0,n.b)((0,n.y)(i.dependencyVulns.id,Y.resolve),(0,n.M)(i.dependencyVulns.resolvedAt))),await e.insert(i.dependencyScans).values({repoId:r.id,lockfilePath:R?.path??(M?H:null),lockfileSha:P,packageCount:F.length,scannedAt:Q,queriedAt:Q,error:null,note:K?C(K,300):null,updatedAt:Q}).onConflictDoUpdate({target:i.dependencyScans.repoId,set:{lockfilePath:R?.path??(M?H:null),lockfileSha:P,packageCount:F.length,scannedAt:Q,queriedAt:Q,error:null,note:K?C(K,300):null,updatedAt:Q}})}),{status:"scanned",vulns:Y.insert.length+Y.update.length,packages:F.length,note:"package-json"===J?K:null}}async function E(e,t={}){var r,s;let o,l,u,d,c=await x();if("error"in c)return{error:c.error};let{first:p,only:f,skip:m,...h}=t,g=(r=await M(),o=(s={first:p,only:f,skip:m}).only?new Set(s.only):null,l=new Set(s.skip??[]),u=(o?r.filter(e=>o.has(e.id)):r).filter(e=>!l.has(e.id)),d=new Set(s.first??[]),[...u.filter(e=>d.has(e.id)),...u.filter(e=>!d.has(e.id))]),y={scanned:0,unchanged:0,failed:[],left:0,done:[],listed:g.map(e=>e.id)};for(let[t,n]of g.entries()){if(e-Date.now()<4e3){y.left=g.length-t;break}y.done.push(n.id);try{let t=await N(c.token,n,e,h);"scanned"===t.status?y.scanned++:"unchanged"===t.status?y.unchanged++:y.failed.push(`${n.fullName}: ${t.error}`)}catch(e){y.failed.push(`${n.fullName}: ${e instanceof Error?e.name:"error"}`)}}return await (0,a.f)().delete(i.dependencyVulns).where((0,n.b)((0,n.E)(i.dependencyVulns.resolvedAt),(0,n.S)(i.dependencyVulns.resolvedAt,new Date(Date.now()-7776e6)))).catch(()=>void 0),y}let _=async()=>(await (0,a.f)().select({id:i.accounts.id}).from(i.accounts).where((0,n.u)(i.accounts.provider,"github")).limit(1)).length>0;function j(e){let t=e.failed.filter(e=>!/didn't answer in time|no time left|time budget|rate limit/i.test(e)),n=e.failed.length-t.length+(e.left??0);n&&console.info(`deps: ${n} repositor${1===n?"y":"ies"} wait for the next run`);let r=t.slice(0,3);return t.length>3&&r.push(`+${t.length-3} more`),r.length?r.join("; "):null}async function L(e){if(!await _())return null;if(e-Date.now()<4e3)return console.info("deps: no time left today; the scan resumes tomorrow"),null;let t=await E(e);if("error"in t){let e;return(e=t.error,/didn't answer in time|no time left|time budget|rate limit/i.test(e))?null:t.error}return j(t)}async function P(e,t,r={}){let{marked:s,onlyMarked:o}=t;if(!await _())return{problem:null,settled:[...s],done:[],complete:!0};let l=s.filter(u.f),d=l.length?await (0,a.f)().select({appId:i.appRepos.appId,repoId:i.appRepos.repoId}).from(i.appRepos).where((0,n.y)(i.appRepos.appId,l)).limit(5*l.length):[],c=[...new Set(d.map(e=>e.repoId))],p=e=>d.filter(t=>t.appId===e).map(e=>e.repoId),f=s.filter(e=>!p(e).length);if(o&&!c.length)return{problem:null,settled:[...s],done:[],complete:!0};if(e-Date.now()<4e3)return{problem:null,settled:f,done:[],complete:!1};let m=(t.skip??[]).filter(e=>!c.includes(e)),h=await E(e,{...r,first:c,...o?{only:c}:{skip:m}});if("error"in h){let e;return{problem:(e=h.error,/didn't answer in time|no time left|time budget|rate limit/i.test(e))?null:h.error,settled:[...s],done:[],complete:!0}}let g=new Set([...h.done,...c.filter(e=>!h.listed.includes(e))]);return{problem:j(h),settled:s.filter(e=>p(e).every(e=>g.has(e))),done:h.done,complete:0===h.left}}async function U(e){let t=e.filter(u.f);if(!t.length)return[];let r=await (0,a.f)().select({appId:i.appRepos.appId,repoId:i.appRepos.repoId,error:i.dependencyScans.error}).from(i.appRepos).innerJoin(i.dependencyScans,(0,n.u)(i.dependencyScans.repoId,i.appRepos.repoId)).where((0,n.b)((0,n.y)(i.appRepos.appId,t),(0,n.E)(i.dependencyScans.scannedAt)));if(!r.length)return[];let s=await (0,a.f)().select({repoId:i.dependencyVulns.repoId,package:i.dependencyVulns.package,installedVersion:i.dependencyVulns.installedVersion,fixedVersion:i.dependencyVulns.fixedVersion,severity:i.dependencyVulns.severity,summary:i.dependencyVulns.summary,dev:i.dependencyVulns.dev,direct:i.dependencyVulns.direct}).from(i.dependencyVulns).where((0,n.b)((0,n.y)(i.dependencyVulns.repoId,[...new Set(r.map(e=>e.repoId))]),(0,n.M)(i.dependencyVulns.resolvedAt))).limit(1e4);return r.map(e=>({appId:e.appId,repoId:e.repoId,error:e.error,vulns:s.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,direct:e.direct}))}))}async function z(e,t=new Set){let r=e.filter(u.f),o=new Map;if(!r.length)return o;let l=await (0,a.f)().select({appId:i.appRepos.appId,repoId:i.appRepos.repoId}).from(i.appRepos).where((0,n.y)(i.appRepos.appId,r));if(!l.length)return o;let d=await (0,a.f)().select({repoId:i.dependencyVulns.repoId,package:i.dependencyVulns.package,installedVersion:i.dependencyVulns.installedVersion,fixedVersion:i.dependencyVulns.fixedVersion,vulnId:i.dependencyVulns.vulnId,aliases:i.dependencyVulns.aliases,severity:i.dependencyVulns.severity,direct:i.dependencyVulns.direct}).from(i.dependencyVulns).where((0,n.b)((0,n.y)(i.dependencyVulns.repoId,[...new Set(l.map(e=>e.repoId))]),(0,n.M)(i.dependencyVulns.resolvedAt),(0,n.u)(i.dependencyVulns.direct,!0),(0,n.E)(i.dependencyVulns.fixedVersion))).limit(2e3),c=d.some(e=>"next"===e.package)?new Set((await (0,a.f)().selectDistinct({appId:i.dependencyPrs.appId}).from(i.dependencyPrs).where((0,n.b)((0,n.y)(i.dependencyPrs.appId,r),(0,n.$)(i.dependencyPrs.stage,["merged","closed"]),(0,n.B)(i.dependencyPrs.openedAt,new Date(Date.now()-12096e5)),s.B`${i.dependencyPrs.packages} @> '["next"]'::jsonb`)).limit(r.length)).map(e=>e.appId)):new Set;for(let e of l){let n=t.has(e.appId)||c.has(e.appId);(0,m.B)(d.filter(t=>t.repoId===e.repoId&&!(n&&"next"===t.package))).length&&o.set(e.appId,e.repoId)}return o}e.s(["R",0,4e4,"o",0,12e3,"d",0,4e3,"e",0,L,"O",0,P,"C",0,z,"a",0,U],433609);var H=e.i(442473);function q(e){let t=e instanceof Error&&e.cause instanceof Error?e.cause:e,n=(t instanceof Error?t.message:"").split("\n")[0].replace(/Bearer\s+\S+/gi,"Bearer [hidden]").trim()||"failed";return n.length>200?`${n.slice(0,200)}…`:n}e.s(["f",0,q],751762);var W=e.i(656083);let F=String.raw`\d+\.\d+\.\d+(?:-[0-9A-Za-z.]+)?`,J="[\"'`]";function K(e){let t=/^(\d+)\.\d+\.\d+(?:-[0-9A-Za-z.]+)?$/.exec(e);return null!==t&&Number(t[1])>=9&&1e3>Number(t[1])}let Z={"&":"&",""":'"',"'":"'","'":"'","/":"/","/":"/"},G=e=>e.replace(/&(?:amp|quot|#39|#x27|#x2F|#47);/gi,e=>Z[e]??Z[e.toLowerCase()]??e),Y=RegExp(String.raw`\bnext\s*=\s*\{\s*version\s*:\s*${J}(${F})${J}`,"g"),Q=RegExp(String.raw`version\s*:\s*${J}(${F})${J}\s*,\s*appDir\s*:`,"g"),X=RegExp(String.raw`appDir\s*:\s*[^,{}()]{1,16},\s*version\s*:\s*${J}(${F})${J}`,"g"),ee=/\bnext\s*=\s*\{\s*version\s*(?::\s*([A-Za-z_$][\w$]*)\s*)?[,}]/g,et=e=>e.replace(/[$]/g,"\\$");var en=e.i(267485);async function er(e,t,n={}){let r=n.deadline??1/0,s=n.now??(()=>new Date),a=e=>Math.floor(Math.min(e,r)-Date.now()),i=Date.now()+15e3;if(0>=a(i))return null;let o=(e,n)=>({version:t?.version??null,status:e,findings:t?.findings??[],reason:n,checkedAt:s()}),l=(e,t)=>(0,H.K)(e,{maxBytes:3145728,timeoutMs:a(i),lookup:n.lookup,fetch:n.fetch,userAgent:"OpsConsole-Security/1.0 (+https://watchbell.west-solutions.web.id)",sameOrigin:t}),u=await l(`https://${e}/`,"www");if(!u.ok&&u.error===H.l)return o("unknown","the site redirects to another host");if(!u.ok||200!==u.status)return Date.now()>=r?null:o("error",`Couldn't load the site: ${u.ok?`HTTP ${u.status}`:u.error}`);let d=(function(e,t){let n;try{n=new URL(t)}catch{return[]}let r=new Set,s=[];for(let t of e.matchAll(/<script\b[^>]*?\ssrc\s*=\s*(["'])(.*?)\1/gi)){let e;try{e=new URL(G(t[2].trim()),n)}catch{continue}if("https:"===e.protocol&&e.origin===n.origin&&e.pathname.startsWith("/_next/static/")&&(e.hash="",!r.has(e.href))){var a;r.add(e.href),s.push({href:e.href,rank:(a=e.pathname,/\/main-app[-.]/.test(a)?0:/\/(main|app-index)[-.]/.test(a)?1:/\/(webpack|polyfills|framework)[-.]/.test(a)?3:2),i:s.length})}}return s.sort((e,t)=>e.rank-t.rank||e.i-t.i).map(e=>e.href)})(u.body,u.url).slice(0,12);if(0===d.length)return o("unknown",u.body.includes("/_next/")?"version not exposed":"not a Next.js site");let c=null,p=0,f=!1;for(let e of d){if(0>=a(i)){f=!0;break}let t=await l(e,!0);if(t.ok&&200===t.status&&(p++,c=function(e){for(let t of e.matchAll(Y))if(K(t[1]))return t[1];for(let t of[Q,X])for(let n of e.matchAll(t))if(K(n[1]))return n[1];for(let t of e.matchAll(ee)){let n=t[1]??"version",r=RegExp(String.raw`(?:^|[^\w$.])${et(n)}\s*=\s*${J}(${F})${J}`,"g"),s=null;for(let n of e.matchAll(r)){if((n.index??0)>=(t.index??0))break;s=n[1]}if(s&&K(s))return s}return null}(t.body)))break}if(!c)return Date.now()>=r?null:f||0>=a(i)?o("error","Reading the site's scripts took longer than 15 s"):0===p?o("error","Couldn't load the site's scripts"):o("unknown","version not exposed");let m=a(Date.now()+1e4);if(m<=0)return null;let h=await (0,en.y)(c,{timeoutMs:m,fetch:n.fetch});return h.ok?{version:c,status:h.findings.length?"vulnerable":"ok",findings:h.findings,reason:null,checkedAt:s()}:Date.now()>=r?null:o("error",h.error)}e.s(["y",0,35e3,"P",0,er,"F",0,function(e,t){return Math.min(t+35e3,e+55e3)}],970465);var es=e.i(7494),ea=e.i(764766),ei=e.i(195191),eo=e.i(146394);function el(e){return{version:e.version,status:e.status,findings:Array.isArray(e.findings)?e.findings:[],reason:e.reason,checkedAt:e.checkedAt}}async function eu(e={}){let t=e.only;if(t&&!t.length)return[];let r=e.first??[],o=e.skip??[],l=await (0,a.f)().select({id:i.resources.id,name:i.resources.name,meta:i.resources.meta,sec:i.appSecurity}).from(i.resources).leftJoin(i.appSecurity,(0,n.u)(i.appSecurity.resourceId,i.resources.id)).where((0,n.b)((0,n.u)(i.resources.kind,"app"),(0,n.u)(i.resources.monitored,!0),(0,n.M)(i.resources.goneAt),t?(0,n.y)(i.resources.id,t):void 0,o.length?(0,n.$)(i.resources.id,[...o]):void 0)).orderBy(...r.length?[s.B`case when ${(0,n.y)(i.resources.id,r)} then 0 else 1 end`]:[],s.B`${i.appSecurity.checkedAt} asc nulls first`,i.resources.name).limit(eo.O.apps);if(!l.length)return[];r.length&&l.sort((e,t)=>Number(!r.includes(e.id))-Number(!r.includes(t.id)));let u=await (0,a.f)().select({resourceId:i.monitors.resourceId,url:i.monitors.url}).from(i.monitors).where((0,n.y)(i.monitors.resourceId,l.map(e=>e.id))).orderBy(i.monitors.createdAt).limit(eo.O.monitors);return l.map(e=>({id:e.id,name:e.name,prev:e.sec?el(e.sec):null,host:(0,ea.Y)(e.meta)?.primaryDomain??(0,ei.m)(e.name,u.filter(t=>t.resourceId===e.id).map(e=>e.url))}))}async function ed(e,t){await (0,a.f)().transaction(async r=>{await r.execute(s.B`select pg_advisory_xact_lock(hashtext(${`app_security:${e.id}`}))`);let[a]=await r.select().from(i.appSecurity).where((0,n.u)(i.appSecurity.resourceId,e.id)).limit(1),o=a?el(a):null;if(o&&o.checkedAt.getTime()>=t.checkedAt.getTime())return;let l="unknown"===t.status||"error"===t.status?{...t,version:o?o.version:t.version,findings:o?o.findings:t.findings}:t,u={framework:"next",version:l.version,status:l.status,findings:l.findings,reason:l.reason,checkedAt:l.checkedAt};await r.insert(i.appSecurity).values({resourceId:e.id,...u}).onConflictDoUpdate({target:i.appSecurity.resourceId,set:u,setWhere:s.B`${i.appSecurity.checkedAt} < excluded.checked_at`});let d=(0,es.t)(e.name,o,l);d&&await (0,W.f)([{type:"system",kind:d.kind,message:d.message,detail:d.detail,resourceId:e.id,at:l.checkedAt,reason:"ok"===d.kind?"NextClean":"NextVulnerable"}],r)})}async function ec(e,t={}){let n=await eu(t),r=0,s=0,a=[],i=[],o=[];return await (0,H.P)(n,3,async t=>{if(e-Date.now()<3e3)return void s++;o.push(t.id);try{let n=await er(t.host,t.prev,{deadline:e});if(!n)return void s++;await ed(t,n),r++,i.push(t.id)}catch(e){a.push(`${t.name}: ${q(e)}`),i.push(t.id)}}),{checked:r,skipped:s,failed:a,done:i,listed:n.map(e=>e.id),started:o}}async function ep(e){let t=e.filter(u.f);return t.length?(await (0,a.f)().select().from(i.appSecurity).where((0,n.y)(i.appSecurity.resourceId,t)).limit(t.length)).map(e=>{let t=el(e);return{appId:e.resourceId,version:t.version,status:t.status,findings:t.findings}}):[]}e.s(["F",0,ep,"h",0,ec,"Z",0,el],800523)},826148,123862,e=>{var t=e.i(874533),n=e.i(912714),r=e.i(875225),s=e.i(924924),a=e.i(618916),i=e.i(77193);function o(e){let t=e.trim(),n=0,r=t.indexOf(":");r>0&&/^\d+$/.test(t.slice(0,r))&&(n=Number(t.slice(0,r)),t=t.slice(r+1));let s=t.lastIndexOf("-");return s>=0?[n,t.slice(0,s),t.slice(s+1)]:[n,t,""]}function l(e){return void 0===e?0:"~"===e?-1:/[A-Za-z]/.test(e)?e.charCodeAt(0):e.charCodeAt(0)+256}function u(e,t){let n=0,r=0;for(;n<e.length||r<t.length;){for(;n<e.length&&!/\d/.test(e[n])||r<t.length&&!/\d/.test(t[r]);){let s=n<e.length&&!/\d/.test(e[n])?e[n]:void 0,a=r<t.length&&!/\d/.test(t[r])?t[r]:void 0,i=l(s)-l(a);if(0!==i)return i;void 0!==s&&n++,void 0!==a&&r++}let s="",a="";for(;n<e.length&&/\d/.test(e[n]);)s+=e[n++];for(;r<t.length&&/\d/.test(t[r]);)a+=t[r++];if(s=s.replace(/^0+/,""),a=a.replace(/^0+/,""),s.length!==a.length)return s.length-a.length;if(s!==a)return s<a?-1:1}return 0}function d(e,t){let[n,r,s]=o(e),[a,i,l]=o(t);return n!==a?n-a:u(r,i)||u(s,l)}e.s(["f",0,d],123862);let c=e=>e.replace(/^linux-signed(-|$)/,"linux$1"),p=e=>/^linux-meta(-|$)/.test(e),f="OSV.dev sent an answer we couldn't read.";async function m(e,t,n=fetch){let r={};for(let s=0;s<t.length;s+=1e3){let a,i,o=t.slice(s,s+1e3),l=o.map(t=>({package:{name:t.name,ecosystem:e},version:t.version}));try{let e=await n("https://api.osv.dev/v1/querybatch",{method:"POST",body:JSON.stringify({queries:l}),headers:{"content-type":"application/json"},signal:AbortSignal.timeout(3e4)});if(!e.ok)return{ok:!1,error:`OSV.dev answered HTTP ${e.status}.`};a=await e.text()}catch{return{ok:!1,error:"OSV.dev didn't answer in time."}}if(a.length>8388608)return{ok:!1,error:"OSV.dev sent too large an answer."};try{i=JSON.parse(a)}catch{return{ok:!1,error:f}}let u=i?.results;if(!Array.isArray(u)||u.length!==o.length)return{ok:!1,error:f};u.forEach((e,t)=>{let n=e?.vulns,s=Array.isArray(n)?n.length:0;s&&(r[o[t].name]=(r[o[t].name]??0)+s)})}return{ok:!0,counts:r}}let h=e=>"object"==typeof e&&null!==e&&!Array.isArray(e),g=e=>Array.isArray(e)?e:[],y=e=>"string"==typeof e&&e.trim()?e.trim():null,v=e=>{let t=e.replace(/\s+/g," ").trim(),n=t.search(/\.\s/);return(n>20?t.slice(0,n+1):t).slice(0,200)},k="Ubuntu's security API sent an answer we couldn't read.",w=e=>{let t=new Set;return e.filter(e=>!t.has(e.cve)&&(t.add(e.cve),!0))};async function b(e,t,n,r,s=fetch){let a=[];for(let i=0;i<10;i++){let o,l,u,c=`https://ubuntu.com/security/cves.json?package=${encodeURIComponent(e)}&version=${encodeURIComponent(t)}&status=released&limit=20&offset=${20*i}&order=newest`;try{if(!(o=await s(c,{headers:{accept:"application/json","user-agent":"Watchbell (self-hosted)"},signal:AbortSignal.timeout(15e3)})).ok)return{ok:!1,error:`Ubuntu's security API answered HTTP ${o.status}.`};l=await o.text()}catch{return{ok:!1,error:"Ubuntu's security API didn't answer in time."}}if(l.length>2097152)return{ok:!1,error:"Ubuntu's security API sent too large an answer."};try{u=JSON.parse(l)}catch{return{ok:!1,error:k}}let p=function(e,t,n){if(!h(e)||!Array.isArray(e.cves))return null;let r=[];for(let s of e.cves){if(!h(s))continue;let e=y(s.id);if(!e||!/^CVE-\d{4}-\d{4,}$/.test(e))continue;let a=g(s.packages).filter(e=>h(e)&&e.name===t).flatMap(e=>g(e.statuses)).find(e=>h(e)&&e.release_codename===n);r.push({cve:e,priority:y(s.priority),cvss3:"number"==typeof s.cvss3&&Number.isFinite(s.cvss3)?s.cvss3:null,status:a?y(a.status):null,version:a?y(a.description):null,usns:g(s.notices_ids).map(y).filter(e=>!!e&&/^USN-\d+-\d+$/.test(e)),summary:v(y(s.ubuntu_description)??y(s.description)??"")})}return r}(u,e,t);if(null===p)return{ok:!1,error:k};if(a.push(...function(e,t,n){return e.filter(e=>"released"===e.status&&null!==e.version&&d(e.version,t)>0&&0>=d(e.version,n))}(p,n,r)),p.length<20)return{ok:!0,fixes:w(a)}}return{ok:!1,error:"Ubuntu lists more fixed CVEs for this package than Watchbell reads (200); see Ubuntu's page.",fixes:w(a)}}let $={critical:4,high:3,medium:2,low:1,negligible:0},A=e=>Math.max(-1,...e.fixes.map(e=>e.cvss3??-1)),I=e=>Math.max(-1,...e.fixes.map(e=>$[e.priority??""]??-1)),S="Not checked: the scan ran out of time.";async function x(e,t,n){let r=Array(e.length),s=0;return await Promise.all(Array.from({length:Math.min(t,e.length)},async()=>{for(;s<e.length;){let t=s++;r[t]=await n(e[t])}})),r}let V=e=>/^linux(-signed|-meta)?(-|$)/.test(e)&&!/^linux-(base|firmware|libc-dev|tools-common)$/.test(e);async function D(e,t,n,r={}){var s,a;let i=r.deadline??Date.now()+75e3,o={status:"ok",system:null,ecosystem:null,codename:null,packages:0,kernel:null,updates:[],backlog:{counts:{},total:0,error:null},aptListsAgeHours:null,scannedAt:n.toISOString(),error:null};if("linux"!==e.platform)return{...o,status:"unsupported",error:`OS checks run on Ubuntu for now; this machine is ${e.platform}.`};let l=function(e){let t={};for(let n of e.split(/\r?\n/)){let e=/^([A-Z_][A-Z0-9_]*)=(.*)$/.exec(n.trim());e&&(t[e[1]]=e[2].replace(/^(["'])(.*)\1$/,"$2"))}if(!t.ID)return null;let n=t.PRETTY_NAME||[t.NAME,t.VERSION].filter(Boolean).join(" ")||t.ID;return{id:t.ID.toLowerCase(),versionId:t.VERSION_ID||null,codename:t.VERSION_CODENAME||t.UBUNTU_CODENAME||null,pretty:n,lts:/\bLTS\b/.test(`${t.VERSION??""} ${n}`)}}(await e.readFile("/etc/os-release")??"");if(!l)return{...o,status:"unsupported",error:"OS checks run on Ubuntu for now; this system has no /etc/os-release."};if(o.system=l.pretty,"ubuntu"!==l.id)return{...o,status:"unsupported",error:"debian"===l.id?"OS checks run on Ubuntu for now; Debian is next.":`OS checks run on Ubuntu for now; this system is ${l.pretty}.`};let u=l.versionId?"ubuntu"===l.id&&/^\d{2}\.\d{2}$/.test(l.versionId)?`Ubuntu:${l.versionId}${l.lts?":LTS":""}`:"debian"===l.id&&/^\d+/.test(l.versionId)?`Debian:${l.versionId.split(".")[0]}`:null:null;if(!u||!l.codename)return{...o,status:"unsupported",error:`Watchbell can't name this Ubuntu release (${l.pretty}).`};o.ecosystem=u,o.codename=l.codename;let f=await e.exec("dpkg-query",["-W",`-f=$\{Package} $\{Version} $\{source:Package} $\{source:Version} $\{db:Status-Abbrev}
|
|
2
|
-
`]);if(!f.ok)return{...o,status:"error",error:`Couldn't list the installed packages (${f.error}).`};let h=function(e){let t=[];for(let n of e.split(/\r?\n/)){let[e,r,s,a,i]=n.split(" ");e?.trim()&&r?.trim()&&t.push({name:e.trim(),version:r.trim(),source:s?.trim()||e.trim(),sourceVersion:a?.trim()||r.trim(),installed:void 0===i||/^[ih]i/.test(i.trim())})}return t}(f.stdout),g=h.filter(e=>e.installed);o.packages=g.length;let y=new Map(g.map(e=>[e.name,e])),v=(await e.readFile("/proc/sys/kernel/osrelease"))?.trim()||null,k=g.filter(e=>/^linux-image-(unsigned-)?\d/.test(e.name)),w=v?k.find(e=>e.name===`linux-image-${v}`||e.name===`linux-image-unsigned-${v}`):void 0,$=k.map(e=>e.sourceVersion).sort(d).at(-1)??null,R=(s=await e.readFile("/var/run/reboot-required"),a=await e.readFile("/var/run/reboot-required.pkgs"),null===s?{needed:!1,packages:[]}:{needed:!0,packages:[...new Set((a??"").split(/\r?\n/).map(e=>e.trim()).filter(Boolean))]}),M=await e.exec("apt",["list","--upgradable"]);if(!M.ok)return{...o,status:"error",error:`Couldn't read the waiting updates (${M.error}).`};let C=function(e){let t=[];for(let n of e.split(/\r?\n/)){let e=/^([^/\s]+)\/(\S+)\s+(\S+)\s+\S+\s+\[upgradable from: ([^\]]+)\]/.exec(n.trim());if(!e)continue;let r=e[2].split(",").filter(Boolean);t.push({name:e[1],candidate:e[3],installed:e[4].trim(),pockets:r,security:r.some(e=>/-security$/.test(e))})}return t}(M.stdout),O=C.find(e=>/^linux-image-/.test(e.name));o.kernel={running:v,runningVersion:w?.sourceVersion??null,newestInstalled:$,reboot:R,update:O?{package:O.name,candidate:O.candidate}:null};let T=new Map,B=new Set;for(let e of C){let t=y.get(e.name),n=t?.source??e.name;if(V(n))continue;t&&t.version!==t.sourceVersion&&B.add(n);let r=T.get(n)??{source:n,binaries:[],installed:e.installed,candidate:e.candidate,pockets:[],security:!1,fixes:[],error:null};r.binaries.push(e.name),0>d(e.installed,r.installed)&&(r.installed=e.installed),d(e.candidate,r.candidate)>0&&(r.candidate=e.candidate),r.pockets=[...new Set([...r.pockets,...e.pockets])],r.security||=e.security,T.set(n,r)}let N=RegExp(`^${l.codename.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}(-(updates|security|backports|proposed))?$`);o.updates=(await x([...T.values()],4,async e=>{if(e.binaries.sort(),!e.pockets.some(e=>N.test(e)))return e;if(B.has(e.source))return{...e,error:`Its package and source versions differ, so Watchbell can't match Ubuntu's fixes; see Ubuntu's page for ${e.source}.`};if(Date.now()>i)return{...e,error:S};try{let n=await b(e.source,l.codename,e.installed,e.candidate,t);return n.ok?{...e,fixes:n.fixes}:{...e,fixes:n.fixes??[],error:n.error}}catch{return{...e,error:"Ubuntu's security API sent an answer we couldn't read."}}})).sort((e,t)=>A(t)-A(e)||I(t)-I(e)||Number(t.security)-Number(e.security)||e.source.localeCompare(t.source));let E=(function(e,t){let n=e.filter(e=>e.installed),r=t?n.find(e=>e.name===`linux-image-${t}`||e.name===`linux-image-unsigned-${t}`):void 0,s=r?{name:c(r.source),version:r.sourceVersion}:null,a=new Map;for(let e of n){if(p(e.source))continue;let t=c(e.source);if(s&&t===s.name&&e.sourceVersion!==s.version)continue;let n=`${t} ${e.sourceVersion}`,r=a.get(n)??{name:t,version:e.sourceVersion,binaries:[],kernel:s?t===s.name:"linux"===t};r.binaries.push(e.name),a.set(n,r)}return[...a.values()].map(e=>({...e,binaries:[...new Set(e.binaries)].sort()})).sort((e,t)=>e.name.localeCompare(t.name)||e.version.localeCompare(t.version))})(h,v).filter(e=>!e.kernel&&!V(e.name)&&!T.has(e.name)),_=Date.now()>i?{ok:!1,error:S}:E.length?await m(u,E.map(e=>({name:e.name,version:e.version})),t):{ok:!0,counts:{}};o.backlog=_.ok?{counts:_.counts,total:Object.values(_.counts).reduce((e,t)=>e+t,0),error:null}:{counts:{},total:0,error:_.error};let j=await e.mtime("/var/lib/apt/periodic/update-success-stamp");return o.aptListsAgeHours=j?Math.max(0,Math.round((n.getTime()-j.getTime())/36e5)):null,o}let R="os_scan";function M(e=process.env){let t=(0,i.c)(e);return"cloud"===t?"off-cloud":"demo"===t?"demo":"on"}function C(e){return"object"!=typeof e||null===e?null:["ok","error","unsupported"].includes(e.status??"")&&"string"==typeof e.scannedAt&&Array.isArray(e.updates)&&"object"==typeof e.backlog?e:null}let O={platform:process.platform,readFile:e=>(0,n.readFile)(e,"utf8").catch(()=>null),mtime:e=>(0,n.stat)(e).then(e=>e.mtime).catch(()=>null),exec:(e,n)=>new Promise(r=>{(0,t.execFile)(e,n,{timeout:3e4,maxBuffer:0x1000000,env:{...process.env,LC_ALL:"C"}},(t,n)=>{r(t?{ok:!1,error:"ENOENT"===t.code?`${e} isn't installed`:t.message.split("\n")[0].slice(0,160)}:{ok:!0,stdout:n})})})},T={state:()=>M(),scan:()=>D(O,fetch,new Date),read:async()=>(await (0,s.f)().select({value:a.settings.value}).from(a.settings).where((0,r.u)(a.settings.key,R)).limit(1))[0]?.value??null,write:async e=>{await (0,s.f)().insert(a.settings).values({key:R,value:e}).onConflictDoUpdate({target:a.settings.key,set:{value:e,updatedAt:new Date}})}};async function B(e=T){return C(await e.read())}async function N(e=T){let t=e.state();if("off-cloud"===t)return{ok:!1,error:"OS checks are part of the self-hosted edition."};if("demo"===t)return{ok:!1,error:"Scanning is off in the demo."};let n=await e.scan(),r=C(await e.read()),s="error"===n.status&&r&&"ok"===r.status?{...r,error:n.error,failedAt:n.scannedAt}:n;return await e.write(s),{ok:!0,data:s}}e.s(["y",0,B,"C",0,M,"W",0,N],826148)},111970,e=>{var t=e.i(875225),n=e.i(518899),r=e.i(347540),s=e.i(924924),a=e.i(473283),i=e.i(618916),o=e.i(659846),l=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,s.f)().execute(n.B`select
|
|
3
|
-
(select coalesce(jsonb_agg(distinct ${i.accounts.provider}::text), '[]'::jsonb) from ${i.accounts}) as providers,
|
|
4
|
-
exists(select 1 from ${i.resources} where ${i.resources.kind}::text in (${e}) and ${i.resources.goneAt} is null) as databases,
|
|
5
|
-
${(0,u.W)()} as off`),[r]=(0,a.f)(t),p=c(r?.providers);return{providers:(Array.isArray(p)?p:[]).filter(e=>o.f.includes(e)),databases:r?.databases===!0||r?.databases==="t",off:(0,l.N)(c(r?.off))}});async function f(){try{return(0,l.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:s}=(0,l.s)(e),a=[];if(r.length&&a.push(n.B`${i.alerts.ruleKey} in (${n.B.join(r.map(e=>n.B`${e}`),n.B`, `)})`),s.length){let e=n.B.join(s.map(e=>n.B`${e}`),n.B`, `);a.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 a.length?(0,t.F)(...a):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),s=e.i(618916);e.i(154491);var a=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]},o=Object.keys(i),l=(e,t)=>"number"==typeof t&&i[e].includes(t);async function u(e){let[n]=await (0,r.f)().select({value:s.settings.value}).from(s.settings).where((0,t.u)(s.settings.key,e)).limit(1);return n?.value??null}let d=async()=>(function(e){let t={...a.f};if(!e||"object"!=typeof e)return t;for(let n of o){let r=e[n];l(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 ${s.settings.value} from ${s.settings} where ${s.settings.key} = ${"sections.off"})`],960049)},662860,e=>{var t=e.i(875225),n=e.i(924924),r=e.i(755776),s=e.i(618916),a=e.i(921991),i=e.i(867274),o=e.i(547499);let l="Supabase Metrics API",u=null,d={fetchMetrics:async function e(t,n,r={}){let s;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 a=r.timeoutMs??8e3;try{s=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(a),cache:"no-store",redirect:"manual"})}catch(e){return{ok:!1,kind:"transient",error:e instanceof DOMException&&("TimeoutError"===e.name||"AbortError"===e.name)?`${l} didn't answer within ${Math.round(a/1e3)} seconds.`:`Couldn't reach the ${l}.`}}if(401===s.status||403===s.status)return{ok:!1,kind:"auth",status:s.status,error:`Supabase rejected the metrics key (${s.status}). Replace it with a current Secret API key.`};if(404===s.status)return{ok:!1,kind:"missing",status:404,error:"Supabase has no metrics endpoint for this project (404)."};if(429===s.status)return{ok:!1,kind:"transient",status:429,retryAfterS:60,error:`${l} says there were too many requests.`};if(!s.ok)return{ok:!1,kind:"transient",status:s.status,error:`${l} returned an error (${s.status}).`};let i=await s.text().catch(()=>null);return null===i||i.length>4e6||!/^(#|[A-Za-z_:])/m.test(i)?{ok:!1,kind:"format",error:`${l} answered in a format the console doesn't recognise.`}:{ok:!0,data:i}},key:()=>(0,o.f)().OPS_ENCRYPTION_KEY},c=e=>e instanceof Error?e.name:"unknown";async function p(e,a,o=d){if(!(0,i.T)(e,u))return null;u=e.getTime();let l=0,f=0;try{for(let{k:i,ref:u,state:d}of(await (0,n.f)().select({k:r.A,ref:s.resources.externalId,state:s.snapshots.state}).from(r.A).innerJoin(s.resources,(0,t.u)(s.resources.id,r.A.resourceId)).leftJoin(s.snapshots,(0,t.u)(s.snapshots.resourceId,s.resources.id)).where((0,t.b)((0,t.u)(s.resources.kind,"supabase_project"),(0,t.u)(s.resources.monitored,!0),(0,t.M)(s.resources.goneAt))).limit(20))){let t=a-Date.now()-500;if(t<1e3)break;try{await m(i,u,d,e,Math.min(8e3,t),o)?l++: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:l,failed:f}}async function f(e,s,a){return await (0,n.f)().update(r.A).set({lastTryAt:s,lastError:a.slice(0,300)}).where((0,t.u)(r.A.resourceId,e)),!1}async function m(e,s,o,l,u,d){if("paused"===o)return f(e.resourceId,l,"The project is paused.");let c=(0,a.V)({ciphertext:e.keyCiphertext,iv:e.keyIv},d.key());if(!c)return f(e.resourceId,l,"The stored key can't be read. Add it again.");let p=await d.fetchMetrics(s,c,{timeoutMs:u});if(!p.ok)return f(e.resourceId,l,p.error);let m=(0,i.E)(e.latest??null,(0,i.c)((0,i.a)(p.data),s),l);await (0,n.f)().update(r.A).set({latest:m,lastTryAt:l,lastOkAt:l,lastError:null}).where((0,t.u)(r.A.resourceId,e.resourceId));let h=(0,i.b)(l),[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:s.resources.id,name:s.resources.name,latest:r.A.latest}).from(r.A).innerJoin(s.resources,(0,t.u)(s.resources.id,r.A.resourceId)).where((0,t.b)((0,t.u)(s.resources.kind,"supabase_project"),(0,t.u)(s.resources.monitored,!0),(0,t.M)(s.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},s=(e,t)=>Math.round(e/t*1e3)/10,a=(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:s(e.accountRowsRead,r.rowsReadPerDay),text:"of 5M (account)",kind:"quota"}]:[],...n&&null!=e.accountRowsWritten?[{label:"Rows written today",pct:s(e.accountRowsWritten,r.rowsWrittenPerDay),text:"of 100k (account)",kind:"quota"}]:[],...null!=e.sizeBytes?[{label:"Size",pct:s(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 a(e.usageAt,n)?[...null!=e.orgRowsRead?[{label:"Rows read",pct:s(e.orgRowsRead,t.rowsRead),text:"of 500M this month (org)",kind:"quota"}]:[],...null!=e.orgRowsWritten?[{label:"Rows written",pct:s(e.orgRowsWritten,t.rowsWritten),text:"of 10M this month (org)",kind:"quota"}]:[],...null!=e.orgStorageBytes?[{label:"Storage",pct:s(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=a(e.statsAt,t);return[...r&&null!=e.monthlyRequests?[{label:"Commands",pct:s(e.monthlyRequests,n.monthlyCommands),text:"of 500k this month",kind:"quota"}]:[],...r&&null!=e.monthlyBandwidthBytes?[{label:"Bandwidth",pct:s(e.monthlyBandwidthBytes,n.monthlyBandwidthBytes),text:"of 10 GB this month",kind:"quota"}]:[],...null!=e.storageBytes?[{label:"Data size",pct:s(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,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 s(e,n){let s=r.exec(e.trim()),a=r.exec(n.trim());return!!s&&!!a&&s[1]===a[1]&&("0"!==s[1]||s[2]===a[2])&&(0,t.f)(n,e)>=0}let a=/^Watch(?:bell|post): update (?:\S+ (?:to|ke) \S+|\d+ vulnerable packages) in ((?:[A-Za-z0-9._-]+\/){0,3}[A-Za-z0-9._-]+) \(/,i=e=>a.exec(e)?.[1]??null;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)&&!("moderate"===e.severity&&e.dev));if(!r.length)return{ok:!1,why:"severity"};for(let e of r){let n=t.get(e.package);if(!n||!s(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 s=[...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])],a=[...e],i=[];for(let[e,r,o]of s){let s=(0,n.Y)(r);if(!s||!(0,n.C)(s))continue;let l=a.filter(t=>t.name===e);!l.length||l.some(e=>(0,t.f)(e.version,s)>=0)||((a=a.filter(t=>t.name!==e)).push({name:e,version:s,dev:l.every(e=>e.dev)&&o}),i.push(e))}return{deps:a,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,n=null){for(let r of t){if(i(r.title)!==n)continue;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"}(r);if("all"===t||e.some(e=>t.includes(e)))return r}return null},"J",0,s])},32391,e=>{let t=/^(?:@[a-z0-9][a-z0-9._~-]*\/)?[a-z0-9._~-][a-z0-9._~-]*$/i,n=/^\d+\.\d+\.\d+(?:-[0-9A-Za-z.-]+)?(?:\+[0-9A-Za-z.-]+)?$/,r=e=>e.length<=214&&t.test(e),s=e=>e.length<=100&&n.test(e),a=e=>"object"==typeof e&&null!==e&&!Array.isArray(e);function i(e){let t=new Map;for(let n of e){if(!r(n.name)||!s(n.version))continue;let e=`${n.name}@${n.version}`,a=t.get(e);if(a?a.dev=a.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 l=e=>{let t=e.lastIndexOf("node_modules/");return t<0?null:e.slice(t+13)||null},u=e=>e.trim().replace(/^['"]|['"]$/g,""),d=e=>a(e)?Object.fromEntries(Object.entries(e).filter(e=>"string"==typeof e[1])):{};function c(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,s]of Object.entries(e)){let e=c(s);e&&t.push({name:r,version:e,dev:n})}};return n(e.dependencies,!1),n(e.optionalDependencies,!1),n(e.devDependencies,!0),i(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,r,"C",0,s,"Y",0,c,"D",0,function(e,t){switch(e){case"npm":let n=o(t);if(!a(n))return null;let s=[];if(a(n.packages)){for(let[e,t]of Object.entries(n.packages)){if(!e||!a(t)||!0===t.link||"string"!=typeof t.version)continue;let n="string"==typeof t.name&&e.includes("node_modules/")?t.name:l(e);n&&s.push({name:n,version:t.version,dev:!0===t.dev})}return i(s)}if(a(n.dependencies)){let e=(t,n)=>{if(!(n>40))for(let[r,i]of Object.entries(t))a(i)&&("string"==typeof i.version&&s.push({name:r,version:i.version,dev:!0===i.dev}),a(i.dependencies)&&e(i.dependencies,n+1))};return e(n.dependencies,0),i(s)}return null;case"pnpm":return function(e){let t=e.split(/\r?\n/);if(!t.some(e=>/^lockfileVersion:/.test(e)))return null;let n=[],s=!1,a=null;for(let e of t){if(/^\S/.test(e)){s=/^packages:\s*$/.test(e),a=null;continue}if(!s)continue;let t=/^ {2}(\S.*?):\s*$/.exec(e);if(t){let e=function(e){let t=u(e).replace(/^\//,""),n=t.indexOf("(");n>0&&(t=t.slice(0,n));let s=t.lastIndexOf("@");if(s>0&&!t.slice(s+1).includes("/")&&r(t.slice(0,s)))return{name:t.slice(0,s),version:t.slice(s+1).split("_")[0]};let a=t.lastIndexOf("/");return a<=0?null:{name:t.slice(0,a),version:t.slice(a+1).split("_")[0]}}(t[1]);(a=e?{...e,dev:!1}:null)&&n.push(a);continue}a&&/^ {4}dev: true\s*$/.test(e)&&(a.dev=!0)}return i(n)}(t);case"yarn":return function(e){let t=e.split(/\r?\n/),n=[],r=null,s=!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=u(e),n=t.indexOf("@",+!!t.startsWith("@"));return n>0?t.slice(0,n):null}(t.split(/,\s*/)[0]),s=!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 s?i(n):null}(t);case"bun":let d=o(t.replace(/,(\s*[}\]])/g,"$1"));if(!a(d)||!a(d.packages))return null;let c=[];for(let e of Object.values(d.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 i(c)}},"b",0,function(e){let t=o(e);return a(t)?{dependencies:d(t.dependencies),devDependencies:d(t.devDependencies),optionalDependencies:d(t.optionalDependencies)}:null}])},891262,267485,e=>{var t=e.i(442473),n=e.i(804581),r=e.i(7494),s=e.i(250474);let a=["CRITICAL","HIGH","MODERATE","LOW","UNKNOWN"],i=e=>"object"==typeof e&&null!==e&&!Array.isArray(e),o=e=>Array.isArray(e)?e:[],l=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,m={}){let h=m.timeoutMs??1e4,g=m.maxBytes??2097152,y=AbortSignal.timeout(h),v=(0,t.X)(y),k=`OSV.dev didn't answer within ${f(h)}`,w=[],b=null;for(let n=0;n<3;n++){var $;let n,r;try{n=await (m.fetch??fetch)("https://api.osv.dev/v1/query",{method:"POST",headers:{"content-type":"application/json","user-agent":"OpsConsole-Security/1.0 (+https://watchbell.west-solutions.web.id)"},body:JSON.stringify({package:{name:"next",ecosystem:"npm"},version:e,...b?{page_token:b}:{}}),redirect:"error",cache:"no-store",signal:y})}catch(e){return{ok:!1,error:p(e)?k:"Couldn't reach OSV.dev"}}if(!n.ok)return await n.body?.cancel().catch(()=>void 0),{ok:!1,error:`OSV.dev answered HTTP ${n.status}`};try{let{bytes:e,truncated:s}=await (0,t.z)(n,g,v);if(s)return{ok:!1,error:"OSV.dev sent too large an answer"};r=JSON.parse(new TextDecoder().decode(e))}catch(e){return{ok:!1,error:p(e)?k:d}}let s=i($=r)?void 0===$.vulns?[]:Array.isArray($.vulns)?$.vulns:null:null;if(null===s)return{ok:!1,error:d};if(w.push(...s),!(b=i(r)?l(r.next_page_token):null))break}let A=function(e,t){let d=[],c=0;for(let r of e){if(!i(r))continue;let e=l(r.id);e&&(c++,r.withdrawn||d.push({id:e.slice(0,64),cve:o(r.aliases).map(l).find(e=>!!e&&/^CVE-\d{4}-\d+$/.test(e))??null,summary:(l(r.summary)??"").replace(/\s+/g," ").trim().slice(0,200),severity:function(e){let t=i(e.database_specific)?l(e.database_specific.severity)?.toUpperCase():void 0;return"MEDIUM"===t?"MODERATE":a.includes(t??"")?t:"UNKNOWN"}(r),score:function(e){for(let t of o(e.severity))if(i(t)&&"CVSS_V3"===t.type){let e=(0,n.v)(l(t.score)??"");if(null!==e)return e}return null}(r),fixed:function(e,t){let n=null;for(let r of o(e))if(i(r)&&u(r))for(let e of o(r.ranges)){if(!i(e)||"SEMVER"!==e.type&&"ECOSYSTEM"!==e.type)continue;let r=null;for(let a of o(e.events)){if(!i(a))continue;let e=l(a.introduced),o=l(a.fixed);e?r=e:o&&null!==r?((0,s.f)(t,r)>=0&&0>(0,s.f)(t,o)&&(null===n||0>(0,s.f)(o,n))&&(n=o),r=null):(l(a.last_affected)||l(a.limit))&&(r=null)}}return n}(r.affected,t)}))}return e.length>0&&0===c?null:(0,r.I)(d).slice(0,50)}(w,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);let m="OpsConsole-Deps/1.0 (+https://watchbell.west-solutions.web.id)";async function h(e,t,n,r){let s=r.deadline-Date.now();if(s<500)return{ok:!1,error:"No time left for OSV.dev"};let a=AbortSignal.timeout(s);return y(e,{method:"POST",headers:{"content-type":"application/json","user-agent":m},body:JSON.stringify(t),signal:a},n,a,r)}async function g(e,t,n){let r=n.deadline-Date.now();if(r<500)return{ok:!1,error:"No time left for OSV.dev"};let s=AbortSignal.timeout(Math.min(r,8e3));return y(e,{method:"GET",headers:{"user-agent":m},signal:s},t,s,n)}async function y(e,n,r,s,a){let i;try{i=await (a.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)(s));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 v(e,t){let r=[];for(let s of(0,n.f)(e)){let e=await h(n.n,s,4194304,t);if(!e.ok)return e;let a=(0,n.j)(e.body,s.queries.length);if(!a)return{ok:!1,error:"OSV.dev sent an answer we couldn't read"};r.push(...a)}return{ok:!0,ids:r}}async function k(e,t){let r=[...new Set(e)].filter(n.G);if(r.length>300)return{ok:!1,error:`Too many advisories to read in one scan (${r.length})`};let s=new Map,a=null;for(let e=0;e<r.length&&!a;e+=8)await Promise.all(r.slice(e,e+8).map(async e=>{let r=await g(`${n.W}${encodeURIComponent(e)}`,1048576,t),i=r.ok?(0,n.O)(r.body):null;i?s.set(e,i):a??=r.ok?"OSV.dev sent an advisory we couldn't read":r.error}));return a?{ok:!1,error:a}:{ok:!0,map:s}}e.s(["J",0,k,"K",0,v],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:[],s=e=>"string"==typeof e&&e?e:null,a=e=>/^[A-Za-z0-9][A-Za-z0-9._:-]{1,63}$/.test(e),i={CRITICAL:"critical",HIGH:"high",MODERATE:"moderate",MEDIUM:"moderate",LOW:"low"};function o(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 s={N:.85,A:.62,L:.55,P:.2},a={L:.77,H:.44},i={N:.85,R:.62},o={H:.56,L:.22,N:0},l="C"===r.S,u=l?{N:.85,L:.68,H:.5}:{N:.85,L:.62,H:.27};if(![s[r.AV],a[r.AC],u[r.PR],i[r.UI],o[r.C],o[r.I],o[r.A]].every(e=>"number"==typeof e)||"U"!==r.S&&"C"!==r.S)return null;let d=1-(1-o[r.C])*(1-o[r.I])*(1-o[r.A]),c=l?7.52*(d-.029)-3.25*(d-.02)**15:6.42*d,p=8.22*s[r.AV]*a[r.AC]*u[r.PR]*i[r.UI];return c<=0?0:(t=Math.round(1e5*Math.min(l?1.08*(c+p):c+p,10)))%1e4==0?t/1e5:(Math.floor(t/1e4)+1)/10}let l=e=>e>=9?"critical":e>=7?"high":e>=4?"moderate":e>0?"low":"unknown",u=(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},"v",0,o,"i",0,function(e,a,i,o=new Map){let l=[];return e.forEach((e,d)=>{for(let c of a[d]??[]){let a=o.get(`${e.name}@${e.version}|${c}`);if(a){l.push({...a,dev:e.dev});continue}let d=i.get(c);d&&!d.withdrawn&&l.push({package:e.name,installedVersion:e.version,vulnId:d.id,aliases:d.aliases,severity:d.severity,fixedVersion:function(e,a,i){let o=null;for(let l of r(e))if(n(l)&&u(l,a))for(let e of r(l.ranges)){if(!n(e)||"SEMVER"!==e.type&&"ECOSYSTEM"!==e.type)continue;let a=null;for(let l of r(e.events)){if(!n(l))continue;let e=s(l.introduced),r=s(l.fixed);e?a=e:r&&null!==a?((0,t.f)(i,a)>=0&&0>(0,t.f)(i,r)&&(null===o||0>(0,t.f)(r,o))&&(o=r),a=null):(s(l.last_affected)||s(l.limit))&&(a=null)}}return o}(d.affected,e.name,e.version),summary:d.summary,dev:e.dev,source:"osv"})}}),l},"G",0,a,"O",0,function(e){if(!n(e))return null;let t=s(e.id);return t&&a(t)?{id:t,aliases:[...new Set(r(e.aliases).map(s).filter(e=>!!e&&a(e)))].slice(0,20),summary:(s(e.summary)??s(e.details)?.split(/\n/)[0]??"").replace(/\s+/g," ").trim().slice(0,200),severity:function(e){let t=n(e.database_specific)?s(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=s(t.score)?o(s(t.score)):null;if(null!==e)return l(e)}return(s(e.id)??"").startsWith("MAL-")?"critical":"unknown"}(e),withdrawn:!!s(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)?s(e.id):null).filter(e=>!!e&&a(e)):[]):null}])},413230,e=>{var t=e.i(250474),n=e.i(32391),r=e.i(804581);let s=["critical","high","moderate","low","unknown"],a=e=>s.indexOf(e),i=e=>"object"==typeof e&&null!==e&&!Array.isArray(e),o=e=>"string"==typeof e&&e?e:null,l={critical:"critical",high:"high",medium:"moderate",moderate:"moderate",low:"low"},u=e=>`${e.package}@${e.installedVersion}|${e.vulnId}`,d=e=>{let t;return!e.dev&&(a(e.severity)<=a("high")||(t=e.summary,/\bRCE\b|remote code execution/i.test(t))||"moderate"===e.severity&&!0===e.direct)};e.s(["g",0,function(e){let t=e.filter(d);return t.some(e=>{let t;return"critical"===e.severity||(t=e.summary,/\bRCE\b|remote code execution/i.test(t))})?"critical":t.length?"warning":null},"L",0,function(e){let t=e.filter(d),n=[...t].sort((e,t)=>a(e.severity)-a(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 s=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),o=["critical","high","moderate","low","unknown"].filter(e=>i[e]>0).map(e=>`${i[e]} ${e}`).join(", "),l=`${s} vulnerable package${1===s?"":"s"} (${o}): ${r.slice(0,4).join(", ")}${r.length>4?`, +${r.length-4} more`:""}.`;return l.length>300?`${l.slice(0,299)}…`:l},"z",0,function(e,t,n){let r=new Set;return e.forEach((e,s)=>{for(let a of t[s]??[])n.has(`${e.name}@${e.version}|${a}`)||r.add(a)}),[...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 s=[...e];for(let e of n)if(!s.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 s=(0,t.f)(e,r[2]);return"<"===r[1]?s<0:"<="===r[1]?s<=0:">"===r[1]?s>0:">="===r[1]?s>=0:0===s})}(n.version,e.range)&&s.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 s},"E",0,function(e){if(!Array.isArray(e))return null;let t=[];for(let s of e){if(!i(s)||"open"!==s.state||!i(s.dependency)||!i(s.security_advisory))continue;let e=i(s.dependency.package)&&"npm"===s.dependency.package.ecosystem?o(s.dependency.package.name):null,a=o(s.security_advisory.ghsa_id);if(!e||!(0,n.L)(e)||!a||!(0,r.G)(a))continue;let u=i(s.security_vulnerability)?s.security_vulnerability:{},d=i(u.first_patched_version)?o(u.first_patched_version.identifier):null,c=o(s.security_advisory.cve_id);t.push({package:e,ghsaId:a,cveId:c&&/^CVE-\d{4}-\d+$/.test(c)?c:null,summary:(o(s.security_advisory.summary)??"").replace(/\s+/g," ").trim().slice(0,r.h),severity:l[(o(u.severity)??o(s.security_advisory.severity)??"").toLowerCase()]??"unknown",range:o(u.vulnerable_version_range),fixed:d&&d.length<=100?d:null,dev:"development"===s.dependency.scope})}return t},"h",0,function(e,t,n){let s=new Map(e.map(e=>[u(e),e])),a=new Set,i={insert:[],update:[],resolve:[]};for(let e of t){let t=u(e);if(a.has(t))continue;a.add(t);let o={...e,aliases:e.aliases.slice(0,r.S),summary:e.summary.slice(0,r.h),direct:n.has(e.package)},l=s.get(t);l?i.update.push({id:l.id,severity:o.severity,fixedVersion:o.fixedVersion,summary:o.summary,aliases:o.aliases,dev:o.dev,direct:o.direct}):i.insert.push(o)}return i.resolve=e.filter(e=>!a.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,r=new Set;for(let s of e){if(!s.direct||!s.fixedVersion||0>=(0,t.f)(s.fixedVersion,s.installedVersion))continue;!0!==s.dev&&r.add(s.package);let e=n.get(s.package)??{package:s.package,to:s.fixedVersion,vulnIds:[],cves:[],severity:s.severity};for(let n of((0,t.f)(s.fixedVersion,e.to)>0&&(e.to=s.fixedVersion),e.vulnIds.includes(s.vulnId)||e.vulnIds.push(s.vulnId),s.aliases))/^CVE-/.test(n)&&!e.cves.includes(n)&&e.cves.push(n);a(s.severity)<a(e.severity)&&(e.severity=s.severity),n.set(s.package,e)}for(let e of n.values())r.has(e.package)||(e.dev=!0);return[...n.values()].sort((e,t)=>a(e.severity)-a(t.severity)||(e.package<t.package?-1:1))}])},479301,e=>{let t=/^[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&&t.test(e)])},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)}])},390163,e=>{var t=e.i(123862);e.s(["f",0,function(e){var n;let r;if(!e||"ok"!==e.status||!e.system)return null;let s=(n=e.updates,r=e=>e.security||e.fixes.length>0||null!==e.error,{security:n.filter(r),other:n.filter(e=>!r(e))}).security,a=s.some(e=>null!==e.error),i=s.filter(e=>e.fixes.length).map(e=>{let t=[...e.fixes].sort((e,t)=>(t.cvss3??-1)-(e.cvss3??-1));return{source:e.source,score:t[0].cvss3,cves:t.map(e=>e.cve)}}),o=e.kernel,l=o?.newestInstalled&&o.runningVersion&&(0,t.f)(o.newestInstalled,o.runningVersion)>0?{installed:o.newestInstalled,running:o.runningVersion}:null;return{system:e.system,updates:i,kernelWaiting:l,partial:a}}])},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 s(e){return Array.isArray(e)?t.filter(r=>"string"==typeof r&&t.includes(r)&&n.includes(r)&&e.includes(r)):[]}let a={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",FrameworkVulnerable:"hosting",CiFailing:"devops",OsSecurityUpdate:"devops",MonitorDomainMoved:"hosting",CredentialExpiring:"account",CollectorStale:null},i=/^Log/;e.s(["D",0,r,"O",0,(e,t,n)=>{let s;if(!e.size)return!1;let o="account"===(s=a[t])?n?r[n]??null:null:void 0!==s?s:i.test(t)?"hosting":null;return null!==o&&e.has(o)},"N",0,s,"s",0,function(e){return{ruleKeys:Object.entries(a).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(s(e))])},7494,e=>{let t={CRITICAL:4,HIGH:3,MODERATE:2,LOW:1,UNKNOWN:0};function n(e){return e.reduce((e,n)=>t[n.severity]>t[e]?n.severity:e,"UNKNOWN")}let r=e=>`${e} known vulnerabilit${1===e?"y":"ies"}`;e.s(["t",0,function(e,s,a){let i=new Set((s?.findings??[]).map(e=>e.id));if("vulnerable"===a.status&&a.findings.length>0){if(a.findings.every(e=>i.has(e.id)))return null;let s=n(a.findings);return{kind:t[s]>=t.HIGH?"err":"warn",message:`${e} runs Next.js ${a.version} with ${r(a.findings.length)} (${s.toLowerCase()})`,detail:a.findings.map(e=>e.id).join(", ").slice(0,1e3)}}return"ok"===a.status&&i.size>0?{kind:"ok",message:`${e} no longer has known Next.js vulnerabilities (now ${a.version})`,detail:null}:null},"I",0,function(e){return[...e].sort((e,n)=>t[n.severity]-t[e.severity]||(e.id<n.id?-1:+(e.id>n.id)))},"q",0,r,"N",0,n])},250474,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),s=t(n);for(let e=0;e<3;e++)if(r.nums[e]!==s.nums[e])return r.nums[e]-s.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,s=/^\d+$/.test(t[n])?Number(t[n]):null;if(null!==r&&null!==s){if(r!==s)return r-s}else if(null!==r||null!==s)return null!==r?-1:1;else if(e[n]!==t[n])return e[n]<t[n]?-1:1}return 0}(r.pre,s.pre)}])}]})();
|
|
6
|
-
|
|
7
|
-
//# sourceMappingURL=src_lib_1znb-e7g8dkgc._.js.map
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
module.exports=[380167,e=>{"use strict";var t=e.i(533102),a=e.i(406212),r=e.i(200123),n=e.i(595262);async function s(){let e=await (0,a.db)().execute(t.sql`
|
|
2
|
-
select pid, state, extract(epoch from now() - state_change)::int as idle_s,
|
|
3
|
-
coalesce(extract(epoch from now() - query_start)::int, 0) as run_s, left(query, 400) as query
|
|
4
|
-
from pg_stat_activity where usename = current_user and pid <> pg_backend_pid()`);return(0,r.f)(e).map(e=>{var t;let a;return{pid:Number(e.pid),state:e.state,idleS:Number(e.idle_s),runS:Number(e.run_s),table:(t=e.query,(a=/(?:from|into|update|join)\s+"?ops"?\."?([a-z_]+)"?/i.exec(t??""))?a[1]:null)}})}async function o(e=10,i=10){let l=await s(),d=function(e,t=10,a=10){let r=function(e){let t=new Set,a=[];for(let r of e.filter(e=>"idle"===e.state&&e.table).sort((e,t)=>e.idleS-t.idleS))t.has(r.table)?r.idleS>=60&&a.push(r):t.add(r.table);return a}(e),n=e.filter(e=>!r.includes(e)),s=Math.max(0,n.length+1-t);return s?[...r,...[...n.filter(e=>"idle"===e.state&&e.idleS>=a).sort((e,t)=>t.idleS-e.idleS),...n.filter(e=>"idle"!==e.state&&e.runS>60).sort((e,t)=>t.runS-e.runS)].slice(0,s)]:r}(l,e,i),u=0;if(d.length){let e=d.map(e=>e.pid).filter(e=>Number.isInteger(e)&&e>0),n=await (0,a.db)().execute(t.sql`select pg_terminate_backend(pid) as ok from unnest(array[${t.sql.raw(e.join(","))}]::int[]) as pid`);u=(0,r.f)(n).filter(e=>e.ok).length}let c=function(e){let t=new Map;for(let a of e)t.set(a.table??"unknown",(t.get(a.table??"unknown")??0)+1);return[...t.entries()].sort((e,t)=>t[1]-e[1]).map(([e,t])=>`${e} \xd7${t}`)}(d);return u>0&&(console.info(`pool guard: ${l.length+1} connections, closed ${u} (${c.join(", ")})`),await (0,n.f)({kind:"ok",message:`Pool guard: closed ${u} of ${l.length+1} database connections`,detail:c.join(", ").slice(0,300),resourceId:null,actorUserId:null}).catch(()=>void 0)),{total:l.length+1,trimmed:u,culprits:c}}var i=e.i(90879),l=e.i(638809),d=e.i(366171);let u=[{name:"pool-guard",run:async()=>{(0,i.isCloud)()&&await o().catch(e=>console.warn("pool guard failed:",e instanceof Error?e.message.slice(0,160):"error"))}},{name:"supabase-metrics",run:async(e,t)=>{(await (0,l.I)()).has("database")||await (0,d.E)(e,t?.deadline??e.getTime()+3e4)}}];var c=e.i(928755),p=e.i(336763),f=e.i(157406),m=e.i(668304);function h(e){if((0,i.isCloud)())for(let t of new Set(e))try{let e;e=t,(0,m.revalidateTag)(e,{expire:0})}catch(e){console.warn(`cache: couldn't expire ${t}: ${e instanceof Error?e.message.slice(0,120):"unknown"}`)}}var w=e.i(188477),g=e.i(530298),y=e.i(396918),b=e.i(727028),k=e.i(728335),v=e.i(760859);let I="Watchbell backups",$="Watchpost backups",A=["Overview","Applications","Incidents","Databases","Domains"],S=["January","February","March","April","May","June","July","August","September","October","November","December"];function D(e){let t=(0,k.zonedParts)(e);return`${t.year}-${String(t.month).padStart(2,"0")}`}function E(e){return{start:(0,k.dayStart)(`${e}-01`),end:(0,k.dayStart)(`${function(e){let[t,a]=e.split("-").map(Number);return 12===a?`${t+1}-01`:`${t}-${String(a+1).padStart(2,"0")}`}(e)}-01`)}}function x(e){let[t,a]=e.split("-").map(Number);return 1===a?`${t-1}-12`:`${t}-${String(a-1).padStart(2,"0")}`}function j(e){let[t,a]=e.split("-").map(Number);return`${S[a-1]} ${t}`}let T=e=>`Watchbell \xb7 ${e}`;function M(e){if(!e)return"";let t=(0,k.zonedParts)(e),a=e=>String(e).padStart(2,"0");return`${t.year}-${a(t.month)}-${a(t.day)} ${a(t.hour)}:${a(t.minute)}`}let O=(e,t)=>e>0?Math.round((e-t)/e*1e5)/1e3:"",z=e=>{if(!e.length)return null;let t=[...e].sort((e,t)=>e-t),a=Math.floor(t.length/2);return t.length%2?t[a]:Math.round((t[a-1]+t[a])/2)},C=e=>e.reduce((e,t)=>e+t,0),N=e=>"production"===e.target,R=e=>"ERROR"===e.state,_={supabase_project:"Supabase",neon_project:"Neon",firestore:"Firebase"};function q(e,t){if(!e)return"";let a=Date.parse(e);return Number.isFinite(a)?Math.floor((a-t.getTime())/864e5):""}let P=e=>null===e?"":Math.round(e/1048576*10)/10;function F(e){if(null===e)return"";if("number"==typeof e||"boolean"==typeof e)return String(e);let t=/^[=+\-@\t\r]/.test(e)?`'${e}`:e;return/[",\r\n]/.test(t)?`"${t.replace(/"/g,'""')}"`:t}let U=["record","at","subject","resource_id","checks","failures","p50_ms","p95_ms","max_ms","status_5xx","maintenance","type","kind","reason","count","message","detail"];var B=e.i(803237),G=e.i(788264),L=e.i(93387),W=e.i(857799),H=e.i(503313),V=e.i(827439);let J="backup.folder";async function K(){let[e]=await (0,a.db)().select().from(g.accounts).where((0,p.eq)(g.accounts.provider,"drive")).orderBy((0,y.asc)(g.accounts.createdAt)).limit(1);if(!e)return null;let t=(0,B.V)({ciphertext:e.credentialCiphertext,iv:e.credentialIv},(0,L.serverEnv)().OPS_ENCRYPTION_KEY);return{id:e.id,status:e.status,lastError:e.lastError,lastTestAt:e.lastTestAt,refreshToken:t}}async function Y(e,t){let r=new Date;await (0,a.db)().update(g.accounts).set({...t,lastTestAt:r,updatedAt:r}).where((0,p.eq)(g.accounts.id,e))}async function X(){return(0,a.db)().select().from(g.backups).orderBy((0,y.desc)(g.backups.month)).limit(120)}async function Q(e){let[t]=await (0,a.db)().select().from(g.backups).where((0,p.eq)(g.backups.month,e)).limit(1);return t??null}async function Z(e,t){let r=new Date;await (0,a.db)().insert(g.backups).values({month:e,...t,updatedAt:r}).onConflictDoUpdate({target:g.backups.month,set:{...t,updatedAt:r}})}async function ee(){let[e]=await (0,a.db)().select().from(g.settings).where((0,p.eq)(g.settings.key,J)).limit(1),t=e?.value;return"string"==typeof t?.id&&t.id?{id:t.id,name:"string"==typeof t.name&&t.name?t.name:null}:null}async function et(e,t){let r=t?{id:e,name:t}:{id:e};await (0,a.db)().insert(g.settings).values({key:J,value:r}).onConflictDoUpdate({target:g.settings.key,set:{value:r,updatedAt:new Date}})}let ea=e=>"number"==typeof e&&Number.isFinite(e)?e:null;async function er(e,t,r){let{start:n,end:s}=E(e),o=t&&r<s?r:s,[i,l,d,u,c,f,m,h]=await Promise.all([(0,H.f)(),(0,a.db)().select({id:g.resources.id,name:g.resources.name}).from(g.resources).where((0,p.and)((0,p.eq)(g.resources.kind,"app"),(0,p.eq)(g.resources.monitored,!0),(0,p.isNull)(g.resources.goneAt))).orderBy((0,y.asc)(g.resources.name)).limit(500),(0,a.db)().select({r:g.rollupsHourly,appId:g.monitors.resourceId,app:g.resources.name,url:g.monitors.url,kind:g.monitors.kind,name:g.monitors.name}).from(g.rollupsHourly).innerJoin(g.monitors,(0,p.eq)(g.monitors.id,g.rollupsHourly.monitorId)).innerJoin(g.resources,(0,p.eq)(g.resources.id,g.monitors.resourceId)).where((0,p.and)((0,p.gte)(g.rollupsHourly.hour,n),(0,p.lt)(g.rollupsHourly.hour,o))).orderBy((0,y.asc)(g.rollupsHourly.hour)).limit(5e4),(0,a.db)().select({e:g.events,resource:g.resources.name}).from(g.events).leftJoin(g.resources,(0,p.eq)(g.resources.id,g.events.resourceId)).where((0,p.and)((0,p.gte)(g.events.at,n),(0,p.lt)(g.events.at,o))).orderBy((0,y.asc)(g.events.at)).limit(5e4),(0,a.db)().select().from(g.alerts).where((0,p.and)((0,p.gte)(g.alerts.startedAt,n),(0,p.lt)(g.alerts.startedAt,o))).orderBy((0,y.asc)(g.alerts.startedAt)).limit(5e3),(0,a.db)().select({appId:g.deployments.resourceId,target:g.deployments.target,state:g.deployments.state,createdAt:g.deployments.createdAtProvider}).from(g.deployments).where((0,p.and)((0,p.gte)(g.deployments.createdAtProvider,n),(0,p.lt)(g.deployments.createdAtProvider,o))).limit(1e4),(0,a.db)().select({r:g.resources,s:g.snapshots,account:g.accounts.label}).from(g.resources).innerJoin(g.accounts,(0,p.eq)(g.accounts.id,g.resources.accountId)).leftJoin(g.snapshots,(0,p.eq)(g.snapshots.resourceId,g.resources.id)).where((0,p.and)((0,p.inArray)(g.resources.kind,[...W.H]),(0,p.eq)(g.resources.monitored,!0),(0,p.isNull)(g.resources.goneAt))).limit(500),(0,V.p)()]),w=m.map(({r:e,s:t,account:a})=>{let r=t?.data??{},n=e.kind,s="neon_project"===n?(0,G.k)(G.s,r):null,o="supabase_project"===n?ea((0,G.k)(G.B,r).sizeBytes):s?(s.branches??[]).reduce((e,t)=>null===t.logicalSize?e:(e??0)+t.logicalSize,null):null;return{id:e.id,kind:n,account:a,state:t?.state??"unknown",sizeBytes:o,cuHours:s&&null!==ea(s.computeSeconds)?Math.round(s.computeSeconds/3600*10)/10:null,reads:"firestore"===n?ea((0,G.k)(G.w,r).reads):null}}),b=h.map(e=>({name:e.name,app:e.appName,tlsExpires:e.tls?.notAfter??null,domainExpires:e.rdap?.expiresAt??null,registrar:e.rdap?.registrar??null}));return{month:e,partial:t,generatedAt:r,book:i,apps:l,rollups:d.map(({r:e,appId:t,app:a,url:r,kind:n,name:s})=>({monitorId:e.monitorId,appId:t,app:a,path:(e=>{if("heartbeat"===e.kind)return` heartbeat ${e.name??""}`.trimEnd();try{return new URL(e.url).pathname}catch{return e.url}})({kind:n,name:s,url:r}),hour:e.hour,checks:e.checks,failures:e.failures,p50Ms:e.p50Ms,p95Ms:e.p95Ms,maxMs:e.maxMs,status5xx:e.status5xx,maintenance:e.maintenance})),events:u.map(({e,resource:t})=>({at:e.at,resourceId:e.resourceId,resource:t,type:e.type,kind:e.kind,reason:e.reason,count:e.count,message:e.message,detail:e.detail})),alerts:c.map(e=>({ruleKey:e.ruleKey,severity:e.severity,title:e.title,message:e.message,resourceId:e.resourceId,startedAt:e.startedAt,resolvedAt:e.resolvedAt})),deployments:f,databases:w,domains:b}}var en=e.i(75064),es=e.i(909592),eo=e.i(684330),ei=e.i(492973),el=e.i(246517),ed=e.i(260417),eu=e.i(978071);let ec="application/vnd.google-apps.folder",ep="https://www.googleapis.com/drive/v3/files",ef="https://www.googleapis.com/upload/drive/v3/files",em="https://sheets.googleapis.com/v4/spreadsheets",eh=en.z.object({error:en.z.object({errors:es.z.array(eo.z.looseObject({reason:ei.z.string().optional()})).optional(),status:ei.z.string().optional()})});async function ew(e,t,a,r,n){let s,o,i=n.timeoutMs??1e4,l={Authorization:`Bearer ${a}`,Accept:"application/json"};r?.raw?(l["Content-Type"]=r.contentType??"application/octet-stream",s=new Uint8Array(r.raw)):r&&void 0!==r.json&&(l["Content-Type"]="application/json",s=JSON.stringify(r.json));try{o=await (n.fetch??fetch)(t,{method:e,headers:l,body:s,signal:AbortSignal.timeout(i),cache:"no-store"})}catch(e){return{ok:!1,kind:"transient",error:e instanceof DOMException&&("TimeoutError"===e.name||"AbortError"===e.name)?`Google Drive didn't answer within ${Math.round(i/1e3)} seconds.`:"Couldn't reach Google Drive."}}let d=await o.json().catch(()=>null);if(o.ok)return{ok:!0,data:d};let u=eh.safeParse(d),c=u.success?u.data.error.errors?.find(e=>e.reason)?.reason??u.data.error.status:void 0;return 401===o.status?{ok:!1,kind:"auth",status:401,error:"Google Drive rejected the access token (401)."}:404===o.status?{ok:!1,kind:"missing",status:404,error:"Google Drive doesn't know this file (404)."}:403===o.status&&"storageQuotaExceeded"===c?{ok:!1,kind:"full",status:403,error:"Your Google Drive is full. Free some space; the next run tries again."}:429===o.status||o.status>=500||403===o.status&&/rateLimit/i.test(c??"")?{ok:!1,kind:"transient",status:o.status,error:`Google Drive is busy (${o.status}). The next run tries again.`}:{ok:!1,kind:403===o.status?"denied":"format",status:o.status,error:`Google Drive refused the request (${o.status}${c?` ${c}`:""}).`}}let eg=en.z.object({id:ei.z.string().min(1)}),ey=e=>({ok:!1,kind:"format",error:`Google Drive answered ${e} in a format the console doesn't recognise.`});function eb(e,t){if(!e.ok)return e;let a=eg.safeParse(e.data);return a.success?{ok:!0,data:a.data.id}:ey(t)}async function ek(e,t,a={}){let r=`name = '${t.replace(/['\\]/g,"\\$&")}' and mimeType = '${ec}' and trashed = false`,n=await ew("GET",`${ep}?${new URLSearchParams({q:r,fields:"files(id,name)",spaces:"drive",pageSize:"10"})}`,e,null,a);if(!n.ok)return n;let s=en.z.object({files:es.z.array(eg)}).safeParse(n.data);return s.success?{ok:!0,data:s.data.files[0]?.id??null}:ey("the folder search")}async function ev(e,t,a={}){let r=await ew("GET",`${ep}/${encodeURIComponent(t)}?fields=id,trashed,name`,e,null,a);if(!r.ok)return"missing"===r.kind||"denied"===r.kind?{ok:!0,data:{usable:!1,name:null}}:r;let n=en.z.object({id:ei.z.string(),trashed:el.z.boolean().optional(),name:ei.z.string().optional()}).safeParse(r.data);return n.success?{ok:!0,data:{usable:!n.data.trashed,name:n.data.name?.trim()||null}}:ey("the folder")}async function eI(e,t,a={}){return eb(await ew("POST",`${ep}?fields=id`,e,{json:{name:t,mimeType:ec}},a),"the new folder")}async function e$(e,t,a,r={}){return eb(await ew("POST",`${ep}?fields=id`,e,{json:{name:t,mimeType:"application/vnd.google-apps.spreadsheet",parents:[a]}},r),"the new spreadsheet")}let eA=e=>`'${e.replace(/'/g,"''")}'`;async function eS(e,t,a,r={}){let n=await ew("GET",`${em}/${encodeURIComponent(t)}?fields=sheets.properties(sheetId,title)`,e,null,r);if(!n.ok)return n;let s=en.z.object({sheets:es.z.array(en.z.object({properties:en.z.object({sheetId:ed.z.number(),title:ei.z.string()})})).default([])}).safeParse(n.data);if(!s.success)return ey("the spreadsheet's tabs");let o=s.data.sheets.map(e=>e.properties),i=new Set(o.map(e=>e.title)),l=[],d=a.filter(e=>!i.has(e)),u=o[0];for(let e of(u&&d.length&&!a.includes(u.title)&&(l.push({updateSheetProperties:{properties:{sheetId:u.sheetId,title:d[0]},fields:"title"}}),d.shift()),d))l.push({addSheet:{properties:{title:e}}});if(!l.length)return{ok:!0,data:void 0};let c=await ew("POST",`${em}/${encodeURIComponent(t)}:batchUpdate`,e,{json:{requests:l}},r);return c.ok?{ok:!0,data:void 0}:c}async function eD(e,t,a,r={}){let n=encodeURIComponent(t),s=await ew("POST",`${em}/${n}/values:batchClear`,e,{json:{ranges:a.map(e=>eA(e.title))}},r);if(!s.ok)return s;let o=a.map(e=>({range:`${eA(e.title)}!A1`,majorDimension:"ROWS",values:e.rows.map(e=>e.map(e=>e??""))})),i=await ew("POST",`${em}/${n}/values:batchUpdate`,e,{json:{valueInputOption:"RAW",data:o}},r);return i.ok?{ok:!0,data:void 0}:i}let eE="watchbell-backup-part";function ex(e,t,a){return Buffer.concat([Buffer.from(`--${eE}\r
|
|
5
|
-
Content-Type: application/json; charset=UTF-8\r
|
|
6
|
-
\r
|
|
7
|
-
${JSON.stringify(e)}\r
|
|
8
|
-
--${eE}\r
|
|
9
|
-
Content-Type: ${a}\r
|
|
10
|
-
\r
|
|
11
|
-
`),t,Buffer.from(`\r
|
|
12
|
-
--${eE}--`)])}async function ej(e,t,a={}){let r=`multipart/related; boundary=${eE}`,n=e=>{if(!e.ok)return e;let a=en.z.object({id:ei.z.string().min(1),size:eu.z.union([ei.z.string(),ed.z.number()]).optional()}).safeParse(e.data);return a.success?{ok:!0,data:{id:a.data.id,size:Number(a.data.size??t.content.length)||t.content.length}}:ey("the upload")};if(t.fileId){let s=ex({name:t.name,mimeType:t.mimeType},t.content,t.mimeType),o=await ew("PATCH",`${ef}/${encodeURIComponent(t.fileId)}?uploadType=multipart&fields=id,size`,e,{raw:s,contentType:r},a);if(o.ok||"missing"!==o.kind&&"denied"!==o.kind)return n(o)}let s=ex({name:t.name,mimeType:t.mimeType,parents:[t.folderId]},t.content,t.mimeType);return n(await ew("POST",`${ef}?uploadType=multipart&fields=id,size`,e,{raw:s,contentType:r},a))}async function eT(e,t,a={}){let r=await ew("PATCH",`${ep}/${encodeURIComponent(t)}?fields=id,trashed`,e,{json:{trashed:!0}},a);return r.ok||"missing"===r.kind?{ok:!0,data:void 0}:r}var eM=e.i(666680),eO=e.i(547963);let ez=eO.n.notSet("GOOGLE_CLIENT_ID and GOOGLE_CLIENT_SECRET",!0),eC="invalid_grant: Google Drive access was removed or has expired. Reconnect Google Drive.",eN=en.z.object({error:ei.z.string()});async function eR(e,t){let a,r=t.timeoutMs??1e4;try{a=await (t.fetch??fetch)("https://oauth2.googleapis.com/token",{method:"POST",headers:{Accept:"application/json","Content-Type":"application/x-www-form-urlencoded"},body:e.toString(),signal:AbortSignal.timeout(r),cache:"no-store"})}catch(e){return{ok:!1,kind:"transient",error:e instanceof DOMException&&("TimeoutError"===e.name||"AbortError"===e.name)?`Google didn't answer within ${Math.round(r/1e3)} seconds.`:"Couldn't reach Google."}}let n=await a.json().catch(()=>null);if(a.ok)return{ok:!0,body:n};let s=eN.safeParse(n).success?n.error:null;return"invalid_grant"===s?{ok:!1,kind:"revoked",error:eC}:"invalid_client"===s||"unauthorized_client"===s?{ok:!1,kind:"client",error:`Google refused the OAuth client. Check GOOGLE_CLIENT_ID and GOOGLE_CLIENT_SECRET ${eO.n.checkWhere}.`}:429===a.status||a.status>=500?{ok:!1,kind:"transient",error:`Google returned an error (${a.status}). The next run tries again.`}:{ok:!1,kind:"format",error:`Google refused the request (${s??a.status}).`}}en.z.object({refresh_token:ei.z.string().min(1),scope:ei.z.string().optional()});let e_=en.z.object({access_token:ei.z.string().min(1)});async function eq(e,t,a={}){let r=await eR(new URLSearchParams({grant_type:"refresh_token",refresh_token:t,client_id:e.clientId,client_secret:e.clientSecret}),a);if(!r.ok)return r;let n=e_.safeParse(r.body);return n.success?{ok:!0,accessToken:n.data.access_token}:{ok:!1,kind:"format",error:"Google answered the token request in a format the console doesn't recognise."}}class eP extends Error{kind;constructor(e,t){super(t),this.kind=e}}async function eF(e){let{month:t,partial:a,now:r}=e,n=function(e=process.env){let t=e.GOOGLE_CLIENT_ID?.trim()??"",a=e.GOOGLE_CLIENT_SECRET?.trim()??"";return a&&/^[\w.-]+\.apps\.googleusercontent\.com$/.test(t)?{clientId:t,clientSecret:a}:null}();if(!n)return{ok:!1,month:t,kind:"env",error:ez};let s=await K();if(!s)return{ok:!1,month:t,kind:"not-connected",error:"Google Drive isn't connected."};if(!s.refreshToken){let e="The stored Google Drive token can't be read (the encryption key changed). Reconnect Google Drive.";return await Y(s.id,{status:"error",lastError:e}),{ok:!1,month:t,kind:"failed",error:e}}let o=await Q(t),i={sheetFileId:o?.sheetFileId??null,csvFileId:o?.csvFileId??null,driveFolderId:o?.driveFolderId??null},l=o?.status??"error";await Z(t,{status:l,attempts:(o?.attempts??0)+1,startedAt:r});let d=e=>(i={...i,...e},Z(t,{status:l,...e})),u={fetch:e.fetch},c=()=>{if(Date.now()>e.deadline)throw new eP("time","Stopped at the daily job's time budget; the next daily run continues where this one stopped.")},p=e=>{if(!e.ok)throw new eP("failed",e.error);return e.data};try{let o,l=await eq(n,s.refreshToken,u);if(!l.ok){if("revoked"===l.kind)throw await Y(s.id,{status:"error",lastError:eC}),new eP("revoked",eC);throw new eP("failed",l.error)}"error"===s.status&&await Y(s.id,{status:"ok",lastError:null});let f=l.accessToken;c();let m=await ee(),h=m?.id??null;if(m){let e=p(await ev(f,m.id,u));e.usable?e.name&&e.name!==m.name&&await et(m.id,e.name):h=null}if(!h){c();let e=p(await ek(f,I,u)),t=e?null:p(await ek(f,$,u));h=e??t??p(await eI(f,I,u)),await et(h,t?$:I)}let w=await er(t,a,r);c(),i.sheetFileId||await d({sheetFileId:p(await e$(f,T(t),h,u)),driveFolderId:h}),c();let g=await eS(f,i.sheetFileId,A,u);g.ok||"missing"!==g.kind&&"denied"!==g.kind||(await d({sheetFileId:p(await e$(f,T(t),h,u)),driveFolderId:h}),c(),g=await eS(f,i.sheetFileId,A,u)),p(g),c(),p(await eD(f,i.sheetFileId,function(e){let{start:t,end:a}=E(e.month),r=e.partial&&e.generatedAt<a?e.generatedAt:a,n=e.deployments.filter(N),s=C(e.rollups.map(e=>e.checks)),o=C(e.rollups.map(e=>e.failures)),i=e=>(0,v.G)(e),l=[["Watchbell backup",e.month],["Covers",`${M(t)} to ${M(r)} ${(0,k.zoneName)()}${e.partial?" (month so far)":""}`],["Kind",e.partial?"Partial: Back up now":"Full month"],["Generated",`${M(e.generatedAt)} ${(0,k.zoneName)()}`],[],["Applications watched",e.apps.length],["Uptime, all monitors (%)",O(s,o)],["Checks (rolled-up hours)",s],["Failed checks",o],["Incidents (alerts opened)",e.alerts.length],["Critical incidents",e.alerts.filter(e=>"critical"===e.severity).length],["Production deployments",n.length],["Failed production deployments",n.filter(R).length],["Events",C(e.events.map(e=>e.count))]],d=[["Application","Monitors","Checks","Uptime (%)","p95 response, typical hour (ms)","p95 response, worst hour (ms)","5xx responses","Production deploys","Failed production deploys"]];for(let t of[...e.apps].sort((e,t)=>e.name.localeCompare(t.name))){let a=e.rollups.filter(e=>e.appId===t.id),r=a.map(e=>e.p95Ms).filter(e=>null!==e),s=n.filter(e=>e.appId===t.id);d.push([i(t.name),new Set(a.map(e=>e.monitorId)).size,C(a.map(e=>e.checks)),O(C(a.map(e=>e.checks)),C(a.map(e=>e.failures))),z(r),r.length?Math.max(...r):null,C(a.map(e=>e.status5xx)),s.length,s.filter(R).length])}let u=[["Rule","Severity","Subject",`Started (${(0,k.zoneName)()})`,`Resolved (${(0,k.zoneName)()})`,"Duration","Message"]];for(let t of[...e.alerts].sort((e,t)=>e.startedAt.getTime()-t.startedAt.getTime())){let a=(0,v.o)({title:t.title,message:t.message,causedBy:null,resourceId:t.resourceId},e.book);u.push([t.ruleKey,t.severity,a.title,M(t.startedAt),M(t.resolvedAt),function(e,t,a){let r=Math.max(0,Math.round(((t??a).getTime()-e.getTime())/6e4)),n=r<60?`${r} min`:r<2880?`${Math.floor(r/60)} h ${r%60} min`:`${Math.round(r/1440)} days`;return t?n:`${n} (still open)`}(t.startedAt,t.resolvedAt,r),a.message])}let c=[["Database","Provider","Account","State at backup","Status changes this month","Size (MB)","Neon CU-hours this period","Firestore reads (last reading)"]];for(let t of[...e.databases].sort((t,a)=>(0,v.X)(e.book,t.id).localeCompare((0,v.X)(e.book,a.id)))){let a=C(e.events.filter(e=>"database"===e.type&&e.resourceId===t.id).map(e=>e.count));c.push([(0,v.X)(e.book,t.id),_[t.kind],i(t.account),t.state,a,P(t.sizeBytes),t.cuHours,t.reads])}let p=[["Domain","Application","TLS certificate expires","TLS days left at month end","Domain expires (RDAP)","Domain days left at month end","Registrar"]];for(let t of[...e.domains].sort((e,t)=>e.name.localeCompare(t.name)))p.push([t.name,t.app?i(t.app):"",t.tlsExpires??"",q(t.tlsExpires,r),t.domainExpires??"",q(t.domainExpires,r),t.registrar??""]);return[{title:"Overview",rows:l},{title:"Applications",rows:d},{title:"Incidents",rows:u},{title:"Databases",rows:c},{title:"Domains",rows:p}]}(w),u)),c();let y=(o=function(e){let t=[U.join(",")];for(let a of[...e.rollups].sort((e,t)=>e.hour.getTime()-t.hour.getTime()||e.monitorId.localeCompare(t.monitorId)))t.push(["rollup",a.hour.toISOString(),(0,v.G)(`${a.app}${a.path}`),a.appId,a.checks,a.failures,a.p50Ms,a.p95Ms,a.maxMs,a.status5xx,a.maintenance,null,null,null,null,null,null].map(F).join(","));for(let a of[...e.events].sort((e,t)=>e.at.getTime()-t.at.getTime())){let r=a.resourceId&&e.book.db.some(e=>e.id===a.resourceId)?(0,v.X)(e.book,a.resourceId):(0,v.J)(a.resource??"",e.book);t.push(["event",a.at.toISOString(),r,a.resourceId,null,null,null,null,null,null,null,a.type,a.kind,a.reason,a.count,(0,v.J)(a.message,e.book,a.resourceId),(0,v.J)(a.detail,e.book,a.resourceId)].map(F).join(","))}return`${t.join("\r\n")}\r
|
|
13
|
-
`}(w),(0,b.gzipSync)(Buffer.from(o,"utf8"),{level:9})),S=p(await ej(f,{name:`watchbell-${t}-raw.csv.gz`,mimeType:"application/gzip",folderId:h,content:y,fileId:i.csvFileId},u));await d({csvFileId:S.id}),await Z(t,{status:a?"partial":"ok",sizeBytes:S.size,error:null,finishedAt:new Date});let D=a?null:await eU(f,r,e.deadline,u);return{ok:!0,month:t,retention:D,message:`${j(t)}${a?" so far":""} saved to Google Drive.`}}catch(n){let e=n instanceof eP?n:new eP("failed","The backup failed. The next daily run tries again.");n instanceof eP||console.error("backup failed:",n instanceof Error?n.name:"unknown");let r=a&&"partial"===l?"partial":"error";return await Z(t,{status:r,error:e.message.slice(0,500),finishedAt:new Date}).catch(()=>void 0),{ok:!1,month:t,kind:e.kind,error:e.message}}}async function eU(e,t,a,r){let n=function(e,t){let a=D(t),r=e.filter(e=>"ok"===e.status&&e.month<a).map(e=>e.month).sort().reverse().slice(0,3);if(r.length<3)return[];let n=r[r.length-1];return e.filter(e=>!e.trashedAt&&e.month<n&&(e.sheetFileId||e.csvFileId))}(await X(),t),s=[];for(let o of n){if(Date.now()>a)break;let n=!0;for(let t of[o.sheetFileId,o.csvFileId])t&&((await eT(e,t,r)).ok||(n=!1));n&&(await Z(o.month,{status:o.status,trashedAt:t}),s.push(j(o.month)))}return s.length?`Moved to Drive trash: ${s.join(", ")}.`:null}async function eB(e,t,a={}){let r=await K();if(!r||"error"===r.status&&r.lastError?.startsWith("invalid_grant"))return null;let n=function(e,t){let a=x(D(t)),r=new Map(e.map(e=>[e.month,e.status]));if("ok"!==r.get(a))return a;let n=a;for(let e=1;e<3;e++)if(n=x(n),"error"===r.get(n))return n;return null}(await X(),e);if(!n)return null;let s=await eF({month:n,partial:!1,now:e,deadline:t,...a});return s.ok?null:`${j(n)}: ${s.error}`}var eG=e.i(455891),eL=e.i(889234),eW=e.i(328586),eH=e.i(333407),eV=e.i(459702),eJ=e.i(200346),eK=e.i(368230),eY=e.i(584820),eX=e.i(902509),eQ=e.i(668141),eZ=e.i(242960),e0=e.i(112515),e1=e.i(185890);function e3(e){if(!e)return null;if("unknown"!==e.state)return e.state;let t=e.data?.lastGoodState;return"string"==typeof t&&e1.f.includes(t)?t:null}let e4={turso_database:"Turso database",upstash_redis:"Upstash Redis",d1_database:"D1 database"};function e5(e,t){return"auth"===e.kind?"auth":"scope"===e.kind?t?"auth":"column":"missing"===e.kind?t?"unknown":"column":"unknown"}var e6=e.i(35048),e2=e.i(516464),e8=e.i(88316),e9=e.i(437122),e7=e.i(319718),te=e.i(941536),tt=e.i(686454),ta=e.i(122603);let tr="skipped the rest, time budget used";function tn(e){let t=e.deadline-Date.now()-500;if(t<250)throw Error(tr);return{timeoutMs:Math.min(5e3,t)}}async function ts(e,t,a){let r=!1;return{out:await (0,ta.P)(t,3,async t=>{let n;try{n=tn(e)}catch{r=!0;return}return a(t,n)}),skipped:r}}function to(e){if(e)throw Error(tr)}async function ti(e){let t=await (0,a.db)().select().from(g.accounts).where((0,p.and)((0,p.eq)(g.accounts.provider,e),(0,p.eq)(g.accounts.status,"ok"))),r=(0,L.serverEnv)().OPS_ENCRYPTION_KEY;return t.map(e=>({acc:e,credential:(0,B.V)({ciphertext:e.credentialCiphertext,iv:e.credentialIv},r)}))}function tl(e,t){return(0,a.db)().select({r:g.resources,s:g.snapshots}).from(g.resources).leftJoin(g.snapshots,(0,p.eq)(g.snapshots.resourceId,g.resources.id)).where((0,p.and)((0,p.eq)(g.resources.accountId,e),(0,p.eq)(g.resources.kind,t),(0,p.eq)(g.resources.monitored,!0),(0,p.isNull)(g.resources.goneAt))).limit(100)}let td=e=>t.sql`${g.snapshots.data} || ${JSON.stringify(e)}::jsonb`;async function tu(e,t,r){let n=e3(e.s?{state:e.s.state,data:e.s.data}:null),s="unknown"===t.state,o=s?n?{lastGoodState:n}:{}:{...t.patch,lastGoodState:t.state},i=!s&&n!==t.state;return await (0,a.db)().insert(g.snapshots).values({resourceId:e.r.id,state:t.state,data:o,collectedAt:r,stateSince:r}).onConflictDoUpdate({target:g.snapshots.resourceId,set:{state:t.state,data:td(o),...s?{}:{collectedAt:r},...i?{stateSince:r}:{}}}),s?null:function(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=e4[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}({kind:e.r.kind,resourceId:e.r.id,prev:n,next:t.state,label:t.label,at:r})}async function tc(e,t){await (0,a.db)().update(g.snapshots).set({data:td(t)}).where((0,p.eq)(g.snapshots.resourceId,e.r.id))}let tp=e=>(0,eH.f)(e);async function tf(e,t,r,n,s){if("auth"===e5(n,!0)){let e=(0,e0.E)({ok:!1,kind:"auth",error:n.error});e&&await (0,a.db)().update(g.accounts).set({...e,updatedAt:s.now}).where((0,p.eq)(g.accounts.id,t.id))}for(let e of r)await tu(e,{state:"unknown",label:"Unknown",patch:{}},s.now);s.errors.push(`${e}/${t.label}: ${n.error}`)}let tm=e=>e.toISOString();async function th(e){return e.length?new Set((await (0,a.db)().select({app:g.links.fromResourceId,state:g.snapshots.state,data:g.snapshots.data}).from(g.links).innerJoin(g.resources,(0,p.eq)(g.resources.id,g.links.toResourceId)).innerJoin(g.snapshots,(0,p.eq)(g.snapshots.resourceId,g.resources.id)).where((0,p.and)((0,p.eq)(g.links.kind,"uses_db"),(0,p.inArray)(g.links.fromResourceId,e),(0,p.eq)(g.resources.monitored,!0),(0,p.isNull)(g.resources.goneAt)))).filter(e=>"paused"===e.state||"unknown"===e.state&&"paused"===e.data.lastGoodState).map(e=>e.app)):new Set}async function tw(e){if(!e.protectOnly||await (0,eJ.g)())for(let{acc:t,credential:a}of(await ti("supabase"))){if(tn(e),!a){e.errors.push(`supabase/${t.label}: credential can't be read`);continue}let r=await tl(t.id,"supabase_project");if(!r.length)continue;let n=await (0,tt.W)(a,tn(e));if(!n.ok){e.protectOnly?e.errors.push(`supabase/${t.label}: ${n.error}`):await tf("supabase",t,r,n,e);continue}let s=new Map(n.data.map(e=>[e.ref,e])),o=[];for(let t of e.protectOnly?[]:r){let a=s.get(t.r.externalId);if(!a){o.push(await tu(t,{state:"off",label:"Not found",patch:{status:"REMOVED"}},e.now));continue}let r=(0,e8.P)(a.status),n=e3(t.s?{state:t.s.state,data:t.s.data}:null),i={status:a.status,region:a.region,pgVersion:a.pgVersion,orgSlug:a.orgSlug};"paused"===r.state&&"paused"!==n&&(i.pausedBeforeSeen=null===n),o.push(await tu(t,{state:r.state,label:r.label,patch:i},e.now))}await tp(o);let i=new Map(r.map(e=>[e.r.externalId,e.r.id])),l=n.data.map(e=>({resourceId:i.get(e.ref)??null,accountId:t.id,status:e.status,orgSlug:e.orgSlug}));await (0,eJ.z)(e.now,l,e.deadline).catch(()=>{console.warn("auto-restore failed"),e.errors.push("auto-restore failed")})}}async function tg(e){for(let{acc:t,credential:a}of(await ti("supabase"))){if(tn(e),!a)continue;let r=await tl(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,tt.K)(a,r,tn(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:o}=await ts(e,r,async(t,r)=>{let o=n.get(t.r.id),i={freeOrg:o.orgSlug?s.get(o.orgSlug)??null:null};if((o.status??"").startsWith("ACTIVE_")){let[n,s]=await Promise.all([(0,tt.F)(a,t.r.externalId,r),(0,tt.Z)(a,t.r.externalId,r)]);n.ok?Object.assign(i,{health:n.data.map(({name:e,status:t})=>({name:e,status:t})),healthAt:tm(e.now),healthError:null}):"column"===e5(n,!1)?i.healthError=n.error:e.errors.push(`supabase/${t.r.name} health: ${n.error}`),s.ok?Object.assign(i,{lastTrafficAt:(0,e8.H)(s.data)?.toISOString()??null,trafficAt:tm(e.now),trafficError:null}):"column"===e5(s,!1)?i.trafficError=s.error:e.errors.push(`supabase/${t.r.name} traffic: ${s.error}`)}await tc(t,i)});to(o)}}async function ty(e){for(let{acc:t,credential:a}of(await ti("neon"))){if(tn(e),!a){e.errors.push(`neon/${t.label}: credential can't be read`);continue}let r=await tl(t.id,"neon_project");if(!r.length)continue;let{out:n,skipped:s}=await ts(e,r,(e,t)=>Promise.all([(0,te.Z)(a,e.r.externalId,t),(0,te.k)(a,e.r.externalId,t),(0,te.e)(a,e.r.externalId,t)])),o=n.flat().find(e=>void 0!==e&&!e.ok&&"auth"===e.kind);if(o){await tf("neon",t,r,o,e);continue}let i=[];for(let[t,a]of r.entries()){let r=n[t];if(!r)continue;let[s,o,l]=r;if(!s.ok||!o.ok||!l.ok){let t=[s,o,l].find(e=>!e.ok);"missing"===t.kind?i.push(await tu(a,{state:"off",label:"Not found",patch:{}},e.now)):(await tu(a,{state:"unknown",label:"Unknown",patch:{}},e.now),e.errors.push(`neon/${a.r.name}: ${t.error}`));continue}let d=(0,e2.p)({endpoints:o.data,computeSeconds:s.data.computeSeconds});i.push(await tu(a,{state:d.state,label:d.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:o.data,branches:l.data}},e.now))}await tp(i),to(s)}}let tb=e=>e.ok?{latencyMs:e.data.latencyMs,pingError:null,pingReason:null,pingKind:null}:{pingError:e.error,pingReason:e.reason??null,pingKind:e.kind};async function tk(e){for(let{acc:t,credential:a}of(await ti("firebase"))){tn(e);let r=a?(0,e7.p)(a):null;if(!r){e.errors.push(`firebase/${t.label}: credential can't be read`);continue}let n=await tl(t.id,"firestore");if(!n.length)continue;let s=await (0,e7.X)(r,tn(e));if(!s.ok){await tf("firebase",t,n,s,e);continue}let{out:o,skipped:i}=await ts(e,n,(e,t)=>(0,e9.G)(s.data,e.r.externalId,t)),l=[];for(let[t,a]of n.entries()){let r=o[t];if(!r)continue;let n=(0,e6.g)(r);"unknown"!==n.state||r.ok||e.errors.push(`firebase/${a.r.name}: ${r.error}`),l.push(await tu(a,{...n,patch:tb(r)},e.now))}await tp(l),to(i)}}async function tv(e){for(let{acc:t,credential:a}of(await ti("firebase"))){tn(e);let r=a?(0,e7.p)(a):null;if(!r)continue;let n=(await tl(t.id,"firestore")).filter(e=>e.s?.state!=="off");if(!n.length)continue;let s=await (0,e7.X)(r,tn(e));if(!s.ok){e.errors.push(`firebase/${t.label}: ${s.error}`);continue}let o=(0,e6.a)(e.now),{skipped:i}=await ts(e,n,async(t,a)=>{let r=await (0,e9.W)(s.data,t.r.externalId,o,e.now,a);r.ok?await tc(t,{...r.data,opsAt:tm(e.now),opsError:null}):"column"===e5(r,!1)?await tc(t,{reads:null,writes:null,deletes:null,opsAt:tm(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}`)});to(i)}}async function tI(e){let t=Date.now()+2*Math.max(0,e.deadline-Date.now())/3,a=await t$(()=>tA({...e,deadline:t})),r=await t$(()=>tS(e));if(a)throw a;if(r)throw r}async function t$(e){try{return await e(),null}catch(e){return e instanceof Error?e:Error(String(e))}}async function tA(e){for(let{acc:t,credential:a}of(await ti("supabase")))if(tn(e),a)for(let r of(await tl(t.id,"supabase_project"))){let t=(0,G.k)(G.B,r.s?.data);if(!(0,e8.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,tt.r)(a,r.r.externalId,tn(e));n.ok?await tc(r,{sizeBytes:n.data,sizeAt:tm(e.now),sizeError:null}):"column"===e5(n,!1)?await tc(r,{sizeError:n.error}):e.errors.push(`supabase/${r.r.name} size: ${n.error}`)}}async function tS(e){for(let{acc:t,credential:a}of(await ti("firebase"))){tn(e);let r=a?(0,e7.p)(a):null;if(!r)continue;let n=(await tl(t.id,"firestore")).filter(e=>e.s?.state!=="off");if(!n.length)continue;let s=await (0,e7.X)(r,tn(e));if(!s.ok){e.errors.push(`firebase/${t.label}: ${s.error}`);continue}let{skipped:o}=await ts(e,n,async(t,a)=>{let r=await (0,e9.q)(s.data,t.r.externalId,a);r.ok?await tc(t,{authUsers:r.data,authAt:tm(e.now),authError:null}):"column"===e5(r,!1)?await tc(t,{authError:"Not readable: the service account needs firebaseauth.viewer"}):e.errors.push(`firebase/${t.r.name} users: ${r.error}`)});to(o)}}var tD=e.i(369179),tE=e.i(476866),tx=e.i(873083),tj=e.i(649297),tT=e.i(541211);let tM={github:"devops",deps:"devops",databases:"database",security:"hosting",os:"devops"};async function tO(e){let[t]=await (0,a.db)().select({hour:(0,f.max)(g.rollupsHourly.hour)}).from(g.rollupsHourly),r=(0,tj.r)(t?.hour??null,e),n=await (0,a.db)().select().from(g.checks).where((0,p.and)((0,p.gte)(g.checks.at,r),(0,p.lt)(g.checks.at,(0,tj.b)(e)))).orderBy(g.checks.at),s=new Map;for(let e of n){let t=`${e.monitorId}|${(0,tj.b)(e.at).toISOString()}`,a=s.get(t);a?a.push(e):s.set(t,[e])}for(let[e,t]of s){let[r,n]=e.split("|"),s=(0,tj.z)(t);await (0,a.db)().insert(g.rollupsHourly).values({monitorId:r,hour:new Date(n),...s}).onConflictDoUpdate({target:[g.rollupsHourly.monitorId,g.rollupsHourly.hour],set:s})}}async function tz(e){let t=await (0,tE.J)().catch(()=>tD.f);await (0,a.db)().delete(g.checks).where((0,p.lt)(g.checks.at,new Date(e.getTime()-864e5*t.checks))),await (0,a.db)().delete(g.rollupsHourly).where((0,p.lt)(g.rollupsHourly.hour,new Date(e.getTime()-864e5*t.rollupsHourly))),await (0,a.db)().delete(g.deployments).where((0,p.and)((0,p.lt)(g.deployments.createdAtProvider,new Date(e.getTime()-864e5*t.deployments)),(0,p.eq)(g.deployments.isCurrent,!1),(0,p.eq)(g.deployments.isPreviousProduction,!1))),await (0,a.db)().delete(g.events).where((0,p.lt)(g.events.at,new Date(e.getTime()-864e5*t.events))),await (0,a.db)().delete(g.alerts).where((0,p.and)((0,p.isNotNull)(g.alerts.resolvedAt),(0,p.lt)(g.alerts.resolvedAt,new Date(e.getTime()-864e5*t.alerts)))),await (0,a.db)().delete(g.collectorRuns).where((0,p.lt)(g.collectorRuns.startedAt,new Date(e.getTime()-864e5*t.collectorRuns))),await (0,a.db)().delete(g.storedLogs).where((0,p.lt)(g.storedLogs.at,new Date(e.getTime()-864e5*t.storedLogs))),await (0,a.db)().delete(g.recommendationDismissals).where((0,p.lt)(g.recommendationDismissals.dismissedAt,new Date(e.getTime()-864e5*t.recommendationDismissals)))}async function tC(){let e=new Date,[t]=await (0,a.db)().insert(g.collectorRuns).values({startedAt:e,trigger:"vercel_cron"}).returning({id:g.collectorRuns.id}),r=[],n=await (0,l.I)(),s=[["rollups",()=>tO(e)],["backup",async()=>{let t=await eB(e,e.getTime()+2e4);t&&r.push(`backup: ${t}`)}],["retention",()=>tz(e)],["sync",async()=>{let t=(await (0,a.db)().select({id:g.accounts.id,label:g.accounts.label,provider:g.accounts.provider}).from(g.accounts).where((0,p.inArray)(g.accounts.provider,eQ.I))).filter(e=>!n.has(tx.D[e.provider]??"manage"));for(let[a,n]of t.entries()){if(Date.now()>e.getTime()+25e3){r.push(`sync: ${t.length-a} account${t.length-a>1?"s":""} left for the next run, time budget used`);break}let s=await (0,eZ.k)(n.id);s.ok?(s.skippedTeams.length&&r.push(`sync ${n.provider}/${n.label}: skipped teams ${s.skippedTeams.join(", ")} (no access)`),s.overLimit&&r.push(`sync ${n.provider}/${n.label}: ${s.overLimit}`)):r.push(`sync ${n.provider}/${n.label}: ${s.error}`)}}],["github",async()=>{let t=await (0,eW.D)(Math.min(Date.now()+6e3,e.getTime()+35e3));t&&r.push(`github: ${t}`)}],["deps",async()=>{let t=await (0,eL.e)(Math.min(Date.now()+eL.o,e.getTime()+eL.R));t&&r.push(`deps: ${t}`)}],["databases",()=>tI({now:e,deadline:Math.min(Date.now()+15e3,e.getTime()+5e4),errors:r})],["keep-active",()=>(0,eJ.V)(e,Math.min(Date.now()+5e3,e.getTime()+5e4),r)],["security",async()=>{for(let t of(await (0,eY.h)((0,eX.F)(e.getTime(),Date.now()))).failed)r.push(`security ${t}`)}],..."on"===(0,c.C)()?[["os",async()=>{let e=await (0,c.W)();if(e.ok){if("unsupported"!==e.data.status){e.data.error&&r.push(`os: ${e.data.error}`);let t=e.data.updates.filter(e=>e.error).length;t&&r.push(`os: Ubuntu's data couldn't be read for ${t} update${1===t?"":"s"}`),e.data.backlog.error&&r.push(`os: ${e.data.backlog.error}`)}}else r.push(`os: ${e.error}`)}]]:[],["advisor",async()=>{await (0,eG.O)(e)}]],o=[];try{for(let[e,t]of s)if(!n.has(tM[e]))try{await t(),o.push(e)}catch(t){r.push(`${e}: ${(0,tT.safeError)(t)}`)}await (0,eH.f)([{type:"system",kind:r.length?"warn":"info",message:r.length?"Daily jobs finished with problems":"Daily jobs finished",detail:"Rollups, the monthly backup when due, retention, a sync of every account, database sizes, the Next.js security check and the Advisor",resourceId:null}])}catch(e){r.push(`events: ${(0,tT.safeError)(e)}`)}finally{h(w.t),await (0,a.db)().update(g.collectorRuns).set({finishedAt:new Date,ok:0===r.length,errorSummary:r.join("\n").slice(0,2e3)||null,durationMs:Date.now()-e.getTime(),tasks:o}).where((0,p.eq)(g.collectorRuns.id,t.id)).catch(()=>void 0)}await tN(r.length>0);let i=Date.now()-e.getTime();return{skipped:!1,ok:0===r.length,tasks:o,checks:0,durationMs:i,errors:r}}async function tN(e){let t=process.env.DAILY_HEARTBEAT_TOKEN;if(!t)return;let a=(0,eK.i)(t);if(!a)return void console.warn("daily heartbeat: DAILY_HEARTBEAT_TOKEN holds no single hb_ token; set it to the heartbeat's token");let r=await (0,eV._)(a,e?"fail":"ok",new Date).catch(e=>(console.warn("daily heartbeat: the ping couldn't be stored:",e instanceof Error?e.name:"error"),null));r?.status==="unknown"?console.warn("daily heartbeat: DAILY_HEARTBEAT_TOKEN matches no heartbeat monitor (was it regenerated?)"):r?.status==="limited"&&console.warn("daily heartbeat: the ping was rate limited")}async function tR(e,t,a=new Date){if(e.skipped||0===t.length)return e;let r=[...e.tasks],n=[...e.errors];for(let e of t)try{await e.run(a),r.push(e.name)}catch(t){n.push(`${e.name}: ${(0,tT.safeError)(t)}`)}return{...e,tasks:r,errors:n,ok:0===n.length}}let t_="collector.cpuDay";async function tq(e,t=new Date){try{var r;let n,s,o,i,l,d,[u]=await (0,a.db)().select({value:g.settings.value}).from(g.settings).where((0,p.eq)(g.settings.key,t_)).limit(1),{next:c,crossed:f}=(r=u?.value,n=t.toISOString().slice(0,10),o=(s=r&&"object"==typeof r?r:{}).day===n&&Number.isFinite(s.ms)&&Number.isFinite(s.runs)?{day:n,ms:s.ms,runs:s.runs,warned:!0===s.warned}:{day:n,ms:0,runs:0,warned:!1},i=Number.isFinite(e)&&e>0?Math.round(e):0,l={...o,ms:o.ms+i,runs:o.runs+1},(d=!o.warned&&l.ms>24e4)&&(l.warned=!0),{next:l,crossed:d});await (0,a.db)().insert(g.settings).values({key:t_,value:c}).onConflictDoUpdate({target:g.settings.key,set:{value:c,updatedAt:t}}),f&&await (0,eH.f)([{type:"system",kind:"warn",message:"Collector CPU high today",detail:`${Math.round(c.ms/1e3)} s in ${c.runs} runs, over 4 min (Vercel Hobby allows about 8 min a day). Check the cron-job.org schedule.`,resourceId:null,at:t}])}catch(e){console.warn("collector cpu count failed:",e instanceof Error?e.name:"error")}}var tP=e.i(978196),tF=e.i(234195),tU=e.i(706959),tB=e.i(451682),tG=e.i(373200),tL=e.i(736337);async function tW(e,r,n=new Map){if(!e.length)return 0;let s=await (0,a.db)().select({app:g.deployments.resourceId,id:g.deployments.externalId,source:g.deployments.source,branch:g.deployments.branch,sha:g.deployments.commitSha}).from(g.deployments).where((0,p.and)((0,p.inArray)(g.deployments.resourceId,e.map(e=>e.id)),(0,p.eq)(g.deployments.isCurrent,!0))),o=0;for(let i of e){let e,l=s.find(e=>e.app===i.id);if(!l)continue;let d=(0,tL.O)(i.meta?.productionSource),u=n.get(l.id),c={source:l.source??null,branch:l.branch??null,sha:l.sha??null};if(!(e=u?(0,tL.s)({...c,branchFrom:u.branchFrom??null,gitDirty:!0===u.gitDirty}):d?.id===l.id?{kind:d.kind,...d.ref?{ref:d.ref}:{},...d.sha?{sha:d.sha}:{}}:"git"===c.source||"cli"===c.source?(0,tL.s)(c):null)){if(d?.at&&d.id!==l.id){let e={...d};delete e.at,await (0,a.db)().update(g.resources).set({meta:t.sql`${g.resources.meta} || ${JSON.stringify({productionSource:e})}::jsonb`}).where((0,p.eq)(g.resources.id,i.id)),o++}continue}e={...e,id:l.id};let f=!!d?.at&&r.getTime()-Date.parse(d.at)<tL.u;if((0,tL.v)(d,e)&&f)continue;let m={...e,at:r.toISOString()};await (0,a.db)().update(g.resources).set({meta:t.sql`${g.resources.meta} || ${JSON.stringify({productionSource:m})}::jsonb`}).where((0,p.eq)(g.resources.id,i.id)),o++}return o}var tH=e.i(753535),tV=e.i(932378),tJ=e.i(313903);let tK=/not enabled/i,tY=(e,t,a={})=>({ok:!1,kind:e,error:t,...a}),tX="Vercel Web Analytics answered in a format the console doesn't recognise.",tQ=en.z.object({data:en.z.object({pageviews:ed.z.number().finite().nonnegative(),visitors:ed.z.number().finite().nonnegative()})}),tZ=en.z.object({data:es.z.array(tV.z.unknown())}),t0=en.z.object({timestamp:ei.z.string().transform((e,t)=>{let a=Date.parse(e);return Number.isNaN(a)?(t.addIssue({code:"custom",message:"bad timestamp"}),tJ.z.NEVER):a}),pageviews:ed.z.number().finite().nonnegative().nullish().catch(null)});async function t1(e,t,a,r){let n=r.since.toISOString(),s=r.until.toISOString(),o=r.fetch??fetch,i=new AbortController,l=setTimeout(()=>i.abort(new DOMException("window","TimeoutError")),r.timeoutMs??8e3),d=r.signal?AbortSignal.any([i.signal,r.signal]):i.signal,u=(0,ta.X)(d);async function c(l,c){let p=new URLSearchParams({projectId:a,teamId:t,...c,since:n,until:s});try{let t=await Promise.race([o(`https://api.vercel.com/v1/query/web-analytics/visits/${l}?${p}`,{headers:{Authorization:`Bearer ${e}`,Accept:"application/json"},signal:d,cache:"no-store"}),u]),a=null,r=!1;if(401===t.status||403===t.status)a=tY("auth",`Vercel rejected this credential (${t.status}).`,{status:t.status});else if(429===t.status){let e=Number(t.headers.get("Retry-After"));a=tY("transient","Vercel says there were too many requests.",{status:429,retryAfterS:Number.isFinite(e)&&e>0?e:60})}else if(400===t.status){let e=await Promise.race([t.text(),u]).catch(()=>"");tK.test(e)?r=!0:a=tY("transient","Vercel Web Analytics rejected the request (400).",{status:400})}else t.ok||(a=tY("transient",`Vercel Web Analytics returned an error (${t.status}).`,{status:t.status}));if(r)return{kind:"off"};if(a)return await t.body?.cancel().catch(()=>void 0),{kind:"fail",fail:a};try{return{kind:"body",body:await Promise.race([t.json(),u])}}catch(e){if(d.aborted)throw e;return{kind:"fail",fail:tY("format",tX)}}}catch{return{kind:"fail",fail:d.aborted?i.signal.aborted&&!r.signal?.aborted?tY("transient","Vercel Web Analytics didn't answer in time."):tY("transient","Reading Vercel Web Analytics was cancelled."):tY("transient","Couldn't reach Vercel Web Analytics.")}}}try{let[e,t]=await Promise.all([c("count",{}),c("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?tZ.safeParse(t.body):null,s="fail"===t.kind?t.fail:n?.success?null:tY("format",tX),o=a.find(e=>"transient"===e.kind);if(o)return o;if(s)return s;if(!n?.success)return tY("format",tX);let i="body"===e.kind?tQ.safeParse(e.body):null,l=n.data.data.flatMap(e=>{let t=t0.safeParse(e);return t.success?[t.data]:[]});if(l.length>0&&l.every(e=>null==e.pageviews))return tY("format",tX);let d=new Map;for(let e of l){let t=36e5*Math.floor(e.timestamp/36e5);d.set(t,(d.get(t)??0)+(e.pageviews??0))}let u=[...d].sort((e,t)=>e[0]-t[0]).slice(-24).map(([e,t])=>({at:new Date(e),views:t}));if(i?.success)return{ok:!0,enabled:!0,total:i.data.data.pageviews,visitors:i.data.data.visitors,hourly:u};return{ok:!0,enabled:!0,total:u.reduce((e,t)=>e+t.views,0),visitors:null,hourly:u}}finally{clearTimeout(l),i.abort()}}var t3=e.i(178233);async function t4(e,t,a){let r=await (0,tB.g)(null);if(!r.length)return;let n=new Date(36e5*Math.floor(e.getTime()/36e5)-828e5);await (0,ta.P)(r,3,async r=>{if(Date.now()+8500>t)return;let s=await t1(r.token,r.teamId,r.projectId,{since:n,until:e});if(!s.ok)return void a.push(`pageviews/${r.appName}: ${s.error}`);try{await (0,tH.r)(r.appId,{pageviews:(0,t3.Z)(s,e)},e)}catch{a.push(`pageviews/${r.appName}: couldn't save the page views`)}})}var t5=e.i(628852),t6=e.i(802641);let t2="security.afterDeploy",t8=e=>"object"==typeof e&&null!==e&&!Array.isArray(e),t9=e=>"string"==typeof e&&e.length>0&&e.length<=100;function t7(e){let t={pending:{},checked:{}};if(!t8(e))return t;if(t8(e.pending))for(let[a,r]of Object.entries(e.pending)){if(!(0,t6.f)(a)||!t8(r)||!t9(r.id)||"string"!=typeof r.at||Number.isNaN(Date.parse(r.at)))continue;let e="number"==typeof r.attempts&&Number.isInteger(r.attempts)&&r.attempts>=0?Math.min(r.attempts,3):0;t.pending[a]={id:r.id,at:r.at,attempts:e,...!0===r.next?{next:!0}:{},...!0===r.deps?{deps:!0}:{}}}if(t8(e.checked))for(let[a,r]of Object.entries(e.checked))(0,t6.f)(a)&&t9(r)&&(t.checked[a]=r);return t}function ae(e,t){let a,r={...e.pending},n={...e.checked};for(let e of t){let t=r[e];t&&(delete r[e],delete n[e],n[e]=t.id)}return{pending:r,checked:(a=Object.entries(n)).length<=500?n:Object.fromEntries(a.slice(a.length-500))}}let at=(e,t)=>Object.entries(e.pending).filter(([,e])=>!e[t]).map(([e])=>e),aa="security.slot",ar=e=>Array.isArray(e)?e.filter(e=>"string"==typeof e&&e.length>0&&e.length<=100).slice(0,1e3):[],an=(e,t)=>[...new Set([...e,...t])].slice(0,1e3),as=e=>async()=>{let[t]=await (0,a.db)().select({value:g.settings.value}).from(g.settings).where((0,p.eq)(g.settings.key,e)).limit(1);return t?.value??null},ao=e=>async t=>{await (0,a.db)().insert(g.settings).values({key:e,value:t}).onConflictDoUpdate({target:g.settings.key,set:{value:t,updatedAt:new Date}})},ai={read:as(t2),write:ao(t2),readSlot:as(aa),writeSlot:ao(aa),nextCheck:eY.h,depsStep:(e,t)=>(0,eL.O)(e,t)};async function al(e,t=ai){var a;let r,n=t7(await t.read()),s=(a=e.now,(r=Object.entries(n.pending).filter(([,e])=>a.getTime()-Date.parse(e.at)>216e5).map(([e])=>e)).length?ae(n,r):n),o=!e.paused.has("hosting"),i=!e.paused.has("devops"),l=o?at(s,"next"):[],d=i?at(s,"deps"):[],u=e.early?null:function(e,t){let a=e&&"object"==typeof e&&!Array.isArray(e)?e:{};if(a.slot!==t)return{slot:t,runs:0,next:[],repos:[],cut:{},nextDone:!1,depsDone:!1};let r="number"==typeof a.runs&&Number.isInteger(a.runs)&&a.runs>=0?a.runs:0,n={};if(a.cut&&"object"==typeof a.cut&&!Array.isArray(a.cut))for(let[e,t]of Object.entries(a.cut).slice(0,1e3))e.length<=100&&"number"==typeof t&&Number.isInteger(t)&&t>0&&(n[e]=Math.min(t,2));return{slot:t,runs:r,next:ar(a.next),repos:ar(a.repos),cut:n,nextDone:!0===a.nextDone,depsDone:!0===a.depsDone}}(await t.readSlot(),new Date((0,t5.G)("security",e.now)).toISOString()),c=!!u&&o&&!u.nextDone,p=!!u&&i&&!u.depsDone,f=o&&(l.length>0||c),m=i&&(d.length>0||p),h={hosting:o,devops:i,nextDone:new Set,nextStarted:new Set,depsDone:new Set},w=async()=>{let a=Math.min(Date.now()+eX.y,!u&&m?e.deadline-2*eL.d:e.deadline),r=c?[...u.next,...Object.entries(u.cut).filter(([,e])=>e>=2).map(([e])=>e)]:[],n=c?{first:l,skip:[...new Set(r)].filter(e=>!l.includes(e))}:{only:l},s=await t.nextCheck(a,n);for(let t of s.failed)e.errors.push(`security ${t}`);for(let e of s.done)h.nextDone.add(e);for(let e of l)s.listed.includes(e)||h.nextDone.add(e);for(let e of s.started)h.nextStarted.add(e);if(c){let e=new Set(s.done);for(let t of(u.next=an(u.next,s.done),s.started))e.has(t)||(u.cut[t]=Math.min((u.cut[t]??0)+1,2));u.nextDone=s.listed.every(t=>e.has(t)||(u.cut[t]??0)>=2)}},g=async()=>{let a=await t.depsStep(Math.min(Date.now()+eL.o,e.deadline),p?{marked:d,onlyMarked:!1,skip:u.repos}:{marked:d,onlyMarked:!0});for(let t of(a.problem&&e.errors.push(`security deps: ${a.problem}`),a.settled))h.depsDone.add(t);p&&(u.repos=an(u.repos,a.done),u.depsDone=a.complete)};try{u&&u.runs++,u?(m&&await g(),f&&await w()):(f&&await w(),m&&await g())}finally{let e=null;if(u)try{await t.writeSlot(u)}catch(t){e=t}try{let e=function(e,t){let a={},r=[];for(let[n,s]of Object.entries(e.pending)){let e={...s};t.hosting&&!e.next&&(t.nextDone?.has(n)?e.next=!0:t.nextStarted?.has(n)&&(e.attempts=Math.min(e.attempts+1,3))),t.devops&&!e.deps&&t.depsDone?.has(n)&&(e.deps=!0),a[n]=e,((e.next||!t.hosting)&&(e.deps||!t.devops)||e.attempts>=3)&&r.push(n)}return ae({pending:a,checked:e.checked},r)}(s,h);JSON.stringify(e)!==JSON.stringify(n)&&await t.write(e)}catch(t){e??=t}if(e)throw e}return{complete:!u||(u.nextDone||!o)&&(u.depsDone||!i)||u.runs>=20}}async function ad(e,t,a=ai){if(!e.length)return!1;let{state:r,changed:n}=function(e,t,a){let r={pending:{...e.pending},checked:{...e.checked}},n=!1;for(let e of t)(0,t6.f)(e.appId)&&t9(e.deploymentId)&&r.checked[e.appId]!==e.deploymentId&&r.pending[e.appId]?.id!==e.deploymentId&&(r.pending[e.appId]={id:e.deploymentId,at:a.toISOString(),attempts:0},n=!0);return{state:r,changed:n}}(t7(await a.read()),e,t);return n&&await a.write(r),n}var au=e.i(147100),ac=e.i(764266),ap=e.i(198552),af=e.i(27479),am=e.i(707866),ah=e.i(392710),aw=e.i(582888),ag=e.i(811539),ay=e.i(725321);async function ab(e){let t=[await t$(()=>av(e)),await t$(()=>a$(e)),await t$(()=>aA(e))].find(e=>null!==e);if(t)throw t}let ak=e=>e.toISOString();async function av(e){for(let{acc:t,credential:a}of(await ti("turso"))){if(tn(e),!a){e.errors.push(`turso/${t.label}: credential can't be read`);continue}let r=await tl(t.id,"turso_database");if(!r.length)continue;let n=await (0,aw.u)(a,tn(e));if(!n.ok){await tf("turso",t,r,n,e);continue}let s=new Set(r.map(e=>String(e.r.meta.org??""))),o=[];for(let i of n.data.filter(e=>s.has(e.slug))){let[n,s]=await Promise.all([(0,aw.X)(a,i.slug,tn(e)),(0,aw.d)(a,i.slug,tn(e))]),l=r.filter(e=>e.r.meta.org===i.slug);if(!n.ok){for(let t of l)await tu(t,{state:"unknown",label:"Unknown",patch:{}},e.now);e.errors.push(`turso/${t.label}: ${n.error}`);continue}let d=new Map(n.data.map(e=>[e.id,e]));for(let t of l)o.push(await aI(t,d.get(t.r.externalId),i,s,e))}let i=new Set(n.data.map(e=>e.slug));for(let t of r.filter(e=>!i.has(String(e.r.meta.org??""))))o.push(await tu(t,{state:"off",label:"Organization not visible to this token",patch:{}},e.now));await tp(o)}}async function aI(e,t,a,r,n){if(!t)return tu(e,{state:"off",label:"Not found",patch:{}},n.now);let s=(0,am.h)({blockReads:t.blockReads,blockWrites:t.blockWrites,orgBlockedReads:a.blockedReads,orgBlockedWrites:a.blockedWrites}),o={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(o,{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:ak(n.now),usageError:null})}else"column"===e5(r,!1)?o.usageError=r.error:n.errors.push(`turso/${e.r.name} usage: ${r.error}`);return tu(e,{...s,patch:o},n.now)}async function a$(e){for(let{acc:t,credential:a}of(await ti("upstash"))){tn(e);let r=a?(0,ag.L)(a):null;if(!r){e.errors.push(`upstash/${t.label}: credential can't be read`);continue}let n=await tl(t.id,"upstash_redis");if(!n.length)continue;let s=await (0,ag.M)(r,tn(e));if(!s.ok){await tf("upstash",t,n,s,e);continue}let o=new Map(s.data.map(e=>[e.id,e])),{out:i,skipped:l}=await ts(e,n,(e,t)=>o.has(e.r.externalId)?(0,ag.Z)(r,e.r.externalId,t):Promise.resolve(null)),d=[];for(let[t,a]of n.entries()){let r=o.get(a.r.externalId);if(!r){d.push(await tu(a,{state:"off",label:"Not found",patch:{}},e.now));continue}let n=(0,am.t)(r.state),s={region:r.region,status:r.state,type:r.type},l=i[t];l?.ok?Object.assign(s,{...l.data,statsAt:ak(e.now),statsError:null}):l&&"column"===e5(l,!1)?s.statsError=l.error:l&&e.errors.push(`upstash/${a.r.name} stats: ${l.error}`),d.push(await tu(a,{...n,patch:s},e.now))}await tp(d),to(l)}}async function aA(e){let t={};for(let{acc:a,credential:r}of(await ti("cloudflare"))){if(tn(e),!r)continue;let n=await aD(a.id,r,e);if(!n.length){t[a.id]={d1:"error",analytics:null,at:ak(e.now),note:"No Cloudflare account found for this token"};continue}let s="ok",o=null;for(let t of n){let n=await (0,ah.L)(r,t,tn(e));if(!n.ok){"error"==(s="scope"===n.kind||"auth"===n.kind?"missing":"error")&&e.errors.push(`d1/${a.label}: ${n.error}`);continue}await aE(a.id,t,n.data,e.now);let i=(await tl(a.id,"d1_database")).filter(e=>e.r.meta.accountId===t);if(!i.length)continue;let l=await (0,ah.t)(r,t,(0,ah.Y)(e.now),tn(e));o=l.ok?o??"ok":"scope"===l.kind?"missing":o??"error",l.ok||"scope"===l.kind||e.errors.push(`d1/${a.label} analytics: ${l.error}`);let{out:d,skipped:u}=await ts(e,i,(e,a)=>(0,ah.m)(r,t,e.r.externalId,a)),c=new Map((l.ok?l.data:[]).map(e=>[e.databaseId,e])),p=d.map(e=>e?.ok?e.data.sizeBytes??0:0),f={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:d.every(e=>e?.ok)?p.reduce((e,t)=>e+t,0):null,accountDatabases:n.data.length},m=[];for(let[t,a]of i.entries()){let r=d[t];void 0!==r&&m.push(await aS(a,r,c.get(a.r.externalId)??null,l.ok,l.ok?null:l.error,f,e))}await tp(m),to(u)}t[a.id]={d1:s,analytics:o,at:ak(e.now),note:null}}await (0,a.db)().insert(g.settings).values({key:ay.f,value:t}).onConflictDoUpdate({target:g.settings.key,set:{value:t,updatedAt:e.now}})}async function aS(e,t,a,r,n,s,o){let i={accountId:e.r.meta.accountId??null,createdAt:e.r.meta.createdAt??null,accountDatabases:s.accountDatabases};return(t.ok?Object.assign(i,{sizeBytes:t.data.sizeBytes,numTables:t.data.numTables,readReplication:t.data.readReplication,detailsAt:ak(o.now),detailsError:null}):"scope"===t.kind?i.detailsError=t.error:o.errors.push(`d1/${e.r.name}: ${t.error}`),r?Object.assign(i,{rowsRead:a?.rowsRead??0,rowsWritten:a?.rowsWritten??0,readQueries:a?.readQueries??0,writeQueries:a?.writeQueries??0,accountRowsRead:s.accountRowsRead,accountRowsWritten:s.accountRowsWritten,usageDay:(0,ah.Y)(o.now),usageAt:ak(o.now),usageError:null}):i.usageError=n,null!==s.accountSizeBytes&&(i.accountSizeBytes=s.accountSizeBytes),t.ok||"transient"!==t.kind)?tu(e,{...(0,am.c)(r?s:{accountRowsRead:null,accountRowsWritten:null}),patch:i},o.now):tu(e,{state:"unknown",label:"Unknown",patch:{}},o.now)}async function aD(e,t,r){let n=new Set,s=await (0,ah.N)(t,tn(r));if(s.ok)for(let e of s.data)n.add(e.id);for(let t of(await (0,a.db)().select({meta:g.resources.meta}).from(g.resources).where((0,p.and)((0,p.eq)(g.resources.accountId,e),(0,p.eq)(g.resources.kind,"zone"),(0,p.isNull)(g.resources.goneAt))).limit(200)))"string"==typeof t.meta.accountId&&/^[0-9a-f]{32}$/i.test(t.meta.accountId)&&n.add(t.meta.accountId);return[...n].slice(0,5)}async function aE(e,t,r,n){let s=(await (0,a.db)().select({id:g.resources.id,externalId:g.resources.externalId,meta:g.resources.meta,goneAt:g.resources.goneAt}).from(g.resources).where((0,p.and)((0,p.eq)(g.resources.accountId,e),(0,p.eq)(g.resources.kind,"d1_database")))).filter(e=>e.meta.accountId===t),o=new Map(s.map(e=>[e.externalId,e])),i=new Set(r.map(e=>e.uuid));await (0,a.db)().transaction(async a=>{for(let s of r){let r={accountId:t,createdAt:s.createdAt},i=o.get(s.uuid);i?await a.update(g.resources).set({name:s.name,meta:r,lastSeenAt:n,goneAt:null,updatedAt:n}).where((0,p.eq)(g.resources.id,i.id)):await a.insert(g.resources).values({accountId:e,kind:"d1_database",externalId:s.uuid,name:s.name,meta:r,monitored:!0,lastSeenAt:n}).onConflictDoNothing({target:[g.resources.accountId,g.resources.kind,g.resources.externalId]})}let l=s.filter(e=>!i.has(e.externalId)&&!e.goneAt).map(e=>e.id);l.length&&await a.update(g.resources).set({goneAt:n,updatedAt:n}).where((0,p.inArray)(g.resources.id,l))})}async function ax(e=new Date){let n=(0,eM.randomUUID)(),s=new Date(e.getTime()+t5.d).toISOString(),o=await (0,a.db)().execute(t.sql`
|
|
14
|
-
insert into ops.settings (key, value) values ('collector.lease', ${JSON.stringify({until:s,owner:n})}::jsonb)
|
|
15
|
-
on conflict (key) do update set value = excluded.value, updated_at = now()
|
|
16
|
-
where (ops.settings.value->>'until')::timestamptz < ${e.toISOString()}::timestamptz
|
|
17
|
-
returning key`);return(0,r.f)(o).length>0?n:null}async function aj(e){await (0,a.db)().execute(t.sql`
|
|
18
|
-
update ops.settings set value = jsonb_build_object('until', '1970-01-01T00:00:00Z'), updated_at = now()
|
|
19
|
-
where key = 'collector.lease' and value->>'owner' = ${e}`)}var aT=e.i(991219);let aM=/^v?(\d{1,9})\.(\d{1,9})\.(\d{1,9})(?:-([0-9A-Za-z.-]{1,64}))?(?:\+[0-9A-Za-z.-]{1,64})?$/,aO=/^\d{4}-\d{2}-\d{2}$/;function az(e){let t="string"==typeof e?aM.exec(e.trim()):null;if(!t)return null;let[a,r,n]=[t[1],t[2],t[3]].map(Number);return{major:a,minor:r,patch:n,pre:t[4]??null,text:`${a}.${r}.${n}${t[4]?`-${t[4]}`:""}`}}function aC(e,t){return e.major!==t.major?e.major-t.major:e.minor!==t.minor?e.minor-t.minor:e.patch!==t.patch?e.patch-t.patch:e.pre===t.pre?0:null===e.pre?1:null===t.pre||e.pre<t.pre?-1:1}function aN(e){let t=(e&&"object"==typeof e?e:null)?.result?.releases;if(!Array.isArray(t)||0===t.length)return null;let a=[];for(let e of t){if(!e||"object"!=typeof e||"string"!=typeof e.name||"boolean"!=typeof e.isEol||null!=e.eolFrom&&("string"!=typeof e.eolFrom||!aO.test(e.eolFrom)))return null;a.push({name:e.name,isEol:e.isEol,eolFrom:e.eolFrom??null})}return a}var aR=e.i(109709);let a_="runtime.node";function aq(e=process.env){let t=(0,aR.N)(e,"NO_UPDATE_CHECK"),a=t?.value.trim()??"";return{off:""!==a&&!/^(0|false|no|off)$/i.test(a),name:t?.name??"WATCHBELL_NO_UPDATE_CHECK"}}async function aP(e,t,a,r){let n;try{n=await a(e,{method:"GET",headers:{Accept:"application/json","Accept-Encoding":"gzip"},signal:AbortSignal.timeout(r),cache:"no-store"})}catch{return{ok:!1,error:`Couldn't reach ${t}`}}if(!n.ok)return{ok:!1,error:`${t} returned an error (${n.status})`};try{return{ok:!0,body:await n.json()}}catch{return{ok:!1,error:`${t} answered in a format the console doesn't recognise`}}}async function aF(e={}){let t=e.fetch??fetch,a=e.timeoutMs??8e3,[r,n]=await Promise.all([aP("https://nodejs.org/dist/index.json","nodejs.org",t,a),aP("https://endoflife.date/api/v1/products/nodejs/","endoflife.date",t,a)]),s=r.ok?function(e){if(!Array.isArray(e)||0===e.length)return null;let t=[],a=new Map;for(let r of e){if(!r||"object"!=typeof r||"boolean"!=typeof r.security)return null;let e=az(r.version);if(!e||null!==e.pre||!String(r.version).startsWith("v"))return null;r.security&&t.push(e);let n=a.get(e.major);(!n||aC(e,n)>0)&&a.set(e.major,e)}return t.sort((e,t)=>aC(t,e)),{security:t.map(e=>e.text),latest:Object.fromEntries([...a].sort((e,t)=>t[0]-e[0]).map(([e,t])=>[String(e),t.text]))}}(r.body):null,o=n.ok?aN(n.body):null,i=e=>`${e} answered in a format the console doesn't recognise`;return{index:s,indexError:r.ok?s?null:i("nodejs.org"):r.error,cycles:o,cyclesError:n.ok?o?null:i("endoflife.date"):n.error}}let aU=e=>"string"==typeof e&&Number.isFinite(Date.parse(e))?e:null,aB=e=>"string"==typeof e?e:null;async function aG(){var e;let[t]=await (0,a.db)().select({value:g.settings.value}).from(g.settings).where((0,p.eq)(g.settings.key,a_)).limit(1);return t?(e=t.value)&&"object"==typeof e?{index:function(e){let t=e&&"object"==typeof e?e:null;if(!t||!Array.isArray(t.security)||!t.latest||"object"!=typeof t.latest)return null;let a=t.security.map(az),r=Object.entries(t.latest).map(([e,t])=>[e,az(t)]);return a.some(e=>!e)||r.some(([e,t])=>!t||String(t.major)!==e)?null:{security:a.map(e=>e.text),latest:Object.fromEntries(r.map(([e,t])=>[e,t.text]))}}(e.index),indexCheckedAt:aU(e.indexCheckedAt),indexError:aB(e.indexError),cycles:aN({result:{releases:e.cycles}}),cyclesCheckedAt:aU(e.cyclesCheckedAt),cyclesError:aB(e.cyclesError)}:null:null}async function aL(e,t,r,n=process.env){let s;if(aq(n).off)return;let o=t-Date.now();if(o<1e3)throw Error("skipped, time budget used");let i=await aF({timeoutMs:Math.min(8e3,o)}),l=await aG();i.indexError&&r.push(`node: ${i.indexError}`),i.cyclesError&&r.push(`node: ${i.cyclesError}`);let d=(s=e.toISOString(),{index:i.index??l?.index??null,indexCheckedAt:s,indexError:i.indexError,cycles:i.cycles??l?.cycles??null,cyclesCheckedAt:s,cyclesError:i.cyclesError});await (0,a.db)().insert(g.settings).values({key:a_,value:d}).onConflictDoUpdate({target:g.settings.key,set:{value:d,updatedAt:e}})}let aW=/^\d{1,4}\.\d{1,4}\.\d{1,6}$/,aH=e=>"string"==typeof e&&aW.test(e);async function aV(e={}){let t,a=e.fetch??fetch;try{t=await a("https://registry.npmjs.org/watchbell/latest",{method:"GET",headers:{Accept:"application/json","Accept-Encoding":"gzip"},signal:AbortSignal.timeout(e.timeoutMs??6e3),cache:"no-store"})}catch{return{ok:!1,error:"Couldn't reach registry.npmjs.org"}}if(!t.ok)return{ok:!1,error:`registry.npmjs.org returned an error (${t.status})`};try{let e=await t.json();return aH(e.version)?{ok:!0,version:e.version}:{ok:!1,error:"registry.npmjs.org answered without a version"}}catch{return{ok:!1,error:"registry.npmjs.org answered in a format the console doesn't recognise"}}}async function aJ(e,t,r,n=process.env,s){let o=function(e=process.env,t="1.6.1"){let a=e.WATCHBELL_VERSION?.trim();if(aH(a))return a;let r=t?.trim();return aH(r)?r:null}(n);if(!o||"selfhost"!==(0,i.mode)(n)||aq(n).off)return;let l=t-Date.now();if(l<1e3)return;let d=await aV({fetch:s,timeoutMs:Math.min(6e3,l)});if(d.ok){let t={version:d.version,checkedAt:e.toISOString()};await (0,a.db)().insert(g.settings).values({key:"watchbell.latest",value:t}).onConflictDoUpdate({target:g.settings.key,set:{value:t,updatedAt:e}})}else r.push(`update check: ${d.error}`);await (0,a.db)().insert(g.settings).values({key:"watchbell.seenVersion",value:{version:o}}).onConflictDoNothing({target:g.settings.key})}var aK=e.i(149398),aY=e.i(467404),aX=e.i(816173);e.i(247714);let aQ="collector.lastRun",aZ="vercel.backoffUntil",a0="vercel.currentMiss",a1={supabase:tw,supabaseUsage:tg,neon:ty,firebase:tk,firebaseUsage:tv,extraDbs:ab};async function a3(){let e=await (0,a.db)().select({key:g.settings.key,value:g.settings.value}).from(g.settings).where((0,p.inArray)(g.settings.key,[aQ,t2])).limit(2);return{lastRun:e.find(e=>e.key===aQ)?.value??{},afterDeploy:e.find(e=>e.key===t2)?.value??null}}async function a4(e){await (0,a.db)().insert(g.settings).values({key:aQ,value:e}).onConflictDoUpdate({target:g.settings.key,set:{value:e,updatedAt:new Date}})}let a5=e=>(0,eH.f)(e);async function a6(e,r,n,s,o=[]){let i=(await (0,a.db)().select({m:g.monitors,app:g.resources}).from(g.monitors).innerJoin(g.resources,(0,p.eq)(g.resources.id,g.monitors.resourceId)).where((0,p.and)((0,p.eq)(g.monitors.kind,"http"),(0,p.eq)(g.monitors.paused,!1),(0,p.eq)(g.monitors.ownerPaused,!1),(0,p.eq)(g.resources.monitored,!0),(0,p.isNull)(g.resources.goneAt))).orderBy(t.sql`${g.monitors.lastCheckedAt} asc nulls first`,g.monitors.id)).filter(({m:t})=>(0,t5.B)(t.lastCheckedAt,e,s));if(!i.length)return 0;let l=await (0,ta.P)(i,6,({m:e})=>{let t=(0,t5.P)(e.timeoutMs,r,Date.now());return null===t?Promise.resolve(null):(0,ta.b)(e.url,{expectedStatus:e.expectedStatus,timeoutMs:t,body:(0,aK.C)(e)})}),d=i.flatMap((e,t)=>l[t]?[{...e,r:l[t]}]:[]);if(d.length<i.length&&n.push(`checks: ${i.length-d.length} monitors skipped, time budget used`),!d.length)return 0;let u=[];for(let t of d)await (0,aY.j)(t.m,t.r,e)&&u.push(t);return u.length?(await (0,a.db)().insert(g.checks).values(u.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,ac.x)(o,{monitorId:t.id,appId:a.id},e)}))),await a5(u.map(({m:t,app:a,r})=>(0,aX.F)({resourceId:a.id,path:(0,af.K)(t.url),prev:t.state,next:(0,aX.G)(t.failStreak,r).state,code:r.statusCode,error:r.error,at:e}))),u.length):0}let a2=["checks","heartbeats"];async function a8(e,t,a=tU.f){if(!a2.some(t=>e.includes(t)))return[];try{return await a()}catch(e){return t.push(`maintenance: ${(0,tT.safeError)(e)}`),[]}}async function a9(e){let[t]=await (0,a.db)().select().from(g.settings).where((0,p.eq)(g.settings.key,aZ)).limit(1),r=t?.value?.until;return!!r&&e.getTime()<new Date(r).getTime()}async function a7(e,t){if("transient"!==e.kind||!e.retryAfterS)return!1;let r={until:new Date(t.getTime()+1e3*Math.min(e.retryAfterS,3600)).toISOString()};return await (0,a.db)().insert(g.settings).values({key:aZ,value:r}).onConflictDoUpdate({target:g.settings.key,set:{value:r,updatedAt:t}}),!0}let re=e=>t.sql`coalesce(${g.deployments.externalId} = ${e}::text, false)`;async function rt(e,r,n,s,o=ad){let i=[];try{for(let o of e){let e=r.filter(e=>e.resourceId===o.id),{currentId:l,previousId:d}=(0,af.a)(e.map(e=>({id:e.id,createdAt:e.createdAt??new Date(0)})),(o.externalId?n.get(o.externalId):null)??null),u=await (0,a.db)().update(g.deployments).set({isCurrent:re(l),isPreviousProduction:re(d),updatedAt:s.now}).where((0,p.and)((0,p.eq)(g.deployments.resourceId,o.id),(0,p.or)(t.sql`${g.deployments.isCurrent} is distinct from ${re(l)}`,t.sql`${g.deployments.isPreviousProduction} is distinct from ${re(d)}`))).returning({id:g.deployments.externalId}),c=function(e){var t,a;let r=e.currentId;return r&&e.state.checked[e.appId]!==r&&e.state.pending[e.appId]?.id!==r&&(t=e.changedIds,((a=r)&&t.includes(a)?a:null)||e.createdAt&&e.now.getTime()-e.createdAt.getTime()<=216e5)?r:null}({appId:o.id,currentId:l,changedIds:u.map(e=>e.id),createdAt:e.find(e=>e.id===l)?.createdAt??null,state:s.afterDeploy,now:s.now});c&&i.push({appId:o.id,deploymentId:c})}}finally{if(i.length)try{await o(i,s.now)}catch(e){s.errors.push(`vercel/${s.label}: after-deploy security check not scheduled: ${(0,tT.safeError)(e)}`)}}}let ra=e=>new Map(e.map(e=>[e.id,{...e.branchFrom?{branchFrom:e.branchFrom}:{},...e.gitDirty?{gitDirty:!0}:{}}]));async function rr(e,t,a,r,n=new Map,s=tW){try{await s(e,t,n)}catch(e){a.push(`vercel/${r}: production source not saved: ${(0,tT.safeError)(e)}`)}}async function rn(e,t,r,n){if(await a9(e))return;let s=(0,L.serverEnv)().OPS_ENCRYPTION_KEY;for(let o of(await (0,a.db)().select().from(g.accounts).where((0,p.and)((0,p.eq)(g.accounts.provider,"vercel"),(0,p.eq)(g.accounts.status,"ok"))))){let i=(0,B.V)({ciphertext:o.credentialCiphertext,iv:o.credentialIv},s);if((0,e0.A)(i)||!i){r.push(`vercel/${o.label}: credential can't be read`);continue}let l=await (0,a.db)().select().from(g.resources).where((0,p.and)((0,p.eq)(g.resources.accountId,o.id),(0,p.eq)(g.resources.kind,"app"),(0,p.eq)(g.resources.monitored,!0),(0,p.isNull)(g.resources.goneAt)));if(!l.length)continue;let d=new Map(l.map(e=>[e.externalId,e])),u=await (0,ap.X)(i);if(!u.ok){let t=(0,e0.E)({ok:!1,kind:u.kind,error:u.error});if(t&&await (0,a.db)().update(g.accounts).set({...t,updatedAt:e}).where((0,p.eq)(g.accounts.id,o.id)),r.push(`vercel/${o.label}: ${u.error}`),await a7(u,e))return;continue}let c=new Set(l.map(e=>String(e.meta.teamId)));for(let s of u.data.filter(e=>c.has(e.id))){if(Date.now()>t)return void r.push("vercel: skipped remaining teams, time budget used");let[o,u]=await Promise.all([(0,ap.W)(i,s),(0,ap.K)(i,s,{since:e.getTime()-6048e5,limit:100})]);if(!o.ok||!u.ok){let t=o.ok?u:o;if(r.push(`vercel/${s.name}: ${t.error}`),await a7(t,e))return;continue}let c=new Map(o.data.map(e=>[e.id,e.currentDeploymentId])),f=u.data.filter(e=>d.has(e.projectId)),m=ra(f),h=new Map((f.length?await (0,a.db)().select({externalId:g.deployments.externalId,state:g.deployments.state,target:g.deployments.target,branch:g.deployments.branch,commitSha:g.deployments.commitSha,commitMessage:g.deployments.commitMessage,source:g.deployments.source,url:g.deployments.url,buildingAt:g.deployments.buildingAt,readyAt:g.deployments.readyAt}).from(g.deployments).where((0,p.inArray)(g.deployments.externalId,f.map(e=>e.id))):[]).map(e=>[e.externalId,e])),w=[];for(let t of f){let r=d.get(t.projectId),n=h.get(t.id),s={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,af.E)(n,s)){let n={resourceId:r.id,externalId:t.id,...s,createdAtProvider:t.createdAt,updatedAt:e};await (0,a.db)().insert(g.deployments).values(n).onConflictDoUpdate({target:g.deployments.externalId,set:n})}w.push((0,aX.L)(n?.state,t,r.id,e))}await a5(w);let y=l.filter(e=>String(e.meta.teamId)===s.id),b=await (0,a.db)().select({resourceId:g.deployments.resourceId,id:g.deployments.externalId,createdAt:g.deployments.createdAtProvider}).from(g.deployments).where((0,p.and)((0,p.inArray)(g.deployments.resourceId,y.map(e=>e.id)),(0,p.eq)(g.deployments.target,"production"),(0,p.eq)(g.deployments.state,"ready"))),[k]=await (0,a.db)().select().from(g.settings).where((0,p.eq)(g.settings.key,a0)).limit(1),v=[],I=()=>v.length?(0,a.db)().insert(g.settings).values({key:a0,value:(0,af.Y)(k?.value,v,e)}).onConflictDoUpdate({target:g.settings.key,set:{value:(0,af.Y)(k?.value,v,e),updatedAt:e}}):Promise.resolve();for(let n of(0,af.Q)(y,c,b,(0,af.S)(k?.value,e))){if(Date.now()>t)break;let o=await (0,ap.S)(i,s,n.deploymentId);if(!o.ok){if(r.push(`vercel/${s.name}: current deployment: ${o.error}`),await a7(o,e))return void await I();v.push(n.deploymentId);continue}let l=o.data;for(let[e,t]of ra([l]))m.set(e,t);let d={resourceId:n.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,a.db)().insert(g.deployments).values(d).onConflictDoUpdate({target:g.deployments.externalId,set:d}),"ready"===l.state&&"production"===l.target?b.push({resourceId:n.appId,id:l.id,createdAt:l.createdAt}):v.push(n.deploymentId)}await I(),await rt(y,b,c,{now:e,afterDeploy:n,errors:r,label:s.name}),await rr(y,e,r,s.name,m)}}}async function rs(e){let r=await (0,a.db)().select().from(g.resources).where((0,p.and)((0,p.eq)(g.resources.kind,"app"),(0,p.eq)(g.resources.monitored,!0),(0,p.isNull)(g.resources.goneAt)));if(!r.length)return;let n=await (0,a.db)().select().from(g.monitors).where((0,p.and)((0,p.inArray)(g.monitors.resourceId,r.map(e=>e.id)),(0,p.eq)(g.monitors.paused,!1),(0,p.eq)(g.monitors.ownerPaused,!1))),s=new Set((await (0,a.db)().select({r:g.deployments.resourceId}).from(g.deployments).where((0,p.and)((0,p.inArray)(g.deployments.resourceId,r.map(e=>e.id)),(0,p.eq)(g.deployments.target,"production"),(0,p.eq)(g.deployments.state,"building"),(0,p.gte)(g.deployments.createdAtProvider,new Date(e.getTime()-36e5))))).map(e=>e.r)),o=await th(r.map(e=>e.id)),i=new Map((await (0,a.db)().select().from(g.snapshots).where((0,p.inArray)(g.snapshots.resourceId,r.map(e=>e.id)))).map(e=>[e.resourceId,e])),l=new Map(r.map(e=>[e.id,e])),d=(0,tP.P)(n.map(e=>({id:e.id,kind:e.kind,url:e.url,appId:e.resourceId,appName:l.get(e.resourceId)?.name??"",appMeta:l.get(e.resourceId)?.meta,lastError:e.lastError})),r),u=e=>d.has(e.id)&&"err"===e.state?"warn":e.state;for(let[e,s]of(0,tP.R)(n.map(e=>({id:e.id,kind:e.kind,url:e.url,appId:e.resourceId,appName:l.get(e.resourceId)?.name??"",appMeta:l.get(e.resourceId)?.meta,lastError:e.lastError})),r))await (0,a.db)().update(g.resources).set({meta:t.sql`${g.resources.meta} || ${JSON.stringify({pastDomains:s})}::jsonb`}).where((0,p.eq)(g.resources.id,e));for(let l of r){let r=n.filter(e=>e.resourceId===l.id),d=(0,aX.V)({monitors:r.map(u),building:s.has(l.id),dbPaused:o.has(l.id)}),c=r.find(e=>"err"===e.state)??r.find(e=>"warn"===e.state),p={code:c?.lastStatus??null,latencyMs:r.find(e=>"heartbeat"!==e.kind)?.lastLatencyMs??null,dbPaused:o.has(l.id)},f=i.get(l.id);await (0,a.db)().insert(g.snapshots).values({resourceId:l.id,state:d,data:p,collectedAt:e,stateSince:e}).onConflictDoUpdate({target:g.snapshots.resourceId,set:{state:d,data:t.sql`${g.snapshots.data} || ${JSON.stringify(p)}::jsonb`,collectedAt:e,...f?.state!==d?{stateSince:e}:{}}})}}async function ro(e,t={}){let a={writeLastRun:a4,refreshApps:rs,refreshNetwork:aT.x,invalidate:h,...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,tT.safeError)(t)}`)}if(e.done.some(e=>aT.p.includes(e)))try{await a.refreshNetwork(new Date)}catch(t){e.errors.push(`network-states: ${(0,tT.safeError)(t)}`)}}finally{a.invalidate((0,w.o)(e.tried??e.done))}}async function ri(e,t,a,r={evaluate:tF.$,deliver:tG.q,digest:tG.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,tT.safeError)(t)}`)}try{await r.deliver(new Date,t),console.info("collector notifications delivered")}catch(t){e=!1,a.push(`notify: ${(0,tT.safeError)(t)}`)}e&&n.push("alerts")}if(e.includes("digest")&&(0,t5.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,tT.safeError)(e)}`)}return n}async function rl(e,t,a,r){let n=[],s=[];for(let o of e){if(Date.now()>t){a.push(`${o}: skipped, time budget used`);continue}if((0,t5.z)(o,t,Date.now())){s.push(o);try{await r(o),n.push(o)}catch(e){a.push(`${o}: ${(0,tT.safeError)(e)}`)}}}return{done:n,tried:s}}async function rd(e){let t,r=new Date,n=await ax(r);if(!n)return{skipped:!0,ok:!0,tasks:[],checks:0,durationMs:0,errors:[]};try{[t]=await (0,a.db)().insert(g.collectorRuns).values({startedAt:r,trigger:"builtin"===e?"manual":e}).returning({id:g.collectorRuns.id})}catch(e){throw await aj(n).catch(()=>void 0),e}let s=[],o=[],i=0,d=r.getTime()+t5.p,u=process.cpuUsage(),c=()=>{let e=process.cpuUsage(u);return Math.round((e.user+e.system)/1e3)},f=e=>console.info(`collector ${e} +${Date.now()-r.getTime()}ms cpu ${c()}ms`);try{var m;f("start");let{lastRun:t,afterDeploy:a}=await a3(),n="cron_job_org"!==e&&"builtin"!==e,u=await (0,l.I)(),{due:c,early:p}=(0,t5._)((0,t5.S)(t,r,n,u),(m=t7(a),Object.keys(m.pending).length>0),u),h=!1,w=e=>p||!h?e.filter(e=>"security"!==e):e,g=c.filter(e=>t5.u.includes(e)),y=g.includes("alerts")?d-t5.X:d,b=await a8(c,s);f(`due ${c.join(",")}`);let{done:k,tried:v}=await rl(c.filter(e=>!t5.u.includes(e)),y,s,async e=>{if(f(`task ${e}`),"heartbeats"===e){let e=new Date;i+=await (0,eV.r)(e,(t,a)=>null!==(0,ac.x)(b,{monitorId:t,appId:a},e),n)}"checks"===e&&(i+=await a6(new Date,y,s,n,b)),"vercel"===e&&await rn(new Date,y,s,t7(a));let t=a1[e];t&&await t({now:new Date,deadline:y,errors:s,protectOnly:(0,t5.$)(e,u)}),"cloudflare"===e&&await (0,aT.h)(new Date,y,s),"domains"===e&&await (0,aT.H)(new Date,y,s),"tls"===e&&await (0,aT.V)(new Date,y,s),"rdap"===e&&await (0,aT.W)(new Date,y,s),"eol"===e&&await (0,aT.i)(new Date,y,s),"node"===e&&(await aL(new Date,y,s),await aJ(new Date,y,s)),"status"===e&&await (0,au.i)(new Date),"logs"===e&&await (0,tB._)(new Date,y,s),"pageviews"===e&&await t4(new Date,y,s),"security"===e&&(h=(await al({now:r,deadline:y,errors:s,paused:u,early:p})).complete)});o.push(...k),f("main done"),await ro({lastRun:t,done:w(o),tried:v,started:r,errors:s}),f("settled");let I=await ri(g,d,s);f("post done"),I.length&&await a4({...t,...Object.fromEntries(w([...o,...I]).map(e=>[e,r.toISOString()]))}),o.push(...I)}catch(e){s.push(`run: ${(0,tT.safeError)(e)}`)}finally{let e=Date.now()-r.getTime();await (0,a.db)().update(g.collectorRuns).set({finishedAt:new Date,ok:0===s.length,errorSummary:s.join("\n").slice(0,2e3)||null,durationMs:e,tasks:o,checks:i}).where((0,p.eq)(g.collectorRuns.id,t.id)).catch(()=>void 0),await aj(n).catch(()=>void 0),process.env.VERCEL&&await tq(c())}return{skipped:!1,ok:0===s.length,tasks:o,checks:i,durationMs:Date.now()-r.getTime(),errors:s}}var ru=e.i(486118);async function rc(e){let t=[...u,...ru.extensions.minuteSteps??[]];if(!t.length)return;let a=new Date,r={deadline:e+6e4-5e3};for(let e of t)try{await e.run(a,r)}catch{console.warn(`minute step ${e.name} failed`)}}async function rp(e,t=Date.now()){let a=await rd(e);return await rc(t),a}async function rf(){return tR(await tC(),ru.extensions.dailySteps??[])}e.s(["runDailyAll",0,rf,"runMinute",0,rp],380167)}];
|
|
20
|
-
|
|
21
|
-
//# sourceMappingURL=src_lib_collector_runners_ts_12z4gtgikss74._.js.map
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
module.exports=[513701,e=>{"use strict";var t=e.i(93321),r=e.i(258261),o=e.i(351674),n=e.i(548734),s=e.i(837137),i=e.i(245710),c=e.i(968715),u=e.i(910697);let a=(e,t)=>"string"==typeof t?o.B`to_char(${e} at time zone ${t}, 'YYYY-MM-DD')`:o.B`to_char((${e} at time zone 'UTC') + ${o.B.raw(`interval '${Math.trunc(t.offsetMinutes)} minutes'`)}, 'YYYY-MM-DD')`,l=o.B.raw("2"),m=(e,t)=>o.B`(extract(epoch from date_bin(${o.B.raw(`'${e}'`)}::interval, ${t}, timestamptz '2000-01-01 00:00:00+00')) * 1000)::float8`,h=o.B`percentile_cont(0.95) within group (order by ${s.checks.latencyMs})`,d=o.B`percentile_cont(0.5) within group (order by ${s.checks.latencyMs})`,p=o.B`(count(*) filter (where not ${s.checks.ok}))::int`,f=(0,t.u)(s.checks.inMaintenance,!1),y=o.B`(count(*) filter (where ${s.checks.statusCode} >= 500))::int`,k=o.B`count(*)::int`;async function w(){let[e]=await (0,n.f)().select({h:(0,r.y)(s.rollupsHourly.hour)}).from(s.rollupsHourly);return e?.h?new Date(e.h.getTime()+36e5):null}async function B(e,t,r=(0,i.C)()){if(!e.length)return new Map;try{return await I(e,t,r)}catch(n){if(!function(e){let t=e;for(let e=0;e<4&&t&&"object"==typeof t;e++,t=t.cause){let{code:e,message:r}=t;if("22023"===e&&"string"==typeof r&&/time zone .* not recognized/i.test(r))return!0}return!1}(n))throw n;let o=globalThis;return o.__watchbellPgZoneWarned||(o.__watchbellPgZoneWarned=!0,console.warn(`Watchbell: the database doesn't know the time zone ${r}; uptime days use its current UTC offset instead.`)),I(e,t,{offsetMinutes:(0,i.c)(t)})}}async function I(e,r,m){let h=(0,i.y)((0,c.W)(r,c.F)[0]),d=await w(),p=new Date(Math.max(h.getTime(),d?.getTime()??0,r.getTime()-u.A.rawChecksMs)),f=a(s.rollupsHourly.hour,m),y=a(s.checks.at,m),[k,B]=await Promise.all([d?(0,n.f)().select({monitorId:s.rollupsHourly.monitorId,day:f,checks:o.B`sum(${s.rollupsHourly.checks})::int`,failures:o.B`sum(${s.rollupsHourly.failures})::int`,maint:o.B`sum(${s.rollupsHourly.maintenance})::int`}).from(s.rollupsHourly).where((0,t.b)((0,t.y)(s.rollupsHourly.monitorId,e),(0,t.B)(s.rollupsHourly.hour,h),(0,t.S)(s.rollupsHourly.hour,d))).groupBy(s.rollupsHourly.monitorId,l):Promise.resolve([]),(0,n.f)().select({monitorId:s.checks.monitorId,day:y,checks:o.B`(count(*) filter (where not ${s.checks.inMaintenance}))::int`,failures:o.B`(count(*) filter (where not ${s.checks.ok} and not ${s.checks.inMaintenance}))::int`,maint:o.B`(count(*) filter (where ${s.checks.inMaintenance}))::int`}).from(s.checks).where((0,t.b)((0,t.y)(s.checks.monitorId,e),(0,t.B)(s.checks.at,p))).groupBy(s.checks.monitorId,l)]);return(0,c.C)([...k,...B])}async function g(e,r){if(!e.length)return new Map;let o=u.A.responseHours,i=(0,c.D)(r,36e5,o),a=m("1 hour",s.checks.at),l=(0,t.b)((0,t.y)(s.monitors.resourceId,e),(0,t.B)(s.checks.at,new Date(i)),f),[p,y]=await Promise.all([(0,n.f)().select({appId:s.monitors.resourceId,t:a,v:h}).from(s.checks).innerJoin(s.monitors,(0,t.u)(s.monitors.id,s.checks.monitorId)).where(l).groupBy(s.monitors.resourceId,a),(0,n.f)().select({appId:s.monitors.resourceId,v:h,m:d}).from(s.checks).innerJoin(s.monitors,(0,t.u)(s.monitors.id,s.checks.monitorId)).where(l).groupBy(s.monitors.resourceId)]);return new Map(e.map(e=>[e,{hourly:(0,c.f)(p.filter(t=>t.appId===e),i,36e5,o),p95:y.find(t=>t.appId===e)?.v??null,p50:y.find(t=>t.appId===e)?.m??null}]))}async function M(e,r){let o=u.A.metricBuckets,i=(0,c.D)(r,18e5,o),a=m("30 minutes",s.checks.at),l=await (0,n.f)().select({t:a,p95:h,p50:d,s5xx:y}).from(s.checks).innerJoin(s.monitors,(0,t.u)(s.monitors.id,s.checks.monitorId)).where((0,t.b)((0,t.u)(s.monitors.resourceId,e),(0,t.B)(s.checks.at,new Date(i)),f)).groupBy(a);return{response:(0,c.f)(l.map(e=>({t:e.t,v:e.p95})),i,18e5,o),median:(0,c.f)(l.map(e=>({t:e.t,v:e.p50})),i,18e5,o),errors:(0,c.f)(l.map(e=>({t:e.t,v:e.s5xx})),i,18e5,o,0),first:i,sizeMs:18e5}}async function $(e,r){return(0,n.f)().select({at:s.deployments.createdAtProvider,sha:s.deployments.commitSha,state:s.deployments.state}).from(s.deployments).where((0,t.b)((0,t.u)(s.deployments.resourceId,e),(0,t.u)(s.deployments.target,"production"),(0,t.B)(s.deployments.createdAtProvider,r))).orderBy(s.deployments.createdAtProvider).limit(200)}async function v(e){let r=u.A.healthBuckets,o=(0,c.D)(e,288e4,r),i=new Date(o),a=(0,t.b)((0,t.u)(s.resources.monitored,!0),(0,t.M)(s.resources.goneAt)),l=m("48 minutes",s.checks.at),d=m("48 minutes",s.deployments.createdAtProvider),[w,[B],I]=await Promise.all([(0,n.f)().select({t:l,checks:k,failures:p,s5xx:y,p95:h}).from(s.checks).innerJoin(s.monitors,(0,t.u)(s.monitors.id,s.checks.monitorId)).innerJoin(s.resources,(0,t.u)(s.resources.id,s.monitors.resourceId)).where((0,t.b)(a,(0,t.B)(s.checks.at,i),f)).groupBy(l),(0,n.f)().select({checks:k,failures:p,s5xx:y,p95:h}).from(s.checks).innerJoin(s.monitors,(0,t.u)(s.monitors.id,s.checks.monitorId)).innerJoin(s.resources,(0,t.u)(s.resources.id,s.monitors.resourceId)).where((0,t.b)(a,(0,t.B)(s.checks.at,i),f)),(0,n.f)().select({t:d,n:k}).from(s.deployments).innerJoin(s.resources,(0,t.u)(s.resources.id,s.deployments.resourceId)).where((0,t.b)(a,(0,t.B)(s.deployments.createdAtProvider,i))).groupBy(d)]),g=(e,t)=>e?(e-t)/e*100:null;return{uptime:B?g(B.checks,B.failures):null,p95:B?.p95??null,s5xx:B?.s5xx??0,deploys:I.reduce((e,t)=>e+t.n,0),series:{uptime:(0,c.f)(w.map(e=>({t:e.t,v:g(e.checks,e.failures)})),o,288e4,r),p95:(0,c.f)(w.map(e=>({t:e.t,v:e.p95})),o,288e4,r),s5xx:(0,c.f)(w.map(e=>({t:e.t,v:e.s5xx})),o,288e4,r,0),deploys:(0,c.f)(I.map(e=>({t:e.t,v:e.n})),o,288e4,r,0)}}}e.s(["P",0,M,"Q",0,g,"j",0,v,"_",0,B,"M",0,$])}];
|
|
2
|
-
|
|
3
|
-
//# sourceMappingURL=src_lib_data_metrics-db_ts_0zp7x6l28a2ep._.js.map
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
(()=>{"use strict";module.exports=[7985,e=>{var t=e.i(666680),r=e.i(187481);let n="wp_demo",o=/^[0-9a-f]{32}$/,i=/^[A-Za-z0-9_-]+$/;e.s(["DEMO_COOKIE",0,n,"clearDemoCookie",0,function(e,t){e.set(n,"",{...function(e=process.env.SITE_URL){return{...(0,r.X)(e),maxAge:604800}}(t),maxAge:0})},"demoCookieKey",0,function(e){return(0,t.createHmac)("sha256",Buffer.from(e,"base64")).update("watchpost:demo-cookie:v1").digest()},"verifyDemoCookie",0,function(e,r,n=Date.now()){let a;if(!e||e.length>1024)return null;let s=e.split(".");if(2!==s.length||!i.test(s[0])||!i.test(s[1]))return null;let[u,l]=s,f=Buffer.from(l,"base64url"),c=(0,t.createHmac)("sha256",r).update(u).digest();if(f.length!==c.length||!(0,t.timingSafeEqual)(f,c))return null;try{a=JSON.parse(Buffer.from(u,"base64url").toString("utf8"))}catch{return null}let{email:m,seed:g,iat:h}=a??{};if("string"!=typeof m||!m||m.length>254||m!==m.toLowerCase()||"string"!=typeof g||!o.test(g)||"number"!=typeof h||!Number.isInteger(h))return null;let y=Math.floor(n/1e3);return h>y+300||y-h>604800?null:{email:m,seed:g}}])},271622,e=>{let t;var r=e.i(37294);e.i(989112);var n=e.i(66389),o=e.i(910931),i=e.i(93387),a=e.i(7985),s=e.i(484817);let u=()=>(0,a.demoCookieKey)((0,i.serverEnv)().OPS_ENCRYPTION_KEY),l=(0,o.cache)(async()=>t?t():(0,a.verifyDemoCookie)((await (0,r.cookies)()).get(a.DEMO_COOKIE)?.value,u()));async function f(){let e=await l();if(!e)throw Error("Not signed in to the demo");return e}async function c(){return(await f()).seed}async function m(){return(await f()).email}async function g(){try{return(0,s.g)(await (0,r.headers)())}catch(e){return(0,n.unstable_rethrow)(e),s.p}}e.s(["R",0,g,"_",0,m,"U",0,c,"V",0,f,"H",0,l,"T",0,u,"O",0,function(e){if(!process.env.VITEST)throw Error("setDemoVisitorResolverForTests is for tests only");t=e}])}]})();
|
|
2
|
-
|
|
3
|
-
//# sourceMappingURL=src_lib_demo_11p30f_ci6ie2._.js.map
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
module.exports=[908480,873083,476866,e=>{"use strict";var t=e.i(336763),a=e.i(533102),n=e.i(406212),s=e.i(530298);let i=["home","hosting","database","devops","manage"],o=["hosting","database","devops"],r={vercel:"hosting",cloudflare:"hosting",supabase:"database",neon:"database",firebase:"database",turso:"database",upstash:"database",github:"devops",github_write:"devops"};function l(e){return Array.isArray(e)?i.filter(t=>"string"==typeof t&&i.includes(t)&&o.includes(t)&&e.includes(t)):[]}let u={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",FrameworkVulnerable:"hosting",CiFailing:"devops",OsSecurityUpdate:"devops",MonitorDomainMoved:"hosting",CredentialExpiring:"account",CollectorStale:null},c=/^Log/;e.s(["D",0,r,"O",0,(e,t,a)=>{let n;if(!e.size)return!1;let s="account"===(n=u[t])?a?r[a]??null:null:void 0!==n?n:c.test(t)?"hosting":null;return null!==s&&e.has(s)},"N",0,l,"s",0,function(e){return{ruleKeys:Object.entries(u).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(l(e))],873083);var d=e.i(369179);let g={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]},b=Object.keys(g),h=(e,t)=>"number"==typeof t&&g[e].includes(t);async function f(e){let[a]=await (0,n.db)().select({value:s.settings.value}).from(s.settings).where((0,t.eq)(s.settings.key,e)).limit(1);return a?.value??null}let p=async()=>(function(e){let t={...d.f};if(!e||"object"!=typeof e)return t;for(let a of b){let n=e[a];h(a,n)&&(t[a]=n)}return t})(await f("retention.days")),m=()=>f("notify.language");function y(e){let t=e&&"object"==typeof e?e:null,a=t?t.lang:e,n=e=>{var n;return"string"==typeof(n=t&&e in t?t[e]:a)&&"id"===n.trim().toLowerCase()?"id":"en"};return{telegram:n("telegram"),discord:n("discord"),email:n("email")}}async function v(){try{return y(await m())}catch{return y(null)}}async function w(e="telegram"){return(await v())[e]}e.s(["l",0,m,"J",0,p,"W",0,()=>a.sql`(select ${s.settings.value} from ${s.settings} where ${s.settings.key} = ${"sections.off"})`],476866),e.s(["H",0,w,"B",0,v,"t",0,function(e,t,a){return e[t][a]}],908480)}];
|
|
2
|
-
|
|
3
|
-
//# sourceMappingURL=src_lib_notify_lang_ts_1r2w02ctaky7e._.js.map
|
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
module.exports=[[452587,a=>{var b=a.i(903769),c=a.i(803767);a.S([b,"00908e4a017a3eb1fa932c81866de507828f461d50,f",0,c,"000e0e10e3ea339db15cabebd5eb5878d06dc4af3f,N,60e8d1ad89d5b3f101dab4eb2f07a18004fc69f2f7,p"],452587)},713095,(a,b,c)=>{function d(a){for(let b=0;b<a.length;b++){let c=a[b];if("function"!=typeof c)throw Error(`A "use server" file can only export async functions, found ${typeof c}.
|
|
2
|
-
Read more: https://nextjs.org/docs/messages/invalid-use-server-value`)}}Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"ensureServerEntryExports",{enumerable:!0,get:function(){return d}})},137936,(a,b,c)=>{Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"registerServerReference",{enumerable:!0,get:function(){return d.registerServerReference}});let d=a.r(211857)},903769,a=>{var b=a.i(137936);a.i(570396);var c=a.i(673727),d=a.i(366443);async function e(){await (0,d.f)().signOut(),(0,c.redirect)("/signin")}(0,a.i(713095).ensureServerEntryExports)([e]),(0,b.registerServerReference)(e,"00908e4a017a3eb1fa932c81866de507828f461d50",null),a.s(["f",0,e])}],224361,(a,b,c)=>{b.exports=a.x("util",()=>require("util"))},406461,(a,b,c)=>{b.exports=a.x("zlib",()=>require("zlib"))},461750,a=>{a.v(b=>Promise.all(["server/chunks/ssr/[root-of-the-server]__0gyvfp6c-_edw._.js","server/chunks/ssr/src_db_pglite_ts_0r1r9wqxilnam._.js","server/chunks/ssr/node_modules_0vppy-p56c35f._.js","server/chunks/ssr/node_modules_@electric-sql_pglite_dist_0j1fzsq3ed7ph._.js"].map(b=>a.l(b))).then(()=>b(614755)))},73710,a=>{a.v(b=>Promise.all(["server/chunks/ssr/src_lib_demo_cookie_ts_0a12-0n1novgh._.js"].map(b=>a.l(b))).then(()=>b(716983)))},871289,a=>{a.v(b=>Promise.all(["server/chunks/ssr/[root-of-the-server]__0z5ucbis8ik32._.js","server/chunks/ssr/node_modules_0vppy-p56c35f._.js","server/chunks/ssr/node_modules_@electric-sql_pglite_dist_0j1fzsq3ed7ph._.js"].map(b=>a.l(b))).then(()=>b(204048)))},522169,a=>{a.v(b=>Promise.all(["server/chunks/ssr/src_lib_demo_seed_members_ts_0pz2fa9295pvm._.js"].map(b=>a.l(b))).then(()=>b(615089)))},372153,a=>{a.v(b=>Promise.all(["server/chunks/ssr/src_lib_demo_session_ts_0rwvb3aun41zx._.js","server/chunks/ssr/src_lib_demo_0mr090huk17s8._.js"].map(b=>a.l(b))).then(()=>b(765161)))}];
|
|
3
|
-
|
|
4
|
-
//# sourceMappingURL=%5Broot-of-the-server%5D__03xevz8n-mc20._.js.map
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
module.exports=[[263251,a=>{a.s(["f",0,function(a){if(Array.isArray(a))return a;let b=a?.rows;return Array.isArray(b)?b:[]}])},655206,a=>{a.s(["f",0,{checks:7,rollupsHourly:90,deployments:30,events:90,alerts:90,collectorRuns:14,storedLogs:7,recommendationDismissals:90}])},615089,988866,109505,a=>{var b=a.i(837137);a.s(["h",0,864e5,"w",0,36e5,"E",0,6e4,"$",0,(a,b)=>new Date(a.getTime()-b),"_",0,a=>`{${a.map(a=>null===a?"NULL":"boolean"==typeof a?a?"t":"f":String(a)).join(",")}}`],988866);var c=a.i(666680);let d=(...a)=>(0,c.createHash)("sha256").update(a.join("\0")).digest();function e(a,...b){let c=d(a,"id",...b);c[6]=15&c[6]|64,c[8]=63&c[8]|128;let f=c.subarray(0,16).toString("hex");return`${f.slice(0,8)}-${f.slice(8,12)}-${f.slice(12,16)}-${f.slice(16,20)}-${f.slice(20)}`}function f(a){return e(a,"member","user")}function g(a){return e(a,"member","row")}async function h(a){let{now:c,seed:d}=a,e=new Date(c.getTime()-35424e6);await a.db.insert(b.members).values({id:g(d),userId:f(d),email:a.email,role:"owner",lastSeenAt:c,createdAt:e,updatedAt:e})}a.s(["k",0,function(a,...b){let c,e=(c=d(a,...b).readUInt32LE(0)>>>0,()=>{let a=c=c+0x6d2b79f5>>>0;return a=Math.imul(a^a>>>15,1|a),(((a^=a+Math.imul(a^a>>>7,61|a))^a>>>14)>>>0)/0x100000000});return{next:e,int:(a,b)=>a+Math.floor(e()*(b-a+1)),pick:a=>a[Math.floor(e()*a.length)],chance:a=>e()<a,shuffle:a=>{let b=[...a];for(let a=b.length-1;a>0;a--){let c=Math.floor(e()*(a+1));[b[a],b[c]]=[b[c],b[a]]}return b}}},"p",0,function(a,b,...c){let e="";for(let f=0;e.length<a;f++)e+=d(b,"hex",f,...c).toString("hex");return e.slice(0,a)},"T",0,e,"g",0,function(a,b,...c){let e="";for(let f=0;e.length<a;f++)for(let a of d(b,"token",f,...c))e+="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"[a%62];return e.slice(0,a)}],109505),a.s(["demoUserId",0,f,"memberRowId",0,g,"seedMember",0,h],615089)},904370,a=>{let b="shared";function c(a){if(!a.includes(":")||a.includes("."))return a;let[b,c]=a.toLowerCase().split("::"),d=b?b.split(":"):[],e=void 0===c?[]:c?c.split(":"):[],f=void 0===c?d:[...d,...Array(Math.max(0,8-d.length-e.length)).fill("0"),...e];return 8===f.length&&f.every(a=>/^[0-9a-f]{1,4}$/.test(a))?`${f.slice(0,4).map(a=>a.replace(/^0+(?=.)/,"")).join(":")}::/64`:a}function d(a,c=6e5){let e=new Map;return{take(d,f,g=Date.now()){let h=e.get(d);if(h){var i=h;for(let[a,b]of i)g-b>=c&&i.delete(a);e.delete(d)}else h=new Map;return e.set(d,h),e.size>1e4&&e.delete(e.keys().next().value),!!h.has(f)||!(h.size>=(d===b?a.shared:a.perClient))&&(h.set(f,g),!0)},reset(){e.clear()}}}let e=globalThis.__watchpostDemoLimits??={creations:d({perClient:5,shared:60}),signIns:d({perClient:10,shared:120})},f=e.creations,g=e.signIns;a.s(["CREATIONS_PER_CLIENT",0,5,"CREATIONS_SHARED",0,60,"DEMO_LIMIT_WINDOW_MS",0,6e5,"DEMO_SIGN_IN_LIMITED",0,"Too many demo sign-ins from your network. Try again in a few minutes.","SHARED_CLIENT",0,b,"SIGN_INS_PER_CLIENT",0,10,"SIGN_INS_SHARED",0,120,"clientNetwork",0,c,"demoClientKey",0,function(a,d=process.env){if("1"!==d.VERCEL)return b;let e=a.get("x-forwarded-for")?.split(",")[0]?.trim();return`ip:${e?c(e):"unknown"}`},"demoCreations",0,f,"demoSignIns",0,g,"resetDemoLimitsForTests",0,function(){if(!process.env.VITEST)throw Error("resetDemoLimitsForTests is for tests only");f.reset(),g.reset()},"windowLimiter",0,d])}],902157,(a,b,c)=>{b.exports=a.x("node:fs",()=>require("node:fs"))},750227,(a,b,c)=>{b.exports=a.x("node:path",()=>require("node:path"))},727028,(a,b,c)=>{b.exports=a.x("node:zlib",()=>require("node:zlib"))}];
|
|
2
|
-
|
|
3
|
-
//# sourceMappingURL=%5Broot-of-the-server%5D__07zuxj3veqm14._.js.map
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
module.exports=[[263251,a=>{a.s(["f",0,function(a){if(Array.isArray(a))return a;let b=a?.rows;return Array.isArray(b)?b:[]}])},655206,a=>{a.s(["f",0,{checks:7,rollupsHourly:90,deployments:30,events:90,alerts:90,collectorRuns:14,storedLogs:7,recommendationDismissals:90}])},460565,a=>{a.s(["B",0,3e5,"X",0,function(a){return"number"==typeof a&&Number.isFinite(a)&&a>0?6e4*a:3e5}])},656298,a=>{function b(a){return"RESOURCE_EXHAUSTED"===a.reason?{state:"err",label:"Daily quota used up"}:"SERVICE_DISABLED"===a.reason?{state:"err",label:"Firestore API is off in this project"}:"scope"===a.kind||"PERMISSION_DENIED"===a.reason||"scope"===a.reason?{state:"err",label:"No access: needs datastore.viewer"}:{state:"unknown",label:"Unknown"}}a.s(["T",0,{reads:5e4,writes:2e4,deletes:2e4},"_",0,"The stored data size (1 GiB free) isn't read on any plan: the row's Open usage page shows it in the Firebase console.","f",0,"Storage (1 GiB): not read; the Firebase console's usage page shows it.","z",0,b,"g",0,function(a){return a.ok?a.data.noDatabase?{state:"off",label:"No Firestore database"}:{state:"ok",label:`Reachable \xb7 ${a.data.latencyMs} ms`}:b(a)},"a",0,function(a){let b=new Intl.DateTimeFormat("en-US",{timeZone:"America/Los_Angeles",hour:"numeric",minute:"numeric",second:"numeric",hourCycle:"h23"}).formatToParts(a),c=a=>Number(b.find(b=>b.type===a)?.value??0),d=(3600*c("hour")+60*c("minute")+c("second"))*1e3+a.getUTCMilliseconds();return new Date(a.getTime()-d)}])},688275,a=>{let b={cuHours:100,storageBytes:0x40000000,transferBytes:0x140000000,branches:10,scaleToZeroMin:5};function c(a){return a.disabled?{state:"err",label:"Suspended"}:"init"===a.state||a.pendingState&&a.pendingState!==a.state?{state:"build",label:"Starting"}:"active"===a.state?{state:"ok",label:"Active"}:"idle"===a.state?{state:"idle",label:"Idle"}:{state:"unknown",label:"Unknown"}}a.s(["a",0,b,"c",0,(a,b)=>a===b?`${a} CU`:`${a}–${b} CU`,"g",0,a=>Math.round(a/360)/10,"T",0,c,"p",0,function(a){if((a.computeSeconds??0)>=3600*b.cuHours)return{state:"err",label:"CU-hours used up"};if(!a.endpoints.length)return{state:"unknown",label:"No compute"};let d=a.endpoints.map(c);return d.some(a=>"err"===a.state)?{state:"err",label:"Compute suspended"}:d.some(a=>"ok"===a.state)?{state:"ok",label:"Active"}:d.some(a=>"build"===a.state)?{state:"build",label:"Starting"}:d.every(a=>"idle"===a.state)?{state:"idle",label:"Idle"}:{state:"unknown",label:"Unknown"}}])},84877,a=>{function b(a){let[b,...c]=a.trim().split("-"),d=b.split(".").map(a=>Number.parseInt(a,10)||0);return{nums:[d[0]??0,d[1]??0,d[2]??0],pre:c.length?c.join("-").split("."):[]}}a.s(["f",0,function(a,c){let d=b(a),e=b(c);for(let a=0;a<3;a++)if(d.nums[a]!==e.nums[a])return d.nums[a]-e.nums[a];return function(a,b){if(!a.length||!b.length)return a.length?-1:+!!b.length;for(let c=0;c<Math.max(a.length,b.length);c++){if(void 0===a[c])return -1;if(void 0===b[c])return 1;let d=/^\d+$/.test(a[c])?Number(a[c]):null,e=/^\d+$/.test(b[c])?Number(b[c]):null;if(null!==d&&null!==e){if(d!==e)return d-e}else if(null!==d||null!==e)return null!==d?-1:1;else if(a[c]!==b[c])return a[c]<b[c]?-1:1}return 0}(d.pre,e.pre)}])}],874533,(a,b,c)=>{b.exports=a.x("node:child_process",()=>require("node:child_process"))},300794,(a,b,c)=>{b.exports=a.x("node:dns/promises",()=>require("node:dns/promises"))},912714,(a,b,c)=>{b.exports=a.x("node:fs/promises",()=>require("node:fs/promises"))},761095,(a,b,c)=>{b.exports=a.x("node:net",()=>require("node:net"))},685560,(a,b,c)=>{b.exports=a.x("node:tls",()=>require("node:tls"))}];
|
|
2
|
-
|
|
3
|
-
//# sourceMappingURL=%5Broot-of-the-server%5D__0de1senl_kfo5._.js.map
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
module.exports=[323970,a=>{a.v(a=>Promise.resolve().then(()=>a(522734)))},260815,a=>{a.v(b=>Promise.all(["server/chunks/ssr/[externals]_fs_promises_03norioyty3bq._.js"].map(b=>a.l(b))).then(()=>b(924868)))},12147,a=>{a.v(b=>Promise.all(["server/chunks/ssr/[externals]_module_1ddxq771bq236._.js"].map(b=>a.l(b))).then(()=>b(362562)))},902157,(a,b,c)=>{b.exports=a.x("node:fs",()=>require("node:fs"))},750227,(a,b,c)=>{b.exports=a.x("node:path",()=>require("node:path"))},722369,a=>{a.v(a=>Promise.resolve().then(()=>a(688947)))},866997,a=>{a.v(b=>Promise.all(["server/chunks/ssr/[externals]_stream_promises_0i0hwr0w3t6vs._.js"].map(b=>a.l(b))).then(()=>b(28065)))},534777,a=>{a.v(b=>Promise.all(["server/chunks/ssr/[externals]_util_1jlmhhygpp07l._.js"].map(b=>a.l(b))).then(()=>b(224361)))},534107,a=>{a.v(b=>Promise.all(["server/chunks/ssr/[externals]_zlib_0o2m2z71hzc7c._.js"].map(b=>a.l(b))).then(()=>b(406461)))},440408,a=>{a.v(b=>Promise.all(["server/chunks/ssr/[root-of-the-server]__0no6c0whevi73._.js","server/chunks/ssr/node_modules_@electric-sql_pglite_dist_0j1fzsq3ed7ph._.js"].map(b=>a.l(b))).then(()=>b(265181)))},340060,a=>{a.v(b=>Promise.all(["server/chunks/ssr/[externals]__1q1drb4oske-9._.js","server/chunks/ssr/node_modules_@electric-sql_pglite_dist_0j1fzsq3ed7ph._.js","server/chunks/ssr/node_modules_@electric-sql_pglite_dist_fs_opfs-ahp_1joe_5q8jm7k7.js"].map(b=>a.l(b))).then(()=>b(683494)))}];
|
|
2
|
-
|
|
3
|
-
//# sourceMappingURL=%5Broot-of-the-server%5D__19twn3g5nv5q1._.js.map
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
module.exports=[254799,(a,b,c)=>{b.exports=a.x("crypto",()=>require("crypto"))},270406,(a,b,c)=>{b.exports=a.x("next/dist/compiled/@opentelemetry/api",()=>require("next/dist/compiled/@opentelemetry/api"))},120635,(a,b,c)=>{b.exports=a.x("next/dist/server/app-render/action-async-storage.external.js",()=>require("next/dist/server/app-render/action-async-storage.external.js"))},324725,(a,b,c)=>{b.exports=a.x("next/dist/server/app-render/after-task-async-storage.external.js",()=>require("next/dist/server/app-render/after-task-async-storage.external.js"))},556704,(a,b,c)=>{b.exports=a.x("next/dist/server/app-render/work-async-storage.external.js",()=>require("next/dist/server/app-render/work-async-storage.external.js"))},832319,(a,b,c)=>{b.exports=a.x("next/dist/server/app-render/work-unit-async-storage.external.js",()=>require("next/dist/server/app-render/work-unit-async-storage.external.js"))},559043,(a,b,c)=>{b.exports=a.x("next/dist/server/runtime-reacts.external.js",()=>require("next/dist/server/runtime-reacts.external.js"))},874533,(a,b,c)=>{b.exports=a.x("node:child_process",()=>require("node:child_process"))},300794,(a,b,c)=>{b.exports=a.x("node:dns/promises",()=>require("node:dns/promises"))},912714,(a,b,c)=>{b.exports=a.x("node:fs/promises",()=>require("node:fs/promises"))},761095,(a,b,c)=>{b.exports=a.x("node:net",()=>require("node:net"))},81111,(a,b,c)=>{b.exports=a.x("node:stream",()=>require("node:stream"))},685560,(a,b,c)=>{b.exports=a.x("node:tls",()=>require("node:tls"))},609007,a=>{"use strict";let b=[[/(?:\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 c(a,b){return a.length>b?`${a.slice(0,b-1)}…`:a}a.s(["l",0,c,"n",0,function(a){return null===a?null:c(a.split(/[?#]/)[0]||"/",512)},"h",0,function(a){return b.reduce((a,[b,c])=>a.replace(b,c),a)}])},425238,a=>{"use strict";var b=a.i(609007),c=a.i(556987);let d=/(?<![\p{L}\p{N}_])(?:w[bp]_[A-Za-z0-9]{6,}|hb_[0-9a-f]{6,}|sk-[A-Za-z0-9_-]{6,}|gsk_[A-Za-z0-9]{6,}|AIza[0-9A-Za-z_-]{8,}|AQ\.[A-Za-z0-9_-]{8,})/gu,e=/\b[a-z][a-z0-9+.-]*:\/\/[^\s/?#"'<>)]*(\/[^\s?#"'<>)]*)?(?:[?#][^\s"'<>)]*)?/gi,f="[\\p{L}\\p{N}_-]",g=a=>a.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),h=new WeakMap,i=[RegExp(d.source,"u"),/\b(?:Bearer|Basic)\s+[A-Za-z0-9._~+/=-]{12,}/i,/\beyJ[\w-]{8,}\.[\w-]{8,}\.[\w-]{8,}/,/\b[a-z][a-z0-9+.-]*:\/\/[^\s/@:]+:[^\s/@]+@/i,/\b[A-Fa-f0-9]{40,}\b/,/\b(?=[A-Za-z0-9_-]*\d)(?=[A-Za-z0-9_-]*[A-Za-z])[A-Za-z0-9_-]{40,}\b/];a.s(["G",0,function(a){return i.some(b=>b.test(a))},"F",0,function(a,i){let j=(0,b.h)(a);j=(0,c.J)(j,i);let k=function(a){if(h.has(a))return h.get(a);let b=new Map((a.account??[]).filter(a=>a.name.trim().length>=2).map(a=>[a.name.toLowerCase(),a.alias])),c=[...b.keys()].sort((a,b)=>b.length-a.length),d=c.length?{re:RegExp(`(?<!${f})(?:${c.map(g).join("|")})(?!${f})`,"giu"),alias:b}:null;return h.set(a,d),d}(i);return k&&(j=j.replace(k.re,a=>k.alias.get(a.toLowerCase())??a)),(j=(j=(j=j.replace(d,"[hidden]")).replace(/hb_\[hidden\]/g,"[hidden]")).replace(e,(a,b)=>b??"[url]")).replace(/@/g,"(at)")}])}];
|
|
2
|
-
|
|
3
|
-
//# sourceMappingURL=%5Broot-of-the-server%5D__19wvac83zh5-9._.js.map
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
module.exports=[[689963,a=>{var b=a.i(954757);a.s(["z",0,b])},83931,a=>{var b=a.i(954757);a.s(["z",0,b])},811365,a=>{var b=a.i(954757);a.s(["z",0,b])},460565,a=>{a.s(["B",0,3e5,"X",0,function(a){return"number"==typeof a&&Number.isFinite(a)&&a>0?6e4*a:3e5}])},358179,a=>{var b=a.i(666680);let c="aes-256-gcm";function d(a){let b=Buffer.from(a,"base64");if(32!==b.length)throw Error("Encryption key must be 32 bytes, base64-encoded.");return b}function e(a,e){let f=Buffer.from(a.ciphertext,"base64");if(f.length<16)throw Error("Stored credential is damaged.");let g=(0,b.createDecipheriv)(c,d(e),Buffer.from(a.iv,"base64"));return g.setAuthTag(f.subarray(f.length-16)),Buffer.concat([g.update(f.subarray(0,f.length-16)),g.final()]).toString("utf8")}a.s(["K",0,e,"V",0,function(a,b){try{return e(a,b)}catch{return null}},"l",0,function(a,e,f=1){let g=(0,b.randomBytes)(12),h=(0,b.createCipheriv)(c,d(e),g),i=Buffer.concat([h.update(a,"utf8"),h.final()]);return{ciphertext:Buffer.concat([i,h.getAuthTag()]).toString("base64"),iv:g.toString("base64"),keyVersion:f}}])},745614,a=>{let b="The demo is busy right now. Try again in a minute.",c="Too many new demo sessions from your network. Try again in a few minutes.",d=new Map([["watchbell-demo-busy",b],["watchbell-demo-too-many",c]]),e=new Map([...d].map(([a,b])=>[b,a]));a.s(["L",0,b,"_",0,c,"f",0,function(a){return Object.assign(Error(a),{digest:e.get(a)})},"E",0,function(a){for(let c=a,e=0;c&&e<5;c=c.cause,e++){var b;let a="string"==typeof(b=c.digest)?d.get(b)??null:null;if(a&&c instanceof Error&&c.message===a)return a}return null}])},19809,a=>{var b=a.i(371289);let c="Not available in the demo";a.s(["v",0,"This is the Watchbell demo, so no AI model was asked. In your own install, this answer comes from the AI provider you connect under AI Gateway.","Y",0,c,"r",0,"Simulated in the demo: nothing was sent to a provider.","h",0,function(a,d=process.env){return(0,b.W)(d)&&a instanceof Error&&a.message===c},"M",0,function(a,b=Math.random){return{ok:!0,statusCode:a,latencyMs:90+Math.round(260*b()),error:null}}])},753682,a=>{a.s(["f",0,function(a){return"aal2"===a.aal?"ok":a.hasVerifiedFactor?"challenge":"owner"===a.role||"operator"===a.role?"setup":"ok"}])}],300794,(a,b,c)=>{b.exports=a.x("node:dns/promises",()=>require("node:dns/promises"))},761095,(a,b,c)=>{b.exports=a.x("node:net",()=>require("node:net"))},685560,(a,b,c)=>{b.exports=a.x("node:tls",()=>require("node:tls"))}];
|
|
2
|
-
|
|
3
|
-
//# sourceMappingURL=%5Broot-of-the-server%5D__1m38od9tgaroe._.js.map
|